diff --git a/.github/ISSUE_TEMPLATE/01_battle_engine_bugs.yaml b/.github/ISSUE_TEMPLATE/01_battle_engine_bugs.yaml index a1835c551fc4..d7a4516d2a73 100644 --- a/.github/ISSUE_TEMPLATE/01_battle_engine_bugs.yaml +++ b/.github/ISSUE_TEMPLATE/01_battle_engine_bugs.yaml @@ -11,7 +11,7 @@ body: attributes: label: Description description: | - Describe the issue you are experiencing. + Describe the issue you are experiencing. Attach images/videos if possible. placeholder: | Please enter a description of the issue. Here you can also attach log screenshots, gifs or a video @@ -23,8 +23,9 @@ body: label: Version description: What version of pokeemerald-expansion are you using as a base? options: - - 1.6.1 (Default) + - 1.6.2 (Default) - upcoming (Edge) + - 1.6.1 - 1.6.0 - 1.5.3 - 1.5.2 diff --git a/.github/ISSUE_TEMPLATE/02_battle_ai_issues.yaml b/.github/ISSUE_TEMPLATE/02_battle_ai_issues.yaml index f9ccbac7eb8b..0c3378eb3fd2 100644 --- a/.github/ISSUE_TEMPLATE/02_battle_ai_issues.yaml +++ b/.github/ISSUE_TEMPLATE/02_battle_ai_issues.yaml @@ -11,7 +11,7 @@ body: attributes: label: Description description: | - Describe the issue you are experiencing. + Describe the issue you are experiencing. Attach images/videos if possible. placeholder: | Please enter a description of the issue. Here you can also attach log screenshots, gifs or a video @@ -23,8 +23,9 @@ body: label: Version description: What version of pokeemerald-expansion are you using as a base? options: - - 1.6.1 (Default) + - 1.6.2 (Default) - upcoming (Edge) + - 1.6.1 - 1.6.0 - 1.5.3 - 1.5.2 diff --git a/.github/ISSUE_TEMPLATE/03_feature_requests.yaml b/.github/ISSUE_TEMPLATE/03_feature_requests.yaml index 682f0dc09888..8d5621626527 100644 --- a/.github/ISSUE_TEMPLATE/03_feature_requests.yaml +++ b/.github/ISSUE_TEMPLATE/03_feature_requests.yaml @@ -11,7 +11,7 @@ body: attributes: label: Description description: | - Describe the issue you are experiencing. + Describe the issue you are experiencing. Attach images/videos if possible. placeholder: | Please enter a description of the issue. Here you can also attach log screenshots, gifs or a video diff --git a/.github/ISSUE_TEMPLATE/04_other_errors.yaml b/.github/ISSUE_TEMPLATE/04_other_errors.yaml index dfb085003090..538dae038350 100644 --- a/.github/ISSUE_TEMPLATE/04_other_errors.yaml +++ b/.github/ISSUE_TEMPLATE/04_other_errors.yaml @@ -11,7 +11,7 @@ body: attributes: label: Description description: | - Describe the issue you are experiencing. + Describe the issue you are experiencing. Attach images/videos if possible. placeholder: | Please enter a description of the issue. Here you can also attach log screenshots, gifs or a video @@ -23,8 +23,9 @@ body: label: Version description: What version of pokeemerald-expansion are you using as a base? options: - - 1.6.1 (Default) + - 1.6.2 (Default) - upcoming (Edge) + - 1.6.1 - 1.6.0 - 1.5.3 - 1.5.2 diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 9dc46b6e3fbd..9a6dfeadd984 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,5 +1,5 @@ blank_issues_enabled: false -contact_links: +contact_links: - name: Rom-Hacking Hideout's Discord server! url: https://discord.gg/6CzjAG6GZk about: You can follow the development of pokeemerald-expansion and be notified of new releases :) \ No newline at end of file diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7266809546f8..9d027f448ba2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -36,7 +36,9 @@ jobs: repository: pret/agbcc - name: Install binutils - run: sudo apt install gcc-arm-none-eabi binutils-arm-none-eabi + run: | + sudo apt update + sudo apt install -y build-essential libpng-dev libelf-dev # build-essential, git, and libpng-dev are already installed # gcc-arm-none-eabi is only needed for the modern build # as an alternative to dkP diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 000000000000..9d599aaf3f71 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,122 @@ +# Pokeemerald-Expansion Changelog + +# Version 1.6.2 + +## 🌋 *IMPORTANT CHANGES* 🌋 +### Battle changes +* Battler Types are now obtained via `GetBattlerType` instead of `gBattleMons[battlerId].type1/2/3` to better consider Roost. Be sure to update your custom battle effects to account for this change. + +## 🧬 General 🧬 +### Fixed +* Fixed Cheat Start not initiating time-based events by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3446 + +## 🐉 Pokémon 🐉 +### Changed +* Updated Cresselia's base stats to Gen 9 by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/3419 +* Updated Zacian/Zamazenta base stats to Gen 9 by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3421 +### Fixed +* Fixed Kleavor, Hisuian Sneasel and Sneasler missing their SV abilities by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/3391 +* Fixed Bergmite/Avalugg old and updated egg groups being switched by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3380 + +## 🤹 Moves 🤹 +### Changed +* Quick Draw now uses weighted RNG by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3399 +* Added `IS_BATTLER_TYPELESS` macro that checks if the specified battler has no valid type by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/3303 +### Fixed +* Fixed Protect failing if the user flinched on the previous turn by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3345 +* Fixed entry hazards not working properly being cleared on switch-in by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3316 + * This includes Toxic Spikes not working if Pecha Berry actived on the previous turn. +* Fixed Roost overwriting other type changing at the end of the turn (Soak, Forest's Curse, Color Change, etc.) by @BLourenco in https://github.com/rh-hideout/pokeemerald-expansion/pull/3258 + * Now it suppresses the user's Flying-type rather than remove and re-add it. +* Fixes Salt Cure visual bug if mon fainted by direct attack by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3388 +* Fixed Purifying Salt not preventing the use of Rest by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3399 +* Fixed Make it Rain lowering Sp. Attack twice if hitting 2 targets in double battles by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3441 +* Fixed Reflect Type not properly handle 3rd types by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/3303 +* Fixed form change triggered by switching not occuring when using moves like U-Turn or Baton Pass by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3463 +* Fixed Last Resort not counting Sleep Talk as used for its effect by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3378 + +## 🎭 Abilities 🎭 +### Changed +* Removed unused `STATUS3_CANT_SCORE_A_CRIT` by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3377 +* Moved Beads of Ruin and Sword of Ruin damage to the appropiate damage modifier functions by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3415 +### Fixed +* Fixed Intimidate increasing the attack of both opponents if one of them has Contrary in double battles by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3365 +* Fixed Battle/Shell Armor not preventing critical hits by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3377 +* Fixed Rivalry's effect being reversed by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3381 +* Fixed Rivalry lowering attack if either attacker or target were genderless by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3381 +* Fixed missing Poison Heal Ability Popup by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3385 +* Fixed Parental Bond not working at all by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3417 +* Fixed Beads of Ruin and Sword of Ruin damage modifiers by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3415 +* Fixed Sheer Force not negating effects that benefit the user (eg. Flame Charge, Power-Up Punch) by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3378 +* Fixed Strength Sap not healing the user when used on a Substitute by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3486 +* Fixed Substitute showing the "took damage for" message if Strength Sap was used on it by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3486 +* Fixed Weak Armor interrupting Multi Hit moves by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3497 + +## 🧶 Items 🧶 +### Fixed +* Fixed Shiny Charm doing too many rerolls by default by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3327 +* Fixed Berserk Gene activating for the wrong Pokémon double battles by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3363 +* Fixed Red Card not being consumed after opponent Sticky Web activation by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3364 +* Fixed implementation of Gen6 that didn't allow for the Exp Share flag to be set via script without setting the item to the Gen 6+ version by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3384 +* Fixed Kee Berry raising defense by 1 stage instead of 2 by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3409 +* Fixed Kee Berry incorrect stat raise message by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3409 +* Fixed Razor Fang not being able to be used directly even if `I_USE_EVO_HELD_ITEMS_FROM_BAG` was set to `TRUE` by @fdeblasio in https://github.com/rh-hideout/pokeemerald-expansion/pull/3456 + +## 🧹 Cleanup 🧹 +* `AbilityBattleEffects` uses `B_MSG_TERRAIN` constants for field terrain intro text by @LOuroboros in https://github.com/rh-hideout/pokeemerald-expansion/pull/3410 +* Removed all trailing whitespace by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3472 + +## 🧪 Test Runner 🧪 +### Added +* Flinch tests by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3345 +* Berserk Gene double battle tests by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3363 +* More specific Toxic Spikes tests by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3316 +* Red Card/Sticky Web test @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3364 +* Intimidate/Contrary double battle test by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3365 +* Critical Hit tests by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3377 +* Roost tests by @BLourenco in https://github.com/rh-hideout/pokeemerald-expansion/pull/3258 +* Rivalry tests by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3381 +* Various tests by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3385 + * Defeatist, Dragon's Maw, Earth Eater, Gale Wings, Poison Heal, Rocky Payload, Sap Sipper, Steelworker and Transistor. +* Various tests by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/3399 + * Beast Boost, Ice Scales, Neuroforce, Purifying Salt, Quick Draw and Sharpness. +* Berry tests @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3409 + * Full: Apicot, Custap, Ganlon, Jaboca, Kee, Lansat, Liechi, Maranga, Micle, Petaya, Rowap and Salac Berries. + * TODO: Starf Berry. +* Weather and type-specific tests by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3260 + * Full: Freezing, Hail, Moonlight, Morning Sun, Sandstorm, Snow, Solar Beam/Blade, Steel poisoning, Synthesis, Thunder and Weather Ball. + * Partial: Prankster, Safety Goggles, Aurora Veil, Hurricane, Leech Seed and OHKO moves. + * TODO: Harvest. +* Single Parental Bond test by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3417 +* Several tests by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3378 + * Full: Weak Armor, Last Resort, Stealth Rock. + * Completed Weak Armor tests by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3493 + * Partial: Defiant, Sheer Force, White Herb, Strength Sap. +### Changed +* Red Card tests now check if the item was consumed by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3364 +* Tests now cannot use `i` in their cycles to avoid messing with `PARAMETRIZE` by @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/3408 +* Moved battle tests off the heap by @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/3414 +* Moved Powder/Grass test to `move_flags` folder by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3260 +* Continuous `NOT x; NOT y;` are now not allowed in tests due to them not acting as one would expect by @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/3459 + * Test writers should use `NONE_OF { x; y; }` instead. +### Fixed +* Fixed CreateNPCTrainerPartyForTrainer test failing on modern by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3367 +* Fixed `RNG_CRITICAL_HIT` by @mrgriffin and @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3377 +* Fixed `ASSUMPTIONS` block not working by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/3368 + * Fixup by @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/3408 +* Fixed Beads of Ruin and Sword of Ruin damage tests by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/3415 +* Fixes test RNG by @mrgriffin and @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/3433 +* Fixed battle test estimateCost bug by @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/3448 +* Test cleanup and improvements by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/3449 + * Removed duplicated Prankster TO_DO test. + * Corrected Multi-hit test names (4 and 5 hits stated 35% instead of 15%). + * Grouped Maranga Berry's Physical vs Special tests using PARAMETRIZE. + * Improved Jaboca, Kee and Rowap tests by @AlexOn1ine +* Fixed `ModifyPersonalityForNature` by @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/3452 +* Fixed test_runner.c modern warning by @mrgriffin in https://github.com/rh-hideout/pokeemerald-expansion/pull/3451 + +## New Contributors +* @BLourenco made their first contribution in https://github.com/rh-hideout/pokeemerald-expansion/pull/3258 + +## Full Changelog +https://github.com/rh-hideout/pokeemerald-expansion/compare/expansion/1.6.1...expansion/1.6.2 diff --git a/INSTALL.md b/INSTALL.md index e74706d6aa30..f82649d7e2c3 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -82,7 +82,7 @@ Some tips before proceeding: 4. Certain packages are required to build pokeemerald. Install these packages by running the following command: ```bash - sudo apt install build-essential binutils-arm-none-eabi git libpng-dev + sudo apt install build-essential binutils-arm-none-eabi gcc-arm-none-eabi libnewlib-arm-none-eabi git libpng-dev ```
Note... @@ -150,9 +150,9 @@ Note that in msys2, Copy is Ctrl+Insert and Paste is Shift+Insert.
Notes... - > Note 1: While not shown, msys uses forward slashes `/` instead of backwards slashes `\` as the directory separator. - > Note 2: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "Downloads/My Downloads"`. - > Note 3: Windows path names are case-insensitive so adhering to capitalization isn’t needed. + > Note 1: While not shown, msys uses forward slashes `/` instead of backwards slashes `\` as the directory separator. + > Note 2: If the path has spaces, then the path must be wrapped with quotations, e.g. `cd "Downloads/My Downloads"`. + > Note 3: Windows path names are case-insensitive so adhering to capitalization isn’t needed. > Note 4: If libpng was saved elsewhere, you will need to specify the full path to where libpng was downloaded, e.g. `cd c:/devkitpro/msys2` if it was saved there.
@@ -329,28 +329,28 @@ Open Terminal and enter the following commands, depending on which distro you're ### Debian/Ubuntu-based distributions Run the following command to install the necessary packages: ```bash -sudo apt install build-essential binutils-arm-none-eabi git libpng-dev +sudo apt install build-essential binutils-arm-none-eabi gcc-arm-none-eabi libnewlib-arm-none-eabi git libpng-dev ``` Then proceed to [Choosing where to store pokeemerald (Linux)](#choosing-where-to-store-pokeemerald-linux).
Note for legacy repos... > If the repository you plan to build has an **[older revision of the INSTALL.md](https://github.com/pret/pokeemerald/blob/571c598/INSTALL.md)**, -> then you will have to install devkitARM. Install all the above packages except binutils-arm-none-eabi, and follow the instructions to +> then you will have to install devkitARM. Install all the above packages except for the arm-none-eabi packages, and follow the instructions to > [install devkitARM on Debian/Ubuntu-based distributions](#installing-devkitarm-on-debianubuntu-based-distributions).
### Arch Linux Run this command as root to install the necessary packages: ```bash -pacman -S base-devel arm-none-eabi-binutils git libpng +pacman -S base-devel arm-none-eabi-binutils arm-none-eabi-gcc arm-none-eabi-newlib git libpng ``` Then proceed to [Choosing where to store pokeemerald (Linux)](#choosing-where-to-store-pokeemerald-linux).
Note for legacy repos... > If the repository you plan to build has an **[older revision of the INSTALL.md](https://github.com/pret/pokeemerald/blob/571c598/INSTALL.md)**, -> then you will have to install devkitARM. Install all the above packages except binutils-arm-none-eabi, and follow the instructions to +> then you will have to install devkitARM. Install all the above packages except for the arm-none-eabi packages, and follow the instructions to > [install devkitARM on Arch Linux](#installing-devkitarm-on-arch-linux).
diff --git a/Makefile b/Makefile index 028fd8612c06..0d4be448f284 100644 --- a/Makefile +++ b/Makefile @@ -119,7 +119,7 @@ LIBPATH := -L ../../tools/agbcc/lib LIB := $(LIBPATH) -lgcc -lc -L../../libagbsyscall -lagbsyscall else CC1 = $(shell $(PATH_MODERNCC) --print-prog-name=cc1) -quiet -override CFLAGS += -mthumb -mthumb-interwork -O2 -mabi=apcs-gnu -mtune=arm7tdmi -march=armv4t -fno-toplevel-reorder -Wno-pointer-to-int-cast -std=gnu17 -Werror -Wall -Wno-strict-aliasing -Wno-attribute-alias +override CFLAGS += -mthumb -mthumb-interwork -O2 -mabi=apcs-gnu -mtune=arm7tdmi -march=armv4t -fno-toplevel-reorder -Wno-pointer-to-int-cast -std=gnu17 -Werror -Wall -Wno-strict-aliasing -Wno-attribute-alias -Woverride-init ifeq ($(ANALYZE),1) override CFLAGS += -fanalyzer endif @@ -345,7 +345,7 @@ $(C_BUILDDIR)/librfu_intr.o: CC1 := tools/agbcc/bin/agbcc_arm$(EXE) $(C_BUILDDIR)/librfu_intr.o: CFLAGS := -O2 -mthumb-interwork -quiet else $(C_BUILDDIR)/librfu_intr.o: CFLAGS := -mthumb-interwork -O2 -mabi=apcs-gnu -mtune=arm7tdmi -march=armv4t -fno-toplevel-reorder -Wno-pointer-to-int-cast -$(C_BUILDDIR)/pokedex_plus_hgss.o: CFLAGS := -mthumb -mthumb-interwork -O2 -mabi=apcs-gnu -mtune=arm7tdmi -march=armv4t -Wno-pointer-to-int-cast -std=gnu17 -Werror -Wall -Wno-strict-aliasing -Wno-attribute-alias +$(C_BUILDDIR)/pokedex_plus_hgss.o: CFLAGS := -mthumb -mthumb-interwork -O2 -mabi=apcs-gnu -mtune=arm7tdmi -march=armv4t -Wno-pointer-to-int-cast -std=gnu17 -Werror -Wall -Wno-strict-aliasing -Wno-attribute-alias -Woverride-init endif ifeq ($(DINFO),1) diff --git a/README.md b/README.md index 6ebb6f05da92..60a1a82c7a44 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,17 @@ -# pokeemerald Expansion +# pokeemerald-expansion -## What is the pokeemerald Expansion? +## What is pokeemerald-expansion? -The pokeemerald Expansion is a feature branch meant to be integrated into existing Pokémon Emerald hacks based off pret's [pokeemerald](https://github.com/pret/pokeemerald) decompilation project. This is ***NOT*** a standalone romhack, and as such, most features will be unavailable and/or unbalanced if played as is. +pokeemerald-expansion is a decomp hack base project based off pret's [pokeemerald](https://github.com/pret/pokeemerald) decompilation project. It's recommended that any new projects that plan on using it, to clone this repository instead of pret's vanilla repository, as we regurlarly incorporate pret's documentation changes. This is ***NOT*** a standalone romhack, and as such, most features will be unavailable and/or unbalanced if played as is. + +If you use pokeemerald-expansion in your hack, please add RHH (Rom Hacking Hideout) to your credits list. Optionally, you can list the version used, so it can help players know what features to expect. +You can phrase it as the following: +``` +Based off RHH's pokeemerald-expansion v1.6.2 https://github.com/rh-hideout/pokeemerald-expansion/ +``` ## What features are included? -- Configuration files that allows you to choose generation-specific behaviors. Full contents here: +- ***IMPORTANT*❗❗ Read through these to learn what features you can toggle**: - [Battle configurations](/include/config/battle.h) - [Pokémon configurations](/include/config/pokemon.h) - [Item configurations](/include/config/item.h) @@ -136,16 +142,16 @@ There are some mechanics, moves and abilities that are missing and being develop ### [Documentation on features can be found here](https://github.com/rh-hideout/pokeemerald-expansion/wiki) -## If I already have a project based on regular pokeemerald, can I use the pokeemerald Expansion +## If I already have a project based on regular pokeemerald, can I use pokeemerald-expansion? Yes! Keep in mind that we keep up with pret's documentation of pokeemerald, which means that if your project a bit old, you might get merge conflicts that you need to solve manually. - If you haven't set up a remote, run the command `git remote add RHH https://github.com/rh-hideout/pokeemerald-expansion`. - Once you have your remote set up, run the command `git pull RHH master`. -With this, you'll get the latest version of the Expansion, plus a couple of bugfixes that haven't been released into the next patch version :) +With this, you'll get the latest version of pokeemerald-expansion, plus a couple of bugfixes that haven't been released into the next patch version :) -## **How do I update my version of the pokeemerald Expansion?** +## **How do I update my version of pokeemerald-expansion?** - If you haven't set up a remote, run the command `git remote add RHH https://github.com/rh-hideout/pokeemerald-expansion`. -- Once you have your remote set up, run the command `git pull RHH expansion/1.6.0`. +- Once you have your remote set up, run the command `git pull RHH expansion/1.6.2`. ### Please consider crediting the entire [list of contributors](https://github.com/rh-hideout/pokeemerald-expansion/wiki/Credits) in your project, as they have all worked hard to develop this project :) @@ -162,7 +168,7 @@ The project was originally started by DizzyEgg alongside other contributors. The project has now gotten larger and DizzyEgg is now maintaining the project as part of the ROM Hacking Hideout community. Some members of this community are taking on larger roles to help maintain the project. -## What is ROM Hacking Hideout? +## What is the ROM Hacking Hideout? A Discord-based ROM hacking community that has many members who hack using the disassembly and decompilation projects for Pokémon. Quite a few contributors to the original feature branches by DizzyEgg were members of ROM Hacking Hideout. You can call it RHH for short! diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc index ffe481086bec..f6d5dc8feece 100644 --- a/asm/macros/battle_script.inc +++ b/asm/macros/battle_script.inc @@ -1366,6 +1366,31 @@ .byte \battler .endm + .macro trysetoctolock battler:req, failInstr:req + callnative BS_TrySetOctolock + .byte \battler + .4byte \failInstr + .endm + + .macro setglaiverush + callnative BS_SetGlaiveRush + .endm + + .macro tryrelicsong + callnative BS_TryRelicSong + .endm + + .macro setpledge jumpInstr:req + callnative BS_SetPledge + .4byte \jumpInstr + .endm + + .macro setpledgestatus battler:req sidestatus:req + callnative BS_SetPledgeStatus + .byte \battler + .4byte \sidestatus + .endm + .macro setzeffect callnative BS_SetZEffect .endm @@ -1494,7 +1519,7 @@ callnative BS_TryRecycleBerry .4byte \ptr .endm - + .macro updatedynamax callnative BS_UpdateDynamax .endm @@ -1504,6 +1529,23 @@ .4byte \ptr .endm + .macro trytrainerslidezmovemsg + callnative BS_TryTrainerSlideZMoveMsg + .endm + + .macro trytrainerslidemegaevolutionmsg + callnative BS_TryTrainerSlideMegaEvolutionMsg + .endm + + .macro trytrainerslidedynamaxmsg + callnative BS_TryTrainerSlideDynamaxMsg + .endm + + .macro tryhealpulse failInstr:req + callnative BS_TryHealPulse + .4byte \failInstr + .endm + @ various command changed to more readable macros .macro cancelmultiturnmoves battler:req various \battler, VARIOUS_CANCEL_MULTI_TURN_MOVES @@ -1695,11 +1737,6 @@ various \battler, VARIOUS_SET_LAST_USED_ABILITY .endm - .macro tryhealpulse battler:req, failInstr:req - various \battler, VARIOUS_TRY_HEAL_PULSE - .4byte \failInstr - .endm - .macro tryquash failInstr:req various BS_ATTACKER, VARIOUS_TRY_QUASH .4byte \failInstr @@ -2047,10 +2084,6 @@ .4byte \jumpInstr .endm - .macro applyplasmafists - various BS_ATTACKER, VARIOUS_APPLY_PLASMA_FISTS - .endm - .macro jumpifweatheraffected battler:req, flags:req, jumpInstr:req various \battler, VARIOUS_JUMP_IF_WEATHER_AFFECTED .4byte \flags @@ -2087,11 +2120,6 @@ .4byte \failInstr .endm - .macro setoctolock battler:req, failInstr:req - various \battler, VARIOUS_SET_OCTOLOCK - .4byte \failInstr - .endm - .macro cutonethirdhpraisestats failInstr:req various BS_ATTACKER, VARIOUS_CUT_1_3_HP_RAISE_STATS .4byte \failInstr @@ -2172,14 +2200,6 @@ various \battler, VARIOUS_ACTIVATE_TERRAIN_CHANGE_ABILITIES .endm - .macro trytrainerslidezmovemsg battler:req - various \battler, VARIOUS_TRY_TRAINER_SLIDE_MSG_Z_MOVE - .endm - - .macro trytrainerslidemegaevolutionmsg battler:req - various \battler, VARIOUS_TRY_TRAINER_SLIDE_MSG_MEGA_EVOLUTION - .endm - @ helpful macros .macro setstatchanger stat:req, stages:req, down:req setbyte sSTATCHANGER, \stat | \stages << 3 | \down << 7 diff --git a/asm/macros/movement.inc b/asm/macros/movement.inc index 793294004244..d9aff57c4a7e 100644 --- a/asm/macros/movement.inc +++ b/asm/macros/movement.inc @@ -162,7 +162,9 @@ create_movement_action figure_8, MOVEMENT_ACTION_FIGURE_8 create_movement_action fly_up, MOVEMENT_ACTION_FLY_UP create_movement_action fly_down, MOVEMENT_ACTION_FLY_DOWN - create_movement_action exit_pokeball, MOVEMENT_ACTION_EXIT_POKEBALL - create_movement_action enter_pokeball, MOVEMENT_ACTION_ENTER_POKEBALL + create_movement_action exit_pokeball, MOVEMENT_ACTION_EXIT_POKEBALL + create_movement_action enter_pokeball, MOVEMENT_ACTION_ENTER_POKEBALL + create_movement_action emote_double_exclamation_mark, MOVEMENT_ACTION_EMOTE_DOUBLE_EXCL_MARK + create_movement_action emote_x, MOVEMENT_ACTION_EMOTE_X create_movement_action step_end, MOVEMENT_ACTION_STEP_END diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 07c1970153dd..3a1cd720c39e 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -1009,6 +1009,10 @@ gBattleAnims_General:: .4byte General_SaltCureDamage @ B_ANIM_SALT_CURE_DAMAGE .4byte General_DynamaxGrowth @ B_ANIM_DYNAMAX_GROWTH .4byte General_SetWeather @ B_ANIM_MAX_SET_WEATHER + .4byte General_SyrupBombSpeedDrop @ B_ANIM_SYRUP_BOMB_SPEED_DROP + .4byte General_Rainbow @ B_ANIM_RAINBOW + .4byte General_SeaOfFire @ B_ANIM_SEA_OF_FIRE + .4byte General_Swamp @ B_ANIM_SWAMP .align 2 gBattleAnims_Special:: @@ -4060,58 +4064,57 @@ Move_BUG_BITE: end Move_CHARGE_BEAM: - loadspritegfx ANIM_TAG_BLACK_BALL_2 + loadspritegfx ANIM_TAG_ELECTRIC_ORBS + loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT + loadspritegfx ANIM_TAG_ELECTRICITY loadspritegfx ANIM_TAG_SPARK_2 - delay 0 - createvisualtask AnimTask_BlendColorCycle, 2, (F_PAL_BG | F_PAL_ATTACKER), -31, 1, 5, 5, RGB(31, 31, 22) - playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER - createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 32, 24, 190, 12, 0, 1, 0 - delay 0 - createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 80, 24, 22, 12, 0, 1, 0 - createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 156, 24, 121, 13, 0, 1, 1 - delay 0 - createvisualtask AnimTask_BlendColorCycle, 2, (F_PAL_BG | F_PAL_ATTACKER), -31, 1, 0, 0, RGB(31, 31, 22) - delay 10 - createvisualtask AnimTask_BlendColorCycle, 2, (F_PAL_BG | F_PAL_ATTACKER), -31, 1, 5, 5, RGB(31, 31, 22) - playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER - createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 100, 24, 60, 10, 0, 1, 0 - createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 170, 24, 42, 11, 0, 1, 1 - delay 0 - createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 238, 24, 165, 10, 0, 1, 1 - delay 0 - createvisualtask AnimTask_BlendColorCycle, 2, (F_PAL_BG | F_PAL_ATTACKER), -31, 1, 0, 0, RGB(31, 31, 22) - delay 20 - createvisualtask AnimTask_BlendColorCycle, 2, (F_PAL_BG | F_PAL_ATTACKER), -31, 1, 7, 7, RGB(31, 31, 22) - playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER - createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 32, 12, 0, 20, 0, 0 - createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 32, 12, 64, 20, 1, 0 - createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 32, 12, 128, 20, 0, 0 - createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 32, 12, 192, 20, 2, 0 - createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 16, 12, 32, 20, 0, 0 - createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 16, 12, 96, 20, 1, 0 - createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 16, 12, 160, 20, 0, 0 - createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 16, 12, 224, 20, 2, 0 - delay 4 - waitforvisualfinish - createvisualtask AnimTask_BlendColorCycle, 2, (F_PAL_BG | F_PAL_ATTACKER), -31, 1, 0, 0, RGB(31, 31, 22) - playsewithpan SE_M_THUNDER_WAVE, SOUND_PAN_ATTACKER - createsprite gZapCannonBallSpriteTemplate, ANIM_TARGET, 3, 10, 0, 0, 0, 30, 0 - createsprite gZapCannonSparkSpriteTemplate, ANIM_TARGET, 4, 10, 0, 16, 30, 0, 40, 0 - createsprite gZapCannonSparkSpriteTemplate, ANIM_TARGET, 4, 10, 0, 16, 30, 64, 40, 1 - createsprite gZapCannonSparkSpriteTemplate, ANIM_TARGET, 4, 10, 0, 16, 30, 128, 40, 0 - createsprite gZapCannonSparkSpriteTemplate, ANIM_TARGET, 4, 10, 0, 16, 30, 192, 40, 2 - createsprite gZapCannonSparkSpriteTemplate, ANIM_TARGET, 4, 10, 0, 8, 30, 32, 40, 0 - createsprite gZapCannonSparkSpriteTemplate, ANIM_TARGET, 4, 10, 0, 8, 30, 96, 40, 1 - createsprite gZapCannonSparkSpriteTemplate, ANIM_TARGET, 4, 10, 0, 8, 30, 160, 40, 0 - createsprite gZapCannonSparkSpriteTemplate, ANIM_TARGET, 4, 10, 0, 8, 30, 224, 40, 2 + setalpha 12, 8 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 0, 4, RGB_BLACK waitforvisualfinish - createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 5, 1 - delay 15 - waitplaysewithpan SE_M_THUNDERBOLT2, SOUND_PAN_TARGET, 19 - call ElectricityEffect + createvisualtask AnimTask_ElectricChargingParticles, 2, ANIM_ATTACKER, 20, 0, 2 + playsewithpan SE_M_CHARGE, SOUND_PAN_ATTACKER + delay 12 + createsprite gGrowingShockWaveOrbSpriteTemplate, ANIM_ATTACKER, 2 + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 2, 0, 11, RGB(31, 31, 22) + delay 50 + createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 1, 16, 0, 5 + createvisualtask AnimTask_ShakeMon, 2, ANIM_ATTACKER, 0, 4, 50, 1 + call SparkBeam + call SparkBeam + call SparkBeam + call SparkBeam + call SparkBeam + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 50, 1 + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 2, 11, 0, RGB(31, 31, 22) + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 2, 0, 11, RGB(31, 31, 22) + call SparkBeam + call SparkBeam + call SparkBeam + call SparkBeam + call SparkBeam + call SparkBeam + call SparkBeam + call SparkBeam + call SparkBeam + call SparkBeam + call SparkBeam + call SparkBeam + call SparkBeam + call SparkBeam + delay 20 + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 2, 11, 0, RGB(31, 31, 22) waitforvisualfinish + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 4, 4, 0, RGB_BLACK + blendoff end +SparkBeam: + createsprite gSparkBeamSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 0, 0 + delay 1 + createsprite gSparkBeamSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 0, 0 + delay 1 + return + Move_WOOD_HAMMER: loadspritegfx ANIM_TAG_WOOD_HAMMER loadspritegfx ANIM_TAG_WOOD_HAMMER_HAMMER @@ -4296,22 +4299,22 @@ Move_HEAL_ORDER: Move_HEAD_SMASH: loadspritegfx ANIM_TAG_IMPACT - call SetImpactBackground - createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 0 + loadspritegfx ANIM_TAG_ROCKS + createvisualtask AnimTask_SkullBashPosition, 2, 0 playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER waitforvisualfinish - delay 2 - createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 1 - waitforvisualfinish - createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 2, 0, 4, 1 - createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 6, 1 - createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 2 - createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 1 - loopsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET, 8, 3 + playse SE_BANG + call SetImpactBackground + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 2, 0, 40, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 10, 0, 40, 1 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 4, 0, 0, ANIM_TARGET, 0 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET + createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, -12, 32, 3, 4 + createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, 8, 31, 2, 2 + createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, -4, 28, 2, 3 + createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, 12, 30, 4, 3 waitforvisualfinish - clearmonbg ANIM_TARGET - blendoff - delay 2 + createvisualtask AnimTask_SkullBashPosition, 2, 1 restorebg waitbgfadein end @@ -4860,19 +4863,82 @@ Move_WONDER_ROOM:: end Move_PSYSHOCK: + loadspritegfx ANIM_TAG_RED_ORB_2 + loadspritegfx ANIM_TAG_POISON_JAB + loadspritegfx ANIM_TAG_GRAY_SMOKE + loadspritegfx ANIM_TAG_WISP_FIRE monbg ANIM_TARGET setalpha 8, 8 + playsewithpan SE_M_SUPERSONIC, SOUND_PAN_ATTACKER createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 10, 1 - createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATTACKER, 0, 2, 0, 8, RGB(31, 23, 0) + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATTACKER, 0, 2, 0, 8, RGB_WHITE waitforvisualfinish - loopsewithpan SE_M_SUPERSONIC, SOUND_PAN_TARGET, 10, 3 - createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 15, 1 - createvisualtask AnimTask_ScaleMonAndRestore, 5, -6, -6, 15, ANIM_TARGET, 1 + delay 10 + call PsyshockConverge waitforvisualfinish clearmonbg ANIM_TARGET blendoff end +PsyshockConverge: + createsprite gPsyshockOrbSpriteTemplate, ANIM_TARGET, 2, 40, 40, 16 + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET + delay 2 + createsprite gPsyshockOrbSpriteTemplate, ANIM_TARGET, 2, -40, -40, 16 + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET + delay 2 + createsprite gPsyshockOrbSpriteTemplate, ANIM_TARGET, 2, 0, 40, 16 + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET + delay 2 + createsprite gPsyshockOrbSpriteTemplate, ANIM_TARGET, 2, 0, -40, 16 + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET + delay 2 + createsprite gPsyshockOrbSpriteTemplate, ANIM_TARGET, 2, 40, -20, 16 + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET + delay 2 + createsprite gPsyshockOrbSpriteTemplate, ANIM_TARGET, 2, 40, 20, 16 + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET + delay 2 + createsprite gPsyshockOrbSpriteTemplate, ANIM_TARGET, 2, -40, -20, 16 + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET + delay 2 + createsprite gPsyshockOrbSpriteTemplate, ANIM_TARGET, 2, -40, 20, 16 + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET + delay 2 + createsprite gPsyshockOrbSpriteTemplate, ANIM_TARGET, 2, -20, 30, 16 + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET + delay 2 + createsprite gPsyshockOrbSpriteTemplate, ANIM_TARGET, 2, 20, -30, 16 + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET + delay 2 + createsprite gPsyshockOrbSpriteTemplate, ANIM_TARGET, 2, -20, -30, 16 + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET + delay 2 + createsprite gPsyshockOrbSpriteTemplate, ANIM_TARGET, 2, 20, 30, 16 + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET + delay 2 + createsprite gPsyshockOrbSpriteTemplate, ANIM_TARGET, 2, -40, 0, 16 + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET + delay 2 + createsprite gPsyshockOrbSpriteTemplate, ANIM_TARGET, 2, 40, 0, 16 + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET + delay 6 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 15, 1 + createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_TARGET, RGB_WHITE, 12, 0, 1 + createsprite gPsyshockSmokeSpriteTemplate, ANIM_TARGET, 2, 8, 8, 1, 0 + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET + delay 2 + createsprite gPsyshockSmokeSpriteTemplate, ANIM_TARGET, 2, -8, -8, 1, 0 + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET + delay 2 + createsprite gPsyshockSmokeSpriteTemplate, ANIM_TARGET, 2, 8, -8, 1, 0 + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET + delay 2 + createsprite gPsyshockSmokeSpriteTemplate, ANIM_TARGET, 2, -8, 8, 1, 0 + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET + delay 2 + return + Move_VENOSHOCK: loadspritegfx ANIM_TAG_POISON_BUBBLE loadspritegfx ANIM_TAG_TOXIC_BUBBLE @@ -5801,23 +5867,79 @@ Move_QUASH: Move_ACROBATICS: loadspritegfx ANIM_TAG_ROUND_SHADOW + loadspritegfx ANIM_TAG_WHITE_STREAK loadspritegfx ANIM_TAG_IMPACT monbg ANIM_TARGET setalpha 12, 8 playsewithpan SE_M_FLY, SOUND_PAN_ATTACKER createsprite gFlyBallUpSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 13, 336 waitforvisualfinish - playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET - createsprite gBounceBallLandSpriteTemplate, ANIM_TARGET, 3 - delay 7 - playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 0 - createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 5, 11, 1 + call SetSkyBg + call AcrobaticsSlashes waitforvisualfinish clearmonbg ANIM_TARGET - blendoff + visible ANIM_ATTACKER + call UnsetSkyBg end +AcrobaticsSlashes: + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 40, 1 + createsprite gAcrobaticsSlashesSpriteTemplate, ANIM_TARGET, 2, -10, 3 + playsewithpan SE_M_CUT, SOUND_PAN_TARGET + delay 1 + createsprite gAcrobaticsSlashesSpriteTemplate, ANIM_TARGET, 2, 24, -19 + playsewithpan SE_M_CUT, SOUND_PAN_TARGET + delay 1 + createsprite gAcrobaticsSlashesSpriteTemplate, ANIM_TARGET, 2, -28, -15 + playsewithpan SE_M_CUT, SOUND_PAN_TARGET + delay 2 + createsprite gAcrobaticsSlashesSpriteTemplate, ANIM_TARGET, 2, -6, -30 + playsewithpan SE_M_CUT, SOUND_PAN_TARGET + delay 1 + createsprite gAcrobaticsSlashesSpriteTemplate, ANIM_TARGET, 2, -20, 6 + playsewithpan SE_M_CUT, SOUND_PAN_TARGET + delay 1 + createsprite gAcrobaticsSlashesSpriteTemplate, ANIM_TARGET, 2, 28, 2 + playsewithpan SE_M_CUT, SOUND_PAN_TARGET + delay 2 + createsprite gAcrobaticsSlashesSpriteTemplate, ANIM_TARGET, 2, -14, -25 + playsewithpan SE_M_CUT, SOUND_PAN_TARGET + delay 1 + createsprite gAcrobaticsSlashesSpriteTemplate, ANIM_TARGET, 2, 9, -2 + playsewithpan SE_M_CUT, SOUND_PAN_TARGET + delay 2 + createsprite gAcrobaticsSlashesSpriteTemplate, ANIM_TARGET, 2, -1, 0 + playsewithpan SE_M_CUT, SOUND_PAN_TARGET + delay 1 + createsprite gAcrobaticsSlashesSpriteTemplate, ANIM_TARGET, 2, 21, 4 + playsewithpan SE_M_CUT, SOUND_PAN_TARGET + delay 2 + createsprite gAcrobaticsSlashesSpriteTemplate, ANIM_TARGET, 2, 28, 20 + playsewithpan SE_M_CUT, SOUND_PAN_TARGET + delay 2 + createsprite gAcrobaticsSlashesSpriteTemplate, ANIM_TARGET, 2, -7, 24 + playsewithpan SE_M_CUT, SOUND_PAN_TARGET + delay 2 + createsprite gAcrobaticsSlashesSpriteTemplate, ANIM_TARGET, 2, -11, 1 + playsewithpan SE_M_CUT, SOUND_PAN_TARGET + delay 2 + createsprite gAcrobaticsSlashesSpriteTemplate, ANIM_TARGET, 2, 12, -18 + playsewithpan SE_M_CUT, SOUND_PAN_TARGET + delay 2 + createsprite gAcrobaticsSlashesSpriteTemplate, ANIM_TARGET, 2, -21, -14 + playsewithpan SE_M_CUT, SOUND_PAN_TARGET + delay 1 + createsprite gAcrobaticsSlashesSpriteTemplate, ANIM_TARGET, 2, -29, 7 + playsewithpan SE_M_CUT, SOUND_PAN_TARGET + delay 2 + createsprite gAcrobaticsSlashesSpriteTemplate, ANIM_TARGET, 2, 15, 28 + playsewithpan SE_M_CUT, SOUND_PAN_TARGET + delay 1 + createsprite gAcrobaticsSlashesSpriteTemplate, ANIM_TARGET, 2, -21, -16 + playsewithpan SE_M_CUT, SOUND_PAN_TARGET + delay 2 + return + Move_REFLECT_TYPE: loadspritegfx ANIM_TAG_GUARD_RING @ring around user loadspritegfx ANIM_TAG_ICE_CHUNK @blue green color @@ -8312,17 +8434,99 @@ Move_FELL_STINGER: end Move_PHANTOM_FORCE: - choosetwoturnanim PhantomForceSetUp, PhantomForceUnleash -PhantomForceEnd: + loadspritegfx ANIM_TAG_ROUND_SHADOW + loadspritegfx ANIM_TAG_IMPACT + choosetwoturnanim PhantomForcePrep PhantomForceAttack +PhantomForceWaitEnd: + waitforvisualfinish + restorebg + waitbgfadein end -PhantomForceSetUp: +PhantomForcePrep: + monbg ANIM_ATTACKER + fadetobg BG_GHOST + waitbgfadein + delay 0 + playsewithpan SE_M_FAINT_ATTACK, SOUND_PAN_ATTACKER + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 18, 6, 1, 3 + createvisualtask AnimTask_AttackerFadeToInvisible, 2, 1 + waitforvisualfinish + clearmonbg ANIM_ATTACKER invisible ANIM_ATTACKER - goto PhantomForceEnd -PhantomForceUnleash: - visible ANIM_ATTACKER - goto PhantomForceEnd + delay 1 + goto PhantomForceWaitEnd +PhantomForceAttack: + loadspritegfx ANIM_TAG_PURPLE_FLAME + loadspritegfx ANIM_TAG_WHITE_SHADOW @Destiny Bond + monbg ANIM_ATTACKER + splitbgprio ANIM_ATTACKER + fadetobg BG_GHOST + waitbgfadein + delay 1 + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_IMPACT, 0, 12, 12, RGB(0, 0, 23) + setalpha 12, 8 + waitforvisualfinish + delay 10 + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER + createvisualtask AnimTask_PurpleFlamesOnTarget, 0x3 + createvisualtask AnimTask_DestinyBondWhiteShadow, 0x5, 0x0, 0x30 + delay 30 + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_IMPACT, 0, 12, 12, RGB(0, 0, 23) + waitforvisualfinish + createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, ANIM_TARGET, 2 + createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, ANIM_TARGET, 2 + createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, ANIM_TARGET, 2 + createvisualtask SoundTask_PlaySE1WithPanning, 5, 215, SOUND_PAN_TARGET + delay 3 + createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, ANIM_TARGET, 2 + createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, ANIM_DEF_PARTNER, 2 + createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, ANIM_ATK_PARTNER, 2 + createvisualtask SoundTask_PlaySE1WithPanning, 5, 215, SOUND_PAN_TARGET + delay 3 + createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, ANIM_TARGET, 2 + createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, ANIM_DEF_PARTNER, 2 + createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, ANIM_ATK_PARTNER, 2 + createvisualtask SoundTask_PlaySE1WithPanning, 5, 215, SOUND_PAN_TARGET + delay 3 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 12, 1 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_TARGET, 0, 2, 0, 13, RGB_PURPLE + waitforvisualfinish + delay 1 + playsewithpan SOUND_PAN_ATTACKER, 192 + createvisualtask AnimTask_NightShadeClone, 5, 10 + waitforvisualfinish + clearmonbg ANIM_ATTACKER + delay 1 + goto PhantomForceWaitEnd +PhantomForceBg: + fadetobg BG_DARK + waitbgfadeout + createvisualtask AnimTask_FadeScreenToWhite, 5 + waitbgfadein + return Move_TRICK_OR_TREAT: + loadspritegfx ANIM_TAG_EYE_SPARKLE + loadspritegfx ANIM_TAG_GHOSTLY_SPIRIT + fadetobg BG_NIGHTMARE + waitbgfadein + delay 10 + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 10, 1 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATTACKER, 0, 2, 0, 8, RGB(10, 2, 19) + waitforvisualfinish + playsewithpan SE_M_LEER, SOUND_PAN_ATTACKER + createvisualtask AnimTask_ScaryFace, 5 + delay 13 + waitforvisualfinish + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_TARGET, 2, 2, 0, 12, RGB(10, 2, 19) @;Deep purple + playsewithpan SE_M_NIGHTMARE, SOUND_PAN_TARGET + createsprite gCurseGhostSpriteTemplate, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 14, 1 + waitforvisualfinish + clearmonbg ANIM_TARGET + restorebg + waitbgfadein end Move_NOBLE_ROAR: @@ -16524,6 +16728,113 @@ Move_DOUBLE_SHOCK:: blendoff end +Move_SYRUP_BOMB:: + createvisualtask AnimTask_SyrupBomb, 0x5 + jumpargeq 0x0, FALSE, Move_SYRUP_BOMB_RED + jumpargeq 0x0, TRUE, Move_SYRUP_BOMB_YELLOW + +@ Credits to Dat.H A +Move_SYRUP_BOMB_RED: + loadspritegfx ANIM_TAG_SYRUP_BLOB_RED + loadspritegfx ANIM_TAG_SYRUP_SPLAT_RED + loadspritegfx ANIM_TAG_SYRUP_SHELL_RED + call SyrupBombProjectileRed + call SyrupBombProjectileRed + call SyrupBombProjectileRed + call SyrupBombProjectileRed + call SyrupBombProjectileRed + call SyrupBombProjectileRed + call SyrupBombProjectileRed + call SyrupBombProjectileRed + call SyrupBombProjectileRed + call SyrupBombProjectileRed + createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 3, 0, 15, 1 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_TARGET, 1, 2, 0, 12, RGB(20, 3, 3) + createsprite gSyrupBombRedHitParticleSpriteTemplate, ANIM_TARGET, 2, 42, 27, 20 + createsprite gSyrupBombRedHitParticleSpriteTemplate, ANIM_TARGET, 2, -27, 44, 20 + createsprite gSyrupBombRedHitParticleSpriteTemplate, ANIM_TARGET, 2, 39, -28, 20 + createsprite gSyrupBombRedHitParticleSpriteTemplate, ANIM_TARGET, 2, -42, -42, 20 + playsewithpan SE_M_DIG, SOUND_PAN_TARGET + delay 5 + createsprite gSyrupBombRedShellSpriteTemplate, ANIM_TARGET, 1, ANIM_TARGET, 100 + createsprite gSyrupBombRedHitParticleSpriteTemplate, ANIM_TARGET, 2, 0, 40, 20 + createsprite gSyrupBombRedHitParticleSpriteTemplate, ANIM_TARGET, 2, -8, -44, 20 + createsprite gSyrupBombRedHitParticleSpriteTemplate, ANIM_TARGET, 2, -46, -28, 20 + createsprite gSyrupBombRedHitParticleSpriteTemplate, ANIM_TARGET, 2, 46, 9, 20 + playsewithpan SE_M_DIG, SOUND_PAN_TARGET + delay 5 + waitsound + waitforvisualfinish + end +SyrupBombProjectileRed: + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER + createsprite gSyrupRedProjectileSpriteTemplate, ANIM_TARGET, 2, 20, 0, 40, 0 + delay 3 + return + +Move_SYRUP_BOMB_YELLOW: + loadspritegfx ANIM_TAG_SYRUP_BLOB_YELLOW + loadspritegfx ANIM_TAG_SYRUP_SPLAT_YELLOW + loadspritegfx ANIM_TAG_SYRUP_SHELL_YELLOW + call SyrupBombProjectileYellow + call SyrupBombProjectileYellow + call SyrupBombProjectileYellow + call SyrupBombProjectileYellow + call SyrupBombProjectileYellow + call SyrupBombProjectileYellow + call SyrupBombProjectileYellow + call SyrupBombProjectileYellow + call SyrupBombProjectileYellow + call SyrupBombProjectileYellow + createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 3, 0, 15, 1 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_TARGET, 1, 2, 0, 12, RGB(23, 13, 1) + createsprite gSyrupBombYellowHitParticleSpriteTemplate, ANIM_TARGET, 2, 42, 27, 20 + createsprite gSyrupBombYellowHitParticleSpriteTemplate, ANIM_TARGET, 2, -27, 44, 20 + createsprite gSyrupBombYellowHitParticleSpriteTemplate, ANIM_TARGET, 2, 39, -28, 20 + createsprite gSyrupBombYellowHitParticleSpriteTemplate, ANIM_TARGET, 2, -42, -42, 20 + playsewithpan SE_M_DIG, SOUND_PAN_TARGET + delay 5 + createsprite gSyrupBombYellowShellSpriteTemplate, ANIM_TARGET, 1, ANIM_TARGET, 100 + createsprite gSyrupBombYellowHitParticleSpriteTemplate, ANIM_TARGET, 2, 0, 40, 20 + createsprite gSyrupBombYellowHitParticleSpriteTemplate, ANIM_TARGET, 2, -8, -44, 20 + createsprite gSyrupBombYellowHitParticleSpriteTemplate, ANIM_TARGET, 2, -46, -28, 20 + createsprite gSyrupBombYellowHitParticleSpriteTemplate, ANIM_TARGET, 2, 46, 9, 20 + playsewithpan SE_M_DIG, SOUND_PAN_TARGET + delay 5 + waitsound + waitforvisualfinish + end +SyrupBombProjectileYellow: + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER + createsprite gSyrupYellowProjectileSpriteTemplate, ANIM_TARGET, 2, 20, 0, 40, 0 + delay 3 + return + +General_SyrupBombSpeedDrop:: + createvisualtask AnimTask_StickySyrup, 0x5 + jumpargeq 0x0, FALSE, SyrupBombSpeedDropRed + jumpargeq 0x0, TRUE, SyrupBombSpeedDropYellow + +SyrupBombSpeedDropRed: + loadspritegfx ANIM_TAG_SYRUP_BLOB_RED + loadspritegfx ANIM_TAG_SYRUP_SHELL_RED + loopsewithpan SE_M_TOXIC, SOUND_PAN_TARGET, 13, 6 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 3, 0, 15, 1 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_TARGET, 1, 2, 0, 12, RGB(20, 3, 3) + createsprite gSyrupBombRedShellBSpriteTemplate, ANIM_TARGET, 1, ANIM_TARGET, 60 + waitforvisualfinish + end + +SyrupBombSpeedDropYellow: + loadspritegfx ANIM_TAG_SYRUP_BLOB_YELLOW + loadspritegfx ANIM_TAG_SYRUP_SHELL_YELLOW + loopsewithpan SE_M_TOXIC, SOUND_PAN_TARGET, 13, 6 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 3, 0, 15, 1 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_TARGET, 1, 2, 0, 12, RGB(23, 13, 1) + createsprite gSyrupBombYellowShellBSpriteTemplate, ANIM_TARGET, 1, ANIM_TARGET, 60 + waitforvisualfinish + end + Move_TERA_BLAST:: Move_AXE_KICK:: Move_LAST_RESPECTS:: @@ -16572,7 +16883,6 @@ Move_PSYBLADE:: Move_HYDRO_STEAM:: Move_BLOOD_MOON:: Move_MATCHA_GOTCHA:: -Move_SYRUP_BOMB:: Move_IVY_CUDGEL:: end @to do @@ -26753,6 +27063,10 @@ General_HangedOn: end General_Rain: + call RainDrops + end + +RainDrops: loadspritegfx ANIM_TAG_RAIN_DROPS playsewithpan SE_M_RAIN_DANCE, SOUND_PAN_ATTACKER createvisualtask AnimTask_BlendBattleAnimPal, 10, (F_PAL_BG | F_PAL_BATTLERS), 2, 0, 4, RGB_BLACK @@ -26763,7 +27077,7 @@ General_Rain: waitforvisualfinish createvisualtask AnimTask_BlendBattleAnimPal, 10, (F_PAL_BG | F_PAL_BATTLERS), 2, 4, 0, RGB_BLACK waitforvisualfinish - end + return General_Sun: goto Move_SUNNY_DAY @@ -27190,9 +27504,9 @@ General_AffectionHangedOn:: createvisualtask AnimTask_SwayMon, 5, 0, 12, 4096, 4, ANIM_ATTACKER delay 15 createvisualtask AnimTask_AffectionHangedOn, 0x5 - jumpargeq 0x0, FRIENDSHIP_100_TO_149, General_AffectionHangedOn_3Hearts - jumpargeq 0x0, FRIENDSHIP_150_TO_199, General_AffectionHangedOn_4Hearts - jumpargeq 0x0, FRIENDSHIP_200_TO_254, General_AffectionHangedOn_5Hearts + jumpargeq 0x0, AFFECTION_THREE_HEARTS, General_AffectionHangedOn_3Hearts + jumpargeq 0x0, AFFECTION_FOUR_HEARTS, General_AffectionHangedOn_4Hearts + jumpargeq 0x0, AFFECTION_FIVE_HEARTS, General_AffectionHangedOn_5Hearts createsprite gRedHeartBurstSpriteTemplate, ANIM_ATTACKER, 3, -384, -31 General_AffectionHangedOn_5Hearts: createsprite gRedHeartBurstSpriteTemplate, ANIM_ATTACKER, 3, -128, -22 @@ -27208,6 +27522,75 @@ General_AffectionHangedOn_3Hearts: General_SaltCureDamage:: goto Status_Freeze +General_Rainbow:: + call RainDrops + delay 30 + loadspritegfx ANIM_TAG_SUNLIGHT + createvisualtask AnimTask_BlendBattleAnimPal, 10, (F_PAL_BG | F_PAL_BATTLERS), 1, 0, 6, RGB_WHITE + waitforvisualfinish + panse_adjustnone SE_M_PETAL_DANCE, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +1, 0 + call SunnyDayLightRay + call SunnyDayLightRay + call SunnyDayLightRay + waitforvisualfinish + createvisualtask AnimTask_BlendBattleAnimPal, 10, (F_PAL_BG | F_PAL_BATTLERS), 1, 6, 0, RGB_WHITE + waitforvisualfinish + delay 30 + fadetobg BG_RAINBOW + panse_adjustnone SE_M_ABSORB_2, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +1, 0 + delay 90 + blendoff + restorebg + waitbgfadein + clearmonbg ANIM_ATK_PARTNER + end + +General_SeaOfFire:: + loadspritegfx ANIM_TAG_SMALL_EMBER + monbg ANIM_DEF_PARTNER + splitbgprio ANIM_TARGET + playsewithpan SE_M_SACRED_FIRE2, SOUND_PAN_TARGET + call SeaOfFireTwisterDos + delay 3 + call SeaOfFireTwisterTres + waitforvisualfinish + clearmonbg ANIM_DEF_PARTNER + blendoff + end + +SeaOfFireTwisterDos: + createsprite gTwisterEmberSpriteTemplate, ANIM_TARGET, 2, 45, 90, 5, 70, 30 + delay 2 + createsprite gTwisterEmberSpriteTemplate, ANIM_TARGET, 2, 50, 85, 6, 60, 30 + delay 1 + createsprite gTwisterEmberSpriteTemplate, ANIM_TARGET, 2, 47, 77, 7, 60, 30 + delay 2 + createsprite gTwisterEmberSpriteTemplate, ANIM_TARGET, 2, 40, 86, 8, 50, 30 + delay 3 + createsprite gTwisterEmberSpriteTemplate, ANIM_TARGET, 2, 42, 82, 7, 45, 30 + delay 1 + createsprite gTwisterEmberSpriteTemplate, ANIM_TARGET, 2, 47, 83, 5, 38, 30 + delay 2 + return + +SeaOfFireTwisterTres: + createsprite gTwisterEmberSpriteTemplate, ANIM_TARGET, 2, 45, 90, 3, 45, 30 + delay 2 + createsprite gTwisterEmberSpriteTemplate, ANIM_TARGET, 2, 50, 85, 4, 39, 30 + delay 1 + createsprite gTwisterEmberSpriteTemplate, ANIM_TARGET, 2, 47, 77, 5, 39, 30 + delay 2 + createsprite gTwisterEmberSpriteTemplate, ANIM_TARGET, 2, 40, 86, 6, 32, 30 + delay 3 + createsprite gTwisterEmberSpriteTemplate, ANIM_TARGET, 2, 42, 82, 5, 27, 30 + delay 1 + createsprite gTwisterEmberSpriteTemplate, ANIM_TARGET, 2, 47, 83, 3, 24, 30 + delay 2 + return + +General_Swamp:: @ To do + goto Move_HAZE + SnatchMoveTrySwapFromSubstitute: createvisualtask AnimTask_IsAttackerBehindSubstitute, 2 jumprettrue SnatchMoveSwapSubstituteForMon diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index ca6f73e908fd..a88d270ef7dd 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -188,7 +188,7 @@ gBattleScriptsForMoveEffects:: .4byte BattleScript_EffectMemento @ EFFECT_MEMENTO .4byte BattleScript_EffectHit @ EFFECT_FACADE .4byte BattleScript_EffectFocusPunch @ EFFECT_FOCUS_PUNCH - .4byte BattleScript_EffectSmellingsalt @ EFFECT_SMELLINGSALT + .4byte BattleScript_EffectSmellingsalt @ EFFECT_SMELLING_SALTS .4byte BattleScript_EffectFollowMe @ EFFECT_FOLLOW_ME .4byte BattleScript_EffectNaturePower @ EFFECT_NATURE_POWER .4byte BattleScript_EffectCharge @ EFFECT_CHARGE @@ -231,7 +231,7 @@ gBattleScriptsForMoveEffects:: .4byte BattleScript_EffectCalmMind @ EFFECT_CALM_MIND .4byte BattleScript_EffectDragonDance @ EFFECT_DRAGON_DANCE .4byte BattleScript_EffectCamouflage @ EFFECT_CAMOUFLAGE - .4byte BattleScript_EffectHit @ EFFECT_PLEDGE + .4byte BattleScript_EffectPledge @ EFFECT_PLEDGE .4byte BattleScript_EffectFling @ EFFECT_FLING .4byte BattleScript_EffectNaturalGift @ EFFECT_NATURAL_GIFT .4byte BattleScript_EffectWakeUpSlap @ EFFECT_WAKE_UP_SLAP @@ -440,45 +440,122 @@ gBattleScriptsForMoveEffects:: .4byte BattleScript_EffectSyrupBomb @ EFFECT_SYRUP_BOMB .4byte BattleScript_EffectHit @ EFFECT_IVY_CUDGEL .4byte BattleScript_EffectMaxMove @ EFFECT_MAX_MOVE + .4byte BattleScript_EffectGlaiveRush @ EFFECT_GLAIVE_RUSH + .4byte BattleScript_EffectBrickBreak @ EFFECT_RAGING_BULL + +BattleScript_EffectGlaiveRush:: + call BattleScript_EffectHit_Ret + jumpifhalfword CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE, BattleScript_TryFaintMon + setglaiverush + goto BattleScript_TryFaintMon BattleScript_EffectSyrupBomb:: setmoveeffect MOVE_EFFECT_SYRUP_BOMB - call BattleScript_EffectHit_Ret - seteffectwithchance - tryfaintmon BS_TARGET + goto BattleScript_EffectHit + +BattleScript_SyrupBombActivates:: printstring STRINGID_TARGETCOVEREDINSTICKYCANDYSYRUP waitmessage B_WAIT_TIME_LONG - goto BattleScript_MoveEnd + return BattleScript_SyrupBombEndTurn:: - setbyte sSTAT_ANIM_PLAYED, FALSE - copybyte sBATTLER, gBattlerTarget - jumpifholdeffect BS_TARGET, HOLD_EFFECT_CLEAR_AMULET, BattleScript_SyrupBombItemNoStatLoss - jumpifability BS_TARGET, ABILITY_CLEAR_BODY, BattleScript_SyrupBombAbilityNoStatLoss - jumpifability BS_TARGET, ABILITY_FULL_METAL_BODY, BattleScript_SyrupBombAbilityNoStatLoss - jumpifability BS_TARGET, ABILITY_WHITE_SMOKE, BattleScript_SyrupBombAbilityNoStatLoss - jumpifstat BS_TARGET, CMP_GREATER_THAN, BIT_SPEED, MIN_STAT_STAGE, BattleScript_SyrupBombLowerSpeed - goto BattleScript_SyrupBombEnd2 -BattleScript_SyrupBombLowerSpeed: - playstatchangeanimation BS_ATTACKER, BIT_SPEED, STAT_CHANGE_NEGATIVE - setbyte sSTAT_ANIM_PLAYED, TRUE + flushtextbox + playanimation BS_ATTACKER, B_ANIM_SYRUP_BOMB_SPEED_DROP setstatchanger STAT_SPEED, 1, TRUE - statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_SyrupBombEnd2 - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_SyrupBombEnd2 + statbuffchange STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_NOT_PROTECT_AFFECTED, BattleScript_SyrupBombTurnDmgEnd printfromtable gStatDownStringIds waitmessage B_WAIT_TIME_LONG -BattleScript_SyrupBombItemNoStatLoss:: - call BattleScript_ItemNoStatLoss - goto BattleScript_SyrupBombEnd2 -BattleScript_SyrupBombAbilityNoStatLoss:: - call BattleScript_AbilityNoStatLoss -BattleScript_SyrupBombEnd2:: +BattleScript_SyrupBombTurnDmgEnd: end2 BattleScript_EffectMatchaGotcha:: setmoveeffect MOVE_EFFECT_BURN goto BattleScript_EffectAbsorb +BattleScript_EffectPledge:: + attackcanceler + setpledge BattleScript_HitFromAccCheck + attackstring + pause B_WAIT_TIME_MED + ppreduce + printstring STRINGID_WAITINGFORPARTNERSMOVE + waitmessage B_WAIT_TIME_LONG + goto BattleScript_MoveEnd + +BattleScript_EffectCombinedPledge_Water:: + call BattleScript_EffectHit_Pledge + setpledgestatus BS_ATTACKER, SIDE_STATUS_RAINBOW + pause B_WAIT_TIME_SHORTEST + printstring STRINGID_ARAINBOWAPPEAREDONSIDE + waitmessage B_WAIT_TIME_LONG + playanimation BS_ATTACKER, B_ANIM_RAINBOW + waitanimation + goto BattleScript_MoveEnd + +BattleScript_TheRainbowDisappeared:: + printstring STRINGID_THERAINBOWDISAPPEARED + waitmessage B_WAIT_TIME_LONG + end2 + +BattleScript_EffectCombinedPledge_Fire:: + call BattleScript_EffectHit_Pledge + setpledgestatus BS_TARGET, SIDE_STATUS_SEA_OF_FIRE + pause B_WAIT_TIME_SHORTEST + printstring STRINGID_SEAOFFIREENVELOPEDSIDE + waitmessage B_WAIT_TIME_LONG + playanimation BS_TARGET, B_ANIM_SEA_OF_FIRE + waitanimation + goto BattleScript_MoveEnd + +BattleScript_HurtByTheSeaOfFire:: + printstring STRINGID_HURTBYTHESEAOFFIRE + waitmessage B_WAIT_TIME_LONG + goto BattleScript_DoTurnDmg + +BattleScript_TheSeaOfFireDisappeared:: + printstring STRINGID_THESEAOFFIREDISAPPEARED + waitmessage B_WAIT_TIME_LONG + end2 + +BattleScript_EffectCombinedPledge_Grass:: + call BattleScript_EffectHit_Pledge + setpledgestatus BS_TARGET, SIDE_STATUS_SWAMP + pause B_WAIT_TIME_SHORTEST + printstring STRINGID_SWAMPENVELOPEDSIDE + waitmessage B_WAIT_TIME_LONG + playanimation BS_TARGET, B_ANIM_SWAMP + waitanimation + goto BattleScript_MoveEnd + +BattleScript_TheSwampDisappeared:: + printstring STRINGID_THESWAMPDISAPPEARED + waitmessage B_WAIT_TIME_LONG + end2 + +BattleScript_EffectHit_Pledge:: + pause B_WAIT_TIME_MED + printstring STRINGID_THETWOMOVESBECOMEONE + waitmessage B_WAIT_TIME_LONG + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + ppreduce + critcalc + damagecalc + adjustdamage + attackanimation + waitanimation + effectivenesssound + hitanimation BS_TARGET + waitstate + healthbarupdate BS_TARGET + datahpupdate BS_TARGET + critmessage + waitmessage B_WAIT_TIME_LONG + resultmessage + waitmessage B_WAIT_TIME_LONG + seteffectwithchance + tryfaintmon BS_TARGET + return + BattleScript_EffectSaltCure: call BattleScript_EffectHit_Ret tryfaintmon BS_TARGET @@ -541,7 +618,6 @@ BattleScript_EffectMakeItRain: BattleScript_MakeItRainContinuous: setmoveeffect MOVE_EFFECT_PAYDAY call BattleScript_EffectHit_Ret - seteffectwithchance tryfaintmon BS_TARGET setmoveeffect MOVE_EFFECT_SP_ATK_MINUS_1 | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN seteffectprimary @@ -637,6 +713,7 @@ BattleScript_EffectAttackUpUserAlly_TryAlly: BattleScript_EffectAttackUpUserAlly_End: goto BattleScript_MoveEnd BattleScript_EffectAttackUpUserAlly_TryAlly_: + jumpifability BS_ATTACKER_PARTNER, ABILITY_SOUNDPROOF, BattleScript_EffectAttackUpUserAlly_TryAllyBlocked setstatchanger STAT_ATK, 1, FALSE statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_EffectAttackUpUserAlly_End jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_EffectAttackUpUserAlly_AllyAnim @@ -651,6 +728,13 @@ BattleScript_EffectAttackUpUserAlly_AllyAnim: waitmessage B_WAIT_TIME_LONG goto BattleScript_EffectAttackUpUserAlly_End +BattleScript_EffectAttackUpUserAlly_TryAllyBlocked: + copybyte sBATTLER, gBattlerTarget + call BattleScript_AbilityPopUpTarget + printstring STRINGID_PKMNSXBLOCKSY2 + waitmessage B_WAIT_TIME_LONG + goto BattleScript_MoveEnd + BattleScript_EffectTeatime:: attackcanceler attackstring @@ -665,10 +749,10 @@ BattleScript_TeatimeLoop: jumpifabsorbaffected BS_TARGET, BattleScript_Teatimesorb jumpifmotoraffected BS_TARGET, BattleScript_Teatimemotor jumpifteainvulnerable BS_TARGET, BattleScript_Teatimevul @ in semi-invulnerable state OR held item is not a Berry - orword gHitMarker, HITMARKER_NO_ANIMATIONS | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_DISGUISE + orword gHitMarker, HITMARKER_DISABLE_ANIMATION | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_DISGUISE setbyte sBERRY_OVERRIDE, TRUE @ override the requirements for eating berries consumeberry BS_TARGET, TRUE @ consume the berry, then restore the item from changedItems - bicword gHitMarker, HITMARKER_NO_ANIMATIONS | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_DISGUISE + bicword gHitMarker, HITMARKER_DISABLE_ANIMATION | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_DISGUISE setbyte sBERRY_OVERRIDE, FALSE removeitem BS_TARGET moveendto MOVEEND_NEXT_TARGET @@ -968,9 +1052,9 @@ BattleScript_EffectFlingConsumeBerry: savebattleritem BS_TARGET battleritemtolastuseditem BS_TARGET setbyte sBERRY_OVERRIDE, 1 @ override the requirements for eating berries - orword gHitMarker, HITMARKER_NO_ANIMATIONS + orword gHitMarker, HITMARKER_DISABLE_ANIMATION consumeberry BS_TARGET, TRUE - bicword gHitMarker, HITMARKER_NO_ANIMATIONS + bicword gHitMarker, HITMARKER_DISABLE_ANIMATION setbyte sBERRY_OVERRIDE, 0 restorebattleritem BS_TARGET BattleScript_FlingEnd: @@ -1073,7 +1157,7 @@ BattleScript_EffectOctolock: accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE attackstring ppreduce - setoctolock BS_TARGET, BattleScript_ButItFailed + trysetoctolock BS_TARGET, BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_CANTESCAPEBECAUSEOFCURRENTMOVE @@ -1081,29 +1165,19 @@ BattleScript_EffectOctolock: goto BattleScript_MoveEnd BattleScript_OctolockEndTurn:: - setbyte sSTAT_ANIM_PLAYED, FALSE - jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_DEF, MIN_STAT_STAGE, BattleScript_OctolockLowerDef - jumpifstat BS_TARGET, CMP_GREATER_THAN, STAT_SPDEF, MIN_STAT_STAGE, BattleScript_OctolockTryLowerSpDef - goto BattleScript_OctolockEnd2 -BattleScript_OctolockLowerDef: - jumpifability BS_TARGET, ABILITY_BIG_PECKS, BattleScript_OctolockTryLowerSpDef playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_SPDEF, STAT_CHANGE_NEGATIVE - setbyte sSTAT_ANIM_PLAYED, TRUE setstatchanger STAT_DEF, 1, TRUE - statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_OctolockTryLowerSpDef - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_OctolockTryLowerSpDef - printfromtable gStatUpStringIds + statbuffchange STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_NOT_PROTECT_AFFECTED, BattleScript_OctolockTryLowerSpDef +BattleScript_OctolockTryLowerDef: + printfromtable gStatDownStringIds waitmessage B_WAIT_TIME_LONG BattleScript_OctolockTryLowerSpDef: - jumpifbyte CMP_EQUAL, sSTAT_ANIM_PLAYED, TRUE, BattleScript_OctolockSkipSpDefAnim - playstatchangeanimation BS_ATTACKER, BIT_SPDEF, STAT_CHANGE_NEGATIVE -BattleScript_OctolockSkipSpDefAnim: setstatchanger STAT_SPDEF, 1, TRUE - statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_OctolockEnd2 - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_DECREASE, BattleScript_OctolockEnd2 - printfromtable gStatUpStringIds + statbuffchange STAT_CHANGE_ALLOW_PTR | STAT_CHANGE_NOT_PROTECT_AFFECTED, BattleScript_OctlockTurnDmgEnd +BattleScript_OctolockTurnDmgPrintMsg: + printfromtable gStatDownStringIds waitmessage B_WAIT_TIME_LONG -BattleScript_OctolockEnd2:: +BattleScript_OctlockTurnDmgEnd: end2 BattleScript_EffectPoltergeist: @@ -1189,9 +1263,8 @@ BattleScript_HyperspaceFuryRemoveProtect:: BattleScript_EffectPlasmaFists: call BattleScript_EffectHit_Ret - seteffectwithchance tryfaintmon BS_TARGET - applyplasmafists + orword gFieldStatuses, STATUS_FIELD_ION_DELUGE printstring STRINGID_IONDELUGEON waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd @@ -1254,9 +1327,9 @@ BattleScript_EffectStuffCheeks:: waitanimation BattleScript_StuffCheeksEatBerry: setbyte sBERRY_OVERRIDE, 1 - orword gHitMarker, HITMARKER_NO_ANIMATIONS + orword gHitMarker, HITMARKER_DISABLE_ANIMATION consumeberry BS_ATTACKER, TRUE - bicword gHitMarker, HITMARKER_NO_ANIMATIONS + bicword gHitMarker, HITMARKER_DISABLE_ANIMATION setbyte sBERRY_OVERRIDE, 0 removeitem BS_ATTACKER setstatchanger STAT_DEF, 2, FALSE @@ -1367,12 +1440,12 @@ BattleScript_NoMoveEffect: goto BattleScript_EffectHit BattleScript_EffectRelicSong: - setmoveeffect MOVE_EFFECT_RELIC_SONG | MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN + setmoveeffect MOVE_EFFECT_SLEEP call BattleScript_EffectHit_Ret - seteffectwithchance - argumentstatuseffect tryfaintmon BS_TARGET - goto BattleScript_MoveEnd + moveendall + tryrelicsong + end BattleScript_EffectAllySwitch: attackcanceler @@ -1491,6 +1564,7 @@ BattleScript_StrengthSapHp: jumpifstatus3 BS_ATTACKER, STATUS3_HEAL_BLOCK, BattleScript_MoveEnd jumpiffullhp BS_ATTACKER, BattleScript_MoveEnd manipulatedamage DMG_BIG_ROOT + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER printstring STRINGID_PKMNENERGYDRAINED @@ -1519,11 +1593,11 @@ BattleScript_MoveEffectIncinerate:: BattleScript_MoveEffectBugBite:: printstring STRINGID_BUGBITE waitmessage B_WAIT_TIME_LONG - orword gHitMarker, HITMARKER_NO_ANIMATIONS + orword gHitMarker, HITMARKER_DISABLE_ANIMATION setbyte sBERRY_OVERRIDE, 1 @ override the requirements for eating berries savetarget consumeberry BS_ATTACKER, FALSE - bicword gHitMarker, HITMARKER_NO_ANIMATIONS + bicword gHitMarker, HITMARKER_DISABLE_ANIMATION setbyte sBERRY_OVERRIDE, 0 trysymbiosis restoretarget @@ -2134,7 +2208,7 @@ BattleScript_EffectFinalGambit: BattleScript_EffectHitSwitchTarget: call BattleScript_EffectHit_Ret tryfaintmon BS_TARGET - moveendall + jumpiffainted BS_TARGET, TRUE, BattleScript_MoveEnd jumpifability BS_TARGET, ABILITY_SUCTION_CUPS, BattleScript_AbilityPreventsPhasingOut jumpifstatus3 BS_TARGET, STATUS3_ROOTED, BattleScript_PrintMonIsRooted jumpiftargetdynamaxed BattleScript_HitSwitchTargetDynamaxed @@ -2638,7 +2712,7 @@ BattleScript_EffectHealPulse: jumpifstatus3 BS_TARGET, STATUS3_HEAL_BLOCK, BattleScript_MoveUsedHealBlockPrevents accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON jumpifsubstituteblocks BattleScript_ButItFailed - tryhealpulse BS_TARGET, BattleScript_AlreadyAtFullHp + tryhealpulse BattleScript_AlreadyAtFullHp attackanimation waitanimation healthbarupdate BS_TARGET @@ -3156,6 +3230,7 @@ BattleScript_HitFromAtkAnimation:: resultmessage waitmessage B_WAIT_TIME_LONG seteffectwithchance +BattleScript_TryFaintMon:: tryfaintmon BS_TARGET BattleScript_MoveEnd:: moveendall @@ -3180,6 +3255,7 @@ BattleScript_EffectHit_Ret:: waitmessage B_WAIT_TIME_LONG resultmessage waitmessage B_WAIT_TIME_LONG + seteffectwithchance return BattleScript_EffectNaturalGift: @@ -3374,7 +3450,6 @@ BattleScript_EffectPoisonHit: BattleScript_EffectAbsorb:: call BattleScript_EffectHit_Ret - seteffectwithchance jumpifstatus3 BS_ATTACKER, STATUS3_HEAL_BLOCK, BattleScript_AbsorbHealBlock setdrainedhp manipulatedamage DMG_BIG_ROOT @@ -3809,7 +3884,6 @@ BattleScript_EffectFlinchHit:: BattleScript_EffectFlinchStatus: setmoveeffect MOVE_EFFECT_FLINCH call BattleScript_EffectHit_Ret - seteffectwithchance argumentstatuseffect tryfaintmon BS_TARGET goto BattleScript_MoveEnd @@ -7367,7 +7441,7 @@ BattleScript_StealthRockFree:: printstring STRINGID_PKMNBLEWAWAYSTEALTHROCK waitmessage B_WAIT_TIME_LONG return - + BattleScript_SteelsurgeFree:: printstring STRINGID_PKMNBLEWAWAYSHARPSTEEL waitmessage B_WAIT_TIME_LONG @@ -7760,7 +7834,7 @@ BattleScript_FocusPunchSetUp:: BattleScript_MegaEvolution:: flushtextbox - trytrainerslidemegaevolutionmsg BS_ATTACKER + trytrainerslidemegaevolutionmsg printstring STRINGID_MEGAEVOREACTING BattleScript_MegaEvolutionAfterString: waitmessage B_WAIT_TIME_LONG @@ -7776,7 +7850,7 @@ BattleScript_MegaEvolutionAfterString: BattleScript_WishMegaEvolution:: flushtextbox - trytrainerslidemegaevolutionmsg BS_ATTACKER + trytrainerslidemegaevolutionmsg printstring STRINGID_FERVENTWISHREACHED goto BattleScript_MegaEvolutionAfterString @@ -7804,7 +7878,7 @@ BattleScript_PrimalReversionRet:: BattleScript_UltraBurst:: flushtextbox - trytrainerslidezmovemsg BS_ATTACKER + trytrainerslidezmovemsg printstring STRINGID_ULTRABURSTREACTING waitmessage B_WAIT_TIME_LONG setbyte gIsCriticalHit, 0 @@ -7848,7 +7922,7 @@ BattleScript_AttackerFormChangeMoveEffect:: printstring STRINGID_PKMNTRANSFORMED waitmessage B_WAIT_TIME_LONG handleformchange BS_ATTACKER, 2 - end3 + return BattleScript_BallFetch:: call BattleScript_AbilityPopUp @@ -8578,13 +8652,6 @@ BattleScript_IntimidateLoop: jumpiftargetally BattleScript_IntimidateLoopIncrement jumpifabsent BS_TARGET, BattleScript_IntimidateLoopIncrement jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_IntimidateLoopIncrement - jumpifability BS_TARGET, ABILITY_HYPER_CUTTER, BattleScript_IntimidatePrevented -.if B_UPDATED_INTIMIDATE >= GEN_8 - jumpifability BS_TARGET, ABILITY_INNER_FOCUS, BattleScript_IntimidatePrevented - jumpifability BS_TARGET, ABILITY_SCRAPPY, BattleScript_IntimidatePrevented - jumpifability BS_TARGET, ABILITY_OWN_TEMPO, BattleScript_IntimidatePrevented - jumpifability BS_TARGET, ABILITY_OBLIVIOUS, BattleScript_IntimidatePrevented -.endif jumpifability BS_TARGET, ABILITY_GUARD_DOG, BattleScript_IntimidateInReverse BattleScript_IntimidateEffect: copybyte sBATTLER, gBattlerAttacker @@ -8617,16 +8684,6 @@ BattleScript_IntimidateContrary_WontIncrease: printstring STRINGID_TARGETSTATWONTGOHIGHER goto BattleScript_IntimidateEffect_WaitString -BattleScript_IntimidatePrevented: - call BattleScript_AbilityPopUp - pause B_WAIT_TIME_LONG - setbyte gBattleCommunication STAT_ATK - stattextbuffer BS_TARGET - printstring STRINGID_STATWASNOTLOWERED - waitmessage B_WAIT_TIME_LONG - call BattleScript_TryAdrenalineOrb - goto BattleScript_IntimidateLoopIncrement - BattleScript_IntimidateInReverse: copybyte sBATTLER, gBattlerTarget call BattleScript_AbilityPopUpTarget @@ -8716,6 +8773,13 @@ BattleScript_CostarActivates:: waitmessage B_WAIT_TIME_LONG end3 +BattleScript_ZeroToHeroActivates:: + pause B_WAIT_TIME_SHORT + call BattleScript_AbilityPopUp + printstring STRINGID_ZEROTOHEROTRANSFORMATION + waitmessage B_WAIT_TIME_LONG + end3 + BattleScript_AttackWeakenedByStrongWinds:: pause B_WAIT_TIME_SHORT printstring STRINGID_ATTACKWEAKENEDBSTRONGWINDS @@ -8933,7 +8997,7 @@ BattleScript_AbilityNoStatLoss:: BattleScript_ItemNoStatLoss:: pause B_WAIT_TIME_SHORT - printstring STRINGID_STATWASNOTLOWERED + printstring STRINGID_CLEARAMULETWONTLOWERSTATS waitmessage B_WAIT_TIME_LONG return @@ -9142,6 +9206,7 @@ BattleScript_WeakArmorActivates:: jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_FELL_EMPTY, BattleScript_WeakArmorActivatesSpeed pause B_WAIT_TIME_SHORTEST printfromtable gStatDownStringIds + bichalfword gMoveResultFlags, MOVE_RESULT_MISSED @ Set by statbuffchange when stat can't be decreased waitmessage B_WAIT_TIME_LONG goto BattleScript_WeakArmorActivatesSpeed BattleScript_WeakArmorDefAnim: @@ -9150,12 +9215,17 @@ BattleScript_WeakArmorDefAnim: printstring STRINGID_TARGETABILITYSTATLOWER waitmessage B_WAIT_TIME_LONG BattleScript_WeakArmorActivatesSpeed: +.if B_WEAK_ARMOR_SPEED >= GEN_7 setstatchanger STAT_SPEED, 2, FALSE +.else + setstatchanger STAT_SPEED, 1, FALSE +.endif statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_WeakArmorActivatesEnd jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, B_MSG_STAT_WONT_INCREASE, BattleScript_WeakArmorSpeedAnim jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_ROSE_EMPTY, BattleScript_WeakArmorActivatesEnd pause B_WAIT_TIME_SHORTEST printstring STRINGID_TARGETSTATWONTGOHIGHER + bichalfword gMoveResultFlags, MOVE_RESULT_MISSED waitmessage B_WAIT_TIME_LONG goto BattleScript_WeakArmorActivatesEnd BattleScript_WeakArmorSpeedAnim: @@ -10027,7 +10097,7 @@ BattleScript_JabocaRowapBerryActivate_Dmg: @ z moves / effects BattleScript_ZMoveActivateDamaging:: flushtextbox - trytrainerslidezmovemsg BS_ATTACKER + trytrainerslidezmovemsg printstring STRINGID_ZPOWERSURROUNDS playanimation BS_ATTACKER, B_ANIM_ZMOVE_ACTIVATE, NULL printstring STRINGID_ZMOVEUNLEASHED @@ -10036,7 +10106,7 @@ BattleScript_ZMoveActivateDamaging:: BattleScript_ZMoveActivateStatus:: flushtextbox - trytrainerslidezmovemsg BS_ATTACKER + trytrainerslidezmovemsg savetarget printstring STRINGID_ZPOWERSURROUNDS playanimation BS_ATTACKER, B_ANIM_ZMOVE_ACTIVATE, NULL @@ -10627,6 +10697,7 @@ BattleScript_EffectSteelsurge:: BattleScript_DynamaxBegins:: flushtextbox + trytrainerslidedynamaxmsg returnatktoball pause B_WAIT_TIME_SHORT returntoball BS_SCRIPTING diff --git a/data/battle_scripts_2.s b/data/battle_scripts_2.s index e8e9358771ff..46d4d195ea61 100644 --- a/data/battle_scripts_2.s +++ b/data/battle_scripts_2.s @@ -245,7 +245,7 @@ BattleScript_TrainerASlideMsgRet:: BattleScript_TrainerASlideMsgEnd2:: call BattleScript_TrainerASlideMsgRet end2 - + BattleScript_TrainerBSlideMsgRet:: handletrainerslidemsg BS_SCRIPTING, 0 trainerslidein B_POSITION_OPPONENT_RIGHT diff --git a/data/contest_ai_scripts.s b/data/contest_ai_scripts.s index ecd3103ae2ec..affaf31d6dde 100644 --- a/data/contest_ai_scripts.s +++ b/data/contest_ai_scripts.s @@ -1,3 +1,4 @@ +#include "config.h" #include "constants/global.h" #include "constants/contest.h" .include "asm/macros.inc" @@ -435,11 +436,11 @@ AI_CGM_BetterWhenAudienceExcited: AI_CGM_BetterWhenAudienceExcited_1stUp: @ BUG: Should be if_appeal_num_eq 0 @ 1st up on 1st appeal excitement will always be 0 -.ifdef BUGFIX +#ifdef BUGFIX if_appeal_num_eq 0, AI_CGM_BetterWhenAudienceExcited_1stAppeal -.else +#else if_appeal_num_not_eq 0, AI_CGM_BetterWhenAudienceExcited_1stAppeal -.endif +#endif if_excitement_eq 4, AI_CGM_BetterWhenAudienceExcited_1AwayFromMax if_excitement_eq 3, AI_CGM_BetterWhenAudienceExcited_2AwayFromMax end @@ -546,11 +547,11 @@ AI_CGM_TargetMonWithJudgesAttention: end AI_CGM_TargetMonWithJudgesAttention_CheckMon1: if_cannot_participate MON_1, AI_CGM_TargetMonWithJudgesAttention_CheckMon2 -.ifdef BUGFIX +#ifdef BUGFIX if_not_used_combo_starter MON_1, AI_CGM_TargetMonWithJudgesAttention_CheckMon2 -.else +#else if_used_combo_starter MON_1, AI_CGM_TargetMonWithJudgesAttention_CheckMon2 -.endif +#endif if_random_less_than 125, AI_CGM_TargetMonWithJudgesAttention_CheckMon2 score +2 if_not_completed_combo MON_1, AI_CGM_TargetMonWithJudgesAttention_CheckMon2 @@ -559,11 +560,11 @@ AI_CGM_TargetMonWithJudgesAttention_CheckMon1: AI_CGM_TargetMonWithJudgesAttention_CheckMon2: if_user_order_eq MON_2, AI_CGM_End if_cannot_participate MON_2, AI_CGM_TargetMonWithJudgesAttention_CheckMon3 -.ifdef BUGFIX +#ifdef BUGFIX if_not_used_combo_starter MON_2, AI_CGM_TargetMonWithJudgesAttention_CheckMon3 -.else +#else if_used_combo_starter MON_2, AI_CGM_TargetMonWithJudgesAttention_CheckMon3 -.endif +#endif if_random_less_than 125, AI_CGM_TargetMonWithJudgesAttention_CheckMon3 score +2 if_not_completed_combo MON_2, AI_CGM_TargetMonWithJudgesAttention_CheckMon3 @@ -572,11 +573,11 @@ AI_CGM_TargetMonWithJudgesAttention_CheckMon2: AI_CGM_TargetMonWithJudgesAttention_CheckMon3: if_user_order_eq MON_3, AI_CGM_End if_cannot_participate MON_3, AI_CGM_End -.ifdef BUGFIX +#ifdef BUGFIX if_not_used_combo_starter MON_3, AI_CGM_End -.else +#else if_used_combo_starter MON_3, AI_CGM_End -.endif +#endif if_random_less_than 125, AI_CGM_End score +2 if_not_completed_combo MON_3, AI_CGM_End diff --git a/data/event_scripts.s b/data/event_scripts.s index 1d407da086ff..20d368d6d21e 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -1,3 +1,4 @@ +#include "config.h" #include "config/battle.h" #include "config/item.h" #include "constants/global.h" @@ -1021,6 +1022,13 @@ Common_EventScript_LegendaryFlewAway:: release end +EventScript_VsSeekerChargingDone:: + special VsSeekerFreezeObjectsAfterChargeComplete + waitstate + special VsSeekerResetObjectMovementAfterChargeComplete + releaseall + end + .include "data/scripts/pc_transfer.inc" .include "data/scripts/questionnaire.inc" .include "data/scripts/abnormal_weather.inc" diff --git a/data/field_effect_scripts.s b/data/field_effect_scripts.s index cce52da21d30..b772c4d7ff40 100644 --- a/data/field_effect_scripts.s +++ b/data/field_effect_scripts.s @@ -1,3 +1,4 @@ +#include "config/item.h" .include "asm/macros.inc" .include "constants/constants.inc" @@ -77,6 +78,10 @@ gFieldEffectScriptPointers:: .4byte gFieldEffectScript_TracksSpot @ FLDEFF_TRACKS_SPOT .4byte gFieldEffectScript_CaveDust @ FLDEFF_CAVE_DUST + .4byte gFldEffScript_UseVsSeeker @ FLDEFF_USE_VS_SEEKER + .4byte gFldEffScript_XIcon @ FLDEFF_X_ICON + .4byte gFldEffScript_DoubleExclMarkIcon @ FLDEFF_DOUBLE_EXCL_MARK_ICON + gFieldEffectScript_ExclamationMarkIcon1:: field_eff_callnative FldEff_ExclamationMarkIcon field_eff_end @@ -364,3 +369,15 @@ gFieldEffectScript_MoveDeoxysRock:: gFieldEffectScript_CaveDust:: field_eff_loadfadedpal_callnative gSpritePalette_CaveDust FldEff_CaveDust field_eff_end + +gFldEffScript_UseVsSeeker:: + field_eff_callnative FldEff_UseVsSeeker + field_eff_end + +gFldEffScript_XIcon:: + field_eff_callnative FldEff_XIcon + field_eff_end + +gFldEffScript_DoubleExclMarkIcon:: + field_eff_callnative FldEff_DoubleExclMarkIcon + field_eff_end diff --git a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc index d1d80719d278..27591cc6b4f6 100644 --- a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc @@ -421,18 +421,18 @@ BattleFrontier_BattleTowerLobby_EventScript_SaveBeforeLinkMultisChallenge:: @ to the flash, but not data in PokemonStorage. The SaveGame script that follows asks the player to do a full save, @ which they can opt out of. As a result the player can save their party and quit without having saved the PC. @ This allows players to clone pokemon and their held items by withdrawing them (or erase them by despositing). -.ifndef BUGFIX +#ifndef BUGFIX tower_save 0 -.endif +#endif call Common_EventScript_SaveGame setvar VAR_TEMP_CHALLENGE_STATUS, 255 goto_if_eq VAR_RESULT, 0, BattleFrontier_BattleTowerLobby_EventScript_CancelChallengeSaveFailed @ GAME_STAT_ENTERED_BATTLE_TOWER should not be incremented here, for two reasons: @ 1. It is incremented again in BattleFrontier_BattleTowerLobby_EventScript_CableLinkSuccessful or BattleFrontier_BattleTowerLobby_EventScript_WirelessLinkSuccessful -@ 2. If the player tries to save, but fails, the counter will still be incremented even if the player never enters the tower. -.ifndef BUGFIX +@ 2. If the player tries to connect, but fails, the counter will still be incremented even if the player never enters the tower. +#ifndef BUGFIX incrementgamestat GAME_STAT_ENTERED_BATTLE_TOWER -.endif +#endif specialvar VAR_RESULT, IsWirelessAdapterConnected goto_if_eq VAR_RESULT, TRUE, BattleFrontier_BattleTowerLobby_EventScript_TryWirelessLink goto BattleFrontier_BattleTowerLobby_EventScript_TryCableLink diff --git a/data/maps/MossdeepCity_SpaceCenter_1F/scripts.inc b/data/maps/MossdeepCity_SpaceCenter_1F/scripts.inc index 263b07105679..e17af3572452 100644 --- a/data/maps/MossdeepCity_SpaceCenter_1F/scripts.inc +++ b/data/maps/MossdeepCity_SpaceCenter_1F/scripts.inc @@ -229,11 +229,11 @@ MossdeepCity_SpaceCenter_1F_EventScript_Grunt2:: copyobjectxytoperm LOCALID_STAIR_GRUNT switch VAR_FACING case DIR_WEST, MossdeepCity_SpaceCenter_1F_EventScript_MoveGruntFromStairsWest - #ifdef BUGFIX +#ifdef BUGFIX case DIR_EAST, MossdeepCity_SpaceCenter_1F_EventScript_MoveGruntFromStairsEast - #else +#else case DIR_WEST, MossdeepCity_SpaceCenter_1F_EventScript_MoveGruntFromStairsEast - #endif +#endif applymovement LOCALID_STAIR_GRUNT, MossdeepCity_SpaceCenter_1F_Movement_MoveGruntFromStairs waitmovement 0 setvar VAR_MOSSDEEP_SPACE_CENTER_STAIR_GUARD_STATE, 2 diff --git a/data/scripts/debug.inc b/data/scripts/debug.inc index 7385101c1e34..4d14a2a2a65b 100644 --- a/data/scripts/debug.inc +++ b/data/scripts/debug.inc @@ -39,6 +39,32 @@ Debug_CheatStart:: setvar VAR_BRINEY_HOUSE_STATE, 1 setvar VAR_ROUTE116_STATE, 2 setflag FLAG_HIDE_ROUTE_116_MR_BRINEY + setflag FLAG_BADGE01_GET + setflag FLAG_BADGE02_GET + setflag FLAG_BADGE03_GET + setflag FLAG_BADGE04_GET + setflag FLAG_BADGE05_GET + setflag FLAG_BADGE06_GET + setflag FLAG_BADGE07_GET + setflag FLAG_BADGE08_GET + setflag FLAG_VISITED_LITTLEROOT_TOWN + setflag FLAG_VISITED_OLDALE_TOWN + setflag FLAG_VISITED_DEWFORD_TOWN + setflag FLAG_VISITED_LAVARIDGE_TOWN + setflag FLAG_VISITED_FALLARBOR_TOWN + setflag FLAG_VISITED_VERDANTURF_TOWN + setflag FLAG_VISITED_PACIFIDLOG_TOWN + setflag FLAG_VISITED_PETALBURG_CITY + setflag FLAG_VISITED_SLATEPORT_CITY + setflag FLAG_VISITED_MAUVILLE_CITY + setflag FLAG_VISITED_RUSTBORO_CITY + setflag FLAG_VISITED_FORTREE_CITY + setflag FLAG_VISITED_LILYCOVE_CITY + setflag FLAG_VISITED_MOSSDEEP_CITY + setflag FLAG_VISITED_SOOTOPOLIS_CITY + setflag FLAG_VISITED_EVER_GRANDE_CITY + setflag FLAG_LANDMARK_POKEMON_LEAGUE + setflag FLAG_LANDMARK_BATTLE_FRONTIER clearflag FLAG_HIDE_BRINEYS_HOUSE_MR_BRINEY clearflag FLAG_HIDE_BRINEYS_HOUSE_PEEKO release @@ -69,28 +95,28 @@ Debug_BoxFilledMessage:: Debug_BoxFilledMessage_Text: .string "Storage boxes filled!$" -Debug_Script_1:: +Debug_EventScript_Script_1:: end -Debug_Script_2:: +Debug_EventScript_Script_2:: end -Debug_Script_3:: +Debug_EventScript_Script_3:: end -Debug_Script_4:: +Debug_EventScript_Script_4:: end -Debug_Script_5:: +Debug_EventScript_Script_5:: end -Debug_Script_6:: +Debug_EventScript_Script_6:: end -Debug_Script_7:: +Debug_EventScript_Script_7:: end -Debug_Script_8:: +Debug_EventScript_Script_8:: end Debug_CheckSaveBlock:: @@ -155,29 +181,52 @@ DebugScript_HatchAnEgg_Text_EmptyParty:: DebugScript_HatchAnEgg_Text_NotAnEgg:: .string "That's not a Pokémon Egg.$" - + DebugScript_ZeroDaycareMons:: msgbox DebugText_DaycareNoPokemon, MSGBOX_DEFAULT releaseall end - + DebugScript_OneDaycareMons:: msgbox DebugText_DaycareOnePokemon, MSGBOX_DEFAULT releaseall end - + DebugScript_DaycareMonsNotCompatible:: msgbox DebugText_DaycarePokemonNotCompatible, MSGBOX_DEFAULT releaseall end - + DebugText_DaycareNoPokemon: .string "You have no Pokémon at Daycare.$" - + DebugText_DaycareOnePokemon: .string "You have only one Pokémon at Daycare.$" - + DebugText_DaycarePokemonNotCompatible: .string "Your Pokémon at Daycare can't\nhave babies together!$" +Debug_ShowExpansionVersion:: + callnative BufferExpansionVersion + msgbox Debug_ExpansionVersion, MSGBOX_DEFAULT + release + end + +Debug_ExpansionVersion: + .string "pokeemerald-expansion {STR_VAR_1}$" + .endif + +Debug_FlagsAndVarNotSetBattleConfigMessage:: + lockall + message Debug_FlagsAndVarNotSetBattleConfigMessage_Text + waitmessage + waitbuttonpress + releaseall + end + +Debug_FlagsAndVarNotSetBattleConfigMessage_Text: + .string "Feature unavailable! Please define a\n" + .string "usable flag and a usable var in:\l" + .string "'include/config/battle.h'!$" + diff --git a/data/scripts/repel.inc b/data/scripts/repel.inc index ab7924bd2131..44cfcb5d23c8 100644 --- a/data/scripts/repel.inc +++ b/data/scripts/repel.inc @@ -1,117 +1,152 @@ -EventScript_RepelWoreOff:: -.if I_REPEL_LURE_MENU == TRUE - checkitem ITEM_REPEL, 1 - goto_if_eq VAR_RESULT, TRUE, EventScript_RepelUseAnother - checkitem ITEM_SUPER_REPEL, 1 - goto_if_eq VAR_RESULT, TRUE, EventScript_RepelUseAnother - checkitem ITEM_MAX_REPEL, 1 - goto_if_eq VAR_RESULT, TRUE, EventScript_RepelUseAnother -.else - checkitem VAR_LAST_REPEL_LURE_USED, 1 - goto_if_eq VAR_RESULT, TRUE, EventScript_RepelUseAnother +.set LOCAL_VAR_SPRAY, VAR_0x8004 +.set LOCAL_VAR_NUM_SPRAY_STRENGTH, VAR_0x8005 +.set LOCAL_VAR_SPRAY_TYPE, VAR_0x8009 +.set LOCAL_VAR_NEW_SPRAY, VAR_0x8007 + +EventScript_BufferSprayName:: +.if VAR_LAST_REPEL_LURE_USED != 0 + bufferitemname STR_VAR_1, VAR_LAST_REPEL_LURE_USED + return .endif - lock - msgbox Text_RepelWoreOff, MSGBOX_SIGN - release - end + specialvar LOCAL_VAR_SPRAY_TYPE, GetLastUsedSprayType + compare LOCAL_VAR_SPRAY_TYPE, ITEM_REPEL + goto_if_eq EventScript_BufferSprayName_2 + bufferitemname STR_VAR_1, ITEM_LURE +EventScript_BufferSprayName_1: + return -EventScript_RepelUseAnother: +EventScript_BufferSprayName_2: + bufferitemname STR_VAR_1, ITEM_REPEL + goto EventScript_BufferSprayName_1 + + +EventScript_SprayWoreOff:: lock - msgbox Text_UseAnotherRepel, MSGBOX_YESNO + call EventScript_BufferSprayName + specialvar LOCAL_VAR_NUM_SPRAY_STRENGTH, GetNumberSprayStrength + switch LOCAL_VAR_NUM_SPRAY_STRENGTH + case 0, EventScript_SprayWoreOffMessage + case 1, EventScript_UseSingleSpray + goto EventScript_HandleMultipleSprays + return + +EventScript_HandleMultipleSprays:: .if I_REPEL_LURE_MENU == TRUE - goto_if_eq VAR_RESULT, NO, EventScript_RepelWoreOff_End - callnative TryDrawRepelMenu - goto_if_eq VAR_RESULT, FALSE, EventScript_RepelWoreOff_Chose - waitstate - goto_if_eq VAR_RESULT, 127, EventScript_RepelWoreOff_End -EventScript_RepelWoreOff_Chose: - callnative HandleRepelMenuChoice - bufferitemname 1, VAR_0x8004 - removeitem VAR_0x8004, 1 - playse SE_REPEL - msgbox Text_UsedNewRepelLure, MSGBOX_SIGN + goto EventScript_ChooseWhichSpray .else - goto_if_eq VAR_RESULT, YES, EventScript_UsedRepel + goto EventScript_UseSingleSpray .endif -EventScript_RepelWoreOff_End: - release - end + return -EventScript_UsedRepel: - bufferitemname 1, VAR_LAST_REPEL_LURE_USED - playse SE_REPEL - lock - msgbox Text_UsedNewRepelLure, MSGBOX_SIGN - removeitem VAR_LAST_REPEL_LURE_USED, 1 - waitse - callnative HandleUseExpiredRepel - release + +EventScript_SprayWoreOffMessage:: + msgbox Text_SprayWoreOff, MSGBOX_SIGN + releaseall end -EventScript_LureWoreOff:: -.if I_REPEL_LURE_MENU == TRUE - checkitem ITEM_LURE, 1 - goto_if_eq VAR_RESULT, TRUE, EventScript_LureUseAnother - checkitem ITEM_SUPER_LURE, 1 - goto_if_eq VAR_RESULT, TRUE, EventScript_LureUseAnother - checkitem ITEM_MAX_LURE, 1 - goto_if_eq VAR_RESULT, TRUE, EventScript_LureUseAnother + +EventScript_UseSingleSpray:: +.if VAR_LAST_REPEL_LURE_USED == 0 + call EventScript_UseDifferentSpray .else checkitem VAR_LAST_REPEL_LURE_USED, 1 - goto_if_eq VAR_RESULT, TRUE, EventScript_LureUseAnother + compare VAR_RESULT, TRUE + goto_if_eq EventScript_UseSingleSpray_2 + call EventScript_UseDifferentSpray .endif - lock - msgbox Text_LureWoreOff, MSGBOX_SIGN - release +EventScript_UseSingleSpray_1: + closemessage + releaseall end -EventScript_LureUseAnother: - lock - msgbox Text_UseAnotherLure, MSGBOX_YESNO +.if VAR_LAST_REPEL_LURE_USED != 0 +EventScript_UseSingleSpray_2: + call EventScript_UseLastUsedSpray + goto EventScript_UseSingleSpray_1 +.endif + + +EventScript_SetSingleSprayAndUse:: + setvar VAR_RESULT, 0 + call EventScript_UseSpray + return + + +EventScript_UseDifferentSpray:: + specialvar LOCAL_VAR_NEW_SPRAY, GetSprayId + bufferitemname STR_VAR_2, LOCAL_VAR_NEW_SPRAY + msgbox Text_SprayWoreOffAskUseX, MSGBOX_YESNO + compare VAR_RESULT, YES + goto_if_eq EventScript_UseDifferentSpray_2 +EventScript_UseDifferentSpray_1: + return + +EventScript_UseDifferentSpray_2: + copyvar LOCAL_VAR_SPRAY, LOCAL_VAR_NEW_SPRAY + call EventScript_SetSingleSprayAndUse + goto EventScript_UseDifferentSpray_1 + + +.if VAR_LAST_REPEL_LURE_USED != 0 +EventScript_UseLastUsedSpray:: + msgbox Text_SprayWoreOffAskUseAnother, MSGBOX_YESNO + compare VAR_RESULT, YES + goto_if_eq EventScript_UseLastUsedSpray_2 +EventScript_UseLastUsedSpray_1: + return + +EventScript_UseLastUsedSpray_2: + copyvar LOCAL_VAR_SPRAY, VAR_LAST_REPEL_LURE_USED + call EventScript_SetSingleSprayAndUse + goto EventScript_UseLastUsedSpray_1 +.endif + + .if I_REPEL_LURE_MENU == TRUE - goto_if_eq VAR_RESULT, NO, EventScript_LureWoreOff_End - callnative TryDrawLureMenu - goto_if_eq VAR_RESULT, FALSE, EventScript_LureWoreOff_Chose +EventScript_ChooseWhichSpray:: + message Text_SprayWoreOffAskUseAnother + waitmessage + callnative DrawSprayMenu waitstate - goto_if_eq VAR_RESULT, 127, EventScript_LureWoreOff_End -EventScript_LureWoreOff_Chose: - callnative HandleLureMenuChoice - bufferitemname 1, VAR_0x8004 - removeitem VAR_0x8004, 1 - playse SE_REPEL - msgbox Text_UsedNewRepelLure, MSGBOX_SIGN -.else - goto_if_eq VAR_RESULT, YES, EventScript_UsedLure -.endif -EventScript_LureWoreOff_End: - release + compare VAR_RESULT, MULTI_B_PRESSED + goto_if_ne EventScript_ChooseWhichSpray_3 +EventScript_ChooseWhichSpray_1: + closemessage + releaseall end -EventScript_UsedLure: - bufferitemname 1, VAR_LAST_REPEL_LURE_USED +EventScript_ChooseWhichSpray_2: + call EventScript_UseSpray + goto EventScript_ChooseWhichSpray_1 + +EventScript_ChooseWhichSpray_3: + compare VAR_RESULT, VAR_0x8003 + goto_if_ne EventScript_ChooseWhichSpray_2 + goto EventScript_ChooseWhichSpray_1 +.endif + + +EventScript_UseSpray:: playse SE_REPEL - lock - msgbox Text_UsedNewRepelLure, MSGBOX_SIGN - removeitem VAR_LAST_REPEL_LURE_USED, 1 waitse - callnative HandleUseExpiredLure - release - end + callnative HandleSprayMenuChoice + removeitem LOCAL_VAR_SPRAY, 1 + bufferitemname STR_VAR_2, LOCAL_VAR_SPRAY + msgbox Text_SprayWoreOffUseX, MSGBOX_SIGN + return -Text_RepelWoreOff: - .string "REPEL's effect wore off…$" -Text_UseAnotherRepel:: - .string "REPEL's effect wore off!\n" - .string "Use another?$" +Text_SprayWoreOff:: + .string "{STR_VAR_1}'s effect wore off…$" -Text_LureWoreOff: - .string "Lure's effect wore off…$" - -Text_UseAnotherLure:: - .string "Lure's effect wore off!\n" +Text_SprayWoreOffAskUseAnother:: + .string "{STR_VAR_1}'s effect wore off!\n" .string "Use another?$" -Text_UsedNewRepelLure:: +Text_SprayWoreOffAskUseX:: + .string "{STR_VAR_1}'s effect wore off…\n" + .string "Use a {STR_VAR_2}?$" + +Text_SprayWoreOffUseX:: .string "{PLAYER} used the\n" .string "{STR_VAR_2}.$" diff --git a/data/scripts/trainer_hill.inc b/data/scripts/trainer_hill.inc index b7f815351449..04bbe05e5ad4 100644 --- a/data/scripts/trainer_hill.inc +++ b/data/scripts/trainer_hill.inc @@ -13,9 +13,9 @@ TrainerHill_OnWarp: TrainerHill_1F_EventScript_DummyOnWarp:: setvar VAR_TEMP_3, 1 -.ifdef BUGFIX +#ifdef BUGFIX end @ Missing end. By chance, the next byte (0x02 of VAR_TEMP_2) is also the id for the end cmd -.endif +#endif TrainerHill_OnFrame: map_script_2 VAR_TEMP_2, 0, TrainerHill_1F_EventScript_DummyWarpToEntranceCounter diff --git a/data/specials.inc b/data/specials.inc index ded2e3f4fee7..152210c176d9 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -536,3 +536,9 @@ gSpecials:: def_special TrySetBattleTowerLinkType def_special SetTotemBoost def_special TrySpecialOverworldEvo + def_special GetNumberSprayStrength + def_special GetSprayId + def_special GetLastUsedSprayType + def_special TrySkyBattle + def_special VsSeekerResetObjectMovementAfterChargeComplete + def_special VsSeekerFreezeObjectsAfterChargeComplete diff --git a/data/text/trainers.inc b/data/text/trainers.inc index c3e85ef504e3..ac3747f805d7 100644 --- a/data/text/trainers.inc +++ b/data/text/trainers.inc @@ -4779,3 +4779,18 @@ Route134_Text_HudsonPostBattle: .string "Our boat drifted out to sea.\p" .string "My buddy's a timid fellow, so I'm\n" .string "worried about him.$" + +VSSeeker_Text_BatteryNotChargedNeedXSteps:: + .string "The battery isn't charged enough.\p" + .string "No. of steps required to fully\n" + .string "charge the battery: {STR_VAR_1}{PAUSE_UNTIL_PRESS}$" + +VSSeeker_Text_NoTrainersWithinRange:: + .string "There are no Trainers within range\n" + .string "who can battle…\p" + .string "The VS Seeker was turned off.{PAUSE_UNTIL_PRESS}$" + +VSSeeker_Text_TrainersNotReady:: + .string "The other Trainers don't appear\n" + .string "to be ready for battle.\p" + .string "Let's wait till later.{PAUSE_UNTIL_PRESS}$" diff --git a/graphics/battle_anims/backgrounds/rainbow.bin b/graphics/battle_anims/backgrounds/rainbow.bin new file mode 100644 index 000000000000..770389abf4de Binary files /dev/null and b/graphics/battle_anims/backgrounds/rainbow.bin differ diff --git a/graphics/battle_anims/backgrounds/rainbow.pal b/graphics/battle_anims/backgrounds/rainbow.pal new file mode 100644 index 000000000000..9b62b7b25b4f --- /dev/null +++ b/graphics/battle_anims/backgrounds/rainbow.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +109 92 75 +255 255 255 +255 107 122 +255 200 102 +255 255 107 +143 255 160 +107 255 255 +107 129 255 +220 114 255 +199 255 250 +232 240 248 +224 232 240 +208 224 240 +191 202 224 +183 189 202 +157 166 181 diff --git a/graphics/battle_anims/backgrounds/rainbow.png b/graphics/battle_anims/backgrounds/rainbow.png new file mode 100644 index 000000000000..bd41645b3571 Binary files /dev/null and b/graphics/battle_anims/backgrounds/rainbow.png differ diff --git a/graphics/battle_anims/sprites/syrup_bomb_blob.png b/graphics/battle_anims/sprites/syrup_bomb_blob.png new file mode 100644 index 000000000000..b04b3617561e Binary files /dev/null and b/graphics/battle_anims/sprites/syrup_bomb_blob.png differ diff --git a/graphics/battle_anims/sprites/syrup_bomb_shell.png b/graphics/battle_anims/sprites/syrup_bomb_shell.png new file mode 100644 index 000000000000..de592c54e6d6 Binary files /dev/null and b/graphics/battle_anims/sprites/syrup_bomb_shell.png differ diff --git a/graphics/battle_anims/sprites/syrup_bomb_splat.png b/graphics/battle_anims/sprites/syrup_bomb_splat.png new file mode 100644 index 000000000000..ac873086a01a Binary files /dev/null and b/graphics/battle_anims/sprites/syrup_bomb_splat.png differ diff --git a/graphics/battle_anims/sprites/syrup_red.pal b/graphics/battle_anims/sprites/syrup_red.pal new file mode 100644 index 000000000000..2224ce0c8489 --- /dev/null +++ b/graphics/battle_anims/sprites/syrup_red.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +30 255 0 +242 242 242 +255 194 173 +255 129 110 +224 51 38 +161 24 26 +110 30 36 +13 2 4 +200 224 240 +200 224 240 +200 224 240 +200 224 240 +200 224 240 +200 224 240 +200 224 240 +200 224 240 diff --git a/graphics/battle_anims/sprites/syrup_yellow.pal b/graphics/battle_anims/sprites/syrup_yellow.pal new file mode 100644 index 000000000000..ff5ac3733148 --- /dev/null +++ b/graphics/battle_anims/sprites/syrup_yellow.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +30 255 0 +242 242 242 +255 255 168 +255 235 82 +255 192 0 +185 104 4 +107 59 19 +13 2 4 +200 224 240 +200 224 240 +200 224 240 +200 224 240 +200 224 240 +200 224 240 +200 224 240 +200 224 240 diff --git a/graphics/field_effects/pics/emote_x.png b/graphics/field_effects/pics/emote_x.png new file mode 100644 index 000000000000..6d0206e1d406 Binary files /dev/null and b/graphics/field_effects/pics/emote_x.png differ diff --git a/graphics/field_effects/pics/emotion_double_exclamation.png b/graphics/field_effects/pics/emotion_double_exclamation.png new file mode 100644 index 000000000000..1494acef8677 Binary files /dev/null and b/graphics/field_effects/pics/emotion_double_exclamation.png differ diff --git a/graphics/items/icon_palettes/clever_mochi.pal b/graphics/items/icon_palettes/clever_mochi.pal new file mode 100644 index 000000000000..dfb6467f265b --- /dev/null +++ b/graphics/items/icon_palettes/clever_mochi.pal @@ -0,0 +1,15 @@ +JASC-PAL +0100 +12 +0 0 0 +0 0 0 +32 32 32 +40 40 40 +112 104 24 +72 64 32 +192 184 8 +216 208 8 +240 240 96 +248 248 0 +248 248 160 +248 248 216 diff --git a/graphics/items/icon_palettes/cornerstone_mask.pal b/graphics/items/icon_palettes/cornerstone_mask.pal new file mode 100644 index 000000000000..06affcc19bb2 --- /dev/null +++ b/graphics/items/icon_palettes/cornerstone_mask.pal @@ -0,0 +1,17 @@ +JASC-PAL +0100 +14 +0 49 0 +32 24 24 +48 48 48 +72 72 80 +104 88 56 +16 112 160 +32 112 128 +112 104 112 +32 152 192 +136 144 144 +168 168 168 +48 208 240 +208 184 120 +240 240 240 diff --git a/graphics/items/icon_palettes/fairy_feather.pal b/graphics/items/icon_palettes/fairy_feather.pal new file mode 100644 index 000000000000..a20a702b74ba --- /dev/null +++ b/graphics/items/icon_palettes/fairy_feather.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +180 180 180 +11 15 16 +33 19 27 +59 38 38 +102 90 92 +200 124 124 +182 116 141 +255 124 189 +227 140 140 +253 155 155 +222 173 189 +255 175 175 +195 191 192 +252 161 206 +225 221 223 +245 245 245 diff --git a/graphics/items/icon_palettes/fresh_start_mochi.pal b/graphics/items/icon_palettes/fresh_start_mochi.pal new file mode 100644 index 000000000000..55eeac0ce39a --- /dev/null +++ b/graphics/items/icon_palettes/fresh_start_mochi.pal @@ -0,0 +1,15 @@ +JASC-PAL +0100 +12 +0 0 0 +0 0 0 +32 32 32 +40 40 40 +128 120 128 +63 63 63 +176 168 168 +216 208 216 +192 192 192 +224 232 224 +240 232 240 +248 248 248 diff --git a/graphics/items/icon_palettes/genius_mochi.pal b/graphics/items/icon_palettes/genius_mochi.pal new file mode 100644 index 000000000000..7a91b8fbf9e9 --- /dev/null +++ b/graphics/items/icon_palettes/genius_mochi.pal @@ -0,0 +1,15 @@ +JASC-PAL +0100 +12 +0 0 0 +0 0 0 +32 32 32 +40 40 40 +72 40 88 +72 40 88 +96 40 128 +96 40 120 +88 40 112 +112 48 160 +128 72 176 +128 80 176 diff --git a/graphics/items/icon_palettes/glimmering_charm.pal b/graphics/items/icon_palettes/glimmering_charm.pal new file mode 100644 index 000000000000..813886d85a3e --- /dev/null +++ b/graphics/items/icon_palettes/glimmering_charm.pal @@ -0,0 +1,18 @@ +JASC-PAL +0100 +15 +114 109 97 +0 0 0 +115 62 231 +57 95 90 +52 103 15 +48 101 216 +225 59 159 +136 154 143 +60 195 171 +76 204 74 +202 150 255 +142 191 235 +242 193 215 +238 219 161 +255 255 255 diff --git a/graphics/items/icon_palettes/health_mochi.pal b/graphics/items/icon_palettes/health_mochi.pal new file mode 100644 index 000000000000..930e98ebfbe0 --- /dev/null +++ b/graphics/items/icon_palettes/health_mochi.pal @@ -0,0 +1,15 @@ +JASC-PAL +0100 +12 +0 0 0 +0 0 0 +32 32 32 +40 40 40 +32 64 86 +32 96 128 +16 128 176 +0 144 208 +0 176 240 +0 192 248 +72 200 248 +88 208 240 diff --git a/graphics/items/icon_palettes/hearthflame_mask.pal b/graphics/items/icon_palettes/hearthflame_mask.pal new file mode 100644 index 000000000000..1df062179727 --- /dev/null +++ b/graphics/items/icon_palettes/hearthflame_mask.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +110 101 110 +0 0 0 +40 40 40 +72 40 40 +136 48 48 +184 48 48 +72 88 88 +104 88 48 +232 64 48 +224 128 128 +192 144 64 +168 160 152 +32 200 232 +224 160 64 +248 200 72 +248 248 248 diff --git a/graphics/items/icon_palettes/masterpiece_teacup.pal b/graphics/items/icon_palettes/masterpiece_teacup.pal new file mode 100644 index 000000000000..9c37a09d7b40 --- /dev/null +++ b/graphics/items/icon_palettes/masterpiece_teacup.pal @@ -0,0 +1,15 @@ +JASC-PAL +0100 +12 +0 0 0 +56 48 48 +64 48 56 +80 48 32 +56 56 56 +72 64 72 +80 64 48 +96 64 40 +104 98 96 +174 163 155 +208 200 192 +224 224 208 diff --git a/graphics/items/icon_palettes/muscle_mochi.pal b/graphics/items/icon_palettes/muscle_mochi.pal new file mode 100644 index 000000000000..6198ef6e9d21 --- /dev/null +++ b/graphics/items/icon_palettes/muscle_mochi.pal @@ -0,0 +1,15 @@ +JASC-PAL +0100 +12 +0 0 0 +0 0 0 +32 32 32 +40 40 40 +80 32 32 +128 32 32 +192 0 8 +248 40 48 +248 32 32 +248 0 0 +248 64 64 +248 80 80 diff --git a/graphics/items/icon_palettes/oaks_parcel.pal b/graphics/items/icon_palettes/parcel.pal similarity index 100% rename from graphics/items/icon_palettes/oaks_parcel.pal rename to graphics/items/icon_palettes/parcel.pal diff --git a/graphics/items/icon_palettes/resist_mochi.pal b/graphics/items/icon_palettes/resist_mochi.pal new file mode 100644 index 000000000000..87da8140ddff --- /dev/null +++ b/graphics/items/icon_palettes/resist_mochi.pal @@ -0,0 +1,15 @@ +JASC-PAL +0100 +12 +0 0 0 +0 0 0 +32 32 32 +40 40 40 +48 32 32 +40 40 40 +56 48 56 +48 48 48 +48 48 48 +64 64 64 +72 72 72 +88 88 88 diff --git a/graphics/items/icon_palettes/swift_mochi.pal b/graphics/items/icon_palettes/swift_mochi.pal new file mode 100644 index 000000000000..90fb43493b9f --- /dev/null +++ b/graphics/items/icon_palettes/swift_mochi.pal @@ -0,0 +1,15 @@ +JASC-PAL +0100 +12 +0 0 0 +0 0 0 +32 32 32 +40 40 40 +24 88 56 +24 48 40 +8 128 64 +8 152 72 +32 120 96 +0 176 80 +48 192 112 +80 200 144 diff --git a/graphics/items/icon_palettes/syrupy_apple.pal b/graphics/items/icon_palettes/syrupy_apple.pal new file mode 100644 index 000000000000..2243d3df3e68 --- /dev/null +++ b/graphics/items/icon_palettes/syrupy_apple.pal @@ -0,0 +1,17 @@ +JASC-PAL +0100 +14 +0 97 0 +36 39 38 +78 40 38 +192 24 40 +100 72 55 +240 48 40 +192 114 31 +248 112 48 +248 112 104 +248 135 16 +248 135 20 +248 144 120 +242 159 28 +216 192 184 diff --git a/graphics/items/icon_palettes/unremarkable_teacup.pal b/graphics/items/icon_palettes/unremarkable_teacup.pal new file mode 100644 index 000000000000..c70426f432c5 --- /dev/null +++ b/graphics/items/icon_palettes/unremarkable_teacup.pal @@ -0,0 +1,14 @@ +JASC-PAL +0100 +11 +0 0 0 +56 48 48 +64 48 56 +56 56 56 +72 64 72 +80 64 48 +96 64 40 +104 98 96 +174 163 155 +208 200 192 +224 224 208 diff --git a/graphics/items/icon_palettes/wellspring_mask.pal b/graphics/items/icon_palettes/wellspring_mask.pal new file mode 100644 index 000000000000..8e64a3ffcf53 --- /dev/null +++ b/graphics/items/icon_palettes/wellspring_mask.pal @@ -0,0 +1,16 @@ +JASC-PAL +0100 +13 +0 0 0 +16 16 16 +40 40 40 +32 48 56 +24 80 128 +80 88 88 +32 104 112 +0 128 232 +56 144 176 +152 160 160 +56 200 232 +192 208 216 +248 248 248 diff --git a/graphics/items/icons/cornerstone_mask.png b/graphics/items/icons/cornerstone_mask.png new file mode 100644 index 000000000000..dcca6725d4c5 Binary files /dev/null and b/graphics/items/icons/cornerstone_mask.png differ diff --git a/graphics/items/icons/fairy_feather.png b/graphics/items/icons/fairy_feather.png new file mode 100644 index 000000000000..26446886a842 Binary files /dev/null and b/graphics/items/icons/fairy_feather.png differ diff --git a/graphics/items/icons/glimmering_charm.png b/graphics/items/icons/glimmering_charm.png new file mode 100644 index 000000000000..bbed0dcb0490 Binary files /dev/null and b/graphics/items/icons/glimmering_charm.png differ diff --git a/graphics/items/icons/hearthflame_mask.png b/graphics/items/icons/hearthflame_mask.png new file mode 100644 index 000000000000..accb5a8077e8 Binary files /dev/null and b/graphics/items/icons/hearthflame_mask.png differ diff --git a/graphics/items/icons/masterpiece_teacup.png b/graphics/items/icons/masterpiece_teacup.png new file mode 100644 index 000000000000..163316825161 Binary files /dev/null and b/graphics/items/icons/masterpiece_teacup.png differ diff --git a/graphics/items/icons/mochi.png b/graphics/items/icons/mochi.png new file mode 100644 index 000000000000..9d033b1bd8d8 Binary files /dev/null and b/graphics/items/icons/mochi.png differ diff --git a/graphics/items/icons/oaks_parcel.png b/graphics/items/icons/parcel.png similarity index 100% rename from graphics/items/icons/oaks_parcel.png rename to graphics/items/icons/parcel.png diff --git a/graphics/items/icons/syrupy_apple.png b/graphics/items/icons/syrupy_apple.png new file mode 100644 index 000000000000..e5c4efdfa6db Binary files /dev/null and b/graphics/items/icons/syrupy_apple.png differ diff --git a/graphics/items/icons/unremarkable_teacup.png b/graphics/items/icons/unremarkable_teacup.png new file mode 100644 index 000000000000..98ac0308935d Binary files /dev/null and b/graphics/items/icons/unremarkable_teacup.png differ diff --git a/graphics/items/icons/wellspring_mask.png b/graphics/items/icons/wellspring_mask.png new file mode 100644 index 000000000000..f52804d1b868 Binary files /dev/null and b/graphics/items/icons/wellspring_mask.png differ diff --git a/graphics/pokedex/hgss/palette_default_dark.pal b/graphics/pokedex/hgss/palette_default_dark.pal index 5889ede7ac0f..1523b7d25f55 100644 --- a/graphics/pokedex/hgss/palette_default_dark.pal +++ b/graphics/pokedex/hgss/palette_default_dark.pal @@ -7,11 +7,11 @@ JASC-PAL 201 201 201 169 169 169 129 129 129 -249 153 161 -233 49 49 -193 33 41 -145 17 33 -249 153 161 +106 106 106 +37 37 37 +106 106 106 +0 0 0 +106 106 106 193 33 41 141 251 184 52 66 162 diff --git a/graphics/pokedex/hgss/tilemap_list_screen.bin b/graphics/pokedex/hgss/tilemap_list_screen.bin index be59b0359471..ab4ce179a408 100644 Binary files a/graphics/pokedex/hgss/tilemap_list_screen.bin and b/graphics/pokedex/hgss/tilemap_list_screen.bin differ diff --git a/graphics/pokedex/hgss/tileset_interface.png b/graphics/pokedex/hgss/tileset_interface.png index 8b4e944417a7..528176f36d6d 100644 Binary files a/graphics/pokedex/hgss/tileset_interface.png and b/graphics/pokedex/hgss/tileset_interface.png differ diff --git a/graphics/pokedex/hgss/tileset_menu_list.png b/graphics/pokedex/hgss/tileset_menu_list.png index 9492805e848c..91bf31eae92c 100644 Binary files a/graphics/pokedex/hgss/tileset_menu_list.png and b/graphics/pokedex/hgss/tileset_menu_list.png differ diff --git a/graphics/pokemon/alcremie/berry/back.png b/graphics/pokemon/alcremie/berry/back.png new file mode 100644 index 000000000000..a2236a94f481 Binary files /dev/null and b/graphics/pokemon/alcremie/berry/back.png differ diff --git a/graphics/pokemon/alcremie/berry/berry_caramel_swirl.pal b/graphics/pokemon/alcremie/berry/berry_caramel_swirl.pal new file mode 100644 index 000000000000..5a19b7c4c713 --- /dev/null +++ b/graphics/pokemon/alcremie/berry/berry_caramel_swirl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 232 184 +200 168 120 +232 168 96 +144 112 72 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +0 120 200 +0 80 144 +0 40 104 +0 0 0 diff --git a/graphics/pokemon/alcremie/berry/berry_default.pal b/graphics/pokemon/alcremie/berry/berry_default.pal new file mode 100644 index 000000000000..118df4edd135 --- /dev/null +++ b/graphics/pokemon/alcremie/berry/berry_default.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 224 208 +208 160 168 +240 136 144 +128 80 88 +248 224 200 +208 128 136 +248 224 200 +208 160 168 +248 224 200 +208 160 168 +0 120 200 +0 80 144 +0 40 104 +0 0 0 diff --git a/graphics/pokemon/alcremie/berry/berry_lemon_cream.pal b/graphics/pokemon/alcremie/berry/berry_lemon_cream.pal new file mode 100644 index 000000000000..17fd451a879c --- /dev/null +++ b/graphics/pokemon/alcremie/berry/berry_lemon_cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 248 152 +208 184 72 +232 224 0 +112 120 24 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +0 120 200 +0 80 144 +0 40 104 +0 0 0 diff --git a/graphics/pokemon/alcremie/berry/berry_matcha_cream.pal b/graphics/pokemon/alcremie/berry/berry_matcha_cream.pal new file mode 100644 index 000000000000..edb69b68832d --- /dev/null +++ b/graphics/pokemon/alcremie/berry/berry_matcha_cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +232 248 208 +176 208 152 +192 224 96 +104 128 80 +232 248 200 +176 208 152 +232 248 200 +176 208 152 +232 248 200 +176 208 152 +0 120 200 +0 80 144 +0 40 104 +0 0 0 diff --git a/graphics/pokemon/alcremie/berry/berry_mint_cream.pal b/graphics/pokemon/alcremie/berry/berry_mint_cream.pal new file mode 100644 index 000000000000..3a21681b212b --- /dev/null +++ b/graphics/pokemon/alcremie/berry/berry_mint_cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +208 240 232 +152 168 176 +112 208 200 +72 112 128 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +0 120 200 +0 80 144 +0 40 104 +0 0 0 diff --git a/graphics/pokemon/alcremie/berry/berry_rainbow_swirl.pal b/graphics/pokemon/alcremie/berry/berry_rainbow_swirl.pal new file mode 100644 index 000000000000..37a0a40498c6 --- /dev/null +++ b/graphics/pokemon/alcremie/berry/berry_rainbow_swirl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 248 184 +208 192 120 +216 144 88 +120 88 64 +240 160 168 +208 128 136 +176 232 224 +128 160 168 +248 248 112 +216 192 40 +0 120 200 +0 80 144 +0 40 104 +0 0 0 diff --git a/graphics/pokemon/alcremie/berry/berry_ruby_cream.pal b/graphics/pokemon/alcremie/berry/berry_ruby_cream.pal new file mode 100644 index 000000000000..350cfeb22f47 --- /dev/null +++ b/graphics/pokemon/alcremie/berry/berry_ruby_cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 208 208 +200 152 184 +232 112 192 +128 80 112 +248 208 208 +200 152 184 +248 208 208 +200 152 184 +248 208 208 +200 152 184 +0 120 200 +0 80 144 +0 40 104 +0 0 0 diff --git a/graphics/pokemon/alcremie/berry/berry_ruby_swirl.pal b/graphics/pokemon/alcremie/berry/berry_ruby_swirl.pal new file mode 100644 index 000000000000..e0c66e7fc10b --- /dev/null +++ b/graphics/pokemon/alcremie/berry/berry_ruby_swirl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 240 208 +208 184 160 +240 192 128 +128 96 80 +248 176 192 +224 120 128 +248 176 192 +224 120 128 +248 176 192 +224 120 128 +0 120 200 +0 80 144 +0 40 104 +0 0 0 diff --git a/graphics/pokemon/alcremie/berry/berry_salted_cream.pal b/graphics/pokemon/alcremie/berry/berry_salted_cream.pal new file mode 100644 index 000000000000..eca511097a77 --- /dev/null +++ b/graphics/pokemon/alcremie/berry/berry_salted_cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +232 232 248 +176 176 184 +112 208 200 +88 88 96 +232 232 248 +176 176 184 +232 232 248 +176 176 184 +232 232 248 +176 176 184 +0 120 200 +0 80 144 +0 40 104 +0 0 0 diff --git a/graphics/pokemon/alcremie/mint_cream/shiny.pal b/graphics/pokemon/alcremie/berry/berry_shiny.pal similarity index 66% rename from graphics/pokemon/alcremie/mint_cream/shiny.pal rename to graphics/pokemon/alcremie/berry/berry_shiny.pal index f71c66c01e4b..1fb826a8707d 100644 --- a/graphics/pokemon/alcremie/mint_cream/shiny.pal +++ b/graphics/pokemon/alcremie/berry/berry_shiny.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 +216 216 216 +152 152 152 +128 128 128 +88 88 96 72 80 72 248 248 248 -88 88 96 -128 128 128 -16 16 16 -152 152 152 -136 32 56 -248 88 112 -192 48 72 168 176 176 +248 248 248 168 176 176 -216 216 216 -0 0 0 -0 0 0 -0 0 0 +248 248 248 +168 176 176 +0 120 200 +0 80 144 +0 40 104 +16 16 16 diff --git a/graphics/pokemon/alcremie/berry/front.png b/graphics/pokemon/alcremie/berry/front.png new file mode 100644 index 000000000000..4bbc456c3eb1 Binary files /dev/null and b/graphics/pokemon/alcremie/berry/front.png differ diff --git a/graphics/pokemon/alcremie/clover/back.png b/graphics/pokemon/alcremie/clover/back.png new file mode 100644 index 000000000000..8a8efe5677cd Binary files /dev/null and b/graphics/pokemon/alcremie/clover/back.png differ diff --git a/graphics/pokemon/alcremie/clover/clover_caramel_swirl.pal b/graphics/pokemon/alcremie/clover/clover_caramel_swirl.pal new file mode 100644 index 000000000000..a8b596838688 --- /dev/null +++ b/graphics/pokemon/alcremie/clover/clover_caramel_swirl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 232 184 +200 168 120 +232 168 96 +144 112 72 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +136 216 64 +24 144 36 +24 80 36 +0 0 0 diff --git a/graphics/pokemon/alcremie/clover/clover_default.pal b/graphics/pokemon/alcremie/clover/clover_default.pal new file mode 100644 index 000000000000..17fe8cc6b41e --- /dev/null +++ b/graphics/pokemon/alcremie/clover/clover_default.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 224 208 +208 160 168 +240 136 144 +128 80 88 +248 224 200 +208 128 136 +248 224 200 +208 160 168 +248 224 200 +208 160 168 +136 216 64 +24 144 36 +24 80 36 +0 0 0 diff --git a/graphics/pokemon/alcremie/clover/clover_lemon_cream.pal b/graphics/pokemon/alcremie/clover/clover_lemon_cream.pal new file mode 100644 index 000000000000..bd199e2bc4d9 --- /dev/null +++ b/graphics/pokemon/alcremie/clover/clover_lemon_cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 248 152 +208 184 72 +232 224 0 +112 120 24 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +136 216 64 +24 144 36 +24 80 36 +0 0 0 diff --git a/graphics/pokemon/alcremie/clover/clover_matcha_cream.pal b/graphics/pokemon/alcremie/clover/clover_matcha_cream.pal new file mode 100644 index 000000000000..0f4f393f43d1 --- /dev/null +++ b/graphics/pokemon/alcremie/clover/clover_matcha_cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +232 248 208 +176 208 152 +192 224 96 +104 128 80 +232 248 200 +176 208 152 +232 248 200 +176 208 152 +232 248 200 +176 208 152 +136 216 64 +24 144 36 +24 80 36 +0 0 0 diff --git a/graphics/pokemon/alcremie/clover/clover_mint_cream.pal b/graphics/pokemon/alcremie/clover/clover_mint_cream.pal new file mode 100644 index 000000000000..08b8f83461b7 --- /dev/null +++ b/graphics/pokemon/alcremie/clover/clover_mint_cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +208 240 232 +152 168 176 +112 208 200 +72 112 128 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +136 216 64 +24 144 36 +24 80 36 +0 0 0 diff --git a/graphics/pokemon/alcremie/clover/clover_rainbow_swirl.pal b/graphics/pokemon/alcremie/clover/clover_rainbow_swirl.pal new file mode 100644 index 000000000000..4d6514f51e87 --- /dev/null +++ b/graphics/pokemon/alcremie/clover/clover_rainbow_swirl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 248 184 +208 192 120 +216 144 88 +120 88 64 +240 160 168 +208 128 136 +176 232 224 +128 160 168 +248 248 112 +216 192 40 +136 216 64 +24 144 36 +24 80 36 +0 0 0 diff --git a/graphics/pokemon/alcremie/clover/clover_ruby_cream.pal b/graphics/pokemon/alcremie/clover/clover_ruby_cream.pal new file mode 100644 index 000000000000..3243fea8029f --- /dev/null +++ b/graphics/pokemon/alcremie/clover/clover_ruby_cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 208 208 +200 152 184 +232 112 192 +128 80 112 +248 208 208 +200 152 184 +248 208 208 +200 152 184 +248 208 208 +200 152 184 +136 216 64 +24 144 36 +24 80 36 +0 0 0 diff --git a/graphics/pokemon/alcremie/clover/clover_ruby_swirl.pal b/graphics/pokemon/alcremie/clover/clover_ruby_swirl.pal new file mode 100644 index 000000000000..fd68b6c2cd1a --- /dev/null +++ b/graphics/pokemon/alcremie/clover/clover_ruby_swirl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 240 208 +208 184 160 +240 192 128 +128 96 80 +248 176 192 +224 120 128 +248 176 192 +224 120 128 +248 176 192 +224 120 128 +136 216 64 +24 144 36 +24 80 36 +0 0 0 diff --git a/graphics/pokemon/alcremie/clover/clover_salted_cream.pal b/graphics/pokemon/alcremie/clover/clover_salted_cream.pal new file mode 100644 index 000000000000..a5c5bc10fcfd --- /dev/null +++ b/graphics/pokemon/alcremie/clover/clover_salted_cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +232 232 248 +176 176 184 +112 208 200 +88 88 96 +232 232 248 +176 176 184 +232 232 248 +176 176 184 +232 232 248 +176 176 184 +136 216 64 +24 144 36 +24 80 36 +0 0 0 diff --git a/graphics/pokemon/alcremie/matcha_cream/shiny.pal b/graphics/pokemon/alcremie/clover/clover_shiny.pal similarity index 65% rename from graphics/pokemon/alcremie/matcha_cream/shiny.pal rename to graphics/pokemon/alcremie/clover/clover_shiny.pal index eb171da47c05..6329ca1ecd4d 100644 --- a/graphics/pokemon/alcremie/matcha_cream/shiny.pal +++ b/graphics/pokemon/alcremie/clover/clover_shiny.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 +216 216 216 +152 152 152 +128 128 128 +88 88 96 72 80 72 248 248 248 -88 88 96 -128 128 128 -16 16 16 -152 152 152 -216 216 216 -136 32 56 -248 88 112 -192 48 72 +168 176 176 248 248 248 168 176 176 -0 0 0 -0 0 0 -0 0 0 +248 248 248 +168 176 176 +136 216 64 +24 144 36 +24 80 36 +16 16 16 diff --git a/graphics/pokemon/alcremie/clover/front.png b/graphics/pokemon/alcremie/clover/front.png new file mode 100644 index 000000000000..dd30853ee3d9 Binary files /dev/null and b/graphics/pokemon/alcremie/clover/front.png differ diff --git a/graphics/pokemon/alcremie/flower/back.png b/graphics/pokemon/alcremie/flower/back.png new file mode 100644 index 000000000000..2d018bdabc05 Binary files /dev/null and b/graphics/pokemon/alcremie/flower/back.png differ diff --git a/graphics/pokemon/alcremie/flower/flower_caramel_swirl.pal b/graphics/pokemon/alcremie/flower/flower_caramel_swirl.pal new file mode 100644 index 000000000000..33bc209d7a7f --- /dev/null +++ b/graphics/pokemon/alcremie/flower/flower_caramel_swirl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 232 184 +200 168 120 +232 168 96 +144 112 72 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 0 +248 104 40 +152 56 24 +0 0 0 diff --git a/graphics/pokemon/alcremie/flower/flower_default.pal b/graphics/pokemon/alcremie/flower/flower_default.pal new file mode 100644 index 000000000000..a3184e016f61 --- /dev/null +++ b/graphics/pokemon/alcremie/flower/flower_default.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 224 208 +208 160 168 +240 136 144 +128 80 88 +248 224 200 +208 128 136 +248 224 200 +208 160 168 +248 224 200 +208 160 168 +248 248 0 +248 104 40 +152 56 24 +0 0 0 diff --git a/graphics/pokemon/alcremie/flower/flower_lemon_cream.pal b/graphics/pokemon/alcremie/flower/flower_lemon_cream.pal new file mode 100644 index 000000000000..df85ea6b8844 --- /dev/null +++ b/graphics/pokemon/alcremie/flower/flower_lemon_cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 248 152 +208 184 72 +232 224 0 +112 120 24 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 0 +248 104 40 +152 56 24 +0 0 0 diff --git a/graphics/pokemon/alcremie/flower/flower_matcha_cream.pal b/graphics/pokemon/alcremie/flower/flower_matcha_cream.pal new file mode 100644 index 000000000000..f3b35677c5b2 --- /dev/null +++ b/graphics/pokemon/alcremie/flower/flower_matcha_cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +232 248 208 +176 208 152 +192 224 96 +104 128 80 +232 248 200 +176 208 152 +232 248 200 +176 208 152 +232 248 200 +176 208 152 +248 248 0 +248 104 40 +152 56 24 +0 0 0 diff --git a/graphics/pokemon/alcremie/flower/flower_mint_cream.pal b/graphics/pokemon/alcremie/flower/flower_mint_cream.pal new file mode 100644 index 000000000000..b32cc3bb2fd4 --- /dev/null +++ b/graphics/pokemon/alcremie/flower/flower_mint_cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +208 240 232 +152 168 176 +112 208 200 +72 112 128 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 0 +248 104 40 +152 56 24 +0 0 0 diff --git a/graphics/pokemon/alcremie/flower/flower_rainbow_swirl.pal b/graphics/pokemon/alcremie/flower/flower_rainbow_swirl.pal new file mode 100644 index 000000000000..2b7736025fed --- /dev/null +++ b/graphics/pokemon/alcremie/flower/flower_rainbow_swirl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 248 184 +208 192 120 +216 144 88 +120 88 64 +240 160 168 +208 128 136 +176 232 224 +128 160 168 +248 248 112 +216 192 40 +248 248 0 +248 104 40 +152 56 24 +0 0 0 diff --git a/graphics/pokemon/alcremie/flower/flower_ruby_cream.pal b/graphics/pokemon/alcremie/flower/flower_ruby_cream.pal new file mode 100644 index 000000000000..6de39b5a3e71 --- /dev/null +++ b/graphics/pokemon/alcremie/flower/flower_ruby_cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 208 208 +200 152 184 +232 112 192 +128 80 112 +248 208 208 +200 152 184 +248 208 208 +200 152 184 +248 208 208 +200 152 184 +248 248 0 +248 104 40 +152 56 24 +0 0 0 diff --git a/graphics/pokemon/alcremie/flower/flower_ruby_swirl.pal b/graphics/pokemon/alcremie/flower/flower_ruby_swirl.pal new file mode 100644 index 000000000000..fce8994befd0 --- /dev/null +++ b/graphics/pokemon/alcremie/flower/flower_ruby_swirl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 240 208 +208 184 160 +240 192 128 +128 96 80 +248 176 192 +224 120 128 +248 176 192 +224 120 128 +248 176 192 +224 120 128 +248 248 0 +248 104 40 +152 56 24 +0 0 0 diff --git a/graphics/pokemon/alcremie/flower/flower_salted_cream.pal b/graphics/pokemon/alcremie/flower/flower_salted_cream.pal new file mode 100644 index 000000000000..a9c50d230ecf --- /dev/null +++ b/graphics/pokemon/alcremie/flower/flower_salted_cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +232 232 248 +176 176 184 +112 208 200 +88 88 96 +232 232 248 +176 176 184 +232 232 248 +176 176 184 +232 232 248 +176 176 184 +248 248 0 +248 104 40 +152 56 24 +0 0 0 diff --git a/graphics/pokemon/alcremie/ruby_swirl/shiny.pal b/graphics/pokemon/alcremie/flower/flower_shiny.pal similarity index 65% rename from graphics/pokemon/alcremie/ruby_swirl/shiny.pal rename to graphics/pokemon/alcremie/flower/flower_shiny.pal index eb171da47c05..ee7ae0fbaa61 100644 --- a/graphics/pokemon/alcremie/ruby_swirl/shiny.pal +++ b/graphics/pokemon/alcremie/flower/flower_shiny.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 +216 216 216 +152 152 152 +128 128 128 +88 88 96 72 80 72 248 248 248 -88 88 96 -128 128 128 -16 16 16 -152 152 152 -216 216 216 -136 32 56 -248 88 112 -192 48 72 +168 176 176 248 248 248 168 176 176 -0 0 0 -0 0 0 -0 0 0 +248 248 248 +168 176 176 +248 248 0 +248 104 40 +152 56 24 +16 16 16 diff --git a/graphics/pokemon/alcremie/flower/front.png b/graphics/pokemon/alcremie/flower/front.png new file mode 100644 index 000000000000..20c9af2f46ff Binary files /dev/null and b/graphics/pokemon/alcremie/flower/front.png differ diff --git a/graphics/pokemon/alcremie/lemon_cream/back.png b/graphics/pokemon/alcremie/lemon_cream/back.png deleted file mode 100644 index d5a073b54b91..000000000000 Binary files a/graphics/pokemon/alcremie/lemon_cream/back.png and /dev/null differ diff --git a/graphics/pokemon/alcremie/lemon_cream/front.png b/graphics/pokemon/alcremie/lemon_cream/front.png deleted file mode 100644 index fefb952fd4dd..000000000000 Binary files a/graphics/pokemon/alcremie/lemon_cream/front.png and /dev/null differ diff --git a/graphics/pokemon/alcremie/lemon_cream/shiny.pal b/graphics/pokemon/alcremie/lemon_cream/shiny.pal deleted file mode 100644 index d19dc335d5c0..000000000000 --- a/graphics/pokemon/alcremie/lemon_cream/shiny.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -152 208 160 -72 80 72 -248 248 248 -88 88 96 -128 128 128 -16 16 16 -152 152 152 -136 32 56 -248 88 112 -192 48 72 -168 176 176 -216 216 216 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/pokemon/alcremie/love/back.png b/graphics/pokemon/alcremie/love/back.png new file mode 100644 index 000000000000..6c3dd9436319 Binary files /dev/null and b/graphics/pokemon/alcremie/love/back.png differ diff --git a/graphics/pokemon/alcremie/love/front.png b/graphics/pokemon/alcremie/love/front.png new file mode 100644 index 000000000000..36cef02d8b5a Binary files /dev/null and b/graphics/pokemon/alcremie/love/front.png differ diff --git a/graphics/pokemon/alcremie/love/love_caramel_swirl.pal b/graphics/pokemon/alcremie/love/love_caramel_swirl.pal new file mode 100644 index 000000000000..86f59a8d62fe --- /dev/null +++ b/graphics/pokemon/alcremie/love/love_caramel_swirl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 232 184 +200 168 120 +232 168 96 +144 112 72 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 152 200 +248 112 120 +216 56 104 +0 0 0 diff --git a/graphics/pokemon/alcremie/love/love_default.pal b/graphics/pokemon/alcremie/love/love_default.pal new file mode 100644 index 000000000000..9f965e53b029 --- /dev/null +++ b/graphics/pokemon/alcremie/love/love_default.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 224 208 +208 160 168 +240 136 144 +128 80 88 +248 224 200 +208 128 136 +248 224 200 +208 160 168 +248 224 200 +208 160 168 +248 152 200 +248 112 120 +216 56 104 +0 0 0 diff --git a/graphics/pokemon/alcremie/love/love_lemon_cream.pal b/graphics/pokemon/alcremie/love/love_lemon_cream.pal new file mode 100644 index 000000000000..34d9c0dfef74 --- /dev/null +++ b/graphics/pokemon/alcremie/love/love_lemon_cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 248 152 +208 184 72 +232 224 0 +112 120 24 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 152 200 +248 112 120 +216 56 104 +0 0 0 diff --git a/graphics/pokemon/alcremie/love/love_matcha_cream.pal b/graphics/pokemon/alcremie/love/love_matcha_cream.pal new file mode 100644 index 000000000000..3d33c04aba44 --- /dev/null +++ b/graphics/pokemon/alcremie/love/love_matcha_cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +232 248 208 +176 208 152 +192 224 96 +104 128 80 +232 248 200 +176 208 152 +232 248 200 +176 208 152 +232 248 200 +176 208 152 +248 152 200 +248 112 120 +216 56 104 +0 0 0 diff --git a/graphics/pokemon/alcremie/love/love_mint_cream.pal b/graphics/pokemon/alcremie/love/love_mint_cream.pal new file mode 100644 index 000000000000..2344ddcf8202 --- /dev/null +++ b/graphics/pokemon/alcremie/love/love_mint_cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +208 240 232 +152 168 176 +112 208 200 +72 112 128 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 152 200 +248 112 120 +216 56 104 +0 0 0 diff --git a/graphics/pokemon/alcremie/love/love_rainbow_swirl.pal b/graphics/pokemon/alcremie/love/love_rainbow_swirl.pal new file mode 100644 index 000000000000..3bb1f61ee851 --- /dev/null +++ b/graphics/pokemon/alcremie/love/love_rainbow_swirl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 248 184 +208 192 120 +216 144 88 +120 88 64 +240 160 168 +208 128 136 +176 232 224 +128 160 168 +248 248 112 +216 192 40 +248 152 200 +248 112 120 +216 56 104 +0 0 0 diff --git a/graphics/pokemon/alcremie/love/love_ruby_cream.pal b/graphics/pokemon/alcremie/love/love_ruby_cream.pal new file mode 100644 index 000000000000..0d37782db537 --- /dev/null +++ b/graphics/pokemon/alcremie/love/love_ruby_cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 208 208 +200 152 184 +232 112 192 +128 80 112 +248 208 208 +200 152 184 +248 208 208 +200 152 184 +248 208 208 +200 152 184 +248 152 200 +248 112 120 +216 56 104 +0 0 0 diff --git a/graphics/pokemon/alcremie/love/love_ruby_swirl.pal b/graphics/pokemon/alcremie/love/love_ruby_swirl.pal new file mode 100644 index 000000000000..ad18466c8bf7 --- /dev/null +++ b/graphics/pokemon/alcremie/love/love_ruby_swirl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 240 208 +208 184 160 +240 192 128 +128 96 80 +248 176 192 +224 120 128 +248 176 192 +224 120 128 +248 176 192 +224 120 128 +248 152 200 +248 112 120 +216 56 104 +0 0 0 diff --git a/graphics/pokemon/alcremie/love/love_salted_cream.pal b/graphics/pokemon/alcremie/love/love_salted_cream.pal new file mode 100644 index 000000000000..9bb17bbcfd9c --- /dev/null +++ b/graphics/pokemon/alcremie/love/love_salted_cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +232 232 248 +176 176 184 +112 208 200 +88 88 96 +232 232 248 +176 176 184 +232 232 248 +176 176 184 +232 232 248 +176 176 184 +248 152 200 +248 112 120 +216 56 104 +0 0 0 diff --git a/graphics/pokemon/alcremie/love/love_shiny.pal b/graphics/pokemon/alcremie/love/love_shiny.pal new file mode 100644 index 000000000000..848904393413 --- /dev/null +++ b/graphics/pokemon/alcremie/love/love_shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +216 216 216 +152 152 152 +128 128 128 +88 88 96 +72 80 72 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 152 200 +248 112 120 +216 56 104 +16 16 16 diff --git a/graphics/pokemon/alcremie/matcha_cream/back.png b/graphics/pokemon/alcremie/matcha_cream/back.png deleted file mode 100644 index 7a422730b9f0..000000000000 Binary files a/graphics/pokemon/alcremie/matcha_cream/back.png and /dev/null differ diff --git a/graphics/pokemon/alcremie/matcha_cream/front.png b/graphics/pokemon/alcremie/matcha_cream/front.png deleted file mode 100644 index 28225df1a016..000000000000 Binary files a/graphics/pokemon/alcremie/matcha_cream/front.png and /dev/null differ diff --git a/graphics/pokemon/alcremie/mint_cream/back.png b/graphics/pokemon/alcremie/mint_cream/back.png deleted file mode 100644 index 481ce9c78cff..000000000000 Binary files a/graphics/pokemon/alcremie/mint_cream/back.png and /dev/null differ diff --git a/graphics/pokemon/alcremie/mint_cream/front.png b/graphics/pokemon/alcremie/mint_cream/front.png deleted file mode 100644 index 9d525253fa5b..000000000000 Binary files a/graphics/pokemon/alcremie/mint_cream/front.png and /dev/null differ diff --git a/graphics/pokemon/alcremie/ribbon/back.png b/graphics/pokemon/alcremie/ribbon/back.png new file mode 100644 index 000000000000..3b595ebb62e1 Binary files /dev/null and b/graphics/pokemon/alcremie/ribbon/back.png differ diff --git a/graphics/pokemon/alcremie/ribbon/front.png b/graphics/pokemon/alcremie/ribbon/front.png new file mode 100644 index 000000000000..2f1b913cb7a9 Binary files /dev/null and b/graphics/pokemon/alcremie/ribbon/front.png differ diff --git a/graphics/pokemon/alcremie/ribbon/ribbon_caramel_swirl.pal b/graphics/pokemon/alcremie/ribbon/ribbon_caramel_swirl.pal new file mode 100644 index 000000000000..c4fce2c7c6b2 --- /dev/null +++ b/graphics/pokemon/alcremie/ribbon/ribbon_caramel_swirl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 232 184 +200 168 120 +232 168 96 +144 112 72 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +176 136 176 +144 96 168 +112 72 136 +0 0 0 diff --git a/graphics/pokemon/alcremie/ribbon/ribbon_default.pal b/graphics/pokemon/alcremie/ribbon/ribbon_default.pal new file mode 100644 index 000000000000..b0ad7cdf7414 --- /dev/null +++ b/graphics/pokemon/alcremie/ribbon/ribbon_default.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 224 208 +208 160 168 +240 136 144 +128 80 88 +248 224 200 +208 128 136 +248 224 200 +208 160 168 +248 224 200 +208 160 168 +176 136 176 +144 96 168 +112 72 136 +0 0 0 diff --git a/graphics/pokemon/alcremie/ribbon/ribbon_lemon_cream.pal b/graphics/pokemon/alcremie/ribbon/ribbon_lemon_cream.pal new file mode 100644 index 000000000000..b022d03006d7 --- /dev/null +++ b/graphics/pokemon/alcremie/ribbon/ribbon_lemon_cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 248 152 +208 184 72 +232 224 0 +112 120 24 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +176 136 176 +144 96 168 +112 72 136 +0 0 0 diff --git a/graphics/pokemon/alcremie/ribbon/ribbon_matcha_cream.pal b/graphics/pokemon/alcremie/ribbon/ribbon_matcha_cream.pal new file mode 100644 index 000000000000..4999acd24804 --- /dev/null +++ b/graphics/pokemon/alcremie/ribbon/ribbon_matcha_cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +232 248 208 +176 208 152 +192 224 96 +104 128 80 +232 248 200 +176 208 152 +232 248 200 +176 208 152 +232 248 200 +176 208 152 +176 136 176 +144 96 168 +112 72 136 +0 0 0 diff --git a/graphics/pokemon/alcremie/ribbon/ribbon_mint_cream.pal b/graphics/pokemon/alcremie/ribbon/ribbon_mint_cream.pal new file mode 100644 index 000000000000..2349810b7ed5 --- /dev/null +++ b/graphics/pokemon/alcremie/ribbon/ribbon_mint_cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +208 240 232 +152 168 176 +112 208 200 +72 112 128 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +176 136 176 +144 96 168 +112 72 136 +0 0 0 diff --git a/graphics/pokemon/alcremie/ribbon/ribbon_rainbow_swirl.pal b/graphics/pokemon/alcremie/ribbon/ribbon_rainbow_swirl.pal new file mode 100644 index 000000000000..8c177694780c --- /dev/null +++ b/graphics/pokemon/alcremie/ribbon/ribbon_rainbow_swirl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 248 184 +208 192 120 +216 144 88 +120 88 64 +240 160 168 +208 128 136 +176 232 224 +128 160 168 +248 248 112 +216 192 40 +176 136 176 +144 96 168 +112 72 136 +0 0 0 diff --git a/graphics/pokemon/alcremie/ribbon/ribbon_ruby_cream.pal b/graphics/pokemon/alcremie/ribbon/ribbon_ruby_cream.pal new file mode 100644 index 000000000000..6384296180ff --- /dev/null +++ b/graphics/pokemon/alcremie/ribbon/ribbon_ruby_cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 208 208 +200 152 184 +232 112 192 +128 80 112 +248 208 208 +200 152 184 +248 208 208 +200 152 184 +248 208 208 +200 152 184 +176 136 176 +144 96 168 +112 72 136 +0 0 0 diff --git a/graphics/pokemon/alcremie/ribbon/ribbon_ruby_swirl.pal b/graphics/pokemon/alcremie/ribbon/ribbon_ruby_swirl.pal new file mode 100644 index 000000000000..e1f9ce61dcc1 --- /dev/null +++ b/graphics/pokemon/alcremie/ribbon/ribbon_ruby_swirl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 240 208 +208 184 160 +240 192 128 +128 96 80 +248 176 192 +224 120 128 +248 176 192 +224 120 128 +248 176 192 +224 120 128 +176 136 176 +144 96 168 +112 72 136 +0 0 0 diff --git a/graphics/pokemon/alcremie/ribbon/ribbon_salted_cream.pal b/graphics/pokemon/alcremie/ribbon/ribbon_salted_cream.pal new file mode 100644 index 000000000000..cdf85d28b54e --- /dev/null +++ b/graphics/pokemon/alcremie/ribbon/ribbon_salted_cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +232 232 248 +176 176 184 +112 208 200 +88 88 96 +232 232 248 +176 176 184 +232 232 248 +176 176 184 +232 232 248 +176 176 184 +176 136 176 +144 96 168 +112 72 136 +0 0 0 diff --git a/graphics/pokemon/alcremie/ribbon/ribbon_shiny.pal b/graphics/pokemon/alcremie/ribbon/ribbon_shiny.pal new file mode 100644 index 000000000000..b60e7632feaa --- /dev/null +++ b/graphics/pokemon/alcremie/ribbon/ribbon_shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +216 216 216 +152 152 152 +128 128 128 +88 88 96 +72 80 72 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +176 136 176 +144 96 168 +112 72 136 +16 16 16 diff --git a/graphics/pokemon/alcremie/ruby_cream/back.png b/graphics/pokemon/alcremie/ruby_cream/back.png deleted file mode 100644 index 45fc28a0e6f7..000000000000 Binary files a/graphics/pokemon/alcremie/ruby_cream/back.png and /dev/null differ diff --git a/graphics/pokemon/alcremie/ruby_cream/front.png b/graphics/pokemon/alcremie/ruby_cream/front.png deleted file mode 100644 index e64880a8cf1d..000000000000 Binary files a/graphics/pokemon/alcremie/ruby_cream/front.png and /dev/null differ diff --git a/graphics/pokemon/alcremie/ruby_swirl/back.png b/graphics/pokemon/alcremie/ruby_swirl/back.png deleted file mode 100644 index ae275b897dad..000000000000 Binary files a/graphics/pokemon/alcremie/ruby_swirl/back.png and /dev/null differ diff --git a/graphics/pokemon/alcremie/ruby_swirl/front.png b/graphics/pokemon/alcremie/ruby_swirl/front.png deleted file mode 100644 index cb99b49fa25f..000000000000 Binary files a/graphics/pokemon/alcremie/ruby_swirl/front.png and /dev/null differ diff --git a/graphics/pokemon/alcremie/salted_cream/back.png b/graphics/pokemon/alcremie/salted_cream/back.png deleted file mode 100644 index f32932d95c7a..000000000000 Binary files a/graphics/pokemon/alcremie/salted_cream/back.png and /dev/null differ diff --git a/graphics/pokemon/alcremie/salted_cream/front.png b/graphics/pokemon/alcremie/salted_cream/front.png deleted file mode 100644 index 7958715bccb2..000000000000 Binary files a/graphics/pokemon/alcremie/salted_cream/front.png and /dev/null differ diff --git a/graphics/pokemon/alcremie/salted_cream/shiny.pal b/graphics/pokemon/alcremie/salted_cream/shiny.pal deleted file mode 100644 index 953c50e5ee5d..000000000000 --- a/graphics/pokemon/alcremie/salted_cream/shiny.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -152 208 160 -72 80 72 -248 248 248 -88 88 96 -128 128 128 -16 16 16 -136 32 56 -248 88 112 -192 48 72 -168 176 176 -152 152 152 -216 216 216 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/pokemon/alcremie/star/back.png b/graphics/pokemon/alcremie/star/back.png new file mode 100644 index 000000000000..38d32ca65795 Binary files /dev/null and b/graphics/pokemon/alcremie/star/back.png differ diff --git a/graphics/pokemon/alcremie/star/front.png b/graphics/pokemon/alcremie/star/front.png new file mode 100644 index 000000000000..41f042229bd9 Binary files /dev/null and b/graphics/pokemon/alcremie/star/front.png differ diff --git a/graphics/pokemon/alcremie/star/star_caramel_swirl.pal b/graphics/pokemon/alcremie/star/star_caramel_swirl.pal new file mode 100644 index 000000000000..254db99d4177 --- /dev/null +++ b/graphics/pokemon/alcremie/star/star_caramel_swirl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 232 184 +200 168 120 +232 168 96 +144 112 72 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 224 48 +200 176 24 +192 112 16 +0 0 0 diff --git a/graphics/pokemon/alcremie/star/star_default.pal b/graphics/pokemon/alcremie/star/star_default.pal new file mode 100644 index 000000000000..d99429510aa4 --- /dev/null +++ b/graphics/pokemon/alcremie/star/star_default.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 224 208 +208 160 168 +240 136 144 +128 80 88 +248 224 200 +208 128 136 +248 224 200 +208 160 168 +248 224 200 +208 160 168 +248 224 48 +200 176 24 +192 112 16 +0 0 0 diff --git a/graphics/pokemon/alcremie/star/star_lemon_cream.pal b/graphics/pokemon/alcremie/star/star_lemon_cream.pal new file mode 100644 index 000000000000..ec776c4d903c --- /dev/null +++ b/graphics/pokemon/alcremie/star/star_lemon_cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 248 152 +208 184 72 +232 224 0 +112 120 24 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 224 48 +200 176 24 +192 112 16 +0 0 0 diff --git a/graphics/pokemon/alcremie/star/star_matcha_cream.pal b/graphics/pokemon/alcremie/star/star_matcha_cream.pal new file mode 100644 index 000000000000..b642f1178635 --- /dev/null +++ b/graphics/pokemon/alcremie/star/star_matcha_cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +232 248 208 +176 208 152 +192 224 96 +104 128 80 +232 248 200 +176 208 152 +232 248 200 +176 208 152 +232 248 200 +176 208 152 +248 224 48 +200 176 24 +192 112 16 +0 0 0 diff --git a/graphics/pokemon/alcremie/star/star_mint_cream.pal b/graphics/pokemon/alcremie/star/star_mint_cream.pal new file mode 100644 index 000000000000..f4fb9991f85c --- /dev/null +++ b/graphics/pokemon/alcremie/star/star_mint_cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +208 240 232 +152 168 176 +112 208 200 +72 112 128 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 224 48 +200 176 24 +192 112 16 +0 0 0 diff --git a/graphics/pokemon/alcremie/star/star_rainbow_swirl.pal b/graphics/pokemon/alcremie/star/star_rainbow_swirl.pal new file mode 100644 index 000000000000..a0aa5334c4a6 --- /dev/null +++ b/graphics/pokemon/alcremie/star/star_rainbow_swirl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 248 184 +208 192 120 +216 144 88 +120 88 64 +240 160 168 +208 128 136 +176 232 224 +128 160 168 +248 248 112 +216 192 40 +248 224 48 +200 176 24 +192 112 16 +0 0 0 diff --git a/graphics/pokemon/alcremie/star/star_ruby_cream.pal b/graphics/pokemon/alcremie/star/star_ruby_cream.pal new file mode 100644 index 000000000000..1f66460fb6a2 --- /dev/null +++ b/graphics/pokemon/alcremie/star/star_ruby_cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 208 208 +200 152 184 +232 112 192 +128 80 112 +248 208 208 +200 152 184 +248 208 208 +200 152 184 +248 208 208 +200 152 184 +248 224 48 +200 176 24 +192 112 16 +0 0 0 diff --git a/graphics/pokemon/alcremie/star/star_ruby_swirl.pal b/graphics/pokemon/alcremie/star/star_ruby_swirl.pal new file mode 100644 index 000000000000..1f00d36c9cf0 --- /dev/null +++ b/graphics/pokemon/alcremie/star/star_ruby_swirl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 240 208 +208 184 160 +240 192 128 +128 96 80 +248 176 192 +224 120 128 +248 176 192 +224 120 128 +248 176 192 +224 120 128 +248 224 48 +200 176 24 +192 112 16 +0 0 0 diff --git a/graphics/pokemon/alcremie/star/star_salted_cream.pal b/graphics/pokemon/alcremie/star/star_salted_cream.pal new file mode 100644 index 000000000000..2b0c72d8f632 --- /dev/null +++ b/graphics/pokemon/alcremie/star/star_salted_cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +232 232 248 +176 176 184 +112 208 200 +88 88 96 +232 232 248 +176 176 184 +232 232 248 +176 176 184 +232 232 248 +176 176 184 +248 224 48 +200 176 24 +192 112 16 +0 0 0 diff --git a/graphics/pokemon/alcremie/star/star_shiny.pal b/graphics/pokemon/alcremie/star/star_shiny.pal new file mode 100644 index 000000000000..6fb3e1d92324 --- /dev/null +++ b/graphics/pokemon/alcremie/star/star_shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +216 216 216 +152 152 152 +128 128 128 +88 88 96 +72 80 72 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 248 248 +168 176 176 +248 224 48 +200 176 24 +192 112 16 +16 16 16 diff --git a/graphics/pokemon/alcremie/strawberry/back.png b/graphics/pokemon/alcremie/strawberry/back.png new file mode 100644 index 000000000000..2f3ce5007a14 Binary files /dev/null and b/graphics/pokemon/alcremie/strawberry/back.png differ diff --git a/graphics/pokemon/alcremie/strawberry/front.png b/graphics/pokemon/alcremie/strawberry/front.png new file mode 100644 index 000000000000..fe7872d2d35a Binary files /dev/null and b/graphics/pokemon/alcremie/strawberry/front.png differ diff --git a/graphics/pokemon/alcremie/salted_cream/normal.pal b/graphics/pokemon/alcremie/strawberry/strawberry_caramel_swirl.pal similarity index 58% rename from graphics/pokemon/alcremie/salted_cream/normal.pal rename to graphics/pokemon/alcremie/strawberry/strawberry_caramel_swirl.pal index adfd376dc3ca..78cea9164c36 100644 --- a/graphics/pokemon/alcremie/salted_cream/normal.pal +++ b/graphics/pokemon/alcremie/strawberry/strawberry_caramel_swirl.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -88 88 88 248 248 248 -112 208 200 -176 176 176 -16 16 16 -136 32 56 -248 88 112 -192 48 72 +248 232 184 +200 168 120 +232 168 96 +144 112 72 +248 248 248 168 176 176 248 248 248 +168 176 176 248 248 248 -0 0 0 -0 0 0 -0 0 0 +168 176 176 +248 88 112 +192 48 72 +136 32 56 0 0 0 diff --git a/graphics/pokemon/alcremie/strawberry/strawberry_default.pal b/graphics/pokemon/alcremie/strawberry/strawberry_default.pal new file mode 100644 index 000000000000..b9cb001f7a97 --- /dev/null +++ b/graphics/pokemon/alcremie/strawberry/strawberry_default.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 224 208 +208 160 168 +240 136 144 +128 80 88 +248 224 200 +208 128 136 +248 224 200 +208 160 168 +248 224 200 +208 160 168 +248 88 112 +192 48 72 +136 32 56 +0 0 0 diff --git a/graphics/pokemon/alcremie/lemon_cream/normal.pal b/graphics/pokemon/alcremie/strawberry/strawberry_lemon_cream.pal similarity index 75% rename from graphics/pokemon/alcremie/lemon_cream/normal.pal rename to graphics/pokemon/alcremie/strawberry/strawberry_lemon_cream.pal index c69c0376e812..0cbfae8eec18 100644 --- a/graphics/pokemon/alcremie/lemon_cream/normal.pal +++ b/graphics/pokemon/alcremie/strawberry/strawberry_lemon_cream.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -112 120 24 248 248 248 -232 224 0 -208 184 72 -16 16 16 248 248 152 -136 32 56 -248 88 112 -192 48 72 +208 184 72 +232 224 0 +112 120 24 +248 248 248 168 176 176 248 248 248 -0 0 0 -0 0 0 -0 0 0 +168 176 176 +248 248 248 +168 176 176 +248 88 112 +192 48 72 +136 32 56 0 0 0 diff --git a/graphics/pokemon/alcremie/matcha_cream/normal.pal b/graphics/pokemon/alcremie/strawberry/strawberry_matcha_cream.pal similarity index 75% rename from graphics/pokemon/alcremie/matcha_cream/normal.pal rename to graphics/pokemon/alcremie/strawberry/strawberry_matcha_cream.pal index a5bbc02bc238..918955f1aa40 100644 --- a/graphics/pokemon/alcremie/matcha_cream/normal.pal +++ b/graphics/pokemon/alcremie/strawberry/strawberry_matcha_cream.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 +248 248 248 +232 248 208 +176 208 152 +192 224 96 104 128 80 232 248 200 -192 224 96 176 208 152 -16 16 16 -232 248 208 -248 248 248 -136 32 56 +232 248 200 +176 208 152 +232 248 200 +176 208 152 248 88 112 192 48 72 -224 248 200 -176 208 152 -0 0 0 -0 0 0 +136 32 56 0 0 0 diff --git a/graphics/pokemon/alcremie/mint_cream/normal.pal b/graphics/pokemon/alcremie/strawberry/strawberry_mint_cream.pal similarity index 75% rename from graphics/pokemon/alcremie/mint_cream/normal.pal rename to graphics/pokemon/alcremie/strawberry/strawberry_mint_cream.pal index 7b56dfdc3e0b..3978acb2181d 100644 --- a/graphics/pokemon/alcremie/mint_cream/normal.pal +++ b/graphics/pokemon/alcremie/strawberry/strawberry_mint_cream.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -72 112 128 248 248 248 -112 208 200 -152 168 176 -16 16 16 208 240 232 -136 32 56 -248 88 112 -192 48 72 +152 168 176 +112 208 200 +72 112 128 +248 248 248 168 176 176 -176 176 176 248 248 248 -0 0 0 -0 0 0 +168 176 176 +248 248 248 +168 176 176 +248 88 112 +192 48 72 +136 32 56 0 0 0 diff --git a/graphics/pokemon/alcremie/strawberry/strawberry_rainbow_swirl.pal b/graphics/pokemon/alcremie/strawberry/strawberry_rainbow_swirl.pal new file mode 100644 index 000000000000..10bfc24d1f07 --- /dev/null +++ b/graphics/pokemon/alcremie/strawberry/strawberry_rainbow_swirl.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +248 248 184 +208 192 120 +216 144 88 +120 88 64 +240 160 168 +208 128 136 +176 232 224 +128 160 168 +248 248 112 +216 192 40 +248 88 112 +192 48 72 +136 32 56 +0 0 0 diff --git a/graphics/pokemon/alcremie/ruby_cream/normal.pal b/graphics/pokemon/alcremie/strawberry/strawberry_ruby_cream.pal similarity index 57% rename from graphics/pokemon/alcremie/ruby_cream/normal.pal rename to graphics/pokemon/alcremie/strawberry/strawberry_ruby_cream.pal index 873d673e1b36..e95929cab75c 100644 --- a/graphics/pokemon/alcremie/ruby_cream/normal.pal +++ b/graphics/pokemon/alcremie/strawberry/strawberry_ruby_cream.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -128 80 112 -240 200 208 +248 248 248 +248 208 208 +200 152 184 232 112 192 +128 80 112 +248 208 208 +200 152 184 +248 208 208 +200 152 184 +248 208 208 200 152 184 -16 16 16 -248 248 248 -136 32 56 248 88 112 192 48 72 -240 200 200 -200 144 184 -200 152 192 -240 200 208 -0 0 0 +136 32 56 0 0 0 diff --git a/graphics/pokemon/alcremie/ruby_swirl/normal.pal b/graphics/pokemon/alcremie/strawberry/strawberry_ruby_swirl.pal similarity index 75% rename from graphics/pokemon/alcremie/ruby_swirl/normal.pal rename to graphics/pokemon/alcremie/strawberry/strawberry_ruby_swirl.pal index 5208a45f8f6a..59e711dd22ba 100644 --- a/graphics/pokemon/alcremie/ruby_swirl/normal.pal +++ b/graphics/pokemon/alcremie/strawberry/strawberry_ruby_swirl.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 +248 248 248 +248 240 208 +208 184 160 +240 192 128 128 96 80 248 176 192 -240 192 128 -208 184 160 -16 16 16 -248 240 208 -248 248 248 -136 32 56 +224 120 128 +248 176 192 +224 120 128 +248 176 192 +224 120 128 248 88 112 192 48 72 -248 176 184 -224 120 128 -0 0 0 -0 0 0 +136 32 56 0 0 0 diff --git a/graphics/pokemon/alcremie/strawberry/strawberry_salted_cream.pal b/graphics/pokemon/alcremie/strawberry/strawberry_salted_cream.pal new file mode 100644 index 000000000000..af57499a4c6d --- /dev/null +++ b/graphics/pokemon/alcremie/strawberry/strawberry_salted_cream.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 248 248 +232 232 248 +176 176 184 +112 208 200 +88 88 96 +232 232 248 +176 176 184 +232 232 248 +176 176 184 +232 232 248 +176 176 184 +248 88 112 +192 48 72 +136 32 56 +0 0 0 diff --git a/graphics/pokemon/alcremie/ruby_cream/shiny.pal b/graphics/pokemon/alcremie/strawberry/strawberry_shiny.pal similarity index 87% rename from graphics/pokemon/alcremie/ruby_cream/shiny.pal rename to graphics/pokemon/alcremie/strawberry/strawberry_shiny.pal index 454ec33ff4a1..6ae9aa96afd5 100644 --- a/graphics/pokemon/alcremie/ruby_cream/shiny.pal +++ b/graphics/pokemon/alcremie/strawberry/strawberry_shiny.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 +216 216 216 +152 152 152 +128 128 128 +88 88 96 72 80 72 248 248 248 -88 88 96 -128 128 128 -16 16 16 -216 216 216 -136 32 56 -248 88 112 -192 48 72 +168 176 176 248 248 248 168 176 176 +248 248 248 168 176 176 -152 152 152 -0 0 0 -0 0 0 +248 88 112 +192 48 72 +136 32 56 +16 16 16 diff --git a/graphics/pokemon/amaura/anim_front.png b/graphics/pokemon/amaura/anim_front.png index 63c7d94cbdb2..b619f704f92f 100644 Binary files a/graphics/pokemon/amaura/anim_front.png and b/graphics/pokemon/amaura/anim_front.png differ diff --git a/graphics/pokemon/annihilape/back.png b/graphics/pokemon/annihilape/back.png new file mode 100755 index 000000000000..8be985350576 Binary files /dev/null and b/graphics/pokemon/annihilape/back.png differ diff --git a/graphics/pokemon/annihilape/front.png b/graphics/pokemon/annihilape/front.png new file mode 100755 index 000000000000..2e8a893ce3d3 Binary files /dev/null and b/graphics/pokemon/annihilape/front.png differ diff --git a/graphics/pokemon/annihilape/icon.png b/graphics/pokemon/annihilape/icon.png new file mode 100755 index 000000000000..a516d2d5e92c Binary files /dev/null and b/graphics/pokemon/annihilape/icon.png differ diff --git a/graphics/pokemon/annihilape/normal.pal b/graphics/pokemon/annihilape/normal.pal new file mode 100755 index 000000000000..dc7b2420852d --- /dev/null +++ b/graphics/pokemon/annihilape/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +112 112 120 +16 16 16 +248 248 248 +64 64 64 +192 192 208 +160 160 176 +224 24 24 +240 152 168 +144 48 72 +32 40 40 +192 72 96 +88 104 112 +64 72 80 +40 40 40 +80 80 80 diff --git a/graphics/pokemon/annihilape/shiny.pal b/graphics/pokemon/annihilape/shiny.pal new file mode 100755 index 000000000000..c19578eeb4af --- /dev/null +++ b/graphics/pokemon/annihilape/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +80 80 128 +16 16 16 +240 232 232 +40 40 72 +168 168 192 +128 136 176 +224 24 24 +240 152 168 +144 48 72 +24 40 56 +192 72 96 +88 128 168 +56 80 104 +40 40 40 +80 80 80 diff --git a/graphics/pokemon/arboliva/back.png b/graphics/pokemon/arboliva/back.png new file mode 100644 index 000000000000..a1383390e17c Binary files /dev/null and b/graphics/pokemon/arboliva/back.png differ diff --git a/graphics/pokemon/arboliva/front.png b/graphics/pokemon/arboliva/front.png new file mode 100644 index 000000000000..13521182f132 Binary files /dev/null and b/graphics/pokemon/arboliva/front.png differ diff --git a/graphics/pokemon/arboliva/icon.png b/graphics/pokemon/arboliva/icon.png new file mode 100755 index 000000000000..039efb54894a Binary files /dev/null and b/graphics/pokemon/arboliva/icon.png differ diff --git a/graphics/pokemon/arboliva/normal.pal b/graphics/pokemon/arboliva/normal.pal new file mode 100644 index 000000000000..c343903ef136 --- /dev/null +++ b/graphics/pokemon/arboliva/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +0 128 32 +152 224 56 +0 56 16 +0 200 32 +0 0 0 +248 248 240 +184 192 168 +72 96 72 +224 128 72 +192 72 40 +104 32 56 +160 56 80 +56 8 24 +80 32 24 +0 0 0 diff --git a/graphics/pokemon/arboliva/shiny.pal b/graphics/pokemon/arboliva/shiny.pal new file mode 100644 index 000000000000..796aeec5bee2 --- /dev/null +++ b/graphics/pokemon/arboliva/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +8 48 16 +112 144 64 +0 56 16 +24 120 40 +0 0 0 +248 248 240 +184 192 168 +72 96 72 +200 112 64 +168 64 40 +56 16 24 +104 32 48 +56 8 24 +80 32 24 +0 0 0 diff --git a/graphics/pokemon/arctibax/back.png b/graphics/pokemon/arctibax/back.png new file mode 100644 index 000000000000..ff061dece40b Binary files /dev/null and b/graphics/pokemon/arctibax/back.png differ diff --git a/graphics/pokemon/arctibax/front.png b/graphics/pokemon/arctibax/front.png new file mode 100644 index 000000000000..6b1350e89203 Binary files /dev/null and b/graphics/pokemon/arctibax/front.png differ diff --git a/graphics/pokemon/arctibax/icon.png b/graphics/pokemon/arctibax/icon.png new file mode 100755 index 000000000000..f9fcaecf43fc Binary files /dev/null and b/graphics/pokemon/arctibax/icon.png differ diff --git a/graphics/pokemon/arctibax/normal.pal b/graphics/pokemon/arctibax/normal.pal new file mode 100644 index 000000000000..0a9a427117a9 --- /dev/null +++ b/graphics/pokemon/arctibax/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 210 164 +92 131 133 +65 69 90 +188 239 248 +91 111 138 +125 166 166 +102 149 227 +15 15 15 +0 0 0 +255 209 74 +218 145 35 +75 122 154 +58 99 126 +100 54 32 +244 125 47 +168 96 47 diff --git a/graphics/pokemon/arctibax/shiny.pal b/graphics/pokemon/arctibax/shiny.pal new file mode 100644 index 000000000000..0c46ae69824d --- /dev/null +++ b/graphics/pokemon/arctibax/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 210 164 +74 168 123 +65 69 90 +227 255 253 +78 133 139 +140 221 192 +134 249 249 +15 15 15 +0 0 0 +255 209 74 +218 145 35 +67 194 175 +63 152 138 +137 39 73 +252 142 179 +201 100 144 diff --git a/graphics/pokemon/armarouge/back.png b/graphics/pokemon/armarouge/back.png new file mode 100644 index 000000000000..905c5e53f0ec Binary files /dev/null and b/graphics/pokemon/armarouge/back.png differ diff --git a/graphics/pokemon/armarouge/front.png b/graphics/pokemon/armarouge/front.png new file mode 100644 index 000000000000..b50aec353b63 Binary files /dev/null and b/graphics/pokemon/armarouge/front.png differ diff --git a/graphics/pokemon/armarouge/icon.png b/graphics/pokemon/armarouge/icon.png new file mode 100755 index 000000000000..a1b9e9b90fc8 Binary files /dev/null and b/graphics/pokemon/armarouge/icon.png differ diff --git a/graphics/pokemon/armarouge/normal.pal b/graphics/pokemon/armarouge/normal.pal new file mode 100644 index 000000000000..39e1c828a8dc --- /dev/null +++ b/graphics/pokemon/armarouge/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 210 164 +147 50 48 +226 60 27 +255 119 178 +236 183 34 +237 230 62 +12 12 12 +84 40 41 +237 230 63 +54 52 52 +94 86 82 +150 91 14 +255 255 255 +226 60 28 +0 0 0 +0 0 0 diff --git a/graphics/pokemon/armarouge/shiny.pal b/graphics/pokemon/armarouge/shiny.pal new file mode 100644 index 000000000000..d9c256423c11 --- /dev/null +++ b/graphics/pokemon/armarouge/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 210 164 +147 50 48 +226 60 27 +255 119 178 +236 183 34 +237 230 62 +12 12 12 +84 40 41 +33 174 217 +54 52 52 +94 86 82 +150 91 14 +255 255 255 +33 174 217 +0 0 0 +0 0 0 diff --git a/graphics/pokemon/baxcalibur/back.png b/graphics/pokemon/baxcalibur/back.png new file mode 100755 index 000000000000..241e048d7add Binary files /dev/null and b/graphics/pokemon/baxcalibur/back.png differ diff --git a/graphics/pokemon/baxcalibur/front.png b/graphics/pokemon/baxcalibur/front.png new file mode 100755 index 000000000000..e706fa393c79 Binary files /dev/null and b/graphics/pokemon/baxcalibur/front.png differ diff --git a/graphics/pokemon/baxcalibur/icon.png b/graphics/pokemon/baxcalibur/icon.png new file mode 100755 index 000000000000..1aee317d5c8c Binary files /dev/null and b/graphics/pokemon/baxcalibur/icon.png differ diff --git a/graphics/pokemon/baxcalibur/normal.pal b/graphics/pokemon/baxcalibur/normal.pal new file mode 100755 index 000000000000..6abbb8785dab --- /dev/null +++ b/graphics/pokemon/baxcalibur/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +16 16 16 +80 112 112 +224 252 248 +184 224 224 +32 40 48 +48 64 80 +120 180 200 +136 100 24 +240 212 72 +40 44 40 +64 96 112 +96 16 32 +144 24 48 +216 36 72 +0 0 0 diff --git a/graphics/pokemon/baxcalibur/shiny.pal b/graphics/pokemon/baxcalibur/shiny.pal new file mode 100755 index 000000000000..0a0c6145dfb2 --- /dev/null +++ b/graphics/pokemon/baxcalibur/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +16 16 16 +46 95 110 +224 252 248 +187 230 226 +45 76 85 +64 109 121 +100 192 198 +136 100 24 +240 212 72 +40 44 40 +72 154 164 +128 44 98 +144 24 48 +255 104 209 +0 0 0 diff --git a/graphics/pokemon/bellibolt/back.png b/graphics/pokemon/bellibolt/back.png new file mode 100644 index 000000000000..487953dce7d4 Binary files /dev/null and b/graphics/pokemon/bellibolt/back.png differ diff --git a/graphics/pokemon/bellibolt/front.png b/graphics/pokemon/bellibolt/front.png new file mode 100644 index 000000000000..9264c3fcbc93 Binary files /dev/null and b/graphics/pokemon/bellibolt/front.png differ diff --git a/graphics/pokemon/bellibolt/icon.png b/graphics/pokemon/bellibolt/icon.png new file mode 100755 index 000000000000..865c18ad0ecd Binary files /dev/null and b/graphics/pokemon/bellibolt/icon.png differ diff --git a/graphics/pokemon/bellibolt/normal.pal b/graphics/pokemon/bellibolt/normal.pal new file mode 100644 index 000000000000..293a2f05227f --- /dev/null +++ b/graphics/pokemon/bellibolt/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +184 88 64 +120 48 40 +248 152 72 +112 104 104 +248 208 128 +248 248 248 +168 168 160 +56 176 152 +16 112 112 +112 216 184 +248 216 24 +16 16 16 +8 64 72 +80 72 64 +184 160 64 diff --git a/graphics/pokemon/bellibolt/shiny.pal b/graphics/pokemon/bellibolt/shiny.pal new file mode 100644 index 000000000000..3f55dc1096d1 --- /dev/null +++ b/graphics/pokemon/bellibolt/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +184 88 64 +120 48 40 +248 152 72 +112 104 104 +248 208 128 +248 248 248 +168 168 160 +248 248 136 +200 168 72 +248 248 200 +248 216 24 +16 16 16 +120 80 24 +80 72 64 +184 160 64 diff --git a/graphics/pokemon/bombirdier/back.png b/graphics/pokemon/bombirdier/back.png new file mode 100644 index 000000000000..eb4511701353 Binary files /dev/null and b/graphics/pokemon/bombirdier/back.png differ diff --git a/graphics/pokemon/bombirdier/front.png b/graphics/pokemon/bombirdier/front.png new file mode 100644 index 000000000000..97159715f25c Binary files /dev/null and b/graphics/pokemon/bombirdier/front.png differ diff --git a/graphics/pokemon/bombirdier/icon.png b/graphics/pokemon/bombirdier/icon.png new file mode 100755 index 000000000000..06bcf71c867a Binary files /dev/null and b/graphics/pokemon/bombirdier/icon.png differ diff --git a/graphics/pokemon/bombirdier/normal.pal b/graphics/pokemon/bombirdier/normal.pal new file mode 100644 index 000000000000..21129ad8288b --- /dev/null +++ b/graphics/pokemon/bombirdier/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 210 164 +52 41 48 +74 57 66 +15 15 15 +38 210 161 +102 91 96 +185 170 175 +239 227 225 +147 125 133 +80 29 37 +77 74 75 +230 76 98 +255 251 255 +153 62 73 +167 171 167 +123 130 123 diff --git a/graphics/pokemon/bombirdier/shiny.pal b/graphics/pokemon/bombirdier/shiny.pal new file mode 100644 index 000000000000..7c57659ed5dc --- /dev/null +++ b/graphics/pokemon/bombirdier/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 210 164 +52 41 48 +74 57 66 +15 15 15 +38 210 161 +102 91 96 +185 170 175 +239 227 225 +147 125 133 +80 29 37 +160 74 85 +171 167 168 +255 251 255 +136 134 133 +167 171 167 +123 130 123 diff --git a/graphics/pokemon/brambleghast/back.png b/graphics/pokemon/brambleghast/back.png new file mode 100644 index 000000000000..fca81b275e90 Binary files /dev/null and b/graphics/pokemon/brambleghast/back.png differ diff --git a/graphics/pokemon/brambleghast/front.png b/graphics/pokemon/brambleghast/front.png new file mode 100644 index 000000000000..f1715a6f0629 Binary files /dev/null and b/graphics/pokemon/brambleghast/front.png differ diff --git a/graphics/pokemon/brambleghast/icon.png b/graphics/pokemon/brambleghast/icon.png new file mode 100755 index 000000000000..e8f273b0954f Binary files /dev/null and b/graphics/pokemon/brambleghast/icon.png differ diff --git a/graphics/pokemon/brambleghast/normal.pal b/graphics/pokemon/brambleghast/normal.pal new file mode 100644 index 000000000000..759a5f138fce --- /dev/null +++ b/graphics/pokemon/brambleghast/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +88 72 88 +192 152 184 +112 88 56 +64 40 32 +16 16 16 +128 104 128 +200 176 104 +152 120 80 +168 104 64 +128 72 48 +96 40 48 +32 32 40 +248 72 32 +0 0 0 +0 0 0 diff --git a/graphics/pokemon/brambleghast/shiny.pal b/graphics/pokemon/brambleghast/shiny.pal new file mode 100644 index 000000000000..f10cd2c2573c --- /dev/null +++ b/graphics/pokemon/brambleghast/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +88 72 88 +192 152 184 +128 120 96 +56 48 32 +16 16 16 +128 104 128 +216 216 176 +160 152 120 +184 160 104 +128 104 72 +64 56 32 +32 32 40 +240 176 136 +0 0 0 +0 0 0 diff --git a/graphics/pokemon/bramblin/back.png b/graphics/pokemon/bramblin/back.png new file mode 100644 index 000000000000..67bf858c399d Binary files /dev/null and b/graphics/pokemon/bramblin/back.png differ diff --git a/graphics/pokemon/bramblin/front.png b/graphics/pokemon/bramblin/front.png new file mode 100644 index 000000000000..80fde283671e Binary files /dev/null and b/graphics/pokemon/bramblin/front.png differ diff --git a/graphics/pokemon/bramblin/icon.png b/graphics/pokemon/bramblin/icon.png new file mode 100755 index 000000000000..ff2d15599e59 Binary files /dev/null and b/graphics/pokemon/bramblin/icon.png differ diff --git a/graphics/pokemon/bramblin/normal.pal b/graphics/pokemon/bramblin/normal.pal new file mode 100644 index 000000000000..941b8ef20f56 --- /dev/null +++ b/graphics/pokemon/bramblin/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +144 104 64 +96 64 32 +176 136 80 +200 160 96 +128 80 56 +16 16 16 +208 112 80 +184 88 56 +136 96 80 +72 56 48 +104 80 72 +128 80 56 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/pokemon/bramblin/shiny.pal b/graphics/pokemon/bramblin/shiny.pal new file mode 100644 index 000000000000..8d65eaa1b060 --- /dev/null +++ b/graphics/pokemon/bramblin/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +120 112 72 +80 72 56 +152 152 104 +208 208 152 +168 96 56 +16 16 16 +208 112 80 +224 128 80 +112 120 72 +48 48 24 +80 96 56 +128 80 56 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/pokemon/brute_bonnet/back.png b/graphics/pokemon/brute_bonnet/back.png new file mode 100644 index 000000000000..b73cb1589ebf Binary files /dev/null and b/graphics/pokemon/brute_bonnet/back.png differ diff --git a/graphics/pokemon/brute_bonnet/front.png b/graphics/pokemon/brute_bonnet/front.png new file mode 100644 index 000000000000..46347100a2c9 Binary files /dev/null and b/graphics/pokemon/brute_bonnet/front.png differ diff --git a/graphics/pokemon/brute_bonnet/icon.png b/graphics/pokemon/brute_bonnet/icon.png new file mode 100755 index 000000000000..052517c12d97 Binary files /dev/null and b/graphics/pokemon/brute_bonnet/icon.png differ diff --git a/graphics/pokemon/brute_bonnet/normal.pal b/graphics/pokemon/brute_bonnet/normal.pal new file mode 100644 index 000000000000..951da388b70a --- /dev/null +++ b/graphics/pokemon/brute_bonnet/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 210 164 +227 45 45 +98 72 65 +57 105 65 +213 105 139 +139 242 139 +65 48 49 +255 220 100 +106 153 115 +0 0 0 +238 182 205 +115 36 32 +32 32 32 +156 149 131 +41 24 24 +205 198 197 diff --git a/graphics/pokemon/brute_bonnet/shiny.pal b/graphics/pokemon/brute_bonnet/shiny.pal new file mode 100644 index 000000000000..e0702cf002ca --- /dev/null +++ b/graphics/pokemon/brute_bonnet/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 210 164 +115 82 222 +82 74 65 +57 105 65 +213 105 139 +139 242 139 +49 49 49 +255 220 100 +106 153 115 +0 0 0 +238 182 205 +82 65 164 +32 32 32 +164 156 123 +41 24 24 +213 205 172 diff --git a/graphics/pokemon/bunnelby/anim_front.png b/graphics/pokemon/bunnelby/anim_front.png index 128653b687a1..f84baa06dd35 100644 Binary files a/graphics/pokemon/bunnelby/anim_front.png and b/graphics/pokemon/bunnelby/anim_front.png differ diff --git a/graphics/pokemon/bunnelby/back.png b/graphics/pokemon/bunnelby/back.png index 2b7cc3b850ae..cabd2fa425fe 100644 Binary files a/graphics/pokemon/bunnelby/back.png and b/graphics/pokemon/bunnelby/back.png differ diff --git a/graphics/pokemon/bunnelby/normal.pal b/graphics/pokemon/bunnelby/normal.pal index ea42a0cff6a7..493d820fcb7c 100644 --- a/graphics/pokemon/bunnelby/normal.pal +++ b/graphics/pokemon/bunnelby/normal.pal @@ -13,7 +13,7 @@ JASC-PAL 136 136 120 200 192 192 248 248 248 -80 40 16 +8 8 8 0 0 0 0 0 0 0 0 0 diff --git a/graphics/pokemon/bunnelby/shiny.pal b/graphics/pokemon/bunnelby/shiny.pal index 2c2491ab6a26..19eec650e11d 100644 --- a/graphics/pokemon/bunnelby/shiny.pal +++ b/graphics/pokemon/bunnelby/shiny.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -80 80 96 +153 153 153 +230 230 230 +199 199 199 +8 8 8 +66 66 66 +125 125 125 +152 73 37 +214 111 60 +97 97 97 +186 186 186 248 248 248 -200 200 200 -0 0 0 -56 56 56 -160 160 144 -144 104 80 -240 184 168 -120 120 112 -200 192 192 -248 248 248 -160 152 152 -88 24 32 -0 0 0 -0 0 0 +158 0 0 +255 0 255 +255 0 255 +255 0 255 diff --git a/graphics/pokemon/capsakid/back.png b/graphics/pokemon/capsakid/back.png new file mode 100755 index 000000000000..8b04dd82458a Binary files /dev/null and b/graphics/pokemon/capsakid/back.png differ diff --git a/graphics/pokemon/capsakid/front.png b/graphics/pokemon/capsakid/front.png new file mode 100755 index 000000000000..011ba881ad59 Binary files /dev/null and b/graphics/pokemon/capsakid/front.png differ diff --git a/graphics/pokemon/capsakid/icon.png b/graphics/pokemon/capsakid/icon.png new file mode 100755 index 000000000000..ede6dc9c0cff Binary files /dev/null and b/graphics/pokemon/capsakid/icon.png differ diff --git a/graphics/pokemon/capsakid/normal.pal b/graphics/pokemon/capsakid/normal.pal new file mode 100755 index 000000000000..adde45a7b2f6 --- /dev/null +++ b/graphics/pokemon/capsakid/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +40 72 56 +112 116 112 +176 168 152 +80 152 104 +208 220 192 +16 16 16 +120 184 120 +48 76 56 +88 132 96 +144 196 144 +40 48 40 +240 152 0 +64 104 80 +0 0 0 +0 0 0 diff --git a/graphics/pokemon/capsakid/shiny.pal b/graphics/pokemon/capsakid/shiny.pal new file mode 100755 index 000000000000..094a57803b27 --- /dev/null +++ b/graphics/pokemon/capsakid/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +40 72 56 +110 126 114 +170 184 176 +119 164 198 +232 244 246 +16 16 16 +217 216 147 +104 97 60 +158 154 87 +144 196 144 +40 48 40 +224 135 8 +66 115 147 +0 0 0 +0 0 0 diff --git a/graphics/pokemon/ceruledge/back.png b/graphics/pokemon/ceruledge/back.png new file mode 100644 index 000000000000..ca1e76e6942d Binary files /dev/null and b/graphics/pokemon/ceruledge/back.png differ diff --git a/graphics/pokemon/ceruledge/front.png b/graphics/pokemon/ceruledge/front.png new file mode 100644 index 000000000000..34f056e16aac Binary files /dev/null and b/graphics/pokemon/ceruledge/front.png differ diff --git a/graphics/pokemon/ceruledge/icon.png b/graphics/pokemon/ceruledge/icon.png new file mode 100755 index 000000000000..7687030bd74c Binary files /dev/null and b/graphics/pokemon/ceruledge/icon.png differ diff --git a/graphics/pokemon/ceruledge/normal.pal b/graphics/pokemon/ceruledge/normal.pal new file mode 100644 index 000000000000..c3d8c407c57a --- /dev/null +++ b/graphics/pokemon/ceruledge/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 210 164 +101 145 217 +201 134 218 +127 200 223 +169 160 226 +104 90 167 +49 49 105 +106 117 188 +38 32 35 +6 6 6 +52 105 191 +240 255 255 +67 67 140 +23 23 52 +70 59 65 +0 0 0 diff --git a/graphics/pokemon/ceruledge/shiny.pal b/graphics/pokemon/ceruledge/shiny.pal new file mode 100644 index 000000000000..5ae0e1d48544 --- /dev/null +++ b/graphics/pokemon/ceruledge/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 210 164 +101 145 217 +201 134 218 +127 200 223 +169 160 226 +104 90 167 +49 49 105 +106 117 188 +38 32 35 +6 6 6 +52 105 191 +255 242 0 +67 67 140 +23 23 52 +70 59 65 +0 0 0 diff --git a/graphics/pokemon/cetitan/back.png b/graphics/pokemon/cetitan/back.png new file mode 100644 index 000000000000..45e6478c1742 Binary files /dev/null and b/graphics/pokemon/cetitan/back.png differ diff --git a/graphics/pokemon/cetitan/front.png b/graphics/pokemon/cetitan/front.png new file mode 100644 index 000000000000..20fe0f0dd101 Binary files /dev/null and b/graphics/pokemon/cetitan/front.png differ diff --git a/graphics/pokemon/cetitan/icon.png b/graphics/pokemon/cetitan/icon.png new file mode 100755 index 000000000000..81cf0a3e246e Binary files /dev/null and b/graphics/pokemon/cetitan/icon.png differ diff --git a/graphics/pokemon/cetitan/normal.pal b/graphics/pokemon/cetitan/normal.pal new file mode 100644 index 000000000000..c84f2f8d4372 --- /dev/null +++ b/graphics/pokemon/cetitan/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +128 120 120 +248 248 248 +80 64 72 +240 144 200 +184 184 184 +192 96 152 +160 64 96 +16 16 16 +120 112 128 +56 56 64 +208 208 216 +160 160 168 +128 120 136 +88 88 96 +248 248 248 diff --git a/graphics/pokemon/cetitan/shiny.pal b/graphics/pokemon/cetitan/shiny.pal new file mode 100644 index 000000000000..16e5456b3e57 --- /dev/null +++ b/graphics/pokemon/cetitan/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +48 56 64 +88 104 112 +32 40 48 +240 128 80 +72 80 88 +176 72 48 +128 40 40 +16 16 16 +120 112 128 +56 56 64 +208 208 216 +160 160 168 +160 160 168 +120 112 128 +248 248 248 diff --git a/graphics/pokemon/cetoddle/back.png b/graphics/pokemon/cetoddle/back.png new file mode 100644 index 000000000000..007fbfb426a9 Binary files /dev/null and b/graphics/pokemon/cetoddle/back.png differ diff --git a/graphics/pokemon/cetoddle/front.png b/graphics/pokemon/cetoddle/front.png new file mode 100644 index 000000000000..5f15a6a857fc Binary files /dev/null and b/graphics/pokemon/cetoddle/front.png differ diff --git a/graphics/pokemon/cetoddle/icon.png b/graphics/pokemon/cetoddle/icon.png new file mode 100755 index 000000000000..330b5c56d24f Binary files /dev/null and b/graphics/pokemon/cetoddle/icon.png differ diff --git a/graphics/pokemon/cetoddle/normal.pal b/graphics/pokemon/cetoddle/normal.pal new file mode 100644 index 000000000000..340803e0a2dc --- /dev/null +++ b/graphics/pokemon/cetoddle/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +88 88 128 +48 48 80 +240 240 240 +200 200 216 +152 152 184 +232 136 176 +152 80 120 +248 248 248 +16 16 16 +72 72 72 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/pokemon/cetoddle/shiny.pal b/graphics/pokemon/cetoddle/shiny.pal new file mode 100644 index 000000000000..bd3f3bec798e --- /dev/null +++ b/graphics/pokemon/cetoddle/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +72 72 88 +40 40 56 +152 152 160 +136 136 152 +112 112 144 +240 128 80 +184 80 56 +248 248 248 +16 16 16 +72 72 72 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/pokemon/charcadet/back.png b/graphics/pokemon/charcadet/back.png new file mode 100644 index 000000000000..c9a91f9467e4 Binary files /dev/null and b/graphics/pokemon/charcadet/back.png differ diff --git a/graphics/pokemon/charcadet/front.png b/graphics/pokemon/charcadet/front.png new file mode 100644 index 000000000000..90d14e4cdb93 Binary files /dev/null and b/graphics/pokemon/charcadet/front.png differ diff --git a/graphics/pokemon/charcadet/icon.png b/graphics/pokemon/charcadet/icon.png new file mode 100755 index 000000000000..f62d09e91847 Binary files /dev/null and b/graphics/pokemon/charcadet/icon.png differ diff --git a/graphics/pokemon/charcadet/normal.pal b/graphics/pokemon/charcadet/normal.pal new file mode 100644 index 000000000000..49a00d630269 --- /dev/null +++ b/graphics/pokemon/charcadet/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 210 164 +179 54 48 +255 119 178 +238 13 35 +128 19 19 +15 15 15 +70 68 68 +99 97 97 +243 143 7 +27 33 35 +199 117 5 +255 255 255 +243 189 3 +153 211 165 +238 13 36 +0 0 0 diff --git a/graphics/pokemon/charcadet/shiny.pal b/graphics/pokemon/charcadet/shiny.pal new file mode 100644 index 000000000000..cf3a77e99304 --- /dev/null +++ b/graphics/pokemon/charcadet/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 210 164 +179 54 48 +255 119 178 +238 13 35 +128 19 19 +15 15 15 +70 68 68 +99 97 97 +243 143 7 +27 33 35 +199 117 5 +255 255 255 +243 189 3 +153 211 165 +33 174 217 +0 0 0 diff --git a/graphics/pokemon/chespin/anim_front.png b/graphics/pokemon/chespin/anim_front.png index 172c75ec201d..319bf4de445d 100644 Binary files a/graphics/pokemon/chespin/anim_front.png and b/graphics/pokemon/chespin/anim_front.png differ diff --git a/graphics/pokemon/chespin/back.png b/graphics/pokemon/chespin/back.png index 1cf511302f1c..27cbeab62a8e 100644 Binary files a/graphics/pokemon/chespin/back.png and b/graphics/pokemon/chespin/back.png differ diff --git a/graphics/pokemon/chespin/normal.pal b/graphics/pokemon/chespin/normal.pal index e3f7d17fb52e..090aa156457b 100644 --- a/graphics/pokemon/chespin/normal.pal +++ b/graphics/pokemon/chespin/normal.pal @@ -1,7 +1,7 @@ JASC-PAL 0100 16 -0 181 239 +152 208 160 74 99 25 16 16 16 165 214 74 diff --git a/graphics/pokemon/chespin/shiny.pal b/graphics/pokemon/chespin/shiny.pal index 58c22e961979..f0abc0c1b54d 100644 --- a/graphics/pokemon/chespin/shiny.pal +++ b/graphics/pokemon/chespin/shiny.pal @@ -1,7 +1,7 @@ JASC-PAL 0100 16 -0 181 239 +152 208 160 99 8 8 16 16 16 222 41 58 diff --git a/graphics/pokemon/chi_yu/back.png b/graphics/pokemon/chi_yu/back.png new file mode 100644 index 000000000000..ff1f7c372937 Binary files /dev/null and b/graphics/pokemon/chi_yu/back.png differ diff --git a/graphics/pokemon/chi_yu/front.png b/graphics/pokemon/chi_yu/front.png new file mode 100644 index 000000000000..6a41c507a50e Binary files /dev/null and b/graphics/pokemon/chi_yu/front.png differ diff --git a/graphics/pokemon/chi_yu/icon.png b/graphics/pokemon/chi_yu/icon.png new file mode 100755 index 000000000000..1b922e696edc Binary files /dev/null and b/graphics/pokemon/chi_yu/icon.png differ diff --git a/graphics/pokemon/chi_yu/normal.pal b/graphics/pokemon/chi_yu/normal.pal new file mode 100644 index 000000000000..368ffd90e6fa --- /dev/null +++ b/graphics/pokemon/chi_yu/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 210 164 +162 55 36 +244 52 47 +15 15 15 +243 94 56 +249 130 79 +240 167 85 +177 82 54 +252 245 155 +28 64 33 +193 196 189 +91 152 90 +131 184 132 +60 63 58 +72 116 71 +248 248 240 diff --git a/graphics/pokemon/chi_yu/shiny.pal b/graphics/pokemon/chi_yu/shiny.pal new file mode 100644 index 000000000000..e041f9654d12 --- /dev/null +++ b/graphics/pokemon/chi_yu/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 210 164 +69 67 68 +94 94 94 +15 15 15 +89 128 162 +0 192 249 +124 197 231 +70 123 128 +186 254 253 +28 64 33 +193 196 189 +91 152 90 +131 184 132 +60 63 58 +72 116 71 +248 248 240 diff --git a/graphics/pokemon/chien_pao/back.png b/graphics/pokemon/chien_pao/back.png new file mode 100644 index 000000000000..045e2c214a02 Binary files /dev/null and b/graphics/pokemon/chien_pao/back.png differ diff --git a/graphics/pokemon/chien_pao/front.png b/graphics/pokemon/chien_pao/front.png new file mode 100644 index 000000000000..b871128b41b2 Binary files /dev/null and b/graphics/pokemon/chien_pao/front.png differ diff --git a/graphics/pokemon/chien_pao/icon.png b/graphics/pokemon/chien_pao/icon.png new file mode 100755 index 000000000000..02d7bbe93d9e Binary files /dev/null and b/graphics/pokemon/chien_pao/icon.png differ diff --git a/graphics/pokemon/chien_pao/normal.pal b/graphics/pokemon/chien_pao/normal.pal new file mode 100644 index 000000000000..e5dca7fc5cc9 --- /dev/null +++ b/graphics/pokemon/chien_pao/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 210 164 +114 89 64 +40 56 56 +248 248 248 +185 198 216 +227 227 227 +168 168 168 +0 0 0 +80 96 96 +84 84 84 +112 128 128 +122 122 122 +168 208 248 +248 248 248 +112 176 232 +141 152 168 diff --git a/graphics/pokemon/chien_pao/shiny.pal b/graphics/pokemon/chien_pao/shiny.pal new file mode 100644 index 000000000000..a0e08cb821ce --- /dev/null +++ b/graphics/pokemon/chien_pao/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 210 164 +114 89 64 +40 56 56 +187 155 118 +135 102 64 +227 227 227 +168 168 168 +0 0 0 +80 96 96 +84 84 84 +112 128 128 +122 122 122 +168 208 248 +248 248 248 +112 176 232 +103 69 29 diff --git a/graphics/pokemon/clodsire/back.png b/graphics/pokemon/clodsire/back.png new file mode 100755 index 000000000000..64132a060ff4 Binary files /dev/null and b/graphics/pokemon/clodsire/back.png differ diff --git a/graphics/pokemon/clodsire/front.png b/graphics/pokemon/clodsire/front.png new file mode 100755 index 000000000000..2722b7eb7013 Binary files /dev/null and b/graphics/pokemon/clodsire/front.png differ diff --git a/graphics/pokemon/clodsire/icon.png b/graphics/pokemon/clodsire/icon.png new file mode 100755 index 000000000000..09fa007c6814 Binary files /dev/null and b/graphics/pokemon/clodsire/icon.png differ diff --git a/graphics/pokemon/clodsire/normal.pal b/graphics/pokemon/clodsire/normal.pal new file mode 100755 index 000000000000..c7d36df32cc8 --- /dev/null +++ b/graphics/pokemon/clodsire/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +64 60 48 +128 108 96 +96 80 72 +48 40 32 +16 16 16 +184 160 160 +208 208 208 +40 36 32 +152 120 120 +80 68 72 +104 52 56 +176 88 104 +248 140 160 +0 0 0 +0 0 0 diff --git a/graphics/pokemon/clodsire/shiny.pal b/graphics/pokemon/clodsire/shiny.pal new file mode 100755 index 000000000000..fcf3c9dc238b --- /dev/null +++ b/graphics/pokemon/clodsire/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +74 67 90 +127 116 143 +107 97 124 +46 40 44 +16 16 16 +160 158 197 +205 180 170 +40 36 32 +127 127 157 +87 85 112 +104 52 56 +176 88 104 +248 140 160 +0 0 0 +0 0 0 diff --git a/graphics/pokemon/crocalor/back.png b/graphics/pokemon/crocalor/back.png new file mode 100644 index 000000000000..5821ac9089bd Binary files /dev/null and b/graphics/pokemon/crocalor/back.png differ diff --git a/graphics/pokemon/crocalor/front.png b/graphics/pokemon/crocalor/front.png new file mode 100644 index 000000000000..b2794debcf9e Binary files /dev/null and b/graphics/pokemon/crocalor/front.png differ diff --git a/graphics/pokemon/crocalor/icon.png b/graphics/pokemon/crocalor/icon.png new file mode 100755 index 000000000000..5ca0ee3f464e Binary files /dev/null and b/graphics/pokemon/crocalor/icon.png differ diff --git a/graphics/pokemon/crocalor/normal.pal b/graphics/pokemon/crocalor/normal.pal new file mode 100644 index 000000000000..f238c0cac22f --- /dev/null +++ b/graphics/pokemon/crocalor/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 210 164 +255 60 60 +255 211 35 +255 247 222 +242 162 25 +255 153 10 +53 53 53 +173 145 135 +204 49 49 +118 39 25 +109 82 58 +79 79 79 +255 60 60 +10 10 10 +238 125 82 +0 0 0 diff --git a/graphics/pokemon/crocalor/normal.png b/graphics/pokemon/crocalor/normal.png new file mode 100644 index 000000000000..531e2b211d71 Binary files /dev/null and b/graphics/pokemon/crocalor/normal.png differ diff --git a/graphics/pokemon/crocalor/shiny.pal b/graphics/pokemon/crocalor/shiny.pal new file mode 100644 index 000000000000..18320d602f83 --- /dev/null +++ b/graphics/pokemon/crocalor/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 210 164 +255 60 60 +255 211 35 +255 247 222 +242 162 25 +255 153 10 +104 33 45 +173 145 135 +204 51 135 +128 32 84 +109 82 58 +149 62 73 +255 64 168 +10 10 10 +238 125 82 +0 0 0 diff --git a/graphics/pokemon/cutiefly/anim_front.png b/graphics/pokemon/cutiefly/anim_front.png new file mode 100644 index 000000000000..3a3a17092f78 Binary files /dev/null and b/graphics/pokemon/cutiefly/anim_front.png differ diff --git a/graphics/pokemon/cutiefly/front.png b/graphics/pokemon/cutiefly/front.png deleted file mode 100644 index 9e5756522203..000000000000 Binary files a/graphics/pokemon/cutiefly/front.png and /dev/null differ diff --git a/graphics/pokemon/cyclizar/back.png b/graphics/pokemon/cyclizar/back.png new file mode 100644 index 000000000000..73c2babe021c Binary files /dev/null and b/graphics/pokemon/cyclizar/back.png differ diff --git a/graphics/pokemon/cyclizar/front.png b/graphics/pokemon/cyclizar/front.png new file mode 100644 index 000000000000..f01984e5cc5a Binary files /dev/null and b/graphics/pokemon/cyclizar/front.png differ diff --git a/graphics/pokemon/cyclizar/icon.png b/graphics/pokemon/cyclizar/icon.png new file mode 100755 index 000000000000..64eba819632c Binary files /dev/null and b/graphics/pokemon/cyclizar/icon.png differ diff --git a/graphics/pokemon/cyclizar/normal.pal b/graphics/pokemon/cyclizar/normal.pal new file mode 100644 index 000000000000..538a25e05abd --- /dev/null +++ b/graphics/pokemon/cyclizar/normal.pal @@ -0,0 +1,17 @@ +JASC-PAL +0100 +14 +64 100 181 +48 59 57 +33 37 33 +64 77 67 +93 121 106 +15 15 15 +230 112 62 +206 206 206 +127 167 133 +255 255 255 +34 35 40 +50 57 67 +75 86 92 +93 121 107 diff --git a/graphics/pokemon/cyclizar/shiny.pal b/graphics/pokemon/cyclizar/shiny.pal new file mode 100644 index 000000000000..9641a7498fa4 --- /dev/null +++ b/graphics/pokemon/cyclizar/shiny.pal @@ -0,0 +1,17 @@ +JASC-PAL +0100 +14 +64 100 181 +48 59 57 +33 37 33 +248 238 187 +97 95 71 +15 15 15 +85 215 253 +206 206 206 +138 138 112 +255 255 255 +34 35 40 +50 57 67 +75 86 92 +250 241 235 diff --git a/graphics/pokemon/dachsbun/back.png b/graphics/pokemon/dachsbun/back.png new file mode 100644 index 000000000000..b9187f43a450 Binary files /dev/null and b/graphics/pokemon/dachsbun/back.png differ diff --git a/graphics/pokemon/dachsbun/front.png b/graphics/pokemon/dachsbun/front.png new file mode 100644 index 000000000000..d745afdf8435 Binary files /dev/null and b/graphics/pokemon/dachsbun/front.png differ diff --git a/graphics/pokemon/dachsbun/icon.png b/graphics/pokemon/dachsbun/icon.png new file mode 100644 index 000000000000..fe1caf375d7a Binary files /dev/null and b/graphics/pokemon/dachsbun/icon.png differ diff --git a/graphics/pokemon/dachsbun/normal.pal b/graphics/pokemon/dachsbun/normal.pal new file mode 100644 index 000000000000..d65c0def105d --- /dev/null +++ b/graphics/pokemon/dachsbun/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +128 56 24 +248 232 120 +80 32 24 +224 152 88 +16 16 16 +48 16 8 +200 88 40 +160 56 32 +248 176 80 +200 120 56 +216 144 112 +248 248 248 +200 128 96 +64 64 64 +0 0 0 diff --git a/graphics/pokemon/dachsbun/shiny.pal b/graphics/pokemon/dachsbun/shiny.pal new file mode 100644 index 000000000000..6ca0a8843733 --- /dev/null +++ b/graphics/pokemon/dachsbun/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +136 72 48 +248 216 200 +96 40 24 +208 144 128 +16 16 16 +64 16 16 +216 128 104 +168 88 72 +248 200 160 +216 152 120 +216 144 112 +248 248 248 +200 128 96 +64 64 64 +0 0 0 diff --git a/graphics/pokemon/dartrix/anim_front.png b/graphics/pokemon/dartrix/anim_front.png new file mode 100644 index 000000000000..6adf23406597 Binary files /dev/null and b/graphics/pokemon/dartrix/anim_front.png differ diff --git a/graphics/pokemon/dartrix/front.png b/graphics/pokemon/dartrix/front.png deleted file mode 100644 index 004fa43bdfbb..000000000000 Binary files a/graphics/pokemon/dartrix/front.png and /dev/null differ diff --git a/graphics/pokemon/decidueye/anim_front.png b/graphics/pokemon/decidueye/anim_front.png new file mode 100644 index 000000000000..f0d7e46bb192 Binary files /dev/null and b/graphics/pokemon/decidueye/anim_front.png differ diff --git a/graphics/pokemon/decidueye/front.png b/graphics/pokemon/decidueye/front.png deleted file mode 100644 index a13a33a2ae81..000000000000 Binary files a/graphics/pokemon/decidueye/front.png and /dev/null differ diff --git a/graphics/pokemon/dipplin/back.png b/graphics/pokemon/dipplin/back.png new file mode 100644 index 000000000000..81821ede2573 Binary files /dev/null and b/graphics/pokemon/dipplin/back.png differ diff --git a/graphics/pokemon/dipplin/front.png b/graphics/pokemon/dipplin/front.png new file mode 100644 index 000000000000..5e9a2554e870 Binary files /dev/null and b/graphics/pokemon/dipplin/front.png differ diff --git a/graphics/pokemon/dipplin/icon.png b/graphics/pokemon/dipplin/icon.png new file mode 100644 index 000000000000..5fab863bd982 Binary files /dev/null and b/graphics/pokemon/dipplin/icon.png differ diff --git a/graphics/pokemon/dipplin/normal.pal b/graphics/pokemon/dipplin/normal.pal new file mode 100644 index 000000000000..4e4a27deec06 --- /dev/null +++ b/graphics/pokemon/dipplin/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +119 103 74 +196 173 122 +249 229 150 +237 206 93 +79 107 71 +104 140 84 +181 206 80 +130 173 84 +51 76 54 +0 0 0 +250 250 250 +94 9 13 +167 29 38 +220 109 82 +214 59 52 diff --git a/graphics/pokemon/dipplin/shiny.pal b/graphics/pokemon/dipplin/shiny.pal new file mode 100644 index 000000000000..7123a2ca0bca --- /dev/null +++ b/graphics/pokemon/dipplin/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +119 103 74 +196 173 122 +249 229 150 +237 206 93 +79 107 71 +104 140 84 +181 206 80 +130 173 84 +51 76 54 +0 0 0 +250 250 250 +94 9 13 +198 113 15 +237 206 93 +250 173 35 diff --git a/graphics/pokemon/dolliv/back.png b/graphics/pokemon/dolliv/back.png new file mode 100644 index 000000000000..9a179e325e73 Binary files /dev/null and b/graphics/pokemon/dolliv/back.png differ diff --git a/graphics/pokemon/dolliv/front.png b/graphics/pokemon/dolliv/front.png new file mode 100644 index 000000000000..0d707db8df59 Binary files /dev/null and b/graphics/pokemon/dolliv/front.png differ diff --git a/graphics/pokemon/dolliv/icon.png b/graphics/pokemon/dolliv/icon.png new file mode 100755 index 000000000000..37bd0eb19f1d Binary files /dev/null and b/graphics/pokemon/dolliv/icon.png differ diff --git a/graphics/pokemon/dolliv/normal.pal b/graphics/pokemon/dolliv/normal.pal new file mode 100644 index 000000000000..f2e41f0ac70e --- /dev/null +++ b/graphics/pokemon/dolliv/normal.pal @@ -0,0 +1,14 @@ +JASC-PAL +0100 +11 +153 210 164 +16 16 16 +47 108 46 +118 94 33 +132 193 54 +222 214 109 +182 165 81 +100 153 64 +205 193 124 +255 250 185 +242 242 242 diff --git a/graphics/pokemon/dolliv/shiny.pal b/graphics/pokemon/dolliv/shiny.pal new file mode 100644 index 000000000000..d46280571571 --- /dev/null +++ b/graphics/pokemon/dolliv/shiny.pal @@ -0,0 +1,14 @@ +JASC-PAL +0100 +11 +153 210 164 +16 16 16 +45 82 12 +40 25 54 +102 209 86 +89 77 95 +57 45 65 +91 160 71 +198 201 130 +251 255 178 +242 242 242 diff --git a/graphics/pokemon/dondozo/back.png b/graphics/pokemon/dondozo/back.png new file mode 100755 index 000000000000..d0d6ce3fd6ad Binary files /dev/null and b/graphics/pokemon/dondozo/back.png differ diff --git a/graphics/pokemon/dondozo/front.png b/graphics/pokemon/dondozo/front.png new file mode 100755 index 000000000000..c49c250348cd Binary files /dev/null and b/graphics/pokemon/dondozo/front.png differ diff --git a/graphics/pokemon/dondozo/icon.png b/graphics/pokemon/dondozo/icon.png new file mode 100755 index 000000000000..066128e0d48c Binary files /dev/null and b/graphics/pokemon/dondozo/icon.png differ diff --git a/graphics/pokemon/dondozo/normal.pal b/graphics/pokemon/dondozo/normal.pal new file mode 100755 index 000000000000..1e2e39c1a282 --- /dev/null +++ b/graphics/pokemon/dondozo/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +80 92 104 +224 224 224 +192 180 184 +16 16 16 +8 76 120 +16 176 248 +16 124 184 +8 36 72 +16 64 104 +88 204 248 +16 88 144 +56 144 200 +248 252 248 +0 0 0 +0 0 0 diff --git a/graphics/pokemon/dondozo/shiny.pal b/graphics/pokemon/dondozo/shiny.pal new file mode 100755 index 000000000000..45eca3b135ef --- /dev/null +++ b/graphics/pokemon/dondozo/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +80 92 104 +224 224 224 +192 180 184 +16 16 16 +86 78 50 +252 239 105 +177 170 72 +103 103 103 +165 165 165 +255 252 201 +222 223 221 +56 144 200 +248 252 248 +0 0 0 +0 0 0 diff --git a/graphics/pokemon/drampa/anim_front.png b/graphics/pokemon/drampa/anim_front.png new file mode 100644 index 000000000000..c263a1572725 Binary files /dev/null and b/graphics/pokemon/drampa/anim_front.png differ diff --git a/graphics/pokemon/drampa/back.png b/graphics/pokemon/drampa/back.png index b3460057efb2..be44b000bce0 100644 Binary files a/graphics/pokemon/drampa/back.png and b/graphics/pokemon/drampa/back.png differ diff --git a/graphics/pokemon/drampa/front.png b/graphics/pokemon/drampa/front.png deleted file mode 100644 index 6aecba694918..000000000000 Binary files a/graphics/pokemon/drampa/front.png and /dev/null differ diff --git a/graphics/pokemon/drampa/normal.pal b/graphics/pokemon/drampa/normal.pal index 70303462789c..5639299f9565 100644 --- a/graphics/pokemon/drampa/normal.pal +++ b/graphics/pokemon/drampa/normal.pal @@ -1,7 +1,7 @@ JASC-PAL 0100 16 -0 176 232 +152 208 160 16 80 96 16 16 16 88 160 160 diff --git a/graphics/pokemon/drampa/shiny.pal b/graphics/pokemon/drampa/shiny.pal index ecfd99878010..1422a88ff12f 100644 --- a/graphics/pokemon/drampa/shiny.pal +++ b/graphics/pokemon/drampa/shiny.pal @@ -1,7 +1,7 @@ JASC-PAL 0100 16 -0 176 232 +152 208 160 152 96 56 16 16 16 224 176 112 diff --git a/graphics/pokemon/dudunsparce/back.png b/graphics/pokemon/dudunsparce/back.png new file mode 100755 index 000000000000..29889b389cbb Binary files /dev/null and b/graphics/pokemon/dudunsparce/back.png differ diff --git a/graphics/pokemon/dudunsparce/front.png b/graphics/pokemon/dudunsparce/front.png new file mode 100755 index 000000000000..074897d10ed4 Binary files /dev/null and b/graphics/pokemon/dudunsparce/front.png differ diff --git a/graphics/pokemon/dudunsparce/icon.png b/graphics/pokemon/dudunsparce/icon.png new file mode 100755 index 000000000000..e2a375ebf8fe Binary files /dev/null and b/graphics/pokemon/dudunsparce/icon.png differ diff --git a/graphics/pokemon/dudunsparce/normal.pal b/graphics/pokemon/dudunsparce/normal.pal new file mode 100755 index 000000000000..5279094f2f2c --- /dev/null +++ b/graphics/pokemon/dudunsparce/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +88 96 112 +248 248 248 +16 16 16 +144 128 56 +24 88 88 +232 224 112 +112 88 56 +56 184 192 +248 240 192 +184 176 176 +40 136 136 +176 160 72 +136 64 72 +184 104 96 +56 64 128 diff --git a/graphics/pokemon/dudunsparce/shiny.pal b/graphics/pokemon/dudunsparce/shiny.pal new file mode 100755 index 000000000000..949042c626e7 --- /dev/null +++ b/graphics/pokemon/dudunsparce/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +88 96 112 +248 248 248 +16 16 16 +144 128 56 +120 56 96 +232 224 112 +112 88 56 +232 128 176 +248 240 192 +184 176 176 +176 88 120 +176 160 72 +136 64 72 +184 104 96 +128 16 40 diff --git a/graphics/pokemon/dudunsparce/three_segment/back.png b/graphics/pokemon/dudunsparce/three_segment/back.png new file mode 100644 index 000000000000..1094f3e1c353 Binary files /dev/null and b/graphics/pokemon/dudunsparce/three_segment/back.png differ diff --git a/graphics/pokemon/dudunsparce/three_segment/front.png b/graphics/pokemon/dudunsparce/three_segment/front.png new file mode 100644 index 000000000000..7aab77f28e02 Binary files /dev/null and b/graphics/pokemon/dudunsparce/three_segment/front.png differ diff --git a/graphics/pokemon/dunsparce/icon.png b/graphics/pokemon/dunsparce/icon.png old mode 100644 new mode 100755 diff --git a/graphics/pokemon/espathra/back.png b/graphics/pokemon/espathra/back.png new file mode 100644 index 000000000000..bc66b9fa98c5 Binary files /dev/null and b/graphics/pokemon/espathra/back.png differ diff --git a/graphics/pokemon/espathra/front.png b/graphics/pokemon/espathra/front.png new file mode 100644 index 000000000000..7d3d405e2d38 Binary files /dev/null and b/graphics/pokemon/espathra/front.png differ diff --git a/graphics/pokemon/espathra/icon.png b/graphics/pokemon/espathra/icon.png new file mode 100755 index 000000000000..b82af0c6e2db Binary files /dev/null and b/graphics/pokemon/espathra/icon.png differ diff --git a/graphics/pokemon/espathra/normal.pal b/graphics/pokemon/espathra/normal.pal new file mode 100644 index 000000000000..6101d88550df --- /dev/null +++ b/graphics/pokemon/espathra/normal.pal @@ -0,0 +1,15 @@ +JASC-PAL +0100 +12 +153 211 165 +100 89 115 +249 249 249 +211 196 208 +15 15 15 +0 236 184 +170 144 162 +255 189 99 +197 138 82 +109 84 27 +188 166 20 +255 252 96 diff --git a/graphics/pokemon/espathra/shiny.pal b/graphics/pokemon/espathra/shiny.pal new file mode 100644 index 000000000000..2fb2eb418208 --- /dev/null +++ b/graphics/pokemon/espathra/shiny.pal @@ -0,0 +1,15 @@ +JASC-PAL +0100 +12 +153 211 165 +100 89 115 +249 249 249 +211 196 208 +15 15 15 +0 236 184 +170 144 162 +123 103 98 +106 86 81 +80 64 58 +123 103 98 +170 144 162 diff --git a/graphics/pokemon/farigiraf/back.png b/graphics/pokemon/farigiraf/back.png new file mode 100644 index 000000000000..8e7a8a75e02c Binary files /dev/null and b/graphics/pokemon/farigiraf/back.png differ diff --git a/graphics/pokemon/farigiraf/front.png b/graphics/pokemon/farigiraf/front.png new file mode 100644 index 000000000000..60c060ba7bfe Binary files /dev/null and b/graphics/pokemon/farigiraf/front.png differ diff --git a/graphics/pokemon/farigiraf/icon.png b/graphics/pokemon/farigiraf/icon.png new file mode 100755 index 000000000000..0ef8b01ae80a Binary files /dev/null and b/graphics/pokemon/farigiraf/icon.png differ diff --git a/graphics/pokemon/farigiraf/normal.pal b/graphics/pokemon/farigiraf/normal.pal new file mode 100644 index 000000000000..8d2b04468373 --- /dev/null +++ b/graphics/pokemon/farigiraf/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 210 167 +36 34 36 +52 58 60 +68 54 28 +108 110 116 +108 86 52 +180 166 92 +8 8 8 +252 246 44 +252 254 252 +172 170 180 +236 118 116 +252 238 140 +204 86 68 +244 142 76 +244 170 116 diff --git a/graphics/pokemon/farigiraf/shiny.pal b/graphics/pokemon/farigiraf/shiny.pal new file mode 100644 index 000000000000..47499eff1674 --- /dev/null +++ b/graphics/pokemon/farigiraf/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 210 167 +36 34 36 +52 58 60 +68 54 28 +108 110 116 +108 86 52 +138 196 167 +8 8 8 +252 246 44 +252 254 252 +172 170 180 +85 160 224 +186 243 240 +204 86 68 +236 101 77 +236 101 77 diff --git a/graphics/pokemon/fezandipiti/back.png b/graphics/pokemon/fezandipiti/back.png new file mode 100644 index 000000000000..45834050477c Binary files /dev/null and b/graphics/pokemon/fezandipiti/back.png differ diff --git a/graphics/pokemon/fezandipiti/front.png b/graphics/pokemon/fezandipiti/front.png new file mode 100644 index 000000000000..fc841ec39500 Binary files /dev/null and b/graphics/pokemon/fezandipiti/front.png differ diff --git a/graphics/pokemon/fezandipiti/icon.png b/graphics/pokemon/fezandipiti/icon.png new file mode 100644 index 000000000000..1bd6d0bf3142 Binary files /dev/null and b/graphics/pokemon/fezandipiti/icon.png differ diff --git a/graphics/pokemon/fezandipiti/normal.pal b/graphics/pokemon/fezandipiti/normal.pal new file mode 100644 index 000000000000..ac9c005324cf --- /dev/null +++ b/graphics/pokemon/fezandipiti/normal.pal @@ -0,0 +1,18 @@ +JASC-PAL +0100 +15 +152 208 160 +167 135 48 +118 61 41 +238 204 45 +26 29 28 +78 73 71 +45 45 45 +146 57 119 +202 103 162 +90 33 73 +192 78 22 +254 254 254 +164 175 176 +16 16 16 +69 37 29 diff --git a/graphics/pokemon/fezandipiti/shiny.pal b/graphics/pokemon/fezandipiti/shiny.pal new file mode 100644 index 000000000000..673473f5c0f4 --- /dev/null +++ b/graphics/pokemon/fezandipiti/shiny.pal @@ -0,0 +1,18 @@ +JASC-PAL +0100 +15 +152 208 160 +167 135 48 +118 61 41 +238 204 45 +26 29 28 +59 63 133 +36 40 99 +146 57 119 +202 103 162 +90 33 73 +192 78 22 +254 254 254 +164 175 176 +16 16 16 +69 37 29 diff --git a/graphics/pokemon/fidough/back.png b/graphics/pokemon/fidough/back.png new file mode 100644 index 000000000000..a3eb31b30821 Binary files /dev/null and b/graphics/pokemon/fidough/back.png differ diff --git a/graphics/pokemon/fidough/front.png b/graphics/pokemon/fidough/front.png new file mode 100644 index 000000000000..3809eaf7260c Binary files /dev/null and b/graphics/pokemon/fidough/front.png differ diff --git a/graphics/pokemon/fidough/icon.png b/graphics/pokemon/fidough/icon.png new file mode 100755 index 000000000000..2a6c4b15f506 Binary files /dev/null and b/graphics/pokemon/fidough/icon.png differ diff --git a/graphics/pokemon/fidough/normal.pal b/graphics/pokemon/fidough/normal.pal new file mode 100644 index 000000000000..9fc647ec61fe --- /dev/null +++ b/graphics/pokemon/fidough/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +144 112 88 +128 88 56 +240 240 208 +192 152 72 +240 216 88 +88 56 40 +96 72 56 +200 184 128 +16 16 16 +248 248 248 +80 88 96 +160 88 96 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/pokemon/fidough/shiny.pal b/graphics/pokemon/fidough/shiny.pal new file mode 100644 index 000000000000..08c90f134616 --- /dev/null +++ b/graphics/pokemon/fidough/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +104 64 56 +128 88 56 +184 144 120 +192 152 72 +240 216 88 +88 56 40 +64 40 40 +136 104 80 +16 16 16 +248 248 248 +80 88 96 +160 88 96 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/pokemon/finizen/back.png b/graphics/pokemon/finizen/back.png new file mode 100755 index 000000000000..77432e6367ce Binary files /dev/null and b/graphics/pokemon/finizen/back.png differ diff --git a/graphics/pokemon/finizen/front.png b/graphics/pokemon/finizen/front.png new file mode 100755 index 000000000000..ea547fbe517b Binary files /dev/null and b/graphics/pokemon/finizen/front.png differ diff --git a/graphics/pokemon/finizen/icon.png b/graphics/pokemon/finizen/icon.png new file mode 100755 index 000000000000..b82b4c673ff4 Binary files /dev/null and b/graphics/pokemon/finizen/icon.png differ diff --git a/graphics/pokemon/finizen/normal.pal b/graphics/pokemon/finizen/normal.pal new file mode 100755 index 000000000000..cf7dae93375d --- /dev/null +++ b/graphics/pokemon/finizen/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +40 96 112 +80 200 216 +136 216 224 +64 156 176 +176 192 200 +208 236 240 +24 160 248 +16 16 16 +248 252 248 +248 164 184 +176 128 160 +240 164 216 +24 104 136 +128 212 240 +64 160 200 diff --git a/graphics/pokemon/finizen/shiny.pal b/graphics/pokemon/finizen/shiny.pal new file mode 100755 index 000000000000..ebdbf83aa98f --- /dev/null +++ b/graphics/pokemon/finizen/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +61 77 167 +118 138 252 +136 216 224 +79 100 235 +170 181 211 +208 236 240 +24 160 248 +16 16 16 +248 252 248 +74 229 145 +176 128 160 +240 164 216 +24 104 136 +128 212 240 +64 160 200 diff --git a/graphics/pokemon/flabebe/anim_front.png b/graphics/pokemon/flabebe/anim_front.png index 6677d4137a69..e872a6dc8ead 100644 Binary files a/graphics/pokemon/flabebe/anim_front.png and b/graphics/pokemon/flabebe/anim_front.png differ diff --git a/graphics/pokemon/flabebe/back.png b/graphics/pokemon/flabebe/back.png index 088f00af5a13..345740b30ad3 100644 Binary files a/graphics/pokemon/flabebe/back.png and b/graphics/pokemon/flabebe/back.png differ diff --git a/graphics/pokemon/flamigo/back.png b/graphics/pokemon/flamigo/back.png new file mode 100755 index 000000000000..0fa825aae06c Binary files /dev/null and b/graphics/pokemon/flamigo/back.png differ diff --git a/graphics/pokemon/flamigo/front.png b/graphics/pokemon/flamigo/front.png new file mode 100755 index 000000000000..d8033f368f3c Binary files /dev/null and b/graphics/pokemon/flamigo/front.png differ diff --git a/graphics/pokemon/flamigo/icon.png b/graphics/pokemon/flamigo/icon.png new file mode 100755 index 000000000000..0f0381579cbb Binary files /dev/null and b/graphics/pokemon/flamigo/icon.png differ diff --git a/graphics/pokemon/flamigo/normal.pal b/graphics/pokemon/flamigo/normal.pal new file mode 100755 index 000000000000..170246a3054e --- /dev/null +++ b/graphics/pokemon/flamigo/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +128 52 64 +216 48 120 +240 232 232 +240 192 208 +240 120 152 +16 16 16 +40 40 40 +232 220 88 +176 168 168 +72 64 64 +168 28 88 +104 104 104 +200 160 16 +184 84 112 +0 0 0 diff --git a/graphics/pokemon/flamigo/shiny.pal b/graphics/pokemon/flamigo/shiny.pal new file mode 100755 index 000000000000..e51a06e03962 --- /dev/null +++ b/graphics/pokemon/flamigo/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +124 76 81 +237 106 132 +240 232 232 +240 192 208 +240 188 188 +16 16 16 +40 40 40 +232 220 88 +176 168 168 +72 64 64 +168 28 88 +104 104 104 +200 160 16 +165 119 124 +0 0 0 diff --git a/graphics/pokemon/fletchling/anim_front.png b/graphics/pokemon/fletchling/anim_front.png index 87f110df95f8..5163b130da7d 100644 Binary files a/graphics/pokemon/fletchling/anim_front.png and b/graphics/pokemon/fletchling/anim_front.png differ diff --git a/graphics/pokemon/fletchling/back.png b/graphics/pokemon/fletchling/back.png index 880ec9548c15..3307fbfe97e0 100644 Binary files a/graphics/pokemon/fletchling/back.png and b/graphics/pokemon/fletchling/back.png differ diff --git a/graphics/pokemon/fletchling/normal.pal b/graphics/pokemon/fletchling/normal.pal index 01d1e3fe2f38..b18b705ef0ce 100644 --- a/graphics/pokemon/fletchling/normal.pal +++ b/graphics/pokemon/fletchling/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 120 184 168 -128 24 0 -248 112 80 -8 8 8 -208 72 40 -32 32 32 -64 56 48 -128 112 104 -248 248 248 -248 200 64 -208 208 208 -56 96 120 -160 208 248 -120 160 200 -32 32 32 0 0 0 +35 35 34 +68 67 65 +138 52 18 +174 69 27 +91 96 109 +228 90 35 +140 147 169 +197 197 197 +192 201 230 +255 212 39 +255 255 255 +250 250 250 +255 0 255 +255 0 255 diff --git a/graphics/pokemon/fletchling/shiny.pal b/graphics/pokemon/fletchling/shiny.pal index 3761dfe625a3..f17e0db230bb 100644 --- a/graphics/pokemon/fletchling/shiny.pal +++ b/graphics/pokemon/fletchling/shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -120 184 168 -104 72 0 -248 184 56 +152 208 160 8 8 8 -200 144 16 -40 32 32 -72 48 72 -120 104 120 -248 248 248 -232 248 72 -208 208 208 -104 80 64 -232 192 144 -176 144 104 -32 32 32 -0 0 0 +87 51 51 +154 90 90 +118 45 14 +219 115 66 +124 103 74 +255 152 86 +191 158 121 +240 212 0 +255 218 166 +255 255 134 +255 255 255 +247 227 77 +255 0 255 +255 0 255 diff --git a/graphics/pokemon/flittle/back.png b/graphics/pokemon/flittle/back.png new file mode 100644 index 000000000000..87d517ebeb09 Binary files /dev/null and b/graphics/pokemon/flittle/back.png differ diff --git a/graphics/pokemon/flittle/front.png b/graphics/pokemon/flittle/front.png new file mode 100644 index 000000000000..c0d7054a0635 Binary files /dev/null and b/graphics/pokemon/flittle/front.png differ diff --git a/graphics/pokemon/flittle/icon.png b/graphics/pokemon/flittle/icon.png new file mode 100755 index 000000000000..f588d537efad Binary files /dev/null and b/graphics/pokemon/flittle/icon.png differ diff --git a/graphics/pokemon/flittle/normal.pal b/graphics/pokemon/flittle/normal.pal new file mode 100644 index 000000000000..1918bb79c6e8 --- /dev/null +++ b/graphics/pokemon/flittle/normal.pal @@ -0,0 +1,18 @@ +JASC-PAL +0100 +15 +153 210 164 +120 120 120 +255 255 255 +183 185 186 +15 15 15 +141 121 50 +255 247 147 +210 187 104 +126 110 198 +159 120 0 +169 200 243 +192 85 122 +242 138 165 +138 54 90 +217 112 6 diff --git a/graphics/pokemon/flittle/shiny.pal b/graphics/pokemon/flittle/shiny.pal new file mode 100644 index 000000000000..1636e312adc8 --- /dev/null +++ b/graphics/pokemon/flittle/shiny.pal @@ -0,0 +1,18 @@ +JASC-PAL +0100 +15 +153 210 164 +120 120 120 +255 255 255 +183 185 186 +15 15 15 +141 121 50 +255 247 147 +210 187 104 +126 110 198 +159 120 0 +169 200 243 +48 169 112 +73 224 149 +36 115 71 +126 92 72 diff --git a/graphics/pokemon/floette/anim_front.png b/graphics/pokemon/floette/anim_front.png index 43eae1911a78..59b7fb9b7303 100644 Binary files a/graphics/pokemon/floette/anim_front.png and b/graphics/pokemon/floette/anim_front.png differ diff --git a/graphics/pokemon/floette/eternal_flower/anim_front.png b/graphics/pokemon/floette/eternal_flower/anim_front.png new file mode 100644 index 000000000000..b77c538deafd Binary files /dev/null and b/graphics/pokemon/floette/eternal_flower/anim_front.png differ diff --git a/graphics/pokemon/floette/eternal_flower/front.png b/graphics/pokemon/floette/eternal_flower/front.png deleted file mode 100644 index 61b4419b7e35..000000000000 Binary files a/graphics/pokemon/floette/eternal_flower/front.png and /dev/null differ diff --git a/graphics/pokemon/floragato/back.png b/graphics/pokemon/floragato/back.png new file mode 100755 index 000000000000..e6788d364d2b Binary files /dev/null and b/graphics/pokemon/floragato/back.png differ diff --git a/graphics/pokemon/floragato/front.png b/graphics/pokemon/floragato/front.png new file mode 100755 index 000000000000..44145f25fd2a Binary files /dev/null and b/graphics/pokemon/floragato/front.png differ diff --git a/graphics/pokemon/floragato/icon.png b/graphics/pokemon/floragato/icon.png new file mode 100644 index 000000000000..aaf9a3b10ddd Binary files /dev/null and b/graphics/pokemon/floragato/icon.png differ diff --git a/graphics/pokemon/floragato/normal.pal b/graphics/pokemon/floragato/normal.pal new file mode 100755 index 000000000000..020d32c3ed0f --- /dev/null +++ b/graphics/pokemon/floragato/normal.pal @@ -0,0 +1,16 @@ +JASC-PAL +0100 +13 +154 212 167 +55 91 50 +66 129 57 +8 8 8 +212 232 187 +172 185 144 +63 69 53 +125 142 107 +111 177 51 +253 253 253 +223 91 126 +240 169 184 +147 52 77 diff --git a/graphics/pokemon/floragato/shiny.pal b/graphics/pokemon/floragato/shiny.pal new file mode 100755 index 000000000000..e8aad4366f62 --- /dev/null +++ b/graphics/pokemon/floragato/shiny.pal @@ -0,0 +1,16 @@ +JASC-PAL +0100 +13 +154 212 167 +50 80 65 +58 118 90 +8 8 8 +188 232 187 +149 185 144 +51 60 52 +107 142 108 +51 167 103 +253 253 253 +174 132 218 +222 203 240 +118 79 158 diff --git a/graphics/pokemon/flutter_mane/back.png b/graphics/pokemon/flutter_mane/back.png new file mode 100644 index 000000000000..8052cafc196c Binary files /dev/null and b/graphics/pokemon/flutter_mane/back.png differ diff --git a/graphics/pokemon/flutter_mane/front.png b/graphics/pokemon/flutter_mane/front.png new file mode 100644 index 000000000000..ce45a4b9238f Binary files /dev/null and b/graphics/pokemon/flutter_mane/front.png differ diff --git a/graphics/pokemon/flutter_mane/icon.png b/graphics/pokemon/flutter_mane/icon.png new file mode 100755 index 000000000000..2b65fc048f89 Binary files /dev/null and b/graphics/pokemon/flutter_mane/icon.png differ diff --git a/graphics/pokemon/flutter_mane/normal.pal b/graphics/pokemon/flutter_mane/normal.pal new file mode 100644 index 000000000000..a2b19738a669 --- /dev/null +++ b/graphics/pokemon/flutter_mane/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 210 164 +148 30 104 +16 16 16 +196 102 161 +230 162 205 +56 73 80 +109 149 164 +90 116 117 +136 56 24 +92 172 142 +255 162 162 +255 68 68 +136 214 185 +148 184 177 +180 26 65 +248 216 96 diff --git a/graphics/pokemon/flutter_mane/shiny.pal b/graphics/pokemon/flutter_mane/shiny.pal new file mode 100644 index 000000000000..2db4e621e2ca --- /dev/null +++ b/graphics/pokemon/flutter_mane/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 210 164 +180 79 0 +16 16 16 +216 152 64 +248 184 64 +56 73 80 +181 203 123 +105 141 69 +136 56 24 +200 200 200 +255 162 162 +255 68 68 +248 248 248 +222 232 154 +180 26 65 +248 216 96 diff --git a/graphics/pokemon/frigibax/anim_front.png b/graphics/pokemon/frigibax/anim_front.png new file mode 100644 index 000000000000..cfdaf7de70cc Binary files /dev/null and b/graphics/pokemon/frigibax/anim_front.png differ diff --git a/graphics/pokemon/frigibax/back.png b/graphics/pokemon/frigibax/back.png new file mode 100644 index 000000000000..15026f4bf898 Binary files /dev/null and b/graphics/pokemon/frigibax/back.png differ diff --git a/graphics/pokemon/frigibax/icon.png b/graphics/pokemon/frigibax/icon.png new file mode 100755 index 000000000000..b50575cd473d Binary files /dev/null and b/graphics/pokemon/frigibax/icon.png differ diff --git a/graphics/pokemon/frigibax/normal.pal b/graphics/pokemon/frigibax/normal.pal new file mode 100644 index 000000000000..7b65763603b1 --- /dev/null +++ b/graphics/pokemon/frigibax/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 210 164 +102 104 113 +65 73 73 +170 177 183 +143 153 163 +175 155 10 +249 216 0 +222 223 222 +15 15 15 +156 151 156 +142 187 183 +194 231 233 +114 94 22 +255 181 9 +209 147 16 +118 152 148 diff --git a/graphics/pokemon/frigibax/shiny.pal b/graphics/pokemon/frigibax/shiny.pal new file mode 100644 index 000000000000..9c9d46e8602f --- /dev/null +++ b/graphics/pokemon/frigibax/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 210 164 +114 133 134 +63 103 103 +191 220 223 +150 185 190 +175 155 10 +249 216 0 +222 223 222 +15 15 15 +156 151 156 +100 145 142 +146 180 177 +114 94 22 +255 181 9 +209 147 16 +118 152 148 diff --git a/graphics/pokemon/fuecoco/back.png b/graphics/pokemon/fuecoco/back.png new file mode 100644 index 000000000000..a7fb5e562814 Binary files /dev/null and b/graphics/pokemon/fuecoco/back.png differ diff --git a/graphics/pokemon/fuecoco/front.png b/graphics/pokemon/fuecoco/front.png new file mode 100644 index 000000000000..d78818b22b29 Binary files /dev/null and b/graphics/pokemon/fuecoco/front.png differ diff --git a/graphics/pokemon/fuecoco/icon.png b/graphics/pokemon/fuecoco/icon.png new file mode 100755 index 000000000000..923e5f03fd97 Binary files /dev/null and b/graphics/pokemon/fuecoco/icon.png differ diff --git a/graphics/pokemon/fuecoco/normal.pal b/graphics/pokemon/fuecoco/normal.pal new file mode 100644 index 000000000000..85f78e488afc --- /dev/null +++ b/graphics/pokemon/fuecoco/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 88 40 +248 208 56 +216 160 40 +104 40 32 +112 88 64 +232 136 120 +248 248 216 +232 72 56 +168 160 144 +48 56 64 +168 64 32 +16 16 16 +152 104 16 +248 248 248 +80 88 96 diff --git a/graphics/pokemon/fuecoco/shiny.pal b/graphics/pokemon/fuecoco/shiny.pal new file mode 100644 index 000000000000..9e353d26be31 --- /dev/null +++ b/graphics/pokemon/fuecoco/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +248 88 40 +248 208 56 +216 160 40 +104 16 64 +112 88 64 +232 176 176 +248 248 216 +216 104 136 +168 160 144 +88 32 48 +168 64 88 +16 16 16 +152 104 16 +248 248 248 +128 64 72 diff --git a/graphics/pokemon/garganacl/back.png b/graphics/pokemon/garganacl/back.png new file mode 100644 index 000000000000..d8590c6ce0bb Binary files /dev/null and b/graphics/pokemon/garganacl/back.png differ diff --git a/graphics/pokemon/garganacl/front.png b/graphics/pokemon/garganacl/front.png new file mode 100644 index 000000000000..416f535b353f Binary files /dev/null and b/graphics/pokemon/garganacl/front.png differ diff --git a/graphics/pokemon/garganacl/icon.png b/graphics/pokemon/garganacl/icon.png new file mode 100755 index 000000000000..bc2d038478cd Binary files /dev/null and b/graphics/pokemon/garganacl/icon.png differ diff --git a/graphics/pokemon/garganacl/normal.pal b/graphics/pokemon/garganacl/normal.pal new file mode 100644 index 000000000000..2acd11e3b932 --- /dev/null +++ b/graphics/pokemon/garganacl/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 211 165 +179 179 179 +217 217 217 +242 242 242 +138 138 138 +77 50 38 +148 104 90 +0 0 0 +102 61 44 +195 146 123 +245 147 45 +251 242 54 +46 43 40 +93 86 80 +220 191 179 +145 131 122 diff --git a/graphics/pokemon/garganacl/shiny.pal b/graphics/pokemon/garganacl/shiny.pal new file mode 100644 index 000000000000..0b0979dd27c5 --- /dev/null +++ b/graphics/pokemon/garganacl/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 211 165 +161 104 55 +214 153 99 +237 173 116 +128 81 41 +77 50 38 +148 104 90 +0 0 0 +102 61 44 +195 146 123 +245 147 45 +251 242 54 +46 43 40 +93 86 80 +220 191 179 +145 131 122 diff --git a/graphics/pokemon/gholdengo/back.png b/graphics/pokemon/gholdengo/back.png new file mode 100644 index 000000000000..7968235e2ecd Binary files /dev/null and b/graphics/pokemon/gholdengo/back.png differ diff --git a/graphics/pokemon/gholdengo/front.png b/graphics/pokemon/gholdengo/front.png new file mode 100644 index 000000000000..410d23e6d06a Binary files /dev/null and b/graphics/pokemon/gholdengo/front.png differ diff --git a/graphics/pokemon/gholdengo/icon.png b/graphics/pokemon/gholdengo/icon.png new file mode 100755 index 000000000000..99d0e122f2b4 Binary files /dev/null and b/graphics/pokemon/gholdengo/icon.png differ diff --git a/graphics/pokemon/gholdengo/normal.pal b/graphics/pokemon/gholdengo/normal.pal new file mode 100644 index 000000000000..cb9c6fdf7ccc --- /dev/null +++ b/graphics/pokemon/gholdengo/normal.pal @@ -0,0 +1,15 @@ +JASC-PAL +0100 +12 +153 210 164 +112 92 40 +252 210 82 +255 255 255 +207 129 60 +197 154 66 +0 0 0 +134 120 80 +37 37 45 +189 166 99 +66 73 74 +181 194 222 diff --git a/graphics/pokemon/gholdengo/shiny.pal b/graphics/pokemon/gholdengo/shiny.pal new file mode 100644 index 000000000000..4823e4a57d4d --- /dev/null +++ b/graphics/pokemon/gholdengo/shiny.pal @@ -0,0 +1,15 @@ +JASC-PAL +0100 +12 +153 210 164 +112 92 40 +252 210 82 +255 255 255 +127 147 167 +197 154 66 +0 0 0 +134 120 80 +37 37 45 +189 166 99 +66 73 74 +181 194 222 diff --git a/graphics/pokemon/gimmighoul/back.png b/graphics/pokemon/gimmighoul/back.png new file mode 100644 index 000000000000..c6a634240782 Binary files /dev/null and b/graphics/pokemon/gimmighoul/back.png differ diff --git a/graphics/pokemon/gimmighoul/front.png b/graphics/pokemon/gimmighoul/front.png new file mode 100644 index 000000000000..19b1f7b252b3 Binary files /dev/null and b/graphics/pokemon/gimmighoul/front.png differ diff --git a/graphics/pokemon/gimmighoul/icon.png b/graphics/pokemon/gimmighoul/icon.png new file mode 100644 index 000000000000..91914063265b Binary files /dev/null and b/graphics/pokemon/gimmighoul/icon.png differ diff --git a/graphics/pokemon/gimmighoul/normal.pal b/graphics/pokemon/gimmighoul/normal.pal new file mode 100644 index 000000000000..f3317456b151 --- /dev/null +++ b/graphics/pokemon/gimmighoul/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +50 52 55 +138 98 57 +90 71 41 +84 91 107 +255 218 89 +221 193 38 +120 58 82 +15 15 15 +172 68 84 +173 147 56 +133 139 162 +194 198 202 +165 146 39 +133 139 163 +194 198 203 diff --git a/graphics/pokemon/gimmighoul/roaming/back.png b/graphics/pokemon/gimmighoul/roaming/back.png new file mode 100644 index 000000000000..ad90dc8a1015 Binary files /dev/null and b/graphics/pokemon/gimmighoul/roaming/back.png differ diff --git a/graphics/pokemon/gimmighoul/roaming/front.png b/graphics/pokemon/gimmighoul/roaming/front.png new file mode 100644 index 000000000000..c8f6f3a935ec Binary files /dev/null and b/graphics/pokemon/gimmighoul/roaming/front.png differ diff --git a/graphics/pokemon/gimmighoul/roaming/icon.png b/graphics/pokemon/gimmighoul/roaming/icon.png new file mode 100644 index 000000000000..e803b5255458 Binary files /dev/null and b/graphics/pokemon/gimmighoul/roaming/icon.png differ diff --git a/graphics/pokemon/gimmighoul/roaming/normal.pal b/graphics/pokemon/gimmighoul/roaming/normal.pal new file mode 100644 index 000000000000..8c71fadd9425 --- /dev/null +++ b/graphics/pokemon/gimmighoul/roaming/normal.pal @@ -0,0 +1,16 @@ +JASC-PAL +0100 +13 +114 214 163 +0 214 160 +0 212 159 +0 0 0 +31 44 56 +132 153 195 +65 108 140 +199 229 248 +161 200 224 +255 197 0 +221 124 0 +255 160 0 +128 57 0 diff --git a/graphics/pokemon/gimmighoul/roaming/shiny.pal b/graphics/pokemon/gimmighoul/roaming/shiny.pal new file mode 100644 index 000000000000..7ece225d512b --- /dev/null +++ b/graphics/pokemon/gimmighoul/roaming/shiny.pal @@ -0,0 +1,16 @@ +JASC-PAL +0100 +13 +114 214 163 +0 214 160 +0 212 159 +0 0 0 +31 44 56 +170 163 126 +135 131 102 +199 229 248 +228 209 183 +255 197 0 +221 124 0 +255 160 0 +128 57 0 diff --git a/graphics/pokemon/gimmighoul/shiny.pal b/graphics/pokemon/gimmighoul/shiny.pal new file mode 100644 index 000000000000..ac31efc40966 --- /dev/null +++ b/graphics/pokemon/gimmighoul/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +50 52 55 +138 98 57 +90 71 41 +84 91 107 +255 218 89 +221 193 38 +120 58 82 +15 15 15 +172 68 84 +173 147 56 +160 159 129 +210 205 183 +165 146 39 +133 139 163 +194 198 203 diff --git a/graphics/pokemon/glimmet/back.png b/graphics/pokemon/glimmet/back.png new file mode 100755 index 000000000000..ae7f5f2903e5 Binary files /dev/null and b/graphics/pokemon/glimmet/back.png differ diff --git a/graphics/pokemon/glimmet/front.png b/graphics/pokemon/glimmet/front.png new file mode 100755 index 000000000000..c403aefa0454 Binary files /dev/null and b/graphics/pokemon/glimmet/front.png differ diff --git a/graphics/pokemon/glimmet/icon.png b/graphics/pokemon/glimmet/icon.png new file mode 100755 index 000000000000..1bc74def326e Binary files /dev/null and b/graphics/pokemon/glimmet/icon.png differ diff --git a/graphics/pokemon/glimmet/normal.pal b/graphics/pokemon/glimmet/normal.pal new file mode 100755 index 000000000000..283d3f6c9f49 --- /dev/null +++ b/graphics/pokemon/glimmet/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +56 76 176 +40 48 112 +96 204 248 +56 132 240 +40 68 88 +96 132 152 +152 204 216 +248 248 48 +16 16 16 +128 92 160 +64 44 96 +184 140 208 +216 184 232 +67 78 94 +0 0 0 diff --git a/graphics/pokemon/glimmet/shiny.pal b/graphics/pokemon/glimmet/shiny.pal new file mode 100755 index 000000000000..8d56d1fce079 --- /dev/null +++ b/graphics/pokemon/glimmet/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +63 171 181 +40 89 112 +96 204 248 +136 247 236 +44 49 56 +96 132 152 +152 204 216 +248 248 48 +16 16 16 +81 96 158 +64 44 96 +129 159 225 +216 184 232 +67 78 94 +0 0 0 diff --git a/graphics/pokemon/glimmora/back.png b/graphics/pokemon/glimmora/back.png new file mode 100755 index 000000000000..f11e20226205 Binary files /dev/null and b/graphics/pokemon/glimmora/back.png differ diff --git a/graphics/pokemon/glimmora/front.png b/graphics/pokemon/glimmora/front.png new file mode 100755 index 000000000000..6862760a8dfb Binary files /dev/null and b/graphics/pokemon/glimmora/front.png differ diff --git a/graphics/pokemon/glimmora/icon.png b/graphics/pokemon/glimmora/icon.png new file mode 100755 index 000000000000..12e50f0cbc4b Binary files /dev/null and b/graphics/pokemon/glimmora/icon.png differ diff --git a/graphics/pokemon/glimmora/normal.pal b/graphics/pokemon/glimmora/normal.pal new file mode 100755 index 000000000000..1df274c1e79f --- /dev/null +++ b/graphics/pokemon/glimmora/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +32 84 120 +16 16 16 +88 232 248 +40 136 168 +16 24 96 +40 96 208 +24 52 136 +80 156 240 +56 48 104 +192 140 224 +112 84 160 +32 40 80 +48 68 120 +120 152 184 +248 248 48 diff --git a/graphics/pokemon/glimmora/shiny.pal b/graphics/pokemon/glimmora/shiny.pal new file mode 100755 index 000000000000..93b368079fdf --- /dev/null +++ b/graphics/pokemon/glimmora/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +53 103 115 +16 16 16 +217 255 247 +99 191 188 +16 24 96 +87 222 219 +65 143 199 +80 156 240 +56 48 104 +133 144 249 +87 88 181 +32 40 80 +48 68 120 +120 152 184 +248 248 48 diff --git a/graphics/pokemon/grafaiai/back.png b/graphics/pokemon/grafaiai/back.png new file mode 100755 index 000000000000..78e9170cd92f Binary files /dev/null and b/graphics/pokemon/grafaiai/back.png differ diff --git a/graphics/pokemon/grafaiai/front.png b/graphics/pokemon/grafaiai/front.png new file mode 100755 index 000000000000..b301080be531 Binary files /dev/null and b/graphics/pokemon/grafaiai/front.png differ diff --git a/graphics/pokemon/grafaiai/icon.png b/graphics/pokemon/grafaiai/icon.png new file mode 100755 index 000000000000..9e027481aa6e Binary files /dev/null and b/graphics/pokemon/grafaiai/icon.png differ diff --git a/graphics/pokemon/grafaiai/normal.pal b/graphics/pokemon/grafaiai/normal.pal new file mode 100755 index 000000000000..ea6b7bf6f4e1 --- /dev/null +++ b/graphics/pokemon/grafaiai/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +112 104 88 +16 16 16 +232 232 232 +176 168 136 +40 32 48 +64 56 72 +88 64 152 +152 208 176 +216 232 192 +40 64 80 +96 120 128 +136 16 72 +208 56 112 +56 184 216 +32 128 176 diff --git a/graphics/pokemon/grafaiai/shiny.pal b/graphics/pokemon/grafaiai/shiny.pal new file mode 100755 index 000000000000..5b115ea4aff0 --- /dev/null +++ b/graphics/pokemon/grafaiai/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +112 112 112 +16 16 16 +232 232 232 +176 176 176 +80 80 56 +120 120 96 +176 72 96 +168 168 224 +208 200 248 +56 72 80 +112 120 128 +192 128 0 +248 216 72 +144 96 216 +88 48 144 diff --git a/graphics/pokemon/great_tusk/anim_front.png b/graphics/pokemon/great_tusk/anim_front.png new file mode 100644 index 000000000000..c4362af29c3b Binary files /dev/null and b/graphics/pokemon/great_tusk/anim_front.png differ diff --git a/graphics/pokemon/great_tusk/back.png b/graphics/pokemon/great_tusk/back.png new file mode 100644 index 000000000000..0b7c0f6620e3 Binary files /dev/null and b/graphics/pokemon/great_tusk/back.png differ diff --git a/graphics/pokemon/great_tusk/icon.png b/graphics/pokemon/great_tusk/icon.png new file mode 100755 index 000000000000..30384d570dad Binary files /dev/null and b/graphics/pokemon/great_tusk/icon.png differ diff --git a/graphics/pokemon/great_tusk/normal.pal b/graphics/pokemon/great_tusk/normal.pal new file mode 100644 index 000000000000..b5c23a12884d --- /dev/null +++ b/graphics/pokemon/great_tusk/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 160 232 +112 24 48 +144 8 56 +232 48 120 +104 24 40 +16 16 16 +40 32 64 +96 88 160 +56 48 88 +120 80 64 +184 168 160 +240 240 216 +128 136 160 +168 192 216 +248 240 88 +8 8 8 diff --git a/graphics/pokemon/great_tusk/shiny.pal b/graphics/pokemon/great_tusk/shiny.pal new file mode 100644 index 000000000000..c7449781d539 --- /dev/null +++ b/graphics/pokemon/great_tusk/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 160 232 +160 104 16 +216 168 88 +248 240 152 +104 24 40 +16 16 16 +56 24 24 +128 80 64 +96 64 48 +120 80 64 +184 168 160 +240 240 216 +72 176 144 +176 240 200 +248 240 88 +8 8 8 diff --git a/graphics/pokemon/greavard/back.png b/graphics/pokemon/greavard/back.png new file mode 100755 index 000000000000..3fef9054343d Binary files /dev/null and b/graphics/pokemon/greavard/back.png differ diff --git a/graphics/pokemon/greavard/front.png b/graphics/pokemon/greavard/front.png new file mode 100755 index 000000000000..1fde60751017 Binary files /dev/null and b/graphics/pokemon/greavard/front.png differ diff --git a/graphics/pokemon/greavard/icon.png b/graphics/pokemon/greavard/icon.png new file mode 100755 index 000000000000..a43e9a387550 Binary files /dev/null and b/graphics/pokemon/greavard/icon.png differ diff --git a/graphics/pokemon/greavard/normal.pal b/graphics/pokemon/greavard/normal.pal new file mode 100755 index 000000000000..566bd27604a1 --- /dev/null +++ b/graphics/pokemon/greavard/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +128 60 184 +176 104 232 +208 144 160 +248 212 40 +16 16 16 +96 112 120 +64 80 80 +248 252 248 +184 188 192 +144 132 152 +128 144 160 +176 196 208 +152 164 176 +88 44 48 +184 88 80 diff --git a/graphics/pokemon/greavard/shiny.pal b/graphics/pokemon/greavard/shiny.pal new file mode 100755 index 000000000000..12044feff393 --- /dev/null +++ b/graphics/pokemon/greavard/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +128 60 184 +176 104 232 +208 144 160 +248 212 40 +16 16 16 +145 129 66 +100 90 50 +209 213 211 +164 155 139 +144 132 152 +189 169 92 +233 206 102 +152 164 176 +88 44 48 +184 88 80 diff --git a/graphics/pokemon/hakamo_o/anim_front.png b/graphics/pokemon/hakamo_o/anim_front.png index 2b5112a2d5b4..599bbe3eeb19 100644 Binary files a/graphics/pokemon/hakamo_o/anim_front.png and b/graphics/pokemon/hakamo_o/anim_front.png differ diff --git a/graphics/pokemon/hakamo_o/back.png b/graphics/pokemon/hakamo_o/back.png index f994a70e9d9d..402eabab0ded 100644 Binary files a/graphics/pokemon/hakamo_o/back.png and b/graphics/pokemon/hakamo_o/back.png differ diff --git a/graphics/pokemon/houndstone/back.png b/graphics/pokemon/houndstone/back.png new file mode 100644 index 000000000000..c2ed542d6af0 Binary files /dev/null and b/graphics/pokemon/houndstone/back.png differ diff --git a/graphics/pokemon/houndstone/front.png b/graphics/pokemon/houndstone/front.png new file mode 100644 index 000000000000..5b4271eb9eca Binary files /dev/null and b/graphics/pokemon/houndstone/front.png differ diff --git a/graphics/pokemon/houndstone/icon.png b/graphics/pokemon/houndstone/icon.png new file mode 100755 index 000000000000..51d26434c8ca Binary files /dev/null and b/graphics/pokemon/houndstone/icon.png differ diff --git a/graphics/pokemon/houndstone/normal.pal b/graphics/pokemon/houndstone/normal.pal new file mode 100644 index 000000000000..a41e9b3fbaca --- /dev/null +++ b/graphics/pokemon/houndstone/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 210 164 +65 72 74 +98 85 106 +139 149 164 +131 113 139 +123 121 123 +90 93 90 +156 157 156 +189 190 197 +0 0 0 +172 174 189 +246 246 246 +8 12 8 +197 198 205 +255 250 255 +197 198 197 diff --git a/graphics/pokemon/houndstone/shiny.pal b/graphics/pokemon/houndstone/shiny.pal new file mode 100644 index 000000000000..f925949f218c --- /dev/null +++ b/graphics/pokemon/houndstone/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 210 164 +65 72 74 +111 84 55 +169 118 61 +173 107 75 +123 121 123 +90 93 90 +156 157 156 +207 162 120 +0 0 0 +207 162 120 +246 246 246 +8 12 8 +222 201 114 +242 233 168 +197 198 197 diff --git a/graphics/pokemon/iron_bundle/back.png b/graphics/pokemon/iron_bundle/back.png new file mode 100644 index 000000000000..78451dda9b84 Binary files /dev/null and b/graphics/pokemon/iron_bundle/back.png differ diff --git a/graphics/pokemon/iron_bundle/front.png b/graphics/pokemon/iron_bundle/front.png new file mode 100644 index 000000000000..a98137941bd1 Binary files /dev/null and b/graphics/pokemon/iron_bundle/front.png differ diff --git a/graphics/pokemon/iron_bundle/icon.png b/graphics/pokemon/iron_bundle/icon.png new file mode 100755 index 000000000000..99b380a54315 Binary files /dev/null and b/graphics/pokemon/iron_bundle/icon.png differ diff --git a/graphics/pokemon/iron_bundle/normal.pal b/graphics/pokemon/iron_bundle/normal.pal new file mode 100644 index 000000000000..ea35b3b984e7 --- /dev/null +++ b/graphics/pokemon/iron_bundle/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 210 164 +189 246 255 +90 194 255 +255 206 65 +205 141 41 +123 68 0 +0 0 0 +41 36 41 +217 69 55 +255 250 250 +142 43 43 +65 68 74 +79 30 31 +174 174 182 +90 93 90 +65 141 180 diff --git a/graphics/pokemon/iron_bundle/shiny.pal b/graphics/pokemon/iron_bundle/shiny.pal new file mode 100644 index 000000000000..b27dde2a6cd2 --- /dev/null +++ b/graphics/pokemon/iron_bundle/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 210 164 +189 246 255 +90 194 255 +255 206 65 +205 141 41 +123 68 0 +0 0 0 +41 36 41 +172 170 180 +197 198 189 +98 101 115 +65 68 74 +82 80 82 +156 141 148 +90 93 90 +65 141 180 diff --git a/graphics/pokemon/iron_hands/back.png b/graphics/pokemon/iron_hands/back.png new file mode 100644 index 000000000000..b7702eb3161e Binary files /dev/null and b/graphics/pokemon/iron_hands/back.png differ diff --git a/graphics/pokemon/iron_hands/front.png b/graphics/pokemon/iron_hands/front.png new file mode 100644 index 000000000000..1971bb88da36 Binary files /dev/null and b/graphics/pokemon/iron_hands/front.png differ diff --git a/graphics/pokemon/iron_hands/icon.png b/graphics/pokemon/iron_hands/icon.png new file mode 100755 index 000000000000..d28b62a6d0e8 Binary files /dev/null and b/graphics/pokemon/iron_hands/icon.png differ diff --git a/graphics/pokemon/iron_hands/normal.pal b/graphics/pokemon/iron_hands/normal.pal new file mode 100644 index 000000000000..265b3a66f66d --- /dev/null +++ b/graphics/pokemon/iron_hands/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 210 164 +82 81 80 +49 55 88 +16 16 16 +203 201 197 +123 134 165 +66 78 115 +154 142 145 +147 118 17 +252 210 22 +118 105 108 +60 51 49 +206 158 16 +255 255 255 +41 38 41 +0 0 0 diff --git a/graphics/pokemon/iron_hands/shiny.pal b/graphics/pokemon/iron_hands/shiny.pal new file mode 100644 index 000000000000..ebe29a2267ae --- /dev/null +++ b/graphics/pokemon/iron_hands/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 210 164 +82 81 80 +100 103 113 +16 16 16 +168 170 176 +213 213 213 +168 170 176 +100 103 113 +147 118 17 +252 210 22 +118 105 108 +60 51 49 +206 158 16 +255 255 255 +60 51 49 +0 0 0 diff --git a/graphics/pokemon/iron_jugulis/back.png b/graphics/pokemon/iron_jugulis/back.png new file mode 100644 index 000000000000..cb6e05f26ecc Binary files /dev/null and b/graphics/pokemon/iron_jugulis/back.png differ diff --git a/graphics/pokemon/iron_jugulis/front.png b/graphics/pokemon/iron_jugulis/front.png new file mode 100644 index 000000000000..c2c409565497 Binary files /dev/null and b/graphics/pokemon/iron_jugulis/front.png differ diff --git a/graphics/pokemon/iron_jugulis/icon.png b/graphics/pokemon/iron_jugulis/icon.png new file mode 100755 index 000000000000..14ae400dfd46 Binary files /dev/null and b/graphics/pokemon/iron_jugulis/icon.png differ diff --git a/graphics/pokemon/iron_jugulis/normal.pal b/graphics/pokemon/iron_jugulis/normal.pal new file mode 100644 index 000000000000..e0a017d34670 --- /dev/null +++ b/graphics/pokemon/iron_jugulis/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +180 255 139 +255 76 205 +238 234 238 +148 40 123 +123 121 123 +32 68 156 +16 44 82 +255 255 255 +115 157 238 +65 52 65 +131 170 246 +8 12 8 +57 117 230 +41 40 41 +106 129 213 +74 64 74 diff --git a/graphics/pokemon/iron_jugulis/shiny.pal b/graphics/pokemon/iron_jugulis/shiny.pal new file mode 100644 index 000000000000..e0a017d34670 --- /dev/null +++ b/graphics/pokemon/iron_jugulis/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +180 255 139 +255 76 205 +238 234 238 +148 40 123 +123 121 123 +32 68 156 +16 44 82 +255 255 255 +115 157 238 +65 52 65 +131 170 246 +8 12 8 +57 117 230 +41 40 41 +106 129 213 +74 64 74 diff --git a/graphics/pokemon/iron_leaves/back.png b/graphics/pokemon/iron_leaves/back.png new file mode 100644 index 000000000000..a169e8f22309 Binary files /dev/null and b/graphics/pokemon/iron_leaves/back.png differ diff --git a/graphics/pokemon/iron_leaves/front.png b/graphics/pokemon/iron_leaves/front.png new file mode 100644 index 000000000000..d636ded7914c Binary files /dev/null and b/graphics/pokemon/iron_leaves/front.png differ diff --git a/graphics/pokemon/iron_leaves/icon.png b/graphics/pokemon/iron_leaves/icon.png new file mode 100644 index 000000000000..a5d308e6cb3b Binary files /dev/null and b/graphics/pokemon/iron_leaves/icon.png differ diff --git a/graphics/pokemon/iron_leaves/normal.pal b/graphics/pokemon/iron_leaves/normal.pal new file mode 100644 index 000000000000..946223c7198e --- /dev/null +++ b/graphics/pokemon/iron_leaves/normal.pal @@ -0,0 +1,18 @@ +JASC-PAL +0100 +15 +153 210 164 +68 112 63 +33 66 28 +148 215 148 +85 174 88 +86 141 80 +179 28 91 +255 69 115 +255 230 240 +16 16 16 +165 146 156 +206 202 197 +106 115 123 +77 77 87 +38 38 45 diff --git a/graphics/pokemon/iron_leaves/shiny.pal b/graphics/pokemon/iron_leaves/shiny.pal new file mode 100644 index 000000000000..5702b5b4482e --- /dev/null +++ b/graphics/pokemon/iron_leaves/shiny.pal @@ -0,0 +1,18 @@ +JASC-PAL +0100 +15 +153 210 164 +128 128 120 +72 72 72 +216 216 216 +208 200 208 +176 168 168 +179 28 91 +255 69 115 +255 230 240 +16 16 16 +165 146 156 +206 202 197 +106 115 123 +77 77 87 +38 38 45 diff --git a/graphics/pokemon/iron_moth/back.png b/graphics/pokemon/iron_moth/back.png new file mode 100644 index 000000000000..b5b4050c3607 Binary files /dev/null and b/graphics/pokemon/iron_moth/back.png differ diff --git a/graphics/pokemon/iron_moth/front.png b/graphics/pokemon/iron_moth/front.png new file mode 100644 index 000000000000..fc403250973e Binary files /dev/null and b/graphics/pokemon/iron_moth/front.png differ diff --git a/graphics/pokemon/iron_moth/icon.png b/graphics/pokemon/iron_moth/icon.png new file mode 100755 index 000000000000..ac43ad66ea5b Binary files /dev/null and b/graphics/pokemon/iron_moth/icon.png differ diff --git a/graphics/pokemon/iron_moth/normal.pal b/graphics/pokemon/iron_moth/normal.pal new file mode 100644 index 000000000000..cacbbf8276e5 --- /dev/null +++ b/graphics/pokemon/iron_moth/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 210 164 +197 121 41 +74 68 65 +213 44 65 +255 157 41 +131 133 131 +32 32 24 +197 230 238 +148 174 172 +139 28 41 +139 72 32 +255 255 255 +92 93 90 +0 0 0 +189 190 189 +90 16 24 diff --git a/graphics/pokemon/iron_moth/shiny.pal b/graphics/pokemon/iron_moth/shiny.pal new file mode 100644 index 000000000000..57377eda4ef6 --- /dev/null +++ b/graphics/pokemon/iron_moth/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 210 164 +197 121 41 +74 68 65 +168 170 176 +255 157 41 +131 133 131 +32 32 24 +168 170 176 +100 103 113 +100 103 113 +139 72 32 +255 255 255 +92 93 90 +0 0 0 +189 190 189 +51 51 51 diff --git a/graphics/pokemon/iron_thorns/back.png b/graphics/pokemon/iron_thorns/back.png new file mode 100644 index 000000000000..3c33307446a8 Binary files /dev/null and b/graphics/pokemon/iron_thorns/back.png differ diff --git a/graphics/pokemon/iron_thorns/front.png b/graphics/pokemon/iron_thorns/front.png new file mode 100644 index 000000000000..98aade73deab Binary files /dev/null and b/graphics/pokemon/iron_thorns/front.png differ diff --git a/graphics/pokemon/iron_thorns/icon.png b/graphics/pokemon/iron_thorns/icon.png new file mode 100755 index 000000000000..48391a50c774 Binary files /dev/null and b/graphics/pokemon/iron_thorns/icon.png differ diff --git a/graphics/pokemon/iron_thorns/normal.pal b/graphics/pokemon/iron_thorns/normal.pal new file mode 100644 index 000000000000..b149804f8547 --- /dev/null +++ b/graphics/pokemon/iron_thorns/normal.pal @@ -0,0 +1,17 @@ +JASC-PAL +0100 +14 +153 210 164 +112 168 48 +152 208 72 +0 0 0 +208 248 128 +56 96 32 +64 56 56 +0 136 95 +72 224 138 +211 255 255 +48 40 40 +88 80 80 +55 189 122 +192 192 192 diff --git a/graphics/pokemon/iron_thorns/shiny.pal b/graphics/pokemon/iron_thorns/shiny.pal new file mode 100644 index 000000000000..6d5a3826d30e --- /dev/null +++ b/graphics/pokemon/iron_thorns/shiny.pal @@ -0,0 +1,17 @@ +JASC-PAL +0100 +14 +153 210 164 +144 144 144 +200 200 200 +0 0 0 +248 248 248 +80 80 80 +64 56 56 +0 136 95 +72 224 178 +211 255 255 +48 40 40 +88 80 80 +55 189 148 +192 192 192 diff --git a/graphics/pokemon/iron_treads/back.png b/graphics/pokemon/iron_treads/back.png new file mode 100644 index 000000000000..93c44eff7dd6 Binary files /dev/null and b/graphics/pokemon/iron_treads/back.png differ diff --git a/graphics/pokemon/iron_treads/front.png b/graphics/pokemon/iron_treads/front.png new file mode 100644 index 000000000000..0c3b7025eb50 Binary files /dev/null and b/graphics/pokemon/iron_treads/front.png differ diff --git a/graphics/pokemon/iron_treads/icon.png b/graphics/pokemon/iron_treads/icon.png new file mode 100755 index 000000000000..a75d7f93c9c1 Binary files /dev/null and b/graphics/pokemon/iron_treads/icon.png differ diff --git a/graphics/pokemon/iron_treads/normal.pal b/graphics/pokemon/iron_treads/normal.pal new file mode 100644 index 000000000000..f65e903d76f9 --- /dev/null +++ b/graphics/pokemon/iron_treads/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 210 164 +106 62 71 +88 31 42 +255 56 57 +255 180 183 +33 4 15 +133 105 122 +171 133 147 +255 0 0 +241 12 17 +0 0 0 +148 119 127 +142 169 173 +28 38 44 +205 205 207 +0 0 0 diff --git a/graphics/pokemon/iron_treads/shiny.pal b/graphics/pokemon/iron_treads/shiny.pal new file mode 100644 index 000000000000..3c2388187f8b --- /dev/null +++ b/graphics/pokemon/iron_treads/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 210 164 +142 152 163 +68 82 94 +255 56 57 +255 180 183 +33 4 15 +217 217 217 +239 239 239 +255 0 0 +241 12 17 +0 0 0 +148 119 127 +142 169 173 +28 38 44 +205 205 207 +0 0 0 diff --git a/graphics/pokemon/iron_valiant/back.png b/graphics/pokemon/iron_valiant/back.png new file mode 100644 index 000000000000..9251f2c7e411 Binary files /dev/null and b/graphics/pokemon/iron_valiant/back.png differ diff --git a/graphics/pokemon/iron_valiant/front.png b/graphics/pokemon/iron_valiant/front.png new file mode 100644 index 000000000000..fe60695d1805 Binary files /dev/null and b/graphics/pokemon/iron_valiant/front.png differ diff --git a/graphics/pokemon/iron_valiant/icon.png b/graphics/pokemon/iron_valiant/icon.png new file mode 100755 index 000000000000..c1441e5dd582 Binary files /dev/null and b/graphics/pokemon/iron_valiant/icon.png differ diff --git a/graphics/pokemon/iron_valiant/normal.pal b/graphics/pokemon/iron_valiant/normal.pal new file mode 100644 index 000000000000..f454ada84e2a --- /dev/null +++ b/graphics/pokemon/iron_valiant/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 163 +45 56 74 +75 131 131 +109 176 180 +15 15 15 +38 77 36 +90 180 106 +65 131 90 +252 252 252 +175 171 206 +89 95 106 +174 32 96 +128 136 155 +255 81 151 +238 176 220 +112 146 190 diff --git a/graphics/pokemon/iron_valiant/shiny.pal b/graphics/pokemon/iron_valiant/shiny.pal new file mode 100644 index 000000000000..5d2e2d28db03 --- /dev/null +++ b/graphics/pokemon/iron_valiant/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 163 +45 57 75 +101 103 113 +129 137 155 +15 15 15 +51 53 57 +129 137 155 +101 103 113 +252 252 252 +213 213 213 +101 103 113 +174 32 96 +129 137 155 +255 81 151 +238 176 220 +129 137 155 diff --git a/graphics/pokemon/jangmo_o/anim_front.png b/graphics/pokemon/jangmo_o/anim_front.png index d462c0adb83c..9f3abb069677 100644 Binary files a/graphics/pokemon/jangmo_o/anim_front.png and b/graphics/pokemon/jangmo_o/anim_front.png differ diff --git a/graphics/pokemon/jangmo_o/back.png b/graphics/pokemon/jangmo_o/back.png index 6416369e961f..209011dfa70d 100644 Binary files a/graphics/pokemon/jangmo_o/back.png and b/graphics/pokemon/jangmo_o/back.png differ diff --git a/graphics/pokemon/kilowattrel/back.png b/graphics/pokemon/kilowattrel/back.png new file mode 100755 index 000000000000..26eb440b6a3c Binary files /dev/null and b/graphics/pokemon/kilowattrel/back.png differ diff --git a/graphics/pokemon/kilowattrel/front.png b/graphics/pokemon/kilowattrel/front.png new file mode 100755 index 000000000000..3a8e97164463 Binary files /dev/null and b/graphics/pokemon/kilowattrel/front.png differ diff --git a/graphics/pokemon/kilowattrel/icon.png b/graphics/pokemon/kilowattrel/icon.png new file mode 100755 index 000000000000..d4e5f7211bd6 Binary files /dev/null and b/graphics/pokemon/kilowattrel/icon.png differ diff --git a/graphics/pokemon/kilowattrel/normal.pal b/graphics/pokemon/kilowattrel/normal.pal new file mode 100755 index 000000000000..c67bb43b2a4a --- /dev/null +++ b/graphics/pokemon/kilowattrel/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +24 24 24 +48 56 56 +32 40 40 +248 204 48 +192 144 40 +248 252 248 +56 28 32 +16 16 16 +96 248 208 +128 128 128 +120 60 64 +96 36 40 +120 92 32 +72 88 96 +48 56 72 diff --git a/graphics/pokemon/kilowattrel/shiny.pal b/graphics/pokemon/kilowattrel/shiny.pal new file mode 100755 index 000000000000..a9ad2ba3a8c8 --- /dev/null +++ b/graphics/pokemon/kilowattrel/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +24 24 24 +131 83 100 +96 60 73 +248 204 48 +192 144 40 +248 252 248 +212 95 60 +16 16 16 +96 248 208 +128 128 128 +244 161 59 +212 95 60 +120 92 32 +72 88 96 +48 56 72 diff --git a/graphics/pokemon/kingambit/back.png b/graphics/pokemon/kingambit/back.png new file mode 100644 index 000000000000..3309f316b1c2 Binary files /dev/null and b/graphics/pokemon/kingambit/back.png differ diff --git a/graphics/pokemon/kingambit/front.png b/graphics/pokemon/kingambit/front.png new file mode 100644 index 000000000000..22f0f51ff50b Binary files /dev/null and b/graphics/pokemon/kingambit/front.png differ diff --git a/graphics/pokemon/kingambit/icon.png b/graphics/pokemon/kingambit/icon.png new file mode 100755 index 000000000000..ce85b3c19070 Binary files /dev/null and b/graphics/pokemon/kingambit/icon.png differ diff --git a/graphics/pokemon/kingambit/normal.pal b/graphics/pokemon/kingambit/normal.pal new file mode 100644 index 000000000000..f5c6ef871efd --- /dev/null +++ b/graphics/pokemon/kingambit/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +152 128 136 +16 16 16 +248 240 248 +200 152 72 +136 104 32 +72 32 40 +248 216 104 +32 32 40 +176 80 80 +248 48 40 +120 40 48 +64 64 72 +136 16 24 +112 56 56 +152 72 72 diff --git a/graphics/pokemon/kingambit/shiny.pal b/graphics/pokemon/kingambit/shiny.pal new file mode 100644 index 000000000000..a936488d36e7 --- /dev/null +++ b/graphics/pokemon/kingambit/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +160 160 128 +16 16 16 +248 248 224 +200 152 72 +136 104 32 +24 24 72 +248 216 104 +32 32 40 +72 88 200 +248 48 40 +48 48 120 +64 64 72 +136 16 24 +48 48 56 +80 80 96 diff --git a/graphics/pokemon/klawf/back.png b/graphics/pokemon/klawf/back.png new file mode 100755 index 000000000000..6409b07db8bb Binary files /dev/null and b/graphics/pokemon/klawf/back.png differ diff --git a/graphics/pokemon/klawf/front.png b/graphics/pokemon/klawf/front.png new file mode 100755 index 000000000000..2957bcceef50 Binary files /dev/null and b/graphics/pokemon/klawf/front.png differ diff --git a/graphics/pokemon/klawf/icon.png b/graphics/pokemon/klawf/icon.png new file mode 100755 index 000000000000..e7c232f1305e Binary files /dev/null and b/graphics/pokemon/klawf/icon.png differ diff --git a/graphics/pokemon/klawf/normal.pal b/graphics/pokemon/klawf/normal.pal new file mode 100755 index 000000000000..53537b9aa518 --- /dev/null +++ b/graphics/pokemon/klawf/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +40 40 24 +128 48 48 +96 88 56 +248 248 248 +168 160 160 +64 64 48 +232 120 56 +16 16 16 +184 80 48 +136 96 96 +176 144 112 +232 208 160 +232 128 104 +232 160 128 +128 120 88 diff --git a/graphics/pokemon/klawf/shiny.pal b/graphics/pokemon/klawf/shiny.pal new file mode 100755 index 000000000000..2e8495906cbb --- /dev/null +++ b/graphics/pokemon/klawf/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +96 96 88 +40 88 128 +240 232 200 +248 248 248 +168 160 160 +160 160 144 +88 176 232 +16 16 16 +64 128 200 +136 112 88 +184 160 128 +248 224 176 +232 128 104 +232 160 128 +232 232 208 diff --git a/graphics/pokemon/kommo_o/anim_front.png b/graphics/pokemon/kommo_o/anim_front.png index 5f1a7382ba0d..090ef56f0bcc 100644 Binary files a/graphics/pokemon/kommo_o/anim_front.png and b/graphics/pokemon/kommo_o/anim_front.png differ diff --git a/graphics/pokemon/koraidon/back.png b/graphics/pokemon/koraidon/back.png new file mode 100644 index 000000000000..fd4fb143b822 Binary files /dev/null and b/graphics/pokemon/koraidon/back.png differ diff --git a/graphics/pokemon/koraidon/front.png b/graphics/pokemon/koraidon/front.png new file mode 100644 index 000000000000..64f07479f9db Binary files /dev/null and b/graphics/pokemon/koraidon/front.png differ diff --git a/graphics/pokemon/koraidon/icon.png b/graphics/pokemon/koraidon/icon.png new file mode 100755 index 000000000000..127a03e5d7f8 Binary files /dev/null and b/graphics/pokemon/koraidon/icon.png differ diff --git a/graphics/pokemon/koraidon/normal.pal b/graphics/pokemon/koraidon/normal.pal new file mode 100644 index 000000000000..151d848ab864 --- /dev/null +++ b/graphics/pokemon/koraidon/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 210 164 +51 55 62 +103 96 105 +237 235 230 +255 118 155 +6 6 6 +255 73 153 +168 150 153 +159 65 193 +18 26 80 +36 49 136 +0 97 173 +119 32 32 +255 70 57 +185 57 56 +253 214 0 diff --git a/graphics/pokemon/koraidon/shiny.pal b/graphics/pokemon/koraidon/shiny.pal new file mode 100644 index 000000000000..2d198cf721f3 --- /dev/null +++ b/graphics/pokemon/koraidon/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 210 164 +51 55 62 +103 96 105 +237 235 230 +168 150 153 +6 6 6 +255 191 0 +168 150 153 +159 65 193 +18 26 80 +172 24 67 +255 11 119 +33 34 50 +82 83 113 +67 68 90 +253 214 0 diff --git a/graphics/pokemon/lechonk/back.png b/graphics/pokemon/lechonk/back.png new file mode 100755 index 000000000000..ea157cabe815 Binary files /dev/null and b/graphics/pokemon/lechonk/back.png differ diff --git a/graphics/pokemon/lechonk/front.png b/graphics/pokemon/lechonk/front.png new file mode 100755 index 000000000000..1afbc8999880 Binary files /dev/null and b/graphics/pokemon/lechonk/front.png differ diff --git a/graphics/pokemon/lechonk/icon.png b/graphics/pokemon/lechonk/icon.png new file mode 100755 index 000000000000..d368c427bee8 Binary files /dev/null and b/graphics/pokemon/lechonk/icon.png differ diff --git a/graphics/pokemon/lechonk/normal.pal b/graphics/pokemon/lechonk/normal.pal new file mode 100755 index 000000000000..a8f419d699a8 --- /dev/null +++ b/graphics/pokemon/lechonk/normal.pal @@ -0,0 +1,17 @@ +JASC-PAL +0100 +14 +154 212 167 +26 28 27 +8 8 8 +57 55 56 +81 83 82 +76 54 31 +202 134 87 +126 82 45 +252 252 252 +250 206 46 +193 87 129 +249 124 147 +126 41 63 +188 188 188 diff --git a/graphics/pokemon/lechonk/shiny.pal b/graphics/pokemon/lechonk/shiny.pal new file mode 100755 index 000000000000..8530a12bb8ad --- /dev/null +++ b/graphics/pokemon/lechonk/shiny.pal @@ -0,0 +1,17 @@ +JASC-PAL +0100 +14 +154 212 167 +214 106 140 +8 8 8 +246 181 214 +255 214 246 +141 93 70 +215 159 135 +187 129 106 +252 252 252 +250 206 46 +225 127 124 +255 173 170 +170 86 100 +188 188 188 diff --git a/graphics/pokemon/lokix/back.png b/graphics/pokemon/lokix/back.png new file mode 100755 index 000000000000..25d62835c17c Binary files /dev/null and b/graphics/pokemon/lokix/back.png differ diff --git a/graphics/pokemon/lokix/front.png b/graphics/pokemon/lokix/front.png new file mode 100755 index 000000000000..f617e5a41bd9 Binary files /dev/null and b/graphics/pokemon/lokix/front.png differ diff --git a/graphics/pokemon/lokix/icon.png b/graphics/pokemon/lokix/icon.png new file mode 100755 index 000000000000..205de36a0250 Binary files /dev/null and b/graphics/pokemon/lokix/icon.png differ diff --git a/graphics/pokemon/lokix/normal.pal b/graphics/pokemon/lokix/normal.pal new file mode 100755 index 000000000000..d0d79e547bea --- /dev/null +++ b/graphics/pokemon/lokix/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +40 40 40 +16 16 16 +88 96 88 +176 180 176 +32 48 72 +96 112 128 +64 80 96 +64 64 64 +120 120 120 +176 100 24 +240 164 48 +120 56 8 +248 248 248 +0 0 0 +0 0 0 diff --git a/graphics/pokemon/lokix/shiny.pal b/graphics/pokemon/lokix/shiny.pal new file mode 100755 index 000000000000..5f652f13b8ed --- /dev/null +++ b/graphics/pokemon/lokix/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +91 84 44 +16 16 16 +180 167 65 +176 180 176 +32 48 72 +86 86 86 +53 53 53 +131 129 52 +208 196 100 +178 101 28 +240 164 48 +122 57 10 +248 248 248 +0 0 0 +0 0 0 diff --git a/graphics/pokemon/lycanroc/anim_front.png b/graphics/pokemon/lycanroc/anim_front.png new file mode 100644 index 000000000000..fc853cf24bf7 Binary files /dev/null and b/graphics/pokemon/lycanroc/anim_front.png differ diff --git a/graphics/pokemon/lycanroc/dusk/anim_front.png b/graphics/pokemon/lycanroc/dusk/anim_front.png new file mode 100644 index 000000000000..1df7c94d4122 Binary files /dev/null and b/graphics/pokemon/lycanroc/dusk/anim_front.png differ diff --git a/graphics/pokemon/lycanroc/dusk/back.png b/graphics/pokemon/lycanroc/dusk/back.png index d17f1dc635fa..c9ed8b89bf17 100644 Binary files a/graphics/pokemon/lycanroc/dusk/back.png and b/graphics/pokemon/lycanroc/dusk/back.png differ diff --git a/graphics/pokemon/lycanroc/dusk/front.png b/graphics/pokemon/lycanroc/dusk/front.png deleted file mode 100644 index 8e8beb2311ce..000000000000 Binary files a/graphics/pokemon/lycanroc/dusk/front.png and /dev/null differ diff --git a/graphics/pokemon/lycanroc/dusk/icon.png b/graphics/pokemon/lycanroc/dusk/icon.png index 7ff67638d333..65d8394f4e67 100644 Binary files a/graphics/pokemon/lycanroc/dusk/icon.png and b/graphics/pokemon/lycanroc/dusk/icon.png differ diff --git a/graphics/pokemon/lycanroc/dusk/normal.pal b/graphics/pokemon/lycanroc/dusk/normal.pal index 151d43c5245f..4eb21dce4acf 100644 --- a/graphics/pokemon/lycanroc/dusk/normal.pal +++ b/graphics/pokemon/lycanroc/dusk/normal.pal @@ -15,5 +15,5 @@ JASC-PAL 192 176 160 248 248 248 29 204 62 -0 0 0 -0 0 0 +112 45 15 +255 0 255 diff --git a/graphics/pokemon/lycanroc/dusk/shiny.pal b/graphics/pokemon/lycanroc/dusk/shiny.pal index 758e607a8442..9fc8da295102 100644 --- a/graphics/pokemon/lycanroc/dusk/shiny.pal +++ b/graphics/pokemon/lycanroc/dusk/shiny.pal @@ -15,5 +15,5 @@ JASC-PAL 192 176 160 248 248 248 168 208 32 -0 0 0 +26 38 56 0 0 0 diff --git a/graphics/pokemon/lycanroc/front.png b/graphics/pokemon/lycanroc/front.png deleted file mode 100644 index a5058205ec34..000000000000 Binary files a/graphics/pokemon/lycanroc/front.png and /dev/null differ diff --git a/graphics/pokemon/lycanroc/midnight/anim_front.png b/graphics/pokemon/lycanroc/midnight/anim_front.png new file mode 100644 index 000000000000..fdd549d9493c Binary files /dev/null and b/graphics/pokemon/lycanroc/midnight/anim_front.png differ diff --git a/graphics/pokemon/lycanroc/midnight/front.png b/graphics/pokemon/lycanroc/midnight/front.png deleted file mode 100644 index 73a49530dd43..000000000000 Binary files a/graphics/pokemon/lycanroc/midnight/front.png and /dev/null differ diff --git a/graphics/pokemon/mabosstiff/back.png b/graphics/pokemon/mabosstiff/back.png new file mode 100644 index 000000000000..d572c7cbdb45 Binary files /dev/null and b/graphics/pokemon/mabosstiff/back.png differ diff --git a/graphics/pokemon/mabosstiff/front.png b/graphics/pokemon/mabosstiff/front.png new file mode 100644 index 000000000000..cf91e34c2957 Binary files /dev/null and b/graphics/pokemon/mabosstiff/front.png differ diff --git a/graphics/pokemon/mabosstiff/icon.png b/graphics/pokemon/mabosstiff/icon.png new file mode 100755 index 000000000000..3b99df2d4a98 Binary files /dev/null and b/graphics/pokemon/mabosstiff/icon.png differ diff --git a/graphics/pokemon/mabosstiff/normal.pal b/graphics/pokemon/mabosstiff/normal.pal new file mode 100644 index 000000000000..5c433266d653 --- /dev/null +++ b/graphics/pokemon/mabosstiff/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +96 88 96 +48 48 56 +168 168 168 +200 200 200 +120 128 136 +8 8 8 +48 40 40 +64 64 56 +96 80 64 +128 120 104 +248 240 144 +32 24 24 +248 200 128 +248 176 72 +136 96 48 diff --git a/graphics/pokemon/mabosstiff/shiny.pal b/graphics/pokemon/mabosstiff/shiny.pal new file mode 100644 index 000000000000..a3f922e953b8 --- /dev/null +++ b/graphics/pokemon/mabosstiff/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +96 88 96 +48 48 56 +168 168 168 +200 200 200 +120 128 136 +8 8 8 +40 40 48 +64 64 56 +104 96 112 +160 144 168 +248 240 144 +32 24 24 +248 200 128 +248 176 72 +136 96 48 diff --git a/graphics/pokemon/maschiff/back.png b/graphics/pokemon/maschiff/back.png new file mode 100644 index 000000000000..6a6a45eb463e Binary files /dev/null and b/graphics/pokemon/maschiff/back.png differ diff --git a/graphics/pokemon/maschiff/front.png b/graphics/pokemon/maschiff/front.png new file mode 100644 index 000000000000..05f724ec6dd3 Binary files /dev/null and b/graphics/pokemon/maschiff/front.png differ diff --git a/graphics/pokemon/maschiff/icon.png b/graphics/pokemon/maschiff/icon.png new file mode 100755 index 000000000000..f5127dcc42b0 Binary files /dev/null and b/graphics/pokemon/maschiff/icon.png differ diff --git a/graphics/pokemon/maschiff/normal.pal b/graphics/pokemon/maschiff/normal.pal new file mode 100644 index 000000000000..3c397173c3e8 --- /dev/null +++ b/graphics/pokemon/maschiff/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 210 164 +255 255 255 +255 193 11 +180 178 180 +238 113 24 +255 157 90 +213 141 8 +106 36 32 +98 97 98 +213 117 106 +90 64 82 +172 85 74 +8 12 8 +65 44 57 +238 170 148 +164 97 49 diff --git a/graphics/pokemon/maschiff/shiny.pal b/graphics/pokemon/maschiff/shiny.pal new file mode 100644 index 000000000000..23f5bf0a74a1 --- /dev/null +++ b/graphics/pokemon/maschiff/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 210 164 +255 255 255 +120 98 112 +180 178 180 +238 113 24 +255 157 90 +81 65 73 +92 77 102 +98 97 98 +173 157 191 +90 64 82 +129 114 142 +8 12 8 +65 44 57 +201 195 216 +63 47 59 diff --git a/graphics/pokemon/maushold/back.png b/graphics/pokemon/maushold/back.png new file mode 100644 index 000000000000..8def92dd59da Binary files /dev/null and b/graphics/pokemon/maushold/back.png differ diff --git a/graphics/pokemon/maushold/four/back.png b/graphics/pokemon/maushold/four/back.png new file mode 100644 index 000000000000..5f78e7c95978 Binary files /dev/null and b/graphics/pokemon/maushold/four/back.png differ diff --git a/graphics/pokemon/maushold/four/front.png b/graphics/pokemon/maushold/four/front.png new file mode 100644 index 000000000000..b5813df9f2fa Binary files /dev/null and b/graphics/pokemon/maushold/four/front.png differ diff --git a/graphics/pokemon/maushold/four/icon.png b/graphics/pokemon/maushold/four/icon.png new file mode 100755 index 000000000000..728aca58a1c5 Binary files /dev/null and b/graphics/pokemon/maushold/four/icon.png differ diff --git a/graphics/pokemon/maushold/front.png b/graphics/pokemon/maushold/front.png new file mode 100644 index 000000000000..aa33ed0d4512 Binary files /dev/null and b/graphics/pokemon/maushold/front.png differ diff --git a/graphics/pokemon/maushold/icon.png b/graphics/pokemon/maushold/icon.png new file mode 100755 index 000000000000..97c2d708268e Binary files /dev/null and b/graphics/pokemon/maushold/icon.png differ diff --git a/graphics/pokemon/maushold/normal.pal b/graphics/pokemon/maushold/normal.pal new file mode 100644 index 000000000000..0a20d0f038bc --- /dev/null +++ b/graphics/pokemon/maushold/normal.pal @@ -0,0 +1,14 @@ +JASC-PAL +0100 +11 +153 210 164 +85 86 102 +249 249 249 +54 55 67 +185 186 194 +6 6 6 +136 140 153 +60 126 157 +177 205 224 +130 171 200 +255 255 255 diff --git a/graphics/pokemon/maushold/shiny.pal b/graphics/pokemon/maushold/shiny.pal new file mode 100644 index 000000000000..2a6657caa72b --- /dev/null +++ b/graphics/pokemon/maushold/shiny.pal @@ -0,0 +1,14 @@ +JASC-PAL +0100 +11 +153 210 164 +85 86 102 +249 249 249 +54 55 67 +185 186 194 +6 6 6 +136 140 153 +176 125 89 +231 211 181 +215 171 136 +255 255 255 diff --git a/graphics/pokemon/meowscarada/back.png b/graphics/pokemon/meowscarada/back.png new file mode 100644 index 000000000000..be47fc78dd5f Binary files /dev/null and b/graphics/pokemon/meowscarada/back.png differ diff --git a/graphics/pokemon/meowscarada/front.png b/graphics/pokemon/meowscarada/front.png new file mode 100644 index 000000000000..5ca21ac5ea0c Binary files /dev/null and b/graphics/pokemon/meowscarada/front.png differ diff --git a/graphics/pokemon/meowscarada/icon.png b/graphics/pokemon/meowscarada/icon.png new file mode 100755 index 000000000000..5b798214530a Binary files /dev/null and b/graphics/pokemon/meowscarada/icon.png differ diff --git a/graphics/pokemon/meowscarada/normal.pal b/graphics/pokemon/meowscarada/normal.pal new file mode 100644 index 000000000000..2b5658b5e2c8 --- /dev/null +++ b/graphics/pokemon/meowscarada/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 210 164 +40 65 48 +21 31 25 +68 93 64 +6 6 6 +0 112 30 +0 64 18 +0 154 44 +227 249 220 +170 57 88 +140 179 150 +255 80 126 +159 190 166 +101 25 45 +83 97 78 +255 139 171 diff --git a/graphics/pokemon/meowscarada/shiny.pal b/graphics/pokemon/meowscarada/shiny.pal new file mode 100644 index 000000000000..d9fe0abfb0d7 --- /dev/null +++ b/graphics/pokemon/meowscarada/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 210 164 +40 65 48 +21 31 25 +13 71 67 +6 6 6 +0 85 65 +0 64 18 +0 125 91 +227 249 220 +122 77 171 +140 179 150 +159 105 205 +159 190 166 +101 25 45 +83 97 78 +191 167 212 diff --git a/graphics/pokemon/miraidon/back.png b/graphics/pokemon/miraidon/back.png new file mode 100644 index 000000000000..3d4b2d703a47 Binary files /dev/null and b/graphics/pokemon/miraidon/back.png differ diff --git a/graphics/pokemon/miraidon/front.png b/graphics/pokemon/miraidon/front.png new file mode 100644 index 000000000000..28eaa969230c Binary files /dev/null and b/graphics/pokemon/miraidon/front.png differ diff --git a/graphics/pokemon/miraidon/icon.png b/graphics/pokemon/miraidon/icon.png new file mode 100755 index 000000000000..3ccf056b5151 Binary files /dev/null and b/graphics/pokemon/miraidon/icon.png differ diff --git a/graphics/pokemon/miraidon/normal.pal b/graphics/pokemon/miraidon/normal.pal new file mode 100644 index 000000000000..12737537e5a0 --- /dev/null +++ b/graphics/pokemon/miraidon/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 210 164 +156 153 205 +82 76 115 +49 48 106 +222 218 230 +246 255 255 +16 16 16 +123 97 164 +65 170 222 +57 64 139 +189 182 180 +255 226 115 +24 40 74 +82 68 156 +180 165 189 +57 48 74 diff --git a/graphics/pokemon/miraidon/shiny.pal b/graphics/pokemon/miraidon/shiny.pal new file mode 100644 index 000000000000..18064fb9d1ff --- /dev/null +++ b/graphics/pokemon/miraidon/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 210 164 +156 153 205 +82 76 115 +57 58 62 +222 218 230 +246 255 255 +16 16 16 +200 200 200 +65 170 222 +134 134 134 +189 182 180 +255 226 115 +24 40 74 +133 133 133 +180 165 189 +57 48 74 diff --git a/graphics/pokemon/munkidori/back.png b/graphics/pokemon/munkidori/back.png new file mode 100644 index 000000000000..fa7f6ead6f26 Binary files /dev/null and b/graphics/pokemon/munkidori/back.png differ diff --git a/graphics/pokemon/munkidori/front.png b/graphics/pokemon/munkidori/front.png new file mode 100644 index 000000000000..2cd101836df8 Binary files /dev/null and b/graphics/pokemon/munkidori/front.png differ diff --git a/graphics/pokemon/munkidori/icon.png b/graphics/pokemon/munkidori/icon.png new file mode 100644 index 000000000000..20144ff87e17 Binary files /dev/null and b/graphics/pokemon/munkidori/icon.png differ diff --git a/graphics/pokemon/munkidori/normal.pal b/graphics/pokemon/munkidori/normal.pal new file mode 100644 index 000000000000..3502a2878e50 --- /dev/null +++ b/graphics/pokemon/munkidori/normal.pal @@ -0,0 +1,16 @@ +JASC-PAL +0100 +13 +152 208 160 +45 45 45 +78 73 71 +26 29 28 +90 33 73 +202 103 162 +122 140 177 +174 201 233 +146 57 119 +16 16 16 +64 74 104 +254 208 27 +206 157 9 diff --git a/graphics/pokemon/munkidori/shiny.pal b/graphics/pokemon/munkidori/shiny.pal new file mode 100644 index 000000000000..9bd9bcaef0e5 --- /dev/null +++ b/graphics/pokemon/munkidori/shiny.pal @@ -0,0 +1,16 @@ +JASC-PAL +0100 +13 +152 208 160 +84 74 70 +116 110 108 +26 29 28 +90 33 73 +202 103 162 +122 140 177 +174 201 233 +146 57 119 +16 16 16 +64 74 104 +254 208 27 +206 157 9 diff --git a/graphics/pokemon/nacli/back.png b/graphics/pokemon/nacli/back.png new file mode 100644 index 000000000000..bb455f9f1e1d Binary files /dev/null and b/graphics/pokemon/nacli/back.png differ diff --git a/graphics/pokemon/nacli/front.png b/graphics/pokemon/nacli/front.png new file mode 100644 index 000000000000..b21f021d1962 Binary files /dev/null and b/graphics/pokemon/nacli/front.png differ diff --git a/graphics/pokemon/nacli/icon.png b/graphics/pokemon/nacli/icon.png new file mode 100755 index 000000000000..ed0895c1d8fe Binary files /dev/null and b/graphics/pokemon/nacli/icon.png differ diff --git a/graphics/pokemon/nacli/normal.pal b/graphics/pokemon/nacli/normal.pal new file mode 100644 index 000000000000..479596589d18 --- /dev/null +++ b/graphics/pokemon/nacli/normal.pal @@ -0,0 +1,15 @@ +JASC-PAL +0100 +12 +154 212 167 +104 100 99 +239 238 235 +115 69 69 +166 150 148 +193 148 125 +147 98 90 +8 8 8 +229 195 183 +160 135 127 +119 92 74 +224 135 58 diff --git a/graphics/pokemon/nacli/shiny.pal b/graphics/pokemon/nacli/shiny.pal new file mode 100644 index 000000000000..650a196d3223 --- /dev/null +++ b/graphics/pokemon/nacli/shiny.pal @@ -0,0 +1,15 @@ +JASC-PAL +0100 +12 +154 212 167 +142 67 39 +239 175 108 +115 69 69 +215 124 67 +193 148 125 +147 98 90 +8 8 8 +229 195 183 +160 135 127 +119 68 82 +255 171 58 diff --git a/graphics/pokemon/naclstack/back.png b/graphics/pokemon/naclstack/back.png new file mode 100644 index 000000000000..34d80185e7c5 Binary files /dev/null and b/graphics/pokemon/naclstack/back.png differ diff --git a/graphics/pokemon/naclstack/front.png b/graphics/pokemon/naclstack/front.png new file mode 100644 index 000000000000..4055c46cf312 Binary files /dev/null and b/graphics/pokemon/naclstack/front.png differ diff --git a/graphics/pokemon/naclstack/icon.png b/graphics/pokemon/naclstack/icon.png new file mode 100755 index 000000000000..a536c3818df2 Binary files /dev/null and b/graphics/pokemon/naclstack/icon.png differ diff --git a/graphics/pokemon/naclstack/normal.pal b/graphics/pokemon/naclstack/normal.pal new file mode 100644 index 000000000000..2fd0dd7abd2b --- /dev/null +++ b/graphics/pokemon/naclstack/normal.pal @@ -0,0 +1,17 @@ +JASC-PAL +0100 +14 +153 211 165 +113 113 113 +255 255 255 +180 180 180 +18 18 18 +198 135 110 +135 86 81 +246 195 158 +87 44 39 +107 65 60 +255 160 0 +255 255 0 +66 22 28 +194 103 16 diff --git a/graphics/pokemon/naclstack/shiny.pal b/graphics/pokemon/naclstack/shiny.pal new file mode 100644 index 000000000000..a8f14a01b0ea --- /dev/null +++ b/graphics/pokemon/naclstack/shiny.pal @@ -0,0 +1,17 @@ +JASC-PAL +0100 +14 +153 211 165 +164 70 47 +235 145 61 +211 94 44 +18 18 18 +198 135 110 +135 86 81 +246 195 158 +87 44 39 +107 65 60 +255 160 0 +255 255 0 +66 22 28 +194 103 16 diff --git a/graphics/pokemon/nymble/back.png b/graphics/pokemon/nymble/back.png new file mode 100755 index 000000000000..568a99ca8c40 Binary files /dev/null and b/graphics/pokemon/nymble/back.png differ diff --git a/graphics/pokemon/nymble/front.png b/graphics/pokemon/nymble/front.png new file mode 100755 index 000000000000..66b30103c4df Binary files /dev/null and b/graphics/pokemon/nymble/front.png differ diff --git a/graphics/pokemon/nymble/icon.png b/graphics/pokemon/nymble/icon.png new file mode 100755 index 000000000000..791bd0a427f4 Binary files /dev/null and b/graphics/pokemon/nymble/icon.png differ diff --git a/graphics/pokemon/nymble/normal.pal b/graphics/pokemon/nymble/normal.pal new file mode 100755 index 000000000000..abf674ba1828 --- /dev/null +++ b/graphics/pokemon/nymble/normal.pal @@ -0,0 +1,15 @@ +JASC-PAL +0100 +12 +154 212 167 +65 74 104 +42 50 75 +119 142 177 +89 109 142 +8 8 8 +203 202 186 +242 242 240 +147 115 23 +188 161 54 +220 213 54 +115 119 127 diff --git a/graphics/pokemon/nymble/shiny.pal b/graphics/pokemon/nymble/shiny.pal new file mode 100755 index 000000000000..59afb1a4fe92 --- /dev/null +++ b/graphics/pokemon/nymble/shiny.pal @@ -0,0 +1,15 @@ +JASC-PAL +0100 +12 +154 212 167 +188 181 81 +139 135 58 +244 240 139 +221 213 109 +8 8 8 +203 202 186 +242 242 240 +171 131 41 +193 147 45 +225 197 43 +115 119 127 diff --git a/graphics/pokemon/ogerpon/back.png b/graphics/pokemon/ogerpon/back.png new file mode 100644 index 000000000000..8ec6f0fc0d52 Binary files /dev/null and b/graphics/pokemon/ogerpon/back.png differ diff --git a/graphics/pokemon/ogerpon/cornerstone/back.png b/graphics/pokemon/ogerpon/cornerstone/back.png new file mode 100644 index 000000000000..1f37c9c1dffb Binary files /dev/null and b/graphics/pokemon/ogerpon/cornerstone/back.png differ diff --git a/graphics/pokemon/ogerpon/cornerstone/front.png b/graphics/pokemon/ogerpon/cornerstone/front.png new file mode 100644 index 000000000000..6bca5e915c01 Binary files /dev/null and b/graphics/pokemon/ogerpon/cornerstone/front.png differ diff --git a/graphics/pokemon/ogerpon/cornerstone/normal.pal b/graphics/pokemon/ogerpon/cornerstone/normal.pal new file mode 100644 index 000000000000..057bd48dcccb --- /dev/null +++ b/graphics/pokemon/ogerpon/cornerstone/normal.pal @@ -0,0 +1,18 @@ +JASC-PAL +0100 +15 +148 209 161 +42 44 41 +21 158 7 +0 0 0 +74 76 73 +25 27 24 +61 113 53 +109 99 108 +133 139 139 +53 134 168 +55 189 227 +194 139 62 +255 197 74 +212 230 247 +144 92 38 diff --git a/graphics/pokemon/ogerpon/front.png b/graphics/pokemon/ogerpon/front.png new file mode 100644 index 000000000000..5fa971f87352 Binary files /dev/null and b/graphics/pokemon/ogerpon/front.png differ diff --git a/graphics/pokemon/ogerpon/hearthflame/back.png b/graphics/pokemon/ogerpon/hearthflame/back.png new file mode 100644 index 000000000000..d092ec3297cf Binary files /dev/null and b/graphics/pokemon/ogerpon/hearthflame/back.png differ diff --git a/graphics/pokemon/ogerpon/hearthflame/front.png b/graphics/pokemon/ogerpon/hearthflame/front.png new file mode 100644 index 000000000000..036ea37f328f Binary files /dev/null and b/graphics/pokemon/ogerpon/hearthflame/front.png differ diff --git a/graphics/pokemon/ogerpon/hearthflame/normal.pal b/graphics/pokemon/ogerpon/hearthflame/normal.pal new file mode 100644 index 000000000000..637556660ada --- /dev/null +++ b/graphics/pokemon/ogerpon/hearthflame/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 210 164 +156 153 172 +131 28 24 +49 133 172 +213 230 246 +41 44 41 +255 198 74 +172 105 32 +16 157 0 +57 113 49 +49 190 230 +0 0 0 +164 52 49 +74 76 74 +189 137 90 +230 60 49 diff --git a/graphics/pokemon/ogerpon/icon.png b/graphics/pokemon/ogerpon/icon.png new file mode 100644 index 000000000000..65448e8d1d68 Binary files /dev/null and b/graphics/pokemon/ogerpon/icon.png differ diff --git a/graphics/pokemon/ogerpon/normal.pal b/graphics/pokemon/ogerpon/normal.pal new file mode 100644 index 000000000000..67a862587b86 --- /dev/null +++ b/graphics/pokemon/ogerpon/normal.pal @@ -0,0 +1,18 @@ +JASC-PAL +0100 +15 +148 209 161 +42 44 41 +0 1 0 +27 70 15 +0 164 153 +17 106 68 +21 158 7 +74 76 73 +61 113 53 +175 216 159 +251 253 250 +139 99 57 +120 81 39 +219 157 92 +83 133 90 diff --git a/graphics/pokemon/ogerpon/wellspring/back.png b/graphics/pokemon/ogerpon/wellspring/back.png new file mode 100644 index 000000000000..ed74528e6579 Binary files /dev/null and b/graphics/pokemon/ogerpon/wellspring/back.png differ diff --git a/graphics/pokemon/ogerpon/wellspring/front.png b/graphics/pokemon/ogerpon/wellspring/front.png new file mode 100644 index 000000000000..5263ce2f1ebb Binary files /dev/null and b/graphics/pokemon/ogerpon/wellspring/front.png differ diff --git a/graphics/pokemon/ogerpon/wellspring/normal.pal b/graphics/pokemon/ogerpon/wellspring/normal.pal new file mode 100644 index 000000000000..4b22619be413 --- /dev/null +++ b/graphics/pokemon/ogerpon/wellspring/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 209 161 +42 44 41 +21 158 7 +74 76 73 +0 0 0 +61 113 53 +11 64 121 +15 90 170 +0 126 229 +53 134 168 +71 85 100 +55 189 227 +212 230 247 +147 91 33 +169 122 74 +152 155 171 diff --git a/graphics/pokemon/oinkologne/back.png b/graphics/pokemon/oinkologne/back.png new file mode 100644 index 000000000000..81810c233fd6 Binary files /dev/null and b/graphics/pokemon/oinkologne/back.png differ diff --git a/graphics/pokemon/oinkologne/female/back.png b/graphics/pokemon/oinkologne/female/back.png new file mode 100644 index 000000000000..d71dab390808 Binary files /dev/null and b/graphics/pokemon/oinkologne/female/back.png differ diff --git a/graphics/pokemon/oinkologne/female/front.png b/graphics/pokemon/oinkologne/female/front.png new file mode 100644 index 000000000000..c3f10ed9f325 Binary files /dev/null and b/graphics/pokemon/oinkologne/female/front.png differ diff --git a/graphics/pokemon/oinkologne/female/icon.png b/graphics/pokemon/oinkologne/female/icon.png new file mode 100755 index 000000000000..0acd6e271172 Binary files /dev/null and b/graphics/pokemon/oinkologne/female/icon.png differ diff --git a/graphics/pokemon/oinkologne/female/iconTODO.png b/graphics/pokemon/oinkologne/female/iconTODO.png new file mode 100755 index 000000000000..36ce1eb7f8f6 Binary files /dev/null and b/graphics/pokemon/oinkologne/female/iconTODO.png differ diff --git a/graphics/pokemon/oinkologne/female/normal.pal b/graphics/pokemon/oinkologne/female/normal.pal new file mode 100644 index 000000000000..ba2c645dc63d --- /dev/null +++ b/graphics/pokemon/oinkologne/female/normal.pal @@ -0,0 +1,18 @@ +JASC-PAL +0100 +15 +152 208 160 +216 80 128 +248 160 200 +144 40 64 +248 120 144 +24 24 24 +96 64 72 +64 40 40 +248 160 8 +200 104 88 +0 0 0 +144 88 80 +248 200 8 +248 248 248 +168 160 160 diff --git a/graphics/pokemon/oinkologne/female/shiny.pal b/graphics/pokemon/oinkologne/female/shiny.pal new file mode 100644 index 000000000000..9a427f2a72d0 --- /dev/null +++ b/graphics/pokemon/oinkologne/female/shiny.pal @@ -0,0 +1,18 @@ +JASC-PAL +0100 +15 +152 208 160 +216 80 128 +248 160 200 +144 40 64 +248 120 144 +24 24 24 +232 192 206 +217 158 179 +248 160 8 +248 240 240 +0 0 0 +241 223 226 +248 200 8 +248 248 248 +168 160 160 diff --git a/graphics/pokemon/oinkologne/front.png b/graphics/pokemon/oinkologne/front.png new file mode 100644 index 000000000000..22263f09036f Binary files /dev/null and b/graphics/pokemon/oinkologne/front.png differ diff --git a/graphics/pokemon/oinkologne/icon.png b/graphics/pokemon/oinkologne/icon.png new file mode 100755 index 000000000000..0acd6e271172 Binary files /dev/null and b/graphics/pokemon/oinkologne/icon.png differ diff --git a/graphics/pokemon/oinkologne/normal.pal b/graphics/pokemon/oinkologne/normal.pal new file mode 100644 index 000000000000..648781576642 --- /dev/null +++ b/graphics/pokemon/oinkologne/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 210 164 +131 97 49 +197 80 131 +16 16 16 +96 92 107 +246 214 65 +230 113 164 +59 50 72 +83 81 104 +31 33 45 +255 255 255 +43 43 43 +87 83 97 +68 61 84 +70 69 95 +131 60 90 diff --git a/graphics/pokemon/oinkologne/shiny.pal b/graphics/pokemon/oinkologne/shiny.pal new file mode 100644 index 000000000000..8faecfbad687 --- /dev/null +++ b/graphics/pokemon/oinkologne/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 210 164 +131 97 49 +197 80 131 +16 16 16 +255 206 222 +246 214 65 +230 113 164 +249 241 242 +205 153 172 +139 89 115 +255 255 255 +57 60 65 +246 186 205 +247 233 235 +255 226 238 +131 60 90 diff --git a/graphics/pokemon/okidogi/back.png b/graphics/pokemon/okidogi/back.png new file mode 100644 index 000000000000..5a1e7fb52353 Binary files /dev/null and b/graphics/pokemon/okidogi/back.png differ diff --git a/graphics/pokemon/okidogi/front.png b/graphics/pokemon/okidogi/front.png new file mode 100644 index 000000000000..a6b0a62f0e10 Binary files /dev/null and b/graphics/pokemon/okidogi/front.png differ diff --git a/graphics/pokemon/okidogi/icon.png b/graphics/pokemon/okidogi/icon.png new file mode 100644 index 000000000000..91984549c32f Binary files /dev/null and b/graphics/pokemon/okidogi/icon.png differ diff --git a/graphics/pokemon/okidogi/normal.pal b/graphics/pokemon/okidogi/normal.pal new file mode 100644 index 000000000000..9f256a4a5b9f --- /dev/null +++ b/graphics/pokemon/okidogi/normal.pal @@ -0,0 +1,18 @@ +JASC-PAL +0100 +15 +152 208 160 +16 16 16 +90 33 73 +45 45 45 +78 73 71 +202 103 162 +146 57 119 +26 29 28 +121 167 58 +84 117 53 +184 140 7 +254 208 27 +249 249 249 +29 57 21 +153 157 166 diff --git a/graphics/pokemon/okidogi/shiny.pal b/graphics/pokemon/okidogi/shiny.pal new file mode 100644 index 000000000000..d239ae218f3e --- /dev/null +++ b/graphics/pokemon/okidogi/shiny.pal @@ -0,0 +1,18 @@ +JASC-PAL +0100 +15 +152 208 160 +16 16 16 +90 33 73 +140 49 12 +207 71 17 +202 103 162 +146 57 119 +26 29 28 +121 167 58 +84 117 53 +184 140 7 +254 208 27 +249 249 249 +29 57 21 +153 157 166 diff --git a/graphics/pokemon/oranguru/anim_front.png b/graphics/pokemon/oranguru/anim_front.png new file mode 100644 index 000000000000..c3f9a5948474 Binary files /dev/null and b/graphics/pokemon/oranguru/anim_front.png differ diff --git a/graphics/pokemon/oranguru/front.png b/graphics/pokemon/oranguru/front.png deleted file mode 100644 index b0ba3510c1d0..000000000000 Binary files a/graphics/pokemon/oranguru/front.png and /dev/null differ diff --git a/graphics/pokemon/orthworm/back.png b/graphics/pokemon/orthworm/back.png new file mode 100755 index 000000000000..99936e302ee9 Binary files /dev/null and b/graphics/pokemon/orthworm/back.png differ diff --git a/graphics/pokemon/orthworm/front.png b/graphics/pokemon/orthworm/front.png new file mode 100755 index 000000000000..4c3ab7c3bd61 Binary files /dev/null and b/graphics/pokemon/orthworm/front.png differ diff --git a/graphics/pokemon/orthworm/icon.png b/graphics/pokemon/orthworm/icon.png new file mode 100755 index 000000000000..9cb39cc79bc5 Binary files /dev/null and b/graphics/pokemon/orthworm/icon.png differ diff --git a/graphics/pokemon/orthworm/normal.pal b/graphics/pokemon/orthworm/normal.pal new file mode 100755 index 000000000000..998bfee3bf65 --- /dev/null +++ b/graphics/pokemon/orthworm/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +136 56 56 +240 96 88 +184 72 72 +16 16 16 +240 132 128 +112 92 96 +160 144 144 +200 192 192 +184 224 248 +248 204 184 +224 164 152 +96 40 56 +128 68 72 +88 184 232 +0 0 0 diff --git a/graphics/pokemon/orthworm/shiny.pal b/graphics/pokemon/orthworm/shiny.pal new file mode 100755 index 000000000000..56117f80acf1 --- /dev/null +++ b/graphics/pokemon/orthworm/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +70 97 113 +135 199 210 +102 157 165 +16 16 16 +240 132 128 +112 92 96 +160 144 144 +200 192 192 +184 224 248 +252 231 199 +206 182 159 +96 40 56 +128 68 72 +59 112 145 +0 0 0 diff --git a/graphics/pokemon/palafin/back.png b/graphics/pokemon/palafin/back.png new file mode 100755 index 000000000000..77432e6367ce Binary files /dev/null and b/graphics/pokemon/palafin/back.png differ diff --git a/graphics/pokemon/palafin/front.png b/graphics/pokemon/palafin/front.png new file mode 100755 index 000000000000..074ca87f3e83 Binary files /dev/null and b/graphics/pokemon/palafin/front.png differ diff --git a/graphics/pokemon/palafin/hero/back.png b/graphics/pokemon/palafin/hero/back.png new file mode 100755 index 000000000000..922496ccf6f3 Binary files /dev/null and b/graphics/pokemon/palafin/hero/back.png differ diff --git a/graphics/pokemon/palafin/hero/front.png b/graphics/pokemon/palafin/hero/front.png new file mode 100755 index 000000000000..47f66479e18e Binary files /dev/null and b/graphics/pokemon/palafin/hero/front.png differ diff --git a/graphics/pokemon/palafin/hero/icon.png b/graphics/pokemon/palafin/hero/icon.png new file mode 100755 index 000000000000..8dd8a118445f Binary files /dev/null and b/graphics/pokemon/palafin/hero/icon.png differ diff --git a/graphics/pokemon/palafin/hero/normal.pal b/graphics/pokemon/palafin/hero/normal.pal new file mode 100755 index 000000000000..60a217e1c5c2 --- /dev/null +++ b/graphics/pokemon/palafin/hero/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +8 84 104 +136 212 248 +104 152 184 +16 16 16 +0 76 152 +0 44 96 +64 140 216 +0 104 200 +248 252 248 +168 192 208 +248 248 248 +160 176 192 +192 64 136 +152 44 104 +0 0 0 diff --git a/graphics/pokemon/palafin/hero/shiny.pal b/graphics/pokemon/palafin/hero/shiny.pal new file mode 100755 index 000000000000..d0cde2f6db22 --- /dev/null +++ b/graphics/pokemon/palafin/hero/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +8 84 104 +115 204 255 +88 146 189 +16 16 16 +65 54 87 +34 31 49 +125 109 163 +94 77 130 +248 252 248 +168 192 208 +55 80 231 +45 61 161 +205 46 125 +160 32 91 +0 0 0 diff --git a/graphics/pokemon/palafin/icon.png b/graphics/pokemon/palafin/icon.png new file mode 100755 index 000000000000..d24e846fc55a Binary files /dev/null and b/graphics/pokemon/palafin/icon.png differ diff --git a/graphics/pokemon/palafin/normal.pal b/graphics/pokemon/palafin/normal.pal new file mode 100755 index 000000000000..cf7dae93375d --- /dev/null +++ b/graphics/pokemon/palafin/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +40 96 112 +80 200 216 +136 216 224 +64 156 176 +176 192 200 +208 236 240 +24 160 248 +16 16 16 +248 252 248 +248 164 184 +176 128 160 +240 164 216 +24 104 136 +128 212 240 +64 160 200 diff --git a/graphics/pokemon/palafin/shiny.pal b/graphics/pokemon/palafin/shiny.pal new file mode 100755 index 000000000000..ebdbf83aa98f --- /dev/null +++ b/graphics/pokemon/palafin/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +61 77 167 +118 138 252 +136 216 224 +79 100 235 +170 181 211 +208 236 240 +24 160 248 +16 16 16 +248 252 248 +74 229 145 +176 128 160 +240 164 216 +24 104 136 +128 212 240 +64 160 200 diff --git a/graphics/pokemon/passimian/anim_front.png b/graphics/pokemon/passimian/anim_front.png new file mode 100644 index 000000000000..c69fd6a2e4f6 Binary files /dev/null and b/graphics/pokemon/passimian/anim_front.png differ diff --git a/graphics/pokemon/passimian/back.png b/graphics/pokemon/passimian/back.png index e27f88bb02c3..93b992c84dd2 100644 Binary files a/graphics/pokemon/passimian/back.png and b/graphics/pokemon/passimian/back.png differ diff --git a/graphics/pokemon/passimian/front.png b/graphics/pokemon/passimian/front.png deleted file mode 100644 index 94ebe658c2b7..000000000000 Binary files a/graphics/pokemon/passimian/front.png and /dev/null differ diff --git a/graphics/pokemon/passimian/normal.pal b/graphics/pokemon/passimian/normal.pal index 26283bf52ef9..0b663aba0756 100644 --- a/graphics/pokemon/passimian/normal.pal +++ b/graphics/pokemon/passimian/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -56 48 32 -96 96 64 -16 16 16 -40 40 24 -24 200 80 -72 64 48 -248 248 248 -120 160 64 -184 224 104 -192 184 160 -240 128 24 -88 80 56 -248 216 0 +54 48 41 +89 83 76 +8 8 8 +238 238 238 248 248 248 +54 48 41 +82 76 70 +107 100 93 248 248 248 +186 186 186 +242 179 39 +197 222 95 +144 163 60 +255 255 0 +24 200 80 diff --git a/graphics/pokemon/passimian/shiny.pal b/graphics/pokemon/passimian/shiny.pal index 9b8f0f4a8fad..833f0df2fce3 100644 --- a/graphics/pokemon/passimian/shiny.pal +++ b/graphics/pokemon/passimian/shiny.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -64 48 32 -112 104 64 -16 16 16 -16 16 120 +14 47 132 +23 68 181 +8 8 8 +115 115 64 +22 70 181 +66 58 40 +91 81 61 +112 112 66 +248 248 248 +186 186 186 +248 248 248 +240 173 29 +156 110 12 +255 255 0 24 200 80 -80 64 48 -16 64 224 -152 64 24 -208 112 32 -192 184 160 -240 240 232 -8 48 216 -248 216 0 -248 240 216 -104 96 64 diff --git a/graphics/pokemon/pawmi/back.png b/graphics/pokemon/pawmi/back.png new file mode 100644 index 000000000000..c5d59e6677bf Binary files /dev/null and b/graphics/pokemon/pawmi/back.png differ diff --git a/graphics/pokemon/pawmi/front.png b/graphics/pokemon/pawmi/front.png new file mode 100644 index 000000000000..265a9c717318 Binary files /dev/null and b/graphics/pokemon/pawmi/front.png differ diff --git a/graphics/pokemon/pawmi/icon.png b/graphics/pokemon/pawmi/icon.png new file mode 100755 index 000000000000..a7fc302fe0fb Binary files /dev/null and b/graphics/pokemon/pawmi/icon.png differ diff --git a/graphics/pokemon/pawmi/normal.pal b/graphics/pokemon/pawmi/normal.pal new file mode 100644 index 000000000000..822fa530da4b --- /dev/null +++ b/graphics/pokemon/pawmi/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 210 164 +150 79 14 +243 156 78 +96 51 23 +126 114 71 +194 89 3 +189 162 115 +244 226 188 +15 15 15 +235 120 35 +46 116 82 +211 97 3 +52 52 65 +252 252 252 +197 164 98 +255 205 32 diff --git a/graphics/pokemon/pawmi/normal.png b/graphics/pokemon/pawmi/normal.png new file mode 100644 index 000000000000..85301260cf3d Binary files /dev/null and b/graphics/pokemon/pawmi/normal.png differ diff --git a/graphics/pokemon/pawmi/shiny.pal b/graphics/pokemon/pawmi/shiny.pal new file mode 100644 index 000000000000..02d4ae6d009c --- /dev/null +++ b/graphics/pokemon/pawmi/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 210 164 +220 58 50 +255 155 172 +96 51 23 +139 83 58 +194 89 3 +228 167 137 +244 226 188 +15 15 15 +255 119 147 +46 116 82 +237 82 82 +52 52 65 +252 252 252 +221 177 74 +255 205 32 diff --git a/graphics/pokemon/pawmo/back.png b/graphics/pokemon/pawmo/back.png new file mode 100644 index 000000000000..42d151758a25 Binary files /dev/null and b/graphics/pokemon/pawmo/back.png differ diff --git a/graphics/pokemon/pawmo/front.png b/graphics/pokemon/pawmo/front.png new file mode 100644 index 000000000000..9a0139605071 Binary files /dev/null and b/graphics/pokemon/pawmo/front.png differ diff --git a/graphics/pokemon/pawmo/icon.png b/graphics/pokemon/pawmo/icon.png new file mode 100755 index 000000000000..41cc6b4f9abb Binary files /dev/null and b/graphics/pokemon/pawmo/icon.png differ diff --git a/graphics/pokemon/pawmo/normal.pal b/graphics/pokemon/pawmo/normal.pal new file mode 100644 index 000000000000..8a6a2121c513 --- /dev/null +++ b/graphics/pokemon/pawmo/normal.pal @@ -0,0 +1,18 @@ +JASC-PAL +0100 +15 +152 208 160 +136 64 0 +0 0 0 +240 184 72 +16 104 96 +232 152 0 +0 160 144 +176 112 8 +248 232 184 +216 192 160 +88 64 48 +255 255 255 +240 208 56 +168 64 32 +232 72 56 diff --git a/graphics/pokemon/pawmo/shiny.pal b/graphics/pokemon/pawmo/shiny.pal new file mode 100644 index 000000000000..3022ea1e0470 --- /dev/null +++ b/graphics/pokemon/pawmo/shiny.pal @@ -0,0 +1,18 @@ +JASC-PAL +0100 +15 +152 208 160 +136 64 0 +0 0 0 +245 158 128 +16 104 96 +242 112 116 +0 186 182 +214 79 87 +248 232 184 +216 192 160 +88 64 48 +255 255 255 +240 208 56 +168 64 32 +232 72 56 diff --git a/graphics/pokemon/pawmot/back.png b/graphics/pokemon/pawmot/back.png new file mode 100755 index 000000000000..f9f54821b82b Binary files /dev/null and b/graphics/pokemon/pawmot/back.png differ diff --git a/graphics/pokemon/pawmot/front.png b/graphics/pokemon/pawmot/front.png new file mode 100755 index 000000000000..8b8ff519eab1 Binary files /dev/null and b/graphics/pokemon/pawmot/front.png differ diff --git a/graphics/pokemon/pawmot/icon.png b/graphics/pokemon/pawmot/icon.png new file mode 100755 index 000000000000..cc9d2e942a37 Binary files /dev/null and b/graphics/pokemon/pawmot/icon.png differ diff --git a/graphics/pokemon/pawmot/normal.pal b/graphics/pokemon/pawmot/normal.pal new file mode 100755 index 000000000000..97f160e2fd09 --- /dev/null +++ b/graphics/pokemon/pawmot/normal.pal @@ -0,0 +1,16 @@ +JASC-PAL +0100 +13 +154 212 167 +139 68 0 +180 113 3 +234 158 0 +8 8 8 +240 188 70 +7 105 99 +0 168 149 +87 63 45 +253 253 253 +247 213 57 +252 236 187 +223 195 167 diff --git a/graphics/pokemon/pawmot/shiny.pal b/graphics/pokemon/pawmot/shiny.pal new file mode 100755 index 000000000000..85c06403312d --- /dev/null +++ b/graphics/pokemon/pawmot/shiny.pal @@ -0,0 +1,16 @@ +JASC-PAL +0100 +13 +154 212 167 +167 42 61 +215 78 86 +242 113 117 +8 8 8 +245 159 129 +11 122 124 +0 187 183 +87 63 45 +253 253 253 +247 213 57 +252 236 187 +223 195 167 diff --git a/graphics/pokemon/pikachu/iconf.png b/graphics/pokemon/pikachu/iconf.png new file mode 100644 index 000000000000..22eeed0a4643 Binary files /dev/null and b/graphics/pokemon/pikachu/iconf.png differ diff --git a/graphics/pokemon/pikipek/anim_front.png b/graphics/pokemon/pikipek/anim_front.png new file mode 100644 index 000000000000..f7b765876cbb Binary files /dev/null and b/graphics/pokemon/pikipek/anim_front.png differ diff --git a/graphics/pokemon/pikipek/back.png b/graphics/pokemon/pikipek/back.png index 030eea3c14b8..2175a1f1830f 100644 Binary files a/graphics/pokemon/pikipek/back.png and b/graphics/pokemon/pikipek/back.png differ diff --git a/graphics/pokemon/pikipek/front.png b/graphics/pokemon/pikipek/front.png deleted file mode 100644 index a16e45512f03..000000000000 Binary files a/graphics/pokemon/pikipek/front.png and /dev/null differ diff --git a/graphics/pokemon/poltchageist/back.png b/graphics/pokemon/poltchageist/back.png new file mode 100644 index 000000000000..2eeaaa5617ef Binary files /dev/null and b/graphics/pokemon/poltchageist/back.png differ diff --git a/graphics/pokemon/poltchageist/front.png b/graphics/pokemon/poltchageist/front.png new file mode 100644 index 000000000000..d7a013e3de94 Binary files /dev/null and b/graphics/pokemon/poltchageist/front.png differ diff --git a/graphics/pokemon/poltchageist/icon.png b/graphics/pokemon/poltchageist/icon.png new file mode 100644 index 000000000000..6b686ad08d10 Binary files /dev/null and b/graphics/pokemon/poltchageist/icon.png differ diff --git a/graphics/pokemon/poltchageist/normal.pal b/graphics/pokemon/poltchageist/normal.pal new file mode 100644 index 000000000000..e4bc20fbbfa4 --- /dev/null +++ b/graphics/pokemon/poltchageist/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 210 164 +106 68 24 +90 157 74 +246 218 98 +32 24 24 +74 56 57 +255 255 255 +213 210 197 +164 149 82 +0 4 0 +123 198 98 +65 121 41 +164 186 115 +246 238 238 +156 153 131 +205 194 115 diff --git a/graphics/pokemon/poltchageist/shiny.pal b/graphics/pokemon/poltchageist/shiny.pal new file mode 100644 index 000000000000..44b3de645d7c --- /dev/null +++ b/graphics/pokemon/poltchageist/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 210 164 +106 68 24 +90 157 74 +246 218 98 +10 48 0 +32 88 15 +255 255 255 +213 210 197 +164 149 82 +0 4 0 +123 198 98 +65 121 41 +164 186 115 +246 238 238 +156 153 131 +205 194 115 diff --git a/graphics/pokemon/quaquaval/back.png b/graphics/pokemon/quaquaval/back.png new file mode 100644 index 000000000000..c5655c0b05fe Binary files /dev/null and b/graphics/pokemon/quaquaval/back.png differ diff --git a/graphics/pokemon/quaquaval/front.png b/graphics/pokemon/quaquaval/front.png new file mode 100644 index 000000000000..9b2fa64a858e Binary files /dev/null and b/graphics/pokemon/quaquaval/front.png differ diff --git a/graphics/pokemon/quaquaval/icon.png b/graphics/pokemon/quaquaval/icon.png new file mode 100755 index 000000000000..4e68d84ff478 Binary files /dev/null and b/graphics/pokemon/quaquaval/icon.png differ diff --git a/graphics/pokemon/quaquaval/normal.pal b/graphics/pokemon/quaquaval/normal.pal new file mode 100644 index 000000000000..6a7708643c49 --- /dev/null +++ b/graphics/pokemon/quaquaval/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 210 164 +0 120 112 +0 216 224 +0 0 0 +0 152 192 +40 56 144 +32 32 72 +232 248 248 +40 72 240 +96 56 16 +184 64 16 +248 64 0 +184 208 232 +248 168 32 +248 248 248 +224 120 24 diff --git a/graphics/pokemon/quaquaval/shiny.pal b/graphics/pokemon/quaquaval/shiny.pal new file mode 100644 index 000000000000..8cfb5b857f5c --- /dev/null +++ b/graphics/pokemon/quaquaval/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 210 164 +67 109 110 +173 224 225 +0 0 0 +107 197 199 +125 133 207 +71 75 118 +232 248 248 +156 162 222 +115 61 43 +200 88 40 +248 128 72 +184 208 232 +248 168 32 +248 248 248 +224 120 24 diff --git a/graphics/pokemon/quaxly/back.png b/graphics/pokemon/quaxly/back.png new file mode 100644 index 000000000000..2dd6800ebb11 Binary files /dev/null and b/graphics/pokemon/quaxly/back.png differ diff --git a/graphics/pokemon/quaxly/front.png b/graphics/pokemon/quaxly/front.png new file mode 100644 index 000000000000..0148e5badf0b Binary files /dev/null and b/graphics/pokemon/quaxly/front.png differ diff --git a/graphics/pokemon/quaxly/icon.png b/graphics/pokemon/quaxly/icon.png new file mode 100755 index 000000000000..403695744593 Binary files /dev/null and b/graphics/pokemon/quaxly/icon.png differ diff --git a/graphics/pokemon/quaxly/normal.pal b/graphics/pokemon/quaxly/normal.pal new file mode 100644 index 000000000000..b58467e0ac9a --- /dev/null +++ b/graphics/pokemon/quaxly/normal.pal @@ -0,0 +1,17 @@ +JASC-PAL +0100 +14 +153 210 164 +31 89 120 +54 134 177 +47 190 232 +132 215 255 +15 15 15 +246 251 252 +77 99 115 +190 205 228 +0 91 162 +121 153 189 +106 106 65 +172 164 98 +246 246 74 diff --git a/graphics/pokemon/quaxly/shiny.pal b/graphics/pokemon/quaxly/shiny.pal new file mode 100644 index 000000000000..648094baf0b5 --- /dev/null +++ b/graphics/pokemon/quaxly/shiny.pal @@ -0,0 +1,17 @@ +JASC-PAL +0100 +14 +153 210 164 +31 89 120 +48 169 112 +73 224 149 +132 215 255 +15 15 15 +246 251 252 +77 99 115 +190 205 228 +0 91 162 +121 153 189 +106 106 65 +172 164 98 +246 246 74 diff --git a/graphics/pokemon/quaxwell/back.png b/graphics/pokemon/quaxwell/back.png new file mode 100644 index 000000000000..f6485a6904fa Binary files /dev/null and b/graphics/pokemon/quaxwell/back.png differ diff --git a/graphics/pokemon/quaxwell/front.png b/graphics/pokemon/quaxwell/front.png new file mode 100644 index 000000000000..fe58dd317144 Binary files /dev/null and b/graphics/pokemon/quaxwell/front.png differ diff --git a/graphics/pokemon/quaxwell/icon.png b/graphics/pokemon/quaxwell/icon.png new file mode 100755 index 000000000000..3806542c0900 Binary files /dev/null and b/graphics/pokemon/quaxwell/icon.png differ diff --git a/graphics/pokemon/quaxwell/normal.pal b/graphics/pokemon/quaxwell/normal.pal new file mode 100644 index 000000000000..96e6f9ee7e66 --- /dev/null +++ b/graphics/pokemon/quaxwell/normal.pal @@ -0,0 +1,17 @@ +JASC-PAL +0100 +14 +120 208 152 +0 96 168 +0 48 88 +0 136 224 +0 80 56 +0 208 184 +0 0 0 +0 152 120 +200 152 0 +136 96 0 +248 216 80 +248 248 248 +80 128 152 +168 192 208 diff --git a/graphics/pokemon/quaxwell/shiny.pal b/graphics/pokemon/quaxwell/shiny.pal new file mode 100644 index 000000000000..2d76e1631d74 --- /dev/null +++ b/graphics/pokemon/quaxwell/shiny.pal @@ -0,0 +1,17 @@ +JASC-PAL +0100 +14 +120 208 152 +0 192 176 +0 48 88 +0 248 232 +0 80 56 +48 120 224 +0 0 0 +40 64 216 +200 152 0 +136 96 0 +248 216 80 +248 248 248 +80 128 152 +168 192 208 diff --git a/graphics/pokemon/rabsca/back.png b/graphics/pokemon/rabsca/back.png new file mode 100644 index 000000000000..9fea6d557a3d Binary files /dev/null and b/graphics/pokemon/rabsca/back.png differ diff --git a/graphics/pokemon/rabsca/front.png b/graphics/pokemon/rabsca/front.png new file mode 100644 index 000000000000..becbd23ed178 Binary files /dev/null and b/graphics/pokemon/rabsca/front.png differ diff --git a/graphics/pokemon/rabsca/icon.png b/graphics/pokemon/rabsca/icon.png new file mode 100755 index 000000000000..57c93e30a398 Binary files /dev/null and b/graphics/pokemon/rabsca/icon.png differ diff --git a/graphics/pokemon/rabsca/normal.pal b/graphics/pokemon/rabsca/normal.pal new file mode 100644 index 000000000000..6935e5a6154e --- /dev/null +++ b/graphics/pokemon/rabsca/normal.pal @@ -0,0 +1,18 @@ +JASC-PAL +0100 +15 +153 210 164 +117 0 130 +171 14 171 +227 16 251 +194 36 97 +154 27 72 +247 57 131 +248 248 248 +152 151 157 +63 79 92 +76 133 164 +24 24 24 +107 192 221 +106 32 39 +201 76 90 diff --git a/graphics/pokemon/rabsca/shiny.pal b/graphics/pokemon/rabsca/shiny.pal new file mode 100644 index 000000000000..d3f26a3e9346 --- /dev/null +++ b/graphics/pokemon/rabsca/shiny.pal @@ -0,0 +1,18 @@ +JASC-PAL +0100 +15 +153 210 164 +117 0 130 +171 14 171 +227 16 251 +194 36 97 +154 27 72 +247 57 131 +248 248 248 +152 151 157 +63 79 92 +204 174 41 +24 24 24 +249 240 73 +106 32 39 +201 76 90 diff --git a/graphics/pokemon/rellor/back.png b/graphics/pokemon/rellor/back.png new file mode 100644 index 000000000000..fee002433840 Binary files /dev/null and b/graphics/pokemon/rellor/back.png differ diff --git a/graphics/pokemon/rellor/front.png b/graphics/pokemon/rellor/front.png new file mode 100644 index 000000000000..c87d798d8e54 Binary files /dev/null and b/graphics/pokemon/rellor/front.png differ diff --git a/graphics/pokemon/rellor/icon.png b/graphics/pokemon/rellor/icon.png new file mode 100755 index 000000000000..56ea140347db Binary files /dev/null and b/graphics/pokemon/rellor/icon.png differ diff --git a/graphics/pokemon/rellor/normal.pal b/graphics/pokemon/rellor/normal.pal new file mode 100644 index 000000000000..abe74d5ded74 --- /dev/null +++ b/graphics/pokemon/rellor/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 210 164 +246 242 246 +115 97 74 +180 68 148 +49 48 41 +148 198 156 +164 141 131 +197 182 172 +189 109 32 +0 0 0 +180 165 98 +156 133 98 +82 80 65 +123 125 106 +246 133 32 +90 76 49 diff --git a/graphics/pokemon/rellor/shiny.pal b/graphics/pokemon/rellor/shiny.pal new file mode 100644 index 000000000000..f282be4048e0 --- /dev/null +++ b/graphics/pokemon/rellor/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 210 164 +246 242 246 +215 179 36 +82 109 157 +49 48 41 +148 198 156 +214 179 36 +241 243 37 +214 179 36 +0 0 0 +180 165 98 +249 248 87 +82 80 65 +123 125 106 +241 243 37 +174 118 9 diff --git a/graphics/pokemon/revavroom/back.png b/graphics/pokemon/revavroom/back.png new file mode 100644 index 000000000000..127fea4b7162 Binary files /dev/null and b/graphics/pokemon/revavroom/back.png differ diff --git a/graphics/pokemon/revavroom/front.png b/graphics/pokemon/revavroom/front.png new file mode 100644 index 000000000000..486326c54594 Binary files /dev/null and b/graphics/pokemon/revavroom/front.png differ diff --git a/graphics/pokemon/revavroom/icon.png b/graphics/pokemon/revavroom/icon.png new file mode 100755 index 000000000000..8d3a2ee0cc9f Binary files /dev/null and b/graphics/pokemon/revavroom/icon.png differ diff --git a/graphics/pokemon/revavroom/normal.pal b/graphics/pokemon/revavroom/normal.pal new file mode 100644 index 000000000000..9625234e1b68 --- /dev/null +++ b/graphics/pokemon/revavroom/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 211 165 +55 51 69 +29 28 41 +133 128 138 +96 90 105 +16 16 16 +31 33 43 +118 127 148 +91 63 128 +49 34 84 +153 107 189 +207 213 219 +58 63 76 +247 251 255 +255 237 37 +232 176 52 diff --git a/graphics/pokemon/revavroom/shiny.pal b/graphics/pokemon/revavroom/shiny.pal new file mode 100644 index 000000000000..ed4463941ac6 --- /dev/null +++ b/graphics/pokemon/revavroom/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 211 165 +55 51 69 +29 28 41 +133 128 138 +96 90 105 +16 16 16 +31 33 43 +158 122 73 +91 63 128 +49 34 84 +153 107 189 +234 200 106 +58 63 76 +247 251 255 +237 142 178 +217 101 163 diff --git a/graphics/pokemon/ribombee/anim_front.png b/graphics/pokemon/ribombee/anim_front.png new file mode 100644 index 000000000000..fb1c5ad41ac4 Binary files /dev/null and b/graphics/pokemon/ribombee/anim_front.png differ diff --git a/graphics/pokemon/ribombee/front.png b/graphics/pokemon/ribombee/front.png deleted file mode 100644 index 77a4dd1497f3..000000000000 Binary files a/graphics/pokemon/ribombee/front.png and /dev/null differ diff --git a/graphics/pokemon/roaring_moon/back.png b/graphics/pokemon/roaring_moon/back.png new file mode 100644 index 000000000000..01813ff4f991 Binary files /dev/null and b/graphics/pokemon/roaring_moon/back.png differ diff --git a/graphics/pokemon/roaring_moon/front.png b/graphics/pokemon/roaring_moon/front.png new file mode 100644 index 000000000000..c1a8a05f06d4 Binary files /dev/null and b/graphics/pokemon/roaring_moon/front.png differ diff --git a/graphics/pokemon/roaring_moon/icon.png b/graphics/pokemon/roaring_moon/icon.png new file mode 100755 index 000000000000..d8d82fb0157c Binary files /dev/null and b/graphics/pokemon/roaring_moon/icon.png differ diff --git a/graphics/pokemon/roaring_moon/normal.pal b/graphics/pokemon/roaring_moon/normal.pal new file mode 100644 index 000000000000..2deb54105004 --- /dev/null +++ b/graphics/pokemon/roaring_moon/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 210 164 +39 88 94 +96 231 236 +60 137 171 +0 0 0 +185 107 230 +105 17 39 +214 38 82 +162 27 60 +129 100 179 +105 105 105 +171 171 171 +247 247 247 +247 165 42 +251 236 49 +52 49 49 diff --git a/graphics/pokemon/roaring_moon/shiny.pal b/graphics/pokemon/roaring_moon/shiny.pal new file mode 100644 index 000000000000..42fb2538d7be --- /dev/null +++ b/graphics/pokemon/roaring_moon/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 210 164 +62 125 78 +151 235 188 +86 180 117 +0 0 0 +223 213 113 +105 17 39 +245 62 68 +181 36 39 +174 162 85 +105 105 105 +171 171 171 +247 247 247 +247 165 42 +251 236 49 +52 49 49 diff --git a/graphics/pokemon/rockruff/anim_front.png b/graphics/pokemon/rockruff/anim_front.png new file mode 100644 index 000000000000..d806387c61c6 Binary files /dev/null and b/graphics/pokemon/rockruff/anim_front.png differ diff --git a/graphics/pokemon/rockruff/front.png b/graphics/pokemon/rockruff/front.png deleted file mode 100644 index 1199fbb592f9..000000000000 Binary files a/graphics/pokemon/rockruff/front.png and /dev/null differ diff --git a/graphics/pokemon/rowlet/anim_front.png b/graphics/pokemon/rowlet/anim_front.png new file mode 100644 index 000000000000..eea15ffec133 Binary files /dev/null and b/graphics/pokemon/rowlet/anim_front.png differ diff --git a/graphics/pokemon/rowlet/front.png b/graphics/pokemon/rowlet/front.png deleted file mode 100644 index 55953244eca0..000000000000 Binary files a/graphics/pokemon/rowlet/front.png and /dev/null differ diff --git a/graphics/pokemon/sandy_shocks/back.png b/graphics/pokemon/sandy_shocks/back.png new file mode 100644 index 000000000000..2ee0ab030cfa Binary files /dev/null and b/graphics/pokemon/sandy_shocks/back.png differ diff --git a/graphics/pokemon/sandy_shocks/front.png b/graphics/pokemon/sandy_shocks/front.png new file mode 100644 index 000000000000..95b0124a6c20 Binary files /dev/null and b/graphics/pokemon/sandy_shocks/front.png differ diff --git a/graphics/pokemon/sandy_shocks/icon.png b/graphics/pokemon/sandy_shocks/icon.png new file mode 100755 index 000000000000..99d693a1ac35 Binary files /dev/null and b/graphics/pokemon/sandy_shocks/icon.png differ diff --git a/graphics/pokemon/sandy_shocks/normal.pal b/graphics/pokemon/sandy_shocks/normal.pal new file mode 100644 index 000000000000..4b0c513bd9aa --- /dev/null +++ b/graphics/pokemon/sandy_shocks/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 210 164 +238 24 0 +213 170 57 +213 246 222 +180 214 189 +180 182 180 +115 101 131 +41 36 32 +139 182 164 +90 93 90 +139 137 139 +41 129 172 +57 48 49 +255 222 90 +0 0 0 +90 129 98 diff --git a/graphics/pokemon/sandy_shocks/shiny.pal b/graphics/pokemon/sandy_shocks/shiny.pal new file mode 100644 index 000000000000..6a89c90cc426 --- /dev/null +++ b/graphics/pokemon/sandy_shocks/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 210 164 +238 24 0 +213 170 57 +255 248 179 +184 179 120 +180 182 180 +115 101 131 +41 36 32 +212 179 120 +90 93 90 +139 137 139 +41 129 172 +57 48 49 +255 222 90 +0 0 0 +153 137 87 diff --git a/graphics/pokemon/scovillain/back.png b/graphics/pokemon/scovillain/back.png new file mode 100644 index 000000000000..b61864b22e0b Binary files /dev/null and b/graphics/pokemon/scovillain/back.png differ diff --git a/graphics/pokemon/scovillain/front.png b/graphics/pokemon/scovillain/front.png new file mode 100644 index 000000000000..bed003463d37 Binary files /dev/null and b/graphics/pokemon/scovillain/front.png differ diff --git a/graphics/pokemon/scovillain/icon.png b/graphics/pokemon/scovillain/icon.png new file mode 100755 index 000000000000..f346a1cb48e6 Binary files /dev/null and b/graphics/pokemon/scovillain/icon.png differ diff --git a/graphics/pokemon/scovillain/normal.pal b/graphics/pokemon/scovillain/normal.pal new file mode 100644 index 000000000000..6d6808d9e4fc --- /dev/null +++ b/graphics/pokemon/scovillain/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +16 104 40 +16 16 16 +80 192 72 +120 248 96 +136 32 24 +0 72 24 +240 72 40 +16 152 72 +248 136 80 +248 248 248 +248 152 40 +0 40 32 +0 72 48 +16 104 48 +0 64 40 diff --git a/graphics/pokemon/scovillain/shiny.pal b/graphics/pokemon/scovillain/shiny.pal new file mode 100644 index 000000000000..f43675df1508 --- /dev/null +++ b/graphics/pokemon/scovillain/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +16 104 40 +16 16 16 +80 192 72 +120 248 96 +136 32 24 +120 96 40 +240 72 40 +248 232 152 +248 136 80 +248 248 248 +248 152 40 +16 40 96 +24 72 128 +40 112 152 +240 240 240 diff --git a/graphics/pokemon/scream_tail/back.png b/graphics/pokemon/scream_tail/back.png new file mode 100644 index 000000000000..a0607a0e1546 Binary files /dev/null and b/graphics/pokemon/scream_tail/back.png differ diff --git a/graphics/pokemon/scream_tail/front.png b/graphics/pokemon/scream_tail/front.png new file mode 100644 index 000000000000..2d320fd0d45f Binary files /dev/null and b/graphics/pokemon/scream_tail/front.png differ diff --git a/graphics/pokemon/scream_tail/icon.png b/graphics/pokemon/scream_tail/icon.png new file mode 100755 index 000000000000..09ca4083ecdd Binary files /dev/null and b/graphics/pokemon/scream_tail/icon.png differ diff --git a/graphics/pokemon/scream_tail/normal.pal b/graphics/pokemon/scream_tail/normal.pal new file mode 100644 index 000000000000..bedc2d2abf56 --- /dev/null +++ b/graphics/pokemon/scream_tail/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 211 165 +108 45 45 +0 0 0 +246 144 164 +251 188 201 +173 92 108 +136 64 64 +238 95 124 +186 81 102 +48 34 34 +255 121 163 +255 255 255 +200 184 248 +140 117 33 +203 174 40 +255 220 50 diff --git a/graphics/pokemon/scream_tail/shiny.pal b/graphics/pokemon/scream_tail/shiny.pal new file mode 100644 index 000000000000..21e95217d4f6 --- /dev/null +++ b/graphics/pokemon/scream_tail/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 211 165 +105 45 108 +0 0 0 +229 148 224 +246 203 246 +176 83 153 +136 64 132 +211 74 189 +158 78 154 +48 34 34 +255 121 163 +255 255 255 +200 184 248 +149 52 52 +202 67 95 +237 94 83 diff --git a/graphics/pokemon/shroodle/back.png b/graphics/pokemon/shroodle/back.png new file mode 100755 index 000000000000..ffecfe183c73 Binary files /dev/null and b/graphics/pokemon/shroodle/back.png differ diff --git a/graphics/pokemon/shroodle/front.png b/graphics/pokemon/shroodle/front.png new file mode 100755 index 000000000000..38dac9194a00 Binary files /dev/null and b/graphics/pokemon/shroodle/front.png differ diff --git a/graphics/pokemon/shroodle/icon.png b/graphics/pokemon/shroodle/icon.png new file mode 100755 index 000000000000..1e7a9430d80f Binary files /dev/null and b/graphics/pokemon/shroodle/icon.png differ diff --git a/graphics/pokemon/shroodle/normal.pal b/graphics/pokemon/shroodle/normal.pal new file mode 100755 index 000000000000..700c1f4c9fc9 --- /dev/null +++ b/graphics/pokemon/shroodle/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +96 88 88 +232 236 200 +16 16 16 +176 168 136 +64 76 104 +72 60 56 +48 36 40 +128 156 168 +152 208 176 +96 108 136 +248 252 248 +216 236 192 +184 176 184 +160 112 224 +0 0 0 diff --git a/graphics/pokemon/shroodle/shiny.pal b/graphics/pokemon/shroodle/shiny.pal new file mode 100755 index 000000000000..bb3f9a6a7da9 --- /dev/null +++ b/graphics/pokemon/shroodle/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +96 88 88 +232 236 200 +16 16 16 +176 168 136 +64 76 104 +72 60 56 +48 36 40 +128 156 168 +168 168 224 +96 108 136 +248 252 248 +208 200 248 +184 176 184 +160 112 224 +0 0 0 diff --git a/graphics/pokemon/sinistcha/back.png b/graphics/pokemon/sinistcha/back.png new file mode 100644 index 000000000000..dbb51bbf33b6 Binary files /dev/null and b/graphics/pokemon/sinistcha/back.png differ diff --git a/graphics/pokemon/sinistcha/front.png b/graphics/pokemon/sinistcha/front.png new file mode 100644 index 000000000000..4131a22b9f68 Binary files /dev/null and b/graphics/pokemon/sinistcha/front.png differ diff --git a/graphics/pokemon/sinistcha/icon.png b/graphics/pokemon/sinistcha/icon.png new file mode 100644 index 000000000000..74fc0b2643bf Binary files /dev/null and b/graphics/pokemon/sinistcha/icon.png differ diff --git a/graphics/pokemon/sinistcha/normal.pal b/graphics/pokemon/sinistcha/normal.pal new file mode 100644 index 000000000000..16008ccdf13c --- /dev/null +++ b/graphics/pokemon/sinistcha/normal.pal @@ -0,0 +1,18 @@ +JASC-PAL +0100 +15 +115 197 164 +76 58 58 +105 68 27 +147 138 68 +159 153 130 +219 210 145 +167 186 114 +45 33 33 +51 99 34 +93 158 74 +120 196 99 +247 215 98 +5 5 5 +208 210 193 +241 237 235 diff --git a/graphics/pokemon/sinistcha/shiny.pal b/graphics/pokemon/sinistcha/shiny.pal new file mode 100644 index 000000000000..c769e9d1a11f --- /dev/null +++ b/graphics/pokemon/sinistcha/shiny.pal @@ -0,0 +1,18 @@ +JASC-PAL +0100 +15 +115 197 164 +32 88 15 +105 68 27 +147 138 68 +159 153 130 +219 210 145 +167 186 114 +45 33 33 +51 99 34 +93 158 74 +120 196 99 +247 215 98 +5 5 5 +208 210 193 +241 237 235 diff --git a/graphics/pokemon/skeledirge/back.png b/graphics/pokemon/skeledirge/back.png new file mode 100644 index 000000000000..6471ffe6c221 Binary files /dev/null and b/graphics/pokemon/skeledirge/back.png differ diff --git a/graphics/pokemon/skeledirge/front.png b/graphics/pokemon/skeledirge/front.png new file mode 100644 index 000000000000..cf238da1789c Binary files /dev/null and b/graphics/pokemon/skeledirge/front.png differ diff --git a/graphics/pokemon/skeledirge/icon.png b/graphics/pokemon/skeledirge/icon.png new file mode 100755 index 000000000000..901aab95d9ad Binary files /dev/null and b/graphics/pokemon/skeledirge/icon.png differ diff --git a/graphics/pokemon/skeledirge/normal.pal b/graphics/pokemon/skeledirge/normal.pal new file mode 100644 index 000000000000..fbb60828f945 --- /dev/null +++ b/graphics/pokemon/skeledirge/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 210 164 +132 121 129 +255 70 0 +248 248 240 +255 177 0 +215 193 202 +254 233 0 +255 129 0 +53 53 53 +122 7 63 +214 35 26 +255 44 35 +0 0 0 +187 26 205 +26 26 26 +79 79 79 diff --git a/graphics/pokemon/skeledirge/shiny.pal b/graphics/pokemon/skeledirge/shiny.pal new file mode 100644 index 000000000000..4354f676d324 --- /dev/null +++ b/graphics/pokemon/skeledirge/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 210 164 +132 121 129 +255 70 0 +248 248 240 +255 177 0 +215 193 202 +254 233 0 +255 129 0 +53 53 53 +122 7 63 +186 44 106 +247 87 139 +0 0 0 +187 26 205 +26 26 26 +79 79 79 diff --git a/graphics/pokemon/slither_wing/back.png b/graphics/pokemon/slither_wing/back.png new file mode 100644 index 000000000000..cfa4c99d751a Binary files /dev/null and b/graphics/pokemon/slither_wing/back.png differ diff --git a/graphics/pokemon/slither_wing/front.png b/graphics/pokemon/slither_wing/front.png new file mode 100644 index 000000000000..d3c1e659690a Binary files /dev/null and b/graphics/pokemon/slither_wing/front.png differ diff --git a/graphics/pokemon/slither_wing/icon.png b/graphics/pokemon/slither_wing/icon.png new file mode 100755 index 000000000000..e969280a5ded Binary files /dev/null and b/graphics/pokemon/slither_wing/icon.png differ diff --git a/graphics/pokemon/slither_wing/normal.pal b/graphics/pokemon/slither_wing/normal.pal new file mode 100644 index 000000000000..a083030d3f08 --- /dev/null +++ b/graphics/pokemon/slither_wing/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 210 164 +156 222 24 +172 170 172 +172 52 49 +49 157 139 +49 56 74 +246 246 246 +238 210 98 +213 255 115 +123 32 0 +222 161 57 +24 24 32 +246 64 49 +65 80 115 +230 52 41 +255 48 32 diff --git a/graphics/pokemon/slither_wing/shiny.pal b/graphics/pokemon/slither_wing/shiny.pal new file mode 100644 index 000000000000..2cf5898f9590 --- /dev/null +++ b/graphics/pokemon/slither_wing/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 210 164 +255 49 33 +172 170 172 +191 148 19 +49 157 139 +49 56 74 +246 246 246 +255 229 113 +255 96 84 +153 119 15 +236 200 73 +24 24 32 +217 171 33 +65 80 115 +230 52 41 +255 48 32 diff --git a/graphics/pokemon/smoliv/back.png b/graphics/pokemon/smoliv/back.png new file mode 100755 index 000000000000..1b1ac3e6817c Binary files /dev/null and b/graphics/pokemon/smoliv/back.png differ diff --git a/graphics/pokemon/smoliv/front.png b/graphics/pokemon/smoliv/front.png new file mode 100755 index 000000000000..42457fdf5baa Binary files /dev/null and b/graphics/pokemon/smoliv/front.png differ diff --git a/graphics/pokemon/smoliv/icon.png b/graphics/pokemon/smoliv/icon.png new file mode 100755 index 000000000000..53b8ffc9456f Binary files /dev/null and b/graphics/pokemon/smoliv/icon.png differ diff --git a/graphics/pokemon/smoliv/normal.pal b/graphics/pokemon/smoliv/normal.pal new file mode 100755 index 000000000000..4a748c1b5c5b --- /dev/null +++ b/graphics/pokemon/smoliv/normal.pal @@ -0,0 +1,17 @@ +JASC-PAL +0100 +14 +154 212 167 +119 94 27 +183 167 80 +223 215 109 +246 240 148 +8 8 8 +43 108 42 +120 181 63 +96 146 64 +114 132 41 +142 171 58 +201 221 91 +238 234 136 +242 242 242 diff --git a/graphics/pokemon/smoliv/shiny.pal b/graphics/pokemon/smoliv/shiny.pal new file mode 100755 index 000000000000..7b86219a392a --- /dev/null +++ b/graphics/pokemon/smoliv/shiny.pal @@ -0,0 +1,17 @@ +JASC-PAL +0100 +14 +154 212 167 +35 18 51 +54 41 63 +89 76 95 +128 115 134 +8 8 8 +43 108 42 +120 181 63 +96 146 64 +114 132 41 +172 174 55 +224 213 87 +240 211 134 +242 242 242 diff --git a/graphics/pokemon/spidops/back.png b/graphics/pokemon/spidops/back.png new file mode 100644 index 000000000000..6a2a3077e934 Binary files /dev/null and b/graphics/pokemon/spidops/back.png differ diff --git a/graphics/pokemon/spidops/front.png b/graphics/pokemon/spidops/front.png new file mode 100644 index 000000000000..944a9110703b Binary files /dev/null and b/graphics/pokemon/spidops/front.png differ diff --git a/graphics/pokemon/spidops/icon.png b/graphics/pokemon/spidops/icon.png new file mode 100755 index 000000000000..c35aa36c61a8 Binary files /dev/null and b/graphics/pokemon/spidops/icon.png differ diff --git a/graphics/pokemon/spidops/normal.pal b/graphics/pokemon/spidops/normal.pal new file mode 100644 index 000000000000..4076c82e1adb --- /dev/null +++ b/graphics/pokemon/spidops/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +24 64 8 +152 200 40 +248 248 248 +72 120 16 +16 16 16 +224 240 112 +80 40 16 +184 136 56 +56 48 80 +144 136 152 +120 80 32 +224 192 112 +80 80 104 +152 160 184 +248 248 248 diff --git a/graphics/pokemon/spidops/shiny.pal b/graphics/pokemon/spidops/shiny.pal new file mode 100644 index 000000000000..5c6fa758dfba --- /dev/null +++ b/graphics/pokemon/spidops/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +112 32 96 +248 120 192 +240 40 48 +176 72 152 +16 16 16 +248 176 208 +32 24 64 +72 80 144 +56 48 80 +144 136 152 +48 48 96 +136 152 192 +96 8 40 +152 24 40 +248 248 248 diff --git a/graphics/pokemon/sprigatito/back.png b/graphics/pokemon/sprigatito/back.png new file mode 100644 index 000000000000..61a03040cc65 Binary files /dev/null and b/graphics/pokemon/sprigatito/back.png differ diff --git a/graphics/pokemon/sprigatito/front.png b/graphics/pokemon/sprigatito/front.png new file mode 100644 index 000000000000..f897380ed808 Binary files /dev/null and b/graphics/pokemon/sprigatito/front.png differ diff --git a/graphics/pokemon/sprigatito/icon.png b/graphics/pokemon/sprigatito/icon.png new file mode 100755 index 000000000000..114fcff288cf Binary files /dev/null and b/graphics/pokemon/sprigatito/icon.png differ diff --git a/graphics/pokemon/sprigatito/normal.pal b/graphics/pokemon/sprigatito/normal.pal new file mode 100644 index 000000000000..22667a18d721 --- /dev/null +++ b/graphics/pokemon/sprigatito/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 210 164 +0 101 49 +63 177 33 +6 6 6 +166 185 142 +0 129 52 +107 138 59 +204 232 185 +68 85 57 +171 211 86 +252 252 252 +220 48 126 +225 112 181 +45 45 45 +155 92 114 +229 142 166 diff --git a/graphics/pokemon/sprigatito/shiny.pal b/graphics/pokemon/sprigatito/shiny.pal new file mode 100644 index 000000000000..b73b81749cdb --- /dev/null +++ b/graphics/pokemon/sprigatito/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 210 164 +0 101 49 +0 206 111 +6 6 6 +152 200 91 +12 144 89 +107 138 59 +211 252 128 +68 85 57 +171 211 86 +252 252 252 +151 80 211 +210 138 241 +45 45 45 +155 92 114 +229 142 166 diff --git a/graphics/pokemon/sprigatito/sprigatito.png b/graphics/pokemon/sprigatito/sprigatito.png new file mode 100755 index 000000000000..04ed46aef280 Binary files /dev/null and b/graphics/pokemon/sprigatito/sprigatito.png differ diff --git a/graphics/pokemon/squawkabilly/back.png b/graphics/pokemon/squawkabilly/back.png new file mode 100644 index 000000000000..73c3df2d9a8b Binary files /dev/null and b/graphics/pokemon/squawkabilly/back.png differ diff --git a/graphics/pokemon/squawkabilly/blue_plumage/icon.png b/graphics/pokemon/squawkabilly/blue_plumage/icon.png new file mode 100755 index 000000000000..4ad732211ca6 Binary files /dev/null and b/graphics/pokemon/squawkabilly/blue_plumage/icon.png differ diff --git a/graphics/pokemon/squawkabilly/blue_plumage/normal.pal b/graphics/pokemon/squawkabilly/blue_plumage/normal.pal new file mode 100644 index 000000000000..3e2cbb1bede3 --- /dev/null +++ b/graphics/pokemon/squawkabilly/blue_plumage/normal.pal @@ -0,0 +1,18 @@ +JASC-PAL +0100 +15 +153 211 165 +63 62 69 +82 88 90 +16 16 16 +49 162 228 +30 79 113 +212 204 208 +42 126 176 +197 142 49 +255 231 166 +255 193 69 +253 253 253 +244 244 244 +148 95 31 +196 163 114 diff --git a/graphics/pokemon/squawkabilly/blue_plumage/shiny.pal b/graphics/pokemon/squawkabilly/blue_plumage/shiny.pal new file mode 100644 index 000000000000..2a2e3e6b18fe --- /dev/null +++ b/graphics/pokemon/squawkabilly/blue_plumage/shiny.pal @@ -0,0 +1,18 @@ +JASC-PAL +0100 +15 +153 211 165 +154 107 113 +203 154 162 +16 16 16 +49 162 228 +30 79 113 +212 204 208 +42 126 176 +201 145 129 +255 231 225 +246 196 181 +253 253 253 +244 244 244 +148 95 31 +196 163 114 diff --git a/graphics/pokemon/squawkabilly/front.png b/graphics/pokemon/squawkabilly/front.png new file mode 100644 index 000000000000..734cc54ef4ee Binary files /dev/null and b/graphics/pokemon/squawkabilly/front.png differ diff --git a/graphics/pokemon/squawkabilly/green_plumage/icon.png b/graphics/pokemon/squawkabilly/green_plumage/icon.png new file mode 100755 index 000000000000..540b7521a82f Binary files /dev/null and b/graphics/pokemon/squawkabilly/green_plumage/icon.png differ diff --git a/graphics/pokemon/squawkabilly/green_plumage/normal.pal b/graphics/pokemon/squawkabilly/green_plumage/normal.pal new file mode 100644 index 000000000000..191b1c0526e5 --- /dev/null +++ b/graphics/pokemon/squawkabilly/green_plumage/normal.pal @@ -0,0 +1,18 @@ +JASC-PAL +0100 +15 +153 211 165 +63 62 69 +82 88 90 +16 16 16 +112 213 77 +46 114 37 +212 204 208 +92 168 65 +197 142 49 +255 231 166 +255 193 69 +253 253 253 +244 244 244 +148 95 31 +196 163 114 diff --git a/graphics/pokemon/squawkabilly/green_plumage/shiny.pal b/graphics/pokemon/squawkabilly/green_plumage/shiny.pal new file mode 100644 index 000000000000..6d574415a459 --- /dev/null +++ b/graphics/pokemon/squawkabilly/green_plumage/shiny.pal @@ -0,0 +1,18 @@ +JASC-PAL +0100 +15 +153 211 165 +154 107 113 +203 154 162 +16 16 16 +112 213 77 +46 114 37 +212 204 208 +92 168 65 +201 145 129 +255 231 225 +246 196 181 +253 253 253 +244 244 244 +148 95 31 +196 163 114 diff --git a/graphics/pokemon/squawkabilly/white_plumage/icon.png b/graphics/pokemon/squawkabilly/white_plumage/icon.png new file mode 100755 index 000000000000..a784c6cddad2 Binary files /dev/null and b/graphics/pokemon/squawkabilly/white_plumage/icon.png differ diff --git a/graphics/pokemon/squawkabilly/white_plumage/normal.pal b/graphics/pokemon/squawkabilly/white_plumage/normal.pal new file mode 100644 index 000000000000..b23d3404a03e --- /dev/null +++ b/graphics/pokemon/squawkabilly/white_plumage/normal.pal @@ -0,0 +1,18 @@ +JASC-PAL +0100 +15 +153 211 165 +63 62 69 +82 88 90 +16 16 16 +217 217 217 +121 112 115 +212 204 208 +184 173 175 +197 142 49 +255 231 166 +255 193 69 +253 253 253 +244 244 244 +148 95 31 +196 163 114 diff --git a/graphics/pokemon/squawkabilly/white_plumage/shiny.pal b/graphics/pokemon/squawkabilly/white_plumage/shiny.pal new file mode 100644 index 000000000000..c747e272fc85 --- /dev/null +++ b/graphics/pokemon/squawkabilly/white_plumage/shiny.pal @@ -0,0 +1,18 @@ +JASC-PAL +0100 +15 +153 211 165 +154 107 113 +203 154 162 +16 16 16 +217 217 217 +121 112 115 +212 204 208 +184 173 175 +201 145 129 +255 231 225 +246 196 181 +253 253 253 +244 244 244 +148 95 31 +196 163 114 diff --git a/graphics/pokemon/squawkabilly/yellow_plumage/icon.png b/graphics/pokemon/squawkabilly/yellow_plumage/icon.png new file mode 100755 index 000000000000..a042d981d06d Binary files /dev/null and b/graphics/pokemon/squawkabilly/yellow_plumage/icon.png differ diff --git a/graphics/pokemon/squawkabilly/yellow_plumage/normal.pal b/graphics/pokemon/squawkabilly/yellow_plumage/normal.pal new file mode 100644 index 000000000000..f6b949ee7c4a --- /dev/null +++ b/graphics/pokemon/squawkabilly/yellow_plumage/normal.pal @@ -0,0 +1,18 @@ +JASC-PAL +0100 +15 +153 211 165 +63 62 69 +82 88 90 +16 16 16 +255 221 60 +140 109 41 +212 204 208 +200 167 49 +197 142 49 +255 231 166 +255 193 69 +253 253 253 +244 244 244 +148 95 31 +196 163 114 diff --git a/graphics/pokemon/squawkabilly/yellow_plumage/shiny.pal b/graphics/pokemon/squawkabilly/yellow_plumage/shiny.pal new file mode 100644 index 000000000000..2340522b9472 --- /dev/null +++ b/graphics/pokemon/squawkabilly/yellow_plumage/shiny.pal @@ -0,0 +1,18 @@ +JASC-PAL +0100 +15 +153 211 165 +154 107 113 +203 154 162 +16 16 16 +255 221 60 +140 109 41 +212 204 208 +200 167 49 +201 145 129 +255 231 225 +246 196 181 +253 253 253 +244 244 244 +148 95 31 +196 163 114 diff --git a/graphics/pokemon/tadbulb/back.png b/graphics/pokemon/tadbulb/back.png new file mode 100644 index 000000000000..371fd9e03523 Binary files /dev/null and b/graphics/pokemon/tadbulb/back.png differ diff --git a/graphics/pokemon/tadbulb/front.png b/graphics/pokemon/tadbulb/front.png new file mode 100644 index 000000000000..4d5808358446 Binary files /dev/null and b/graphics/pokemon/tadbulb/front.png differ diff --git a/graphics/pokemon/tadbulb/icon.png b/graphics/pokemon/tadbulb/icon.png new file mode 100755 index 000000000000..0341a387fb8e Binary files /dev/null and b/graphics/pokemon/tadbulb/icon.png differ diff --git a/graphics/pokemon/tadbulb/normal.pal b/graphics/pokemon/tadbulb/normal.pal new file mode 100644 index 000000000000..be44b326bb37 --- /dev/null +++ b/graphics/pokemon/tadbulb/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +154 212 167 +126 66 18 +210 144 42 +250 233 41 +255 252 139 +252 252 252 +229 185 42 +8 8 8 +195 179 71 +136 120 103 +56 42 36 +194 139 76 +247 156 50 +92 78 68 +113 53 28 +160 91 41 diff --git a/graphics/pokemon/tadbulb/shiny.pal b/graphics/pokemon/tadbulb/shiny.pal new file mode 100644 index 000000000000..e26b8aaaf066 --- /dev/null +++ b/graphics/pokemon/tadbulb/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +154 212 167 +126 66 18 +210 144 42 +250 233 41 +255 252 139 +252 252 252 +229 185 42 +8 8 8 +195 179 71 +136 120 103 +56 42 36 +196 108 89 +255 97 75 +92 78 68 +113 53 28 +190 54 51 diff --git a/graphics/pokemon/talonflame/anim_front.png b/graphics/pokemon/talonflame/anim_front.png index db505ac63a29..c8257da9e25c 100644 Binary files a/graphics/pokemon/talonflame/anim_front.png and b/graphics/pokemon/talonflame/anim_front.png differ diff --git a/graphics/pokemon/tandemaus/back.png b/graphics/pokemon/tandemaus/back.png new file mode 100644 index 000000000000..f794a4706fb9 Binary files /dev/null and b/graphics/pokemon/tandemaus/back.png differ diff --git a/graphics/pokemon/tandemaus/front.png b/graphics/pokemon/tandemaus/front.png new file mode 100644 index 000000000000..2ebeacec9437 Binary files /dev/null and b/graphics/pokemon/tandemaus/front.png differ diff --git a/graphics/pokemon/tandemaus/icon.png b/graphics/pokemon/tandemaus/icon.png new file mode 100755 index 000000000000..8effa87c57e0 Binary files /dev/null and b/graphics/pokemon/tandemaus/icon.png differ diff --git a/graphics/pokemon/tandemaus/normal.pal b/graphics/pokemon/tandemaus/normal.pal new file mode 100644 index 000000000000..ae74aa96e529 --- /dev/null +++ b/graphics/pokemon/tandemaus/normal.pal @@ -0,0 +1,14 @@ +JASC-PAL +0100 +11 +154 212 167 +123 120 113 +248 248 243 +86 82 78 +8 8 8 +190 189 182 +219 219 213 +255 255 255 +75 85 113 +157 181 204 +203 222 231 diff --git a/graphics/pokemon/tandemaus/shiny.pal b/graphics/pokemon/tandemaus/shiny.pal new file mode 100644 index 000000000000..c1b5d3193a60 --- /dev/null +++ b/graphics/pokemon/tandemaus/shiny.pal @@ -0,0 +1,14 @@ +JASC-PAL +0100 +11 +154 212 167 +123 120 113 +248 248 243 +86 82 78 +8 8 8 +190 189 182 +219 219 213 +255 255 255 +110 92 71 +185 170 137 +223 212 165 diff --git a/graphics/pokemon/tarountula/back.png b/graphics/pokemon/tarountula/back.png new file mode 100755 index 000000000000..0b9eaa9de781 Binary files /dev/null and b/graphics/pokemon/tarountula/back.png differ diff --git a/graphics/pokemon/tarountula/front.png b/graphics/pokemon/tarountula/front.png new file mode 100755 index 000000000000..8bf672067e25 Binary files /dev/null and b/graphics/pokemon/tarountula/front.png differ diff --git a/graphics/pokemon/tarountula/icon.png b/graphics/pokemon/tarountula/icon.png new file mode 100755 index 000000000000..d4802eb0eabc Binary files /dev/null and b/graphics/pokemon/tarountula/icon.png differ diff --git a/graphics/pokemon/tarountula/normal.pal b/graphics/pokemon/tarountula/normal.pal new file mode 100755 index 000000000000..db11bb172bc5 --- /dev/null +++ b/graphics/pokemon/tarountula/normal.pal @@ -0,0 +1,17 @@ +JASC-PAL +0100 +14 +154 212 167 +116 112 122 +175 168 175 +229 230 229 +8 8 8 +107 99 32 +240 228 55 +182 164 36 +253 253 253 +179 179 179 +36 71 99 +6 82 4 +55 109 7 +81 163 7 diff --git a/graphics/pokemon/tarountula/shiny.pal b/graphics/pokemon/tarountula/shiny.pal new file mode 100755 index 000000000000..74a71a8592e6 --- /dev/null +++ b/graphics/pokemon/tarountula/shiny.pal @@ -0,0 +1,17 @@ +JASC-PAL +0100 +14 +154 212 167 +105 30 23 +153 43 34 +206 62 53 +8 8 8 +34 55 69 +92 124 150 +57 93 113 +253 253 253 +179 179 179 +36 71 99 +66 34 44 +96 57 69 +128 76 99 diff --git a/graphics/pokemon/tatsugiri/curly/back.png b/graphics/pokemon/tatsugiri/curly/back.png new file mode 100644 index 000000000000..9db928473e8d Binary files /dev/null and b/graphics/pokemon/tatsugiri/curly/back.png differ diff --git a/graphics/pokemon/tatsugiri/curly/front.png b/graphics/pokemon/tatsugiri/curly/front.png new file mode 100644 index 000000000000..a32ade902e80 Binary files /dev/null and b/graphics/pokemon/tatsugiri/curly/front.png differ diff --git a/graphics/pokemon/tatsugiri/curly/icon.png b/graphics/pokemon/tatsugiri/curly/icon.png new file mode 100755 index 000000000000..98fe8aa5694e Binary files /dev/null and b/graphics/pokemon/tatsugiri/curly/icon.png differ diff --git a/graphics/pokemon/tatsugiri/curly/normal.pal b/graphics/pokemon/tatsugiri/curly/normal.pal new file mode 100644 index 000000000000..ce25aa7da011 --- /dev/null +++ b/graphics/pokemon/tatsugiri/curly/normal.pal @@ -0,0 +1,18 @@ +JASC-PAL +0100 +15 +153 211 165 +147 51 34 +255 105 47 +252 158 121 +206 77 41 +16 16 16 +255 184 152 +117 73 61 +201 134 116 +255 255 255 +128 128 128 +253 253 253 +194 171 151 +113 98 84 +240 235 223 diff --git a/graphics/pokemon/tatsugiri/curly/shiny.pal b/graphics/pokemon/tatsugiri/curly/shiny.pal new file mode 100644 index 000000000000..faa40dca56b3 --- /dev/null +++ b/graphics/pokemon/tatsugiri/curly/shiny.pal @@ -0,0 +1,18 @@ +JASC-PAL +0100 +15 +153 211 165 +147 51 34 +174 100 72 +204 104 67 +139 71 46 +16 16 16 +248 112 59 +117 73 61 +201 134 116 +255 255 255 +128 128 128 +253 253 253 +194 171 151 +113 98 84 +240 235 223 diff --git a/graphics/pokemon/tatsugiri/droopy/back.png b/graphics/pokemon/tatsugiri/droopy/back.png new file mode 100644 index 000000000000..6d998537f203 Binary files /dev/null and b/graphics/pokemon/tatsugiri/droopy/back.png differ diff --git a/graphics/pokemon/tatsugiri/droopy/front.png b/graphics/pokemon/tatsugiri/droopy/front.png new file mode 100644 index 000000000000..d4c4512541cc Binary files /dev/null and b/graphics/pokemon/tatsugiri/droopy/front.png differ diff --git a/graphics/pokemon/tatsugiri/droopy/icon.png b/graphics/pokemon/tatsugiri/droopy/icon.png new file mode 100755 index 000000000000..48e8c01fd030 Binary files /dev/null and b/graphics/pokemon/tatsugiri/droopy/icon.png differ diff --git a/graphics/pokemon/tatsugiri/droopy/normal.pal b/graphics/pokemon/tatsugiri/droopy/normal.pal new file mode 100644 index 000000000000..09f36e1ae87f --- /dev/null +++ b/graphics/pokemon/tatsugiri/droopy/normal.pal @@ -0,0 +1,15 @@ +JASC-PAL +0100 +12 +153 211 165 +136 36 52 +255 74 121 +247 140 161 +195 53 93 +16 16 16 +113 98 84 +240 235 223 +194 171 151 +255 255 255 +128 128 128 +253 253 253 diff --git a/graphics/pokemon/tatsugiri/droopy/shiny.pal b/graphics/pokemon/tatsugiri/droopy/shiny.pal new file mode 100644 index 000000000000..ffa14a905aa5 --- /dev/null +++ b/graphics/pokemon/tatsugiri/droopy/shiny.pal @@ -0,0 +1,15 @@ +JASC-PAL +0100 +12 +153 211 165 +143 142 145 +229 229 229 +251 251 251 +172 172 172 +16 16 16 +113 98 84 +240 235 223 +194 171 151 +255 255 255 +128 128 128 +253 253 253 diff --git a/graphics/pokemon/tatsugiri/stretchy/back.png b/graphics/pokemon/tatsugiri/stretchy/back.png new file mode 100644 index 000000000000..849782c3b233 Binary files /dev/null and b/graphics/pokemon/tatsugiri/stretchy/back.png differ diff --git a/graphics/pokemon/tatsugiri/stretchy/front.png b/graphics/pokemon/tatsugiri/stretchy/front.png new file mode 100644 index 000000000000..2905c16d9da2 Binary files /dev/null and b/graphics/pokemon/tatsugiri/stretchy/front.png differ diff --git a/graphics/pokemon/tatsugiri/stretchy/icon.png b/graphics/pokemon/tatsugiri/stretchy/icon.png new file mode 100755 index 000000000000..1634ec317833 Binary files /dev/null and b/graphics/pokemon/tatsugiri/stretchy/icon.png differ diff --git a/graphics/pokemon/tatsugiri/stretchy/normal.pal b/graphics/pokemon/tatsugiri/stretchy/normal.pal new file mode 100644 index 000000000000..9421d8a1fa7e --- /dev/null +++ b/graphics/pokemon/tatsugiri/stretchy/normal.pal @@ -0,0 +1,16 @@ +JASC-PAL +0100 +13 +153 211 165 +130 84 17 +241 205 3 +255 235 121 +189 152 14 +16 16 16 +239 196 26 +255 255 255 +128 128 128 +253 253 253 +194 171 151 +113 98 84 +240 235 223 diff --git a/graphics/pokemon/tatsugiri/stretchy/shiny.pal b/graphics/pokemon/tatsugiri/stretchy/shiny.pal new file mode 100644 index 000000000000..efffbf5f15f0 --- /dev/null +++ b/graphics/pokemon/tatsugiri/stretchy/shiny.pal @@ -0,0 +1,16 @@ +JASC-PAL +0100 +13 +153 211 165 +151 49 13 +248 112 59 +240 159 94 +196 76 29 +16 16 16 +237 184 60 +255 255 255 +128 128 128 +253 253 253 +194 171 151 +113 98 84 +240 235 223 diff --git a/graphics/pokemon/tauros/aqua/back.png b/graphics/pokemon/tauros/aqua/back.png new file mode 100644 index 000000000000..4c0fbe34147a Binary files /dev/null and b/graphics/pokemon/tauros/aqua/back.png differ diff --git a/graphics/pokemon/tauros/aqua/front.png b/graphics/pokemon/tauros/aqua/front.png new file mode 100644 index 000000000000..7cb62beeb35e Binary files /dev/null and b/graphics/pokemon/tauros/aqua/front.png differ diff --git a/graphics/pokemon/tauros/aqua/icon.png b/graphics/pokemon/tauros/aqua/icon.png new file mode 100755 index 000000000000..a0421d7dd006 Binary files /dev/null and b/graphics/pokemon/tauros/aqua/icon.png differ diff --git a/graphics/pokemon/tauros/aqua/normal.pal b/graphics/pokemon/tauros/aqua/normal.pal new file mode 100644 index 000000000000..fa707bea042f --- /dev/null +++ b/graphics/pokemon/tauros/aqua/normal.pal @@ -0,0 +1,18 @@ +JASC-PAL +0100 +15 +153 210 164 +79 79 79 +7 7 7 +53 53 53 +12 26 16 +53 53 53 +104 104 104 +96 96 96 +248 248 248 +185 185 185 +17 17 17 +137 137 137 +67 79 70 +0 104 155 +0 170 227 diff --git a/graphics/pokemon/tauros/aqua/shiny.pal b/graphics/pokemon/tauros/aqua/shiny.pal new file mode 100644 index 000000000000..8ff98dcdacfd --- /dev/null +++ b/graphics/pokemon/tauros/aqua/shiny.pal @@ -0,0 +1,18 @@ +JASC-PAL +0100 +15 +153 210 164 +53 53 53 +7 7 7 +79 79 79 +12 26 16 +35 35 35 +104 104 104 +96 96 96 +248 248 248 +185 185 185 +17 17 17 +137 137 137 +67 79 70 +0 104 155 +0 170 227 diff --git a/graphics/pokemon/tauros/blaze/back.png b/graphics/pokemon/tauros/blaze/back.png new file mode 100644 index 000000000000..1f56c227c014 Binary files /dev/null and b/graphics/pokemon/tauros/blaze/back.png differ diff --git a/graphics/pokemon/tauros/blaze/front.ase b/graphics/pokemon/tauros/blaze/front.ase new file mode 100644 index 000000000000..f0e555005184 Binary files /dev/null and b/graphics/pokemon/tauros/blaze/front.ase differ diff --git a/graphics/pokemon/tauros/blaze/front.png b/graphics/pokemon/tauros/blaze/front.png new file mode 100644 index 000000000000..a01c02df3017 Binary files /dev/null and b/graphics/pokemon/tauros/blaze/front.png differ diff --git a/graphics/pokemon/tauros/blaze/icon.png b/graphics/pokemon/tauros/blaze/icon.png new file mode 100755 index 000000000000..25ec7e046389 Binary files /dev/null and b/graphics/pokemon/tauros/blaze/icon.png differ diff --git a/graphics/pokemon/tauros/blaze/normal.pal b/graphics/pokemon/tauros/blaze/normal.pal new file mode 100644 index 000000000000..f7ad909452c1 --- /dev/null +++ b/graphics/pokemon/tauros/blaze/normal.pal @@ -0,0 +1,17 @@ +JASC-PAL +0100 +14 +153 210 164 +79 79 79 +53 53 53 +7 7 7 +17 17 17 +206 0 0 +255 26 26 +53 53 53 +87 87 87 +96 96 96 +185 185 185 +137 137 137 +67 79 70 +248 248 248 diff --git a/graphics/pokemon/tauros/blaze/shiny.pal b/graphics/pokemon/tauros/blaze/shiny.pal new file mode 100644 index 000000000000..a1c06e0cd473 --- /dev/null +++ b/graphics/pokemon/tauros/blaze/shiny.pal @@ -0,0 +1,17 @@ +JASC-PAL +0100 +14 +153 210 164 +53 53 53 +79 79 79 +7 7 7 +17 17 17 +206 0 0 +255 26 26 +35 35 35 +104 104 104 +96 96 96 +185 185 185 +137 137 137 +67 79 70 +248 248 248 diff --git a/graphics/pokemon/tauros/combat/back.png b/graphics/pokemon/tauros/combat/back.png new file mode 100644 index 000000000000..d664bdf59fdb Binary files /dev/null and b/graphics/pokemon/tauros/combat/back.png differ diff --git a/graphics/pokemon/tauros/combat/front.png b/graphics/pokemon/tauros/combat/front.png new file mode 100644 index 000000000000..9b677bac3f79 Binary files /dev/null and b/graphics/pokemon/tauros/combat/front.png differ diff --git a/graphics/pokemon/tauros/combat/icon.png b/graphics/pokemon/tauros/combat/icon.png new file mode 100755 index 000000000000..daa2eb78820e Binary files /dev/null and b/graphics/pokemon/tauros/combat/icon.png differ diff --git a/graphics/pokemon/tauros/combat/normal.pal b/graphics/pokemon/tauros/combat/normal.pal new file mode 100644 index 000000000000..f59738f9f293 --- /dev/null +++ b/graphics/pokemon/tauros/combat/normal.pal @@ -0,0 +1,15 @@ +JASC-PAL +0100 +12 +153 210 164 +79 79 79 +53 53 53 +7 7 7 +17 17 17 +53 53 53 +104 104 104 +96 96 96 +137 137 137 +185 185 185 +104 104 104 +248 248 248 diff --git a/graphics/pokemon/tauros/combat/shiny.pal b/graphics/pokemon/tauros/combat/shiny.pal new file mode 100644 index 000000000000..ce3ef3e7b45d --- /dev/null +++ b/graphics/pokemon/tauros/combat/shiny.pal @@ -0,0 +1,15 @@ +JASC-PAL +0100 +12 +153 210 164 +53 53 53 +79 79 79 +7 7 7 +17 17 17 +35 35 35 +104 104 104 +96 96 96 +137 137 137 +185 185 185 +67 79 70 +248 248 248 diff --git a/graphics/pokemon/ting_lu/back.png b/graphics/pokemon/ting_lu/back.png new file mode 100644 index 000000000000..e0af1a11c6f1 Binary files /dev/null and b/graphics/pokemon/ting_lu/back.png differ diff --git a/graphics/pokemon/ting_lu/front.png b/graphics/pokemon/ting_lu/front.png new file mode 100644 index 000000000000..a94820cbf6b3 Binary files /dev/null and b/graphics/pokemon/ting_lu/front.png differ diff --git a/graphics/pokemon/ting_lu/icon.png b/graphics/pokemon/ting_lu/icon.png new file mode 100755 index 000000000000..0b1f975f9e1f Binary files /dev/null and b/graphics/pokemon/ting_lu/icon.png differ diff --git a/graphics/pokemon/ting_lu/normal.pal b/graphics/pokemon/ting_lu/normal.pal new file mode 100644 index 000000000000..008d4a094c44 --- /dev/null +++ b/graphics/pokemon/ting_lu/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 163 +40 51 49 +166 180 167 +74 74 74 +72 104 99 +115 149 139 +15 15 15 +94 70 34 +92 49 39 +140 97 64 +56 30 29 +126 71 66 +149 117 96 +175 149 134 +255 31 26 +255 222 36 diff --git a/graphics/pokemon/ting_lu/shiny.pal b/graphics/pokemon/ting_lu/shiny.pal new file mode 100644 index 000000000000..5476b7d4e91d --- /dev/null +++ b/graphics/pokemon/ting_lu/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 163 +40 51 49 +166 180 167 +74 74 74 +72 104 99 +115 149 139 +15 15 15 +96 88 80 +16 120 120 +209 214 214 +16 64 72 +105 115 143 +136 144 168 +176 184 184 +255 31 26 +255 222 36 diff --git a/graphics/pokemon/tinkatink/back.png b/graphics/pokemon/tinkatink/back.png new file mode 100644 index 000000000000..63fced448275 Binary files /dev/null and b/graphics/pokemon/tinkatink/back.png differ diff --git a/graphics/pokemon/tinkatink/front.png b/graphics/pokemon/tinkatink/front.png new file mode 100644 index 000000000000..f263a31f20d9 Binary files /dev/null and b/graphics/pokemon/tinkatink/front.png differ diff --git a/graphics/pokemon/tinkatink/icon.png b/graphics/pokemon/tinkatink/icon.png new file mode 100644 index 000000000000..fc7300cb0aae Binary files /dev/null and b/graphics/pokemon/tinkatink/icon.png differ diff --git a/graphics/pokemon/tinkatink/normal.pal b/graphics/pokemon/tinkatink/normal.pal new file mode 100644 index 000000000000..fb5977571b84 --- /dev/null +++ b/graphics/pokemon/tinkatink/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 210 164 +246 101 172 +246 141 197 +189 206 230 +189 72 115 +8 12 8 +189 48 139 +106 93 164 +189 161 164 +115 141 172 +74 56 139 +246 226 238 +164 182 205 +131 40 82 +57 80 123 +255 255 255 diff --git a/graphics/pokemon/tinkatink/shiny.pal b/graphics/pokemon/tinkatink/shiny.pal new file mode 100644 index 000000000000..aa21dca4e46e --- /dev/null +++ b/graphics/pokemon/tinkatink/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 210 164 +246 101 172 +246 141 197 +203 131 108 +189 72 115 +8 12 8 +189 48 139 +196 173 161 +189 161 164 +112 73 54 +148 124 112 +246 226 238 +156 105 79 +131 40 82 +51 46 43 +255 255 255 diff --git a/graphics/pokemon/tinkaton/back.png b/graphics/pokemon/tinkaton/back.png new file mode 100644 index 000000000000..d876ebc79ab9 Binary files /dev/null and b/graphics/pokemon/tinkaton/back.png differ diff --git a/graphics/pokemon/tinkaton/front.png b/graphics/pokemon/tinkaton/front.png new file mode 100644 index 000000000000..eb5ce6e8a656 Binary files /dev/null and b/graphics/pokemon/tinkaton/front.png differ diff --git a/graphics/pokemon/tinkaton/icon.png b/graphics/pokemon/tinkaton/icon.png new file mode 100755 index 000000000000..72ab26b86b50 Binary files /dev/null and b/graphics/pokemon/tinkaton/icon.png differ diff --git a/graphics/pokemon/tinkaton/normal.pal b/graphics/pokemon/tinkaton/normal.pal new file mode 100644 index 000000000000..1c44fa8dc012 --- /dev/null +++ b/graphics/pokemon/tinkaton/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 210 164 +49 43 51 +236 208 208 +170 132 143 +15 15 15 +100 79 155 +137 113 148 +173 161 197 +74 54 112 +82 46 69 +233 145 181 +236 85 140 +252 252 252 +88 94 163 +167 65 103 +174 89 125 diff --git a/graphics/pokemon/tinkaton/shiny.pal b/graphics/pokemon/tinkaton/shiny.pal new file mode 100644 index 000000000000..dd18420c0a2e --- /dev/null +++ b/graphics/pokemon/tinkaton/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +153 210 164 +63 35 25 +236 208 208 +170 132 143 +15 15 15 +106 52 67 +139 87 69 +203 131 108 +83 40 53 +82 46 69 +233 145 181 +236 85 140 +252 252 252 +88 94 163 +167 65 103 +174 89 125 diff --git a/graphics/pokemon/tinkatuff/back.png b/graphics/pokemon/tinkatuff/back.png new file mode 100644 index 000000000000..5a5cdac31b14 Binary files /dev/null and b/graphics/pokemon/tinkatuff/back.png differ diff --git a/graphics/pokemon/tinkatuff/front.png b/graphics/pokemon/tinkatuff/front.png new file mode 100644 index 000000000000..8b75e709bb9e Binary files /dev/null and b/graphics/pokemon/tinkatuff/front.png differ diff --git a/graphics/pokemon/tinkatuff/icon.png b/graphics/pokemon/tinkatuff/icon.png new file mode 100755 index 000000000000..7ab30334fa1b Binary files /dev/null and b/graphics/pokemon/tinkatuff/icon.png differ diff --git a/graphics/pokemon/tinkatuff/normal.pal b/graphics/pokemon/tinkatuff/normal.pal new file mode 100644 index 000000000000..0f90f999f868 --- /dev/null +++ b/graphics/pokemon/tinkatuff/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +32 208 160 +80 40 64 +232 208 208 +168 128 136 +8 8 8 +232 144 176 +232 80 136 +168 88 120 +160 64 96 +248 248 248 +48 40 48 +88 88 160 +168 160 192 +136 112 144 +96 72 152 +72 48 112 diff --git a/graphics/pokemon/tinkatuff/shiny.pal b/graphics/pokemon/tinkatuff/shiny.pal new file mode 100644 index 000000000000..edea9dd34561 --- /dev/null +++ b/graphics/pokemon/tinkatuff/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +32 208 160 +80 40 64 +232 208 208 +168 128 136 +8 8 8 +232 144 176 +232 80 136 +168 88 120 +160 64 96 +248 248 248 +48 40 48 +88 88 160 +208 152 120 +152 80 48 +152 56 88 +104 24 24 diff --git a/graphics/pokemon/toedscool/back.png b/graphics/pokemon/toedscool/back.png new file mode 100755 index 000000000000..6858cf4af405 Binary files /dev/null and b/graphics/pokemon/toedscool/back.png differ diff --git a/graphics/pokemon/toedscool/front.png b/graphics/pokemon/toedscool/front.png new file mode 100755 index 000000000000..3aa3bf895998 Binary files /dev/null and b/graphics/pokemon/toedscool/front.png differ diff --git a/graphics/pokemon/toedscool/icon.png b/graphics/pokemon/toedscool/icon.png new file mode 100755 index 000000000000..91edeb2472bf Binary files /dev/null and b/graphics/pokemon/toedscool/icon.png differ diff --git a/graphics/pokemon/toedscool/normal.pal b/graphics/pokemon/toedscool/normal.pal new file mode 100755 index 000000000000..77133acfb65d --- /dev/null +++ b/graphics/pokemon/toedscool/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +136 88 80 +240 180 168 +224 152 144 +168 120 104 +128 108 32 +192 168 64 +208 200 80 +16 16 16 +208 212 208 +248 252 248 +128 132 128 +168 172 160 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/pokemon/toedscool/shiny.pal b/graphics/pokemon/toedscool/shiny.pal new file mode 100755 index 000000000000..9de6c2ab4718 --- /dev/null +++ b/graphics/pokemon/toedscool/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +126 122 114 +247 246 242 +232 229 217 +189 185 173 +141 138 112 +213 209 173 +248 244 230 +16 16 16 +208 212 208 +248 252 248 +128 132 128 +168 172 160 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/pokemon/toedscruel/back.png b/graphics/pokemon/toedscruel/back.png new file mode 100755 index 000000000000..da8955f819e9 Binary files /dev/null and b/graphics/pokemon/toedscruel/back.png differ diff --git a/graphics/pokemon/toedscruel/front.png b/graphics/pokemon/toedscruel/front.png new file mode 100755 index 000000000000..87162861abcf Binary files /dev/null and b/graphics/pokemon/toedscruel/front.png differ diff --git a/graphics/pokemon/toedscruel/icon.png b/graphics/pokemon/toedscruel/icon.png new file mode 100755 index 000000000000..fe3f98f9fa01 Binary files /dev/null and b/graphics/pokemon/toedscruel/icon.png differ diff --git a/graphics/pokemon/toedscruel/normal.pal b/graphics/pokemon/toedscruel/normal.pal new file mode 100755 index 000000000000..7b541a5efd0f --- /dev/null +++ b/graphics/pokemon/toedscruel/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +48 48 48 +112 116 112 +184 128 96 +88 92 96 +232 176 152 +232 228 104 +64 68 64 +248 252 248 +16 16 16 +240 240 192 +104 100 80 +176 180 152 +248 212 72 +136 108 40 +176 176 88 diff --git a/graphics/pokemon/toedscruel/shiny.pal b/graphics/pokemon/toedscruel/shiny.pal new file mode 100755 index 000000000000..1841634878c7 --- /dev/null +++ b/graphics/pokemon/toedscruel/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +48 48 48 +112 116 112 +161 161 163 +88 92 96 +222 220 221 +242 66 213 +64 68 64 +248 252 248 +16 16 16 +230 106 142 +109 50 68 +172 72 108 +248 212 72 +136 108 40 +175 41 169 diff --git a/graphics/pokemon/togedemaru/anim_front.png b/graphics/pokemon/togedemaru/anim_front.png new file mode 100644 index 000000000000..4e6534e2f816 Binary files /dev/null and b/graphics/pokemon/togedemaru/anim_front.png differ diff --git a/graphics/pokemon/togedemaru/front.png b/graphics/pokemon/togedemaru/front.png deleted file mode 100644 index aa0202eef3cf..000000000000 Binary files a/graphics/pokemon/togedemaru/front.png and /dev/null differ diff --git a/graphics/pokemon/toucannon/anim_front.png b/graphics/pokemon/toucannon/anim_front.png new file mode 100644 index 000000000000..fd42f4cc3f48 Binary files /dev/null and b/graphics/pokemon/toucannon/anim_front.png differ diff --git a/graphics/pokemon/toucannon/back.png b/graphics/pokemon/toucannon/back.png index 109a356dd7d9..fb6e6195aee4 100644 Binary files a/graphics/pokemon/toucannon/back.png and b/graphics/pokemon/toucannon/back.png differ diff --git a/graphics/pokemon/toucannon/front.png b/graphics/pokemon/toucannon/front.png deleted file mode 100644 index e9131805ac67..000000000000 Binary files a/graphics/pokemon/toucannon/front.png and /dev/null differ diff --git a/graphics/pokemon/toucannon/normal.pal b/graphics/pokemon/toucannon/normal.pal index eeb9ee6b6442..d2ba6f122680 100644 --- a/graphics/pokemon/toucannon/normal.pal +++ b/graphics/pokemon/toucannon/normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -120 40 24 +16 16 16 32 24 24 -232 232 64 -48 40 40 -88 80 72 -240 168 48 56 48 48 -168 168 168 -232 112 32 -32 112 168 -16 16 16 +120 40 24 +37 76 103 +88 80 72 224 48 16 -248 248 248 +32 112 168 +232 112 32 +168 168 168 +240 168 48 112 200 216 -184 184 192 +213 213 222 +232 232 64 +248 248 248 diff --git a/graphics/pokemon/toucannon/shiny.pal b/graphics/pokemon/toucannon/shiny.pal index 44b47e16b37c..e60414432f70 100644 --- a/graphics/pokemon/toucannon/shiny.pal +++ b/graphics/pokemon/toucannon/shiny.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -72 16 96 -16 24 24 -88 120 200 -48 40 40 -80 88 80 -64 64 168 -48 56 48 -200 208 104 -160 72 184 -24 160 48 16 16 16 +33 38 38 +48 56 48 +77 18 70 +24 92 102 +80 88 80 224 32 104 -248 248 248 +49 131 145 +160 72 184 +200 208 104 +64 64 168 112 200 216 -184 184 192 +213 213 222 +88 120 200 +248 248 248 diff --git a/graphics/pokemon/trumbeak/anim_front.png b/graphics/pokemon/trumbeak/anim_front.png new file mode 100644 index 000000000000..9bb3a97840b5 Binary files /dev/null and b/graphics/pokemon/trumbeak/anim_front.png differ diff --git a/graphics/pokemon/trumbeak/back.png b/graphics/pokemon/trumbeak/back.png index 552c32d26068..a9dc99ea25b3 100644 Binary files a/graphics/pokemon/trumbeak/back.png and b/graphics/pokemon/trumbeak/back.png differ diff --git a/graphics/pokemon/trumbeak/front.png b/graphics/pokemon/trumbeak/front.png deleted file mode 100644 index b51466e309ac..000000000000 Binary files a/graphics/pokemon/trumbeak/front.png and /dev/null differ diff --git a/graphics/pokemon/trumbeak/normal.pal b/graphics/pokemon/trumbeak/normal.pal index 315d2898c5ff..050033cdb5f7 100644 --- a/graphics/pokemon/trumbeak/normal.pal +++ b/graphics/pokemon/trumbeak/normal.pal @@ -6,7 +6,7 @@ JASC-PAL 96 88 80 16 16 16 64 56 56 -192 192 192 +212 212 212 120 120 128 168 168 168 248 248 248 @@ -15,5 +15,5 @@ JASC-PAL 248 136 64 232 56 48 184 24 24 -120 168 184 -0 0 0 +64 154 184 +115 28 28 diff --git a/graphics/pokemon/trumbeak/shiny.pal b/graphics/pokemon/trumbeak/shiny.pal index 0b87369f2cae..3a2e5ce71f0f 100644 --- a/graphics/pokemon/trumbeak/shiny.pal +++ b/graphics/pokemon/trumbeak/shiny.pal @@ -6,7 +6,7 @@ JASC-PAL 80 96 80 16 16 16 56 64 48 -192 192 192 +212 212 212 136 128 40 216 208 56 248 248 248 @@ -16,4 +16,4 @@ JASC-PAL 240 56 136 200 24 104 120 168 184 -0 0 0 +125 15 68 diff --git a/graphics/pokemon/ursaluna/bloodmoon/back.png b/graphics/pokemon/ursaluna/bloodmoon/back.png new file mode 100644 index 000000000000..251eab99cf5e Binary files /dev/null and b/graphics/pokemon/ursaluna/bloodmoon/back.png differ diff --git a/graphics/pokemon/ursaluna/bloodmoon/front.png b/graphics/pokemon/ursaluna/bloodmoon/front.png new file mode 100644 index 000000000000..27b44fb3ffe1 Binary files /dev/null and b/graphics/pokemon/ursaluna/bloodmoon/front.png differ diff --git a/graphics/pokemon/ursaluna/bloodmoon/normal.pal b/graphics/pokemon/ursaluna/bloodmoon/normal.pal new file mode 100644 index 000000000000..8eab07de4554 --- /dev/null +++ b/graphics/pokemon/ursaluna/bloodmoon/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 210 164 +0 194 8 +238 80 106 +246 125 148 +255 214 123 +49 40 32 +115 85 74 +164 40 65 +255 255 255 +78 78 97 +74 56 49 +148 117 106 +164 161 164 +16 16 16 +222 222 222 +123 121 139 diff --git a/graphics/pokemon/ursaluna/bloodmoon/shiny.pal b/graphics/pokemon/ursaluna/bloodmoon/shiny.pal new file mode 100644 index 000000000000..d8a8e8ce5674 --- /dev/null +++ b/graphics/pokemon/ursaluna/bloodmoon/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 210 164 +0 194 8 +238 80 106 +246 125 148 +255 214 123 +49 40 32 +195 99 59 +164 40 65 +255 255 255 +78 78 97 +128 74 52 +230 131 90 +164 161 164 +16 16 16 +222 222 222 +123 121 139 diff --git a/graphics/pokemon/varoom/back.png b/graphics/pokemon/varoom/back.png new file mode 100755 index 000000000000..a0fef0447c3b Binary files /dev/null and b/graphics/pokemon/varoom/back.png differ diff --git a/graphics/pokemon/varoom/front.png b/graphics/pokemon/varoom/front.png new file mode 100755 index 000000000000..8c2bd6679f6f Binary files /dev/null and b/graphics/pokemon/varoom/front.png differ diff --git a/graphics/pokemon/varoom/icon.png b/graphics/pokemon/varoom/icon.png new file mode 100755 index 000000000000..7debadffdefe Binary files /dev/null and b/graphics/pokemon/varoom/icon.png differ diff --git a/graphics/pokemon/varoom/normal.pal b/graphics/pokemon/varoom/normal.pal new file mode 100755 index 000000000000..6e9f62ab561e --- /dev/null +++ b/graphics/pokemon/varoom/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +24 28 40 +16 16 16 +48 48 64 +96 88 104 +200 212 216 +56 60 72 +112 124 144 +240 248 248 +48 32 80 +152 104 184 +248 236 32 +88 60 128 +232 176 48 +128 128 136 +0 0 0 diff --git a/graphics/pokemon/varoom/shiny.pal b/graphics/pokemon/varoom/shiny.pal new file mode 100755 index 000000000000..3eb247d6f47e --- /dev/null +++ b/graphics/pokemon/varoom/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +24 28 40 +16 16 16 +48 48 64 +96 88 104 +234 200 106 +56 60 72 +158 122 73 +240 248 248 +48 32 80 +152 104 184 +237 142 178 +88 60 128 +184 92 141 +128 128 136 +0 0 0 diff --git a/graphics/pokemon/veluza/back.png b/graphics/pokemon/veluza/back.png new file mode 100755 index 000000000000..15777e06629e Binary files /dev/null and b/graphics/pokemon/veluza/back.png differ diff --git a/graphics/pokemon/veluza/front.png b/graphics/pokemon/veluza/front.png new file mode 100755 index 000000000000..9a2a7643abb4 Binary files /dev/null and b/graphics/pokemon/veluza/front.png differ diff --git a/graphics/pokemon/veluza/icon.png b/graphics/pokemon/veluza/icon.png new file mode 100755 index 000000000000..6d0605166979 Binary files /dev/null and b/graphics/pokemon/veluza/icon.png differ diff --git a/graphics/pokemon/veluza/normal.pal b/graphics/pokemon/veluza/normal.pal new file mode 100755 index 000000000000..2365bca9d497 --- /dev/null +++ b/graphics/pokemon/veluza/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +128 56 136 +248 116 248 +16 16 16 +192 80 192 +96 100 104 +72 72 72 +136 128 136 +168 172 168 +192 196 192 +248 252 248 +144 132 200 +208 208 208 +200 68 80 +248 92 56 +0 0 0 diff --git a/graphics/pokemon/veluza/shiny.pal b/graphics/pokemon/veluza/shiny.pal new file mode 100755 index 000000000000..9574a636bfe2 --- /dev/null +++ b/graphics/pokemon/veluza/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +49 113 67 +71 149 81 +16 16 16 +71 149 81 +96 100 104 +72 72 72 +136 128 136 +168 172 168 +192 196 192 +248 252 248 +144 132 200 +208 208 208 +200 68 80 +248 92 56 +0 0 0 diff --git a/graphics/pokemon/walking_wake/back.png b/graphics/pokemon/walking_wake/back.png new file mode 100644 index 000000000000..7fb2083cb903 Binary files /dev/null and b/graphics/pokemon/walking_wake/back.png differ diff --git a/graphics/pokemon/walking_wake/front.png b/graphics/pokemon/walking_wake/front.png new file mode 100644 index 000000000000..2ef963271044 Binary files /dev/null and b/graphics/pokemon/walking_wake/front.png differ diff --git a/graphics/pokemon/walking_wake/icon.png b/graphics/pokemon/walking_wake/icon.png new file mode 100644 index 000000000000..9260531ecf3a Binary files /dev/null and b/graphics/pokemon/walking_wake/icon.png differ diff --git a/graphics/pokemon/walking_wake/normal.pal b/graphics/pokemon/walking_wake/normal.pal new file mode 100644 index 000000000000..a0cd9eaff90f --- /dev/null +++ b/graphics/pokemon/walking_wake/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +46 149 167 +115 234 222 +27 86 92 +39 124 124 +82 82 82 +247 162 82 +53 194 219 +16 16 16 +239 93 107 +165 103 167 +129 73 126 +89 52 105 +254 214 54 +252 252 252 +189 189 189 diff --git a/graphics/pokemon/walking_wake/shiny.pal b/graphics/pokemon/walking_wake/shiny.pal new file mode 100644 index 000000000000..f75d05d689d2 --- /dev/null +++ b/graphics/pokemon/walking_wake/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +96 168 152 +115 234 222 +27 86 92 +39 124 124 +82 82 82 +247 162 82 +96 216 184 +16 16 16 +239 93 107 +64 96 232 +40 64 152 +8 24 128 +254 214 54 +252 252 252 +189 189 189 diff --git a/graphics/pokemon/wattrel/back.png b/graphics/pokemon/wattrel/back.png new file mode 100755 index 000000000000..2a5bc640b581 Binary files /dev/null and b/graphics/pokemon/wattrel/back.png differ diff --git a/graphics/pokemon/wattrel/front.png b/graphics/pokemon/wattrel/front.png new file mode 100755 index 000000000000..72981aa44e91 Binary files /dev/null and b/graphics/pokemon/wattrel/front.png differ diff --git a/graphics/pokemon/wattrel/icon.png b/graphics/pokemon/wattrel/icon.png new file mode 100755 index 000000000000..a0a8bc9d4996 Binary files /dev/null and b/graphics/pokemon/wattrel/icon.png differ diff --git a/graphics/pokemon/wattrel/normal.pal b/graphics/pokemon/wattrel/normal.pal new file mode 100755 index 000000000000..261ba6206894 --- /dev/null +++ b/graphics/pokemon/wattrel/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +24 24 24 +48 56 56 +32 40 40 +248 252 248 +184 188 200 +16 16 16 +248 204 48 +168 104 32 +192 144 40 +128 64 24 +240 176 88 +120 92 32 +96 112 144 +136 156 184 +64 76 104 diff --git a/graphics/pokemon/wattrel/shiny.pal b/graphics/pokemon/wattrel/shiny.pal new file mode 100755 index 000000000000..16b0a5b21bae --- /dev/null +++ b/graphics/pokemon/wattrel/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +24 24 24 +131 83 100 +96 60 73 +248 252 248 +184 188 200 +16 16 16 +248 204 48 +168 104 32 +192 144 40 +128 64 24 +240 176 88 +120 92 32 +96 112 144 +136 156 184 +64 76 104 diff --git a/graphics/pokemon/wiglett/back.png b/graphics/pokemon/wiglett/back.png new file mode 100755 index 000000000000..b4365063194d Binary files /dev/null and b/graphics/pokemon/wiglett/back.png differ diff --git a/graphics/pokemon/wiglett/front.png b/graphics/pokemon/wiglett/front.png new file mode 100755 index 000000000000..b9364e8619b8 Binary files /dev/null and b/graphics/pokemon/wiglett/front.png differ diff --git a/graphics/pokemon/wiglett/icon.png b/graphics/pokemon/wiglett/icon.png new file mode 100755 index 000000000000..668309c68ea4 Binary files /dev/null and b/graphics/pokemon/wiglett/icon.png differ diff --git a/graphics/pokemon/wiglett/normal.pal b/graphics/pokemon/wiglett/normal.pal new file mode 100755 index 000000000000..e3061417d83e --- /dev/null +++ b/graphics/pokemon/wiglett/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +128 128 128 +184 180 192 +232 228 224 +248 252 248 +16 16 16 +168 72 88 +120 44 64 +248 148 160 +232 92 112 +56 80 72 +80 112 104 +120 156 136 +152 184 168 +0 0 0 +0 0 0 diff --git a/graphics/pokemon/wiglett/shiny.pal b/graphics/pokemon/wiglett/shiny.pal new file mode 100755 index 000000000000..9fb47d702fbb --- /dev/null +++ b/graphics/pokemon/wiglett/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +156 122 24 +184 180 192 +232 228 224 +248 252 248 +16 16 16 +194 150 45 +120 44 64 +252 202 77 +232 92 112 +8 41 123 +49 82 164 +120 156 136 +152 184 168 +0 0 0 +0 0 0 diff --git a/graphics/pokemon/wo_chien/back.png b/graphics/pokemon/wo_chien/back.png new file mode 100644 index 000000000000..4525e24fece0 Binary files /dev/null and b/graphics/pokemon/wo_chien/back.png differ diff --git a/graphics/pokemon/wo_chien/front.png b/graphics/pokemon/wo_chien/front.png new file mode 100644 index 000000000000..b81f12809fbb Binary files /dev/null and b/graphics/pokemon/wo_chien/front.png differ diff --git a/graphics/pokemon/wo_chien/icon.png b/graphics/pokemon/wo_chien/icon.png new file mode 100755 index 000000000000..22402d15c550 Binary files /dev/null and b/graphics/pokemon/wo_chien/icon.png differ diff --git a/graphics/pokemon/wo_chien/normal.pal b/graphics/pokemon/wo_chien/normal.pal new file mode 100644 index 000000000000..df9cd0fd2e35 --- /dev/null +++ b/graphics/pokemon/wo_chien/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 210 164 +255 255 255 +255 125 0 +180 190 189 +65 68 41 +82 129 57 +74 182 82 +139 153 156 +24 24 24 +82 72 49 +197 157 90 +123 113 82 +172 141 115 +41 48 41 +74 85 82 +139 97 90 diff --git a/graphics/pokemon/wo_chien/shiny.pal b/graphics/pokemon/wo_chien/shiny.pal new file mode 100644 index 000000000000..f2dddbf0ae81 --- /dev/null +++ b/graphics/pokemon/wo_chien/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 210 164 +255 255 255 +255 125 0 +180 190 189 +65 68 41 +164 151 99 +216 201 142 +139 153 156 +24 24 24 +82 72 49 +255 79 97 +213 61 84 +172 141 115 +41 48 41 +74 85 82 +139 97 90 diff --git a/graphics/pokemon/wobbuffet/iconf.png b/graphics/pokemon/wobbuffet/iconf.png new file mode 100644 index 000000000000..1f7f86991b24 Binary files /dev/null and b/graphics/pokemon/wobbuffet/iconf.png differ diff --git a/graphics/pokemon/wooper/wooper_paldea/back.png b/graphics/pokemon/wooper/wooper_paldea/back.png new file mode 100644 index 000000000000..269a70ec26cf Binary files /dev/null and b/graphics/pokemon/wooper/wooper_paldea/back.png differ diff --git a/graphics/pokemon/wooper/wooper_paldea/front.png b/graphics/pokemon/wooper/wooper_paldea/front.png new file mode 100644 index 000000000000..5ef474559481 Binary files /dev/null and b/graphics/pokemon/wooper/wooper_paldea/front.png differ diff --git a/graphics/pokemon/wooper/wooper_paldea/normal.pal b/graphics/pokemon/wooper/wooper_paldea/normal.pal new file mode 100644 index 000000000000..2652aa5a76cb --- /dev/null +++ b/graphics/pokemon/wooper/wooper_paldea/normal.pal @@ -0,0 +1,16 @@ +JASC-PAL +0100 +13 +153 211 165 +103 83 119 +201 177 219 +85 67 66 +104 82 81 +16 16 16 +169 147 146 +130 103 102 +158 129 179 +255 255 255 +46 36 35 +180 65 65 +255 106 115 diff --git a/graphics/pokemon/wooper/wooper_paldea/shiny.pal b/graphics/pokemon/wooper/wooper_paldea/shiny.pal new file mode 100644 index 000000000000..3df4f0efa8a6 --- /dev/null +++ b/graphics/pokemon/wooper/wooper_paldea/shiny.pal @@ -0,0 +1,16 @@ +JASC-PAL +0100 +13 +153 211 165 +158 114 77 +230 186 149 +102 96 146 +140 133 186 +16 16 16 +204 202 219 +171 167 198 +200 144 97 +255 255 255 +46 36 35 +180 65 65 +255 106 115 diff --git a/graphics/pokemon/wugtrio/back.png b/graphics/pokemon/wugtrio/back.png new file mode 100755 index 000000000000..bf7827c9026a Binary files /dev/null and b/graphics/pokemon/wugtrio/back.png differ diff --git a/graphics/pokemon/wugtrio/front.png b/graphics/pokemon/wugtrio/front.png new file mode 100755 index 000000000000..24aa488e3622 Binary files /dev/null and b/graphics/pokemon/wugtrio/front.png differ diff --git a/graphics/pokemon/wugtrio/icon.png b/graphics/pokemon/wugtrio/icon.png new file mode 100755 index 000000000000..1b6704478727 Binary files /dev/null and b/graphics/pokemon/wugtrio/icon.png differ diff --git a/graphics/pokemon/wugtrio/normal.pal b/graphics/pokemon/wugtrio/normal.pal new file mode 100755 index 000000000000..61d957fca329 --- /dev/null +++ b/graphics/pokemon/wugtrio/normal.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +168 60 80 +248 120 152 +120 40 56 +248 252 248 +240 80 96 +16 16 16 +128 128 128 +248 248 248 +184 180 192 +48 48 56 +64 72 88 +104 128 128 +80 104 112 +0 0 0 +0 0 0 diff --git a/graphics/pokemon/wugtrio/shiny.pal b/graphics/pokemon/wugtrio/shiny.pal new file mode 100755 index 000000000000..ae0ab9eef7ff --- /dev/null +++ b/graphics/pokemon/wugtrio/shiny.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +152 208 160 +55 58 158 +248 120 152 +40 33 117 +248 252 248 +75 79 197 +16 16 16 +134 61 19 +242 158 69 +203 102 24 +48 48 56 +64 72 88 +104 128 128 +80 104 112 +0 0 0 +0 0 0 diff --git a/graphics/pokemon_storage/wallpapers/icons/bolt_japan.png b/graphics/pokemon_storage/wallpapers/icons/bolt_japan.png new file mode 100644 index 000000000000..a217a5642faf Binary files /dev/null and b/graphics/pokemon_storage/wallpapers/icons/bolt_japan.png differ diff --git a/graphics/pokemon_storage/wallpapers/icons/cross_japan.png b/graphics/pokemon_storage/wallpapers/icons/cross_japan.png new file mode 100644 index 000000000000..9367347e9dec Binary files /dev/null and b/graphics/pokemon_storage/wallpapers/icons/cross_japan.png differ diff --git a/graphics/pokemon_storage/wallpapers/icons/plusle_japan.png b/graphics/pokemon_storage/wallpapers/icons/plusle_japan.png new file mode 100644 index 000000000000..f58c05989c8c Binary files /dev/null and b/graphics/pokemon_storage/wallpapers/icons/plusle_japan.png differ diff --git a/include/battle.h b/include/battle.h index cd314eb72885..9d83e0d9f881 100644 --- a/include/battle.h +++ b/include/battle.h @@ -106,7 +106,10 @@ struct DisableStruct u8 stickyWebDone:1; u8 stealthRockDone:1; u8 syrupBombTimer; + u8 syrupBombIsShiny:1; u8 steelSurgeDone:1; + u8 weatherAbilityDone:1; + u8 terrainAbilityDone:1; }; struct ProtectStruct @@ -198,8 +201,6 @@ struct SpecialStatus u8 dancerUsedMove:1; u8 dancerOriginalTarget:3; // End of byte - u8 weatherAbilityDone:1; - u8 terrainAbilityDone:1; u8 emergencyExited:1; u8 afterYou:1; }; @@ -234,6 +235,9 @@ struct SideTimer u8 retaliateTimer; u8 damageNonTypesTimer; u8 damageNonTypesType; + u8 rainbowTimer; + u8 seaOfFireTimer; + u8 swampTimer; }; struct FieldTimer @@ -289,6 +293,12 @@ struct AIPartyData // Opposing battlers - party mons. u8 count[NUM_BATTLE_SIDES]; }; +struct SwitchinCandidate +{ + struct BattlePokemon battleMon; + bool8 hypotheticalStatus; +}; + // Ai Data used when deciding which move to use, computed only once before each turn's start. struct AiLogicData { @@ -300,7 +310,6 @@ struct AiLogicData u8 hpPercents[MAX_BATTLERS_COUNT]; u16 partnerMove; u16 speedStats[MAX_BATTLERS_COUNT]; // Speed stats for all battles, calculated only once, same way as damages - u8 moveDmgResult[MAX_BATTLERS_COUNT][MAX_BATTLERS_COUNT][MAX_MON_MOVES]; // MOVE_POWER defines for GetMoveDamageResult ; attacker, target, moveIndex s32 simulatedDmg[MAX_BATTLERS_COUNT][MAX_BATTLERS_COUNT][MAX_MON_MOVES]; // attacker, target, moveIndex u8 effectiveness[MAX_BATTLERS_COUNT][MAX_BATTLERS_COUNT][MAX_MON_MOVES]; // attacker, target, moveIndex u8 moveAccuracy[MAX_BATTLERS_COUNT][MAX_BATTLERS_COUNT][MAX_MON_MOVES]; // attacker, target, moveIndex @@ -308,6 +317,8 @@ struct AiLogicData bool8 shouldSwitchMon; // Because all available moves have no/little effect. Each bit per battler. u8 monToSwitchId[MAX_BATTLERS_COUNT]; // ID of the mon to switch. bool8 weatherHasEffect; // The same as WEATHER_HAS_EFFECT. Stored here, so it's called only once. + u8 mostSuitableMonId; // Stores result of GetMostSuitableMonToSwitchInto, which decides which generic mon the AI would switch into if they decide to switch. This can be overruled by specific mons found in ShouldSwitch; the final resulting mon is stored in AI_monToSwitchIntoId. + struct SwitchinCandidate switchinCandidate; // Struct used for deciding which mon to switch to in battle_ai_switch_items.c }; struct AI_ThinkingStruct @@ -671,7 +682,7 @@ struct BattleStruct u8 lastMoveFailed; // as bits for each battler, for the sake of Stomping Tantrum u8 lastMoveTarget[MAX_BATTLERS_COUNT]; // The last target on which each mon used a move, for the sake of Instruct u16 tracedAbility[MAX_BATTLERS_COUNT]; - u16 hpBefore[MAX_BATTLERS_COUNT]; // Hp of battlers before using a move. For Berserk + u16 hpBefore[MAX_BATTLERS_COUNT]; // Hp of battlers before using a move. For Berserk and Anger Shell. bool8 spriteIgnore0Hp; struct Illusion illusion[MAX_BATTLERS_COUNT]; s32 aiFinalScore[MAX_BATTLERS_COUNT][MAX_BATTLERS_COUNT][MAX_MON_MOVES]; // AI, target, moves to make debugging easier @@ -699,7 +710,7 @@ struct BattleStruct bool8 effectsBeforeUsingMoveDone:1; // Mega Evo and Focus Punch/Shell Trap effects. u8 targetsDone[MAX_BATTLERS_COUNT]; // Each battler as a bit. u16 overwrittenAbilities[MAX_BATTLERS_COUNT]; // abilities overwritten during battle (keep separate from battle history in case of switching) - bool8 allowedToChangeFormInWeather[PARTY_SIZE][2]; // For each party member and side, used by Ice Face. + bool8 allowedToChangeFormInWeather[PARTY_SIZE][NUM_BATTLE_SIDES]; // For each party member and side, used by Ice Face. u8 battleBondTransformed[NUM_BATTLE_SIDES]; // Bitfield for each party. u8 storedHealingWish:4; // Each battler as a bit. u8 storedLunarDance:4; // Each battler as a bit. @@ -715,8 +726,12 @@ struct BattleStruct bool8 trainerSlideMegaEvolutionMsgDone; bool8 trainerSlideZMoveMsgDone; bool8 trainerSlideBeforeFirstTurnMsgDone; + bool8 trainerSlideDynamaxMsgDone; u32 aiDelayTimer; // Counts number of frames AI takes to choose an action. u32 aiDelayFrames; // Number of frames it took to choose an action. + bool8 transformZeroToHero[PARTY_SIZE][NUM_BATTLE_SIDES]; + u8 pledgeMove:1; + bool8 isSkyBattle:1; }; // The palaceFlags member of struct BattleStruct contains 1 flag per move to indicate which moves the AI should consider, diff --git a/include/battle_ai_switch_items.h b/include/battle_ai_switch_items.h index 9a7e5f7e74d5..8c22baa3122e 100644 --- a/include/battle_ai_switch_items.h +++ b/include/battle_ai_switch_items.h @@ -3,7 +3,7 @@ void GetAIPartyIndexes(u32 battlerId, s32 *firstId, s32 *lastId); void AI_TrySwitchOrUseItem(u32 battler); -u8 GetMostSuitableMonToSwitchInto(u32 battler); +u8 GetMostSuitableMonToSwitchInto(u32 battler, bool32 switchAfterMonKOd); bool32 ShouldSwitch(u32 battler); #endif // GUARD_BATTLE_AI_SWITCH_ITEMS_H diff --git a/include/battle_ai_util.h b/include/battle_ai_util.h index 76362a2c7a9b..9b30d103e4b9 100644 --- a/include/battle_ai_util.h +++ b/include/battle_ai_util.h @@ -64,6 +64,7 @@ bool32 AI_IsAbilityOnSide(u32 battlerId, u32 ability); bool32 AI_MoveMakesContact(u32 ability, u32 holdEffect, u32 move); u32 AI_GetBattlerMoveTargetType(u32 battlerId, u32 move); bool32 ShouldUseZMove(u32 battlerAtk, u32 battlerDef, u32 chosenMove); +u32 AI_CalcSecondaryEffectChance(u32 battler, u32 secondaryEffectChance); // stat stage checks bool32 AnyStatIsRaised(u32 battlerId); @@ -91,9 +92,6 @@ bool32 AI_IsDamagedByRecoil(u32 battler); u32 GetNoOfHitsToKO(u32 dmg, s32 hp); u32 GetNoOfHitsToKOBattlerDmg(u32 dmg, u32 battlerDef); u32 GetNoOfHitsToKOBattler(u32 battlerAtk, u32 battlerDef, u32 moveIndex); -bool32 IsInIgnoredPowerfulMoveEffects(u32 effect); -void SetMovesDamageResults(u32 battlerAtk, u16 *moves); -u32 GetMoveDamageResult(u32 battlerAtk, u32 battlerDef, u32 moveIndex); u32 GetCurrDamageHpPercent(u32 battlerAtk, u32 battlerDef); uq4_12_t AI_GetTypeEffectiveness(u32 move, u32 battlerAtk, u32 battlerDef); u32 AI_GetMoveEffectiveness(u32 move, u32 battlerAtk, u32 battlerDef); @@ -113,6 +111,7 @@ bool32 IsMoveRedirectionPrevented(u32 move, u32 atkAbility); bool32 IsMoveEncouragedToHit(u32 battlerAtk, u32 battlerDef, u32 move); bool32 IsHazardMoveEffect(u32 moveEffect); bool32 IsEncoreEncouragedEffect(u32 moveEffect); +bool32 IsChargingMove(u32 battlerAtk, u32 effect); void ProtectChecks(u32 battlerAtk, u32 battlerDef, u32 move, u32 predictedMove, s32 *score); bool32 ShouldSetSandstorm(u32 battler, u32 ability, u32 holdEffect); bool32 ShouldSetHail(u32 battler, u32 ability, u32 holdEffect); @@ -128,7 +127,6 @@ bool32 ShouldFakeOut(u32 battlerAtk, u32 battlerDef, u32 move); bool32 HasThawingMove(u32 battler); bool32 IsStatRaisingEffect(u32 effect); bool32 IsStatLoweringEffect(u32 effect); -bool32 IsStatRaisingEffect(u32 effect); bool32 IsAttackBoostMoveEffect(u32 effect); bool32 IsUngroundingEffect(u32 effect); bool32 IsSemiInvulnerable(u32 battlerDef, u32 move); @@ -177,7 +175,6 @@ bool32 ShouldUseWishAromatherapy(u32 battlerAtk, u32 battlerDef, u32 move); // party logic struct BattlePokemon *AllocSaveBattleMons(void); void FreeRestoreBattleMons(struct BattlePokemon *savedBattleMons); -s32 AI_CalcPartyMonBestMoveDamage(u32 battlerAtk, u32 battlerDef, struct Pokemon *attackerMon, struct Pokemon *targetMon); s32 CountUsablePartyMons(u32 battlerId); bool32 IsPartyFullyHealedExceptBattler(u32 battler); bool32 PartyHasMoveSplit(u32 battlerId, u32 split); @@ -192,4 +189,6 @@ void IncreaseSleepScore(u32 battlerAtk, u32 battlerDef, u32 move, s32 *score); void IncreaseConfusionScore(u32 battlerAtk, u32 battlerDef, u32 move, s32 *score); void IncreaseFrostbiteScore(u32 battlerAtk, u32 battlerDef, u32 move, s32 *score); +s32 AI_CalcPartyMonDamage(u32 move, u32 battlerAtk, u32 battlerDef, struct BattlePokemon switchinCandidate, bool8 isPartyMonAttacker); + #endif //GUARD_BATTLE_AI_UTIL_H diff --git a/include/battle_controllers.h b/include/battle_controllers.h index b2f9529b8f41..590a5de0706d 100644 --- a/include/battle_controllers.h +++ b/include/battle_controllers.h @@ -251,7 +251,7 @@ void BtlController_EmitDrawPartyStatusSummary(u32 battler, u32 bufferId, struct void BtlController_EmitHidePartyStatusSummary(u32 battler, u32 bufferId); void BtlController_EmitEndBounceEffect(u32 battler, u32 bufferId); void BtlController_EmitSpriteInvisibility(u32 battler, u32 bufferId, bool8 isInvisible); -void BtlController_EmitBattleAnimation(u32 battler, u32 bufferId, u8 animationId, u16 argument); +void BtlController_EmitBattleAnimation(u32 battler, u32 bufferId, u8 animationId, struct DisableStruct* disableStructPtr, u16 argument); void BtlController_EmitLinkStandbyMsg(u32 battler, u32 bufferId, u8 mode, bool32 record); void BtlController_EmitResetActionMoveSelection(u32 battler, u32 bufferId, u8 caseId); void BtlController_EmitEndLinkBattle(u32 battler, u32 bufferId, u8 battleOutcome); diff --git a/include/battle_message.h b/include/battle_message.h index e01c916c3c57..338712606a90 100644 --- a/include/battle_message.h +++ b/include/battle_message.h @@ -238,6 +238,7 @@ enum TRAINER_SLIDE_MEGA_EVOLUTION, TRAINER_SLIDE_Z_MOVE, TRAINER_SLIDE_BEFORE_FIRST_TURN, + TRAINER_SLIDE_DYNAMAX, }; void BufferStringBattle(u16 stringID, u32 battler); diff --git a/include/battle_script_commands.h b/include/battle_script_commands.h index e78b57e4d1dd..a4e8a166edc8 100644 --- a/include/battle_script_commands.h +++ b/include/battle_script_commands.h @@ -27,6 +27,7 @@ s32 CalcCritChanceStage(u32 battlerAtk, u32 battlerDef, u32 move, bool32 recordA s32 GetCritHitChance(s32 critChanceIndex); u32 GetTotalAccuracy(u32 battlerAtk, u32 battlerDef, u32 move, u32 atkAbility, u32 defAbility, u32 atkHoldEffect, u32 defHoldEffect); u8 GetBattlerTurnOrderNum(u8 battlerId); +bool32 NoAliveMonsForPlayer(void); bool32 NoAliveMonsForEitherParty(void); void SetMoveEffect(bool32 primary, u32 certain); bool32 CanBattlerSwitch(u32 battlerId); @@ -52,6 +53,7 @@ void StealTargetItem(u8 battlerStealer, u8 battlerItem); u8 GetCatchingBattler(void); u32 GetHighestStatId(u32 battlerId); bool32 ProteanTryChangeType(u32 battler, u32 ability, u32 move, u32 moveType); +bool32 IsMoveNotAllowedInSkyBattles(u32 move); bool32 DoSwitchInAbilitiesItems(u32 battlerId); u8 GetFirstFaintedPartyIndex(u8 battlerId); bool32 IsMoveAffectedByParentalBond(u32 move, u32 battler); diff --git a/include/battle_scripts.h b/include/battle_scripts.h index 3cfc9ace1606..4790998cc49d 100644 --- a/include/battle_scripts.h +++ b/include/battle_scripts.h @@ -459,6 +459,7 @@ extern const u8 BattleScript_RuinAbilityActivates[]; extern const u8 BattleScript_CudChewActivates[]; extern const u8 BattleScript_SupremeOverlordActivates[]; extern const u8 BattleScript_CostarActivates[]; +extern const u8 BattleScript_ZeroToHeroActivates[]; extern const u8 BattleScript_ToxicDebrisActivates[]; extern const u8 BattleScript_EarthEaterActivates[]; extern const u8 BattleScript_MimicryActivates_End3[]; @@ -481,6 +482,14 @@ extern const u8 BattleScript_SelectingNotAllowedCurrentMove[]; extern const u8 BattleScript_SelectingNotAllowedCurrentMoveInPalace[]; extern const u8 BattleScript_SaltCureExtraDamage[]; extern const u8 BattleScript_SyrupBombEndTurn[]; +extern const u8 BattleScript_SyrupBombActivates[]; +extern const u8 BattleScript_EffectCombinedPledge_Water[]; +extern const u8 BattleScript_EffectCombinedPledge_Fire[]; +extern const u8 BattleScript_EffectCombinedPledge_Grass[]; +extern const u8 BattleScript_TheRainbowDisappeared[]; +extern const u8 BattleScript_HurtByTheSeaOfFire[]; +extern const u8 BattleScript_TheSeaOfFireDisappeared[]; +extern const u8 BattleScript_TheSwampDisappeared[]; // zmoves extern const u8 BattleScript_ZMoveActivateDamaging[]; diff --git a/include/battle_setup.h b/include/battle_setup.h index 96aeb4b761a4..a2009eea4122 100644 --- a/include/battle_setup.h +++ b/include/battle_setup.h @@ -70,5 +70,8 @@ u16 CountBattledRematchTeams(u16 trainerId); void DoStandardWildBattle_Debug(void); void BattleSetup_StartTrainerBattle_Debug(void); +s32 TrainerIdToRematchTableId(const struct RematchTrainer *table, u16 trainerId); +s32 FirstBattleTrainerIdToRematchTableId(const struct RematchTrainer *table, u16 trainerId); +u16 GetRematchTrainerIdFromTable(const struct RematchTrainer *table, u16 firstBattleTrainerId); #endif // GUARD_BATTLE_SETUP_H diff --git a/include/battle_util.h b/include/battle_util.h index 0c67352b11f4..f58a5a15436f 100644 --- a/include/battle_util.h +++ b/include/battle_util.h @@ -157,7 +157,7 @@ bool32 CanBattlerEscape(u32 battler); // no ability check void BattleScriptExecute(const u8 *BS_ptr); void BattleScriptPushCursorAndCallback(const u8 *BS_ptr); u8 ItemBattleEffects(u8 caseID, u32 battler, bool32 moveTurn); -void ClearFuryCutterDestinyBondGrudge(u32 battler); +void ClearVariousBattlerFlags(u32 battler); void HandleAction_RunBattleScript(void); u32 SetRandomTarget(u32 battler); u32 GetMoveTarget(u16 move, u8 setTarget); @@ -239,7 +239,7 @@ bool32 CanBeFrozen(u32 battler); bool32 CanGetFrostbite(u32 battler); bool32 CanBeConfused(u32 battler); bool32 IsBattlerTerrainAffected(u32 battler, u32 terrainFlag); -u32 GetBattlerFriendshipScore(u32 battler); +u32 GetBattlerAffectionHearts(u32 battler); u32 CountBattlerStatIncreases(u32 battler, bool32 countEvasionAcc); bool32 IsMyceliumMightOnField(void); bool32 ChangeTypeBasedOnTerrain(u32 battler); @@ -247,7 +247,9 @@ void RemoveConfusionStatus(u32 battler); u8 GetBattlerGender(u32 battler); bool32 AreBattlersOfOppositeGender(u32 battler1, u32 battler2); bool32 AreBattlersOfSameGender(u32 battler1, u32 battler2); -u32 CalcSecondaryEffectChance(u32 battler, u8 secondaryEffectChance); +u32 CalcSecondaryEffectChance(u32 battler, u8 secondaryEffectChance, u16 moveEffect); u8 GetBattlerType(u32 battler, u8 typeIndex); +bool8 CanMonParticipateInSkyBattle(struct Pokemon *mon); +bool8 IsMonBannedFromSkyBattles(u16 species); #endif // GUARD_BATTLE_UTIL_H diff --git a/include/config.h b/include/config.h index 427c96a28b36..49559e78e8a5 100644 --- a/include/config.h +++ b/include/config.h @@ -74,7 +74,8 @@ #define GEN_LATEST GEN_9 // General settings -#define EXPANSION_INTRO FALSE // If TRUE, a custom RHH intro will play after the vanilla copyright screen. -#define POKEDEX_PLUS_HGSS TRUE // If TRUE, enables the custom HGSS style Pokedex. +#define EXPANSION_INTRO TRUE // If TRUE, a custom RHH intro will play after the vanilla copyright screen. +#define POKEDEX_PLUS_HGSS FALSE // If TRUE, enables the custom HGSS style Pokedex. +#define SUMMARY_SCREEN_NATURE_COLORS TRUE // If TRUE, nature-based stat boosts and reductions will be red and blue in the summary screen. #endif // GUARD_CONFIG_H diff --git a/include/config/battle.h b/include/config/battle.h index e0c3ae2acc1b..503ce9328e74 100644 --- a/include/config/battle.h +++ b/include/config/battle.h @@ -56,7 +56,7 @@ #define B_TAUNT_TURNS GEN_LATEST // In Gen5+, Taunt lasts 3 turns if the user acts before the target, or 4 turns if the target acted before the user. In Gen3, taunt lasts 2 turns and in Gen 4, 3-5 turns. #define B_SPORT_TURNS GEN_LATEST // In Gen6+, Water/Mud Sport last 5 turns, even if the user switches out. #define B_MEGA_EVO_TURN_ORDER GEN_LATEST // In Gen7, a Pokémon's Speed after Mega Evolution is used to determine turn order, not its Speed before. -#define B_RECALC_TURN_AFTER_ACTIONS GEN_LATEST // In Gen8, switching/using a move affects the current turn's order of actions. +#define B_RECALC_TURN_AFTER_ACTIONS GEN_LATEST // In Gen8, switching/using a move affects the current turn's order of actions, better known as dynamic speed. #define B_FAINT_SWITCH_IN GEN_LATEST // In Gen4+, sending out a new Pokémon after the previous one fainted happens at the end of the turn. Before, it would happen after each action. // Move data settings @@ -117,7 +117,6 @@ #define B_SHADOW_TAG_ESCAPE GEN_LATEST // In Gen4+, if both sides have a Pokémon with Shadow Tag, all battlers can escape. Before, neither side could escape this situation. #define B_MOODY_ACC_EVASION GEN_LATEST // In Gen8, Moody CANNOT raise Accuracy and Evasion anymore. #define B_FLASH_FIRE_FROZEN GEN_LATEST // In Gen5+, Flash Fire can trigger even when frozen, when it couldn't before. -#define B_SYNCHRONIZE_NATURE GEN_LATEST // In Gen8, if a Pokémon with Synchronize is leading the party, it's 100% guaranteed that wild Pokémon will have the same Nature, as opposed to 50% previously. In Gen9, it has no out-of-battle effect. #define B_SYNCHRONIZE_TOXIC GEN_LATEST // In Gen5+, if a Pokémon with Synchronize is badly poisoned, the opponent will also become badly poisoned. Previously, the opponent would become regular poisoned. #define B_UPDATED_INTIMIDATE GEN_LATEST // In Gen8, Intimidate doesn't work on opponents with the Inner Focus, Scrappy, Own Tempo or Oblivious abilities. It also activates Rattled. #define B_OBLIVIOUS_TAUNT GEN_LATEST // In Gen6+, Pokémon with Oblivious can't be taunted. @@ -129,6 +128,8 @@ #define B_LEAF_GUARD_PREVENTS_REST GEN_LATEST // In Gen5+, Leaf Guard prevents the use of Rest in harsh sunlight. #define B_SNOW_WARNING GEN_LATEST // In Gen9+, Snow Warning will summon snow instead of hail. #define B_TRANSISTOR_BOOST GEN_LATEST // In Gen9+, Transistor will only boost Electric-type moves by 1.3x as opposed to 1.5x. +#define B_ILLUMINATE_EFFECT GEN_LATEST // In Gen9+, Illuminate prevents accuracy reductions and ignores the target's evasion. +#define B_WEAK_ARMOR_SPEED GEN_LATEST // In Gen7+, Weak Armor raises Speed by 2 stages instead of 1 when hit by a physical move. // Item settings #define B_HP_BERRIES GEN_LATEST // In Gen4+, berries which restore HP activate immediately after HP drops to half. In Gen3, the effect occurs at the end of the turn. @@ -169,6 +170,12 @@ #define VAR_TERRAIN 0 // If this var has a value, assigning a STATUS_FIELD_xx_TERRAIN to it before battle causes the battle to start with that terrain active #define B_VAR_WILD_AI_FLAGS 0 // If not 0, you can use this var to add to default wild AI flags. NOT usable with flags above (1 << 15) +// Sky Battles +#define B_FLAG_SKY_BATTLE 0 // If this flag has a value, the player will be able to engage in scripted Sky Battles. +#define B_VAR_SKY_BATTLE 0 // If this var has a value, the game will remember the positions of Pokémon used in Sky Battles. + +#define B_SKY_BATTLE_STRICT_ELIGIBILITY FALSE //If TRUE, Sky Battles will use the eligibility from Pokémon XY. If FALSE, all Flying-types or Pokémon with Levitate are allowed. + // Flag and Var settings #define B_RESET_FLAGS_VARS_AFTER_WHITEOUT TRUE // If TRUE, Overworld_ResetBattleFlagsAndVars will reset battle-related Flags and Vars when the player whites out. @@ -207,11 +214,12 @@ #define B_MULTI_BATTLE_WHITEOUT GEN_LATEST // In Gen4+, multi battles end when the Player and also their Partner don't have any more Pokémon to fight. #define B_EVOLUTION_AFTER_WHITEOUT GEN_LATEST // In Gen6+, Pokemon that qualify for evolution after battle will evolve even if the player loses. #define B_WILD_NATURAL_ENEMIES TRUE // If set to TRUE, certain wild mon species will attack other species when partnered in double wild battles (eg. Zangoose vs Seviper) -#define B_AFFECTION_MECHANICS FALSE // In Gen6+, there's a stat called affection that can trigger different effects in battle. From LGPE onwards, those effects use friendship instead. +#define B_AFFECTION_MECHANICS TRUE // In Gen6+, there's a stat called affection that can trigger different effects in battle. From LGPE onwards, those effects use friendship instead. #define B_TRAINER_CLASS_POKE_BALLS GEN_LATEST // In Gen7+, trainers will use certain types of Poké Balls depending on their trainer class. -#define B_OBEDIENCE_MECHANICS GEN_7 // In PLA+ (here Gen8+), obedience restrictions also apply to non-outsider Pokémon, albeit based on their level met rather than actual level +#define B_OBEDIENCE_MECHANICS GEN_LATEST // In PLA+ (here Gen8+), obedience restrictions also apply to non-outsider Pokémon, albeit based on their level met rather than actual level #define B_USE_FROSTBITE FALSE // In PLA, Frostbite replaces Freeze. Enabling this flag does the same here. Moves can still be cherry-picked to either Freeze or Frostbite. Freeze-Dry, Secret Power & Tri Attack depend on this config. #define B_OVERWORLD_SNOW GEN_LATEST // In Gen9+, overworld Snow will summon snow instead of hail. +#define B_TOXIC_REVERSAL GEN_LATEST // In Gen5+, bad poison will change to regular poison at the end of battles. // Animation Settings #define B_NEW_SWORD_PARTICLE TRUE // If set to TRUE, it updates Swords Dance's particle. diff --git a/include/config/item.h b/include/config/item.h index 55de3fdb6035..868afae1a784 100644 --- a/include/config/item.h +++ b/include/config/item.h @@ -29,4 +29,7 @@ #define VAR_LAST_REPEL_LURE_USED 0 // If this var has been assigned, last Repel/Lure used will be saved and the player will get prompted with the vanilla repel YES/NO option, unless I_REPEL_LURE_MENU is set to TRUE. #define I_REPEL_LURE_MENU TRUE // If TRUE, the player is able to choose which Repel/Lure to use once the previous one runs out. Cursor position is saved by VAR_LAST_REPEL_LURE_USED if not 0. +// Vs. Seeker +#define I_VS_SEEKER_CHARGING 0 // If this flag is assigned, the Vs Seeker will functionlity will be enabled. When the player has the Vs. Seeker, Match Call rematch functions will stop working. + #endif // GUARD_CONFIG_ITEM_H diff --git a/include/config/overworld.h b/include/config/overworld.h index e8056236a014..34880644211d 100644 --- a/include/config/overworld.h +++ b/include/config/overworld.h @@ -6,9 +6,25 @@ // Other settings #define OW_POISON_DAMAGE GEN_LATEST // In Gen4, Pokémon no longer faint from Poison in the overworld. In Gen5+, they no longer take damage at all. +#define OW_TIMES_OF_DAY GEN_LATEST // Different generations have the times of day change at different times // PC settings #define OW_PC_PRESS_B GEN_LATEST // In Gen4, pressing B when holding a Pokémon is equivalent to placing it. In Gen3, it gives the "You're holding a Pokémon!" error. +#define OW_PC_JAPAN_WALDA_ICONS TRUE // In the US release of Emerald, the Cross, Bolt, and Plusle icons for Walda's wallpapers were left blank from the Japan release. Setting this to TRUE will restore them. + +// Out-of-battle Ability effects +#define OW_SYNCHRONIZE_NATURE GEN_LATEST // In Gen8, if a Pokémon with Synchronize is leading the party, it's 100% guaranteed that wild Pokémon will have the same Nature, as opposed to 50% previously. Stationary Pokémon are excluded in Gen3. In Gen6, all No Eggs Discovered gift Pokémon will have the same Nature, while in Gen7 all gift Pokémon will, regardless of Egg Group - In Gen 8, no gift Pokémon are affected. In Gen9, this ability has no out-of-battle effect. +#define OW_COMPOUND_EYES GEN_LATEST // Prior to Gen9, if a Pokémon with Compound Eyes is leading the party, the wild held item rate is increased to 60%/20%. +#define OW_SUPER_LUCK GEN_LATEST // In Gen8, if a Pokémon with Super Luck is leading the party, the wild held item rate is increased to 60%/20%. +#define OW_CUTE_CHARM GEN_LATEST // Prior to Gen9, if a Pokémon with Cute Charm is leading the party, wild encounters have a 66.7% chance to be forced to be of the opposite gender. +#define OW_ILLUMINATE GEN_LATEST // Prior to Gen9, if a Pokémon with Illuminate is leading the party, the wild encounter rate is doubled. +#define OW_INFILTRATOR GEN_LATEST // In Gen8, if a Pokémon with Infiltrator is leading the party, the wild encounter rate is halved. +#define OW_HARVEST GEN_LATEST // In Gen8, if a Pokémon with Harvest is leading the party, there is a 50% chance to encounter a Grass-type Pokémon. +#define OW_LIGHTNING_ROD GEN_LATEST // In Gen8, if a Pokémon with Lightning Rod is leading the party, there is a 50% chance to encounter an Electric-type Pokémon. +#define OW_STORM_DRAIN GEN_LATEST // In Gen8, if a Pokémon with Storm Drain is leading the party, there is a 50% chance to encounter a Water-type Pokémon. +#define OW_FLASH_FIRE GEN_LATEST // In Gen8, if a Pokémon with Flash Fire is leading the party, there is a 50% chance to encounter a Fire-type Pokémon. +#define OW_MAGNET_PULL GEN_LATEST // Prior to Gen9, if a Pokémon with Magnet Pull is leading the party, there is a 50% chance to encounter a Steel-type Pokémon. +#define OW_STATIC GEN_LATEST // Prior to Gen9, if a Pokémon with Static is leading the party, there is a 50% chance to encounter an Electric-type Pokémon. // Overworld flags // To use the following features in scripting, replace the 0s with the flag ID you're assigning it to. @@ -17,4 +33,6 @@ #define OW_FLAG_NO_TRAINER_SEE 0 // If this flag is set, trainers will not battle the player unless they're talked to. #define OW_FLAG_NO_COLLISION 0 // If this flag is set, the player will be able to walk over tiles with collision. Mainly intended for debugging purposes. +#define BATTLE_PYRAMID_RANDOM_ENCOUNTERS FALSE // If set to TRUE, battle pyramid Pokemon will be generated randomly based on the round's challenge instead of hardcoded in src/data/battle_frontier/battle_pyramid_level_50_wild_mons.h (or open_level_wild_mons.h) + #endif // GUARD_CONFIG_OVERWORLD_H diff --git a/include/config/pokemon.h b/include/config/pokemon.h index 16cc02c8ff66..3d5950c93042 100644 --- a/include/config/pokemon.h +++ b/include/config/pokemon.h @@ -6,6 +6,7 @@ #define P_UPDATED_STATS GEN_LATEST // Since Gen 6, Pokémon stats are updated with each passing generation. #define P_UPDATED_ABILITIES GEN_LATEST // Since Gen 6, certain Pokémon have their abilities changed. #define P_UPDATED_EGG_GROUPS GEN_LATEST // Since Gen 8, certain Pokémon have gained new egg groups. +#define P_UPDATED_FRIENDSHIP GEN_LATEST // Since Gen 8, the base friendship of certain Pokémon was changed. // Evolution settings #define P_FRIENDSHIP_EVO_THRESHOLD GEN_LATEST // Since Gen 8, Pokémon that evolve by friendship evolve at or above 160 friendship instead of 220. @@ -24,10 +25,10 @@ // Species-specific settings #define P_SHEDINJA_BALL GEN_LATEST // Since Gen 4, Shedinja requires a Poké Ball for its evolution. In Gen 3, Shedinja inherits Nincada's Ball. #define P_KADABRA_EVERSTONE GEN_LATEST // Since Gen 4, Kadabra can evolve even when holding an Everstone. -#define P_HIPPO_GENDER_DIFF_ICONS TRUE // If TRUE, will give Hippopotas and Hippowdon custom icons for their female forms. #define P_SHUCKLE_BERRY_JUICE TRUE // In Gen 2, Shuckle had a 1/16 chance of converting Berry that it's holding into Berry Juice. Setting this to TRUE will allow to do this with an Oran Berry, which is the spiritual succesor of the Berry item. // Other settings +#define P_CUSTOM_GENDER_DIFF_ICONS TRUE // If TRUE, will give more Pokémon custom icons for their female forms, i.e. Hippopotas and Hippowdon #define P_LEGENDARY_PERFECT_IVS GEN_LATEST // Since Gen 6, Legendaries, Mythicals and Ultra Beasts found in the wild or given through gifts have at least 3 perfect IVs. #define P_EV_CAP GEN_LATEST // Since Gen 6, the max EVs per stat is 252 instead of 255. @@ -37,14 +38,7 @@ #define P_FLAG_FORCE_SHINY 0 // If this flag is set, all wild and gift Pokémon will forced into being Shiny. #define P_FLAG_FORCE_NO_SHINY 0 // If this flag is set, all wild and gift Pokémon will forced into NOT being Shiny. -// Modifying the latest generation WILL change the saveblock due to Dex flags and will require a new save file. -// Forms are kept based on the base species, Eg: Meowth and Persian will keep all of their forms, but Perrserker will not be available if P_GEN_8_POKEMON is set to FALSE. -// If you're disabling a generation previous to others (eg: Gen 5 but not Gen 6, 7 and 8), -// remember to update NATIONAL_DEX enum in include/constants/pokedex.h to avoid players from softlocking in the non-existant entries. -#define P_GEN_4_POKEMON FALSE // Generation 4 Pokémon (DPPt, HGSS) -#define P_GEN_5_POKEMON FALSE // Generation 5 Pokémon (BW, B2W2) -#define P_GEN_6_POKEMON FALSE // Generation 6 Pokémon (XY, ORAS) -#define P_GEN_7_POKEMON FALSE // Generation 7 Pokémon (SM, USUM, LGPE) -#define P_GEN_8_POKEMON FALSE // Generation 8 Pokémon (SwSh, BDSP, LA) +// Go here if you want to disable specific families of Pokémon. +#include "config/species_enabled.h" #endif // GUARD_CONFIG_POKEMON_H diff --git a/include/config/species_enabled.h b/include/config/species_enabled.h new file mode 100644 index 000000000000..9224c2b29742 --- /dev/null +++ b/include/config/species_enabled.h @@ -0,0 +1,597 @@ +#ifndef GUARD_CONFIG_SPECIES_ENABLED_H +#define GUARD_CONFIG_SPECIES_ENABLED_H + +// Modifying the latest generation WILL change the saveblock due to Dex flags and will require a new save file. +// Generations of Pokémon are defined by the first member introduced, +// so Pikachu depends on the Gen 1 setting despite Pichu being the lowest member of the evolution tree. +// Eg: If P_GEN_2_POKEMON is set to FALSE, all members of the Sneasel Family will be disabled +// (Sneasel + Hisuian, Weavile and Sneasler). +#define P_GEN_1_POKEMON TRUE // Generation 1 Pokémon (RGBY) +#define P_GEN_2_POKEMON TRUE // Generation 2 Pokémon (GSC) +#define P_GEN_3_POKEMON TRUE // Generation 3 Pokémon (RSE, FRLG) +#define P_GEN_4_POKEMON TRUE // Generation 4 Pokémon (DPPt, HGSS) +#define P_GEN_5_POKEMON TRUE // Generation 5 Pokémon (BW, B2W2) +#define P_GEN_6_POKEMON TRUE // Generation 6 Pokémon (XY, ORAS) +#define P_GEN_7_POKEMON TRUE // Generation 7 Pokémon (SM, USUM, LGPE) +#define P_GEN_8_POKEMON TRUE // Generation 8 Pokémon (SwSh, BDSP, LA) +#define P_GEN_9_POKEMON TRUE // Generation 9 Pokémon (SV) + +// Setting this to TRUE will add the new evolutions to the Regional Dex. +#define P_NEW_EVOS_IN_REGIONAL_DEX TRUE + +// Battle gimmick specific Forms. +#define P_MEGA_EVOLUTIONS TRUE +#define P_PRIMAL_REVERSIONS TRUE // Groudon and Kyogre only. +#define P_ULTRA_BURST_FORMS TRUE // Ultra Necrozma only. +#define P_GIGANTAMAX_FORMS TRUE + +// Regional Forms. Includes Regional Form evolutions, like Sirfetch'd. +#define P_REGIONAL_FORMS TRUE +#define P_ALOLAN_FORMS P_REGIONAL_FORMS +#define P_GALARIAN_FORMS P_REGIONAL_FORMS +#define P_HISUIAN_FORMS P_REGIONAL_FORMS +#define P_PALDEAN_FORMS P_REGIONAL_FORMS + +// Big groups of forms that aren't always desired when choosing families. +#define P_PIKACHU_EXTRA_FORMS TRUE +#define P_COSPLAY_PIKACHU_FORMS P_PIKACHU_EXTRA_FORMS +#define P_CAP_PIKACHU_FORMS P_PIKACHU_EXTRA_FORMS + +// Cross-generation evolutions. Includes pre-evolutions. +#define P_CROSS_GENERATION_EVOS TRUE +#define P_GEN_2_CROSS_EVOS P_CROSS_GENERATION_EVOS +#define P_GEN_3_CROSS_EVOS P_CROSS_GENERATION_EVOS +#define P_GEN_4_CROSS_EVOS P_CROSS_GENERATION_EVOS +//#define P_GEN_5_CROSS_EVOS // Gen 5 didn't introduce any cross-gen evos. +#define P_GEN_6_CROSS_EVOS P_CROSS_GENERATION_EVOS // Just Sylveon. +//#define P_GEN_7_CROSS_EVOS // Alolan evolutions handled by P_ALOLAN_FORMS. +#define P_GEN_8_CROSS_EVOS P_CROSS_GENERATION_EVOS // Regional evolutions handled by P_GALARIAN_FORMS and P_HISUIAN_FORMS. +#define P_GEN_9_CROSS_EVOS P_CROSS_GENERATION_EVOS // Clodsire handled by P_PALDEAN_FORMS. + +// Fusion forms +#define P_FUSION_FORMS TRUE + +// To disable specific families, replace P_GEN_x_POKEMON with FALSE. +#define P_FAMILY_BULBASAUR P_GEN_1_POKEMON +#define P_FAMILY_CHARMANDER P_GEN_1_POKEMON +#define P_FAMILY_SQUIRTLE P_GEN_1_POKEMON +#define P_FAMILY_CATERPIE P_GEN_1_POKEMON +#define P_FAMILY_WEEDLE P_GEN_1_POKEMON +#define P_FAMILY_PIDGEY P_GEN_1_POKEMON +#define P_FAMILY_RATTATA P_GEN_1_POKEMON +#define P_FAMILY_SPEAROW P_GEN_1_POKEMON +#define P_FAMILY_EKANS P_GEN_1_POKEMON +#define P_FAMILY_PIKACHU P_GEN_1_POKEMON +#define P_FAMILY_SANDSHREW P_GEN_1_POKEMON +#define P_FAMILY_NIDORAN P_GEN_1_POKEMON +#define P_FAMILY_CLEFAIRY P_GEN_1_POKEMON +#define P_FAMILY_VULPIX P_GEN_1_POKEMON +#define P_FAMILY_JIGGLYPUFF P_GEN_1_POKEMON +#define P_FAMILY_ZUBAT P_GEN_1_POKEMON +#define P_FAMILY_ODDISH P_GEN_1_POKEMON +#define P_FAMILY_PARAS P_GEN_1_POKEMON +#define P_FAMILY_VENONAT P_GEN_1_POKEMON +#define P_FAMILY_DIGLETT P_GEN_1_POKEMON +#define P_FAMILY_MEOWTH P_GEN_1_POKEMON +#define P_FAMILY_PSYDUCK P_GEN_1_POKEMON +#define P_FAMILY_MANKEY P_GEN_1_POKEMON +#define P_FAMILY_GROWLITHE P_GEN_1_POKEMON +#define P_FAMILY_POLIWAG P_GEN_1_POKEMON +#define P_FAMILY_ABRA P_GEN_1_POKEMON +#define P_FAMILY_MACHOP P_GEN_1_POKEMON +#define P_FAMILY_BELLSPROUT P_GEN_1_POKEMON +#define P_FAMILY_TENTACOOL P_GEN_1_POKEMON +#define P_FAMILY_GEODUDE P_GEN_1_POKEMON +#define P_FAMILY_PONYTA P_GEN_1_POKEMON +#define P_FAMILY_SLOWPOKE P_GEN_1_POKEMON +#define P_FAMILY_MAGNEMITE P_GEN_1_POKEMON +#define P_FAMILY_FARFETCHD P_GEN_1_POKEMON +#define P_FAMILY_DODUO P_GEN_1_POKEMON +#define P_FAMILY_SEEL P_GEN_1_POKEMON +#define P_FAMILY_GRIMER P_GEN_1_POKEMON +#define P_FAMILY_SHELLDER P_GEN_1_POKEMON +#define P_FAMILY_GASTLY P_GEN_1_POKEMON +#define P_FAMILY_ONIX P_GEN_1_POKEMON +#define P_FAMILY_DROWZEE P_GEN_1_POKEMON +#define P_FAMILY_KRABBY P_GEN_1_POKEMON +#define P_FAMILY_VOLTORB P_GEN_1_POKEMON +#define P_FAMILY_EXEGGCUTE P_GEN_1_POKEMON +#define P_FAMILY_CUBONE P_GEN_1_POKEMON +#define P_FAMILY_HITMONS P_GEN_1_POKEMON +#define P_FAMILY_LICKITUNG P_GEN_1_POKEMON +#define P_FAMILY_KOFFING P_GEN_1_POKEMON +#define P_FAMILY_RHYHORN P_GEN_1_POKEMON +#define P_FAMILY_CHANSEY P_GEN_1_POKEMON +#define P_FAMILY_TANGELA P_GEN_1_POKEMON +#define P_FAMILY_KANGASKHAN P_GEN_1_POKEMON +#define P_FAMILY_HORSEA P_GEN_1_POKEMON +#define P_FAMILY_GOLDEEN P_GEN_1_POKEMON +#define P_FAMILY_STARYU P_GEN_1_POKEMON +#define P_FAMILY_MR_MIME P_GEN_1_POKEMON +#define P_FAMILY_SCYTHER P_GEN_1_POKEMON +#define P_FAMILY_JYNX P_GEN_1_POKEMON +#define P_FAMILY_ELECTABUZZ P_GEN_1_POKEMON +#define P_FAMILY_MAGMAR P_GEN_1_POKEMON +#define P_FAMILY_PINSIR P_GEN_1_POKEMON +#define P_FAMILY_TAUROS P_GEN_1_POKEMON +#define P_FAMILY_MAGIKARP P_GEN_1_POKEMON +#define P_FAMILY_LAPRAS P_GEN_1_POKEMON +#define P_FAMILY_DITTO P_GEN_1_POKEMON +#define P_FAMILY_EEVEE P_GEN_1_POKEMON +#define P_FAMILY_PORYGON P_GEN_1_POKEMON +#define P_FAMILY_OMANYTE P_GEN_1_POKEMON +#define P_FAMILY_KABUTO P_GEN_1_POKEMON +#define P_FAMILY_AERODACTYL P_GEN_1_POKEMON +#define P_FAMILY_SNORLAX P_GEN_1_POKEMON +#define P_FAMILY_ARTICUNO P_GEN_1_POKEMON +#define P_FAMILY_ZAPDOS P_GEN_1_POKEMON +#define P_FAMILY_MOLTRES P_GEN_1_POKEMON +#define P_FAMILY_DRATINI P_GEN_1_POKEMON +#define P_FAMILY_MEWTWO P_GEN_1_POKEMON +#define P_FAMILY_MEW P_GEN_1_POKEMON + +#define P_FAMILY_CHIKORITA P_GEN_2_POKEMON +#define P_FAMILY_CYNDAQUIL P_GEN_2_POKEMON +#define P_FAMILY_TOTODILE P_GEN_2_POKEMON +#define P_FAMILY_SENTRET P_GEN_2_POKEMON +#define P_FAMILY_HOOTHOOT P_GEN_2_POKEMON +#define P_FAMILY_LEDYBA P_GEN_2_POKEMON +#define P_FAMILY_SPINARAK P_GEN_2_POKEMON +#define P_FAMILY_CHINCHOU P_GEN_2_POKEMON +#define P_FAMILY_TOGEPI P_GEN_2_POKEMON +#define P_FAMILY_NATU P_GEN_2_POKEMON +#define P_FAMILY_MAREEP P_GEN_2_POKEMON +#define P_FAMILY_MARILL P_GEN_2_POKEMON +#define P_FAMILY_SUDOWOODO P_GEN_2_POKEMON +#define P_FAMILY_HOPPIP P_GEN_2_POKEMON +#define P_FAMILY_AIPOM P_GEN_2_POKEMON +#define P_FAMILY_SUNKERN P_GEN_2_POKEMON +#define P_FAMILY_YANMA P_GEN_2_POKEMON +#define P_FAMILY_WOOPER P_GEN_2_POKEMON +#define P_FAMILY_MURKROW P_GEN_2_POKEMON +#define P_FAMILY_MISDREAVUS P_GEN_2_POKEMON +#define P_FAMILY_UNOWN P_GEN_2_POKEMON +#define P_FAMILY_WOBBUFFET P_GEN_2_POKEMON +#define P_FAMILY_GIRAFARIG P_GEN_2_POKEMON +#define P_FAMILY_PINECO P_GEN_2_POKEMON +#define P_FAMILY_DUNSPARCE P_GEN_2_POKEMON +#define P_FAMILY_GLIGAR P_GEN_2_POKEMON +#define P_FAMILY_SNUBBULL P_GEN_2_POKEMON +#define P_FAMILY_QWILFISH P_GEN_2_POKEMON +#define P_FAMILY_SHUCKLE P_GEN_2_POKEMON +#define P_FAMILY_HERACROSS P_GEN_2_POKEMON +#define P_FAMILY_SNEASEL P_GEN_2_POKEMON +#define P_FAMILY_TEDDIURSA P_GEN_2_POKEMON +#define P_FAMILY_SLUGMA P_GEN_2_POKEMON +#define P_FAMILY_SWINUB P_GEN_2_POKEMON +#define P_FAMILY_CORSOLA P_GEN_2_POKEMON +#define P_FAMILY_REMORAID P_GEN_2_POKEMON +#define P_FAMILY_DELIBIRD P_GEN_2_POKEMON +#define P_FAMILY_MANTINE P_GEN_2_POKEMON +#define P_FAMILY_SKARMORY P_GEN_2_POKEMON +#define P_FAMILY_HOUNDOUR P_GEN_2_POKEMON +#define P_FAMILY_PHANPY P_GEN_2_POKEMON +#define P_FAMILY_STANTLER P_GEN_2_POKEMON +#define P_FAMILY_SMEARGLE P_GEN_2_POKEMON +#define P_FAMILY_MILTANK P_GEN_2_POKEMON +#define P_FAMILY_RAIKOU P_GEN_2_POKEMON +#define P_FAMILY_ENTEI P_GEN_2_POKEMON +#define P_FAMILY_SUICUNE P_GEN_2_POKEMON +#define P_FAMILY_LARVITAR P_GEN_2_POKEMON +#define P_FAMILY_LUGIA P_GEN_2_POKEMON +#define P_FAMILY_HO_OH P_GEN_2_POKEMON +#define P_FAMILY_CELEBI P_GEN_2_POKEMON + +#define P_FAMILY_TREECKO P_GEN_3_POKEMON +#define P_FAMILY_TORCHIC P_GEN_3_POKEMON +#define P_FAMILY_MUDKIP P_GEN_3_POKEMON +#define P_FAMILY_POOCHYENA P_GEN_3_POKEMON +#define P_FAMILY_ZIGZAGOON P_GEN_3_POKEMON +#define P_FAMILY_WURMPLE P_GEN_3_POKEMON +#define P_FAMILY_LOTAD P_GEN_3_POKEMON +#define P_FAMILY_SEEDOT P_GEN_3_POKEMON +#define P_FAMILY_TAILLOW P_GEN_3_POKEMON +#define P_FAMILY_WINGULL P_GEN_3_POKEMON +#define P_FAMILY_RALTS P_GEN_3_POKEMON +#define P_FAMILY_SURSKIT P_GEN_3_POKEMON +#define P_FAMILY_SHROOMISH P_GEN_3_POKEMON +#define P_FAMILY_SLAKOTH P_GEN_3_POKEMON +#define P_FAMILY_NINCADA P_GEN_3_POKEMON +#define P_FAMILY_WHISMUR P_GEN_3_POKEMON +#define P_FAMILY_MAKUHITA P_GEN_3_POKEMON +#define P_FAMILY_NOSEPASS P_GEN_3_POKEMON +#define P_FAMILY_SKITTY P_GEN_3_POKEMON +#define P_FAMILY_SABLEYE P_GEN_3_POKEMON +#define P_FAMILY_MAWILE P_GEN_3_POKEMON +#define P_FAMILY_ARON P_GEN_3_POKEMON +#define P_FAMILY_MEDITITE P_GEN_3_POKEMON +#define P_FAMILY_ELECTRIKE P_GEN_3_POKEMON +#define P_FAMILY_PLUSLE P_GEN_3_POKEMON +#define P_FAMILY_MINUN P_GEN_3_POKEMON +#define P_FAMILY_VOLBEAT_ILLUMISE P_GEN_3_POKEMON +#define P_FAMILY_ROSELIA P_GEN_3_POKEMON +#define P_FAMILY_GULPIN P_GEN_3_POKEMON +#define P_FAMILY_CARVANHA P_GEN_3_POKEMON +#define P_FAMILY_WAILMER P_GEN_3_POKEMON +#define P_FAMILY_NUMEL P_GEN_3_POKEMON +#define P_FAMILY_TORKOAL P_GEN_3_POKEMON +#define P_FAMILY_SPOINK P_GEN_3_POKEMON +#define P_FAMILY_SPINDA P_GEN_3_POKEMON +#define P_FAMILY_TRAPINCH P_GEN_3_POKEMON +#define P_FAMILY_CACNEA P_GEN_3_POKEMON +#define P_FAMILY_SWABLU P_GEN_3_POKEMON +#define P_FAMILY_ZANGOOSE P_GEN_3_POKEMON +#define P_FAMILY_SEVIPER P_GEN_3_POKEMON +#define P_FAMILY_LUNATONE P_GEN_3_POKEMON +#define P_FAMILY_SOLROCK P_GEN_3_POKEMON +#define P_FAMILY_BARBOACH P_GEN_3_POKEMON +#define P_FAMILY_CORPHISH P_GEN_3_POKEMON +#define P_FAMILY_BALTOY P_GEN_3_POKEMON +#define P_FAMILY_LILEEP P_GEN_3_POKEMON +#define P_FAMILY_ANORITH P_GEN_3_POKEMON +#define P_FAMILY_FEEBAS P_GEN_3_POKEMON +#define P_FAMILY_CASTFORM P_GEN_3_POKEMON +#define P_FAMILY_KECLEON P_GEN_3_POKEMON +#define P_FAMILY_SHUPPET P_GEN_3_POKEMON +#define P_FAMILY_DUSKULL P_GEN_3_POKEMON +#define P_FAMILY_TROPIUS P_GEN_3_POKEMON +#define P_FAMILY_CHIMECHO P_GEN_3_POKEMON +#define P_FAMILY_ABSOL P_GEN_3_POKEMON +#define P_FAMILY_SNORUNT P_GEN_3_POKEMON +#define P_FAMILY_SPHEAL P_GEN_3_POKEMON +#define P_FAMILY_CLAMPERL P_GEN_3_POKEMON +#define P_FAMILY_RELICANTH P_GEN_3_POKEMON +#define P_FAMILY_LUVDISC P_GEN_3_POKEMON +#define P_FAMILY_BAGON P_GEN_3_POKEMON +#define P_FAMILY_BELDUM P_GEN_3_POKEMON +#define P_FAMILY_REGIROCK P_GEN_3_POKEMON +#define P_FAMILY_REGICE P_GEN_3_POKEMON +#define P_FAMILY_REGISTEEL P_GEN_3_POKEMON +#define P_FAMILY_LATIAS P_GEN_3_POKEMON +#define P_FAMILY_LATIOS P_GEN_3_POKEMON +#define P_FAMILY_KYOGRE P_GEN_3_POKEMON +#define P_FAMILY_GROUDON P_GEN_3_POKEMON +#define P_FAMILY_RAYQUAZA P_GEN_3_POKEMON +#define P_FAMILY_JIRACHI P_GEN_3_POKEMON +#define P_FAMILY_DEOXYS P_GEN_3_POKEMON + +#define P_FAMILY_TURTWIG P_GEN_4_POKEMON +#define P_FAMILY_CHIMCHAR P_GEN_4_POKEMON +#define P_FAMILY_PIPLUP P_GEN_4_POKEMON +#define P_FAMILY_STARLY P_GEN_4_POKEMON +#define P_FAMILY_BIDOOF P_GEN_4_POKEMON +#define P_FAMILY_KRICKETOT P_GEN_4_POKEMON +#define P_FAMILY_SHINX P_GEN_4_POKEMON +#define P_FAMILY_CRANIDOS P_GEN_4_POKEMON +#define P_FAMILY_SHIELDON P_GEN_4_POKEMON +#define P_FAMILY_BURMY P_GEN_4_POKEMON +#define P_FAMILY_COMBEE P_GEN_4_POKEMON +#define P_FAMILY_PACHIRISU P_GEN_4_POKEMON +#define P_FAMILY_BUIZEL P_GEN_4_POKEMON +#define P_FAMILY_CHERUBI P_GEN_4_POKEMON +#define P_FAMILY_SHELLOS P_GEN_4_POKEMON +#define P_FAMILY_DRIFLOON P_GEN_4_POKEMON +#define P_FAMILY_BUNEARY P_GEN_4_POKEMON +#define P_FAMILY_GLAMEOW P_GEN_4_POKEMON +#define P_FAMILY_STUNKY P_GEN_4_POKEMON +#define P_FAMILY_BRONZOR P_GEN_4_POKEMON +#define P_FAMILY_CHATOT P_GEN_4_POKEMON +#define P_FAMILY_SPIRITOMB P_GEN_4_POKEMON +#define P_FAMILY_GIBLE P_GEN_4_POKEMON +#define P_FAMILY_RIOLU P_GEN_4_POKEMON +#define P_FAMILY_HIPPOPOTAS P_GEN_4_POKEMON +#define P_FAMILY_SKORUPI P_GEN_4_POKEMON +#define P_FAMILY_CROAGUNK P_GEN_4_POKEMON +#define P_FAMILY_CARNIVINE P_GEN_4_POKEMON +#define P_FAMILY_FINNEON P_GEN_4_POKEMON +#define P_FAMILY_SNOVER P_GEN_4_POKEMON +#define P_FAMILY_ROTOM P_GEN_4_POKEMON +#define P_FAMILY_UXIE P_GEN_4_POKEMON +#define P_FAMILY_MESPRIT P_GEN_4_POKEMON +#define P_FAMILY_AZELF P_GEN_4_POKEMON +#define P_FAMILY_DIALGA P_GEN_4_POKEMON +#define P_FAMILY_PALKIA P_GEN_4_POKEMON +#define P_FAMILY_HEATRAN P_GEN_4_POKEMON +#define P_FAMILY_REGIGIGAS P_GEN_4_POKEMON +#define P_FAMILY_GIRATINA P_GEN_4_POKEMON +#define P_FAMILY_CRESSELIA P_GEN_4_POKEMON +#define P_FAMILY_MANAPHY P_GEN_4_POKEMON +#define P_FAMILY_DARKRAI P_GEN_4_POKEMON +#define P_FAMILY_SHAYMIN P_GEN_4_POKEMON +#define P_FAMILY_ARCEUS P_GEN_4_POKEMON + +#define P_FAMILY_VICTINI P_GEN_5_POKEMON +#define P_FAMILY_SNIVY P_GEN_5_POKEMON +#define P_FAMILY_TEPIG P_GEN_5_POKEMON +#define P_FAMILY_OSHAWOTT P_GEN_5_POKEMON +#define P_FAMILY_PATRAT P_GEN_5_POKEMON +#define P_FAMILY_LILLIPUP P_GEN_5_POKEMON +#define P_FAMILY_PURRLOIN P_GEN_5_POKEMON +#define P_FAMILY_PANSAGE P_GEN_5_POKEMON +#define P_FAMILY_PANSEAR P_GEN_5_POKEMON +#define P_FAMILY_PANPOUR P_GEN_5_POKEMON +#define P_FAMILY_MUNNA P_GEN_5_POKEMON +#define P_FAMILY_PIDOVE P_GEN_5_POKEMON +#define P_FAMILY_BLITZLE P_GEN_5_POKEMON +#define P_FAMILY_ROGGENROLA P_GEN_5_POKEMON +#define P_FAMILY_WOOBAT P_GEN_5_POKEMON +#define P_FAMILY_DRILBUR P_GEN_5_POKEMON +#define P_FAMILY_AUDINO P_GEN_5_POKEMON +#define P_FAMILY_TIMBURR P_GEN_5_POKEMON +#define P_FAMILY_TYMPOLE P_GEN_5_POKEMON +#define P_FAMILY_THROH P_GEN_5_POKEMON +#define P_FAMILY_SAWK P_GEN_5_POKEMON +#define P_FAMILY_SEWADDLE P_GEN_5_POKEMON +#define P_FAMILY_VENIPEDE P_GEN_5_POKEMON +#define P_FAMILY_COTTONEE P_GEN_5_POKEMON +#define P_FAMILY_PETILIL P_GEN_5_POKEMON +#define P_FAMILY_BASCULIN P_GEN_5_POKEMON +#define P_FAMILY_SANDILE P_GEN_5_POKEMON +#define P_FAMILY_DARUMAKA P_GEN_5_POKEMON +#define P_FAMILY_MARACTUS P_GEN_5_POKEMON +#define P_FAMILY_DWEBBLE P_GEN_5_POKEMON +#define P_FAMILY_SCRAGGY P_GEN_5_POKEMON +#define P_FAMILY_SIGILYPH P_GEN_5_POKEMON +#define P_FAMILY_YAMASK P_GEN_5_POKEMON +#define P_FAMILY_TIRTOUGA P_GEN_5_POKEMON +#define P_FAMILY_ARCHEN P_GEN_5_POKEMON +#define P_FAMILY_TRUBBISH P_GEN_5_POKEMON +#define P_FAMILY_ZORUA P_GEN_5_POKEMON +#define P_FAMILY_MINCCINO P_GEN_5_POKEMON +#define P_FAMILY_GOTHITA P_GEN_5_POKEMON +#define P_FAMILY_SOLOSIS P_GEN_5_POKEMON +#define P_FAMILY_DUCKLETT P_GEN_5_POKEMON +#define P_FAMILY_VANILLITE P_GEN_5_POKEMON +#define P_FAMILY_DEERLING P_GEN_5_POKEMON +#define P_FAMILY_EMOLGA P_GEN_5_POKEMON +#define P_FAMILY_KARRABLAST P_GEN_5_POKEMON +#define P_FAMILY_FOONGUS P_GEN_5_POKEMON +#define P_FAMILY_FRILLISH P_GEN_5_POKEMON +#define P_FAMILY_ALOMOMOLA P_GEN_5_POKEMON +#define P_FAMILY_JOLTIK P_GEN_5_POKEMON +#define P_FAMILY_FERROSEED P_GEN_5_POKEMON +#define P_FAMILY_KLINK P_GEN_5_POKEMON +#define P_FAMILY_TYNAMO P_GEN_5_POKEMON +#define P_FAMILY_ELGYEM P_GEN_5_POKEMON +#define P_FAMILY_LITWICK P_GEN_5_POKEMON +#define P_FAMILY_AXEW P_GEN_5_POKEMON +#define P_FAMILY_CUBCHOO P_GEN_5_POKEMON +#define P_FAMILY_CRYOGONAL P_GEN_5_POKEMON +#define P_FAMILY_SHELMET P_GEN_5_POKEMON +#define P_FAMILY_STUNFISK P_GEN_5_POKEMON +#define P_FAMILY_MIENFOO P_GEN_5_POKEMON +#define P_FAMILY_DRUDDIGON P_GEN_5_POKEMON +#define P_FAMILY_GOLETT P_GEN_5_POKEMON +#define P_FAMILY_PAWNIARD P_GEN_5_POKEMON +#define P_FAMILY_BOUFFALANT P_GEN_5_POKEMON +#define P_FAMILY_RUFFLET P_GEN_5_POKEMON +#define P_FAMILY_VULLABY P_GEN_5_POKEMON +#define P_FAMILY_HEATMOR P_GEN_5_POKEMON +#define P_FAMILY_DURANT P_GEN_5_POKEMON +#define P_FAMILY_DEINO P_GEN_5_POKEMON +#define P_FAMILY_LARVESTA P_GEN_5_POKEMON +#define P_FAMILY_COBALION P_GEN_5_POKEMON +#define P_FAMILY_TERRAKION P_GEN_5_POKEMON +#define P_FAMILY_VIRIZION P_GEN_5_POKEMON +#define P_FAMILY_TORNADUS P_GEN_5_POKEMON +#define P_FAMILY_THUNDURUS P_GEN_5_POKEMON +#define P_FAMILY_RESHIRAM P_GEN_5_POKEMON +#define P_FAMILY_ZEKROM P_GEN_5_POKEMON +#define P_FAMILY_LANDORUS P_GEN_5_POKEMON +#define P_FAMILY_KYUREM P_GEN_5_POKEMON +#define P_FAMILY_KELDEO P_GEN_5_POKEMON +#define P_FAMILY_MELOETTA P_GEN_5_POKEMON +#define P_FAMILY_GENESECT P_GEN_5_POKEMON + +#define P_FAMILY_CHESPIN P_GEN_6_POKEMON +#define P_FAMILY_FENNEKIN P_GEN_6_POKEMON +#define P_FAMILY_FROAKIE P_GEN_6_POKEMON +#define P_FAMILY_BUNNELBY P_GEN_6_POKEMON +#define P_FAMILY_FLETCHLING P_GEN_6_POKEMON +#define P_FAMILY_SCATTERBUG P_GEN_6_POKEMON +#define P_FAMILY_LITLEO P_GEN_6_POKEMON +#define P_FAMILY_FLABEBE P_GEN_6_POKEMON +#define P_FAMILY_SKIDDO P_GEN_6_POKEMON +#define P_FAMILY_PANCHAM P_GEN_6_POKEMON +#define P_FAMILY_FURFROU P_GEN_6_POKEMON +#define P_FAMILY_ESPURR P_GEN_6_POKEMON +#define P_FAMILY_HONEDGE P_GEN_6_POKEMON +#define P_FAMILY_SPRITZEE P_GEN_6_POKEMON +#define P_FAMILY_SWIRLIX P_GEN_6_POKEMON +#define P_FAMILY_INKAY P_GEN_6_POKEMON +#define P_FAMILY_BINACLE P_GEN_6_POKEMON +#define P_FAMILY_SKRELP P_GEN_6_POKEMON +#define P_FAMILY_CLAUNCHER P_GEN_6_POKEMON +#define P_FAMILY_HELIOPTILE P_GEN_6_POKEMON +#define P_FAMILY_TYRUNT P_GEN_6_POKEMON +#define P_FAMILY_AMAURA P_GEN_6_POKEMON +#define P_FAMILY_HAWLUCHA P_GEN_6_POKEMON +#define P_FAMILY_DEDENNE P_GEN_6_POKEMON +#define P_FAMILY_CARBINK P_GEN_6_POKEMON +#define P_FAMILY_GOOMY P_GEN_6_POKEMON +#define P_FAMILY_KLEFKI P_GEN_6_POKEMON +#define P_FAMILY_PHANTUMP P_GEN_6_POKEMON +#define P_FAMILY_PUMPKABOO P_GEN_6_POKEMON +#define P_FAMILY_BERGMITE P_GEN_6_POKEMON +#define P_FAMILY_NOIBAT P_GEN_6_POKEMON +#define P_FAMILY_XERNEAS P_GEN_6_POKEMON +#define P_FAMILY_YVELTAL P_GEN_6_POKEMON +#define P_FAMILY_ZYGARDE P_GEN_6_POKEMON +#define P_FAMILY_DIANCIE P_GEN_6_POKEMON +#define P_FAMILY_HOOPA P_GEN_6_POKEMON +#define P_FAMILY_VOLCANION P_GEN_6_POKEMON + +#define P_FAMILY_ROWLET P_GEN_7_POKEMON +#define P_FAMILY_LITTEN P_GEN_7_POKEMON +#define P_FAMILY_POPPLIO P_GEN_7_POKEMON +#define P_FAMILY_PIKIPEK P_GEN_7_POKEMON +#define P_FAMILY_YUNGOOS P_GEN_7_POKEMON +#define P_FAMILY_GRUBBIN P_GEN_7_POKEMON +#define P_FAMILY_CRABRAWLER P_GEN_7_POKEMON +#define P_FAMILY_ORICORIO P_GEN_7_POKEMON +#define P_FAMILY_CUTIEFLY P_GEN_7_POKEMON +#define P_FAMILY_ROCKRUFF P_GEN_7_POKEMON +#define P_FAMILY_WISHIWASHI P_GEN_7_POKEMON +#define P_FAMILY_MAREANIE P_GEN_7_POKEMON +#define P_FAMILY_MUDBRAY P_GEN_7_POKEMON +#define P_FAMILY_DEWPIDER P_GEN_7_POKEMON +#define P_FAMILY_FOMANTIS P_GEN_7_POKEMON +#define P_FAMILY_MORELULL P_GEN_7_POKEMON +#define P_FAMILY_SALANDIT P_GEN_7_POKEMON +#define P_FAMILY_STUFFUL P_GEN_7_POKEMON +#define P_FAMILY_BOUNSWEET P_GEN_7_POKEMON +#define P_FAMILY_COMFEY P_GEN_7_POKEMON +#define P_FAMILY_ORANGURU P_GEN_7_POKEMON +#define P_FAMILY_PASSIMIAN P_GEN_7_POKEMON +#define P_FAMILY_WIMPOD P_GEN_7_POKEMON +#define P_FAMILY_SANDYGAST P_GEN_7_POKEMON +#define P_FAMILY_PYUKUMUKU P_GEN_7_POKEMON +#define P_FAMILY_TYPE_NULL P_GEN_7_POKEMON +#define P_FAMILY_MINIOR P_GEN_7_POKEMON +#define P_FAMILY_KOMALA P_GEN_7_POKEMON +#define P_FAMILY_TURTONATOR P_GEN_7_POKEMON +#define P_FAMILY_TOGEDEMARU P_GEN_7_POKEMON +#define P_FAMILY_MIMIKYU P_GEN_7_POKEMON +#define P_FAMILY_BRUXISH P_GEN_7_POKEMON +#define P_FAMILY_DRAMPA P_GEN_7_POKEMON +#define P_FAMILY_DHELMISE P_GEN_7_POKEMON +#define P_FAMILY_JANGMO_O P_GEN_7_POKEMON +#define P_FAMILY_TAPU_KOKO P_GEN_7_POKEMON +#define P_FAMILY_TAPU_LELE P_GEN_7_POKEMON +#define P_FAMILY_TAPU_BULU P_GEN_7_POKEMON +#define P_FAMILY_TAPU_FINI P_GEN_7_POKEMON +#define P_FAMILY_COSMOG P_GEN_7_POKEMON +#define P_FAMILY_NIHILEGO P_GEN_7_POKEMON +#define P_FAMILY_BUZZWOLE P_GEN_7_POKEMON +#define P_FAMILY_PHEROMOSA P_GEN_7_POKEMON +#define P_FAMILY_XURKITREE P_GEN_7_POKEMON +#define P_FAMILY_CELESTEELA P_GEN_7_POKEMON +#define P_FAMILY_KARTANA P_GEN_7_POKEMON +#define P_FAMILY_GUZZLORD P_GEN_7_POKEMON +#define P_FAMILY_NECROZMA P_GEN_7_POKEMON +#define P_FAMILY_MAGEARNA P_GEN_7_POKEMON +#define P_FAMILY_MARSHADOW P_GEN_7_POKEMON +#define P_FAMILY_POIPOLE P_GEN_7_POKEMON +#define P_FAMILY_STAKATAKA P_GEN_7_POKEMON +#define P_FAMILY_BLACEPHALON P_GEN_7_POKEMON +#define P_FAMILY_ZERAORA P_GEN_7_POKEMON +#define P_FAMILY_MELTAN P_GEN_7_POKEMON + +#define P_FAMILY_GROOKEY P_GEN_8_POKEMON +#define P_FAMILY_SCORBUNNY P_GEN_8_POKEMON +#define P_FAMILY_SOBBLE P_GEN_8_POKEMON +#define P_FAMILY_SKWOVET P_GEN_8_POKEMON +#define P_FAMILY_ROOKIDEE P_GEN_8_POKEMON +#define P_FAMILY_BLIPBUG P_GEN_8_POKEMON +#define P_FAMILY_NICKIT P_GEN_8_POKEMON +#define P_FAMILY_GOSSIFLEUR P_GEN_8_POKEMON +#define P_FAMILY_WOOLOO P_GEN_8_POKEMON +#define P_FAMILY_CHEWTLE P_GEN_8_POKEMON +#define P_FAMILY_YAMPER P_GEN_8_POKEMON +#define P_FAMILY_ROLYCOLY P_GEN_8_POKEMON +#define P_FAMILY_APPLIN P_GEN_8_POKEMON +#define P_FAMILY_SILICOBRA P_GEN_8_POKEMON +#define P_FAMILY_CRAMORANT P_GEN_8_POKEMON +#define P_FAMILY_ARROKUDA P_GEN_8_POKEMON +#define P_FAMILY_TOXEL P_GEN_8_POKEMON +#define P_FAMILY_SIZZLIPEDE P_GEN_8_POKEMON +#define P_FAMILY_CLOBBOPUS P_GEN_8_POKEMON +#define P_FAMILY_SINISTEA P_GEN_8_POKEMON +#define P_FAMILY_HATENNA P_GEN_8_POKEMON +#define P_FAMILY_IMPIDIMP P_GEN_8_POKEMON +#define P_FAMILY_MILCERY P_GEN_8_POKEMON +#define P_FAMILY_FALINKS P_GEN_8_POKEMON +#define P_FAMILY_PINCURCHIN P_GEN_8_POKEMON +#define P_FAMILY_SNOM P_GEN_8_POKEMON +#define P_FAMILY_STONJOURNER P_GEN_8_POKEMON +#define P_FAMILY_EISCUE P_GEN_8_POKEMON +#define P_FAMILY_INDEEDEE P_GEN_8_POKEMON +#define P_FAMILY_MORPEKO P_GEN_8_POKEMON +#define P_FAMILY_CUFANT P_GEN_8_POKEMON +#define P_FAMILY_DRACOZOLT P_GEN_8_POKEMON +#define P_FAMILY_ARCTOZOLT P_GEN_8_POKEMON +#define P_FAMILY_DRACOVISH P_GEN_8_POKEMON +#define P_FAMILY_ARCTOVISH P_GEN_8_POKEMON +#define P_FAMILY_DURALUDON P_GEN_8_POKEMON +#define P_FAMILY_DREEPY P_GEN_8_POKEMON +#define P_FAMILY_ZACIAN P_GEN_8_POKEMON +#define P_FAMILY_ZAMAZENTA P_GEN_8_POKEMON +#define P_FAMILY_ETERNATUS P_GEN_8_POKEMON +#define P_FAMILY_KUBFU P_GEN_8_POKEMON +#define P_FAMILY_ZARUDE P_GEN_8_POKEMON +#define P_FAMILY_REGIELEKI P_GEN_8_POKEMON +#define P_FAMILY_REGIDRAGO P_GEN_8_POKEMON +#define P_FAMILY_GLASTRIER P_GEN_8_POKEMON +#define P_FAMILY_SPECTRIER P_GEN_8_POKEMON +#define P_FAMILY_CALYREX P_GEN_8_POKEMON +#define P_FAMILY_ENAMORUS P_GEN_8_POKEMON + +#define P_FAMILY_SPRIGATITO P_GEN_9_POKEMON +#define P_FAMILY_FUECOCO P_GEN_9_POKEMON +#define P_FAMILY_QUAXLY P_GEN_9_POKEMON +#define P_FAMILY_LECHONK P_GEN_9_POKEMON +#define P_FAMILY_TAROUNTULA P_GEN_9_POKEMON +#define P_FAMILY_NYMBLE P_GEN_9_POKEMON +#define P_FAMILY_PAWMI P_GEN_9_POKEMON +#define P_FAMILY_TANDEMAUS P_GEN_9_POKEMON +#define P_FAMILY_FIDOUGH P_GEN_9_POKEMON +#define P_FAMILY_SMOLIV P_GEN_9_POKEMON +#define P_FAMILY_SQUAWKABILLY P_GEN_9_POKEMON +#define P_FAMILY_NACLI P_GEN_9_POKEMON +#define P_FAMILY_CHARCADET P_GEN_9_POKEMON +#define P_FAMILY_TADBULB P_GEN_9_POKEMON +#define P_FAMILY_WATTREL P_GEN_9_POKEMON +#define P_FAMILY_MASCHIFF P_GEN_9_POKEMON +#define P_FAMILY_SHROODLE P_GEN_9_POKEMON +#define P_FAMILY_BRAMBLIN P_GEN_9_POKEMON +#define P_FAMILY_TOEDSCOOL P_GEN_9_POKEMON +#define P_FAMILY_KLAWF P_GEN_9_POKEMON +#define P_FAMILY_CAPSAKID P_GEN_9_POKEMON +#define P_FAMILY_RELLOR P_GEN_9_POKEMON +#define P_FAMILY_FLITTLE P_GEN_9_POKEMON +#define P_FAMILY_TINKATINK P_GEN_9_POKEMON +#define P_FAMILY_WIGLETT P_GEN_9_POKEMON +#define P_FAMILY_BOMBIRDIER P_GEN_9_POKEMON +#define P_FAMILY_FINIZEN P_GEN_9_POKEMON +#define P_FAMILY_VAROOM P_GEN_9_POKEMON +#define P_FAMILY_CYCLIZAR P_GEN_9_POKEMON +#define P_FAMILY_ORTHWORM P_GEN_9_POKEMON +#define P_FAMILY_GLIMMET P_GEN_9_POKEMON +#define P_FAMILY_GREAVARD P_GEN_9_POKEMON +#define P_FAMILY_FLAMIGO P_GEN_9_POKEMON +#define P_FAMILY_CETODDLE P_GEN_9_POKEMON +#define P_FAMILY_VELUZA P_GEN_9_POKEMON +#define P_FAMILY_DONDOZO P_GEN_9_POKEMON +#define P_FAMILY_TATSUGIRI P_GEN_9_POKEMON +#define P_FAMILY_GREAT_TUSK P_GEN_9_POKEMON +#define P_FAMILY_SCREAM_TAIL P_GEN_9_POKEMON +#define P_FAMILY_BRUTE_BONNET P_GEN_9_POKEMON +#define P_FAMILY_FLUTTER_MANE P_GEN_9_POKEMON +#define P_FAMILY_SLITHER_WING P_GEN_9_POKEMON +#define P_FAMILY_SANDY_SHOCKS P_GEN_9_POKEMON +#define P_FAMILY_IRON_TREADS P_GEN_9_POKEMON +#define P_FAMILY_IRON_BUNDLE P_GEN_9_POKEMON +#define P_FAMILY_IRON_HANDS P_GEN_9_POKEMON +#define P_FAMILY_IRON_JUGULIS P_GEN_9_POKEMON +#define P_FAMILY_IRON_MOTH P_GEN_9_POKEMON +#define P_FAMILY_IRON_THORNS P_GEN_9_POKEMON +#define P_FAMILY_FRIGIBAX P_GEN_9_POKEMON +#define P_FAMILY_GIMMIGHOUL P_GEN_9_POKEMON +#define P_FAMILY_WO_CHIEN P_GEN_9_POKEMON +#define P_FAMILY_CHIEN_PAO P_GEN_9_POKEMON +#define P_FAMILY_TING_LU P_GEN_9_POKEMON +#define P_FAMILY_CHI_YU P_GEN_9_POKEMON +#define P_FAMILY_ROARING_MOON P_GEN_9_POKEMON +#define P_FAMILY_IRON_VALIANT P_GEN_9_POKEMON +#define P_FAMILY_KORAIDON P_GEN_9_POKEMON +#define P_FAMILY_MIRAIDON P_GEN_9_POKEMON +#define P_FAMILY_WALKING_WAKE P_GEN_9_POKEMON +#define P_FAMILY_IRON_LEAVES P_GEN_9_POKEMON +#define P_FAMILY_POLTCHAGEIST P_GEN_9_POKEMON +#define P_FAMILY_SINISTCHA P_GEN_9_POKEMON +#define P_FAMILY_OKIDOGI P_GEN_9_POKEMON +#define P_FAMILY_MUNKIDORI P_GEN_9_POKEMON +#define P_FAMILY_FEZANDIPITI P_GEN_9_POKEMON +#define P_FAMILY_OGERPON P_GEN_9_POKEMON + +#endif // GUARD_CONFIG_SPECIES_ENABLED_H diff --git a/include/constants/battle.h b/include/constants/battle.h index 7c4b35044a6b..a39515f984ec 100644 --- a/include/constants/battle.h +++ b/include/constants/battle.h @@ -183,17 +183,17 @@ #define STATUS3_SEMI_INVULNERABLE (STATUS3_UNDERGROUND | STATUS3_ON_AIR | STATUS3_UNDERWATER | STATUS3_PHANTOM_FORCE) #define STATUS4_ELECTRIFIED (1 << 0) -#define STATUS4_PLASMA_FISTS (1 << 1) -#define STATUS4_MUD_SPORT (1 << 2) // Only used if B_SPORT_TURNS < GEN_6 -#define STATUS4_WATER_SPORT (1 << 3) // Only used if B_SPORT_TURNS < GEN_6 -#define STATUS4_INFINITE_CONFUSION (1 << 4) // Used for Berserk Gene -#define STATUS4_SALT_CURE (1 << 5) -#define STATUS4_SYRUP_BOMB (1 << 6) +#define STATUS4_MUD_SPORT (1 << 1) // Only used if B_SPORT_TURNS < GEN_6 +#define STATUS4_WATER_SPORT (1 << 2) // Only used if B_SPORT_TURNS < GEN_6 +#define STATUS4_INFINITE_CONFUSION (1 << 3) // Used for Berserk Gene +#define STATUS4_SALT_CURE (1 << 4) +#define STATUS4_SYRUP_BOMB (1 << 5) +#define STATUS4_GLAIVE_RUSH (1 << 6) #define HITMARKER_WAKE_UP_CLEAR (1 << 4) // Cleared when waking up. Never set or checked. #define HITMARKER_SKIP_DMG_TRACK (1 << 5) #define HITMARKER_DESTINYBOND (1 << 6) -#define HITMARKER_NO_ANIMATIONS (1 << 7) +#define HITMARKER_NO_ANIMATIONS (1 << 7) // set from battleSceneOff. Never changed during battle #define HITMARKER_IGNORE_SUBSTITUTE (1 << 8) #define HITMARKER_NO_ATTACKSTRING (1 << 9) #define HITMARKER_ATTACKSTRING_PRINTED (1 << 10) @@ -203,6 +203,7 @@ #define HITMARKER_SYNCHRONISE_EFFECT (1 << 14) #define HITMARKER_RUN (1 << 15) #define HITMARKER_IGNORE_DISGUISE (1 << 16) +#define HITMARKER_DISABLE_ANIMATION (1 << 17) // disable animations during battle scripts, e.g. for Bug Bite // 3 free spots because of change in handling of UNDERGROUND/UNDERWATER/ON AIR #define HITMARKER_UNABLE_TO_USE_MOVE (1 << 19) #define HITMARKER_PASSIVE_DAMAGE (1 << 20) @@ -238,9 +239,13 @@ #define SIDE_STATUS_MAT_BLOCK (1 << 21) #define SIDE_STATUS_STEELSURGE (1 << 22) #define SIDE_STATUS_DAMAGE_NON_TYPES (1 << 23) +#define SIDE_STATUS_RAINBOW (1 << 24) +#define SIDE_STATUS_SEA_OF_FIRE (1 << 25) +#define SIDE_STATUS_SWAMP (1 << 26) #define SIDE_STATUS_HAZARDS_ANY (SIDE_STATUS_SPIKES | SIDE_STATUS_STICKY_WEB | SIDE_STATUS_TOXIC_SPIKES | SIDE_STATUS_STEALTH_ROCK | SIDE_STATUS_STEELSURGE) #define SIDE_STATUS_SCREEN_ANY (SIDE_STATUS_REFLECT | SIDE_STATUS_LIGHTSCREEN | SIDE_STATUS_AURORA_VEIL) +#define SIDE_STATUS_PLEDGE_ANY (SIDE_STATUS_RAINBOW | SIDE_STATUS_SEA_OF_FIRE | SIDE_STATUS_SWAMP) // Field affecting statuses. #define STATUS_FIELD_MAGIC_ROOM (1 << 0) @@ -378,16 +383,16 @@ #define MOVE_EFFECT_INCINERATE 67 #define MOVE_EFFECT_BUG_BITE 68 #define MOVE_EFFECT_RECOIL_HP_25 69 -#define MOVE_EFFECT_RELIC_SONG 70 -#define MOVE_EFFECT_TRAP_BOTH 71 -#define MOVE_EFFECT_DOUBLE_SHOCK 72 -#define MOVE_EFFECT_ROUND 73 -#define MOVE_EFFECT_STOCKPILE_WORE_OFF 74 -#define MOVE_EFFECT_DIRE_CLAW 75 -#define MOVE_EFFECT_STEALTH_ROCK 76 -#define MOVE_EFFECT_SPIKES 77 -#define MOVE_EFFECT_TRIPLE_ARROWS 78 -#define MOVE_EFFECT_SYRUP_BOMB 79 +#define MOVE_EFFECT_TRAP_BOTH 70 +#define MOVE_EFFECT_DOUBLE_SHOCK 71 +#define MOVE_EFFECT_ROUND 72 +#define MOVE_EFFECT_STOCKPILE_WORE_OFF 73 +#define MOVE_EFFECT_DIRE_CLAW 74 +#define MOVE_EFFECT_STEALTH_ROCK 75 +#define MOVE_EFFECT_SPIKES 76 +#define MOVE_EFFECT_TRIPLE_ARROWS 77 +#define MOVE_EFFECT_SYRUP_BOMB 78 +#define MOVE_EFFECT_FLORAL_HEALING 79 #define NUM_MOVE_EFFECTS 80 diff --git a/include/constants/battle_ai.h b/include/constants/battle_ai.h index 39d0640de13a..ad489a4dd618 100644 --- a/include/constants/battle_ai.h +++ b/include/constants/battle_ai.h @@ -24,12 +24,6 @@ #define AI_EFFECTIVENESS_x0_125 1 #define AI_EFFECTIVENESS_x0 0 -// get_how_powerful_move_is -#define MOVE_POWER_OTHER 0 -#define MOVE_POWER_BEST 1 -#define MOVE_POWER_GOOD 2 // Similar dmg range with best. -#define MOVE_POWER_WEAK 3 // Significantly lower than best and good. - // AI Flags. Most run specific functions to update score, new flags are used for internal logic in other scripts #define AI_FLAG_CHECK_BAD_MOVE (1 << 0) #define AI_FLAG_TRY_TO_FAINT (1 << 1) @@ -51,6 +45,7 @@ #define AI_FLAG_SMART_SWITCHING (1 << 15) // AI includes a lot more switching checks #define AI_FLAG_ACE_POKEMON (1 << 16) // AI has an Ace Pokemon. The last Pokemon in the party will not be used until it's the last one remaining. #define AI_FLAG_OMNISCIENT (1 << 17) // AI has full knowledge of player moves, abilities, hold items +#define AI_FLAG_SMART_MON_CHOICES (1 << 18) // AI will make smarter decisions when choosing which mon to send out mid-battle and after a KO, which are separate decisions. Pairs very well with AI_FLAG_SMART_SWITCHING. #define AI_FLAG_COUNT 18 diff --git a/include/constants/battle_anim.h b/include/constants/battle_anim.h index 54eeb5b055f3..76e68b245733 100644 --- a/include/constants/battle_anim.h +++ b/include/constants/battle_anim.h @@ -399,7 +399,12 @@ #define ANIM_TAG_TEAPOT (ANIM_SPRITES_START + 385) #define ANIM_TAG_WOOD_HAMMER_HAMMER (ANIM_SPRITES_START + 386) #define ANIM_TAG_SNOWFLAKES (ANIM_SPRITES_START + 387) - +#define ANIM_TAG_SYRUP_BLOB_RED (ANIM_SPRITES_START + 388) +#define ANIM_TAG_SYRUP_SHELL_RED (ANIM_SPRITES_START + 389) +#define ANIM_TAG_SYRUP_BLOB_YELLOW (ANIM_SPRITES_START + 390) +#define ANIM_TAG_SYRUP_SHELL_YELLOW (ANIM_SPRITES_START + 391) +#define ANIM_TAG_SYRUP_SPLAT_RED (ANIM_SPRITES_START + 392) +#define ANIM_TAG_SYRUP_SPLAT_YELLOW (ANIM_SPRITES_START + 393) // battlers #define ANIM_ATTACKER 0 @@ -510,6 +515,7 @@ #define BG_STEEL_BEAM_OPPONENT 78 #define BG_STEEL_BEAM_PLAYER 79 #define BG_CHLOROBLAST 80 +#define BG_RAINBOW 81 // table ids for general animations (gBattleAnims_General) #define B_ANIM_STATS_CHANGE 0 @@ -553,6 +559,10 @@ #define B_ANIM_SALT_CURE_DAMAGE 38 #define B_ANIM_DYNAMAX_GROWTH 39 #define B_ANIM_MAX_SET_WEATHER 40 +#define B_ANIM_SYRUP_BOMB_SPEED_DROP 41 +#define B_ANIM_RAINBOW 42 +#define B_ANIM_SEA_OF_FIRE 43 +#define B_ANIM_SWAMP 44 // special animations table (gBattleAnims_Special) #define B_ANIM_LVL_UP 0 diff --git a/include/constants/battle_dome.h b/include/constants/battle_dome.h index adac0a938da3..c855c1ab57b3 100644 --- a/include/constants/battle_dome.h +++ b/include/constants/battle_dome.h @@ -105,22 +105,22 @@ #define DOME_TEXT_SPEED 12 #define DOME_TEXT_SPATK 14 -// Move point indexes for sBattleStyleMovePoints[][], to determine Battle Dome trainers battle styles -#define MOVE_POINTS_COMBO 0 // Moves that work well in combination (e.g. Rain Dance + Hydro Pump) +// Determine Battle Dome trainers battle styles +#define MOVE_POINTS_COMBO 0 // Moves that work well in combination: moves that cause or are affected by weather/terrain, Stockpile+, entry hazards, sleep inflictions & effects benefiting from it, offensive boosts of a single stat with at least two stages or at least two stats, and several other effects #define MOVE_POINTS_STAT_RAISE 1 #define MOVE_POINTS_STAT_LOWER 2 -#define MOVE_POINTS_RARE 3 // Uncommon moves. Mostly arbitrary -#define MOVE_POINTS_HEAL 4 -#define MOVE_POINTS_RISKY 5 -#define MOVE_POINTS_STATUS 6 -#define MOVE_POINTS_DMG 7 -#define MOVE_POINTS_DEF 8 // Defensive moves, like Amnesia, Light Screen, or accuracy-lowers -#define MOVE_POINTS_ACCURATE 9 -#define MOVE_POINTS_POWERFUL 10 // Most of the moves that are >= 100 power -#define MOVE_POINTS_POPULAR 11 // Group seems arbitrary. All using it are TM/HMs, but its only 11/58 -#define MOVE_POINTS_LUCK 12 -#define MOVE_POINTS_STRONG 13 // Most of the moves that are >= 90 power -#define MOVE_POINTS_LOW_PP 14 +#define MOVE_POINTS_RARE 3 // Moves that appear in less than 5% of levelup learnsets +#define MOVE_POINTS_HEAL 4 // Moves that heal +#define MOVE_POINTS_RISKY 5 // Move effects deemed risky by the Emerald developers (excluding High Jump Kick and others for some reason) +#define MOVE_POINTS_STATUS 6 // Moves that cause status effects without dealing damage +#define MOVE_POINTS_DMG 7 // Moves that deal damage (BP > 0) +#define MOVE_POINTS_DEF 8 // Moves like screens, accuracy-lowers or evasiveness-raisers, (special) defense raisers, protect etc. +#define MOVE_POINTS_ACCURATE 9 // Moves with 100% accuracy (or that are guaranteed hits) +#define MOVE_POINTS_POWERFUL 10 // Moves with 100 BP or more +#define MOVE_POINTS_POPULAR 11 // TM/HM moves with 90 BP or more or those that raise a single offensive stat by at least 2 stages +#define MOVE_POINTS_LUCK 12 // Move effects that depend on luck and moves with Accuracy of <= 50% +#define MOVE_POINTS_STRONG 13 // Moves with 90 BP or more +#define MOVE_POINTS_LOW_PP 14 // Moves with 5 PP or less #define MOVE_POINTS_EFFECT 15 // Moves with additional effects #define NUM_MOVE_POINT_TYPES 16 diff --git a/include/constants/battle_move_effects.h b/include/constants/battle_move_effects.h index 91b74feee7a9..1fb300347e54 100644 --- a/include/constants/battle_move_effects.h +++ b/include/constants/battle_move_effects.h @@ -167,7 +167,7 @@ #define EFFECT_MEMENTO 163 #define EFFECT_FACADE 164 #define EFFECT_FOCUS_PUNCH 165 -#define EFFECT_SMELLINGSALT 166 +#define EFFECT_SMELLING_SALTS 166 #define EFFECT_FOLLOW_ME 167 #define EFFECT_NATURE_POWER 168 #define EFFECT_CHARGE 169 @@ -417,7 +417,9 @@ #define EFFECT_SYRUP_BOMB 411 #define EFFECT_IVY_CUDGEL 412 #define EFFECT_MAX_MOVE 413 +#define EFFECT_GLAIVE_RUSH 414 +#define EFFECT_RAGING_BULL 415 -#define NUM_BATTLE_MOVE_EFFECTS 414 +#define NUM_BATTLE_MOVE_EFFECTS 416 #endif // GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H diff --git a/include/constants/battle_script_commands.h b/include/constants/battle_script_commands.h index 1775b9528e7d..5474e3b242bf 100644 --- a/include/constants/battle_script_commands.h +++ b/include/constants/battle_script_commands.h @@ -131,124 +131,118 @@ #define VARIOUS_SET_SIMPLE_BEAM 39 #define VARIOUS_TRY_ENTRAINMENT 40 #define VARIOUS_SET_LAST_USED_ABILITY 41 -#define VARIOUS_TRY_HEAL_PULSE 42 -#define VARIOUS_TRY_QUASH 43 -#define VARIOUS_INVERT_STAT_STAGES 44 -#define VARIOUS_TRY_ME_FIRST 45 -#define VARIOUS_JUMP_IF_BATTLE_END 46 -#define VARIOUS_TRY_ELECTRIFY 47 -#define VARIOUS_TRY_REFLECT_TYPE 48 -#define VARIOUS_TRY_SOAK 49 -#define VARIOUS_HANDLE_MEGA_EVO 50 -#define VARIOUS_TRY_LAST_RESORT 51 -#define VARIOUS_ARGUMENT_STATUS_EFFECT 52 -#define VARIOUS_TRY_HIT_SWITCH_TARGET 53 -#define VARIOUS_TRY_AUTOTOMIZE 54 -#define VARIOUS_TRY_COPYCAT 55 -#define VARIOUS_ABILITY_POPUP 56 -#define VARIOUS_DEFOG 57 -#define VARIOUS_JUMP_IF_TARGET_ALLY 58 -#define VARIOUS_TRY_SYNCHRONOISE 59 -#define VARIOUS_PSYCHO_SHIFT 60 -#define VARIOUS_CURE_STATUS 61 -#define VARIOUS_POWER_TRICK 62 -#define VARIOUS_AFTER_YOU 63 -#define VARIOUS_BESTOW 64 -#define VARIOUS_ARGUMENT_TO_MOVE_EFFECT 65 -#define VARIOUS_JUMP_IF_NOT_GROUNDED 66 -#define VARIOUS_HANDLE_TRAINER_SLIDE_MSG 67 -#define VARIOUS_TRY_TRAINER_SLIDE_MSG_FIRST_OFF 68 -#define VARIOUS_TRY_TRAINER_SLIDE_MSG_LAST_ON 69 -#define VARIOUS_SET_AURORA_VEIL 70 -#define VARIOUS_TRY_THIRD_TYPE 71 -#define VARIOUS_ACUPRESSURE 72 -#define VARIOUS_SET_POWDER 73 -#define VARIOUS_SPECTRAL_THIEF 74 -#define VARIOUS_GRAVITY_ON_AIRBORNE_MONS 75 -#define VARIOUS_CHECK_IF_GRASSY_TERRAIN_HEALS 76 -#define VARIOUS_JUMP_IF_ROAR_FAILS 77 -#define VARIOUS_TRY_INSTRUCT 78 -#define VARIOUS_JUMP_IF_NOT_BERRY 79 -#define VARIOUS_TRACE_ABILITY 80 -#define VARIOUS_UPDATE_NICK 81 -#define VARIOUS_TRY_ILLUSION_OFF 82 -#define VARIOUS_SET_SPRITEIGNORE0HP 83 -#define VARIOUS_HANDLE_FORM_CHANGE 84 -#define VARIOUS_GET_STAT_VALUE 85 -#define VARIOUS_JUMP_IF_FULL_HP 86 -#define VARIOUS_LOSE_TYPE 87 -#define VARIOUS_TRY_ACTIVATE_SOULHEART 88 -#define VARIOUS_TRY_ACTIVATE_RECEIVER 89 -#define VARIOUS_TRY_ACTIVATE_BEAST_BOOST 90 -#define VARIOUS_TRY_FRISK 91 -#define VARIOUS_JUMP_IF_SHIELDS_DOWN_PROTECTED 92 -#define VARIOUS_TRY_FAIRY_LOCK 93 -#define VARIOUS_JUMP_IF_NO_ALLY 94 -#define VARIOUS_POISON_TYPE_IMMUNITY 95 -#define VARIOUS_JUMP_IF_NO_HOLD_EFFECT 96 -#define VARIOUS_INFATUATE_WITH_BATTLER 97 -#define VARIOUS_SET_LAST_USED_ITEM 98 -#define VARIOUS_PARALYZE_TYPE_IMMUNITY 99 -#define VARIOUS_JUMP_IF_ABSENT 100 -#define VARIOUS_DESTROY_ABILITY_POPUP 101 -#define VARIOUS_TOTEM_BOOST 102 -#define VARIOUS_TRY_ACTIVATE_GRIM_NEIGH 103 -#define VARIOUS_MOVEEND_ITEM_EFFECTS 104 -#define VARIOUS_TERRAIN_SEED 105 -#define VARIOUS_MAKE_INVISIBLE 106 -#define VARIOUS_ROOM_SERVICE 107 - -#define VARIOUS_EERIE_SPELL_PP_REDUCE 108 -#define VARIOUS_JUMP_IF_TEAM_HEALTHY 109 -#define VARIOUS_TRY_HEAL_QUARTER_HP 110 -#define VARIOUS_REMOVE_TERRAIN 111 -#define VARIOUS_JUMP_IF_PRANKSTER_BLOCKED 112 -#define VARIOUS_TRY_TO_CLEAR_PRIMAL_WEATHER 113 -#define VARIOUS_GET_ROTOTILLER_TARGETS 114 -#define VARIOUS_JUMP_IF_NOT_ROTOTILLER_AFFECTED 115 -#define VARIOUS_TRY_ACTIVATE_BATTLE_BOND 116 -#define VARIOUS_CONSUME_BERRY 117 -#define VARIOUS_JUMP_IF_CANT_REVERT_TO_PRIMAL 118 -#define VARIOUS_APPLY_PLASMA_FISTS 119 -#define VARIOUS_JUMP_IF_SPECIES 120 -#define VARIOUS_UPDATE_ABILITY_POPUP 121 -#define VARIOUS_JUMP_IF_WEATHER_AFFECTED 122 -#define VARIOUS_JUMP_IF_LEAF_GUARD_PROTECTED 123 -#define VARIOUS_SET_ATTACKER_STICKY_WEB_USER 124 -#define VARIOUS_PHOTON_GEYSER_CHECK 125 -#define VARIOUS_SHELL_SIDE_ARM_CHECK 126 -#define VARIOUS_TRY_NO_RETREAT 127 -#define VARIOUS_TRY_TAR_SHOT 128 -#define VARIOUS_CAN_TAR_SHOT_WORK 129 -#define VARIOUS_CHECK_POLTERGEIST 130 -#define VARIOUS_SET_OCTOLOCK 131 -#define VARIOUS_CUT_1_3_HP_RAISE_STATS 132 -#define VARIOUS_TRY_END_NEUTRALIZING_GAS 133 -#define VARIOUS_JUMP_IF_UNDER_200 134 -#define VARIOUS_SET_SKY_DROP 135 -#define VARIOUS_CLEAR_SKY_DROP 136 -#define VARIOUS_SKY_DROP_YAWN 137 -#define VARIOUS_JUMP_IF_HOLD_EFFECT 138 -#define VARIOUS_CURE_CERTAIN_STATUSES 139 -#define VARIOUS_TRY_RESET_NEGATIVE_STAT_STAGES 140 -#define VARIOUS_JUMP_IF_LAST_USED_ITEM_BERRY 141 -#define VARIOUS_JUMP_IF_LAST_USED_ITEM_HOLD_EFFECT 142 -#define VARIOUS_SAVE_BATTLER_ITEM 143 -#define VARIOUS_RESTORE_BATTLER_ITEM 144 -#define VARIOUS_BATTLER_ITEM_TO_LAST_USED_ITEM 145 -#define VARIOUS_SET_BEAK_BLAST 146 -#define VARIOUS_SWAP_SIDE_STATUSES 147 -#define VARIOUS_SWAP_STATS 148 -#define VARIOUS_TEATIME_INVUL 149 -#define VARIOUS_TEATIME_TARGETS 150 -#define VARIOUS_TRY_WIND_RIDER_POWER 151 -#define VARIOUS_ACTIVATE_WEATHER_CHANGE_ABILITIES 152 -#define VARIOUS_ACTIVATE_TERRAIN_CHANGE_ABILITIES 153 -#define VARIOUS_STORE_HEALING_WISH 154 -#define VARIOUS_HIT_SWITCH_TARGET_FAILED 155 -#define VARIOUS_TRY_REVIVAL_BLESSING 156 -#define VARIOUS_TRY_TRAINER_SLIDE_MSG_Z_MOVE 157 -#define VARIOUS_TRY_TRAINER_SLIDE_MSG_MEGA_EVOLUTION 158 +#define VARIOUS_TRY_QUASH 42 +#define VARIOUS_INVERT_STAT_STAGES 43 +#define VARIOUS_TRY_ME_FIRST 44 +#define VARIOUS_JUMP_IF_BATTLE_END 45 +#define VARIOUS_TRY_ELECTRIFY 46 +#define VARIOUS_TRY_REFLECT_TYPE 47 +#define VARIOUS_TRY_SOAK 48 +#define VARIOUS_HANDLE_MEGA_EVO 49 +#define VARIOUS_TRY_LAST_RESORT 50 +#define VARIOUS_ARGUMENT_STATUS_EFFECT 51 +#define VARIOUS_TRY_HIT_SWITCH_TARGET 52 +#define VARIOUS_TRY_AUTOTOMIZE 53 +#define VARIOUS_TRY_COPYCAT 54 +#define VARIOUS_ABILITY_POPUP 55 +#define VARIOUS_DEFOG 56 +#define VARIOUS_JUMP_IF_TARGET_ALLY 57 +#define VARIOUS_TRY_SYNCHRONOISE 58 +#define VARIOUS_PSYCHO_SHIFT 59 +#define VARIOUS_CURE_STATUS 60 +#define VARIOUS_POWER_TRICK 61 +#define VARIOUS_AFTER_YOU 62 +#define VARIOUS_BESTOW 63 +#define VARIOUS_ARGUMENT_TO_MOVE_EFFECT 64 +#define VARIOUS_JUMP_IF_NOT_GROUNDED 65 +#define VARIOUS_HANDLE_TRAINER_SLIDE_MSG 66 +#define VARIOUS_TRY_TRAINER_SLIDE_MSG_FIRST_OFF 67 +#define VARIOUS_TRY_TRAINER_SLIDE_MSG_LAST_ON 68 +#define VARIOUS_SET_AURORA_VEIL 69 +#define VARIOUS_TRY_THIRD_TYPE 70 +#define VARIOUS_ACUPRESSURE 71 +#define VARIOUS_SET_POWDER 72 +#define VARIOUS_SPECTRAL_THIEF 73 +#define VARIOUS_GRAVITY_ON_AIRBORNE_MONS 74 +#define VARIOUS_CHECK_IF_GRASSY_TERRAIN_HEALS 75 +#define VARIOUS_JUMP_IF_ROAR_FAILS 76 +#define VARIOUS_TRY_INSTRUCT 77 +#define VARIOUS_JUMP_IF_NOT_BERRY 78 +#define VARIOUS_TRACE_ABILITY 79 +#define VARIOUS_UPDATE_NICK 80 +#define VARIOUS_TRY_ILLUSION_OFF 81 +#define VARIOUS_SET_SPRITEIGNORE0HP 82 +#define VARIOUS_HANDLE_FORM_CHANGE 83 +#define VARIOUS_GET_STAT_VALUE 84 +#define VARIOUS_JUMP_IF_FULL_HP 85 +#define VARIOUS_LOSE_TYPE 86 +#define VARIOUS_TRY_ACTIVATE_SOULHEART 87 +#define VARIOUS_TRY_ACTIVATE_RECEIVER 88 +#define VARIOUS_TRY_ACTIVATE_BEAST_BOOST 89 +#define VARIOUS_TRY_FRISK 90 +#define VARIOUS_JUMP_IF_SHIELDS_DOWN_PROTECTED 91 +#define VARIOUS_TRY_FAIRY_LOCK 92 +#define VARIOUS_JUMP_IF_NO_ALLY 93 +#define VARIOUS_POISON_TYPE_IMMUNITY 94 +#define VARIOUS_JUMP_IF_NO_HOLD_EFFECT 95 +#define VARIOUS_INFATUATE_WITH_BATTLER 96 +#define VARIOUS_SET_LAST_USED_ITEM 97 +#define VARIOUS_PARALYZE_TYPE_IMMUNITY 98 +#define VARIOUS_JUMP_IF_ABSENT 99 +#define VARIOUS_DESTROY_ABILITY_POPUP 100 +#define VARIOUS_TOTEM_BOOST 101 +#define VARIOUS_TRY_ACTIVATE_GRIM_NEIGH 102 +#define VARIOUS_MOVEEND_ITEM_EFFECTS 103 +#define VARIOUS_TERRAIN_SEED 104 +#define VARIOUS_MAKE_INVISIBLE 105 +#define VARIOUS_ROOM_SERVICE 106 +#define VARIOUS_EERIE_SPELL_PP_REDUCE 107 +#define VARIOUS_JUMP_IF_TEAM_HEALTHY 108 +#define VARIOUS_TRY_HEAL_QUARTER_HP 109 +#define VARIOUS_REMOVE_TERRAIN 110 +#define VARIOUS_JUMP_IF_PRANKSTER_BLOCKED 111 +#define VARIOUS_TRY_TO_CLEAR_PRIMAL_WEATHER 112 +#define VARIOUS_GET_ROTOTILLER_TARGETS 113 +#define VARIOUS_JUMP_IF_NOT_ROTOTILLER_AFFECTED 114 +#define VARIOUS_TRY_ACTIVATE_BATTLE_BOND 115 +#define VARIOUS_CONSUME_BERRY 116 +#define VARIOUS_JUMP_IF_CANT_REVERT_TO_PRIMAL 117 +#define VARIOUS_JUMP_IF_SPECIES 118 +#define VARIOUS_UPDATE_ABILITY_POPUP 119 +#define VARIOUS_JUMP_IF_WEATHER_AFFECTED 120 +#define VARIOUS_JUMP_IF_LEAF_GUARD_PROTECTED 121 +#define VARIOUS_SET_ATTACKER_STICKY_WEB_USER 122 +#define VARIOUS_PHOTON_GEYSER_CHECK 123 +#define VARIOUS_SHELL_SIDE_ARM_CHECK 124 +#define VARIOUS_TRY_NO_RETREAT 125 +#define VARIOUS_TRY_TAR_SHOT 126 +#define VARIOUS_CAN_TAR_SHOT_WORK 127 +#define VARIOUS_CHECK_POLTERGEIST 128 +#define VARIOUS_CUT_1_3_HP_RAISE_STATS 129 +#define VARIOUS_TRY_END_NEUTRALIZING_GAS 130 +#define VARIOUS_JUMP_IF_UNDER_200 131 +#define VARIOUS_SET_SKY_DROP 132 +#define VARIOUS_CLEAR_SKY_DROP 133 +#define VARIOUS_SKY_DROP_YAWN 134 +#define VARIOUS_JUMP_IF_HOLD_EFFECT 135 +#define VARIOUS_CURE_CERTAIN_STATUSES 136 +#define VARIOUS_TRY_RESET_NEGATIVE_STAT_STAGES 137 +#define VARIOUS_JUMP_IF_LAST_USED_ITEM_BERRY 138 +#define VARIOUS_JUMP_IF_LAST_USED_ITEM_HOLD_EFFECT 139 +#define VARIOUS_SAVE_BATTLER_ITEM 140 +#define VARIOUS_RESTORE_BATTLER_ITEM 141 +#define VARIOUS_BATTLER_ITEM_TO_LAST_USED_ITEM 142 +#define VARIOUS_SET_BEAK_BLAST 143 +#define VARIOUS_SWAP_SIDE_STATUSES 144 +#define VARIOUS_SWAP_STATS 145 +#define VARIOUS_TEATIME_INVUL 146 +#define VARIOUS_TEATIME_TARGETS 147 +#define VARIOUS_TRY_WIND_RIDER_POWER 148 +#define VARIOUS_ACTIVATE_WEATHER_CHANGE_ABILITIES 149 +#define VARIOUS_ACTIVATE_TERRAIN_CHANGE_ABILITIES 150 +#define VARIOUS_STORE_HEALING_WISH 151 +#define VARIOUS_HIT_SWITCH_TARGET_FAILED 152 +#define VARIOUS_TRY_REVIVAL_BLESSING 153 // Cmd_manipulatedamage #define DMG_CHANGE_SIGN 0 @@ -302,16 +296,16 @@ #define MOVEEND_ATTACKER_VISIBLE 10 #define MOVEEND_TARGET_VISIBLE 11 #define MOVEEND_ITEM_EFFECTS_TARGET 12 -#define MOVEEND_ITEM_EFFECTS_ALL 13 -#define MOVEEND_KINGSROCK 14 // These item effects will occur each strike of a multi-hit move -#define MOVEEND_SUBSTITUTE 15 -#define MOVEEND_SKY_DROP_CONFUSE 16 -#define MOVEEND_UPDATE_LAST_MOVES 17 -#define MOVEEND_MIRROR_MOVE 18 -#define MOVEEND_NEXT_TARGET 19 // Everything up until here is handled for each strike of a multi-hit move -#define MOVEEND_MULTIHIT_MOVE 20 -#define MOVEEND_DEFROST 21 -#define MOVEEND_MOVE_EFFECTS2 22 +#define MOVEEND_MOVE_EFFECTS2 13 +#define MOVEEND_ITEM_EFFECTS_ALL 14 +#define MOVEEND_KINGSROCK 15 // These item effects will occur each strike of a multi-hit move +#define MOVEEND_SUBSTITUTE 16 +#define MOVEEND_SKY_DROP_CONFUSE 17 +#define MOVEEND_UPDATE_LAST_MOVES 18 +#define MOVEEND_MIRROR_MOVE 19 +#define MOVEEND_NEXT_TARGET 20 // Everything up until here is handled for each strike of a multi-hit move +#define MOVEEND_MULTIHIT_MOVE 21 +#define MOVEEND_DEFROST 22 #define MOVEEND_RECOIL 23 #define MOVEEND_MAGICIAN 24 // Occurs after final multi-hit strike, and after other items/abilities would activate #define MOVEEND_EJECT_BUTTON 25 diff --git a/include/constants/battle_string_ids.h b/include/constants/battle_string_ids.h index 1f5539dc6239..354b3d20b544 100644 --- a/include/constants/battle_string_ids.h +++ b/include/constants/battle_string_ids.h @@ -547,7 +547,7 @@ #define STRINGID_NOONEWILLBEABLETORUNAWAY 545 #define STRINGID_DESTINYKNOTACTIVATES 546 #define STRINGID_CLOAKEDINAFREEZINGLIGHT 547 -#define STRINGID_STATWASNOTLOWERED 548 +#define STRINGID_CLEARAMULETWONTLOWERSTATS 548 #define STRINGID_FERVENTWISHREACHED 549 #define STRINGID_AIRLOCKACTIVATES 550 #define STRINGID_PRESSUREENTERS 551 @@ -685,8 +685,18 @@ #define STRINGID_TEAMSURROUNDEDBYROCKS 683 #define STRINGID_PKMNHURTBYROCKSTHROWN 684 #define STRINGID_MOVEBLOCKEDBYDYNAMAX 685 - -#define BATTLESTRINGS_COUNT 686 +#define STRINGID_ZEROTOHEROTRANSFORMATION 686 +#define STRINGID_THETWOMOVESBECOMEONE 687 +#define STRINGID_ARAINBOWAPPEAREDONSIDE 688 +#define STRINGID_THERAINBOWDISAPPEARED 689 +#define STRINGID_WAITINGFORPARTNERSMOVE 690 +#define STRINGID_SEAOFFIREENVELOPEDSIDE 691 +#define STRINGID_HURTBYTHESEAOFFIRE 692 +#define STRINGID_THESEAOFFIREDISAPPEARED 693 +#define STRINGID_SWAMPENVELOPEDSIDE 694 +#define STRINGID_THESWAMPDISAPPEARED 695 + +#define BATTLESTRINGS_COUNT 696 // This is the string id that gBattleStringsTable starts with. // String ids before this (e.g. STRINGID_INTROMSG) are not in the table, diff --git a/include/constants/cries.h b/include/constants/cries.h new file mode 100644 index 000000000000..7a7340768e0b --- /dev/null +++ b/include/constants/cries.h @@ -0,0 +1,2410 @@ +#ifndef GUARD_CONSTANTS_CRIES_H +#define GUARD_CONSTANTS_CRIES_H + +enum { + CRY_NONE, +#if P_FAMILY_BULBASAUR + CRY_BULBASAUR, + CRY_IVYSAUR, + CRY_VENUSAUR, +#if P_MEGA_EVOLUTIONS + CRY_VENUSAUR_MEGA, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_BULBASAUR +#if P_FAMILY_CHARMANDER + CRY_CHARMANDER, + CRY_CHARMELEON, + CRY_CHARIZARD, +#if P_MEGA_EVOLUTIONS + CRY_CHARIZARD_MEGA_X, + CRY_CHARIZARD_MEGA_Y, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_CHARMANDER +#if P_FAMILY_SQUIRTLE + CRY_SQUIRTLE, + CRY_WARTORTLE, + CRY_BLASTOISE, +#if P_MEGA_EVOLUTIONS + CRY_BLASTOISE_MEGA, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_SQUIRTLE +#if P_FAMILY_CATERPIE + CRY_CATERPIE, + CRY_METAPOD, + CRY_BUTTERFREE, +#endif //P_FAMILY_CATERPIE +#if P_FAMILY_WEEDLE + CRY_WEEDLE, + CRY_KAKUNA, + CRY_BEEDRILL, +#if P_MEGA_EVOLUTIONS + CRY_BEEDRILL_MEGA, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_WEEDLE +#if P_FAMILY_PIDGEY + CRY_PIDGEY, + CRY_PIDGEOTTO, + CRY_PIDGEOT, +#if P_MEGA_EVOLUTIONS + CRY_PIDGEOT_MEGA, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_PIDGEY +#if P_FAMILY_RATTATA + CRY_RATTATA, + CRY_RATICATE, +#endif //P_FAMILY_RATTATA +#if P_FAMILY_SPEAROW + CRY_SPEAROW, + CRY_FEAROW, +#endif //P_FAMILY_SPEAROW +#if P_FAMILY_EKANS + CRY_EKANS, + CRY_ARBOK, +#endif //P_FAMILY_EKANS +#if P_FAMILY_PIKACHU +#if P_GEN_2_CROSS_EVOS + CRY_PICHU, +#endif //P_GEN_2_CROSS_EVOS + CRY_PIKACHU, + CRY_RAICHU, +#endif //P_FAMILY_PIKACHU +#if P_FAMILY_SANDSHREW + CRY_SANDSHREW, + CRY_SANDSLASH, +#endif //P_FAMILY_SANDSHREW +#if P_FAMILY_NIDORAN + CRY_NIDORAN_F, + CRY_NIDORINA, + CRY_NIDOQUEEN, + CRY_NIDORAN_M, + CRY_NIDORINO, + CRY_NIDOKING, +#endif //P_FAMILY_NIDORAN +#if P_FAMILY_CLEFAIRY +#if P_GEN_2_CROSS_EVOS + CRY_CLEFFA, +#endif //P_GEN_2_CROSS_EVOS + CRY_CLEFAIRY, + CRY_CLEFABLE, +#endif //P_FAMILY_CLEFAIRY +#if P_FAMILY_VULPIX + CRY_VULPIX, + CRY_NINETALES, +#endif //P_FAMILY_VULPIX +#if P_FAMILY_JIGGLYPUFF +#if P_GEN_2_CROSS_EVOS + CRY_IGGLYBUFF, +#endif //P_GEN_2_CROSS_EVOS + CRY_JIGGLYPUFF, + CRY_WIGGLYTUFF, +#endif //P_FAMILY_JIGGLYPUFF +#if P_FAMILY_ZUBAT + CRY_ZUBAT, + CRY_GOLBAT, +#if P_GEN_2_CROSS_EVOS + CRY_CROBAT, +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ZUBAT +#if P_FAMILY_ODDISH + CRY_ODDISH, + CRY_GLOOM, + CRY_VILEPLUME, +#if P_GEN_2_CROSS_EVOS + CRY_BELLOSSOM, +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ODDISH +#if P_FAMILY_PARAS + CRY_PARAS, + CRY_PARASECT, +#endif //P_FAMILY_PARAS +#if P_FAMILY_VENONAT + CRY_VENONAT, + CRY_VENOMOTH, +#endif //P_FAMILY_VENONAT +#if P_FAMILY_DIGLETT + CRY_DIGLETT, + CRY_DUGTRIO, +#endif //P_FAMILY_DIGLETT +#if P_FAMILY_MEOWTH + CRY_MEOWTH, + CRY_PERSIAN, +#if P_GALARIAN_FORMS + CRY_PERRSERKER, +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MEOWTH +#if P_FAMILY_PSYDUCK + CRY_PSYDUCK, + CRY_GOLDUCK, +#endif //P_FAMILY_PSYDUCK +#if P_FAMILY_MANKEY + CRY_MANKEY, + CRY_PRIMEAPE, +#if P_GEN_9_CROSS_EVOS + CRY_ANNIHILAPE, +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_MANKEY +#if P_FAMILY_GROWLITHE + CRY_GROWLITHE, + CRY_ARCANINE, +#endif //P_FAMILY_GROWLITHE +#if P_FAMILY_POLIWAG + CRY_POLIWAG, + CRY_POLIWHIRL, + CRY_POLIWRATH, +#if P_GEN_2_CROSS_EVOS + CRY_POLITOED, +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_POLIWAG +#if P_FAMILY_ABRA + CRY_ABRA, + CRY_KADABRA, + CRY_ALAKAZAM, +#if P_MEGA_EVOLUTIONS + CRY_ALAKAZAM_MEGA, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_ABRA +#if P_FAMILY_MACHOP + CRY_MACHOP, + CRY_MACHOKE, + CRY_MACHAMP, +#endif //P_FAMILY_MACHOP +#if P_FAMILY_BELLSPROUT + CRY_BELLSPROUT, + CRY_WEEPINBELL, + CRY_VICTREEBEL, +#endif //P_FAMILY_BELLSPROUT +#if P_FAMILY_TENTACOOL + CRY_TENTACOOL, + CRY_TENTACRUEL, +#endif //P_FAMILY_TENTACOOL +#if P_FAMILY_GEODUDE + CRY_GEODUDE, + CRY_GRAVELER, + CRY_GOLEM, +#endif //P_FAMILY_GEODUDE +#if P_FAMILY_PONYTA + CRY_PONYTA, + CRY_RAPIDASH, +#endif //P_FAMILY_PONYTA +#if P_FAMILY_SLOWPOKE + CRY_SLOWPOKE, + CRY_SLOWBRO, +#if P_GEN_2_CROSS_EVOS + CRY_SLOWKING, +#endif //P_GEN_2_CROSS_EVOS +#if P_MEGA_EVOLUTIONS + CRY_SLOWBRO_MEGA, +#endif //P_MEGA_EVOLUTIONS +#if P_GALARIAN_FORMS + CRY_SLOWPOKE_GALARIAN, +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_SLOWPOKE +#if P_FAMILY_MAGNEMITE + CRY_MAGNEMITE, + CRY_MAGNETON, +#if P_GEN_4_CROSS_EVOS + CRY_MAGNEZONE, +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MAGNEMITE +#if P_FAMILY_FARFETCHD + CRY_FARFETCHD, +#if P_GALARIAN_FORMS + CRY_SIRFETCHD, +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_FARFETCHD +#if P_FAMILY_DODUO + CRY_DODUO, + CRY_DODRIO, +#endif //P_FAMILY_DODUO +#if P_FAMILY_SEEL + CRY_SEEL, + CRY_DEWGONG, +#endif //P_FAMILY_SEEL +#if P_FAMILY_GRIMER + CRY_GRIMER, + CRY_MUK, +#endif //P_FAMILY_GRIMER +#if P_FAMILY_SHELLDER + CRY_SHELLDER, + CRY_CLOYSTER, +#endif //P_FAMILY_SHELLDER +#if P_FAMILY_GASTLY + CRY_GASTLY, + CRY_HAUNTER, + CRY_GENGAR, +#if P_MEGA_EVOLUTIONS + CRY_GENGAR_MEGA, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_GASTLY +#if P_FAMILY_ONIX + CRY_ONIX, +#if P_GEN_2_CROSS_EVOS + CRY_STEELIX, +#if P_MEGA_EVOLUTIONS + CRY_STEELIX_MEGA, +#endif //P_MEGA_EVOLUTIONS +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ONIX +#if P_FAMILY_DROWZEE + CRY_DROWZEE, + CRY_HYPNO, +#endif //P_FAMILY_DROWZEE +#if P_FAMILY_KRABBY + CRY_KRABBY, + CRY_KINGLER, +#endif //P_FAMILY_KRABBY +#if P_FAMILY_VOLTORB + CRY_VOLTORB, + CRY_ELECTRODE, +#endif //P_FAMILY_VOLTORB +#if P_FAMILY_EXEGGCUTE + CRY_EXEGGCUTE, + CRY_EXEGGUTOR, +#endif //P_FAMILY_EXEGGCUTE +#if P_FAMILY_CUBONE + CRY_CUBONE, + CRY_MAROWAK, +#endif //P_FAMILY_CUBONE +#if P_FAMILY_HITMONS +#if P_GEN_2_CROSS_EVOS + CRY_TYROGUE, +#endif //P_GEN_2_CROSS_EVOS + CRY_HITMONLEE, + CRY_HITMONCHAN, +#if P_GEN_2_CROSS_EVOS + CRY_HITMONTOP, +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_HITMONS +#if P_FAMILY_LICKITUNG + CRY_LICKITUNG, +#if P_GEN_4_CROSS_EVOS + CRY_LICKILICKY, +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_LICKITUNG +#if P_FAMILY_KOFFING + CRY_KOFFING, + CRY_WEEZING, +#endif //P_FAMILY_KOFFING +#if P_FAMILY_RHYHORN + CRY_RHYHORN, + CRY_RHYDON, +#if P_GEN_4_CROSS_EVOS + CRY_RHYPERIOR, +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_RHYHORN +#if P_FAMILY_CHANSEY +#if P_GEN_4_CROSS_EVOS + CRY_HAPPINY, +#endif //P_GEN_4_CROSS_EVOS + CRY_CHANSEY, +#if P_GEN_2_CROSS_EVOS + CRY_BLISSEY, +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_CHANSEY +#if P_FAMILY_TANGELA + CRY_TANGELA, +#if P_GEN_4_CROSS_EVOS + CRY_TANGROWTH, +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_TANGELA +#if P_FAMILY_KANGASKHAN + CRY_KANGASKHAN, +#if P_MEGA_EVOLUTIONS + CRY_KANGASKHAN_MEGA, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_KANGASKHAN +#if P_FAMILY_HORSEA + CRY_HORSEA, + CRY_SEADRA, +#if P_GEN_2_CROSS_EVOS + CRY_KINGDRA, +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_HORSEA +#if P_FAMILY_GOLDEEN + CRY_GOLDEEN, + CRY_SEAKING, +#endif //P_FAMILY_GOLDEEN +#if P_FAMILY_STARYU + CRY_STARYU, + CRY_STARMIE, +#endif //P_FAMILY_STARYU +#if P_FAMILY_MR_MIME +#if P_GEN_4_CROSS_EVOS + CRY_MIME_JR, +#endif //P_GEN_4_CROSS_EVOS + CRY_MR_MIME, +#if P_GALARIAN_FORMS + CRY_MR_RIME, +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MR_MIME +#if P_FAMILY_SCYTHER + CRY_SCYTHER, +#if P_GEN_2_CROSS_EVOS + CRY_SCIZOR, +#if P_MEGA_EVOLUTIONS + CRY_SCIZOR_MEGA, +#endif //P_MEGA_EVOLUTIONS +#endif //P_GEN_2_CROSS_EVOS +#if P_GEN_8_CROSS_EVOS + CRY_KLEAVOR, +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_SCYTHER +#if P_FAMILY_JYNX +#if P_GEN_2_CROSS_EVOS + CRY_SMOOCHUM, +#endif //P_GEN_2_CROSS_EVOS + CRY_JYNX, +#endif //P_FAMILY_JYNX +#if P_FAMILY_ELECTABUZZ +#if P_GEN_2_CROSS_EVOS + CRY_ELEKID, +#endif //P_GEN_2_CROSS_EVOS + CRY_ELECTABUZZ, +#if P_GEN_4_CROSS_EVOS + CRY_ELECTIVIRE, +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_ELECTABUZZ +#if P_FAMILY_MAGMAR +#if P_GEN_2_CROSS_EVOS + CRY_MAGBY, +#endif //P_GEN_2_CROSS_EVOS + CRY_MAGMAR, +#if P_GEN_4_CROSS_EVOS + CRY_MAGMORTAR, +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MAGMAR +#if P_FAMILY_PINSIR + CRY_PINSIR, +#if P_MEGA_EVOLUTIONS + CRY_PINSIR_MEGA, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_PINSIR +#if P_FAMILY_TAUROS + CRY_TAUROS, +#endif //P_FAMILY_TAUROS +#if P_FAMILY_MAGIKARP + CRY_MAGIKARP, + CRY_GYARADOS, +#if P_MEGA_EVOLUTIONS + CRY_GYARADOS_MEGA, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_MAGIKARP +#if P_FAMILY_LAPRAS + CRY_LAPRAS, +#endif //P_FAMILY_LAPRAS +#if P_FAMILY_DITTO + CRY_DITTO, +#endif //P_FAMILY_DITTO +#if P_FAMILY_EEVEE + CRY_EEVEE, + CRY_VAPOREON, + CRY_JOLTEON, + CRY_FLAREON, +#if P_GEN_2_CROSS_EVOS + CRY_ESPEON, + CRY_UMBREON, +#endif //P_GEN_2_CROSS_EVOS +#if P_GEN_4_CROSS_EVOS + CRY_LEAFEON, + CRY_GLACEON, +#endif //P_GEN_4_CROSS_EVOS +#if P_GEN_6_CROSS_EVOS + CRY_SYLVEON, +#endif //P_GEN_6_CROSS_EVOS +#endif //P_FAMILY_EEVEE +#if P_FAMILY_PORYGON + CRY_PORYGON, +#if P_GEN_2_CROSS_EVOS + CRY_PORYGON2, +#if P_GEN_4_CROSS_EVOS + CRY_PORYGON_Z, +#endif //P_GEN_4_CROSS_EVOS +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_PORYGON +#if P_FAMILY_OMANYTE + CRY_OMANYTE, + CRY_OMASTAR, +#endif //P_FAMILY_OMANYTE +#if P_FAMILY_KABUTO + CRY_KABUTO, + CRY_KABUTOPS, +#endif //P_FAMILY_KABUTO +#if P_FAMILY_AERODACTYL + CRY_AERODACTYL, +#if P_MEGA_EVOLUTIONS + CRY_AERODACTYL_MEGA, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_AERODACTYL +#if P_FAMILY_SNORLAX +#if P_GEN_4_CROSS_EVOS + CRY_MUNCHLAX, +#endif //P_GEN_4_CROSS_EVOS + CRY_SNORLAX, +#endif //P_FAMILY_SNORLAX +#if P_FAMILY_ARTICUNO + CRY_ARTICUNO, +#endif //P_FAMILY_ARTICUNO +#if P_FAMILY_ZAPDOS + CRY_ZAPDOS, +#endif //P_FAMILY_ZAPDOS +#if P_FAMILY_MOLTRES + CRY_MOLTRES, +#endif //P_FAMILY_MOLTRES +#if P_FAMILY_DRATINI + CRY_DRATINI, + CRY_DRAGONAIR, + CRY_DRAGONITE, +#endif //P_FAMILY_DRATINI +#if P_FAMILY_MEWTWO + CRY_MEWTWO, +#if P_MEGA_EVOLUTIONS + CRY_MEWTWO_MEGA_X, + CRY_MEWTWO_MEGA_Y, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_MEWTWO +#if P_FAMILY_MEW + CRY_MEW, +#endif //P_FAMILY_MEW +#if P_FAMILY_CHIKORITA + CRY_CHIKORITA, + CRY_BAYLEEF, + CRY_MEGANIUM, +#endif //P_FAMILY_CHIKORITA +#if P_FAMILY_CYNDAQUIL + CRY_CYNDAQUIL, + CRY_QUILAVA, + CRY_TYPHLOSION, +#endif //P_FAMILY_CYNDAQUIL +#if P_FAMILY_TOTODILE + CRY_TOTODILE, + CRY_CROCONAW, + CRY_FERALIGATR, +#endif //P_FAMILY_TOTODILE +#if P_FAMILY_SENTRET + CRY_SENTRET, + CRY_FURRET, +#endif //P_FAMILY_SENTRET +#if P_FAMILY_HOOTHOOT + CRY_HOOTHOOT, + CRY_NOCTOWL, +#endif //P_FAMILY_HOOTHOOT +#if P_FAMILY_LEDYBA + CRY_LEDYBA, + CRY_LEDIAN, +#endif //P_FAMILY_LEDYBA +#if P_FAMILY_SPINARAK + CRY_SPINARAK, + CRY_ARIADOS, +#endif //P_FAMILY_SPINARAK +#if P_FAMILY_CHINCHOU + CRY_CHINCHOU, + CRY_LANTURN, +#endif //P_FAMILY_CHINCHOU +#if P_FAMILY_TOGEPI + CRY_TOGEPI, + CRY_TOGETIC, +#if P_GEN_4_CROSS_EVOS + CRY_TOGEKISS, +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_TOGEPI +#if P_FAMILY_NATU + CRY_NATU, + CRY_XATU, +#endif //P_FAMILY_NATU + CRY_MAREEP, +#if P_FAMILY_MAREEP + CRY_FLAAFFY, + CRY_AMPHAROS, +#if P_MEGA_EVOLUTIONS + CRY_AMPHAROS_MEGA, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_MAREEP +#if P_FAMILY_MARILL +#if P_GEN_3_CROSS_EVOS + CRY_AZURILL, +#endif //P_GEN_3_CROSS_EVOS + CRY_MARILL, + CRY_AZUMARILL, +#endif //P_FAMILY_MARILL +#if P_FAMILY_SUDOWOODO + CRY_BONSLY, + CRY_SUDOWOODO, +#endif //P_FAMILY_SUDOWOODO +#if P_FAMILY_HOPPIP + CRY_HOPPIP, + CRY_SKIPLOOM, + CRY_JUMPLUFF, +#endif //P_FAMILY_HOPPIP +#if P_FAMILY_AIPOM + CRY_AIPOM, + CRY_AMBIPOM, +#endif //P_FAMILY_AIPOM +#if P_FAMILY_SUNKERN + CRY_SUNKERN, + CRY_SUNFLORA, +#endif //P_FAMILY_SUNKERN +#if P_FAMILY_YANMA + CRY_YANMA, +#if P_GEN_4_CROSS_EVOS + CRY_YANMEGA, +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_YANMA +#if P_FAMILY_WOOPER + CRY_WOOPER, + CRY_QUAGSIRE, +#if P_PALDEAN_FORMS + CRY_CLODSIRE, +#endif //P_PALDEAN_FORMS +#endif //P_FAMILY_WOOPER +#if P_FAMILY_MURKROW + CRY_MURKROW, + CRY_HONCHKROW, +#endif //P_FAMILY_MURKROW +#if P_FAMILY_MISDREAVUS + CRY_MISDREAVUS, + CRY_MISMAGIUS, +#endif //P_FAMILY_MISDREAVUS +#if P_FAMILY_UNOWN + CRY_UNOWN, +#endif //P_FAMILY_UNOWN +#if P_FAMILY_WOBBUFFET +#if P_GEN_3_CROSS_EVOS + CRY_WYNAUT, +#endif //P_GEN_3_CROSS_EVOS + CRY_WOBBUFFET, +#endif //P_FAMILY_WOBBUFFET +#if P_FAMILY_GIRAFARIG + CRY_GIRAFARIG, +#if P_GEN_9_CROSS_EVOS + CRY_FARIGIRAF, +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_GIRAFARIG +#if P_FAMILY_PINECO + CRY_PINECO, + CRY_FORRETRESS, +#endif //P_FAMILY_PINECO +#if P_FAMILY_DUNSPARCE + CRY_DUNSPARCE, +#if P_GEN_9_CROSS_EVOS + CRY_DUDUNSPARCE, +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_DUNSPARCE +#if P_FAMILY_GLIGAR + CRY_GLIGAR, +#if P_GEN_4_CROSS_EVOS + CRY_GLISCOR, +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_GLIGAR +#if P_FAMILY_SNUBBULL + CRY_SNUBBULL, + CRY_GRANBULL, +#endif //P_FAMILY_SNUBBULL +#if P_FAMILY_QWILFISH + CRY_QWILFISH, +#if P_HISUIAN_FORMS + CRY_OVERQWIL, +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_QWILFISH +#if P_FAMILY_SHUCKLE + CRY_SHUCKLE, +#endif //P_FAMILY_SHUCKLE +#if P_FAMILY_HERACROSS + CRY_HERACROSS, +#if P_MEGA_EVOLUTIONS + CRY_HERACROSS_MEGA, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_HERACROSS +#if P_FAMILY_SNEASEL + CRY_SNEASEL, +#if P_GEN_4_CROSS_EVOS + CRY_WEAVILE, +#endif //P_GEN_4_CROSS_EVOS +#if P_HISUIAN_FORMS + CRY_SNEASLER, +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_SNEASEL +#if P_FAMILY_TEDDIURSA + CRY_TEDDIURSA, + CRY_URSARING, +#if P_GEN_9_CROSS_EVOS + CRY_URSALUNA, +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_TEDDIURSA +#if P_FAMILY_SLUGMA + CRY_SLUGMA, + CRY_MAGCARGO, +#endif //P_FAMILY_SLUGMA +#if P_FAMILY_SWINUB + CRY_SWINUB, + CRY_PILOSWINE, +#if P_GEN_4_CROSS_EVOS + CRY_MAMOSWINE, +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_SWINUB +#if P_FAMILY_CORSOLA + CRY_CORSOLA, +#if P_GALARIAN_FORMS + CRY_CURSOLA, +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_CORSOLA +#if P_FAMILY_REMORAID + CRY_REMORAID, + CRY_OCTILLERY, +#endif //P_FAMILY_REMORAID +#if P_FAMILY_DELIBIRD + CRY_DELIBIRD, +#endif //P_FAMILY_DELIBIRD +#if P_FAMILY_MANTINE +#if P_GEN_4_CROSS_EVOS + CRY_MANTYKE, +#endif //P_GEN_4_CROSS_EVOS + CRY_MANTINE, +#endif //P_FAMILY_MANTINE +#if P_FAMILY_SKARMORY + CRY_SKARMORY, +#endif //P_FAMILY_SKARMORY + CRY_HOUNDOUR, +#if P_FAMILY_HOUNDOUR + CRY_HOUNDOOM, +#if P_MEGA_EVOLUTIONS + CRY_HOUNDOOM_MEGA, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_HOUNDOUR +#if P_FAMILY_PHANPY + CRY_PHANPY, + CRY_DONPHAN, +#endif //P_FAMILY_PHANPY +#if P_FAMILY_STANTLER + CRY_STANTLER, +#if P_GEN_8_CROSS_EVOS + CRY_WYRDEER, +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_STANTLER +#if P_FAMILY_SMEARGLE + CRY_SMEARGLE, +#endif //P_FAMILY_SMEARGLE +#if P_FAMILY_MILTANK + CRY_MILTANK, +#endif //P_FAMILY_MILTANK +#if P_FAMILY_RAIKOU + CRY_RAIKOU, +#endif //P_FAMILY_RAIKOU +#if P_FAMILY_ENTEI + CRY_ENTEI, +#endif //P_FAMILY_ENTEI +#if P_FAMILY_SUICUNE + CRY_SUICUNE, +#endif //P_FAMILY_SUICUNE +#if P_FAMILY_LARVITAR + CRY_LARVITAR, + CRY_PUPITAR, + CRY_TYRANITAR, +#if P_MEGA_EVOLUTIONS + CRY_TYRANITAR_MEGA, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_LARVITAR +#if P_FAMILY_LUGIA + CRY_LUGIA, +#endif //P_FAMILY_LUGIA +#if P_FAMILY_HO_OH + CRY_HO_OH, +#endif //P_FAMILY_HO_OH +#if P_FAMILY_CELEBI + CRY_CELEBI, +#endif //P_FAMILY_CELEBI +#if P_FAMILY_TREECKO + CRY_TREECKO, + CRY_GROVYLE, + CRY_SCEPTILE, +#if P_MEGA_EVOLUTIONS + CRY_SCEPTILE_MEGA, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_TREECKO +#if P_FAMILY_TORCHIC + CRY_TORCHIC, + CRY_COMBUSKEN, + CRY_BLAZIKEN, +#if P_MEGA_EVOLUTIONS + CRY_BLAZIKEN_MEGA, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_TORCHIC +#if P_FAMILY_MUDKIP + CRY_MUDKIP, + CRY_MARSHTOMP, + CRY_SWAMPERT, +#if P_MEGA_EVOLUTIONS + CRY_SWAMPERT_MEGA, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_MUDKIP +#if P_FAMILY_POOCHYENA + CRY_POOCHYENA, + CRY_MIGHTYENA, +#endif //P_FAMILY_POOCHYENA +#if P_FAMILY_ZIGZAGOON + CRY_ZIGZAGOON, + CRY_LINOONE, +#if P_GALARIAN_FORMS + CRY_OBSTAGOON, +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ZIGZAGOON +#if P_FAMILY_WURMPLE + CRY_WURMPLE, + CRY_SILCOON, + CRY_BEAUTIFLY, + CRY_CASCOON, + CRY_DUSTOX, +#endif //P_FAMILY_WURMPLE +#if P_FAMILY_LOTAD + CRY_LOTAD, + CRY_LOMBRE, + CRY_LUDICOLO, +#endif //P_FAMILY_LOTAD +#if P_FAMILY_SEEDOT + CRY_SEEDOT, + CRY_NUZLEAF, + CRY_SHIFTRY, +#endif //P_FAMILY_SEEDOT +#if P_FAMILY_TAILLOW + CRY_TAILLOW, + CRY_SWELLOW, +#endif //P_FAMILY_TAILLOW +#if P_FAMILY_WINGULL + CRY_WINGULL, + CRY_PELIPPER, +#endif //P_FAMILY_WINGULL +#if P_FAMILY_RALTS + CRY_RALTS, + CRY_KIRLIA, + CRY_GARDEVOIR, +#if P_MEGA_EVOLUTIONS + CRY_GARDEVOIR_MEGA, +#endif //P_MEGA_EVOLUTIONS +#if P_GEN_4_CROSS_EVOS + CRY_GALLADE, +#if P_MEGA_EVOLUTIONS + CRY_GALLADE_MEGA, +#endif //P_MEGA_EVOLUTIONS +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_RALTS +#if P_FAMILY_SURSKIT + CRY_SURSKIT, + CRY_MASQUERAIN, +#endif //P_FAMILY_SURSKIT +#if P_FAMILY_SHROOMISH + CRY_SHROOMISH, + CRY_BRELOOM, +#endif //P_FAMILY_SHROOMISH +#if P_FAMILY_SLAKOTH + CRY_SLAKOTH, + CRY_VIGOROTH, + CRY_SLAKING, +#endif //P_FAMILY_SLAKOTH +#if P_FAMILY_NINCADA + CRY_NINCADA, + CRY_NINJASK, + CRY_SHEDINJA, +#endif //P_FAMILY_NINCADA +#if P_FAMILY_WHISMUR + CRY_WHISMUR, + CRY_LOUDRED, + CRY_EXPLOUD, +#endif //P_FAMILY_WHISMUR +#if P_FAMILY_MAKUHITA + CRY_MAKUHITA, + CRY_HARIYAMA, +#endif //P_FAMILY_MAKUHITA +#if P_FAMILY_NOSEPASS + CRY_NOSEPASS, +#if P_GEN_4_CROSS_EVOS + CRY_PROBOPASS, +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_NOSEPASS +#if P_FAMILY_SKITTY + CRY_SKITTY, + CRY_DELCATTY, +#endif //P_FAMILY_SKITTY +#if P_FAMILY_SABLEYE + CRY_SABLEYE, +#if P_MEGA_EVOLUTIONS + CRY_SABLEYE_MEGA, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_SABLEYE +#if P_FAMILY_MAWILE + CRY_MAWILE, +#if P_MEGA_EVOLUTIONS + CRY_MAWILE_MEGA, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_MAWILE +#if P_FAMILY_ARON + CRY_ARON, + CRY_LAIRON, + CRY_AGGRON, +#if P_MEGA_EVOLUTIONS + CRY_AGGRON_MEGA, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_ARON +#if P_FAMILY_MEDITITE + CRY_MEDITITE, + CRY_MEDICHAM, +#if P_MEGA_EVOLUTIONS + CRY_MEDICHAM_MEGA, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_MEDITITE +#if P_FAMILY_ELECTRIKE + CRY_ELECTRIKE, + CRY_MANECTRIC, +#if P_MEGA_EVOLUTIONS + CRY_MANECTRIC_MEGA, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_ELECTRIKE +#if P_FAMILY_PLUSLE + CRY_PLUSLE, +#endif //P_FAMILY_PLUSLE +#if P_FAMILY_MINUN + CRY_MINUN, +#endif //P_FAMILY_MINUN +#if P_FAMILY_VOLBEAT_ILLUMISE + CRY_VOLBEAT, + CRY_ILLUMISE, +#endif //P_FAMILY_VOLBEAT_ILLUMISE +#if P_FAMILY_ROSELIA +#if P_GEN_4_CROSS_EVOS + CRY_BUDEW, +#endif //P_GEN_4_CROSS_EVOS + CRY_ROSELIA, +#if P_GEN_4_CROSS_EVOS + CRY_ROSERADE, +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_ROSELIA +#if P_FAMILY_GULPIN + CRY_GULPIN, + CRY_SWALOT, +#endif //P_FAMILY_GULPIN +#if P_FAMILY_CARVANHA + CRY_CARVANHA, + CRY_SHARPEDO, +#if P_MEGA_EVOLUTIONS + CRY_SHARPEDO_MEGA, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_CARVANHA +#if P_FAMILY_WAILMER + CRY_WAILMER, + CRY_WAILORD, +#endif //P_FAMILY_WAILMER +#if P_FAMILY_NUMEL + CRY_NUMEL, + CRY_CAMERUPT, +#if P_MEGA_EVOLUTIONS + CRY_CAMERUPT_MEGA, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_NUMEL +#if P_FAMILY_TORKOAL + CRY_TORKOAL, +#endif //P_FAMILY_TORKOAL +#if P_FAMILY_SPOINK + CRY_SPOINK, + CRY_GRUMPIG, +#endif //P_FAMILY_SPOINK +#if P_FAMILY_SPINDA + CRY_SPINDA, +#endif //P_FAMILY_SPINDA +#if P_FAMILY_TRAPINCH + CRY_TRAPINCH, + CRY_VIBRAVA, + CRY_FLYGON, +#endif //P_FAMILY_TRAPINCH +#if P_FAMILY_CACNEA + CRY_CACNEA, + CRY_CACTURNE, +#endif //P_FAMILY_CACNEA +#if P_FAMILY_SWABLU + CRY_SWABLU, + CRY_ALTARIA, +#if P_MEGA_EVOLUTIONS + CRY_ALTARIA_MEGA, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_SWABLU +#if P_FAMILY_ZANGOOSE + CRY_ZANGOOSE, +#endif //P_FAMILY_ZANGOOSE +#if P_FAMILY_SEVIPER + CRY_SEVIPER, +#endif //P_FAMILY_SEVIPER +#if P_FAMILY_LUNATONE + CRY_LUNATONE, +#endif //P_FAMILY_LUNATONE +#if P_FAMILY_SOLROCK + CRY_SOLROCK, +#endif //P_FAMILY_SOLROCK +#if P_FAMILY_BARBOACH + CRY_BARBOACH, + CRY_WHISCASH, +#endif //P_FAMILY_BARBOACH +#if P_FAMILY_CORPHISH + CRY_CORPHISH, + CRY_CRAWDAUNT, +#endif //P_FAMILY_CORPHISH +#if P_FAMILY_BALTOY + CRY_BALTOY, + CRY_CLAYDOL, +#endif //P_FAMILY_BALTOY +#if P_FAMILY_LILEEP + CRY_LILEEP, + CRY_CRADILY, +#endif //P_FAMILY_LILEEP +#if P_FAMILY_ANORITH + CRY_ANORITH, + CRY_ARMALDO, +#endif //P_FAMILY_ANORITH +#if P_FAMILY_FEEBAS + CRY_FEEBAS, + CRY_MILOTIC, +#endif //P_FAMILY_FEEBAS +#if P_FAMILY_CASTFORM + CRY_CASTFORM, +#endif //P_FAMILY_CASTFORM +#if P_FAMILY_KECLEON + CRY_KECLEON, +#endif //P_FAMILY_KECLEON +#if P_FAMILY_SHUPPET + CRY_SHUPPET, + CRY_BANETTE, +#if P_MEGA_EVOLUTIONS + CRY_BANETTE_MEGA, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_SHUPPET +#if P_FAMILY_DUSKULL + CRY_DUSKULL, + CRY_DUSCLOPS, +#if P_GEN_4_CROSS_EVOS + CRY_DUSKNOIR, +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_DUSKULL +#if P_FAMILY_TROPIUS + CRY_TROPIUS, +#endif //P_FAMILY_TROPIUS +#if P_FAMILY_CHIMECHO +#if P_GEN_4_CROSS_EVOS + CRY_CHINGLING, +#endif //P_GEN_4_CROSS_EVOS + CRY_CHIMECHO, +#endif //P_FAMILY_CHIMECHO +#if P_FAMILY_ABSOL + CRY_ABSOL, +#if P_MEGA_EVOLUTIONS + CRY_ABSOL_MEGA, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_ABSOL +#if P_FAMILY_SNORUNT + CRY_SNORUNT, + CRY_GLALIE, +#if P_MEGA_EVOLUTIONS + CRY_GLALIE_MEGA, +#endif //P_MEGA_EVOLUTIONS +#if P_GEN_4_CROSS_EVOS + CRY_FROSLASS, +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_SNORUNT +#if P_FAMILY_SPHEAL + CRY_SPHEAL, + CRY_SEALEO, + CRY_WALREIN, +#endif //P_FAMILY_SPHEAL +#if P_FAMILY_CLAMPERL + CRY_CLAMPERL, + CRY_HUNTAIL, + CRY_GOREBYSS, +#endif //P_FAMILY_CLAMPERL +#if P_FAMILY_RELICANTH + CRY_RELICANTH, +#endif //P_FAMILY_RELICANTH +#if P_FAMILY_LUVDISC + CRY_LUVDISC, +#endif //P_FAMILY_LUVDISC +#if P_FAMILY_BAGON + CRY_BAGON, + CRY_SHELGON, + CRY_SALAMENCE, +#if P_MEGA_EVOLUTIONS + CRY_SALAMENCE_MEGA, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_BAGON +#if P_FAMILY_BELDUM + CRY_BELDUM, + CRY_METANG, + CRY_METAGROSS, +#if P_MEGA_EVOLUTIONS + CRY_METAGROSS_MEGA, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_BELDUM +#if P_FAMILY_REGIROCK + CRY_REGIROCK, +#endif //P_FAMILY_REGIROCK +#if P_FAMILY_REGICE + CRY_REGICE, +#endif //P_FAMILY_REGICE +#if P_FAMILY_REGISTEEL + CRY_REGISTEEL, +#endif //P_FAMILY_REGISTEEL +#if P_FAMILY_LATIAS + CRY_LATIAS, +#if P_MEGA_EVOLUTIONS + CRY_LATIAS_MEGA, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_LATIAS +#if P_FAMILY_LATIOS + CRY_LATIOS, +#if P_MEGA_EVOLUTIONS + CRY_LATIOS_MEGA, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_LATIOS +#if P_FAMILY_KYOGRE + CRY_KYOGRE, +#if P_PRIMAL_REVERSIONS + CRY_KYOGRE_PRIMAL, +#endif //P_PRIMAL_REVERSIONS +#endif //P_FAMILY_KYOGRE +#if P_FAMILY_GROUDON + CRY_GROUDON, +#if P_PRIMAL_REVERSIONS + CRY_GROUDON_PRIMAL, +#endif //P_PRIMAL_REVERSIONS +#endif //P_FAMILY_GROUDON +#if P_FAMILY_RAYQUAZA + CRY_RAYQUAZA, +#if P_MEGA_EVOLUTIONS + CRY_RAYQUAZA_MEGA, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_RAYQUAZA +#if P_FAMILY_JIRACHI + CRY_JIRACHI, +#endif //P_FAMILY_JIRACHI +#if P_FAMILY_DEOXYS + CRY_DEOXYS, +#endif //P_FAMILY_DEOXYS +#if P_FAMILY_TURTWIG +#endif //P_FAMILY_TURTWIG + CRY_TURTWIG, + CRY_GROTLE, + CRY_TORTERRA, +#if P_FAMILY_CHIMCHAR +#endif //P_FAMILY_CHIMCHAR + CRY_CHIMCHAR, + CRY_MONFERNO, + CRY_INFERNAPE, +#if P_FAMILY_PIPLUP + CRY_PIPLUP, + CRY_PRINPLUP, + CRY_EMPOLEON, +#endif //P_FAMILY_PIPLUP +#if P_FAMILY_STARLY + CRY_STARLY, + CRY_STARAVIA, + CRY_STARAPTOR, +#endif //P_FAMILY_STARLY +#if P_FAMILY_BIDOOF + CRY_BIDOOF, + CRY_BIBAREL, +#endif //P_FAMILY_BIDOOF +#if P_FAMILY_KRICKETOT + CRY_KRICKETOT, + CRY_KRICKETUNE, +#endif //P_FAMILY_KRICKETOT +#if P_FAMILY_SHINX + CRY_SHINX, + CRY_LUXIO, + CRY_LUXRAY, +#endif //P_FAMILY_SHINX +#if P_FAMILY_CRANIDOS + CRY_CRANIDOS, + CRY_RAMPARDOS, +#endif //P_FAMILY_CRANIDOS +#if P_FAMILY_SHIELDON + CRY_SHIELDON, + CRY_BASTIODON, +#endif //P_FAMILY_SHIELDON +#if P_FAMILY_BURMY + CRY_BURMY, + CRY_WORMADAM, + CRY_MOTHIM, +#endif //P_FAMILY_BURMY +#if P_FAMILY_COMBEE + CRY_COMBEE, + CRY_VESPIQUEN, +#endif //P_FAMILY_COMBEE +#if P_FAMILY_PACHIRISU + CRY_PACHIRISU, +#endif //P_FAMILY_PACHIRISU +#if P_FAMILY_BUIZEL + CRY_BUIZEL, + CRY_FLOATZEL, +#endif //P_FAMILY_BUIZEL +#if P_FAMILY_CHERUBI + CRY_CHERUBI, + CRY_CHERRIM, +#endif //P_FAMILY_CHERUBI +#if P_FAMILY_SHELLOS + CRY_SHELLOS, + CRY_GASTRODON, +#endif //P_FAMILY_SHELLOS +#if P_FAMILY_DRIFLOON + CRY_DRIFLOON, + CRY_DRIFBLIM, +#endif //P_FAMILY_DRIFLOON +#if P_FAMILY_BUNEARY + CRY_BUNEARY, + CRY_LOPUNNY, +#if P_MEGA_EVOLUTIONS + CRY_LOPUNNY_MEGA, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_BUNEARY +#if P_FAMILY_GLAMEOW + CRY_GLAMEOW, + CRY_PURUGLY, +#endif //P_FAMILY_GLAMEOW +#if P_FAMILY_STUNKY + CRY_STUNKY, + CRY_SKUNTANK, +#endif //P_FAMILY_STUNKY +#if P_FAMILY_BRONZOR + CRY_BRONZOR, + CRY_BRONZONG, +#endif //P_FAMILY_BRONZOR +#if P_FAMILY_CHATOT + CRY_CHATOT, +#endif //P_FAMILY_CHATOT +#if P_FAMILY_SPIRITOMB + CRY_SPIRITOMB, +#endif //P_FAMILY_SPIRITOMB +#if P_FAMILY_GIBLE + CRY_GIBLE, + CRY_GABITE, + CRY_GARCHOMP, +#if P_MEGA_EVOLUTIONS + CRY_GARCHOMP_MEGA, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_GIBLE +#if P_FAMILY_RIOLU + CRY_RIOLU, + CRY_LUCARIO, +#if P_MEGA_EVOLUTIONS + CRY_LUCARIO_MEGA, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_RIOLU +#if P_FAMILY_HIPPOPOTAS + CRY_HIPPOPOTAS, + CRY_HIPPOWDON, +#endif //P_FAMILY_HIPPOPOTAS +#if P_FAMILY_SKORUPI + CRY_SKORUPI, + CRY_DRAPION, +#endif //P_FAMILY_SKORUPI +#if P_FAMILY_CROAGUNK + CRY_CROAGUNK, + CRY_TOXICROAK, +#endif //P_FAMILY_CROAGUNK +#if P_FAMILY_CARNIVINE + CRY_CARNIVINE, +#endif //P_FAMILY_CARNIVINE +#if P_FAMILY_FINNEON + CRY_FINNEON, + CRY_LUMINEON, +#endif //P_FAMILY_FINNEON +#if P_FAMILY_SNOVER + CRY_SNOVER, + CRY_ABOMASNOW, +#if P_MEGA_EVOLUTIONS + CRY_ABOMASNOW_MEGA, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_SNOVER +#if P_FAMILY_ROTOM + CRY_ROTOM, +#endif //P_FAMILY_ROTOM +#if P_FAMILY_UXIE + CRY_UXIE, +#endif //P_FAMILY_UXIE +#if P_FAMILY_MESPRIT + CRY_MESPRIT, +#endif //P_FAMILY_MESPRIT +#if P_FAMILY_AZELF + CRY_AZELF, +#endif //P_FAMILY_AZELF +#if P_FAMILY_DIALGA + CRY_DIALGA, +#endif //P_FAMILY_DIALGA +#if P_FAMILY_PALKIA + CRY_PALKIA, +#endif //P_FAMILY_PALKIA +#if P_FAMILY_HEATRAN + CRY_HEATRAN, +#endif //P_FAMILY_HEATRAN +#if P_FAMILY_REGIGIGAS + CRY_REGIGIGAS, +#endif //P_FAMILY_REGIGIGAS +#if P_FAMILY_GIRATINA + CRY_GIRATINA, +#endif //P_FAMILY_GIRATINA +#if P_FAMILY_CRESSELIA + CRY_CRESSELIA, +#endif //P_FAMILY_CRESSELIA +#if P_FAMILY_MANAPHY + CRY_PHIONE, + CRY_MANAPHY, +#endif //P_FAMILY_MANAPHY +#if P_FAMILY_DARKRAI + CRY_DARKRAI, +#endif //P_FAMILY_DARKRAI +#if P_FAMILY_SHAYMIN + CRY_SHAYMIN_LAND, + CRY_SHAYMIN_SKY, +#endif //P_FAMILY_SHAYMIN +#if P_FAMILY_ARCEUS + CRY_ARCEUS, +#endif //P_FAMILY_ARCEUS +#if P_FAMILY_VICTINI + CRY_VICTINI, +#endif //P_FAMILY_VICTINI +#if P_FAMILY_SNIVY + CRY_SNIVY, + CRY_SERVINE, + CRY_SERPERIOR, +#endif //P_FAMILY_SNIVY +#if P_FAMILY_TEPIG + CRY_TEPIG, + CRY_PIGNITE, + CRY_EMBOAR, +#endif //P_FAMILY_TEPIG +#if P_FAMILY_OSHAWOTT + CRY_OSHAWOTT, + CRY_DEWOTT, + CRY_SAMUROTT, +#endif //P_FAMILY_OSHAWOTT +#if P_FAMILY_PATRAT + CRY_PATRAT, + CRY_WATCHOG, +#endif //P_FAMILY_PATRAT +#if P_FAMILY_LILLIPUP + CRY_LILLIPUP, + CRY_HERDIER, + CRY_STOUTLAND, +#endif //P_FAMILY_LILLIPUP +#if P_FAMILY_PURRLOIN + CRY_PURRLOIN, + CRY_LIEPARD, +#endif //P_FAMILY_PURRLOIN +#if P_FAMILY_PANSAGE + CRY_PANSAGE, + CRY_SIMISAGE, +#endif //P_FAMILY_PANSAGE +#if P_FAMILY_PANSEAR + CRY_PANSEAR, + CRY_SIMISEAR, +#endif //P_FAMILY_PANSEAR +#if P_FAMILY_PANPOUR + CRY_PANPOUR, + CRY_SIMIPOUR, +#endif //P_FAMILY_PANPOUR +#if P_FAMILY_MUNNA + CRY_MUNNA, + CRY_MUSHARNA, +#endif //P_FAMILY_MUNNA +#if P_FAMILY_PIDOVE + CRY_PIDOVE, + CRY_TRANQUILL, + CRY_UNFEZANT, +#endif //P_FAMILY_PIDOVE +#if P_FAMILY_BLITZLE + CRY_BLITZLE, + CRY_ZEBSTRIKA, +#endif //P_FAMILY_BLITZLE +#if P_FAMILY_ROGGENROLA + CRY_ROGGENROLA, + CRY_BOLDORE, + CRY_GIGALITH, +#endif //P_FAMILY_ROGGENROLA +#if P_FAMILY_WOOBAT + CRY_WOOBAT, + CRY_SWOOBAT, +#endif //P_FAMILY_WOOBAT +#if P_FAMILY_DRILBUR + CRY_DRILBUR, + CRY_EXCADRILL, +#endif //P_FAMILY_DRILBUR +#if P_FAMILY_AUDINO + CRY_AUDINO, +#if P_MEGA_EVOLUTIONS + CRY_AUDINO_MEGA, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_AUDINO +#if P_FAMILY_TIMBURR + CRY_TIMBURR, + CRY_GURDURR, + CRY_CONKELDURR, +#endif //P_FAMILY_TIMBURR +#if P_FAMILY_TYMPOLE + CRY_TYMPOLE, + CRY_PALPITOAD, + CRY_SEISMITOAD, +#endif //P_FAMILY_TYMPOLE +#if P_FAMILY_THROH + CRY_THROH, +#endif //P_FAMILY_THROH +#if P_FAMILY_SAWK + CRY_SAWK, +#endif //P_FAMILY_SAWK +#if P_FAMILY_SEWADDLE + CRY_SEWADDLE, + CRY_SWADLOON, + CRY_LEAVANNY, +#endif //P_FAMILY_SEWADDLE +#if P_FAMILY_VENIPEDE + CRY_VENIPEDE, + CRY_WHIRLIPEDE, + CRY_SCOLIPEDE, +#endif //P_FAMILY_VENIPEDE +#if P_FAMILY_COTTONEE + CRY_COTTONEE, + CRY_WHIMSICOTT, +#endif //P_FAMILY_COTTONEE +#if P_FAMILY_PETILIL + CRY_PETILIL, + CRY_LILLIGANT, +#endif //P_FAMILY_PETILIL +#if P_FAMILY_BASCULIN + CRY_BASCULIN, +#if P_HISUIAN_FORMS + CRY_BASCULEGION, +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_BASCULIN +#if P_FAMILY_SANDILE + CRY_SANDILE, + CRY_KROKOROK, + CRY_KROOKODILE, +#endif //P_FAMILY_SANDILE +#if P_FAMILY_DARUMAKA + CRY_DARUMAKA, + CRY_DARMANITAN, +#endif //P_FAMILY_DARUMAKA +#if P_FAMILY_MARACTUS + CRY_MARACTUS, +#endif //P_FAMILY_MARACTUS +#if P_FAMILY_DWEBBLE + CRY_DWEBBLE, + CRY_CRUSTLE, +#endif //P_FAMILY_DWEBBLE +#if P_FAMILY_SCRAGGY + CRY_SCRAGGY, + CRY_SCRAFTY, +#endif //P_FAMILY_SCRAGGY +#if P_FAMILY_SIGILYPH + CRY_SIGILYPH, +#endif //P_FAMILY_SIGILYPH +#if P_FAMILY_YAMASK + CRY_YAMASK, + CRY_COFAGRIGUS, +#if P_GALARIAN_FORMS + CRY_RUNERIGUS, +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_YAMASK +#if P_FAMILY_TIRTOUGA + CRY_TIRTOUGA, + CRY_CARRACOSTA, +#endif //P_FAMILY_TIRTOUGA +#if P_FAMILY_ARCHEN + CRY_ARCHEN, + CRY_ARCHEOPS, +#endif //P_FAMILY_ARCHEN +#if P_FAMILY_TRUBBISH + CRY_TRUBBISH, + CRY_GARBODOR, +#endif //P_FAMILY_TRUBBISH +#if P_FAMILY_ZORUA + CRY_ZORUA, + CRY_ZOROARK, +#endif //P_FAMILY_ZORUA +#if P_FAMILY_MINCCINO + CRY_MINCCINO, + CRY_CINCCINO, +#endif //P_FAMILY_MINCCINO +#if P_FAMILY_GOTHITA + CRY_GOTHITA, + CRY_GOTHORITA, + CRY_GOTHITELLE, +#endif //P_FAMILY_GOTHITA +#if P_FAMILY_SOLOSIS + CRY_SOLOSIS, + CRY_DUOSION, + CRY_REUNICLUS, +#endif //P_FAMILY_SOLOSIS +#if P_FAMILY_DUCKLETT + CRY_DUCKLETT, + CRY_SWANNA, +#endif //P_FAMILY_DUCKLETT +#if P_FAMILY_VANILLITE + CRY_VANILLITE, + CRY_VANILLISH, + CRY_VANILLUXE, +#endif //P_FAMILY_VANILLITE +#if P_FAMILY_DEERLING + CRY_DEERLING, + CRY_SAWSBUCK, +#endif //P_FAMILY_DEERLING +#if P_FAMILY_EMOLGA + CRY_EMOLGA, +#endif //P_FAMILY_EMOLGA +#if P_FAMILY_KARRABLAST + CRY_KARRABLAST, + CRY_ESCAVALIER, +#endif //P_FAMILY_KARRABLAST +#if P_FAMILY_FOONGUS + CRY_FOONGUS, + CRY_AMOONGUSS, +#endif //P_FAMILY_FOONGUS +#if P_FAMILY_FRILLISH + CRY_FRILLISH, + CRY_JELLICENT, +#endif //P_FAMILY_FRILLISH +#if P_FAMILY_ALOMOMOLA + CRY_ALOMOMOLA, +#endif //P_FAMILY_ALOMOMOLA +#if P_FAMILY_JOLTIK + CRY_JOLTIK, + CRY_GALVANTULA, +#endif //P_FAMILY_JOLTIK +#if P_FAMILY_FERROSEED + CRY_FERROSEED, + CRY_FERROTHORN, +#endif //P_FAMILY_FERROSEED +#if P_FAMILY_KLINK + CRY_KLINK, + CRY_KLANG, + CRY_KLINKLANG, +#endif //P_FAMILY_KLINK +#if P_FAMILY_TYNAMO + CRY_TYNAMO, + CRY_EELEKTRIK, + CRY_EELEKTROSS, +#endif //P_FAMILY_TYNAMO +#if P_FAMILY_ELGYEM + CRY_ELGYEM, + CRY_BEHEEYEM, +#endif //P_FAMILY_ELGYEM +#if P_FAMILY_LITWICK + CRY_LITWICK, + CRY_LAMPENT, + CRY_CHANDELURE, +#endif //P_FAMILY_LITWICK +#if P_FAMILY_AXEW + CRY_AXEW, + CRY_FRAXURE, + CRY_HAXORUS, +#endif //P_FAMILY_AXEW +#if P_FAMILY_CUBCHOO + CRY_CUBCHOO, + CRY_BEARTIC, +#endif //P_FAMILY_CUBCHOO +#if P_FAMILY_CRYOGONAL + CRY_CRYOGONAL, +#endif //P_FAMILY_CRYOGONAL +#if P_FAMILY_SHELMET + CRY_SHELMET, + CRY_ACCELGOR, +#endif //P_FAMILY_SHELMET +#if P_FAMILY_STUNFISK + CRY_STUNFISK, +#endif //P_FAMILY_STUNFISK +#if P_FAMILY_MIENFOO + CRY_MIENFOO, + CRY_MIENSHAO, +#endif //P_FAMILY_MIENFOO +#if P_FAMILY_DRUDDIGON + CRY_DRUDDIGON, +#endif //P_FAMILY_DRUDDIGON +#if P_FAMILY_GOLETT + CRY_GOLETT, + CRY_GOLURK, +#endif //P_FAMILY_GOLETT +#if P_FAMILY_PAWNIARD + CRY_PAWNIARD, + CRY_BISHARP, +#if P_GEN_9_CROSS_EVOS + CRY_KINGAMBIT, +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_PAWNIARD +#if P_FAMILY_BOUFFALANT + CRY_BOUFFALANT, +#endif //P_FAMILY_BOUFFALANT +#if P_FAMILY_RUFFLET + CRY_RUFFLET, + CRY_BRAVIARY, +#endif //P_FAMILY_RUFFLET +#if P_FAMILY_VULLABY + CRY_VULLABY, + CRY_MANDIBUZZ, +#endif //P_FAMILY_VULLABY +#if P_FAMILY_HEATMOR + CRY_HEATMOR, +#endif //P_FAMILY_HEATMOR +#if P_FAMILY_DURANT + CRY_DURANT, +#endif //P_FAMILY_DURANT +#if P_FAMILY_DEINO + CRY_DEINO, + CRY_ZWEILOUS, + CRY_HYDREIGON, +#endif //P_FAMILY_DEINO +#if P_FAMILY_LARVESTA + CRY_LARVESTA, + CRY_VOLCARONA, +#endif //P_FAMILY_LARVESTA +#if P_FAMILY_COBALION + CRY_COBALION, +#endif //P_FAMILY_COBALION +#if P_FAMILY_TERRAKION + CRY_TERRAKION, +#endif //P_FAMILY_TERRAKION +#if P_FAMILY_VIRIZION + CRY_VIRIZION, +#endif //P_FAMILY_VIRIZION +#if P_FAMILY_TORNADUS + CRY_TORNADUS_INCARNATE, + CRY_TORNADUS_THERIAN, +#endif //P_FAMILY_TORNADUS +#if P_FAMILY_THUNDURUS + CRY_THUNDURUS_INCARNATE, + CRY_THUNDURUS_THERIAN, +#endif //P_FAMILY_THUNDURUS +#if P_FAMILY_RESHIRAM + CRY_RESHIRAM, +#endif //P_FAMILY_RESHIRAM +#if P_FAMILY_ZEKROM + CRY_ZEKROM, +#endif //P_FAMILY_ZEKROM +#if P_FAMILY_LANDORUS + CRY_LANDORUS_INCARNATE, + CRY_LANDORUS_THERIAN, +#endif //P_FAMILY_LANDORUS +#if P_FAMILY_KYUREM + CRY_KYUREM, +#if P_FUSION_FORMS + CRY_KYUREM_WHITE, + CRY_KYUREM_BLACK, +#endif //P_FUSION_FORMS +#endif //P_FAMILY_KYUREM +#if P_FAMILY_KELDEO + CRY_KELDEO, +#endif //P_FAMILY_KELDEO +#if P_FAMILY_MELOETTA + CRY_MELOETTA, +#endif //P_FAMILY_MELOETTA +#if P_FAMILY_GENESECT + CRY_GENESECT, +#endif //P_FAMILY_GENESECT +#if P_FAMILY_CHESPIN + CRY_CHESPIN, + CRY_QUILLADIN, + CRY_CHESNAUGHT, +#endif //P_FAMILY_CHESPIN +#if P_FAMILY_FENNEKIN + CRY_FENNEKIN, + CRY_BRAIXEN, + CRY_DELPHOX, +#endif //P_FAMILY_FENNEKIN +#if P_FAMILY_FROAKIE + CRY_FROAKIE, + CRY_FROGADIER, + CRY_GRENINJA, +#endif //P_FAMILY_FROAKIE +#if P_FAMILY_BUNNELBY + CRY_BUNNELBY, + CRY_DIGGERSBY, +#endif //P_FAMILY_BUNNELBY +#if P_FAMILY_FLETCHLING + CRY_FLETCHLING, + CRY_FLETCHINDER, + CRY_TALONFLAME, +#endif //P_FAMILY_FLETCHLING +#if P_FAMILY_SCATTERBUG + CRY_SCATTERBUG, + CRY_SPEWPA, + CRY_VIVILLON, +#endif //P_FAMILY_SCATTERBUG +#if P_FAMILY_LITLEO + CRY_LITLEO, + CRY_PYROAR, +#endif //P_FAMILY_LITLEO +#if P_FAMILY_FLABEBE + CRY_FLABEBE, + CRY_FLOETTE, + CRY_FLOETTE_ETERNAL_FLOWER, + CRY_FLORGES, +#endif //P_FAMILY_FLABEBE +#if P_FAMILY_SKIDDO + CRY_SKIDDO, + CRY_GOGOAT, +#endif //P_FAMILY_SKIDDO +#if P_FAMILY_PANCHAM + CRY_PANCHAM, + CRY_PANGORO, +#endif //P_FAMILY_PANCHAM +#if P_FAMILY_FURFROU + CRY_FURFROU, +#endif //P_FAMILY_FURFROU +#if P_FAMILY_ESPURR + CRY_ESPURR, + CRY_MEOWSTIC, +#endif //P_FAMILY_ESPURR +#if P_FAMILY_HONEDGE + CRY_HONEDGE, + CRY_DOUBLADE, + CRY_AEGISLASH, +#endif //P_FAMILY_HONEDGE +#if P_FAMILY_SPRITZEE + CRY_SPRITZEE, + CRY_AROMATISSE, +#endif //P_FAMILY_SPRITZEE +#if P_FAMILY_SWIRLIX + CRY_SWIRLIX, + CRY_SLURPUFF, +#endif //P_FAMILY_SWIRLIX +#if P_FAMILY_INKAY + CRY_INKAY, + CRY_MALAMAR, +#endif //P_FAMILY_INKAY +#if P_FAMILY_BINACLE + CRY_BINACLE, + CRY_BARBARACLE, +#endif //P_FAMILY_BINACLE +#if P_FAMILY_SKRELP + CRY_SKRELP, + CRY_DRAGALGE, +#endif //P_FAMILY_SKRELP +#if P_FAMILY_CLAUNCHER + CRY_CLAUNCHER, + CRY_CLAWITZER, +#endif //P_FAMILY_CLAUNCHER +#if P_FAMILY_HELIOPTILE + CRY_HELIOPTILE, + CRY_HELIOLISK, +#endif //P_FAMILY_HELIOPTILE +#if P_FAMILY_TYRUNT + CRY_TYRUNT, + CRY_TYRANTRUM, +#endif //P_FAMILY_TYRUNT +#if P_FAMILY_AMAURA + CRY_AMAURA, + CRY_AURORUS, +#endif //P_FAMILY_AMAURA +#if P_FAMILY_HAWLUCHA + CRY_HAWLUCHA, +#endif //P_FAMILY_HAWLUCHA +#if P_FAMILY_DEDENNE + CRY_DEDENNE, +#endif //P_FAMILY_DEDENNE +#if P_FAMILY_CARBINK + CRY_CARBINK, +#endif //P_FAMILY_CARBINK +#if P_FAMILY_GOOMY + CRY_GOOMY, + CRY_SLIGGOO, + CRY_GOODRA, +#endif //P_FAMILY_GOOMY +#if P_FAMILY_KLEFKI + CRY_KLEFKI, +#endif //P_FAMILY_KLEFKI +#if P_FAMILY_PHANTUMP + CRY_PHANTUMP, + CRY_TREVENANT, +#endif //P_FAMILY_PHANTUMP +#if P_FAMILY_PUMPKABOO + CRY_PUMPKABOO, + CRY_PUMPKABOO_SUPER, + CRY_GOURGEIST, + CRY_GOURGEIST_SUPER, +#endif //P_FAMILY_PUMPKABOO +#if P_FAMILY_BERGMITE + CRY_BERGMITE, + CRY_AVALUGG, +#endif //P_FAMILY_BERGMITE +#if P_FAMILY_NOIBAT + CRY_NOIBAT, + CRY_NOIVERN, +#endif //P_FAMILY_NOIBAT +#if P_FAMILY_XERNEAS + CRY_XERNEAS, +#endif //P_FAMILY_XERNEAS +#if P_FAMILY_YVELTAL + CRY_YVELTAL, +#endif //P_FAMILY_YVELTAL +#if P_FAMILY_ZYGARDE + CRY_ZYGARDE_50, + CRY_ZYGARDE_10, + CRY_ZYGARDE_COMPLETE, +#endif //P_FAMILY_ZYGARDE +#if P_FAMILY_DIANCIE + CRY_DIANCIE, +#if P_MEGA_EVOLUTIONS + CRY_DIANCIE_MEGA, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_DIANCIE +#if P_FAMILY_HOOPA + CRY_HOOPA_CONFINED, + CRY_HOOPA_UNBOUND, +#endif //P_FAMILY_HOOPA +#if P_FAMILY_VOLCANION + CRY_VOLCANION, +#endif //P_FAMILY_VOLCANION +#if P_FAMILY_ROWLET + CRY_ROWLET, + CRY_DARTRIX, + CRY_DECIDUEYE, +#endif //P_FAMILY_ROWLET +#if P_FAMILY_LITTEN + CRY_LITTEN, + CRY_TORRACAT, + CRY_INCINEROAR, +#endif //P_FAMILY_LITTEN +#if P_FAMILY_POPPLIO + CRY_POPPLIO, + CRY_BRIONNE, + CRY_PRIMARINA, +#endif //P_FAMILY_POPPLIO +#if P_FAMILY_PIKIPEK + CRY_PIKIPEK, + CRY_TRUMBEAK, + CRY_TOUCANNON, +#endif //P_FAMILY_PIKIPEK +#if P_FAMILY_YUNGOOS + CRY_YUNGOOS, + CRY_GUMSHOOS, +#endif //P_FAMILY_YUNGOOS +#if P_FAMILY_GRUBBIN + CRY_GRUBBIN, + CRY_CHARJABUG, + CRY_VIKAVOLT, +#endif //P_FAMILY_GRUBBIN +#if P_FAMILY_CRABRAWLER + CRY_CRABRAWLER, + CRY_CRABOMINABLE, +#endif //P_FAMILY_CRABRAWLER +#if P_FAMILY_ORICORIO + CRY_ORICORIO_BAILE, + CRY_ORICORIO_POM_POM, + CRY_ORICORIO_PAU, + CRY_ORICORIO_SENSU, +#endif //P_FAMILY_ORICORIO +#if P_FAMILY_CUTIEFLY + CRY_CUTIEFLY, + CRY_RIBOMBEE, +#endif //P_FAMILY_CUTIEFLY +#if P_FAMILY_ROCKRUFF + CRY_ROCKRUFF, + CRY_LYCANROC_MIDDAY, + CRY_LYCANROC_MIDNIGHT, + CRY_LYCANROC_DUSK, +#endif //P_FAMILY_ROCKRUFF +#if P_FAMILY_WISHIWASHI + CRY_WISHIWASHI_SOLO, + CRY_WISHIWASHI_SCHOOL, +#endif //P_FAMILY_WISHIWASHI +#if P_FAMILY_MAREANIE + CRY_MAREANIE, + CRY_TOXAPEX, +#endif //P_FAMILY_MAREANIE +#if P_FAMILY_MUDBRAY + CRY_MUDBRAY, + CRY_MUDSDALE, +#endif //P_FAMILY_MUDBRAY +#if P_FAMILY_DEWPIDER + CRY_DEWPIDER, + CRY_ARAQUANID, +#endif //P_FAMILY_DEWPIDER +#if P_FAMILY_FOMANTIS + CRY_FOMANTIS, + CRY_LURANTIS, +#endif //P_FAMILY_FOMANTIS +#if P_FAMILY_MORELULL + CRY_MORELULL, + CRY_SHIINOTIC, +#endif //P_FAMILY_MORELULL +#if P_FAMILY_SALANDIT + CRY_SALANDIT, + CRY_SALAZZLE, +#endif //P_FAMILY_SALANDIT +#if P_FAMILY_STUFFUL + CRY_STUFFUL, + CRY_BEWEAR, +#endif //P_FAMILY_STUFFUL +#if P_FAMILY_BOUNSWEET + CRY_BOUNSWEET, + CRY_STEENEE, + CRY_TSAREENA, +#endif //P_FAMILY_BOUNSWEET +#if P_FAMILY_COMFEY + CRY_COMFEY, +#endif //P_FAMILY_COMFEY +#if P_FAMILY_ORANGURU + CRY_ORANGURU, +#endif //P_FAMILY_ORANGURU +#if P_FAMILY_PASSIMIAN + CRY_PASSIMIAN, +#endif //P_FAMILY_PASSIMIAN +#if P_FAMILY_WIMPOD + CRY_WIMPOD, + CRY_GOLISOPOD, +#endif //P_FAMILY_WIMPOD +#if P_FAMILY_SANDYGAST + CRY_SANDYGAST, + CRY_PALOSSAND, +#endif //P_FAMILY_SANDYGAST +#if P_FAMILY_PYUKUMUKU + CRY_PYUKUMUKU, +#endif //P_FAMILY_PYUKUMUKU +#if P_FAMILY_TYPE_NULL + CRY_TYPE_NULL, + CRY_SILVALLY, +#endif //P_FAMILY_TYPE_NULL +#if P_FAMILY_MINIOR + CRY_MINIOR, +#endif //P_FAMILY_MINIOR +#if P_FAMILY_KOMALA + CRY_KOMALA, +#endif //P_FAMILY_KOMALA +#if P_FAMILY_TURTONATOR + CRY_TURTONATOR, +#endif //P_FAMILY_TURTONATOR +#if P_FAMILY_TOGEDEMARU + CRY_TOGEDEMARU, +#endif //P_FAMILY_TOGEDEMARU +#if P_FAMILY_MIMIKYU + CRY_MIMIKYU, +#endif //P_FAMILY_MIMIKYU +#if P_FAMILY_BRUXISH + CRY_BRUXISH, +#endif //P_FAMILY_BRUXISH +#if P_FAMILY_DRAMPA + CRY_DRAMPA, +#endif //P_FAMILY_DRAMPA +#if P_FAMILY_DHELMISE + CRY_DHELMISE, +#endif //P_FAMILY_DHELMISE +#if P_FAMILY_JANGMO_O + CRY_JANGMO_O, + CRY_HAKAMO_O, + CRY_KOMMO_O, +#endif //P_FAMILY_JANGMO_O +#if P_FAMILY_TAPU_KOKO + CRY_TAPU_KOKO, +#endif //P_FAMILY_TAPU_KOKO +#if P_FAMILY_TAPU_LELE + CRY_TAPU_LELE, +#endif //P_FAMILY_TAPU_LELE +#if P_FAMILY_TAPU_BULU + CRY_TAPU_BULU, +#endif //P_FAMILY_TAPU_BULU +#if P_FAMILY_TAPU_FINI + CRY_TAPU_FINI, +#endif //P_FAMILY_TAPU_FINI +#if P_FAMILY_COSMOG + CRY_COSMOG, + CRY_COSMOEM, + CRY_SOLGALEO, + CRY_LUNALA, +#endif //P_FAMILY_COSMOG +#if P_FAMILY_NIHILEGO + CRY_NIHILEGO, +#endif //P_FAMILY_NIHILEGO +#if P_FAMILY_BUZZWOLE + CRY_BUZZWOLE, +#endif //P_FAMILY_BUZZWOLE +#if P_FAMILY_PHEROMOSA + CRY_PHEROMOSA, +#endif //P_FAMILY_PHEROMOSA +#if P_FAMILY_XURKITREE + CRY_XURKITREE, +#endif //P_FAMILY_XURKITREE +#if P_FAMILY_CELESTEELA + CRY_CELESTEELA, +#endif //P_FAMILY_CELESTEELA +#if P_FAMILY_KARTANA + CRY_KARTANA, +#endif //P_FAMILY_KARTANA +#if P_FAMILY_GUZZLORD + CRY_GUZZLORD, +#endif //P_FAMILY_GUZZLORD +#if P_FAMILY_NECROZMA + CRY_NECROZMA, +#if P_FUSION_FORMS + CRY_NECROZMA_DUSK_MANE, + CRY_NECROZMA_DAWN_WINGS, +#if P_ULTRA_BURST_FORMS + CRY_NECROZMA_ULTRA, +#endif //P_ULTRA_BURST_FORMS +#endif //P_FUSION_FORMS +#endif //P_FAMILY_NECROZMA +#if P_FAMILY_MAGEARNA + CRY_MAGEARNA, +#endif //P_FAMILY_MAGEARNA +#if P_FAMILY_MARSHADOW + CRY_MARSHADOW, +#endif //P_FAMILY_MARSHADOW +#if P_FAMILY_POIPOLE + CRY_POIPOLE, + CRY_NAGANADEL, +#endif //P_FAMILY_POIPOLE +#if P_FAMILY_STAKATAKA + CRY_STAKATAKA, +#endif //P_FAMILY_STAKATAKA +#if P_FAMILY_BLACEPHALON + CRY_BLACEPHALON, +#endif //P_FAMILY_BLACEPHALON +#if P_FAMILY_ZERAORA + CRY_ZERAORA, +#endif //P_FAMILY_ZERAORA +#if P_FAMILY_MELTAN + CRY_MELTAN, + CRY_MELMETAL, +#endif //P_FAMILY_MELTAN +#if P_FAMILY_GROOKEY + CRY_GROOKEY, + CRY_THWACKEY, + CRY_RILLABOOM, +#endif //P_FAMILY_GROOKEY +#if P_FAMILY_SCORBUNNY + CRY_SCORBUNNY, + CRY_RABOOT, + CRY_CINDERACE, +#endif //P_FAMILY_SCORBUNNY +#if P_FAMILY_SOBBLE + CRY_SOBBLE, + CRY_DRIZZILE, + CRY_INTELEON, +#endif //P_FAMILY_SOBBLE +#if P_FAMILY_SKWOVET + CRY_SKWOVET, + CRY_GREEDENT, +#endif //P_FAMILY_SKWOVET +#if P_FAMILY_ROOKIDEE + CRY_ROOKIDEE, + CRY_CORVISQUIRE, + CRY_CORVIKNIGHT, +#endif //P_FAMILY_ROOKIDEE +#if P_FAMILY_BLIPBUG + CRY_BLIPBUG, + CRY_DOTTLER, + CRY_ORBEETLE, +#endif //P_FAMILY_BLIPBUG +#if P_FAMILY_NICKIT + CRY_NICKIT, + CRY_THIEVUL, +#endif //P_FAMILY_NICKIT +#if P_FAMILY_GOSSIFLEUR + CRY_GOSSIFLEUR, + CRY_ELDEGOSS, +#endif //P_FAMILY_GOSSIFLEUR +#if P_FAMILY_WOOLOO + CRY_WOOLOO, + CRY_DUBWOOL, +#endif //P_FAMILY_WOOLOO +#if P_FAMILY_CHEWTLE + CRY_CHEWTLE, + CRY_DREDNAW, +#endif //P_FAMILY_CHEWTLE +#if P_FAMILY_YAMPER + CRY_YAMPER, + CRY_BOLTUND, +#endif //P_FAMILY_YAMPER +#if P_FAMILY_ROLYCOLY + CRY_ROLYCOLY, + CRY_CARKOL, + CRY_COALOSSAL, +#endif //P_FAMILY_ROLYCOLY +#if P_FAMILY_APPLIN + CRY_APPLIN, + CRY_FLAPPLE, + CRY_APPLETUN, +#if P_GEN_9_CROSS_EVOS + CRY_DIPPLIN, +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_APPLIN +#if P_FAMILY_SILICOBRA + CRY_SILICOBRA, + CRY_SANDACONDA, +#endif //P_FAMILY_SILICOBRA +#if P_FAMILY_CRAMORANT + CRY_CRAMORANT, +#endif //P_FAMILY_CRAMORANT +#if P_FAMILY_ARROKUDA + CRY_ARROKUDA, + CRY_BARRASKEWDA, +#endif //P_FAMILY_ARROKUDA +#if P_FAMILY_TOXEL + CRY_TOXEL, + CRY_TOXTRICITY_AMPED, + CRY_TOXTRICITY_LOW_KEY, +#endif //P_FAMILY_TOXEL +#if P_FAMILY_SIZZLIPEDE + CRY_SIZZLIPEDE, + CRY_CENTISKORCH, +#endif //P_FAMILY_SIZZLIPEDE +#if P_FAMILY_CLOBBOPUS + CRY_CLOBBOPUS, + CRY_GRAPPLOCT, +#endif //P_FAMILY_CLOBBOPUS +#if P_FAMILY_SINISTEA + CRY_SINISTEA, + CRY_POLTEAGEIST, +#endif //P_FAMILY_SINISTEA +#if P_FAMILY_HATENNA + CRY_HATENNA, + CRY_HATTREM, + CRY_HATTERENE, +#endif //P_FAMILY_HATENNA +#if P_FAMILY_IMPIDIMP + CRY_IMPIDIMP, + CRY_MORGREM, + CRY_GRIMMSNARL, +#endif //P_FAMILY_IMPIDIMP +#if P_FAMILY_MILCERY + CRY_MILCERY, + CRY_ALCREMIE, +#endif //P_FAMILY_MILCERY +#if P_FAMILY_FALINKS + CRY_FALINKS, +#endif //P_FAMILY_FALINKS +#if P_FAMILY_PINCURCHIN + CRY_PINCURCHIN, +#endif //P_FAMILY_PINCURCHIN +#if P_FAMILY_SNOM + CRY_SNOM, + CRY_FROSMOTH, +#endif //P_FAMILY_SNOM +#if P_FAMILY_STONJOURNER + CRY_STONJOURNER, +#endif //P_FAMILY_STONJOURNER +#if P_FAMILY_EISCUE + CRY_EISCUE_ICE_FACE, + CRY_EISCUE_NOICE_FACE, +#endif //P_FAMILY_EISCUE +#if P_FAMILY_INDEEDEE + CRY_INDEEDEE_MALE, + CRY_INDEEDEE_FEMALE, +#endif //P_FAMILY_INDEEDEE +#if P_FAMILY_MORPEKO + CRY_MORPEKO_FULL_BELLY, + CRY_MORPEKO_HANGRY, +#endif //P_FAMILY_MORPEKO +#if P_FAMILY_CUFANT + CRY_CUFANT, + CRY_COPPERAJAH, +#endif //P_FAMILY_CUFANT +#if P_FAMILY_DRACOZOLT + CRY_DRACOZOLT, +#endif //P_FAMILY_DRACOZOLT +#if P_FAMILY_ARCTOZOLT + CRY_ARCTOZOLT, +#endif //P_FAMILY_ARCTOZOLT +#if P_FAMILY_DRACOVISH + CRY_DRACOVISH, +#endif //P_FAMILY_DRACOVISH +#if P_FAMILY_ARCTOVISH + CRY_ARCTOVISH, +#endif //P_FAMILY_ARCTOVISH +#if P_FAMILY_DURALUDON + CRY_DURALUDON, +#endif //P_FAMILY_DURALUDON +#if P_FAMILY_DREEPY + CRY_DREEPY, + CRY_DRAKLOAK, + CRY_DRAGAPULT, +#endif //P_FAMILY_DREEPY +#if P_FAMILY_ZACIAN + CRY_ZACIAN_HERO_OF_MANY_BATTLES, + CRY_ZACIAN_CROWNED_SWORD, +#endif //P_FAMILY_ZACIAN +#if P_FAMILY_ZAMAZENTA + CRY_ZAMAZENTA_HERO_OF_MANY_BATTLES, + CRY_ZAMAZENTA_CROWNED_SHIELD, +#endif //P_FAMILY_ZAMAZENTA +#if P_FAMILY_ETERNATUS + CRY_ETERNATUS, + CRY_ETERNATUS_ETERNAMAX, +#endif //P_FAMILY_ETERNATUS +#if P_FAMILY_KUBFU + CRY_KUBFU, + CRY_URSHIFU_SINGLE_STRIKE_STYLE, + CRY_URSHIFU_RAPID_STRIKE_STYLE, +#endif //P_FAMILY_KUBFU +#if P_FAMILY_ZARUDE + CRY_ZARUDE, +#endif //P_FAMILY_ZARUDE +#if P_FAMILY_REGIELEKI + CRY_REGIELEKI, +#endif //P_FAMILY_REGIELEKI +#if P_FAMILY_REGIDRAGO + CRY_REGIDRAGO, +#endif //P_FAMILY_REGIDRAGO +#if P_FAMILY_GLASTRIER + CRY_GLASTRIER, +#endif //P_FAMILY_GLASTRIER +#if P_FAMILY_SPECTRIER + CRY_SPECTRIER, +#endif //P_FAMILY_SPECTRIER +#if P_FAMILY_CALYREX + CRY_CALYREX, +#if P_FUSION_FORMS + CRY_CALYREX_ICE_RIDER, + CRY_CALYREX_SHADOW_RIDER, +#endif //P_FUSION_FORMS +#endif //P_FAMILY_CALYREX +#if P_FAMILY_ENAMORUS + CRY_ENAMORUS_INCARNATE, + CRY_ENAMORUS_THERIAN, +#endif //P_FAMILY_ENAMORUS +#if P_FAMILY_SPRIGATITO + CRY_SPRIGATITO, + CRY_FLORAGATO, + CRY_MEOWSCARADA, +#endif //P_FAMILY_SPRIGATITO +#if P_FAMILY_FUECOCO + CRY_FUECOCO, + CRY_CROCALOR, + CRY_SKELEDIRGE, +#endif //P_FAMILY_FUECOCO +#if P_FAMILY_QUAXLY + CRY_QUAXLY, + CRY_QUAXWELL, + CRY_QUAQUAVAL, +#endif //P_FAMILY_QUAXLY +#if P_FAMILY_LECHONK + CRY_LECHONK, + CRY_OINKOLOGNE_MALE, + CRY_OINKOLOGNE_FEMALE, +#endif //P_FAMILY_LECHONK +#if P_FAMILY_TAROUNTULA + CRY_TAROUNTULA, + CRY_SPIDOPS, +#endif //P_FAMILY_TAROUNTULA +#if P_FAMILY_NYMBLE + CRY_NYMBLE, + CRY_LOKIX, +#endif //P_FAMILY_NYMBLE +#if P_FAMILY_PAWMI + CRY_PAWMI, + CRY_PAWMO, + CRY_PAWMOT, +#endif //P_FAMILY_PAWMI +#if P_FAMILY_TANDEMAUS + CRY_TANDEMAUS, + CRY_MAUSHOLD_FAMILY_OF_THREE, + CRY_MAUSHOLD_FAMILY_OF_FOUR, +#endif //P_FAMILY_TANDEMAUS +#if P_FAMILY_FIDOUGH + CRY_FIDOUGH, + CRY_DACHSBUN, +#endif //P_FAMILY_FIDOUGH +#if P_FAMILY_SMOLIV + CRY_SMOLIV, + CRY_DOLLIV, + CRY_ARBOLIVA, +#endif //P_FAMILY_SMOLIV +#if P_FAMILY_SQUAWKABILLY + CRY_SQUAWKABILLY, +#endif //P_FAMILY_SQUAWKABILLY +#if P_FAMILY_NACLI + CRY_NACLI, + CRY_NACLSTACK, + CRY_GARGANACL, +#endif //P_FAMILY_NACLI +#if P_FAMILY_CHARCADET + CRY_CHARCADET, + CRY_ARMAROUGE, + CRY_CERULEDGE, +#endif //P_FAMILY_CHARCADET +#if P_FAMILY_TADBULB + CRY_TADBULB, + CRY_BELLIBOLT, +#endif //P_FAMILY_TADBULB +#if P_FAMILY_WATTREL + CRY_WATTREL, + CRY_KILOWATTREL, +#endif //P_FAMILY_WATTREL +#if P_FAMILY_MASCHIFF + CRY_MASCHIFF, + CRY_MABOSSTIFF, +#endif //P_FAMILY_MASCHIFF +#if P_FAMILY_SHROODLE + CRY_SHROODLE, + CRY_GRAFAIAI, +#endif //P_FAMILY_SHROODLE +#if P_FAMILY_BRAMBLIN + CRY_BRAMBLIN, + CRY_BRAMBLEGHAST, +#endif //P_FAMILY_BRAMBLIN +#if P_FAMILY_TOEDSCOOL + CRY_TOEDSCOOL, + CRY_TOEDSCRUEL, +#endif //P_FAMILY_TOEDSCOOL +#if P_FAMILY_KLAWF + CRY_KLAWF, +#endif //P_FAMILY_KLAWF +#if P_FAMILY_CAPSAKID + CRY_CAPSAKID, + CRY_SCOVILLAIN, +#endif //P_FAMILY_CAPSAKID +#if P_FAMILY_RELLOR + CRY_RELLOR, + CRY_RABSCA, +#endif //P_FAMILY_RELLOR +#if P_FAMILY_FLITTLE + CRY_FLITTLE, + CRY_ESPATHRA, +#endif //P_FAMILY_FLITTLE +#if P_FAMILY_TINKATINK + CRY_TINKATINK, + CRY_TINKATUFF, + CRY_TINKATON, +#endif //P_FAMILY_TINKATINK +#if P_FAMILY_WIGLETT + CRY_WIGLETT, + CRY_WUGTRIO, +#endif //P_FAMILY_WIGLETT +#if P_FAMILY_BOMBIRDIER + CRY_BOMBIRDIER, +#endif //P_FAMILY_BOMBIRDIER +#if P_FAMILY_FINIZEN + CRY_FINIZEN, + CRY_PALAFIN_ZERO, + CRY_PALAFIN_HERO, +#endif //P_FAMILY_FINIZEN +#if P_FAMILY_VAROOM + CRY_VAROOM, + CRY_REVAVROOM, +#endif //P_FAMILY_VAROOM +#if P_FAMILY_CYCLIZAR + CRY_CYCLIZAR, +#endif //P_FAMILY_CYCLIZAR +#if P_FAMILY_ORTHWORM + CRY_ORTHWORM, +#endif //P_FAMILY_ORTHWORM +#if P_FAMILY_GLIMMET + CRY_GLIMMET, + CRY_GLIMMORA, +#endif //P_FAMILY_GLIMMET +#if P_FAMILY_GREAVARD + CRY_GREAVARD, + CRY_HOUNDSTONE, +#endif //P_FAMILY_GREAVARD +#if P_FAMILY_FLAMIGO + CRY_FLAMIGO, +#endif //P_FAMILY_FLAMIGO +#if P_FAMILY_CETODDLE + CRY_CETODDLE, + CRY_CETITAN, +#endif //P_FAMILY_CETODDLE +#if P_FAMILY_VELUZA + CRY_VELUZA, +#endif //P_FAMILY_VELUZA +#if P_FAMILY_DONDOZO + CRY_DONDOZO, +#endif //P_FAMILY_DONDOZO +#if P_FAMILY_TATSUGIRI + CRY_TATSUGIRI_CURLY, + CRY_TATSUGIRI_DROOPY, + CRY_TATSUGIRI_STRETCHY, +#endif //P_FAMILY_TATSUGIRI +#if P_FAMILY_GREAT_TUSK + CRY_GREAT_TUSK, +#endif //P_FAMILY_GREAT_TUSK +#if P_FAMILY_SCREAM_TAIL + CRY_SCREAM_TAIL, +#endif //P_FAMILY_SCREAM_TAIL +#if P_FAMILY_BRUTE_BONNET + CRY_BRUTE_BONNET, +#endif //P_FAMILY_BRUTE_BONNET +#if P_FAMILY_FLUTTER_MANE + CRY_FLUTTER_MANE, +#endif //P_FAMILY_FLUTTER_MANE +#if P_FAMILY_SLITHER_WING + CRY_SLITHER_WING, +#endif //P_FAMILY_SLITHER_WING +#if P_FAMILY_SANDY_SHOCKS + CRY_SANDY_SHOCKS, +#endif //P_FAMILY_SANDY_SHOCKS +#if P_FAMILY_IRON_TREADS + CRY_IRON_TREADS, +#endif //P_FAMILY_IRON_TREADS +#if P_FAMILY_IRON_BUNDLE + CRY_IRON_BUNDLE, +#endif //P_FAMILY_IRON_BUNDLE +#if P_FAMILY_IRON_HANDS + CRY_IRON_HANDS, +#endif //P_FAMILY_IRON_HANDS +#if P_FAMILY_IRON_JUGULIS + CRY_IRON_JUGULIS, +#endif //P_FAMILY_IRON_JUGULIS +#if P_FAMILY_IRON_MOTH + CRY_IRON_MOTH, +#endif //P_FAMILY_IRON_MOTH +#if P_FAMILY_IRON_THORNS + CRY_IRON_THORNS, +#endif //P_FAMILY_IRON_THORNS +#if P_FAMILY_FRIGIBAX + CRY_FRIGIBAX, + CRY_ARCTIBAX, + CRY_BAXCALIBUR, +#endif //P_FAMILY_FRIGIBAX +#if P_FAMILY_GIMMIGHOUL + CRY_GIMMIGHOUL, + CRY_GHOLDENGO, +#endif //P_FAMILY_GIMMIGHOUL +#if P_FAMILY_WO_CHIEN + CRY_WO_CHIEN, +#endif //P_FAMILY_WO_CHIEN +#if P_FAMILY_CHIEN_PAO + CRY_CHIEN_PAO, +#endif //P_FAMILY_CHIEN_PAO +#if P_FAMILY_TING_LU + CRY_TING_LU, +#endif //P_FAMILY_TING_LU +#if P_FAMILY_CHI_YU + CRY_CHI_YU, +#endif //P_FAMILY_CHI_YU +#if P_FAMILY_ROARING_MOON + CRY_ROARING_MOON, +#endif //P_FAMILY_ROARING_MOON +#if P_FAMILY_IRON_VALIANT + CRY_IRON_VALIANT, +#endif //P_FAMILY_IRON_VALIANT +#if P_FAMILY_KORAIDON + CRY_KORAIDON, +#endif //P_FAMILY_KORAIDON +#if P_FAMILY_MIRAIDON + CRY_MIRAIDON, +#endif //P_FAMILY_MIRAIDON +#if P_FAMILY_WALKING_WAKE + CRY_WALKING_WAKE, +#endif //P_FAMILY_WALKING_WAKE +#if P_FAMILY_IRON_LEAVES + CRY_IRON_LEAVES, +#endif //P_FAMILY_IRON_LEAVES +#if P_FAMILY_POLTCHAGEIST + CRY_POLTCHAGEIST, + CRY_SINISTCHA, +#endif //P_FAMILY_POLTCHAGEIST +#if P_FAMILY_OKIDOGI + CRY_OKIDOGI, +#endif //P_FAMILY_OKIDOGI +#if P_FAMILY_MUNKIDORI + CRY_MUNKIDORI, +#endif //P_FAMILY_MUNKIDORI +#if P_FAMILY_FEZANDIPITI + CRY_FEZANDIPITI, +#endif //P_FAMILY_FEZANDIPITI +#if P_FAMILY_OGERPON + CRY_OGERPON, +#endif //P_FAMILY_OGERPON + CRY_COUNT, +}; + +#endif // GUARD_CONSTANTS_CRIES_H diff --git a/include/constants/event_object_movement.h b/include/constants/event_object_movement.h index f7c2d362843e..cc0f733444b0 100755 --- a/include/constants/event_object_movement.h +++ b/include/constants/event_object_movement.h @@ -245,6 +245,8 @@ #define MOVEMENT_ACTION_FLY_DOWN 0x9D #define MOVEMENT_ACTION_EXIT_POKEBALL 0x9E #define MOVEMENT_ACTION_ENTER_POKEBALL 0x9F +#define MOVEMENT_ACTION_EMOTE_X 0xA0 +#define MOVEMENT_ACTION_EMOTE_DOUBLE_EXCL_MARK 0xA1 #define MOVEMENT_ACTION_STEP_END 0xFE #define MOVEMENT_ACTION_NONE 0xFF @@ -303,6 +305,7 @@ #define ANIM_GET_ON_OFF_POKEMON_EAST (ANIM_STD_COUNT + 3) #define ANIM_NURSE_BOW (ANIM_STD_COUNT + 0) +#define ANIM_RAISE_HAND (ANIM_STD_COUNT + 0) #define ANIM_FIELD_MOVE 0 diff --git a/include/constants/expansion.h b/include/constants/expansion.h new file mode 100644 index 000000000000..872e5bbd3414 --- /dev/null +++ b/include/constants/expansion.h @@ -0,0 +1,12 @@ +#ifndef GUARD_CONSTANTS_EXPANSION_H +#define GUARD_CONSTANTS_EXPANSION_H + +#define EXPANSION_VERSION_MAJOR 1 +#define EXPANSION_VERSION_MINOR 7 +#define EXPANSION_VERSION_PATCH 0 + +// FALSE if this this version of Expansion is not a tagged commit, i.e. +// it contains unreleased changes. +#define EXPANSION_TAGGED_RELEASE FALSE + +#endif diff --git a/include/constants/field_effects.h b/include/constants/field_effects.h index 3fee4adde2a5..392ae3f4bf0e 100644 --- a/include/constants/field_effects.h +++ b/include/constants/field_effects.h @@ -73,6 +73,9 @@ #define FLDEFF_TRACKS_SPOT 68 #define FLDEFF_TRACKS_BUG 69 #define FLDEFF_CAVE_DUST 70 +#define FLDEFF_USE_VS_SEEKER 71 +#define FLDEFF_X_ICON 72 +#define FLDEFF_DOUBLE_EXCL_MARK_ICON 73 #define FLDEFFOBJ_SHADOW_S 0 #define FLDEFFOBJ_SHADOW_M 1 diff --git a/include/constants/form_change_types.h b/include/constants/form_change_types.h index 11ef28f3f240..11a25d8966f7 100644 --- a/include/constants/form_change_types.h +++ b/include/constants/form_change_types.h @@ -11,6 +11,7 @@ #define DAY 1 #define NIGHT 2 +#define FUSION_TERMINATOR 0xFF #define FORM_CHANGE_TERMINATOR 0 // Form change that activates when the specified item is given to or taken from the selected Pokémon. @@ -105,4 +106,14 @@ // - No parameters #define FORM_CHANGE_BATTLE_GIGANTAMAX 17 +// Form change that activates at a certain time of day in the overworld automatically. +// param1: time of day to check. +// - DAY if Form change that activates in the daytime. +// - NIGHT if Form change that activates at nighttime. +#define FORM_CHANGE_TIME_OF_DAY 18 + +// Form change that depends on a multichoice (e.g. Rotom Catalog). +// param2: multichoice list (starting at 0). +#define FORM_CHANGE_ITEM_USE_MULTICHOICE 19 + #endif // GUARD_CONSTANTS_FORM_CHANGE_TYPES_H diff --git a/include/constants/items.h b/include/constants/items.h index 1cf69b9da448..074dcd9fc540 100644 --- a/include/constants/items.h +++ b/include/constants/items.h @@ -51,11 +51,13 @@ #define ITEM_LEMONADE 37 #define ITEM_MOOMOO_MILK 38 #define ITEM_ENERGY_POWDER 39 +#define ITEM_ENERGYPOWDER ITEM_ENERGY_POWDER // Pre-Gen VI name #define ITEM_ENERGY_ROOT 40 #define ITEM_HEAL_POWDER 41 #define ITEM_REVIVAL_HERB 42 #define ITEM_ANTIDOTE 43 #define ITEM_PARALYZE_HEAL 44 +#define ITEM_PARLYZ_HEAL ITEM_PARALYZE_HEAL // Pre-Gen VI name #define ITEM_BURN_HEAL 45 #define ITEM_ICE_HEAL 46 #define ITEM_AWAKENING 47 @@ -63,7 +65,9 @@ #define ITEM_ETHER 49 #define ITEM_MAX_ETHER 50 #define ITEM_ELIXIR 51 +#define ITEM_ELIXER ITEM_ELIXIR // Pre-Gen III name #define ITEM_MAX_ELIXIR 52 +#define ITEM_MAX_ELIXER ITEM_MAX_ELIXIR // Pre-Gen III name #define ITEM_BERRY_JUICE 53 #define ITEM_SACRED_ASH 54 #define ITEM_SWEET_HEART 55 @@ -72,6 +76,7 @@ // Regional Specialties #define ITEM_PEWTER_CRUNCHIES 57 #define ITEM_RAGE_CANDY_BAR 58 +#define ITEM_RAGECANDYBAR ITEM_RAGE_CANDY_BAR // Pre-Gen VI name #define ITEM_LAVA_COOKIE 59 #define ITEM_OLD_GATEAU 60 #define ITEM_CASTELIACONE 61 @@ -91,11 +96,17 @@ // EV Feathers #define ITEM_HEALTH_FEATHER 73 +#define ITEM_HEALTH_WING ITEM_HEALTH_FEATHER // Pre-Gen VIII name #define ITEM_MUSCLE_FEATHER 74 +#define ITEM_MUSCLE_WING ITEM_MUSCLE_FEATHER // Pre-Gen VIII name #define ITEM_RESIST_FEATHER 75 +#define ITEM_RESIST_WING ITEM_RESIST_FEATHER // Pre-Gen VIII name #define ITEM_GENIUS_FEATHER 76 +#define ITEM_GENIUS_WING ITEM_GENIUS_FEATHER // Pre-Gen VIII name #define ITEM_CLEVER_FEATHER 77 +#define ITEM_CLEVER_WING ITEM_CLEVER_FEATHER // Pre-Gen VIII name #define ITEM_SWIFT_FEATHER 78 +#define ITEM_SWIFT_WING ITEM_SWIFT_FEATHER // Pre-Gen VIII name // Ability Modifiers #define ITEM_ABILITY_CAPSULE 79 @@ -155,7 +166,9 @@ // X Items #define ITEM_X_ATTACK 121 #define ITEM_X_DEFENSE 122 +#define ITEM_X_DEFEND ITEM_X_DEFENSE // Pre-Gen VI name #define ITEM_X_SP_ATK 123 +#define ITEM_X_SPECIAL ITEM_X_SP_ATK // Pre-Gen VI name #define ITEM_X_SP_DEF 124 #define ITEM_X_SPEED 125 #define ITEM_X_ACCURACY 126 @@ -176,8 +189,10 @@ #define ITEM_NUGGET 135 #define ITEM_BIG_NUGGET 136 #define ITEM_TINY_MUSHROOM 137 +#define ITEM_TINYMUSHROOM ITEM_TINY_MUSHROOM // Pre-Gen VI name #define ITEM_BIG_MUSHROOM 138 #define ITEM_BALM_MUSHROOM 139 +#define ITEM_BALMMUSHROOM ITEM_BALM_MUSHROOM // Pre-Gen VI name #define ITEM_PEARL 140 #define ITEM_BIG_PEARL 141 #define ITEM_PEARL_STRING 142 @@ -195,6 +210,7 @@ #define ITEM_RARE_BONE 154 #define ITEM_ODD_KEYSTONE 155 #define ITEM_PRETTY_FEATHER 156 +#define ITEM_PRETTY_WING ITEM_PRETTY_FEATHER // Pre-Gen VIII name #define ITEM_RELIC_COPPER 157 #define ITEM_RELIC_SILVER 158 #define ITEM_RELIC_GOLD 159 @@ -234,11 +250,17 @@ // Apricorns #define ITEM_RED_APRICORN 188 #define ITEM_BLUE_APRICORN 189 +#define ITEM_BLU_APRICORN ITEM_BLUE_APRICORN // Pre-Gen VI name #define ITEM_YELLOW_APRICORN 190 +#define ITEM_YLW_APRICORN ITEM_YELLOW_APRICORN // Pre-Gen VI name #define ITEM_GREEN_APRICORN 191 +#define ITEM_GRN_APRICORN ITEM_GREEN_APRICORN // Pre-Gen VI name #define ITEM_PINK_APRICORN 192 +#define ITEM_PNK_APRICORN ITEM_PINK_APRICORN // Pre-Gen VI name #define ITEM_WHITE_APRICORN 193 +#define ITEM_WHT_APRICORN ITEM_WHITE_APRICORN // Pre-Gen VI name #define ITEM_BLACK_APRICORN 194 +#define ITEM_BLK_APRICORN ITEM_BLACK_APRICORN // Pre-Gen VI name #define ITEM_WISHING_PIECE 195 #define ITEM_GALARICA_TWIG 196 @@ -265,6 +287,7 @@ #define ITEM_FIRE_STONE 211 #define ITEM_WATER_STONE 212 #define ITEM_THUNDER_STONE 213 +#define ITEM_THUNDERSTONE ITEM_THUNDER_STONE // Pre-Gen VI name #define ITEM_LEAF_STONE 214 #define ITEM_ICE_STONE 215 #define ITEM_SUN_STONE 216 @@ -280,6 +303,7 @@ #define ITEM_GALARICA_WREATH 226 #define ITEM_DRAGON_SCALE 227 #define ITEM_UPGRADE 228 +#define ITEM_UP_GRADE ITEM_UPGRADE // Pre-Gen VIII name #define ITEM_PROTECTOR 229 #define ITEM_ELECTIRIZER 230 #define ITEM_MAGMARIZER 231 @@ -465,12 +489,15 @@ // Species-specific Held Items #define ITEM_LIGHT_BALL 392 #define ITEM_LEEK 393 +#define ITEM_STICK ITEM_LEEK // Pre-Gen VIII name #define ITEM_THICK_CLUB 394 #define ITEM_LUCKY_PUNCH 395 #define ITEM_METAL_POWDER 396 #define ITEM_QUICK_POWDER 397 #define ITEM_DEEP_SEA_SCALE 398 +#define ITEM_DEEPSEASCALE ITEM_DEEP_SEA_SCALE // Pre-Gen VI name #define ITEM_DEEP_SEA_TOOTH 399 +#define ITEM_DEEPSEATOOTH ITEM_DEEP_SEA_TOOTH // Pre-Gen VI name #define ITEM_SOUL_DEW 400 #define ITEM_ADAMANT_ORB 401 #define ITEM_LUSTROUS_ORB 402 @@ -510,16 +537,21 @@ #define ITEM_MAGNET 428 #define ITEM_MIRACLE_SEED 429 #define ITEM_NEVER_MELT_ICE 430 +#define ITEM_NEVERMELTICE ITEM_NEVER_MELT_ICE // Pre-Gen VI name #define ITEM_BLACK_BELT 431 +#define ITEM_BLACKBELT ITEM_BLACK_BELT // Gen II name #define ITEM_POISON_BARB 432 #define ITEM_SOFT_SAND 433 #define ITEM_SHARP_BEAK 434 #define ITEM_TWISTED_SPOON 435 +#define ITEM_TWISTEDSPOON ITEM_TWISTED_SPOON // Pre-Gen VI name #define ITEM_SILVER_POWDER 436 +#define ITEM_SILVERPOWDER ITEM_SILVER_POWDER // Pre-Gen VI name #define ITEM_HARD_STONE 437 #define ITEM_SPELL_TAG 438 #define ITEM_DRAGON_FANG 439 #define ITEM_BLACK_GLASSES 440 +#define ITEM_BLACKGLASSES ITEM_BLACK_GLASSES // Pre-Gen VI name #define ITEM_METAL_COAT 441 // Choice Items @@ -551,8 +583,10 @@ // Misc. Held Items #define ITEM_BRIGHT_POWDER 459 +#define ITEM_BRIGHTPOWDER ITEM_BRIGHT_POWDER // Pre-Gen VI name #define ITEM_WHITE_HERB 460 #define ITEM_EXP_SHARE 461 +#define ITEM_EXP_ALL ITEM_EXP_SHARE // Gen I name #define ITEM_QUICK_CLAW 462 #define ITEM_SOOTHE_BELL 463 #define ITEM_MENTAL_HERB 464 @@ -607,6 +641,20 @@ #define ITEM_UTILITY_UMBRELLA 513 // Berries +#if B_CONFUSE_BERRIES_HEAL >= GEN_8 + #define CONFUSE_BERRY_HEAL_FRACTION 3 +#elif B_CONFUSE_BERRIES_HEAL == GEN_7 + #define CONFUSE_BERRY_HEAL_FRACTION 2 +#else + #define CONFUSE_BERRY_HEAL_FRACTION 8 +#endif + +#if B_CONFUSE_BERRIES_HEAL >= GEN_7 + #define CONFUSE_BERRY_HP_FRACTION 4 +#else + #define CONFUSE_BERRY_HP_FRACTION 2 +#endif + #define ITEM_CHERI_BERRY 514 #define ITEM_CHESTO_BERRY 515 #define ITEM_PECHA_BERRY 516 @@ -820,11 +868,14 @@ #define ITEM_GOOD_ROD 710 #define ITEM_SUPER_ROD 711 #define ITEM_DOWSING_MACHINE 712 +#define ITEM_ITEMFINDER ITEM_DOWSING_MACHINE // Pre-Gen IV name +#define ITEM_DOWSING_MCHN ITEM_DOWSING_MACHINE // Gen IV-V name #define ITEM_TOWN_MAP 713 #define ITEM_VS_SEEKER 714 #define ITEM_TM_CASE 715 #define ITEM_BERRY_POUCH 716 #define ITEM_POKEMON_BOX_LINK 717 +#define ITEM_POKEMON_BOX ITEM_POKEMON_BOX_LINK // Pre-Gen VIII name #define ITEM_COIN_CASE 718 #define ITEM_POWDER_JAR 719 #define ITEM_WAILMER_PAIL 720 @@ -843,19 +894,25 @@ #define ITEM_OLD_SEA_MAP 731 #define ITEM_LETTER 732 #define ITEM_DEVON_PARTS 733 +#define ITEM_DEVON_GOODS ITEM_DEVON_PARTS // Pre-Gen VI name #define ITEM_GO_GOGGLES 734 #define ITEM_DEVON_SCOPE 735 #define ITEM_BASEMENT_KEY 736 #define ITEM_SCANNER 737 #define ITEM_STORAGE_KEY 738 #define ITEM_KEY_TO_ROOM_1 739 +#define ITEM_RM_1_KEY ITEM_KEY_TO_ROOM_1 // Pre-Gen VI name #define ITEM_KEY_TO_ROOM_2 740 +#define ITEM_RM_2_KEY ITEM_KEY_TO_ROOM_2 // Pre-Gen VI name #define ITEM_KEY_TO_ROOM_4 741 +#define ITEM_RM_4_KEY ITEM_KEY_TO_ROOM_4 // Pre-Gen VI name #define ITEM_KEY_TO_ROOM_6 742 +#define ITEM_RM_6_KEY ITEM_KEY_TO_ROOM_6 // Pre-Gen VI name #define ITEM_METEORITE 743 #define ITEM_MAGMA_EMBLEM 744 #define ITEM_CONTEST_PASS 745 -#define ITEM_OAKS_PARCEL 746 +#define ITEM_PARCEL 746 +#define ITEM_OAKS_PARCEL ITEM_PARCEL // Pre-Gen IV name #define ITEM_SECRET_KEY 747 #define ITEM_BIKE_VOUCHER 748 #define ITEM_GOLD_TEETH 749 diff --git a/include/constants/moves.h b/include/constants/moves.h index e87441b50542..8c76f65e3e8e 100644 --- a/include/constants/moves.h +++ b/include/constants/moves.h @@ -5,14 +5,18 @@ #define MOVE_POUND 1 #define MOVE_KARATE_CHOP 2 #define MOVE_DOUBLE_SLAP 3 +#define MOVE_DOUBLESLAP MOVE_DOUBLE_SLAP // Pre-Gen VI name #define MOVE_COMET_PUNCH 4 #define MOVE_MEGA_PUNCH 5 #define MOVE_PAY_DAY 6 #define MOVE_FIRE_PUNCH 7 #define MOVE_ICE_PUNCH 8 #define MOVE_THUNDER_PUNCH 9 +#define MOVE_THUNDERPUNCH MOVE_THUNDER_PUNCH // Pre-Gen VI name #define MOVE_SCRATCH 10 #define MOVE_VISE_GRIP 11 +#define MOVE_VICEGRIP MOVE_VISE_GRIP // Pre-Gen VI name +#define MOVE_VICE_GRIP MOVE_VISE_GRIP // Pre-Gen VIII name #define MOVE_GUILLOTINE 12 #define MOVE_RAZOR_WIND 13 #define MOVE_SWORDS_DANCE 14 @@ -51,6 +55,7 @@ #define MOVE_SING 47 #define MOVE_SUPERSONIC 48 #define MOVE_SONIC_BOOM 49 +#define MOVE_SONICBOOM MOVE_SONIC_BOOM // Pre-Gen VI name #define MOVE_DISABLE 50 #define MOVE_ACID 51 #define MOVE_EMBER 52 @@ -63,6 +68,7 @@ #define MOVE_BLIZZARD 59 #define MOVE_PSYBEAM 60 #define MOVE_BUBBLE_BEAM 61 +#define MOVE_BUBBLEBEAM MOVE_BUBBLE_BEAM // Pre-Gen VI name #define MOVE_AURORA_BEAM 62 #define MOVE_HYPER_BEAM 63 #define MOVE_PECK 64 @@ -78,7 +84,9 @@ #define MOVE_GROWTH 74 #define MOVE_RAZOR_LEAF 75 #define MOVE_SOLAR_BEAM 76 +#define MOVE_SOLARBEAM MOVE_SOLAR_BEAM // Pre-Gen VI name #define MOVE_POISON_POWDER 77 +#define MOVE_POISONPOWDER MOVE_POISON_POWDER // Pre-Gen VI name #define MOVE_STUN_SPORE 78 #define MOVE_SLEEP_POWDER 79 #define MOVE_PETAL_DANCE 80 @@ -86,6 +94,7 @@ #define MOVE_DRAGON_RAGE 82 #define MOVE_FIRE_SPIN 83 #define MOVE_THUNDER_SHOCK 84 +#define MOVE_THUNDERSHOCK MOVE_THUNDER_SHOCK // Pre-Gen VI name #define MOVE_THUNDERBOLT 85 #define MOVE_THUNDER_WAVE 86 #define MOVE_THUNDER 87 @@ -122,6 +131,7 @@ #define MOVE_METRONOME 118 #define MOVE_MIRROR_MOVE 119 #define MOVE_SELF_DESTRUCT 120 +#define MOVE_SELFDESTRUCT MOVE_SELF_DESTRUCT // Pre-Gen VI name #define MOVE_EGG_BOMB 121 #define MOVE_LICK 122 #define MOVE_SMOG 123 @@ -137,7 +147,9 @@ #define MOVE_AMNESIA 133 #define MOVE_KINESIS 134 #define MOVE_SOFT_BOILED 135 +#define MOVE_SOFTBOILED MOVE_SOFT_BOILED // Pre-Gen VI name #define MOVE_HIGH_JUMP_KICK 136 +#define MOVE_HI_JUMP_KICK MOVE_HIGH_JUMP_KICK // Pre-Gen VI name #define MOVE_GLARE 137 #define MOVE_DREAM_EATER 138 #define MOVE_POISON_GAS 139 @@ -187,6 +199,7 @@ #define MOVE_MACH_PUNCH 183 #define MOVE_SCARY_FACE 184 #define MOVE_FEINT_ATTACK 185 +#define MOVE_FAINT_ATTACK MOVE_FEINT_ATTACK // Pre-Gen VI name #define MOVE_SWEET_KISS 186 #define MOVE_BELLY_DRUM 187 #define MOVE_SLUDGE_BOMB 188 @@ -225,8 +238,10 @@ #define MOVE_SACRED_FIRE 221 #define MOVE_MAGNITUDE 222 #define MOVE_DYNAMIC_PUNCH 223 +#define MOVE_DYNAMICPUNCH MOVE_DYNAMIC_PUNCH // Pre-Gen VI name #define MOVE_MEGAHORN 224 #define MOVE_DRAGON_BREATH 225 +#define MOVE_DRAGONBREATH MOVE_DRAGON_BREATH // Pre-Gen VI name #define MOVE_BATON_PASS 226 #define MOVE_ENCORE 227 #define MOVE_PURSUIT 228 @@ -247,7 +262,9 @@ #define MOVE_MIRROR_COAT 243 #define MOVE_PSYCH_UP 244 #define MOVE_EXTREME_SPEED 245 +#define MOVE_EXTREMESPEED MOVE_EXTREME_SPEED // Pre-Gen VI name #define MOVE_ANCIENT_POWER 246 +#define MOVE_ANCIENTPOWER MOVE_ANCIENT_POWER // Pre-Gen VI name #define MOVE_SHADOW_BALL 247 #define MOVE_FUTURE_SIGHT 248 #define MOVE_ROCK_SMASH 249 @@ -267,6 +284,7 @@ #define MOVE_FACADE 263 #define MOVE_FOCUS_PUNCH 264 #define MOVE_SMELLING_SALTS 265 +#define MOVE_SMELLINGSALT MOVE_SMELLING_SALTS // Pre-Gen VI name #define MOVE_FOLLOW_ME 266 #define MOVE_NATURE_POWER 267 #define MOVE_CHARGE 268 @@ -299,6 +317,7 @@ #define MOVE_LUSTER_PURGE 295 #define MOVE_MIST_BALL 296 #define MOVE_FEATHER_DANCE 297 +#define MOVE_FEATHERDANCE MOVE_FEATHER_DANCE // Pre-Gen VI name #define MOVE_TEETER_DANCE 298 #define MOVE_BLAZE_KICK 299 #define MOVE_MUD_SPORT 300 @@ -322,6 +341,7 @@ #define MOVE_SILVER_WIND 318 #define MOVE_METAL_SOUND 319 #define MOVE_GRASS_WHISTLE 320 +#define MOVE_GRASSWHISTLE MOVE_GRASS_WHISTLE // Pre-Gen VI name #define MOVE_TICKLE 321 #define MOVE_COSMIC_POWER 322 #define MOVE_WATER_SPOUT 323 diff --git a/include/constants/party_menu.h b/include/constants/party_menu.h index fd94afe5447d..c860b425d471 100644 --- a/include/constants/party_menu.h +++ b/include/constants/party_menu.h @@ -79,6 +79,8 @@ #define PARTY_MSG_DO_WHAT_WITH_ITEM 24 #define PARTY_MSG_DO_WHAT_WITH_MAIL 25 #define PARTY_MSG_ALREADY_HOLDING_ONE 26 +#define PARTY_MSG_WHICH_APPLIANCE 27 +#define PARTY_MSG_CHOOSE_SECOND_FUSION 28 #define PARTY_MSG_NONE 127 // IDs for DisplayPartyPokemonDescriptionText, to display a message in the party pokemon's box @@ -96,9 +98,11 @@ #define PARTYBOX_DESC_HAVE 11 #define PARTYBOX_DESC_DONT_HAVE 12 -#define SELECTWINDOW_ACTIONS 0 -#define SELECTWINDOW_ITEM 1 -#define SELECTWINDOW_MAIL 2 -#define SELECTWINDOW_MOVES 3 +#define SELECTWINDOW_ACTIONS 0 +#define SELECTWINDOW_ITEM 1 +#define SELECTWINDOW_MAIL 2 +#define SELECTWINDOW_MOVES 3 +#define SELECTWINDOW_CATALOG 4 +#define SELECTWINDOW_ZYGARDECUBE 5 #endif // GUARD_CONSTANTS_PARTY_MENU_H diff --git a/include/constants/pokedex.h b/include/constants/pokedex.h index ef939b9579e9..1eccb325f39d 100644 --- a/include/constants/pokedex.h +++ b/include/constants/pokedex.h @@ -919,12 +919,126 @@ enum { NATIONAL_DEX_SNEASLER, NATIONAL_DEX_OVERQWIL, NATIONAL_DEX_ENAMORUS, + NATIONAL_DEX_SPRIGATITO, + NATIONAL_DEX_FLORAGATO, + NATIONAL_DEX_MEOWSCARADA, + NATIONAL_DEX_FUECOCO, + NATIONAL_DEX_CROCALOR, + NATIONAL_DEX_SKELEDIRGE, + NATIONAL_DEX_QUAXLY, + NATIONAL_DEX_QUAXWELL, + NATIONAL_DEX_QUAQUAVAL, + NATIONAL_DEX_LECHONK, + NATIONAL_DEX_OINKOLOGNE, + NATIONAL_DEX_TAROUNTULA, + NATIONAL_DEX_SPIDOPS, + NATIONAL_DEX_NYMBLE, + NATIONAL_DEX_LOKIX, + NATIONAL_DEX_PAWMI, + NATIONAL_DEX_PAWMO, + NATIONAL_DEX_PAWMOT, + NATIONAL_DEX_TANDEMAUS, + NATIONAL_DEX_MAUSHOLD, + NATIONAL_DEX_FIDOUGH, + NATIONAL_DEX_DACHSBUN, + NATIONAL_DEX_SMOLIV, + NATIONAL_DEX_DOLLIV, + NATIONAL_DEX_ARBOLIVA, + NATIONAL_DEX_SQUAWKABILLY, + NATIONAL_DEX_NACLI, + NATIONAL_DEX_NACLSTACK, + NATIONAL_DEX_GARGANACL, + NATIONAL_DEX_CHARCADET, + NATIONAL_DEX_ARMAROUGE, + NATIONAL_DEX_CERULEDGE, + NATIONAL_DEX_TADBULB, + NATIONAL_DEX_BELLIBOLT, + NATIONAL_DEX_WATTREL, + NATIONAL_DEX_KILOWATTREL, + NATIONAL_DEX_MASCHIFF, + NATIONAL_DEX_MABOSSTIFF, + NATIONAL_DEX_SHROODLE, + NATIONAL_DEX_GRAFAIAI, + NATIONAL_DEX_BRAMBLIN, + NATIONAL_DEX_BRAMBLEGHAST, + NATIONAL_DEX_TOEDSCOOL, + NATIONAL_DEX_TOEDSCRUEL, + NATIONAL_DEX_KLAWF, + NATIONAL_DEX_CAPSAKID, + NATIONAL_DEX_SCOVILLAIN, + NATIONAL_DEX_RELLOR, + NATIONAL_DEX_RABSCA, + NATIONAL_DEX_FLITTLE, + NATIONAL_DEX_ESPATHRA, + NATIONAL_DEX_TINKATINK, + NATIONAL_DEX_TINKATUFF, + NATIONAL_DEX_TINKATON, + NATIONAL_DEX_WIGLETT, + NATIONAL_DEX_WUGTRIO, + NATIONAL_DEX_BOMBIRDIER, + NATIONAL_DEX_FINIZEN, + NATIONAL_DEX_PALAFIN, + NATIONAL_DEX_VAROOM, + NATIONAL_DEX_REVAVROOM, + NATIONAL_DEX_CYCLIZAR, + NATIONAL_DEX_ORTHWORM, + NATIONAL_DEX_GLIMMET, + NATIONAL_DEX_GLIMMORA, + NATIONAL_DEX_GREAVARD, + NATIONAL_DEX_HOUNDSTONE, + NATIONAL_DEX_FLAMIGO, + NATIONAL_DEX_CETODDLE, + NATIONAL_DEX_CETITAN, + NATIONAL_DEX_VELUZA, + NATIONAL_DEX_DONDOZO, + NATIONAL_DEX_TATSUGIRI, + NATIONAL_DEX_ANNIHILAPE, + NATIONAL_DEX_CLODSIRE, + NATIONAL_DEX_FARIGIRAF, + NATIONAL_DEX_DUDUNSPARCE, + NATIONAL_DEX_KINGAMBIT, + NATIONAL_DEX_GREAT_TUSK, + NATIONAL_DEX_SCREAM_TAIL, + NATIONAL_DEX_BRUTE_BONNET, + NATIONAL_DEX_FLUTTER_MANE, + NATIONAL_DEX_SLITHER_WING, + NATIONAL_DEX_SANDY_SHOCKS, + NATIONAL_DEX_IRON_TREADS, + NATIONAL_DEX_IRON_BUNDLE, + NATIONAL_DEX_IRON_HANDS, + NATIONAL_DEX_IRON_JUGULIS, + NATIONAL_DEX_IRON_MOTH, + NATIONAL_DEX_IRON_THORNS, + NATIONAL_DEX_FRIGIBAX, + NATIONAL_DEX_ARCTIBAX, + NATIONAL_DEX_BAXCALIBUR, + NATIONAL_DEX_GIMMIGHOUL, + NATIONAL_DEX_GHOLDENGO, + NATIONAL_DEX_WO_CHIEN, + NATIONAL_DEX_CHIEN_PAO, + NATIONAL_DEX_TING_LU, + NATIONAL_DEX_CHI_YU, + NATIONAL_DEX_ROARING_MOON, + NATIONAL_DEX_IRON_VALIANT, + NATIONAL_DEX_KORAIDON, + NATIONAL_DEX_MIRAIDON, + NATIONAL_DEX_WALKING_WAKE, + NATIONAL_DEX_IRON_LEAVES, + NATIONAL_DEX_DIPPLIN, + NATIONAL_DEX_POLTCHAGEIST, + NATIONAL_DEX_SINISTCHA, + NATIONAL_DEX_OKIDOGI, + NATIONAL_DEX_MUNKIDORI, + NATIONAL_DEX_FEZANDIPITI, + NATIONAL_DEX_OGERPON, }; #define KANTO_DEX_COUNT NATIONAL_DEX_MEW #define JOHTO_DEX_COUNT NATIONAL_DEX_CELEBI -#if P_GEN_8_POKEMON == TRUE +#if P_GEN_9_POKEMON == TRUE + #define NATIONAL_DEX_COUNT NATIONAL_DEX_OGERPON +#elif P_GEN_8_POKEMON == TRUE #define NATIONAL_DEX_COUNT NATIONAL_DEX_ENAMORUS #elif P_GEN_7_POKEMON == TRUE #define NATIONAL_DEX_COUNT NATIONAL_DEX_MELMETAL @@ -956,6 +1070,9 @@ enum { HOENN_DEX_MIGHTYENA, HOENN_DEX_ZIGZAGOON, HOENN_DEX_LINOONE, +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GALARIAN_FORMS + HOENN_DEX_OBSTAGOON, +#endif HOENN_DEX_WURMPLE, HOENN_DEX_SILCOON, HOENN_DEX_BEAUTIFLY, @@ -974,7 +1091,7 @@ enum { HOENN_DEX_RALTS, HOENN_DEX_KIRLIA, HOENN_DEX_GARDEVOIR, -#if P_GEN_4_POKEMON == TRUE +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_4_CROSS_EVOS HOENN_DEX_GALLADE, #endif HOENN_DEX_SURSKIT, @@ -1006,7 +1123,7 @@ enum { HOENN_DEX_GRAVELER, HOENN_DEX_GOLEM, HOENN_DEX_NOSEPASS, -#if P_GEN_4_POKEMON == TRUE +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_4_CROSS_EVOS HOENN_DEX_PROBOPASS, #endif HOENN_DEX_SKITTY, @@ -1032,7 +1149,7 @@ enum { HOENN_DEX_MINUN, HOENN_DEX_MAGNEMITE, HOENN_DEX_MAGNETON, -#if P_GEN_4_POKEMON == TRUE +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_4_CROSS_EVOS HOENN_DEX_MAGNEZONE, #endif HOENN_DEX_VOLTORB, @@ -1045,12 +1162,12 @@ enum { HOENN_DEX_BELLOSSOM, HOENN_DEX_DODUO, HOENN_DEX_DODRIO, -#if P_GEN_4_POKEMON == TRUE +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_4_CROSS_EVOS HOENN_DEX_BUDEW, +#endif HOENN_DEX_ROSELIA, +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_4_CROSS_EVOS HOENN_DEX_ROSERADE, -#else - HOENN_DEX_ROSELIA, #endif HOENN_DEX_GULPIN, HOENN_DEX_SWALOT, @@ -1107,7 +1224,7 @@ enum { HOENN_DEX_BANETTE, HOENN_DEX_DUSKULL, HOENN_DEX_DUSCLOPS, -#if P_GEN_4_POKEMON == TRUE +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_4_CROSS_EVOS HOENN_DEX_DUSKNOIR, HOENN_DEX_TROPIUS, HOENN_DEX_CHINGLING, @@ -1128,18 +1245,21 @@ enum { HOENN_DEX_NATU, HOENN_DEX_XATU, HOENN_DEX_GIRAFARIG, +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_9_CROSS_EVOS + HOENN_DEX_FARIGIRAF, +#endif HOENN_DEX_PHANPY, HOENN_DEX_DONPHAN, HOENN_DEX_PINSIR, HOENN_DEX_HERACROSS, HOENN_DEX_RHYHORN, HOENN_DEX_RHYDON, -#if P_GEN_4_POKEMON == TRUE +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_4_CROSS_EVOS HOENN_DEX_RHYPERIOR, #endif HOENN_DEX_SNORUNT, HOENN_DEX_GLALIE, -#if P_GEN_4_POKEMON == TRUE +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_4_CROSS_EVOS HOENN_DEX_FROSLASS, #endif HOENN_DEX_SPHEAL, @@ -1150,6 +1270,9 @@ enum { HOENN_DEX_GOREBYSS, HOENN_DEX_RELICANTH, HOENN_DEX_CORSOLA, +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_9_CROSS_EVOS + HOENN_DEX_CURSOLA, +#endif HOENN_DEX_CHINCHOU, HOENN_DEX_LANTURN, HOENN_DEX_LUVDISC, diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h index 9e4f48155f91..47c10a075220 100644 --- a/include/constants/pokemon.h +++ b/include/constants/pokemon.h @@ -193,8 +193,20 @@ #define FRIENDSHIP_200_TO_254 5 #define FRIENDSHIP_MAX 6 -// Friendship value that the majority of species use. This was changed in Generation 8 to 50. +// Constants for GetBattlerAffectionHearts (based on friendship value) +#define AFFECTION_NO_HEARTS 0 // 0-79 friendship +#define AFFECTION_ONE_HEART 1 // 80-129 friendship +#define AFFECTION_TWO_HEARTS 2 // 130-179 friendship +#define AFFECTION_THREE_HEARTS 3 // 180-219 friendship +#define AFFECTION_FOUR_HEARTS 4 // 220-254 friendship +#define AFFECTION_FIVE_HEARTS 5 // Max friendship + +// Friendship value that the majority of species use. +#if P_UPDATED_FRIENDSHIP >= GEN_8 +#define STANDARD_FRIENDSHIP 50 +#else #define STANDARD_FRIENDSHIP 70 +#endif #define MAX_FRIENDSHIP 255 #define MAX_SHEEN 255 @@ -286,8 +298,12 @@ #define EVO_ITEM_DAY 40 // specified item is used on Pokémon, is day #define EVO_ITEM_HOLD 41 // Pokémon levels up, holds specified item #define EVO_LEVEL_FOG 42 // Pokémon reaches the specified level during fog in the overworld +#define EVO_MOVE_TWO_SEGMENT 43 // Pokémon levels up, knows specified move, has a personality value with a modulus of 0 +#define EVO_MOVE_THREE_SEGMENT 44 // Pokémon levels up, knows specified move, has a personality value with a modulus of 1-99 +#define EVO_LEVEL_FAMILY_OF_THREE 45 // Pokémon reaches the specified level with a personality value with a modulus of 0 +#define EVO_LEVEL_FAMILY_OF_FOUR 46 // Pokémon reaches the specified level with a personality value with a modulus of 1-99 -#define EVOS_PER_MON 11 +#define EVOLUTIONS_END 0xFFFF // Evolution 'modes,' for GetEvolutionTargetSpecies #define EVO_MODE_NORMAL 0 @@ -317,19 +333,6 @@ #define NUM_NORMAL_ABILITY_SLOTS 2 #define NUM_HIDDEN_ABILITY_SLOTS 1 -// Species Flags -#define SPECIES_FLAG_LEGENDARY (1 << 0) -#define SPECIES_FLAG_MYTHICAL (1 << 1) -#define SPECIES_FLAG_MEGA_EVOLUTION (1 << 2) -#define SPECIES_FLAG_PRIMAL_REVERSION (1 << 3) -#define SPECIES_FLAG_ULTRA_BEAST (1 << 4) -#define SPECIES_FLAG_ALOLAN_FORM (1 << 5) -#define SPECIES_FLAG_GALARIAN_FORM (1 << 6) -#define SPECIES_FLAG_HISUIAN_FORM (1 << 7) -#define SPECIES_FLAG_ALL_PERFECT_IVS (1 << 8) -#define SPECIES_FLAG_CANNOT_BE_TRADED (1 << 9) -#define SPECIES_FLAG_ULTRA_BURST (1 << 10) - #define LEGENDARY_PERFECT_IV_COUNT 3 #endif // GUARD_CONSTANTS_POKEMON_H diff --git a/include/constants/species.h b/include/constants/species.h index a54121f626fc..7d05c9b0df5b 100644 --- a/include/constants/species.h +++ b/include/constants/species.h @@ -1,1540 +1,1694 @@ #ifndef GUARD_CONSTANTS_SPECIES_H #define GUARD_CONSTANTS_SPECIES_H -#define SPECIES_NONE 0 -#define SPECIES_BULBASAUR 1 -#define SPECIES_IVYSAUR 2 -#define SPECIES_VENUSAUR 3 -#define SPECIES_CHARMANDER 4 -#define SPECIES_CHARMELEON 5 -#define SPECIES_CHARIZARD 6 -#define SPECIES_SQUIRTLE 7 -#define SPECIES_WARTORTLE 8 -#define SPECIES_BLASTOISE 9 -#define SPECIES_CATERPIE 10 -#define SPECIES_METAPOD 11 -#define SPECIES_BUTTERFREE 12 -#define SPECIES_WEEDLE 13 -#define SPECIES_KAKUNA 14 -#define SPECIES_BEEDRILL 15 -#define SPECIES_PIDGEY 16 -#define SPECIES_PIDGEOTTO 17 -#define SPECIES_PIDGEOT 18 -#define SPECIES_RATTATA 19 -#define SPECIES_RATICATE 20 -#define SPECIES_SPEAROW 21 -#define SPECIES_FEAROW 22 -#define SPECIES_EKANS 23 -#define SPECIES_ARBOK 24 -#define SPECIES_PIKACHU 25 -#define SPECIES_RAICHU 26 -#define SPECIES_SANDSHREW 27 -#define SPECIES_SANDSLASH 28 -#define SPECIES_NIDORAN_F 29 -#define SPECIES_NIDORINA 30 -#define SPECIES_NIDOQUEEN 31 -#define SPECIES_NIDORAN_M 32 -#define SPECIES_NIDORINO 33 -#define SPECIES_NIDOKING 34 -#define SPECIES_CLEFAIRY 35 -#define SPECIES_CLEFABLE 36 -#define SPECIES_VULPIX 37 -#define SPECIES_NINETALES 38 -#define SPECIES_JIGGLYPUFF 39 -#define SPECIES_WIGGLYTUFF 40 -#define SPECIES_ZUBAT 41 -#define SPECIES_GOLBAT 42 -#define SPECIES_ODDISH 43 -#define SPECIES_GLOOM 44 -#define SPECIES_VILEPLUME 45 -#define SPECIES_PARAS 46 -#define SPECIES_PARASECT 47 -#define SPECIES_VENONAT 48 -#define SPECIES_VENOMOTH 49 -#define SPECIES_DIGLETT 50 -#define SPECIES_DUGTRIO 51 -#define SPECIES_MEOWTH 52 -#define SPECIES_PERSIAN 53 -#define SPECIES_PSYDUCK 54 -#define SPECIES_GOLDUCK 55 -#define SPECIES_MANKEY 56 -#define SPECIES_PRIMEAPE 57 -#define SPECIES_GROWLITHE 58 -#define SPECIES_ARCANINE 59 -#define SPECIES_POLIWAG 60 -#define SPECIES_POLIWHIRL 61 -#define SPECIES_POLIWRATH 62 -#define SPECIES_ABRA 63 -#define SPECIES_KADABRA 64 -#define SPECIES_ALAKAZAM 65 -#define SPECIES_MACHOP 66 -#define SPECIES_MACHOKE 67 -#define SPECIES_MACHAMP 68 -#define SPECIES_BELLSPROUT 69 -#define SPECIES_WEEPINBELL 70 -#define SPECIES_VICTREEBEL 71 -#define SPECIES_TENTACOOL 72 -#define SPECIES_TENTACRUEL 73 -#define SPECIES_GEODUDE 74 -#define SPECIES_GRAVELER 75 -#define SPECIES_GOLEM 76 -#define SPECIES_PONYTA 77 -#define SPECIES_RAPIDASH 78 -#define SPECIES_SLOWPOKE 79 -#define SPECIES_SLOWBRO 80 -#define SPECIES_MAGNEMITE 81 -#define SPECIES_MAGNETON 82 -#define SPECIES_FARFETCHD 83 -#define SPECIES_DODUO 84 -#define SPECIES_DODRIO 85 -#define SPECIES_SEEL 86 -#define SPECIES_DEWGONG 87 -#define SPECIES_GRIMER 88 -#define SPECIES_MUK 89 -#define SPECIES_SHELLDER 90 -#define SPECIES_CLOYSTER 91 -#define SPECIES_GASTLY 92 -#define SPECIES_HAUNTER 93 -#define SPECIES_GENGAR 94 -#define SPECIES_ONIX 95 -#define SPECIES_DROWZEE 96 -#define SPECIES_HYPNO 97 -#define SPECIES_KRABBY 98 -#define SPECIES_KINGLER 99 -#define SPECIES_VOLTORB 100 -#define SPECIES_ELECTRODE 101 -#define SPECIES_EXEGGCUTE 102 -#define SPECIES_EXEGGUTOR 103 -#define SPECIES_CUBONE 104 -#define SPECIES_MAROWAK 105 -#define SPECIES_HITMONLEE 106 -#define SPECIES_HITMONCHAN 107 -#define SPECIES_LICKITUNG 108 -#define SPECIES_KOFFING 109 -#define SPECIES_WEEZING 110 -#define SPECIES_RHYHORN 111 -#define SPECIES_RHYDON 112 -#define SPECIES_CHANSEY 113 -#define SPECIES_TANGELA 114 -#define SPECIES_KANGASKHAN 115 -#define SPECIES_HORSEA 116 -#define SPECIES_SEADRA 117 -#define SPECIES_GOLDEEN 118 -#define SPECIES_SEAKING 119 -#define SPECIES_STARYU 120 -#define SPECIES_STARMIE 121 -#define SPECIES_MR_MIME 122 -#define SPECIES_SCYTHER 123 -#define SPECIES_JYNX 124 -#define SPECIES_ELECTABUZZ 125 -#define SPECIES_MAGMAR 126 -#define SPECIES_PINSIR 127 -#define SPECIES_TAUROS 128 -#define SPECIES_MAGIKARP 129 -#define SPECIES_GYARADOS 130 -#define SPECIES_LAPRAS 131 -#define SPECIES_DITTO 132 -#define SPECIES_EEVEE 133 -#define SPECIES_VAPOREON 134 -#define SPECIES_JOLTEON 135 -#define SPECIES_FLAREON 136 -#define SPECIES_PORYGON 137 -#define SPECIES_OMANYTE 138 -#define SPECIES_OMASTAR 139 -#define SPECIES_KABUTO 140 -#define SPECIES_KABUTOPS 141 -#define SPECIES_AERODACTYL 142 -#define SPECIES_SNORLAX 143 -#define SPECIES_ARTICUNO 144 -#define SPECIES_ZAPDOS 145 -#define SPECIES_MOLTRES 146 -#define SPECIES_DRATINI 147 -#define SPECIES_DRAGONAIR 148 -#define SPECIES_DRAGONITE 149 -#define SPECIES_MEWTWO 150 -#define SPECIES_MEW 151 -#define SPECIES_CHIKORITA 152 -#define SPECIES_BAYLEEF 153 -#define SPECIES_MEGANIUM 154 -#define SPECIES_CYNDAQUIL 155 -#define SPECIES_QUILAVA 156 -#define SPECIES_TYPHLOSION 157 -#define SPECIES_TOTODILE 158 -#define SPECIES_CROCONAW 159 -#define SPECIES_FERALIGATR 160 -#define SPECIES_SENTRET 161 -#define SPECIES_FURRET 162 -#define SPECIES_HOOTHOOT 163 -#define SPECIES_NOCTOWL 164 -#define SPECIES_LEDYBA 165 -#define SPECIES_LEDIAN 166 -#define SPECIES_SPINARAK 167 -#define SPECIES_ARIADOS 168 -#define SPECIES_CROBAT 169 -#define SPECIES_CHINCHOU 170 -#define SPECIES_LANTURN 171 -#define SPECIES_PICHU 172 -#define SPECIES_CLEFFA 173 -#define SPECIES_IGGLYBUFF 174 -#define SPECIES_TOGEPI 175 -#define SPECIES_TOGETIC 176 -#define SPECIES_NATU 177 -#define SPECIES_XATU 178 -#define SPECIES_MAREEP 179 -#define SPECIES_FLAAFFY 180 -#define SPECIES_AMPHAROS 181 -#define SPECIES_BELLOSSOM 182 -#define SPECIES_MARILL 183 -#define SPECIES_AZUMARILL 184 -#define SPECIES_SUDOWOODO 185 -#define SPECIES_POLITOED 186 -#define SPECIES_HOPPIP 187 -#define SPECIES_SKIPLOOM 188 -#define SPECIES_JUMPLUFF 189 -#define SPECIES_AIPOM 190 -#define SPECIES_SUNKERN 191 -#define SPECIES_SUNFLORA 192 -#define SPECIES_YANMA 193 -#define SPECIES_WOOPER 194 -#define SPECIES_QUAGSIRE 195 -#define SPECIES_ESPEON 196 -#define SPECIES_UMBREON 197 -#define SPECIES_MURKROW 198 -#define SPECIES_SLOWKING 199 -#define SPECIES_MISDREAVUS 200 -#define SPECIES_UNOWN 201 -#define SPECIES_WOBBUFFET 202 -#define SPECIES_GIRAFARIG 203 -#define SPECIES_PINECO 204 -#define SPECIES_FORRETRESS 205 -#define SPECIES_DUNSPARCE 206 -#define SPECIES_GLIGAR 207 -#define SPECIES_STEELIX 208 -#define SPECIES_SNUBBULL 209 -#define SPECIES_GRANBULL 210 -#define SPECIES_QWILFISH 211 -#define SPECIES_SCIZOR 212 -#define SPECIES_SHUCKLE 213 -#define SPECIES_HERACROSS 214 -#define SPECIES_SNEASEL 215 -#define SPECIES_TEDDIURSA 216 -#define SPECIES_URSARING 217 -#define SPECIES_SLUGMA 218 -#define SPECIES_MAGCARGO 219 -#define SPECIES_SWINUB 220 -#define SPECIES_PILOSWINE 221 -#define SPECIES_CORSOLA 222 -#define SPECIES_REMORAID 223 -#define SPECIES_OCTILLERY 224 -#define SPECIES_DELIBIRD 225 -#define SPECIES_MANTINE 226 -#define SPECIES_SKARMORY 227 -#define SPECIES_HOUNDOUR 228 -#define SPECIES_HOUNDOOM 229 -#define SPECIES_KINGDRA 230 -#define SPECIES_PHANPY 231 -#define SPECIES_DONPHAN 232 -#define SPECIES_PORYGON2 233 -#define SPECIES_STANTLER 234 -#define SPECIES_SMEARGLE 235 -#define SPECIES_TYROGUE 236 -#define SPECIES_HITMONTOP 237 -#define SPECIES_SMOOCHUM 238 -#define SPECIES_ELEKID 239 -#define SPECIES_MAGBY 240 -#define SPECIES_MILTANK 241 -#define SPECIES_BLISSEY 242 -#define SPECIES_RAIKOU 243 -#define SPECIES_ENTEI 244 -#define SPECIES_SUICUNE 245 -#define SPECIES_LARVITAR 246 -#define SPECIES_PUPITAR 247 -#define SPECIES_TYRANITAR 248 -#define SPECIES_LUGIA 249 -#define SPECIES_HO_OH 250 -#define SPECIES_CELEBI 251 -#define SPECIES_TREECKO 252 -#define SPECIES_GROVYLE 253 -#define SPECIES_SCEPTILE 254 -#define SPECIES_TORCHIC 255 -#define SPECIES_COMBUSKEN 256 -#define SPECIES_BLAZIKEN 257 -#define SPECIES_MUDKIP 258 -#define SPECIES_MARSHTOMP 259 -#define SPECIES_SWAMPERT 260 -#define SPECIES_POOCHYENA 261 -#define SPECIES_MIGHTYENA 262 -#define SPECIES_ZIGZAGOON 263 -#define SPECIES_LINOONE 264 -#define SPECIES_WURMPLE 265 -#define SPECIES_SILCOON 266 -#define SPECIES_BEAUTIFLY 267 -#define SPECIES_CASCOON 268 -#define SPECIES_DUSTOX 269 -#define SPECIES_LOTAD 270 -#define SPECIES_LOMBRE 271 -#define SPECIES_LUDICOLO 272 -#define SPECIES_SEEDOT 273 -#define SPECIES_NUZLEAF 274 -#define SPECIES_SHIFTRY 275 -#define SPECIES_TAILLOW 276 -#define SPECIES_SWELLOW 277 -#define SPECIES_WINGULL 278 -#define SPECIES_PELIPPER 279 -#define SPECIES_RALTS 280 -#define SPECIES_KIRLIA 281 -#define SPECIES_GARDEVOIR 282 -#define SPECIES_SURSKIT 283 -#define SPECIES_MASQUERAIN 284 -#define SPECIES_SHROOMISH 285 -#define SPECIES_BRELOOM 286 -#define SPECIES_SLAKOTH 287 -#define SPECIES_VIGOROTH 288 -#define SPECIES_SLAKING 289 -#define SPECIES_NINCADA 290 -#define SPECIES_NINJASK 291 -#define SPECIES_SHEDINJA 292 -#define SPECIES_WHISMUR 293 -#define SPECIES_LOUDRED 294 -#define SPECIES_EXPLOUD 295 -#define SPECIES_MAKUHITA 296 -#define SPECIES_HARIYAMA 297 -#define SPECIES_AZURILL 298 -#define SPECIES_NOSEPASS 299 -#define SPECIES_SKITTY 300 -#define SPECIES_DELCATTY 301 -#define SPECIES_SABLEYE 302 -#define SPECIES_MAWILE 303 -#define SPECIES_ARON 304 -#define SPECIES_LAIRON 305 -#define SPECIES_AGGRON 306 -#define SPECIES_MEDITITE 307 -#define SPECIES_MEDICHAM 308 -#define SPECIES_ELECTRIKE 309 -#define SPECIES_MANECTRIC 310 -#define SPECIES_PLUSLE 311 -#define SPECIES_MINUN 312 -#define SPECIES_VOLBEAT 313 -#define SPECIES_ILLUMISE 314 -#define SPECIES_ROSELIA 315 -#define SPECIES_GULPIN 316 -#define SPECIES_SWALOT 317 -#define SPECIES_CARVANHA 318 -#define SPECIES_SHARPEDO 319 -#define SPECIES_WAILMER 320 -#define SPECIES_WAILORD 321 -#define SPECIES_NUMEL 322 -#define SPECIES_CAMERUPT 323 -#define SPECIES_TORKOAL 324 -#define SPECIES_SPOINK 325 -#define SPECIES_GRUMPIG 326 -#define SPECIES_SPINDA 327 -#define SPECIES_TRAPINCH 328 -#define SPECIES_VIBRAVA 329 -#define SPECIES_FLYGON 330 -#define SPECIES_CACNEA 331 -#define SPECIES_CACTURNE 332 -#define SPECIES_SWABLU 333 -#define SPECIES_ALTARIA 334 -#define SPECIES_ZANGOOSE 335 -#define SPECIES_SEVIPER 336 -#define SPECIES_LUNATONE 337 -#define SPECIES_SOLROCK 338 -#define SPECIES_BARBOACH 339 -#define SPECIES_WHISCASH 340 -#define SPECIES_CORPHISH 341 -#define SPECIES_CRAWDAUNT 342 -#define SPECIES_BALTOY 343 -#define SPECIES_CLAYDOL 344 -#define SPECIES_LILEEP 345 -#define SPECIES_CRADILY 346 -#define SPECIES_ANORITH 347 -#define SPECIES_ARMALDO 348 -#define SPECIES_FEEBAS 349 -#define SPECIES_MILOTIC 350 -#define SPECIES_CASTFORM SPECIES_CASTFORM_NORMAL -#define SPECIES_CASTFORM_NORMAL 351 -#define SPECIES_KECLEON 352 -#define SPECIES_SHUPPET 353 -#define SPECIES_BANETTE 354 -#define SPECIES_DUSKULL 355 -#define SPECIES_DUSCLOPS 356 -#define SPECIES_TROPIUS 357 -#define SPECIES_CHIMECHO 358 -#define SPECIES_ABSOL 359 -#define SPECIES_WYNAUT 360 -#define SPECIES_SNORUNT 361 -#define SPECIES_GLALIE 362 -#define SPECIES_SPHEAL 363 -#define SPECIES_SEALEO 364 -#define SPECIES_WALREIN 365 -#define SPECIES_CLAMPERL 366 -#define SPECIES_HUNTAIL 367 -#define SPECIES_GOREBYSS 368 -#define SPECIES_RELICANTH 369 -#define SPECIES_LUVDISC 370 -#define SPECIES_BAGON 371 -#define SPECIES_SHELGON 372 -#define SPECIES_SALAMENCE 373 -#define SPECIES_BELDUM 374 -#define SPECIES_METANG 375 -#define SPECIES_METAGROSS 376 -#define SPECIES_REGIROCK 377 -#define SPECIES_REGICE 378 -#define SPECIES_REGISTEEL 379 -#define SPECIES_LATIAS 380 -#define SPECIES_LATIOS 381 -#define SPECIES_KYOGRE 382 -#define SPECIES_GROUDON 383 -#define SPECIES_RAYQUAZA 384 -#define SPECIES_JIRACHI 385 -#define SPECIES_DEOXYS SPECIES_DEOXYS_NORMAL -#define SPECIES_DEOXYS_NORMAL 386 -#define SPECIES_TURTWIG 387 -#define SPECIES_GROTLE 388 -#define SPECIES_TORTERRA 389 -#define SPECIES_CHIMCHAR 390 -#define SPECIES_MONFERNO 391 -#define SPECIES_INFERNAPE 392 -#define SPECIES_PIPLUP 393 -#define SPECIES_PRINPLUP 394 -#define SPECIES_EMPOLEON 395 -#define SPECIES_STARLY 396 -#define SPECIES_STARAVIA 397 -#define SPECIES_STARAPTOR 398 -#define SPECIES_BIDOOF 399 -#define SPECIES_BIBAREL 400 -#define SPECIES_KRICKETOT 401 -#define SPECIES_KRICKETUNE 402 -#define SPECIES_SHINX 403 -#define SPECIES_LUXIO 404 -#define SPECIES_LUXRAY 405 -#define SPECIES_BUDEW 406 -#define SPECIES_ROSERADE 407 -#define SPECIES_CRANIDOS 408 -#define SPECIES_RAMPARDOS 409 -#define SPECIES_SHIELDON 410 -#define SPECIES_BASTIODON 411 -#define SPECIES_BURMY SPECIES_BURMY_PLANT_CLOAK -#define SPECIES_BURMY_PLANT_CLOAK 412 -#define SPECIES_WORMADAM SPECIES_WORMADAM_PLANT_CLOAK -#define SPECIES_WORMADAM_PLANT_CLOAK 413 -#define SPECIES_MOTHIM 414 -#define SPECIES_COMBEE 415 -#define SPECIES_VESPIQUEN 416 -#define SPECIES_PACHIRISU 417 -#define SPECIES_BUIZEL 418 -#define SPECIES_FLOATZEL 419 -#define SPECIES_CHERUBI 420 -#define SPECIES_CHERRIM SPECIES_CHERRIM_OVERCAST -#define SPECIES_CHERRIM_OVERCAST 421 -#define SPECIES_SHELLOS SPECIES_SHELLOS_WEST_SEA -#define SPECIES_SHELLOS_WEST_SEA 422 -#define SPECIES_GASTRODON SPECIES_GASTRODON_WEST_SEA -#define SPECIES_GASTRODON_WEST_SEA 423 -#define SPECIES_AMBIPOM 424 -#define SPECIES_DRIFLOON 425 -#define SPECIES_DRIFBLIM 426 -#define SPECIES_BUNEARY 427 -#define SPECIES_LOPUNNY 428 -#define SPECIES_MISMAGIUS 429 -#define SPECIES_HONCHKROW 430 -#define SPECIES_GLAMEOW 431 -#define SPECIES_PURUGLY 432 -#define SPECIES_CHINGLING 433 -#define SPECIES_STUNKY 434 -#define SPECIES_SKUNTANK 435 -#define SPECIES_BRONZOR 436 -#define SPECIES_BRONZONG 437 -#define SPECIES_BONSLY 438 -#define SPECIES_MIME_JR 439 -#define SPECIES_HAPPINY 440 -#define SPECIES_CHATOT 441 -#define SPECIES_SPIRITOMB 442 -#define SPECIES_GIBLE 443 -#define SPECIES_GABITE 444 -#define SPECIES_GARCHOMP 445 -#define SPECIES_MUNCHLAX 446 -#define SPECIES_RIOLU 447 -#define SPECIES_LUCARIO 448 -#define SPECIES_HIPPOPOTAS 449 -#define SPECIES_HIPPOWDON 450 -#define SPECIES_SKORUPI 451 -#define SPECIES_DRAPION 452 -#define SPECIES_CROAGUNK 453 -#define SPECIES_TOXICROAK 454 -#define SPECIES_CARNIVINE 455 -#define SPECIES_FINNEON 456 -#define SPECIES_LUMINEON 457 -#define SPECIES_MANTYKE 458 -#define SPECIES_SNOVER 459 -#define SPECIES_ABOMASNOW 460 -#define SPECIES_WEAVILE 461 -#define SPECIES_MAGNEZONE 462 -#define SPECIES_LICKILICKY 463 -#define SPECIES_RHYPERIOR 464 -#define SPECIES_TANGROWTH 465 -#define SPECIES_ELECTIVIRE 466 -#define SPECIES_MAGMORTAR 467 -#define SPECIES_TOGEKISS 468 -#define SPECIES_YANMEGA 469 -#define SPECIES_LEAFEON 470 -#define SPECIES_GLACEON 471 -#define SPECIES_GLISCOR 472 -#define SPECIES_MAMOSWINE 473 -#define SPECIES_PORYGON_Z 474 -#define SPECIES_GALLADE 475 -#define SPECIES_PROBOPASS 476 -#define SPECIES_DUSKNOIR 477 -#define SPECIES_FROSLASS 478 -#define SPECIES_ROTOM 479 -#define SPECIES_UXIE 480 -#define SPECIES_MESPRIT 481 -#define SPECIES_AZELF 482 -#define SPECIES_DIALGA 483 -#define SPECIES_PALKIA 484 -#define SPECIES_HEATRAN 485 -#define SPECIES_REGIGIGAS 486 -#define SPECIES_GIRATINA SPECIES_GIRATINA_ALTERED -#define SPECIES_GIRATINA_ALTERED 487 -#define SPECIES_CRESSELIA 488 -#define SPECIES_PHIONE 489 -#define SPECIES_MANAPHY 490 -#define SPECIES_DARKRAI 491 -#define SPECIES_SHAYMIN SPECIES_SHAYMIN_LAND -#define SPECIES_SHAYMIN_LAND 492 -#define SPECIES_ARCEUS SPECIES_ARCEUS_NORMAL -#define SPECIES_ARCEUS_NORMAL 493 -#define SPECIES_VICTINI 494 -#define SPECIES_SNIVY 495 -#define SPECIES_SERVINE 496 -#define SPECIES_SERPERIOR 497 -#define SPECIES_TEPIG 498 -#define SPECIES_PIGNITE 499 -#define SPECIES_EMBOAR 500 -#define SPECIES_OSHAWOTT 501 -#define SPECIES_DEWOTT 502 -#define SPECIES_SAMUROTT 503 -#define SPECIES_PATRAT 504 -#define SPECIES_WATCHOG 505 -#define SPECIES_LILLIPUP 506 -#define SPECIES_HERDIER 507 -#define SPECIES_STOUTLAND 508 -#define SPECIES_PURRLOIN 509 -#define SPECIES_LIEPARD 510 -#define SPECIES_PANSAGE 511 -#define SPECIES_SIMISAGE 512 -#define SPECIES_PANSEAR 513 -#define SPECIES_SIMISEAR 514 -#define SPECIES_PANPOUR 515 -#define SPECIES_SIMIPOUR 516 -#define SPECIES_MUNNA 517 -#define SPECIES_MUSHARNA 518 -#define SPECIES_PIDOVE 519 -#define SPECIES_TRANQUILL 520 -#define SPECIES_UNFEZANT 521 -#define SPECIES_BLITZLE 522 -#define SPECIES_ZEBSTRIKA 523 -#define SPECIES_ROGGENROLA 524 -#define SPECIES_BOLDORE 525 -#define SPECIES_GIGALITH 526 -#define SPECIES_WOOBAT 527 -#define SPECIES_SWOOBAT 528 -#define SPECIES_DRILBUR 529 -#define SPECIES_EXCADRILL 530 -#define SPECIES_AUDINO 531 -#define SPECIES_TIMBURR 532 -#define SPECIES_GURDURR 533 -#define SPECIES_CONKELDURR 534 -#define SPECIES_TYMPOLE 535 -#define SPECIES_PALPITOAD 536 -#define SPECIES_SEISMITOAD 537 -#define SPECIES_THROH 538 -#define SPECIES_SAWK 539 -#define SPECIES_SEWADDLE 540 -#define SPECIES_SWADLOON 541 -#define SPECIES_LEAVANNY 542 -#define SPECIES_VENIPEDE 543 -#define SPECIES_WHIRLIPEDE 544 -#define SPECIES_SCOLIPEDE 545 -#define SPECIES_COTTONEE 546 -#define SPECIES_WHIMSICOTT 547 -#define SPECIES_PETILIL 548 -#define SPECIES_LILLIGANT 549 -#define SPECIES_BASCULIN SPECIES_BASCULIN_RED_STRIPED -#define SPECIES_BASCULIN_RED_STRIPED 550 -#define SPECIES_SANDILE 551 -#define SPECIES_KROKOROK 552 -#define SPECIES_KROOKODILE 553 -#define SPECIES_DARUMAKA 554 -#define SPECIES_DARMANITAN SPECIES_DARMANITAN_STANDARD_MODE -#define SPECIES_DARMANITAN_STANDARD_MODE 555 -#define SPECIES_MARACTUS 556 -#define SPECIES_DWEBBLE 557 -#define SPECIES_CRUSTLE 558 -#define SPECIES_SCRAGGY 559 -#define SPECIES_SCRAFTY 560 -#define SPECIES_SIGILYPH 561 -#define SPECIES_YAMASK 562 -#define SPECIES_COFAGRIGUS 563 -#define SPECIES_TIRTOUGA 564 -#define SPECIES_CARRACOSTA 565 -#define SPECIES_ARCHEN 566 -#define SPECIES_ARCHEOPS 567 -#define SPECIES_TRUBBISH 568 -#define SPECIES_GARBODOR 569 -#define SPECIES_ZORUA 570 -#define SPECIES_ZOROARK 571 -#define SPECIES_MINCCINO 572 -#define SPECIES_CINCCINO 573 -#define SPECIES_GOTHITA 574 -#define SPECIES_GOTHORITA 575 -#define SPECIES_GOTHITELLE 576 -#define SPECIES_SOLOSIS 577 -#define SPECIES_DUOSION 578 -#define SPECIES_REUNICLUS 579 -#define SPECIES_DUCKLETT 580 -#define SPECIES_SWANNA 581 -#define SPECIES_VANILLITE 582 -#define SPECIES_VANILLISH 583 -#define SPECIES_VANILLUXE 584 -#define SPECIES_DEERLING SPECIES_DEERLING_SPRING -#define SPECIES_DEERLING_SPRING 585 -#define SPECIES_SAWSBUCK SPECIES_SAWSBUCK_SPRING -#define SPECIES_SAWSBUCK_SPRING 586 -#define SPECIES_EMOLGA 587 -#define SPECIES_KARRABLAST 588 -#define SPECIES_ESCAVALIER 589 -#define SPECIES_FOONGUS 590 -#define SPECIES_AMOONGUSS 591 -#define SPECIES_FRILLISH 592 -#define SPECIES_JELLICENT 593 -#define SPECIES_ALOMOMOLA 594 -#define SPECIES_JOLTIK 595 -#define SPECIES_GALVANTULA 596 -#define SPECIES_FERROSEED 597 -#define SPECIES_FERROTHORN 598 -#define SPECIES_KLINK 599 -#define SPECIES_KLANG 600 -#define SPECIES_KLINKLANG 601 -#define SPECIES_TYNAMO 602 -#define SPECIES_EELEKTRIK 603 -#define SPECIES_EELEKTROSS 604 -#define SPECIES_ELGYEM 605 -#define SPECIES_BEHEEYEM 606 -#define SPECIES_LITWICK 607 -#define SPECIES_LAMPENT 608 -#define SPECIES_CHANDELURE 609 -#define SPECIES_AXEW 610 -#define SPECIES_FRAXURE 611 -#define SPECIES_HAXORUS 612 -#define SPECIES_CUBCHOO 613 -#define SPECIES_BEARTIC 614 -#define SPECIES_CRYOGONAL 615 -#define SPECIES_SHELMET 616 -#define SPECIES_ACCELGOR 617 -#define SPECIES_STUNFISK 618 -#define SPECIES_MIENFOO 619 -#define SPECIES_MIENSHAO 620 -#define SPECIES_DRUDDIGON 621 -#define SPECIES_GOLETT 622 -#define SPECIES_GOLURK 623 -#define SPECIES_PAWNIARD 624 -#define SPECIES_BISHARP 625 -#define SPECIES_BOUFFALANT 626 -#define SPECIES_RUFFLET 627 -#define SPECIES_BRAVIARY 628 -#define SPECIES_VULLABY 629 -#define SPECIES_MANDIBUZZ 630 -#define SPECIES_HEATMOR 631 -#define SPECIES_DURANT 632 -#define SPECIES_DEINO 633 -#define SPECIES_ZWEILOUS 634 -#define SPECIES_HYDREIGON 635 -#define SPECIES_LARVESTA 636 -#define SPECIES_VOLCARONA 637 -#define SPECIES_COBALION 638 -#define SPECIES_TERRAKION 639 -#define SPECIES_VIRIZION 640 -#define SPECIES_TORNADUS SPECIES_TORNADUS_INCARNATE -#define SPECIES_TORNADUS_INCARNATE 641 -#define SPECIES_THUNDURUS SPECIES_THUNDURUS_INCARNATE -#define SPECIES_THUNDURUS_INCARNATE 642 -#define SPECIES_RESHIRAM 643 -#define SPECIES_ZEKROM 644 -#define SPECIES_LANDORUS SPECIES_LANDORUS_INCARNATE -#define SPECIES_LANDORUS_INCARNATE 645 -#define SPECIES_KYUREM 646 -#define SPECIES_KELDEO SPECIES_KELDEO_ORDINARY -#define SPECIES_KELDEO_ORDINARY 647 -#define SPECIES_MELOETTA SPECIES_MELOETTA_ARIA -#define SPECIES_MELOETTA_ARIA 648 -#define SPECIES_GENESECT 649 -#define SPECIES_CHESPIN 650 -#define SPECIES_QUILLADIN 651 -#define SPECIES_CHESNAUGHT 652 -#define SPECIES_FENNEKIN 653 -#define SPECIES_BRAIXEN 654 -#define SPECIES_DELPHOX 655 -#define SPECIES_FROAKIE 656 -#define SPECIES_FROGADIER 657 -#define SPECIES_GRENINJA 658 -#define SPECIES_BUNNELBY 659 -#define SPECIES_DIGGERSBY 660 -#define SPECIES_FLETCHLING 661 -#define SPECIES_FLETCHINDER 662 -#define SPECIES_TALONFLAME 663 -#define SPECIES_SCATTERBUG 664 -#define SPECIES_SPEWPA 665 -#define SPECIES_VIVILLON SPECIES_VIVILLON_ICY_SNOW -#define SPECIES_VIVILLON_ICY_SNOW 666 -#define SPECIES_LITLEO 667 -#define SPECIES_PYROAR 668 -#define SPECIES_FLABEBE SPECIES_FLABEBE_RED_FLOWER -#define SPECIES_FLABEBE_RED_FLOWER 669 -#define SPECIES_FLOETTE SPECIES_FLOETTE_RED_FLOWER -#define SPECIES_FLOETTE_RED_FLOWER 670 -#define SPECIES_FLORGES SPECIES_FLORGES_RED_FLOWER -#define SPECIES_FLORGES_RED_FLOWER 671 -#define SPECIES_SKIDDO 672 -#define SPECIES_GOGOAT 673 -#define SPECIES_PANCHAM 674 -#define SPECIES_PANGORO 675 -#define SPECIES_FURFROU SPECIES_FURFROU_NATURAL -#define SPECIES_FURFROU_NATURAL 676 -#define SPECIES_ESPURR 677 -#define SPECIES_MEOWSTIC SPECIES_MEOWSTIC_MALE -#define SPECIES_MEOWSTIC_MALE 678 -#define SPECIES_HONEDGE 679 -#define SPECIES_DOUBLADE 680 -#define SPECIES_AEGISLASH SPECIES_AEGISLASH_SHIELD -#define SPECIES_AEGISLASH_SHIELD 681 -#define SPECIES_SPRITZEE 682 -#define SPECIES_AROMATISSE 683 -#define SPECIES_SWIRLIX 684 -#define SPECIES_SLURPUFF 685 -#define SPECIES_INKAY 686 -#define SPECIES_MALAMAR 687 -#define SPECIES_BINACLE 688 -#define SPECIES_BARBARACLE 689 -#define SPECIES_SKRELP 690 -#define SPECIES_DRAGALGE 691 -#define SPECIES_CLAUNCHER 692 -#define SPECIES_CLAWITZER 693 -#define SPECIES_HELIOPTILE 694 -#define SPECIES_HELIOLISK 695 -#define SPECIES_TYRUNT 696 -#define SPECIES_TYRANTRUM 697 -#define SPECIES_AMAURA 698 -#define SPECIES_AURORUS 699 -#define SPECIES_SYLVEON 700 -#define SPECIES_HAWLUCHA 701 -#define SPECIES_DEDENNE 702 -#define SPECIES_CARBINK 703 -#define SPECIES_GOOMY 704 -#define SPECIES_SLIGGOO 705 -#define SPECIES_GOODRA 706 -#define SPECIES_KLEFKI 707 -#define SPECIES_PHANTUMP 708 -#define SPECIES_TREVENANT 709 -#define SPECIES_PUMPKABOO SPECIES_PUMPKABOO_AVERAGE -#define SPECIES_PUMPKABOO_AVERAGE 710 -#define SPECIES_GOURGEIST SPECIES_GOURGEIST_AVERAGE -#define SPECIES_GOURGEIST_AVERAGE 711 -#define SPECIES_BERGMITE 712 -#define SPECIES_AVALUGG 713 -#define SPECIES_NOIBAT 714 -#define SPECIES_NOIVERN 715 -#define SPECIES_XERNEAS SPECIES_XERNEAS_NEUTRAL -#define SPECIES_XERNEAS_NEUTRAL 716 -#define SPECIES_YVELTAL 717 -#define SPECIES_ZYGARDE SPECIES_ZYGARDE_50 -#define SPECIES_ZYGARDE_50 SPECIES_ZYGARDE_50_AURA_BREAK -#define SPECIES_ZYGARDE_50_AURA_BREAK 718 -#define SPECIES_DIANCIE 719 -#define SPECIES_HOOPA SPECIES_HOOPA_CONFINED -#define SPECIES_HOOPA_CONFINED 720 -#define SPECIES_VOLCANION 721 -#define SPECIES_ROWLET 722 -#define SPECIES_DARTRIX 723 -#define SPECIES_DECIDUEYE 724 -#define SPECIES_LITTEN 725 -#define SPECIES_TORRACAT 726 -#define SPECIES_INCINEROAR 727 -#define SPECIES_POPPLIO 728 -#define SPECIES_BRIONNE 729 -#define SPECIES_PRIMARINA 730 -#define SPECIES_PIKIPEK 731 -#define SPECIES_TRUMBEAK 732 -#define SPECIES_TOUCANNON 733 -#define SPECIES_YUNGOOS 734 -#define SPECIES_GUMSHOOS 735 -#define SPECIES_GRUBBIN 736 -#define SPECIES_CHARJABUG 737 -#define SPECIES_VIKAVOLT 738 -#define SPECIES_CRABRAWLER 739 -#define SPECIES_CRABOMINABLE 740 -#define SPECIES_ORICORIO SPECIES_ORICORIO_BAILE -#define SPECIES_ORICORIO_BAILE 741 -#define SPECIES_CUTIEFLY 742 -#define SPECIES_RIBOMBEE 743 -#define SPECIES_ROCKRUFF 744 -#define SPECIES_LYCANROC SPECIES_LYCANROC_MIDDAY -#define SPECIES_LYCANROC_MIDDAY 745 -#define SPECIES_WISHIWASHI SPECIES_WISHIWASHI_SOLO -#define SPECIES_WISHIWASHI_SOLO 746 -#define SPECIES_MAREANIE 747 -#define SPECIES_TOXAPEX 748 -#define SPECIES_MUDBRAY 749 -#define SPECIES_MUDSDALE 750 -#define SPECIES_DEWPIDER 751 -#define SPECIES_ARAQUANID 752 -#define SPECIES_FOMANTIS 753 -#define SPECIES_LURANTIS 754 -#define SPECIES_MORELULL 755 -#define SPECIES_SHIINOTIC 756 -#define SPECIES_SALANDIT 757 -#define SPECIES_SALAZZLE 758 -#define SPECIES_STUFFUL 759 -#define SPECIES_BEWEAR 760 -#define SPECIES_BOUNSWEET 761 -#define SPECIES_STEENEE 762 -#define SPECIES_TSAREENA 763 -#define SPECIES_COMFEY 764 -#define SPECIES_ORANGURU 765 -#define SPECIES_PASSIMIAN 766 -#define SPECIES_WIMPOD 767 -#define SPECIES_GOLISOPOD 768 -#define SPECIES_SANDYGAST 769 -#define SPECIES_PALOSSAND 770 -#define SPECIES_PYUKUMUKU 771 -#define SPECIES_TYPE_NULL 772 -#define SPECIES_SILVALLY SPECIES_SILVALLY_NORMAL -#define SPECIES_SILVALLY_NORMAL 773 -#define SPECIES_MINIOR SPECIES_MINIOR_METEOR -#define SPECIES_MINIOR_METEOR SPECIES_MINIOR_METEOR_RED -#define SPECIES_MINIOR_METEOR_RED 774 -#define SPECIES_KOMALA 775 -#define SPECIES_TURTONATOR 776 -#define SPECIES_TOGEDEMARU 777 -#define SPECIES_MIMIKYU SPECIES_MIMIKYU_DISGUISED -#define SPECIES_MIMIKYU_DISGUISED 778 -#define SPECIES_BRUXISH 779 -#define SPECIES_DRAMPA 780 -#define SPECIES_DHELMISE 781 -#define SPECIES_JANGMO_O 782 -#define SPECIES_HAKAMO_O 783 -#define SPECIES_KOMMO_O 784 -#define SPECIES_TAPU_KOKO 785 -#define SPECIES_TAPU_LELE 786 -#define SPECIES_TAPU_BULU 787 -#define SPECIES_TAPU_FINI 788 -#define SPECIES_COSMOG 789 -#define SPECIES_COSMOEM 790 -#define SPECIES_SOLGALEO 791 -#define SPECIES_LUNALA 792 -#define SPECIES_NIHILEGO 793 -#define SPECIES_BUZZWOLE 794 -#define SPECIES_PHEROMOSA 795 -#define SPECIES_XURKITREE 796 -#define SPECIES_CELESTEELA 797 -#define SPECIES_KARTANA 798 -#define SPECIES_GUZZLORD 799 -#define SPECIES_NECROZMA 800 -#define SPECIES_MAGEARNA 801 -#define SPECIES_MARSHADOW 802 -#define SPECIES_POIPOLE 803 -#define SPECIES_NAGANADEL 804 -#define SPECIES_STAKATAKA 805 -#define SPECIES_BLACEPHALON 806 -#define SPECIES_ZERAORA 807 -#define SPECIES_MELTAN 808 -#define SPECIES_MELMETAL 809 -#define SPECIES_GROOKEY 810 -#define SPECIES_THWACKEY 811 -#define SPECIES_RILLABOOM 812 -#define SPECIES_SCORBUNNY 813 -#define SPECIES_RABOOT 814 -#define SPECIES_CINDERACE 815 -#define SPECIES_SOBBLE 816 -#define SPECIES_DRIZZILE 817 -#define SPECIES_INTELEON 818 -#define SPECIES_SKWOVET 819 -#define SPECIES_GREEDENT 820 -#define SPECIES_ROOKIDEE 821 -#define SPECIES_CORVISQUIRE 822 -#define SPECIES_CORVIKNIGHT 823 -#define SPECIES_BLIPBUG 824 -#define SPECIES_DOTTLER 825 -#define SPECIES_ORBEETLE 826 -#define SPECIES_NICKIT 827 -#define SPECIES_THIEVUL 828 -#define SPECIES_GOSSIFLEUR 829 -#define SPECIES_ELDEGOSS 830 -#define SPECIES_WOOLOO 831 -#define SPECIES_DUBWOOL 832 -#define SPECIES_CHEWTLE 833 -#define SPECIES_DREDNAW 834 -#define SPECIES_YAMPER 835 -#define SPECIES_BOLTUND 836 -#define SPECIES_ROLYCOLY 837 -#define SPECIES_CARKOL 838 -#define SPECIES_COALOSSAL 839 -#define SPECIES_APPLIN 840 -#define SPECIES_FLAPPLE 841 -#define SPECIES_APPLETUN 842 -#define SPECIES_SILICOBRA 843 -#define SPECIES_SANDACONDA 844 -#define SPECIES_CRAMORANT 845 -#define SPECIES_ARROKUDA 846 -#define SPECIES_BARRASKEWDA 847 -#define SPECIES_TOXEL 848 -#define SPECIES_TOXTRICITY SPECIES_TOXTRICITY_AMPED -#define SPECIES_TOXTRICITY_AMPED 849 -#define SPECIES_SIZZLIPEDE 850 -#define SPECIES_CENTISKORCH 851 -#define SPECIES_CLOBBOPUS 852 -#define SPECIES_GRAPPLOCT 853 -#define SPECIES_SINISTEA SPECIES_SINISTEA_PHONY -#define SPECIES_SINISTEA_PHONY 854 -#define SPECIES_POLTEAGEIST SPECIES_POLTEAGEIST_PHONY -#define SPECIES_POLTEAGEIST_PHONY 855 -#define SPECIES_HATENNA 856 -#define SPECIES_HATTREM 857 -#define SPECIES_HATTERENE 858 -#define SPECIES_IMPIDIMP 859 -#define SPECIES_MORGREM 860 -#define SPECIES_GRIMMSNARL 861 -#define SPECIES_OBSTAGOON 862 -#define SPECIES_PERRSERKER 863 -#define SPECIES_CURSOLA 864 -#define SPECIES_SIRFETCHD 865 -#define SPECIES_MR_RIME 866 -#define SPECIES_RUNERIGUS 867 -#define SPECIES_MILCERY 868 -#define SPECIES_ALCREMIE SPECIES_ALCREMIE_STRAWBERRY -#define SPECIES_ALCREMIE_STRAWBERRY SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM -#define SPECIES_ALCREMIE_VANILLA_CREAM SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM -#define SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM 869 -#define SPECIES_FALINKS 870 -#define SPECIES_PINCURCHIN 871 -#define SPECIES_SNOM 872 -#define SPECIES_FROSMOTH 873 -#define SPECIES_STONJOURNER 874 -#define SPECIES_EISCUE SPECIES_EISCUE_ICE_FACE -#define SPECIES_EISCUE_ICE_FACE 875 -#define SPECIES_INDEEDEE SPECIES_INDEEDEE_MALE -#define SPECIES_INDEEDEE_MALE 876 -#define SPECIES_MORPEKO SPECIES_MORPEKO_FULL_BELLY -#define SPECIES_MORPEKO_FULL_BELLY 877 -#define SPECIES_CUFANT 878 -#define SPECIES_COPPERAJAH 879 -#define SPECIES_DRACOZOLT 880 -#define SPECIES_ARCTOZOLT 881 -#define SPECIES_DRACOVISH 882 -#define SPECIES_ARCTOVISH 883 -#define SPECIES_DURALUDON 884 -#define SPECIES_DREEPY 885 -#define SPECIES_DRAKLOAK 886 -#define SPECIES_DRAGAPULT 887 -#define SPECIES_ZACIAN SPECIES_ZACIAN_HERO_OF_MANY_BATTLES -#define SPECIES_ZACIAN_HERO_OF_MANY_BATTLES 888 -#define SPECIES_ZAMAZENTA SPECIES_ZAMAZENTA_HERO_OF_MANY_BATTLES -#define SPECIES_ZAMAZENTA_HERO_OF_MANY_BATTLES 889 -#define SPECIES_ETERNATUS 890 -#define SPECIES_KUBFU 891 -#define SPECIES_URSHIFU SPECIES_URSHIFU_SINGLE_STRIKE_STYLE -#define SPECIES_URSHIFU_SINGLE_STRIKE_STYLE 892 -#define SPECIES_ZARUDE 893 -#define SPECIES_REGIELEKI 894 -#define SPECIES_REGIDRAGO 895 -#define SPECIES_GLASTRIER 896 -#define SPECIES_SPECTRIER 897 -#define SPECIES_CALYREX 898 -#define SPECIES_WYRDEER 899 -#define SPECIES_KLEAVOR 900 -#define SPECIES_URSALUNA 901 -#define SPECIES_BASCULEGION SPECIES_BASCULEGION_MALE -#define SPECIES_BASCULEGION_MALE 902 -#define SPECIES_SNEASLER 903 -#define SPECIES_OVERQWIL 904 -#define SPECIES_ENAMORUS SPECIES_ENAMORUS_INCARNATE -#define SPECIES_ENAMORUS_INCARNATE 905 +#define SPECIES_NONE 0 +#define SPECIES_BULBASAUR 1 +#define SPECIES_IVYSAUR 2 +#define SPECIES_VENUSAUR 3 +#define SPECIES_CHARMANDER 4 +#define SPECIES_CHARMELEON 5 +#define SPECIES_CHARIZARD 6 +#define SPECIES_SQUIRTLE 7 +#define SPECIES_WARTORTLE 8 +#define SPECIES_BLASTOISE 9 +#define SPECIES_CATERPIE 10 +#define SPECIES_METAPOD 11 +#define SPECIES_BUTTERFREE 12 +#define SPECIES_WEEDLE 13 +#define SPECIES_KAKUNA 14 +#define SPECIES_BEEDRILL 15 +#define SPECIES_PIDGEY 16 +#define SPECIES_PIDGEOTTO 17 +#define SPECIES_PIDGEOT 18 +#define SPECIES_RATTATA 19 +#define SPECIES_RATICATE 20 +#define SPECIES_SPEAROW 21 +#define SPECIES_FEAROW 22 +#define SPECIES_EKANS 23 +#define SPECIES_ARBOK 24 +#define SPECIES_PIKACHU 25 +#define SPECIES_RAICHU 26 +#define SPECIES_SANDSHREW 27 +#define SPECIES_SANDSLASH 28 +#define SPECIES_NIDORAN_F 29 +#define SPECIES_NIDORINA 30 +#define SPECIES_NIDOQUEEN 31 +#define SPECIES_NIDORAN_M 32 +#define SPECIES_NIDORINO 33 +#define SPECIES_NIDOKING 34 +#define SPECIES_CLEFAIRY 35 +#define SPECIES_CLEFABLE 36 +#define SPECIES_VULPIX 37 +#define SPECIES_NINETALES 38 +#define SPECIES_JIGGLYPUFF 39 +#define SPECIES_WIGGLYTUFF 40 +#define SPECIES_ZUBAT 41 +#define SPECIES_GOLBAT 42 +#define SPECIES_ODDISH 43 +#define SPECIES_GLOOM 44 +#define SPECIES_VILEPLUME 45 +#define SPECIES_PARAS 46 +#define SPECIES_PARASECT 47 +#define SPECIES_VENONAT 48 +#define SPECIES_VENOMOTH 49 +#define SPECIES_DIGLETT 50 +#define SPECIES_DUGTRIO 51 +#define SPECIES_MEOWTH 52 +#define SPECIES_PERSIAN 53 +#define SPECIES_PSYDUCK 54 +#define SPECIES_GOLDUCK 55 +#define SPECIES_MANKEY 56 +#define SPECIES_PRIMEAPE 57 +#define SPECIES_GROWLITHE 58 +#define SPECIES_ARCANINE 59 +#define SPECIES_POLIWAG 60 +#define SPECIES_POLIWHIRL 61 +#define SPECIES_POLIWRATH 62 +#define SPECIES_ABRA 63 +#define SPECIES_KADABRA 64 +#define SPECIES_ALAKAZAM 65 +#define SPECIES_MACHOP 66 +#define SPECIES_MACHOKE 67 +#define SPECIES_MACHAMP 68 +#define SPECIES_BELLSPROUT 69 +#define SPECIES_WEEPINBELL 70 +#define SPECIES_VICTREEBEL 71 +#define SPECIES_TENTACOOL 72 +#define SPECIES_TENTACRUEL 73 +#define SPECIES_GEODUDE 74 +#define SPECIES_GRAVELER 75 +#define SPECIES_GOLEM 76 +#define SPECIES_PONYTA 77 +#define SPECIES_RAPIDASH 78 +#define SPECIES_SLOWPOKE 79 +#define SPECIES_SLOWBRO 80 +#define SPECIES_MAGNEMITE 81 +#define SPECIES_MAGNETON 82 +#define SPECIES_FARFETCHD 83 +#define SPECIES_DODUO 84 +#define SPECIES_DODRIO 85 +#define SPECIES_SEEL 86 +#define SPECIES_DEWGONG 87 +#define SPECIES_GRIMER 88 +#define SPECIES_MUK 89 +#define SPECIES_SHELLDER 90 +#define SPECIES_CLOYSTER 91 +#define SPECIES_GASTLY 92 +#define SPECIES_HAUNTER 93 +#define SPECIES_GENGAR 94 +#define SPECIES_ONIX 95 +#define SPECIES_DROWZEE 96 +#define SPECIES_HYPNO 97 +#define SPECIES_KRABBY 98 +#define SPECIES_KINGLER 99 +#define SPECIES_VOLTORB 100 +#define SPECIES_ELECTRODE 101 +#define SPECIES_EXEGGCUTE 102 +#define SPECIES_EXEGGUTOR 103 +#define SPECIES_CUBONE 104 +#define SPECIES_MAROWAK 105 +#define SPECIES_HITMONLEE 106 +#define SPECIES_HITMONCHAN 107 +#define SPECIES_LICKITUNG 108 +#define SPECIES_KOFFING 109 +#define SPECIES_WEEZING 110 +#define SPECIES_RHYHORN 111 +#define SPECIES_RHYDON 112 +#define SPECIES_CHANSEY 113 +#define SPECIES_TANGELA 114 +#define SPECIES_KANGASKHAN 115 +#define SPECIES_HORSEA 116 +#define SPECIES_SEADRA 117 +#define SPECIES_GOLDEEN 118 +#define SPECIES_SEAKING 119 +#define SPECIES_STARYU 120 +#define SPECIES_STARMIE 121 +#define SPECIES_MR_MIME 122 +#define SPECIES_SCYTHER 123 +#define SPECIES_JYNX 124 +#define SPECIES_ELECTABUZZ 125 +#define SPECIES_MAGMAR 126 +#define SPECIES_PINSIR 127 +#define SPECIES_TAUROS 128 +#define SPECIES_MAGIKARP 129 +#define SPECIES_GYARADOS 130 +#define SPECIES_LAPRAS 131 +#define SPECIES_DITTO 132 +#define SPECIES_EEVEE 133 +#define SPECIES_VAPOREON 134 +#define SPECIES_JOLTEON 135 +#define SPECIES_FLAREON 136 +#define SPECIES_PORYGON 137 +#define SPECIES_OMANYTE 138 +#define SPECIES_OMASTAR 139 +#define SPECIES_KABUTO 140 +#define SPECIES_KABUTOPS 141 +#define SPECIES_AERODACTYL 142 +#define SPECIES_SNORLAX 143 +#define SPECIES_ARTICUNO 144 +#define SPECIES_ZAPDOS 145 +#define SPECIES_MOLTRES 146 +#define SPECIES_DRATINI 147 +#define SPECIES_DRAGONAIR 148 +#define SPECIES_DRAGONITE 149 +#define SPECIES_MEWTWO 150 +#define SPECIES_MEW 151 +#define SPECIES_CHIKORITA 152 +#define SPECIES_BAYLEEF 153 +#define SPECIES_MEGANIUM 154 +#define SPECIES_CYNDAQUIL 155 +#define SPECIES_QUILAVA 156 +#define SPECIES_TYPHLOSION 157 +#define SPECIES_TOTODILE 158 +#define SPECIES_CROCONAW 159 +#define SPECIES_FERALIGATR 160 +#define SPECIES_SENTRET 161 +#define SPECIES_FURRET 162 +#define SPECIES_HOOTHOOT 163 +#define SPECIES_NOCTOWL 164 +#define SPECIES_LEDYBA 165 +#define SPECIES_LEDIAN 166 +#define SPECIES_SPINARAK 167 +#define SPECIES_ARIADOS 168 +#define SPECIES_CROBAT 169 +#define SPECIES_CHINCHOU 170 +#define SPECIES_LANTURN 171 +#define SPECIES_PICHU 172 +#define SPECIES_CLEFFA 173 +#define SPECIES_IGGLYBUFF 174 +#define SPECIES_TOGEPI 175 +#define SPECIES_TOGETIC 176 +#define SPECIES_NATU 177 +#define SPECIES_XATU 178 +#define SPECIES_MAREEP 179 +#define SPECIES_FLAAFFY 180 +#define SPECIES_AMPHAROS 181 +#define SPECIES_BELLOSSOM 182 +#define SPECIES_MARILL 183 +#define SPECIES_AZUMARILL 184 +#define SPECIES_SUDOWOODO 185 +#define SPECIES_POLITOED 186 +#define SPECIES_HOPPIP 187 +#define SPECIES_SKIPLOOM 188 +#define SPECIES_JUMPLUFF 189 +#define SPECIES_AIPOM 190 +#define SPECIES_SUNKERN 191 +#define SPECIES_SUNFLORA 192 +#define SPECIES_YANMA 193 +#define SPECIES_WOOPER 194 +#define SPECIES_QUAGSIRE 195 +#define SPECIES_ESPEON 196 +#define SPECIES_UMBREON 197 +#define SPECIES_MURKROW 198 +#define SPECIES_SLOWKING 199 +#define SPECIES_MISDREAVUS 200 +#define SPECIES_UNOWN 201 +#define SPECIES_WOBBUFFET 202 +#define SPECIES_GIRAFARIG 203 +#define SPECIES_PINECO 204 +#define SPECIES_FORRETRESS 205 +#define SPECIES_DUNSPARCE 206 +#define SPECIES_GLIGAR 207 +#define SPECIES_STEELIX 208 +#define SPECIES_SNUBBULL 209 +#define SPECIES_GRANBULL 210 +#define SPECIES_QWILFISH 211 +#define SPECIES_SCIZOR 212 +#define SPECIES_SHUCKLE 213 +#define SPECIES_HERACROSS 214 +#define SPECIES_SNEASEL 215 +#define SPECIES_TEDDIURSA 216 +#define SPECIES_URSARING 217 +#define SPECIES_SLUGMA 218 +#define SPECIES_MAGCARGO 219 +#define SPECIES_SWINUB 220 +#define SPECIES_PILOSWINE 221 +#define SPECIES_CORSOLA 222 +#define SPECIES_REMORAID 223 +#define SPECIES_OCTILLERY 224 +#define SPECIES_DELIBIRD 225 +#define SPECIES_MANTINE 226 +#define SPECIES_SKARMORY 227 +#define SPECIES_HOUNDOUR 228 +#define SPECIES_HOUNDOOM 229 +#define SPECIES_KINGDRA 230 +#define SPECIES_PHANPY 231 +#define SPECIES_DONPHAN 232 +#define SPECIES_PORYGON2 233 +#define SPECIES_STANTLER 234 +#define SPECIES_SMEARGLE 235 +#define SPECIES_TYROGUE 236 +#define SPECIES_HITMONTOP 237 +#define SPECIES_SMOOCHUM 238 +#define SPECIES_ELEKID 239 +#define SPECIES_MAGBY 240 +#define SPECIES_MILTANK 241 +#define SPECIES_BLISSEY 242 +#define SPECIES_RAIKOU 243 +#define SPECIES_ENTEI 244 +#define SPECIES_SUICUNE 245 +#define SPECIES_LARVITAR 246 +#define SPECIES_PUPITAR 247 +#define SPECIES_TYRANITAR 248 +#define SPECIES_LUGIA 249 +#define SPECIES_HO_OH 250 +#define SPECIES_CELEBI 251 +#define SPECIES_TREECKO 252 +#define SPECIES_GROVYLE 253 +#define SPECIES_SCEPTILE 254 +#define SPECIES_TORCHIC 255 +#define SPECIES_COMBUSKEN 256 +#define SPECIES_BLAZIKEN 257 +#define SPECIES_MUDKIP 258 +#define SPECIES_MARSHTOMP 259 +#define SPECIES_SWAMPERT 260 +#define SPECIES_POOCHYENA 261 +#define SPECIES_MIGHTYENA 262 +#define SPECIES_ZIGZAGOON 263 +#define SPECIES_LINOONE 264 +#define SPECIES_WURMPLE 265 +#define SPECIES_SILCOON 266 +#define SPECIES_BEAUTIFLY 267 +#define SPECIES_CASCOON 268 +#define SPECIES_DUSTOX 269 +#define SPECIES_LOTAD 270 +#define SPECIES_LOMBRE 271 +#define SPECIES_LUDICOLO 272 +#define SPECIES_SEEDOT 273 +#define SPECIES_NUZLEAF 274 +#define SPECIES_SHIFTRY 275 +#define SPECIES_TAILLOW 276 +#define SPECIES_SWELLOW 277 +#define SPECIES_WINGULL 278 +#define SPECIES_PELIPPER 279 +#define SPECIES_RALTS 280 +#define SPECIES_KIRLIA 281 +#define SPECIES_GARDEVOIR 282 +#define SPECIES_SURSKIT 283 +#define SPECIES_MASQUERAIN 284 +#define SPECIES_SHROOMISH 285 +#define SPECIES_BRELOOM 286 +#define SPECIES_SLAKOTH 287 +#define SPECIES_VIGOROTH 288 +#define SPECIES_SLAKING 289 +#define SPECIES_NINCADA 290 +#define SPECIES_NINJASK 291 +#define SPECIES_SHEDINJA 292 +#define SPECIES_WHISMUR 293 +#define SPECIES_LOUDRED 294 +#define SPECIES_EXPLOUD 295 +#define SPECIES_MAKUHITA 296 +#define SPECIES_HARIYAMA 297 +#define SPECIES_AZURILL 298 +#define SPECIES_NOSEPASS 299 +#define SPECIES_SKITTY 300 +#define SPECIES_DELCATTY 301 +#define SPECIES_SABLEYE 302 +#define SPECIES_MAWILE 303 +#define SPECIES_ARON 304 +#define SPECIES_LAIRON 305 +#define SPECIES_AGGRON 306 +#define SPECIES_MEDITITE 307 +#define SPECIES_MEDICHAM 308 +#define SPECIES_ELECTRIKE 309 +#define SPECIES_MANECTRIC 310 +#define SPECIES_PLUSLE 311 +#define SPECIES_MINUN 312 +#define SPECIES_VOLBEAT 313 +#define SPECIES_ILLUMISE 314 +#define SPECIES_ROSELIA 315 +#define SPECIES_GULPIN 316 +#define SPECIES_SWALOT 317 +#define SPECIES_CARVANHA 318 +#define SPECIES_SHARPEDO 319 +#define SPECIES_WAILMER 320 +#define SPECIES_WAILORD 321 +#define SPECIES_NUMEL 322 +#define SPECIES_CAMERUPT 323 +#define SPECIES_TORKOAL 324 +#define SPECIES_SPOINK 325 +#define SPECIES_GRUMPIG 326 +#define SPECIES_SPINDA 327 +#define SPECIES_TRAPINCH 328 +#define SPECIES_VIBRAVA 329 +#define SPECIES_FLYGON 330 +#define SPECIES_CACNEA 331 +#define SPECIES_CACTURNE 332 +#define SPECIES_SWABLU 333 +#define SPECIES_ALTARIA 334 +#define SPECIES_ZANGOOSE 335 +#define SPECIES_SEVIPER 336 +#define SPECIES_LUNATONE 337 +#define SPECIES_SOLROCK 338 +#define SPECIES_BARBOACH 339 +#define SPECIES_WHISCASH 340 +#define SPECIES_CORPHISH 341 +#define SPECIES_CRAWDAUNT 342 +#define SPECIES_BALTOY 343 +#define SPECIES_CLAYDOL 344 +#define SPECIES_LILEEP 345 +#define SPECIES_CRADILY 346 +#define SPECIES_ANORITH 347 +#define SPECIES_ARMALDO 348 +#define SPECIES_FEEBAS 349 +#define SPECIES_MILOTIC 350 +#define SPECIES_CASTFORM SPECIES_CASTFORM_NORMAL +#define SPECIES_CASTFORM_NORMAL 351 +#define SPECIES_KECLEON 352 +#define SPECIES_SHUPPET 353 +#define SPECIES_BANETTE 354 +#define SPECIES_DUSKULL 355 +#define SPECIES_DUSCLOPS 356 +#define SPECIES_TROPIUS 357 +#define SPECIES_CHIMECHO 358 +#define SPECIES_ABSOL 359 +#define SPECIES_WYNAUT 360 +#define SPECIES_SNORUNT 361 +#define SPECIES_GLALIE 362 +#define SPECIES_SPHEAL 363 +#define SPECIES_SEALEO 364 +#define SPECIES_WALREIN 365 +#define SPECIES_CLAMPERL 366 +#define SPECIES_HUNTAIL 367 +#define SPECIES_GOREBYSS 368 +#define SPECIES_RELICANTH 369 +#define SPECIES_LUVDISC 370 +#define SPECIES_BAGON 371 +#define SPECIES_SHELGON 372 +#define SPECIES_SALAMENCE 373 +#define SPECIES_BELDUM 374 +#define SPECIES_METANG 375 +#define SPECIES_METAGROSS 376 +#define SPECIES_REGIROCK 377 +#define SPECIES_REGICE 378 +#define SPECIES_REGISTEEL 379 +#define SPECIES_LATIAS 380 +#define SPECIES_LATIOS 381 +#define SPECIES_KYOGRE 382 +#define SPECIES_GROUDON 383 +#define SPECIES_RAYQUAZA 384 +#define SPECIES_JIRACHI 385 +#define SPECIES_DEOXYS SPECIES_DEOXYS_NORMAL +#define SPECIES_DEOXYS_NORMAL 386 +#define SPECIES_TURTWIG 387 +#define SPECIES_GROTLE 388 +#define SPECIES_TORTERRA 389 +#define SPECIES_CHIMCHAR 390 +#define SPECIES_MONFERNO 391 +#define SPECIES_INFERNAPE 392 +#define SPECIES_PIPLUP 393 +#define SPECIES_PRINPLUP 394 +#define SPECIES_EMPOLEON 395 +#define SPECIES_STARLY 396 +#define SPECIES_STARAVIA 397 +#define SPECIES_STARAPTOR 398 +#define SPECIES_BIDOOF 399 +#define SPECIES_BIBAREL 400 +#define SPECIES_KRICKETOT 401 +#define SPECIES_KRICKETUNE 402 +#define SPECIES_SHINX 403 +#define SPECIES_LUXIO 404 +#define SPECIES_LUXRAY 405 +#define SPECIES_BUDEW 406 +#define SPECIES_ROSERADE 407 +#define SPECIES_CRANIDOS 408 +#define SPECIES_RAMPARDOS 409 +#define SPECIES_SHIELDON 410 +#define SPECIES_BASTIODON 411 +#define SPECIES_BURMY SPECIES_BURMY_PLANT_CLOAK +#define SPECIES_BURMY_PLANT_CLOAK 412 +#define SPECIES_WORMADAM SPECIES_WORMADAM_PLANT_CLOAK +#define SPECIES_WORMADAM_PLANT_CLOAK 413 +#define SPECIES_MOTHIM 414 +#define SPECIES_COMBEE 415 +#define SPECIES_VESPIQUEN 416 +#define SPECIES_PACHIRISU 417 +#define SPECIES_BUIZEL 418 +#define SPECIES_FLOATZEL 419 +#define SPECIES_CHERUBI 420 +#define SPECIES_CHERRIM SPECIES_CHERRIM_OVERCAST +#define SPECIES_CHERRIM_OVERCAST 421 +#define SPECIES_SHELLOS SPECIES_SHELLOS_WEST_SEA +#define SPECIES_SHELLOS_WEST_SEA 422 +#define SPECIES_GASTRODON SPECIES_GASTRODON_WEST_SEA +#define SPECIES_GASTRODON_WEST_SEA 423 +#define SPECIES_AMBIPOM 424 +#define SPECIES_DRIFLOON 425 +#define SPECIES_DRIFBLIM 426 +#define SPECIES_BUNEARY 427 +#define SPECIES_LOPUNNY 428 +#define SPECIES_MISMAGIUS 429 +#define SPECIES_HONCHKROW 430 +#define SPECIES_GLAMEOW 431 +#define SPECIES_PURUGLY 432 +#define SPECIES_CHINGLING 433 +#define SPECIES_STUNKY 434 +#define SPECIES_SKUNTANK 435 +#define SPECIES_BRONZOR 436 +#define SPECIES_BRONZONG 437 +#define SPECIES_BONSLY 438 +#define SPECIES_MIME_JR 439 +#define SPECIES_HAPPINY 440 +#define SPECIES_CHATOT 441 +#define SPECIES_SPIRITOMB 442 +#define SPECIES_GIBLE 443 +#define SPECIES_GABITE 444 +#define SPECIES_GARCHOMP 445 +#define SPECIES_MUNCHLAX 446 +#define SPECIES_RIOLU 447 +#define SPECIES_LUCARIO 448 +#define SPECIES_HIPPOPOTAS 449 +#define SPECIES_HIPPOWDON 450 +#define SPECIES_SKORUPI 451 +#define SPECIES_DRAPION 452 +#define SPECIES_CROAGUNK 453 +#define SPECIES_TOXICROAK 454 +#define SPECIES_CARNIVINE 455 +#define SPECIES_FINNEON 456 +#define SPECIES_LUMINEON 457 +#define SPECIES_MANTYKE 458 +#define SPECIES_SNOVER 459 +#define SPECIES_ABOMASNOW 460 +#define SPECIES_WEAVILE 461 +#define SPECIES_MAGNEZONE 462 +#define SPECIES_LICKILICKY 463 +#define SPECIES_RHYPERIOR 464 +#define SPECIES_TANGROWTH 465 +#define SPECIES_ELECTIVIRE 466 +#define SPECIES_MAGMORTAR 467 +#define SPECIES_TOGEKISS 468 +#define SPECIES_YANMEGA 469 +#define SPECIES_LEAFEON 470 +#define SPECIES_GLACEON 471 +#define SPECIES_GLISCOR 472 +#define SPECIES_MAMOSWINE 473 +#define SPECIES_PORYGON_Z 474 +#define SPECIES_GALLADE 475 +#define SPECIES_PROBOPASS 476 +#define SPECIES_DUSKNOIR 477 +#define SPECIES_FROSLASS 478 +#define SPECIES_ROTOM 479 +#define SPECIES_UXIE 480 +#define SPECIES_MESPRIT 481 +#define SPECIES_AZELF 482 +#define SPECIES_DIALGA 483 +#define SPECIES_PALKIA 484 +#define SPECIES_HEATRAN 485 +#define SPECIES_REGIGIGAS 486 +#define SPECIES_GIRATINA SPECIES_GIRATINA_ALTERED +#define SPECIES_GIRATINA_ALTERED 487 +#define SPECIES_CRESSELIA 488 +#define SPECIES_PHIONE 489 +#define SPECIES_MANAPHY 490 +#define SPECIES_DARKRAI 491 +#define SPECIES_SHAYMIN SPECIES_SHAYMIN_LAND +#define SPECIES_SHAYMIN_LAND 492 +#define SPECIES_ARCEUS SPECIES_ARCEUS_NORMAL +#define SPECIES_ARCEUS_NORMAL 493 +#define SPECIES_VICTINI 494 +#define SPECIES_SNIVY 495 +#define SPECIES_SERVINE 496 +#define SPECIES_SERPERIOR 497 +#define SPECIES_TEPIG 498 +#define SPECIES_PIGNITE 499 +#define SPECIES_EMBOAR 500 +#define SPECIES_OSHAWOTT 501 +#define SPECIES_DEWOTT 502 +#define SPECIES_SAMUROTT 503 +#define SPECIES_PATRAT 504 +#define SPECIES_WATCHOG 505 +#define SPECIES_LILLIPUP 506 +#define SPECIES_HERDIER 507 +#define SPECIES_STOUTLAND 508 +#define SPECIES_PURRLOIN 509 +#define SPECIES_LIEPARD 510 +#define SPECIES_PANSAGE 511 +#define SPECIES_SIMISAGE 512 +#define SPECIES_PANSEAR 513 +#define SPECIES_SIMISEAR 514 +#define SPECIES_PANPOUR 515 +#define SPECIES_SIMIPOUR 516 +#define SPECIES_MUNNA 517 +#define SPECIES_MUSHARNA 518 +#define SPECIES_PIDOVE 519 +#define SPECIES_TRANQUILL 520 +#define SPECIES_UNFEZANT 521 +#define SPECIES_BLITZLE 522 +#define SPECIES_ZEBSTRIKA 523 +#define SPECIES_ROGGENROLA 524 +#define SPECIES_BOLDORE 525 +#define SPECIES_GIGALITH 526 +#define SPECIES_WOOBAT 527 +#define SPECIES_SWOOBAT 528 +#define SPECIES_DRILBUR 529 +#define SPECIES_EXCADRILL 530 +#define SPECIES_AUDINO 531 +#define SPECIES_TIMBURR 532 +#define SPECIES_GURDURR 533 +#define SPECIES_CONKELDURR 534 +#define SPECIES_TYMPOLE 535 +#define SPECIES_PALPITOAD 536 +#define SPECIES_SEISMITOAD 537 +#define SPECIES_THROH 538 +#define SPECIES_SAWK 539 +#define SPECIES_SEWADDLE 540 +#define SPECIES_SWADLOON 541 +#define SPECIES_LEAVANNY 542 +#define SPECIES_VENIPEDE 543 +#define SPECIES_WHIRLIPEDE 544 +#define SPECIES_SCOLIPEDE 545 +#define SPECIES_COTTONEE 546 +#define SPECIES_WHIMSICOTT 547 +#define SPECIES_PETILIL 548 +#define SPECIES_LILLIGANT 549 +#define SPECIES_BASCULIN SPECIES_BASCULIN_RED_STRIPED +#define SPECIES_BASCULIN_RED_STRIPED 550 +#define SPECIES_SANDILE 551 +#define SPECIES_KROKOROK 552 +#define SPECIES_KROOKODILE 553 +#define SPECIES_DARUMAKA 554 +#define SPECIES_DARMANITAN SPECIES_DARMANITAN_STANDARD_MODE +#define SPECIES_DARMANITAN_STANDARD_MODE 555 +#define SPECIES_MARACTUS 556 +#define SPECIES_DWEBBLE 557 +#define SPECIES_CRUSTLE 558 +#define SPECIES_SCRAGGY 559 +#define SPECIES_SCRAFTY 560 +#define SPECIES_SIGILYPH 561 +#define SPECIES_YAMASK 562 +#define SPECIES_COFAGRIGUS 563 +#define SPECIES_TIRTOUGA 564 +#define SPECIES_CARRACOSTA 565 +#define SPECIES_ARCHEN 566 +#define SPECIES_ARCHEOPS 567 +#define SPECIES_TRUBBISH 568 +#define SPECIES_GARBODOR 569 +#define SPECIES_ZORUA 570 +#define SPECIES_ZOROARK 571 +#define SPECIES_MINCCINO 572 +#define SPECIES_CINCCINO 573 +#define SPECIES_GOTHITA 574 +#define SPECIES_GOTHORITA 575 +#define SPECIES_GOTHITELLE 576 +#define SPECIES_SOLOSIS 577 +#define SPECIES_DUOSION 578 +#define SPECIES_REUNICLUS 579 +#define SPECIES_DUCKLETT 580 +#define SPECIES_SWANNA 581 +#define SPECIES_VANILLITE 582 +#define SPECIES_VANILLISH 583 +#define SPECIES_VANILLUXE 584 +#define SPECIES_DEERLING SPECIES_DEERLING_SPRING +#define SPECIES_DEERLING_SPRING 585 +#define SPECIES_SAWSBUCK SPECIES_SAWSBUCK_SPRING +#define SPECIES_SAWSBUCK_SPRING 586 +#define SPECIES_EMOLGA 587 +#define SPECIES_KARRABLAST 588 +#define SPECIES_ESCAVALIER 589 +#define SPECIES_FOONGUS 590 +#define SPECIES_AMOONGUSS 591 +#define SPECIES_FRILLISH 592 +#define SPECIES_JELLICENT 593 +#define SPECIES_ALOMOMOLA 594 +#define SPECIES_JOLTIK 595 +#define SPECIES_GALVANTULA 596 +#define SPECIES_FERROSEED 597 +#define SPECIES_FERROTHORN 598 +#define SPECIES_KLINK 599 +#define SPECIES_KLANG 600 +#define SPECIES_KLINKLANG 601 +#define SPECIES_TYNAMO 602 +#define SPECIES_EELEKTRIK 603 +#define SPECIES_EELEKTROSS 604 +#define SPECIES_ELGYEM 605 +#define SPECIES_BEHEEYEM 606 +#define SPECIES_LITWICK 607 +#define SPECIES_LAMPENT 608 +#define SPECIES_CHANDELURE 609 +#define SPECIES_AXEW 610 +#define SPECIES_FRAXURE 611 +#define SPECIES_HAXORUS 612 +#define SPECIES_CUBCHOO 613 +#define SPECIES_BEARTIC 614 +#define SPECIES_CRYOGONAL 615 +#define SPECIES_SHELMET 616 +#define SPECIES_ACCELGOR 617 +#define SPECIES_STUNFISK 618 +#define SPECIES_MIENFOO 619 +#define SPECIES_MIENSHAO 620 +#define SPECIES_DRUDDIGON 621 +#define SPECIES_GOLETT 622 +#define SPECIES_GOLURK 623 +#define SPECIES_PAWNIARD 624 +#define SPECIES_BISHARP 625 +#define SPECIES_BOUFFALANT 626 +#define SPECIES_RUFFLET 627 +#define SPECIES_BRAVIARY 628 +#define SPECIES_VULLABY 629 +#define SPECIES_MANDIBUZZ 630 +#define SPECIES_HEATMOR 631 +#define SPECIES_DURANT 632 +#define SPECIES_DEINO 633 +#define SPECIES_ZWEILOUS 634 +#define SPECIES_HYDREIGON 635 +#define SPECIES_LARVESTA 636 +#define SPECIES_VOLCARONA 637 +#define SPECIES_COBALION 638 +#define SPECIES_TERRAKION 639 +#define SPECIES_VIRIZION 640 +#define SPECIES_TORNADUS SPECIES_TORNADUS_INCARNATE +#define SPECIES_TORNADUS_INCARNATE 641 +#define SPECIES_THUNDURUS SPECIES_THUNDURUS_INCARNATE +#define SPECIES_THUNDURUS_INCARNATE 642 +#define SPECIES_RESHIRAM 643 +#define SPECIES_ZEKROM 644 +#define SPECIES_LANDORUS SPECIES_LANDORUS_INCARNATE +#define SPECIES_LANDORUS_INCARNATE 645 +#define SPECIES_KYUREM 646 +#define SPECIES_KELDEO SPECIES_KELDEO_ORDINARY +#define SPECIES_KELDEO_ORDINARY 647 +#define SPECIES_MELOETTA SPECIES_MELOETTA_ARIA +#define SPECIES_MELOETTA_ARIA 648 +#define SPECIES_GENESECT 649 +#define SPECIES_CHESPIN 650 +#define SPECIES_QUILLADIN 651 +#define SPECIES_CHESNAUGHT 652 +#define SPECIES_FENNEKIN 653 +#define SPECIES_BRAIXEN 654 +#define SPECIES_DELPHOX 655 +#define SPECIES_FROAKIE 656 +#define SPECIES_FROGADIER 657 +#define SPECIES_GRENINJA 658 +#define SPECIES_BUNNELBY 659 +#define SPECIES_DIGGERSBY 660 +#define SPECIES_FLETCHLING 661 +#define SPECIES_FLETCHINDER 662 +#define SPECIES_TALONFLAME 663 +#define SPECIES_SCATTERBUG 664 +#define SPECIES_SPEWPA 665 +#define SPECIES_VIVILLON SPECIES_VIVILLON_ICY_SNOW +#define SPECIES_VIVILLON_ICY_SNOW 666 +#define SPECIES_LITLEO 667 +#define SPECIES_PYROAR 668 +#define SPECIES_FLABEBE SPECIES_FLABEBE_RED_FLOWER +#define SPECIES_FLABEBE_RED_FLOWER 669 +#define SPECIES_FLOETTE SPECIES_FLOETTE_RED_FLOWER +#define SPECIES_FLOETTE_RED_FLOWER 670 +#define SPECIES_FLORGES SPECIES_FLORGES_RED_FLOWER +#define SPECIES_FLORGES_RED_FLOWER 671 +#define SPECIES_SKIDDO 672 +#define SPECIES_GOGOAT 673 +#define SPECIES_PANCHAM 674 +#define SPECIES_PANGORO 675 +#define SPECIES_FURFROU SPECIES_FURFROU_NATURAL +#define SPECIES_FURFROU_NATURAL 676 +#define SPECIES_ESPURR 677 +#define SPECIES_MEOWSTIC SPECIES_MEOWSTIC_MALE +#define SPECIES_MEOWSTIC_MALE 678 +#define SPECIES_HONEDGE 679 +#define SPECIES_DOUBLADE 680 +#define SPECIES_AEGISLASH SPECIES_AEGISLASH_SHIELD +#define SPECIES_AEGISLASH_SHIELD 681 +#define SPECIES_SPRITZEE 682 +#define SPECIES_AROMATISSE 683 +#define SPECIES_SWIRLIX 684 +#define SPECIES_SLURPUFF 685 +#define SPECIES_INKAY 686 +#define SPECIES_MALAMAR 687 +#define SPECIES_BINACLE 688 +#define SPECIES_BARBARACLE 689 +#define SPECIES_SKRELP 690 +#define SPECIES_DRAGALGE 691 +#define SPECIES_CLAUNCHER 692 +#define SPECIES_CLAWITZER 693 +#define SPECIES_HELIOPTILE 694 +#define SPECIES_HELIOLISK 695 +#define SPECIES_TYRUNT 696 +#define SPECIES_TYRANTRUM 697 +#define SPECIES_AMAURA 698 +#define SPECIES_AURORUS 699 +#define SPECIES_SYLVEON 700 +#define SPECIES_HAWLUCHA 701 +#define SPECIES_DEDENNE 702 +#define SPECIES_CARBINK 703 +#define SPECIES_GOOMY 704 +#define SPECIES_SLIGGOO 705 +#define SPECIES_GOODRA 706 +#define SPECIES_KLEFKI 707 +#define SPECIES_PHANTUMP 708 +#define SPECIES_TREVENANT 709 +#define SPECIES_PUMPKABOO SPECIES_PUMPKABOO_AVERAGE +#define SPECIES_PUMPKABOO_AVERAGE 710 +#define SPECIES_GOURGEIST SPECIES_GOURGEIST_AVERAGE +#define SPECIES_GOURGEIST_AVERAGE 711 +#define SPECIES_BERGMITE 712 +#define SPECIES_AVALUGG 713 +#define SPECIES_NOIBAT 714 +#define SPECIES_NOIVERN 715 +#define SPECIES_XERNEAS SPECIES_XERNEAS_NEUTRAL +#define SPECIES_XERNEAS_NEUTRAL 716 +#define SPECIES_YVELTAL 717 +#define SPECIES_ZYGARDE SPECIES_ZYGARDE_50 +#define SPECIES_ZYGARDE_50 SPECIES_ZYGARDE_50_AURA_BREAK +#define SPECIES_ZYGARDE_50_AURA_BREAK 718 +#define SPECIES_DIANCIE 719 +#define SPECIES_HOOPA SPECIES_HOOPA_CONFINED +#define SPECIES_HOOPA_CONFINED 720 +#define SPECIES_VOLCANION 721 +#define SPECIES_ROWLET 722 +#define SPECIES_DARTRIX 723 +#define SPECIES_DECIDUEYE 724 +#define SPECIES_LITTEN 725 +#define SPECIES_TORRACAT 726 +#define SPECIES_INCINEROAR 727 +#define SPECIES_POPPLIO 728 +#define SPECIES_BRIONNE 729 +#define SPECIES_PRIMARINA 730 +#define SPECIES_PIKIPEK 731 +#define SPECIES_TRUMBEAK 732 +#define SPECIES_TOUCANNON 733 +#define SPECIES_YUNGOOS 734 +#define SPECIES_GUMSHOOS 735 +#define SPECIES_GRUBBIN 736 +#define SPECIES_CHARJABUG 737 +#define SPECIES_VIKAVOLT 738 +#define SPECIES_CRABRAWLER 739 +#define SPECIES_CRABOMINABLE 740 +#define SPECIES_ORICORIO SPECIES_ORICORIO_BAILE +#define SPECIES_ORICORIO_BAILE 741 +#define SPECIES_CUTIEFLY 742 +#define SPECIES_RIBOMBEE 743 +#define SPECIES_ROCKRUFF 744 +#define SPECIES_LYCANROC SPECIES_LYCANROC_MIDDAY +#define SPECIES_LYCANROC_MIDDAY 745 +#define SPECIES_WISHIWASHI SPECIES_WISHIWASHI_SOLO +#define SPECIES_WISHIWASHI_SOLO 746 +#define SPECIES_MAREANIE 747 +#define SPECIES_TOXAPEX 748 +#define SPECIES_MUDBRAY 749 +#define SPECIES_MUDSDALE 750 +#define SPECIES_DEWPIDER 751 +#define SPECIES_ARAQUANID 752 +#define SPECIES_FOMANTIS 753 +#define SPECIES_LURANTIS 754 +#define SPECIES_MORELULL 755 +#define SPECIES_SHIINOTIC 756 +#define SPECIES_SALANDIT 757 +#define SPECIES_SALAZZLE 758 +#define SPECIES_STUFFUL 759 +#define SPECIES_BEWEAR 760 +#define SPECIES_BOUNSWEET 761 +#define SPECIES_STEENEE 762 +#define SPECIES_TSAREENA 763 +#define SPECIES_COMFEY 764 +#define SPECIES_ORANGURU 765 +#define SPECIES_PASSIMIAN 766 +#define SPECIES_WIMPOD 767 +#define SPECIES_GOLISOPOD 768 +#define SPECIES_SANDYGAST 769 +#define SPECIES_PALOSSAND 770 +#define SPECIES_PYUKUMUKU 771 +#define SPECIES_TYPE_NULL 772 +#define SPECIES_SILVALLY SPECIES_SILVALLY_NORMAL +#define SPECIES_SILVALLY_NORMAL 773 +#define SPECIES_MINIOR SPECIES_MINIOR_METEOR +#define SPECIES_MINIOR_METEOR SPECIES_MINIOR_METEOR_RED +#define SPECIES_MINIOR_METEOR_RED 774 +#define SPECIES_KOMALA 775 +#define SPECIES_TURTONATOR 776 +#define SPECIES_TOGEDEMARU 777 +#define SPECIES_MIMIKYU SPECIES_MIMIKYU_DISGUISED +#define SPECIES_MIMIKYU_DISGUISED 778 +#define SPECIES_BRUXISH 779 +#define SPECIES_DRAMPA 780 +#define SPECIES_DHELMISE 781 +#define SPECIES_JANGMO_O 782 +#define SPECIES_HAKAMO_O 783 +#define SPECIES_KOMMO_O 784 +#define SPECIES_TAPU_KOKO 785 +#define SPECIES_TAPU_LELE 786 +#define SPECIES_TAPU_BULU 787 +#define SPECIES_TAPU_FINI 788 +#define SPECIES_COSMOG 789 +#define SPECIES_COSMOEM 790 +#define SPECIES_SOLGALEO 791 +#define SPECIES_LUNALA 792 +#define SPECIES_NIHILEGO 793 +#define SPECIES_BUZZWOLE 794 +#define SPECIES_PHEROMOSA 795 +#define SPECIES_XURKITREE 796 +#define SPECIES_CELESTEELA 797 +#define SPECIES_KARTANA 798 +#define SPECIES_GUZZLORD 799 +#define SPECIES_NECROZMA 800 +#define SPECIES_MAGEARNA 801 +#define SPECIES_MARSHADOW 802 +#define SPECIES_POIPOLE 803 +#define SPECIES_NAGANADEL 804 +#define SPECIES_STAKATAKA 805 +#define SPECIES_BLACEPHALON 806 +#define SPECIES_ZERAORA 807 +#define SPECIES_MELTAN 808 +#define SPECIES_MELMETAL 809 +#define SPECIES_GROOKEY 810 +#define SPECIES_THWACKEY 811 +#define SPECIES_RILLABOOM 812 +#define SPECIES_SCORBUNNY 813 +#define SPECIES_RABOOT 814 +#define SPECIES_CINDERACE 815 +#define SPECIES_SOBBLE 816 +#define SPECIES_DRIZZILE 817 +#define SPECIES_INTELEON 818 +#define SPECIES_SKWOVET 819 +#define SPECIES_GREEDENT 820 +#define SPECIES_ROOKIDEE 821 +#define SPECIES_CORVISQUIRE 822 +#define SPECIES_CORVIKNIGHT 823 +#define SPECIES_BLIPBUG 824 +#define SPECIES_DOTTLER 825 +#define SPECIES_ORBEETLE 826 +#define SPECIES_NICKIT 827 +#define SPECIES_THIEVUL 828 +#define SPECIES_GOSSIFLEUR 829 +#define SPECIES_ELDEGOSS 830 +#define SPECIES_WOOLOO 831 +#define SPECIES_DUBWOOL 832 +#define SPECIES_CHEWTLE 833 +#define SPECIES_DREDNAW 834 +#define SPECIES_YAMPER 835 +#define SPECIES_BOLTUND 836 +#define SPECIES_ROLYCOLY 837 +#define SPECIES_CARKOL 838 +#define SPECIES_COALOSSAL 839 +#define SPECIES_APPLIN 840 +#define SPECIES_FLAPPLE 841 +#define SPECIES_APPLETUN 842 +#define SPECIES_SILICOBRA 843 +#define SPECIES_SANDACONDA 844 +#define SPECIES_CRAMORANT 845 +#define SPECIES_ARROKUDA 846 +#define SPECIES_BARRASKEWDA 847 +#define SPECIES_TOXEL 848 +#define SPECIES_TOXTRICITY SPECIES_TOXTRICITY_AMPED +#define SPECIES_TOXTRICITY_AMPED 849 +#define SPECIES_SIZZLIPEDE 850 +#define SPECIES_CENTISKORCH 851 +#define SPECIES_CLOBBOPUS 852 +#define SPECIES_GRAPPLOCT 853 +#define SPECIES_SINISTEA SPECIES_SINISTEA_PHONY +#define SPECIES_SINISTEA_PHONY 854 +#define SPECIES_POLTEAGEIST SPECIES_POLTEAGEIST_PHONY +#define SPECIES_POLTEAGEIST_PHONY 855 +#define SPECIES_HATENNA 856 +#define SPECIES_HATTREM 857 +#define SPECIES_HATTERENE 858 +#define SPECIES_IMPIDIMP 859 +#define SPECIES_MORGREM 860 +#define SPECIES_GRIMMSNARL 861 +#define SPECIES_OBSTAGOON 862 +#define SPECIES_PERRSERKER 863 +#define SPECIES_CURSOLA 864 +#define SPECIES_SIRFETCHD 865 +#define SPECIES_MR_RIME 866 +#define SPECIES_RUNERIGUS 867 +#define SPECIES_MILCERY 868 +#define SPECIES_ALCREMIE SPECIES_ALCREMIE_STRAWBERRY +#define SPECIES_ALCREMIE_STRAWBERRY SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM +#define SPECIES_ALCREMIE_VANILLA_CREAM SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM +#define SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM 869 +#define SPECIES_FALINKS 870 +#define SPECIES_PINCURCHIN 871 +#define SPECIES_SNOM 872 +#define SPECIES_FROSMOTH 873 +#define SPECIES_STONJOURNER 874 +#define SPECIES_EISCUE SPECIES_EISCUE_ICE_FACE +#define SPECIES_EISCUE_ICE_FACE 875 +#define SPECIES_INDEEDEE SPECIES_INDEEDEE_MALE +#define SPECIES_INDEEDEE_MALE 876 +#define SPECIES_MORPEKO SPECIES_MORPEKO_FULL_BELLY +#define SPECIES_MORPEKO_FULL_BELLY 877 +#define SPECIES_CUFANT 878 +#define SPECIES_COPPERAJAH 879 +#define SPECIES_DRACOZOLT 880 +#define SPECIES_ARCTOZOLT 881 +#define SPECIES_DRACOVISH 882 +#define SPECIES_ARCTOVISH 883 +#define SPECIES_DURALUDON 884 +#define SPECIES_DREEPY 885 +#define SPECIES_DRAKLOAK 886 +#define SPECIES_DRAGAPULT 887 +#define SPECIES_ZACIAN SPECIES_ZACIAN_HERO_OF_MANY_BATTLES +#define SPECIES_ZACIAN_HERO_OF_MANY_BATTLES 888 +#define SPECIES_ZAMAZENTA SPECIES_ZAMAZENTA_HERO_OF_MANY_BATTLES +#define SPECIES_ZAMAZENTA_HERO_OF_MANY_BATTLES 889 +#define SPECIES_ETERNATUS 890 +#define SPECIES_KUBFU 891 +#define SPECIES_URSHIFU SPECIES_URSHIFU_SINGLE_STRIKE_STYLE +#define SPECIES_URSHIFU_SINGLE_STRIKE_STYLE 892 +#define SPECIES_ZARUDE 893 +#define SPECIES_REGIELEKI 894 +#define SPECIES_REGIDRAGO 895 +#define SPECIES_GLASTRIER 896 +#define SPECIES_SPECTRIER 897 +#define SPECIES_CALYREX 898 +#define SPECIES_WYRDEER 899 +#define SPECIES_KLEAVOR 900 +#define SPECIES_URSALUNA 901 +#define SPECIES_BASCULEGION SPECIES_BASCULEGION_MALE +#define SPECIES_BASCULEGION_MALE 902 +#define SPECIES_SNEASLER 903 +#define SPECIES_OVERQWIL 904 +#define SPECIES_ENAMORUS SPECIES_ENAMORUS_INCARNATE +#define SPECIES_ENAMORUS_INCARNATE 905 + +#define FORMS_START SPECIES_ENAMORUS_INCARNATE // Megas -#define SPECIES_VENUSAUR_MEGA FORMS_START + 1 -#define SPECIES_CHARIZARD_MEGA_X FORMS_START + 2 -#define SPECIES_CHARIZARD_MEGA_Y FORMS_START + 3 -#define SPECIES_BLASTOISE_MEGA FORMS_START + 4 -#define SPECIES_BEEDRILL_MEGA FORMS_START + 5 -#define SPECIES_PIDGEOT_MEGA FORMS_START + 6 -#define SPECIES_ALAKAZAM_MEGA FORMS_START + 7 -#define SPECIES_SLOWBRO_MEGA FORMS_START + 8 -#define SPECIES_GENGAR_MEGA FORMS_START + 9 -#define SPECIES_KANGASKHAN_MEGA FORMS_START + 10 -#define SPECIES_PINSIR_MEGA FORMS_START + 11 -#define SPECIES_GYARADOS_MEGA FORMS_START + 12 -#define SPECIES_AERODACTYL_MEGA FORMS_START + 13 -#define SPECIES_MEWTWO_MEGA_X FORMS_START + 14 -#define SPECIES_MEWTWO_MEGA_Y FORMS_START + 15 -#define SPECIES_AMPHAROS_MEGA FORMS_START + 16 -#define SPECIES_STEELIX_MEGA FORMS_START + 17 -#define SPECIES_SCIZOR_MEGA FORMS_START + 18 -#define SPECIES_HERACROSS_MEGA FORMS_START + 19 -#define SPECIES_HOUNDOOM_MEGA FORMS_START + 20 -#define SPECIES_TYRANITAR_MEGA FORMS_START + 21 -#define SPECIES_SCEPTILE_MEGA FORMS_START + 22 -#define SPECIES_BLAZIKEN_MEGA FORMS_START + 23 -#define SPECIES_SWAMPERT_MEGA FORMS_START + 24 -#define SPECIES_GARDEVOIR_MEGA FORMS_START + 25 -#define SPECIES_SABLEYE_MEGA FORMS_START + 26 -#define SPECIES_MAWILE_MEGA FORMS_START + 27 -#define SPECIES_AGGRON_MEGA FORMS_START + 28 -#define SPECIES_MEDICHAM_MEGA FORMS_START + 29 -#define SPECIES_MANECTRIC_MEGA FORMS_START + 30 -#define SPECIES_SHARPEDO_MEGA FORMS_START + 31 -#define SPECIES_CAMERUPT_MEGA FORMS_START + 32 -#define SPECIES_ALTARIA_MEGA FORMS_START + 33 -#define SPECIES_BANETTE_MEGA FORMS_START + 34 -#define SPECIES_ABSOL_MEGA FORMS_START + 35 -#define SPECIES_GLALIE_MEGA FORMS_START + 36 -#define SPECIES_SALAMENCE_MEGA FORMS_START + 37 -#define SPECIES_METAGROSS_MEGA FORMS_START + 38 -#define SPECIES_LATIAS_MEGA FORMS_START + 39 -#define SPECIES_LATIOS_MEGA FORMS_START + 40 -#define SPECIES_LOPUNNY_MEGA FORMS_START + 41 -#define SPECIES_GARCHOMP_MEGA FORMS_START + 42 -#define SPECIES_LUCARIO_MEGA FORMS_START + 43 -#define SPECIES_ABOMASNOW_MEGA FORMS_START + 44 -#define SPECIES_GALLADE_MEGA FORMS_START + 45 -#define SPECIES_AUDINO_MEGA FORMS_START + 46 -#define SPECIES_DIANCIE_MEGA FORMS_START + 47 +#define SPECIES_VENUSAUR_MEGA FORMS_START + 1 +#define SPECIES_CHARIZARD_MEGA_X FORMS_START + 2 +#define SPECIES_CHARIZARD_MEGA_Y FORMS_START + 3 +#define SPECIES_BLASTOISE_MEGA FORMS_START + 4 +#define SPECIES_BEEDRILL_MEGA FORMS_START + 5 +#define SPECIES_PIDGEOT_MEGA FORMS_START + 6 +#define SPECIES_ALAKAZAM_MEGA FORMS_START + 7 +#define SPECIES_SLOWBRO_MEGA FORMS_START + 8 +#define SPECIES_GENGAR_MEGA FORMS_START + 9 +#define SPECIES_KANGASKHAN_MEGA FORMS_START + 10 +#define SPECIES_PINSIR_MEGA FORMS_START + 11 +#define SPECIES_GYARADOS_MEGA FORMS_START + 12 +#define SPECIES_AERODACTYL_MEGA FORMS_START + 13 +#define SPECIES_MEWTWO_MEGA_X FORMS_START + 14 +#define SPECIES_MEWTWO_MEGA_Y FORMS_START + 15 +#define SPECIES_AMPHAROS_MEGA FORMS_START + 16 +#define SPECIES_STEELIX_MEGA FORMS_START + 17 +#define SPECIES_SCIZOR_MEGA FORMS_START + 18 +#define SPECIES_HERACROSS_MEGA FORMS_START + 19 +#define SPECIES_HOUNDOOM_MEGA FORMS_START + 20 +#define SPECIES_TYRANITAR_MEGA FORMS_START + 21 +#define SPECIES_SCEPTILE_MEGA FORMS_START + 22 +#define SPECIES_BLAZIKEN_MEGA FORMS_START + 23 +#define SPECIES_SWAMPERT_MEGA FORMS_START + 24 +#define SPECIES_GARDEVOIR_MEGA FORMS_START + 25 +#define SPECIES_SABLEYE_MEGA FORMS_START + 26 +#define SPECIES_MAWILE_MEGA FORMS_START + 27 +#define SPECIES_AGGRON_MEGA FORMS_START + 28 +#define SPECIES_MEDICHAM_MEGA FORMS_START + 29 +#define SPECIES_MANECTRIC_MEGA FORMS_START + 30 +#define SPECIES_SHARPEDO_MEGA FORMS_START + 31 +#define SPECIES_CAMERUPT_MEGA FORMS_START + 32 +#define SPECIES_ALTARIA_MEGA FORMS_START + 33 +#define SPECIES_BANETTE_MEGA FORMS_START + 34 +#define SPECIES_ABSOL_MEGA FORMS_START + 35 +#define SPECIES_GLALIE_MEGA FORMS_START + 36 +#define SPECIES_SALAMENCE_MEGA FORMS_START + 37 +#define SPECIES_METAGROSS_MEGA FORMS_START + 38 +#define SPECIES_LATIAS_MEGA FORMS_START + 39 +#define SPECIES_LATIOS_MEGA FORMS_START + 40 +#define SPECIES_LOPUNNY_MEGA FORMS_START + 41 +#define SPECIES_GARCHOMP_MEGA FORMS_START + 42 +#define SPECIES_LUCARIO_MEGA FORMS_START + 43 +#define SPECIES_ABOMASNOW_MEGA FORMS_START + 44 +#define SPECIES_GALLADE_MEGA FORMS_START + 45 +#define SPECIES_AUDINO_MEGA FORMS_START + 46 +#define SPECIES_DIANCIE_MEGA FORMS_START + 47 // Special Mega + Primals -#define SPECIES_RAYQUAZA_MEGA FORMS_START + 48 -#define SPECIES_KYOGRE_PRIMAL FORMS_START + 49 -#define SPECIES_GROUDON_PRIMAL FORMS_START + 50 +#define SPECIES_RAYQUAZA_MEGA FORMS_START + 48 +#define SPECIES_KYOGRE_PRIMAL FORMS_START + 49 +#define SPECIES_GROUDON_PRIMAL FORMS_START + 50 // Alolan Forms -#define SPECIES_RATTATA_ALOLAN FORMS_START + 51 -#define SPECIES_RATICATE_ALOLAN FORMS_START + 52 -#define SPECIES_RAICHU_ALOLAN FORMS_START + 53 -#define SPECIES_SANDSHREW_ALOLAN FORMS_START + 54 -#define SPECIES_SANDSLASH_ALOLAN FORMS_START + 55 -#define SPECIES_VULPIX_ALOLAN FORMS_START + 56 -#define SPECIES_NINETALES_ALOLAN FORMS_START + 57 -#define SPECIES_DIGLETT_ALOLAN FORMS_START + 58 -#define SPECIES_DUGTRIO_ALOLAN FORMS_START + 59 -#define SPECIES_MEOWTH_ALOLAN FORMS_START + 60 -#define SPECIES_PERSIAN_ALOLAN FORMS_START + 61 -#define SPECIES_GEODUDE_ALOLAN FORMS_START + 62 -#define SPECIES_GRAVELER_ALOLAN FORMS_START + 63 -#define SPECIES_GOLEM_ALOLAN FORMS_START + 64 -#define SPECIES_GRIMER_ALOLAN FORMS_START + 65 -#define SPECIES_MUK_ALOLAN FORMS_START + 66 -#define SPECIES_EXEGGUTOR_ALOLAN FORMS_START + 67 -#define SPECIES_MAROWAK_ALOLAN FORMS_START + 68 +#define SPECIES_RATTATA_ALOLAN FORMS_START + 51 +#define SPECIES_RATICATE_ALOLAN FORMS_START + 52 +#define SPECIES_RAICHU_ALOLAN FORMS_START + 53 +#define SPECIES_SANDSHREW_ALOLAN FORMS_START + 54 +#define SPECIES_SANDSLASH_ALOLAN FORMS_START + 55 +#define SPECIES_VULPIX_ALOLAN FORMS_START + 56 +#define SPECIES_NINETALES_ALOLAN FORMS_START + 57 +#define SPECIES_DIGLETT_ALOLAN FORMS_START + 58 +#define SPECIES_DUGTRIO_ALOLAN FORMS_START + 59 +#define SPECIES_MEOWTH_ALOLAN FORMS_START + 60 +#define SPECIES_PERSIAN_ALOLAN FORMS_START + 61 +#define SPECIES_GEODUDE_ALOLAN FORMS_START + 62 +#define SPECIES_GRAVELER_ALOLAN FORMS_START + 63 +#define SPECIES_GOLEM_ALOLAN FORMS_START + 64 +#define SPECIES_GRIMER_ALOLAN FORMS_START + 65 +#define SPECIES_MUK_ALOLAN FORMS_START + 66 +#define SPECIES_EXEGGUTOR_ALOLAN FORMS_START + 67 +#define SPECIES_MAROWAK_ALOLAN FORMS_START + 68 // Galarian Forms -#define SPECIES_MEOWTH_GALARIAN FORMS_START + 69 -#define SPECIES_PONYTA_GALARIAN FORMS_START + 70 -#define SPECIES_RAPIDASH_GALARIAN FORMS_START + 71 -#define SPECIES_SLOWPOKE_GALARIAN FORMS_START + 72 -#define SPECIES_SLOWBRO_GALARIAN FORMS_START + 73 -#define SPECIES_FARFETCHD_GALARIAN FORMS_START + 74 -#define SPECIES_WEEZING_GALARIAN FORMS_START + 75 -#define SPECIES_MR_MIME_GALARIAN FORMS_START + 76 -#define SPECIES_ARTICUNO_GALARIAN FORMS_START + 77 -#define SPECIES_ZAPDOS_GALARIAN FORMS_START + 78 -#define SPECIES_MOLTRES_GALARIAN FORMS_START + 79 -#define SPECIES_SLOWKING_GALARIAN FORMS_START + 80 -#define SPECIES_CORSOLA_GALARIAN FORMS_START + 81 -#define SPECIES_ZIGZAGOON_GALARIAN FORMS_START + 82 -#define SPECIES_LINOONE_GALARIAN FORMS_START + 83 -#define SPECIES_DARUMAKA_GALARIAN FORMS_START + 84 -#define SPECIES_DARMANITAN_GALARIAN SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE -#define SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE FORMS_START + 85 -#define SPECIES_YAMASK_GALARIAN FORMS_START + 86 -#define SPECIES_STUNFISK_GALARIAN FORMS_START + 87 +#define SPECIES_MEOWTH_GALARIAN FORMS_START + 69 +#define SPECIES_PONYTA_GALARIAN FORMS_START + 70 +#define SPECIES_RAPIDASH_GALARIAN FORMS_START + 71 +#define SPECIES_SLOWPOKE_GALARIAN FORMS_START + 72 +#define SPECIES_SLOWBRO_GALARIAN FORMS_START + 73 +#define SPECIES_FARFETCHD_GALARIAN FORMS_START + 74 +#define SPECIES_WEEZING_GALARIAN FORMS_START + 75 +#define SPECIES_MR_MIME_GALARIAN FORMS_START + 76 +#define SPECIES_ARTICUNO_GALARIAN FORMS_START + 77 +#define SPECIES_ZAPDOS_GALARIAN FORMS_START + 78 +#define SPECIES_MOLTRES_GALARIAN FORMS_START + 79 +#define SPECIES_SLOWKING_GALARIAN FORMS_START + 80 +#define SPECIES_CORSOLA_GALARIAN FORMS_START + 81 +#define SPECIES_ZIGZAGOON_GALARIAN FORMS_START + 82 +#define SPECIES_LINOONE_GALARIAN FORMS_START + 83 +#define SPECIES_DARUMAKA_GALARIAN FORMS_START + 84 +#define SPECIES_DARMANITAN_GALARIAN SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE +#define SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE FORMS_START + 85 +#define SPECIES_YAMASK_GALARIAN FORMS_START + 86 +#define SPECIES_STUNFISK_GALARIAN FORMS_START + 87 //Hisuian Forms -#define SPECIES_GROWLITHE_HISUIAN FORMS_START + 88 -#define SPECIES_ARCANINE_HISUIAN FORMS_START + 89 -#define SPECIES_VOLTORB_HISUIAN FORMS_START + 90 -#define SPECIES_ELECTRODE_HISUIAN FORMS_START + 91 -#define SPECIES_TYPHLOSION_HISUIAN FORMS_START + 92 -#define SPECIES_QWILFISH_HISUIAN FORMS_START + 93 -#define SPECIES_SNEASEL_HISUIAN FORMS_START + 94 -#define SPECIES_SAMUROTT_HISUIAN FORMS_START + 95 -#define SPECIES_LILLIGANT_HISUIAN FORMS_START + 96 -#define SPECIES_ZORUA_HISUIAN FORMS_START + 97 -#define SPECIES_ZOROARK_HISUIAN FORMS_START + 98 -#define SPECIES_BRAVIARY_HISUIAN FORMS_START + 99 -#define SPECIES_SLIGGOO_HISUIAN FORMS_START + 100 -#define SPECIES_GOODRA_HISUIAN FORMS_START + 101 -#define SPECIES_AVALUGG_HISUIAN FORMS_START + 102 -#define SPECIES_DECIDUEYE_HISUIAN FORMS_START + 103 +#define SPECIES_GROWLITHE_HISUIAN FORMS_START + 88 +#define SPECIES_ARCANINE_HISUIAN FORMS_START + 89 +#define SPECIES_VOLTORB_HISUIAN FORMS_START + 90 +#define SPECIES_ELECTRODE_HISUIAN FORMS_START + 91 +#define SPECIES_TYPHLOSION_HISUIAN FORMS_START + 92 +#define SPECIES_QWILFISH_HISUIAN FORMS_START + 93 +#define SPECIES_SNEASEL_HISUIAN FORMS_START + 94 +#define SPECIES_SAMUROTT_HISUIAN FORMS_START + 95 +#define SPECIES_LILLIGANT_HISUIAN FORMS_START + 96 +#define SPECIES_ZORUA_HISUIAN FORMS_START + 97 +#define SPECIES_ZOROARK_HISUIAN FORMS_START + 98 +#define SPECIES_BRAVIARY_HISUIAN FORMS_START + 99 +#define SPECIES_SLIGGOO_HISUIAN FORMS_START + 100 +#define SPECIES_GOODRA_HISUIAN FORMS_START + 101 +#define SPECIES_AVALUGG_HISUIAN FORMS_START + 102 +#define SPECIES_DECIDUEYE_HISUIAN FORMS_START + 103 // Misc Forms // Cosplay Pikachu -#define SPECIES_PIKACHU_COSPLAY FORMS_START + 104 -#define SPECIES_PIKACHU_ROCK_STAR FORMS_START + 105 -#define SPECIES_PIKACHU_BELLE FORMS_START + 106 -#define SPECIES_PIKACHU_POP_STAR FORMS_START + 107 -#define SPECIES_PIKACHU_PH_D FORMS_START + 108 -#define SPECIES_PIKACHU_LIBRE FORMS_START + 109 +#define SPECIES_PIKACHU_COSPLAY FORMS_START + 104 +#define SPECIES_PIKACHU_ROCK_STAR FORMS_START + 105 +#define SPECIES_PIKACHU_BELLE FORMS_START + 106 +#define SPECIES_PIKACHU_POP_STAR FORMS_START + 107 +#define SPECIES_PIKACHU_PH_D FORMS_START + 108 +#define SPECIES_PIKACHU_LIBRE FORMS_START + 109 // Cap Pikachu -#define SPECIES_PIKACHU_ORIGINAL_CAP FORMS_START + 110 -#define SPECIES_PIKACHU_HOENN_CAP FORMS_START + 111 -#define SPECIES_PIKACHU_SINNOH_CAP FORMS_START + 112 -#define SPECIES_PIKACHU_UNOVA_CAP FORMS_START + 113 -#define SPECIES_PIKACHU_KALOS_CAP FORMS_START + 114 -#define SPECIES_PIKACHU_ALOLA_CAP FORMS_START + 115 -#define SPECIES_PIKACHU_PARTNER_CAP FORMS_START + 116 -#define SPECIES_PIKACHU_WORLD_CAP FORMS_START + 117 +#define SPECIES_PIKACHU_ORIGINAL_CAP FORMS_START + 110 +#define SPECIES_PIKACHU_HOENN_CAP FORMS_START + 111 +#define SPECIES_PIKACHU_SINNOH_CAP FORMS_START + 112 +#define SPECIES_PIKACHU_UNOVA_CAP FORMS_START + 113 +#define SPECIES_PIKACHU_KALOS_CAP FORMS_START + 114 +#define SPECIES_PIKACHU_ALOLA_CAP FORMS_START + 115 +#define SPECIES_PIKACHU_PARTNER_CAP FORMS_START + 116 +#define SPECIES_PIKACHU_WORLD_CAP FORMS_START + 117 // Pichu -#define SPECIES_PICHU_SPIKY_EARED FORMS_START + 118 +#define SPECIES_PICHU_SPIKY_EARED FORMS_START + 118 // Unown -#define SPECIES_UNOWN_B FORMS_START + 119 -#define SPECIES_UNOWN_C FORMS_START + 120 -#define SPECIES_UNOWN_D FORMS_START + 121 -#define SPECIES_UNOWN_E FORMS_START + 122 -#define SPECIES_UNOWN_F FORMS_START + 123 -#define SPECIES_UNOWN_G FORMS_START + 124 -#define SPECIES_UNOWN_H FORMS_START + 125 -#define SPECIES_UNOWN_I FORMS_START + 126 -#define SPECIES_UNOWN_J FORMS_START + 127 -#define SPECIES_UNOWN_K FORMS_START + 128 -#define SPECIES_UNOWN_L FORMS_START + 129 -#define SPECIES_UNOWN_M FORMS_START + 130 -#define SPECIES_UNOWN_N FORMS_START + 131 -#define SPECIES_UNOWN_O FORMS_START + 132 -#define SPECIES_UNOWN_P FORMS_START + 133 -#define SPECIES_UNOWN_Q FORMS_START + 134 -#define SPECIES_UNOWN_R FORMS_START + 135 -#define SPECIES_UNOWN_S FORMS_START + 136 -#define SPECIES_UNOWN_T FORMS_START + 137 -#define SPECIES_UNOWN_U FORMS_START + 138 -#define SPECIES_UNOWN_V FORMS_START + 139 -#define SPECIES_UNOWN_W FORMS_START + 140 -#define SPECIES_UNOWN_X FORMS_START + 141 -#define SPECIES_UNOWN_Y FORMS_START + 142 -#define SPECIES_UNOWN_Z FORMS_START + 143 -#define SPECIES_UNOWN_EMARK FORMS_START + 144 -#define SPECIES_UNOWN_QMARK FORMS_START + 145 +#define SPECIES_UNOWN_B FORMS_START + 119 +#define SPECIES_UNOWN_C FORMS_START + 120 +#define SPECIES_UNOWN_D FORMS_START + 121 +#define SPECIES_UNOWN_E FORMS_START + 122 +#define SPECIES_UNOWN_F FORMS_START + 123 +#define SPECIES_UNOWN_G FORMS_START + 124 +#define SPECIES_UNOWN_H FORMS_START + 125 +#define SPECIES_UNOWN_I FORMS_START + 126 +#define SPECIES_UNOWN_J FORMS_START + 127 +#define SPECIES_UNOWN_K FORMS_START + 128 +#define SPECIES_UNOWN_L FORMS_START + 129 +#define SPECIES_UNOWN_M FORMS_START + 130 +#define SPECIES_UNOWN_N FORMS_START + 131 +#define SPECIES_UNOWN_O FORMS_START + 132 +#define SPECIES_UNOWN_P FORMS_START + 133 +#define SPECIES_UNOWN_Q FORMS_START + 134 +#define SPECIES_UNOWN_R FORMS_START + 135 +#define SPECIES_UNOWN_S FORMS_START + 136 +#define SPECIES_UNOWN_T FORMS_START + 137 +#define SPECIES_UNOWN_U FORMS_START + 138 +#define SPECIES_UNOWN_V FORMS_START + 139 +#define SPECIES_UNOWN_W FORMS_START + 140 +#define SPECIES_UNOWN_X FORMS_START + 141 +#define SPECIES_UNOWN_Y FORMS_START + 142 +#define SPECIES_UNOWN_Z FORMS_START + 143 +#define SPECIES_UNOWN_EMARK FORMS_START + 144 +#define SPECIES_UNOWN_QMARK FORMS_START + 145 // Castform -#define SPECIES_CASTFORM_SUNNY FORMS_START + 146 -#define SPECIES_CASTFORM_RAINY FORMS_START + 147 -#define SPECIES_CASTFORM_SNOWY FORMS_START + 148 +#define SPECIES_CASTFORM_SUNNY FORMS_START + 146 +#define SPECIES_CASTFORM_RAINY FORMS_START + 147 +#define SPECIES_CASTFORM_SNOWY FORMS_START + 148 // Deoxys -#define SPECIES_DEOXYS_ATTACK FORMS_START + 149 -#define SPECIES_DEOXYS_DEFENSE FORMS_START + 150 -#define SPECIES_DEOXYS_SPEED FORMS_START + 151 +#define SPECIES_DEOXYS_ATTACK FORMS_START + 149 +#define SPECIES_DEOXYS_DEFENSE FORMS_START + 150 +#define SPECIES_DEOXYS_SPEED FORMS_START + 151 // Burmy -#define SPECIES_BURMY_SANDY_CLOAK FORMS_START + 152 -#define SPECIES_BURMY_TRASH_CLOAK FORMS_START + 153 +#define SPECIES_BURMY_SANDY_CLOAK FORMS_START + 152 +#define SPECIES_BURMY_TRASH_CLOAK FORMS_START + 153 // Wormadam -#define SPECIES_WORMADAM_SANDY_CLOAK FORMS_START + 154 -#define SPECIES_WORMADAM_TRASH_CLOAK FORMS_START + 155 +#define SPECIES_WORMADAM_SANDY_CLOAK FORMS_START + 154 +#define SPECIES_WORMADAM_TRASH_CLOAK FORMS_START + 155 // Cherrim -#define SPECIES_CHERRIM_SUNSHINE FORMS_START + 156 +#define SPECIES_CHERRIM_SUNSHINE FORMS_START + 156 // Shellos -#define SPECIES_SHELLOS_EAST_SEA FORMS_START + 157 +#define SPECIES_SHELLOS_EAST_SEA FORMS_START + 157 // Gastrodon -#define SPECIES_GASTRODON_EAST_SEA FORMS_START + 158 +#define SPECIES_GASTRODON_EAST_SEA FORMS_START + 158 // Rotom -#define SPECIES_ROTOM_HEAT FORMS_START + 159 -#define SPECIES_ROTOM_WASH FORMS_START + 160 -#define SPECIES_ROTOM_FROST FORMS_START + 161 -#define SPECIES_ROTOM_FAN FORMS_START + 162 -#define SPECIES_ROTOM_MOW FORMS_START + 163 +#define SPECIES_ROTOM_HEAT FORMS_START + 159 +#define SPECIES_ROTOM_WASH FORMS_START + 160 +#define SPECIES_ROTOM_FROST FORMS_START + 161 +#define SPECIES_ROTOM_FAN FORMS_START + 162 +#define SPECIES_ROTOM_MOW FORMS_START + 163 // Origin Forme -#define SPECIES_DIALGA_ORIGIN FORMS_START + 164 -#define SPECIES_PALKIA_ORIGIN FORMS_START + 165 -#define SPECIES_GIRATINA_ORIGIN FORMS_START + 166 +#define SPECIES_DIALGA_ORIGIN FORMS_START + 164 +#define SPECIES_PALKIA_ORIGIN FORMS_START + 165 +#define SPECIES_GIRATINA_ORIGIN FORMS_START + 166 // Shaymin -#define SPECIES_SHAYMIN_SKY FORMS_START + 167 +#define SPECIES_SHAYMIN_SKY FORMS_START + 167 // Arceus -#define SPECIES_ARCEUS_FIGHTING FORMS_START + 168 -#define SPECIES_ARCEUS_FLYING FORMS_START + 169 -#define SPECIES_ARCEUS_POISON FORMS_START + 170 -#define SPECIES_ARCEUS_GROUND FORMS_START + 171 -#define SPECIES_ARCEUS_ROCK FORMS_START + 172 -#define SPECIES_ARCEUS_BUG FORMS_START + 173 -#define SPECIES_ARCEUS_GHOST FORMS_START + 174 -#define SPECIES_ARCEUS_STEEL FORMS_START + 175 -#define SPECIES_ARCEUS_FIRE FORMS_START + 176 -#define SPECIES_ARCEUS_WATER FORMS_START + 177 -#define SPECIES_ARCEUS_GRASS FORMS_START + 178 -#define SPECIES_ARCEUS_ELECTRIC FORMS_START + 179 -#define SPECIES_ARCEUS_PSYCHIC FORMS_START + 180 -#define SPECIES_ARCEUS_ICE FORMS_START + 181 -#define SPECIES_ARCEUS_DRAGON FORMS_START + 182 -#define SPECIES_ARCEUS_DARK FORMS_START + 183 -#define SPECIES_ARCEUS_FAIRY FORMS_START + 184 +#define SPECIES_ARCEUS_FIGHTING FORMS_START + 168 +#define SPECIES_ARCEUS_FLYING FORMS_START + 169 +#define SPECIES_ARCEUS_POISON FORMS_START + 170 +#define SPECIES_ARCEUS_GROUND FORMS_START + 171 +#define SPECIES_ARCEUS_ROCK FORMS_START + 172 +#define SPECIES_ARCEUS_BUG FORMS_START + 173 +#define SPECIES_ARCEUS_GHOST FORMS_START + 174 +#define SPECIES_ARCEUS_STEEL FORMS_START + 175 +#define SPECIES_ARCEUS_FIRE FORMS_START + 176 +#define SPECIES_ARCEUS_WATER FORMS_START + 177 +#define SPECIES_ARCEUS_GRASS FORMS_START + 178 +#define SPECIES_ARCEUS_ELECTRIC FORMS_START + 179 +#define SPECIES_ARCEUS_PSYCHIC FORMS_START + 180 +#define SPECIES_ARCEUS_ICE FORMS_START + 181 +#define SPECIES_ARCEUS_DRAGON FORMS_START + 182 +#define SPECIES_ARCEUS_DARK FORMS_START + 183 +#define SPECIES_ARCEUS_FAIRY FORMS_START + 184 // Basculin -#define SPECIES_BASCULIN_BLUE_STRIPED FORMS_START + 185 -#define SPECIES_BASCULIN_WHITE_STRIPED FORMS_START + 186 +#define SPECIES_BASCULIN_BLUE_STRIPED FORMS_START + 185 +#define SPECIES_BASCULIN_WHITE_STRIPED FORMS_START + 186 // Darmanitan -#define SPECIES_DARMANITAN_ZEN_MODE FORMS_START + 187 -#define SPECIES_DARMANITAN_GALARIAN_ZEN_MODE FORMS_START + 188 +#define SPECIES_DARMANITAN_ZEN_MODE FORMS_START + 187 +#define SPECIES_DARMANITAN_GALARIAN_ZEN_MODE FORMS_START + 188 // Deerling -#define SPECIES_DEERLING_SUMMER FORMS_START + 189 -#define SPECIES_DEERLING_AUTUMN FORMS_START + 190 -#define SPECIES_DEERLING_WINTER FORMS_START + 191 +#define SPECIES_DEERLING_SUMMER FORMS_START + 189 +#define SPECIES_DEERLING_AUTUMN FORMS_START + 190 +#define SPECIES_DEERLING_WINTER FORMS_START + 191 // Sawsbuck -#define SPECIES_SAWSBUCK_SUMMER FORMS_START + 192 -#define SPECIES_SAWSBUCK_AUTUMN FORMS_START + 193 -#define SPECIES_SAWSBUCK_WINTER FORMS_START + 194 +#define SPECIES_SAWSBUCK_SUMMER FORMS_START + 192 +#define SPECIES_SAWSBUCK_AUTUMN FORMS_START + 193 +#define SPECIES_SAWSBUCK_WINTER FORMS_START + 194 // Therian Forms -#define SPECIES_TORNADUS_THERIAN FORMS_START + 195 -#define SPECIES_THUNDURUS_THERIAN FORMS_START + 196 -#define SPECIES_LANDORUS_THERIAN FORMS_START + 197 -#define SPECIES_ENAMORUS_THERIAN FORMS_START + 198 +#define SPECIES_TORNADUS_THERIAN FORMS_START + 195 +#define SPECIES_THUNDURUS_THERIAN FORMS_START + 196 +#define SPECIES_LANDORUS_THERIAN FORMS_START + 197 +#define SPECIES_ENAMORUS_THERIAN FORMS_START + 198 // Kyurem -#define SPECIES_KYUREM_WHITE FORMS_START + 199 -#define SPECIES_KYUREM_BLACK FORMS_START + 200 +#define SPECIES_KYUREM_WHITE FORMS_START + 199 +#define SPECIES_KYUREM_BLACK FORMS_START + 200 // Keldeo -#define SPECIES_KELDEO_RESOLUTE FORMS_START + 201 +#define SPECIES_KELDEO_RESOLUTE FORMS_START + 201 // Meloetta -#define SPECIES_MELOETTA_PIROUETTE FORMS_START + 202 +#define SPECIES_MELOETTA_PIROUETTE FORMS_START + 202 // Genesect -#define SPECIES_GENESECT_DOUSE_DRIVE FORMS_START + 203 -#define SPECIES_GENESECT_SHOCK_DRIVE FORMS_START + 204 -#define SPECIES_GENESECT_BURN_DRIVE FORMS_START + 205 -#define SPECIES_GENESECT_CHILL_DRIVE FORMS_START + 206 +#define SPECIES_GENESECT_DOUSE_DRIVE FORMS_START + 203 +#define SPECIES_GENESECT_SHOCK_DRIVE FORMS_START + 204 +#define SPECIES_GENESECT_BURN_DRIVE FORMS_START + 205 +#define SPECIES_GENESECT_CHILL_DRIVE FORMS_START + 206 // Greninja -#define SPECIES_GRENINJA_BATTLE_BOND FORMS_START + 207 -#define SPECIES_GRENINJA_ASH FORMS_START + 208 +#define SPECIES_GRENINJA_BATTLE_BOND FORMS_START + 207 +#define SPECIES_GRENINJA_ASH FORMS_START + 208 // Vivillon -#define SPECIES_VIVILLON_POLAR FORMS_START + 209 -#define SPECIES_VIVILLON_TUNDRA FORMS_START + 210 -#define SPECIES_VIVILLON_CONTINENTAL FORMS_START + 211 -#define SPECIES_VIVILLON_GARDEN FORMS_START + 212 -#define SPECIES_VIVILLON_ELEGANT FORMS_START + 213 -#define SPECIES_VIVILLON_MEADOW FORMS_START + 214 -#define SPECIES_VIVILLON_MODERN FORMS_START + 215 -#define SPECIES_VIVILLON_MARINE FORMS_START + 216 -#define SPECIES_VIVILLON_ARCHIPELAGO FORMS_START + 217 -#define SPECIES_VIVILLON_HIGH_PLAINS FORMS_START + 218 -#define SPECIES_VIVILLON_SANDSTORM FORMS_START + 219 -#define SPECIES_VIVILLON_RIVER FORMS_START + 220 -#define SPECIES_VIVILLON_MONSOON FORMS_START + 221 -#define SPECIES_VIVILLON_SAVANNA FORMS_START + 222 -#define SPECIES_VIVILLON_SUN FORMS_START + 223 -#define SPECIES_VIVILLON_OCEAN FORMS_START + 224 -#define SPECIES_VIVILLON_JUNGLE FORMS_START + 225 -#define SPECIES_VIVILLON_FANCY FORMS_START + 226 -#define SPECIES_VIVILLON_POKE_BALL FORMS_START + 227 +#define SPECIES_VIVILLON_POLAR FORMS_START + 209 +#define SPECIES_VIVILLON_TUNDRA FORMS_START + 210 +#define SPECIES_VIVILLON_CONTINENTAL FORMS_START + 211 +#define SPECIES_VIVILLON_GARDEN FORMS_START + 212 +#define SPECIES_VIVILLON_ELEGANT FORMS_START + 213 +#define SPECIES_VIVILLON_MEADOW FORMS_START + 214 +#define SPECIES_VIVILLON_MODERN FORMS_START + 215 +#define SPECIES_VIVILLON_MARINE FORMS_START + 216 +#define SPECIES_VIVILLON_ARCHIPELAGO FORMS_START + 217 +#define SPECIES_VIVILLON_HIGH_PLAINS FORMS_START + 218 +#define SPECIES_VIVILLON_SANDSTORM FORMS_START + 219 +#define SPECIES_VIVILLON_RIVER FORMS_START + 220 +#define SPECIES_VIVILLON_MONSOON FORMS_START + 221 +#define SPECIES_VIVILLON_SAVANNA FORMS_START + 222 +#define SPECIES_VIVILLON_SUN FORMS_START + 223 +#define SPECIES_VIVILLON_OCEAN FORMS_START + 224 +#define SPECIES_VIVILLON_JUNGLE FORMS_START + 225 +#define SPECIES_VIVILLON_FANCY FORMS_START + 226 +#define SPECIES_VIVILLON_POKE_BALL FORMS_START + 227 // Flabébé -#define SPECIES_FLABEBE_YELLOW_FLOWER FORMS_START + 228 -#define SPECIES_FLABEBE_ORANGE_FLOWER FORMS_START + 229 -#define SPECIES_FLABEBE_BLUE_FLOWER FORMS_START + 230 -#define SPECIES_FLABEBE_WHITE_FLOWER FORMS_START + 231 +#define SPECIES_FLABEBE_YELLOW_FLOWER FORMS_START + 228 +#define SPECIES_FLABEBE_ORANGE_FLOWER FORMS_START + 229 +#define SPECIES_FLABEBE_BLUE_FLOWER FORMS_START + 230 +#define SPECIES_FLABEBE_WHITE_FLOWER FORMS_START + 231 // Floette -#define SPECIES_FLOETTE_YELLOW_FLOWER FORMS_START + 232 -#define SPECIES_FLOETTE_ORANGE_FLOWER FORMS_START + 233 -#define SPECIES_FLOETTE_BLUE_FLOWER FORMS_START + 234 -#define SPECIES_FLOETTE_WHITE_FLOWER FORMS_START + 235 -#define SPECIES_FLOETTE_ETERNAL_FLOWER FORMS_START + 236 +#define SPECIES_FLOETTE_YELLOW_FLOWER FORMS_START + 232 +#define SPECIES_FLOETTE_ORANGE_FLOWER FORMS_START + 233 +#define SPECIES_FLOETTE_BLUE_FLOWER FORMS_START + 234 +#define SPECIES_FLOETTE_WHITE_FLOWER FORMS_START + 235 +#define SPECIES_FLOETTE_ETERNAL_FLOWER FORMS_START + 236 // Florges -#define SPECIES_FLORGES_YELLOW_FLOWER FORMS_START + 237 -#define SPECIES_FLORGES_ORANGE_FLOWER FORMS_START + 238 -#define SPECIES_FLORGES_BLUE_FLOWER FORMS_START + 239 -#define SPECIES_FLORGES_WHITE_FLOWER FORMS_START + 240 +#define SPECIES_FLORGES_YELLOW_FLOWER FORMS_START + 237 +#define SPECIES_FLORGES_ORANGE_FLOWER FORMS_START + 238 +#define SPECIES_FLORGES_BLUE_FLOWER FORMS_START + 239 +#define SPECIES_FLORGES_WHITE_FLOWER FORMS_START + 240 // Furfrou -#define SPECIES_FURFROU_HEART_TRIM FORMS_START + 241 -#define SPECIES_FURFROU_STAR_TRIM FORMS_START + 242 -#define SPECIES_FURFROU_DIAMOND_TRIM FORMS_START + 243 -#define SPECIES_FURFROU_DEBUTANTE_TRIM FORMS_START + 244 -#define SPECIES_FURFROU_MATRON_TRIM FORMS_START + 245 -#define SPECIES_FURFROU_DANDY_TRIM FORMS_START + 246 -#define SPECIES_FURFROU_LA_REINE_TRIM FORMS_START + 247 -#define SPECIES_FURFROU_KABUKI_TRIM FORMS_START + 248 -#define SPECIES_FURFROU_PHARAOH_TRIM FORMS_START + 249 +#define SPECIES_FURFROU_HEART_TRIM FORMS_START + 241 +#define SPECIES_FURFROU_STAR_TRIM FORMS_START + 242 +#define SPECIES_FURFROU_DIAMOND_TRIM FORMS_START + 243 +#define SPECIES_FURFROU_DEBUTANTE_TRIM FORMS_START + 244 +#define SPECIES_FURFROU_MATRON_TRIM FORMS_START + 245 +#define SPECIES_FURFROU_DANDY_TRIM FORMS_START + 246 +#define SPECIES_FURFROU_LA_REINE_TRIM FORMS_START + 247 +#define SPECIES_FURFROU_KABUKI_TRIM FORMS_START + 248 +#define SPECIES_FURFROU_PHARAOH_TRIM FORMS_START + 249 // Meowstic -#define SPECIES_MEOWSTIC_FEMALE FORMS_START + 250 +#define SPECIES_MEOWSTIC_FEMALE FORMS_START + 250 // Aegislash -#define SPECIES_AEGISLASH_BLADE FORMS_START + 251 +#define SPECIES_AEGISLASH_BLADE FORMS_START + 251 // Pumpkaboo -#define SPECIES_PUMPKABOO_SMALL FORMS_START + 252 -#define SPECIES_PUMPKABOO_LARGE FORMS_START + 253 -#define SPECIES_PUMPKABOO_SUPER FORMS_START + 254 +#define SPECIES_PUMPKABOO_SMALL FORMS_START + 252 +#define SPECIES_PUMPKABOO_LARGE FORMS_START + 253 +#define SPECIES_PUMPKABOO_SUPER FORMS_START + 254 // Gourgeist -#define SPECIES_GOURGEIST_SMALL FORMS_START + 255 -#define SPECIES_GOURGEIST_LARGE FORMS_START + 256 -#define SPECIES_GOURGEIST_SUPER FORMS_START + 257 +#define SPECIES_GOURGEIST_SMALL FORMS_START + 255 +#define SPECIES_GOURGEIST_LARGE FORMS_START + 256 +#define SPECIES_GOURGEIST_SUPER FORMS_START + 257 // Xerneas -#define SPECIES_XERNEAS_ACTIVE FORMS_START + 258 +#define SPECIES_XERNEAS_ACTIVE FORMS_START + 258 // Zygarde -#define SPECIES_ZYGARDE_10 SPECIES_ZYGARDE_10_AURA_BREAK -#define SPECIES_ZYGARDE_10_AURA_BREAK FORMS_START + 259 -#define SPECIES_ZYGARDE_10_POWER_CONSTRUCT FORMS_START + 260 -#define SPECIES_ZYGARDE_50_POWER_CONSTRUCT FORMS_START + 261 -#define SPECIES_ZYGARDE_COMPLETE FORMS_START + 262 +#define SPECIES_ZYGARDE_10 SPECIES_ZYGARDE_10_AURA_BREAK +#define SPECIES_ZYGARDE_10_AURA_BREAK FORMS_START + 259 +#define SPECIES_ZYGARDE_10_POWER_CONSTRUCT FORMS_START + 260 +#define SPECIES_ZYGARDE_50_POWER_CONSTRUCT FORMS_START + 261 +#define SPECIES_ZYGARDE_COMPLETE FORMS_START + 262 // Hoopa -#define SPECIES_HOOPA_UNBOUND FORMS_START + 263 +#define SPECIES_HOOPA_UNBOUND FORMS_START + 263 // Oricorio -#define SPECIES_ORICORIO_POM_POM FORMS_START + 264 -#define SPECIES_ORICORIO_PAU FORMS_START + 265 -#define SPECIES_ORICORIO_SENSU FORMS_START + 266 +#define SPECIES_ORICORIO_POM_POM FORMS_START + 264 +#define SPECIES_ORICORIO_PAU FORMS_START + 265 +#define SPECIES_ORICORIO_SENSU FORMS_START + 266 // Rockruff -#define SPECIES_ROCKRUFF_OWN_TEMPO FORMS_START + 267 +#define SPECIES_ROCKRUFF_OWN_TEMPO FORMS_START + 267 // Lycanroc -#define SPECIES_LYCANROC_MIDNIGHT FORMS_START + 268 -#define SPECIES_LYCANROC_DUSK FORMS_START + 269 +#define SPECIES_LYCANROC_MIDNIGHT FORMS_START + 268 +#define SPECIES_LYCANROC_DUSK FORMS_START + 269 // Wishiwashi -#define SPECIES_WISHIWASHI_SCHOOL FORMS_START + 270 +#define SPECIES_WISHIWASHI_SCHOOL FORMS_START + 270 // Silvally -#define SPECIES_SILVALLY_FIGHTING FORMS_START + 271 -#define SPECIES_SILVALLY_FLYING FORMS_START + 272 -#define SPECIES_SILVALLY_POISON FORMS_START + 273 -#define SPECIES_SILVALLY_GROUND FORMS_START + 274 -#define SPECIES_SILVALLY_ROCK FORMS_START + 275 -#define SPECIES_SILVALLY_BUG FORMS_START + 276 -#define SPECIES_SILVALLY_GHOST FORMS_START + 277 -#define SPECIES_SILVALLY_STEEL FORMS_START + 278 -#define SPECIES_SILVALLY_FIRE FORMS_START + 279 -#define SPECIES_SILVALLY_WATER FORMS_START + 280 -#define SPECIES_SILVALLY_GRASS FORMS_START + 281 -#define SPECIES_SILVALLY_ELECTRIC FORMS_START + 282 -#define SPECIES_SILVALLY_PSYCHIC FORMS_START + 283 -#define SPECIES_SILVALLY_ICE FORMS_START + 284 -#define SPECIES_SILVALLY_DRAGON FORMS_START + 285 -#define SPECIES_SILVALLY_DARK FORMS_START + 286 -#define SPECIES_SILVALLY_FAIRY FORMS_START + 287 +#define SPECIES_SILVALLY_FIGHTING FORMS_START + 271 +#define SPECIES_SILVALLY_FLYING FORMS_START + 272 +#define SPECIES_SILVALLY_POISON FORMS_START + 273 +#define SPECIES_SILVALLY_GROUND FORMS_START + 274 +#define SPECIES_SILVALLY_ROCK FORMS_START + 275 +#define SPECIES_SILVALLY_BUG FORMS_START + 276 +#define SPECIES_SILVALLY_GHOST FORMS_START + 277 +#define SPECIES_SILVALLY_STEEL FORMS_START + 278 +#define SPECIES_SILVALLY_FIRE FORMS_START + 279 +#define SPECIES_SILVALLY_WATER FORMS_START + 280 +#define SPECIES_SILVALLY_GRASS FORMS_START + 281 +#define SPECIES_SILVALLY_ELECTRIC FORMS_START + 282 +#define SPECIES_SILVALLY_PSYCHIC FORMS_START + 283 +#define SPECIES_SILVALLY_ICE FORMS_START + 284 +#define SPECIES_SILVALLY_DRAGON FORMS_START + 285 +#define SPECIES_SILVALLY_DARK FORMS_START + 286 +#define SPECIES_SILVALLY_FAIRY FORMS_START + 287 // Minior -#define SPECIES_MINIOR_METEOR_ORANGE FORMS_START + 288 -#define SPECIES_MINIOR_METEOR_YELLOW FORMS_START + 289 -#define SPECIES_MINIOR_METEOR_GREEN FORMS_START + 290 -#define SPECIES_MINIOR_METEOR_BLUE FORMS_START + 291 -#define SPECIES_MINIOR_METEOR_INDIGO FORMS_START + 292 -#define SPECIES_MINIOR_METEOR_VIOLET FORMS_START + 293 -#define SPECIES_MINIOR_CORE SPECIES_MINIOR_CORE_RED -#define SPECIES_MINIOR_CORE_RED FORMS_START + 294 -#define SPECIES_MINIOR_CORE_ORANGE FORMS_START + 295 -#define SPECIES_MINIOR_CORE_YELLOW FORMS_START + 296 -#define SPECIES_MINIOR_CORE_GREEN FORMS_START + 297 -#define SPECIES_MINIOR_CORE_BLUE FORMS_START + 298 -#define SPECIES_MINIOR_CORE_INDIGO FORMS_START + 299 -#define SPECIES_MINIOR_CORE_VIOLET FORMS_START + 300 +#define SPECIES_MINIOR_METEOR_ORANGE FORMS_START + 288 +#define SPECIES_MINIOR_METEOR_YELLOW FORMS_START + 289 +#define SPECIES_MINIOR_METEOR_GREEN FORMS_START + 290 +#define SPECIES_MINIOR_METEOR_BLUE FORMS_START + 291 +#define SPECIES_MINIOR_METEOR_INDIGO FORMS_START + 292 +#define SPECIES_MINIOR_METEOR_VIOLET FORMS_START + 293 +#define SPECIES_MINIOR_CORE SPECIES_MINIOR_CORE_RED +#define SPECIES_MINIOR_CORE_RED FORMS_START + 294 +#define SPECIES_MINIOR_CORE_ORANGE FORMS_START + 295 +#define SPECIES_MINIOR_CORE_YELLOW FORMS_START + 296 +#define SPECIES_MINIOR_CORE_GREEN FORMS_START + 297 +#define SPECIES_MINIOR_CORE_BLUE FORMS_START + 298 +#define SPECIES_MINIOR_CORE_INDIGO FORMS_START + 299 +#define SPECIES_MINIOR_CORE_VIOLET FORMS_START + 300 // Mimikyu -#define SPECIES_MIMIKYU_BUSTED FORMS_START + 301 +#define SPECIES_MIMIKYU_BUSTED FORMS_START + 301 // Necrozma -#define SPECIES_NECROZMA_DUSK_MANE FORMS_START + 302 -#define SPECIES_NECROZMA_DAWN_WINGS FORMS_START + 303 -#define SPECIES_NECROZMA_ULTRA FORMS_START + 304 +#define SPECIES_NECROZMA_DUSK_MANE FORMS_START + 302 +#define SPECIES_NECROZMA_DAWN_WINGS FORMS_START + 303 +#define SPECIES_NECROZMA_ULTRA FORMS_START + 304 // Magearna -#define SPECIES_MAGEARNA_ORIGINAL_COLOR FORMS_START + 305 +#define SPECIES_MAGEARNA_ORIGINAL_COLOR FORMS_START + 305 // Cramorant -#define SPECIES_CRAMORANT_GULPING FORMS_START + 306 -#define SPECIES_CRAMORANT_GORGING FORMS_START + 307 +#define SPECIES_CRAMORANT_GULPING FORMS_START + 306 +#define SPECIES_CRAMORANT_GORGING FORMS_START + 307 // Toxtricity -#define SPECIES_TOXTRICITY_LOW_KEY FORMS_START + 308 +#define SPECIES_TOXTRICITY_LOW_KEY FORMS_START + 308 // Sinistea -#define SPECIES_SINISTEA_ANTIQUE FORMS_START + 309 +#define SPECIES_SINISTEA_ANTIQUE FORMS_START + 309 // Polteageist -#define SPECIES_POLTEAGEIST_ANTIQUE FORMS_START + 310 +#define SPECIES_POLTEAGEIST_ANTIQUE FORMS_START + 310 // Alcremie -#define SPECIES_ALCREMIE_RUBY_CREAM SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM -#define SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM FORMS_START + 311 -#define SPECIES_ALCREMIE_MATCHA_CREAM SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM -#define SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM FORMS_START + 312 -#define SPECIES_ALCREMIE_MINT_CREAM SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM -#define SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM FORMS_START + 313 -#define SPECIES_ALCREMIE_LEMON_CREAM SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM -#define SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM FORMS_START + 314 -#define SPECIES_ALCREMIE_SALTED_CREAM SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM -#define SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM FORMS_START + 315 -#define SPECIES_ALCREMIE_RUBY_SWIRL SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL -#define SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL FORMS_START + 316 -#define SPECIES_ALCREMIE_CARAMEL_SWIRL SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL -#define SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL FORMS_START + 317 -#define SPECIES_ALCREMIE_RAINBOW_SWIRL SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL -#define SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL FORMS_START + 318 +#define SPECIES_ALCREMIE_RUBY_CREAM SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM +#define SPECIES_ALCREMIE_MATCHA_CREAM SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM +#define SPECIES_ALCREMIE_MINT_CREAM SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM +#define SPECIES_ALCREMIE_LEMON_CREAM SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM +#define SPECIES_ALCREMIE_SALTED_CREAM SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM +#define SPECIES_ALCREMIE_RUBY_SWIRL SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL +#define SPECIES_ALCREMIE_CARAMEL_SWIRL SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL +#define SPECIES_ALCREMIE_RAINBOW_SWIRL SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL +#define SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM FORMS_START + 311 +#define SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM FORMS_START + 312 +#define SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM FORMS_START + 313 +#define SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM FORMS_START + 314 +#define SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM FORMS_START + 315 +#define SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL FORMS_START + 316 +#define SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL FORMS_START + 317 +#define SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL FORMS_START + 318 // Eiscue -#define SPECIES_EISCUE_NOICE_FACE FORMS_START + 319 +#define SPECIES_EISCUE_NOICE_FACE FORMS_START + 319 // Indeedee -#define SPECIES_INDEEDEE_FEMALE FORMS_START + 320 +#define SPECIES_INDEEDEE_FEMALE FORMS_START + 320 // Morpeko -#define SPECIES_MORPEKO_HANGRY FORMS_START + 321 +#define SPECIES_MORPEKO_HANGRY FORMS_START + 321 // Zacian -#define SPECIES_ZACIAN_CROWNED_SWORD FORMS_START + 322 +#define SPECIES_ZACIAN_CROWNED_SWORD FORMS_START + 322 // Zamazenta -#define SPECIES_ZAMAZENTA_CROWNED_SHIELD FORMS_START + 323 +#define SPECIES_ZAMAZENTA_CROWNED_SHIELD FORMS_START + 323 // Eternatus -#define SPECIES_ETERNATUS_ETERNAMAX FORMS_START + 324 +#define SPECIES_ETERNATUS_ETERNAMAX FORMS_START + 324 // Urshifu -#define SPECIES_URSHIFU_RAPID_STRIKE_STYLE FORMS_START + 325 +#define SPECIES_URSHIFU_RAPID_STRIKE_STYLE FORMS_START + 325 // Zarude -#define SPECIES_ZARUDE_DADA FORMS_START + 326 +#define SPECIES_ZARUDE_DADA FORMS_START + 326 // Calyrex -#define SPECIES_CALYREX_ICE_RIDER FORMS_START + 327 -#define SPECIES_CALYREX_SHADOW_RIDER FORMS_START + 328 +#define SPECIES_CALYREX_ICE_RIDER FORMS_START + 327 +#define SPECIES_CALYREX_SHADOW_RIDER FORMS_START + 328 // Basculegion -#define SPECIES_BASCULEGION_FEMALE FORMS_START + 329 +#define SPECIES_BASCULEGION_FEMALE FORMS_START + 329 + +// More Alcremie +#define SPECIES_ALCREMIE_BERRY SPECIES_ALCREMIE_BERRY_VANILLA_CREAM +#define SPECIES_ALCREMIE_BERRY_VANILLA_CREAM FORMS_START + 330 +#define SPECIES_ALCREMIE_BERRY_RUBY_CREAM FORMS_START + 331 +#define SPECIES_ALCREMIE_BERRY_MATCHA_CREAM FORMS_START + 332 +#define SPECIES_ALCREMIE_BERRY_MINT_CREAM FORMS_START + 333 +#define SPECIES_ALCREMIE_BERRY_LEMON_CREAM FORMS_START + 334 +#define SPECIES_ALCREMIE_BERRY_SALTED_CREAM FORMS_START + 335 +#define SPECIES_ALCREMIE_BERRY_RUBY_SWIRL FORMS_START + 336 +#define SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL FORMS_START + 337 +#define SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL FORMS_START + 338 +#define SPECIES_ALCREMIE_LOVE SPECIES_ALCREMIE_LOVE_VANILLA_CREAM +#define SPECIES_ALCREMIE_LOVE_VANILLA_CREAM FORMS_START + 339 +#define SPECIES_ALCREMIE_LOVE_RUBY_CREAM FORMS_START + 340 +#define SPECIES_ALCREMIE_LOVE_MATCHA_CREAM FORMS_START + 341 +#define SPECIES_ALCREMIE_LOVE_MINT_CREAM FORMS_START + 342 +#define SPECIES_ALCREMIE_LOVE_LEMON_CREAM FORMS_START + 343 +#define SPECIES_ALCREMIE_LOVE_SALTED_CREAM FORMS_START + 344 +#define SPECIES_ALCREMIE_LOVE_RUBY_SWIRL FORMS_START + 345 +#define SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL FORMS_START + 346 +#define SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL FORMS_START + 347 +#define SPECIES_ALCREMIE_STAR SPECIES_ALCREMIE_STAR_VANILLA_CREAM +#define SPECIES_ALCREMIE_STAR_VANILLA_CREAM FORMS_START + 348 +#define SPECIES_ALCREMIE_STAR_RUBY_CREAM FORMS_START + 349 +#define SPECIES_ALCREMIE_STAR_MATCHA_CREAM FORMS_START + 350 +#define SPECIES_ALCREMIE_STAR_MINT_CREAM FORMS_START + 351 +#define SPECIES_ALCREMIE_STAR_LEMON_CREAM FORMS_START + 352 +#define SPECIES_ALCREMIE_STAR_SALTED_CREAM FORMS_START + 353 +#define SPECIES_ALCREMIE_STAR_RUBY_SWIRL FORMS_START + 354 +#define SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL FORMS_START + 355 +#define SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL FORMS_START + 356 +#define SPECIES_ALCREMIE_CLOVER SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM +#define SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM FORMS_START + 357 +#define SPECIES_ALCREMIE_CLOVER_RUBY_CREAM FORMS_START + 358 +#define SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM FORMS_START + 359 +#define SPECIES_ALCREMIE_CLOVER_MINT_CREAM FORMS_START + 360 +#define SPECIES_ALCREMIE_CLOVER_LEMON_CREAM FORMS_START + 361 +#define SPECIES_ALCREMIE_CLOVER_SALTED_CREAM FORMS_START + 362 +#define SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL FORMS_START + 363 +#define SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL FORMS_START + 364 +#define SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL FORMS_START + 365 +#define SPECIES_ALCREMIE_FLOWER SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM +#define SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM FORMS_START + 366 +#define SPECIES_ALCREMIE_FLOWER_RUBY_CREAM FORMS_START + 367 +#define SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM FORMS_START + 368 +#define SPECIES_ALCREMIE_FLOWER_MINT_CREAM FORMS_START + 369 +#define SPECIES_ALCREMIE_FLOWER_LEMON_CREAM FORMS_START + 370 +#define SPECIES_ALCREMIE_FLOWER_SALTED_CREAM FORMS_START + 371 +#define SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL FORMS_START + 372 +#define SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL FORMS_START + 373 +#define SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL FORMS_START + 374 +#define SPECIES_ALCREMIE_RIBBON SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM +#define SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM FORMS_START + 375 +#define SPECIES_ALCREMIE_RIBBON_RUBY_CREAM FORMS_START + 376 +#define SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM FORMS_START + 377 +#define SPECIES_ALCREMIE_RIBBON_MINT_CREAM FORMS_START + 378 +#define SPECIES_ALCREMIE_RIBBON_LEMON_CREAM FORMS_START + 379 +#define SPECIES_ALCREMIE_RIBBON_SALTED_CREAM FORMS_START + 380 +#define SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL FORMS_START + 381 +#define SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL FORMS_START + 382 +#define SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL FORMS_START + 383 + +#define GEN9_START SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL + +#define SPECIES_SPRIGATITO GEN9_START + 1 +#define SPECIES_FLORAGATO GEN9_START + 2 +#define SPECIES_MEOWSCARADA GEN9_START + 3 +#define SPECIES_FUECOCO GEN9_START + 4 +#define SPECIES_CROCALOR GEN9_START + 5 +#define SPECIES_SKELEDIRGE GEN9_START + 6 +#define SPECIES_QUAXLY GEN9_START + 7 +#define SPECIES_QUAXWELL GEN9_START + 8 +#define SPECIES_QUAQUAVAL GEN9_START + 9 +#define SPECIES_LECHONK GEN9_START + 10 +#define SPECIES_OINKOLOGNE SPECIES_OINKOLOGNE_MALE +#define SPECIES_OINKOLOGNE_MALE GEN9_START + 11 +#define SPECIES_OINKOLOGNE_FEMALE GEN9_START + 12 +#define SPECIES_TAROUNTULA GEN9_START + 13 +#define SPECIES_SPIDOPS GEN9_START + 14 +#define SPECIES_NYMBLE GEN9_START + 15 +#define SPECIES_LOKIX GEN9_START + 16 +#define SPECIES_PAWMI GEN9_START + 17 +#define SPECIES_PAWMO GEN9_START + 18 +#define SPECIES_PAWMOT GEN9_START + 19 +#define SPECIES_TANDEMAUS GEN9_START + 20 +#define SPECIES_MAUSHOLD SPECIES_MAUSHOLD_FAMILY_OF_THREE +#define SPECIES_MAUSHOLD_FAMILY_OF_THREE GEN9_START + 21 +#define SPECIES_MAUSHOLD_FAMILY_OF_FOUR GEN9_START + 22 +#define SPECIES_FIDOUGH GEN9_START + 23 +#define SPECIES_DACHSBUN GEN9_START + 24 +#define SPECIES_SMOLIV GEN9_START + 25 +#define SPECIES_DOLLIV GEN9_START + 26 +#define SPECIES_ARBOLIVA GEN9_START + 27 +#define SPECIES_SQUAWKABILLY SPECIES_SQUAWKABILLY_GREEN_PLUMAGE +#define SPECIES_SQUAWKABILLY_GREEN_PLUMAGE GEN9_START + 28 +#define SPECIES_SQUAWKABILLY_BLUE_PLUMAGE GEN9_START + 29 +#define SPECIES_SQUAWKABILLY_YELLOW_PLUMAGE GEN9_START + 30 +#define SPECIES_SQUAWKABILLY_WHITE_PLUMAGE GEN9_START + 31 +#define SPECIES_NACLI GEN9_START + 32 +#define SPECIES_NACLSTACK GEN9_START + 33 +#define SPECIES_GARGANACL GEN9_START + 34 +#define SPECIES_CHARCADET GEN9_START + 35 +#define SPECIES_ARMAROUGE GEN9_START + 36 +#define SPECIES_CERULEDGE GEN9_START + 37 +#define SPECIES_TADBULB GEN9_START + 38 +#define SPECIES_BELLIBOLT GEN9_START + 39 +#define SPECIES_WATTREL GEN9_START + 40 +#define SPECIES_KILOWATTREL GEN9_START + 41 +#define SPECIES_MASCHIFF GEN9_START + 42 +#define SPECIES_MABOSSTIFF GEN9_START + 43 +#define SPECIES_SHROODLE GEN9_START + 44 +#define SPECIES_GRAFAIAI GEN9_START + 45 +#define SPECIES_BRAMBLIN GEN9_START + 46 +#define SPECIES_BRAMBLEGHAST GEN9_START + 47 +#define SPECIES_TOEDSCOOL GEN9_START + 48 +#define SPECIES_TOEDSCRUEL GEN9_START + 49 +#define SPECIES_KLAWF GEN9_START + 50 +#define SPECIES_CAPSAKID GEN9_START + 51 +#define SPECIES_SCOVILLAIN GEN9_START + 52 +#define SPECIES_RELLOR GEN9_START + 53 +#define SPECIES_RABSCA GEN9_START + 54 +#define SPECIES_FLITTLE GEN9_START + 55 +#define SPECIES_ESPATHRA GEN9_START + 56 +#define SPECIES_TINKATINK GEN9_START + 57 +#define SPECIES_TINKATUFF GEN9_START + 58 +#define SPECIES_TINKATON GEN9_START + 59 +#define SPECIES_WIGLETT GEN9_START + 60 +#define SPECIES_WUGTRIO GEN9_START + 61 +#define SPECIES_BOMBIRDIER GEN9_START + 62 +#define SPECIES_FINIZEN GEN9_START + 63 +#define SPECIES_PALAFIN SPECIES_PALAFIN_ZERO +#define SPECIES_PALAFIN_ZERO GEN9_START + 64 +#define SPECIES_PALAFIN_HERO GEN9_START + 65 +#define SPECIES_VAROOM GEN9_START + 66 +#define SPECIES_REVAVROOM GEN9_START + 67 +#define SPECIES_CYCLIZAR GEN9_START + 68 +#define SPECIES_ORTHWORM GEN9_START + 69 +#define SPECIES_GLIMMET GEN9_START + 70 +#define SPECIES_GLIMMORA GEN9_START + 71 +#define SPECIES_GREAVARD GEN9_START + 72 +#define SPECIES_HOUNDSTONE GEN9_START + 73 +#define SPECIES_FLAMIGO GEN9_START + 74 +#define SPECIES_CETODDLE GEN9_START + 75 +#define SPECIES_CETITAN GEN9_START + 76 +#define SPECIES_VELUZA GEN9_START + 77 +#define SPECIES_DONDOZO GEN9_START + 78 +#define SPECIES_TATSUGIRI SPECIES_TATSUGIRI_CURLY +#define SPECIES_TATSUGIRI_CURLY GEN9_START + 79 +#define SPECIES_TATSUGIRI_DROOPY GEN9_START + 80 +#define SPECIES_TATSUGIRI_STRETCHY GEN9_START + 81 +#define SPECIES_ANNIHILAPE GEN9_START + 82 +#define SPECIES_CLODSIRE GEN9_START + 83 +#define SPECIES_FARIGIRAF GEN9_START + 84 +#define SPECIES_DUDUNSPARCE SPECIES_DUDUNSPARCE_TWO_SEGMENT +#define SPECIES_DUDUNSPARCE_TWO_SEGMENT GEN9_START + 85 +#define SPECIES_DUDUNSPARCE_THREE_SEGMENT GEN9_START + 86 +#define SPECIES_KINGAMBIT GEN9_START + 87 +#define SPECIES_GREAT_TUSK GEN9_START + 88 +#define SPECIES_SCREAM_TAIL GEN9_START + 89 +#define SPECIES_BRUTE_BONNET GEN9_START + 90 +#define SPECIES_FLUTTER_MANE GEN9_START + 91 +#define SPECIES_SLITHER_WING GEN9_START + 92 +#define SPECIES_SANDY_SHOCKS GEN9_START + 93 +#define SPECIES_IRON_TREADS GEN9_START + 94 +#define SPECIES_IRON_BUNDLE GEN9_START + 95 +#define SPECIES_IRON_HANDS GEN9_START + 96 +#define SPECIES_IRON_JUGULIS GEN9_START + 97 +#define SPECIES_IRON_MOTH GEN9_START + 98 +#define SPECIES_IRON_THORNS GEN9_START + 99 +#define SPECIES_FRIGIBAX GEN9_START + 100 +#define SPECIES_ARCTIBAX GEN9_START + 101 +#define SPECIES_BAXCALIBUR GEN9_START + 102 +#define SPECIES_GIMMIGHOUL SPECIES_GIMMIGHOUL_CHEST +#define SPECIES_GIMMIGHOUL_CHEST GEN9_START + 103 +#define SPECIES_GIMMIGHOUL_ROAMING GEN9_START + 104 +#define SPECIES_GHOLDENGO GEN9_START + 105 +#define SPECIES_WO_CHIEN GEN9_START + 106 +#define SPECIES_CHIEN_PAO GEN9_START + 107 +#define SPECIES_TING_LU GEN9_START + 108 +#define SPECIES_CHI_YU GEN9_START + 109 +#define SPECIES_ROARING_MOON GEN9_START + 110 +#define SPECIES_IRON_VALIANT GEN9_START + 111 +#define SPECIES_KORAIDON GEN9_START + 112 +#define SPECIES_MIRAIDON GEN9_START + 113 +// Paldean Forms +#define SPECIES_TAUROS_PALDEAN_COMBAT_BREED GEN9_START + 114 +#define SPECIES_TAUROS_PALDEAN_BLAZE_BREED GEN9_START + 115 +#define SPECIES_TAUROS_PALDEAN_AQUA_BREED GEN9_START + 116 +#define SPECIES_WOOPER_PALDEAN GEN9_START + 117 +// Scarlet and Violet 1.2.0 +#define SPECIES_WALKING_WAKE GEN9_START + 118 +#define SPECIES_IRON_LEAVES GEN9_START + 119 +// Teal Mask +#define SPECIES_DIPPLIN GEN9_START + 120 +#define SPECIES_POLTCHAGEIST SPECIES_POLTCHAGEIST_COUNTERFEIT +#define SPECIES_POLTCHAGEIST_COUNTERFEIT GEN9_START + 121 +#define SPECIES_POLTCHAGEIST_ARTISAN GEN9_START + 122 +#define SPECIES_SINISTCHA SPECIES_SINISTCHA_UNREMARKABLE +#define SPECIES_SINISTCHA_UNREMARKABLE GEN9_START + 123 +#define SPECIES_SINISTCHA_MASTERPIECE GEN9_START + 124 +#define SPECIES_OKIDOGI GEN9_START + 125 +#define SPECIES_MUNKIDORI GEN9_START + 126 +#define SPECIES_FEZANDIPITI GEN9_START + 127 +#define SPECIES_OGERPON SPECIES_OGERPON_TEAL_MASK +#define SPECIES_OGERPON_TEAL_MASK GEN9_START + 128 +#define SPECIES_OGERPON_WELLSPRING_MASK GEN9_START + 129 +#define SPECIES_OGERPON_HEARTHFLAME_MASK GEN9_START + 130 +#define SPECIES_OGERPON_CORNERSTONE_MASK GEN9_START + 131 +#define SPECIES_OGERPON_TEAL_MASK_TERA GEN9_START + 132 +#define SPECIES_OGERPON_WELLSPRING_MASK_TERA GEN9_START + 133 +#define SPECIES_OGERPON_HEARTHFLAME_MASK_TERA GEN9_START + 134 +#define SPECIES_OGERPON_CORNERSTONE_MASK_TERA GEN9_START + 135 +#define SPECIES_URSALUNA_BLOODMOON GEN9_START + 136 + +#define GIGANTAMAX_START SPECIES_URSALUNA_BLOODMOON // Gigantamax Forms -#define SPECIES_VENUSAUR_GIGANTAMAX FORMS_START + 330 -#define SPECIES_BLASTOISE_GIGANTAMAX FORMS_START + 331 -#define SPECIES_CHARIZARD_GIGANTAMAX FORMS_START + 332 -#define SPECIES_BUTTERFREE_GIGANTAMAX FORMS_START + 333 -#define SPECIES_PIKACHU_GIGANTAMAX FORMS_START + 334 -#define SPECIES_MEOWTH_GIGANTAMAX FORMS_START + 335 -#define SPECIES_MACHAMP_GIGANTAMAX FORMS_START + 336 -#define SPECIES_GENGAR_GIGANTAMAX FORMS_START + 337 -#define SPECIES_KINGLER_GIGANTAMAX FORMS_START + 338 -#define SPECIES_LAPRAS_GIGANTAMAX FORMS_START + 339 -#define SPECIES_EEVEE_GIGANTAMAX FORMS_START + 340 -#define SPECIES_SNORLAX_GIGANTAMAX FORMS_START + 341 -#define SPECIES_GARBODOR_GIGANTAMAX FORMS_START + 342 -#define SPECIES_MELMETAL_GIGANTAMAX FORMS_START + 343 -#define SPECIES_RILLABOOM_GIGANTAMAX FORMS_START + 344 -#define SPECIES_CINDERACE_GIGANTAMAX FORMS_START + 345 -#define SPECIES_INTELEON_GIGANTAMAX FORMS_START + 346 -#define SPECIES_CORVIKNIGHT_GIGANTAMAX FORMS_START + 347 -#define SPECIES_ORBEETLE_GIGANTAMAX FORMS_START + 348 -#define SPECIES_DREDNAW_GIGANTAMAX FORMS_START + 349 -#define SPECIES_COALOSSAL_GIGANTAMAX FORMS_START + 350 -#define SPECIES_FLAPPLE_GIGANTAMAX FORMS_START + 351 -#define SPECIES_APPLETUN_GIGANTAMAX FORMS_START + 352 -#define SPECIES_SANDACONDA_GIGANTAMAX FORMS_START + 353 -#define SPECIES_TOXTRICITY_AMPED_GIGANTAMAX FORMS_START + 354 -#define SPECIES_TOXTRICITY_LOW_KEY_GIGANTAMAX FORMS_START + 355 -#define SPECIES_CENTISKORCH_GIGANTAMAX FORMS_START + 356 -#define SPECIES_HATTERENE_GIGANTAMAX FORMS_START + 357 -#define SPECIES_GRIMMSNARL_GIGANTAMAX FORMS_START + 358 -#define SPECIES_ALCREMIE_GIGANTAMAX FORMS_START + 359 -#define SPECIES_COPPERAJAH_GIGANTAMAX FORMS_START + 360 -#define SPECIES_DURALUDON_GIGANTAMAX FORMS_START + 361 -#define SPECIES_URSHIFU_SINGLE_STRIKE_STYLE_GIGANTAMAX FORMS_START + 362 -#define SPECIES_URSHIFU_RAPID_STRIKE_STYLE_GIGANTAMAX FORMS_START + 363 - -/* -#define SPECIES_ALCREMIE_BERRY SPECIES_ALCREMIE_BERRY_VANILLA_CREAM -#define SPECIES_ALCREMIE_BERRY_VANILLA_CREAM FORMS_START + 363 // Todo -#define SPECIES_ALCREMIE_BERRY_RUBY_CREAM FORMS_START + 364 // Todo -#define SPECIES_ALCREMIE_BERRY_MATCHA_CREAM FORMS_START + 365 // Todo -#define SPECIES_ALCREMIE_BERRY_MINT_CREAM FORMS_START + 366 // Todo -#define SPECIES_ALCREMIE_BERRY_LEMON_CREAM FORMS_START + 367 // Todo -#define SPECIES_ALCREMIE_BERRY_SALTED_CREAM FORMS_START + 368 // Todo -#define SPECIES_ALCREMIE_BERRY_RUBY_SWIRL FORMS_START + 369 // Todo -#define SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL FORMS_START + 370 // Todo -#define SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL FORMS_START + 371 // Todo -#define SPECIES_ALCREMIE_LOVE SPECIES_ALCREMIE_LOVE_VANILLA_CREAM -#define SPECIES_ALCREMIE_LOVE_VANILLA_CREAM FORMS_START + 372 // Todo -#define SPECIES_ALCREMIE_LOVE_RUBY_CREAM FORMS_START + 373 // Todo -#define SPECIES_ALCREMIE_LOVE_MATCHA_CREAM FORMS_START + 374 // Todo -#define SPECIES_ALCREMIE_LOVE_MINT_CREAM FORMS_START + 375 // Todo -#define SPECIES_ALCREMIE_LOVE_LEMON_CREAM FORMS_START + 376 // Todo -#define SPECIES_ALCREMIE_LOVE_SALTED_CREAM FORMS_START + 377 // Todo -#define SPECIES_ALCREMIE_LOVE_RUBY_SWIRL FORMS_START + 378 // Todo -#define SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL FORMS_START + 379 // Todo -#define SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL FORMS_START + 380 // Todo -#define SPECIES_ALCREMIE_STAR SPECIES_ALCREMIE_STAR_VANILLA_CREAM -#define SPECIES_ALCREMIE_STAR_VANILLA_CREAM FORMS_START + 381 // Todo -#define SPECIES_ALCREMIE_STAR_RUBY_CREAM FORMS_START + 382 // Todo -#define SPECIES_ALCREMIE_STAR_MATCHA_CREAM FORMS_START + 383 // Todo -#define SPECIES_ALCREMIE_STAR_MINT_CREAM FORMS_START + 384 // Todo -#define SPECIES_ALCREMIE_STAR_LEMON_CREAM FORMS_START + 385 // Todo -#define SPECIES_ALCREMIE_STAR_SALTED_CREAM FORMS_START + 386 // Todo -#define SPECIES_ALCREMIE_STAR_RUBY_SWIRL FORMS_START + 387 // Todo -#define SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL FORMS_START + 388 // Todo -#define SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL FORMS_START + 389 // Todo -#define SPECIES_ALCREMIE_CLOVER SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM -#define SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM FORMS_START + 390 // Todo -#define SPECIES_ALCREMIE_CLOVER_RUBY_CREAM FORMS_START + 391 // Todo -#define SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM FORMS_START + 392 // Todo -#define SPECIES_ALCREMIE_CLOVER_MINT_CREAM FORMS_START + 393 // Todo -#define SPECIES_ALCREMIE_CLOVER_LEMON_CREAM FORMS_START + 394 // Todo -#define SPECIES_ALCREMIE_CLOVER_SALTED_CREAM FORMS_START + 395 // Todo -#define SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL FORMS_START + 396 // Todo -#define SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL FORMS_START + 397 // Todo -#define SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL FORMS_START + 398 // Todo -#define SPECIES_ALCREMIE_FLOWER SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM -#define SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM FORMS_START + 399 // Todo -#define SPECIES_ALCREMIE_FLOWER_RUBY_CREAM FORMS_START + 400 // Todo -#define SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM FORMS_START + 401 // Todo -#define SPECIES_ALCREMIE_FLOWER_MINT_CREAM FORMS_START + 402 // Todo -#define SPECIES_ALCREMIE_FLOWER_LEMON_CREAM FORMS_START + 403 // Todo -#define SPECIES_ALCREMIE_FLOWER_SALTED_CREAM FORMS_START + 404 // Todo -#define SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL FORMS_START + 405 // Todo -#define SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL FORMS_START + 406 // Todo -#define SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL FORMS_START + 407 // Todo -#define SPECIES_ALCREMIE_RIBBON SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM -#define SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM FORMS_START + 408 // Todo -#define SPECIES_ALCREMIE_RIBBON_RUBY_CREAM FORMS_START + 409 // Todo -#define SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM FORMS_START + 410 // Todo -#define SPECIES_ALCREMIE_RIBBON_MINT_CREAM FORMS_START + 411 // Todo -#define SPECIES_ALCREMIE_RIBBON_LEMON_CREAM FORMS_START + 412 // Todo -#define SPECIES_ALCREMIE_RIBBON_SALTED_CREAM FORMS_START + 413 // Todo -#define SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL FORMS_START + 414 // Todo -#define SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL FORMS_START + 415 // Todo -#define SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL FORMS_START + 416 // Todo -*/ - -#define FORMS_START SPECIES_ENAMORUS +#define SPECIES_VENUSAUR_GIGANTAMAX GIGANTAMAX_START + 1 +#define SPECIES_BLASTOISE_GIGANTAMAX GIGANTAMAX_START + 2 +#define SPECIES_CHARIZARD_GIGANTAMAX GIGANTAMAX_START + 3 +#define SPECIES_BUTTERFREE_GIGANTAMAX GIGANTAMAX_START + 4 +#define SPECIES_PIKACHU_GIGANTAMAX GIGANTAMAX_START + 5 +#define SPECIES_MEOWTH_GIGANTAMAX GIGANTAMAX_START + 6 +#define SPECIES_MACHAMP_GIGANTAMAX GIGANTAMAX_START + 7 +#define SPECIES_GENGAR_GIGANTAMAX GIGANTAMAX_START + 8 +#define SPECIES_KINGLER_GIGANTAMAX GIGANTAMAX_START + 9 +#define SPECIES_LAPRAS_GIGANTAMAX GIGANTAMAX_START + 10 +#define SPECIES_EEVEE_GIGANTAMAX GIGANTAMAX_START + 11 +#define SPECIES_SNORLAX_GIGANTAMAX GIGANTAMAX_START + 12 +#define SPECIES_GARBODOR_GIGANTAMAX GIGANTAMAX_START + 13 +#define SPECIES_MELMETAL_GIGANTAMAX GIGANTAMAX_START + 14 +#define SPECIES_RILLABOOM_GIGANTAMAX GIGANTAMAX_START + 15 +#define SPECIES_CINDERACE_GIGANTAMAX GIGANTAMAX_START + 16 +#define SPECIES_INTELEON_GIGANTAMAX GIGANTAMAX_START + 17 +#define SPECIES_CORVIKNIGHT_GIGANTAMAX GIGANTAMAX_START + 18 +#define SPECIES_ORBEETLE_GIGANTAMAX GIGANTAMAX_START + 19 +#define SPECIES_DREDNAW_GIGANTAMAX GIGANTAMAX_START + 20 +#define SPECIES_COALOSSAL_GIGANTAMAX GIGANTAMAX_START + 21 +#define SPECIES_FLAPPLE_GIGANTAMAX GIGANTAMAX_START + 22 +#define SPECIES_APPLETUN_GIGANTAMAX GIGANTAMAX_START + 23 +#define SPECIES_SANDACONDA_GIGANTAMAX GIGANTAMAX_START + 24 +#define SPECIES_TOXTRICITY_AMPED_GIGANTAMAX GIGANTAMAX_START + 25 +#define SPECIES_TOXTRICITY_LOW_KEY_GIGANTAMAX GIGANTAMAX_START + 26 +#define SPECIES_CENTISKORCH_GIGANTAMAX GIGANTAMAX_START + 27 +#define SPECIES_HATTERENE_GIGANTAMAX GIGANTAMAX_START + 28 +#define SPECIES_GRIMMSNARL_GIGANTAMAX GIGANTAMAX_START + 29 +#define SPECIES_ALCREMIE_GIGANTAMAX GIGANTAMAX_START + 30 +#define SPECIES_COPPERAJAH_GIGANTAMAX GIGANTAMAX_START + 31 +#define SPECIES_DURALUDON_GIGANTAMAX GIGANTAMAX_START + 32 +#define SPECIES_URSHIFU_SINGLE_STRIKE_STYLE_GIGANTAMAX GIGANTAMAX_START + 33 +#define SPECIES_URSHIFU_RAPID_STRIKE_STYLE_GIGANTAMAX GIGANTAMAX_START + 34 + #define SPECIES_EGG SPECIES_URSHIFU_RAPID_STRIKE_STYLE_GIGANTAMAX + 1 #define NUM_SPECIES SPECIES_EGG diff --git a/include/data.h b/include/data.h index df36773550a2..ed8489cccfd9 100644 --- a/include/data.h +++ b/include/data.h @@ -116,16 +116,12 @@ extern const union AffineAnimCmd *const gAffineAnims_BattleSpritePlayerSide[]; extern const union AffineAnimCmd *const gAffineAnims_BattleSpriteOpponentSide[]; extern const union AffineAnimCmd *const gAffineAnims_BattleSpriteContest[]; +extern const union AnimCmd sAnim_GeneralFrame0[]; extern const union AnimCmd *const gAnims_MonPic[]; -extern const struct MonCoords gMonFrontPicCoords[]; -extern const struct MonCoords gMonBackPicCoords[]; -extern const struct CompressedSpriteSheet gMonBackPicTable[]; -extern const struct CompressedSpriteSheet gMonBackPicTableFemale[]; -extern const struct CompressedSpritePalette gMonPaletteTable[]; + extern const struct CompressedSpritePalette gMonFollowerPaletteTable[]; -extern const struct CompressedSpritePalette gMonPaletteTableFemale[]; -extern const struct CompressedSpritePalette gMonShinyPaletteTable[]; -extern const struct CompressedSpritePalette gMonShinyPaletteTableFemale[]; +extern const struct CompressedSpritePalette gMonFollowerShinyPaletteTable[]; + extern const union AnimCmd *const *const gTrainerFrontAnimsPtrTable[]; extern const struct MonCoords gTrainerFrontPicCoords[]; extern const struct CompressedSpriteSheet gTrainerFrontPicTable[]; @@ -135,15 +131,8 @@ extern const struct MonCoords gTrainerBackPicCoords[]; extern const struct CompressedSpriteSheet gTrainerBackPicTable[]; // functionally unused extern const struct CompressedSpritePalette gTrainerBackPicPaletteTable[]; -extern const u8 gEnemyMonElevation[NUM_SPECIES + 1]; - -extern const union AnimCmd *const *const gMonFrontAnimsPtrTable[]; -extern const struct CompressedSpriteSheet gMonFrontPicTable[]; -extern const struct CompressedSpriteSheet gMonFrontPicTableFemale[]; - extern const struct Trainer gTrainers[]; extern const u8 gTrainerClassNames[][13]; -extern const u8 gSpeciesNames[NUM_SPECIES][POKEMON_NAME_LENGTH + 1]; extern const u8 gMoveNames[MOVES_COUNT_DYNAMAX][MOVE_NAME_LENGTH + 1]; extern const u8 *const gZMoveNames[]; extern const u8 *const gMaxMoveNames[]; diff --git a/include/debug.h b/include/debug.h index d89c7994b860..e25392091b16 100644 --- a/include/debug.h +++ b/include/debug.h @@ -2,6 +2,7 @@ #define GUARD_DEBUG_H void Debug_ShowMainMenu(void); +extern const u8 Debug_FlagsAndVarNotSetBattleConfigMessage[]; extern EWRAM_DATA bool8 gIsDebugBattle; extern EWRAM_DATA u32 gDebugAIFlags; diff --git a/include/decompress.h b/include/decompress.h index 1ded221eb47a..9c99d09044ba 100644 --- a/include/decompress.h +++ b/include/decompress.h @@ -13,11 +13,11 @@ void LoadCompressedSpriteSheetOverrideBuffer(const struct CompressedSpriteSheet bool8 LoadCompressedSpriteSheetUsingHeap(const struct CompressedSpriteSheet *src); void LoadCompressedSpritePalette(const struct CompressedSpritePalette *src); +void LoadCompressedSpritePaletteWithTag(const u32 *pal, u16 tag); void LoadCompressedSpritePaletteOverrideBuffer(const struct CompressedSpritePalette *src, void *buffer); bool8 LoadCompressedSpritePaletteUsingHeap(const struct CompressedSpritePalette *src); -void DecompressPicFromTable(const struct CompressedSpriteSheet *src, void *buffer, s32 species); -void DecompressPicFromTableGender(void* buffer, s32 species, u32 personality); +void DecompressPicFromTable(const struct CompressedSpriteSheet *src, void *buffer); void HandleLoadSpecialPokePic(bool32 isFrontPic, void *dest, s32 species, u32 personality); diff --git a/include/event_object_movement.h b/include/event_object_movement.h index 18ae6ce281fa..05e27f68922a 100644 --- a/include/event_object_movement.h +++ b/include/event_object_movement.h @@ -474,4 +474,7 @@ bool32 IsVirtualObjectInvisible(u8 virtualObjId); void SetVirtualObjectSpriteAnim(u8 virtualObjId, u8 animNum); bool32 IsVirtualObjectAnimating(u8 virtualObjId); +bool8 MovementAction_EmoteX_Step0(struct ObjectEvent *, struct Sprite *); +bool8 MovementAction_EmoteDoubleExclamationMark_Step0(struct ObjectEvent *, struct Sprite *); + #endif //GUARD_EVENT_OBJECT_MOVEMENT_H diff --git a/include/event_scripts.h b/include/event_scripts.h index 059e41dc5d22..637c646fb91a 100644 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -649,5 +649,11 @@ extern const u8 EventScript_LostSignal[]; extern const u8 EventScript_TooDark[]; extern const u8 EventScript_MovedTooFast[]; +//VS Seeker +extern const u8 VSSeeker_Text_BatteryNotChargedNeedXSteps[]; +extern const u8 VSSeeker_Text_NoTrainersWithinRange[]; +extern const u8 VSSeeker_Text_TrainersNotReady[]; +extern const u8 EventScript_VsSeekerChargingDone[]; + #endif // GUARD_EVENT_SCRIPTS_H diff --git a/include/field_specials.h b/include/field_specials.h index faf71e9c0877..d36f2686c286 100644 --- a/include/field_specials.h +++ b/include/field_specials.h @@ -31,5 +31,6 @@ bool8 UsedPokemonCenterWarp(void); void ResetFanClub(void); bool8 ShouldShowBoxWasFullMessage(void); void SetPCBoxToSendMon(u8 boxId); +void PreparePartyForSkyBattle(void); #endif // GUARD_FIELD_SPECIALS_H diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index 863241089bbd..acc2bc9c241b 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -255,6 +255,7 @@ enum { PLAYER_AVATAR_STATE_FIELD_MOVE, PLAYER_AVATAR_STATE_FISHING, PLAYER_AVATAR_STATE_WATERING, + PLAYER_AVATAR_STATE_VSSEEKER, }; #define PLAYER_AVATAR_FLAG_ON_FOOT (1 << 0) diff --git a/include/graphics.h b/include/graphics.h index e30194387b8b..06bc3ffb68cb 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -65,3885 +65,6 @@ extern const u32 gOpenPokeballGfx[]; // pokemon gfx extern const u16 gMonIconPalettes[][16]; -extern const u32 gMonFrontPic_CircledQuestionMark[]; -extern const u32 gMonFrontPic_DoubleQuestionMark[]; -extern const u32 gMonFrontPic_Bulbasaur[]; -extern const u32 gMonFrontPic_Ivysaur[]; -extern const u32 gMonFrontPic_Venusaur[]; -extern const u32 gMonFrontPic_VenusaurF[]; -extern const u32 gMonFrontPic_Charmander[]; -extern const u32 gMonFrontPic_Charmeleon[]; -extern const u32 gMonFrontPic_Charizard[]; -extern const u32 gMonFrontPic_Squirtle[]; -extern const u32 gMonFrontPic_Wartortle[]; -extern const u32 gMonFrontPic_Blastoise[]; -extern const u32 gMonFrontPic_Caterpie[]; -extern const u32 gMonFrontPic_Metapod[]; -extern const u32 gMonFrontPic_Butterfree[]; -extern const u32 gMonFrontPic_ButterfreeF[]; -extern const u32 gMonFrontPic_Weedle[]; -extern const u32 gMonFrontPic_Kakuna[]; -extern const u32 gMonFrontPic_Beedrill[]; -extern const u32 gMonFrontPic_Pidgey[]; -extern const u32 gMonFrontPic_Pidgeotto[]; -extern const u32 gMonFrontPic_Pidgeot[]; -extern const u32 gMonFrontPic_Rattata[]; -extern const u32 gMonFrontPic_RattataF[]; -extern const u32 gMonFrontPic_Raticate[]; -extern const u32 gMonFrontPic_RaticateF[]; -extern const u32 gMonFrontPic_Spearow[]; -extern const u32 gMonFrontPic_Fearow[]; -extern const u32 gMonFrontPic_Ekans[]; -extern const u32 gMonFrontPic_Arbok[]; -extern const u32 gMonFrontPic_Pikachu[]; -extern const u32 gMonFrontPic_PikachuF[]; -extern const u32 gMonFrontPic_Raichu[]; -extern const u32 gMonFrontPic_RaichuF[]; -extern const u32 gMonFrontPic_Sandshrew[]; -extern const u32 gMonFrontPic_Sandslash[]; -extern const u32 gMonFrontPic_NidoranF[]; -extern const u32 gMonFrontPic_Nidorina[]; -extern const u32 gMonFrontPic_Nidoqueen[]; -extern const u32 gMonFrontPic_NidoranM[]; -extern const u32 gMonFrontPic_Nidorino[]; -extern const u32 gMonFrontPic_Nidoking[]; -extern const u32 gMonFrontPic_Clefairy[]; -extern const u32 gMonFrontPic_Clefable[]; -extern const u32 gMonFrontPic_Vulpix[]; -extern const u32 gMonFrontPic_Ninetales[]; -extern const u32 gMonFrontPic_Jigglypuff[]; -extern const u32 gMonFrontPic_Wigglytuff[]; -extern const u32 gMonFrontPic_Zubat[]; -extern const u32 gMonFrontPic_ZubatF[]; -extern const u32 gMonFrontPic_Golbat[]; -extern const u32 gMonFrontPic_GolbatF[]; -extern const u32 gMonFrontPic_Oddish[]; -extern const u32 gMonFrontPic_Gloom[]; -extern const u32 gMonFrontPic_GloomF[]; -extern const u32 gMonFrontPic_Vileplume[]; -extern const u32 gMonFrontPic_VileplumeF[]; -extern const u32 gMonFrontPic_Paras[]; -extern const u32 gMonFrontPic_Parasect[]; -extern const u32 gMonFrontPic_Venonat[]; -extern const u32 gMonFrontPic_Venomoth[]; -extern const u32 gMonFrontPic_Diglett[]; -extern const u32 gMonFrontPic_Dugtrio[]; -extern const u32 gMonFrontPic_Meowth[]; -extern const u32 gMonFrontPic_Persian[]; -extern const u32 gMonFrontPic_Psyduck[]; -extern const u32 gMonFrontPic_Golduck[]; -extern const u32 gMonFrontPic_Mankey[]; -extern const u32 gMonFrontPic_Primeape[]; -extern const u32 gMonFrontPic_Growlithe[]; -extern const u32 gMonFrontPic_Arcanine[]; -extern const u32 gMonFrontPic_Poliwag[]; -extern const u32 gMonFrontPic_Poliwhirl[]; -extern const u32 gMonFrontPic_Poliwrath[]; -extern const u32 gMonFrontPic_Abra[]; -extern const u32 gMonFrontPic_Kadabra[]; -extern const u32 gMonFrontPic_KadabraF[]; -extern const u32 gMonFrontPic_Alakazam[]; -extern const u32 gMonFrontPic_AlakazamF[]; -extern const u32 gMonFrontPic_Machop[]; -extern const u32 gMonFrontPic_Machoke[]; -extern const u32 gMonFrontPic_Machamp[]; -extern const u32 gMonFrontPic_Bellsprout[]; -extern const u32 gMonFrontPic_Weepinbell[]; -extern const u32 gMonFrontPic_Victreebel[]; -extern const u32 gMonFrontPic_Tentacool[]; -extern const u32 gMonFrontPic_Tentacruel[]; -extern const u32 gMonFrontPic_Geodude[]; -extern const u32 gMonFrontPic_Graveler[]; -extern const u32 gMonFrontPic_Golem[]; -extern const u32 gMonFrontPic_Ponyta[]; -extern const u32 gMonFrontPic_Rapidash[]; -extern const u32 gMonFrontPic_Slowpoke[]; -extern const u32 gMonFrontPic_Slowbro[]; -extern const u32 gMonFrontPic_Magnemite[]; -extern const u32 gMonFrontPic_Magneton[]; -extern const u32 gMonFrontPic_Farfetchd[]; -extern const u32 gMonFrontPic_Doduo[]; -extern const u32 gMonFrontPic_DoduoF[]; -extern const u32 gMonFrontPic_Dodrio[]; -extern const u32 gMonFrontPic_DodrioF[]; -extern const u32 gMonFrontPic_Seel[]; -extern const u32 gMonFrontPic_Dewgong[]; -extern const u32 gMonFrontPic_Grimer[]; -extern const u32 gMonFrontPic_Muk[]; -extern const u32 gMonFrontPic_Shellder[]; -extern const u32 gMonFrontPic_Cloyster[]; -extern const u32 gMonFrontPic_Gastly[]; -extern const u32 gMonFrontPic_Haunter[]; -extern const u32 gMonFrontPic_Gengar[]; -extern const u32 gMonFrontPic_Onix[]; -extern const u32 gMonFrontPic_Drowzee[]; -extern const u32 gMonFrontPic_Hypno[]; -extern const u32 gMonFrontPic_HypnoF[]; -extern const u32 gMonFrontPic_Krabby[]; -extern const u32 gMonFrontPic_Kingler[]; -extern const u32 gMonFrontPic_Voltorb[]; -extern const u32 gMonFrontPic_Electrode[]; -extern const u32 gMonFrontPic_Exeggcute[]; -extern const u32 gMonFrontPic_Exeggutor[]; -extern const u32 gMonFrontPic_Cubone[]; -extern const u32 gMonFrontPic_Marowak[]; -extern const u32 gMonFrontPic_Hitmonlee[]; -extern const u32 gMonFrontPic_Hitmonchan[]; -extern const u32 gMonFrontPic_Lickitung[]; -extern const u32 gMonFrontPic_Koffing[]; -extern const u32 gMonFrontPic_Weezing[]; -extern const u32 gMonFrontPic_Rhyhorn[]; -extern const u32 gMonFrontPic_RhyhornF[]; -extern const u32 gMonFrontPic_Rhydon[]; -extern const u32 gMonFrontPic_RhydonF[]; -extern const u32 gMonFrontPic_Chansey[]; -extern const u32 gMonFrontPic_Tangela[]; -extern const u32 gMonFrontPic_Kangaskhan[]; -extern const u32 gMonFrontPic_Horsea[]; -extern const u32 gMonFrontPic_Seadra[]; -extern const u32 gMonFrontPic_Goldeen[]; -extern const u32 gMonFrontPic_GoldeenF[]; -extern const u32 gMonFrontPic_Seaking[]; -extern const u32 gMonFrontPic_SeakingF[]; -extern const u32 gMonFrontPic_Staryu[]; -extern const u32 gMonFrontPic_Starmie[]; -extern const u32 gMonFrontPic_MrMime[]; -extern const u32 gMonFrontPic_Scyther[]; -extern const u32 gMonFrontPic_ScytherF[]; -extern const u32 gMonFrontPic_Jynx[]; -extern const u32 gMonFrontPic_Electabuzz[]; -extern const u32 gMonFrontPic_Magmar[]; -extern const u32 gMonFrontPic_Pinsir[]; -extern const u32 gMonFrontPic_Tauros[]; -extern const u32 gMonFrontPic_Magikarp[]; -extern const u32 gMonFrontPic_MagikarpF[]; -extern const u32 gMonFrontPic_Gyarados[]; -extern const u32 gMonFrontPic_GyaradosF[]; -extern const u32 gMonFrontPic_Lapras[]; -extern const u32 gMonFrontPic_Ditto[]; -extern const u32 gMonFrontPic_Eevee[]; -extern const u32 gMonFrontPic_EeveeF[]; -extern const u32 gMonFrontPic_Vaporeon[]; -extern const u32 gMonFrontPic_Jolteon[]; -extern const u32 gMonFrontPic_Flareon[]; -extern const u32 gMonFrontPic_Porygon[]; -extern const u32 gMonFrontPic_Omanyte[]; -extern const u32 gMonFrontPic_Omastar[]; -extern const u32 gMonFrontPic_Kabuto[]; -extern const u32 gMonFrontPic_Kabutops[]; -extern const u32 gMonFrontPic_Aerodactyl[]; -extern const u32 gMonFrontPic_Snorlax[]; -extern const u32 gMonFrontPic_Articuno[]; -extern const u32 gMonFrontPic_Zapdos[]; -extern const u32 gMonFrontPic_Moltres[]; -extern const u32 gMonFrontPic_Dratini[]; -extern const u32 gMonFrontPic_Dragonair[]; -extern const u32 gMonFrontPic_Dragonite[]; -extern const u32 gMonFrontPic_Mewtwo[]; -extern const u32 gMonFrontPic_Mew[]; -extern const u32 gMonFrontPic_Chikorita[]; -extern const u32 gMonFrontPic_Bayleef[]; -extern const u32 gMonFrontPic_Meganium[]; -extern const u32 gMonFrontPic_MeganiumF[]; -extern const u32 gMonFrontPic_Cyndaquil[]; -extern const u32 gMonFrontPic_Quilava[]; -extern const u32 gMonFrontPic_Typhlosion[]; -extern const u32 gMonFrontPic_Totodile[]; -extern const u32 gMonFrontPic_Croconaw[]; -extern const u32 gMonFrontPic_Feraligatr[]; -extern const u32 gMonFrontPic_Sentret[]; -extern const u32 gMonFrontPic_Furret[]; -extern const u32 gMonFrontPic_Hoothoot[]; -extern const u32 gMonFrontPic_Noctowl[]; -extern const u32 gMonFrontPic_Ledyba[]; -extern const u32 gMonFrontPic_LedybaF[]; -extern const u32 gMonFrontPic_Ledian[]; -extern const u32 gMonFrontPic_LedianF[]; -extern const u32 gMonFrontPic_Spinarak[]; -extern const u32 gMonFrontPic_Ariados[]; -extern const u32 gMonFrontPic_Crobat[]; -extern const u32 gMonFrontPic_Chinchou[]; -extern const u32 gMonFrontPic_Lanturn[]; -extern const u32 gMonFrontPic_Pichu[]; -extern const u32 gMonFrontPic_Cleffa[]; -extern const u32 gMonFrontPic_Igglybuff[]; -extern const u32 gMonFrontPic_Togepi[]; -extern const u32 gMonFrontPic_Togetic[]; -extern const u32 gMonFrontPic_Natu[]; -extern const u32 gMonFrontPic_Xatu[]; -extern const u32 gMonFrontPic_XatuF[]; -extern const u32 gMonFrontPic_Mareep[]; -extern const u32 gMonFrontPic_Flaaffy[]; -extern const u32 gMonFrontPic_Ampharos[]; -extern const u32 gMonFrontPic_Bellossom[]; -extern const u32 gMonFrontPic_Marill[]; -extern const u32 gMonFrontPic_Azumarill[]; -extern const u32 gMonFrontPic_Sudowoodo[]; -extern const u32 gMonFrontPic_SudowoodoF[]; -extern const u32 gMonFrontPic_Politoed[]; -extern const u32 gMonFrontPic_PolitoedF[]; -extern const u32 gMonFrontPic_Hoppip[]; -extern const u32 gMonFrontPic_Skiploom[]; -extern const u32 gMonFrontPic_Jumpluff[]; -extern const u32 gMonFrontPic_Aipom[]; -extern const u32 gMonFrontPic_AipomF[]; -extern const u32 gMonFrontPic_Sunkern[]; -extern const u32 gMonFrontPic_Sunflora[]; -extern const u32 gMonFrontPic_Yanma[]; -extern const u32 gMonFrontPic_Wooper[]; -extern const u32 gMonFrontPic_WooperF[]; -extern const u32 gMonFrontPic_Quagsire[]; -extern const u32 gMonFrontPic_QuagsireF[]; -extern const u32 gMonFrontPic_Espeon[]; -extern const u32 gMonFrontPic_Umbreon[]; -extern const u32 gMonFrontPic_Murkrow[]; -extern const u32 gMonFrontPic_MurkrowF[]; -extern const u32 gMonFrontPic_Slowking[]; -extern const u32 gMonFrontPic_Misdreavus[]; -extern const u32 gMonFrontPic_Unown[]; -extern const u32 gMonFrontPic_Wobbuffet[]; -extern const u32 gMonFrontPic_WobbuffetF[]; -extern const u32 gMonFrontPic_Girafarig[]; -extern const u32 gMonFrontPic_GirafarigF[]; -extern const u32 gMonFrontPic_Pineco[]; -extern const u32 gMonFrontPic_Forretress[]; -extern const u32 gMonFrontPic_Dunsparce[]; -extern const u32 gMonFrontPic_Gligar[]; -extern const u32 gMonFrontPic_GligarF[]; -extern const u32 gMonFrontPic_Steelix[]; -extern const u32 gMonFrontPic_SteelixF[]; -extern const u32 gMonFrontPic_Snubbull[]; -extern const u32 gMonFrontPic_Granbull[]; -extern const u32 gMonFrontPic_Qwilfish[]; -extern const u32 gMonFrontPic_Scizor[]; -extern const u32 gMonFrontPic_ScizorF[]; -extern const u32 gMonFrontPic_Shuckle[]; -extern const u32 gMonFrontPic_Heracross[]; -extern const u32 gMonFrontPic_HeracrossF[]; -extern const u32 gMonFrontPic_Sneasel[]; -extern const u32 gMonFrontPic_SneaselF[]; -extern const u32 gMonFrontPic_Teddiursa[]; -extern const u32 gMonFrontPic_Ursaring[]; -extern const u32 gMonFrontPic_UrsaringF[]; -extern const u32 gMonFrontPic_Slugma[]; -extern const u32 gMonFrontPic_Magcargo[]; -extern const u32 gMonFrontPic_Swinub[]; -extern const u32 gMonFrontPic_Piloswine[]; -extern const u32 gMonFrontPic_PiloswineF[]; -extern const u32 gMonFrontPic_Corsola[]; -extern const u32 gMonFrontPic_Remoraid[]; -extern const u32 gMonFrontPic_Octillery[]; -extern const u32 gMonFrontPic_OctilleryF[]; -extern const u32 gMonFrontPic_Delibird[]; -extern const u32 gMonFrontPic_Mantine[]; -extern const u32 gMonFrontPic_Skarmory[]; -extern const u32 gMonFrontPic_Houndour[]; -extern const u32 gMonFrontPic_Houndoom[]; -extern const u32 gMonFrontPic_HoundoomF[]; -extern const u32 gMonFrontPic_Kingdra[]; -extern const u32 gMonFrontPic_Phanpy[]; -extern const u32 gMonFrontPic_Donphan[]; -extern const u32 gMonFrontPic_DonphanF[]; -extern const u32 gMonFrontPic_Porygon2[]; -extern const u32 gMonFrontPic_Stantler[]; -extern const u32 gMonFrontPic_Smeargle[]; -extern const u32 gMonFrontPic_Tyrogue[]; -extern const u32 gMonFrontPic_Hitmontop[]; -extern const u32 gMonFrontPic_Smoochum[]; -extern const u32 gMonFrontPic_Elekid[]; -extern const u32 gMonFrontPic_Magby[]; -extern const u32 gMonFrontPic_Miltank[]; -extern const u32 gMonFrontPic_Blissey[]; -extern const u32 gMonFrontPic_Raikou[]; -extern const u32 gMonFrontPic_Entei[]; -extern const u32 gMonFrontPic_Suicune[]; -extern const u32 gMonFrontPic_Larvitar[]; -extern const u32 gMonFrontPic_Pupitar[]; -extern const u32 gMonFrontPic_Tyranitar[]; -extern const u32 gMonFrontPic_Lugia[]; -extern const u32 gMonFrontPic_HoOh[]; -extern const u32 gMonFrontPic_Celebi[]; -extern const u32 gMonFrontPic_Treecko[]; -extern const u32 gMonFrontPic_Grovyle[]; -extern const u32 gMonFrontPic_Sceptile[]; -extern const u32 gMonFrontPic_Torchic[]; -extern const u32 gMonFrontPic_Combusken[]; -extern const u32 gMonFrontPic_CombuskenF[]; -extern const u32 gMonFrontPic_Blaziken[]; -extern const u32 gMonFrontPic_BlazikenF[]; -extern const u32 gMonFrontPic_Mudkip[]; -extern const u32 gMonFrontPic_Marshtomp[]; -extern const u32 gMonFrontPic_Swampert[]; -extern const u32 gMonFrontPic_Poochyena[]; -extern const u32 gMonFrontPic_Mightyena[]; -extern const u32 gMonFrontPic_Zigzagoon[]; -extern const u32 gMonFrontPic_Linoone[]; -extern const u32 gMonFrontPic_Wurmple[]; -extern const u32 gMonFrontPic_Silcoon[]; -extern const u32 gMonFrontPic_Beautifly[]; -extern const u32 gMonFrontPic_BeautiflyF[]; -extern const u32 gMonFrontPic_Cascoon[]; -extern const u32 gMonFrontPic_Dustox[]; -extern const u32 gMonFrontPic_DustoxF[]; -extern const u32 gMonFrontPic_Lotad[]; -extern const u32 gMonFrontPic_Lombre[]; -extern const u32 gMonFrontPic_Ludicolo[]; -extern const u32 gMonFrontPic_LudicoloF[]; -extern const u32 gMonFrontPic_Seedot[]; -extern const u32 gMonFrontPic_Nuzleaf[]; -extern const u32 gMonFrontPic_NuzleafF[]; -extern const u32 gMonFrontPic_Shiftry[]; -extern const u32 gMonFrontPic_ShiftryF[]; -extern const u32 gMonFrontPic_Taillow[]; -extern const u32 gMonFrontPic_Swellow[]; -extern const u32 gMonFrontPic_Wingull[]; -extern const u32 gMonFrontPic_Pelipper[]; -extern const u32 gMonFrontPic_Ralts[]; -extern const u32 gMonFrontPic_Kirlia[]; -extern const u32 gMonFrontPic_Gardevoir[]; -extern const u32 gMonFrontPic_Surskit[]; -extern const u32 gMonFrontPic_Masquerain[]; -extern const u32 gMonFrontPic_Shroomish[]; -extern const u32 gMonFrontPic_Breloom[]; -extern const u32 gMonFrontPic_Slakoth[]; -extern const u32 gMonFrontPic_Vigoroth[]; -extern const u32 gMonFrontPic_Slaking[]; -extern const u32 gMonFrontPic_Nincada[]; -extern const u32 gMonFrontPic_Ninjask[]; -extern const u32 gMonFrontPic_Shedinja[]; -extern const u32 gMonFrontPic_Whismur[]; -extern const u32 gMonFrontPic_Loudred[]; -extern const u32 gMonFrontPic_Exploud[]; -extern const u32 gMonFrontPic_Makuhita[]; -extern const u32 gMonFrontPic_Hariyama[]; -extern const u32 gMonFrontPic_Azurill[]; -extern const u32 gMonFrontPic_Nosepass[]; -extern const u32 gMonFrontPic_Skitty[]; -extern const u32 gMonFrontPic_Delcatty[]; -extern const u32 gMonFrontPic_Sableye[]; -extern const u32 gMonFrontPic_Mawile[]; -extern const u32 gMonFrontPic_Aron[]; -extern const u32 gMonFrontPic_Lairon[]; -extern const u32 gMonFrontPic_Aggron[]; -extern const u32 gMonFrontPic_Meditite[]; -extern const u32 gMonFrontPic_MedititeF[]; -extern const u32 gMonFrontPic_Medicham[]; -extern const u32 gMonFrontPic_MedichamF[]; -extern const u32 gMonFrontPic_Electrike[]; -extern const u32 gMonFrontPic_Manectric[]; -extern const u32 gMonFrontPic_Plusle[]; -extern const u32 gMonFrontPic_Minun[]; -extern const u32 gMonFrontPic_Volbeat[]; -extern const u32 gMonFrontPic_Illumise[]; -extern const u32 gMonFrontPic_Roselia[]; -extern const u32 gMonFrontPic_RoseliaF[]; -extern const u32 gMonFrontPic_Gulpin[]; -extern const u32 gMonFrontPic_GulpinF[]; -extern const u32 gMonFrontPic_Swalot[]; -extern const u32 gMonFrontPic_SwalotF[]; -extern const u32 gMonFrontPic_Carvanha[]; -extern const u32 gMonFrontPic_Sharpedo[]; -extern const u32 gMonFrontPic_Wailmer[]; -extern const u32 gMonFrontPic_Wailord[]; -extern const u32 gMonFrontPic_Numel[]; -extern const u32 gMonFrontPic_NumelF[]; -extern const u32 gMonFrontPic_Camerupt[]; -extern const u32 gMonFrontPic_CameruptF[]; -extern const u32 gMonFrontPic_Torkoal[]; -extern const u32 gMonFrontPic_Spoink[]; -extern const u32 gMonFrontPic_Grumpig[]; -extern const u32 gMonFrontPic_Spinda[]; -extern const u32 gMonFrontPic_Trapinch[]; -extern const u32 gMonFrontPic_Vibrava[]; -extern const u32 gMonFrontPic_Flygon[]; -extern const u32 gMonFrontPic_Cacnea[]; -extern const u32 gMonFrontPic_Cacturne[]; -extern const u32 gMonFrontPic_CacturneF[]; -extern const u32 gMonFrontPic_Swablu[]; -extern const u32 gMonFrontPic_Altaria[]; -extern const u32 gMonFrontPic_Zangoose[]; -extern const u32 gMonFrontPic_Seviper[]; -extern const u32 gMonFrontPic_Lunatone[]; -extern const u32 gMonFrontPic_Solrock[]; -extern const u32 gMonFrontPic_Barboach[]; -extern const u32 gMonFrontPic_Whiscash[]; -extern const u32 gMonFrontPic_Corphish[]; -extern const u32 gMonFrontPic_Crawdaunt[]; -extern const u32 gMonFrontPic_Baltoy[]; -extern const u32 gMonFrontPic_Claydol[]; -extern const u32 gMonFrontPic_Lileep[]; -extern const u32 gMonFrontPic_Cradily[]; -extern const u32 gMonFrontPic_Anorith[]; -extern const u32 gMonFrontPic_Armaldo[]; -extern const u32 gMonFrontPic_Feebas[]; -extern const u32 gMonFrontPic_Milotic[]; -extern const u32 gMonFrontPic_MiloticF[]; -extern const u32 gMonFrontPic_CastformNormal[]; -extern const u32 gMonFrontPic_Kecleon[]; -extern const u32 gMonFrontPic_Shuppet[]; -extern const u32 gMonFrontPic_Banette[]; -extern const u32 gMonFrontPic_Duskull[]; -extern const u32 gMonFrontPic_Dusclops[]; -extern const u32 gMonFrontPic_Tropius[]; -extern const u32 gMonFrontPic_Chimecho[]; -extern const u32 gMonFrontPic_Absol[]; -extern const u32 gMonFrontPic_Wynaut[]; -extern const u32 gMonFrontPic_Snorunt[]; -extern const u32 gMonFrontPic_Glalie[]; -extern const u32 gMonFrontPic_Spheal[]; -extern const u32 gMonFrontPic_Sealeo[]; -extern const u32 gMonFrontPic_Walrein[]; -extern const u32 gMonFrontPic_Clamperl[]; -extern const u32 gMonFrontPic_Huntail[]; -extern const u32 gMonFrontPic_Gorebyss[]; -extern const u32 gMonFrontPic_Relicanth[]; -extern const u32 gMonFrontPic_RelicanthF[]; -extern const u32 gMonFrontPic_Luvdisc[]; -extern const u32 gMonFrontPic_Bagon[]; -extern const u32 gMonFrontPic_Shelgon[]; -extern const u32 gMonFrontPic_Salamence[]; -extern const u32 gMonFrontPic_Beldum[]; -extern const u32 gMonFrontPic_Metang[]; -extern const u32 gMonFrontPic_Metagross[]; -extern const u32 gMonFrontPic_Regirock[]; -extern const u32 gMonFrontPic_Regice[]; -extern const u32 gMonFrontPic_Registeel[]; -extern const u32 gMonFrontPic_Latias[]; -extern const u32 gMonFrontPic_Latios[]; -extern const u32 gMonFrontPic_Kyogre[]; -extern const u32 gMonFrontPic_Groudon[]; -extern const u32 gMonFrontPic_Rayquaza[]; -extern const u32 gMonFrontPic_Jirachi[]; -extern const u32 gMonFrontPic_DeoxysNormal[]; -#if P_GEN_4_POKEMON == TRUE -extern const u32 gMonFrontPic_Turtwig[]; -extern const u32 gMonFrontPic_Grotle[]; -extern const u32 gMonFrontPic_Torterra[]; -extern const u32 gMonFrontPic_Chimchar[]; -extern const u32 gMonFrontPic_Monferno[]; -extern const u32 gMonFrontPic_Infernape[]; -extern const u32 gMonFrontPic_Piplup[]; -extern const u32 gMonFrontPic_Prinplup[]; -extern const u32 gMonFrontPic_Empoleon[]; -extern const u32 gMonFrontPic_Starly[]; -extern const u32 gMonFrontPic_StarlyF[]; -extern const u32 gMonFrontPic_Staravia[]; -extern const u32 gMonFrontPic_StaraviaF[]; -extern const u32 gMonFrontPic_Staraptor[]; -extern const u32 gMonFrontPic_StaraptorF[]; -extern const u32 gMonFrontPic_Bidoof[]; -extern const u32 gMonFrontPic_BidoofF[]; -extern const u32 gMonFrontPic_Bibarel[]; -extern const u32 gMonFrontPic_BibarelF[]; -extern const u32 gMonFrontPic_Kricketot[]; -extern const u32 gMonFrontPic_KricketotF[]; -extern const u32 gMonFrontPic_Kricketune[]; -extern const u32 gMonFrontPic_KricketuneF[]; -extern const u32 gMonFrontPic_Shinx[]; -extern const u32 gMonFrontPic_ShinxF[]; -extern const u32 gMonFrontPic_Luxio[]; -extern const u32 gMonFrontPic_LuxioF[]; -extern const u32 gMonFrontPic_Luxray[]; -extern const u32 gMonFrontPic_LuxrayF[]; -extern const u32 gMonFrontPic_Budew[]; -extern const u32 gMonFrontPic_Roserade[]; -extern const u32 gMonFrontPic_RoseradeF[]; -extern const u32 gMonFrontPic_Cranidos[]; -extern const u32 gMonFrontPic_Rampardos[]; -extern const u32 gMonFrontPic_Shieldon[]; -extern const u32 gMonFrontPic_Bastiodon[]; -extern const u32 gMonFrontPic_BurmyPlantCloak[]; -extern const u32 gMonFrontPic_WormadamPlantCloak[]; -extern const u32 gMonFrontPic_Mothim[]; -extern const u32 gMonFrontPic_Combee[]; -extern const u32 gMonFrontPic_Vespiquen[]; -extern const u32 gMonFrontPic_Pachirisu[]; -extern const u32 gMonFrontPic_PachirisuF[]; -extern const u32 gMonFrontPic_Buizel[]; -extern const u32 gMonFrontPic_Floatzel[]; -extern const u32 gMonFrontPic_Cherubi[]; -extern const u32 gMonFrontPic_CherrimOvercast[]; -extern const u32 gMonFrontPic_ShellosWestSea[]; -extern const u32 gMonFrontPic_GastrodonWestSea[]; -extern const u32 gMonFrontPic_Ambipom[]; -extern const u32 gMonFrontPic_AmbipomF[]; -extern const u32 gMonFrontPic_Drifloon[]; -extern const u32 gMonFrontPic_Drifblim[]; -extern const u32 gMonFrontPic_Buneary[]; -extern const u32 gMonFrontPic_Lopunny[]; -extern const u32 gMonFrontPic_Mismagius[]; -extern const u32 gMonFrontPic_Honchkrow[]; -extern const u32 gMonFrontPic_Glameow[]; -extern const u32 gMonFrontPic_Purugly[]; -extern const u32 gMonFrontPic_Chingling[]; -extern const u32 gMonFrontPic_Stunky[]; -extern const u32 gMonFrontPic_Skuntank[]; -extern const u32 gMonFrontPic_Bronzor[]; -extern const u32 gMonFrontPic_Bronzong[]; -extern const u32 gMonFrontPic_Bonsly[]; -extern const u32 gMonFrontPic_MimeJr[]; -extern const u32 gMonFrontPic_Happiny[]; -extern const u32 gMonFrontPic_Chatot[]; -extern const u32 gMonFrontPic_Spiritomb[]; -extern const u32 gMonFrontPic_Gible[]; -extern const u32 gMonFrontPic_GibleF[]; -extern const u32 gMonFrontPic_Gabite[]; -extern const u32 gMonFrontPic_GabiteF[]; -extern const u32 gMonFrontPic_Garchomp[]; -extern const u32 gMonFrontPic_GarchompF[]; -extern const u32 gMonFrontPic_Munchlax[]; -extern const u32 gMonFrontPic_Riolu[]; -extern const u32 gMonFrontPic_Lucario[]; -extern const u32 gMonFrontPic_Hippopotas[]; -extern const u32 gMonFrontPic_Hippowdon[]; -extern const u32 gMonFrontPic_Skorupi[]; -extern const u32 gMonFrontPic_Drapion[]; -extern const u32 gMonFrontPic_Croagunk[]; -extern const u32 gMonFrontPic_CroagunkF[]; -extern const u32 gMonFrontPic_Toxicroak[]; -extern const u32 gMonFrontPic_ToxicroakF[]; -extern const u32 gMonFrontPic_Carnivine[]; -extern const u32 gMonFrontPic_Finneon[]; -extern const u32 gMonFrontPic_FinneonF[]; -extern const u32 gMonFrontPic_Lumineon[]; -extern const u32 gMonFrontPic_LumineonF[]; -extern const u32 gMonFrontPic_Mantyke[]; -extern const u32 gMonFrontPic_Snover[]; -extern const u32 gMonFrontPic_SnoverF[]; -extern const u32 gMonFrontPic_Abomasnow[]; -extern const u32 gMonFrontPic_AbomasnowF[]; -extern const u32 gMonFrontPic_Weavile[]; -extern const u32 gMonFrontPic_WeavileF[]; -extern const u32 gMonFrontPic_Magnezone[]; -extern const u32 gMonFrontPic_Lickilicky[]; -extern const u32 gMonFrontPic_Rhyperior[]; -extern const u32 gMonFrontPic_RhyperiorF[]; -extern const u32 gMonFrontPic_Tangrowth[]; -extern const u32 gMonFrontPic_TangrowthF[]; -extern const u32 gMonFrontPic_Electivire[]; -extern const u32 gMonFrontPic_Magmortar[]; -extern const u32 gMonFrontPic_Togekiss[]; -extern const u32 gMonFrontPic_Yanmega[]; -extern const u32 gMonFrontPic_Leafeon[]; -extern const u32 gMonFrontPic_Glaceon[]; -extern const u32 gMonFrontPic_Gliscor[]; -extern const u32 gMonFrontPic_Mamoswine[]; -extern const u32 gMonFrontPic_MamoswineF[]; -extern const u32 gMonFrontPic_PorygonZ[]; -extern const u32 gMonFrontPic_Gallade[]; -extern const u32 gMonFrontPic_Probopass[]; -extern const u32 gMonFrontPic_Dusknoir[]; -extern const u32 gMonFrontPic_Froslass[]; -extern const u32 gMonFrontPic_Rotom[]; -extern const u32 gMonFrontPic_Uxie[]; -extern const u32 gMonFrontPic_Mesprit[]; -extern const u32 gMonFrontPic_Azelf[]; -extern const u32 gMonFrontPic_Dialga[]; -extern const u32 gMonFrontPic_Palkia[]; -extern const u32 gMonFrontPic_Heatran[]; -extern const u32 gMonFrontPic_Regigigas[]; -extern const u32 gMonFrontPic_GiratinaAltered[]; -extern const u32 gMonFrontPic_Cresselia[]; -extern const u32 gMonFrontPic_Phione[]; -extern const u32 gMonFrontPic_Manaphy[]; -extern const u32 gMonFrontPic_Darkrai[]; -extern const u32 gMonFrontPic_ShayminLand[]; -extern const u32 gMonFrontPic_Arceus[]; -#endif -#if P_GEN_5_POKEMON == TRUE -extern const u32 gMonFrontPic_Victini[]; -extern const u32 gMonFrontPic_Snivy[]; -extern const u32 gMonFrontPic_Servine[]; -extern const u32 gMonFrontPic_Serperior[]; -extern const u32 gMonFrontPic_Tepig[]; -extern const u32 gMonFrontPic_Pignite[]; -extern const u32 gMonFrontPic_Emboar[]; -extern const u32 gMonFrontPic_Oshawott[]; -extern const u32 gMonFrontPic_Dewott[]; -extern const u32 gMonFrontPic_Samurott[]; -extern const u32 gMonFrontPic_Patrat[]; -extern const u32 gMonFrontPic_Watchog[]; -extern const u32 gMonFrontPic_Lillipup[]; -extern const u32 gMonFrontPic_Herdier[]; -extern const u32 gMonFrontPic_Stoutland[]; -extern const u32 gMonFrontPic_Purrloin[]; -extern const u32 gMonFrontPic_Liepard[]; -extern const u32 gMonFrontPic_Pansage[]; -extern const u32 gMonFrontPic_Simisage[]; -extern const u32 gMonFrontPic_Pansear[]; -extern const u32 gMonFrontPic_Simisear[]; -extern const u32 gMonFrontPic_Panpour[]; -extern const u32 gMonFrontPic_Simipour[]; -extern const u32 gMonFrontPic_Munna[]; -extern const u32 gMonFrontPic_Musharna[]; -extern const u32 gMonFrontPic_Pidove[]; -extern const u32 gMonFrontPic_Tranquill[]; -extern const u32 gMonFrontPic_Unfezant[]; -extern const u32 gMonFrontPic_UnfezantF[]; -extern const u32 gMonFrontPic_Blitzle[]; -extern const u32 gMonFrontPic_Zebstrika[]; -extern const u32 gMonFrontPic_Roggenrola[]; -extern const u32 gMonFrontPic_Boldore[]; -extern const u32 gMonFrontPic_Gigalith[]; -extern const u32 gMonFrontPic_Woobat[]; -extern const u32 gMonFrontPic_Swoobat[]; -extern const u32 gMonFrontPic_Drilbur[]; -extern const u32 gMonFrontPic_Excadrill[]; -extern const u32 gMonFrontPic_Audino[]; -extern const u32 gMonFrontPic_Timburr[]; -extern const u32 gMonFrontPic_Gurdurr[]; -extern const u32 gMonFrontPic_Conkeldurr[]; -extern const u32 gMonFrontPic_Tympole[]; -extern const u32 gMonFrontPic_Palpitoad[]; -extern const u32 gMonFrontPic_Seismitoad[]; -extern const u32 gMonFrontPic_Throh[]; -extern const u32 gMonFrontPic_Sawk[]; -extern const u32 gMonFrontPic_Sewaddle[]; -extern const u32 gMonFrontPic_Swadloon[]; -extern const u32 gMonFrontPic_Leavanny[]; -extern const u32 gMonFrontPic_Venipede[]; -extern const u32 gMonFrontPic_Whirlipede[]; -extern const u32 gMonFrontPic_Scolipede[]; -extern const u32 gMonFrontPic_Cottonee[]; -extern const u32 gMonFrontPic_Whimsicott[]; -extern const u32 gMonFrontPic_Petilil[]; -extern const u32 gMonFrontPic_Lilligant[]; -extern const u32 gMonFrontPic_BasculinRedStriped[]; -extern const u32 gMonFrontPic_Sandile[]; -extern const u32 gMonFrontPic_Krokorok[]; -extern const u32 gMonFrontPic_Krookodile[]; -extern const u32 gMonFrontPic_Darumaka[]; -extern const u32 gMonFrontPic_DarmanitanStandardMode[]; -extern const u32 gMonFrontPic_Maractus[]; -extern const u32 gMonFrontPic_Dwebble[]; -extern const u32 gMonFrontPic_Crustle[]; -extern const u32 gMonFrontPic_Scraggy[]; -extern const u32 gMonFrontPic_Scrafty[]; -extern const u32 gMonFrontPic_Sigilyph[]; -extern const u32 gMonFrontPic_Yamask[]; -extern const u32 gMonFrontPic_Cofagrigus[]; -extern const u32 gMonFrontPic_Tirtouga[]; -extern const u32 gMonFrontPic_Carracosta[]; -extern const u32 gMonFrontPic_Archen[]; -extern const u32 gMonFrontPic_Archeops[]; -extern const u32 gMonFrontPic_Trubbish[]; -extern const u32 gMonFrontPic_Garbodor[]; -extern const u32 gMonFrontPic_Zorua[]; -extern const u32 gMonFrontPic_Zoroark[]; -extern const u32 gMonFrontPic_Minccino[]; -extern const u32 gMonFrontPic_Cinccino[]; -extern const u32 gMonFrontPic_Gothita[]; -extern const u32 gMonFrontPic_Gothorita[]; -extern const u32 gMonFrontPic_Gothitelle[]; -extern const u32 gMonFrontPic_Solosis[]; -extern const u32 gMonFrontPic_Duosion[]; -extern const u32 gMonFrontPic_Reuniclus[]; -extern const u32 gMonFrontPic_Ducklett[]; -extern const u32 gMonFrontPic_Swanna[]; -extern const u32 gMonFrontPic_Vanillite[]; -extern const u32 gMonFrontPic_Vanillish[]; -extern const u32 gMonFrontPic_Vanilluxe[]; -extern const u32 gMonFrontPic_Deerling[]; -extern const u32 gMonFrontPic_SawsbuckSpring[]; -extern const u32 gMonFrontPic_Emolga[]; -extern const u32 gMonFrontPic_Karrablast[]; -extern const u32 gMonFrontPic_Escavalier[]; -extern const u32 gMonFrontPic_Foongus[]; -extern const u32 gMonFrontPic_Amoonguss[]; -extern const u32 gMonFrontPic_Frillish[]; -extern const u32 gMonFrontPic_FrillishF[]; -extern const u32 gMonFrontPic_Jellicent[]; -extern const u32 gMonFrontPic_JellicentF[]; -extern const u32 gMonFrontPic_Alomomola[]; -extern const u32 gMonFrontPic_Joltik[]; -extern const u32 gMonFrontPic_Galvantula[]; -extern const u32 gMonFrontPic_Ferroseed[]; -extern const u32 gMonFrontPic_Ferrothorn[]; -extern const u32 gMonFrontPic_Klink[]; -extern const u32 gMonFrontPic_Klang[]; -extern const u32 gMonFrontPic_Klinklang[]; -extern const u32 gMonFrontPic_Tynamo[]; -extern const u32 gMonFrontPic_Eelektrik[]; -extern const u32 gMonFrontPic_Eelektross[]; -extern const u32 gMonFrontPic_Elgyem[]; -extern const u32 gMonFrontPic_Beheeyem[]; -extern const u32 gMonFrontPic_Litwick[]; -extern const u32 gMonFrontPic_Lampent[]; -extern const u32 gMonFrontPic_Chandelure[]; -extern const u32 gMonFrontPic_Axew[]; -extern const u32 gMonFrontPic_Fraxure[]; -extern const u32 gMonFrontPic_Haxorus[]; -extern const u32 gMonFrontPic_Cubchoo[]; -extern const u32 gMonFrontPic_Beartic[]; -extern const u32 gMonFrontPic_Cryogonal[]; -extern const u32 gMonFrontPic_Shelmet[]; -extern const u32 gMonFrontPic_Accelgor[]; -extern const u32 gMonFrontPic_Stunfisk[]; -extern const u32 gMonFrontPic_Mienfoo[]; -extern const u32 gMonFrontPic_Mienshao[]; -extern const u32 gMonFrontPic_Druddigon[]; -extern const u32 gMonFrontPic_Golett[]; -extern const u32 gMonFrontPic_Golurk[]; -extern const u32 gMonFrontPic_Pawniard[]; -extern const u32 gMonFrontPic_Bisharp[]; -extern const u32 gMonFrontPic_Bouffalant[]; -extern const u32 gMonFrontPic_Rufflet[]; -extern const u32 gMonFrontPic_Braviary[]; -extern const u32 gMonFrontPic_Vullaby[]; -extern const u32 gMonFrontPic_Mandibuzz[]; -extern const u32 gMonFrontPic_Heatmor[]; -extern const u32 gMonFrontPic_Durant[]; -extern const u32 gMonFrontPic_Deino[]; -extern const u32 gMonFrontPic_Zweilous[]; -extern const u32 gMonFrontPic_Hydreigon[]; -extern const u32 gMonFrontPic_Larvesta[]; -extern const u32 gMonFrontPic_Volcarona[]; -extern const u32 gMonFrontPic_Cobalion[]; -extern const u32 gMonFrontPic_Terrakion[]; -extern const u32 gMonFrontPic_Virizion[]; -extern const u32 gMonFrontPic_TornadusIncarnate[]; -extern const u32 gMonFrontPic_ThundurusIncarnate[]; -extern const u32 gMonFrontPic_Reshiram[]; -extern const u32 gMonFrontPic_Zekrom[]; -extern const u32 gMonFrontPic_LandorusIncarnate[]; -extern const u32 gMonFrontPic_Kyurem[]; -extern const u32 gMonFrontPic_KeldeoOrdinary[]; -extern const u32 gMonFrontPic_MeloettaAria[]; -extern const u32 gMonFrontPic_Genesect[]; -#endif -#if P_GEN_6_POKEMON == TRUE -extern const u32 gMonFrontPic_Chespin[]; -extern const u32 gMonFrontPic_Quilladin[]; -extern const u32 gMonFrontPic_Chesnaught[]; -extern const u32 gMonFrontPic_Fennekin[]; -extern const u32 gMonFrontPic_Braixen[]; -extern const u32 gMonFrontPic_Delphox[]; -extern const u32 gMonFrontPic_Froakie[]; -extern const u32 gMonFrontPic_Frogadier[]; -extern const u32 gMonFrontPic_Greninja[]; -extern const u32 gMonFrontPic_Bunnelby[]; -extern const u32 gMonFrontPic_Diggersby[]; -extern const u32 gMonFrontPic_Fletchling[]; -extern const u32 gMonFrontPic_Fletchinder[]; -extern const u32 gMonFrontPic_Talonflame[]; -extern const u32 gMonFrontPic_Scatterbug[]; -extern const u32 gMonFrontPic_Spewpa[]; -extern const u32 gMonFrontPic_VivillonIcySnow[]; -extern const u32 gMonFrontPic_Litleo[]; -extern const u32 gMonFrontPic_Pyroar[]; -extern const u32 gMonFrontPic_PyroarF[]; -extern const u32 gMonFrontPic_Flabebe[]; -extern const u32 gMonFrontPic_Floette[]; -extern const u32 gMonFrontPic_Florges[]; -extern const u32 gMonFrontPic_Skiddo[]; -extern const u32 gMonFrontPic_Gogoat[]; -extern const u32 gMonFrontPic_Pancham[]; -extern const u32 gMonFrontPic_Pangoro[]; -extern const u32 gMonFrontPic_FurfrouNatural[]; -extern const u32 gMonFrontPic_Espurr[]; -extern const u32 gMonFrontPic_MeowsticMale[]; -extern const u32 gMonFrontPic_Honedge[]; -extern const u32 gMonFrontPic_Doublade[]; -extern const u32 gMonFrontPic_AegislashShield[]; -extern const u32 gMonFrontPic_Spritzee[]; -extern const u32 gMonFrontPic_Aromatisse[]; -extern const u32 gMonFrontPic_Swirlix[]; -extern const u32 gMonFrontPic_Slurpuff[]; -extern const u32 gMonFrontPic_Inkay[]; -extern const u32 gMonFrontPic_Malamar[]; -extern const u32 gMonFrontPic_Binacle[]; -extern const u32 gMonFrontPic_Barbaracle[]; -extern const u32 gMonFrontPic_Skrelp[]; -extern const u32 gMonFrontPic_Dragalge[]; -extern const u32 gMonFrontPic_Clauncher[]; -extern const u32 gMonFrontPic_Clawitzer[]; -extern const u32 gMonFrontPic_Helioptile[]; -extern const u32 gMonFrontPic_Heliolisk[]; -extern const u32 gMonFrontPic_Tyrunt[]; -extern const u32 gMonFrontPic_Tyrantrum[]; -extern const u32 gMonFrontPic_Amaura[]; -extern const u32 gMonFrontPic_Aurorus[]; -extern const u32 gMonFrontPic_Sylveon[]; -extern const u32 gMonFrontPic_Hawlucha[]; -extern const u32 gMonFrontPic_Dedenne[]; -extern const u32 gMonFrontPic_Carbink[]; -extern const u32 gMonFrontPic_Goomy[]; -extern const u32 gMonFrontPic_Sliggoo[]; -extern const u32 gMonFrontPic_Goodra[]; -extern const u32 gMonFrontPic_Klefki[]; -extern const u32 gMonFrontPic_Phantump[]; -extern const u32 gMonFrontPic_Trevenant[]; -extern const u32 gMonFrontPic_PumpkabooAverage[]; -extern const u32 gMonFrontPic_GourgeistAverage[]; -extern const u32 gMonFrontPic_Bergmite[]; -extern const u32 gMonFrontPic_Avalugg[]; -extern const u32 gMonFrontPic_Noibat[]; -extern const u32 gMonFrontPic_Noivern[]; -extern const u32 gMonFrontPic_XerneasNeutral[]; -extern const u32 gMonFrontPic_Yveltal[]; -extern const u32 gMonFrontPic_Zygarde50[]; -extern const u32 gMonFrontPic_Diancie[]; -extern const u32 gMonFrontPic_HoopaConfined[]; -extern const u32 gMonFrontPic_Volcanion[]; -#endif -#if P_GEN_7_POKEMON == TRUE -extern const u32 gMonFrontPic_Rowlet[]; -extern const u32 gMonFrontPic_Dartrix[]; -extern const u32 gMonFrontPic_Decidueye[]; -extern const u32 gMonFrontPic_Litten[]; -extern const u32 gMonFrontPic_Torracat[]; -extern const u32 gMonFrontPic_Incineroar[]; -extern const u32 gMonFrontPic_Popplio[]; -extern const u32 gMonFrontPic_Brionne[]; -extern const u32 gMonFrontPic_Primarina[]; -extern const u32 gMonFrontPic_Pikipek[]; -extern const u32 gMonFrontPic_Trumbeak[]; -extern const u32 gMonFrontPic_Toucannon[]; -extern const u32 gMonFrontPic_Yungoos[]; -extern const u32 gMonFrontPic_Gumshoos[]; -extern const u32 gMonFrontPic_Grubbin[]; -extern const u32 gMonFrontPic_Charjabug[]; -extern const u32 gMonFrontPic_Vikavolt[]; -extern const u32 gMonFrontPic_Crabrawler[]; -extern const u32 gMonFrontPic_Crabominable[]; -extern const u32 gMonFrontPic_OricorioBaile[]; -extern const u32 gMonFrontPic_Cutiefly[]; -extern const u32 gMonFrontPic_Ribombee[]; -extern const u32 gMonFrontPic_Rockruff[]; -extern const u32 gMonFrontPic_LycanrocMidday[]; -extern const u32 gMonFrontPic_WishiwashiSolo[]; -extern const u32 gMonFrontPic_Mareanie[]; -extern const u32 gMonFrontPic_Toxapex[]; -extern const u32 gMonFrontPic_Mudbray[]; -extern const u32 gMonFrontPic_Mudsdale[]; -extern const u32 gMonFrontPic_Dewpider[]; -extern const u32 gMonFrontPic_Araquanid[]; -extern const u32 gMonFrontPic_Fomantis[]; -extern const u32 gMonFrontPic_Lurantis[]; -extern const u32 gMonFrontPic_Morelull[]; -extern const u32 gMonFrontPic_Shiinotic[]; -extern const u32 gMonFrontPic_Salandit[]; -extern const u32 gMonFrontPic_Salazzle[]; -extern const u32 gMonFrontPic_Stufful[]; -extern const u32 gMonFrontPic_Bewear[]; -extern const u32 gMonFrontPic_Bounsweet[]; -extern const u32 gMonFrontPic_Steenee[]; -extern const u32 gMonFrontPic_Tsareena[]; -extern const u32 gMonFrontPic_Comfey[]; -extern const u32 gMonFrontPic_Oranguru[]; -extern const u32 gMonFrontPic_Passimian[]; -extern const u32 gMonFrontPic_Wimpod[]; -extern const u32 gMonFrontPic_Golisopod[]; -extern const u32 gMonFrontPic_Sandygast[]; -extern const u32 gMonFrontPic_Palossand[]; -extern const u32 gMonFrontPic_Pyukumuku[]; -extern const u32 gMonFrontPic_TypeNull[]; -extern const u32 gMonFrontPic_Silvally[]; -extern const u32 gMonFrontPic_MiniorMeteor[]; -extern const u32 gMonFrontPic_Komala[]; -extern const u32 gMonFrontPic_Turtonator[]; -extern const u32 gMonFrontPic_Togedemaru[]; -extern const u32 gMonFrontPic_MimikyuDisguised[]; -extern const u32 gMonFrontPic_Bruxish[]; -extern const u32 gMonFrontPic_Drampa[]; -extern const u32 gMonFrontPic_Dhelmise[]; -extern const u32 gMonFrontPic_JangmoO[]; -extern const u32 gMonFrontPic_HakamoO[]; -extern const u32 gMonFrontPic_KommoO[]; -extern const u32 gMonFrontPic_TapuKoko[]; -extern const u32 gMonFrontPic_TapuLele[]; -extern const u32 gMonFrontPic_TapuBulu[]; -extern const u32 gMonFrontPic_TapuFini[]; -extern const u32 gMonFrontPic_Cosmog[]; -extern const u32 gMonFrontPic_Cosmoem[]; -extern const u32 gMonFrontPic_Solgaleo[]; -extern const u32 gMonFrontPic_Lunala[]; -extern const u32 gMonFrontPic_Nihilego[]; -extern const u32 gMonFrontPic_Buzzwole[]; -extern const u32 gMonFrontPic_Pheromosa[]; -extern const u32 gMonFrontPic_Xurkitree[]; -extern const u32 gMonFrontPic_Celesteela[]; -extern const u32 gMonFrontPic_Kartana[]; -extern const u32 gMonFrontPic_Guzzlord[]; -extern const u32 gMonFrontPic_Necrozma[]; -extern const u32 gMonFrontPic_Magearna[]; -extern const u32 gMonFrontPic_Marshadow[]; -extern const u32 gMonFrontPic_Poipole[]; -extern const u32 gMonFrontPic_Naganadel[]; -extern const u32 gMonFrontPic_Stakataka[]; -extern const u32 gMonFrontPic_Blacephalon[]; -extern const u32 gMonFrontPic_Zeraora[]; -extern const u32 gMonFrontPic_Meltan[]; -extern const u32 gMonFrontPic_Melmetal[]; -#endif -#if P_GEN_8_POKEMON == TRUE -extern const u32 gMonFrontPic_Grookey[]; -extern const u32 gMonFrontPic_Thwackey[]; -extern const u32 gMonFrontPic_Rillaboom[]; -extern const u32 gMonFrontPic_Scorbunny[]; -extern const u32 gMonFrontPic_Raboot[]; -extern const u32 gMonFrontPic_Cinderace[]; -extern const u32 gMonFrontPic_Sobble[]; -extern const u32 gMonFrontPic_Drizzile[]; -extern const u32 gMonFrontPic_Inteleon[]; -extern const u32 gMonFrontPic_Skwovet[]; -extern const u32 gMonFrontPic_Greedent[]; -extern const u32 gMonFrontPic_Rookidee[]; -extern const u32 gMonFrontPic_Corvisquire[]; -extern const u32 gMonFrontPic_Corviknight[]; -extern const u32 gMonFrontPic_Blipbug[]; -extern const u32 gMonFrontPic_Dottler[]; -extern const u32 gMonFrontPic_Orbeetle[]; -extern const u32 gMonFrontPic_Nickit[]; -extern const u32 gMonFrontPic_Thievul[]; -extern const u32 gMonFrontPic_Gossifleur[]; -extern const u32 gMonFrontPic_Eldegoss[]; -extern const u32 gMonFrontPic_Wooloo[]; -extern const u32 gMonFrontPic_Dubwool[]; -extern const u32 gMonFrontPic_Chewtle[]; -extern const u32 gMonFrontPic_Drednaw[]; -extern const u32 gMonFrontPic_Yamper[]; -extern const u32 gMonFrontPic_Boltund[]; -extern const u32 gMonFrontPic_Rolycoly[]; -extern const u32 gMonFrontPic_Carkol[]; -extern const u32 gMonFrontPic_Coalossal[]; -extern const u32 gMonFrontPic_Applin[]; -extern const u32 gMonFrontPic_Flapple[]; -extern const u32 gMonFrontPic_Appletun[]; -extern const u32 gMonFrontPic_Silicobra[]; -extern const u32 gMonFrontPic_Sandaconda[]; -extern const u32 gMonFrontPic_Cramorant[]; -extern const u32 gMonFrontPic_Arrokuda[]; -extern const u32 gMonFrontPic_Barraskewda[]; -extern const u32 gMonFrontPic_Toxel[]; -extern const u32 gMonFrontPic_ToxtricityAmped[]; -extern const u32 gMonFrontPic_Sizzlipede[]; -extern const u32 gMonFrontPic_Centiskorch[]; -extern const u32 gMonFrontPic_Clobbopus[]; -extern const u32 gMonFrontPic_Grapploct[]; -extern const u32 gMonFrontPic_Sinistea[]; -extern const u32 gMonFrontPic_Polteageist[]; -extern const u32 gMonFrontPic_Hatenna[]; -extern const u32 gMonFrontPic_Hattrem[]; -extern const u32 gMonFrontPic_Hatterene[]; -extern const u32 gMonFrontPic_Impidimp[]; -extern const u32 gMonFrontPic_Morgrem[]; -extern const u32 gMonFrontPic_Grimmsnarl[]; -extern const u32 gMonFrontPic_Obstagoon[]; -extern const u32 gMonFrontPic_Perrserker[]; -extern const u32 gMonFrontPic_Cursola[]; -extern const u32 gMonFrontPic_Sirfetchd[]; -extern const u32 gMonFrontPic_MrRime[]; -extern const u32 gMonFrontPic_Runerigus[]; -extern const u32 gMonFrontPic_Milcery[]; -extern const u32 gMonFrontPic_Alcremie[]; -extern const u32 gMonFrontPic_Falinks[]; -extern const u32 gMonFrontPic_Pincurchin[]; -extern const u32 gMonFrontPic_Snom[]; -extern const u32 gMonFrontPic_Frosmoth[]; -extern const u32 gMonFrontPic_Stonjourner[]; -extern const u32 gMonFrontPic_EiscueFace[]; -extern const u32 gMonFrontPic_IndeedeeMale[]; -extern const u32 gMonFrontPic_MorpekoFullBelly[]; -extern const u32 gMonFrontPic_Cufant[]; -extern const u32 gMonFrontPic_Copperajah[]; -extern const u32 gMonFrontPic_Dracozolt[]; -extern const u32 gMonFrontPic_Arctozolt[]; -extern const u32 gMonFrontPic_Dracovish[]; -extern const u32 gMonFrontPic_Arctovish[]; -extern const u32 gMonFrontPic_Duraludon[]; -extern const u32 gMonFrontPic_Dreepy[]; -extern const u32 gMonFrontPic_Drakloak[]; -extern const u32 gMonFrontPic_Dragapult[]; -extern const u32 gMonFrontPic_ZacianHeroOfManyBattles[]; -extern const u32 gMonFrontPic_ZamazentaHeroOfManyBattles[]; -extern const u32 gMonFrontPic_Eternatus[]; -extern const u32 gMonFrontPic_Kubfu[]; -extern const u32 gMonFrontPic_UrshifuSingleStrikeStyle[]; -extern const u32 gMonFrontPic_Zarude[]; -extern const u32 gMonFrontPic_Regieleki[]; -extern const u32 gMonFrontPic_Regidrago[]; -extern const u32 gMonFrontPic_Glastrier[]; -extern const u32 gMonFrontPic_Spectrier[]; -extern const u32 gMonFrontPic_Calyrex[]; -extern const u32 gMonFrontPic_Wyrdeer[]; -extern const u32 gMonFrontPic_Kleavor[]; -extern const u32 gMonFrontPic_Ursaluna[]; -extern const u32 gMonFrontPic_BasculegionMale[]; -extern const u32 gMonFrontPic_Sneasler[]; -extern const u32 gMonFrontPic_Overqwil[]; -extern const u32 gMonFrontPic_EnamorusIncarnate[]; -#endif -extern const u32 gMonFrontPic_VenusaurMega[]; -extern const u32 gMonFrontPic_CharizardMegaX[]; -extern const u32 gMonFrontPic_CharizardMegaY[]; -extern const u32 gMonFrontPic_BlastoiseMega[]; -extern const u32 gMonFrontPic_BeedrillMega[]; -extern const u32 gMonFrontPic_PidgeotMega[]; -extern const u32 gMonFrontPic_AlakazamMega[]; -extern const u32 gMonFrontPic_SlowbroMega[]; -extern const u32 gMonFrontPic_GengarMega[]; -extern const u32 gMonFrontPic_KangaskhanMega[]; -extern const u32 gMonFrontPic_PinsirMega[]; -extern const u32 gMonFrontPic_GyaradosMega[]; -extern const u32 gMonFrontPic_AerodactylMega[]; -extern const u32 gMonFrontPic_MewtwoMegaX[]; -extern const u32 gMonFrontPic_MewtwoMegaY[]; -extern const u32 gMonFrontPic_AmpharosMega[]; -extern const u32 gMonFrontPic_SteelixMega[]; -extern const u32 gMonFrontPic_ScizorMega[]; -extern const u32 gMonFrontPic_HeracrossMega[]; -extern const u32 gMonFrontPic_HoundoomMega[]; -extern const u32 gMonFrontPic_TyranitarMega[]; -extern const u32 gMonFrontPic_SceptileMega[]; -extern const u32 gMonFrontPic_BlazikenMega[]; -extern const u32 gMonFrontPic_SwampertMega[]; -extern const u32 gMonFrontPic_GardevoirMega[]; -extern const u32 gMonFrontPic_SableyeMega[]; -extern const u32 gMonFrontPic_MawileMega[]; -extern const u32 gMonFrontPic_AggronMega[]; -extern const u32 gMonFrontPic_MedichamMega[]; -extern const u32 gMonFrontPic_ManectricMega[]; -extern const u32 gMonFrontPic_SharpedoMega[]; -extern const u32 gMonFrontPic_CameruptMega[]; -extern const u32 gMonFrontPic_AltariaMega[]; -extern const u32 gMonFrontPic_BanetteMega[]; -extern const u32 gMonFrontPic_AbsolMega[]; -extern const u32 gMonFrontPic_GlalieMega[]; -extern const u32 gMonFrontPic_SalamenceMega[]; -extern const u32 gMonFrontPic_MetagrossMega[]; -extern const u32 gMonFrontPic_LatiasMega[]; -extern const u32 gMonFrontPic_LatiosMega[]; -#if P_GEN_4_POKEMON == TRUE -extern const u32 gMonFrontPic_LopunnyMega[]; -extern const u32 gMonFrontPic_GarchompMega[]; -extern const u32 gMonFrontPic_LucarioMega[]; -extern const u32 gMonFrontPic_AbomasnowMega[]; -extern const u32 gMonFrontPic_GalladeMega[]; -#endif -#if P_GEN_5_POKEMON == TRUE -extern const u32 gMonFrontPic_AudinoMega[]; -#endif -#if P_GEN_6_POKEMON == TRUE -extern const u32 gMonFrontPic_DiancieMega[]; -#endif -extern const u32 gMonFrontPic_RayquazaMega[]; -extern const u32 gMonFrontPic_KyogrePrimal[]; -extern const u32 gMonFrontPic_GroudonPrimal[]; -extern const u32 gMonFrontPic_RattataAlolan[]; -extern const u32 gMonFrontPic_RaticateAlolan[]; -extern const u32 gMonFrontPic_RaichuAlolan[]; -extern const u32 gMonFrontPic_SandshrewAlolan[]; -extern const u32 gMonFrontPic_SandslashAlolan[]; -extern const u32 gMonFrontPic_VulpixAlolan[]; -extern const u32 gMonFrontPic_NinetalesAlolan[]; -extern const u32 gMonFrontPic_DiglettAlolan[]; -extern const u32 gMonFrontPic_DugtrioAlolan[]; -extern const u32 gMonFrontPic_MeowthAlolan[]; -extern const u32 gMonFrontPic_PersianAlolan[]; -extern const u32 gMonFrontPic_GeodudeAlolan[]; -extern const u32 gMonFrontPic_GravelerAlolan[]; -extern const u32 gMonFrontPic_GolemAlolan[]; -extern const u32 gMonFrontPic_GrimerAlolan[]; -extern const u32 gMonFrontPic_MukAlolan[]; -extern const u32 gMonFrontPic_ExeggutorAlolan[]; -extern const u32 gMonFrontPic_MarowakAlolan[]; -extern const u32 gMonFrontPic_MeowthGalarian[]; -extern const u32 gMonFrontPic_PonytaGalarian[]; -extern const u32 gMonFrontPic_RapidashGalarian[]; -extern const u32 gMonFrontPic_SlowpokeGalarian[]; -extern const u32 gMonFrontPic_SlowbroGalarian[]; -extern const u32 gMonFrontPic_FarfetchdGalarian[]; -extern const u32 gMonFrontPic_WeezingGalarian[]; -extern const u32 gMonFrontPic_MrMimeGalarian[]; -extern const u32 gMonFrontPic_ArticunoGalarian[]; -extern const u32 gMonFrontPic_ZapdosGalarian[]; -extern const u32 gMonFrontPic_MoltresGalarian[]; -extern const u32 gMonFrontPic_SlowkingGalarian[]; -extern const u32 gMonFrontPic_CorsolaGalarian[]; -extern const u32 gMonFrontPic_ZigzagoonGalarian[]; -extern const u32 gMonFrontPic_LinooneGalarian[]; -#if P_GEN_5_POKEMON == TRUE -extern const u32 gMonFrontPic_DarumakaGalarian[]; -extern const u32 gMonFrontPic_DarmanitanGalarianStandardMode[]; -extern const u32 gMonFrontPic_YamaskGalarian[]; -extern const u32 gMonFrontPic_StunfiskGalarian[]; -#endif -extern const u32 gMonFrontPic_GrowlitheHisuian[]; -extern const u32 gMonFrontPic_ArcanineHisuian[]; -extern const u32 gMonFrontPic_VoltorbHisuian[]; -extern const u32 gMonFrontPic_ElectrodeHisuian[]; -extern const u32 gMonFrontPic_TyphlosionHisuian[]; -extern const u32 gMonFrontPic_QwilfishHisuian[]; -extern const u32 gMonFrontPic_SneaselHisuian[]; -extern const u32 gMonFrontPic_SneaselHisuianF[]; -#if P_GEN_5_POKEMON == TRUE -extern const u32 gMonFrontPic_SamurottHisuian[]; -extern const u32 gMonFrontPic_LilligantHisuian[]; -extern const u32 gMonFrontPic_ZoruaHisuian[]; -extern const u32 gMonFrontPic_ZoroarkHisuian[]; -extern const u32 gMonFrontPic_BraviaryHisuian[]; -#endif -#if P_GEN_6_POKEMON == TRUE -extern const u32 gMonFrontPic_SliggooHisuian[]; -extern const u32 gMonFrontPic_GoodraHisuian[]; -extern const u32 gMonFrontPic_AvaluggHisuian[]; -#endif -#if P_GEN_7_POKEMON == TRUE -extern const u32 gMonFrontPic_DecidueyeHisuian[]; -#endif -extern const u32 gMonFrontPic_PikachuCosplay[]; -extern const u32 gMonFrontPic_PikachuRockStar[]; -extern const u32 gMonFrontPic_PikachuBelle[]; -extern const u32 gMonFrontPic_PikachuPopStar[]; -extern const u32 gMonFrontPic_PikachuPhD[]; -extern const u32 gMonFrontPic_PikachuLibre[]; -extern const u32 gMonFrontPic_PikachuOriginalCap[]; -extern const u32 gMonFrontPic_PikachuHoennCap[]; -extern const u32 gMonFrontPic_PikachuSinnohCap[]; -extern const u32 gMonFrontPic_PikachuUnovaCap[]; -extern const u32 gMonFrontPic_PikachuKalosCap[]; -extern const u32 gMonFrontPic_PikachuAlolaCap[]; -extern const u32 gMonFrontPic_PikachuPartnerCap[]; -extern const u32 gMonFrontPic_PikachuWorldCap[]; -extern const u32 gMonFrontPic_PichuSpikyEared[]; -extern const u32 gMonFrontPic_UnownB[]; -extern const u32 gMonFrontPic_UnownC[]; -extern const u32 gMonFrontPic_UnownD[]; -extern const u32 gMonFrontPic_UnownE[]; -extern const u32 gMonFrontPic_UnownF[]; -extern const u32 gMonFrontPic_UnownG[]; -extern const u32 gMonFrontPic_UnownH[]; -extern const u32 gMonFrontPic_UnownI[]; -extern const u32 gMonFrontPic_UnownJ[]; -extern const u32 gMonFrontPic_UnownK[]; -extern const u32 gMonFrontPic_UnownL[]; -extern const u32 gMonFrontPic_UnownM[]; -extern const u32 gMonFrontPic_UnownN[]; -extern const u32 gMonFrontPic_UnownO[]; -extern const u32 gMonFrontPic_UnownP[]; -extern const u32 gMonFrontPic_UnownQ[]; -extern const u32 gMonFrontPic_UnownR[]; -extern const u32 gMonFrontPic_UnownS[]; -extern const u32 gMonFrontPic_UnownT[]; -extern const u32 gMonFrontPic_UnownU[]; -extern const u32 gMonFrontPic_UnownV[]; -extern const u32 gMonFrontPic_UnownW[]; -extern const u32 gMonFrontPic_UnownX[]; -extern const u32 gMonFrontPic_UnownY[]; -extern const u32 gMonFrontPic_UnownZ[]; -extern const u32 gMonFrontPic_UnownExclamationMark[]; -extern const u32 gMonFrontPic_UnownQuestionMark[]; -extern const u32 gMonFrontPic_CastformSunny[]; -extern const u32 gMonFrontPic_CastformRainy[]; -extern const u32 gMonFrontPic_CastformSnowy[]; -extern const u32 gMonFrontPic_DeoxysAttack[]; -extern const u32 gMonFrontPic_DeoxysDefense[]; -extern const u32 gMonFrontPic_DeoxysSpeed[]; -#if P_GEN_4_POKEMON == TRUE -extern const u32 gMonFrontPic_BurmySandyCloak[]; -extern const u32 gMonFrontPic_BurmyTrashCloak[]; -extern const u32 gMonFrontPic_WormadamSandyCloak[]; -extern const u32 gMonFrontPic_WormadamTrashCloak[]; -extern const u32 gMonFrontPic_CherrimSunshine[]; -extern const u32 gMonFrontPic_ShellosEastSea[]; -extern const u32 gMonFrontPic_GastrodonEastSea[]; -extern const u32 gMonFrontPic_RotomHeat[]; -extern const u32 gMonFrontPic_RotomWash[]; -extern const u32 gMonFrontPic_RotomFrost[]; -extern const u32 gMonFrontPic_RotomFan[]; -extern const u32 gMonFrontPic_RotomMow[]; -extern const u32 gMonFrontPic_DialgaOrigin[]; -extern const u32 gMonFrontPic_PalkiaOrigin[]; -extern const u32 gMonFrontPic_GiratinaOrigin[]; -extern const u32 gMonFrontPic_ShayminSky[]; -#endif -#if P_GEN_5_POKEMON == TRUE -extern const u32 gMonFrontPic_BasculinBlueStriped[]; -extern const u32 gMonFrontPic_BasculinWhiteStriped[]; -extern const u32 gMonFrontPic_DarmanitanZenMode[]; -extern const u32 gMonFrontPic_DarmanitanGalarianZenMode[]; -extern const u32 gMonFrontPic_SawsbuckSummer[]; -extern const u32 gMonFrontPic_SawsbuckAutumn[]; -extern const u32 gMonFrontPic_SawsbuckWinter[]; -extern const u32 gMonFrontPic_TornadusTherian[]; -extern const u32 gMonFrontPic_ThundurusTherian[]; -extern const u32 gMonFrontPic_LandorusTherian[]; -#endif -#if P_GEN_5_POKEMON == TRUE -extern const u32 gMonFrontPic_KyuremWhite[]; -extern const u32 gMonFrontPic_KyuremBlack[]; -extern const u32 gMonFrontPic_KeldeoResolute[]; -extern const u32 gMonFrontPic_MeloettaPirouette[]; -#endif -#if P_GEN_6_POKEMON == TRUE -extern const u32 gMonFrontPic_GreninjaAsh[]; -extern const u32 gMonFrontPic_VivillonPolar[]; -extern const u32 gMonFrontPic_VivillonTundra[]; -extern const u32 gMonFrontPic_VivillonContinental[]; -extern const u32 gMonFrontPic_VivillonGarden[]; -extern const u32 gMonFrontPic_VivillonElegant[]; -extern const u32 gMonFrontPic_VivillonMeadow[]; -extern const u32 gMonFrontPic_VivillonModern[]; -extern const u32 gMonFrontPic_VivillonMarine[]; -extern const u32 gMonFrontPic_VivillonArchipelago[]; -extern const u32 gMonFrontPic_VivillonHighPlains[]; -extern const u32 gMonFrontPic_VivillonSandstorm[]; -extern const u32 gMonFrontPic_VivillonRiver[]; -extern const u32 gMonFrontPic_VivillonMonsoon[]; -extern const u32 gMonFrontPic_VivillonSavanna[]; -extern const u32 gMonFrontPic_VivillonSun[]; -extern const u32 gMonFrontPic_VivillonOcean[]; -extern const u32 gMonFrontPic_VivillonJungle[]; -extern const u32 gMonFrontPic_VivillonFancy[]; -extern const u32 gMonFrontPic_VivillonPokeBall[]; -extern const u32 gMonFrontPic_FloetteEternalFlower[]; -extern const u32 gMonFrontPic_FurfrouHeartTrim[]; -extern const u32 gMonFrontPic_FurfrouStarTrim[]; -extern const u32 gMonFrontPic_FurfrouDiamondTrim[]; -extern const u32 gMonFrontPic_FurfrouDebutanteTrim[]; -extern const u32 gMonFrontPic_FurfrouMatronTrim[]; -extern const u32 gMonFrontPic_FurfrouDandyTrim[]; -extern const u32 gMonFrontPic_FurfrouLaReineTrim[]; -extern const u32 gMonFrontPic_FurfrouKabukiTrim[]; -extern const u32 gMonFrontPic_FurfrouPharaohTrim[]; -extern const u32 gMonFrontPic_MeowsticFemale[]; -extern const u32 gMonFrontPic_AegislashBlade[]; -extern const u32 gMonFrontPic_PumpkabooSmall[]; -extern const u32 gMonFrontPic_PumpkabooLarge[]; -extern const u32 gMonFrontPic_PumpkabooSuper[]; -extern const u32 gMonFrontPic_GourgeistSmall[]; -extern const u32 gMonFrontPic_GourgeistLarge[]; -extern const u32 gMonFrontPic_GourgeistSuper[]; -extern const u32 gMonFrontPic_XerneasActive[]; -extern const u32 gMonFrontPic_Zygarde10[]; -extern const u32 gMonFrontPic_ZygardeComplete[]; -extern const u32 gMonFrontPic_HoopaUnbound[]; -#endif -#if P_GEN_7_POKEMON == TRUE -extern const u32 gMonFrontPic_OricorioPomPom[]; -extern const u32 gMonFrontPic_OricorioPau[]; -extern const u32 gMonFrontPic_OricorioSensu[]; -extern const u32 gMonFrontPic_LycanrocMidnight[]; -extern const u32 gMonFrontPic_LycanrocDusk[]; -extern const u32 gMonFrontPic_WishiwashiSchool[]; -extern const u32 gMonFrontPic_MiniorCore[]; -extern const u32 gMonFrontPic_MimikyuBusted[]; -extern const u32 gMonFrontPic_NecrozmaDuskMane[]; -extern const u32 gMonFrontPic_NecrozmaDawnWings[]; -extern const u32 gMonFrontPic_NecrozmaUltra[]; -extern const u32 gMonFrontPic_MagearnaOriginalColor[]; -#endif -#if P_GEN_8_POKEMON == TRUE -extern const u32 gMonFrontPic_CramorantGulping[]; -extern const u32 gMonFrontPic_CramorantGorging[]; -extern const u32 gMonFrontPic_ToxtricityLowKey[]; -extern const u32 gMonFrontPic_AlcremieRubyCream[]; -extern const u32 gMonFrontPic_AlcremieMatchaCream[]; -extern const u32 gMonFrontPic_AlcremieMintCream[]; -extern const u32 gMonFrontPic_AlcremieLemonCream[]; -extern const u32 gMonFrontPic_AlcremieSaltedCream[]; -extern const u32 gMonFrontPic_AlcremieRubySwirl[]; -extern const u32 gMonFrontPic_AlcremieCaramelSwirl[]; -extern const u32 gMonFrontPic_AlcremieRainbowSwirl[]; -extern const u32 gMonFrontPic_EiscueNoiceFace[]; -extern const u32 gMonFrontPic_IndeedeeFemale[]; -extern const u32 gMonFrontPic_MorpekoHangry[]; -extern const u32 gMonFrontPic_ZacianCrownedSword[]; -extern const u32 gMonFrontPic_ZamazentaCrownedShield[]; -extern const u32 gMonFrontPic_EternatusEternamax[]; -extern const u32 gMonFrontPic_UrshifuRapidStrikeStyle[]; -extern const u32 gMonFrontPic_ZarudeDada[]; -extern const u32 gMonFrontPic_CalyrexIceRider[]; -extern const u32 gMonFrontPic_CalyrexShadowRider[]; -extern const u32 gMonFrontPic_EnamorusTherian[]; -extern const u32 gMonFrontPic_BasculegionFemale[]; -#endif -extern const u32 gMonFrontPic_Egg[]; - -extern const u32 gMonBackPic_CircledQuestionMark[]; -extern const u32 gMonBackPic_DoubleQuestionMark[]; -extern const u32 gMonBackPic_Bulbasaur[]; -extern const u32 gMonBackPic_Ivysaur[]; -extern const u32 gMonBackPic_Venusaur[]; -extern const u32 gMonBackPic_VenusaurF[]; -extern const u32 gMonBackPic_Charmander[]; -extern const u32 gMonBackPic_Charmeleon[]; -extern const u32 gMonBackPic_Charizard[]; -extern const u32 gMonBackPic_Squirtle[]; -extern const u32 gMonBackPic_Wartortle[]; -extern const u32 gMonBackPic_Blastoise[]; -extern const u32 gMonBackPic_Caterpie[]; -extern const u32 gMonBackPic_Metapod[]; -extern const u32 gMonBackPic_Butterfree[]; -extern const u32 gMonBackPic_ButterfreeF[]; -extern const u32 gMonBackPic_Weedle[]; -extern const u32 gMonBackPic_Kakuna[]; -extern const u32 gMonBackPic_Beedrill[]; -extern const u32 gMonBackPic_Pidgey[]; -extern const u32 gMonBackPic_Pidgeotto[]; -extern const u32 gMonBackPic_Pidgeot[]; -extern const u32 gMonBackPic_Rattata[]; -extern const u32 gMonBackPic_RattataF[]; -extern const u32 gMonBackPic_Raticate[]; -extern const u32 gMonBackPic_RaticateF[]; -extern const u32 gMonBackPic_Spearow[]; -extern const u32 gMonBackPic_Fearow[]; -extern const u32 gMonBackPic_Ekans[]; -extern const u32 gMonBackPic_Arbok[]; -extern const u32 gMonBackPic_Pikachu[]; -extern const u32 gMonBackPic_PikachuF[]; -extern const u32 gMonBackPic_Raichu[]; -extern const u32 gMonBackPic_Sandshrew[]; -extern const u32 gMonBackPic_Sandslash[]; -extern const u32 gMonBackPic_NidoranF[]; -extern const u32 gMonBackPic_Nidorina[]; -extern const u32 gMonBackPic_Nidoqueen[]; -extern const u32 gMonBackPic_NidoranM[]; -extern const u32 gMonBackPic_Nidorino[]; -extern const u32 gMonBackPic_Nidoking[]; -extern const u32 gMonBackPic_Clefairy[]; -extern const u32 gMonBackPic_Clefable[]; -extern const u32 gMonBackPic_Vulpix[]; -extern const u32 gMonBackPic_Ninetales[]; -extern const u32 gMonBackPic_Jigglypuff[]; -extern const u32 gMonBackPic_Wigglytuff[]; -extern const u32 gMonBackPic_Zubat[]; -extern const u32 gMonBackPic_ZubatF[]; -extern const u32 gMonBackPic_Golbat[]; -extern const u32 gMonBackPic_GolbatF[]; -extern const u32 gMonBackPic_Oddish[]; -extern const u32 gMonBackPic_Gloom[]; -extern const u32 gMonBackPic_GloomF[]; -extern const u32 gMonBackPic_Vileplume[]; -extern const u32 gMonBackPic_VileplumeF[]; -extern const u32 gMonBackPic_Paras[]; -extern const u32 gMonBackPic_Parasect[]; -extern const u32 gMonBackPic_Venonat[]; -extern const u32 gMonBackPic_Venomoth[]; -extern const u32 gMonBackPic_Diglett[]; -extern const u32 gMonBackPic_Dugtrio[]; -extern const u32 gMonBackPic_Meowth[]; -extern const u32 gMonBackPic_Persian[]; -extern const u32 gMonBackPic_Psyduck[]; -extern const u32 gMonBackPic_Golduck[]; -extern const u32 gMonBackPic_Mankey[]; -extern const u32 gMonBackPic_Primeape[]; -extern const u32 gMonBackPic_Growlithe[]; -extern const u32 gMonBackPic_Arcanine[]; -extern const u32 gMonBackPic_Poliwag[]; -extern const u32 gMonBackPic_Poliwhirl[]; -extern const u32 gMonBackPic_Poliwrath[]; -extern const u32 gMonBackPic_Abra[]; -extern const u32 gMonBackPic_Kadabra[]; -extern const u32 gMonBackPic_KadabraF[]; -extern const u32 gMonBackPic_Alakazam[]; -extern const u32 gMonBackPic_AlakazamF[]; -extern const u32 gMonBackPic_Machop[]; -extern const u32 gMonBackPic_Machoke[]; -extern const u32 gMonBackPic_Machamp[]; -extern const u32 gMonBackPic_Bellsprout[]; -extern const u32 gMonBackPic_Weepinbell[]; -extern const u32 gMonBackPic_Victreebel[]; -extern const u32 gMonBackPic_Tentacool[]; -extern const u32 gMonBackPic_Tentacruel[]; -extern const u32 gMonBackPic_Geodude[]; -extern const u32 gMonBackPic_Graveler[]; -extern const u32 gMonBackPic_Golem[]; -extern const u32 gMonBackPic_Ponyta[]; -extern const u32 gMonBackPic_Rapidash[]; -extern const u32 gMonBackPic_Slowpoke[]; -extern const u32 gMonBackPic_Slowbro[]; -extern const u32 gMonBackPic_Magnemite[]; -extern const u32 gMonBackPic_Magneton[]; -extern const u32 gMonBackPic_Farfetchd[]; -extern const u32 gMonBackPic_Doduo[]; -extern const u32 gMonBackPic_DoduoF[]; -extern const u32 gMonBackPic_Dodrio[]; -extern const u32 gMonBackPic_DodrioF[]; -extern const u32 gMonBackPic_Seel[]; -extern const u32 gMonBackPic_Dewgong[]; -extern const u32 gMonBackPic_Grimer[]; -extern const u32 gMonBackPic_Muk[]; -extern const u32 gMonBackPic_Shellder[]; -extern const u32 gMonBackPic_Cloyster[]; -extern const u32 gMonBackPic_Gastly[]; -extern const u32 gMonBackPic_Haunter[]; -extern const u32 gMonBackPic_Gengar[]; -extern const u32 gMonBackPic_Onix[]; -extern const u32 gMonBackPic_Drowzee[]; -extern const u32 gMonBackPic_Hypno[]; -extern const u32 gMonBackPic_HypnoF[]; -extern const u32 gMonBackPic_Krabby[]; -extern const u32 gMonBackPic_Kingler[]; -extern const u32 gMonBackPic_Voltorb[]; -extern const u32 gMonBackPic_Electrode[]; -extern const u32 gMonBackPic_Exeggcute[]; -extern const u32 gMonBackPic_Exeggutor[]; -extern const u32 gMonBackPic_Cubone[]; -extern const u32 gMonBackPic_Marowak[]; -extern const u32 gMonBackPic_Hitmonlee[]; -extern const u32 gMonBackPic_Hitmonchan[]; -extern const u32 gMonBackPic_Lickitung[]; -extern const u32 gMonBackPic_Koffing[]; -extern const u32 gMonBackPic_Weezing[]; -extern const u32 gMonBackPic_Rhyhorn[]; -extern const u32 gMonBackPic_RhyhornF[]; -extern const u32 gMonBackPic_Rhydon[]; -extern const u32 gMonBackPic_RhydonF[]; -extern const u32 gMonBackPic_Chansey[]; -extern const u32 gMonBackPic_Tangela[]; -extern const u32 gMonBackPic_Kangaskhan[]; -extern const u32 gMonBackPic_Horsea[]; -extern const u32 gMonBackPic_Seadra[]; -extern const u32 gMonBackPic_Goldeen[]; -extern const u32 gMonBackPic_GoldeenF[]; -extern const u32 gMonBackPic_Seaking[]; -extern const u32 gMonBackPic_SeakingF[]; -extern const u32 gMonBackPic_Staryu[]; -extern const u32 gMonBackPic_Starmie[]; -extern const u32 gMonBackPic_MrMime[]; -extern const u32 gMonBackPic_Scyther[]; -extern const u32 gMonBackPic_Jynx[]; -extern const u32 gMonBackPic_Electabuzz[]; -extern const u32 gMonBackPic_Magmar[]; -extern const u32 gMonBackPic_Pinsir[]; -extern const u32 gMonBackPic_Tauros[]; -extern const u32 gMonBackPic_Magikarp[]; -extern const u32 gMonBackPic_MagikarpF[]; -extern const u32 gMonBackPic_Gyarados[]; -extern const u32 gMonBackPic_GyaradosF[]; -extern const u32 gMonBackPic_Lapras[]; -extern const u32 gMonBackPic_Ditto[]; -extern const u32 gMonBackPic_Eevee[]; -extern const u32 gMonBackPic_EeveeF[]; -extern const u32 gMonBackPic_Vaporeon[]; -extern const u32 gMonBackPic_Jolteon[]; -extern const u32 gMonBackPic_Flareon[]; -extern const u32 gMonBackPic_Porygon[]; -extern const u32 gMonBackPic_Omanyte[]; -extern const u32 gMonBackPic_Omastar[]; -extern const u32 gMonBackPic_Kabuto[]; -extern const u32 gMonBackPic_Kabutops[]; -extern const u32 gMonBackPic_Aerodactyl[]; -extern const u32 gMonBackPic_Snorlax[]; -extern const u32 gMonBackPic_Articuno[]; -extern const u32 gMonBackPic_Zapdos[]; -extern const u32 gMonBackPic_Moltres[]; -extern const u32 gMonBackPic_Dratini[]; -extern const u32 gMonBackPic_Dragonair[]; -extern const u32 gMonBackPic_Dragonite[]; -extern const u32 gMonBackPic_Mewtwo[]; -extern const u32 gMonBackPic_Mew[]; -extern const u32 gMonBackPic_Chikorita[]; -extern const u32 gMonBackPic_Bayleef[]; -extern const u32 gMonBackPic_Meganium[]; -extern const u32 gMonBackPic_MeganiumF[]; -extern const u32 gMonBackPic_Cyndaquil[]; -extern const u32 gMonBackPic_Quilava[]; -extern const u32 gMonBackPic_Typhlosion[]; -extern const u32 gMonBackPic_Totodile[]; -extern const u32 gMonBackPic_Croconaw[]; -extern const u32 gMonBackPic_Feraligatr[]; -extern const u32 gMonBackPic_Sentret[]; -extern const u32 gMonBackPic_Furret[]; -extern const u32 gMonBackPic_Hoothoot[]; -extern const u32 gMonBackPic_Noctowl[]; -extern const u32 gMonBackPic_Ledyba[]; -extern const u32 gMonBackPic_LedybaF[]; -extern const u32 gMonBackPic_Ledian[]; -extern const u32 gMonBackPic_LedianF[]; -extern const u32 gMonBackPic_Spinarak[]; -extern const u32 gMonBackPic_Ariados[]; -extern const u32 gMonBackPic_Crobat[]; -extern const u32 gMonBackPic_Chinchou[]; -extern const u32 gMonBackPic_Lanturn[]; -extern const u32 gMonBackPic_Pichu[]; -extern const u32 gMonBackPic_Cleffa[]; -extern const u32 gMonBackPic_Igglybuff[]; -extern const u32 gMonBackPic_Togepi[]; -extern const u32 gMonBackPic_Togetic[]; -extern const u32 gMonBackPic_Natu[]; -extern const u32 gMonBackPic_Xatu[]; -extern const u32 gMonBackPic_Mareep[]; -extern const u32 gMonBackPic_Flaaffy[]; -extern const u32 gMonBackPic_Ampharos[]; -extern const u32 gMonBackPic_Bellossom[]; -extern const u32 gMonBackPic_Marill[]; -extern const u32 gMonBackPic_Azumarill[]; -extern const u32 gMonBackPic_Sudowoodo[]; -extern const u32 gMonBackPic_SudowoodoF[]; -extern const u32 gMonBackPic_Politoed[]; -extern const u32 gMonBackPic_PolitoedF[]; -extern const u32 gMonBackPic_Hoppip[]; -extern const u32 gMonBackPic_Skiploom[]; -extern const u32 gMonBackPic_Jumpluff[]; -extern const u32 gMonBackPic_Aipom[]; -extern const u32 gMonBackPic_AipomF[]; -extern const u32 gMonBackPic_Sunkern[]; -extern const u32 gMonBackPic_Sunflora[]; -extern const u32 gMonBackPic_Yanma[]; -extern const u32 gMonBackPic_Wooper[]; -extern const u32 gMonBackPic_WooperF[]; -extern const u32 gMonBackPic_Quagsire[]; -extern const u32 gMonBackPic_QuagsireF[]; -extern const u32 gMonBackPic_Espeon[]; -extern const u32 gMonBackPic_Umbreon[]; -extern const u32 gMonBackPic_Murkrow[]; -extern const u32 gMonBackPic_MurkrowF[]; -extern const u32 gMonBackPic_Slowking[]; -extern const u32 gMonBackPic_Misdreavus[]; -extern const u32 gMonBackPic_Unown[]; -extern const u32 gMonBackPic_Wobbuffet[]; -extern const u32 gMonBackPic_WobbuffetF[]; -extern const u32 gMonBackPic_Girafarig[]; -extern const u32 gMonBackPic_GirafarigF[]; -extern const u32 gMonBackPic_Pineco[]; -extern const u32 gMonBackPic_Forretress[]; -extern const u32 gMonBackPic_Dunsparce[]; -extern const u32 gMonBackPic_Gligar[]; -extern const u32 gMonBackPic_GligarF[]; -extern const u32 gMonBackPic_Steelix[]; -extern const u32 gMonBackPic_SteelixF[]; -extern const u32 gMonBackPic_Snubbull[]; -extern const u32 gMonBackPic_Granbull[]; -extern const u32 gMonBackPic_Qwilfish[]; -extern const u32 gMonBackPic_Scizor[]; -extern const u32 gMonBackPic_Shuckle[]; -extern const u32 gMonBackPic_Heracross[]; -extern const u32 gMonBackPic_HeracrossF[]; -extern const u32 gMonBackPic_Sneasel[]; -extern const u32 gMonBackPic_SneaselF[]; -extern const u32 gMonBackPic_Teddiursa[]; -extern const u32 gMonBackPic_Ursaring[]; -extern const u32 gMonBackPic_UrsaringF[]; -extern const u32 gMonBackPic_Slugma[]; -extern const u32 gMonBackPic_Magcargo[]; -extern const u32 gMonBackPic_Swinub[]; -extern const u32 gMonBackPic_Piloswine[]; -extern const u32 gMonBackPic_PiloswineF[]; -extern const u32 gMonBackPic_Corsola[]; -extern const u32 gMonBackPic_Remoraid[]; -extern const u32 gMonBackPic_Octillery[]; -extern const u32 gMonBackPic_OctilleryF[]; -extern const u32 gMonBackPic_Delibird[]; -extern const u32 gMonBackPic_Mantine[]; -extern const u32 gMonBackPic_Skarmory[]; -extern const u32 gMonBackPic_Houndour[]; -extern const u32 gMonBackPic_Houndoom[]; -extern const u32 gMonBackPic_HoundoomF[]; -extern const u32 gMonBackPic_Kingdra[]; -extern const u32 gMonBackPic_Phanpy[]; -extern const u32 gMonBackPic_Donphan[]; -extern const u32 gMonBackPic_DonphanF[]; -extern const u32 gMonBackPic_Porygon2[]; -extern const u32 gMonBackPic_Stantler[]; -extern const u32 gMonBackPic_Smeargle[]; -extern const u32 gMonBackPic_Tyrogue[]; -extern const u32 gMonBackPic_Hitmontop[]; -extern const u32 gMonBackPic_Smoochum[]; -extern const u32 gMonBackPic_Elekid[]; -extern const u32 gMonBackPic_Magby[]; -extern const u32 gMonBackPic_Miltank[]; -extern const u32 gMonBackPic_Blissey[]; -extern const u32 gMonBackPic_Raikou[]; -extern const u32 gMonBackPic_Entei[]; -extern const u32 gMonBackPic_Suicune[]; -extern const u32 gMonBackPic_Larvitar[]; -extern const u32 gMonBackPic_Pupitar[]; -extern const u32 gMonBackPic_Tyranitar[]; -extern const u32 gMonBackPic_Lugia[]; -extern const u32 gMonBackPic_HoOh[]; -extern const u32 gMonBackPic_Celebi[]; -extern const u32 gMonBackPic_Treecko[]; -extern const u32 gMonBackPic_Grovyle[]; -extern const u32 gMonBackPic_Sceptile[]; -extern const u32 gMonBackPic_Torchic[]; -extern const u32 gMonBackPic_TorchicF[]; -extern const u32 gMonBackPic_Combusken[]; -extern const u32 gMonBackPic_CombuskenF[]; -extern const u32 gMonBackPic_Blaziken[]; -extern const u32 gMonBackPic_BlazikenF[]; -extern const u32 gMonBackPic_Mudkip[]; -extern const u32 gMonBackPic_Marshtomp[]; -extern const u32 gMonBackPic_Swampert[]; -extern const u32 gMonBackPic_Poochyena[]; -extern const u32 gMonBackPic_Mightyena[]; -extern const u32 gMonBackPic_Zigzagoon[]; -extern const u32 gMonBackPic_Linoone[]; -extern const u32 gMonBackPic_Wurmple[]; -extern const u32 gMonBackPic_Silcoon[]; -extern const u32 gMonBackPic_Beautifly[]; -extern const u32 gMonBackPic_BeautiflyF[]; -extern const u32 gMonBackPic_Cascoon[]; -extern const u32 gMonBackPic_Dustox[]; -extern const u32 gMonBackPic_DustoxF[]; -extern const u32 gMonBackPic_Lotad[]; -extern const u32 gMonBackPic_Lombre[]; -extern const u32 gMonBackPic_Ludicolo[]; -extern const u32 gMonBackPic_LudicoloF[]; -extern const u32 gMonBackPic_Seedot[]; -extern const u32 gMonBackPic_Nuzleaf[]; -extern const u32 gMonBackPic_NuzleafF[]; -extern const u32 gMonBackPic_Shiftry[]; -extern const u32 gMonBackPic_ShiftryF[]; -extern const u32 gMonBackPic_Taillow[]; -extern const u32 gMonBackPic_Swellow[]; -extern const u32 gMonBackPic_Wingull[]; -extern const u32 gMonBackPic_Pelipper[]; -extern const u32 gMonBackPic_Ralts[]; -extern const u32 gMonBackPic_Kirlia[]; -extern const u32 gMonBackPic_Gardevoir[]; -extern const u32 gMonBackPic_Surskit[]; -extern const u32 gMonBackPic_Masquerain[]; -extern const u32 gMonBackPic_Shroomish[]; -extern const u32 gMonBackPic_Breloom[]; -extern const u32 gMonBackPic_Slakoth[]; -extern const u32 gMonBackPic_Vigoroth[]; -extern const u32 gMonBackPic_Slaking[]; -extern const u32 gMonBackPic_Nincada[]; -extern const u32 gMonBackPic_Ninjask[]; -extern const u32 gMonBackPic_Shedinja[]; -extern const u32 gMonBackPic_Whismur[]; -extern const u32 gMonBackPic_Loudred[]; -extern const u32 gMonBackPic_Exploud[]; -extern const u32 gMonBackPic_Makuhita[]; -extern const u32 gMonBackPic_Hariyama[]; -extern const u32 gMonBackPic_Azurill[]; -extern const u32 gMonBackPic_Nosepass[]; -extern const u32 gMonBackPic_Skitty[]; -extern const u32 gMonBackPic_Delcatty[]; -extern const u32 gMonBackPic_Sableye[]; -extern const u32 gMonBackPic_Mawile[]; -extern const u32 gMonBackPic_Aron[]; -extern const u32 gMonBackPic_Lairon[]; -extern const u32 gMonBackPic_Aggron[]; -extern const u32 gMonBackPic_Meditite[]; -extern const u32 gMonBackPic_MedititeF[]; -extern const u32 gMonBackPic_Medicham[]; -extern const u32 gMonBackPic_MedichamF[]; -extern const u32 gMonBackPic_Electrike[]; -extern const u32 gMonBackPic_Manectric[]; -extern const u32 gMonBackPic_Plusle[]; -extern const u32 gMonBackPic_Minun[]; -extern const u32 gMonBackPic_Volbeat[]; -extern const u32 gMonBackPic_Illumise[]; -extern const u32 gMonBackPic_Roselia[]; -extern const u32 gMonBackPic_RoseliaF[]; -extern const u32 gMonBackPic_Gulpin[]; -extern const u32 gMonBackPic_GulpinF[]; -extern const u32 gMonBackPic_Swalot[]; -extern const u32 gMonBackPic_SwalotF[]; -extern const u32 gMonBackPic_Carvanha[]; -extern const u32 gMonBackPic_Sharpedo[]; -extern const u32 gMonBackPic_Wailmer[]; -extern const u32 gMonBackPic_Wailord[]; -extern const u32 gMonBackPic_Numel[]; -extern const u32 gMonBackPic_NumelF[]; -extern const u32 gMonBackPic_Camerupt[]; -extern const u32 gMonBackPic_CameruptF[]; -extern const u32 gMonBackPic_Torkoal[]; -extern const u32 gMonBackPic_Spoink[]; -extern const u32 gMonBackPic_Grumpig[]; -extern const u32 gMonBackPic_Spinda[]; -extern const u32 gMonBackPic_Trapinch[]; -extern const u32 gMonBackPic_Vibrava[]; -extern const u32 gMonBackPic_Flygon[]; -extern const u32 gMonBackPic_Cacnea[]; -extern const u32 gMonBackPic_Cacturne[]; -extern const u32 gMonBackPic_Swablu[]; -extern const u32 gMonBackPic_Altaria[]; -extern const u32 gMonBackPic_Zangoose[]; -extern const u32 gMonBackPic_Seviper[]; -extern const u32 gMonBackPic_Lunatone[]; -extern const u32 gMonBackPic_Solrock[]; -extern const u32 gMonBackPic_Barboach[]; -extern const u32 gMonBackPic_Whiscash[]; -extern const u32 gMonBackPic_Corphish[]; -extern const u32 gMonBackPic_Crawdaunt[]; -extern const u32 gMonBackPic_Baltoy[]; -extern const u32 gMonBackPic_Claydol[]; -extern const u32 gMonBackPic_Lileep[]; -extern const u32 gMonBackPic_Cradily[]; -extern const u32 gMonBackPic_Anorith[]; -extern const u32 gMonBackPic_Armaldo[]; -extern const u32 gMonBackPic_Feebas[]; -extern const u32 gMonBackPic_Milotic[]; -extern const u32 gMonBackPic_MiloticF[]; -extern const u32 gMonBackPic_CastformNormal[]; -extern const u32 gMonBackPic_Kecleon[]; -extern const u32 gMonBackPic_Shuppet[]; -extern const u32 gMonBackPic_Banette[]; -extern const u32 gMonBackPic_Duskull[]; -extern const u32 gMonBackPic_Dusclops[]; -extern const u32 gMonBackPic_Tropius[]; -extern const u32 gMonBackPic_Chimecho[]; -extern const u32 gMonBackPic_Absol[]; -extern const u32 gMonBackPic_Wynaut[]; -extern const u32 gMonBackPic_Snorunt[]; -extern const u32 gMonBackPic_Glalie[]; -extern const u32 gMonBackPic_Spheal[]; -extern const u32 gMonBackPic_Sealeo[]; -extern const u32 gMonBackPic_Walrein[]; -extern const u32 gMonBackPic_Clamperl[]; -extern const u32 gMonBackPic_Huntail[]; -extern const u32 gMonBackPic_Gorebyss[]; -extern const u32 gMonBackPic_Relicanth[]; -extern const u32 gMonBackPic_RelicanthF[]; -extern const u32 gMonBackPic_Luvdisc[]; -extern const u32 gMonBackPic_Bagon[]; -extern const u32 gMonBackPic_Shelgon[]; -extern const u32 gMonBackPic_Salamence[]; -extern const u32 gMonBackPic_Beldum[]; -extern const u32 gMonBackPic_Metang[]; -extern const u32 gMonBackPic_Metagross[]; -extern const u32 gMonBackPic_Regirock[]; -extern const u32 gMonBackPic_Regice[]; -extern const u32 gMonBackPic_Registeel[]; -extern const u32 gMonBackPic_Latias[]; -extern const u32 gMonBackPic_Latios[]; -extern const u32 gMonBackPic_Kyogre[]; -extern const u32 gMonBackPic_Groudon[]; -extern const u32 gMonBackPic_Rayquaza[]; -extern const u32 gMonBackPic_Jirachi[]; -extern const u32 gMonBackPic_DeoxysNormal[]; -#if P_GEN_4_POKEMON == TRUE -extern const u32 gMonBackPic_Turtwig[]; -extern const u32 gMonBackPic_Grotle[]; -extern const u32 gMonBackPic_Torterra[]; -extern const u32 gMonBackPic_Chimchar[]; -extern const u32 gMonBackPic_Monferno[]; -extern const u32 gMonBackPic_Infernape[]; -extern const u32 gMonBackPic_Piplup[]; -extern const u32 gMonBackPic_Prinplup[]; -extern const u32 gMonBackPic_Empoleon[]; -extern const u32 gMonBackPic_Starly[]; -extern const u32 gMonBackPic_StarlyF[]; -extern const u32 gMonBackPic_Staravia[]; -extern const u32 gMonBackPic_StaraviaF[]; -extern const u32 gMonBackPic_Staraptor[]; -extern const u32 gMonBackPic_Bidoof[]; -extern const u32 gMonBackPic_BidoofF[]; -extern const u32 gMonBackPic_Bibarel[]; -extern const u32 gMonBackPic_Kricketot[]; -extern const u32 gMonBackPic_KricketotF[]; -extern const u32 gMonBackPic_Kricketune[]; -extern const u32 gMonBackPic_KricketuneF[]; -extern const u32 gMonBackPic_Shinx[]; -extern const u32 gMonBackPic_ShinxF[]; -extern const u32 gMonBackPic_Luxio[]; -extern const u32 gMonBackPic_LuxioF[]; -extern const u32 gMonBackPic_Luxray[]; -extern const u32 gMonBackPic_LuxrayF[]; -extern const u32 gMonBackPic_Budew[]; -extern const u32 gMonBackPic_Roserade[]; -extern const u32 gMonBackPic_RoseradeF[]; -extern const u32 gMonBackPic_Cranidos[]; -extern const u32 gMonBackPic_Rampardos[]; -extern const u32 gMonBackPic_Shieldon[]; -extern const u32 gMonBackPic_Bastiodon[]; -extern const u32 gMonBackPic_BurmyPlantCloak[]; -extern const u32 gMonBackPic_WormadamPlantCloak[]; -extern const u32 gMonBackPic_Mothim[]; -extern const u32 gMonBackPic_Combee[]; -extern const u32 gMonBackPic_Vespiquen[]; -extern const u32 gMonBackPic_Pachirisu[]; -extern const u32 gMonBackPic_Buizel[]; -extern const u32 gMonBackPic_BuizelF[]; -extern const u32 gMonBackPic_Floatzel[]; -extern const u32 gMonBackPic_FloatzelF[]; -extern const u32 gMonBackPic_Cherubi[]; -extern const u32 gMonBackPic_CherrimOvercast[]; -extern const u32 gMonBackPic_ShellosWestSea[]; -extern const u32 gMonBackPic_GastrodonWestSea[]; -extern const u32 gMonBackPic_Ambipom[]; -extern const u32 gMonBackPic_AmbipomF[]; -extern const u32 gMonBackPic_Drifloon[]; -extern const u32 gMonBackPic_Drifblim[]; -extern const u32 gMonBackPic_Buneary[]; -extern const u32 gMonBackPic_Lopunny[]; -extern const u32 gMonBackPic_Mismagius[]; -extern const u32 gMonBackPic_Honchkrow[]; -extern const u32 gMonBackPic_Glameow[]; -extern const u32 gMonBackPic_Purugly[]; -extern const u32 gMonBackPic_Chingling[]; -extern const u32 gMonBackPic_Stunky[]; -extern const u32 gMonBackPic_Skuntank[]; -extern const u32 gMonBackPic_Bronzor[]; -extern const u32 gMonBackPic_Bronzong[]; -extern const u32 gMonBackPic_Bonsly[]; -extern const u32 gMonBackPic_MimeJr[]; -extern const u32 gMonBackPic_Happiny[]; -extern const u32 gMonBackPic_Chatot[]; -extern const u32 gMonBackPic_Spiritomb[]; -extern const u32 gMonBackPic_Gible[]; -extern const u32 gMonBackPic_GibleF[]; -extern const u32 gMonBackPic_Gabite[]; -extern const u32 gMonBackPic_GabiteF[]; -extern const u32 gMonBackPic_Garchomp[]; -extern const u32 gMonBackPic_Munchlax[]; -extern const u32 gMonBackPic_Riolu[]; -extern const u32 gMonBackPic_Lucario[]; -extern const u32 gMonBackPic_Hippopotas[]; -extern const u32 gMonBackPic_Hippowdon[]; -extern const u32 gMonBackPic_Skorupi[]; -extern const u32 gMonBackPic_Drapion[]; -extern const u32 gMonBackPic_Croagunk[]; -extern const u32 gMonBackPic_CroagunkF[]; -extern const u32 gMonBackPic_Toxicroak[]; -extern const u32 gMonBackPic_ToxicroakF[]; -extern const u32 gMonBackPic_Carnivine[]; -extern const u32 gMonBackPic_Finneon[]; -extern const u32 gMonBackPic_FinneonF[]; -extern const u32 gMonBackPic_Lumineon[]; -extern const u32 gMonBackPic_LumineonF[]; -extern const u32 gMonBackPic_Mantyke[]; -extern const u32 gMonBackPic_Snover[]; -extern const u32 gMonBackPic_SnoverF[]; -extern const u32 gMonBackPic_Abomasnow[]; -extern const u32 gMonBackPic_Weavile[]; -extern const u32 gMonBackPic_WeavileF[]; -extern const u32 gMonBackPic_Magnezone[]; -extern const u32 gMonBackPic_Lickilicky[]; -extern const u32 gMonBackPic_Rhyperior[]; -extern const u32 gMonBackPic_RhyperiorF[]; -extern const u32 gMonBackPic_Tangrowth[]; -extern const u32 gMonBackPic_Electivire[]; -extern const u32 gMonBackPic_Magmortar[]; -extern const u32 gMonBackPic_Togekiss[]; -extern const u32 gMonBackPic_Yanmega[]; -extern const u32 gMonBackPic_Leafeon[]; -extern const u32 gMonBackPic_Glaceon[]; -extern const u32 gMonBackPic_Gliscor[]; -extern const u32 gMonBackPic_Mamoswine[]; -extern const u32 gMonBackPic_PorygonZ[]; -extern const u32 gMonBackPic_Gallade[]; -extern const u32 gMonBackPic_Probopass[]; -extern const u32 gMonBackPic_Dusknoir[]; -extern const u32 gMonBackPic_Froslass[]; -extern const u32 gMonBackPic_Rotom[]; -extern const u32 gMonBackPic_Uxie[]; -extern const u32 gMonBackPic_Mesprit[]; -extern const u32 gMonBackPic_Azelf[]; -extern const u32 gMonBackPic_Dialga[]; -extern const u32 gMonBackPic_Palkia[]; -extern const u32 gMonBackPic_Heatran[]; -extern const u32 gMonBackPic_Regigigas[]; -extern const u32 gMonBackPic_GiratinaAltered[]; -extern const u32 gMonBackPic_Cresselia[]; -extern const u32 gMonBackPic_Phione[]; -extern const u32 gMonBackPic_Manaphy[]; -extern const u32 gMonBackPic_Darkrai[]; -extern const u32 gMonBackPic_ShayminLand[]; -extern const u32 gMonBackPic_Arceus[]; -#endif -#if P_GEN_5_POKEMON == TRUE -extern const u32 gMonBackPic_Victini[]; -extern const u32 gMonBackPic_Snivy[]; -extern const u32 gMonBackPic_Servine[]; -extern const u32 gMonBackPic_Serperior[]; -extern const u32 gMonBackPic_Tepig[]; -extern const u32 gMonBackPic_Pignite[]; -extern const u32 gMonBackPic_Emboar[]; -extern const u32 gMonBackPic_Oshawott[]; -extern const u32 gMonBackPic_Dewott[]; -extern const u32 gMonBackPic_Samurott[]; -extern const u32 gMonBackPic_Patrat[]; -extern const u32 gMonBackPic_Watchog[]; -extern const u32 gMonBackPic_Lillipup[]; -extern const u32 gMonBackPic_Herdier[]; -extern const u32 gMonBackPic_Stoutland[]; -extern const u32 gMonBackPic_Purrloin[]; -extern const u32 gMonBackPic_Liepard[]; -extern const u32 gMonBackPic_Pansage[]; -extern const u32 gMonBackPic_Simisage[]; -extern const u32 gMonBackPic_Pansear[]; -extern const u32 gMonBackPic_Simisear[]; -extern const u32 gMonBackPic_Panpour[]; -extern const u32 gMonBackPic_Simipour[]; -extern const u32 gMonBackPic_Munna[]; -extern const u32 gMonBackPic_Musharna[]; -extern const u32 gMonBackPic_Pidove[]; -extern const u32 gMonBackPic_Tranquill[]; -extern const u32 gMonBackPic_Unfezant[]; -extern const u32 gMonBackPic_UnfezantF[]; -extern const u32 gMonBackPic_Blitzle[]; -extern const u32 gMonBackPic_Zebstrika[]; -extern const u32 gMonBackPic_Roggenrola[]; -extern const u32 gMonBackPic_Boldore[]; -extern const u32 gMonBackPic_Gigalith[]; -extern const u32 gMonBackPic_Woobat[]; -extern const u32 gMonBackPic_Swoobat[]; -extern const u32 gMonBackPic_Drilbur[]; -extern const u32 gMonBackPic_Excadrill[]; -extern const u32 gMonBackPic_Audino[]; -extern const u32 gMonBackPic_Timburr[]; -extern const u32 gMonBackPic_Gurdurr[]; -extern const u32 gMonBackPic_Conkeldurr[]; -extern const u32 gMonBackPic_Tympole[]; -extern const u32 gMonBackPic_Palpitoad[]; -extern const u32 gMonBackPic_Seismitoad[]; -extern const u32 gMonBackPic_Throh[]; -extern const u32 gMonBackPic_Sawk[]; -extern const u32 gMonBackPic_Sewaddle[]; -extern const u32 gMonBackPic_Swadloon[]; -extern const u32 gMonBackPic_Leavanny[]; -extern const u32 gMonBackPic_Venipede[]; -extern const u32 gMonBackPic_Whirlipede[]; -extern const u32 gMonBackPic_Scolipede[]; -extern const u32 gMonBackPic_Cottonee[]; -extern const u32 gMonBackPic_Whimsicott[]; -extern const u32 gMonBackPic_Petilil[]; -extern const u32 gMonBackPic_Lilligant[]; -extern const u32 gMonBackPic_BasculinRedStriped[]; -extern const u32 gMonBackPic_Sandile[]; -extern const u32 gMonBackPic_Krokorok[]; -extern const u32 gMonBackPic_Krookodile[]; -extern const u32 gMonBackPic_Darumaka[]; -extern const u32 gMonBackPic_DarmanitanStandardMode[]; -extern const u32 gMonBackPic_Maractus[]; -extern const u32 gMonBackPic_Dwebble[]; -extern const u32 gMonBackPic_Crustle[]; -extern const u32 gMonBackPic_Scraggy[]; -extern const u32 gMonBackPic_Scrafty[]; -extern const u32 gMonBackPic_Sigilyph[]; -extern const u32 gMonBackPic_Yamask[]; -extern const u32 gMonBackPic_Cofagrigus[]; -extern const u32 gMonBackPic_Tirtouga[]; -extern const u32 gMonBackPic_Carracosta[]; -extern const u32 gMonBackPic_Archen[]; -extern const u32 gMonBackPic_Archeops[]; -extern const u32 gMonBackPic_Trubbish[]; -extern const u32 gMonBackPic_Garbodor[]; -extern const u32 gMonBackPic_Zorua[]; -extern const u32 gMonBackPic_Zoroark[]; -extern const u32 gMonBackPic_Minccino[]; -extern const u32 gMonBackPic_Cinccino[]; -extern const u32 gMonBackPic_Gothita[]; -extern const u32 gMonBackPic_Gothorita[]; -extern const u32 gMonBackPic_Gothitelle[]; -extern const u32 gMonBackPic_Solosis[]; -extern const u32 gMonBackPic_Duosion[]; -extern const u32 gMonBackPic_Reuniclus[]; -extern const u32 gMonBackPic_Ducklett[]; -extern const u32 gMonBackPic_Swanna[]; -extern const u32 gMonBackPic_Vanillite[]; -extern const u32 gMonBackPic_Vanillish[]; -extern const u32 gMonBackPic_Vanilluxe[]; -extern const u32 gMonBackPic_Deerling[]; -extern const u32 gMonBackPic_SawsbuckSpring[]; -extern const u32 gMonBackPic_Emolga[]; -extern const u32 gMonBackPic_Karrablast[]; -extern const u32 gMonBackPic_Escavalier[]; -extern const u32 gMonBackPic_Foongus[]; -extern const u32 gMonBackPic_Amoonguss[]; -extern const u32 gMonBackPic_Frillish[]; -extern const u32 gMonBackPic_FrillishF[]; -extern const u32 gMonBackPic_Jellicent[]; -extern const u32 gMonBackPic_JellicentF[]; -extern const u32 gMonBackPic_Alomomola[]; -extern const u32 gMonBackPic_Joltik[]; -extern const u32 gMonBackPic_Galvantula[]; -extern const u32 gMonBackPic_Ferroseed[]; -extern const u32 gMonBackPic_Ferrothorn[]; -extern const u32 gMonBackPic_Klink[]; -extern const u32 gMonBackPic_Klang[]; -extern const u32 gMonBackPic_Klinklang[]; -extern const u32 gMonBackPic_Tynamo[]; -extern const u32 gMonBackPic_Eelektrik[]; -extern const u32 gMonBackPic_Eelektross[]; -extern const u32 gMonBackPic_Elgyem[]; -extern const u32 gMonBackPic_Beheeyem[]; -extern const u32 gMonBackPic_Litwick[]; -extern const u32 gMonBackPic_Lampent[]; -extern const u32 gMonBackPic_Chandelure[]; -extern const u32 gMonBackPic_Axew[]; -extern const u32 gMonBackPic_Fraxure[]; -extern const u32 gMonBackPic_Haxorus[]; -extern const u32 gMonBackPic_Cubchoo[]; -extern const u32 gMonBackPic_Beartic[]; -extern const u32 gMonBackPic_Cryogonal[]; -extern const u32 gMonBackPic_Shelmet[]; -extern const u32 gMonBackPic_Accelgor[]; -extern const u32 gMonBackPic_Stunfisk[]; -extern const u32 gMonBackPic_Mienfoo[]; -extern const u32 gMonBackPic_Mienshao[]; -extern const u32 gMonBackPic_Druddigon[]; -extern const u32 gMonBackPic_Golett[]; -extern const u32 gMonBackPic_Golurk[]; -extern const u32 gMonBackPic_Pawniard[]; -extern const u32 gMonBackPic_Bisharp[]; -extern const u32 gMonBackPic_Bouffalant[]; -extern const u32 gMonBackPic_Rufflet[]; -extern const u32 gMonBackPic_Braviary[]; -extern const u32 gMonBackPic_Vullaby[]; -extern const u32 gMonBackPic_Mandibuzz[]; -extern const u32 gMonBackPic_Heatmor[]; -extern const u32 gMonBackPic_Durant[]; -extern const u32 gMonBackPic_Deino[]; -extern const u32 gMonBackPic_Zweilous[]; -extern const u32 gMonBackPic_Hydreigon[]; -extern const u32 gMonBackPic_Larvesta[]; -extern const u32 gMonBackPic_Volcarona[]; -extern const u32 gMonBackPic_Cobalion[]; -extern const u32 gMonBackPic_Terrakion[]; -extern const u32 gMonBackPic_Virizion[]; -extern const u32 gMonBackPic_TornadusIncarnate[]; -extern const u32 gMonBackPic_ThundurusIncarnate[]; -extern const u32 gMonBackPic_Reshiram[]; -extern const u32 gMonBackPic_Zekrom[]; -extern const u32 gMonBackPic_LandorusIncarnate[]; -extern const u32 gMonBackPic_Kyurem[]; -extern const u32 gMonBackPic_KeldeoOrdinary[]; -extern const u32 gMonBackPic_MeloettaAria[]; -extern const u32 gMonBackPic_Genesect[]; -#endif -#if P_GEN_6_POKEMON == TRUE -extern const u32 gMonBackPic_Chespin[]; -extern const u32 gMonBackPic_Quilladin[]; -extern const u32 gMonBackPic_Chesnaught[]; -extern const u32 gMonBackPic_Fennekin[]; -extern const u32 gMonBackPic_Braixen[]; -extern const u32 gMonBackPic_Delphox[]; -extern const u32 gMonBackPic_Froakie[]; -extern const u32 gMonBackPic_Frogadier[]; -extern const u32 gMonBackPic_Greninja[]; -extern const u32 gMonBackPic_Bunnelby[]; -extern const u32 gMonBackPic_Diggersby[]; -extern const u32 gMonBackPic_Fletchling[]; -extern const u32 gMonBackPic_Fletchinder[]; -extern const u32 gMonBackPic_Talonflame[]; -extern const u32 gMonBackPic_Scatterbug[]; -extern const u32 gMonBackPic_Spewpa[]; -extern const u32 gMonBackPic_VivillonIcySnow[]; -extern const u32 gMonBackPic_Litleo[]; -extern const u32 gMonBackPic_Pyroar[]; -extern const u32 gMonBackPic_PyroarF[]; -extern const u32 gMonBackPic_Flabebe[]; -extern const u32 gMonBackPic_Floette[]; -extern const u32 gMonBackPic_Florges[]; -extern const u32 gMonBackPic_Skiddo[]; -extern const u32 gMonBackPic_Gogoat[]; -extern const u32 gMonBackPic_Pancham[]; -extern const u32 gMonBackPic_Pangoro[]; -extern const u32 gMonBackPic_FurfrouNatural[]; -extern const u32 gMonBackPic_Espurr[]; -extern const u32 gMonBackPic_MeowsticMale[]; -extern const u32 gMonBackPic_Honedge[]; -extern const u32 gMonBackPic_Doublade[]; -extern const u32 gMonBackPic_AegislashShield[]; -extern const u32 gMonBackPic_Spritzee[]; -extern const u32 gMonBackPic_Aromatisse[]; -extern const u32 gMonBackPic_Swirlix[]; -extern const u32 gMonBackPic_Slurpuff[]; -extern const u32 gMonBackPic_Inkay[]; -extern const u32 gMonBackPic_Malamar[]; -extern const u32 gMonBackPic_Binacle[]; -extern const u32 gMonBackPic_Barbaracle[]; -extern const u32 gMonBackPic_Skrelp[]; -extern const u32 gMonBackPic_Dragalge[]; -extern const u32 gMonBackPic_Clauncher[]; -extern const u32 gMonBackPic_Clawitzer[]; -extern const u32 gMonBackPic_Helioptile[]; -extern const u32 gMonBackPic_Heliolisk[]; -extern const u32 gMonBackPic_Tyrunt[]; -extern const u32 gMonBackPic_Tyrantrum[]; -extern const u32 gMonBackPic_Amaura[]; -extern const u32 gMonBackPic_Aurorus[]; -extern const u32 gMonBackPic_Sylveon[]; -extern const u32 gMonBackPic_Hawlucha[]; -extern const u32 gMonBackPic_Dedenne[]; -extern const u32 gMonBackPic_Carbink[]; -extern const u32 gMonBackPic_Goomy[]; -extern const u32 gMonBackPic_Sliggoo[]; -extern const u32 gMonBackPic_Goodra[]; -extern const u32 gMonBackPic_Klefki[]; -extern const u32 gMonBackPic_Phantump[]; -extern const u32 gMonBackPic_Trevenant[]; -extern const u32 gMonBackPic_PumpkabooAverage[]; -extern const u32 gMonBackPic_GourgeistAverage[]; -extern const u32 gMonBackPic_Bergmite[]; -extern const u32 gMonBackPic_Avalugg[]; -extern const u32 gMonBackPic_Noibat[]; -extern const u32 gMonBackPic_Noivern[]; -extern const u32 gMonBackPic_XerneasNeutral[]; -extern const u32 gMonBackPic_Yveltal[]; -extern const u32 gMonBackPic_Zygarde50[]; -extern const u32 gMonBackPic_Diancie[]; -extern const u32 gMonBackPic_HoopaConfined[]; -extern const u32 gMonBackPic_Volcanion[]; -#endif -#if P_GEN_7_POKEMON == TRUE -extern const u32 gMonBackPic_Rowlet[]; -extern const u32 gMonBackPic_Dartrix[]; -extern const u32 gMonBackPic_Decidueye[]; -extern const u32 gMonBackPic_Litten[]; -extern const u32 gMonBackPic_Torracat[]; -extern const u32 gMonBackPic_Incineroar[]; -extern const u32 gMonBackPic_Popplio[]; -extern const u32 gMonBackPic_Brionne[]; -extern const u32 gMonBackPic_Primarina[]; -extern const u32 gMonBackPic_Pikipek[]; -extern const u32 gMonBackPic_Trumbeak[]; -extern const u32 gMonBackPic_Toucannon[]; -extern const u32 gMonBackPic_Yungoos[]; -extern const u32 gMonBackPic_Gumshoos[]; -extern const u32 gMonBackPic_Grubbin[]; -extern const u32 gMonBackPic_Charjabug[]; -extern const u32 gMonBackPic_Vikavolt[]; -extern const u32 gMonBackPic_Crabrawler[]; -extern const u32 gMonBackPic_Crabominable[]; -extern const u32 gMonBackPic_OricorioBaile[]; -extern const u32 gMonBackPic_Cutiefly[]; -extern const u32 gMonBackPic_Ribombee[]; -extern const u32 gMonBackPic_Rockruff[]; -extern const u32 gMonBackPic_LycanrocMidday[]; -extern const u32 gMonBackPic_WishiwashiSolo[]; -extern const u32 gMonBackPic_Mareanie[]; -extern const u32 gMonBackPic_Toxapex[]; -extern const u32 gMonBackPic_Mudbray[]; -extern const u32 gMonBackPic_Mudsdale[]; -extern const u32 gMonBackPic_Dewpider[]; -extern const u32 gMonBackPic_Araquanid[]; -extern const u32 gMonBackPic_Fomantis[]; -extern const u32 gMonBackPic_Lurantis[]; -extern const u32 gMonBackPic_Morelull[]; -extern const u32 gMonBackPic_Shiinotic[]; -extern const u32 gMonBackPic_Salandit[]; -extern const u32 gMonBackPic_Salazzle[]; -extern const u32 gMonBackPic_Stufful[]; -extern const u32 gMonBackPic_Bewear[]; -extern const u32 gMonBackPic_Bounsweet[]; -extern const u32 gMonBackPic_Steenee[]; -extern const u32 gMonBackPic_Tsareena[]; -extern const u32 gMonBackPic_Comfey[]; -extern const u32 gMonBackPic_Oranguru[]; -extern const u32 gMonBackPic_Passimian[]; -extern const u32 gMonBackPic_Wimpod[]; -extern const u32 gMonBackPic_Golisopod[]; -extern const u32 gMonBackPic_Sandygast[]; -extern const u32 gMonBackPic_Palossand[]; -extern const u32 gMonBackPic_Pyukumuku[]; -extern const u32 gMonBackPic_TypeNull[]; -extern const u32 gMonBackPic_Silvally[]; -extern const u32 gMonBackPic_MiniorMeteor[]; -extern const u32 gMonBackPic_Komala[]; -extern const u32 gMonBackPic_Turtonator[]; -extern const u32 gMonBackPic_Togedemaru[]; -extern const u32 gMonBackPic_MimikyuDisguised[]; -extern const u32 gMonBackPic_Bruxish[]; -extern const u32 gMonBackPic_Drampa[]; -extern const u32 gMonBackPic_Dhelmise[]; -extern const u32 gMonBackPic_JangmoO[]; -extern const u32 gMonBackPic_HakamoO[]; -extern const u32 gMonBackPic_KommoO[]; -extern const u32 gMonBackPic_TapuKoko[]; -extern const u32 gMonBackPic_TapuLele[]; -extern const u32 gMonBackPic_TapuBulu[]; -extern const u32 gMonBackPic_TapuFini[]; -extern const u32 gMonBackPic_Cosmog[]; -extern const u32 gMonBackPic_Cosmoem[]; -extern const u32 gMonBackPic_Solgaleo[]; -extern const u32 gMonBackPic_Lunala[]; -extern const u32 gMonBackPic_Nihilego[]; -extern const u32 gMonBackPic_Buzzwole[]; -extern const u32 gMonBackPic_Pheromosa[]; -extern const u32 gMonBackPic_Xurkitree[]; -extern const u32 gMonBackPic_Celesteela[]; -extern const u32 gMonBackPic_Kartana[]; -extern const u32 gMonBackPic_Guzzlord[]; -extern const u32 gMonBackPic_Necrozma[]; -extern const u32 gMonBackPic_Magearna[]; -extern const u32 gMonBackPic_Marshadow[]; -extern const u32 gMonBackPic_Poipole[]; -extern const u32 gMonBackPic_Naganadel[]; -extern const u32 gMonBackPic_Stakataka[]; -extern const u32 gMonBackPic_Blacephalon[]; -extern const u32 gMonBackPic_Zeraora[]; -extern const u32 gMonBackPic_Meltan[]; -extern const u32 gMonBackPic_Melmetal[]; -#endif -#if P_GEN_8_POKEMON == TRUE -extern const u32 gMonBackPic_Grookey[]; -extern const u32 gMonBackPic_Thwackey[]; -extern const u32 gMonBackPic_Rillaboom[]; -extern const u32 gMonBackPic_Scorbunny[]; -extern const u32 gMonBackPic_Raboot[]; -extern const u32 gMonBackPic_Cinderace[]; -extern const u32 gMonBackPic_Sobble[]; -extern const u32 gMonBackPic_Drizzile[]; -extern const u32 gMonBackPic_Inteleon[]; -extern const u32 gMonBackPic_Skwovet[]; -extern const u32 gMonBackPic_Greedent[]; -extern const u32 gMonBackPic_Rookidee[]; -extern const u32 gMonBackPic_Corvisquire[]; -extern const u32 gMonBackPic_Corviknight[]; -extern const u32 gMonBackPic_Blipbug[]; -extern const u32 gMonBackPic_Dottler[]; -extern const u32 gMonBackPic_Orbeetle[]; -extern const u32 gMonBackPic_Nickit[]; -extern const u32 gMonBackPic_Thievul[]; -extern const u32 gMonBackPic_Gossifleur[]; -extern const u32 gMonBackPic_Eldegoss[]; -extern const u32 gMonBackPic_Wooloo[]; -extern const u32 gMonBackPic_Dubwool[]; -extern const u32 gMonBackPic_Chewtle[]; -extern const u32 gMonBackPic_Drednaw[]; -extern const u32 gMonBackPic_Yamper[]; -extern const u32 gMonBackPic_Boltund[]; -extern const u32 gMonBackPic_Rolycoly[]; -extern const u32 gMonBackPic_Carkol[]; -extern const u32 gMonBackPic_Coalossal[]; -extern const u32 gMonBackPic_Applin[]; -extern const u32 gMonBackPic_Flapple[]; -extern const u32 gMonBackPic_Appletun[]; -extern const u32 gMonBackPic_Silicobra[]; -extern const u32 gMonBackPic_Sandaconda[]; -extern const u32 gMonBackPic_Cramorant[]; -extern const u32 gMonBackPic_Arrokuda[]; -extern const u32 gMonBackPic_Barraskewda[]; -extern const u32 gMonBackPic_Toxel[]; -extern const u32 gMonBackPic_ToxtricityAmped[]; -extern const u32 gMonBackPic_Sizzlipede[]; -extern const u32 gMonBackPic_Centiskorch[]; -extern const u32 gMonBackPic_Clobbopus[]; -extern const u32 gMonBackPic_Grapploct[]; -extern const u32 gMonBackPic_Sinistea[]; -extern const u32 gMonBackPic_Polteageist[]; -extern const u32 gMonBackPic_Hatenna[]; -extern const u32 gMonBackPic_Hattrem[]; -extern const u32 gMonBackPic_Hatterene[]; -extern const u32 gMonBackPic_Impidimp[]; -extern const u32 gMonBackPic_Morgrem[]; -extern const u32 gMonBackPic_Grimmsnarl[]; -extern const u32 gMonBackPic_Obstagoon[]; -extern const u32 gMonBackPic_Perrserker[]; -extern const u32 gMonBackPic_Cursola[]; -extern const u32 gMonBackPic_Sirfetchd[]; -extern const u32 gMonBackPic_MrRime[]; -extern const u32 gMonBackPic_Runerigus[]; -extern const u32 gMonBackPic_Milcery[]; -extern const u32 gMonBackPic_Alcremie[]; -extern const u32 gMonBackPic_Falinks[]; -extern const u32 gMonBackPic_Pincurchin[]; -extern const u32 gMonBackPic_Snom[]; -extern const u32 gMonBackPic_Frosmoth[]; -extern const u32 gMonBackPic_Stonjourner[]; -extern const u32 gMonBackPic_EiscueIceFace[]; -extern const u32 gMonBackPic_IndeedeeMale[]; -extern const u32 gMonBackPic_MorpekoFullBelly[]; -extern const u32 gMonBackPic_Cufant[]; -extern const u32 gMonBackPic_Copperajah[]; -extern const u32 gMonBackPic_Dracozolt[]; -extern const u32 gMonBackPic_Arctozolt[]; -extern const u32 gMonBackPic_Dracovish[]; -extern const u32 gMonBackPic_Arctovish[]; -extern const u32 gMonBackPic_Duraludon[]; -extern const u32 gMonBackPic_Dreepy[]; -extern const u32 gMonBackPic_Drakloak[]; -extern const u32 gMonBackPic_Dragapult[]; -extern const u32 gMonBackPic_ZacianHeroOfManyBattles[]; -extern const u32 gMonBackPic_ZamazentaHeroOfManyBattles[]; -extern const u32 gMonBackPic_Eternatus[]; -extern const u32 gMonBackPic_Kubfu[]; -extern const u32 gMonBackPic_UrshifuSingleStrikeStyle[]; -extern const u32 gMonBackPic_Zarude[]; -extern const u32 gMonBackPic_Regieleki[]; -extern const u32 gMonBackPic_Regidrago[]; -extern const u32 gMonBackPic_Glastrier[]; -extern const u32 gMonBackPic_Spectrier[]; -extern const u32 gMonBackPic_Calyrex[]; -extern const u32 gMonBackPic_Wyrdeer[]; -extern const u32 gMonBackPic_Kleavor[]; -extern const u32 gMonBackPic_Ursaluna[]; -extern const u32 gMonBackPic_BasculegionMale[]; -extern const u32 gMonBackPic_Sneasler[]; -extern const u32 gMonBackPic_Overqwil[]; -extern const u32 gMonBackPic_EnamorusIncarnate[]; -#endif -extern const u32 gMonBackPic_VenusaurMega[]; -extern const u32 gMonBackPic_CharizardMegaX[]; -extern const u32 gMonBackPic_CharizardMegaY[]; -extern const u32 gMonBackPic_BlastoiseMega[]; -extern const u32 gMonBackPic_BeedrillMega[]; -extern const u32 gMonBackPic_PidgeotMega[]; -extern const u32 gMonBackPic_AlakazamMega[]; -extern const u32 gMonBackPic_SlowbroMega[]; -extern const u32 gMonBackPic_GengarMega[]; -extern const u32 gMonBackPic_KangaskhanMega[]; -extern const u32 gMonBackPic_PinsirMega[]; -extern const u32 gMonBackPic_GyaradosMega[]; -extern const u32 gMonBackPic_AerodactylMega[]; -extern const u32 gMonBackPic_MewtwoMegaX[]; -extern const u32 gMonBackPic_MewtwoMegaY[]; -extern const u32 gMonBackPic_AmpharosMega[]; -extern const u32 gMonBackPic_SteelixMega[]; -extern const u32 gMonBackPic_ScizorMega[]; -extern const u32 gMonBackPic_HeracrossMega[]; -extern const u32 gMonBackPic_HoundoomMega[]; -extern const u32 gMonBackPic_TyranitarMega[]; -extern const u32 gMonBackPic_SceptileMega[]; -extern const u32 gMonBackPic_BlazikenMega[]; -extern const u32 gMonBackPic_SwampertMega[]; -extern const u32 gMonBackPic_GardevoirMega[]; -extern const u32 gMonBackPic_SableyeMega[]; -extern const u32 gMonBackPic_MawileMega[]; -extern const u32 gMonBackPic_AggronMega[]; -extern const u32 gMonBackPic_MedichamMega[]; -extern const u32 gMonBackPic_ManectricMega[]; -extern const u32 gMonBackPic_SharpedoMega[]; -extern const u32 gMonBackPic_CameruptMega[]; -extern const u32 gMonBackPic_AltariaMega[]; -extern const u32 gMonBackPic_BanetteMega[]; -extern const u32 gMonBackPic_AbsolMega[]; -extern const u32 gMonBackPic_GlalieMega[]; -extern const u32 gMonBackPic_SalamenceMega[]; -extern const u32 gMonBackPic_MetagrossMega[]; -extern const u32 gMonBackPic_LatiasMega[]; -extern const u32 gMonBackPic_LatiosMega[]; -#if P_GEN_4_POKEMON == TRUE -extern const u32 gMonBackPic_LopunnyMega[]; -extern const u32 gMonBackPic_GarchompMega[]; -extern const u32 gMonBackPic_LucarioMega[]; -extern const u32 gMonBackPic_AbomasnowMega[]; -extern const u32 gMonBackPic_GalladeMega[]; -#endif -#if P_GEN_5_POKEMON == TRUE -extern const u32 gMonBackPic_AudinoMega[]; -#endif -#if P_GEN_6_POKEMON == TRUE -extern const u32 gMonBackPic_DiancieMega[]; -#endif -extern const u32 gMonBackPic_RayquazaMega[]; -extern const u32 gMonBackPic_KyogrePrimal[]; -extern const u32 gMonBackPic_GroudonPrimal[]; -extern const u32 gMonBackPic_RattataAlolan[]; -extern const u32 gMonBackPic_RaticateAlolan[]; -extern const u32 gMonBackPic_RaichuAlolan[]; -extern const u32 gMonBackPic_SandshrewAlolan[]; -extern const u32 gMonBackPic_SandslashAlolan[]; -extern const u32 gMonBackPic_VulpixAlolan[]; -extern const u32 gMonBackPic_NinetalesAlolan[]; -extern const u32 gMonBackPic_DiglettAlolan[]; -extern const u32 gMonBackPic_DugtrioAlolan[]; -extern const u32 gMonBackPic_MeowthAlolan[]; -extern const u32 gMonBackPic_PersianAlolan[]; -extern const u32 gMonBackPic_GeodudeAlolan[]; -extern const u32 gMonBackPic_GravelerAlolan[]; -extern const u32 gMonBackPic_GolemAlolan[]; -extern const u32 gMonBackPic_GrimerAlolan[]; -extern const u32 gMonBackPic_MukAlolan[]; -extern const u32 gMonBackPic_ExeggutorAlolan[]; -extern const u32 gMonBackPic_MarowakAlolan[]; -extern const u32 gMonBackPic_MeowthGalarian[]; -extern const u32 gMonBackPic_PonytaGalarian[]; -extern const u32 gMonBackPic_RapidashGalarian[]; -extern const u32 gMonBackPic_SlowpokeGalarian[]; -extern const u32 gMonBackPic_SlowbroGalarian[]; -extern const u32 gMonBackPic_FarfetchdGalarian[]; -extern const u32 gMonBackPic_WeezingGalarian[]; -extern const u32 gMonBackPic_MrMimeGalarian[]; -extern const u32 gMonBackPic_ArticunoGalarian[]; -extern const u32 gMonBackPic_ZapdosGalarian[]; -extern const u32 gMonBackPic_MoltresGalarian[]; -extern const u32 gMonBackPic_SlowkingGalarian[]; -extern const u32 gMonBackPic_CorsolaGalarian[]; -extern const u32 gMonBackPic_ZigzagoonGalarian[]; -extern const u32 gMonBackPic_LinooneGalarian[]; -#if P_GEN_5_POKEMON == TRUE -extern const u32 gMonBackPic_DarumakaGalarian[]; -extern const u32 gMonBackPic_DarmanitanGalarianStandardMode[]; -extern const u32 gMonBackPic_YamaskGalarian[]; -extern const u32 gMonBackPic_StunfiskGalarian[]; -#endif -extern const u32 gMonBackPic_GrowlitheHisuian[]; -extern const u32 gMonBackPic_ArcanineHisuian[]; -extern const u32 gMonBackPic_VoltorbHisuian[]; -extern const u32 gMonBackPic_ElectrodeHisuian[]; -extern const u32 gMonBackPic_TyphlosionHisuian[]; -extern const u32 gMonBackPic_QwilfishHisuian[]; -extern const u32 gMonBackPic_SneaselHisuian[]; -extern const u32 gMonBackPic_SneaselHisuianF[]; -#if P_GEN_5_POKEMON == TRUE -extern const u32 gMonBackPic_SamurottHisuian[]; -extern const u32 gMonBackPic_LilligantHisuian[]; -extern const u32 gMonBackPic_ZoruaHisuian[]; -extern const u32 gMonBackPic_ZoroarkHisuian[]; -extern const u32 gMonBackPic_BraviaryHisuian[]; -#endif -#if P_GEN_6_POKEMON == TRUE -extern const u32 gMonBackPic_SliggooHisuian[]; -extern const u32 gMonBackPic_GoodraHisuian[]; -extern const u32 gMonBackPic_AvaluggHisuian[]; -#endif -#if P_GEN_7_POKEMON == TRUE -extern const u32 gMonBackPic_DecidueyeHisuian[]; -#endif -extern const u32 gMonBackPic_PikachuCosplay[]; -extern const u32 gMonBackPic_PikachuRockStar[]; -extern const u32 gMonBackPic_PikachuBelle[]; -extern const u32 gMonBackPic_PikachuPopStar[]; -extern const u32 gMonBackPic_PikachuPhD[]; -extern const u32 gMonBackPic_PikachuLibre[]; -extern const u32 gMonBackPic_PikachuOriginalCap[]; -extern const u32 gMonBackPic_PikachuHoennCap[]; -extern const u32 gMonBackPic_PikachuSinnohCap[]; -extern const u32 gMonBackPic_PikachuUnovaCap[]; -extern const u32 gMonBackPic_PikachuKalosCap[]; -extern const u32 gMonBackPic_PikachuAlolaCap[]; -extern const u32 gMonBackPic_PikachuPartnerCap[]; -extern const u32 gMonBackPic_PikachuWorldCap[]; -extern const u32 gMonBackPic_PichuSpikyEared[]; -extern const u32 gMonBackPic_UnownB[]; -extern const u32 gMonBackPic_UnownC[]; -extern const u32 gMonBackPic_UnownD[]; -extern const u32 gMonBackPic_UnownE[]; -extern const u32 gMonBackPic_UnownF[]; -extern const u32 gMonBackPic_UnownG[]; -extern const u32 gMonBackPic_UnownH[]; -extern const u32 gMonBackPic_UnownI[]; -extern const u32 gMonBackPic_UnownJ[]; -extern const u32 gMonBackPic_UnownK[]; -extern const u32 gMonBackPic_UnownL[]; -extern const u32 gMonBackPic_UnownM[]; -extern const u32 gMonBackPic_UnownN[]; -extern const u32 gMonBackPic_UnownO[]; -extern const u32 gMonBackPic_UnownP[]; -extern const u32 gMonBackPic_UnownQ[]; -extern const u32 gMonBackPic_UnownR[]; -extern const u32 gMonBackPic_UnownS[]; -extern const u32 gMonBackPic_UnownT[]; -extern const u32 gMonBackPic_UnownU[]; -extern const u32 gMonBackPic_UnownV[]; -extern const u32 gMonBackPic_UnownW[]; -extern const u32 gMonBackPic_UnownX[]; -extern const u32 gMonBackPic_UnownY[]; -extern const u32 gMonBackPic_UnownZ[]; -extern const u32 gMonBackPic_UnownExclamationMark[]; -extern const u32 gMonBackPic_UnownQuestionMark[]; -extern const u32 gMonBackPic_CastformSunny[]; -extern const u32 gMonBackPic_CastformRainy[]; -extern const u32 gMonBackPic_CastformSnowy[]; -extern const u32 gMonBackPic_DeoxysAttack[]; -extern const u32 gMonBackPic_DeoxysDefense[]; -extern const u32 gMonBackPic_DeoxysSpeed[]; -#if P_GEN_4_POKEMON == TRUE -extern const u32 gMonBackPic_BurmySandyCloak[]; -extern const u32 gMonBackPic_BurmyTrashCloak[]; -extern const u32 gMonBackPic_WormadamSandyCloak[]; -extern const u32 gMonBackPic_WormadamTrashCloak[]; -extern const u32 gMonBackPic_CherrimSunshine[]; -extern const u32 gMonBackPic_ShellosEastSea[]; -extern const u32 gMonBackPic_GastrodonEastSea[]; -extern const u32 gMonBackPic_RotomHeat[]; -extern const u32 gMonBackPic_RotomWash[]; -extern const u32 gMonBackPic_RotomFrost[]; -extern const u32 gMonBackPic_RotomFan[]; -extern const u32 gMonBackPic_RotomMow[]; -extern const u32 gMonBackPic_DialgaOrigin[]; -extern const u32 gMonBackPic_PalkiaOrigin[]; -extern const u32 gMonBackPic_GiratinaOrigin[]; -extern const u32 gMonBackPic_ShayminSky[]; -#endif -#if P_GEN_5_POKEMON == TRUE -extern const u32 gMonBackPic_BasculinBlueStriped[]; -extern const u32 gMonBackPic_BasculinWhiteStriped[]; -extern const u32 gMonBackPic_DarmanitanZenMode[]; -extern const u32 gMonBackPic_DarmanitanGalarianZenMode[]; -extern const u32 gMonBackPic_SawsbuckSummer[]; -extern const u32 gMonBackPic_SawsbuckAutumn[]; -extern const u32 gMonBackPic_SawsbuckWinter[]; -extern const u32 gMonBackPic_TornadusTherian[]; -extern const u32 gMonBackPic_ThundurusTherian[]; -extern const u32 gMonBackPic_LandorusTherian[]; -extern const u32 gMonBackPic_KyuremWhite[]; -extern const u32 gMonBackPic_KyuremBlack[]; -extern const u32 gMonBackPic_KeldeoResolute[]; -extern const u32 gMonBackPic_MeloettaPirouette[]; -#endif -#if P_GEN_6_POKEMON == TRUE -extern const u32 gMonBackPic_GreninjaAsh[]; -extern const u32 gMonBackPic_VivillonPolar[]; -extern const u32 gMonBackPic_VivillonTundra[]; -extern const u32 gMonBackPic_VivillonContinental[]; -extern const u32 gMonBackPic_VivillonGarden[]; -extern const u32 gMonBackPic_VivillonElegant[]; -extern const u32 gMonBackPic_VivillonMeadow[]; -extern const u32 gMonBackPic_VivillonModern[]; -extern const u32 gMonBackPic_VivillonMarine[]; -extern const u32 gMonBackPic_VivillonArchipelago[]; -extern const u32 gMonBackPic_VivillonHighPlains[]; -extern const u32 gMonBackPic_VivillonSandstorm[]; -extern const u32 gMonBackPic_VivillonRiver[]; -extern const u32 gMonBackPic_VivillonMonsoon[]; -extern const u32 gMonBackPic_VivillonSavanna[]; -extern const u32 gMonBackPic_VivillonSun[]; -extern const u32 gMonBackPic_VivillonOcean[]; -extern const u32 gMonBackPic_VivillonJungle[]; -extern const u32 gMonBackPic_VivillonFancy[]; -extern const u32 gMonBackPic_VivillonPokeBall[]; -extern const u32 gMonBackPic_FloetteEternalFlower[]; -extern const u32 gMonBackPic_FurfrouHeartTrim[]; -extern const u32 gMonBackPic_FurfrouStarTrim[]; -extern const u32 gMonBackPic_FurfrouDiamondTrim[]; -extern const u32 gMonBackPic_FurfrouDebutanteTrim[]; -extern const u32 gMonBackPic_FurfrouMatronTrim[]; -extern const u32 gMonBackPic_FurfrouDandyTrim[]; -extern const u32 gMonBackPic_FurfrouLaReineTrim[]; -extern const u32 gMonBackPic_FurfrouKabukiTrim[]; -extern const u32 gMonBackPic_FurfrouPharaohTrim[]; -extern const u32 gMonBackPic_MeowsticFemale[]; -extern const u32 gMonBackPic_AegislashBlade[]; -extern const u32 gMonBackPic_PumpkabooSmall[]; -extern const u32 gMonBackPic_PumpkabooLarge[]; -extern const u32 gMonBackPic_PumpkabooSuper[]; -extern const u32 gMonBackPic_GourgeistSmall[]; -extern const u32 gMonBackPic_GourgeistLarge[]; -extern const u32 gMonBackPic_GourgeistSuper[]; -extern const u32 gMonBackPic_XerneasActive[]; -extern const u32 gMonBackPic_Zygarde10[]; -extern const u32 gMonBackPic_ZygardeComplete[]; -extern const u32 gMonBackPic_HoopaUnbound[]; -#endif -#if P_GEN_7_POKEMON == TRUE -extern const u32 gMonBackPic_OricorioPomPom[]; -extern const u32 gMonBackPic_OricorioPau[]; -extern const u32 gMonBackPic_OricorioSensu[]; -extern const u32 gMonBackPic_LycanrocMidnight[]; -extern const u32 gMonBackPic_LycanrocDusk[]; -extern const u32 gMonBackPic_WishiwashiSchool[]; -extern const u32 gMonBackPic_MiniorCore[]; -extern const u32 gMonBackPic_MimikyuBusted[]; -extern const u32 gMonBackPic_NecrozmaDuskMane[]; -extern const u32 gMonBackPic_NecrozmaDawnWings[]; -extern const u32 gMonBackPic_NecrozmaUltra[]; -extern const u32 gMonBackPic_MagearnaOriginalColor[]; -#endif -#if P_GEN_8_POKEMON == TRUE -extern const u32 gMonBackPic_CramorantGulping[]; -extern const u32 gMonBackPic_CramorantGorging[]; -extern const u32 gMonBackPic_ToxtricityLowKey[]; -extern const u32 gMonBackPic_AlcremieRubyCream[]; -extern const u32 gMonBackPic_AlcremieMatchaCream[]; -extern const u32 gMonBackPic_AlcremieMintCream[]; -extern const u32 gMonBackPic_AlcremieLemonCream[]; -extern const u32 gMonBackPic_AlcremieSaltedCream[]; -extern const u32 gMonBackPic_AlcremieRubySwirl[]; -extern const u32 gMonBackPic_AlcremieCaramelSwirl[]; -extern const u32 gMonBackPic_AlcremieRainbowSwirl[]; -extern const u32 gMonBackPic_EiscueNoiceFace[]; -extern const u32 gMonBackPic_IndeedeeFemale[]; -extern const u32 gMonBackPic_MorpekoHangry[]; -extern const u32 gMonBackPic_ZacianCrownedSword[]; -extern const u32 gMonBackPic_ZamazentaCrownedShield[]; -extern const u32 gMonBackPic_EternatusEternamax[]; -extern const u32 gMonBackPic_UrshifuRapidStrikeStyle[]; -extern const u32 gMonBackPic_ZarudeDada[]; -extern const u32 gMonBackPic_CalyrexIceRider[]; -extern const u32 gMonBackPic_CalyrexShadowRider[]; -extern const u32 gMonBackPic_EnamorusTherian[]; -extern const u32 gMonBackPic_BasculegionFemale[]; -extern const u32 gMonBackPic_VenusaurGigantamax[]; -extern const u32 gMonBackPic_CharizardGigantamax[]; -extern const u32 gMonBackPic_BlastoiseGigantamax[]; -extern const u32 gMonBackPic_ButterfreeGigantamax[]; -extern const u32 gMonBackPic_PikachuGigantamax[]; -extern const u32 gMonBackPic_MeowthGigantamax[]; -extern const u32 gMonBackPic_MachampGigantamax[]; -extern const u32 gMonBackPic_GengarGigantamax[]; -extern const u32 gMonBackPic_KinglerGigantamax[]; -extern const u32 gMonBackPic_LaprasGigantamax[]; -extern const u32 gMonBackPic_EeveeGigantamax[]; -extern const u32 gMonBackPic_SnorlaxGigantamax[]; -extern const u32 gMonBackPic_GarbodorGigantamax[]; -extern const u32 gMonBackPic_MelmetalGigantamax[]; -extern const u32 gMonBackPic_RillaboomGigantamax[]; -extern const u32 gMonBackPic_CinderaceGigantamax[]; -extern const u32 gMonBackPic_InteleonGigantamax[]; -extern const u32 gMonBackPic_CorviknightGigantamax[]; -extern const u32 gMonBackPic_OrbeetleGigantamax[]; -extern const u32 gMonBackPic_DrednawGigantamax[]; -extern const u32 gMonBackPic_CoalossalGigantamax[]; -extern const u32 gMonBackPic_FlappleGigantamax[]; -extern const u32 gMonBackPic_AppletunGigantamax[]; -extern const u32 gMonBackPic_SandacondaGigantamax[]; -extern const u32 gMonBackPic_ToxtricityGigantamax[]; -extern const u32 gMonBackPic_CentiskorchGigantamax[]; -extern const u32 gMonBackPic_HattereneGigantamax[]; -extern const u32 gMonBackPic_GrimmsnarlGigantamax[]; -extern const u32 gMonBackPic_AlcremieGigantamax[]; -extern const u32 gMonBackPic_CopperajahGigantamax[]; -extern const u32 gMonBackPic_DuraludonGigantamax[]; -extern const u32 gMonBackPic_UrshifuSingleStrikeGigantamax[]; -extern const u32 gMonBackPic_UrshifuRapidStrikeGigantamax[]; -#endif - -extern const u32 gMonPalette_CircledQuestionMark[]; -extern const u32 gMonPalette_DoubleQuestionMark[]; -extern const u32 gMonPalette_Bulbasaur[]; -extern const u32 gMonPalette_Ivysaur[]; -extern const u32 gMonPalette_Venusaur[]; -extern const u32 gMonPalette_Charmander[]; -extern const u32 gMonPalette_Charmeleon[]; -extern const u32 gMonPalette_Charizard[]; -extern const u32 gMonPalette_Squirtle[]; -extern const u32 gMonPalette_Wartortle[]; -extern const u32 gMonPalette_Blastoise[]; -extern const u32 gMonPalette_Caterpie[]; -extern const u32 gMonPalette_Metapod[]; -extern const u32 gMonPalette_Butterfree[]; -extern const u32 gMonPalette_Weedle[]; -extern const u32 gMonPalette_Kakuna[]; -extern const u32 gMonPalette_Beedrill[]; -extern const u32 gMonPalette_Pidgey[]; -extern const u32 gMonPalette_Pidgeotto[]; -extern const u32 gMonPalette_Pidgeot[]; -extern const u32 gMonPalette_Rattata[]; -extern const u32 gMonPalette_Raticate[]; -extern const u32 gMonPalette_Spearow[]; -extern const u32 gMonPalette_Fearow[]; -extern const u32 gMonPalette_Ekans[]; -extern const u32 gMonPalette_Arbok[]; -extern const u32 gMonPalette_Pikachu[]; -extern const u32 gMonPalette_Raichu[]; -extern const u32 gMonPalette_Sandshrew[]; -extern const u32 gMonPalette_Sandslash[]; -extern const u32 gMonPalette_NidoranF[]; -extern const u32 gMonPalette_Nidorina[]; -extern const u32 gMonPalette_Nidoqueen[]; -extern const u32 gMonPalette_NidoranM[]; -extern const u32 gMonPalette_Nidorino[]; -extern const u32 gMonPalette_Nidoking[]; -extern const u32 gMonPalette_Clefairy[]; -extern const u32 gMonPalette_Clefable[]; -extern const u32 gMonPalette_Vulpix[]; -extern const u32 gMonPalette_Ninetales[]; -extern const u32 gMonPalette_Jigglypuff[]; -extern const u32 gMonPalette_Wigglytuff[]; -extern const u32 gMonPalette_Zubat[]; -extern const u32 gMonPalette_Golbat[]; -extern const u32 gMonPalette_Oddish[]; -extern const u32 gMonPalette_Gloom[]; -extern const u32 gMonPalette_Vileplume[]; -extern const u32 gMonPalette_Paras[]; -extern const u32 gMonPalette_Parasect[]; -extern const u32 gMonPalette_Venonat[]; -extern const u32 gMonPalette_Venomoth[]; -extern const u32 gMonPalette_Diglett[]; -extern const u32 gMonPalette_Dugtrio[]; -extern const u32 gMonPalette_Meowth[]; -extern const u32 gMonPalette_Persian[]; -extern const u32 gMonPalette_Psyduck[]; -extern const u32 gMonPalette_Golduck[]; -extern const u32 gMonPalette_Mankey[]; -extern const u32 gMonPalette_Primeape[]; -extern const u32 gMonPalette_Growlithe[]; -extern const u32 gMonPalette_Arcanine[]; -extern const u32 gMonPalette_Poliwag[]; -extern const u32 gMonPalette_Poliwhirl[]; -extern const u32 gMonPalette_Poliwrath[]; -extern const u32 gMonPalette_Abra[]; -extern const u32 gMonPalette_Kadabra[]; -extern const u32 gMonPalette_Alakazam[]; -extern const u32 gMonPalette_Machop[]; -extern const u32 gMonPalette_Machoke[]; -extern const u32 gMonPalette_Machamp[]; -extern const u32 gMonPalette_Bellsprout[]; -extern const u32 gMonPalette_Weepinbell[]; -extern const u32 gMonPalette_Victreebel[]; -extern const u32 gMonPalette_Tentacool[]; -extern const u32 gMonPalette_Tentacruel[]; -extern const u32 gMonPalette_Geodude[]; -extern const u32 gMonPalette_Graveler[]; -extern const u32 gMonPalette_Golem[]; -extern const u32 gMonPalette_Ponyta[]; -extern const u32 gMonPalette_Rapidash[]; -extern const u32 gMonPalette_Slowpoke[]; -extern const u32 gMonPalette_Slowbro[]; -extern const u32 gMonPalette_Magnemite[]; -extern const u32 gMonPalette_Magneton[]; -extern const u32 gMonPalette_Farfetchd[]; -extern const u32 gMonPalette_Doduo[]; -extern const u32 gMonPalette_Dodrio[]; -extern const u32 gMonPalette_Seel[]; -extern const u32 gMonPalette_Dewgong[]; -extern const u32 gMonPalette_Grimer[]; -extern const u32 gMonPalette_Muk[]; -extern const u32 gMonPalette_Shellder[]; -extern const u32 gMonPalette_Cloyster[]; -extern const u32 gMonPalette_Gastly[]; -extern const u32 gMonPalette_Haunter[]; -extern const u32 gMonPalette_Gengar[]; -extern const u32 gMonPalette_Onix[]; -extern const u32 gMonPalette_Drowzee[]; -extern const u32 gMonPalette_Hypno[]; -extern const u32 gMonPalette_Krabby[]; -extern const u32 gMonPalette_Kingler[]; -extern const u32 gMonPalette_Voltorb[]; -extern const u32 gMonPalette_Electrode[]; -extern const u32 gMonPalette_Exeggcute[]; -extern const u32 gMonPalette_Exeggutor[]; -extern const u32 gMonPalette_Cubone[]; -extern const u32 gMonPalette_Marowak[]; -extern const u32 gMonPalette_Hitmonlee[]; -extern const u32 gMonPalette_Hitmonchan[]; -extern const u32 gMonPalette_Lickitung[]; -extern const u32 gMonPalette_Koffing[]; -extern const u32 gMonPalette_Weezing[]; -extern const u32 gMonPalette_Rhyhorn[]; -extern const u32 gMonPalette_Rhydon[]; -extern const u32 gMonPalette_Chansey[]; -extern const u32 gMonPalette_Tangela[]; -extern const u32 gMonPalette_Kangaskhan[]; -extern const u32 gMonPalette_Horsea[]; -extern const u32 gMonPalette_Seadra[]; -extern const u32 gMonPalette_Goldeen[]; -extern const u32 gMonPalette_Seaking[]; -extern const u32 gMonPalette_Staryu[]; -extern const u32 gMonPalette_Starmie[]; -extern const u32 gMonPalette_MrMime[]; -extern const u32 gMonPalette_Scyther[]; -extern const u32 gMonPalette_Jynx[]; -extern const u32 gMonPalette_Electabuzz[]; -extern const u32 gMonPalette_Magmar[]; -extern const u32 gMonPalette_Pinsir[]; -extern const u32 gMonPalette_Tauros[]; -extern const u32 gMonPalette_Magikarp[]; -extern const u32 gMonPalette_Gyarados[]; -extern const u32 gMonPalette_Lapras[]; -extern const u32 gMonPalette_Ditto[]; -extern const u32 gMonPalette_Eevee[]; -extern const u32 gMonPalette_Vaporeon[]; -extern const u32 gMonPalette_Jolteon[]; -extern const u32 gMonPalette_Flareon[]; -extern const u32 gMonPalette_Porygon[]; -extern const u32 gMonPalette_Omanyte[]; -extern const u32 gMonPalette_Omastar[]; -extern const u32 gMonPalette_Kabuto[]; -extern const u32 gMonPalette_Kabutops[]; -extern const u32 gMonPalette_Aerodactyl[]; -extern const u32 gMonPalette_Snorlax[]; -extern const u32 gMonPalette_Articuno[]; -extern const u32 gMonPalette_Zapdos[]; -extern const u32 gMonPalette_Moltres[]; -extern const u32 gMonPalette_Dratini[]; -extern const u32 gMonPalette_Dragonair[]; -extern const u32 gMonPalette_Dragonite[]; -extern const u32 gMonPalette_Mewtwo[]; -extern const u32 gMonPalette_Mew[]; -extern const u32 gMonPalette_Chikorita[]; -extern const u32 gMonPalette_Bayleef[]; -extern const u32 gMonPalette_Meganium[]; -extern const u32 gMonPalette_Cyndaquil[]; -extern const u32 gMonPalette_Quilava[]; -extern const u32 gMonPalette_Typhlosion[]; -extern const u32 gMonPalette_Totodile[]; -extern const u32 gMonPalette_Croconaw[]; -extern const u32 gMonPalette_Feraligatr[]; -extern const u32 gMonPalette_Sentret[]; -extern const u32 gMonPalette_Furret[]; -extern const u32 gMonPalette_Hoothoot[]; -extern const u32 gMonPalette_Noctowl[]; -extern const u32 gMonPalette_Ledyba[]; -extern const u32 gMonPalette_Ledian[]; -extern const u32 gMonPalette_Spinarak[]; -extern const u32 gMonPalette_Ariados[]; -extern const u32 gMonPalette_Crobat[]; -extern const u32 gMonPalette_Chinchou[]; -extern const u32 gMonPalette_Lanturn[]; -extern const u32 gMonPalette_Pichu[]; -extern const u32 gMonPalette_Cleffa[]; -extern const u32 gMonPalette_Igglybuff[]; -extern const u32 gMonPalette_Togepi[]; -extern const u32 gMonPalette_Togetic[]; -extern const u32 gMonPalette_Natu[]; -extern const u32 gMonPalette_Xatu[]; -extern const u32 gMonPalette_Mareep[]; -extern const u32 gMonPalette_Flaaffy[]; -extern const u32 gMonPalette_Ampharos[]; -extern const u32 gMonPalette_Bellossom[]; -extern const u32 gMonPalette_Marill[]; -extern const u32 gMonPalette_Azumarill[]; -extern const u32 gMonPalette_Sudowoodo[]; -extern const u32 gMonPalette_Politoed[]; -extern const u32 gMonPalette_Hoppip[]; -extern const u32 gMonPalette_Skiploom[]; -extern const u32 gMonPalette_Jumpluff[]; -extern const u32 gMonPalette_Aipom[]; -extern const u32 gMonPalette_Sunkern[]; -extern const u32 gMonPalette_Sunflora[]; -extern const u32 gMonPalette_Yanma[]; -extern const u32 gMonPalette_Wooper[]; -extern const u32 gMonPalette_Quagsire[]; -extern const u32 gMonPalette_Espeon[]; -extern const u32 gMonPalette_Umbreon[]; -extern const u32 gMonPalette_Murkrow[]; -extern const u32 gMonPalette_Slowking[]; -extern const u32 gMonPalette_Misdreavus[]; -extern const u32 gMonPalette_Unown[]; -extern const u32 gMonPalette_Wobbuffet[]; -extern const u32 gMonPalette_Girafarig[]; -extern const u32 gMonPalette_Pineco[]; -extern const u32 gMonPalette_Forretress[]; -extern const u32 gMonPalette_Dunsparce[]; -extern const u32 gMonPalette_Gligar[]; -extern const u32 gMonPalette_Steelix[]; -extern const u32 gMonPalette_Snubbull[]; -extern const u32 gMonPalette_Granbull[]; -extern const u32 gMonPalette_Qwilfish[]; -extern const u32 gMonPalette_Scizor[]; -extern const u32 gMonPalette_Shuckle[]; -extern const u32 gMonPalette_Heracross[]; -extern const u32 gMonPalette_Sneasel[]; -extern const u32 gMonPalette_Teddiursa[]; -extern const u32 gMonPalette_Ursaring[]; -extern const u32 gMonPalette_Slugma[]; -extern const u32 gMonPalette_Magcargo[]; -extern const u32 gMonPalette_Swinub[]; -extern const u32 gMonPalette_Piloswine[]; -extern const u32 gMonPalette_Corsola[]; -extern const u32 gMonPalette_Remoraid[]; -extern const u32 gMonPalette_Octillery[]; -extern const u32 gMonPalette_Delibird[]; -extern const u32 gMonPalette_Mantine[]; -extern const u32 gMonPalette_Skarmory[]; -extern const u32 gMonPalette_Houndour[]; -extern const u32 gMonPalette_Houndoom[]; -extern const u32 gMonPalette_Kingdra[]; -extern const u32 gMonPalette_Phanpy[]; -extern const u32 gMonPalette_Donphan[]; -extern const u32 gMonPalette_Porygon2[]; -extern const u32 gMonPalette_Stantler[]; -extern const u32 gMonPalette_Smeargle[]; -extern const u32 gMonPalette_Tyrogue[]; -extern const u32 gMonPalette_Hitmontop[]; -extern const u32 gMonPalette_Smoochum[]; -extern const u32 gMonPalette_Elekid[]; -extern const u32 gMonPalette_Magby[]; -extern const u32 gMonPalette_Miltank[]; -extern const u32 gMonPalette_Blissey[]; -extern const u32 gMonPalette_Raikou[]; -extern const u32 gMonPalette_Entei[]; -extern const u32 gMonPalette_Suicune[]; -extern const u32 gMonPalette_Larvitar[]; -extern const u32 gMonPalette_Pupitar[]; -extern const u32 gMonPalette_Tyranitar[]; -extern const u32 gMonPalette_Lugia[]; -extern const u32 gMonPalette_HoOh[]; -extern const u32 gMonPalette_Celebi[]; -extern const u32 gMonPalette_Treecko[]; -extern const u32 gMonPalette_Grovyle[]; -extern const u32 gMonPalette_Sceptile[]; -extern const u32 gMonPalette_Torchic[]; -extern const u32 gMonPalette_Combusken[]; -extern const u32 gMonPalette_Blaziken[]; -extern const u32 gMonPalette_Mudkip[]; -extern const u32 gMonPalette_Marshtomp[]; -extern const u32 gMonPalette_Swampert[]; -extern const u32 gMonPalette_Poochyena[]; -extern const u32 gMonPalette_Mightyena[]; -extern const u32 gMonPalette_Zigzagoon[]; -extern const u32 gMonPalette_Linoone[]; -extern const u32 gMonPalette_Wurmple[]; -extern const u32 gMonPalette_Silcoon[]; -extern const u32 gMonPalette_Beautifly[]; -extern const u32 gMonPalette_Cascoon[]; -extern const u32 gMonPalette_Dustox[]; -extern const u32 gMonPalette_Lotad[]; -extern const u32 gMonPalette_Lombre[]; -extern const u32 gMonPalette_Ludicolo[]; -extern const u32 gMonPalette_Seedot[]; -extern const u32 gMonPalette_Nuzleaf[]; -extern const u32 gMonPalette_Shiftry[]; -extern const u32 gMonPalette_Taillow[]; -extern const u32 gMonPalette_Swellow[]; -extern const u32 gMonPalette_Wingull[]; -extern const u32 gMonPalette_Pelipper[]; -extern const u32 gMonPalette_Ralts[]; -extern const u32 gMonPalette_Kirlia[]; -extern const u32 gMonPalette_Gardevoir[]; -extern const u32 gMonPalette_Surskit[]; -extern const u32 gMonPalette_Masquerain[]; -extern const u32 gMonPalette_Shroomish[]; -extern const u32 gMonPalette_Breloom[]; -extern const u32 gMonPalette_Slakoth[]; -extern const u32 gMonPalette_Vigoroth[]; -extern const u32 gMonPalette_Slaking[]; -extern const u32 gMonPalette_Nincada[]; -extern const u32 gMonPalette_Ninjask[]; -extern const u32 gMonPalette_Shedinja[]; -extern const u32 gMonPalette_Whismur[]; -extern const u32 gMonPalette_Loudred[]; -extern const u32 gMonPalette_Exploud[]; -extern const u32 gMonPalette_Makuhita[]; -extern const u32 gMonPalette_Hariyama[]; -extern const u32 gMonPalette_Azurill[]; -extern const u32 gMonPalette_Nosepass[]; -extern const u32 gMonPalette_Skitty[]; -extern const u32 gMonPalette_Delcatty[]; -extern const u32 gMonPalette_Sableye[]; -extern const u32 gMonPalette_Mawile[]; -extern const u32 gMonPalette_Aron[]; -extern const u32 gMonPalette_Lairon[]; -extern const u32 gMonPalette_Aggron[]; -extern const u32 gMonPalette_Meditite[]; -extern const u32 gMonPalette_Medicham[]; -extern const u32 gMonPalette_Electrike[]; -extern const u32 gMonPalette_Manectric[]; -extern const u32 gMonPalette_Plusle[]; -extern const u32 gMonPalette_Minun[]; -extern const u32 gMonPalette_Volbeat[]; -extern const u32 gMonPalette_Illumise[]; -extern const u32 gMonPalette_Roselia[]; -extern const u32 gMonPalette_Gulpin[]; -extern const u32 gMonPalette_Swalot[]; -extern const u32 gMonPalette_Carvanha[]; -extern const u32 gMonPalette_Sharpedo[]; -extern const u32 gMonPalette_Wailmer[]; -extern const u32 gMonPalette_Wailord[]; -extern const u32 gMonPalette_Numel[]; -extern const u32 gMonPalette_Camerupt[]; -extern const u32 gMonPalette_Torkoal[]; -extern const u32 gMonPalette_Spoink[]; -extern const u32 gMonPalette_Grumpig[]; -extern const u32 gMonPalette_Spinda[]; -extern const u32 gMonPalette_Trapinch[]; -extern const u32 gMonPalette_Vibrava[]; -extern const u32 gMonPalette_Flygon[]; -extern const u32 gMonPalette_Cacnea[]; -extern const u32 gMonPalette_Cacturne[]; -extern const u32 gMonPalette_Swablu[]; -extern const u32 gMonPalette_Altaria[]; -extern const u32 gMonPalette_Zangoose[]; -extern const u32 gMonPalette_Seviper[]; -extern const u32 gMonPalette_Lunatone[]; -extern const u32 gMonPalette_Solrock[]; -extern const u32 gMonPalette_Barboach[]; -extern const u32 gMonPalette_Whiscash[]; -extern const u32 gMonPalette_Corphish[]; -extern const u32 gMonPalette_Crawdaunt[]; -extern const u32 gMonPalette_Baltoy[]; -extern const u32 gMonPalette_Claydol[]; -extern const u32 gMonPalette_Lileep[]; -extern const u32 gMonPalette_Cradily[]; -extern const u32 gMonPalette_Anorith[]; -extern const u32 gMonPalette_Armaldo[]; -extern const u32 gMonPalette_Feebas[]; -extern const u32 gMonPalette_Milotic[]; -extern const u32 gMonPalette_CastformNormal[]; -extern const u32 gMonPalette_Kecleon[]; -extern const u32 gMonPalette_Shuppet[]; -extern const u32 gMonPalette_Banette[]; -extern const u32 gMonPalette_Duskull[]; -extern const u32 gMonPalette_Dusclops[]; -extern const u32 gMonPalette_Tropius[]; -extern const u32 gMonPalette_Chimecho[]; -extern const u32 gMonPalette_Absol[]; -extern const u32 gMonPalette_Wynaut[]; -extern const u32 gMonPalette_Snorunt[]; -extern const u32 gMonPalette_Glalie[]; -extern const u32 gMonPalette_Spheal[]; -extern const u32 gMonPalette_Sealeo[]; -extern const u32 gMonPalette_Walrein[]; -extern const u32 gMonPalette_Clamperl[]; -extern const u32 gMonPalette_Huntail[]; -extern const u32 gMonPalette_Gorebyss[]; -extern const u32 gMonPalette_Relicanth[]; -extern const u32 gMonPalette_Luvdisc[]; -extern const u32 gMonPalette_Bagon[]; -extern const u32 gMonPalette_Shelgon[]; -extern const u32 gMonPalette_Salamence[]; -extern const u32 gMonPalette_Beldum[]; -extern const u32 gMonPalette_Metang[]; -extern const u32 gMonPalette_Metagross[]; -extern const u32 gMonPalette_Regirock[]; -extern const u32 gMonPalette_Regice[]; -extern const u32 gMonPalette_Registeel[]; -extern const u32 gMonPalette_Latias[]; -extern const u32 gMonPalette_Latios[]; -extern const u32 gMonPalette_Kyogre[]; -extern const u32 gMonPalette_Groudon[]; -extern const u32 gMonPalette_Rayquaza[]; -extern const u32 gMonPalette_Jirachi[]; -extern const u32 gMonPalette_DeoxysNormal[]; -#if P_GEN_4_POKEMON == TRUE -extern const u32 gMonPalette_Turtwig[]; -extern const u32 gMonPalette_Grotle[]; -extern const u32 gMonPalette_Torterra[]; -extern const u32 gMonPalette_Chimchar[]; -extern const u32 gMonPalette_Monferno[]; -extern const u32 gMonPalette_Infernape[]; -extern const u32 gMonPalette_Piplup[]; -extern const u32 gMonPalette_Prinplup[]; -extern const u32 gMonPalette_Empoleon[]; -extern const u32 gMonPalette_Starly[]; -extern const u32 gMonPalette_Staravia[]; -extern const u32 gMonPalette_Staraptor[]; -extern const u32 gMonPalette_Bidoof[]; -extern const u32 gMonPalette_Bibarel[]; -extern const u32 gMonPalette_Kricketot[]; -extern const u32 gMonPalette_Kricketune[]; -extern const u32 gMonPalette_Shinx[]; -extern const u32 gMonPalette_Luxio[]; -extern const u32 gMonPalette_Luxray[]; -extern const u32 gMonPalette_Budew[]; -extern const u32 gMonPalette_Roserade[]; -extern const u32 gMonPalette_Cranidos[]; -extern const u32 gMonPalette_Rampardos[]; -extern const u32 gMonPalette_Shieldon[]; -extern const u32 gMonPalette_Bastiodon[]; -extern const u32 gMonPalette_BurmyPlantCloak[]; -extern const u32 gMonPalette_WormadamPlantCloak[]; -extern const u32 gMonPalette_Mothim[]; -extern const u32 gMonPalette_Combee[]; -extern const u32 gMonPalette_CombeeF[]; -extern const u32 gMonPalette_Vespiquen[]; -extern const u32 gMonPalette_Pachirisu[]; -extern const u32 gMonPalette_Buizel[]; -extern const u32 gMonPalette_Floatzel[]; -extern const u32 gMonPalette_Cherubi[]; -extern const u32 gMonPalette_CherrimOvercast[]; -extern const u32 gMonPalette_ShellosWestSea[]; -extern const u32 gMonPalette_GastrodonWestSea[]; -extern const u32 gMonPalette_Ambipom[]; -extern const u32 gMonPalette_Drifloon[]; -extern const u32 gMonPalette_Drifblim[]; -extern const u32 gMonPalette_Buneary[]; -extern const u32 gMonPalette_Lopunny[]; -extern const u32 gMonPalette_Mismagius[]; -extern const u32 gMonPalette_Honchkrow[]; -extern const u32 gMonPalette_Glameow[]; -extern const u32 gMonPalette_Purugly[]; -extern const u32 gMonPalette_Chingling[]; -extern const u32 gMonPalette_Stunky[]; -extern const u32 gMonPalette_Skuntank[]; -extern const u32 gMonPalette_Bronzor[]; -extern const u32 gMonPalette_Bronzong[]; -extern const u32 gMonPalette_Bonsly[]; -extern const u32 gMonPalette_MimeJr[]; -extern const u32 gMonPalette_Happiny[]; -extern const u32 gMonPalette_Chatot[]; -extern const u32 gMonPalette_Spiritomb[]; -extern const u32 gMonPalette_Gible[]; -extern const u32 gMonPalette_Gabite[]; -extern const u32 gMonPalette_Garchomp[]; -extern const u32 gMonPalette_Munchlax[]; -extern const u32 gMonPalette_Riolu[]; -extern const u32 gMonPalette_Lucario[]; -extern const u32 gMonPalette_Hippopotas[]; -extern const u32 gMonPalette_HippopotasF[]; -extern const u32 gMonPalette_Hippowdon[]; -extern const u32 gMonPalette_HippowdonF[]; -extern const u32 gMonPalette_Skorupi[]; -extern const u32 gMonPalette_Drapion[]; -extern const u32 gMonPalette_Croagunk[]; -extern const u32 gMonPalette_Toxicroak[]; -extern const u32 gMonPalette_Carnivine[]; -extern const u32 gMonPalette_Finneon[]; -extern const u32 gMonPalette_Lumineon[]; -extern const u32 gMonPalette_Mantyke[]; -extern const u32 gMonPalette_Snover[]; -extern const u32 gMonPalette_Abomasnow[]; -extern const u32 gMonPalette_Weavile[]; -extern const u32 gMonPalette_Magnezone[]; -extern const u32 gMonPalette_Lickilicky[]; -extern const u32 gMonPalette_Rhyperior[]; -extern const u32 gMonPalette_Tangrowth[]; -extern const u32 gMonPalette_Electivire[]; -extern const u32 gMonPalette_Magmortar[]; -extern const u32 gMonPalette_Togekiss[]; -extern const u32 gMonPalette_Yanmega[]; -extern const u32 gMonPalette_Leafeon[]; -extern const u32 gMonPalette_Glaceon[]; -extern const u32 gMonPalette_Gliscor[]; -extern const u32 gMonPalette_Mamoswine[]; -extern const u32 gMonPalette_PorygonZ[]; -extern const u32 gMonPalette_Gallade[]; -extern const u32 gMonPalette_Probopass[]; -extern const u32 gMonPalette_Dusknoir[]; -extern const u32 gMonPalette_Froslass[]; -extern const u32 gMonPalette_Rotom[]; -extern const u32 gMonPalette_Uxie[]; -extern const u32 gMonPalette_Mesprit[]; -extern const u32 gMonPalette_Azelf[]; -extern const u32 gMonPalette_Dialga[]; -extern const u32 gMonPalette_Palkia[]; -extern const u32 gMonPalette_Heatran[]; -extern const u32 gMonPalette_Regigigas[]; -extern const u32 gMonPalette_GiratinaAltered[]; -extern const u32 gMonPalette_Cresselia[]; -extern const u32 gMonPalette_Phione[]; -extern const u32 gMonPalette_Manaphy[]; -extern const u32 gMonPalette_Darkrai[]; -extern const u32 gMonPalette_ShayminLand[]; -extern const u32 gMonPalette_Arceus[]; -#endif -#if P_GEN_5_POKEMON == TRUE -extern const u32 gMonPalette_Victini[]; -extern const u32 gMonPalette_Snivy[]; -extern const u32 gMonPalette_Servine[]; -extern const u32 gMonPalette_Serperior[]; -extern const u32 gMonPalette_Tepig[]; -extern const u32 gMonPalette_Pignite[]; -extern const u32 gMonPalette_Emboar[]; -extern const u32 gMonPalette_Oshawott[]; -extern const u32 gMonPalette_Dewott[]; -extern const u32 gMonPalette_Samurott[]; -extern const u32 gMonPalette_Patrat[]; -extern const u32 gMonPalette_Watchog[]; -extern const u32 gMonPalette_Lillipup[]; -extern const u32 gMonPalette_Herdier[]; -extern const u32 gMonPalette_Stoutland[]; -extern const u32 gMonPalette_Purrloin[]; -extern const u32 gMonPalette_Liepard[]; -extern const u32 gMonPalette_Pansage[]; -extern const u32 gMonPalette_Simisage[]; -extern const u32 gMonPalette_Pansear[]; -extern const u32 gMonPalette_Simisear[]; -extern const u32 gMonPalette_Panpour[]; -extern const u32 gMonPalette_Simipour[]; -extern const u32 gMonPalette_Munna[]; -extern const u32 gMonPalette_Musharna[]; -extern const u32 gMonPalette_Pidove[]; -extern const u32 gMonPalette_Tranquill[]; -extern const u32 gMonPalette_Unfezant[]; -extern const u32 gMonPalette_UnfezantF[]; -extern const u32 gMonPalette_Blitzle[]; -extern const u32 gMonPalette_Zebstrika[]; -extern const u32 gMonPalette_Roggenrola[]; -extern const u32 gMonPalette_Boldore[]; -extern const u32 gMonPalette_Gigalith[]; -extern const u32 gMonPalette_Woobat[]; -extern const u32 gMonPalette_Swoobat[]; -extern const u32 gMonPalette_Drilbur[]; -extern const u32 gMonPalette_Excadrill[]; -extern const u32 gMonPalette_Audino[]; -extern const u32 gMonPalette_Timburr[]; -extern const u32 gMonPalette_Gurdurr[]; -extern const u32 gMonPalette_Conkeldurr[]; -extern const u32 gMonPalette_Tympole[]; -extern const u32 gMonPalette_Palpitoad[]; -extern const u32 gMonPalette_Seismitoad[]; -extern const u32 gMonPalette_Throh[]; -extern const u32 gMonPalette_Sawk[]; -extern const u32 gMonPalette_Sewaddle[]; -extern const u32 gMonPalette_Swadloon[]; -extern const u32 gMonPalette_Leavanny[]; -extern const u32 gMonPalette_Venipede[]; -extern const u32 gMonPalette_Whirlipede[]; -extern const u32 gMonPalette_Scolipede[]; -extern const u32 gMonPalette_Cottonee[]; -extern const u32 gMonPalette_Whimsicott[]; -extern const u32 gMonPalette_Petilil[]; -extern const u32 gMonPalette_Lilligant[]; -extern const u32 gMonPalette_BasculinRedStriped[]; -extern const u32 gMonPalette_Sandile[]; -extern const u32 gMonPalette_Krokorok[]; -extern const u32 gMonPalette_Krookodile[]; -extern const u32 gMonPalette_Darumaka[]; -extern const u32 gMonPalette_DarmanitanStandardMode[]; -extern const u32 gMonPalette_Maractus[]; -extern const u32 gMonPalette_Dwebble[]; -extern const u32 gMonPalette_Crustle[]; -extern const u32 gMonPalette_Scraggy[]; -extern const u32 gMonPalette_Scrafty[]; -extern const u32 gMonPalette_Sigilyph[]; -extern const u32 gMonPalette_Yamask[]; -extern const u32 gMonPalette_Cofagrigus[]; -extern const u32 gMonPalette_Tirtouga[]; -extern const u32 gMonPalette_Carracosta[]; -extern const u32 gMonPalette_Archen[]; -extern const u32 gMonPalette_Archeops[]; -extern const u32 gMonPalette_Trubbish[]; -extern const u32 gMonPalette_Garbodor[]; -extern const u32 gMonPalette_Zorua[]; -extern const u32 gMonPalette_Zoroark[]; -extern const u32 gMonPalette_Minccino[]; -extern const u32 gMonPalette_Cinccino[]; -extern const u32 gMonPalette_Gothita[]; -extern const u32 gMonPalette_Gothorita[]; -extern const u32 gMonPalette_Gothitelle[]; -extern const u32 gMonPalette_Solosis[]; -extern const u32 gMonPalette_Duosion[]; -extern const u32 gMonPalette_Reuniclus[]; -extern const u32 gMonPalette_Ducklett[]; -extern const u32 gMonPalette_Swanna[]; -extern const u32 gMonPalette_Vanillite[]; -extern const u32 gMonPalette_Vanillish[]; -extern const u32 gMonPalette_Vanilluxe[]; -extern const u32 gMonPalette_DeerlingSpring[]; -extern const u32 gMonPalette_SawsbuckSpring[]; -extern const u32 gMonPalette_Emolga[]; -extern const u32 gMonPalette_Karrablast[]; -extern const u32 gMonPalette_Escavalier[]; -extern const u32 gMonPalette_Foongus[]; -extern const u32 gMonPalette_Amoonguss[]; -extern const u32 gMonPalette_Frillish[]; -extern const u32 gMonPalette_FrillishF[]; -extern const u32 gMonPalette_Jellicent[]; -extern const u32 gMonPalette_JellicentF[]; -extern const u32 gMonPalette_Alomomola[]; -extern const u32 gMonPalette_Joltik[]; -extern const u32 gMonPalette_Galvantula[]; -extern const u32 gMonPalette_Ferroseed[]; -extern const u32 gMonPalette_Ferrothorn[]; -extern const u32 gMonPalette_Klink[]; -extern const u32 gMonPalette_Klang[]; -extern const u32 gMonPalette_Klinklang[]; -extern const u32 gMonPalette_Tynamo[]; -extern const u32 gMonPalette_Eelektrik[]; -extern const u32 gMonPalette_Eelektross[]; -extern const u32 gMonPalette_Elgyem[]; -extern const u32 gMonPalette_Beheeyem[]; -extern const u32 gMonPalette_Litwick[]; -extern const u32 gMonPalette_Lampent[]; -extern const u32 gMonPalette_Chandelure[]; -extern const u32 gMonPalette_Axew[]; -extern const u32 gMonPalette_Fraxure[]; -extern const u32 gMonPalette_Haxorus[]; -extern const u32 gMonPalette_Cubchoo[]; -extern const u32 gMonPalette_Beartic[]; -extern const u32 gMonPalette_Cryogonal[]; -extern const u32 gMonPalette_Shelmet[]; -extern const u32 gMonPalette_Accelgor[]; -extern const u32 gMonPalette_Stunfisk[]; -extern const u32 gMonPalette_Mienfoo[]; -extern const u32 gMonPalette_Mienshao[]; -extern const u32 gMonPalette_Druddigon[]; -extern const u32 gMonPalette_Golett[]; -extern const u32 gMonPalette_Golurk[]; -extern const u32 gMonPalette_Pawniard[]; -extern const u32 gMonPalette_Bisharp[]; -extern const u32 gMonPalette_Bouffalant[]; -extern const u32 gMonPalette_Rufflet[]; -extern const u32 gMonPalette_Braviary[]; -extern const u32 gMonPalette_Vullaby[]; -extern const u32 gMonPalette_Mandibuzz[]; -extern const u32 gMonPalette_Heatmor[]; -extern const u32 gMonPalette_Durant[]; -extern const u32 gMonPalette_Deino[]; -extern const u32 gMonPalette_Zweilous[]; -extern const u32 gMonPalette_Hydreigon[]; -extern const u32 gMonPalette_Larvesta[]; -extern const u32 gMonPalette_Volcarona[]; -extern const u32 gMonPalette_Cobalion[]; -extern const u32 gMonPalette_Terrakion[]; -extern const u32 gMonPalette_Virizion[]; -extern const u32 gMonPalette_TornadusIncarnate[]; -extern const u32 gMonPalette_ThundurusIncarnate[]; -extern const u32 gMonPalette_Reshiram[]; -extern const u32 gMonPalette_Zekrom[]; -extern const u32 gMonPalette_LandorusIncarnate[]; -extern const u32 gMonPalette_Kyurem[]; -extern const u32 gMonPalette_KeldeoOrdinary[]; -extern const u32 gMonPalette_MeloettaAria[]; -extern const u32 gMonPalette_Genesect[]; -#endif -#if P_GEN_6_POKEMON == TRUE -extern const u32 gMonPalette_Chespin[]; -extern const u32 gMonPalette_Quilladin[]; -extern const u32 gMonPalette_Chesnaught[]; -extern const u32 gMonPalette_Fennekin[]; -extern const u32 gMonPalette_Braixen[]; -extern const u32 gMonPalette_Delphox[]; -extern const u32 gMonPalette_Froakie[]; -extern const u32 gMonPalette_Frogadier[]; -extern const u32 gMonPalette_Greninja[]; -extern const u32 gMonPalette_Bunnelby[]; -extern const u32 gMonPalette_Diggersby[]; -extern const u32 gMonPalette_Fletchling[]; -extern const u32 gMonPalette_Fletchinder[]; -extern const u32 gMonPalette_Talonflame[]; -extern const u32 gMonPalette_Scatterbug[]; -extern const u32 gMonPalette_Spewpa[]; -extern const u32 gMonPalette_VivillonIcySnow[]; -extern const u32 gMonPalette_Litleo[]; -extern const u32 gMonPalette_Pyroar[]; -extern const u32 gMonPalette_FlabebeRedFlower[]; -extern const u32 gMonPalette_FloetteRedFlower[]; -extern const u32 gMonPalette_FlorgesRedFlower[]; -extern const u32 gMonPalette_Skiddo[]; -extern const u32 gMonPalette_Gogoat[]; -extern const u32 gMonPalette_Pancham[]; -extern const u32 gMonPalette_Pangoro[]; -extern const u32 gMonPalette_FurfrouNatural[]; -extern const u32 gMonPalette_Espurr[]; -extern const u32 gMonPalette_MeowsticMale[]; -extern const u32 gMonPalette_Honedge[]; -extern const u32 gMonPalette_Doublade[]; -extern const u32 gMonPalette_AegislashShield[]; -extern const u32 gMonPalette_Spritzee[]; -extern const u32 gMonPalette_Aromatisse[]; -extern const u32 gMonPalette_Swirlix[]; -extern const u32 gMonPalette_Slurpuff[]; -extern const u32 gMonPalette_Inkay[]; -extern const u32 gMonPalette_Malamar[]; -extern const u32 gMonPalette_Binacle[]; -extern const u32 gMonPalette_Barbaracle[]; -extern const u32 gMonPalette_Skrelp[]; -extern const u32 gMonPalette_Dragalge[]; -extern const u32 gMonPalette_Clauncher[]; -extern const u32 gMonPalette_Clawitzer[]; -extern const u32 gMonPalette_Helioptile[]; -extern const u32 gMonPalette_Heliolisk[]; -extern const u32 gMonPalette_Tyrunt[]; -extern const u32 gMonPalette_Tyrantrum[]; -extern const u32 gMonPalette_Amaura[]; -extern const u32 gMonPalette_Aurorus[]; -extern const u32 gMonPalette_Sylveon[]; -extern const u32 gMonPalette_Hawlucha[]; -extern const u32 gMonPalette_Dedenne[]; -extern const u32 gMonPalette_Carbink[]; -extern const u32 gMonPalette_Goomy[]; -extern const u32 gMonPalette_Sliggoo[]; -extern const u32 gMonPalette_Goodra[]; -extern const u32 gMonPalette_Klefki[]; -extern const u32 gMonPalette_Phantump[]; -extern const u32 gMonPalette_Trevenant[]; -extern const u32 gMonPalette_Pumpkaboo[]; -extern const u32 gMonPalette_Gourgeist[]; -extern const u32 gMonPalette_Bergmite[]; -extern const u32 gMonPalette_Avalugg[]; -extern const u32 gMonPalette_Noibat[]; -extern const u32 gMonPalette_Noivern[]; -extern const u32 gMonPalette_XerneasNeutral[]; -extern const u32 gMonPalette_Yveltal[]; -extern const u32 gMonPalette_Zygarde50[]; -extern const u32 gMonPalette_Diancie[]; -extern const u32 gMonPalette_HoopaConfined[]; -extern const u32 gMonPalette_Volcanion[]; -#endif -#if P_GEN_7_POKEMON == TRUE -extern const u32 gMonPalette_Rowlet[]; -extern const u32 gMonPalette_Dartrix[]; -extern const u32 gMonPalette_Decidueye[]; -extern const u32 gMonPalette_Litten[]; -extern const u32 gMonPalette_Torracat[]; -extern const u32 gMonPalette_Incineroar[]; -extern const u32 gMonPalette_Popplio[]; -extern const u32 gMonPalette_Brionne[]; -extern const u32 gMonPalette_Primarina[]; -extern const u32 gMonPalette_Pikipek[]; -extern const u32 gMonPalette_Trumbeak[]; -extern const u32 gMonPalette_Toucannon[]; -extern const u32 gMonPalette_Yungoos[]; -extern const u32 gMonPalette_Gumshoos[]; -extern const u32 gMonPalette_Grubbin[]; -extern const u32 gMonPalette_Charjabug[]; -extern const u32 gMonPalette_Vikavolt[]; -extern const u32 gMonPalette_Crabrawler[]; -extern const u32 gMonPalette_Crabominable[]; -extern const u32 gMonPalette_OricorioBaile[]; -extern const u32 gMonPalette_Cutiefly[]; -extern const u32 gMonPalette_Ribombee[]; -extern const u32 gMonPalette_Rockruff[]; -extern const u32 gMonPalette_LycanrocMidday[]; -extern const u32 gMonPalette_WishiwashiSolo[]; -extern const u32 gMonPalette_Mareanie[]; -extern const u32 gMonPalette_Toxapex[]; -extern const u32 gMonPalette_Mudbray[]; -extern const u32 gMonPalette_Mudsdale[]; -extern const u32 gMonPalette_Dewpider[]; -extern const u32 gMonPalette_Araquanid[]; -extern const u32 gMonPalette_Fomantis[]; -extern const u32 gMonPalette_Lurantis[]; -extern const u32 gMonPalette_Morelull[]; -extern const u32 gMonPalette_Shiinotic[]; -extern const u32 gMonPalette_Salandit[]; -extern const u32 gMonPalette_Salazzle[]; -extern const u32 gMonPalette_Stufful[]; -extern const u32 gMonPalette_Bewear[]; -extern const u32 gMonPalette_Bounsweet[]; -extern const u32 gMonPalette_Steenee[]; -extern const u32 gMonPalette_Tsareena[]; -extern const u32 gMonPalette_Comfey[]; -extern const u32 gMonPalette_Oranguru[]; -extern const u32 gMonPalette_Passimian[]; -extern const u32 gMonPalette_Wimpod[]; -extern const u32 gMonPalette_Golisopod[]; -extern const u32 gMonPalette_Sandygast[]; -extern const u32 gMonPalette_Palossand[]; -extern const u32 gMonPalette_Pyukumuku[]; -extern const u32 gMonPalette_TypeNull[]; -extern const u32 gMonPalette_SilvallyNormal[]; -extern const u32 gMonPalette_MiniorMeteor[]; -extern const u32 gMonPalette_Komala[]; -extern const u32 gMonPalette_Turtonator[]; -extern const u32 gMonPalette_Togedemaru[]; -extern const u32 gMonPalette_MimikyuDisguised[]; -extern const u32 gMonPalette_Bruxish[]; -extern const u32 gMonPalette_Drampa[]; -extern const u32 gMonPalette_Dhelmise[]; -extern const u32 gMonPalette_JangmoO[]; -extern const u32 gMonPalette_HakamoO[]; -extern const u32 gMonPalette_KommoO[]; -extern const u32 gMonPalette_TapuKoko[]; -extern const u32 gMonPalette_TapuLele[]; -extern const u32 gMonPalette_TapuBulu[]; -extern const u32 gMonPalette_TapuFini[]; -extern const u32 gMonPalette_Cosmog[]; -extern const u32 gMonPalette_Cosmoem[]; -extern const u32 gMonPalette_Solgaleo[]; -extern const u32 gMonPalette_Lunala[]; -extern const u32 gMonPalette_Nihilego[]; -extern const u32 gMonPalette_Buzzwole[]; -extern const u32 gMonPalette_Pheromosa[]; -extern const u32 gMonPalette_Xurkitree[]; -extern const u32 gMonPalette_Celesteela[]; -extern const u32 gMonPalette_Kartana[]; -extern const u32 gMonPalette_Guzzlord[]; -extern const u32 gMonPalette_Necrozma[]; -extern const u32 gMonPalette_Magearna[]; -extern const u32 gMonPalette_Marshadow[]; -extern const u32 gMonPalette_Poipole[]; -extern const u32 gMonPalette_Naganadel[]; -extern const u32 gMonPalette_Stakataka[]; -extern const u32 gMonPalette_Blacephalon[]; -extern const u32 gMonPalette_Zeraora[]; -extern const u32 gMonPalette_Meltan[]; -extern const u32 gMonPalette_Melmetal[]; -#endif -#if P_GEN_8_POKEMON == TRUE -extern const u32 gMonPalette_Grookey[]; -extern const u32 gMonPalette_Thwackey[]; -extern const u32 gMonPalette_Rillaboom[]; -extern const u32 gMonPalette_Scorbunny[]; -extern const u32 gMonPalette_Raboot[]; -extern const u32 gMonPalette_Cinderace[]; -extern const u32 gMonPalette_Sobble[]; -extern const u32 gMonPalette_Drizzile[]; -extern const u32 gMonPalette_Inteleon[]; -extern const u32 gMonPalette_Skwovet[]; -extern const u32 gMonPalette_Greedent[]; -extern const u32 gMonPalette_Rookidee[]; -extern const u32 gMonPalette_Corvisquire[]; -extern const u32 gMonPalette_Corviknight[]; -extern const u32 gMonPalette_Blipbug[]; -extern const u32 gMonPalette_Dottler[]; -extern const u32 gMonPalette_Orbeetle[]; -extern const u32 gMonPalette_Nickit[]; -extern const u32 gMonPalette_Thievul[]; -extern const u32 gMonPalette_Gossifleur[]; -extern const u32 gMonPalette_Eldegoss[]; -extern const u32 gMonPalette_Wooloo[]; -extern const u32 gMonPalette_Dubwool[]; -extern const u32 gMonPalette_Chewtle[]; -extern const u32 gMonPalette_Drednaw[]; -extern const u32 gMonPalette_Yamper[]; -extern const u32 gMonPalette_Boltund[]; -extern const u32 gMonPalette_Rolycoly[]; -extern const u32 gMonPalette_Carkol[]; -extern const u32 gMonPalette_Coalossal[]; -extern const u32 gMonPalette_Applin[]; -extern const u32 gMonPalette_Flapple[]; -extern const u32 gMonPalette_Appletun[]; -extern const u32 gMonPalette_Silicobra[]; -extern const u32 gMonPalette_Sandaconda[]; -extern const u32 gMonPalette_Cramorant[]; -extern const u32 gMonPalette_Arrokuda[]; -extern const u32 gMonPalette_Barraskewda[]; -extern const u32 gMonPalette_Toxel[]; -extern const u32 gMonPalette_ToxtricityAmped[]; -extern const u32 gMonPalette_Sizzlipede[]; -extern const u32 gMonPalette_Centiskorch[]; -extern const u32 gMonPalette_Clobbopus[]; -extern const u32 gMonPalette_Grapploct[]; -extern const u32 gMonPalette_Sinistea[]; -extern const u32 gMonPalette_Polteageist[]; -extern const u32 gMonPalette_Hatenna[]; -extern const u32 gMonPalette_Hattrem[]; -extern const u32 gMonPalette_Hatterene[]; -extern const u32 gMonPalette_Impidimp[]; -extern const u32 gMonPalette_Morgrem[]; -extern const u32 gMonPalette_Grimmsnarl[]; -extern const u32 gMonPalette_Obstagoon[]; -extern const u32 gMonPalette_Perrserker[]; -extern const u32 gMonPalette_Cursola[]; -extern const u32 gMonPalette_Sirfetchd[]; -extern const u32 gMonPalette_MrRime[]; -extern const u32 gMonPalette_Runerigus[]; -extern const u32 gMonPalette_Milcery[]; -extern const u32 gMonPalette_Alcremie[]; -extern const u32 gMonPalette_Falinks[]; -extern const u32 gMonPalette_Pincurchin[]; -extern const u32 gMonPalette_Snom[]; -extern const u32 gMonPalette_Frosmoth[]; -extern const u32 gMonPalette_Stonjourner[]; -extern const u32 gMonPalette_EiscueIceFace[]; -extern const u32 gMonPalette_IndeedeeMale[]; -extern const u32 gMonPalette_MorpekoFullBelly[]; -extern const u32 gMonPalette_Cufant[]; -extern const u32 gMonPalette_Copperajah[]; -extern const u32 gMonPalette_Dracozolt[]; -extern const u32 gMonPalette_Arctozolt[]; -extern const u32 gMonPalette_Dracovish[]; -extern const u32 gMonPalette_Arctovish[]; -extern const u32 gMonPalette_Duraludon[]; -extern const u32 gMonPalette_Dreepy[]; -extern const u32 gMonPalette_Drakloak[]; -extern const u32 gMonPalette_Dragapult[]; -extern const u32 gMonPalette_ZacianHeroOfManyBattles[]; -extern const u32 gMonPalette_ZamazentaHeroOfManyBattles[]; -extern const u32 gMonPalette_Eternatus[]; -extern const u32 gMonPalette_Kubfu[]; -extern const u32 gMonPalette_UrshifuSingleStrikeStyle[]; -extern const u32 gMonPalette_Zarude[]; -extern const u32 gMonPalette_Regieleki[]; -extern const u32 gMonPalette_Regidrago[]; -extern const u32 gMonPalette_Glastrier[]; -extern const u32 gMonPalette_Spectrier[]; -extern const u32 gMonPalette_Calyrex[]; -extern const u32 gMonPalette_Wyrdeer[]; -extern const u32 gMonPalette_Kleavor[]; -extern const u32 gMonPalette_Ursaluna[]; -extern const u32 gMonPalette_BasculegionMale[]; -extern const u32 gMonPalette_Sneasler[]; -extern const u32 gMonPalette_Overqwil[]; -extern const u32 gMonPalette_EnamorusIncarnate[]; -#endif -extern const u32 gMonPalette_VenusaurMega[]; -extern const u32 gMonPalette_CharizardMegaX[]; -extern const u32 gMonPalette_CharizardMegaY[]; -extern const u32 gMonPalette_BlastoiseMega[]; -extern const u32 gMonPalette_BeedrillMega[]; -extern const u32 gMonPalette_PidgeotMega[]; -extern const u32 gMonPalette_AlakazamMega[]; -extern const u32 gMonPalette_SlowbroMega[]; -extern const u32 gMonPalette_GengarMega[]; -extern const u32 gMonPalette_KangaskhanMega[]; -extern const u32 gMonPalette_PinsirMega[]; -extern const u32 gMonPalette_GyaradosMega[]; -extern const u32 gMonPalette_AerodactylMega[]; -extern const u32 gMonPalette_MewtwoMegaX[]; -extern const u32 gMonPalette_MewtwoMegaY[]; -extern const u32 gMonPalette_AmpharosMega[]; -extern const u32 gMonPalette_SteelixMega[]; -extern const u32 gMonPalette_ScizorMega[]; -extern const u32 gMonPalette_HeracrossMega[]; -extern const u32 gMonPalette_HoundoomMega[]; -extern const u32 gMonPalette_TyranitarMega[]; -extern const u32 gMonPalette_SceptileMega[]; -extern const u32 gMonPalette_BlazikenMega[]; -extern const u32 gMonPalette_SwampertMega[]; -extern const u32 gMonPalette_GardevoirMega[]; -extern const u32 gMonPalette_SableyeMega[]; -extern const u32 gMonPalette_MawileMega[]; -extern const u32 gMonPalette_AggronMega[]; -extern const u32 gMonPalette_MedichamMega[]; -extern const u32 gMonPalette_ManectricMega[]; -extern const u32 gMonPalette_SharpedoMega[]; -extern const u32 gMonPalette_CameruptMega[]; -extern const u32 gMonPalette_AltariaMega[]; -extern const u32 gMonPalette_BanetteMega[]; -extern const u32 gMonPalette_AbsolMega[]; -extern const u32 gMonPalette_GlalieMega[]; -extern const u32 gMonPalette_SalamenceMega[]; -extern const u32 gMonPalette_MetagrossMega[]; -extern const u32 gMonPalette_LatiasMega[]; -extern const u32 gMonPalette_LatiosMega[]; -#if P_GEN_4_POKEMON == TRUE -extern const u32 gMonPalette_LopunnyMega[]; -extern const u32 gMonPalette_GarchompMega[]; -extern const u32 gMonPalette_LucarioMega[]; -extern const u32 gMonPalette_AbomasnowMega[]; -extern const u32 gMonPalette_GalladeMega[]; -#endif -#if P_GEN_5_POKEMON == TRUE -extern const u32 gMonPalette_AudinoMega[]; -#endif -#if P_GEN_6_POKEMON == TRUE -extern const u32 gMonPalette_DiancieMega[]; -#endif -extern const u32 gMonPalette_RayquazaMega[]; -extern const u32 gMonPalette_KyogrePrimal[]; -extern const u32 gMonPalette_GroudonPrimal[]; -extern const u32 gMonPalette_RattataAlolan[]; -extern const u32 gMonPalette_RaticateAlolan[]; -extern const u32 gMonPalette_RaichuAlolan[]; -extern const u32 gMonPalette_SandshrewAlolan[]; -extern const u32 gMonPalette_SandslashAlolan[]; -extern const u32 gMonPalette_VulpixAlolan[]; -extern const u32 gMonPalette_NinetalesAlolan[]; -extern const u32 gMonPalette_DiglettAlolan[]; -extern const u32 gMonPalette_DugtrioAlolan[]; -extern const u32 gMonPalette_MeowthAlolan[]; -extern const u32 gMonPalette_PersianAlolan[]; -extern const u32 gMonPalette_GeodudeAlolan[]; -extern const u32 gMonPalette_GravelerAlolan[]; -extern const u32 gMonPalette_GolemAlolan[]; -extern const u32 gMonPalette_GrimerAlolan[]; -extern const u32 gMonPalette_MukAlolan[]; -extern const u32 gMonPalette_ExeggutorAlolan[]; -extern const u32 gMonPalette_MarowakAlolan[]; -extern const u32 gMonPalette_MeowthGalarian[]; -extern const u32 gMonPalette_PonytaGalarian[]; -extern const u32 gMonPalette_RapidashGalarian[]; -extern const u32 gMonPalette_SlowpokeGalarian[]; -extern const u32 gMonPalette_SlowbroGalarian[]; -extern const u32 gMonPalette_FarfetchdGalarian[]; -extern const u32 gMonPalette_WeezingGalarian[]; -extern const u32 gMonPalette_MrMimeGalarian[]; -extern const u32 gMonPalette_ArticunoGalarian[]; -extern const u32 gMonPalette_ZapdosGalarian[]; -extern const u32 gMonPalette_MoltresGalarian[]; -extern const u32 gMonPalette_SlowkingGalarian[]; -extern const u32 gMonPalette_CorsolaGalarian[]; -extern const u32 gMonPalette_ZigzagoonGalarian[]; -extern const u32 gMonPalette_LinooneGalarian[]; -#if P_GEN_5_POKEMON == TRUE -extern const u32 gMonPalette_DarumakaGalarian[]; -extern const u32 gMonPalette_DarmanitanGalarianStandardMode[]; -extern const u32 gMonPalette_YamaskGalarian[]; -extern const u32 gMonPalette_StunfiskGalarian[]; -#endif -extern const u32 gMonPalette_GrowlitheHisuian[]; -extern const u32 gMonPalette_ArcanineHisuian[]; -extern const u32 gMonPalette_VoltorbHisuian[]; -extern const u32 gMonPalette_ElectrodeHisuian[]; -extern const u32 gMonPalette_TyphlosionHisuian[]; -extern const u32 gMonPalette_QwilfishHisuian[]; -extern const u32 gMonPalette_SneaselHisuian[]; -#if P_GEN_5_POKEMON == TRUE -extern const u32 gMonPalette_SamurottHisuian[]; -extern const u32 gMonPalette_LilligantHisuian[]; -extern const u32 gMonPalette_ZoruaHisuian[]; -extern const u32 gMonPalette_ZoroarkHisuian[]; -extern const u32 gMonPalette_BraviaryHisuian[]; -#endif -#if P_GEN_6_POKEMON == TRUE -extern const u32 gMonPalette_SliggooHisuian[]; -extern const u32 gMonPalette_GoodraHisuian[]; -extern const u32 gMonPalette_AvaluggHisuian[]; -#endif -#if P_GEN_7_POKEMON == TRUE -extern const u32 gMonPalette_DecidueyeHisuian[]; -#endif -extern const u32 gMonPalette_PikachuCosplay[]; -extern const u32 gMonPalette_PikachuRockStar[]; -extern const u32 gMonPalette_PikachuBelle[]; -extern const u32 gMonPalette_PikachuPopStar[]; -extern const u32 gMonPalette_PikachuPhD[]; -extern const u32 gMonPalette_PikachuLibre[]; -extern const u32 gMonPalette_PikachuOriginalCap[]; -extern const u32 gMonPalette_PikachuHoennCap[]; -extern const u32 gMonPalette_PikachuSinnohCap[]; -extern const u32 gMonPalette_PikachuUnovaCap[]; -extern const u32 gMonPalette_PikachuKalosCap[]; -extern const u32 gMonPalette_PikachuAlolaCap[]; -extern const u32 gMonPalette_PikachuPartnerCap[]; -extern const u32 gMonPalette_PikachuWorldCap[]; -extern const u32 gMonPalette_PichuSpikyEared[]; -extern const u32 gMonPalette_CastformSunny[]; -extern const u32 gMonPalette_CastformRainy[]; -extern const u32 gMonPalette_CastformSnowy[]; -extern const u32 gMonPalette_DeoxysAttack[]; -extern const u32 gMonPalette_DeoxysDefense[]; -extern const u32 gMonPalette_DeoxysSpeed[]; -#if P_GEN_4_POKEMON == TRUE -extern const u32 gMonPalette_BurmySandyCloak[]; -extern const u32 gMonPalette_BurmyTrashCloak[]; -extern const u32 gMonPalette_WormadamSandyCloak[]; -extern const u32 gMonPalette_WormadamTrashCloak[]; -extern const u32 gMonPalette_CherrimSunshine[]; -extern const u32 gMonPalette_ShellosEastSea[]; -extern const u32 gMonPalette_GastrodonEastSea[]; -extern const u32 gMonPalette_RotomHeat[]; -extern const u32 gMonPalette_RotomWash[]; -extern const u32 gMonPalette_RotomFrost[]; -extern const u32 gMonPalette_RotomFan[]; -extern const u32 gMonPalette_RotomMow[]; -extern const u32 gMonPalette_DialgaOrigin[]; -extern const u32 gMonPalette_PalkiaOrigin[]; -extern const u32 gMonPalette_GiratinaOrigin[]; -extern const u32 gMonPalette_ShayminSky[]; -extern const u32 gMonPalette_ArceusFighting[]; -extern const u32 gMonPalette_ArceusFlying[]; -extern const u32 gMonPalette_ArceusPoison[]; -extern const u32 gMonPalette_ArceusGround[]; -extern const u32 gMonPalette_ArceusRock[]; -extern const u32 gMonPalette_ArceusBug[]; -extern const u32 gMonPalette_ArceusGhost[]; -extern const u32 gMonPalette_ArceusSteel[]; -extern const u32 gMonPalette_ArceusFire[]; -extern const u32 gMonPalette_ArceusWater[]; -extern const u32 gMonPalette_ArceusGrass[]; -extern const u32 gMonPalette_ArceusElectric[]; -extern const u32 gMonPalette_ArceusPsychic[]; -extern const u32 gMonPalette_ArceusIce[]; -extern const u32 gMonPalette_ArceusDragon[]; -extern const u32 gMonPalette_ArceusDark[]; -extern const u32 gMonPalette_ArceusFairy[]; -#endif -#if P_GEN_5_POKEMON == TRUE -extern const u32 gMonPalette_BasculinBlueStriped[]; -extern const u32 gMonPalette_BasculinWhiteStriped[]; -extern const u32 gMonPalette_DarmanitanZenMode[]; -extern const u32 gMonPalette_DarmanitanGalarianZenMode[]; -extern const u32 gMonPalette_DeerlingSummer[]; -extern const u32 gMonPalette_DeerlingAutumn[]; -extern const u32 gMonPalette_DeerlingWinter[]; -extern const u32 gMonPalette_SawsbuckSummer[]; -extern const u32 gMonPalette_SawsbuckAutumn[]; -extern const u32 gMonPalette_SawsbuckWinter[]; -extern const u32 gMonPalette_TornadusTherian[]; -extern const u32 gMonPalette_ThundurusTherian[]; -extern const u32 gMonPalette_LandorusTherian[]; -extern const u32 gMonPalette_KyuremWhite[]; -extern const u32 gMonPalette_KyuremBlack[]; -extern const u32 gMonPalette_KeldeoResolute[]; -extern const u32 gMonPalette_MeloettaPirouette[]; -extern const u32 gMonPalette_GenesectDouseDrive[]; -extern const u32 gMonPalette_GenesectShockDrive[]; -extern const u32 gMonPalette_GenesectBurnDrive[]; -extern const u32 gMonPalette_GenesectChillDrive[]; -#endif -#if P_GEN_6_POKEMON == TRUE -extern const u32 gMonPalette_GreninjaAsh[]; -extern const u32 gMonPalette_VivillonPolar[]; -extern const u32 gMonPalette_VivillonTundra[]; -extern const u32 gMonPalette_VivillonContinental[]; -extern const u32 gMonPalette_VivillonGarden[]; -extern const u32 gMonPalette_VivillonElegant[]; -extern const u32 gMonPalette_VivillonMeadow[]; -extern const u32 gMonPalette_VivillonModern[]; -extern const u32 gMonPalette_VivillonMarine[]; -extern const u32 gMonPalette_VivillonArchipelago[]; -extern const u32 gMonPalette_VivillonHighPlains[]; -extern const u32 gMonPalette_VivillonSandstorm[]; -extern const u32 gMonPalette_VivillonRiver[]; -extern const u32 gMonPalette_VivillonMonsoon[]; -extern const u32 gMonPalette_VivillonSavanna[]; -extern const u32 gMonPalette_VivillonSun[]; -extern const u32 gMonPalette_VivillonOcean[]; -extern const u32 gMonPalette_VivillonJungle[]; -extern const u32 gMonPalette_VivillonFancy[]; -extern const u32 gMonPalette_VivillonPokeBall[]; -extern const u32 gMonPalette_FlabebeYellowFlower[]; -extern const u32 gMonPalette_FlabebeOrangeFlower[]; -extern const u32 gMonPalette_FlabebeBlueFlower[]; -extern const u32 gMonPalette_FlabebeWhiteFlower[]; -extern const u32 gMonPalette_FloetteYellowFlower[]; -extern const u32 gMonPalette_FloetteOrangeFlower[]; -extern const u32 gMonPalette_FloetteBlueFlower[]; -extern const u32 gMonPalette_FloetteWhiteFlower[]; -extern const u32 gMonPalette_FloetteEternalFlower[]; -extern const u32 gMonPalette_FlorgesYellowFlower[]; -extern const u32 gMonPalette_FlorgesOrangeFlower[]; -extern const u32 gMonPalette_FlorgesBlueFlower[]; -extern const u32 gMonPalette_FlorgesWhiteFlower[]; -extern const u32 gMonPalette_FurfrouHeartTrim[]; -extern const u32 gMonPalette_FurfrouStarTrim[]; -extern const u32 gMonPalette_FurfrouDiamondTrim[]; -extern const u32 gMonPalette_FurfrouDebutanteTrim[]; -extern const u32 gMonPalette_FurfrouMatronTrim[]; -extern const u32 gMonPalette_FurfrouDandyTrim[]; -extern const u32 gMonPalette_FurfrouLaReineTrim[]; -extern const u32 gMonPalette_FurfrouKabukiTrim[]; -extern const u32 gMonPalette_FurfrouPharaohTrim[]; -extern const u32 gMonPalette_MeowsticFemale[]; -extern const u32 gMonPalette_AegislashBlade[]; -extern const u32 gMonPalette_XerneasActive[]; -extern const u32 gMonPalette_Zygarde10[]; -extern const u32 gMonPalette_ZygardeComplete[]; -extern const u32 gMonPalette_HoopaUnbound[]; -#endif -#if P_GEN_7_POKEMON == TRUE -extern const u32 gMonPalette_OricorioPomPom[]; -extern const u32 gMonPalette_OricorioPau[]; -extern const u32 gMonPalette_OricorioSensu[]; -extern const u32 gMonPalette_LycanrocMidnight[]; -extern const u32 gMonPalette_LycanrocDusk[]; -extern const u32 gMonPalette_WishiwashiSchool[]; -extern const u32 gMonPalette_SilvallyFighting[]; -extern const u32 gMonPalette_SilvallyFlying[]; -extern const u32 gMonPalette_SilvallyPoison[]; -extern const u32 gMonPalette_SilvallyGround[]; -extern const u32 gMonPalette_SilvallyRock[]; -extern const u32 gMonPalette_SilvallyBug[]; -extern const u32 gMonPalette_SilvallyGhost[]; -extern const u32 gMonPalette_SilvallySteel[]; -extern const u32 gMonPalette_SilvallyFire[]; -extern const u32 gMonPalette_SilvallyWater[]; -extern const u32 gMonPalette_SilvallyGrass[]; -extern const u32 gMonPalette_SilvallyElectric[]; -extern const u32 gMonPalette_SilvallyPsychic[]; -extern const u32 gMonPalette_SilvallyIce[]; -extern const u32 gMonPalette_SilvallyDragon[]; -extern const u32 gMonPalette_SilvallyDark[]; -extern const u32 gMonPalette_SilvallyFairy[]; -extern const u32 gMonPalette_MiniorCoreRed[]; -extern const u32 gMonPalette_MiniorCoreOrange[]; -extern const u32 gMonPalette_MiniorCoreYellow[]; -extern const u32 gMonPalette_MiniorCoreGreen[]; -extern const u32 gMonPalette_MiniorCoreBlue[]; -extern const u32 gMonPalette_MiniorCoreIndigo[]; -extern const u32 gMonPalette_MiniorCoreViolet[]; -extern const u32 gMonPalette_MimikyuBusted[]; -extern const u32 gMonPalette_NecrozmaDuskMane[]; -extern const u32 gMonPalette_NecrozmaDawnWings[]; -extern const u32 gMonPalette_NecrozmaUltra[]; -extern const u32 gMonPalette_MagearnaOriginalColor[]; -#endif -#if P_GEN_8_POKEMON == TRUE -extern const u32 gMonPalette_CramorantGulping[]; -extern const u32 gMonPalette_CramorantGorging[]; -extern const u32 gMonPalette_ToxtricityLowKey[]; -extern const u32 gMonPalette_AlcremieRubyCream[]; -extern const u32 gMonPalette_AlcremieMatchaCream[]; -extern const u32 gMonPalette_AlcremieMintCream[]; -extern const u32 gMonPalette_AlcremieLemonCream[]; -extern const u32 gMonPalette_AlcremieSaltedCream[]; -extern const u32 gMonPalette_AlcremieRubySwirl[]; -extern const u32 gMonPalette_AlcremieCaramelSwirl[]; -extern const u32 gMonPalette_AlcremieRainbowSwirl[]; -extern const u32 gMonPalette_EiscueNoiceFace[]; -extern const u32 gMonPalette_IndeedeeFemale[]; -extern const u32 gMonPalette_MorpekoHangry[]; -extern const u32 gMonPalette_ZacianCrownedSword[]; -extern const u32 gMonPalette_ZamazentaCrownedShield[]; -extern const u32 gMonPalette_EternatusEternamax[]; -extern const u32 gMonPalette_UrshifuRapidStrikeStyle[]; -extern const u32 gMonPalette_ZarudeDada[]; -extern const u32 gMonPalette_CalyrexIceRider[]; -extern const u32 gMonPalette_CalyrexShadowRider[]; -extern const u32 gMonPalette_EnamorusTherian[]; -extern const u32 gMonPalette_BasculegionFemale[]; -extern const u32 gMonPalette_VenusaurGigantamax[]; -extern const u32 gMonPalette_CharizardGigantamax[]; -extern const u32 gMonPalette_BlastoiseGigantamax[]; -extern const u32 gMonPalette_ButterfreeGigantamax[]; -extern const u32 gMonPalette_PikachuGigantamax[]; -extern const u32 gMonPalette_MeowthGigantamax[]; -extern const u32 gMonPalette_MachampGigantamax[]; -extern const u32 gMonPalette_GengarGigantamax[]; -extern const u32 gMonPalette_KinglerGigantamax[]; -extern const u32 gMonPalette_LaprasGigantamax[]; -extern const u32 gMonPalette_EeveeGigantamax[]; -extern const u32 gMonPalette_SnorlaxGigantamax[]; -extern const u32 gMonPalette_GarbodorGigantamax[]; -extern const u32 gMonPalette_MelmetalGigantamax[]; -extern const u32 gMonPalette_RillaboomGigantamax[]; -extern const u32 gMonPalette_CinderaceGigantamax[]; -extern const u32 gMonPalette_InteleonGigantamax[]; -extern const u32 gMonPalette_CorviknightGigantamax[]; -extern const u32 gMonPalette_OrbeetleGigantamax[]; -extern const u32 gMonPalette_DrednawGigantamax[]; -extern const u32 gMonPalette_CoalossalGigantamax[]; -extern const u32 gMonPalette_FlappleGigantamax[]; -extern const u32 gMonPalette_AppletunGigantamax[]; -extern const u32 gMonPalette_SandacondaGigantamax[]; -extern const u32 gMonPalette_ToxtricityGigantamax[]; -extern const u32 gMonPalette_CentiskorchGigantamax[]; -extern const u32 gMonPalette_HattereneGigantamax[]; -extern const u32 gMonPalette_GrimmsnarlGigantamax[]; -extern const u32 gMonPalette_AlcremieGigantamax[]; -extern const u32 gMonPalette_CopperajahGigantamax[]; -extern const u32 gMonPalette_DuraludonGigantamax[]; -extern const u32 gMonPalette_UrshifuSingleStrikeGigantamax[]; -extern const u32 gMonPalette_UrshifuRapidStrikeGigantamax[]; -#endif -extern const u32 gMonPalette_Egg[]; - extern const u32 gMonFollowerPalette_Bulbasaur[]; extern const u32 gMonFollowerPalette_Ivysaur[]; extern const u32 gMonFollowerPalette_Venusaur[]; @@ -4331,3471 +452,6 @@ extern const u32 gMonFollowerPalette_Rayquaza[]; extern const u32 gMonFollowerPalette_Jirachi[]; extern const u32 gMonFollowerPalette_Deoxys[]; - -extern const u32 gMonShinyPalette_CircledQuestionMark[]; -extern const u32 gMonShinyPalette_DoubleQuestionMark[]; -extern const u32 gMonShinyPalette_Bulbasaur[]; -extern const u32 gMonShinyPalette_Ivysaur[]; -extern const u32 gMonShinyPalette_Venusaur[]; -extern const u32 gMonShinyPalette_Charmander[]; -extern const u32 gMonShinyPalette_Charmeleon[]; -extern const u32 gMonShinyPalette_Charizard[]; -extern const u32 gMonShinyPalette_Squirtle[]; -extern const u32 gMonShinyPalette_Wartortle[]; -extern const u32 gMonShinyPalette_Blastoise[]; -extern const u32 gMonShinyPalette_Caterpie[]; -extern const u32 gMonShinyPalette_Metapod[]; -extern const u32 gMonShinyPalette_Butterfree[]; -extern const u32 gMonShinyPalette_Weedle[]; -extern const u32 gMonShinyPalette_Kakuna[]; -extern const u32 gMonShinyPalette_Beedrill[]; -extern const u32 gMonShinyPalette_Pidgey[]; -extern const u32 gMonShinyPalette_Pidgeotto[]; -extern const u32 gMonShinyPalette_Pidgeot[]; -extern const u32 gMonShinyPalette_Rattata[]; -extern const u32 gMonShinyPalette_Raticate[]; -extern const u32 gMonShinyPalette_Spearow[]; -extern const u32 gMonShinyPalette_Fearow[]; -extern const u32 gMonShinyPalette_Ekans[]; -extern const u32 gMonShinyPalette_Arbok[]; -extern const u32 gMonShinyPalette_Pikachu[]; -extern const u32 gMonShinyPalette_Raichu[]; -extern const u32 gMonShinyPalette_Sandshrew[]; -extern const u32 gMonShinyPalette_Sandslash[]; -extern const u32 gMonShinyPalette_NidoranF[]; -extern const u32 gMonShinyPalette_Nidorina[]; -extern const u32 gMonShinyPalette_Nidoqueen[]; -extern const u32 gMonShinyPalette_NidoranM[]; -extern const u32 gMonShinyPalette_Nidorino[]; -extern const u32 gMonShinyPalette_Nidoking[]; -extern const u32 gMonShinyPalette_Clefairy[]; -extern const u32 gMonShinyPalette_Clefable[]; -extern const u32 gMonShinyPalette_Vulpix[]; -extern const u32 gMonShinyPalette_Ninetales[]; -extern const u32 gMonShinyPalette_Jigglypuff[]; -extern const u32 gMonShinyPalette_Wigglytuff[]; -extern const u32 gMonShinyPalette_Zubat[]; -extern const u32 gMonShinyPalette_Golbat[]; -extern const u32 gMonShinyPalette_Oddish[]; -extern const u32 gMonShinyPalette_Gloom[]; -extern const u32 gMonShinyPalette_Vileplume[]; -extern const u32 gMonShinyPalette_Paras[]; -extern const u32 gMonShinyPalette_Parasect[]; -extern const u32 gMonShinyPalette_Venonat[]; -extern const u32 gMonShinyPalette_Venomoth[]; -extern const u32 gMonShinyPalette_Diglett[]; -extern const u32 gMonShinyPalette_Dugtrio[]; -extern const u32 gMonShinyPalette_Meowth[]; -extern const u32 gMonShinyPalette_Persian[]; -extern const u32 gMonShinyPalette_Psyduck[]; -extern const u32 gMonShinyPalette_Golduck[]; -extern const u32 gMonShinyPalette_Mankey[]; -extern const u32 gMonShinyPalette_Primeape[]; -extern const u32 gMonShinyPalette_Growlithe[]; -extern const u32 gMonShinyPalette_Arcanine[]; -extern const u32 gMonShinyPalette_Poliwag[]; -extern const u32 gMonShinyPalette_Poliwhirl[]; -extern const u32 gMonShinyPalette_Poliwrath[]; -extern const u32 gMonShinyPalette_Abra[]; -extern const u32 gMonShinyPalette_Kadabra[]; -extern const u32 gMonShinyPalette_Alakazam[]; -extern const u32 gMonShinyPalette_Machop[]; -extern const u32 gMonShinyPalette_Machoke[]; -extern const u32 gMonShinyPalette_Machamp[]; -extern const u32 gMonShinyPalette_Bellsprout[]; -extern const u32 gMonShinyPalette_Weepinbell[]; -extern const u32 gMonShinyPalette_Victreebel[]; -extern const u32 gMonShinyPalette_Tentacool[]; -extern const u32 gMonShinyPalette_Tentacruel[]; -extern const u32 gMonShinyPalette_Geodude[]; -extern const u32 gMonShinyPalette_Graveler[]; -extern const u32 gMonShinyPalette_Golem[]; -extern const u32 gMonShinyPalette_Ponyta[]; -extern const u32 gMonShinyPalette_Rapidash[]; -extern const u32 gMonShinyPalette_Slowpoke[]; -extern const u32 gMonShinyPalette_Slowbro[]; -extern const u32 gMonShinyPalette_Magnemite[]; -extern const u32 gMonShinyPalette_Magneton[]; -extern const u32 gMonShinyPalette_Farfetchd[]; -extern const u32 gMonShinyPalette_Doduo[]; -extern const u32 gMonShinyPalette_Dodrio[]; -extern const u32 gMonShinyPalette_Seel[]; -extern const u32 gMonShinyPalette_Dewgong[]; -extern const u32 gMonShinyPalette_Grimer[]; -extern const u32 gMonShinyPalette_Muk[]; -extern const u32 gMonShinyPalette_Shellder[]; -extern const u32 gMonShinyPalette_Cloyster[]; -extern const u32 gMonShinyPalette_Gastly[]; -extern const u32 gMonShinyPalette_Haunter[]; -extern const u32 gMonShinyPalette_Gengar[]; -extern const u32 gMonShinyPalette_Onix[]; -extern const u32 gMonShinyPalette_Drowzee[]; -extern const u32 gMonShinyPalette_Hypno[]; -extern const u32 gMonShinyPalette_Krabby[]; -extern const u32 gMonShinyPalette_Kingler[]; -extern const u32 gMonShinyPalette_Voltorb[]; -extern const u32 gMonShinyPalette_Electrode[]; -extern const u32 gMonShinyPalette_Exeggcute[]; -extern const u32 gMonShinyPalette_Exeggutor[]; -extern const u32 gMonShinyPalette_Cubone[]; -extern const u32 gMonShinyPalette_Marowak[]; -extern const u32 gMonShinyPalette_Hitmonlee[]; -extern const u32 gMonShinyPalette_Hitmonchan[]; -extern const u32 gMonShinyPalette_Lickitung[]; -extern const u32 gMonShinyPalette_Koffing[]; -extern const u32 gMonShinyPalette_Weezing[]; -extern const u32 gMonShinyPalette_Rhyhorn[]; -extern const u32 gMonShinyPalette_Rhydon[]; -extern const u32 gMonShinyPalette_Chansey[]; -extern const u32 gMonShinyPalette_Tangela[]; -extern const u32 gMonShinyPalette_Kangaskhan[]; -extern const u32 gMonShinyPalette_Horsea[]; -extern const u32 gMonShinyPalette_Seadra[]; -extern const u32 gMonShinyPalette_Goldeen[]; -extern const u32 gMonShinyPalette_Seaking[]; -extern const u32 gMonShinyPalette_Staryu[]; -extern const u32 gMonShinyPalette_Starmie[]; -extern const u32 gMonShinyPalette_MrMime[]; -extern const u32 gMonShinyPalette_Scyther[]; -extern const u32 gMonShinyPalette_Jynx[]; -extern const u32 gMonShinyPalette_Electabuzz[]; -extern const u32 gMonShinyPalette_Magmar[]; -extern const u32 gMonShinyPalette_Pinsir[]; -extern const u32 gMonShinyPalette_Tauros[]; -extern const u32 gMonShinyPalette_Magikarp[]; -extern const u32 gMonShinyPalette_Gyarados[]; -extern const u32 gMonShinyPalette_Lapras[]; -extern const u32 gMonShinyPalette_Ditto[]; -extern const u32 gMonShinyPalette_Eevee[]; -extern const u32 gMonShinyPalette_Vaporeon[]; -extern const u32 gMonShinyPalette_Jolteon[]; -extern const u32 gMonShinyPalette_Flareon[]; -extern const u32 gMonShinyPalette_Porygon[]; -extern const u32 gMonShinyPalette_Omanyte[]; -extern const u32 gMonShinyPalette_Omastar[]; -extern const u32 gMonShinyPalette_Kabuto[]; -extern const u32 gMonShinyPalette_Kabutops[]; -extern const u32 gMonShinyPalette_Aerodactyl[]; -extern const u32 gMonShinyPalette_Snorlax[]; -extern const u32 gMonShinyPalette_Articuno[]; -extern const u32 gMonShinyPalette_Zapdos[]; -extern const u32 gMonShinyPalette_Moltres[]; -extern const u32 gMonShinyPalette_Dratini[]; -extern const u32 gMonShinyPalette_Dragonair[]; -extern const u32 gMonShinyPalette_Dragonite[]; -extern const u32 gMonShinyPalette_Mewtwo[]; -extern const u32 gMonShinyPalette_Mew[]; -extern const u32 gMonShinyPalette_Chikorita[]; -extern const u32 gMonShinyPalette_Bayleef[]; -extern const u32 gMonShinyPalette_Meganium[]; -extern const u32 gMonShinyPalette_Cyndaquil[]; -extern const u32 gMonShinyPalette_Quilava[]; -extern const u32 gMonShinyPalette_Typhlosion[]; -extern const u32 gMonShinyPalette_Totodile[]; -extern const u32 gMonShinyPalette_Croconaw[]; -extern const u32 gMonShinyPalette_Feraligatr[]; -extern const u32 gMonShinyPalette_Sentret[]; -extern const u32 gMonShinyPalette_Furret[]; -extern const u32 gMonShinyPalette_Hoothoot[]; -extern const u32 gMonShinyPalette_Noctowl[]; -extern const u32 gMonShinyPalette_Ledyba[]; -extern const u32 gMonShinyPalette_Ledian[]; -extern const u32 gMonShinyPalette_Spinarak[]; -extern const u32 gMonShinyPalette_Ariados[]; -extern const u32 gMonShinyPalette_Crobat[]; -extern const u32 gMonShinyPalette_Chinchou[]; -extern const u32 gMonShinyPalette_Lanturn[]; -extern const u32 gMonShinyPalette_Pichu[]; -extern const u32 gMonShinyPalette_Cleffa[]; -extern const u32 gMonShinyPalette_Igglybuff[]; -extern const u32 gMonShinyPalette_Togepi[]; -extern const u32 gMonShinyPalette_Togetic[]; -extern const u32 gMonShinyPalette_Natu[]; -extern const u32 gMonShinyPalette_Xatu[]; -extern const u32 gMonShinyPalette_Mareep[]; -extern const u32 gMonShinyPalette_Flaaffy[]; -extern const u32 gMonShinyPalette_Ampharos[]; -extern const u32 gMonShinyPalette_Bellossom[]; -extern const u32 gMonShinyPalette_Marill[]; -extern const u32 gMonShinyPalette_Azumarill[]; -extern const u32 gMonShinyPalette_Sudowoodo[]; -extern const u32 gMonShinyPalette_Politoed[]; -extern const u32 gMonShinyPalette_Hoppip[]; -extern const u32 gMonShinyPalette_Skiploom[]; -extern const u32 gMonShinyPalette_Jumpluff[]; -extern const u32 gMonShinyPalette_Aipom[]; -extern const u32 gMonShinyPalette_Sunkern[]; -extern const u32 gMonShinyPalette_Sunflora[]; -extern const u32 gMonShinyPalette_Yanma[]; -extern const u32 gMonShinyPalette_Wooper[]; -extern const u32 gMonShinyPalette_Quagsire[]; -extern const u32 gMonShinyPalette_Espeon[]; -extern const u32 gMonShinyPalette_Umbreon[]; -extern const u32 gMonShinyPalette_Murkrow[]; -extern const u32 gMonShinyPalette_Slowking[]; -extern const u32 gMonShinyPalette_Misdreavus[]; -extern const u32 gMonShinyPalette_Unown[]; -extern const u32 gMonShinyPalette_Wobbuffet[]; -extern const u32 gMonShinyPalette_Girafarig[]; -extern const u32 gMonShinyPalette_Pineco[]; -extern const u32 gMonShinyPalette_Forretress[]; -extern const u32 gMonShinyPalette_Dunsparce[]; -extern const u32 gMonShinyPalette_Gligar[]; -extern const u32 gMonShinyPalette_Steelix[]; -extern const u32 gMonShinyPalette_Snubbull[]; -extern const u32 gMonShinyPalette_Granbull[]; -extern const u32 gMonShinyPalette_Qwilfish[]; -extern const u32 gMonShinyPalette_Scizor[]; -extern const u32 gMonShinyPalette_Shuckle[]; -extern const u32 gMonShinyPalette_Heracross[]; -extern const u32 gMonShinyPalette_Sneasel[]; -extern const u32 gMonShinyPalette_Teddiursa[]; -extern const u32 gMonShinyPalette_Ursaring[]; -extern const u32 gMonShinyPalette_Slugma[]; -extern const u32 gMonShinyPalette_Magcargo[]; -extern const u32 gMonShinyPalette_Swinub[]; -extern const u32 gMonShinyPalette_Piloswine[]; -extern const u32 gMonShinyPalette_Corsola[]; -extern const u32 gMonShinyPalette_Remoraid[]; -extern const u32 gMonShinyPalette_Octillery[]; -extern const u32 gMonShinyPalette_Delibird[]; -extern const u32 gMonShinyPalette_Mantine[]; -extern const u32 gMonShinyPalette_Skarmory[]; -extern const u32 gMonShinyPalette_Houndour[]; -extern const u32 gMonShinyPalette_Houndoom[]; -extern const u32 gMonShinyPalette_Kingdra[]; -extern const u32 gMonShinyPalette_Phanpy[]; -extern const u32 gMonShinyPalette_Donphan[]; -extern const u32 gMonShinyPalette_Porygon2[]; -extern const u32 gMonShinyPalette_Stantler[]; -extern const u32 gMonShinyPalette_Smeargle[]; -extern const u32 gMonShinyPalette_Tyrogue[]; -extern const u32 gMonShinyPalette_Hitmontop[]; -extern const u32 gMonShinyPalette_Smoochum[]; -extern const u32 gMonShinyPalette_Elekid[]; -extern const u32 gMonShinyPalette_Magby[]; -extern const u32 gMonShinyPalette_Miltank[]; -extern const u32 gMonShinyPalette_Blissey[]; -extern const u32 gMonShinyPalette_Raikou[]; -extern const u32 gMonShinyPalette_Entei[]; -extern const u32 gMonShinyPalette_Suicune[]; -extern const u32 gMonShinyPalette_Larvitar[]; -extern const u32 gMonShinyPalette_Pupitar[]; -extern const u32 gMonShinyPalette_Tyranitar[]; -extern const u32 gMonShinyPalette_Lugia[]; -extern const u32 gMonShinyPalette_HoOh[]; -extern const u32 gMonShinyPalette_Celebi[]; -extern const u32 gMonShinyPalette_Treecko[]; -extern const u32 gMonShinyPalette_Grovyle[]; -extern const u32 gMonShinyPalette_Sceptile[]; -extern const u32 gMonShinyPalette_Torchic[]; -extern const u32 gMonShinyPalette_Combusken[]; -extern const u32 gMonShinyPalette_Blaziken[]; -extern const u32 gMonShinyPalette_Mudkip[]; -extern const u32 gMonShinyPalette_Marshtomp[]; -extern const u32 gMonShinyPalette_Swampert[]; -extern const u32 gMonShinyPalette_Poochyena[]; -extern const u32 gMonShinyPalette_Mightyena[]; -extern const u32 gMonShinyPalette_Zigzagoon[]; -extern const u32 gMonShinyPalette_Linoone[]; -extern const u32 gMonShinyPalette_Wurmple[]; -extern const u32 gMonShinyPalette_Silcoon[]; -extern const u32 gMonShinyPalette_Beautifly[]; -extern const u32 gMonShinyPalette_Cascoon[]; -extern const u32 gMonShinyPalette_Dustox[]; -extern const u32 gMonShinyPalette_Lotad[]; -extern const u32 gMonShinyPalette_Lombre[]; -extern const u32 gMonShinyPalette_Ludicolo[]; -extern const u32 gMonShinyPalette_Seedot[]; -extern const u32 gMonShinyPalette_Nuzleaf[]; -extern const u32 gMonShinyPalette_Shiftry[]; -extern const u32 gMonShinyPalette_Taillow[]; -extern const u32 gMonShinyPalette_Swellow[]; -extern const u32 gMonShinyPalette_Wingull[]; -extern const u32 gMonShinyPalette_Pelipper[]; -extern const u32 gMonShinyPalette_Ralts[]; -extern const u32 gMonShinyPalette_Kirlia[]; -extern const u32 gMonShinyPalette_Gardevoir[]; -extern const u32 gMonShinyPalette_Surskit[]; -extern const u32 gMonShinyPalette_Masquerain[]; -extern const u32 gMonShinyPalette_Shroomish[]; -extern const u32 gMonShinyPalette_Breloom[]; -extern const u32 gMonShinyPalette_Slakoth[]; -extern const u32 gMonShinyPalette_Vigoroth[]; -extern const u32 gMonShinyPalette_Slaking[]; -extern const u32 gMonShinyPalette_Nincada[]; -extern const u32 gMonShinyPalette_Ninjask[]; -extern const u32 gMonShinyPalette_Shedinja[]; -extern const u32 gMonShinyPalette_Whismur[]; -extern const u32 gMonShinyPalette_Loudred[]; -extern const u32 gMonShinyPalette_Exploud[]; -extern const u32 gMonShinyPalette_Makuhita[]; -extern const u32 gMonShinyPalette_Hariyama[]; -extern const u32 gMonShinyPalette_Azurill[]; -extern const u32 gMonShinyPalette_Nosepass[]; -extern const u32 gMonShinyPalette_Skitty[]; -extern const u32 gMonShinyPalette_Delcatty[]; -extern const u32 gMonShinyPalette_Sableye[]; -extern const u32 gMonShinyPalette_Mawile[]; -extern const u32 gMonShinyPalette_Aron[]; -extern const u32 gMonShinyPalette_Lairon[]; -extern const u32 gMonShinyPalette_Aggron[]; -extern const u32 gMonShinyPalette_Meditite[]; -extern const u32 gMonShinyPalette_Medicham[]; -extern const u32 gMonShinyPalette_Electrike[]; -extern const u32 gMonShinyPalette_Manectric[]; -extern const u32 gMonShinyPalette_Plusle[]; -extern const u32 gMonShinyPalette_Minun[]; -extern const u32 gMonShinyPalette_Volbeat[]; -extern const u32 gMonShinyPalette_Illumise[]; -extern const u32 gMonShinyPalette_Roselia[]; -extern const u32 gMonShinyPalette_Gulpin[]; -extern const u32 gMonShinyPalette_Swalot[]; -extern const u32 gMonShinyPalette_Carvanha[]; -extern const u32 gMonShinyPalette_Sharpedo[]; -extern const u32 gMonShinyPalette_Wailmer[]; -extern const u32 gMonShinyPalette_Wailord[]; -extern const u32 gMonShinyPalette_Numel[]; -extern const u32 gMonShinyPalette_Camerupt[]; -extern const u32 gMonShinyPalette_Torkoal[]; -extern const u32 gMonShinyPalette_Spoink[]; -extern const u32 gMonShinyPalette_Grumpig[]; -extern const u32 gMonShinyPalette_Spinda[]; -extern const u32 gMonShinyPalette_Trapinch[]; -extern const u32 gMonShinyPalette_Vibrava[]; -extern const u32 gMonShinyPalette_Flygon[]; -extern const u32 gMonShinyPalette_Cacnea[]; -extern const u32 gMonShinyPalette_Cacturne[]; -extern const u32 gMonShinyPalette_Swablu[]; -extern const u32 gMonShinyPalette_Altaria[]; -extern const u32 gMonShinyPalette_Zangoose[]; -extern const u32 gMonShinyPalette_Seviper[]; -extern const u32 gMonShinyPalette_Lunatone[]; -extern const u32 gMonShinyPalette_Solrock[]; -extern const u32 gMonShinyPalette_Barboach[]; -extern const u32 gMonShinyPalette_Whiscash[]; -extern const u32 gMonShinyPalette_Corphish[]; -extern const u32 gMonShinyPalette_Crawdaunt[]; -extern const u32 gMonShinyPalette_Baltoy[]; -extern const u32 gMonShinyPalette_Claydol[]; -extern const u32 gMonShinyPalette_Lileep[]; -extern const u32 gMonShinyPalette_Cradily[]; -extern const u32 gMonShinyPalette_Anorith[]; -extern const u32 gMonShinyPalette_Armaldo[]; -extern const u32 gMonShinyPalette_Feebas[]; -extern const u32 gMonShinyPalette_Milotic[]; -extern const u32 gMonShinyPalette_CastformNormal[]; -extern const u32 gMonShinyPalette_Kecleon[]; -extern const u32 gMonShinyPalette_Shuppet[]; -extern const u32 gMonShinyPalette_Banette[]; -extern const u32 gMonShinyPalette_Duskull[]; -extern const u32 gMonShinyPalette_Dusclops[]; -extern const u32 gMonShinyPalette_Tropius[]; -extern const u32 gMonShinyPalette_Chimecho[]; -extern const u32 gMonShinyPalette_Absol[]; -extern const u32 gMonShinyPalette_Wynaut[]; -extern const u32 gMonShinyPalette_Snorunt[]; -extern const u32 gMonShinyPalette_Glalie[]; -extern const u32 gMonShinyPalette_Spheal[]; -extern const u32 gMonShinyPalette_Sealeo[]; -extern const u32 gMonShinyPalette_Walrein[]; -extern const u32 gMonShinyPalette_Clamperl[]; -extern const u32 gMonShinyPalette_Huntail[]; -extern const u32 gMonShinyPalette_Gorebyss[]; -extern const u32 gMonShinyPalette_Relicanth[]; -extern const u32 gMonShinyPalette_Luvdisc[]; -extern const u32 gMonShinyPalette_Bagon[]; -extern const u32 gMonShinyPalette_Shelgon[]; -extern const u32 gMonShinyPalette_Salamence[]; -extern const u32 gMonShinyPalette_Beldum[]; -extern const u32 gMonShinyPalette_Metang[]; -extern const u32 gMonShinyPalette_Metagross[]; -extern const u32 gMonShinyPalette_Regirock[]; -extern const u32 gMonShinyPalette_Regice[]; -extern const u32 gMonShinyPalette_Registeel[]; -extern const u32 gMonShinyPalette_Latias[]; -extern const u32 gMonShinyPalette_Latios[]; -extern const u32 gMonShinyPalette_Kyogre[]; -extern const u32 gMonShinyPalette_Groudon[]; -extern const u32 gMonShinyPalette_Rayquaza[]; -extern const u32 gMonShinyPalette_Jirachi[]; -extern const u32 gMonShinyPalette_DeoxysNormal[]; -#if P_GEN_4_POKEMON == TRUE -extern const u32 gMonShinyPalette_Turtwig[]; -extern const u32 gMonShinyPalette_Grotle[]; -extern const u32 gMonShinyPalette_Torterra[]; -extern const u32 gMonShinyPalette_Chimchar[]; -extern const u32 gMonShinyPalette_Monferno[]; -extern const u32 gMonShinyPalette_Infernape[]; -extern const u32 gMonShinyPalette_Piplup[]; -extern const u32 gMonShinyPalette_Prinplup[]; -extern const u32 gMonShinyPalette_Empoleon[]; -extern const u32 gMonShinyPalette_Starly[]; -extern const u32 gMonShinyPalette_Staravia[]; -extern const u32 gMonShinyPalette_Staraptor[]; -extern const u32 gMonShinyPalette_Bidoof[]; -extern const u32 gMonShinyPalette_Bibarel[]; -extern const u32 gMonShinyPalette_Kricketot[]; -extern const u32 gMonShinyPalette_Kricketune[]; -extern const u32 gMonShinyPalette_Shinx[]; -extern const u32 gMonShinyPalette_Luxio[]; -extern const u32 gMonShinyPalette_Luxray[]; -extern const u32 gMonShinyPalette_Budew[]; -extern const u32 gMonShinyPalette_Roserade[]; -extern const u32 gMonShinyPalette_Cranidos[]; -extern const u32 gMonShinyPalette_Rampardos[]; -extern const u32 gMonShinyPalette_Shieldon[]; -extern const u32 gMonShinyPalette_Bastiodon[]; -extern const u32 gMonShinyPalette_BurmyPlantCloak[]; -extern const u32 gMonShinyPalette_WormadamPlantCloak[]; -extern const u32 gMonShinyPalette_Mothim[]; -extern const u32 gMonShinyPalette_Combee[]; -extern const u32 gMonShinyPalette_CombeeF[]; -extern const u32 gMonShinyPalette_Vespiquen[]; -extern const u32 gMonShinyPalette_Pachirisu[]; -extern const u32 gMonShinyPalette_Buizel[]; -extern const u32 gMonShinyPalette_Floatzel[]; -extern const u32 gMonShinyPalette_Cherubi[]; -extern const u32 gMonShinyPalette_CherrimOvercast[]; -extern const u32 gMonShinyPalette_ShellosWestSea[]; -extern const u32 gMonShinyPalette_GastrodonWestSea[]; -extern const u32 gMonShinyPalette_Ambipom[]; -extern const u32 gMonShinyPalette_Drifloon[]; -extern const u32 gMonShinyPalette_Drifblim[]; -extern const u32 gMonShinyPalette_Buneary[]; -extern const u32 gMonShinyPalette_Lopunny[]; -extern const u32 gMonShinyPalette_Mismagius[]; -extern const u32 gMonShinyPalette_Honchkrow[]; -extern const u32 gMonShinyPalette_Glameow[]; -extern const u32 gMonShinyPalette_Purugly[]; -extern const u32 gMonShinyPalette_Chingling[]; -extern const u32 gMonShinyPalette_Stunky[]; -extern const u32 gMonShinyPalette_Skuntank[]; -extern const u32 gMonShinyPalette_Bronzor[]; -extern const u32 gMonShinyPalette_Bronzong[]; -extern const u32 gMonShinyPalette_Bonsly[]; -extern const u32 gMonShinyPalette_MimeJr[]; -extern const u32 gMonShinyPalette_Happiny[]; -extern const u32 gMonShinyPalette_Chatot[]; -extern const u32 gMonShinyPalette_Spiritomb[]; -extern const u32 gMonShinyPalette_Gible[]; -extern const u32 gMonShinyPalette_Gabite[]; -extern const u32 gMonShinyPalette_Garchomp[]; -extern const u32 gMonShinyPalette_Munchlax[]; -extern const u32 gMonShinyPalette_Riolu[]; -extern const u32 gMonShinyPalette_Lucario[]; -extern const u32 gMonShinyPalette_Hippopotas[]; -extern const u32 gMonShinyPalette_HippopotasF[]; -extern const u32 gMonShinyPalette_Hippowdon[]; -extern const u32 gMonShinyPalette_HippowdonF[]; -extern const u32 gMonShinyPalette_Skorupi[]; -extern const u32 gMonShinyPalette_Drapion[]; -extern const u32 gMonShinyPalette_Croagunk[]; -extern const u32 gMonShinyPalette_Toxicroak[]; -extern const u32 gMonShinyPalette_Carnivine[]; -extern const u32 gMonShinyPalette_Finneon[]; -extern const u32 gMonShinyPalette_Lumineon[]; -extern const u32 gMonShinyPalette_Mantyke[]; -extern const u32 gMonShinyPalette_Snover[]; -extern const u32 gMonShinyPalette_Abomasnow[]; -extern const u32 gMonShinyPalette_Weavile[]; -extern const u32 gMonShinyPalette_Magnezone[]; -extern const u32 gMonShinyPalette_Lickilicky[]; -extern const u32 gMonShinyPalette_Rhyperior[]; -extern const u32 gMonShinyPalette_Tangrowth[]; -extern const u32 gMonShinyPalette_Electivire[]; -extern const u32 gMonShinyPalette_Magmortar[]; -extern const u32 gMonShinyPalette_Togekiss[]; -extern const u32 gMonShinyPalette_Yanmega[]; -extern const u32 gMonShinyPalette_Leafeon[]; -extern const u32 gMonShinyPalette_Glaceon[]; -extern const u32 gMonShinyPalette_Gliscor[]; -extern const u32 gMonShinyPalette_Mamoswine[]; -extern const u32 gMonShinyPalette_PorygonZ[]; -extern const u32 gMonShinyPalette_Gallade[]; -extern const u32 gMonShinyPalette_Probopass[]; -extern const u32 gMonShinyPalette_Dusknoir[]; -extern const u32 gMonShinyPalette_Froslass[]; -extern const u32 gMonShinyPalette_Rotom[]; -extern const u32 gMonShinyPalette_Uxie[]; -extern const u32 gMonShinyPalette_Mesprit[]; -extern const u32 gMonShinyPalette_Azelf[]; -extern const u32 gMonShinyPalette_Dialga[]; -extern const u32 gMonShinyPalette_Palkia[]; -extern const u32 gMonShinyPalette_Heatran[]; -extern const u32 gMonShinyPalette_Regigigas[]; -extern const u32 gMonShinyPalette_GiratinaAltered[]; -extern const u32 gMonShinyPalette_Cresselia[]; -extern const u32 gMonShinyPalette_Phione[]; -extern const u32 gMonShinyPalette_Manaphy[]; -extern const u32 gMonShinyPalette_Darkrai[]; -extern const u32 gMonShinyPalette_ShayminLand[]; -extern const u32 gMonShinyPalette_Arceus[]; -#endif -#if P_GEN_5_POKEMON == TRUE -extern const u32 gMonShinyPalette_Victini[]; -extern const u32 gMonShinyPalette_Snivy[]; -extern const u32 gMonShinyPalette_Servine[]; -extern const u32 gMonShinyPalette_Serperior[]; -extern const u32 gMonShinyPalette_Tepig[]; -extern const u32 gMonShinyPalette_Pignite[]; -extern const u32 gMonShinyPalette_Emboar[]; -extern const u32 gMonShinyPalette_Oshawott[]; -extern const u32 gMonShinyPalette_Dewott[]; -extern const u32 gMonShinyPalette_Samurott[]; -extern const u32 gMonShinyPalette_Patrat[]; -extern const u32 gMonShinyPalette_Watchog[]; -extern const u32 gMonShinyPalette_Lillipup[]; -extern const u32 gMonShinyPalette_Herdier[]; -extern const u32 gMonShinyPalette_Stoutland[]; -extern const u32 gMonShinyPalette_Purrloin[]; -extern const u32 gMonShinyPalette_Liepard[]; -extern const u32 gMonShinyPalette_Pansage[]; -extern const u32 gMonShinyPalette_Simisage[]; -extern const u32 gMonShinyPalette_Pansear[]; -extern const u32 gMonShinyPalette_Simisear[]; -extern const u32 gMonShinyPalette_Panpour[]; -extern const u32 gMonShinyPalette_Simipour[]; -extern const u32 gMonShinyPalette_Munna[]; -extern const u32 gMonShinyPalette_Musharna[]; -extern const u32 gMonShinyPalette_Pidove[]; -extern const u32 gMonShinyPalette_Tranquill[]; -extern const u32 gMonShinyPalette_Unfezant[]; -extern const u32 gMonShinyPalette_UnfezantF[]; -extern const u32 gMonShinyPalette_Blitzle[]; -extern const u32 gMonShinyPalette_Zebstrika[]; -extern const u32 gMonShinyPalette_Roggenrola[]; -extern const u32 gMonShinyPalette_Boldore[]; -extern const u32 gMonShinyPalette_Gigalith[]; -extern const u32 gMonShinyPalette_Woobat[]; -extern const u32 gMonShinyPalette_Swoobat[]; -extern const u32 gMonShinyPalette_Drilbur[]; -extern const u32 gMonShinyPalette_Excadrill[]; -extern const u32 gMonShinyPalette_Audino[]; -extern const u32 gMonShinyPalette_Timburr[]; -extern const u32 gMonShinyPalette_Gurdurr[]; -extern const u32 gMonShinyPalette_Conkeldurr[]; -extern const u32 gMonShinyPalette_Tympole[]; -extern const u32 gMonShinyPalette_Palpitoad[]; -extern const u32 gMonShinyPalette_Seismitoad[]; -extern const u32 gMonShinyPalette_Throh[]; -extern const u32 gMonShinyPalette_Sawk[]; -extern const u32 gMonShinyPalette_Sewaddle[]; -extern const u32 gMonShinyPalette_Swadloon[]; -extern const u32 gMonShinyPalette_Leavanny[]; -extern const u32 gMonShinyPalette_Venipede[]; -extern const u32 gMonShinyPalette_Whirlipede[]; -extern const u32 gMonShinyPalette_Scolipede[]; -extern const u32 gMonShinyPalette_Cottonee[]; -extern const u32 gMonShinyPalette_Whimsicott[]; -extern const u32 gMonShinyPalette_Petilil[]; -extern const u32 gMonShinyPalette_Lilligant[]; -extern const u32 gMonShinyPalette_BasculinRedStriped[]; -extern const u32 gMonShinyPalette_Sandile[]; -extern const u32 gMonShinyPalette_Krokorok[]; -extern const u32 gMonShinyPalette_Krookodile[]; -extern const u32 gMonShinyPalette_Darumaka[]; -extern const u32 gMonShinyPalette_DarmanitanStandardMode[]; -extern const u32 gMonShinyPalette_Maractus[]; -extern const u32 gMonShinyPalette_Dwebble[]; -extern const u32 gMonShinyPalette_Crustle[]; -extern const u32 gMonShinyPalette_Scraggy[]; -extern const u32 gMonShinyPalette_Scrafty[]; -extern const u32 gMonShinyPalette_Sigilyph[]; -extern const u32 gMonShinyPalette_Yamask[]; -extern const u32 gMonShinyPalette_Cofagrigus[]; -extern const u32 gMonShinyPalette_Tirtouga[]; -extern const u32 gMonShinyPalette_Carracosta[]; -extern const u32 gMonShinyPalette_Archen[]; -extern const u32 gMonShinyPalette_Archeops[]; -extern const u32 gMonShinyPalette_Trubbish[]; -extern const u32 gMonShinyPalette_Garbodor[]; -extern const u32 gMonShinyPalette_Zorua[]; -extern const u32 gMonShinyPalette_Zoroark[]; -extern const u32 gMonShinyPalette_Minccino[]; -extern const u32 gMonShinyPalette_Cinccino[]; -extern const u32 gMonShinyPalette_Gothita[]; -extern const u32 gMonShinyPalette_Gothorita[]; -extern const u32 gMonShinyPalette_Gothitelle[]; -extern const u32 gMonShinyPalette_Solosis[]; -extern const u32 gMonShinyPalette_Duosion[]; -extern const u32 gMonShinyPalette_Reuniclus[]; -extern const u32 gMonShinyPalette_Ducklett[]; -extern const u32 gMonShinyPalette_Swanna[]; -extern const u32 gMonShinyPalette_Vanillite[]; -extern const u32 gMonShinyPalette_Vanillish[]; -extern const u32 gMonShinyPalette_Vanilluxe[]; -extern const u32 gMonShinyPalette_DeerlingSpring[]; -extern const u32 gMonShinyPalette_SawsbuckSpring[]; -extern const u32 gMonShinyPalette_Emolga[]; -extern const u32 gMonShinyPalette_Karrablast[]; -extern const u32 gMonShinyPalette_Escavalier[]; -extern const u32 gMonShinyPalette_Foongus[]; -extern const u32 gMonShinyPalette_Amoonguss[]; -extern const u32 gMonShinyPalette_Frillish[]; -extern const u32 gMonShinyPalette_FrillishF[]; -extern const u32 gMonShinyPalette_Jellicent[]; -extern const u32 gMonShinyPalette_JellicentF[]; -extern const u32 gMonShinyPalette_Alomomola[]; -extern const u32 gMonShinyPalette_Joltik[]; -extern const u32 gMonShinyPalette_Galvantula[]; -extern const u32 gMonShinyPalette_Ferroseed[]; -extern const u32 gMonShinyPalette_Ferrothorn[]; -extern const u32 gMonShinyPalette_Klink[]; -extern const u32 gMonShinyPalette_Klang[]; -extern const u32 gMonShinyPalette_Klinklang[]; -extern const u32 gMonShinyPalette_Tynamo[]; -extern const u32 gMonShinyPalette_Eelektrik[]; -extern const u32 gMonShinyPalette_Eelektross[]; -extern const u32 gMonShinyPalette_Elgyem[]; -extern const u32 gMonShinyPalette_Beheeyem[]; -extern const u32 gMonShinyPalette_Litwick[]; -extern const u32 gMonShinyPalette_Lampent[]; -extern const u32 gMonShinyPalette_Chandelure[]; -extern const u32 gMonShinyPalette_Axew[]; -extern const u32 gMonShinyPalette_Fraxure[]; -extern const u32 gMonShinyPalette_Haxorus[]; -extern const u32 gMonShinyPalette_Cubchoo[]; -extern const u32 gMonShinyPalette_Beartic[]; -extern const u32 gMonShinyPalette_Cryogonal[]; -extern const u32 gMonShinyPalette_Shelmet[]; -extern const u32 gMonShinyPalette_Accelgor[]; -extern const u32 gMonShinyPalette_Stunfisk[]; -extern const u32 gMonShinyPalette_Mienfoo[]; -extern const u32 gMonShinyPalette_Mienshao[]; -extern const u32 gMonShinyPalette_Druddigon[]; -extern const u32 gMonShinyPalette_Golett[]; -extern const u32 gMonShinyPalette_Golurk[]; -extern const u32 gMonShinyPalette_Pawniard[]; -extern const u32 gMonShinyPalette_Bisharp[]; -extern const u32 gMonShinyPalette_Bouffalant[]; -extern const u32 gMonShinyPalette_Rufflet[]; -extern const u32 gMonShinyPalette_Braviary[]; -extern const u32 gMonShinyPalette_Vullaby[]; -extern const u32 gMonShinyPalette_Mandibuzz[]; -extern const u32 gMonShinyPalette_Heatmor[]; -extern const u32 gMonShinyPalette_Durant[]; -extern const u32 gMonShinyPalette_Deino[]; -extern const u32 gMonShinyPalette_Zweilous[]; -extern const u32 gMonShinyPalette_Hydreigon[]; -extern const u32 gMonShinyPalette_Larvesta[]; -extern const u32 gMonShinyPalette_Volcarona[]; -extern const u32 gMonShinyPalette_Cobalion[]; -extern const u32 gMonShinyPalette_Terrakion[]; -extern const u32 gMonShinyPalette_Virizion[]; -extern const u32 gMonShinyPalette_TornadusIncarnate[]; -extern const u32 gMonShinyPalette_ThundurusIncarnate[]; -extern const u32 gMonShinyPalette_Reshiram[]; -extern const u32 gMonShinyPalette_Zekrom[]; -extern const u32 gMonShinyPalette_LandorusIncarnate[]; -extern const u32 gMonShinyPalette_Kyurem[]; -extern const u32 gMonShinyPalette_KeldeoOrdinary[]; -extern const u32 gMonShinyPalette_MeloettaAria[]; -extern const u32 gMonShinyPalette_Genesect[]; -#endif -#if P_GEN_6_POKEMON == TRUE -extern const u32 gMonShinyPalette_Chespin[]; -extern const u32 gMonShinyPalette_Quilladin[]; -extern const u32 gMonShinyPalette_Chesnaught[]; -extern const u32 gMonShinyPalette_Fennekin[]; -extern const u32 gMonShinyPalette_Braixen[]; -extern const u32 gMonShinyPalette_Delphox[]; -extern const u32 gMonShinyPalette_Froakie[]; -extern const u32 gMonShinyPalette_Frogadier[]; -extern const u32 gMonShinyPalette_Greninja[]; -extern const u32 gMonShinyPalette_Bunnelby[]; -extern const u32 gMonShinyPalette_Diggersby[]; -extern const u32 gMonShinyPalette_Fletchling[]; -extern const u32 gMonShinyPalette_Fletchinder[]; -extern const u32 gMonShinyPalette_Talonflame[]; -extern const u32 gMonShinyPalette_Scatterbug[]; -extern const u32 gMonShinyPalette_Spewpa[]; -extern const u32 gMonShinyPalette_VivillonIcySnow[]; -extern const u32 gMonShinyPalette_Litleo[]; -extern const u32 gMonShinyPalette_Pyroar[]; -extern const u32 gMonShinyPalette_FlabebeRedFlower[]; -extern const u32 gMonShinyPalette_FloetteRedFlower[]; -extern const u32 gMonShinyPalette_FlorgesRedFlower[]; -extern const u32 gMonShinyPalette_Skiddo[]; -extern const u32 gMonShinyPalette_Gogoat[]; -extern const u32 gMonShinyPalette_Pancham[]; -extern const u32 gMonShinyPalette_Pangoro[]; -extern const u32 gMonShinyPalette_FurfrouNatural[]; -extern const u32 gMonShinyPalette_Espurr[]; -extern const u32 gMonShinyPalette_MeowsticMale[]; -extern const u32 gMonShinyPalette_Honedge[]; -extern const u32 gMonShinyPalette_Doublade[]; -extern const u32 gMonShinyPalette_AegislashShield[]; -extern const u32 gMonShinyPalette_Spritzee[]; -extern const u32 gMonShinyPalette_Aromatisse[]; -extern const u32 gMonShinyPalette_Swirlix[]; -extern const u32 gMonShinyPalette_Slurpuff[]; -extern const u32 gMonShinyPalette_Inkay[]; -extern const u32 gMonShinyPalette_Malamar[]; -extern const u32 gMonShinyPalette_Binacle[]; -extern const u32 gMonShinyPalette_Barbaracle[]; -extern const u32 gMonShinyPalette_Skrelp[]; -extern const u32 gMonShinyPalette_Dragalge[]; -extern const u32 gMonShinyPalette_Clauncher[]; -extern const u32 gMonShinyPalette_Clawitzer[]; -extern const u32 gMonShinyPalette_Helioptile[]; -extern const u32 gMonShinyPalette_Heliolisk[]; -extern const u32 gMonShinyPalette_Tyrunt[]; -extern const u32 gMonShinyPalette_Tyrantrum[]; -extern const u32 gMonShinyPalette_Amaura[]; -extern const u32 gMonShinyPalette_Aurorus[]; -extern const u32 gMonShinyPalette_Sylveon[]; -extern const u32 gMonShinyPalette_Hawlucha[]; -extern const u32 gMonShinyPalette_Dedenne[]; -extern const u32 gMonShinyPalette_Carbink[]; -extern const u32 gMonShinyPalette_Goomy[]; -extern const u32 gMonShinyPalette_Sliggoo[]; -extern const u32 gMonShinyPalette_Goodra[]; -extern const u32 gMonShinyPalette_Klefki[]; -extern const u32 gMonShinyPalette_Phantump[]; -extern const u32 gMonShinyPalette_Trevenant[]; -extern const u32 gMonShinyPalette_Pumpkaboo[]; -extern const u32 gMonShinyPalette_Gourgeist[]; -extern const u32 gMonShinyPalette_Bergmite[]; -extern const u32 gMonShinyPalette_Avalugg[]; -extern const u32 gMonShinyPalette_Noibat[]; -extern const u32 gMonShinyPalette_Noivern[]; -extern const u32 gMonShinyPalette_XerneasNeutral[]; -extern const u32 gMonShinyPalette_Yveltal[]; -extern const u32 gMonShinyPalette_Zygarde50[]; -extern const u32 gMonShinyPalette_Diancie[]; -extern const u32 gMonShinyPalette_HoopaConfined[]; -extern const u32 gMonShinyPalette_Volcanion[]; -#endif -#if P_GEN_7_POKEMON == TRUE -extern const u32 gMonShinyPalette_Rowlet[]; -extern const u32 gMonShinyPalette_Dartrix[]; -extern const u32 gMonShinyPalette_Decidueye[]; -extern const u32 gMonShinyPalette_Litten[]; -extern const u32 gMonShinyPalette_Torracat[]; -extern const u32 gMonShinyPalette_Incineroar[]; -extern const u32 gMonShinyPalette_Popplio[]; -extern const u32 gMonShinyPalette_Brionne[]; -extern const u32 gMonShinyPalette_Primarina[]; -extern const u32 gMonShinyPalette_Pikipek[]; -extern const u32 gMonShinyPalette_Trumbeak[]; -extern const u32 gMonShinyPalette_Toucannon[]; -extern const u32 gMonShinyPalette_Yungoos[]; -extern const u32 gMonShinyPalette_Gumshoos[]; -extern const u32 gMonShinyPalette_Grubbin[]; -extern const u32 gMonShinyPalette_Charjabug[]; -extern const u32 gMonShinyPalette_Vikavolt[]; -extern const u32 gMonShinyPalette_Crabrawler[]; -extern const u32 gMonShinyPalette_Crabominable[]; -extern const u32 gMonShinyPalette_OricorioBaile[]; -extern const u32 gMonShinyPalette_Cutiefly[]; -extern const u32 gMonShinyPalette_Ribombee[]; -extern const u32 gMonShinyPalette_Rockruff[]; -extern const u32 gMonShinyPalette_LycanrocMidday[]; -extern const u32 gMonShinyPalette_WishiwashiSolo[]; -extern const u32 gMonShinyPalette_Mareanie[]; -extern const u32 gMonShinyPalette_Toxapex[]; -extern const u32 gMonShinyPalette_Mudbray[]; -extern const u32 gMonShinyPalette_Mudsdale[]; -extern const u32 gMonShinyPalette_Dewpider[]; -extern const u32 gMonShinyPalette_Araquanid[]; -extern const u32 gMonShinyPalette_Fomantis[]; -extern const u32 gMonShinyPalette_Lurantis[]; -extern const u32 gMonShinyPalette_Morelull[]; -extern const u32 gMonShinyPalette_Shiinotic[]; -extern const u32 gMonShinyPalette_Salandit[]; -extern const u32 gMonShinyPalette_Salazzle[]; -extern const u32 gMonShinyPalette_Stufful[]; -extern const u32 gMonShinyPalette_Bewear[]; -extern const u32 gMonShinyPalette_Bounsweet[]; -extern const u32 gMonShinyPalette_Steenee[]; -extern const u32 gMonShinyPalette_Tsareena[]; -extern const u32 gMonShinyPalette_Comfey[]; -extern const u32 gMonShinyPalette_Oranguru[]; -extern const u32 gMonShinyPalette_Passimian[]; -extern const u32 gMonShinyPalette_Wimpod[]; -extern const u32 gMonShinyPalette_Golisopod[]; -extern const u32 gMonShinyPalette_Sandygast[]; -extern const u32 gMonShinyPalette_Palossand[]; -extern const u32 gMonShinyPalette_Pyukumuku[]; -extern const u32 gMonShinyPalette_TypeNull[]; -extern const u32 gMonShinyPalette_SilvallyNormal[]; -extern const u32 gMonShinyPalette_MiniorMeteor[]; -extern const u32 gMonShinyPalette_Komala[]; -extern const u32 gMonShinyPalette_Turtonator[]; -extern const u32 gMonShinyPalette_Togedemaru[]; -extern const u32 gMonShinyPalette_MimikyuDisguised[]; -extern const u32 gMonShinyPalette_Bruxish[]; -extern const u32 gMonShinyPalette_Drampa[]; -extern const u32 gMonShinyPalette_Dhelmise[]; -extern const u32 gMonShinyPalette_JangmoO[]; -extern const u32 gMonShinyPalette_HakamoO[]; -extern const u32 gMonShinyPalette_KommoO[]; -extern const u32 gMonShinyPalette_TapuKoko[]; -extern const u32 gMonShinyPalette_TapuLele[]; -extern const u32 gMonShinyPalette_TapuBulu[]; -extern const u32 gMonShinyPalette_TapuFini[]; -extern const u32 gMonShinyPalette_Cosmog[]; -extern const u32 gMonShinyPalette_Cosmoem[]; -extern const u32 gMonShinyPalette_Solgaleo[]; -extern const u32 gMonShinyPalette_Lunala[]; -extern const u32 gMonShinyPalette_Nihilego[]; -extern const u32 gMonShinyPalette_Buzzwole[]; -extern const u32 gMonShinyPalette_Pheromosa[]; -extern const u32 gMonShinyPalette_Xurkitree[]; -extern const u32 gMonShinyPalette_Celesteela[]; -extern const u32 gMonShinyPalette_Kartana[]; -extern const u32 gMonShinyPalette_Guzzlord[]; -extern const u32 gMonShinyPalette_Necrozma[]; -extern const u32 gMonShinyPalette_Magearna[]; -extern const u32 gMonShinyPalette_Marshadow[]; -extern const u32 gMonShinyPalette_Poipole[]; -extern const u32 gMonShinyPalette_Naganadel[]; -extern const u32 gMonShinyPalette_Stakataka[]; -extern const u32 gMonShinyPalette_Blacephalon[]; -extern const u32 gMonShinyPalette_Zeraora[]; -extern const u32 gMonShinyPalette_Meltan[]; -extern const u32 gMonShinyPalette_Melmetal[]; -#endif -#if P_GEN_8_POKEMON == TRUE -extern const u32 gMonShinyPalette_Grookey[]; -extern const u32 gMonShinyPalette_Thwackey[]; -extern const u32 gMonShinyPalette_Rillaboom[]; -extern const u32 gMonShinyPalette_Scorbunny[]; -extern const u32 gMonShinyPalette_Raboot[]; -extern const u32 gMonShinyPalette_Cinderace[]; -extern const u32 gMonShinyPalette_Sobble[]; -extern const u32 gMonShinyPalette_Drizzile[]; -extern const u32 gMonShinyPalette_Inteleon[]; -extern const u32 gMonShinyPalette_Skwovet[]; -extern const u32 gMonShinyPalette_Greedent[]; -extern const u32 gMonShinyPalette_Rookidee[]; -extern const u32 gMonShinyPalette_Corvisquire[]; -extern const u32 gMonShinyPalette_Corviknight[]; -extern const u32 gMonShinyPalette_Blipbug[]; -extern const u32 gMonShinyPalette_Dottler[]; -extern const u32 gMonShinyPalette_Orbeetle[]; -extern const u32 gMonShinyPalette_Nickit[]; -extern const u32 gMonShinyPalette_Thievul[]; -extern const u32 gMonShinyPalette_Gossifleur[]; -extern const u32 gMonShinyPalette_Eldegoss[]; -extern const u32 gMonShinyPalette_Wooloo[]; -extern const u32 gMonShinyPalette_Dubwool[]; -extern const u32 gMonShinyPalette_Chewtle[]; -extern const u32 gMonShinyPalette_Drednaw[]; -extern const u32 gMonShinyPalette_Yamper[]; -extern const u32 gMonShinyPalette_Boltund[]; -extern const u32 gMonShinyPalette_Rolycoly[]; -extern const u32 gMonShinyPalette_Carkol[]; -extern const u32 gMonShinyPalette_Coalossal[]; -extern const u32 gMonShinyPalette_Applin[]; -extern const u32 gMonShinyPalette_Flapple[]; -extern const u32 gMonShinyPalette_Appletun[]; -extern const u32 gMonShinyPalette_Silicobra[]; -extern const u32 gMonShinyPalette_Sandaconda[]; -extern const u32 gMonShinyPalette_Cramorant[]; -extern const u32 gMonShinyPalette_Arrokuda[]; -extern const u32 gMonShinyPalette_Barraskewda[]; -extern const u32 gMonShinyPalette_Toxel[]; -extern const u32 gMonShinyPalette_ToxtricityAmped[]; -extern const u32 gMonShinyPalette_Sizzlipede[]; -extern const u32 gMonShinyPalette_Centiskorch[]; -extern const u32 gMonShinyPalette_Clobbopus[]; -extern const u32 gMonShinyPalette_Grapploct[]; -extern const u32 gMonShinyPalette_Sinistea[]; -extern const u32 gMonShinyPalette_Polteageist[]; -extern const u32 gMonShinyPalette_Hatenna[]; -extern const u32 gMonShinyPalette_Hattrem[]; -extern const u32 gMonShinyPalette_Hatterene[]; -extern const u32 gMonShinyPalette_Impidimp[]; -extern const u32 gMonShinyPalette_Morgrem[]; -extern const u32 gMonShinyPalette_Grimmsnarl[]; -extern const u32 gMonShinyPalette_Obstagoon[]; -extern const u32 gMonShinyPalette_Perrserker[]; -extern const u32 gMonShinyPalette_Cursola[]; -extern const u32 gMonShinyPalette_Sirfetchd[]; -extern const u32 gMonShinyPalette_MrRime[]; -extern const u32 gMonShinyPalette_Runerigus[]; -extern const u32 gMonShinyPalette_Milcery[]; -extern const u32 gMonShinyPalette_Alcremie[]; -extern const u32 gMonShinyPalette_Falinks[]; -extern const u32 gMonShinyPalette_Pincurchin[]; -extern const u32 gMonShinyPalette_Snom[]; -extern const u32 gMonShinyPalette_Frosmoth[]; -extern const u32 gMonShinyPalette_Stonjourner[]; -extern const u32 gMonShinyPalette_EiscueIceFace[]; -extern const u32 gMonShinyPalette_IndeedeeMale[]; -extern const u32 gMonShinyPalette_MorpekoFullBelly[]; -extern const u32 gMonShinyPalette_Cufant[]; -extern const u32 gMonShinyPalette_Copperajah[]; -extern const u32 gMonShinyPalette_Dracozolt[]; -extern const u32 gMonShinyPalette_Arctozolt[]; -extern const u32 gMonShinyPalette_Dracovish[]; -extern const u32 gMonShinyPalette_Arctovish[]; -extern const u32 gMonShinyPalette_Duraludon[]; -extern const u32 gMonShinyPalette_Dreepy[]; -extern const u32 gMonShinyPalette_Drakloak[]; -extern const u32 gMonShinyPalette_Dragapult[]; -extern const u32 gMonShinyPalette_ZacianHeroOfManyBattles[]; -extern const u32 gMonShinyPalette_ZamazentaHeroOfManyBattles[]; -extern const u32 gMonShinyPalette_Eternatus[]; -extern const u32 gMonShinyPalette_Kubfu[]; -extern const u32 gMonShinyPalette_UrshifuSingleStrikeStyle[]; -extern const u32 gMonShinyPalette_Zarude[]; -extern const u32 gMonShinyPalette_Regieleki[]; -extern const u32 gMonShinyPalette_Regidrago[]; -extern const u32 gMonShinyPalette_Glastrier[]; -extern const u32 gMonShinyPalette_Spectrier[]; -extern const u32 gMonShinyPalette_Calyrex[]; -extern const u32 gMonShinyPalette_Wyrdeer[]; -extern const u32 gMonShinyPalette_Kleavor[]; -extern const u32 gMonShinyPalette_Ursaluna[]; -extern const u32 gMonShinyPalette_BasculegionMale[]; -extern const u32 gMonShinyPalette_Sneasler[]; -extern const u32 gMonShinyPalette_Overqwil[]; -extern const u32 gMonShinyPalette_EnamorusIncarnate[]; -#endif -extern const u32 gMonShinyPalette_VenusaurMega[]; -extern const u32 gMonShinyPalette_CharizardMegaX[]; -extern const u32 gMonShinyPalette_CharizardMegaY[]; -extern const u32 gMonShinyPalette_BlastoiseMega[]; -extern const u32 gMonShinyPalette_BeedrillMega[]; -extern const u32 gMonShinyPalette_PidgeotMega[]; -extern const u32 gMonShinyPalette_AlakazamMega[]; -extern const u32 gMonShinyPalette_SlowbroMega[]; -extern const u32 gMonShinyPalette_GengarMega[]; -extern const u32 gMonShinyPalette_KangaskhanMega[]; -extern const u32 gMonShinyPalette_PinsirMega[]; -extern const u32 gMonShinyPalette_GyaradosMega[]; -extern const u32 gMonShinyPalette_AerodactylMega[]; -extern const u32 gMonShinyPalette_MewtwoMegaX[]; -extern const u32 gMonShinyPalette_MewtwoMegaY[]; -extern const u32 gMonShinyPalette_AmpharosMega[]; -extern const u32 gMonShinyPalette_SteelixMega[]; -extern const u32 gMonShinyPalette_ScizorMega[]; -extern const u32 gMonShinyPalette_HeracrossMega[]; -extern const u32 gMonShinyPalette_HoundoomMega[]; -extern const u32 gMonShinyPalette_TyranitarMega[]; -extern const u32 gMonShinyPalette_SceptileMega[]; -extern const u32 gMonShinyPalette_BlazikenMega[]; -extern const u32 gMonShinyPalette_SwampertMega[]; -extern const u32 gMonShinyPalette_GardevoirMega[]; -extern const u32 gMonShinyPalette_SableyeMega[]; -extern const u32 gMonShinyPalette_MawileMega[]; -extern const u32 gMonShinyPalette_AggronMega[]; -extern const u32 gMonShinyPalette_MedichamMega[]; -extern const u32 gMonShinyPalette_ManectricMega[]; -extern const u32 gMonShinyPalette_SharpedoMega[]; -extern const u32 gMonShinyPalette_CameruptMega[]; -extern const u32 gMonShinyPalette_AltariaMega[]; -extern const u32 gMonShinyPalette_BanetteMega[]; -extern const u32 gMonShinyPalette_AbsolMega[]; -extern const u32 gMonShinyPalette_GlalieMega[]; -extern const u32 gMonShinyPalette_SalamenceMega[]; -extern const u32 gMonShinyPalette_MetagrossMega[]; -extern const u32 gMonShinyPalette_LatiasMega[]; -extern const u32 gMonShinyPalette_LatiosMega[]; -#if P_GEN_4_POKEMON == TRUE -extern const u32 gMonShinyPalette_LopunnyMega[]; -extern const u32 gMonShinyPalette_GarchompMega[]; -extern const u32 gMonShinyPalette_LucarioMega[]; -extern const u32 gMonShinyPalette_AbomasnowMega[]; -extern const u32 gMonShinyPalette_GalladeMega[]; -#endif -#if P_GEN_5_POKEMON == TRUE -extern const u32 gMonShinyPalette_AudinoMega[]; -#endif -#if P_GEN_6_POKEMON == TRUE -extern const u32 gMonShinyPalette_DiancieMega[]; -#endif -extern const u32 gMonShinyPalette_RayquazaMega[]; -extern const u32 gMonShinyPalette_KyogrePrimal[]; -extern const u32 gMonShinyPalette_GroudonPrimal[]; -extern const u32 gMonShinyPalette_RattataAlolan[]; -extern const u32 gMonShinyPalette_RaticateAlolan[]; -extern const u32 gMonShinyPalette_RaichuAlolan[]; -extern const u32 gMonShinyPalette_SandshrewAlolan[]; -extern const u32 gMonShinyPalette_SandslashAlolan[]; -extern const u32 gMonShinyPalette_VulpixAlolan[]; -extern const u32 gMonShinyPalette_NinetalesAlolan[]; -extern const u32 gMonShinyPalette_DiglettAlolan[]; -extern const u32 gMonShinyPalette_DugtrioAlolan[]; -extern const u32 gMonShinyPalette_MeowthAlolan[]; -extern const u32 gMonShinyPalette_PersianAlolan[]; -extern const u32 gMonShinyPalette_GeodudeAlolan[]; -extern const u32 gMonShinyPalette_GravelerAlolan[]; -extern const u32 gMonShinyPalette_GolemAlolan[]; -extern const u32 gMonShinyPalette_GrimerAlolan[]; -extern const u32 gMonShinyPalette_MukAlolan[]; -extern const u32 gMonShinyPalette_ExeggutorAlolan[]; -extern const u32 gMonShinyPalette_MarowakAlolan[]; -extern const u32 gMonShinyPalette_MeowthGalarian[]; -extern const u32 gMonShinyPalette_PonytaGalarian[]; -extern const u32 gMonShinyPalette_RapidashGalarian[]; -extern const u32 gMonShinyPalette_SlowpokeGalarian[]; -extern const u32 gMonShinyPalette_SlowbroGalarian[]; -extern const u32 gMonShinyPalette_FarfetchdGalarian[]; -extern const u32 gMonShinyPalette_WeezingGalarian[]; -extern const u32 gMonShinyPalette_MrMimeGalarian[]; -extern const u32 gMonShinyPalette_ArticunoGalarian[]; -extern const u32 gMonShinyPalette_ZapdosGalarian[]; -extern const u32 gMonShinyPalette_MoltresGalarian[]; -extern const u32 gMonShinyPalette_SlowkingGalarian[]; -extern const u32 gMonShinyPalette_CorsolaGalarian[]; -extern const u32 gMonShinyPalette_ZigzagoonGalarian[]; -extern const u32 gMonShinyPalette_LinooneGalarian[]; -#if P_GEN_5_POKEMON == TRUE -extern const u32 gMonShinyPalette_DarumakaGalarian[]; -extern const u32 gMonShinyPalette_DarmanitanGalarianStandardMode[]; -extern const u32 gMonShinyPalette_YamaskGalarian[]; -extern const u32 gMonShinyPalette_StunfiskGalarian[]; -#endif -extern const u32 gMonShinyPalette_GrowlitheHisuian[]; -extern const u32 gMonShinyPalette_ArcanineHisuian[]; -extern const u32 gMonShinyPalette_VoltorbHisuian[]; -extern const u32 gMonShinyPalette_ElectrodeHisuian[]; -extern const u32 gMonShinyPalette_TyphlosionHisuian[]; -extern const u32 gMonShinyPalette_QwilfishHisuian[]; -extern const u32 gMonShinyPalette_SneaselHisuian[]; -#if P_GEN_5_POKEMON == TRUE -extern const u32 gMonShinyPalette_SamurottHisuian[]; -extern const u32 gMonShinyPalette_LilligantHisuian[]; -extern const u32 gMonShinyPalette_ZoruaHisuian[]; -extern const u32 gMonShinyPalette_ZoroarkHisuian[]; -extern const u32 gMonShinyPalette_BraviaryHisuian[]; -#endif -#if P_GEN_6_POKEMON == TRUE -extern const u32 gMonShinyPalette_SliggooHisuian[]; -extern const u32 gMonShinyPalette_GoodraHisuian[]; -extern const u32 gMonShinyPalette_AvaluggHisuian[]; -#endif -#if P_GEN_7_POKEMON == TRUE -extern const u32 gMonShinyPalette_DecidueyeHisuian[]; -#endif -extern const u32 gMonShinyPalette_PikachuCosplay[]; -extern const u32 gMonShinyPalette_PikachuRockStar[]; -extern const u32 gMonShinyPalette_PikachuBelle[]; -extern const u32 gMonShinyPalette_PikachuPopStar[]; -extern const u32 gMonShinyPalette_PikachuPhD[]; -extern const u32 gMonShinyPalette_PikachuLibre[]; -extern const u32 gMonShinyPalette_PikachuOriginalCap[]; -extern const u32 gMonShinyPalette_PikachuHoennCap[]; -extern const u32 gMonShinyPalette_PikachuSinnohCap[]; -extern const u32 gMonShinyPalette_PikachuUnovaCap[]; -extern const u32 gMonShinyPalette_PikachuKalosCap[]; -extern const u32 gMonShinyPalette_PikachuAlolaCap[]; -extern const u32 gMonShinyPalette_PikachuPartnerCap[]; -extern const u32 gMonShinyPalette_PikachuWorldCap[]; -extern const u32 gMonShinyPalette_PichuSpikyEared[]; -extern const u32 gMonShinyPalette_CastformSunny[]; -extern const u32 gMonShinyPalette_CastformRainy[]; -extern const u32 gMonShinyPalette_CastformSnowy[]; -extern const u32 gMonShinyPalette_DeoxysAttack[]; -extern const u32 gMonShinyPalette_DeoxysDefense[]; -extern const u32 gMonShinyPalette_DeoxysSpeed[]; -#if P_GEN_4_POKEMON == TRUE -extern const u32 gMonShinyPalette_BurmySandyCloak[]; -extern const u32 gMonShinyPalette_BurmyTrashCloak[]; -extern const u32 gMonShinyPalette_WormadamSandyCloak[]; -extern const u32 gMonShinyPalette_WormadamTrashCloak[]; -extern const u32 gMonShinyPalette_CherrimSunshine[]; -extern const u32 gMonShinyPalette_ShellosEastSea[]; -extern const u32 gMonShinyPalette_GastrodonEastSea[]; -extern const u32 gMonShinyPalette_RotomHeat[]; -extern const u32 gMonShinyPalette_RotomWash[]; -extern const u32 gMonShinyPalette_RotomFrost[]; -extern const u32 gMonShinyPalette_RotomFan[]; -extern const u32 gMonShinyPalette_RotomMow[]; -extern const u32 gMonShinyPalette_DialgaOrigin[]; -extern const u32 gMonShinyPalette_PalkiaOrigin[]; -extern const u32 gMonShinyPalette_GiratinaOrigin[]; -extern const u32 gMonShinyPalette_ShayminSky[]; -extern const u32 gMonShinyPalette_ArceusFighting[]; -extern const u32 gMonShinyPalette_ArceusFlying[]; -extern const u32 gMonShinyPalette_ArceusPoison[]; -extern const u32 gMonShinyPalette_ArceusGround[]; -extern const u32 gMonShinyPalette_ArceusRock[]; -extern const u32 gMonShinyPalette_ArceusBug[]; -extern const u32 gMonShinyPalette_ArceusGhost[]; -extern const u32 gMonShinyPalette_ArceusSteel[]; -extern const u32 gMonShinyPalette_ArceusFire[]; -extern const u32 gMonShinyPalette_ArceusWater[]; -extern const u32 gMonShinyPalette_ArceusGrass[]; -extern const u32 gMonShinyPalette_ArceusElectric[]; -extern const u32 gMonShinyPalette_ArceusPsychic[]; -extern const u32 gMonShinyPalette_ArceusIce[]; -extern const u32 gMonShinyPalette_ArceusDragon[]; -extern const u32 gMonShinyPalette_ArceusDark[]; -extern const u32 gMonShinyPalette_ArceusFairy[]; -#endif -#if P_GEN_5_POKEMON == TRUE -extern const u32 gMonShinyPalette_BasculinBlueStriped[]; -extern const u32 gMonShinyPalette_BasculinWhiteStriped[]; -extern const u32 gMonShinyPalette_DarmanitanZenMode[]; -extern const u32 gMonShinyPalette_DarmanitanGalarianZenMode[]; -extern const u32 gMonShinyPalette_DeerlingSummer[]; -extern const u32 gMonShinyPalette_DeerlingAutumn[]; -extern const u32 gMonShinyPalette_DeerlingWinter[]; -extern const u32 gMonShinyPalette_SawsbuckSummer[]; -extern const u32 gMonShinyPalette_SawsbuckAutumn[]; -extern const u32 gMonShinyPalette_SawsbuckWinter[]; -extern const u32 gMonShinyPalette_TornadusTherian[]; -extern const u32 gMonShinyPalette_ThundurusTherian[]; -extern const u32 gMonShinyPalette_LandorusTherian[]; -extern const u32 gMonShinyPalette_KyuremWhite[]; -extern const u32 gMonShinyPalette_KyuremBlack[]; -extern const u32 gMonShinyPalette_KeldeoResolute[]; -extern const u32 gMonShinyPalette_MeloettaPirouette[]; -extern const u32 gMonShinyPalette_GenesectDouseDrive[]; -extern const u32 gMonShinyPalette_GenesectShockDrive[]; -extern const u32 gMonShinyPalette_GenesectBurnDrive[]; -extern const u32 gMonShinyPalette_GenesectChillDrive[]; -#endif -#if P_GEN_6_POKEMON == TRUE -extern const u32 gMonShinyPalette_GreninjaAsh[]; -extern const u32 gMonShinyPalette_VivillonPolar[]; -extern const u32 gMonShinyPalette_VivillonTundra[]; -extern const u32 gMonShinyPalette_VivillonContinental[]; -extern const u32 gMonShinyPalette_VivillonGarden[]; -extern const u32 gMonShinyPalette_VivillonElegant[]; -extern const u32 gMonShinyPalette_VivillonMeadow[]; -extern const u32 gMonShinyPalette_VivillonModern[]; -extern const u32 gMonShinyPalette_VivillonMarine[]; -extern const u32 gMonShinyPalette_VivillonArchipelago[]; -extern const u32 gMonShinyPalette_VivillonHighPlains[]; -extern const u32 gMonShinyPalette_VivillonSandstorm[]; -extern const u32 gMonShinyPalette_VivillonRiver[]; -extern const u32 gMonShinyPalette_VivillonMonsoon[]; -extern const u32 gMonShinyPalette_VivillonSavanna[]; -extern const u32 gMonShinyPalette_VivillonSun[]; -extern const u32 gMonShinyPalette_VivillonOcean[]; -extern const u32 gMonShinyPalette_VivillonJungle[]; -extern const u32 gMonShinyPalette_VivillonFancy[]; -extern const u32 gMonShinyPalette_VivillonPokeBall[]; -extern const u32 gMonShinyPalette_FlabebeYellowFlower[]; -extern const u32 gMonShinyPalette_FlabebeOrangeFlower[]; -extern const u32 gMonShinyPalette_FlabebeBlueFlower[]; -extern const u32 gMonShinyPalette_FlabebeWhiteFlower[]; -extern const u32 gMonShinyPalette_FloetteYellowFlower[]; -extern const u32 gMonShinyPalette_FloetteOrangeFlower[]; -extern const u32 gMonShinyPalette_FloetteBlueFlower[]; -extern const u32 gMonShinyPalette_FloetteWhiteFlower[]; -extern const u32 gMonShinyPalette_FloetteEternalFlower[]; -extern const u32 gMonShinyPalette_FlorgesYellowFlower[]; -extern const u32 gMonShinyPalette_FlorgesOrangeFlower[]; -extern const u32 gMonShinyPalette_FlorgesBlueFlower[]; -extern const u32 gMonShinyPalette_FlorgesWhiteFlower[]; -extern const u32 gMonShinyPalette_FurfrouHeartTrim[]; -extern const u32 gMonShinyPalette_FurfrouStarTrim[]; -extern const u32 gMonShinyPalette_FurfrouDiamondTrim[]; -extern const u32 gMonShinyPalette_FurfrouDebutanteTrim[]; -extern const u32 gMonShinyPalette_FurfrouMatronTrim[]; -extern const u32 gMonShinyPalette_FurfrouDandyTrim[]; -extern const u32 gMonShinyPalette_FurfrouLaReineTrim[]; -extern const u32 gMonShinyPalette_FurfrouKabukiTrim[]; -extern const u32 gMonShinyPalette_FurfrouPharaohTrim[]; -extern const u32 gMonShinyPalette_MeowsticFemale[]; -extern const u32 gMonShinyPalette_AegislashBlade[]; -extern const u32 gMonShinyPalette_XerneasActive[]; -extern const u32 gMonShinyPalette_Zygarde10[]; -extern const u32 gMonShinyPalette_ZygardeComplete[]; -extern const u32 gMonShinyPalette_HoopaUnbound[]; -#endif -#if P_GEN_7_POKEMON == TRUE -extern const u32 gMonShinyPalette_OricorioPomPom[]; -extern const u32 gMonShinyPalette_OricorioPau[]; -extern const u32 gMonShinyPalette_OricorioSensu[]; -extern const u32 gMonShinyPalette_LycanrocMidnight[]; -extern const u32 gMonShinyPalette_LycanrocDusk[]; -extern const u32 gMonShinyPalette_WishiwashiSchool[]; -extern const u32 gMonShinyPalette_SilvallyFighting[]; -extern const u32 gMonShinyPalette_SilvallyFlying[]; -extern const u32 gMonShinyPalette_SilvallyPoison[]; -extern const u32 gMonShinyPalette_SilvallyGround[]; -extern const u32 gMonShinyPalette_SilvallyRock[]; -extern const u32 gMonShinyPalette_SilvallyBug[]; -extern const u32 gMonShinyPalette_SilvallyGhost[]; -extern const u32 gMonShinyPalette_SilvallySteel[]; -extern const u32 gMonShinyPalette_SilvallyFire[]; -extern const u32 gMonShinyPalette_SilvallyWater[]; -extern const u32 gMonShinyPalette_SilvallyGrass[]; -extern const u32 gMonShinyPalette_SilvallyElectric[]; -extern const u32 gMonShinyPalette_SilvallyPsychic[]; -extern const u32 gMonShinyPalette_SilvallyIce[]; -extern const u32 gMonShinyPalette_SilvallyDragon[]; -extern const u32 gMonShinyPalette_SilvallyDark[]; -extern const u32 gMonShinyPalette_SilvallyFairy[]; -extern const u32 gMonShinyPalette_MiniorCore[]; -extern const u32 gMonShinyPalette_MimikyuBusted[]; -extern const u32 gMonShinyPalette_NecrozmaDuskMane[]; -extern const u32 gMonShinyPalette_NecrozmaDawnWings[]; -extern const u32 gMonShinyPalette_NecrozmaUltra[]; -extern const u32 gMonShinyPalette_MagearnaOriginalColor[]; -#endif -#if P_GEN_8_POKEMON == TRUE -extern const u32 gMonShinyPalette_CramorantGulping[]; -extern const u32 gMonShinyPalette_CramorantGorging[]; -extern const u32 gMonShinyPalette_ToxtricityLowKey[]; -extern const u32 gMonShinyPalette_AlcremieRubyCream[]; -extern const u32 gMonShinyPalette_AlcremieMatchaCream[]; -extern const u32 gMonShinyPalette_AlcremieMintCream[]; -extern const u32 gMonShinyPalette_AlcremieLemonCream[]; -extern const u32 gMonShinyPalette_AlcremieSaltedCream[]; -extern const u32 gMonShinyPalette_AlcremieRubySwirl[]; -extern const u32 gMonShinyPalette_AlcremieCaramelSwirl[]; -extern const u32 gMonShinyPalette_AlcremieRainbowSwirl[]; -extern const u32 gMonShinyPalette_EiscueNoiceFace[]; -extern const u32 gMonShinyPalette_IndeedeeFemale[]; -extern const u32 gMonShinyPalette_MorpekoHangry[]; -extern const u32 gMonShinyPalette_ZacianCrownedSword[]; -extern const u32 gMonShinyPalette_ZamazentaCrownedShield[]; -extern const u32 gMonShinyPalette_EternatusEternamax[]; -extern const u32 gMonShinyPalette_UrshifuRapidStrikeStyle[]; -extern const u32 gMonShinyPalette_ZarudeDada[]; -extern const u32 gMonShinyPalette_CalyrexIceRider[]; -extern const u32 gMonShinyPalette_CalyrexShadowRider[]; -extern const u32 gMonShinyPalette_EnamorusTherian[]; -extern const u32 gMonShinyPalette_BasculegionFemale[]; -extern const u32 gMonShinyPalette_VenusaurGigantamax[]; -extern const u32 gMonShinyPalette_CharizardGigantamax[]; -extern const u32 gMonShinyPalette_BlastoiseGigantamax[]; -extern const u32 gMonShinyPalette_ButterfreeGigantamax[]; -extern const u32 gMonShinyPalette_PikachuGigantamax[]; -extern const u32 gMonShinyPalette_MeowthGigantamax[]; -extern const u32 gMonShinyPalette_MachampGigantamax[]; -extern const u32 gMonShinyPalette_GengarGigantamax[]; -extern const u32 gMonShinyPalette_KinglerGigantamax[]; -extern const u32 gMonShinyPalette_LaprasGigantamax[]; -extern const u32 gMonShinyPalette_EeveeGigantamax[]; -extern const u32 gMonShinyPalette_SnorlaxGigantamax[]; -extern const u32 gMonShinyPalette_GarbodorGigantamax[]; -extern const u32 gMonShinyPalette_MelmetalGigantamax[]; -extern const u32 gMonShinyPalette_RillaboomGigantamax[]; -extern const u32 gMonShinyPalette_CinderaceGigantamax[]; -extern const u32 gMonShinyPalette_InteleonGigantamax[]; -extern const u32 gMonShinyPalette_CorviknightGigantamax[]; -extern const u32 gMonShinyPalette_OrbeetleGigantamax[]; -extern const u32 gMonShinyPalette_DrednawGigantamax[]; -extern const u32 gMonShinyPalette_CoalossalGigantamax[]; -extern const u32 gMonShinyPalette_FlappleGigantamax[]; -extern const u32 gMonShinyPalette_AppletunGigantamax[]; -extern const u32 gMonShinyPalette_SandacondaGigantamax[]; -extern const u32 gMonShinyPalette_ToxtricityGigantamax[]; -extern const u32 gMonShinyPalette_CentiskorchGigantamax[]; -extern const u32 gMonShinyPalette_HattereneGigantamax[]; -extern const u32 gMonShinyPalette_GrimmsnarlGigantamax[]; -extern const u32 gMonShinyPalette_AlcremieGigantamax[]; -extern const u32 gMonShinyPalette_CopperajahGigantamax[]; -extern const u32 gMonShinyPalette_DuraludonGigantamax[]; -extern const u32 gMonShinyPalette_UrshifuSingleStrikeGigantamax[]; -extern const u32 gMonShinyPalette_UrshifuRapidStrikeGigantamax[]; -#endif - -extern const u8 gMonIcon_QuestionMark[]; -extern const u8 gMonIcon_Bulbasaur[]; -extern const u8 gMonIcon_Ivysaur[]; -extern const u8 gMonIcon_Venusaur[]; -extern const u8 gMonIcon_Charmander[]; -extern const u8 gMonIcon_Charmeleon[]; -extern const u8 gMonIcon_Charizard[]; -extern const u8 gMonIcon_Squirtle[]; -extern const u8 gMonIcon_Wartortle[]; -extern const u8 gMonIcon_Blastoise[]; -extern const u8 gMonIcon_Caterpie[]; -extern const u8 gMonIcon_Metapod[]; -extern const u8 gMonIcon_Butterfree[]; -extern const u8 gMonIcon_Weedle[]; -extern const u8 gMonIcon_Kakuna[]; -extern const u8 gMonIcon_Beedrill[]; -extern const u8 gMonIcon_Pidgey[]; -extern const u8 gMonIcon_Pidgeotto[]; -extern const u8 gMonIcon_Pidgeot[]; -extern const u8 gMonIcon_Rattata[]; -extern const u8 gMonIcon_Raticate[]; -extern const u8 gMonIcon_Spearow[]; -extern const u8 gMonIcon_Fearow[]; -extern const u8 gMonIcon_Ekans[]; -extern const u8 gMonIcon_Arbok[]; -extern const u8 gMonIcon_Pikachu[]; -extern const u8 gMonIcon_Raichu[]; -extern const u8 gMonIcon_Sandshrew[]; -extern const u8 gMonIcon_Sandslash[]; -extern const u8 gMonIcon_NidoranF[]; -extern const u8 gMonIcon_Nidorina[]; -extern const u8 gMonIcon_Nidoqueen[]; -extern const u8 gMonIcon_NidoranM[]; -extern const u8 gMonIcon_Nidorino[]; -extern const u8 gMonIcon_Nidoking[]; -extern const u8 gMonIcon_Clefairy[]; -extern const u8 gMonIcon_Clefable[]; -extern const u8 gMonIcon_Vulpix[]; -extern const u8 gMonIcon_Ninetales[]; -extern const u8 gMonIcon_Jigglypuff[]; -extern const u8 gMonIcon_Wigglytuff[]; -extern const u8 gMonIcon_Zubat[]; -extern const u8 gMonIcon_Golbat[]; -extern const u8 gMonIcon_Oddish[]; -extern const u8 gMonIcon_Gloom[]; -extern const u8 gMonIcon_Vileplume[]; -extern const u8 gMonIcon_Paras[]; -extern const u8 gMonIcon_Parasect[]; -extern const u8 gMonIcon_Venonat[]; -extern const u8 gMonIcon_Venomoth[]; -extern const u8 gMonIcon_Diglett[]; -extern const u8 gMonIcon_Dugtrio[]; -extern const u8 gMonIcon_Meowth[]; -extern const u8 gMonIcon_Persian[]; -extern const u8 gMonIcon_Psyduck[]; -extern const u8 gMonIcon_Golduck[]; -extern const u8 gMonIcon_Mankey[]; -extern const u8 gMonIcon_Primeape[]; -extern const u8 gMonIcon_Growlithe[]; -extern const u8 gMonIcon_Arcanine[]; -extern const u8 gMonIcon_Poliwag[]; -extern const u8 gMonIcon_Poliwhirl[]; -extern const u8 gMonIcon_Poliwrath[]; -extern const u8 gMonIcon_Abra[]; -extern const u8 gMonIcon_Kadabra[]; -extern const u8 gMonIcon_Alakazam[]; -extern const u8 gMonIcon_Machop[]; -extern const u8 gMonIcon_Machoke[]; -extern const u8 gMonIcon_Machamp[]; -extern const u8 gMonIcon_Bellsprout[]; -extern const u8 gMonIcon_Weepinbell[]; -extern const u8 gMonIcon_Victreebel[]; -extern const u8 gMonIcon_Tentacool[]; -extern const u8 gMonIcon_Tentacruel[]; -extern const u8 gMonIcon_Geodude[]; -extern const u8 gMonIcon_Graveler[]; -extern const u8 gMonIcon_Golem[]; -extern const u8 gMonIcon_Ponyta[]; -extern const u8 gMonIcon_Rapidash[]; -extern const u8 gMonIcon_Slowpoke[]; -extern const u8 gMonIcon_Slowbro[]; -extern const u8 gMonIcon_Magnemite[]; -extern const u8 gMonIcon_Magneton[]; -extern const u8 gMonIcon_Farfetchd[]; -extern const u8 gMonIcon_Doduo[]; -extern const u8 gMonIcon_Dodrio[]; -extern const u8 gMonIcon_Seel[]; -extern const u8 gMonIcon_Dewgong[]; -extern const u8 gMonIcon_Grimer[]; -extern const u8 gMonIcon_Muk[]; -extern const u8 gMonIcon_Shellder[]; -extern const u8 gMonIcon_Cloyster[]; -extern const u8 gMonIcon_Gastly[]; -extern const u8 gMonIcon_Haunter[]; -extern const u8 gMonIcon_Gengar[]; -extern const u8 gMonIcon_Onix[]; -extern const u8 gMonIcon_Drowzee[]; -extern const u8 gMonIcon_Hypno[]; -extern const u8 gMonIcon_Krabby[]; -extern const u8 gMonIcon_Kingler[]; -extern const u8 gMonIcon_Voltorb[]; -extern const u8 gMonIcon_Electrode[]; -extern const u8 gMonIcon_Exeggcute[]; -extern const u8 gMonIcon_Exeggutor[]; -extern const u8 gMonIcon_Cubone[]; -extern const u8 gMonIcon_Marowak[]; -extern const u8 gMonIcon_Hitmonlee[]; -extern const u8 gMonIcon_Hitmonchan[]; -extern const u8 gMonIcon_Lickitung[]; -extern const u8 gMonIcon_Koffing[]; -extern const u8 gMonIcon_Weezing[]; -extern const u8 gMonIcon_Rhyhorn[]; -extern const u8 gMonIcon_Rhydon[]; -extern const u8 gMonIcon_Chansey[]; -extern const u8 gMonIcon_Tangela[]; -extern const u8 gMonIcon_Kangaskhan[]; -extern const u8 gMonIcon_Horsea[]; -extern const u8 gMonIcon_Seadra[]; -extern const u8 gMonIcon_Goldeen[]; -extern const u8 gMonIcon_Seaking[]; -extern const u8 gMonIcon_Staryu[]; -extern const u8 gMonIcon_Starmie[]; -extern const u8 gMonIcon_MrMime[]; -extern const u8 gMonIcon_Scyther[]; -extern const u8 gMonIcon_Jynx[]; -extern const u8 gMonIcon_Electabuzz[]; -extern const u8 gMonIcon_Magmar[]; -extern const u8 gMonIcon_Pinsir[]; -extern const u8 gMonIcon_Tauros[]; -extern const u8 gMonIcon_Magikarp[]; -extern const u8 gMonIcon_Gyarados[]; -extern const u8 gMonIcon_Lapras[]; -extern const u8 gMonIcon_Ditto[]; -extern const u8 gMonIcon_Eevee[]; -extern const u8 gMonIcon_Vaporeon[]; -extern const u8 gMonIcon_Jolteon[]; -extern const u8 gMonIcon_Flareon[]; -extern const u8 gMonIcon_Porygon[]; -extern const u8 gMonIcon_Omanyte[]; -extern const u8 gMonIcon_Omastar[]; -extern const u8 gMonIcon_Kabuto[]; -extern const u8 gMonIcon_Kabutops[]; -extern const u8 gMonIcon_Aerodactyl[]; -extern const u8 gMonIcon_Snorlax[]; -extern const u8 gMonIcon_Articuno[]; -extern const u8 gMonIcon_Zapdos[]; -extern const u8 gMonIcon_Moltres[]; -extern const u8 gMonIcon_Dratini[]; -extern const u8 gMonIcon_Dragonair[]; -extern const u8 gMonIcon_Dragonite[]; -extern const u8 gMonIcon_Mewtwo[]; -extern const u8 gMonIcon_Mew[]; -extern const u8 gMonIcon_Chikorita[]; -extern const u8 gMonIcon_Bayleef[]; -extern const u8 gMonIcon_Meganium[]; -extern const u8 gMonIcon_Cyndaquil[]; -extern const u8 gMonIcon_Quilava[]; -extern const u8 gMonIcon_Typhlosion[]; -extern const u8 gMonIcon_Totodile[]; -extern const u8 gMonIcon_Croconaw[]; -extern const u8 gMonIcon_Feraligatr[]; -extern const u8 gMonIcon_Sentret[]; -extern const u8 gMonIcon_Furret[]; -extern const u8 gMonIcon_Hoothoot[]; -extern const u8 gMonIcon_Noctowl[]; -extern const u8 gMonIcon_Ledyba[]; -extern const u8 gMonIcon_Ledian[]; -extern const u8 gMonIcon_Spinarak[]; -extern const u8 gMonIcon_Ariados[]; -extern const u8 gMonIcon_Crobat[]; -extern const u8 gMonIcon_Chinchou[]; -extern const u8 gMonIcon_Lanturn[]; -extern const u8 gMonIcon_Pichu[]; -extern const u8 gMonIcon_Cleffa[]; -extern const u8 gMonIcon_Igglybuff[]; -extern const u8 gMonIcon_Togepi[]; -extern const u8 gMonIcon_Togetic[]; -extern const u8 gMonIcon_Natu[]; -extern const u8 gMonIcon_Xatu[]; -extern const u8 gMonIcon_Mareep[]; -extern const u8 gMonIcon_Flaaffy[]; -extern const u8 gMonIcon_Ampharos[]; -extern const u8 gMonIcon_Bellossom[]; -extern const u8 gMonIcon_Marill[]; -extern const u8 gMonIcon_Azumarill[]; -extern const u8 gMonIcon_Sudowoodo[]; -extern const u8 gMonIcon_Politoed[]; -extern const u8 gMonIcon_Hoppip[]; -extern const u8 gMonIcon_Skiploom[]; -extern const u8 gMonIcon_Jumpluff[]; -extern const u8 gMonIcon_Aipom[]; -extern const u8 gMonIcon_Sunkern[]; -extern const u8 gMonIcon_Sunflora[]; -extern const u8 gMonIcon_Yanma[]; -extern const u8 gMonIcon_Wooper[]; -extern const u8 gMonIcon_Quagsire[]; -extern const u8 gMonIcon_Espeon[]; -extern const u8 gMonIcon_Umbreon[]; -extern const u8 gMonIcon_Murkrow[]; -extern const u8 gMonIcon_Slowking[]; -extern const u8 gMonIcon_Misdreavus[]; -extern const u8 gMonIcon_Unown[]; -extern const u8 gMonIcon_Wobbuffet[]; -extern const u8 gMonIcon_Girafarig[]; -extern const u8 gMonIcon_Pineco[]; -extern const u8 gMonIcon_Forretress[]; -extern const u8 gMonIcon_Dunsparce[]; -extern const u8 gMonIcon_Gligar[]; -extern const u8 gMonIcon_Steelix[]; -extern const u8 gMonIcon_Snubbull[]; -extern const u8 gMonIcon_Granbull[]; -extern const u8 gMonIcon_Qwilfish[]; -extern const u8 gMonIcon_Scizor[]; -extern const u8 gMonIcon_Shuckle[]; -extern const u8 gMonIcon_Heracross[]; -extern const u8 gMonIcon_Sneasel[]; -extern const u8 gMonIcon_Teddiursa[]; -extern const u8 gMonIcon_Ursaring[]; -extern const u8 gMonIcon_Slugma[]; -extern const u8 gMonIcon_Magcargo[]; -extern const u8 gMonIcon_Swinub[]; -extern const u8 gMonIcon_Piloswine[]; -extern const u8 gMonIcon_Corsola[]; -extern const u8 gMonIcon_Remoraid[]; -extern const u8 gMonIcon_Octillery[]; -extern const u8 gMonIcon_Delibird[]; -extern const u8 gMonIcon_Mantine[]; -extern const u8 gMonIcon_Skarmory[]; -extern const u8 gMonIcon_Houndour[]; -extern const u8 gMonIcon_Houndoom[]; -extern const u8 gMonIcon_Kingdra[]; -extern const u8 gMonIcon_Phanpy[]; -extern const u8 gMonIcon_Donphan[]; -extern const u8 gMonIcon_Porygon2[]; -extern const u8 gMonIcon_Stantler[]; -extern const u8 gMonIcon_Smeargle[]; -extern const u8 gMonIcon_Tyrogue[]; -extern const u8 gMonIcon_Hitmontop[]; -extern const u8 gMonIcon_Smoochum[]; -extern const u8 gMonIcon_Elekid[]; -extern const u8 gMonIcon_Magby[]; -extern const u8 gMonIcon_Miltank[]; -extern const u8 gMonIcon_Blissey[]; -extern const u8 gMonIcon_Raikou[]; -extern const u8 gMonIcon_Entei[]; -extern const u8 gMonIcon_Suicune[]; -extern const u8 gMonIcon_Larvitar[]; -extern const u8 gMonIcon_Pupitar[]; -extern const u8 gMonIcon_Tyranitar[]; -extern const u8 gMonIcon_Lugia[]; -extern const u8 gMonIcon_HoOh[]; -extern const u8 gMonIcon_Celebi[]; -extern const u8 gMonIcon_Treecko[]; -extern const u8 gMonIcon_Grovyle[]; -extern const u8 gMonIcon_Sceptile[]; -extern const u8 gMonIcon_Torchic[]; -extern const u8 gMonIcon_Combusken[]; -extern const u8 gMonIcon_Blaziken[]; -extern const u8 gMonIcon_Mudkip[]; -extern const u8 gMonIcon_Marshtomp[]; -extern const u8 gMonIcon_Swampert[]; -extern const u8 gMonIcon_Poochyena[]; -extern const u8 gMonIcon_Mightyena[]; -extern const u8 gMonIcon_Zigzagoon[]; -extern const u8 gMonIcon_Linoone[]; -extern const u8 gMonIcon_Wurmple[]; -extern const u8 gMonIcon_Silcoon[]; -extern const u8 gMonIcon_Beautifly[]; -extern const u8 gMonIcon_Cascoon[]; -extern const u8 gMonIcon_Dustox[]; -extern const u8 gMonIcon_Lotad[]; -extern const u8 gMonIcon_Lombre[]; -extern const u8 gMonIcon_Ludicolo[]; -extern const u8 gMonIcon_Seedot[]; -extern const u8 gMonIcon_Nuzleaf[]; -extern const u8 gMonIcon_Shiftry[]; -extern const u8 gMonIcon_Taillow[]; -extern const u8 gMonIcon_Swellow[]; -extern const u8 gMonIcon_Wingull[]; -extern const u8 gMonIcon_Pelipper[]; -extern const u8 gMonIcon_Ralts[]; -extern const u8 gMonIcon_Kirlia[]; -extern const u8 gMonIcon_Gardevoir[]; -extern const u8 gMonIcon_Surskit[]; -extern const u8 gMonIcon_Masquerain[]; -extern const u8 gMonIcon_Shroomish[]; -extern const u8 gMonIcon_Breloom[]; -extern const u8 gMonIcon_Slakoth[]; -extern const u8 gMonIcon_Vigoroth[]; -extern const u8 gMonIcon_Slaking[]; -extern const u8 gMonIcon_Nincada[]; -extern const u8 gMonIcon_Ninjask[]; -extern const u8 gMonIcon_Shedinja[]; -extern const u8 gMonIcon_Whismur[]; -extern const u8 gMonIcon_Loudred[]; -extern const u8 gMonIcon_Exploud[]; -extern const u8 gMonIcon_Makuhita[]; -extern const u8 gMonIcon_Hariyama[]; -extern const u8 gMonIcon_Azurill[]; -extern const u8 gMonIcon_Nosepass[]; -extern const u8 gMonIcon_Skitty[]; -extern const u8 gMonIcon_Delcatty[]; -extern const u8 gMonIcon_Sableye[]; -extern const u8 gMonIcon_Mawile[]; -extern const u8 gMonIcon_Aron[]; -extern const u8 gMonIcon_Lairon[]; -extern const u8 gMonIcon_Aggron[]; -extern const u8 gMonIcon_Meditite[]; -extern const u8 gMonIcon_Medicham[]; -extern const u8 gMonIcon_Electrike[]; -extern const u8 gMonIcon_Manectric[]; -extern const u8 gMonIcon_Plusle[]; -extern const u8 gMonIcon_Minun[]; -extern const u8 gMonIcon_Volbeat[]; -extern const u8 gMonIcon_Illumise[]; -extern const u8 gMonIcon_Roselia[]; -extern const u8 gMonIcon_Gulpin[]; -extern const u8 gMonIcon_Swalot[]; -extern const u8 gMonIcon_Carvanha[]; -extern const u8 gMonIcon_Sharpedo[]; -extern const u8 gMonIcon_Wailmer[]; -extern const u8 gMonIcon_Wailord[]; -extern const u8 gMonIcon_Numel[]; -extern const u8 gMonIcon_Camerupt[]; -extern const u8 gMonIcon_Torkoal[]; -extern const u8 gMonIcon_Spoink[]; -extern const u8 gMonIcon_Grumpig[]; -extern const u8 gMonIcon_Spinda[]; -extern const u8 gMonIcon_Trapinch[]; -extern const u8 gMonIcon_Vibrava[]; -extern const u8 gMonIcon_Flygon[]; -extern const u8 gMonIcon_Cacnea[]; -extern const u8 gMonIcon_Cacturne[]; -extern const u8 gMonIcon_Swablu[]; -extern const u8 gMonIcon_Altaria[]; -extern const u8 gMonIcon_Zangoose[]; -extern const u8 gMonIcon_Seviper[]; -extern const u8 gMonIcon_Lunatone[]; -extern const u8 gMonIcon_Solrock[]; -extern const u8 gMonIcon_Barboach[]; -extern const u8 gMonIcon_Whiscash[]; -extern const u8 gMonIcon_Corphish[]; -extern const u8 gMonIcon_Crawdaunt[]; -extern const u8 gMonIcon_Baltoy[]; -extern const u8 gMonIcon_Claydol[]; -extern const u8 gMonIcon_Lileep[]; -extern const u8 gMonIcon_Cradily[]; -extern const u8 gMonIcon_Anorith[]; -extern const u8 gMonIcon_Armaldo[]; -extern const u8 gMonIcon_Feebas[]; -extern const u8 gMonIcon_Milotic[]; -extern const u8 gMonIcon_CastformNormal[]; -extern const u8 gMonIcon_Kecleon[]; -extern const u8 gMonIcon_Shuppet[]; -extern const u8 gMonIcon_Banette[]; -extern const u8 gMonIcon_Duskull[]; -extern const u8 gMonIcon_Dusclops[]; -extern const u8 gMonIcon_Tropius[]; -extern const u8 gMonIcon_Chimecho[]; -extern const u8 gMonIcon_Absol[]; -extern const u8 gMonIcon_Wynaut[]; -extern const u8 gMonIcon_Snorunt[]; -extern const u8 gMonIcon_Glalie[]; -extern const u8 gMonIcon_Spheal[]; -extern const u8 gMonIcon_Sealeo[]; -extern const u8 gMonIcon_Walrein[]; -extern const u8 gMonIcon_Clamperl[]; -extern const u8 gMonIcon_Huntail[]; -extern const u8 gMonIcon_Gorebyss[]; -extern const u8 gMonIcon_Relicanth[]; -extern const u8 gMonIcon_Luvdisc[]; -extern const u8 gMonIcon_Bagon[]; -extern const u8 gMonIcon_Shelgon[]; -extern const u8 gMonIcon_Salamence[]; -extern const u8 gMonIcon_Beldum[]; -extern const u8 gMonIcon_Metang[]; -extern const u8 gMonIcon_Metagross[]; -extern const u8 gMonIcon_Regirock[]; -extern const u8 gMonIcon_Regice[]; -extern const u8 gMonIcon_Registeel[]; -extern const u8 gMonIcon_Latias[]; -extern const u8 gMonIcon_Latios[]; -extern const u8 gMonIcon_Kyogre[]; -extern const u8 gMonIcon_Groudon[]; -extern const u8 gMonIcon_Rayquaza[]; -extern const u8 gMonIcon_Jirachi[]; -extern const u8 gMonIcon_DeoxysNormal[]; -#if P_GEN_4_POKEMON == TRUE -extern const u8 gMonIcon_Turtwig[]; -extern const u8 gMonIcon_Grotle[]; -extern const u8 gMonIcon_Torterra[]; -extern const u8 gMonIcon_Chimchar[]; -extern const u8 gMonIcon_Monferno[]; -extern const u8 gMonIcon_Infernape[]; -extern const u8 gMonIcon_Piplup[]; -extern const u8 gMonIcon_Prinplup[]; -extern const u8 gMonIcon_Empoleon[]; -extern const u8 gMonIcon_Starly[]; -extern const u8 gMonIcon_Staravia[]; -extern const u8 gMonIcon_Staraptor[]; -extern const u8 gMonIcon_Bidoof[]; -extern const u8 gMonIcon_Bibarel[]; -extern const u8 gMonIcon_Kricketot[]; -extern const u8 gMonIcon_Kricketune[]; -extern const u8 gMonIcon_Shinx[]; -extern const u8 gMonIcon_Luxio[]; -extern const u8 gMonIcon_Luxray[]; -extern const u8 gMonIcon_Budew[]; -extern const u8 gMonIcon_Roserade[]; -extern const u8 gMonIcon_Cranidos[]; -extern const u8 gMonIcon_Rampardos[]; -extern const u8 gMonIcon_Shieldon[]; -extern const u8 gMonIcon_Bastiodon[]; -extern const u8 gMonIcon_BurmyPlantCloak[]; -extern const u8 gMonIcon_WormadamPlantCloak[]; -extern const u8 gMonIcon_Mothim[]; -extern const u8 gMonIcon_Combee[]; -extern const u8 gMonIcon_Vespiquen[]; -extern const u8 gMonIcon_Pachirisu[]; -extern const u8 gMonIcon_Buizel[]; -extern const u8 gMonIcon_Floatzel[]; -extern const u8 gMonIcon_Cherubi[]; -extern const u8 gMonIcon_CherrimOvercast[]; -extern const u8 gMonIcon_ShellosWestSea[]; -extern const u8 gMonIcon_GastrodonWestSea[]; -extern const u8 gMonIcon_Ambipom[]; -extern const u8 gMonIcon_Drifloon[]; -extern const u8 gMonIcon_Drifblim[]; -extern const u8 gMonIcon_Buneary[]; -extern const u8 gMonIcon_Lopunny[]; -extern const u8 gMonIcon_Mismagius[]; -extern const u8 gMonIcon_Honchkrow[]; -extern const u8 gMonIcon_Glameow[]; -extern const u8 gMonIcon_Purugly[]; -extern const u8 gMonIcon_Chingling[]; -extern const u8 gMonIcon_Stunky[]; -extern const u8 gMonIcon_Skuntank[]; -extern const u8 gMonIcon_Bronzor[]; -extern const u8 gMonIcon_Bronzong[]; -extern const u8 gMonIcon_Bonsly[]; -extern const u8 gMonIcon_MimeJr[]; -extern const u8 gMonIcon_Happiny[]; -extern const u8 gMonIcon_Chatot[]; -extern const u8 gMonIcon_Spiritomb[]; -extern const u8 gMonIcon_Gible[]; -extern const u8 gMonIcon_Gabite[]; -extern const u8 gMonIcon_Garchomp[]; -extern const u8 gMonIcon_Munchlax[]; -extern const u8 gMonIcon_Riolu[]; -extern const u8 gMonIcon_Lucario[]; -extern const u8 gMonIcon_Hippopotas[]; -extern const u8 gMonIcon_Hippowdon[]; -#if P_HIPPO_GENDER_DIFF_ICONS == TRUE -extern const u8 gMonIcon_HippopotasF[]; -extern const u8 gMonIcon_HippowdonF[]; -#endif -extern const u8 gMonIcon_Skorupi[]; -extern const u8 gMonIcon_Drapion[]; -extern const u8 gMonIcon_Croagunk[]; -extern const u8 gMonIcon_Toxicroak[]; -extern const u8 gMonIcon_Carnivine[]; -extern const u8 gMonIcon_Finneon[]; -extern const u8 gMonIcon_Lumineon[]; -extern const u8 gMonIcon_Mantyke[]; -extern const u8 gMonIcon_Snover[]; -extern const u8 gMonIcon_Abomasnow[]; -extern const u8 gMonIcon_Weavile[]; -extern const u8 gMonIcon_Magnezone[]; -extern const u8 gMonIcon_Lickilicky[]; -extern const u8 gMonIcon_Rhyperior[]; -extern const u8 gMonIcon_Tangrowth[]; -extern const u8 gMonIcon_Electivire[]; -extern const u8 gMonIcon_Magmortar[]; -extern const u8 gMonIcon_Togekiss[]; -extern const u8 gMonIcon_Yanmega[]; -extern const u8 gMonIcon_Leafeon[]; -extern const u8 gMonIcon_Glaceon[]; -extern const u8 gMonIcon_Gliscor[]; -extern const u8 gMonIcon_Mamoswine[]; -extern const u8 gMonIcon_Porygon_Z[]; -extern const u8 gMonIcon_Gallade[]; -extern const u8 gMonIcon_Probopass[]; -extern const u8 gMonIcon_Dusknoir[]; -extern const u8 gMonIcon_Froslass[]; -extern const u8 gMonIcon_Rotom[]; -extern const u8 gMonIcon_Uxie[]; -extern const u8 gMonIcon_Mesprit[]; -extern const u8 gMonIcon_Azelf[]; -extern const u8 gMonIcon_Dialga[]; -extern const u8 gMonIcon_Palkia[]; -extern const u8 gMonIcon_Heatran[]; -extern const u8 gMonIcon_Regigigas[]; -extern const u8 gMonIcon_GiratinaAltered[]; -extern const u8 gMonIcon_Cresselia[]; -extern const u8 gMonIcon_Phione[]; -extern const u8 gMonIcon_Manaphy[]; -extern const u8 gMonIcon_Darkrai[]; -extern const u8 gMonIcon_ShayminLand[]; -extern const u8 gMonIcon_Arceus[]; -#endif -#if P_GEN_5_POKEMON == TRUE -extern const u8 gMonIcon_Victini[]; -extern const u8 gMonIcon_Snivy[]; -extern const u8 gMonIcon_Servine[]; -extern const u8 gMonIcon_Serperior[]; -extern const u8 gMonIcon_Tepig[]; -extern const u8 gMonIcon_Pignite[]; -extern const u8 gMonIcon_Emboar[]; -extern const u8 gMonIcon_Oshawott[]; -extern const u8 gMonIcon_Dewott[]; -extern const u8 gMonIcon_Samurott[]; -extern const u8 gMonIcon_Patrat[]; -extern const u8 gMonIcon_Watchog[]; -extern const u8 gMonIcon_Lillipup[]; -extern const u8 gMonIcon_Herdier[]; -extern const u8 gMonIcon_Stoutland[]; -extern const u8 gMonIcon_Purrloin[]; -extern const u8 gMonIcon_Liepard[]; -extern const u8 gMonIcon_Pansage[]; -extern const u8 gMonIcon_Simisage[]; -extern const u8 gMonIcon_Pansear[]; -extern const u8 gMonIcon_Simisear[]; -extern const u8 gMonIcon_Panpour[]; -extern const u8 gMonIcon_Simipour[]; -extern const u8 gMonIcon_Munna[]; -extern const u8 gMonIcon_Musharna[]; -extern const u8 gMonIcon_Pidove[]; -extern const u8 gMonIcon_Tranquill[]; -extern const u8 gMonIcon_Unfezant[]; -extern const u8 gMonIcon_UnfezantF[]; -extern const u8 gMonIcon_Blitzle[]; -extern const u8 gMonIcon_Zebstrika[]; -extern const u8 gMonIcon_Roggenrola[]; -extern const u8 gMonIcon_Boldore[]; -extern const u8 gMonIcon_Gigalith[]; -extern const u8 gMonIcon_Woobat[]; -extern const u8 gMonIcon_Swoobat[]; -extern const u8 gMonIcon_Drilbur[]; -extern const u8 gMonIcon_Excadrill[]; -extern const u8 gMonIcon_Audino[]; -extern const u8 gMonIcon_Timburr[]; -extern const u8 gMonIcon_Gurdurr[]; -extern const u8 gMonIcon_Conkeldurr[]; -extern const u8 gMonIcon_Tympole[]; -extern const u8 gMonIcon_Palpitoad[]; -extern const u8 gMonIcon_Seismitoad[]; -extern const u8 gMonIcon_Throh[]; -extern const u8 gMonIcon_Sawk[]; -extern const u8 gMonIcon_Sewaddle[]; -extern const u8 gMonIcon_Swadloon[]; -extern const u8 gMonIcon_Leavanny[]; -extern const u8 gMonIcon_Venipede[]; -extern const u8 gMonIcon_Whirlipede[]; -extern const u8 gMonIcon_Scolipede[]; -extern const u8 gMonIcon_Cottonee[]; -extern const u8 gMonIcon_Whimsicott[]; -extern const u8 gMonIcon_Petilil[]; -extern const u8 gMonIcon_Lilligant[]; -extern const u8 gMonIcon_BasculinRedStriped[]; -extern const u8 gMonIcon_Sandile[]; -extern const u8 gMonIcon_Krokorok[]; -extern const u8 gMonIcon_Krookodile[]; -extern const u8 gMonIcon_Darumaka[]; -extern const u8 gMonIcon_DarmanitanStandardMode[]; -extern const u8 gMonIcon_Maractus[]; -extern const u8 gMonIcon_Dwebble[]; -extern const u8 gMonIcon_Crustle[]; -extern const u8 gMonIcon_Scraggy[]; -extern const u8 gMonIcon_Scrafty[]; -extern const u8 gMonIcon_Sigilyph[]; -extern const u8 gMonIcon_Yamask[]; -extern const u8 gMonIcon_Cofagrigus[]; -extern const u8 gMonIcon_Tirtouga[]; -extern const u8 gMonIcon_Carracosta[]; -extern const u8 gMonIcon_Archen[]; -extern const u8 gMonIcon_Archeops[]; -extern const u8 gMonIcon_Trubbish[]; -extern const u8 gMonIcon_Garbodor[]; -extern const u8 gMonIcon_Zorua[]; -extern const u8 gMonIcon_Zoroark[]; -extern const u8 gMonIcon_Minccino[]; -extern const u8 gMonIcon_Cinccino[]; -extern const u8 gMonIcon_Gothita[]; -extern const u8 gMonIcon_Gothorita[]; -extern const u8 gMonIcon_Gothitelle[]; -extern const u8 gMonIcon_Solosis[]; -extern const u8 gMonIcon_Duosion[]; -extern const u8 gMonIcon_Reuniclus[]; -extern const u8 gMonIcon_Ducklett[]; -extern const u8 gMonIcon_Swanna[]; -extern const u8 gMonIcon_Vanillite[]; -extern const u8 gMonIcon_Vanillish[]; -extern const u8 gMonIcon_Vanilluxe[]; -extern const u8 gMonIcon_DeerlingSpring[]; -extern const u8 gMonIcon_SawsbuckSpring[]; -extern const u8 gMonIcon_Emolga[]; -extern const u8 gMonIcon_Karrablast[]; -extern const u8 gMonIcon_Escavalier[]; -extern const u8 gMonIcon_Foongus[]; -extern const u8 gMonIcon_Amoonguss[]; -extern const u8 gMonIcon_Frillish[]; -extern const u8 gMonIcon_FrillishF[]; -extern const u8 gMonIcon_Jellicent[]; -extern const u8 gMonIcon_JellicentF[]; -extern const u8 gMonIcon_Alomomola[]; -extern const u8 gMonIcon_Joltik[]; -extern const u8 gMonIcon_Galvantula[]; -extern const u8 gMonIcon_Ferroseed[]; -extern const u8 gMonIcon_Ferrothorn[]; -extern const u8 gMonIcon_Klink[]; -extern const u8 gMonIcon_Klang[]; -extern const u8 gMonIcon_Klinklang[]; -extern const u8 gMonIcon_Tynamo[]; -extern const u8 gMonIcon_Eelektrik[]; -extern const u8 gMonIcon_Eelektross[]; -extern const u8 gMonIcon_Elgyem[]; -extern const u8 gMonIcon_Beheeyem[]; -extern const u8 gMonIcon_Litwick[]; -extern const u8 gMonIcon_Lampent[]; -extern const u8 gMonIcon_Chandelure[]; -extern const u8 gMonIcon_Axew[]; -extern const u8 gMonIcon_Fraxure[]; -extern const u8 gMonIcon_Haxorus[]; -extern const u8 gMonIcon_Cubchoo[]; -extern const u8 gMonIcon_Beartic[]; -extern const u8 gMonIcon_Cryogonal[]; -extern const u8 gMonIcon_Shelmet[]; -extern const u8 gMonIcon_Accelgor[]; -extern const u8 gMonIcon_Stunfisk[]; -extern const u8 gMonIcon_Mienfoo[]; -extern const u8 gMonIcon_Mienshao[]; -extern const u8 gMonIcon_Druddigon[]; -extern const u8 gMonIcon_Golett[]; -extern const u8 gMonIcon_Golurk[]; -extern const u8 gMonIcon_Pawniard[]; -extern const u8 gMonIcon_Bisharp[]; -extern const u8 gMonIcon_Bouffalant[]; -extern const u8 gMonIcon_Rufflet[]; -extern const u8 gMonIcon_Braviary[]; -extern const u8 gMonIcon_Vullaby[]; -extern const u8 gMonIcon_Mandibuzz[]; -extern const u8 gMonIcon_Heatmor[]; -extern const u8 gMonIcon_Durant[]; -extern const u8 gMonIcon_Deino[]; -extern const u8 gMonIcon_Zweilous[]; -extern const u8 gMonIcon_Hydreigon[]; -extern const u8 gMonIcon_Larvesta[]; -extern const u8 gMonIcon_Volcarona[]; -extern const u8 gMonIcon_Cobalion[]; -extern const u8 gMonIcon_Terrakion[]; -extern const u8 gMonIcon_Virizion[]; -extern const u8 gMonIcon_TornadusIncarnate[]; -extern const u8 gMonIcon_ThundurusIncarnate[]; -extern const u8 gMonIcon_Reshiram[]; -extern const u8 gMonIcon_Zekrom[]; -extern const u8 gMonIcon_LandorusIncarnate[]; -extern const u8 gMonIcon_Kyurem[]; -extern const u8 gMonIcon_KeldeoOrdinary[]; -extern const u8 gMonIcon_MeloettaAria[]; -extern const u8 gMonIcon_Genesect[]; -#endif -#if P_GEN_6_POKEMON == TRUE -extern const u8 gMonIcon_Chespin[]; -extern const u8 gMonIcon_Quilladin[]; -extern const u8 gMonIcon_Chesnaught[]; -extern const u8 gMonIcon_Fennekin[]; -extern const u8 gMonIcon_Braixen[]; -extern const u8 gMonIcon_Delphox[]; -extern const u8 gMonIcon_Froakie[]; -extern const u8 gMonIcon_Frogadier[]; -extern const u8 gMonIcon_Greninja[]; -extern const u8 gMonIcon_Bunnelby[]; -extern const u8 gMonIcon_Diggersby[]; -extern const u8 gMonIcon_Fletchling[]; -extern const u8 gMonIcon_Fletchinder[]; -extern const u8 gMonIcon_Talonflame[]; -extern const u8 gMonIcon_Scatterbug[]; -extern const u8 gMonIcon_Spewpa[]; -extern const u8 gMonIcon_VivillonIcySnow[]; -extern const u8 gMonIcon_Litleo[]; -extern const u8 gMonIcon_Pyroar[]; -extern const u8 gMonIcon_PyroarF[]; -extern const u8 gMonIcon_FlabebeRedFlower[]; -extern const u8 gMonIcon_FloetteRedFlower[]; -extern const u8 gMonIcon_FlorgesRedFlower[]; -extern const u8 gMonIcon_Skiddo[]; -extern const u8 gMonIcon_Gogoat[]; -extern const u8 gMonIcon_Pancham[]; -extern const u8 gMonIcon_Pangoro[]; -extern const u8 gMonIcon_FurfrouNatural[]; -extern const u8 gMonIcon_Espurr[]; -extern const u8 gMonIcon_MeowsticMale[]; -extern const u8 gMonIcon_Honedge[]; -extern const u8 gMonIcon_Doublade[]; -extern const u8 gMonIcon_AegislashShield[]; -extern const u8 gMonIcon_Spritzee[]; -extern const u8 gMonIcon_Aromatisse[]; -extern const u8 gMonIcon_Swirlix[]; -extern const u8 gMonIcon_Slurpuff[]; -extern const u8 gMonIcon_Inkay[]; -extern const u8 gMonIcon_Malamar[]; -extern const u8 gMonIcon_Binacle[]; -extern const u8 gMonIcon_Barbaracle[]; -extern const u8 gMonIcon_Skrelp[]; -extern const u8 gMonIcon_Dragalge[]; -extern const u8 gMonIcon_Clauncher[]; -extern const u8 gMonIcon_Clawitzer[]; -extern const u8 gMonIcon_Helioptile[]; -extern const u8 gMonIcon_Heliolisk[]; -extern const u8 gMonIcon_Tyrunt[]; -extern const u8 gMonIcon_Tyrantrum[]; -extern const u8 gMonIcon_Amaura[]; -extern const u8 gMonIcon_Aurorus[]; -extern const u8 gMonIcon_Sylveon[]; -extern const u8 gMonIcon_Hawlucha[]; -extern const u8 gMonIcon_Dedenne[]; -extern const u8 gMonIcon_Carbink[]; -extern const u8 gMonIcon_Goomy[]; -extern const u8 gMonIcon_Sliggoo[]; -extern const u8 gMonIcon_Goodra[]; -extern const u8 gMonIcon_Klefki[]; -extern const u8 gMonIcon_Phantump[]; -extern const u8 gMonIcon_Trevenant[]; -extern const u8 gMonIcon_Pumpkaboo[]; -extern const u8 gMonIcon_Gourgeist[]; -extern const u8 gMonIcon_Bergmite[]; -extern const u8 gMonIcon_Avalugg[]; -extern const u8 gMonIcon_Noibat[]; -extern const u8 gMonIcon_Noivern[]; -extern const u8 gMonIcon_XerneasNeutral[]; -extern const u8 gMonIcon_Yveltal[]; -extern const u8 gMonIcon_Zygarde50[]; -extern const u8 gMonIcon_Diancie[]; -extern const u8 gMonIcon_HoopaConfined[]; -extern const u8 gMonIcon_Volcanion[]; -#endif -#if P_GEN_7_POKEMON == TRUE -extern const u8 gMonIcon_Rowlet[]; -extern const u8 gMonIcon_Dartrix[]; -extern const u8 gMonIcon_Decidueye[]; -extern const u8 gMonIcon_Litten[]; -extern const u8 gMonIcon_Torracat[]; -extern const u8 gMonIcon_Incineroar[]; -extern const u8 gMonIcon_Popplio[]; -extern const u8 gMonIcon_Brionne[]; -extern const u8 gMonIcon_Primarina[]; -extern const u8 gMonIcon_Pikipek[]; -extern const u8 gMonIcon_Trumbeak[]; -extern const u8 gMonIcon_Toucannon[]; -extern const u8 gMonIcon_Yungoos[]; -extern const u8 gMonIcon_Gumshoos[]; -extern const u8 gMonIcon_Grubbin[]; -extern const u8 gMonIcon_Charjabug[]; -extern const u8 gMonIcon_Vikavolt[]; -extern const u8 gMonIcon_Crabrawler[]; -extern const u8 gMonIcon_Crabominable[]; -extern const u8 gMonIcon_OricorioBaile[]; -extern const u8 gMonIcon_Cutiefly[]; -extern const u8 gMonIcon_Ribombee[]; -extern const u8 gMonIcon_Rockruff[]; -extern const u8 gMonIcon_LycanrocMidday[]; -extern const u8 gMonIcon_WishiwashiSolo[]; -extern const u8 gMonIcon_Mareanie[]; -extern const u8 gMonIcon_Toxapex[]; -extern const u8 gMonIcon_Mudbray[]; -extern const u8 gMonIcon_Mudsdale[]; -extern const u8 gMonIcon_Dewpider[]; -extern const u8 gMonIcon_Araquanid[]; -extern const u8 gMonIcon_Fomantis[]; -extern const u8 gMonIcon_Lurantis[]; -extern const u8 gMonIcon_Morelull[]; -extern const u8 gMonIcon_Shiinotic[]; -extern const u8 gMonIcon_Salandit[]; -extern const u8 gMonIcon_Salazzle[]; -extern const u8 gMonIcon_Stufful[]; -extern const u8 gMonIcon_Bewear[]; -extern const u8 gMonIcon_Bounsweet[]; -extern const u8 gMonIcon_Steenee[]; -extern const u8 gMonIcon_Tsareena[]; -extern const u8 gMonIcon_Comfey[]; -extern const u8 gMonIcon_Oranguru[]; -extern const u8 gMonIcon_Passimian[]; -extern const u8 gMonIcon_Wimpod[]; -extern const u8 gMonIcon_Golisopod[]; -extern const u8 gMonIcon_Sandygast[]; -extern const u8 gMonIcon_Palossand[]; -extern const u8 gMonIcon_Pyukumuku[]; -extern const u8 gMonIcon_TypeNull[]; -extern const u8 gMonIcon_Silvally[]; -extern const u8 gMonIcon_MiniorMeteor[]; -extern const u8 gMonIcon_Komala[]; -extern const u8 gMonIcon_Turtonator[]; -extern const u8 gMonIcon_Togedemaru[]; -extern const u8 gMonIcon_MimikyuDisguised[]; -extern const u8 gMonIcon_Bruxish[]; -extern const u8 gMonIcon_Drampa[]; -extern const u8 gMonIcon_Dhelmise[]; -extern const u8 gMonIcon_JangmoO[]; -extern const u8 gMonIcon_HakamoO[]; -extern const u8 gMonIcon_KommoO[]; -extern const u8 gMonIcon_TapuKoko[]; -extern const u8 gMonIcon_TapuLele[]; -extern const u8 gMonIcon_TapuBulu[]; -extern const u8 gMonIcon_TapuFini[]; -extern const u8 gMonIcon_Cosmog[]; -extern const u8 gMonIcon_Cosmoem[]; -extern const u8 gMonIcon_Solgaleo[]; -extern const u8 gMonIcon_Lunala[]; -extern const u8 gMonIcon_Nihilego[]; -extern const u8 gMonIcon_Buzzwole[]; -extern const u8 gMonIcon_Pheromosa[]; -extern const u8 gMonIcon_Xurkitree[]; -extern const u8 gMonIcon_Celesteela[]; -extern const u8 gMonIcon_Kartana[]; -extern const u8 gMonIcon_Guzzlord[]; -extern const u8 gMonIcon_Necrozma[]; -extern const u8 gMonIcon_Magearna[]; -extern const u8 gMonIcon_Marshadow[]; -extern const u8 gMonIcon_Poipole[]; -extern const u8 gMonIcon_Naganadel[]; -extern const u8 gMonIcon_Stakataka[]; -extern const u8 gMonIcon_Blacephalon[]; -extern const u8 gMonIcon_Zeraora[]; -extern const u8 gMonIcon_Meltan[]; -extern const u8 gMonIcon_Melmetal[]; -#endif -#if P_GEN_8_POKEMON == TRUE -extern const u8 gMonIcon_Grookey[]; -extern const u8 gMonIcon_Thwackey[]; -extern const u8 gMonIcon_Rillaboom[]; -extern const u8 gMonIcon_Scorbunny[]; -extern const u8 gMonIcon_Raboot[]; -extern const u8 gMonIcon_Cinderace[]; -extern const u8 gMonIcon_Sobble[]; -extern const u8 gMonIcon_Drizzile[]; -extern const u8 gMonIcon_Inteleon[]; -extern const u8 gMonIcon_Skwovet[]; -extern const u8 gMonIcon_Greedent[]; -extern const u8 gMonIcon_Rookidee[]; -extern const u8 gMonIcon_Corvisquire[]; -extern const u8 gMonIcon_Corviknight[]; -extern const u8 gMonIcon_Blipbug[]; -extern const u8 gMonIcon_Dottler[]; -extern const u8 gMonIcon_Orbeetle[]; -extern const u8 gMonIcon_Nickit[]; -extern const u8 gMonIcon_Thievul[]; -extern const u8 gMonIcon_Gossifleur[]; -extern const u8 gMonIcon_Eldegoss[]; -extern const u8 gMonIcon_Wooloo[]; -extern const u8 gMonIcon_Dubwool[]; -extern const u8 gMonIcon_Chewtle[]; -extern const u8 gMonIcon_Drednaw[]; -extern const u8 gMonIcon_Yamper[]; -extern const u8 gMonIcon_Boltund[]; -extern const u8 gMonIcon_Rolycoly[]; -extern const u8 gMonIcon_Carkol[]; -extern const u8 gMonIcon_Coalossal[]; -extern const u8 gMonIcon_Applin[]; -extern const u8 gMonIcon_Flapple[]; -extern const u8 gMonIcon_Appletun[]; -extern const u8 gMonIcon_Silicobra[]; -extern const u8 gMonIcon_Sandaconda[]; -extern const u8 gMonIcon_Cramorant[]; -extern const u8 gMonIcon_Arrokuda[]; -extern const u8 gMonIcon_Barraskewda[]; -extern const u8 gMonIcon_Toxel[]; -extern const u8 gMonIcon_ToxtricityAmped[]; -extern const u8 gMonIcon_Sizzlipede[]; -extern const u8 gMonIcon_Centiskorch[]; -extern const u8 gMonIcon_Clobbopus[]; -extern const u8 gMonIcon_Grapploct[]; -extern const u8 gMonIcon_Sinistea[]; -extern const u8 gMonIcon_Polteageist[]; -extern const u8 gMonIcon_Hatenna[]; -extern const u8 gMonIcon_Hattrem[]; -extern const u8 gMonIcon_Hatterene[]; -extern const u8 gMonIcon_Impidimp[]; -extern const u8 gMonIcon_Morgrem[]; -extern const u8 gMonIcon_Grimmsnarl[]; -extern const u8 gMonIcon_Obstagoon[]; -extern const u8 gMonIcon_Perrserker[]; -extern const u8 gMonIcon_Cursola[]; -extern const u8 gMonIcon_Sirfetchd[]; -extern const u8 gMonIcon_MrRime[]; -extern const u8 gMonIcon_Runerigus[]; -extern const u8 gMonIcon_Milcery[]; -extern const u8 gMonIcon_Alcremie[]; -extern const u8 gMonIcon_Falinks[]; -extern const u8 gMonIcon_Pincurchin[]; -extern const u8 gMonIcon_Snom[]; -extern const u8 gMonIcon_Frosmoth[]; -extern const u8 gMonIcon_Stonjourner[]; -extern const u8 gMonIcon_EiscueIceFace[]; -extern const u8 gMonIcon_IndeedeeMale[]; -extern const u8 gMonIcon_MorpekoFullBelly[]; -extern const u8 gMonIcon_Cufant[]; -extern const u8 gMonIcon_Copperajah[]; -extern const u8 gMonIcon_Dracozolt[]; -extern const u8 gMonIcon_Arctozolt[]; -extern const u8 gMonIcon_Dracovish[]; -extern const u8 gMonIcon_Arctovish[]; -extern const u8 gMonIcon_Duraludon[]; -extern const u8 gMonIcon_Dreepy[]; -extern const u8 gMonIcon_Drakloak[]; -extern const u8 gMonIcon_Dragapult[]; -extern const u8 gMonIcon_ZacianHeroOfManyBattles[]; -extern const u8 gMonIcon_ZamazentaHeroOfManyBattles[]; -extern const u8 gMonIcon_Eternatus[]; -extern const u8 gMonIcon_Kubfu[]; -extern const u8 gMonIcon_UrshifuSingleStrikeStyle[]; -extern const u8 gMonIcon_Zarude[]; -extern const u8 gMonIcon_Regieleki[]; -extern const u8 gMonIcon_Regidrago[]; -extern const u8 gMonIcon_Glastrier[]; -extern const u8 gMonIcon_Spectrier[]; -extern const u8 gMonIcon_Calyrex[]; -extern const u8 gMonIcon_Wyrdeer[]; -extern const u8 gMonIcon_Kleavor[]; -extern const u8 gMonIcon_Ursaluna[]; -extern const u8 gMonIcon_BasculegionMale[]; -extern const u8 gMonIcon_Sneasler[]; -extern const u8 gMonIcon_Overqwil[]; -extern const u8 gMonIcon_EnamorusIncarnate[]; -#endif -extern const u8 gMonIcon_VenusaurMega[]; -extern const u8 gMonIcon_CharizardMegaX[]; -extern const u8 gMonIcon_CharizardMegaY[]; -extern const u8 gMonIcon_BlastoiseMega[]; -extern const u8 gMonIcon_BeedrillMega[]; -extern const u8 gMonIcon_PidgeotMega[]; -extern const u8 gMonIcon_AlakazamMega[]; -extern const u8 gMonIcon_SlowbroMega[]; -extern const u8 gMonIcon_GengarMega[]; -extern const u8 gMonIcon_KangaskhanMega[]; -extern const u8 gMonIcon_PinsirMega[]; -extern const u8 gMonIcon_GyaradosMega[]; -extern const u8 gMonIcon_AerodactylMega[]; -extern const u8 gMonIcon_MewtwoMegaX[]; -extern const u8 gMonIcon_MewtwoMegaY[]; -extern const u8 gMonIcon_AmpharosMega[]; -extern const u8 gMonIcon_SteelixMega[]; -extern const u8 gMonIcon_ScizorMega[]; -extern const u8 gMonIcon_HeracrossMega[]; -extern const u8 gMonIcon_HoundoomMega[]; -extern const u8 gMonIcon_TyranitarMega[]; -extern const u8 gMonIcon_SceptileMega[]; -extern const u8 gMonIcon_BlazikenMega[]; -extern const u8 gMonIcon_SwampertMega[]; -extern const u8 gMonIcon_GardevoirMega[]; -extern const u8 gMonIcon_SableyeMega[]; -extern const u8 gMonIcon_MawileMega[]; -extern const u8 gMonIcon_AggronMega[]; -extern const u8 gMonIcon_MedichamMega[]; -extern const u8 gMonIcon_ManectricMega[]; -extern const u8 gMonIcon_SharpedoMega[]; -extern const u8 gMonIcon_CameruptMega[]; -extern const u8 gMonIcon_AltariaMega[]; -extern const u8 gMonIcon_BanetteMega[]; -extern const u8 gMonIcon_AbsolMega[]; -extern const u8 gMonIcon_GlalieMega[]; -extern const u8 gMonIcon_SalamenceMega[]; -extern const u8 gMonIcon_MetagrossMega[]; -extern const u8 gMonIcon_LatiasMega[]; -extern const u8 gMonIcon_LatiosMega[]; -#if P_GEN_4_POKEMON == TRUE -extern const u8 gMonIcon_LopunnyMega[]; -extern const u8 gMonIcon_GarchompMega[]; -extern const u8 gMonIcon_LucarioMega[]; -extern const u8 gMonIcon_AbomasnowMega[]; -extern const u8 gMonIcon_GalladeMega[]; -#endif -#if P_GEN_5_POKEMON == TRUE -extern const u8 gMonIcon_AudinoMega[]; -#endif -#if P_GEN_6_POKEMON == TRUE -extern const u8 gMonIcon_DiancieMega[]; -#endif -extern const u8 gMonIcon_RayquazaMega[]; -extern const u8 gMonIcon_KyogrePrimal[]; -extern const u8 gMonIcon_GroudonPrimal[]; -extern const u8 gMonIcon_RattataAlolan[]; -extern const u8 gMonIcon_RaticateAlolan[]; -extern const u8 gMonIcon_RaichuAlolan[]; -extern const u8 gMonIcon_SandshrewAlolan[]; -extern const u8 gMonIcon_SandslashAlolan[]; -extern const u8 gMonIcon_VulpixAlolan[]; -extern const u8 gMonIcon_NinetalesAlolan[]; -extern const u8 gMonIcon_DiglettAlolan[]; -extern const u8 gMonIcon_DugtrioAlolan[]; -extern const u8 gMonIcon_MeowthAlolan[]; -extern const u8 gMonIcon_PersianAlolan[]; -extern const u8 gMonIcon_GeodudeAlolan[]; -extern const u8 gMonIcon_GravelerAlolan[]; -extern const u8 gMonIcon_GolemAlolan[]; -extern const u8 gMonIcon_GrimerAlolan[]; -extern const u8 gMonIcon_MukAlolan[]; -extern const u8 gMonIcon_ExeggutorAlolan[]; -extern const u8 gMonIcon_MarowakAlolan[]; -extern const u8 gMonIcon_MeowthGalarian[]; -extern const u8 gMonIcon_PonytaGalarian[]; -extern const u8 gMonIcon_RapidashGalarian[]; -extern const u8 gMonIcon_SlowpokeGalarian[]; -extern const u8 gMonIcon_SlowbroGalarian[]; -extern const u8 gMonIcon_FarfetchdGalarian[]; -extern const u8 gMonIcon_WeezingGalarian[]; -extern const u8 gMonIcon_MrMimeGalarian[]; -extern const u8 gMonIcon_ArticunoGalarian[]; -extern const u8 gMonIcon_ZapdosGalarian[]; -extern const u8 gMonIcon_MoltresGalarian[]; -extern const u8 gMonIcon_SlowkingGalarian[]; -extern const u8 gMonIcon_CorsolaGalarian[]; -extern const u8 gMonIcon_ZigzagoonGalarian[]; -extern const u8 gMonIcon_LinooneGalarian[]; -#if P_GEN_5_POKEMON == TRUE -extern const u8 gMonIcon_DarumakaGalarian[]; -extern const u8 gMonIcon_DarmanitanGalarianStandardMode[]; -extern const u8 gMonIcon_YamaskGalarian[]; -extern const u8 gMonIcon_StunfiskGalarian[]; -#endif -extern const u8 gMonIcon_GrowlitheHisuian[]; -extern const u8 gMonIcon_ArcanineHisuian[]; -extern const u8 gMonIcon_VoltorbHisuian[]; -extern const u8 gMonIcon_ElectrodeHisuian[]; -extern const u8 gMonIcon_TyphlosionHisuian[]; -extern const u8 gMonIcon_QwilfishHisuian[]; -extern const u8 gMonIcon_SneaselHisuian[]; -#if P_GEN_5_POKEMON == TRUE -extern const u8 gMonIcon_SamurottHisuian[]; -extern const u8 gMonIcon_LilligantHisuian[]; -extern const u8 gMonIcon_ZoruaHisuian[]; -extern const u8 gMonIcon_ZoroarkHisuian[]; -extern const u8 gMonIcon_BraviaryHisuian[]; -#endif -#if P_GEN_6_POKEMON == TRUE -extern const u8 gMonIcon_SliggooHisuian[]; -extern const u8 gMonIcon_GoodraHisuian[]; -extern const u8 gMonIcon_AvaluggHisuian[]; -#endif -#if P_GEN_7_POKEMON == TRUE -extern const u8 gMonIcon_DecidueyeHisuian[]; -#endif -extern const u8 gMonIcon_PikachuCosplay[]; -extern const u8 gMonIcon_PikachuRockStar[]; -extern const u8 gMonIcon_PikachuBelle[]; -extern const u8 gMonIcon_PikachuPopStar[]; -extern const u8 gMonIcon_PikachuPhD[]; -extern const u8 gMonIcon_PikachuLibre[]; -extern const u8 gMonIcon_PikachuOriginalCap[]; -extern const u8 gMonIcon_PikachuHoennCap[]; -extern const u8 gMonIcon_PikachuSinnohCap[]; -extern const u8 gMonIcon_PikachuUnovaCap[]; -extern const u8 gMonIcon_PikachuKalosCap[]; -extern const u8 gMonIcon_PikachuAlolaCap[]; -extern const u8 gMonIcon_PikachuPartnerCap[]; -extern const u8 gMonIcon_PikachuWorldCap[]; -extern const u8 gMonIcon_PichuSpikyEared[]; -extern const u8 gMonIcon_UnownB[]; -extern const u8 gMonIcon_UnownC[]; -extern const u8 gMonIcon_UnownD[]; -extern const u8 gMonIcon_UnownE[]; -extern const u8 gMonIcon_UnownF[]; -extern const u8 gMonIcon_UnownG[]; -extern const u8 gMonIcon_UnownH[]; -extern const u8 gMonIcon_UnownI[]; -extern const u8 gMonIcon_UnownJ[]; -extern const u8 gMonIcon_UnownK[]; -extern const u8 gMonIcon_UnownL[]; -extern const u8 gMonIcon_UnownM[]; -extern const u8 gMonIcon_UnownN[]; -extern const u8 gMonIcon_UnownO[]; -extern const u8 gMonIcon_UnownP[]; -extern const u8 gMonIcon_UnownQ[]; -extern const u8 gMonIcon_UnownR[]; -extern const u8 gMonIcon_UnownS[]; -extern const u8 gMonIcon_UnownT[]; -extern const u8 gMonIcon_UnownU[]; -extern const u8 gMonIcon_UnownV[]; -extern const u8 gMonIcon_UnownW[]; -extern const u8 gMonIcon_UnownX[]; -extern const u8 gMonIcon_UnownY[]; -extern const u8 gMonIcon_UnownZ[]; -extern const u8 gMonIcon_UnownExclamationMark[]; -extern const u8 gMonIcon_UnownQuestionMark[]; -extern const u8 gMonIcon_CastformSunny[]; -extern const u8 gMonIcon_CastformRainy[]; -extern const u8 gMonIcon_CastformSnowy[]; -extern const u8 gMonIcon_DeoxysAttack[]; -extern const u8 gMonIcon_DeoxysDefense[]; -extern const u8 gMonIcon_DeoxysSpeed[]; -#if P_GEN_4_POKEMON == TRUE -extern const u8 gMonIcon_BurmySandyCloak[]; -extern const u8 gMonIcon_BurmyTrashCloak[]; -extern const u8 gMonIcon_WormadamSandyCloak[]; -extern const u8 gMonIcon_WormadamTrashCloak[]; -extern const u8 gMonIcon_CherrimSunshine[]; -extern const u8 gMonIcon_ShellosEastSea[]; -extern const u8 gMonIcon_GastrodonEastSea[]; -extern const u8 gMonIcon_RotomHeat[]; -extern const u8 gMonIcon_RotomWash[]; -extern const u8 gMonIcon_RotomFrost[]; -extern const u8 gMonIcon_RotomFan[]; -extern const u8 gMonIcon_RotomMow[]; -extern const u8 gMonIcon_DialgaOrigin[]; -extern const u8 gMonIcon_PalkiaOrigin[]; -extern const u8 gMonIcon_GiratinaOrigin[]; -extern const u8 gMonIcon_ShayminSky[]; -#endif -#if P_GEN_5_POKEMON == TRUE -extern const u8 gMonIcon_BasculinBlueStriped[]; -extern const u8 gMonIcon_BasculinWhiteStriped[]; -extern const u8 gMonIcon_DarmanitanZenMode[]; -extern const u8 gMonIcon_DarmanitanGalarianZenMode[]; -extern const u8 gMonIcon_DeerlingSummer[]; -extern const u8 gMonIcon_DeerlingAutumn[]; -extern const u8 gMonIcon_DeerlingWinter[]; -extern const u8 gMonIcon_SawsbuckSummer[]; -extern const u8 gMonIcon_SawsbuckAutumn[]; -extern const u8 gMonIcon_SawsbuckWinter[]; -extern const u8 gMonIcon_TornadusTherian[]; -extern const u8 gMonIcon_ThundurusTherian[]; -extern const u8 gMonIcon_LandorusTherian[]; -extern const u8 gMonIcon_KyuremWhite[]; -extern const u8 gMonIcon_KyuremBlack[]; -extern const u8 gMonIcon_KeldeoResolute[]; -extern const u8 gMonIcon_MeloettaPirouette[]; -#endif -#if P_GEN_6_POKEMON == TRUE -extern const u8 gMonIcon_GreninjaAsh[]; -extern const u8 gMonIcon_VivillonPolar[]; -extern const u8 gMonIcon_VivillonTundra[]; -extern const u8 gMonIcon_VivillonContinental[]; -extern const u8 gMonIcon_VivillonGarden[]; -extern const u8 gMonIcon_VivillonElegant[]; -extern const u8 gMonIcon_VivillonMeadow[]; -extern const u8 gMonIcon_VivillonModern[]; -extern const u8 gMonIcon_VivillonMarine[]; -extern const u8 gMonIcon_VivillonArchipelago[]; -extern const u8 gMonIcon_VivillonHighPlains[]; -extern const u8 gMonIcon_VivillonSandstorm[]; -extern const u8 gMonIcon_VivillonRiver[]; -extern const u8 gMonIcon_VivillonMonsoon[]; -extern const u8 gMonIcon_VivillonSavanna[]; -extern const u8 gMonIcon_VivillonSun[]; -extern const u8 gMonIcon_VivillonOcean[]; -extern const u8 gMonIcon_VivillonJungle[]; -extern const u8 gMonIcon_VivillonFancy[]; -extern const u8 gMonIcon_VivillonPokeBall[]; -extern const u8 gMonIcon_FlabebeYellowFlower[]; -extern const u8 gMonIcon_FlabebeOrangeFlower[]; -extern const u8 gMonIcon_FlabebeBlueFlower[]; -extern const u8 gMonIcon_FlabebeWhiteFlower[]; -extern const u8 gMonIcon_FloetteYellowFlower[]; -extern const u8 gMonIcon_FloetteOrangeFlower[]; -extern const u8 gMonIcon_FloetteBlueFlower[]; -extern const u8 gMonIcon_FloetteWhiteFlower[]; -extern const u8 gMonIcon_FloetteEternalFlower[]; -extern const u8 gMonIcon_FlorgesYellowFlower[]; -extern const u8 gMonIcon_FlorgesOrangeFlower[]; -extern const u8 gMonIcon_FlorgesBlueFlower[]; -extern const u8 gMonIcon_FlorgesWhiteFlower[]; -extern const u8 gMonIcon_FurfrouHeartTrim[]; -extern const u8 gMonIcon_FurfrouStarTrim[]; -extern const u8 gMonIcon_FurfrouDiamondTrim[]; -extern const u8 gMonIcon_FurfrouDebutanteTrim[]; -extern const u8 gMonIcon_FurfrouMatronTrim[]; -extern const u8 gMonIcon_FurfrouDandyTrim[]; -extern const u8 gMonIcon_FurfrouLaReineTrim[]; -extern const u8 gMonIcon_FurfrouKabukiTrim[]; -extern const u8 gMonIcon_FurfrouPharaohTrim[]; -extern const u8 gMonIcon_MeowsticFemale[]; -extern const u8 gMonIcon_AegislashBlade[]; -extern const u8 gMonIcon_XerneasActive[]; -extern const u8 gMonIcon_Zygarde10[]; -extern const u8 gMonIcon_ZygardeComplete[]; -extern const u8 gMonIcon_HoopaUnbound[]; -#endif -#if P_GEN_7_POKEMON == TRUE -extern const u8 gMonIcon_OricorioPomPom[]; -extern const u8 gMonIcon_OricorioPau[]; -extern const u8 gMonIcon_OricorioSensu[]; -extern const u8 gMonIcon_LycanrocMidnight[]; -extern const u8 gMonIcon_LycanrocDusk[]; -extern const u8 gMonIcon_WishiwashiSchool[]; -extern const u8 gMonIcon_MiniorCoreRed[]; -extern const u8 gMonIcon_MiniorCoreOrange[]; -extern const u8 gMonIcon_MiniorCoreYellow[]; -extern const u8 gMonIcon_MiniorCoreGreen[]; -extern const u8 gMonIcon_MiniorCoreBlue[]; -extern const u8 gMonIcon_MiniorCoreIndigo[]; -extern const u8 gMonIcon_MiniorCoreViolet[]; -extern const u8 gMonIcon_MimikyuBusted[]; -extern const u8 gMonIcon_NecrozmaDuskMane[]; -extern const u8 gMonIcon_NecrozmaDawnWings[]; -extern const u8 gMonIcon_NecrozmaUltra[]; -extern const u8 gMonIcon_MagearnaOriginalColor[]; -#endif -#if P_GEN_8_POKEMON == TRUE -extern const u8 gMonIcon_CramorantGulping[]; -extern const u8 gMonIcon_CramorantGorging[]; -extern const u8 gMonIcon_ToxtricityLowKey[]; -//extern const u8 gMonIcon_AlcremieStrawberryRubyCream[]; -//extern const u8 gMonIcon_AlcremieStrawberryMatchaCream[]; -//extern const u8 gMonIcon_AlcremieStrawberryMintCream[]; -//extern const u8 gMonIcon_AlcremieStrawberryLemonCream[]; -//extern const u8 gMonIcon_AlcremieStrawberrySaltedCream[]; -//extern const u8 gMonIcon_AlcremieStrawberryRubySwirl[]; -//extern const u8 gMonIcon_AlcremieStrawberryCaramelSwirl[]; -//extern const u8 gMonIcon_AlcremieStrawberryRainbowSwirl[]; -extern const u8 gMonIcon_EiscueNoiceFace[]; -extern const u8 gMonIcon_IndeedeeFemale[]; -extern const u8 gMonIcon_MorpekoHangry[]; -extern const u8 gMonIcon_ZacianCrownedSword[]; -extern const u8 gMonIcon_ZamazentaCrownedShield[]; -extern const u8 gMonIcon_EternatusEternamax[]; -extern const u8 gMonIcon_ZarudeDada[]; -extern const u8 gMonIcon_CalyrexIceRider[]; -extern const u8 gMonIcon_CalyrexShadowRider[]; -extern const u8 gMonIcon_EnamorusTherian[]; -extern const u8 gMonIcon_BasculegionFemale[]; -extern const u8 gMonIcon_VenusaurGigantamax[]; -extern const u8 gMonIcon_CharizardGigantamax[]; -extern const u8 gMonIcon_BlastoiseGigantamax[]; -extern const u8 gMonIcon_ButterfreeGigantamax[]; -extern const u8 gMonIcon_PikachuGigantamax[]; -extern const u8 gMonIcon_MeowthGigantamax[]; -extern const u8 gMonIcon_MachampGigantamax[]; -extern const u8 gMonIcon_GengarGigantamax[]; -extern const u8 gMonIcon_KinglerGigantamax[]; -extern const u8 gMonIcon_LaprasGigantamax[]; -extern const u8 gMonIcon_EeveeGigantamax[]; -extern const u8 gMonIcon_SnorlaxGigantamax[]; -extern const u8 gMonIcon_GarbodorGigantamax[]; -extern const u8 gMonIcon_MelmetalGigantamax[]; -extern const u8 gMonIcon_RillaboomGigantamax[]; -extern const u8 gMonIcon_CinderaceGigantamax[]; -extern const u8 gMonIcon_InteleonGigantamax[]; -extern const u8 gMonIcon_CorviknightGigantamax[]; -extern const u8 gMonIcon_OrbeetleGigantamax[]; -extern const u8 gMonIcon_DrednawGigantamax[]; -extern const u8 gMonIcon_CoalossalGigantamax[]; -extern const u8 gMonIcon_FlappleGigantamax[]; -extern const u8 gMonIcon_AppletunGigantamax[]; -extern const u8 gMonIcon_SandacondaGigantamax[]; -extern const u8 gMonIcon_ToxtricityGigantamax[]; -extern const u8 gMonIcon_CentiskorchGigantamax[]; -extern const u8 gMonIcon_HattereneGigantamax[]; -extern const u8 gMonIcon_GrimmsnarlGigantamax[]; -extern const u8 gMonIcon_AlcremieGigantamax[]; -extern const u8 gMonIcon_CopperajahGigantamax[]; -extern const u8 gMonIcon_DuraludonGigantamax[]; -extern const u8 gMonIcon_UrshifuSingleStrikeGigantamax[]; -extern const u8 gMonIcon_UrshifuRapidStrikeGigantamax[]; -#endif -extern const u8 gMonIcon_Egg[]; - -extern const u8 gMonFootprint_QuestionMark[]; -extern const u8 gMonFootprint_Bulbasaur[]; -extern const u8 gMonFootprint_Ivysaur[]; -extern const u8 gMonFootprint_Venusaur[]; -extern const u8 gMonFootprint_Charmander[]; -extern const u8 gMonFootprint_Charmeleon[]; -extern const u8 gMonFootprint_Charizard[]; -extern const u8 gMonFootprint_Squirtle[]; -extern const u8 gMonFootprint_Wartortle[]; -extern const u8 gMonFootprint_Blastoise[]; -extern const u8 gMonFootprint_Caterpie[]; -extern const u8 gMonFootprint_Metapod[]; -extern const u8 gMonFootprint_Butterfree[]; -extern const u8 gMonFootprint_Weedle[]; -extern const u8 gMonFootprint_Kakuna[]; -extern const u8 gMonFootprint_Beedrill[]; -extern const u8 gMonFootprint_Pidgey[]; -extern const u8 gMonFootprint_Pidgeotto[]; -extern const u8 gMonFootprint_Pidgeot[]; -extern const u8 gMonFootprint_Rattata[]; -extern const u8 gMonFootprint_Raticate[]; -extern const u8 gMonFootprint_Spearow[]; -extern const u8 gMonFootprint_Fearow[]; -extern const u8 gMonFootprint_Ekans[]; -extern const u8 gMonFootprint_Arbok[]; -extern const u8 gMonFootprint_Pikachu[]; -extern const u8 gMonFootprint_Raichu[]; -extern const u8 gMonFootprint_Sandshrew[]; -extern const u8 gMonFootprint_Sandslash[]; -extern const u8 gMonFootprint_NidoranF[]; -extern const u8 gMonFootprint_Nidorina[]; -extern const u8 gMonFootprint_Nidoqueen[]; -extern const u8 gMonFootprint_NidoranM[]; -extern const u8 gMonFootprint_Nidorino[]; -extern const u8 gMonFootprint_Nidoking[]; -extern const u8 gMonFootprint_Clefairy[]; -extern const u8 gMonFootprint_Clefable[]; -extern const u8 gMonFootprint_Vulpix[]; -extern const u8 gMonFootprint_Ninetales[]; -extern const u8 gMonFootprint_Jigglypuff[]; -extern const u8 gMonFootprint_Wigglytuff[]; -extern const u8 gMonFootprint_Zubat[]; -extern const u8 gMonFootprint_Golbat[]; -extern const u8 gMonFootprint_Oddish[]; -extern const u8 gMonFootprint_Gloom[]; -extern const u8 gMonFootprint_Vileplume[]; -extern const u8 gMonFootprint_Paras[]; -extern const u8 gMonFootprint_Parasect[]; -extern const u8 gMonFootprint_Venonat[]; -extern const u8 gMonFootprint_Venomoth[]; -extern const u8 gMonFootprint_Diglett[]; -extern const u8 gMonFootprint_Dugtrio[]; -extern const u8 gMonFootprint_Meowth[]; -extern const u8 gMonFootprint_Persian[]; -extern const u8 gMonFootprint_Psyduck[]; -extern const u8 gMonFootprint_Golduck[]; -extern const u8 gMonFootprint_Mankey[]; -extern const u8 gMonFootprint_Primeape[]; -extern const u8 gMonFootprint_Growlithe[]; -extern const u8 gMonFootprint_Arcanine[]; -extern const u8 gMonFootprint_Poliwag[]; -extern const u8 gMonFootprint_Poliwhirl[]; -extern const u8 gMonFootprint_Poliwrath[]; -extern const u8 gMonFootprint_Abra[]; -extern const u8 gMonFootprint_Kadabra[]; -extern const u8 gMonFootprint_Alakazam[]; -extern const u8 gMonFootprint_Machop[]; -extern const u8 gMonFootprint_Machoke[]; -extern const u8 gMonFootprint_Machamp[]; -extern const u8 gMonFootprint_Bellsprout[]; -extern const u8 gMonFootprint_Weepinbell[]; -extern const u8 gMonFootprint_Victreebel[]; -extern const u8 gMonFootprint_Tentacool[]; -extern const u8 gMonFootprint_Tentacruel[]; -extern const u8 gMonFootprint_Geodude[]; -extern const u8 gMonFootprint_Graveler[]; -extern const u8 gMonFootprint_Golem[]; -extern const u8 gMonFootprint_Ponyta[]; -extern const u8 gMonFootprint_Rapidash[]; -extern const u8 gMonFootprint_Slowpoke[]; -extern const u8 gMonFootprint_Slowbro[]; -extern const u8 gMonFootprint_Magnemite[]; -extern const u8 gMonFootprint_Magneton[]; -extern const u8 gMonFootprint_Farfetchd[]; -extern const u8 gMonFootprint_Doduo[]; -extern const u8 gMonFootprint_Dodrio[]; -extern const u8 gMonFootprint_Seel[]; -extern const u8 gMonFootprint_Dewgong[]; -extern const u8 gMonFootprint_Grimer[]; -extern const u8 gMonFootprint_Muk[]; -extern const u8 gMonFootprint_Shellder[]; -extern const u8 gMonFootprint_Cloyster[]; -extern const u8 gMonFootprint_Gastly[]; -extern const u8 gMonFootprint_Haunter[]; -extern const u8 gMonFootprint_Gengar[]; -extern const u8 gMonFootprint_Onix[]; -extern const u8 gMonFootprint_Drowzee[]; -extern const u8 gMonFootprint_Hypno[]; -extern const u8 gMonFootprint_Krabby[]; -extern const u8 gMonFootprint_Kingler[]; -extern const u8 gMonFootprint_Voltorb[]; -extern const u8 gMonFootprint_Electrode[]; -extern const u8 gMonFootprint_Exeggcute[]; -extern const u8 gMonFootprint_Exeggutor[]; -extern const u8 gMonFootprint_Cubone[]; -extern const u8 gMonFootprint_Marowak[]; -extern const u8 gMonFootprint_Hitmonlee[]; -extern const u8 gMonFootprint_Hitmonchan[]; -extern const u8 gMonFootprint_Lickitung[]; -extern const u8 gMonFootprint_Koffing[]; -extern const u8 gMonFootprint_Weezing[]; -extern const u8 gMonFootprint_Rhyhorn[]; -extern const u8 gMonFootprint_Rhydon[]; -extern const u8 gMonFootprint_Chansey[]; -extern const u8 gMonFootprint_Tangela[]; -extern const u8 gMonFootprint_Kangaskhan[]; -extern const u8 gMonFootprint_Horsea[]; -extern const u8 gMonFootprint_Seadra[]; -extern const u8 gMonFootprint_Goldeen[]; -extern const u8 gMonFootprint_Seaking[]; -extern const u8 gMonFootprint_Staryu[]; -extern const u8 gMonFootprint_Starmie[]; -extern const u8 gMonFootprint_MrMime[]; -extern const u8 gMonFootprint_Scyther[]; -extern const u8 gMonFootprint_Jynx[]; -extern const u8 gMonFootprint_Electabuzz[]; -extern const u8 gMonFootprint_Magmar[]; -extern const u8 gMonFootprint_Pinsir[]; -extern const u8 gMonFootprint_Tauros[]; -extern const u8 gMonFootprint_Magikarp[]; -extern const u8 gMonFootprint_Gyarados[]; -extern const u8 gMonFootprint_Lapras[]; -extern const u8 gMonFootprint_Ditto[]; -extern const u8 gMonFootprint_Eevee[]; -extern const u8 gMonFootprint_Vaporeon[]; -extern const u8 gMonFootprint_Jolteon[]; -extern const u8 gMonFootprint_Flareon[]; -extern const u8 gMonFootprint_Porygon[]; -extern const u8 gMonFootprint_Omanyte[]; -extern const u8 gMonFootprint_Omastar[]; -extern const u8 gMonFootprint_Kabuto[]; -extern const u8 gMonFootprint_Kabutops[]; -extern const u8 gMonFootprint_Aerodactyl[]; -extern const u8 gMonFootprint_Snorlax[]; -extern const u8 gMonFootprint_Articuno[]; -extern const u8 gMonFootprint_Zapdos[]; -extern const u8 gMonFootprint_Moltres[]; -extern const u8 gMonFootprint_Dratini[]; -extern const u8 gMonFootprint_Dragonair[]; -extern const u8 gMonFootprint_Dragonite[]; -extern const u8 gMonFootprint_Mewtwo[]; -extern const u8 gMonFootprint_Mew[]; -extern const u8 gMonFootprint_Chikorita[]; -extern const u8 gMonFootprint_Bayleef[]; -extern const u8 gMonFootprint_Meganium[]; -extern const u8 gMonFootprint_Cyndaquil[]; -extern const u8 gMonFootprint_Quilava[]; -extern const u8 gMonFootprint_Typhlosion[]; -extern const u8 gMonFootprint_Totodile[]; -extern const u8 gMonFootprint_Croconaw[]; -extern const u8 gMonFootprint_Feraligatr[]; -extern const u8 gMonFootprint_Sentret[]; -extern const u8 gMonFootprint_Furret[]; -extern const u8 gMonFootprint_Hoothoot[]; -extern const u8 gMonFootprint_Noctowl[]; -extern const u8 gMonFootprint_Ledyba[]; -extern const u8 gMonFootprint_Ledian[]; -extern const u8 gMonFootprint_Spinarak[]; -extern const u8 gMonFootprint_Ariados[]; -extern const u8 gMonFootprint_Crobat[]; -extern const u8 gMonFootprint_Chinchou[]; -extern const u8 gMonFootprint_Lanturn[]; -extern const u8 gMonFootprint_Pichu[]; -extern const u8 gMonFootprint_Cleffa[]; -extern const u8 gMonFootprint_Igglybuff[]; -extern const u8 gMonFootprint_Togepi[]; -extern const u8 gMonFootprint_Togetic[]; -extern const u8 gMonFootprint_Natu[]; -extern const u8 gMonFootprint_Xatu[]; -extern const u8 gMonFootprint_Mareep[]; -extern const u8 gMonFootprint_Flaaffy[]; -extern const u8 gMonFootprint_Ampharos[]; -extern const u8 gMonFootprint_Bellossom[]; -extern const u8 gMonFootprint_Marill[]; -extern const u8 gMonFootprint_Azumarill[]; -extern const u8 gMonFootprint_Sudowoodo[]; -extern const u8 gMonFootprint_Politoed[]; -extern const u8 gMonFootprint_Hoppip[]; -extern const u8 gMonFootprint_Skiploom[]; -extern const u8 gMonFootprint_Jumpluff[]; -extern const u8 gMonFootprint_Aipom[]; -extern const u8 gMonFootprint_Sunkern[]; -extern const u8 gMonFootprint_Sunflora[]; -extern const u8 gMonFootprint_Yanma[]; -extern const u8 gMonFootprint_Wooper[]; -extern const u8 gMonFootprint_Quagsire[]; -extern const u8 gMonFootprint_Espeon[]; -extern const u8 gMonFootprint_Umbreon[]; -extern const u8 gMonFootprint_Murkrow[]; -extern const u8 gMonFootprint_Slowking[]; -extern const u8 gMonFootprint_Misdreavus[]; -extern const u8 gMonFootprint_Unown[]; -extern const u8 gMonFootprint_Wobbuffet[]; -extern const u8 gMonFootprint_Girafarig[]; -extern const u8 gMonFootprint_Pineco[]; -extern const u8 gMonFootprint_Forretress[]; -extern const u8 gMonFootprint_Dunsparce[]; -extern const u8 gMonFootprint_Gligar[]; -extern const u8 gMonFootprint_Steelix[]; -extern const u8 gMonFootprint_Snubbull[]; -extern const u8 gMonFootprint_Granbull[]; -extern const u8 gMonFootprint_Qwilfish[]; -extern const u8 gMonFootprint_Scizor[]; -extern const u8 gMonFootprint_Shuckle[]; -extern const u8 gMonFootprint_Heracross[]; -extern const u8 gMonFootprint_Sneasel[]; -extern const u8 gMonFootprint_Teddiursa[]; -extern const u8 gMonFootprint_Ursaring[]; -extern const u8 gMonFootprint_Slugma[]; -extern const u8 gMonFootprint_Magcargo[]; -extern const u8 gMonFootprint_Swinub[]; -extern const u8 gMonFootprint_Piloswine[]; -extern const u8 gMonFootprint_Corsola[]; -extern const u8 gMonFootprint_Remoraid[]; -extern const u8 gMonFootprint_Octillery[]; -extern const u8 gMonFootprint_Delibird[]; -extern const u8 gMonFootprint_Mantine[]; -extern const u8 gMonFootprint_Skarmory[]; -extern const u8 gMonFootprint_Houndour[]; -extern const u8 gMonFootprint_Houndoom[]; -extern const u8 gMonFootprint_Kingdra[]; -extern const u8 gMonFootprint_Phanpy[]; -extern const u8 gMonFootprint_Donphan[]; -extern const u8 gMonFootprint_Porygon2[]; -extern const u8 gMonFootprint_Stantler[]; -extern const u8 gMonFootprint_Smeargle[]; -extern const u8 gMonFootprint_Tyrogue[]; -extern const u8 gMonFootprint_Hitmontop[]; -extern const u8 gMonFootprint_Smoochum[]; -extern const u8 gMonFootprint_Elekid[]; -extern const u8 gMonFootprint_Magby[]; -extern const u8 gMonFootprint_Miltank[]; -extern const u8 gMonFootprint_Blissey[]; -extern const u8 gMonFootprint_Raikou[]; -extern const u8 gMonFootprint_Entei[]; -extern const u8 gMonFootprint_Suicune[]; -extern const u8 gMonFootprint_Larvitar[]; -extern const u8 gMonFootprint_Pupitar[]; -extern const u8 gMonFootprint_Tyranitar[]; -extern const u8 gMonFootprint_Lugia[]; -extern const u8 gMonFootprint_HoOh[]; -extern const u8 gMonFootprint_Celebi[]; -extern const u8 gMonFootprint_Treecko[]; -extern const u8 gMonFootprint_Grovyle[]; -extern const u8 gMonFootprint_Sceptile[]; -extern const u8 gMonFootprint_Torchic[]; -extern const u8 gMonFootprint_Combusken[]; -extern const u8 gMonFootprint_Blaziken[]; -extern const u8 gMonFootprint_Mudkip[]; -extern const u8 gMonFootprint_Marshtomp[]; -extern const u8 gMonFootprint_Swampert[]; -extern const u8 gMonFootprint_Poochyena[]; -extern const u8 gMonFootprint_Mightyena[]; -extern const u8 gMonFootprint_Zigzagoon[]; -extern const u8 gMonFootprint_Linoone[]; -extern const u8 gMonFootprint_Wurmple[]; -extern const u8 gMonFootprint_Silcoon[]; -extern const u8 gMonFootprint_Beautifly[]; -extern const u8 gMonFootprint_Cascoon[]; -extern const u8 gMonFootprint_Dustox[]; -extern const u8 gMonFootprint_Lotad[]; -extern const u8 gMonFootprint_Lombre[]; -extern const u8 gMonFootprint_Ludicolo[]; -extern const u8 gMonFootprint_Seedot[]; -extern const u8 gMonFootprint_Nuzleaf[]; -extern const u8 gMonFootprint_Shiftry[]; -extern const u8 gMonFootprint_Nincada[]; -extern const u8 gMonFootprint_Ninjask[]; -extern const u8 gMonFootprint_Shedinja[]; -extern const u8 gMonFootprint_Taillow[]; -extern const u8 gMonFootprint_Swellow[]; -extern const u8 gMonFootprint_Shroomish[]; -extern const u8 gMonFootprint_Breloom[]; -extern const u8 gMonFootprint_Spinda[]; -extern const u8 gMonFootprint_Wingull[]; -extern const u8 gMonFootprint_Pelipper[]; -extern const u8 gMonFootprint_Surskit[]; -extern const u8 gMonFootprint_Masquerain[]; -extern const u8 gMonFootprint_Wailmer[]; -extern const u8 gMonFootprint_Wailord[]; -extern const u8 gMonFootprint_Skitty[]; -extern const u8 gMonFootprint_Delcatty[]; -extern const u8 gMonFootprint_Kecleon[]; -extern const u8 gMonFootprint_Baltoy[]; -extern const u8 gMonFootprint_Claydol[]; -extern const u8 gMonFootprint_Nosepass[]; -extern const u8 gMonFootprint_Torkoal[]; -extern const u8 gMonFootprint_Sableye[]; -extern const u8 gMonFootprint_Barboach[]; -extern const u8 gMonFootprint_Whiscash[]; -extern const u8 gMonFootprint_Luvdisc[]; -extern const u8 gMonFootprint_Corphish[]; -extern const u8 gMonFootprint_Crawdaunt[]; -extern const u8 gMonFootprint_Feebas[]; -extern const u8 gMonFootprint_Milotic[]; -extern const u8 gMonFootprint_Carvanha[]; -extern const u8 gMonFootprint_Sharpedo[]; -extern const u8 gMonFootprint_Trapinch[]; -extern const u8 gMonFootprint_Vibrava[]; -extern const u8 gMonFootprint_Flygon[]; -extern const u8 gMonFootprint_Makuhita[]; -extern const u8 gMonFootprint_Hariyama[]; -extern const u8 gMonFootprint_Electrike[]; -extern const u8 gMonFootprint_Manectric[]; -extern const u8 gMonFootprint_Numel[]; -extern const u8 gMonFootprint_Camerupt[]; -extern const u8 gMonFootprint_Spheal[]; -extern const u8 gMonFootprint_Sealeo[]; -extern const u8 gMonFootprint_Walrein[]; -extern const u8 gMonFootprint_Cacnea[]; -extern const u8 gMonFootprint_Cacturne[]; -extern const u8 gMonFootprint_Snorunt[]; -extern const u8 gMonFootprint_Glalie[]; -extern const u8 gMonFootprint_Lunatone[]; -extern const u8 gMonFootprint_Solrock[]; -extern const u8 gMonFootprint_Azurill[]; -extern const u8 gMonFootprint_Spoink[]; -extern const u8 gMonFootprint_Grumpig[]; -extern const u8 gMonFootprint_Plusle[]; -extern const u8 gMonFootprint_Minun[]; -extern const u8 gMonFootprint_Mawile[]; -extern const u8 gMonFootprint_Meditite[]; -extern const u8 gMonFootprint_Medicham[]; -extern const u8 gMonFootprint_Swablu[]; -extern const u8 gMonFootprint_Altaria[]; -extern const u8 gMonFootprint_Wynaut[]; -extern const u8 gMonFootprint_Duskull[]; -extern const u8 gMonFootprint_Dusclops[]; -extern const u8 gMonFootprint_Roselia[]; -extern const u8 gMonFootprint_Slakoth[]; -extern const u8 gMonFootprint_Vigoroth[]; -extern const u8 gMonFootprint_Slaking[]; -extern const u8 gMonFootprint_Gulpin[]; -extern const u8 gMonFootprint_Swalot[]; -extern const u8 gMonFootprint_Tropius[]; -extern const u8 gMonFootprint_Whismur[]; -extern const u8 gMonFootprint_Loudred[]; -extern const u8 gMonFootprint_Exploud[]; -extern const u8 gMonFootprint_Clamperl[]; -extern const u8 gMonFootprint_Huntail[]; -extern const u8 gMonFootprint_Gorebyss[]; -extern const u8 gMonFootprint_Absol[]; -extern const u8 gMonFootprint_Shuppet[]; -extern const u8 gMonFootprint_Banette[]; -extern const u8 gMonFootprint_Seviper[]; -extern const u8 gMonFootprint_Zangoose[]; -extern const u8 gMonFootprint_Relicanth[]; -extern const u8 gMonFootprint_Aron[]; -extern const u8 gMonFootprint_Lairon[]; -extern const u8 gMonFootprint_Aggron[]; -extern const u8 gMonFootprint_Castform[]; -extern const u8 gMonFootprint_Volbeat[]; -extern const u8 gMonFootprint_Illumise[]; -extern const u8 gMonFootprint_Lileep[]; -extern const u8 gMonFootprint_Cradily[]; -extern const u8 gMonFootprint_Anorith[]; -extern const u8 gMonFootprint_Armaldo[]; -extern const u8 gMonFootprint_Ralts[]; -extern const u8 gMonFootprint_Kirlia[]; -extern const u8 gMonFootprint_Gardevoir[]; -extern const u8 gMonFootprint_Bagon[]; -extern const u8 gMonFootprint_Shelgon[]; -extern const u8 gMonFootprint_Salamence[]; -extern const u8 gMonFootprint_Beldum[]; -extern const u8 gMonFootprint_Metang[]; -extern const u8 gMonFootprint_Metagross[]; -extern const u8 gMonFootprint_Regirock[]; -extern const u8 gMonFootprint_Regice[]; -extern const u8 gMonFootprint_Registeel[]; -extern const u8 gMonFootprint_Kyogre[]; -extern const u8 gMonFootprint_Groudon[]; -extern const u8 gMonFootprint_Rayquaza[]; -extern const u8 gMonFootprint_Latias[]; -extern const u8 gMonFootprint_Latios[]; -extern const u8 gMonFootprint_Jirachi[]; -extern const u8 gMonFootprint_Deoxys[]; -extern const u8 gMonFootprint_Chimecho[]; -#if P_GEN_4_POKEMON == TRUE -extern const u8 gMonFootprint_Turtwig[]; -extern const u8 gMonFootprint_Grotle[]; -extern const u8 gMonFootprint_Torterra[]; -extern const u8 gMonFootprint_Chimchar[]; -extern const u8 gMonFootprint_Monferno[]; -extern const u8 gMonFootprint_Infernape[]; -extern const u8 gMonFootprint_Piplup[]; -extern const u8 gMonFootprint_Prinplup[]; -extern const u8 gMonFootprint_Empoleon[]; -extern const u8 gMonFootprint_Starly[]; -extern const u8 gMonFootprint_Staravia[]; -extern const u8 gMonFootprint_Staraptor[]; -extern const u8 gMonFootprint_Bidoof[]; -extern const u8 gMonFootprint_Bibarel[]; -extern const u8 gMonFootprint_Kricketot[]; -extern const u8 gMonFootprint_Kricketune[]; -extern const u8 gMonFootprint_Shinx[]; -extern const u8 gMonFootprint_Luxio[]; -extern const u8 gMonFootprint_Luxray[]; -extern const u8 gMonFootprint_Budew[]; -extern const u8 gMonFootprint_Roserade[]; -extern const u8 gMonFootprint_Cranidos[]; -extern const u8 gMonFootprint_Rampardos[]; -extern const u8 gMonFootprint_Shieldon[]; -extern const u8 gMonFootprint_Bastiodon[]; -extern const u8 gMonFootprint_Burmy[]; -extern const u8 gMonFootprint_Wormadam[]; -extern const u8 gMonFootprint_Mothim[]; -extern const u8 gMonFootprint_Combee[]; -extern const u8 gMonFootprint_Vespiquen[]; -extern const u8 gMonFootprint_Pachirisu[]; -extern const u8 gMonFootprint_Buizel[]; -extern const u8 gMonFootprint_Floatzel[]; -extern const u8 gMonFootprint_Cherubi[]; -extern const u8 gMonFootprint_Cherrim[]; -extern const u8 gMonFootprint_Shellos[]; -extern const u8 gMonFootprint_Gastrodon[]; -extern const u8 gMonFootprint_Ambipom[]; -extern const u8 gMonFootprint_Drifloon[]; -extern const u8 gMonFootprint_Drifblim[]; -extern const u8 gMonFootprint_Buneary[]; -extern const u8 gMonFootprint_Lopunny[]; -extern const u8 gMonFootprint_Mismagius[]; -extern const u8 gMonFootprint_Honchkrow[]; -extern const u8 gMonFootprint_Glameow[]; -extern const u8 gMonFootprint_Purugly[]; -extern const u8 gMonFootprint_Chingling[]; -extern const u8 gMonFootprint_Stunky[]; -extern const u8 gMonFootprint_Skuntank[]; -extern const u8 gMonFootprint_Bronzor[]; -extern const u8 gMonFootprint_Bronzong[]; -extern const u8 gMonFootprint_Bonsly[]; -extern const u8 gMonFootprint_MimeJr[]; -extern const u8 gMonFootprint_Happiny[]; -extern const u8 gMonFootprint_Chatot[]; -extern const u8 gMonFootprint_Spiritomb[]; -extern const u8 gMonFootprint_Gible[]; -extern const u8 gMonFootprint_Gabite[]; -extern const u8 gMonFootprint_Garchomp[]; -extern const u8 gMonFootprint_Munchlax[]; -extern const u8 gMonFootprint_Riolu[]; -extern const u8 gMonFootprint_Lucario[]; -extern const u8 gMonFootprint_Hippopotas[]; -extern const u8 gMonFootprint_Hippowdon[]; -extern const u8 gMonFootprint_Skorupi[]; -extern const u8 gMonFootprint_Drapion[]; -extern const u8 gMonFootprint_Croagunk[]; -extern const u8 gMonFootprint_Toxicroak[]; -extern const u8 gMonFootprint_Carnivine[]; -extern const u8 gMonFootprint_Finneon[]; -extern const u8 gMonFootprint_Lumineon[]; -extern const u8 gMonFootprint_Mantyke[]; -extern const u8 gMonFootprint_Snover[]; -extern const u8 gMonFootprint_Abomasnow[]; -extern const u8 gMonFootprint_Weavile[]; -extern const u8 gMonFootprint_Magnezone[]; -extern const u8 gMonFootprint_Lickilicky[]; -extern const u8 gMonFootprint_Rhyperior[]; -extern const u8 gMonFootprint_Tangrowth[]; -extern const u8 gMonFootprint_Electivire[]; -extern const u8 gMonFootprint_Magmortar[]; -extern const u8 gMonFootprint_Togekiss[]; -extern const u8 gMonFootprint_Yanmega[]; -extern const u8 gMonFootprint_Leafeon[]; -extern const u8 gMonFootprint_Glaceon[]; -extern const u8 gMonFootprint_Gliscor[]; -extern const u8 gMonFootprint_Mamoswine[]; -extern const u8 gMonFootprint_PorygonZ[]; -extern const u8 gMonFootprint_Gallade[]; -extern const u8 gMonFootprint_Probopass[]; -extern const u8 gMonFootprint_Dusknoir[]; -extern const u8 gMonFootprint_Froslass[]; -extern const u8 gMonFootprint_Rotom[]; -extern const u8 gMonFootprint_Uxie[]; -extern const u8 gMonFootprint_Mesprit[]; -extern const u8 gMonFootprint_Azelf[]; -extern const u8 gMonFootprint_Dialga[]; -extern const u8 gMonFootprint_Palkia[]; -extern const u8 gMonFootprint_Heatran[]; -extern const u8 gMonFootprint_Regigigas[]; -extern const u8 gMonFootprint_Giratina[]; -extern const u8 gMonFootprint_Cresselia[]; -extern const u8 gMonFootprint_Phione[]; -extern const u8 gMonFootprint_Manaphy[]; -extern const u8 gMonFootprint_Darkrai[]; -extern const u8 gMonFootprint_Shaymin[]; -extern const u8 gMonFootprint_Arceus[]; -#endif -#if P_GEN_5_POKEMON == TRUE -extern const u8 gMonFootprint_Victini[]; -extern const u8 gMonFootprint_Snivy[]; -extern const u8 gMonFootprint_Servine[]; -extern const u8 gMonFootprint_Serperior[]; -extern const u8 gMonFootprint_Tepig[]; -extern const u8 gMonFootprint_Pignite[]; -extern const u8 gMonFootprint_Emboar[]; -extern const u8 gMonFootprint_Oshawott[]; -extern const u8 gMonFootprint_Dewott[]; -extern const u8 gMonFootprint_Samurott[]; -extern const u8 gMonFootprint_Patrat[]; -extern const u8 gMonFootprint_Watchog[]; -extern const u8 gMonFootprint_Lillipup[]; -extern const u8 gMonFootprint_Herdier[]; -extern const u8 gMonFootprint_Stoutland[]; -extern const u8 gMonFootprint_Purrloin[]; -extern const u8 gMonFootprint_Liepard[]; -extern const u8 gMonFootprint_Pansage[]; -extern const u8 gMonFootprint_Simisage[]; -extern const u8 gMonFootprint_Pansear[]; -extern const u8 gMonFootprint_Simisear[]; -extern const u8 gMonFootprint_Panpour[]; -extern const u8 gMonFootprint_Simipour[]; -extern const u8 gMonFootprint_Munna[]; -extern const u8 gMonFootprint_Musharna[]; -extern const u8 gMonFootprint_Pidove[]; -extern const u8 gMonFootprint_Tranquill[]; -extern const u8 gMonFootprint_Unfezant[]; -extern const u8 gMonFootprint_Blitzle[]; -extern const u8 gMonFootprint_Zebstrika[]; -extern const u8 gMonFootprint_Roggenrola[]; -extern const u8 gMonFootprint_Boldore[]; -extern const u8 gMonFootprint_Gigalith[]; -extern const u8 gMonFootprint_Woobat[]; -extern const u8 gMonFootprint_Swoobat[]; -extern const u8 gMonFootprint_Drilbur[]; -extern const u8 gMonFootprint_Excadrill[]; -extern const u8 gMonFootprint_Audino[]; -extern const u8 gMonFootprint_Timburr[]; -extern const u8 gMonFootprint_Gurdurr[]; -extern const u8 gMonFootprint_Conkeldurr[]; -extern const u8 gMonFootprint_Tympole[]; -extern const u8 gMonFootprint_Palpitoad[]; -extern const u8 gMonFootprint_Seismitoad[]; -extern const u8 gMonFootprint_Throh[]; -extern const u8 gMonFootprint_Sawk[]; -extern const u8 gMonFootprint_Sewaddle[]; -extern const u8 gMonFootprint_Swadloon[]; -extern const u8 gMonFootprint_Leavanny[]; -extern const u8 gMonFootprint_Venipede[]; -extern const u8 gMonFootprint_Whirlipede[]; -extern const u8 gMonFootprint_Scolipede[]; -extern const u8 gMonFootprint_Cottonee[]; -extern const u8 gMonFootprint_Whimsicott[]; -extern const u8 gMonFootprint_Petilil[]; -extern const u8 gMonFootprint_Lilligant[]; -extern const u8 gMonFootprint_Basculin[]; -extern const u8 gMonFootprint_Sandile[]; -extern const u8 gMonFootprint_Krokorok[]; -extern const u8 gMonFootprint_Krookodile[]; -extern const u8 gMonFootprint_Darumaka[]; -extern const u8 gMonFootprint_Darmanitan[]; -extern const u8 gMonFootprint_Maractus[]; -extern const u8 gMonFootprint_Dwebble[]; -extern const u8 gMonFootprint_Crustle[]; -extern const u8 gMonFootprint_Scraggy[]; -extern const u8 gMonFootprint_Scrafty[]; -extern const u8 gMonFootprint_Sigilyph[]; -extern const u8 gMonFootprint_Yamask[]; -extern const u8 gMonFootprint_Cofagrigus[]; -extern const u8 gMonFootprint_Tirtouga[]; -extern const u8 gMonFootprint_Carracosta[]; -extern const u8 gMonFootprint_Archen[]; -extern const u8 gMonFootprint_Archeops[]; -extern const u8 gMonFootprint_Trubbish[]; -extern const u8 gMonFootprint_Garbodor[]; -extern const u8 gMonFootprint_Zorua[]; -extern const u8 gMonFootprint_Zoroark[]; -extern const u8 gMonFootprint_Minccino[]; -extern const u8 gMonFootprint_Cinccino[]; -extern const u8 gMonFootprint_Gothita[]; -extern const u8 gMonFootprint_Gothorita[]; -extern const u8 gMonFootprint_Gothitelle[]; -extern const u8 gMonFootprint_Solosis[]; -extern const u8 gMonFootprint_Duosion[]; -extern const u8 gMonFootprint_Reuniclus[]; -extern const u8 gMonFootprint_Ducklett[]; -extern const u8 gMonFootprint_Swanna[]; -extern const u8 gMonFootprint_Vanillite[]; -extern const u8 gMonFootprint_Vanillish[]; -extern const u8 gMonFootprint_Vanilluxe[]; -extern const u8 gMonFootprint_Deerling[]; -extern const u8 gMonFootprint_Sawsbuck[]; -extern const u8 gMonFootprint_Emolga[]; -extern const u8 gMonFootprint_Karrablast[]; -extern const u8 gMonFootprint_Escavalier[]; -extern const u8 gMonFootprint_Foongus[]; -extern const u8 gMonFootprint_Amoonguss[]; -extern const u8 gMonFootprint_Frillish[]; -extern const u8 gMonFootprint_Jellicent[]; -extern const u8 gMonFootprint_Alomomola[]; -extern const u8 gMonFootprint_Joltik[]; -extern const u8 gMonFootprint_Galvantula[]; -extern const u8 gMonFootprint_Ferroseed[]; -extern const u8 gMonFootprint_Ferrothorn[]; -extern const u8 gMonFootprint_Klink[]; -extern const u8 gMonFootprint_Klang[]; -extern const u8 gMonFootprint_Klinklang[]; -extern const u8 gMonFootprint_Tynamo[]; -extern const u8 gMonFootprint_Eelektrik[]; -extern const u8 gMonFootprint_Eelektross[]; -extern const u8 gMonFootprint_Elgyem[]; -extern const u8 gMonFootprint_Beheeyem[]; -extern const u8 gMonFootprint_Litwick[]; -extern const u8 gMonFootprint_Lampent[]; -extern const u8 gMonFootprint_Chandelure[]; -extern const u8 gMonFootprint_Axew[]; -extern const u8 gMonFootprint_Fraxure[]; -extern const u8 gMonFootprint_Haxorus[]; -extern const u8 gMonFootprint_Cubchoo[]; -extern const u8 gMonFootprint_Beartic[]; -extern const u8 gMonFootprint_Cryogonal[]; -extern const u8 gMonFootprint_Shelmet[]; -extern const u8 gMonFootprint_Accelgor[]; -extern const u8 gMonFootprint_Stunfisk[]; -extern const u8 gMonFootprint_Mienfoo[]; -extern const u8 gMonFootprint_Mienshao[]; -extern const u8 gMonFootprint_Druddigon[]; -extern const u8 gMonFootprint_Golett[]; -extern const u8 gMonFootprint_Golurk[]; -extern const u8 gMonFootprint_Pawniard[]; -extern const u8 gMonFootprint_Bisharp[]; -extern const u8 gMonFootprint_Bouffalant[]; -extern const u8 gMonFootprint_Rufflet[]; -extern const u8 gMonFootprint_Braviary[]; -extern const u8 gMonFootprint_Vullaby[]; -extern const u8 gMonFootprint_Mandibuzz[]; -extern const u8 gMonFootprint_Heatmor[]; -extern const u8 gMonFootprint_Durant[]; -extern const u8 gMonFootprint_Deino[]; -extern const u8 gMonFootprint_Zweilous[]; -extern const u8 gMonFootprint_Hydreigon[]; -extern const u8 gMonFootprint_Larvesta[]; -extern const u8 gMonFootprint_Volcarona[]; -extern const u8 gMonFootprint_Cobalion[]; -extern const u8 gMonFootprint_Terrakion[]; -extern const u8 gMonFootprint_Virizion[]; -extern const u8 gMonFootprint_Tornadus[]; -extern const u8 gMonFootprint_Thundurus[]; -extern const u8 gMonFootprint_Reshiram[]; -extern const u8 gMonFootprint_Zekrom[]; -extern const u8 gMonFootprint_Landorus[]; -extern const u8 gMonFootprint_Kyurem[]; -extern const u8 gMonFootprint_Keldeo[]; -extern const u8 gMonFootprint_Meloetta[]; -extern const u8 gMonFootprint_Genesect[]; -#endif -#if P_GEN_6_POKEMON == TRUE -extern const u8 gMonFootprint_Chespin[]; -extern const u8 gMonFootprint_Quilladin[]; -extern const u8 gMonFootprint_Chesnaught[]; -extern const u8 gMonFootprint_Fennekin[]; -extern const u8 gMonFootprint_Braixen[]; -extern const u8 gMonFootprint_Delphox[]; -extern const u8 gMonFootprint_Froakie[]; -extern const u8 gMonFootprint_Frogadier[]; -extern const u8 gMonFootprint_Greninja[]; -extern const u8 gMonFootprint_Bunnelby[]; -extern const u8 gMonFootprint_Diggersby[]; -extern const u8 gMonFootprint_Fletchling[]; -extern const u8 gMonFootprint_Fletchinder[]; -extern const u8 gMonFootprint_Talonflame[]; -extern const u8 gMonFootprint_Scatterbug[]; -extern const u8 gMonFootprint_Spewpa[]; -extern const u8 gMonFootprint_Vivillon[]; -extern const u8 gMonFootprint_Litleo[]; -extern const u8 gMonFootprint_Pyroar[]; -extern const u8 gMonFootprint_Flabebe[]; -extern const u8 gMonFootprint_Floette[]; -extern const u8 gMonFootprint_Florges[]; -extern const u8 gMonFootprint_Skiddo[]; -extern const u8 gMonFootprint_Gogoat[]; -extern const u8 gMonFootprint_Pancham[]; -extern const u8 gMonFootprint_Pangoro[]; -extern const u8 gMonFootprint_Furfrou[]; -extern const u8 gMonFootprint_Espurr[]; -extern const u8 gMonFootprint_Meowstic[]; -extern const u8 gMonFootprint_Honedge[]; -extern const u8 gMonFootprint_Doublade[]; -extern const u8 gMonFootprint_Aegislash[]; -extern const u8 gMonFootprint_Spritzee[]; -extern const u8 gMonFootprint_Aromatisse[]; -extern const u8 gMonFootprint_Swirlix[]; -extern const u8 gMonFootprint_Slurpuff[]; -extern const u8 gMonFootprint_Inkay[]; -extern const u8 gMonFootprint_Malamar[]; -extern const u8 gMonFootprint_Binacle[]; -extern const u8 gMonFootprint_Barbaracle[]; -extern const u8 gMonFootprint_Skrelp[]; -extern const u8 gMonFootprint_Dragalge[]; -extern const u8 gMonFootprint_Clauncher[]; -extern const u8 gMonFootprint_Clawitzer[]; -extern const u8 gMonFootprint_Helioptile[]; -extern const u8 gMonFootprint_Heliolisk[]; -extern const u8 gMonFootprint_Tyrunt[]; -extern const u8 gMonFootprint_Tyrantrum[]; -extern const u8 gMonFootprint_Amaura[]; -extern const u8 gMonFootprint_Aurorus[]; -extern const u8 gMonFootprint_Sylveon[]; -extern const u8 gMonFootprint_Hawlucha[]; -extern const u8 gMonFootprint_Dedenne[]; -extern const u8 gMonFootprint_Carbink[]; -extern const u8 gMonFootprint_Goomy[]; -extern const u8 gMonFootprint_Sliggoo[]; -extern const u8 gMonFootprint_Goodra[]; -extern const u8 gMonFootprint_Klefki[]; -extern const u8 gMonFootprint_Phantump[]; -extern const u8 gMonFootprint_Trevenant[]; -extern const u8 gMonFootprint_Pumpkaboo[]; -extern const u8 gMonFootprint_Gourgeist[]; -extern const u8 gMonFootprint_Bergmite[]; -extern const u8 gMonFootprint_Avalugg[]; -extern const u8 gMonFootprint_Noibat[]; -extern const u8 gMonFootprint_Noivern[]; -extern const u8 gMonFootprint_Xerneas[]; -extern const u8 gMonFootprint_Yveltal[]; -extern const u8 gMonFootprint_Zygarde[]; -extern const u8 gMonFootprint_Diancie[]; -extern const u8 gMonFootprint_Hoopa[]; -extern const u8 gMonFootprint_Volcanion[]; -#endif -#if P_GEN_7_POKEMON == TRUE -extern const u8 gMonFootprint_Rowlet[]; -extern const u8 gMonFootprint_Dartrix[]; -extern const u8 gMonFootprint_Decidueye[]; -extern const u8 gMonFootprint_Litten[]; -extern const u8 gMonFootprint_Torracat[]; -extern const u8 gMonFootprint_Incineroar[]; -extern const u8 gMonFootprint_Popplio[]; -extern const u8 gMonFootprint_Brionne[]; -extern const u8 gMonFootprint_Primarina[]; -extern const u8 gMonFootprint_Pikipek[]; -extern const u8 gMonFootprint_Trumbeak[]; -extern const u8 gMonFootprint_Toucannon[]; -extern const u8 gMonFootprint_Yungoos[]; -extern const u8 gMonFootprint_Gumshoos[]; -extern const u8 gMonFootprint_Grubbin[]; -extern const u8 gMonFootprint_Charjabug[]; -extern const u8 gMonFootprint_Vikavolt[]; -extern const u8 gMonFootprint_Crabrawler[]; -extern const u8 gMonFootprint_Crabominable[]; -extern const u8 gMonFootprint_Oricorio[]; -extern const u8 gMonFootprint_Cutiefly[]; -extern const u8 gMonFootprint_Ribombee[]; -extern const u8 gMonFootprint_Rockruff[]; -extern const u8 gMonFootprint_Lycanroc[]; -extern const u8 gMonFootprint_Wishiwashi[]; -extern const u8 gMonFootprint_Mareanie[]; -extern const u8 gMonFootprint_Toxapex[]; -extern const u8 gMonFootprint_Mudbray[]; -extern const u8 gMonFootprint_Mudsdale[]; -extern const u8 gMonFootprint_Dewpider[]; -extern const u8 gMonFootprint_Araquanid[]; -extern const u8 gMonFootprint_Fomantis[]; -extern const u8 gMonFootprint_Lurantis[]; -extern const u8 gMonFootprint_Morelull[]; -extern const u8 gMonFootprint_Shiinotic[]; -extern const u8 gMonFootprint_Salandit[]; -extern const u8 gMonFootprint_Salazzle[]; -extern const u8 gMonFootprint_Stufful[]; -extern const u8 gMonFootprint_Bewear[]; -extern const u8 gMonFootprint_Bounsweet[]; -extern const u8 gMonFootprint_Steenee[]; -extern const u8 gMonFootprint_Tsareena[]; -extern const u8 gMonFootprint_Comfey[]; -extern const u8 gMonFootprint_Oranguru[]; -extern const u8 gMonFootprint_Passimian[]; -extern const u8 gMonFootprint_Wimpod[]; -extern const u8 gMonFootprint_Golisopod[]; -extern const u8 gMonFootprint_Sandygast[]; -extern const u8 gMonFootprint_Palossand[]; -extern const u8 gMonFootprint_Pyukumuku[]; -extern const u8 gMonFootprint_Type_Null[]; -extern const u8 gMonFootprint_Silvally[]; -extern const u8 gMonFootprint_Minior[]; -extern const u8 gMonFootprint_Komala[]; -extern const u8 gMonFootprint_Turtonator[]; -extern const u8 gMonFootprint_Togedemaru[]; -extern const u8 gMonFootprint_Mimikyu[]; -extern const u8 gMonFootprint_Bruxish[]; -extern const u8 gMonFootprint_Drampa[]; -extern const u8 gMonFootprint_Dhelmise[]; -extern const u8 gMonFootprint_JangmoO[]; -extern const u8 gMonFootprint_HakamoO[]; -extern const u8 gMonFootprint_KommoO[]; -extern const u8 gMonFootprint_Tapu_Koko[]; -extern const u8 gMonFootprint_Tapu_Lele[]; -extern const u8 gMonFootprint_Tapu_Bulu[]; -extern const u8 gMonFootprint_Tapu_Fini[]; -extern const u8 gMonFootprint_Cosmog[]; -extern const u8 gMonFootprint_Cosmoem[]; -extern const u8 gMonFootprint_Solgaleo[]; -extern const u8 gMonFootprint_Lunala[]; -extern const u8 gMonFootprint_Nihilego[]; -extern const u8 gMonFootprint_Buzzwole[]; -extern const u8 gMonFootprint_Pheromosa[]; -extern const u8 gMonFootprint_Xurkitree[]; -extern const u8 gMonFootprint_Celesteela[]; -extern const u8 gMonFootprint_Kartana[]; -extern const u8 gMonFootprint_Guzzlord[]; -extern const u8 gMonFootprint_Necrozma[]; -extern const u8 gMonFootprint_Magearna[]; -extern const u8 gMonFootprint_Marshadow[]; -extern const u8 gMonFootprint_Poipole[]; -extern const u8 gMonFootprint_Naganadel[]; -extern const u8 gMonFootprint_Stakataka[]; -extern const u8 gMonFootprint_Blacephalon[]; -extern const u8 gMonFootprint_Zeraora[]; -extern const u8 gMonFootprint_Meltan[]; -extern const u8 gMonFootprint_Melmetal[]; -#endif -#if P_GEN_8_POKEMON == TRUE -extern const u8 gMonFootprint_Grookey[]; -extern const u8 gMonFootprint_Thwackey[]; -extern const u8 gMonFootprint_Rillaboom[]; -extern const u8 gMonFootprint_Scorbunny[]; -extern const u8 gMonFootprint_Raboot[]; -extern const u8 gMonFootprint_Cinderace[]; -extern const u8 gMonFootprint_Sobble[]; -extern const u8 gMonFootprint_Drizzile[]; -extern const u8 gMonFootprint_Inteleon[]; -extern const u8 gMonFootprint_Skwovet[]; -extern const u8 gMonFootprint_Greedent[]; -extern const u8 gMonFootprint_Rookidee[]; -extern const u8 gMonFootprint_Corvisquire[]; -extern const u8 gMonFootprint_Corviknight[]; -extern const u8 gMonFootprint_Blipbug[]; -extern const u8 gMonFootprint_Dottler[]; -extern const u8 gMonFootprint_Orbeetle[]; -extern const u8 gMonFootprint_Nickit[]; -extern const u8 gMonFootprint_Thievul[]; -extern const u8 gMonFootprint_Gossifleur[]; -extern const u8 gMonFootprint_Eldegoss[]; -extern const u8 gMonFootprint_Wooloo[]; -extern const u8 gMonFootprint_Dubwool[]; -extern const u8 gMonFootprint_Chewtle[]; -extern const u8 gMonFootprint_Drednaw[]; -extern const u8 gMonFootprint_Yamper[]; -extern const u8 gMonFootprint_Boltund[]; -extern const u8 gMonFootprint_Rolycoly[]; -extern const u8 gMonFootprint_Carkol[]; -extern const u8 gMonFootprint_Coalossal[]; -extern const u8 gMonFootprint_Applin[]; -extern const u8 gMonFootprint_Flapple[]; -extern const u8 gMonFootprint_Appletun[]; -extern const u8 gMonFootprint_Silicobra[]; -extern const u8 gMonFootprint_Sandaconda[]; -extern const u8 gMonFootprint_Cramorant[]; -extern const u8 gMonFootprint_Arrokuda[]; -extern const u8 gMonFootprint_Barraskewda[]; -extern const u8 gMonFootprint_Toxel[]; -extern const u8 gMonFootprint_Toxtricity[]; -extern const u8 gMonFootprint_Sizzlipede[]; -extern const u8 gMonFootprint_Centiskorch[]; -extern const u8 gMonFootprint_Clobbopus[]; -extern const u8 gMonFootprint_Grapploct[]; -extern const u8 gMonFootprint_Sinistea[]; -extern const u8 gMonFootprint_Polteageist[]; -extern const u8 gMonFootprint_Hatenna[]; -extern const u8 gMonFootprint_Hattrem[]; -extern const u8 gMonFootprint_Hatterene[]; -extern const u8 gMonFootprint_Impidimp[]; -extern const u8 gMonFootprint_Morgrem[]; -extern const u8 gMonFootprint_Grimmsnarl[]; -extern const u8 gMonFootprint_Obstagoon[]; -extern const u8 gMonFootprint_Perrserker[]; -extern const u8 gMonFootprint_Cursola[]; -extern const u8 gMonFootprint_Sirfetchd[]; -extern const u8 gMonFootprint_Mr_Rime[]; -extern const u8 gMonFootprint_Runerigus[]; -extern const u8 gMonFootprint_Milcery[]; -extern const u8 gMonFootprint_Alcremie[]; -extern const u8 gMonFootprint_Falinks[]; -extern const u8 gMonFootprint_Pincurchin[]; -extern const u8 gMonFootprint_Snom[]; -extern const u8 gMonFootprint_Frosmoth[]; -extern const u8 gMonFootprint_Stonjourner[]; -extern const u8 gMonFootprint_Eiscue[]; -extern const u8 gMonFootprint_Indeedee[]; -extern const u8 gMonFootprint_Morpeko[]; -extern const u8 gMonFootprint_Cufant[]; -extern const u8 gMonFootprint_Copperajah[]; -extern const u8 gMonFootprint_Dracozolt[]; -extern const u8 gMonFootprint_Arctozolt[]; -extern const u8 gMonFootprint_Dracovish[]; -extern const u8 gMonFootprint_Arctovish[]; -extern const u8 gMonFootprint_Duraludon[]; -extern const u8 gMonFootprint_Dreepy[]; -extern const u8 gMonFootprint_Drakloak[]; -extern const u8 gMonFootprint_Dragapult[]; -extern const u8 gMonFootprint_Zacian[]; -extern const u8 gMonFootprint_Zamazenta[]; -extern const u8 gMonFootprint_Eternatus[]; -extern const u8 gMonFootprint_Kubfu[]; -extern const u8 gMonFootprint_Urshifu[]; -extern const u8 gMonFootprint_Zarude[]; -extern const u8 gMonFootprint_Regieleki[]; -extern const u8 gMonFootprint_Regidrago[]; -extern const u8 gMonFootprint_Glastrier[]; -extern const u8 gMonFootprint_Spectrier[]; -extern const u8 gMonFootprint_Calyrex[]; -//extern const u8 gMonFootprint_Wyrdeer[]; -//extern const u8 gMonFootprint_Kleavor[]; -//extern const u8 gMonFootprint_Ursaluna[]; -//extern const u8 gMonFootprint_Basculegion[]; -//extern const u8 gMonFootprint_Sneasler[]; -//extern const u8 gMonFootprint_Overqwil[]; -//extern const u8 gMonFootprint_Enamorus[]; -extern const u32 gMonFrontPic_VenusaurGigantamax[]; -extern const u32 gMonFrontPic_CharizardGigantamax[]; -extern const u32 gMonFrontPic_BlastoiseGigantamax[]; -extern const u32 gMonFrontPic_ButterfreeGigantamax[]; -extern const u32 gMonFrontPic_PikachuGigantamax[]; -extern const u32 gMonFrontPic_MeowthGigantamax[]; -extern const u32 gMonFrontPic_MachampGigantamax[]; -extern const u32 gMonFrontPic_GengarGigantamax[]; -extern const u32 gMonFrontPic_KinglerGigantamax[]; -extern const u32 gMonFrontPic_LaprasGigantamax[]; -extern const u32 gMonFrontPic_EeveeGigantamax[]; -extern const u32 gMonFrontPic_SnorlaxGigantamax[]; -extern const u32 gMonFrontPic_GarbodorGigantamax[]; -extern const u32 gMonFrontPic_MelmetalGigantamax[]; -extern const u32 gMonFrontPic_RillaboomGigantamax[]; -extern const u32 gMonFrontPic_CinderaceGigantamax[]; -extern const u32 gMonFrontPic_InteleonGigantamax[]; -extern const u32 gMonFrontPic_CorviknightGigantamax[]; -extern const u32 gMonFrontPic_OrbeetleGigantamax[]; -extern const u32 gMonFrontPic_DrednawGigantamax[]; -extern const u32 gMonFrontPic_CoalossalGigantamax[]; -extern const u32 gMonFrontPic_FlappleGigantamax[]; -extern const u32 gMonFrontPic_AppletunGigantamax[]; -extern const u32 gMonFrontPic_SandacondaGigantamax[]; -extern const u32 gMonFrontPic_ToxtricityGigantamax[]; -extern const u32 gMonFrontPic_CentiskorchGigantamax[]; -extern const u32 gMonFrontPic_HattereneGigantamax[]; -extern const u32 gMonFrontPic_GrimmsnarlGigantamax[]; -extern const u32 gMonFrontPic_AlcremieGigantamax[]; -extern const u32 gMonFrontPic_CopperajahGigantamax[]; -extern const u32 gMonFrontPic_DuraludonGigantamax[]; -extern const u32 gMonFrontPic_UrshifuSingleStrikeGigantamax[]; -extern const u32 gMonFrontPic_UrshifuRapidStrikeGigantamax[]; -#endif - // trainer sprites extern const u32 gTrainerFrontPic_Hiker[]; extern const u32 gTrainerFrontPic_AquaGruntM[]; @@ -8711,6 +1367,12 @@ extern const u32 gItemIcon_LinkingCord[]; extern const u32 gItemIconPalette_LinkingCord[]; extern const u32 gItemIcon_PeatBlock[]; extern const u32 gItemIconPalette_PeatBlock[]; +extern const u32 gItemIcon_SyrupyApple[]; +extern const u32 gItemIconPalette_SyrupyApple[]; +extern const u32 gItemIcon_UnremarkableTeacup[]; +extern const u32 gItemIconPalette_UnremarkableTeacup[]; +extern const u32 gItemIcon_MasterpieceTeacup[]; +extern const u32 gItemIconPalette_MasterpieceTeacup[]; // Nectars extern const u32 gItemIcon_RedNectar[]; extern const u32 gItemIconPalette_RedNectar[]; @@ -9423,6 +2085,8 @@ extern const u32 gItemIcon_CatchingCharm[]; extern const u32 gItemIconPalette_CatchingCharm[]; extern const u32 gItemIcon_ExpCharm[]; extern const u32 gItemIconPalette_ExpCharm[]; +extern const u32 gItemIcon_GlimmeringCharm[]; +extern const u32 gItemIconPalette_GlimmeringCharm[]; // Form-changing Key Items extern const u32 gItemIcon_RotomCatalog[]; extern const u32 gItemIconPalette_RotomCatalog[]; @@ -9525,8 +2189,8 @@ extern const u32 gItemIcon_MagmaEmblem[]; extern const u32 gItemIconPalette_MagmaEmblem[]; extern const u32 gItemIcon_ContestPass[]; extern const u32 gItemIconPalette_ContestPass[]; -extern const u32 gItemIcon_OaksParcel[]; -extern const u32 gItemIconPalette_OaksParcel[]; +extern const u32 gItemIcon_Parcel[]; +extern const u32 gItemIconPalette_Parcel[]; extern const u32 gItemIcon_SecretKey[]; extern const u32 gItemIconPalette_SecretKey[]; extern const u32 gItemIcon_BikeVoucher[]; @@ -9612,6 +2276,25 @@ extern const u32 gItemIconPalette_LustrousGlobe[]; extern const u32 gItemIcon_BerserkGene[]; extern const u32 gItemIconPalette_BerserkGene[]; +extern const u32 gItemIcon_FairyFeather[]; +extern const u32 gItemIconPalette_FairyFeather[]; + +extern const u32 gItemIcon_Mochi[]; +extern const u32 gItemIconPalette_HealthMochi[]; +extern const u32 gItemIconPalette_MuscleMochi[]; +extern const u32 gItemIconPalette_ResistMochi[]; +extern const u32 gItemIconPalette_GeniusMochi[]; +extern const u32 gItemIconPalette_CleverMochi[]; +extern const u32 gItemIconPalette_SwiftMochi[]; +extern const u32 gItemIconPalette_FreshStartMochi[]; + +extern const u32 gItemIcon_WellspringMask[]; +extern const u32 gItemIconPalette_WellspringMask[]; +extern const u32 gItemIcon_HearthflameMask[]; +extern const u32 gItemIconPalette_HearthflameMask[]; +extern const u32 gItemIcon_CornerstoneMask[]; +extern const u32 gItemIconPalette_CornerstoneMask[]; + extern const u32 gItemIcon_ReturnToFieldArrow[]; extern const u32 gItemIconPalette_ReturnToFieldArrow[]; @@ -10737,6 +3420,11 @@ extern const u32 gBattleAnimSpriteGfx_WoodHammerHammer[]; extern const u32 gBattleAnimSpritePal_WoodHammerHammer[]; extern const u32 gBattleAnimSpriteGfx_Snowflakes[]; extern const u32 gBattleAnimSpritePal_Snowflakes[]; +extern const u32 gBattleAnimSpriteGfx_SyrupBlob[]; +extern const u32 gBattleAnimSpriteGfx_SyrupShell[]; +extern const u32 gBattleAnimSpriteGfx_SyrupSplat[]; +extern const u32 gBattleAnimSpritePal_SyrupRed[]; +extern const u32 gBattleAnimSpritePal_SyrupYellow[]; extern const u32 gBattleAnimBgImage_Dark[]; extern const u32 gBattleAnimBgImage_Ghost[]; @@ -11026,6 +3714,11 @@ extern const u16 gSlotMachineReelTimePikachu_Pal[]; extern const u32 gBattleAnimBgTilemap_Sandstorm[]; extern const u32 gBattleAnimBgImage_Sandstorm[]; +// Pledge Effect field status - Rainbow +extern const u32 gBattleAnimBgImage_Rainbow[]; +extern const u32 gBattleAnimBGPalette_Rainbow[]; +extern const u32 gBattleAnimBgTilemap_Rainbow[]; + // Pokedex Area Screen extern const u32 gPokedexAreaScreenAreaUnknown_Gfx[]; extern const u16 gPokedexAreaScreenAreaUnknown_Pal[]; diff --git a/include/international_string_util.h b/include/international_string_util.h index b0ac8afb6b0b..0628ab932af4 100644 --- a/include/international_string_util.h +++ b/include/international_string_util.h @@ -13,7 +13,7 @@ int GetStringWidthDifference(int fontId, const u8 *str, int totalWidth, int lett int GetMaxWidthInMenuTable(const struct MenuAction *actions, int numActions); int GetMaxWidthInSubsetOfMenuTable(const struct MenuAction *actions, const u8 *actionIds, int numActions); int Intl_GetListMenuWidth(const struct ListMenuTemplate *listMenu); -void CopyMonCategoryText(int dexNum, u8 *dest); +void CopyMonCategoryText(u16 species, u8 *dest); u8 *GetStringClearToWidth(u8 *dest, int fontId, const u8 *str, int totalStringWidth); void PadNameString(u8 *dest, u8 padChar); void ConvertInternationalPlayerNameStripChar(u8 *, u8); diff --git a/include/item_menu.h b/include/item_menu.h index 5b72e19b616b..91ff0e806dec 100644 --- a/include/item_menu.h +++ b/include/item_menu.h @@ -107,5 +107,6 @@ void UpdatePocketItemList(u8 pocketId); void DisplayItemMessage(u8 taskId, u8 fontId, const u8 *str, void ( *callback)(u8 taskId)); void DisplayItemMessageOnField(u8 taskId, const u8 *src, TaskFunc callback); void CloseItemMessage(u8 taskId); +void ItemMenu_RotomCatalog(u8 taskId); #endif //GUARD_ITEM_MENU_H diff --git a/include/item_use.h b/include/item_use.h index 6e249a2f1517..826ba487f3fb 100644 --- a/include/item_use.h +++ b/include/item_use.h @@ -29,6 +29,9 @@ void ItemUseOutOfBattle_Berry(u8); void ItemUseOutOfBattle_EnigmaBerry(u8); void ItemUseOutOfBattle_FormChange(u8); void ItemUseOutOfBattle_FormChange_ConsumedOnUse(u8); +void ItemUseOutOfBattle_RotomCatalog(u8); +void ItemUseOutOfBattle_ZygardeCube(u8); +void ItemUseOutOfBattle_Fusion(u8); void ItemUseOutOfBattle_Honey(u8); void ItemUseOutOfBattle_CannotUse(u8); void ItemUseOutOfBattle_ExpShare(u8); @@ -43,6 +46,8 @@ void ItemUseInBattle_PartyMenuChooseMove(u8 taskId); void Task_UseDigEscapeRopeOnField(u8 taskId); u8 CanUseDigOrEscapeRopeOnCurMap(void); u8 CheckIfItemIsTMHMOrEvolutionStone(u16 itemId); +void FieldUseFunc_VsSeeker(u8 taskId); +void Task_ItemUse_CloseMessageBoxAndReturnToField_VsSeeker(u8 taskId); enum { BALL_THROW_UNABLE_TWO_MONS, diff --git a/include/party_menu.h b/include/party_menu.h index 8531f220b5e6..b89d801ab92f 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -72,6 +72,9 @@ void ItemUseCB_SacredAsh(u8 taskId, TaskFunc task); void ItemUseCB_EvolutionStone(u8 taskId, TaskFunc task); void ItemUseCB_FormChange(u8 taskId, TaskFunc task); void ItemUseCB_FormChange_ConsumedOnUse(u8 taskId, TaskFunc task); +void ItemUseCB_RotomCatalog(u8 taskId, TaskFunc task); +void ItemUseCB_ZygardeCube(u8 taskId, TaskFunc task); +void ItemUseCB_Fusion(u8 taskId, TaskFunc task); const u8* GetItemEffect(u16 item); u8 GetItemEffectType(u16 item); void CB2_PartyMenuFromStartMenu(void); diff --git a/include/pokedex.h b/include/pokedex.h index 96cd02affbdd..5f22407680d7 100644 --- a/include/pokedex.h +++ b/include/pokedex.h @@ -3,7 +3,6 @@ extern u8 gUnusedPokedexU8; extern void (*gPokedexVBlankCB)(void); -extern const u8 *const gMonFootprintTable[]; enum { @@ -19,21 +18,7 @@ enum FLAG_SET_CAUGHT }; -struct PokedexEntry -{ - /*0x00*/ u8 categoryName[13]; - /*0x0C*/ u16 height; //in decimeters - /*0x0E*/ u16 weight; //in hectograms - /*0x10*/ const u8 *description; - /*0x14*/ u16 unused; - /*0x16*/ u16 pokemonScale; - /*0x18*/ u16 pokemonOffset; - /*0x1A*/ u16 trainerScale; - /*0x1C*/ u16 trainerOffset; -}; /*size = 0x20*/ - void ResetPokedex(void); -u16 GetPokedexHeightWeight(u16 dexNum, u8 data); u16 GetNationalPokedexCount(u8); u16 GetHoennPokedexCount(u8); u8 DisplayCaughtMonDexPage(u16 dexNum, u32 otId, u32 personality); diff --git a/include/pokemon.h b/include/pokemon.h index 21c7abb6a123..c483beba20ab 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -304,7 +304,14 @@ struct BattlePokemon /*0x59*/ u8 metLevel; }; -struct SpeciesInfo /*0x24*/ +struct Evolution +{ + u16 method; + u16 param; + u16 targetSpecies; +}; + +struct SpeciesInfo /*0x8C*/ { /* 0x00 */ u8 baseHP; /* 0x01 */ u8 baseAttack; @@ -314,7 +321,7 @@ struct SpeciesInfo /*0x24*/ /* 0x05 */ u8 baseSpDefense; /* 0x06 */ u8 types[2]; /* 0x08 */ u8 catchRate; - /* 0x09 padding */ + /* 0x09 */ u8 padding1; /* 0x0A */ u16 expYield; // expYield was changed from u8 to u16 for the new Exp System. /* 0x0C */ u16 evYield_HP:2; u16 evYield_Attack:2; @@ -322,6 +329,7 @@ struct SpeciesInfo /*0x24*/ u16 evYield_Speed:2; /* 0x0D */ u16 evYield_SpAttack:2; u16 evYield_SpDefense:2; + u16 padding2:4; /* 0x0E */ u16 itemCommon; /* 0x10 */ u16 itemRare; /* 0x12 */ u8 genderRatio; @@ -331,10 +339,69 @@ struct SpeciesInfo /*0x24*/ /* 0x16 */ u8 eggGroups[2]; /* 0x18 */ u16 abilities[NUM_ABILITY_SLOTS]; // 3 abilities, no longer u8 because we have over 255 abilities now. /* 0x1E */ u8 safariZoneFleeRate; - /* 0x1F */ u8 bodyColor : 7; + // Pokédex data + /* 0x1F */ u8 categoryName[13]; + /* 0x1F */ u8 speciesName[POKEMON_NAME_LENGTH + 1]; + /* 0x2C */ u16 cryId; + /* 0x2E */ u16 natDexNum; + /* 0x30 */ u16 height; //in decimeters + /* 0x32 */ u16 weight; //in hectograms + /* 0x34 */ u16 pokemonScale; + /* 0x36 */ u16 pokemonOffset; + /* 0x38 */ u16 trainerScale; + /* 0x3A */ u16 trainerOffset; + /* 0x3C */ const u8 *description; + /* 0x40 */ u8 bodyColor : 7; + // Graphical Data u8 noFlip : 1; - /* 0x20 */ u16 flags; - /* 0x22 */ u8 gigantamax:1; + /* 0x41 */ u8 frontAnimDelay; + /* 0x42 */ u8 frontAnimId; + /* 0x43 */ u8 backAnimId; + /* 0x44 */ const union AnimCmd *const *frontAnimFrames; + /* 0x48 */ const u32 *const frontPic; + /* 0x4C */ const u32 *const frontPicFemale; + /* 0x50 */ const u32 *const backPic; + /* 0x54 */ const u32 *const backPicFemale; + /* 0x58 */ const u32 *const palette; + /* 0x5C */ const u32 *const paletteFemale; + /* 0x60 */ const u32 *const shinyPalette; + /* 0x64 */ const u32 *const shinyPaletteFemale; + /* 0x68 */ const u8 *const iconSprite; + /* 0x6C */ const u8 *const iconSpriteFemale; + /* 0x70 */ const u8 *const footprint; + // All Pokémon pics are 64x64, but this data table defines where in this 64x64 frame the sprite's non-transparent pixels actually are. + /* 0x74 */ u8 frontPicSize; // The dimensions of this drawn pixel area. + /* 0x74 */ u8 frontPicSizeFemale; // The dimensions of this drawn pixel area. + /* 0x75 */ u8 frontPicYOffset; // The number of pixels between the drawn pixel area and the bottom edge. + /* 0x76 */ u8 backPicSize; // The dimensions of this drawn pixel area. + /* 0x76 */ u8 backPicSizeFemale; // The dimensions of this drawn pixel area. + /* 0x77 */ u8 backPicYOffset; // The number of pixels between the drawn pixel area and the bottom edge. + /* 0x78 */ u8 iconPalIndex:3; + u8 iconPalIndexFemale:3; + u8 padding3:2; + /* 0x79 */ u8 enemyMonElevation; // This determines how much higher above the usual position the enemy Pokémon is during battle. Species that float or fly have nonzero values. + // Flags + /* 0x7A */ u32 isLegendary:1; + u32 isMythical:1; + u32 isUltraBeast:1; + u32 isParadoxForm:1; + u32 isMegaEvolution:1; + u32 isPrimalRevesion:1; + u32 isUltraBurst:1; + u32 isGigantamax:1; + u32 isAlolanForm:1; + u32 isGalarianForm:1; + u32 isHisuianForm:1; + u32 isPaldeanForm:1; + u32 cannotBeTraded:1; + u32 allPerfectIVs:1; + u32 padding4:18; + // Move Data + /* 0x80 */ const struct LevelUpMove *const levelUpLearnset; + /* 0x84 */ const u16 *const teachableLearnset; + /* 0x88 */ const struct Evolution *const evolutions; + /* 0x84 */ const u16 *const formSpeciesIdTable; + /* 0x84 */ const struct FormChange *const formChangeTable; }; struct BattleMove @@ -394,6 +461,7 @@ struct BattleMove u32 instructBanned:1; u32 encoreBanned:1; u32 parentalBondBanned:1; + u32 skyBattleBanned:1; }; #define SPINDA_SPOT_WIDTH 16 @@ -411,13 +479,6 @@ struct LevelUpMove u16 level; }; -struct Evolution -{ - u16 method; - u16 param; - u16 targetSpecies; -}; - struct FormChange { u16 method; @@ -427,6 +488,19 @@ struct FormChange u16 param3; }; +struct Fusion +{ + u16 fusionStorageIndex; + u16 itemId; + u16 targetSpecies1; + u16 targetSpecies2; + u16 fusingIntoMon; + u16 fusionMove; + u16 unfuseForgetMove; +}; + +extern const struct Fusion *const gFusionTablePointers[NUM_SPECIES]; + #define NUM_UNOWN_FORMS 28 #define GET_UNOWN_LETTER(personality) (( \ @@ -450,8 +524,6 @@ extern const u8 gFacilityClassToTrainerClass[]; extern const struct SpeciesInfo gSpeciesInfo[]; extern const u8 *const gItemEffectTable[ITEMS_COUNT]; extern const u32 gExperienceTables[][MAX_LEVEL + 1]; -extern const struct LevelUpMove *const gLevelUpLearnsets[]; -extern const u16 *const gTeachableLearnsets[]; extern const u8 gPPUpGetMask[]; extern const u8 gPPUpClearMask[]; extern const u8 gPPUpAddValues[]; @@ -459,8 +531,6 @@ extern const u8 gStatStageRatios[MAX_STAT_STAGE + 1][2]; extern const u16 gUnionRoomFacilityClasses[]; extern const struct SpriteTemplate gBattlerSpriteTemplates[]; extern const s8 gNatureStatTable[][5]; -extern const u16 *const gFormSpeciesIdTables[NUM_SPECIES]; -extern const struct FormChange *const gFormChangeTablePointers[NUM_SPECIES]; extern const u32 sExpCandyExperienceTable[]; void ZeroBoxMonData(struct BoxPokemon *boxMon); @@ -540,6 +610,15 @@ u8 GetSecretBaseTrainerClass(void); bool8 IsPlayerPartyAndPokemonStorageFull(void); bool8 IsPokemonStorageFull(void); const u8 *GetSpeciesName(u16 species); +const u8 *GetSpeciesCategory(u16 species); +const u8 *GetSpeciesPokedexDescription(u16 species); +u16 GetSpeciesHeight(u16 species); +u16 GetSpeciesWeight(u16 species); +const struct LevelUpMove *GetSpeciesLevelUpLearnset(u16 species); +const u16 *GetSpeciesTeachableLearnset(u16 species); +const struct Evolution *GetSpeciesEvolutions(u16 species); +const u16 *GetSpeciesFormTable(u16 species); +const struct FormChange *GetSpeciesFormChanges(u16 species); u8 CalculatePPWithBonus(u16 move, u8 ppBonuses, u8 moveIndex); void RemoveMonPPBonus(struct Pokemon *mon, u8 moveIndex); void RemoveBattleMonPPBonus(struct BattlePokemon *mon, u8 moveIndex); @@ -588,8 +667,6 @@ void PlayMapChosenOrBattleBGM(u16 songId); void CreateTask_PlayMapChosenOrBattleBGM(u16 songId); const u32 *GetMonFrontSpritePal(struct Pokemon *mon); const u32 *GetMonSpritePalFromSpeciesAndPersonality(u16 species, u32 otId, u32 personality); -const struct CompressedSpritePalette *GetMonSpritePalStruct(struct Pokemon *mon); -const struct CompressedSpritePalette *GetMonSpritePalStructFromOtIdPersonality(u16 species, u32 otId , u32 personality); bool8 IsMoveHM(u16 move); bool8 IsMonSpriteNotFlipped(u16 species); s8 GetMonFlavorRelation(struct Pokemon *mon, u8 flavor); @@ -628,9 +705,11 @@ bool32 SpeciesHasGenderDifferences(u16 species); bool32 TryFormChange(u32 monId, u32 side, u16 method); void TryToSetBattleFormChangeMoves(struct Pokemon *mon, u16 method); u32 GetMonFriendshipScore(struct Pokemon *pokemon); +u32 GetMonAffectionHearts(struct Pokemon *pokemon); void UpdateMonPersonality(struct BoxPokemon *boxMon, u32 personality); u8 CalculatePartyCount(struct Pokemon *party); u16 SanitizeSpeciesId(u16 species); bool32 IsSpeciesEnabled(u16 species); +u16 GetCryIdBySpecies(u16 species); #endif // GUARD_POKEMON_H diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h index c06fd918042a..3986f8948b0c 100644 --- a/include/pokemon_icon.h +++ b/include/pokemon_icon.h @@ -1,10 +1,6 @@ #ifndef GUARD_POKEMON_ICON_H #define GUARD_POKEMON_ICON_H -extern const u8 gMonIconPaletteIndices[]; -extern const u8 gMonIconPaletteIndicesFemale[]; -extern const u8 *const gMonIconTable[NUM_SPECIES + 1]; -extern const u8 *const gMonIconTableFemale[NUM_SPECIES + 1]; extern const struct SpritePalette gMonIconPaletteTable[]; const u8 *GetMonIconTiles(u16 species, u32 personality); diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index eb5f9a992d37..5ab1b4cb8f3e 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -6,6 +6,7 @@ #define IN_BOX_COLUMNS 6 // Number of columns, 5 Pokémon per column #define IN_BOX_COUNT (IN_BOX_ROWS * IN_BOX_COLUMNS) #define BOX_NAME_LENGTH 8 +#define MAX_FUSION_STORAGE 4 /* COLUMNS @@ -22,6 +23,7 @@ struct PokemonStorage /*0x0001*/ struct BoxPokemon boxes[TOTAL_BOXES_COUNT][IN_BOX_COUNT]; /*0x8344*/ u8 boxNames[TOTAL_BOXES_COUNT][BOX_NAME_LENGTH + 1]; /*0x83C2*/ u8 boxWallpapers[TOTAL_BOXES_COUNT]; + /*0x8432*/ struct Pokemon fusions[MAX_FUSION_STORAGE]; }; extern struct PokemonStorage *gPokemonStoragePtr; diff --git a/include/random.h b/include/random.h index 90016d2800c3..f9146d209206 100644 --- a/include/random.h +++ b/include/random.h @@ -98,6 +98,7 @@ enum RandomTag RNG_TRIPLE_ARROWS_DEFENSE_DOWN, RNG_TRIPLE_ARROWS_FLINCH, RNG_QUICK_DRAW, + RNG_TRACE, }; #define RandomWeighted(tag, ...) \ diff --git a/include/rtc.h b/include/rtc.h index 7a3d3d524ba3..9882d702b6fb 100644 --- a/include/rtc.h +++ b/include/rtc.h @@ -17,6 +17,77 @@ #define RTC_ERR_FLAG_MASK 0x0FF0 +//Morning and evening don't exist in Gen 3 +#if OW_TIMES_OF_DAY == GEN_3 + #define MORNING_HOUR_BEGIN 0 + #define MORNING_HOUR_END 0 + + #define DAY_HOUR_BEGIN 12 + #define DAY_HOUR_END HOURS_PER_DAY + + #define EVENING_HOUR_BEGIN 0 + #define EVENING_HOUR_END 0 + + #define NIGHT_HOUR_BEGIN 0 + #define NIGHT_HOUR_END 12 +//Evening doesn't exist in Gen 4 +#elif OW_TIMES_OF_DAY == GEN_4 + #define MORNING_HOUR_BEGIN 4 + #define MORNING_HOUR_END 10 + + #define DAY_HOUR_BEGIN 10 + #define DAY_HOUR_END 20 + + #define EVENING_HOUR_BEGIN 0 + #define EVENING_HOUR_END 0 + + #define NIGHT_HOUR_BEGIN 20 + #define NIGHT_HOUR_END 4 +//Gen 5 currently not included as the seasons change the times of day +#elif OW_TIMES_OF_DAY <= GEN_6 + #define MORNING_HOUR_BEGIN 4 + #define MORNING_HOUR_END 11 + + #define DAY_HOUR_BEGIN 11 + #define DAY_HOUR_END 18 + + #define EVENING_HOUR_BEGIN 18 + #define EVENING_HOUR_END 21 + + #define NIGHT_HOUR_BEGIN 21 + #define NIGHT_HOUR_END 4 +//These are the Sun/Ultra Sun times +#elif OW_TIMES_OF_DAY == GEN_7 + #define MORNING_HOUR_BEGIN 6 + #define MORNING_HOUR_END 10 + + #define DAY_HOUR_BEGIN 10 + #define DAY_HOUR_END 17 + + #define EVENING_HOUR_BEGIN 17 + #define EVENING_HOUR_END 18 + + #define NIGHT_HOUR_BEGIN 18 + #define NIGHT_HOUR_END 6 +#elif OW_TIMES_OF_DAY >= GEN_8 + #define MORNING_HOUR_BEGIN 6 + #define MORNING_HOUR_END 10 + + #define DAY_HOUR_BEGIN 10 + #define DAY_HOUR_END 19 + + #define EVENING_HOUR_BEGIN 19 + #define EVENING_HOUR_END 20 + + #define NIGHT_HOUR_BEGIN 20 + #define NIGHT_HOUR_END 6 +#endif + +#define TIME_MORNING 0 +#define TIME_DAY 1 +#define TIME_EVENING 2 +#define TIME_NIGHT 3 + extern struct Time gLocalTime; void RtcDisableInterrupts(void); @@ -40,6 +111,8 @@ void FormatDecimalDate(u8 *dest, s32 year, s32 month, s32 day); void FormatHexDate(u8 *dest, s32 year, s32 month, s32 day); void RtcCalcTimeDifference(struct SiiRtcInfo *rtc, struct Time *result, struct Time *t); void RtcCalcLocalTime(void); +bool8 IsBetweenHours(s32 hours, s32 begin, s32 end); +u8 GetTimeOfDay(void); void RtcInitLocalTimeOffset(s32 hour, s32 minute); void RtcCalcLocalTimeOffset(s32 days, s32 hours, s32 minutes, s32 seconds); void CalcTimeDifference(struct Time *result, struct Time *t1, struct Time *t2); diff --git a/include/script_menu.h b/include/script_menu.h index 734c717cff0f..41b45000eb42 100644 --- a/include/script_menu.h +++ b/include/script_menu.h @@ -2,11 +2,13 @@ #define GUARD_SCRIPT_MENU_H #include "constants/script_menu.h" +#include "menu.h" extern const u8 *const gStdStrings[]; bool8 ScriptMenu_Multichoice(u8 left, u8 top, u8 multichoiceId, bool8 ignoreBPress); bool8 ScriptMenu_MultichoiceWithDefault(u8 left, u8 top, u8 multichoiceId, bool8 ignoreBPress, u8 defaultChoice); +void DrawMultichoiceMenuInternal(u8 left, u8 top, u8 multichoiceId, bool8 ignoreBPress, u8 cursorPos, const struct MenuAction *actions, int count); bool8 ScriptMenu_YesNo(u8 left, u8 top); bool8 ScriptMenu_MultichoiceGrid(u8 left, u8 top, u8 multichoiceId, bool8 ignoreBPress, u8 columnCount); bool8 ScriptMenu_ShowPokemonPic(u16 species, u8 x, u8 y); diff --git a/include/strings.h b/include/strings.h index d897bcc4f14b..ce5adf537c70 100644 --- a/include/strings.h +++ b/include/strings.h @@ -954,6 +954,7 @@ extern const u8 gText_UsedVar2WildLured[]; extern const u8 gText_UsedVar2WildRepelled[]; extern const u8 gText_BoxFull[]; extern const u8 gText_WontHaveEffect[]; +extern const u8 gText_NextFusionMon[]; extern const u8 gText_LevelSymbol[]; extern const u8 gText_PkmnInfo[]; @@ -1329,6 +1330,19 @@ extern const u8 CableClub_Text_YouMayBattleHere[]; extern const u8 CableClub_Text_CanMixRecords[]; extern const u8 CableClub_Text_CanMakeBerryPowder[]; +// Rotom Catalog text +extern const u8 gText_LightBulb[]; +extern const u8 gText_MicrowaveOven[]; +extern const u8 gText_WashingMachine[]; +extern const u8 gText_Refrigerator[]; +extern const u8 gText_ElectricFan[]; +extern const u8 gText_LawnMower[]; +extern const u8 gText_Exit[]; + +// Zygarde Cube text +extern const u8 gText_ChangeForm[]; +extern const u8 gText_ChangeAbility[]; + // Frontier records. extern const u8 gText_WinStreak[]; extern const u8 gText_Record[]; @@ -2140,6 +2154,7 @@ extern const u8 gText_BoostPp[]; extern const u8 gText_DoWhatWithItem[]; extern const u8 gText_DoWhatWithMail[]; extern const u8 gText_AlreadyHoldingOne[]; +extern const u8 gText_WhichAppliance[]; extern const u8 gText_NoUse[]; extern const u8 gText_Able[]; extern const u8 gText_First_PM[]; diff --git a/include/trainer_see.h b/include/trainer_see.h index ab808c720c7f..5518a91761c2 100644 --- a/include/trainer_see.h +++ b/include/trainer_see.h @@ -26,5 +26,7 @@ u8 FldEff_HeartIcon(void); u8 GetCurrentApproachingTrainerObjectEventId(void); u8 GetChosenApproachingTrainerObjectEventId(u8 arrayId); void PlayerFaceTrainerAfterBattle(void); +u8 FldEff_DoubleExclMarkIcon(void); +u8 FldEff_XIcon(void); #endif // GUARD_TRAINER_SEE_H diff --git a/include/vs_seeker.h b/include/vs_seeker.h new file mode 100644 index 000000000000..723e73bf372d --- /dev/null +++ b/include/vs_seeker.h @@ -0,0 +1,14 @@ +#ifndef GUARD_VS_SEEKER_H +#define GUARD_VS_SEEKER_H + +#include "global.h" + +void Task_InitVsSeekerAndCheckForTrainersOnScreen(u8 taskId); +bool8 UpdateVsSeekerStepCounter(void); +void MapResetTrainerRematches(u16 mapGroup, u16 mapNum); +void ClearRematchMovementByTrainerId(void); +u16 GetRematchTrainerIdVSSeeker(u16 trainerId); + +#define VSSEEKER_RECHARGE_STEPS 100 + +#endif //GUARD_VS_SEEKER_H diff --git a/include/wild_encounter.h b/include/wild_encounter.h index bec95d3f7e1d..c4d42f184927 100644 --- a/include/wild_encounter.h +++ b/include/wild_encounter.h @@ -32,6 +32,7 @@ extern bool8 gIsFishingEncounter; extern bool8 gIsSurfingEncounter; void DisableWildEncounters(bool8 disabled); +u8 PickWildMonNature(void); bool8 StandardWildEncounter(u16 currMetaTileBehavior, u16 previousMetaTileBehavior); bool8 SweetScentWildEncounter(void); bool8 DoesCurrentMapHaveFishingMons(void); diff --git a/ld_script.txt b/ld_script.txt index 2e429fa539a9..115c09a69be6 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -52,6 +52,7 @@ SECTIONS { { src/rom_header.o(.text); src/rom_header_gf.o(.text.*); + src/rom_header_rhh.o(.text.*); src/crt0.o(.text); src/main.o(.text); gflib/malloc.o(.text); diff --git a/ld_script_modern.txt b/ld_script_modern.txt index ab68976661b1..7a14cfa52c3f 100644 --- a/ld_script_modern.txt +++ b/ld_script_modern.txt @@ -51,6 +51,7 @@ SECTIONS { { src/rom_header.o(.text*); src/rom_header_gf.o(.text.*); + src/rom_header_rhh.o(.text.*); src/crt0.o(.text); src/main.o(.text); gflib/*.o(.text*); diff --git a/ld_script_test.txt b/ld_script_test.txt index c7e19d7189d9..447d7a2b877a 100644 --- a/ld_script_test.txt +++ b/ld_script_test.txt @@ -62,6 +62,7 @@ SECTIONS { { src/rom_header.o(.text); src/rom_header_gf.o(.text.*); + src/rom_header_rhh.o(.text.*); src/*.o(.text); gflib/*.o(.text); } =0 diff --git a/sound/cry_tables.inc b/sound/cry_tables.inc index 85cc9b9b2978..afe48c3998f7 100644 --- a/sound/cry_tables.inc +++ b/sound/cry_tables.inc @@ -1,4325 +1,4807 @@ .align 2 gCryTable:: +.if P_FAMILY_BULBASAUR == TRUE cry Cry_Bulbasaur cry Cry_Ivysaur cry Cry_Venusaur +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_VenusaurMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_BULBASAUR +.if P_FAMILY_CHARMANDER == TRUE cry Cry_Charmander cry Cry_Charmeleon cry Cry_Charizard +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_CharizardMegaX + cry Cry_CharizardMegaY +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_CHARMANDER +.if P_FAMILY_SQUIRTLE == TRUE cry Cry_Squirtle cry Cry_Wartortle cry Cry_Blastoise +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_BlastoiseMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_SQUIRTLE +.if P_FAMILY_CATERPIE == TRUE cry Cry_Caterpie cry Cry_Metapod cry Cry_Butterfree +.endif @ P_FAMILY_CATERPIE +.if P_FAMILY_WEEDLE == TRUE cry Cry_Weedle cry Cry_Kakuna cry Cry_Beedrill +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_BeedrillMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_WEEDLE +.if P_FAMILY_PIDGEY == TRUE cry Cry_Pidgey cry Cry_Pidgeotto cry Cry_Pidgeot +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_PidgeotMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_PIDGEY +.if P_FAMILY_RATTATA == TRUE cry Cry_Rattata cry Cry_Raticate +.endif @ P_FAMILY_RATTATA +.if P_FAMILY_SPEAROW == TRUE cry Cry_Spearow cry Cry_Fearow +.endif @ P_FAMILY_SPEAROW +.if P_FAMILY_EKANS == TRUE cry Cry_Ekans cry Cry_Arbok +.endif @ P_FAMILY_EKANS +.if P_FAMILY_PIKACHU == TRUE +.if P_GEN_2_CROSS_EVOS == TRUE + cry Cry_Pichu +.endif @ P_GEN_2_CROSS_EVOS cry Cry_Pikachu cry Cry_Raichu +.endif @ P_FAMILY_PIKACHU +.if P_FAMILY_SANDSHREW == TRUE cry Cry_Sandshrew cry Cry_Sandslash +.endif @ P_FAMILY_SANDSHREW +.if P_FAMILY_NIDORAN == TRUE cry Cry_NidoranF cry Cry_Nidorina cry Cry_Nidoqueen cry Cry_NidoranM cry Cry_Nidorino cry Cry_Nidoking +.endif @ P_FAMILY_NIDORAN +.if P_FAMILY_CLEFAIRY == TRUE +.if P_GEN_2_CROSS_EVOS == TRUE + cry Cry_Cleffa +.endif @ P_GEN_2_CROSS_EVOS cry Cry_Clefairy cry Cry_Clefable +.endif @ P_FAMILY_CLEFAIRY +.if P_FAMILY_VULPIX == TRUE cry Cry_Vulpix cry Cry_Ninetales +.endif @ P_FAMILY_VULPIX +.if P_FAMILY_JIGGLYPUFF == TRUE +.if P_GEN_2_CROSS_EVOS == TRUE + cry Cry_Igglybuff +.endif @ P_GEN_2_CROSS_EVOS cry Cry_Jigglypuff cry Cry_Wigglytuff +.endif @ P_FAMILY_JIGGLYPUFF +.if P_FAMILY_ZUBAT == TRUE cry Cry_Zubat cry Cry_Golbat +.if P_GEN_2_CROSS_EVOS == TRUE + cry Cry_Crobat +.endif @ P_GEN_2_CROSS_EVOS +.endif @ P_FAMILY_ZUBAT +.if P_FAMILY_ODDISH == TRUE cry Cry_Oddish cry Cry_Gloom cry Cry_Vileplume +.if P_GEN_2_CROSS_EVOS == TRUE + cry Cry_Bellossom +.endif @ P_GEN_2_CROSS_EVOS +.endif @ P_FAMILY_ODDISH +.if P_FAMILY_PARAS == TRUE cry Cry_Paras cry Cry_Parasect +.endif @ P_FAMILY_PARAS +.if P_FAMILY_VENONAT == TRUE cry Cry_Venonat cry Cry_Venomoth +.endif @ P_FAMILY_VENONAT +.if P_FAMILY_DIGLETT == TRUE cry Cry_Diglett cry Cry_Dugtrio +.endif @ P_FAMILY_DIGLETT +.if P_FAMILY_MEOWTH == TRUE cry Cry_Meowth cry Cry_Persian +.if P_GALARIAN_FORMS == TRUE + cry Cry_Perrserker +.endif @ P_GALARIAN_FORMS +.endif @ P_FAMILY_MEOWTH +.if P_FAMILY_PSYDUCK == TRUE cry Cry_Psyduck cry Cry_Golduck +.endif @ P_FAMILY_PSYDUCK +.if P_FAMILY_MANKEY == TRUE cry Cry_Mankey cry Cry_Primeape +.if P_GEN_9_CROSS_EVOS == TRUE + cry Cry_Annihilape +.endif @ P_GEN_9_CROSS_EVOS +.endif @ P_FAMILY_MANKEY +.if P_FAMILY_GROWLITHE == TRUE cry Cry_Growlithe cry Cry_Arcanine +.endif @ P_FAMILY_GROWLITHE +.if P_FAMILY_POLIWAG == TRUE cry Cry_Poliwag cry Cry_Poliwhirl cry Cry_Poliwrath +.if P_GEN_2_CROSS_EVOS == TRUE + cry Cry_Politoed +.endif @ P_GEN_2_CROSS_EVOS +.endif @ P_FAMILY_POLIWAG +.if P_FAMILY_ABRA == TRUE cry Cry_Abra cry Cry_Kadabra cry Cry_Alakazam +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_AlakazamMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_ABRA +.if P_FAMILY_MACHOP == TRUE cry Cry_Machop cry Cry_Machoke cry Cry_Machamp +.endif @ P_FAMILY_MACHOP +.if P_FAMILY_BELLSPROUT == TRUE cry Cry_Bellsprout cry Cry_Weepinbell cry Cry_Victreebel +.endif @ P_FAMILY_BELLSPROUT +.if P_FAMILY_TENTACOOL == TRUE cry Cry_Tentacool cry Cry_Tentacruel +.endif @ P_FAMILY_TENTACOOL +.if P_FAMILY_GEODUDE == TRUE cry Cry_Geodude cry Cry_Graveler cry Cry_Golem +.endif @ P_FAMILY_GEODUDE +.if P_FAMILY_PONYTA == TRUE cry Cry_Ponyta cry Cry_Rapidash +.endif @ P_FAMILY_PONYTA +.if P_FAMILY_SLOWPOKE == TRUE cry Cry_Slowpoke cry Cry_Slowbro +.if P_GEN_2_CROSS_EVOS == TRUE + cry Cry_Slowking +.endif @ P_GEN_2_CROSS_EVOS +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_SlowbroMega +.endif @ P_MEGA_EVOLUTIONS +.if P_GALARIAN_FORMS == TRUE + cry Cry_SlowpokeGalarian +.endif @ P_GALARIAN_FORMS +.endif @ P_FAMILY_SLOWPOKE +.if P_FAMILY_MAGNEMITE == TRUE cry Cry_Magnemite cry Cry_Magneton +.if P_GEN_4_CROSS_EVOS == TRUE + cry Cry_Magnezone +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_MAGNEMITE +.if P_FAMILY_FARFETCHD == TRUE cry Cry_Farfetchd +.if P_GALARIAN_FORMS == TRUE + cry Cry_Sirfetchd +.endif @ P_GALARIAN_FORMS +.endif @ P_FAMILY_FARFETCHD +.if P_FAMILY_DODUO == TRUE cry Cry_Doduo cry Cry_Dodrio +.endif @ P_FAMILY_DODUO +.if P_FAMILY_SEEL == TRUE cry Cry_Seel cry Cry_Dewgong +.endif @ P_FAMILY_SEEL +.if P_FAMILY_GRIMER == TRUE cry Cry_Grimer cry Cry_Muk +.endif @ P_FAMILY_GRIMER +.if P_FAMILY_SHELLDER == TRUE cry Cry_Shellder cry Cry_Cloyster +.endif @ P_FAMILY_SHELLDER +.if P_FAMILY_GASTLY == TRUE cry Cry_Gastly cry Cry_Haunter cry Cry_Gengar +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_GengarMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_GASTLY +.if P_FAMILY_ONIX == TRUE cry Cry_Onix +.if P_GEN_2_CROSS_EVOS == TRUE + cry Cry_Steelix +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_SteelixMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_GEN_2_CROSS_EVOS +.endif @ P_FAMILY_ONIX +.if P_FAMILY_DROWZEE == TRUE cry Cry_Drowzee cry Cry_Hypno +.endif @ P_FAMILY_DROWZEE +.if P_FAMILY_KRABBY == TRUE cry Cry_Krabby cry Cry_Kingler +.endif @ P_FAMILY_KRABBY +.if P_FAMILY_VOLTORB == TRUE cry Cry_Voltorb cry Cry_Electrode +.endif @ P_FAMILY_VOLTORB +.if P_FAMILY_EXEGGCUTE == TRUE cry Cry_Exeggcute cry Cry_Exeggutor +.endif @ P_FAMILY_EXEGGCUTE +.if P_FAMILY_CUBONE == TRUE cry Cry_Cubone cry Cry_Marowak +.endif @ P_FAMILY_CUBONE +.if P_FAMILY_HITMONS == TRUE +.if P_GEN_2_CROSS_EVOS == TRUE + cry Cry_Tyrogue +.endif @ P_GEN_2_CROSS_EVOS cry Cry_Hitmonlee cry Cry_Hitmonchan +.if P_GEN_2_CROSS_EVOS == TRUE + cry Cry_Hitmontop +.endif @ P_GEN_2_CROSS_EVOS +.endif @ P_FAMILY_HITMONS +.if P_FAMILY_LICKITUNG == TRUE cry Cry_Lickitung +.if P_GEN_4_CROSS_EVOS == TRUE + cry Cry_Lickilicky +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_LICKITUNG +.if P_FAMILY_KOFFING == TRUE cry Cry_Koffing cry Cry_Weezing +.endif @ P_FAMILY_KOFFING +.if P_FAMILY_RHYHORN == TRUE cry Cry_Rhyhorn cry Cry_Rhydon +.if P_GEN_4_CROSS_EVOS == TRUE + cry Cry_Rhyperior +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_RHYHORN +.if P_FAMILY_CHANSEY == TRUE +.if P_GEN_4_CROSS_EVOS == TRUE + cry Cry_Happiny +.endif @ P_GEN_4_CROSS_EVOS cry Cry_Chansey +.if P_GEN_2_CROSS_EVOS == TRUE + cry Cry_Blissey +.endif @ P_GEN_2_CROSS_EVOS +.endif @ P_FAMILY_CHANSEY +.if P_FAMILY_TANGELA == TRUE cry Cry_Tangela +.if P_GEN_4_CROSS_EVOS == TRUE + cry Cry_Tangrowth +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_TANGELA +.if P_FAMILY_KANGASKHAN == TRUE cry Cry_Kangaskhan +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_KangaskhanMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_KANGASKHAN +.if P_FAMILY_HORSEA == TRUE cry Cry_Horsea cry Cry_Seadra +.if P_GEN_2_CROSS_EVOS == TRUE + cry Cry_Kingdra +.endif @ P_GEN_2_CROSS_EVOS +.endif @ P_FAMILY_HORSEA +.if P_FAMILY_GOLDEEN == TRUE cry Cry_Goldeen cry Cry_Seaking +.endif @ P_FAMILY_GOLDEEN +.if P_FAMILY_STARYU == TRUE cry Cry_Staryu cry Cry_Starmie +.endif @ P_FAMILY_STARYU +.if P_FAMILY_MR_MIME == TRUE +.if P_GEN_4_CROSS_EVOS == TRUE + cry Cry_MimeJr +.endif @ P_GEN_4_CROSS_EVOS cry Cry_MrMime +.if P_GALARIAN_FORMS == TRUE + cry Cry_MrRime +.endif @ P_GALARIAN_FORMS +.endif @ P_FAMILY_MR_MIME +.if P_FAMILY_SCYTHER == TRUE cry Cry_Scyther +.if P_GEN_2_CROSS_EVOS == TRUE + cry Cry_Scizor +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_ScizorMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_GEN_2_CROSS_EVOS +.if P_GEN_8_CROSS_EVOS == TRUE + cry Cry_Kleavor +.endif @ P_GEN_8_CROSS_EVOS +.endif @ P_FAMILY_SCYTHER +.if P_FAMILY_JYNX == TRUE +.if P_GEN_2_CROSS_EVOS == TRUE + cry Cry_Smoochum +.endif @ P_GEN_2_CROSS_EVOS cry Cry_Jynx +.endif @ P_FAMILY_JYNX +.if P_FAMILY_ELECTABUZZ == TRUE +.if P_GEN_2_CROSS_EVOS == TRUE + cry Cry_Elekid +.endif @ P_GEN_2_CROSS_EVOS cry Cry_Electabuzz +.if P_GEN_4_CROSS_EVOS == TRUE + cry Cry_Electivire +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_ELECTABUZZ +.if P_FAMILY_MAGMAR == TRUE +.if P_GEN_2_CROSS_EVOS == TRUE + cry Cry_Magby +.endif @ P_GEN_2_CROSS_EVOS cry Cry_Magmar +.if P_GEN_4_CROSS_EVOS == TRUE + cry Cry_Magmortar +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_MAGMAR +.if P_FAMILY_PINSIR == TRUE cry Cry_Pinsir +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_PinsirMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_PINSIR +.if P_FAMILY_TAUROS == TRUE cry Cry_Tauros +.endif @ P_FAMILY_TAUROS +.if P_FAMILY_MAGIKARP == TRUE cry Cry_Magikarp cry Cry_Gyarados +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_GyaradosMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_MAGIKARP +.if P_FAMILY_LAPRAS == TRUE cry Cry_Lapras +.endif @ P_FAMILY_LAPRAS +.if P_FAMILY_DITTO == TRUE cry Cry_Ditto +.endif @ P_FAMILY_DITTO +.if P_FAMILY_EEVEE == TRUE cry Cry_Eevee cry Cry_Vaporeon cry Cry_Jolteon cry Cry_Flareon +.if P_GEN_2_CROSS_EVOS == TRUE + cry Cry_Espeon + cry Cry_Umbreon +.endif @ P_GEN_2_CROSS_EVOS +.if P_GEN_4_CROSS_EVOS == TRUE + cry Cry_Leafeon + cry Cry_Glaceon +.endif @ P_GEN_4_CROSS_EVOS +.if P_GEN_6_CROSS_EVOS == TRUE + cry Cry_Sylveon +.endif @ P_GEN_6_CROSS_EVOS +.endif @ P_FAMILY_EEVEE +.if P_FAMILY_PORYGON == TRUE cry Cry_Porygon +.if P_GEN_2_CROSS_EVOS == TRUE + cry Cry_Porygon2 +.if P_GEN_4_CROSS_EVOS == TRUE + cry Cry_PorygonZ +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_GEN_2_CROSS_EVOS +.endif @ P_FAMILY_PORYGON +.if P_FAMILY_OMANYTE == TRUE cry Cry_Omanyte cry Cry_Omastar +.endif @ P_FAMILY_OMANYTE +.if P_FAMILY_KABUTO == TRUE cry Cry_Kabuto cry Cry_Kabutops +.endif @ P_FAMILY_KABUTO +.if P_FAMILY_AERODACTYL == TRUE cry Cry_Aerodactyl +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_AerodactylMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_AERODACTYL +.if P_FAMILY_SNORLAX == TRUE +.if P_GEN_4_CROSS_EVOS == TRUE + cry Cry_Munchlax +.endif @ P_GEN_4_CROSS_EVOS cry Cry_Snorlax +.endif @ P_FAMILY_SNORLAX +.if P_FAMILY_ARTICUNO == TRUE cry Cry_Articuno +.endif @ P_FAMILY_ARTICUNO +.if P_FAMILY_ZAPDOS == TRUE cry Cry_Zapdos +.endif @ P_FAMILY_ZAPDOS +.if P_FAMILY_MOLTRES == TRUE cry Cry_Moltres +.endif @ P_FAMILY_MOLTRES +.if P_FAMILY_DRATINI == TRUE cry Cry_Dratini cry Cry_Dragonair cry Cry_Dragonite +.endif @ P_FAMILY_DRATINI +.if P_FAMILY_MEWTWO == TRUE cry Cry_Mewtwo +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_MewtwoMegaX + cry Cry_MewtwoMegaY +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_MEWTWO +.if P_FAMILY_MEW == TRUE cry Cry_Mew +.endif @ P_FAMILY_MEW +.if P_FAMILY_CHIKORITA == TRUE cry Cry_Chikorita cry Cry_Bayleef cry Cry_Meganium +.endif @ P_FAMILY_CHIKORITA +.if P_FAMILY_CYNDAQUIL == TRUE cry Cry_Cyndaquil cry Cry_Quilava cry Cry_Typhlosion +.endif @ P_FAMILY_CYNDAQUIL +.if P_FAMILY_TOTODILE == TRUE cry Cry_Totodile cry Cry_Croconaw cry Cry_Feraligatr +.endif @ P_FAMILY_TOTODILE +.if P_FAMILY_SENTRET == TRUE cry Cry_Sentret cry Cry_Furret +.endif @ P_FAMILY_SENTRET +.if P_FAMILY_HOOTHOOT == TRUE cry Cry_Hoothoot cry Cry_Noctowl +.endif @ P_FAMILY_HOOTHOOT +.if P_FAMILY_LEDYBA == TRUE cry Cry_Ledyba cry Cry_Ledian +.endif @ P_FAMILY_LEDYBA +.if P_FAMILY_SPINARAK == TRUE cry Cry_Spinarak cry Cry_Ariados - cry Cry_Crobat +.endif @ P_FAMILY_SPINARAK +.if P_FAMILY_CHINCHOU == TRUE cry Cry_Chinchou cry Cry_Lanturn - cry Cry_Pichu - cry Cry_Cleffa - cry Cry_Igglybuff +.endif @ P_FAMILY_CHINCHOU +.if P_FAMILY_TOGEPI == TRUE cry Cry_Togepi cry Cry_Togetic +.if P_GEN_4_CROSS_EVOS == TRUE + cry Cry_Togekiss +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_TOGEPI +.if P_FAMILY_NATU == TRUE cry Cry_Natu cry Cry_Xatu +.endif @ P_FAMILY_NATU cry Cry_Mareep +.if P_FAMILY_MAREEP == TRUE cry Cry_Flaaffy cry Cry_Ampharos - cry Cry_Bellossom +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_AmpharosMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_MAREEP +.if P_FAMILY_MARILL == TRUE +.if P_GEN_3_CROSS_EVOS == TRUE + cry Cry_Azurill +.endif @ P_GEN_3_CROSS_EVOS cry Cry_Marill cry Cry_Azumarill +.endif @ P_FAMILY_MARILL +.if P_FAMILY_SUDOWOODO == TRUE + cry Cry_Bonsly cry Cry_Sudowoodo - cry Cry_Politoed +.endif @ P_FAMILY_SUDOWOODO +.if P_FAMILY_HOPPIP == TRUE cry Cry_Hoppip cry Cry_Skiploom cry Cry_Jumpluff +.endif @ P_FAMILY_HOPPIP +.if P_FAMILY_AIPOM == TRUE cry Cry_Aipom + cry Cry_Ambipom +.endif @ P_FAMILY_AIPOM +.if P_FAMILY_SUNKERN == TRUE cry Cry_Sunkern cry Cry_Sunflora +.endif @ P_FAMILY_SUNKERN +.if P_FAMILY_YANMA == TRUE cry Cry_Yanma +.if P_GEN_4_CROSS_EVOS == TRUE + cry Cry_Yanmega +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_YANMA +.if P_FAMILY_WOOPER == TRUE cry Cry_Wooper cry Cry_Quagsire - cry Cry_Espeon - cry Cry_Umbreon +.if P_PALDEAN_FORMS == TRUE + cry Cry_Clodsire +.endif @ P_PALDEAN_FORMS +.endif @ P_FAMILY_WOOPER +.if P_FAMILY_MURKROW == TRUE cry Cry_Murkrow - cry Cry_Slowking + cry Cry_Honchkrow +.endif @ P_FAMILY_MURKROW +.if P_FAMILY_MISDREAVUS == TRUE cry Cry_Misdreavus + cry Cry_Mismagius +.endif @ P_FAMILY_MISDREAVUS +.if P_FAMILY_UNOWN == TRUE cry Cry_Unown +.endif @ P_FAMILY_UNOWN +.if P_FAMILY_WOBBUFFET == TRUE +.if P_GEN_3_CROSS_EVOS == TRUE + cry Cry_Wynaut +.endif @ P_GEN_3_CROSS_EVOS cry Cry_Wobbuffet +.endif @ P_FAMILY_WOBBUFFET +.if P_FAMILY_GIRAFARIG == TRUE cry Cry_Girafarig +.if P_GEN_9_CROSS_EVOS == TRUE + cry Cry_Farigiraf +.endif @ P_GEN_9_CROSS_EVOS +.endif @ P_FAMILY_GIRAFARIG +.if P_FAMILY_PINECO == TRUE cry Cry_Pineco cry Cry_Forretress +.endif @ P_FAMILY_PINECO +.if P_FAMILY_DUNSPARCE == TRUE cry Cry_Dunsparce +.if P_GEN_9_CROSS_EVOS == TRUE + cry Cry_Dudunsparce +.endif @ P_GEN_9_CROSS_EVOS +.endif @ P_FAMILY_DUNSPARCE +.if P_FAMILY_GLIGAR == TRUE cry Cry_Gligar - cry Cry_Steelix +.if P_GEN_4_CROSS_EVOS == TRUE + cry Cry_Gliscor +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_GLIGAR +.if P_FAMILY_SNUBBULL == TRUE cry Cry_Snubbull cry Cry_Granbull +.endif @ P_FAMILY_SNUBBULL +.if P_FAMILY_QWILFISH == TRUE cry Cry_Qwilfish - cry Cry_Scizor +.if P_HISUIAN_FORMS == TRUE + cry Cry_Overqwil +.endif @ P_HISUIAN_FORMS +.endif @ P_FAMILY_QWILFISH +.if P_FAMILY_SHUCKLE == TRUE cry Cry_Shuckle +.endif @ P_FAMILY_SHUCKLE +.if P_FAMILY_HERACROSS == TRUE cry Cry_Heracross +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_HeracrossMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_HERACROSS +.if P_FAMILY_SNEASEL == TRUE cry Cry_Sneasel +.if P_GEN_4_CROSS_EVOS == TRUE + cry Cry_Weavile +.endif @ P_GEN_4_CROSS_EVOS +.if P_HISUIAN_FORMS == TRUE + cry Cry_Sneasler +.endif @ P_HISUIAN_FORMS +.endif @ P_FAMILY_SNEASEL +.if P_FAMILY_TEDDIURSA == TRUE cry Cry_Teddiursa cry Cry_Ursaring +.if P_GEN_9_CROSS_EVOS == TRUE + cry Cry_Ursaluna +.endif @ P_GEN_9_CROSS_EVOS +.endif @ P_FAMILY_TEDDIURSA +.if P_FAMILY_SLUGMA == TRUE cry Cry_Slugma cry Cry_Magcargo +.endif @ P_FAMILY_SLUGMA +.if P_FAMILY_SWINUB == TRUE cry Cry_Swinub cry Cry_Piloswine +.if P_GEN_4_CROSS_EVOS == TRUE + cry Cry_Mamoswine +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_SWINUB +.if P_FAMILY_CORSOLA == TRUE cry Cry_Corsola +.if P_GALARIAN_FORMS == TRUE + cry Cry_Cursola +.endif @ P_GALARIAN_FORMS +.endif @ P_FAMILY_CORSOLA +.if P_FAMILY_REMORAID == TRUE cry Cry_Remoraid cry Cry_Octillery +.endif @ P_FAMILY_REMORAID +.if P_FAMILY_DELIBIRD == TRUE cry Cry_Delibird +.endif @ P_FAMILY_DELIBIRD +.if P_FAMILY_MANTINE == TRUE +.if P_GEN_4_CROSS_EVOS == TRUE + cry Cry_Mantyke +.endif @ P_GEN_4_CROSS_EVOS cry Cry_Mantine +.endif @ P_FAMILY_MANTINE +.if P_FAMILY_SKARMORY == TRUE cry Cry_Skarmory +.endif @ P_FAMILY_SKARMORY cry Cry_Houndour +.if P_FAMILY_HOUNDOUR == TRUE cry Cry_Houndoom - cry Cry_Kingdra +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_HoundoomMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_HOUNDOUR +.if P_FAMILY_PHANPY == TRUE cry Cry_Phanpy cry Cry_Donphan - cry Cry_Porygon2 +.endif @ P_FAMILY_PHANPY +.if P_FAMILY_STANTLER == TRUE cry Cry_Stantler +.if P_GEN_8_CROSS_EVOS == TRUE + cry Cry_Wyrdeer +.endif @ P_GEN_8_CROSS_EVOS +.endif @ P_FAMILY_STANTLER +.if P_FAMILY_SMEARGLE == TRUE cry Cry_Smeargle - cry Cry_Tyrogue - cry Cry_Hitmontop - cry Cry_Smoochum - cry Cry_Elekid - cry Cry_Magby +.endif @ P_FAMILY_SMEARGLE +.if P_FAMILY_MILTANK == TRUE cry Cry_Miltank - cry Cry_Blissey +.endif @ P_FAMILY_MILTANK +.if P_FAMILY_RAIKOU == TRUE cry Cry_Raikou +.endif @ P_FAMILY_RAIKOU +.if P_FAMILY_ENTEI == TRUE cry Cry_Entei +.endif @ P_FAMILY_ENTEI +.if P_FAMILY_SUICUNE == TRUE cry Cry_Suicune +.endif @ P_FAMILY_SUICUNE +.if P_FAMILY_LARVITAR == TRUE cry Cry_Larvitar cry Cry_Pupitar cry Cry_Tyranitar +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_TyranitarMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_LARVITAR +.if P_FAMILY_LUGIA == TRUE cry Cry_Lugia +.endif @ P_FAMILY_LUGIA +.if P_FAMILY_HO_OH == TRUE cry Cry_HoOh +.endif @ P_FAMILY_HO_OH +.if P_FAMILY_CELEBI == TRUE cry Cry_Celebi +.endif @ P_FAMILY_CELEBI +.if P_FAMILY_TREECKO == TRUE cry Cry_Treecko cry Cry_Grovyle cry Cry_Sceptile +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_SceptileMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_TREECKO +.if P_FAMILY_TORCHIC == TRUE cry Cry_Torchic cry Cry_Combusken cry Cry_Blaziken +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_BlazikenMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_TORCHIC +.if P_FAMILY_MUDKIP == TRUE cry Cry_Mudkip cry Cry_Marshtomp cry Cry_Swampert +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_SwampertMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_MUDKIP +.if P_FAMILY_POOCHYENA == TRUE cry Cry_Poochyena cry Cry_Mightyena +.endif @ P_FAMILY_POOCHYENA +.if P_FAMILY_ZIGZAGOON == TRUE cry Cry_Zigzagoon cry Cry_Linoone +.if P_GALARIAN_FORMS == TRUE + cry Cry_Obstagoon +.endif @ P_GALARIAN_FORMS +.endif @ P_FAMILY_ZIGZAGOON +.if P_FAMILY_WURMPLE == TRUE cry Cry_Wurmple cry Cry_Silcoon cry Cry_Beautifly cry Cry_Cascoon cry Cry_Dustox +.endif @ P_FAMILY_WURMPLE +.if P_FAMILY_LOTAD == TRUE cry Cry_Lotad cry Cry_Lombre cry Cry_Ludicolo +.endif @ P_FAMILY_LOTAD +.if P_FAMILY_SEEDOT == TRUE cry Cry_Seedot cry Cry_Nuzleaf cry Cry_Shiftry +.endif @ P_FAMILY_SEEDOT +.if P_FAMILY_TAILLOW == TRUE cry Cry_Taillow cry Cry_Swellow +.endif @ P_FAMILY_TAILLOW +.if P_FAMILY_WINGULL == TRUE cry Cry_Wingull cry Cry_Pelipper +.endif @ P_FAMILY_WINGULL +.if P_FAMILY_RALTS == TRUE cry Cry_Ralts cry Cry_Kirlia cry Cry_Gardevoir +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_GardevoirMega +.endif @ P_MEGA_EVOLUTIONS +.if P_GEN_4_CROSS_EVOS == TRUE + cry Cry_Gallade +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_GalladeMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_RALTS +.if P_FAMILY_SURSKIT == TRUE cry Cry_Surskit cry Cry_Masquerain +.endif @ P_FAMILY_SURSKIT +.if P_FAMILY_SHROOMISH == TRUE cry Cry_Shroomish cry Cry_Breloom +.endif @ P_FAMILY_SHROOMISH +.if P_FAMILY_SLAKOTH == TRUE cry Cry_Slakoth cry Cry_Vigoroth cry Cry_Slaking +.endif @ P_FAMILY_SLAKOTH +.if P_FAMILY_NINCADA == TRUE cry Cry_Nincada cry Cry_Ninjask cry Cry_Shedinja +.endif @ P_FAMILY_NINCADA +.if P_FAMILY_WHISMUR == TRUE cry Cry_Whismur cry Cry_Loudred cry Cry_Exploud +.endif @ P_FAMILY_WHISMUR +.if P_FAMILY_MAKUHITA == TRUE cry Cry_Makuhita cry Cry_Hariyama - cry Cry_Azurill +.endif @ P_FAMILY_MAKUHITA +.if P_FAMILY_NOSEPASS == TRUE cry Cry_Nosepass +.if P_GEN_4_CROSS_EVOS == TRUE + cry Cry_Probopass +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_NOSEPASS +.if P_FAMILY_SKITTY == TRUE cry Cry_Skitty cry Cry_Delcatty +.endif @ P_FAMILY_SKITTY +.if P_FAMILY_SABLEYE == TRUE cry Cry_Sableye +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_SableyeMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_SABLEYE +.if P_FAMILY_MAWILE == TRUE cry Cry_Mawile +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_MawileMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_MAWILE +.if P_FAMILY_ARON == TRUE cry Cry_Aron cry Cry_Lairon cry Cry_Aggron +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_AggronMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_ARON +.if P_FAMILY_MEDITITE == TRUE cry Cry_Meditite cry Cry_Medicham +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_MedichamMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_MEDITITE +.if P_FAMILY_ELECTRIKE == TRUE cry Cry_Electrike cry Cry_Manectric +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_ManectricMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_ELECTRIKE +.if P_FAMILY_PLUSLE == TRUE cry Cry_Plusle +.endif @ P_FAMILY_PLUSLE +.if P_FAMILY_MINUN == TRUE cry Cry_Minun +.endif @ P_FAMILY_MINUN +.if P_FAMILY_VOLBEAT_ILLUMISE == TRUE cry Cry_Volbeat cry Cry_Illumise +.endif @ P_FAMILY_VOLBEAT_ILLUMISE +.if P_FAMILY_ROSELIA == TRUE +.if P_GEN_4_CROSS_EVOS == TRUE + cry Cry_Budew +.endif @ P_GEN_4_CROSS_EVOS cry Cry_Roselia +.if P_GEN_4_CROSS_EVOS == TRUE + cry Cry_Roserade +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_ROSELIA +.if P_FAMILY_GULPIN == TRUE cry Cry_Gulpin cry Cry_Swalot +.endif @ P_FAMILY_GULPIN +.if P_FAMILY_CARVANHA == TRUE cry Cry_Carvanha cry Cry_Sharpedo +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_SharpedoMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_CARVANHA +.if P_FAMILY_WAILMER == TRUE cry Cry_Wailmer cry Cry_Wailord +.endif @ P_FAMILY_WAILMER +.if P_FAMILY_NUMEL == TRUE cry Cry_Numel cry Cry_Camerupt +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_CameruptMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_NUMEL +.if P_FAMILY_TORKOAL == TRUE cry Cry_Torkoal +.endif @ P_FAMILY_TORKOAL +.if P_FAMILY_SPOINK == TRUE cry Cry_Spoink cry Cry_Grumpig +.endif @ P_FAMILY_SPOINK +.if P_FAMILY_SPINDA == TRUE cry Cry_Spinda +.endif @ P_FAMILY_SPINDA +.if P_FAMILY_TRAPINCH == TRUE cry Cry_Trapinch cry Cry_Vibrava cry Cry_Flygon +.endif @ P_FAMILY_TRAPINCH +.if P_FAMILY_CACNEA == TRUE cry Cry_Cacnea cry Cry_Cacturne +.endif @ P_FAMILY_CACNEA +.if P_FAMILY_SWABLU == TRUE cry Cry_Swablu cry Cry_Altaria +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_AltariaMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_SWABLU +.if P_FAMILY_ZANGOOSE == TRUE cry Cry_Zangoose +.endif @ P_FAMILY_ZANGOOSE +.if P_FAMILY_SEVIPER == TRUE cry Cry_Seviper +.endif @ P_FAMILY_SEVIPER +.if P_FAMILY_LUNATONE == TRUE cry Cry_Lunatone +.endif @ P_FAMILY_LUNATONE +.if P_FAMILY_SOLROCK == TRUE cry Cry_Solrock +.endif @ P_FAMILY_SOLROCK +.if P_FAMILY_BARBOACH == TRUE cry Cry_Barboach cry Cry_Whiscash +.endif @ P_FAMILY_BARBOACH +.if P_FAMILY_CORPHISH == TRUE cry Cry_Corphish cry Cry_Crawdaunt +.endif @ P_FAMILY_CORPHISH +.if P_FAMILY_BALTOY == TRUE cry Cry_Baltoy cry Cry_Claydol +.endif @ P_FAMILY_BALTOY +.if P_FAMILY_LILEEP == TRUE cry Cry_Lileep cry Cry_Cradily +.endif @ P_FAMILY_LILEEP +.if P_FAMILY_ANORITH == TRUE cry Cry_Anorith cry Cry_Armaldo +.endif @ P_FAMILY_ANORITH +.if P_FAMILY_FEEBAS == TRUE cry Cry_Feebas cry Cry_Milotic +.endif @ P_FAMILY_FEEBAS +.if P_FAMILY_CASTFORM == TRUE cry Cry_Castform +.endif @ P_FAMILY_CASTFORM +.if P_FAMILY_KECLEON == TRUE cry Cry_Kecleon +.endif @ P_FAMILY_KECLEON +.if P_FAMILY_SHUPPET == TRUE cry Cry_Shuppet cry Cry_Banette +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_BanetteMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_SHUPPET +.if P_FAMILY_DUSKULL == TRUE cry Cry_Duskull cry Cry_Dusclops +.if P_GEN_4_CROSS_EVOS == TRUE + cry Cry_Dusknoir +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_DUSKULL +.if P_FAMILY_TROPIUS == TRUE cry Cry_Tropius +.endif @ P_FAMILY_TROPIUS +.if P_FAMILY_CHIMECHO == TRUE +.if P_GEN_4_CROSS_EVOS == TRUE + cry Cry_Chingling +.endif @ P_GEN_4_CROSS_EVOS cry Cry_Chimecho +.endif @ P_FAMILY_CHIMECHO +.if P_FAMILY_ABSOL == TRUE cry Cry_Absol - cry Cry_Wynaut +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_AbsolMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_ABSOL +.if P_FAMILY_SNORUNT == TRUE cry Cry_Snorunt cry Cry_Glalie +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_GlalieMega +.endif @ P_MEGA_EVOLUTIONS +.if P_GEN_4_CROSS_EVOS == TRUE + cry Cry_Froslass +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_SNORUNT +.if P_FAMILY_SPHEAL == TRUE cry Cry_Spheal cry Cry_Sealeo cry Cry_Walrein +.endif @ P_FAMILY_SPHEAL +.if P_FAMILY_CLAMPERL == TRUE cry Cry_Clamperl cry Cry_Huntail cry Cry_Gorebyss +.endif @ P_FAMILY_CLAMPERL +.if P_FAMILY_RELICANTH == TRUE cry Cry_Relicanth +.endif @ P_FAMILY_RELICANTH +.if P_FAMILY_LUVDISC == TRUE cry Cry_Luvdisc +.endif @ P_FAMILY_LUVDISC +.if P_FAMILY_BAGON == TRUE cry Cry_Bagon cry Cry_Shelgon cry Cry_Salamence +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_SalamenceMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_BAGON +.if P_FAMILY_BELDUM == TRUE cry Cry_Beldum cry Cry_Metang cry Cry_Metagross +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_MetagrossMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_BELDUM +.if P_FAMILY_REGIROCK == TRUE cry Cry_Regirock +.endif @ P_FAMILY_REGIROCK +.if P_FAMILY_REGICE == TRUE cry Cry_Regice +.endif @ P_FAMILY_REGICE +.if P_FAMILY_REGISTEEL == TRUE cry Cry_Registeel +.endif @ P_FAMILY_REGISTEEL +.if P_FAMILY_LATIAS == TRUE cry Cry_Latias +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_LatiasMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_LATIAS +.if P_FAMILY_LATIOS == TRUE cry Cry_Latios +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_LatiosMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_LATIOS +.if P_FAMILY_KYOGRE == TRUE cry Cry_Kyogre +.if P_PRIMAL_REVERSIONS == TRUE + cry Cry_KyogrePrimal +.endif @ P_PRIMAL_REVERSIONS +.endif @ P_FAMILY_KYOGRE +.if P_FAMILY_GROUDON == TRUE cry Cry_Groudon +.if P_PRIMAL_REVERSIONS == TRUE + cry Cry_GroudonPrimal +.endif @ P_PRIMAL_REVERSIONS +.endif @ P_FAMILY_GROUDON +.if P_FAMILY_RAYQUAZA == TRUE cry Cry_Rayquaza +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_RayquazaMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_RAYQUAZA +.if P_FAMILY_JIRACHI == TRUE cry Cry_Jirachi +.endif @ P_FAMILY_JIRACHI +.if P_FAMILY_DEOXYS == TRUE cry Cry_Deoxys -.if P_GEN_4_POKEMON == TRUE +.endif @ P_FAMILY_DEOXYS +.if P_FAMILY_TURTWIG == TRUE +.endif @ P_FAMILY_TURTWIG cry Cry_Turtwig cry Cry_Grotle cry Cry_Torterra +.if P_FAMILY_CHIMCHAR == TRUE +.endif @ P_FAMILY_CHIMCHAR cry Cry_Chimchar cry Cry_Monferno cry Cry_Infernape +.if P_FAMILY_PIPLUP == TRUE cry Cry_Piplup cry Cry_Prinplup cry Cry_Empoleon +.endif @ P_FAMILY_PIPLUP +.if P_FAMILY_STARLY == TRUE cry Cry_Starly cry Cry_Staravia cry Cry_Staraptor +.endif @ P_FAMILY_STARLY +.if P_FAMILY_BIDOOF == TRUE cry Cry_Bidoof cry Cry_Bibarel +.endif @ P_FAMILY_BIDOOF +.if P_FAMILY_KRICKETOT == TRUE cry Cry_Kricketot cry Cry_Kricketune +.endif @ P_FAMILY_KRICKETOT +.if P_FAMILY_SHINX == TRUE cry Cry_Shinx cry Cry_Luxio cry Cry_Luxray - cry Cry_Budew - cry Cry_Roserade +.endif @ P_FAMILY_SHINX +.if P_FAMILY_CRANIDOS == TRUE cry Cry_Cranidos cry Cry_Rampardos +.endif @ P_FAMILY_CRANIDOS +.if P_FAMILY_SHIELDON == TRUE cry Cry_Shieldon cry Cry_Bastiodon +.endif @ P_FAMILY_SHIELDON +.if P_FAMILY_BURMY == TRUE cry Cry_Burmy cry Cry_Wormadam cry Cry_Mothim +.endif @ P_FAMILY_BURMY +.if P_FAMILY_COMBEE == TRUE cry Cry_Combee cry Cry_Vespiquen +.endif @ P_FAMILY_COMBEE +.if P_FAMILY_PACHIRISU == TRUE cry Cry_Pachirisu +.endif @ P_FAMILY_PACHIRISU +.if P_FAMILY_BUIZEL == TRUE cry Cry_Buizel cry Cry_Floatzel +.endif @ P_FAMILY_BUIZEL +.if P_FAMILY_CHERUBI == TRUE cry Cry_Cherubi cry Cry_Cherrim +.endif @ P_FAMILY_CHERUBI +.if P_FAMILY_SHELLOS == TRUE cry Cry_Shellos cry Cry_Gastrodon - cry Cry_Ambipom +.endif @ P_FAMILY_SHELLOS +.if P_FAMILY_DRIFLOON == TRUE cry Cry_Drifloon cry Cry_Drifblim +.endif @ P_FAMILY_DRIFLOON +.if P_FAMILY_BUNEARY == TRUE cry Cry_Buneary cry Cry_Lopunny - cry Cry_Mismagius - cry Cry_Honchkrow +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_LopunnyMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_BUNEARY +.if P_FAMILY_GLAMEOW == TRUE cry Cry_Glameow cry Cry_Purugly - cry Cry_Chingling +.endif @ P_FAMILY_GLAMEOW +.if P_FAMILY_STUNKY == TRUE cry Cry_Stunky cry Cry_Skuntank +.endif @ P_FAMILY_STUNKY +.if P_FAMILY_BRONZOR == TRUE cry Cry_Bronzor cry Cry_Bronzong - cry Cry_Bonsly - cry Cry_MimeJr - cry Cry_Happiny +.endif @ P_FAMILY_BRONZOR +.if P_FAMILY_CHATOT == TRUE cry Cry_Chatot +.endif @ P_FAMILY_CHATOT +.if P_FAMILY_SPIRITOMB == TRUE cry Cry_Spiritomb +.endif @ P_FAMILY_SPIRITOMB +.if P_FAMILY_GIBLE == TRUE cry Cry_Gible cry Cry_Gabite cry Cry_Garchomp - cry Cry_Munchlax +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_GarchompMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_GIBLE +.if P_FAMILY_RIOLU == TRUE cry Cry_Riolu cry Cry_Lucario +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_LucarioMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_RIOLU +.if P_FAMILY_HIPPOPOTAS == TRUE cry Cry_Hippopotas cry Cry_Hippowdon +.endif @ P_FAMILY_HIPPOPOTAS +.if P_FAMILY_SKORUPI == TRUE cry Cry_Skorupi cry Cry_Drapion +.endif @ P_FAMILY_SKORUPI +.if P_FAMILY_CROAGUNK == TRUE cry Cry_Croagunk cry Cry_Toxicroak +.endif @ P_FAMILY_CROAGUNK +.if P_FAMILY_CARNIVINE == TRUE cry Cry_Carnivine +.endif @ P_FAMILY_CARNIVINE +.if P_FAMILY_FINNEON == TRUE cry Cry_Finneon cry Cry_Lumineon - cry Cry_Mantyke +.endif @ P_FAMILY_FINNEON +.if P_FAMILY_SNOVER == TRUE cry Cry_Snover cry Cry_Abomasnow - cry Cry_Weavile - cry Cry_Magnezone - cry Cry_Lickilicky - cry Cry_Rhyperior - cry Cry_Tangrowth - cry Cry_Electivire - cry Cry_Magmortar - cry Cry_Togekiss - cry Cry_Yanmega - cry Cry_Leafeon - cry Cry_Glaceon - cry Cry_Gliscor - cry Cry_Mamoswine - cry Cry_PorygonZ - cry Cry_Gallade - cry Cry_Probopass - cry Cry_Dusknoir - cry Cry_Froslass +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_AbomasnowMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_SNOVER +.if P_FAMILY_ROTOM == TRUE cry Cry_Rotom +.endif @ P_FAMILY_ROTOM +.if P_FAMILY_UXIE == TRUE cry Cry_Uxie +.endif @ P_FAMILY_UXIE +.if P_FAMILY_MESPRIT == TRUE cry Cry_Mesprit +.endif @ P_FAMILY_MESPRIT +.if P_FAMILY_AZELF == TRUE cry Cry_Azelf +.endif @ P_FAMILY_AZELF +.if P_FAMILY_DIALGA == TRUE cry Cry_Dialga +.endif @ P_FAMILY_DIALGA +.if P_FAMILY_PALKIA == TRUE cry Cry_Palkia +.endif @ P_FAMILY_PALKIA +.if P_FAMILY_HEATRAN == TRUE cry Cry_Heatran +.endif @ P_FAMILY_HEATRAN +.if P_FAMILY_REGIGIGAS == TRUE cry Cry_Regigigas +.endif @ P_FAMILY_REGIGIGAS +.if P_FAMILY_GIRATINA == TRUE cry Cry_Giratina +.endif @ P_FAMILY_GIRATINA +.if P_FAMILY_CRESSELIA == TRUE cry Cry_Cresselia +.endif @ P_FAMILY_CRESSELIA +.if P_FAMILY_MANAPHY == TRUE cry Cry_Phione cry Cry_Manaphy +.endif @ P_FAMILY_MANAPHY +.if P_FAMILY_DARKRAI == TRUE cry Cry_Darkrai - cry Cry_Shaymin +.endif @ P_FAMILY_DARKRAI +.if P_FAMILY_SHAYMIN == TRUE + cry Cry_ShayminLand + cry Cry_ShayminSky +.endif @ P_FAMILY_SHAYMIN +.if P_FAMILY_ARCEUS == TRUE cry Cry_Arceus -.else - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown -.endif -.if P_GEN_5_POKEMON == TRUE +.endif @ P_FAMILY_ARCEUS +.if P_FAMILY_VICTINI == TRUE cry Cry_Victini +.endif @ P_FAMILY_VICTINI +.if P_FAMILY_SNIVY == TRUE cry Cry_Snivy cry Cry_Servine cry Cry_Serperior +.endif @ P_FAMILY_SNIVY +.if P_FAMILY_TEPIG == TRUE cry Cry_Tepig cry Cry_Pignite cry Cry_Emboar +.endif @ P_FAMILY_TEPIG +.if P_FAMILY_OSHAWOTT == TRUE cry Cry_Oshawott cry Cry_Dewott cry Cry_Samurott +.endif @ P_FAMILY_OSHAWOTT +.if P_FAMILY_PATRAT == TRUE cry Cry_Patrat cry Cry_Watchog +.endif @ P_FAMILY_PATRAT +.if P_FAMILY_LILLIPUP == TRUE cry Cry_Lillipup cry Cry_Herdier cry Cry_Stoutland +.endif @ P_FAMILY_LILLIPUP +.if P_FAMILY_PURRLOIN == TRUE cry Cry_Purrloin cry Cry_Liepard +.endif @ P_FAMILY_PURRLOIN +.if P_FAMILY_PANSAGE == TRUE cry Cry_Pansage cry Cry_Simisage +.endif @ P_FAMILY_PANSAGE +.if P_FAMILY_PANSEAR == TRUE cry Cry_Pansear cry Cry_Simisear +.endif @ P_FAMILY_PANSEAR +.if P_FAMILY_PANPOUR == TRUE cry Cry_Panpour cry Cry_Simipour +.endif @ P_FAMILY_PANPOUR +.if P_FAMILY_MUNNA == TRUE cry Cry_Munna cry Cry_Musharna +.endif @ P_FAMILY_MUNNA +.if P_FAMILY_PIDOVE == TRUE cry Cry_Pidove cry Cry_Tranquill cry Cry_Unfezant +.endif @ P_FAMILY_PIDOVE +.if P_FAMILY_BLITZLE == TRUE cry Cry_Blitzle cry Cry_Zebstrika +.endif @ P_FAMILY_BLITZLE +.if P_FAMILY_ROGGENROLA == TRUE cry Cry_Roggenrola cry Cry_Boldore cry Cry_Gigalith +.endif @ P_FAMILY_ROGGENROLA +.if P_FAMILY_WOOBAT == TRUE cry Cry_Woobat cry Cry_Swoobat +.endif @ P_FAMILY_WOOBAT +.if P_FAMILY_DRILBUR == TRUE cry Cry_Drilbur cry Cry_Excadrill +.endif @ P_FAMILY_DRILBUR +.if P_FAMILY_AUDINO == TRUE cry Cry_Audino +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_AudinoMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_AUDINO +.if P_FAMILY_TIMBURR == TRUE cry Cry_Timburr cry Cry_Gurdurr cry Cry_Conkeldurr +.endif @ P_FAMILY_TIMBURR +.if P_FAMILY_TYMPOLE == TRUE cry Cry_Tympole cry Cry_Palpitoad cry Cry_Seismitoad +.endif @ P_FAMILY_TYMPOLE +.if P_FAMILY_THROH == TRUE cry Cry_Throh +.endif @ P_FAMILY_THROH +.if P_FAMILY_SAWK == TRUE cry Cry_Sawk +.endif @ P_FAMILY_SAWK +.if P_FAMILY_SEWADDLE == TRUE cry Cry_Sewaddle cry Cry_Swadloon cry Cry_Leavanny +.endif @ P_FAMILY_SEWADDLE +.if P_FAMILY_VENIPEDE == TRUE cry Cry_Venipede cry Cry_Whirlipede cry Cry_Scolipede +.endif @ P_FAMILY_VENIPEDE +.if P_FAMILY_COTTONEE == TRUE cry Cry_Cottonee cry Cry_Whimsicott +.endif @ P_FAMILY_COTTONEE +.if P_FAMILY_PETILIL == TRUE cry Cry_Petilil cry Cry_Lilligant +.endif @ P_FAMILY_PETILIL +.if P_FAMILY_BASCULIN == TRUE cry Cry_Basculin +.if P_HISUIAN_FORMS == TRUE + cry Cry_Basculegion +.endif @ P_HISUIAN_FORMS +.endif @ P_FAMILY_BASCULIN +.if P_FAMILY_SANDILE == TRUE cry Cry_Sandile cry Cry_Krokorok cry Cry_Krookodile +.endif @ P_FAMILY_SANDILE +.if P_FAMILY_DARUMAKA == TRUE cry Cry_Darumaka cry Cry_Darmanitan +.endif @ P_FAMILY_DARUMAKA +.if P_FAMILY_MARACTUS == TRUE cry Cry_Maractus +.endif @ P_FAMILY_MARACTUS +.if P_FAMILY_DWEBBLE == TRUE cry Cry_Dwebble cry Cry_Crustle +.endif @ P_FAMILY_DWEBBLE +.if P_FAMILY_SCRAGGY == TRUE cry Cry_Scraggy cry Cry_Scrafty +.endif @ P_FAMILY_SCRAGGY +.if P_FAMILY_SIGILYPH == TRUE cry Cry_Sigilyph +.endif @ P_FAMILY_SIGILYPH +.if P_FAMILY_YAMASK == TRUE cry Cry_Yamask cry Cry_Cofagrigus +.if P_GALARIAN_FORMS == TRUE + cry Cry_Runerigus +.endif @ P_GALARIAN_FORMS +.endif @ P_FAMILY_YAMASK +.if P_FAMILY_TIRTOUGA == TRUE cry Cry_Tirtouga cry Cry_Carracosta +.endif @ P_FAMILY_TIRTOUGA +.if P_FAMILY_ARCHEN == TRUE cry Cry_Archen cry Cry_Archeops +.endif @ P_FAMILY_ARCHEN +.if P_FAMILY_TRUBBISH == TRUE cry Cry_Trubbish cry Cry_Garbodor +.endif @ P_FAMILY_TRUBBISH +.if P_FAMILY_ZORUA == TRUE cry Cry_Zorua cry Cry_Zoroark +.endif @ P_FAMILY_ZORUA +.if P_FAMILY_MINCCINO == TRUE cry Cry_Minccino cry Cry_Cinccino +.endif @ P_FAMILY_MINCCINO +.if P_FAMILY_GOTHITA == TRUE cry Cry_Gothita cry Cry_Gothorita cry Cry_Gothitelle +.endif @ P_FAMILY_GOTHITA +.if P_FAMILY_SOLOSIS == TRUE cry Cry_Solosis cry Cry_Duosion cry Cry_Reuniclus +.endif @ P_FAMILY_SOLOSIS +.if P_FAMILY_DUCKLETT == TRUE cry Cry_Ducklett cry Cry_Swanna +.endif @ P_FAMILY_DUCKLETT +.if P_FAMILY_VANILLITE == TRUE cry Cry_Vanillite cry Cry_Vanillish cry Cry_Vanilluxe +.endif @ P_FAMILY_VANILLITE +.if P_FAMILY_DEERLING == TRUE cry Cry_Deerling cry Cry_Sawsbuck +.endif @ P_FAMILY_DEERLING +.if P_FAMILY_EMOLGA == TRUE cry Cry_Emolga +.endif @ P_FAMILY_EMOLGA +.if P_FAMILY_KARRABLAST == TRUE cry Cry_Karrablast cry Cry_Escavalier +.endif @ P_FAMILY_KARRABLAST +.if P_FAMILY_FOONGUS == TRUE cry Cry_Foongus cry Cry_Amoonguss +.endif @ P_FAMILY_FOONGUS +.if P_FAMILY_FRILLISH == TRUE cry Cry_Frillish cry Cry_Jellicent +.endif @ P_FAMILY_FRILLISH +.if P_FAMILY_ALOMOMOLA == TRUE cry Cry_Alomomola +.endif @ P_FAMILY_ALOMOMOLA +.if P_FAMILY_JOLTIK == TRUE cry Cry_Joltik cry Cry_Galvantula +.endif @ P_FAMILY_JOLTIK +.if P_FAMILY_FERROSEED == TRUE cry Cry_Ferroseed cry Cry_Ferrothorn +.endif @ P_FAMILY_FERROSEED +.if P_FAMILY_KLINK == TRUE cry Cry_Klink cry Cry_Klang cry Cry_Klinklang +.endif @ P_FAMILY_KLINK +.if P_FAMILY_TYNAMO == TRUE cry Cry_Tynamo cry Cry_Eelektrik cry Cry_Eelektross +.endif @ P_FAMILY_TYNAMO +.if P_FAMILY_ELGYEM == TRUE cry Cry_Elgyem cry Cry_Beheeyem +.endif @ P_FAMILY_ELGYEM +.if P_FAMILY_LITWICK == TRUE cry Cry_Litwick cry Cry_Lampent cry Cry_Chandelure +.endif @ P_FAMILY_LITWICK +.if P_FAMILY_AXEW == TRUE cry Cry_Axew cry Cry_Fraxure cry Cry_Haxorus +.endif @ P_FAMILY_AXEW +.if P_FAMILY_CUBCHOO == TRUE cry Cry_Cubchoo cry Cry_Beartic +.endif @ P_FAMILY_CUBCHOO +.if P_FAMILY_CRYOGONAL == TRUE cry Cry_Cryogonal +.endif @ P_FAMILY_CRYOGONAL +.if P_FAMILY_SHELMET == TRUE cry Cry_Shelmet cry Cry_Accelgor +.endif @ P_FAMILY_SHELMET +.if P_FAMILY_STUNFISK == TRUE cry Cry_Stunfisk +.endif @ P_FAMILY_STUNFISK +.if P_FAMILY_MIENFOO == TRUE cry Cry_Mienfoo cry Cry_Mienshao +.endif @ P_FAMILY_MIENFOO +.if P_FAMILY_DRUDDIGON == TRUE cry Cry_Druddigon +.endif @ P_FAMILY_DRUDDIGON +.if P_FAMILY_GOLETT == TRUE cry Cry_Golett cry Cry_Golurk +.endif @ P_FAMILY_GOLETT +.if P_FAMILY_PAWNIARD == TRUE cry Cry_Pawniard cry Cry_Bisharp +.if P_GEN_9_CROSS_EVOS == TRUE + cry Cry_Kingambit +.endif @ P_GEN_9_CROSS_EVOS +.endif @ P_FAMILY_PAWNIARD +.if P_FAMILY_BOUFFALANT == TRUE cry Cry_Bouffalant +.endif @ P_FAMILY_BOUFFALANT +.if P_FAMILY_RUFFLET == TRUE cry Cry_Rufflet cry Cry_Braviary +.endif @ P_FAMILY_RUFFLET +.if P_FAMILY_VULLABY == TRUE cry Cry_Vullaby cry Cry_Mandibuzz +.endif @ P_FAMILY_VULLABY +.if P_FAMILY_HEATMOR == TRUE cry Cry_Heatmor +.endif @ P_FAMILY_HEATMOR +.if P_FAMILY_DURANT == TRUE cry Cry_Durant +.endif @ P_FAMILY_DURANT +.if P_FAMILY_DEINO == TRUE cry Cry_Deino cry Cry_Zweilous cry Cry_Hydreigon +.endif @ P_FAMILY_DEINO +.if P_FAMILY_LARVESTA == TRUE cry Cry_Larvesta cry Cry_Volcarona +.endif @ P_FAMILY_LARVESTA +.if P_FAMILY_COBALION == TRUE cry Cry_Cobalion +.endif @ P_FAMILY_COBALION +.if P_FAMILY_TERRAKION == TRUE cry Cry_Terrakion +.endif @ P_FAMILY_TERRAKION +.if P_FAMILY_VIRIZION == TRUE cry Cry_Virizion - cry Cry_Tornadus - cry Cry_Thundurus +.endif @ P_FAMILY_VIRIZION +.if P_FAMILY_TORNADUS == TRUE + cry Cry_TornadusIncarnate + cry Cry_TornadusTherian +.endif @ P_FAMILY_TORNADUS +.if P_FAMILY_THUNDURUS == TRUE + cry Cry_ThundurusIncarnate + cry Cry_ThundurusTherian +.endif @ P_FAMILY_THUNDURUS +.if P_FAMILY_RESHIRAM == TRUE cry Cry_Reshiram +.endif @ P_FAMILY_RESHIRAM +.if P_FAMILY_ZEKROM == TRUE cry Cry_Zekrom - cry Cry_Landorus +.endif @ P_FAMILY_ZEKROM +.if P_FAMILY_LANDORUS == TRUE + cry Cry_LandorusIncarnate + cry Cry_LandorusTherian +.endif @ P_FAMILY_LANDORUS +.if P_FAMILY_KYUREM == TRUE cry Cry_Kyurem +.if P_FUSION_FORMS == TRUE + cry Cry_KyuremWhite + cry Cry_KyuremBlack +.endif @ P_FUSION_FORMS +.endif @ P_FAMILY_KYUREM +.if P_FAMILY_KELDEO == TRUE cry Cry_Keldeo +.endif @ P_FAMILY_KELDEO +.if P_FAMILY_MELOETTA == TRUE cry Cry_Meloetta +.endif @ P_FAMILY_MELOETTA +.if P_FAMILY_GENESECT == TRUE cry Cry_Genesect -.else - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown -.endif -.if P_GEN_6_POKEMON == TRUE +.endif @ P_FAMILY_GENESECT +.if P_FAMILY_CHESPIN == TRUE cry Cry_Chespin cry Cry_Quilladin cry Cry_Chesnaught +.endif @ P_FAMILY_CHESPIN +.if P_FAMILY_FENNEKIN == TRUE cry Cry_Fennekin cry Cry_Braixen cry Cry_Delphox +.endif @ P_FAMILY_FENNEKIN +.if P_FAMILY_FROAKIE == TRUE cry Cry_Froakie cry Cry_Frogadier cry Cry_Greninja +.endif @ P_FAMILY_FROAKIE +.if P_FAMILY_BUNNELBY == TRUE cry Cry_Bunnelby cry Cry_Diggersby +.endif @ P_FAMILY_BUNNELBY +.if P_FAMILY_FLETCHLING == TRUE cry Cry_Fletchling cry Cry_Fletchinder cry Cry_Talonflame +.endif @ P_FAMILY_FLETCHLING +.if P_FAMILY_SCATTERBUG == TRUE cry Cry_Scatterbug cry Cry_Spewpa cry Cry_Vivillon +.endif @ P_FAMILY_SCATTERBUG +.if P_FAMILY_LITLEO == TRUE cry Cry_Litleo cry Cry_Pyroar +.endif @ P_FAMILY_LITLEO +.if P_FAMILY_FLABEBE == TRUE cry Cry_Flabebe cry Cry_Floette + cry Cry_FloetteEternalFlower cry Cry_Florges +.endif @ P_FAMILY_FLABEBE +.if P_FAMILY_SKIDDO == TRUE cry Cry_Skiddo cry Cry_Gogoat +.endif @ P_FAMILY_SKIDDO +.if P_FAMILY_PANCHAM == TRUE cry Cry_Pancham cry Cry_Pangoro +.endif @ P_FAMILY_PANCHAM +.if P_FAMILY_FURFROU == TRUE cry Cry_Furfrou +.endif @ P_FAMILY_FURFROU +.if P_FAMILY_ESPURR == TRUE cry Cry_Espurr cry Cry_Meowstic +.endif @ P_FAMILY_ESPURR +.if P_FAMILY_HONEDGE == TRUE cry Cry_Honedge cry Cry_Doublade cry Cry_Aegislash +.endif @ P_FAMILY_HONEDGE +.if P_FAMILY_SPRITZEE == TRUE cry Cry_Spritzee cry Cry_Aromatisse +.endif @ P_FAMILY_SPRITZEE +.if P_FAMILY_SWIRLIX == TRUE cry Cry_Swirlix cry Cry_Slurpuff +.endif @ P_FAMILY_SWIRLIX +.if P_FAMILY_INKAY == TRUE cry Cry_Inkay cry Cry_Malamar +.endif @ P_FAMILY_INKAY +.if P_FAMILY_BINACLE == TRUE cry Cry_Binacle cry Cry_Barbaracle +.endif @ P_FAMILY_BINACLE +.if P_FAMILY_SKRELP == TRUE cry Cry_Skrelp cry Cry_Dragalge +.endif @ P_FAMILY_SKRELP +.if P_FAMILY_CLAUNCHER == TRUE cry Cry_Clauncher cry Cry_Clawitzer +.endif @ P_FAMILY_CLAUNCHER +.if P_FAMILY_HELIOPTILE == TRUE cry Cry_Helioptile cry Cry_Heliolisk +.endif @ P_FAMILY_HELIOPTILE +.if P_FAMILY_TYRUNT == TRUE cry Cry_Tyrunt cry Cry_Tyrantrum +.endif @ P_FAMILY_TYRUNT +.if P_FAMILY_AMAURA == TRUE cry Cry_Amaura cry Cry_Aurorus - cry Cry_Sylveon +.endif @ P_FAMILY_AMAURA +.if P_FAMILY_HAWLUCHA == TRUE cry Cry_Hawlucha +.endif @ P_FAMILY_HAWLUCHA +.if P_FAMILY_DEDENNE == TRUE cry Cry_Dedenne +.endif @ P_FAMILY_DEDENNE +.if P_FAMILY_CARBINK == TRUE cry Cry_Carbink +.endif @ P_FAMILY_CARBINK +.if P_FAMILY_GOOMY == TRUE cry Cry_Goomy cry Cry_Sliggoo cry Cry_Goodra - cry_uncomp Cry_Klefki +.endif @ P_FAMILY_GOOMY +.if P_FAMILY_KLEFKI == TRUE + cry Cry_Klefki +.endif @ P_FAMILY_KLEFKI +.if P_FAMILY_PHANTUMP == TRUE cry Cry_Phantump cry Cry_Trevenant +.endif @ P_FAMILY_PHANTUMP +.if P_FAMILY_PUMPKABOO == TRUE cry Cry_Pumpkaboo + cry Cry_PumpkabooSuper cry Cry_Gourgeist + cry Cry_GourgeistSuper +.endif @ P_FAMILY_PUMPKABOO +.if P_FAMILY_BERGMITE == TRUE cry Cry_Bergmite cry Cry_Avalugg +.endif @ P_FAMILY_BERGMITE +.if P_FAMILY_NOIBAT == TRUE cry Cry_Noibat cry Cry_Noivern +.endif @ P_FAMILY_NOIBAT +.if P_FAMILY_XERNEAS == TRUE cry Cry_Xerneas +.endif @ P_FAMILY_XERNEAS +.if P_FAMILY_YVELTAL == TRUE cry Cry_Yveltal - cry Cry_Zygarde +.endif @ P_FAMILY_YVELTAL +.if P_FAMILY_ZYGARDE == TRUE + cry Cry_Zygarde50 + cry Cry_Zygarde10 + cry Cry_ZygardeComplete +.endif @ P_FAMILY_ZYGARDE +.if P_FAMILY_DIANCIE == TRUE cry Cry_Diancie - cry Cry_Hoopa +.if P_MEGA_EVOLUTIONS == TRUE + cry Cry_DiancieMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_DIANCIE +.if P_FAMILY_HOOPA == TRUE + cry Cry_HoopaConfined + cry Cry_HoopaUnbound +.endif @ P_FAMILY_HOOPA +.if P_FAMILY_VOLCANION == TRUE cry Cry_Volcanion -.else - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown -.endif -.if P_GEN_7_POKEMON == TRUE +.endif @ P_FAMILY_VOLCANION +.if P_FAMILY_ROWLET == TRUE cry Cry_Rowlet cry Cry_Dartrix cry Cry_Decidueye +.endif @ P_FAMILY_ROWLET +.if P_FAMILY_LITTEN == TRUE cry Cry_Litten cry Cry_Torracat cry Cry_Incineroar +.endif @ P_FAMILY_LITTEN +.if P_FAMILY_POPPLIO == TRUE cry Cry_Popplio cry Cry_Brionne cry Cry_Primarina +.endif @ P_FAMILY_POPPLIO +.if P_FAMILY_PIKIPEK == TRUE cry Cry_Pikipek cry Cry_Trumbeak cry Cry_Toucannon +.endif @ P_FAMILY_PIKIPEK +.if P_FAMILY_YUNGOOS == TRUE cry Cry_Yungoos cry Cry_Gumshoos +.endif @ P_FAMILY_YUNGOOS +.if P_FAMILY_GRUBBIN == TRUE cry Cry_Grubbin cry Cry_Charjabug cry Cry_Vikavolt +.endif @ P_FAMILY_GRUBBIN +.if P_FAMILY_CRABRAWLER == TRUE cry Cry_Crabrawler cry Cry_Crabominable - cry Cry_Oricorio +.endif @ P_FAMILY_CRABRAWLER +.if P_FAMILY_ORICORIO == TRUE + cry Cry_OricorioBaile + cry Cry_OricorioPomPom + cry Cry_OricorioPau + cry Cry_OricorioSensu +.endif @ P_FAMILY_ORICORIO +.if P_FAMILY_CUTIEFLY == TRUE cry Cry_Cutiefly cry Cry_Ribombee +.endif @ P_FAMILY_CUTIEFLY +.if P_FAMILY_ROCKRUFF == TRUE cry Cry_Rockruff - cry Cry_Lycanroc - cry Cry_Wishiwashi + cry Cry_LycanrocMidday + cry Cry_LycanrocMidnight + cry Cry_LycanrocDusk +.endif @ P_FAMILY_ROCKRUFF +.if P_FAMILY_WISHIWASHI == TRUE + cry Cry_WishiwashiSolo + cry Cry_WishiwashiSchool +.endif @ P_FAMILY_WISHIWASHI +.if P_FAMILY_MAREANIE == TRUE cry Cry_Mareanie cry Cry_Toxapex +.endif @ P_FAMILY_MAREANIE +.if P_FAMILY_MUDBRAY == TRUE cry Cry_Mudbray cry Cry_Mudsdale +.endif @ P_FAMILY_MUDBRAY +.if P_FAMILY_DEWPIDER == TRUE cry Cry_Dewpider cry Cry_Araquanid +.endif @ P_FAMILY_DEWPIDER +.if P_FAMILY_FOMANTIS == TRUE cry Cry_Fomantis cry Cry_Lurantis +.endif @ P_FAMILY_FOMANTIS +.if P_FAMILY_MORELULL == TRUE cry Cry_Morelull cry Cry_Shiinotic +.endif @ P_FAMILY_MORELULL +.if P_FAMILY_SALANDIT == TRUE cry Cry_Salandit cry Cry_Salazzle +.endif @ P_FAMILY_SALANDIT +.if P_FAMILY_STUFFUL == TRUE cry Cry_Stufful cry Cry_Bewear +.endif @ P_FAMILY_STUFFUL +.if P_FAMILY_BOUNSWEET == TRUE cry Cry_Bounsweet cry Cry_Steenee cry Cry_Tsareena +.endif @ P_FAMILY_BOUNSWEET +.if P_FAMILY_COMFEY == TRUE cry Cry_Comfey +.endif @ P_FAMILY_COMFEY +.if P_FAMILY_ORANGURU == TRUE cry Cry_Oranguru +.endif @ P_FAMILY_ORANGURU +.if P_FAMILY_PASSIMIAN == TRUE cry Cry_Passimian +.endif @ P_FAMILY_PASSIMIAN +.if P_FAMILY_WIMPOD == TRUE cry Cry_Wimpod cry Cry_Golisopod +.endif @ P_FAMILY_WIMPOD +.if P_FAMILY_SANDYGAST == TRUE cry Cry_Sandygast cry Cry_Palossand +.endif @ P_FAMILY_SANDYGAST +.if P_FAMILY_PYUKUMUKU == TRUE cry Cry_Pyukumuku +.endif @ P_FAMILY_PYUKUMUKU +.if P_FAMILY_TYPE_NULL == TRUE cry Cry_TypeNull cry Cry_Silvally +.endif @ P_FAMILY_TYPE_NULL +.if P_FAMILY_MINIOR == TRUE cry Cry_Minior +.endif @ P_FAMILY_MINIOR +.if P_FAMILY_KOMALA == TRUE cry Cry_Komala +.endif @ P_FAMILY_KOMALA +.if P_FAMILY_TURTONATOR == TRUE cry Cry_Turtonator +.endif @ P_FAMILY_TURTONATOR +.if P_FAMILY_TOGEDEMARU == TRUE cry Cry_Togedemaru +.endif @ P_FAMILY_TOGEDEMARU +.if P_FAMILY_MIMIKYU == TRUE cry Cry_Mimikyu +.endif @ P_FAMILY_MIMIKYU +.if P_FAMILY_BRUXISH == TRUE cry Cry_Bruxish +.endif @ P_FAMILY_BRUXISH +.if P_FAMILY_DRAMPA == TRUE cry Cry_Drampa +.endif @ P_FAMILY_DRAMPA +.if P_FAMILY_DHELMISE == TRUE cry Cry_Dhelmise +.endif @ P_FAMILY_DHELMISE +.if P_FAMILY_JANGMO_O == TRUE cry Cry_JangmoO cry Cry_HakamoO cry Cry_KommoO +.endif @ P_FAMILY_JANGMO_O +.if P_FAMILY_TAPU_KOKO == TRUE cry Cry_TapuKoko +.endif @ P_FAMILY_TAPU_KOKO +.if P_FAMILY_TAPU_LELE == TRUE cry Cry_TapuLele +.endif @ P_FAMILY_TAPU_LELE +.if P_FAMILY_TAPU_BULU == TRUE cry Cry_TapuBulu +.endif @ P_FAMILY_TAPU_BULU +.if P_FAMILY_TAPU_FINI == TRUE cry Cry_TapuFini +.endif @ P_FAMILY_TAPU_FINI +.if P_FAMILY_COSMOG == TRUE cry Cry_Cosmog cry Cry_Cosmoem cry Cry_Solgaleo cry Cry_Lunala +.endif @ P_FAMILY_COSMOG +.if P_FAMILY_NIHILEGO == TRUE cry Cry_Nihilego +.endif @ P_FAMILY_NIHILEGO +.if P_FAMILY_BUZZWOLE == TRUE cry Cry_Buzzwole +.endif @ P_FAMILY_BUZZWOLE +.if P_FAMILY_PHEROMOSA == TRUE cry Cry_Pheromosa +.endif @ P_FAMILY_PHEROMOSA +.if P_FAMILY_XURKITREE == TRUE cry Cry_Xurkitree +.endif @ P_FAMILY_XURKITREE +.if P_FAMILY_CELESTEELA == TRUE cry Cry_Celesteela +.endif @ P_FAMILY_CELESTEELA +.if P_FAMILY_KARTANA == TRUE cry Cry_Kartana +.endif @ P_FAMILY_KARTANA +.if P_FAMILY_GUZZLORD == TRUE cry Cry_Guzzlord +.endif @ P_FAMILY_GUZZLORD +.if P_FAMILY_NECROZMA == TRUE cry Cry_Necrozma +.if P_FUSION_FORMS == TRUE + cry Cry_NecrozmaDuskMane + cry Cry_NecrozmaDawnWings +.if P_ULTRA_BURST_FORMS == TRUE + cry Cry_NecrozmaUltra +.endif @ P_ULTRA_BURST_FORMS +.endif @ P_FUSION_FORMS +.endif @ P_FAMILY_NECROZMA +.if P_FAMILY_MAGEARNA == TRUE cry Cry_Magearna +.endif @ P_FAMILY_MAGEARNA +.if P_FAMILY_MARSHADOW == TRUE cry Cry_Marshadow +.endif @ P_FAMILY_MARSHADOW +.if P_FAMILY_POIPOLE == TRUE cry Cry_Poipole cry Cry_Naganadel +.endif @ P_FAMILY_POIPOLE +.if P_FAMILY_STAKATAKA == TRUE cry Cry_Stakataka +.endif @ P_FAMILY_STAKATAKA +.if P_FAMILY_BLACEPHALON == TRUE cry Cry_Blacephalon +.endif @ P_FAMILY_BLACEPHALON +.if P_FAMILY_ZERAORA == TRUE cry Cry_Zeraora +.endif @ P_FAMILY_ZERAORA +.if P_FAMILY_MELTAN == TRUE cry Cry_Meltan cry Cry_Melmetal -.else - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown -.endif -.if P_GEN_8_POKEMON == TRUE +.endif @ P_FAMILY_MELTAN +.if P_FAMILY_GROOKEY == TRUE cry Cry_Grookey cry Cry_Thwackey cry Cry_Rillaboom +.endif @ P_FAMILY_GROOKEY +.if P_FAMILY_SCORBUNNY == TRUE cry Cry_Scorbunny cry Cry_Raboot cry Cry_Cinderace +.endif @ P_FAMILY_SCORBUNNY +.if P_FAMILY_SOBBLE == TRUE cry Cry_Sobble cry Cry_Drizzile cry Cry_Inteleon +.endif @ P_FAMILY_SOBBLE +.if P_FAMILY_SKWOVET == TRUE cry Cry_Skwovet cry Cry_Greedent +.endif @ P_FAMILY_SKWOVET +.if P_FAMILY_ROOKIDEE == TRUE cry Cry_Rookidee cry Cry_Corvisquire cry Cry_Corviknight +.endif @ P_FAMILY_ROOKIDEE +.if P_FAMILY_BLIPBUG == TRUE cry Cry_Blipbug cry Cry_Dottler cry Cry_Orbeetle +.endif @ P_FAMILY_BLIPBUG +.if P_FAMILY_NICKIT == TRUE cry Cry_Nickit cry Cry_Thievul +.endif @ P_FAMILY_NICKIT +.if P_FAMILY_GOSSIFLEUR == TRUE cry Cry_Gossifleur cry Cry_Eldegoss +.endif @ P_FAMILY_GOSSIFLEUR +.if P_FAMILY_WOOLOO == TRUE cry Cry_Wooloo cry Cry_Dubwool +.endif @ P_FAMILY_WOOLOO +.if P_FAMILY_CHEWTLE == TRUE cry Cry_Chewtle cry Cry_Drednaw +.endif @ P_FAMILY_CHEWTLE +.if P_FAMILY_YAMPER == TRUE cry Cry_Yamper cry Cry_Boltund +.endif @ P_FAMILY_YAMPER +.if P_FAMILY_ROLYCOLY == TRUE cry Cry_Rolycoly cry Cry_Carkol cry Cry_Coalossal +.endif @ P_FAMILY_ROLYCOLY +.if P_FAMILY_APPLIN == TRUE cry Cry_Applin cry Cry_Flapple cry Cry_Appletun +.if P_GEN_9_CROSS_EVOS == TRUE + cry Cry_Dipplin +.endif @ P_GEN_9_CROSS_EVOS +.endif @ P_FAMILY_APPLIN +.if P_FAMILY_SILICOBRA == TRUE cry Cry_Silicobra cry Cry_Sandaconda +.endif @ P_FAMILY_SILICOBRA +.if P_FAMILY_CRAMORANT == TRUE cry Cry_Cramorant +.endif @ P_FAMILY_CRAMORANT +.if P_FAMILY_ARROKUDA == TRUE cry Cry_Arrokuda cry Cry_Barraskewda +.endif @ P_FAMILY_ARROKUDA +.if P_FAMILY_TOXEL == TRUE cry Cry_Toxel - cry Cry_Toxtricity + cry Cry_ToxtricityAmped + cry Cry_ToxtricityLowKey +.endif @ P_FAMILY_TOXEL +.if P_FAMILY_SIZZLIPEDE == TRUE cry Cry_Sizzlipede cry Cry_Centiskorch +.endif @ P_FAMILY_SIZZLIPEDE +.if P_FAMILY_CLOBBOPUS == TRUE cry Cry_Clobbopus cry Cry_Grapploct +.endif @ P_FAMILY_CLOBBOPUS +.if P_FAMILY_SINISTEA == TRUE cry Cry_Sinistea cry Cry_Polteageist +.endif @ P_FAMILY_SINISTEA +.if P_FAMILY_HATENNA == TRUE cry Cry_Hatenna cry Cry_Hattrem cry Cry_Hatterene +.endif @ P_FAMILY_HATENNA +.if P_FAMILY_IMPIDIMP == TRUE cry Cry_Impidimp cry Cry_Morgrem cry Cry_Grimmsnarl - cry Cry_Obstagoon - cry Cry_Perrserker - cry Cry_Cursola - cry Cry_Sirfetchd - cry Cry_MrRime - cry Cry_Runerigus +.endif @ P_FAMILY_IMPIDIMP +.if P_FAMILY_MILCERY == TRUE cry Cry_Milcery cry Cry_Alcremie +.endif @ P_FAMILY_MILCERY +.if P_FAMILY_FALINKS == TRUE cry Cry_Falinks +.endif @ P_FAMILY_FALINKS +.if P_FAMILY_PINCURCHIN == TRUE cry Cry_Pincurchin +.endif @ P_FAMILY_PINCURCHIN +.if P_FAMILY_SNOM == TRUE cry Cry_Snom cry Cry_Frosmoth +.endif @ P_FAMILY_SNOM +.if P_FAMILY_STONJOURNER == TRUE cry Cry_Stonjourner - cry Cry_Eiscue - cry Cry_Indeedee - cry Cry_Morpeko +.endif @ P_FAMILY_STONJOURNER +.if P_FAMILY_EISCUE == TRUE + cry Cry_EiscueIceFace + cry Cry_EiscueNoiceFace +.endif @ P_FAMILY_EISCUE +.if P_FAMILY_INDEEDEE == TRUE + cry Cry_IndeedeeMale + cry Cry_IndeedeeFemale +.endif @ P_FAMILY_INDEEDEE +.if P_FAMILY_MORPEKO == TRUE + cry Cry_MorpekoFullBelly + cry Cry_MorpekoHangry +.endif @ P_FAMILY_MORPEKO +.if P_FAMILY_CUFANT == TRUE cry Cry_Cufant cry Cry_Copperajah +.endif @ P_FAMILY_CUFANT +.if P_FAMILY_DRACOZOLT == TRUE cry Cry_Dracozolt +.endif @ P_FAMILY_DRACOZOLT +.if P_FAMILY_ARCTOZOLT == TRUE cry Cry_Arctozolt +.endif @ P_FAMILY_ARCTOZOLT +.if P_FAMILY_DRACOVISH == TRUE cry Cry_Dracovish +.endif @ P_FAMILY_DRACOVISH +.if P_FAMILY_ARCTOVISH == TRUE cry Cry_Arctovish +.endif @ P_FAMILY_ARCTOVISH +.if P_FAMILY_DURALUDON == TRUE cry Cry_Duraludon +.endif @ P_FAMILY_DURALUDON +.if P_FAMILY_DREEPY == TRUE cry Cry_Dreepy cry Cry_Drakloak cry Cry_Dragapult - cry Cry_Zacian - cry Cry_Zamazenta +.endif @ P_FAMILY_DREEPY +.if P_FAMILY_ZACIAN == TRUE + cry Cry_ZacianHeroOfManyBattles + cry Cry_ZacianCrownedSword +.endif @ P_FAMILY_ZACIAN +.if P_FAMILY_ZAMAZENTA == TRUE + cry Cry_ZamazentaHeroOfManyBattles + cry Cry_ZamazentaCrownedShield +.endif @ P_FAMILY_ZAMAZENTA +.if P_FAMILY_ETERNATUS == TRUE cry Cry_Eternatus + cry Cry_EternatusEternamax +.endif @ P_FAMILY_ETERNATUS +.if P_FAMILY_KUBFU == TRUE cry Cry_Kubfu - cry Cry_Urshifu + cry Cry_UrshifuSingleStrikeStyle + cry Cry_UrshifuRapidStrikeStyle +.endif @ P_FAMILY_KUBFU +.if P_FAMILY_ZARUDE == TRUE cry Cry_Zarude +.endif @ P_FAMILY_ZARUDE +.if P_FAMILY_REGIELEKI == TRUE cry Cry_Regieleki +.endif @ P_FAMILY_REGIELEKI +.if P_FAMILY_REGIDRAGO == TRUE cry Cry_Regidrago +.endif @ P_FAMILY_REGIDRAGO +.if P_FAMILY_GLASTRIER == TRUE cry Cry_Glastrier +.endif @ P_FAMILY_GLASTRIER +.if P_FAMILY_SPECTRIER == TRUE cry Cry_Spectrier +.endif @ P_FAMILY_SPECTRIER +.if P_FAMILY_CALYREX == TRUE cry Cry_Calyrex - cry Cry_Wyrdeer - cry Cry_Kleavor - cry Cry_Ursaluna - cry Cry_Basculegion - cry Cry_Sneasler - cry Cry_Overqwil - cry Cry_Enamorus -.else - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown -.endif - @ Megas - cry Cry_VenusaurMega - cry Cry_CharizardMegaX - cry Cry_CharizardMegaY - cry Cry_BlastoiseMega - cry Cry_BeedrillMega - cry Cry_PidgeotMega - cry Cry_AlakazamMega - cry Cry_SlowbroMega - cry Cry_GengarMega - cry Cry_KangaskhanMega - cry Cry_PinsirMega - cry Cry_GyaradosMega - cry Cry_AerodactylMega - cry Cry_MewtwoMegaX - cry Cry_MewtwoMegaY - cry Cry_AmpharosMega - cry Cry_SteelixMega - cry Cry_ScizorMega - cry Cry_HeracrossMega - cry Cry_HoundoomMega - cry Cry_TyranitarMega - cry Cry_SceptileMega - cry Cry_BlazikenMega - cry Cry_SwampertMega - cry Cry_GardevoirMega - cry Cry_SableyeMega - cry Cry_MawileMega - cry Cry_AggronMega - cry Cry_MedichamMega - cry Cry_ManectricMega - cry Cry_SharpedoMega - cry Cry_CameruptMega - cry Cry_AltariaMega - cry Cry_BanetteMega - cry Cry_AbsolMega - cry Cry_GlalieMega - cry Cry_SalamenceMega - cry Cry_MetagrossMega - cry Cry_LatiasMega - cry Cry_LatiosMega -.if P_GEN_4_POKEMON == TRUE - cry Cry_LopunnyMega - cry Cry_GarchompMega - cry Cry_LucarioMega - cry Cry_AbomasnowMega - cry Cry_GalladeMega -.else - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown -.endif -.if P_GEN_5_POKEMON == TRUE - cry Cry_AudinoMega -.else - cry Cry_Unown -.endif -.if P_GEN_6_POKEMON == TRUE - cry Cry_DiancieMega -.else - cry Cry_Unown -.endif - @ Special Mega + Primals - cry Cry_RayquazaMega - cry Cry_KyogrePrimal - cry Cry_GroudonPrimal - @ Alolan Forms - cry Cry_Rattata - cry Cry_Raticate - cry Cry_Raichu - cry Cry_Sandshrew - cry Cry_Sandslash - cry Cry_Vulpix - cry Cry_Ninetales - cry Cry_Diglett - cry Cry_Dugtrio - cry Cry_Meowth - cry Cry_Persian - cry Cry_Geodude - cry Cry_Graveler - cry Cry_Golem - cry Cry_Grimer - cry Cry_Muk - cry Cry_Exeggutor - cry Cry_Marowak - @ Galarian Forms - cry Cry_Meowth - cry Cry_Ponyta - cry Cry_Rapidash - cry Cry_SlowpokeGalarian - cry Cry_Slowbro - cry Cry_Farfetchd - cry Cry_Weezing - cry Cry_MrMime - cry Cry_Articuno - cry Cry_Zapdos - cry Cry_Moltres - cry Cry_Slowking - cry Cry_Corsola - cry Cry_Zigzagoon - cry Cry_Linoone -.if P_GEN_5_POKEMON == TRUE - cry Cry_Darumaka - cry Cry_Darmanitan - cry Cry_Yamask - cry Cry_Stunfisk -.else - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown -.endif - @ Hisuian Forms - cry Cry_Growlithe - cry Cry_Arcanine - cry Cry_Voltorb - cry Cry_Electrode - cry Cry_Typhlosion - cry Cry_Qwilfish - cry Cry_Sneasel -.if P_GEN_5_POKEMON == TRUE - cry Cry_Samurott - cry Cry_Lilligant - cry Cry_Zorua - cry Cry_Zoroark - cry Cry_Braviary -.else - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown -.endif -.if P_GEN_6_POKEMON == TRUE - cry Cry_Sliggoo - cry Cry_Goodra - cry Cry_Avalugg -.else - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown -.endif -.if P_GEN_7_POKEMON == TRUE - cry Cry_Decidueye -.else - cry Cry_Unown -.endif - @ Misc Forms - @ Cosplay Pikachu - cry Cry_Pikachu - cry Cry_Pikachu - cry Cry_Pikachu - cry Cry_Pikachu - cry Cry_Pikachu - cry Cry_Pikachu - @ Cap Pikachu - cry Cry_Pikachu - cry Cry_Pikachu - cry Cry_Pikachu - cry Cry_Pikachu - cry Cry_Pikachu - cry Cry_Pikachu - cry Cry_Pikachu - cry Cry_Pikachu - @ Pichu - cry Cry_Pichu - @ Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - @ Castform - cry Cry_Castform - cry Cry_Castform - cry Cry_Castform - @ Deoxys - cry Cry_Deoxys - cry Cry_Deoxys - cry Cry_Deoxys -.if P_GEN_4_POKEMON == TRUE - @ Burmy - cry Cry_Burmy - cry Cry_Burmy - @ Wormadam - cry Cry_Wormadam - cry Cry_Wormadam - @ Cherrim - cry Cry_Cherrim - @ Shellos - cry Cry_Shellos - @ Gastrodon - cry Cry_Gastrodon - @ Rotom - cry Cry_Rotom - cry Cry_Rotom - cry Cry_Rotom - cry Cry_Rotom - cry Cry_Rotom - @ Origin Forme - cry Cry_Dialga - cry Cry_Palkia - cry Cry_Giratina - @ Shaymin - cry Cry_ShayminSky - @ Arceus - cry Cry_Arceus - cry Cry_Arceus - cry Cry_Arceus - cry Cry_Arceus - cry Cry_Arceus - cry Cry_Arceus - cry Cry_Arceus - cry Cry_Arceus - cry Cry_Arceus - cry Cry_Arceus - cry Cry_Arceus - cry Cry_Arceus - cry Cry_Arceus - cry Cry_Arceus - cry Cry_Arceus - cry Cry_Arceus - cry Cry_Arceus -.else - @ Burmy - cry Cry_Unown - cry Cry_Unown - @ Wormadam - cry Cry_Unown - cry Cry_Unown - @ Cherrim - cry Cry_Unown - @ Shellos - cry Cry_Unown - @ Gastrodon - cry Cry_Unown - @ Rotom - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - @ Origin Forme - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - @ Shaymin - cry Cry_Unown - @ Arceus - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown -.endif -.if P_GEN_5_POKEMON == TRUE - @ Basculin - cry Cry_Basculin - cry Cry_Basculin - @ Darmanitan - cry Cry_Darmanitan - cry Cry_Darmanitan - @ Deerling - cry Cry_Deerling - cry Cry_Deerling - cry Cry_Deerling - @ Sawsbuck - cry Cry_Sawsbuck - cry Cry_Sawsbuck - cry Cry_Sawsbuck - @ Therian Forms - cry Cry_TornadusTherian - cry Cry_ThundurusTherian - cry Cry_LandorusTherian - cry Cry_EnamorusTherian - @ Kyurem - cry Cry_KyuremWhite - cry Cry_KyuremBlack - @ Keldeo - cry Cry_Keldeo - @ Meloetta - cry Cry_Meloetta - @ Genesect - cry Cry_Genesect - cry Cry_Genesect - cry Cry_Genesect - cry Cry_Genesect -.else - @ Basculin - cry Cry_Unown - cry Cry_Unown - @ Darmanitan - cry Cry_Unown - cry Cry_Unown - @ Deerling - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - @ Sawsbuck - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - @ Therian Forms - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - @ Kyurem - cry Cry_Unown - cry Cry_Unown - @ Keldeo - cry Cry_Unown - @ Meloetta - cry Cry_Unown - @ Genesect - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown -.endif -.if P_GEN_6_POKEMON == TRUE - @ Greninja - cry Cry_Greninja - cry Cry_Greninja - @ Vivillon - cry Cry_Vivillon - cry Cry_Vivillon - cry Cry_Vivillon - cry Cry_Vivillon - cry Cry_Vivillon - cry Cry_Vivillon - cry Cry_Vivillon - cry Cry_Vivillon - cry Cry_Vivillon - cry Cry_Vivillon - cry Cry_Vivillon - cry Cry_Vivillon - cry Cry_Vivillon - cry Cry_Vivillon - cry Cry_Vivillon - cry Cry_Vivillon - cry Cry_Vivillon - cry Cry_Vivillon - cry Cry_Vivillon - @ Flabébé - cry Cry_Flabebe - cry Cry_Flabebe - cry Cry_Flabebe - cry Cry_Flabebe - @ Floette - cry Cry_Floette - cry Cry_Floette - cry Cry_Floette - cry Cry_Floette - cry Cry_FloetteEternalFlower - @ Florges - cry Cry_Florges - cry Cry_Florges - cry Cry_Florges - cry Cry_Florges - @ Furfrou - cry Cry_Furfrou - cry Cry_Furfrou - cry Cry_Furfrou - cry Cry_Furfrou - cry Cry_Furfrou - cry Cry_Furfrou - cry Cry_Furfrou - cry Cry_Furfrou - cry Cry_Furfrou - @ Meowstic - cry Cry_Meowstic - @ Aegislash - cry Cry_Aegislash - @ Pumpkaboo - cry Cry_Pumpkaboo - cry Cry_Pumpkaboo - cry Cry_PumpkabooSuper - @ Gourgeist - cry Cry_Gourgeist - cry Cry_Gourgeist - cry Cry_GourgeistSuper - @ Xerneas - cry Cry_Xerneas - @ Zygarde - cry Cry_Zygarde10 - cry Cry_Zygarde10 - cry Cry_Zygarde - cry Cry_ZygardeComplete - @ Hoopa - cry Cry_HoopaUnbound -.else -@ Greninja - cry Cry_Unown - cry Cry_Unown - @ Vivillon - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - @ Flabébé - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - @ Floette - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - @ Florges - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - @ Furfrou - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - @ Meowstic - cry Cry_Unown - @ Aegislash - cry Cry_Unown - @ Pumpkaboo - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - @ Gourgeist - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - @ Xerneas - cry Cry_Unown - @ Zygarde - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - @ Hoopa - cry Cry_Unown -.endif -.if P_GEN_7_POKEMON == TRUE - @ Oricorio - cry Cry_OricorioPomPom - cry Cry_OricorioPau - cry Cry_OricorioSensu - @ Rockruff - cry Cry_Rockruff - @ Lycanroc - cry Cry_LycanrocMidnight - cry Cry_LycanrocDusk - @ Wishiwashi - cry Cry_WishiwashiSchool - @ Silvally - cry Cry_Silvally - cry Cry_Silvally - cry Cry_Silvally - cry Cry_Silvally - cry Cry_Silvally - cry Cry_Silvally - cry Cry_Silvally - cry Cry_Silvally - cry Cry_Silvally - cry Cry_Silvally - cry Cry_Silvally - cry Cry_Silvally - cry Cry_Silvally - cry Cry_Silvally - cry Cry_Silvally - cry Cry_Silvally - cry Cry_Silvally - @ Minior - cry Cry_Minior - cry Cry_Minior - cry Cry_Minior - cry Cry_Minior - cry Cry_Minior - cry Cry_Minior - cry Cry_Minior - cry Cry_Minior - cry Cry_Minior - cry Cry_Minior - cry Cry_Minior - cry Cry_Minior - cry Cry_Minior - @ Mimikyu - cry Cry_Mimikyu - @ Necrozma - cry Cry_NecrozmaDuskMane - cry Cry_NecrozmaDawnWings - cry Cry_NecrozmaUltra - @ Magearna - cry Cry_Magearna -.else - @ Oricorio - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - @ Rockruff - cry Cry_Unown - @ Lycanroc - cry Cry_Unown - cry Cry_Unown - @ Wishiwashi - cry Cry_Unown - @ Silvally - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - @ Minior - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - @ Mimikyu - cry Cry_Unown - @ Necrozma - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - @ Magearna - cry Cry_Unown -.endif -.if P_GEN_8_POKEMON == TRUE - @ Cramorant - cry Cry_Cramorant - cry Cry_Cramorant - @ Toxtricity - cry Cry_ToxtricityLowKey - @ Sinistea - cry Cry_Sinistea - @ Polteageist - cry Cry_Polteageist - @ Alcremie - cry Cry_Alcremie - cry Cry_Alcremie - cry Cry_Alcremie - cry Cry_Alcremie - cry Cry_Alcremie - cry Cry_Alcremie - cry Cry_Alcremie - cry Cry_Alcremie - @ Eiscue - cry Cry_EiscueNoiceFace - @ Indeedee - cry Cry_IndeedeeFemale - @ Morpeko - cry Cry_MorpekoHangry - @ Zacian - cry Cry_ZacianCrownedSword - @ Zamazenta - cry Cry_ZamazentaCrownedShield - @ Eternatus - cry Cry_EternatusEternamax - @ Urshifu - cry Cry_UrshifuRapidStrikeStyle - @ Zarude - cry Cry_Zarude - @ Calyrex - cry Cry_CalyrexIceRider - cry Cry_CalyrexShadowRider - @ Basculegion - cry Cry_Basculegion -.else - @ Cramorant - cry Cry_Unown - cry Cry_Unown - @ Toxtricity - cry Cry_Unown - @ Sinistea - cry Cry_Unown - @ Polteageist - cry Cry_Unown - @ Alcremie - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - @ Eiscue - cry Cry_Unown - @ Indeedee - cry Cry_Unown - @ Morpeko - cry Cry_Unown - @ Zacian - cry Cry_Unown - @ Zamazenta - cry Cry_Unown - @ Eternatus - cry Cry_Unown - @ Urshifu - cry Cry_Unown - @ Zarude - cry Cry_Unown - @ Calyrex - cry Cry_Unown - cry Cry_Unown - @ Basculegion - cry Cry_Unown -.endif -@ Gigantamax Forms - cry Cry_Venusaur - cry Cry_Charizard - cry Cry_Blastoise - cry Cry_Butterfree - cry Cry_Pikachu - cry Cry_Meowth - cry Cry_Machamp - cry Cry_Gengar - cry Cry_Kingler - cry Cry_Lapras - cry Cry_Eevee - cry Cry_Snorlax -.if P_GEN_5_POKEMON == TRUE - cry Cry_Garbodor -.else - cry Cry_Unown -.endif -.if P_GEN_7_POKEMON == TRUE - cry Cry_Melmetal -.else - cry Cry_Unown -.endif -.if P_GEN_8_POKEMON == TRUE - cry Cry_Rillaboom - cry Cry_Cinderace - cry Cry_Inteleon - cry Cry_Corviknight - cry Cry_Orbeetle - cry Cry_Drednaw - cry Cry_Coalossal - cry Cry_Flapple - cry Cry_Appletun - cry Cry_Sandaconda - cry Cry_Toxtricity - cry Cry_Centiskorch - cry Cry_Hatterene - cry Cry_Grimmsnarl - cry Cry_Alcremie - cry Cry_Copperajah - cry Cry_Duraludon - cry Cry_Urshifu - cry Cry_Urshifu -.else - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown - cry Cry_Unown -.endif - - .align 2 -gCryTable_Reverse:: - cry_reverse Cry_Bulbasaur - cry_reverse Cry_Ivysaur - cry_reverse Cry_Venusaur - cry_reverse Cry_Charmander - cry_reverse Cry_Charmeleon - cry_reverse Cry_Charizard - cry_reverse Cry_Squirtle - cry_reverse Cry_Wartortle - cry_reverse Cry_Blastoise - cry_reverse Cry_Caterpie - cry_reverse Cry_Metapod - cry_reverse Cry_Butterfree - cry_reverse Cry_Weedle - cry_reverse Cry_Kakuna - cry_reverse Cry_Beedrill - cry_reverse Cry_Pidgey - cry_reverse Cry_Pidgeotto - cry_reverse Cry_Pidgeot - cry_reverse Cry_Rattata - cry_reverse Cry_Raticate - cry_reverse Cry_Spearow - cry_reverse Cry_Fearow - cry_reverse Cry_Ekans - cry_reverse Cry_Arbok - cry_reverse Cry_Pikachu - cry_reverse Cry_Raichu - cry_reverse Cry_Sandshrew - cry_reverse Cry_Sandslash - cry_reverse Cry_NidoranF - cry_reverse Cry_Nidorina - cry_reverse Cry_Nidoqueen - cry_reverse Cry_NidoranM - cry_reverse Cry_Nidorino - cry_reverse Cry_Nidoking - cry_reverse Cry_Clefairy - cry_reverse Cry_Clefable - cry_reverse Cry_Vulpix - cry_reverse Cry_Ninetales - cry_reverse Cry_Jigglypuff - cry_reverse Cry_Wigglytuff - cry_reverse Cry_Zubat - cry_reverse Cry_Golbat - cry_reverse Cry_Oddish - cry_reverse Cry_Gloom - cry_reverse Cry_Vileplume - cry_reverse Cry_Paras - cry_reverse Cry_Parasect - cry_reverse Cry_Venonat - cry_reverse Cry_Venomoth - cry_reverse Cry_Diglett - cry_reverse Cry_Dugtrio - cry_reverse Cry_Meowth - cry_reverse Cry_Persian - cry_reverse Cry_Psyduck - cry_reverse Cry_Golduck - cry_reverse Cry_Mankey - cry_reverse Cry_Primeape - cry_reverse Cry_Growlithe - cry_reverse Cry_Arcanine - cry_reverse Cry_Poliwag - cry_reverse Cry_Poliwhirl - cry_reverse Cry_Poliwrath - cry_reverse Cry_Abra - cry_reverse Cry_Kadabra - cry_reverse Cry_Alakazam - cry_reverse Cry_Machop - cry_reverse Cry_Machoke - cry_reverse Cry_Machamp - cry_reverse Cry_Bellsprout - cry_reverse Cry_Weepinbell - cry_reverse Cry_Victreebel - cry_reverse Cry_Tentacool - cry_reverse Cry_Tentacruel - cry_reverse Cry_Geodude - cry_reverse Cry_Graveler - cry_reverse Cry_Golem - cry_reverse Cry_Ponyta - cry_reverse Cry_Rapidash - cry_reverse Cry_Slowpoke - cry_reverse Cry_Slowbro - cry_reverse Cry_Magnemite - cry_reverse Cry_Magneton - cry_reverse Cry_Farfetchd - cry_reverse Cry_Doduo - cry_reverse Cry_Dodrio - cry_reverse Cry_Seel - cry_reverse Cry_Dewgong - cry_reverse Cry_Grimer - cry_reverse Cry_Muk - cry_reverse Cry_Shellder - cry_reverse Cry_Cloyster - cry_reverse Cry_Gastly - cry_reverse Cry_Haunter - cry_reverse Cry_Gengar - cry_reverse Cry_Onix - cry_reverse Cry_Drowzee - cry_reverse Cry_Hypno - cry_reverse Cry_Krabby - cry_reverse Cry_Kingler - cry_reverse Cry_Voltorb - cry_reverse Cry_Electrode - cry_reverse Cry_Exeggcute - cry_reverse Cry_Exeggutor - cry_reverse Cry_Cubone - cry_reverse Cry_Marowak - cry_reverse Cry_Hitmonlee - cry_reverse Cry_Hitmonchan - cry_reverse Cry_Lickitung - cry_reverse Cry_Koffing - cry_reverse Cry_Weezing - cry_reverse Cry_Rhyhorn - cry_reverse Cry_Rhydon - cry_reverse Cry_Chansey - cry_reverse Cry_Tangela - cry_reverse Cry_Kangaskhan - cry_reverse Cry_Horsea - cry_reverse Cry_Seadra - cry_reverse Cry_Goldeen - cry_reverse Cry_Seaking - cry_reverse Cry_Staryu - cry_reverse Cry_Starmie - cry_reverse Cry_MrMime - cry_reverse Cry_Scyther - cry_reverse Cry_Jynx - cry_reverse Cry_Electabuzz - cry_reverse Cry_Magmar - cry_reverse Cry_Pinsir - cry_reverse Cry_Tauros - cry_reverse Cry_Magikarp - cry_reverse Cry_Gyarados - cry_reverse Cry_Lapras - cry_reverse Cry_Ditto - cry_reverse Cry_Eevee - cry_reverse Cry_Vaporeon - cry_reverse Cry_Jolteon - cry_reverse Cry_Flareon - cry_reverse Cry_Porygon - cry_reverse Cry_Omanyte - cry_reverse Cry_Omastar - cry_reverse Cry_Kabuto - cry_reverse Cry_Kabutops - cry_reverse Cry_Aerodactyl - cry_reverse Cry_Snorlax - cry_reverse Cry_Articuno - cry_reverse Cry_Zapdos - cry_reverse Cry_Moltres - cry_reverse Cry_Dratini - cry_reverse Cry_Dragonair - cry_reverse Cry_Dragonite - cry_reverse Cry_Mewtwo - cry_reverse Cry_Mew - cry_reverse Cry_Chikorita - cry_reverse Cry_Bayleef - cry_reverse Cry_Meganium - cry_reverse Cry_Cyndaquil - cry_reverse Cry_Quilava - cry_reverse Cry_Typhlosion - cry_reverse Cry_Totodile - cry_reverse Cry_Croconaw - cry_reverse Cry_Feraligatr - cry_reverse Cry_Sentret - cry_reverse Cry_Furret - cry_reverse Cry_Hoothoot - cry_reverse Cry_Noctowl - cry_reverse Cry_Ledyba - cry_reverse Cry_Ledian - cry_reverse Cry_Spinarak - cry_reverse Cry_Ariados - cry_reverse Cry_Crobat - cry_reverse Cry_Chinchou - cry_reverse Cry_Lanturn - cry_reverse Cry_Pichu - cry_reverse Cry_Cleffa - cry_reverse Cry_Igglybuff - cry_reverse Cry_Togepi - cry_reverse Cry_Togetic - cry_reverse Cry_Natu - cry_reverse Cry_Xatu - cry_reverse Cry_Mareep - cry_reverse Cry_Flaaffy - cry_reverse Cry_Ampharos - cry_reverse Cry_Bellossom - cry_reverse Cry_Marill - cry_reverse Cry_Azumarill - cry_reverse Cry_Sudowoodo - cry_reverse Cry_Politoed - cry_reverse Cry_Hoppip - cry_reverse Cry_Skiploom - cry_reverse Cry_Jumpluff - cry_reverse Cry_Aipom - cry_reverse Cry_Sunkern - cry_reverse Cry_Sunflora - cry_reverse Cry_Yanma - cry_reverse Cry_Wooper - cry_reverse Cry_Quagsire - cry_reverse Cry_Espeon - cry_reverse Cry_Umbreon - cry_reverse Cry_Murkrow - cry_reverse Cry_Slowking - cry_reverse Cry_Misdreavus - cry_reverse Cry_Unown - cry_reverse Cry_Wobbuffet - cry_reverse Cry_Girafarig - cry_reverse Cry_Pineco - cry_reverse Cry_Forretress - cry_reverse Cry_Dunsparce - cry_reverse Cry_Gligar - cry_reverse Cry_Steelix - cry_reverse Cry_Snubbull - cry_reverse Cry_Granbull - cry_reverse Cry_Qwilfish - cry_reverse Cry_Scizor - cry_reverse Cry_Shuckle - cry_reverse Cry_Heracross - cry_reverse Cry_Sneasel - cry_reverse Cry_Teddiursa - cry_reverse Cry_Ursaring - cry_reverse Cry_Slugma - cry_reverse Cry_Magcargo - cry_reverse Cry_Swinub - cry_reverse Cry_Piloswine - cry_reverse Cry_Corsola - cry_reverse Cry_Remoraid - cry_reverse Cry_Octillery - cry_reverse Cry_Delibird - cry_reverse Cry_Mantine - cry_reverse Cry_Skarmory - cry_reverse Cry_Houndour - cry_reverse Cry_Houndoom - cry_reverse Cry_Kingdra - cry_reverse Cry_Phanpy - cry_reverse Cry_Donphan - cry_reverse Cry_Porygon2 - cry_reverse Cry_Stantler - cry_reverse Cry_Smeargle - cry_reverse Cry_Tyrogue - cry_reverse Cry_Hitmontop - cry_reverse Cry_Smoochum - cry_reverse Cry_Elekid - cry_reverse Cry_Magby - cry_reverse Cry_Miltank - cry_reverse Cry_Blissey - cry_reverse Cry_Raikou - cry_reverse Cry_Entei - cry_reverse Cry_Suicune - cry_reverse Cry_Larvitar - cry_reverse Cry_Pupitar - cry_reverse Cry_Tyranitar - cry_reverse Cry_Lugia - cry_reverse Cry_HoOh - cry_reverse Cry_Celebi - cry_reverse Cry_Treecko - cry_reverse Cry_Grovyle - cry_reverse Cry_Sceptile - cry_reverse Cry_Torchic - cry_reverse Cry_Combusken - cry_reverse Cry_Blaziken - cry_reverse Cry_Mudkip - cry_reverse Cry_Marshtomp - cry_reverse Cry_Swampert - cry_reverse Cry_Poochyena - cry_reverse Cry_Mightyena - cry_reverse Cry_Zigzagoon - cry_reverse Cry_Linoone - cry_reverse Cry_Wurmple - cry_reverse Cry_Silcoon - cry_reverse Cry_Beautifly - cry_reverse Cry_Cascoon - cry_reverse Cry_Dustox - cry_reverse Cry_Lotad - cry_reverse Cry_Lombre - cry_reverse Cry_Ludicolo - cry_reverse Cry_Seedot - cry_reverse Cry_Nuzleaf - cry_reverse Cry_Shiftry - cry_reverse Cry_Taillow - cry_reverse Cry_Swellow - cry_reverse Cry_Wingull - cry_reverse Cry_Pelipper - cry_reverse Cry_Ralts - cry_reverse Cry_Kirlia - cry_reverse Cry_Gardevoir - cry_reverse Cry_Surskit - cry_reverse Cry_Masquerain - cry_reverse Cry_Shroomish - cry_reverse Cry_Breloom - cry_reverse Cry_Slakoth - cry_reverse Cry_Vigoroth - cry_reverse Cry_Slaking - cry_reverse Cry_Nincada - cry_reverse Cry_Ninjask - cry_reverse Cry_Shedinja - cry_reverse Cry_Whismur - cry_reverse Cry_Loudred - cry_reverse Cry_Exploud - cry_reverse Cry_Makuhita - cry_reverse Cry_Hariyama - cry_reverse Cry_Azurill - cry_reverse Cry_Nosepass - cry_reverse Cry_Skitty - cry_reverse Cry_Delcatty - cry_reverse Cry_Sableye - cry_reverse Cry_Mawile - cry_reverse Cry_Aron - cry_reverse Cry_Lairon - cry_reverse Cry_Aggron - cry_reverse Cry_Meditite - cry_reverse Cry_Medicham - cry_reverse Cry_Electrike - cry_reverse Cry_Manectric - cry_reverse Cry_Plusle - cry_reverse Cry_Minun - cry_reverse Cry_Volbeat - cry_reverse Cry_Illumise - cry_reverse Cry_Roselia - cry_reverse Cry_Gulpin - cry_reverse Cry_Swalot - cry_reverse Cry_Carvanha - cry_reverse Cry_Sharpedo - cry_reverse Cry_Wailmer - cry_reverse Cry_Wailord - cry_reverse Cry_Numel - cry_reverse Cry_Camerupt - cry_reverse Cry_Torkoal - cry_reverse Cry_Spoink - cry_reverse Cry_Grumpig - cry_reverse Cry_Spinda - cry_reverse Cry_Trapinch - cry_reverse Cry_Vibrava - cry_reverse Cry_Flygon - cry_reverse Cry_Cacnea - cry_reverse Cry_Cacturne - cry_reverse Cry_Swablu - cry_reverse Cry_Altaria - cry_reverse Cry_Zangoose - cry_reverse Cry_Seviper - cry_reverse Cry_Lunatone - cry_reverse Cry_Solrock - cry_reverse Cry_Barboach - cry_reverse Cry_Whiscash - cry_reverse Cry_Corphish - cry_reverse Cry_Crawdaunt - cry_reverse Cry_Baltoy - cry_reverse Cry_Claydol - cry_reverse Cry_Lileep - cry_reverse Cry_Cradily - cry_reverse Cry_Anorith - cry_reverse Cry_Armaldo - cry_reverse Cry_Feebas - cry_reverse Cry_Milotic - cry_reverse Cry_Castform - cry_reverse Cry_Kecleon - cry_reverse Cry_Shuppet - cry_reverse Cry_Banette - cry_reverse Cry_Duskull - cry_reverse Cry_Dusclops - cry_reverse Cry_Tropius - cry_reverse Cry_Chimecho - cry_reverse Cry_Absol - cry_reverse Cry_Wynaut - cry_reverse Cry_Snorunt - cry_reverse Cry_Glalie - cry_reverse Cry_Spheal - cry_reverse Cry_Sealeo - cry_reverse Cry_Walrein - cry_reverse Cry_Clamperl - cry_reverse Cry_Huntail - cry_reverse Cry_Gorebyss - cry_reverse Cry_Relicanth - cry_reverse Cry_Luvdisc - cry_reverse Cry_Bagon - cry_reverse Cry_Shelgon - cry_reverse Cry_Salamence - cry_reverse Cry_Beldum - cry_reverse Cry_Metang - cry_reverse Cry_Metagross - cry_reverse Cry_Regirock - cry_reverse Cry_Regice - cry_reverse Cry_Registeel - cry_reverse Cry_Latias - cry_reverse Cry_Latios - cry_reverse Cry_Kyogre - cry_reverse Cry_Groudon - cry_reverse Cry_Rayquaza - cry_reverse Cry_Jirachi - cry_reverse Cry_Deoxys -.if P_GEN_4_POKEMON == TRUE - cry_reverse Cry_Turtwig - cry_reverse Cry_Grotle - cry_reverse Cry_Torterra - cry_reverse Cry_Chimchar - cry_reverse Cry_Monferno - cry_reverse Cry_Infernape - cry_reverse Cry_Piplup - cry_reverse Cry_Prinplup - cry_reverse Cry_Empoleon - cry_reverse Cry_Starly - cry_reverse Cry_Staravia - cry_reverse Cry_Staraptor - cry_reverse Cry_Bidoof - cry_reverse Cry_Bibarel - cry_reverse Cry_Kricketot - cry_reverse Cry_Kricketune - cry_reverse Cry_Shinx - cry_reverse Cry_Luxio - cry_reverse Cry_Luxray - cry_reverse Cry_Budew - cry_reverse Cry_Roserade - cry_reverse Cry_Cranidos - cry_reverse Cry_Rampardos - cry_reverse Cry_Shieldon - cry_reverse Cry_Bastiodon - cry_reverse Cry_Burmy - cry_reverse Cry_Wormadam - cry_reverse Cry_Mothim - cry_reverse Cry_Combee - cry_reverse Cry_Vespiquen - cry_reverse Cry_Pachirisu - cry_reverse Cry_Buizel - cry_reverse Cry_Floatzel - cry_reverse Cry_Cherubi - cry_reverse Cry_Cherrim - cry_reverse Cry_Shellos - cry_reverse Cry_Gastrodon - cry_reverse Cry_Ambipom - cry_reverse Cry_Drifloon - cry_reverse Cry_Drifblim - cry_reverse Cry_Buneary - cry_reverse Cry_Lopunny - cry_reverse Cry_Mismagius - cry_reverse Cry_Honchkrow - cry_reverse Cry_Glameow - cry_reverse Cry_Purugly - cry_reverse Cry_Chingling - cry_reverse Cry_Stunky - cry_reverse Cry_Skuntank - cry_reverse Cry_Bronzor - cry_reverse Cry_Bronzong - cry_reverse Cry_Bonsly - cry_reverse Cry_MimeJr - cry_reverse Cry_Happiny - cry_reverse Cry_Chatot - cry_reverse Cry_Spiritomb - cry_reverse Cry_Gible - cry_reverse Cry_Gabite - cry_reverse Cry_Garchomp - cry_reverse Cry_Munchlax - cry_reverse Cry_Riolu - cry_reverse Cry_Lucario - cry_reverse Cry_Hippopotas - cry_reverse Cry_Hippowdon - cry_reverse Cry_Skorupi - cry_reverse Cry_Drapion - cry_reverse Cry_Croagunk - cry_reverse Cry_Toxicroak - cry_reverse Cry_Carnivine - cry_reverse Cry_Finneon - cry_reverse Cry_Lumineon - cry_reverse Cry_Mantyke - cry_reverse Cry_Snover - cry_reverse Cry_Abomasnow - cry_reverse Cry_Weavile - cry_reverse Cry_Magnezone - cry_reverse Cry_Lickilicky - cry_reverse Cry_Rhyperior - cry_reverse Cry_Tangrowth - cry_reverse Cry_Electivire - cry_reverse Cry_Magmortar - cry_reverse Cry_Togekiss - cry_reverse Cry_Yanmega - cry_reverse Cry_Leafeon - cry_reverse Cry_Glaceon - cry_reverse Cry_Gliscor - cry_reverse Cry_Mamoswine - cry_reverse Cry_PorygonZ - cry_reverse Cry_Gallade - cry_reverse Cry_Probopass - cry_reverse Cry_Dusknoir - cry_reverse Cry_Froslass - cry_reverse Cry_Rotom - cry_reverse Cry_Uxie - cry_reverse Cry_Mesprit - cry_reverse Cry_Azelf - cry_reverse Cry_Dialga - cry_reverse Cry_Palkia - cry_reverse Cry_Heatran - cry_reverse Cry_Regigigas - cry_reverse Cry_Giratina - cry_reverse Cry_Cresselia - cry_reverse Cry_Phione - cry_reverse Cry_Manaphy - cry_reverse Cry_Darkrai - cry_reverse Cry_Shaymin - cry_reverse Cry_Arceus -.else - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown -.endif -.if P_GEN_5_POKEMON == TRUE - cry_reverse Cry_Victini - cry_reverse Cry_Snivy - cry_reverse Cry_Servine - cry_reverse Cry_Serperior - cry_reverse Cry_Tepig - cry_reverse Cry_Pignite - cry_reverse Cry_Emboar - cry_reverse Cry_Oshawott - cry_reverse Cry_Dewott - cry_reverse Cry_Samurott - cry_reverse Cry_Patrat - cry_reverse Cry_Watchog - cry_reverse Cry_Lillipup - cry_reverse Cry_Herdier - cry_reverse Cry_Stoutland - cry_reverse Cry_Purrloin - cry_reverse Cry_Liepard - cry_reverse Cry_Pansage - cry_reverse Cry_Simisage - cry_reverse Cry_Pansear - cry_reverse Cry_Simisear - cry_reverse Cry_Panpour - cry_reverse Cry_Simipour - cry_reverse Cry_Munna - cry_reverse Cry_Musharna - cry_reverse Cry_Pidove - cry_reverse Cry_Tranquill - cry_reverse Cry_Unfezant - cry_reverse Cry_Blitzle - cry_reverse Cry_Zebstrika - cry_reverse Cry_Roggenrola - cry_reverse Cry_Boldore - cry_reverse Cry_Gigalith - cry_reverse Cry_Woobat - cry_reverse Cry_Swoobat - cry_reverse Cry_Drilbur - cry_reverse Cry_Excadrill - cry_reverse Cry_Audino - cry_reverse Cry_Timburr - cry_reverse Cry_Gurdurr - cry_reverse Cry_Conkeldurr - cry_reverse Cry_Tympole - cry_reverse Cry_Palpitoad - cry_reverse Cry_Seismitoad - cry_reverse Cry_Throh - cry_reverse Cry_Sawk - cry_reverse Cry_Sewaddle - cry_reverse Cry_Swadloon - cry_reverse Cry_Leavanny - cry_reverse Cry_Venipede - cry_reverse Cry_Whirlipede - cry_reverse Cry_Scolipede - cry_reverse Cry_Cottonee - cry_reverse Cry_Whimsicott - cry_reverse Cry_Petilil - cry_reverse Cry_Lilligant - cry_reverse Cry_Basculin - cry_reverse Cry_Sandile - cry_reverse Cry_Krokorok - cry_reverse Cry_Krookodile - cry_reverse Cry_Darumaka - cry_reverse Cry_Darmanitan - cry_reverse Cry_Maractus - cry_reverse Cry_Dwebble - cry_reverse Cry_Crustle - cry_reverse Cry_Scraggy - cry_reverse Cry_Scrafty - cry_reverse Cry_Sigilyph - cry_reverse Cry_Yamask - cry_reverse Cry_Cofagrigus - cry_reverse Cry_Tirtouga - cry_reverse Cry_Carracosta - cry_reverse Cry_Archen - cry_reverse Cry_Archeops - cry_reverse Cry_Trubbish - cry_reverse Cry_Garbodor - cry_reverse Cry_Zorua - cry_reverse Cry_Zoroark - cry_reverse Cry_Minccino - cry_reverse Cry_Cinccino - cry_reverse Cry_Gothita - cry_reverse Cry_Gothorita - cry_reverse Cry_Gothitelle - cry_reverse Cry_Solosis - cry_reverse Cry_Duosion - cry_reverse Cry_Reuniclus - cry_reverse Cry_Ducklett - cry_reverse Cry_Swanna - cry_reverse Cry_Vanillite - cry_reverse Cry_Vanillish - cry_reverse Cry_Vanilluxe - cry_reverse Cry_Deerling - cry_reverse Cry_Sawsbuck - cry_reverse Cry_Emolga - cry_reverse Cry_Karrablast - cry_reverse Cry_Escavalier - cry_reverse Cry_Foongus - cry_reverse Cry_Amoonguss - cry_reverse Cry_Frillish - cry_reverse Cry_Jellicent - cry_reverse Cry_Alomomola - cry_reverse Cry_Joltik - cry_reverse Cry_Galvantula - cry_reverse Cry_Ferroseed - cry_reverse Cry_Ferrothorn - cry_reverse Cry_Klink - cry_reverse Cry_Klang - cry_reverse Cry_Klinklang - cry_reverse Cry_Tynamo - cry_reverse Cry_Eelektrik - cry_reverse Cry_Eelektross - cry_reverse Cry_Elgyem - cry_reverse Cry_Beheeyem - cry_reverse Cry_Litwick - cry_reverse Cry_Lampent - cry_reverse Cry_Chandelure - cry_reverse Cry_Axew - cry_reverse Cry_Fraxure - cry_reverse Cry_Haxorus - cry_reverse Cry_Cubchoo - cry_reverse Cry_Beartic - cry_reverse Cry_Cryogonal - cry_reverse Cry_Shelmet - cry_reverse Cry_Accelgor - cry_reverse Cry_Stunfisk - cry_reverse Cry_Mienfoo - cry_reverse Cry_Mienshao - cry_reverse Cry_Druddigon - cry_reverse Cry_Golett - cry_reverse Cry_Golurk - cry_reverse Cry_Pawniard - cry_reverse Cry_Bisharp - cry_reverse Cry_Bouffalant - cry_reverse Cry_Rufflet - cry_reverse Cry_Braviary - cry_reverse Cry_Vullaby - cry_reverse Cry_Mandibuzz - cry_reverse Cry_Heatmor - cry_reverse Cry_Durant - cry_reverse Cry_Deino - cry_reverse Cry_Zweilous - cry_reverse Cry_Hydreigon - cry_reverse Cry_Larvesta - cry_reverse Cry_Volcarona - cry_reverse Cry_Cobalion - cry_reverse Cry_Terrakion - cry_reverse Cry_Virizion - cry_reverse Cry_Tornadus - cry_reverse Cry_Thundurus - cry_reverse Cry_Reshiram - cry_reverse Cry_Zekrom - cry_reverse Cry_Landorus - cry_reverse Cry_Kyurem - cry_reverse Cry_Keldeo - cry_reverse Cry_Meloetta - cry_reverse Cry_Genesect -.else - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown -.endif -.if P_GEN_6_POKEMON == TRUE - cry_reverse Cry_Chespin - cry_reverse Cry_Quilladin - cry_reverse Cry_Chesnaught - cry_reverse Cry_Fennekin - cry_reverse Cry_Braixen - cry_reverse Cry_Delphox - cry_reverse Cry_Froakie - cry_reverse Cry_Frogadier - cry_reverse Cry_Greninja - cry_reverse Cry_Bunnelby - cry_reverse Cry_Diggersby - cry_reverse Cry_Fletchling - cry_reverse Cry_Fletchinder - cry_reverse Cry_Talonflame - cry_reverse Cry_Scatterbug - cry_reverse Cry_Spewpa - cry_reverse Cry_Vivillon - cry_reverse Cry_Litleo - cry_reverse Cry_Pyroar - cry_reverse Cry_Flabebe - cry_reverse Cry_Floette - cry_reverse Cry_Florges - cry_reverse Cry_Skiddo - cry_reverse Cry_Gogoat - cry_reverse Cry_Pancham - cry_reverse Cry_Pangoro - cry_reverse Cry_Furfrou - cry_reverse Cry_Espurr - cry_reverse Cry_Meowstic - cry_reverse Cry_Honedge - cry_reverse Cry_Doublade - cry_reverse Cry_Aegislash - cry_reverse Cry_Spritzee - cry_reverse Cry_Aromatisse - cry_reverse Cry_Swirlix - cry_reverse Cry_Slurpuff - cry_reverse Cry_Inkay - cry_reverse Cry_Malamar - cry_reverse Cry_Binacle - cry_reverse Cry_Barbaracle - cry_reverse Cry_Skrelp - cry_reverse Cry_Dragalge - cry_reverse Cry_Clauncher - cry_reverse Cry_Clawitzer - cry_reverse Cry_Helioptile - cry_reverse Cry_Heliolisk - cry_reverse Cry_Tyrunt - cry_reverse Cry_Tyrantrum - cry_reverse Cry_Amaura - cry_reverse Cry_Aurorus - cry_reverse Cry_Sylveon - cry_reverse Cry_Hawlucha - cry_reverse Cry_Dedenne - cry_reverse Cry_Carbink - cry_reverse Cry_Goomy - cry_reverse Cry_Sliggoo - cry_reverse Cry_Goodra - cry_reverse_uncomp Cry_Klefki - cry_reverse Cry_Phantump - cry_reverse Cry_Trevenant - cry_reverse Cry_Pumpkaboo - cry_reverse Cry_Gourgeist - cry_reverse Cry_Bergmite - cry_reverse Cry_Avalugg - cry_reverse Cry_Noibat - cry_reverse Cry_Noivern - cry_reverse Cry_Xerneas - cry_reverse Cry_Yveltal - cry_reverse Cry_Zygarde - cry_reverse Cry_Diancie - cry_reverse Cry_Hoopa - cry_reverse Cry_Volcanion -.else - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown -.endif -.if P_GEN_7_POKEMON == TRUE - cry_reverse Cry_Rowlet - cry_reverse Cry_Dartrix - cry_reverse Cry_Decidueye - cry_reverse Cry_Litten - cry_reverse Cry_Torracat - cry_reverse Cry_Incineroar - cry_reverse Cry_Popplio - cry_reverse Cry_Brionne - cry_reverse Cry_Primarina - cry_reverse Cry_Pikipek - cry_reverse Cry_Trumbeak - cry_reverse Cry_Toucannon - cry_reverse Cry_Yungoos - cry_reverse Cry_Gumshoos - cry_reverse Cry_Grubbin - cry_reverse Cry_Charjabug - cry_reverse Cry_Vikavolt - cry_reverse Cry_Crabrawler - cry_reverse Cry_Crabominable - cry_reverse Cry_Oricorio - cry_reverse Cry_Cutiefly - cry_reverse Cry_Ribombee - cry_reverse Cry_Rockruff - cry_reverse Cry_Lycanroc - cry_reverse Cry_Wishiwashi - cry_reverse Cry_Mareanie - cry_reverse Cry_Toxapex - cry_reverse Cry_Mudbray - cry_reverse Cry_Mudsdale - cry_reverse Cry_Dewpider - cry_reverse Cry_Araquanid - cry_reverse Cry_Fomantis - cry_reverse Cry_Lurantis - cry_reverse Cry_Morelull - cry_reverse Cry_Shiinotic - cry_reverse Cry_Salandit - cry_reverse Cry_Salazzle - cry_reverse Cry_Stufful - cry_reverse Cry_Bewear - cry_reverse Cry_Bounsweet - cry_reverse Cry_Steenee - cry_reverse Cry_Tsareena - cry_reverse Cry_Comfey - cry_reverse Cry_Oranguru - cry_reverse Cry_Passimian - cry_reverse Cry_Wimpod - cry_reverse Cry_Golisopod - cry_reverse Cry_Sandygast - cry_reverse Cry_Palossand - cry_reverse Cry_Pyukumuku - cry_reverse Cry_TypeNull - cry_reverse Cry_Silvally - cry_reverse Cry_Minior - cry_reverse Cry_Komala - cry_reverse Cry_Turtonator - cry_reverse Cry_Togedemaru - cry_reverse Cry_Mimikyu - cry_reverse Cry_Bruxish - cry_reverse Cry_Drampa - cry_reverse Cry_Dhelmise - cry_reverse Cry_JangmoO - cry_reverse Cry_HakamoO - cry_reverse Cry_KommoO - cry_reverse Cry_TapuKoko - cry_reverse Cry_TapuLele - cry_reverse Cry_TapuBulu - cry_reverse Cry_TapuFini - cry_reverse Cry_Cosmog - cry_reverse Cry_Cosmoem - cry_reverse Cry_Solgaleo - cry_reverse Cry_Lunala - cry_reverse Cry_Nihilego - cry_reverse Cry_Buzzwole - cry_reverse Cry_Pheromosa - cry_reverse Cry_Xurkitree - cry_reverse Cry_Celesteela - cry_reverse Cry_Kartana - cry_reverse Cry_Guzzlord - cry_reverse Cry_Necrozma - cry_reverse Cry_Magearna - cry_reverse Cry_Marshadow - cry_reverse Cry_Poipole - cry_reverse Cry_Naganadel - cry_reverse Cry_Stakataka - cry_reverse Cry_Blacephalon - cry_reverse Cry_Zeraora - cry_reverse Cry_Meltan - cry_reverse Cry_Melmetal -.else - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown -.endif -.if P_GEN_8_POKEMON == TRUE - cry_reverse Cry_Grookey - cry_reverse Cry_Thwackey - cry_reverse Cry_Rillaboom - cry_reverse Cry_Scorbunny - cry_reverse Cry_Raboot - cry_reverse Cry_Cinderace - cry_reverse Cry_Sobble - cry_reverse Cry_Drizzile - cry_reverse Cry_Inteleon - cry_reverse Cry_Skwovet - cry_reverse Cry_Greedent - cry_reverse Cry_Rookidee - cry_reverse Cry_Corvisquire - cry_reverse Cry_Corviknight - cry_reverse Cry_Blipbug - cry_reverse Cry_Dottler - cry_reverse Cry_Orbeetle - cry_reverse Cry_Nickit - cry_reverse Cry_Thievul - cry_reverse Cry_Gossifleur - cry_reverse Cry_Eldegoss - cry_reverse Cry_Wooloo - cry_reverse Cry_Dubwool - cry_reverse Cry_Chewtle - cry_reverse Cry_Drednaw - cry_reverse Cry_Yamper - cry_reverse Cry_Boltund - cry_reverse Cry_Rolycoly - cry_reverse Cry_Carkol - cry_reverse Cry_Coalossal - cry_reverse Cry_Applin - cry_reverse Cry_Flapple - cry_reverse Cry_Appletun - cry_reverse Cry_Silicobra - cry_reverse Cry_Sandaconda - cry_reverse Cry_Cramorant - cry_reverse Cry_Arrokuda - cry_reverse Cry_Barraskewda - cry_reverse Cry_Toxel - cry_reverse Cry_Toxtricity - cry_reverse Cry_Sizzlipede - cry_reverse Cry_Centiskorch - cry_reverse Cry_Clobbopus - cry_reverse Cry_Grapploct - cry_reverse Cry_Sinistea - cry_reverse Cry_Polteageist - cry_reverse Cry_Hatenna - cry_reverse Cry_Hattrem - cry_reverse Cry_Hatterene - cry_reverse Cry_Impidimp - cry_reverse Cry_Morgrem - cry_reverse Cry_Grimmsnarl - cry_reverse Cry_Obstagoon - cry_reverse Cry_Perrserker - cry_reverse Cry_Cursola - cry_reverse Cry_Sirfetchd - cry_reverse Cry_MrRime - cry_reverse Cry_Runerigus - cry_reverse Cry_Milcery - cry_reverse Cry_Alcremie - cry_reverse Cry_Falinks - cry_reverse Cry_Pincurchin - cry_reverse Cry_Snom - cry_reverse Cry_Frosmoth - cry_reverse Cry_Stonjourner - cry_reverse Cry_Eiscue - cry_reverse Cry_Indeedee - cry_reverse Cry_Morpeko - cry_reverse Cry_Cufant - cry_reverse Cry_Copperajah - cry_reverse Cry_Dracozolt - cry_reverse Cry_Arctozolt - cry_reverse Cry_Dracovish - cry_reverse Cry_Arctovish - cry_reverse Cry_Duraludon - cry_reverse Cry_Dreepy - cry_reverse Cry_Drakloak - cry_reverse Cry_Dragapult - cry_reverse Cry_Zacian - cry_reverse Cry_Zamazenta - cry_reverse Cry_Eternatus - cry_reverse Cry_Kubfu - cry_reverse Cry_Urshifu - cry_reverse Cry_Zarude - cry_reverse Cry_Regieleki - cry_reverse Cry_Regidrago - cry_reverse Cry_Glastrier - cry_reverse Cry_Spectrier - cry_reverse Cry_Calyrex - cry_reverse Cry_Wyrdeer - cry_reverse Cry_Kleavor - cry_reverse Cry_Ursaluna - cry_reverse Cry_Basculegion - cry_reverse Cry_Sneasler - cry_reverse Cry_Overqwil - cry_reverse Cry_Enamorus -.else - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown -.endif - @ Megas +.if P_FUSION_FORMS == TRUE + cry Cry_CalyrexIceRider + cry Cry_CalyrexShadowRider +.endif @ P_FUSION_FORMS +.endif @ P_FAMILY_CALYREX +.if P_FAMILY_ENAMORUS == TRUE + cry Cry_EnamorusIncarnate + cry Cry_EnamorusTherian +.endif @ P_FAMILY_ENAMORUS +.if P_FAMILY_SPRIGATITO == TRUE + cry Cry_Sprigatito + cry Cry_Floragato + cry Cry_Meowscarada +.endif @ P_FAMILY_SPRIGATITO +.if P_FAMILY_FUECOCO == TRUE + cry Cry_Fuecoco + cry Cry_Crocalor + cry Cry_Skeledirge +.endif @ P_FAMILY_FUECOCO +.if P_FAMILY_QUAXLY == TRUE + cry Cry_Quaxly + cry Cry_Quaxwell + cry Cry_Quaquaval +.endif @ P_FAMILY_QUAXLY +.if P_FAMILY_LECHONK == TRUE + cry Cry_Lechonk + cry Cry_OinkologneMale + cry Cry_OinkologneFemale +.endif @ P_FAMILY_LECHONK +.if P_FAMILY_TAROUNTULA == TRUE + cry Cry_Tarountula + cry Cry_Spidops +.endif @ P_FAMILY_TAROUNTULA +.if P_FAMILY_NYMBLE == TRUE + cry Cry_Nymble + cry Cry_Lokix +.endif @ P_FAMILY_NYMBLE +.if P_FAMILY_PAWMI == TRUE + cry Cry_Pawmi + cry Cry_Pawmo + cry Cry_Pawmot +.endif @ P_FAMILY_PAWMI +.if P_FAMILY_TANDEMAUS == TRUE + cry Cry_Tandemaus + cry Cry_MausholdFamilyOfThree + cry Cry_MausholdFamilyOfFour +.endif @ P_FAMILY_TANDEMAUS +.if P_FAMILY_FIDOUGH == TRUE + cry Cry_Fidough + cry Cry_Dachsbun +.endif @ P_FAMILY_FIDOUGH +.if P_FAMILY_SMOLIV == TRUE + cry Cry_Smoliv + cry Cry_Dolliv + cry Cry_Arboliva +.endif @ P_FAMILY_SMOLIV +.if P_FAMILY_SQUAWKABILLY == TRUE + cry Cry_Squawkabilly +.endif @ P_FAMILY_SQUAWKABILLY +.if P_FAMILY_NACLI == TRUE + cry Cry_Nacli + cry Cry_Naclstack + cry Cry_Garganacl +.endif @ P_FAMILY_NACLI +.if P_FAMILY_CHARCADET == TRUE + cry Cry_Charcadet + cry Cry_Armarouge + cry Cry_Ceruledge +.endif @ P_FAMILY_CHARCADET +.if P_FAMILY_TADBULB == TRUE + cry Cry_Tadbulb + cry Cry_Bellibolt +.endif @ P_FAMILY_TADBULB +.if P_FAMILY_WATTREL == TRUE + cry Cry_Wattrel + cry Cry_Kilowattrel +.endif @ P_FAMILY_WATTREL +.if P_FAMILY_MASCHIFF == TRUE + cry Cry_Maschiff + cry Cry_Mabosstiff +.endif @ P_FAMILY_MASCHIFF +.if P_FAMILY_SHROODLE == TRUE + cry Cry_Shroodle + cry Cry_Grafaiai +.endif @ P_FAMILY_SHROODLE +.if P_FAMILY_BRAMBLIN == TRUE + cry Cry_Bramblin + cry Cry_Brambleghast +.endif @ P_FAMILY_BRAMBLIN +.if P_FAMILY_TOEDSCOOL == TRUE + cry Cry_Toedscool + cry Cry_Toedscruel +.endif @ P_FAMILY_TOEDSCOOL +.if P_FAMILY_KLAWF == TRUE + cry Cry_Klawf +.endif @ P_FAMILY_KLAWF +.if P_FAMILY_CAPSAKID == TRUE + cry Cry_Capsakid + cry Cry_Scovillain +.endif @ P_FAMILY_CAPSAKID +.if P_FAMILY_RELLOR == TRUE + cry Cry_Rellor + cry Cry_Rabsca +.endif @ P_FAMILY_RELLOR +.if P_FAMILY_FLITTLE == TRUE + cry Cry_Flittle + cry Cry_Espathra +.endif @ P_FAMILY_FLITTLE +.if P_FAMILY_TINKATINK == TRUE + cry Cry_Tinkatink + cry Cry_Tinkatuff + cry Cry_Tinkaton +.endif @ P_FAMILY_TINKATINK +.if P_FAMILY_WIGLETT == TRUE + cry Cry_Wiglett + cry Cry_Wugtrio +.endif @ P_FAMILY_WIGLETT +.if P_FAMILY_BOMBIRDIER == TRUE + cry Cry_Bombirdier +.endif @ P_FAMILY_BOMBIRDIER +.if P_FAMILY_FINIZEN == TRUE + cry Cry_Finizen + cry Cry_PalafinZero + cry Cry_PalafinHero +.endif @ P_FAMILY_FINIZEN +.if P_FAMILY_VAROOM == TRUE + cry Cry_Varoom + cry Cry_Revavroom +.endif @ P_FAMILY_VAROOM +.if P_FAMILY_CYCLIZAR == TRUE + cry Cry_Cyclizar +.endif @ P_FAMILY_CYCLIZAR +.if P_FAMILY_ORTHWORM == TRUE + cry Cry_Orthworm +.endif @ P_FAMILY_ORTHWORM +.if P_FAMILY_GLIMMET == TRUE + cry Cry_Glimmet + cry Cry_Glimmora +.endif @ P_FAMILY_GLIMMET +.if P_FAMILY_GREAVARD == TRUE + cry Cry_Greavard + cry Cry_Houndstone +.endif @ P_FAMILY_GREAVARD +.if P_FAMILY_FLAMIGO == TRUE + cry Cry_Flamigo +.endif @ P_FAMILY_FLAMIGO +.if P_FAMILY_CETODDLE == TRUE + cry Cry_Cetoddle + cry Cry_Cetitan +.endif @ P_FAMILY_CETODDLE +.if P_FAMILY_VELUZA == TRUE + cry Cry_Veluza +.endif @ P_FAMILY_VELUZA +.if P_FAMILY_DONDOZO == TRUE + cry Cry_Dondozo +.endif @ P_FAMILY_DONDOZO +.if P_FAMILY_TATSUGIRI == TRUE + cry Cry_TatsugiriCurly + cry Cry_TatsugiriDroopy + cry Cry_TatsugiriStretchy +.endif @ P_FAMILY_TATSUGIRI +.if P_FAMILY_GREAT_TUSK == TRUE + cry Cry_GreatTusk +.endif @ P_FAMILY_GREAT_TUSK +.if P_FAMILY_SCREAM_TAIL == TRUE + cry Cry_ScreamTail +.endif @ P_FAMILY_SCREAM_TAIL +.if P_FAMILY_BRUTE_BONNET == TRUE + cry Cry_BruteBonnet +.endif @ P_FAMILY_BRUTE_BONNET +.if P_FAMILY_FLUTTER_MANE == TRUE + cry Cry_FlutterMane +.endif @ P_FAMILY_FLUTTER_MANE +.if P_FAMILY_SLITHER_WING == TRUE + cry Cry_SlitherWing +.endif @ P_FAMILY_SLITHER_WING +.if P_FAMILY_SANDY_SHOCKS == TRUE + cry Cry_SandyShocks +.endif @ P_FAMILY_SANDY_SHOCKS +.if P_FAMILY_IRON_TREADS == TRUE + cry Cry_IronTreads +.endif @ P_FAMILY_IRON_TREADS +.if P_FAMILY_IRON_BUNDLE == TRUE + cry Cry_IronBundle +.endif @ P_FAMILY_IRON_BUNDLE +.if P_FAMILY_IRON_HANDS == TRUE + cry Cry_IronHands +.endif @ P_FAMILY_IRON_HANDS +.if P_FAMILY_IRON_JUGULIS == TRUE + cry Cry_IronJugulis +.endif @ P_FAMILY_IRON_JUGULIS +.if P_FAMILY_IRON_MOTH == TRUE + cry Cry_IronMoth +.endif @ P_FAMILY_IRON_MOTH +.if P_FAMILY_IRON_THORNS == TRUE + cry Cry_IronThorns +.endif @ P_FAMILY_IRON_THORNS +.if P_FAMILY_FRIGIBAX == TRUE + cry Cry_Frigibax + cry Cry_Arctibax + cry Cry_Baxcalibur +.endif @ P_FAMILY_FRIGIBAX +.if P_FAMILY_GIMMIGHOUL == TRUE + cry Cry_Gimmighoul + cry Cry_Gholdengo +.endif @ P_FAMILY_GIMMIGHOUL +.if P_FAMILY_WO_CHIEN == TRUE + cry Cry_WoChien +.endif @ P_FAMILY_WO_CHIEN +.if P_FAMILY_CHIEN_PAO == TRUE + cry Cry_ChienPao +.endif @ P_FAMILY_CHIEN_PAO +.if P_FAMILY_TING_LU == TRUE + cry Cry_TingLu +.endif @ P_FAMILY_TING_LU +.if P_FAMILY_CHI_YU == TRUE + cry Cry_ChiYu +.endif @ P_FAMILY_CHI_YU +.if P_FAMILY_ROARING_MOON == TRUE + cry Cry_RoaringMoon +.endif @ P_FAMILY_ROARING_MOON +.if P_FAMILY_IRON_VALIANT == TRUE + cry Cry_IronValiant +.endif @ P_FAMILY_IRON_VALIANT +.if P_FAMILY_KORAIDON == TRUE + cry Cry_Koraidon +.endif @ P_FAMILY_KORAIDON +.if P_FAMILY_MIRAIDON == TRUE + cry Cry_Miraidon +.endif @ P_FAMILY_MIRAIDON +.if P_FAMILY_WALKING_WAKE == TRUE + cry Cry_WalkingWake +.endif @ P_FAMILY_WALKING_WAKE +.if P_FAMILY_IRON_LEAVES == TRUE + cry Cry_IronLeaves +.endif @ P_FAMILY_IRON_LEAVES +.if P_FAMILY_POLTCHAGEIST == TRUE + cry Cry_Poltchageist + cry Cry_Sinistcha +.endif @ P_FAMILY_POLTCHAGEIST +.if P_FAMILY_OKIDOGI == TRUE + cry Cry_Okidogi +.endif @ P_FAMILY_OKIDOGI +.if P_FAMILY_MUNKIDORI == TRUE + cry Cry_Munkidori +.endif @ P_FAMILY_MUNKIDORI +.if P_FAMILY_FEZANDIPITI == TRUE + cry Cry_Fezandipiti +.endif @ P_FAMILY_FEZANDIPITI +.if P_FAMILY_OGERPON == TRUE + cry Cry_Ogerpon +.endif @ P_FAMILY_OGERPON + + .align 2 +gCryTable_Reverse:: +.if P_FAMILY_BULBASAUR == TRUE + cry_reverse Cry_Bulbasaur + cry_reverse Cry_Ivysaur + cry_reverse Cry_Venusaur +.if P_MEGA_EVOLUTIONS == TRUE cry_reverse Cry_VenusaurMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_BULBASAUR +.if P_FAMILY_CHARMANDER == TRUE + cry_reverse Cry_Charmander + cry_reverse Cry_Charmeleon + cry_reverse Cry_Charizard +.if P_MEGA_EVOLUTIONS == TRUE cry_reverse Cry_CharizardMegaX cry_reverse Cry_CharizardMegaY +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_CHARMANDER +.if P_FAMILY_SQUIRTLE == TRUE + cry_reverse Cry_Squirtle + cry_reverse Cry_Wartortle + cry_reverse Cry_Blastoise +.if P_MEGA_EVOLUTIONS == TRUE cry_reverse Cry_BlastoiseMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_SQUIRTLE +.if P_FAMILY_CATERPIE == TRUE + cry_reverse Cry_Caterpie + cry_reverse Cry_Metapod + cry_reverse Cry_Butterfree +.endif @ P_FAMILY_CATERPIE +.if P_FAMILY_WEEDLE == TRUE + cry_reverse Cry_Weedle + cry_reverse Cry_Kakuna + cry_reverse Cry_Beedrill +.if P_MEGA_EVOLUTIONS == TRUE cry_reverse Cry_BeedrillMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_WEEDLE +.if P_FAMILY_PIDGEY == TRUE + cry_reverse Cry_Pidgey + cry_reverse Cry_Pidgeotto + cry_reverse Cry_Pidgeot +.if P_MEGA_EVOLUTIONS == TRUE cry_reverse Cry_PidgeotMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_PIDGEY +.if P_FAMILY_RATTATA == TRUE + cry_reverse Cry_Rattata + cry_reverse Cry_Raticate +.endif @ P_FAMILY_RATTATA +.if P_FAMILY_SPEAROW == TRUE + cry_reverse Cry_Spearow + cry_reverse Cry_Fearow +.endif @ P_FAMILY_SPEAROW +.if P_FAMILY_EKANS == TRUE + cry_reverse Cry_Ekans + cry_reverse Cry_Arbok +.endif @ P_FAMILY_EKANS +.if P_FAMILY_PIKACHU == TRUE +.if P_GEN_2_CROSS_EVOS == TRUE + cry_reverse Cry_Pichu +.endif @ P_GEN_2_CROSS_EVOS + cry_reverse Cry_Pikachu + cry_reverse Cry_Raichu +.endif @ P_FAMILY_PIKACHU +.if P_FAMILY_SANDSHREW == TRUE + cry_reverse Cry_Sandshrew + cry_reverse Cry_Sandslash +.endif @ P_FAMILY_SANDSHREW +.if P_FAMILY_NIDORAN == TRUE + cry_reverse Cry_NidoranF + cry_reverse Cry_Nidorina + cry_reverse Cry_Nidoqueen + cry_reverse Cry_NidoranM + cry_reverse Cry_Nidorino + cry_reverse Cry_Nidoking +.endif @ P_FAMILY_NIDORAN +.if P_FAMILY_CLEFAIRY == TRUE +.if P_GEN_2_CROSS_EVOS == TRUE + cry_reverse Cry_Cleffa +.endif @ P_GEN_2_CROSS_EVOS + cry_reverse Cry_Clefairy + cry_reverse Cry_Clefable +.endif @ P_FAMILY_CLEFAIRY +.if P_FAMILY_VULPIX == TRUE + cry_reverse Cry_Vulpix + cry_reverse Cry_Ninetales +.endif @ P_FAMILY_VULPIX +.if P_FAMILY_JIGGLYPUFF == TRUE +.if P_GEN_2_CROSS_EVOS == TRUE + cry_reverse Cry_Igglybuff +.endif @ P_GEN_2_CROSS_EVOS + cry_reverse Cry_Jigglypuff + cry_reverse Cry_Wigglytuff +.endif @ P_FAMILY_JIGGLYPUFF +.if P_FAMILY_ZUBAT == TRUE + cry_reverse Cry_Zubat + cry_reverse Cry_Golbat +.if P_GEN_2_CROSS_EVOS == TRUE + cry_reverse Cry_Crobat +.endif @ P_GEN_2_CROSS_EVOS +.endif @ P_FAMILY_ZUBAT +.if P_FAMILY_ODDISH == TRUE + cry_reverse Cry_Oddish + cry_reverse Cry_Gloom + cry_reverse Cry_Vileplume +.if P_GEN_2_CROSS_EVOS == TRUE + cry_reverse Cry_Bellossom +.endif @ P_GEN_2_CROSS_EVOS +.endif @ P_FAMILY_ODDISH +.if P_FAMILY_PARAS == TRUE + cry_reverse Cry_Paras + cry_reverse Cry_Parasect +.endif @ P_FAMILY_PARAS +.if P_FAMILY_VENONAT == TRUE + cry_reverse Cry_Venonat + cry_reverse Cry_Venomoth +.endif @ P_FAMILY_VENONAT +.if P_FAMILY_DIGLETT == TRUE + cry_reverse Cry_Diglett + cry_reverse Cry_Dugtrio +.endif @ P_FAMILY_DIGLETT +.if P_FAMILY_MEOWTH == TRUE + cry_reverse Cry_Meowth + cry_reverse Cry_Persian +.if P_GALARIAN_FORMS == TRUE + cry_reverse Cry_Perrserker +.endif @ P_GALARIAN_FORMS +.endif @ P_FAMILY_MEOWTH +.if P_FAMILY_PSYDUCK == TRUE + cry_reverse Cry_Psyduck + cry_reverse Cry_Golduck +.endif @ P_FAMILY_PSYDUCK +.if P_FAMILY_MANKEY == TRUE + cry_reverse Cry_Mankey + cry_reverse Cry_Primeape +.if P_GEN_9_CROSS_EVOS == TRUE + cry_reverse Cry_Annihilape +.endif @ P_GEN_9_CROSS_EVOS +.endif @ P_FAMILY_MANKEY +.if P_FAMILY_GROWLITHE == TRUE + cry_reverse Cry_Growlithe + cry_reverse Cry_Arcanine +.endif @ P_FAMILY_GROWLITHE +.if P_FAMILY_POLIWAG == TRUE + cry_reverse Cry_Poliwag + cry_reverse Cry_Poliwhirl + cry_reverse Cry_Poliwrath +.if P_GEN_2_CROSS_EVOS == TRUE + cry_reverse Cry_Politoed +.endif @ P_GEN_2_CROSS_EVOS +.endif @ P_FAMILY_POLIWAG +.if P_FAMILY_ABRA == TRUE + cry_reverse Cry_Abra + cry_reverse Cry_Kadabra + cry_reverse Cry_Alakazam +.if P_MEGA_EVOLUTIONS == TRUE cry_reverse Cry_AlakazamMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_ABRA +.if P_FAMILY_MACHOP == TRUE + cry_reverse Cry_Machop + cry_reverse Cry_Machoke + cry_reverse Cry_Machamp +.endif @ P_FAMILY_MACHOP +.if P_FAMILY_BELLSPROUT == TRUE + cry_reverse Cry_Bellsprout + cry_reverse Cry_Weepinbell + cry_reverse Cry_Victreebel +.endif @ P_FAMILY_BELLSPROUT +.if P_FAMILY_TENTACOOL == TRUE + cry_reverse Cry_Tentacool + cry_reverse Cry_Tentacruel +.endif @ P_FAMILY_TENTACOOL +.if P_FAMILY_GEODUDE == TRUE + cry_reverse Cry_Geodude + cry_reverse Cry_Graveler + cry_reverse Cry_Golem +.endif @ P_FAMILY_GEODUDE +.if P_FAMILY_PONYTA == TRUE + cry_reverse Cry_Ponyta + cry_reverse Cry_Rapidash +.endif @ P_FAMILY_PONYTA +.if P_FAMILY_SLOWPOKE == TRUE + cry_reverse Cry_Slowpoke + cry_reverse Cry_Slowbro +.if P_GEN_2_CROSS_EVOS == TRUE + cry_reverse Cry_Slowking +.endif @ P_GEN_2_CROSS_EVOS +.if P_MEGA_EVOLUTIONS == TRUE cry_reverse Cry_SlowbroMega +.endif @ P_MEGA_EVOLUTIONS +.if P_GALARIAN_FORMS == TRUE + cry_reverse Cry_SlowpokeGalarian +.endif @ P_GALARIAN_FORMS +.endif @ P_FAMILY_SLOWPOKE +.if P_FAMILY_MAGNEMITE == TRUE + cry_reverse Cry_Magnemite + cry_reverse Cry_Magneton +.if P_GEN_4_CROSS_EVOS == TRUE + cry_reverse Cry_Magnezone +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_MAGNEMITE +.if P_FAMILY_FARFETCHD == TRUE + cry_reverse Cry_Farfetchd +.if P_GALARIAN_FORMS == TRUE + cry_reverse Cry_Sirfetchd +.endif @ P_GALARIAN_FORMS +.endif @ P_FAMILY_FARFETCHD +.if P_FAMILY_DODUO == TRUE + cry_reverse Cry_Doduo + cry_reverse Cry_Dodrio +.endif @ P_FAMILY_DODUO +.if P_FAMILY_SEEL == TRUE + cry_reverse Cry_Seel + cry_reverse Cry_Dewgong +.endif @ P_FAMILY_SEEL +.if P_FAMILY_GRIMER == TRUE + cry_reverse Cry_Grimer + cry_reverse Cry_Muk +.endif @ P_FAMILY_GRIMER +.if P_FAMILY_SHELLDER == TRUE + cry_reverse Cry_Shellder + cry_reverse Cry_Cloyster +.endif @ P_FAMILY_SHELLDER +.if P_FAMILY_GASTLY == TRUE + cry_reverse Cry_Gastly + cry_reverse Cry_Haunter + cry_reverse Cry_Gengar +.if P_MEGA_EVOLUTIONS == TRUE cry_reverse Cry_GengarMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_GASTLY +.if P_FAMILY_ONIX == TRUE + cry_reverse Cry_Onix +.if P_GEN_2_CROSS_EVOS == TRUE + cry_reverse Cry_Steelix +.if P_MEGA_EVOLUTIONS == TRUE + cry_reverse Cry_SteelixMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_GEN_2_CROSS_EVOS +.endif @ P_FAMILY_ONIX +.if P_FAMILY_DROWZEE == TRUE + cry_reverse Cry_Drowzee + cry_reverse Cry_Hypno +.endif @ P_FAMILY_DROWZEE +.if P_FAMILY_KRABBY == TRUE + cry_reverse Cry_Krabby + cry_reverse Cry_Kingler +.endif @ P_FAMILY_KRABBY +.if P_FAMILY_VOLTORB == TRUE + cry_reverse Cry_Voltorb + cry_reverse Cry_Electrode +.endif @ P_FAMILY_VOLTORB +.if P_FAMILY_EXEGGCUTE == TRUE + cry_reverse Cry_Exeggcute + cry_reverse Cry_Exeggutor +.endif @ P_FAMILY_EXEGGCUTE +.if P_FAMILY_CUBONE == TRUE + cry_reverse Cry_Cubone + cry_reverse Cry_Marowak +.endif @ P_FAMILY_CUBONE +.if P_FAMILY_HITMONS == TRUE +.if P_GEN_2_CROSS_EVOS == TRUE + cry_reverse Cry_Tyrogue +.endif @ P_GEN_2_CROSS_EVOS + cry_reverse Cry_Hitmonlee + cry_reverse Cry_Hitmonchan +.if P_GEN_2_CROSS_EVOS == TRUE + cry_reverse Cry_Hitmontop +.endif @ P_GEN_2_CROSS_EVOS +.endif @ P_FAMILY_HITMONS +.if P_FAMILY_LICKITUNG == TRUE + cry_reverse Cry_Lickitung +.if P_GEN_4_CROSS_EVOS == TRUE + cry_reverse Cry_Lickilicky +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_LICKITUNG +.if P_FAMILY_KOFFING == TRUE + cry_reverse Cry_Koffing + cry_reverse Cry_Weezing +.endif @ P_FAMILY_KOFFING +.if P_FAMILY_RHYHORN == TRUE + cry_reverse Cry_Rhyhorn + cry_reverse Cry_Rhydon +.if P_GEN_4_CROSS_EVOS == TRUE + cry_reverse Cry_Rhyperior +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_RHYHORN +.if P_FAMILY_CHANSEY == TRUE +.if P_GEN_4_CROSS_EVOS == TRUE + cry_reverse Cry_Happiny +.endif @ P_GEN_4_CROSS_EVOS + cry_reverse Cry_Chansey +.if P_GEN_2_CROSS_EVOS == TRUE + cry_reverse Cry_Blissey +.endif @ P_GEN_2_CROSS_EVOS +.endif @ P_FAMILY_CHANSEY +.if P_FAMILY_TANGELA == TRUE + cry_reverse Cry_Tangela +.if P_GEN_4_CROSS_EVOS == TRUE + cry_reverse Cry_Tangrowth +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_TANGELA +.if P_FAMILY_KANGASKHAN == TRUE + cry_reverse Cry_Kangaskhan +.if P_MEGA_EVOLUTIONS == TRUE cry_reverse Cry_KangaskhanMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_KANGASKHAN +.if P_FAMILY_HORSEA == TRUE + cry_reverse Cry_Horsea + cry_reverse Cry_Seadra +.if P_GEN_2_CROSS_EVOS == TRUE + cry_reverse Cry_Kingdra +.endif @ P_GEN_2_CROSS_EVOS +.endif @ P_FAMILY_HORSEA +.if P_FAMILY_GOLDEEN == TRUE + cry_reverse Cry_Goldeen + cry_reverse Cry_Seaking +.endif @ P_FAMILY_GOLDEEN +.if P_FAMILY_STARYU == TRUE + cry_reverse Cry_Staryu + cry_reverse Cry_Starmie +.endif @ P_FAMILY_STARYU +.if P_FAMILY_MR_MIME == TRUE +.if P_GEN_4_CROSS_EVOS == TRUE + cry_reverse Cry_MimeJr +.endif @ P_GEN_4_CROSS_EVOS + cry_reverse Cry_MrMime +.if P_GALARIAN_FORMS == TRUE + cry_reverse Cry_MrRime +.endif @ P_GALARIAN_FORMS +.endif @ P_FAMILY_MR_MIME +.if P_FAMILY_SCYTHER == TRUE + cry_reverse Cry_Scyther +.if P_GEN_2_CROSS_EVOS == TRUE + cry_reverse Cry_Scizor +.if P_MEGA_EVOLUTIONS == TRUE + cry_reverse Cry_ScizorMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_GEN_2_CROSS_EVOS +.if P_GEN_8_CROSS_EVOS == TRUE + cry_reverse Cry_Kleavor +.endif @ P_GEN_8_CROSS_EVOS +.endif @ P_FAMILY_SCYTHER +.if P_FAMILY_JYNX == TRUE +.if P_GEN_2_CROSS_EVOS == TRUE + cry_reverse Cry_Smoochum +.endif @ P_GEN_2_CROSS_EVOS + cry_reverse Cry_Jynx +.endif @ P_FAMILY_JYNX +.if P_FAMILY_ELECTABUZZ == TRUE +.if P_GEN_2_CROSS_EVOS == TRUE + cry_reverse Cry_Elekid +.endif @ P_GEN_2_CROSS_EVOS + cry_reverse Cry_Electabuzz +.if P_GEN_4_CROSS_EVOS == TRUE + cry_reverse Cry_Electivire +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_ELECTABUZZ +.if P_FAMILY_MAGMAR == TRUE +.if P_GEN_2_CROSS_EVOS == TRUE + cry_reverse Cry_Magby +.endif @ P_GEN_2_CROSS_EVOS + cry_reverse Cry_Magmar +.if P_GEN_4_CROSS_EVOS == TRUE + cry_reverse Cry_Magmortar +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_MAGMAR +.if P_FAMILY_PINSIR == TRUE + cry_reverse Cry_Pinsir +.if P_MEGA_EVOLUTIONS == TRUE cry_reverse Cry_PinsirMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_PINSIR +.if P_FAMILY_TAUROS == TRUE + cry_reverse Cry_Tauros +.endif @ P_FAMILY_TAUROS +.if P_FAMILY_MAGIKARP == TRUE + cry_reverse Cry_Magikarp + cry_reverse Cry_Gyarados +.if P_MEGA_EVOLUTIONS == TRUE cry_reverse Cry_GyaradosMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_MAGIKARP +.if P_FAMILY_LAPRAS == TRUE + cry_reverse Cry_Lapras +.endif @ P_FAMILY_LAPRAS +.if P_FAMILY_DITTO == TRUE + cry_reverse Cry_Ditto +.endif @ P_FAMILY_DITTO +.if P_FAMILY_EEVEE == TRUE + cry_reverse Cry_Eevee + cry_reverse Cry_Vaporeon + cry_reverse Cry_Jolteon + cry_reverse Cry_Flareon +.if P_GEN_2_CROSS_EVOS == TRUE + cry_reverse Cry_Espeon + cry_reverse Cry_Umbreon +.endif @ P_GEN_2_CROSS_EVOS +.if P_GEN_4_CROSS_EVOS == TRUE + cry_reverse Cry_Leafeon + cry_reverse Cry_Glaceon +.endif @ P_GEN_4_CROSS_EVOS +.if P_GEN_6_CROSS_EVOS == TRUE + cry_reverse Cry_Sylveon +.endif @ P_GEN_6_CROSS_EVOS +.endif @ P_FAMILY_EEVEE +.if P_FAMILY_PORYGON == TRUE + cry_reverse Cry_Porygon +.if P_GEN_2_CROSS_EVOS == TRUE + cry_reverse Cry_Porygon2 +.if P_GEN_4_CROSS_EVOS == TRUE + cry_reverse Cry_PorygonZ +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_GEN_2_CROSS_EVOS +.endif @ P_FAMILY_PORYGON +.if P_FAMILY_OMANYTE == TRUE + cry_reverse Cry_Omanyte + cry_reverse Cry_Omastar +.endif @ P_FAMILY_OMANYTE +.if P_FAMILY_KABUTO == TRUE + cry_reverse Cry_Kabuto + cry_reverse Cry_Kabutops +.endif @ P_FAMILY_KABUTO +.if P_FAMILY_AERODACTYL == TRUE + cry_reverse Cry_Aerodactyl +.if P_MEGA_EVOLUTIONS == TRUE cry_reverse Cry_AerodactylMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_AERODACTYL +.if P_FAMILY_SNORLAX == TRUE +.if P_GEN_4_CROSS_EVOS == TRUE + cry_reverse Cry_Munchlax +.endif @ P_GEN_4_CROSS_EVOS + cry_reverse Cry_Snorlax +.endif @ P_FAMILY_SNORLAX +.if P_FAMILY_ARTICUNO == TRUE + cry_reverse Cry_Articuno +.endif @ P_FAMILY_ARTICUNO +.if P_FAMILY_ZAPDOS == TRUE + cry_reverse Cry_Zapdos +.endif @ P_FAMILY_ZAPDOS +.if P_FAMILY_MOLTRES == TRUE + cry_reverse Cry_Moltres +.endif @ P_FAMILY_MOLTRES +.if P_FAMILY_DRATINI == TRUE + cry_reverse Cry_Dratini + cry_reverse Cry_Dragonair + cry_reverse Cry_Dragonite +.endif @ P_FAMILY_DRATINI +.if P_FAMILY_MEWTWO == TRUE + cry_reverse Cry_Mewtwo +.if P_MEGA_EVOLUTIONS == TRUE cry_reverse Cry_MewtwoMegaX cry_reverse Cry_MewtwoMegaY +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_MEWTWO +.if P_FAMILY_MEW == TRUE + cry_reverse Cry_Mew +.endif @ P_FAMILY_MEW +.if P_FAMILY_CHIKORITA == TRUE + cry_reverse Cry_Chikorita + cry_reverse Cry_Bayleef + cry_reverse Cry_Meganium +.endif @ P_FAMILY_CHIKORITA +.if P_FAMILY_CYNDAQUIL == TRUE + cry_reverse Cry_Cyndaquil + cry_reverse Cry_Quilava + cry_reverse Cry_Typhlosion +.endif @ P_FAMILY_CYNDAQUIL +.if P_FAMILY_TOTODILE == TRUE + cry_reverse Cry_Totodile + cry_reverse Cry_Croconaw + cry_reverse Cry_Feraligatr +.endif @ P_FAMILY_TOTODILE +.if P_FAMILY_SENTRET == TRUE + cry_reverse Cry_Sentret + cry_reverse Cry_Furret +.endif @ P_FAMILY_SENTRET +.if P_FAMILY_HOOTHOOT == TRUE + cry_reverse Cry_Hoothoot + cry_reverse Cry_Noctowl +.endif @ P_FAMILY_HOOTHOOT +.if P_FAMILY_LEDYBA == TRUE + cry_reverse Cry_Ledyba + cry_reverse Cry_Ledian +.endif @ P_FAMILY_LEDYBA +.if P_FAMILY_SPINARAK == TRUE + cry_reverse Cry_Spinarak + cry_reverse Cry_Ariados +.endif @ P_FAMILY_SPINARAK +.if P_FAMILY_CHINCHOU == TRUE + cry_reverse Cry_Chinchou + cry_reverse Cry_Lanturn +.endif @ P_FAMILY_CHINCHOU +.if P_FAMILY_TOGEPI == TRUE + cry_reverse Cry_Togepi + cry_reverse Cry_Togetic +.if P_GEN_4_CROSS_EVOS == TRUE + cry_reverse Cry_Togekiss +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_TOGEPI +.if P_FAMILY_NATU == TRUE + cry_reverse Cry_Natu + cry_reverse Cry_Xatu +.endif @ P_FAMILY_NATU + cry_reverse Cry_Mareep +.if P_FAMILY_MAREEP == TRUE + cry_reverse Cry_Flaaffy + cry_reverse Cry_Ampharos +.if P_MEGA_EVOLUTIONS == TRUE cry_reverse Cry_AmpharosMega - cry_reverse Cry_SteelixMega - cry_reverse Cry_ScizorMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_MAREEP +.if P_FAMILY_MARILL == TRUE +.if P_GEN_3_CROSS_EVOS == TRUE + cry_reverse Cry_Azurill +.endif @ P_GEN_3_CROSS_EVOS + cry_reverse Cry_Marill + cry_reverse Cry_Azumarill +.endif @ P_FAMILY_MARILL +.if P_FAMILY_SUDOWOODO == TRUE + cry_reverse Cry_Bonsly + cry_reverse Cry_Sudowoodo +.endif @ P_FAMILY_SUDOWOODO +.if P_FAMILY_HOPPIP == TRUE + cry_reverse Cry_Hoppip + cry_reverse Cry_Skiploom + cry_reverse Cry_Jumpluff +.endif @ P_FAMILY_HOPPIP +.if P_FAMILY_AIPOM == TRUE + cry_reverse Cry_Aipom + cry_reverse Cry_Ambipom +.endif @ P_FAMILY_AIPOM +.if P_FAMILY_SUNKERN == TRUE + cry_reverse Cry_Sunkern + cry_reverse Cry_Sunflora +.endif @ P_FAMILY_SUNKERN +.if P_FAMILY_YANMA == TRUE + cry_reverse Cry_Yanma +.if P_GEN_4_CROSS_EVOS == TRUE + cry_reverse Cry_Yanmega +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_YANMA +.if P_FAMILY_WOOPER == TRUE + cry_reverse Cry_Wooper + cry_reverse Cry_Quagsire +.if P_PALDEAN_FORMS == TRUE + cry_reverse Cry_Clodsire +.endif @ P_PALDEAN_FORMS +.endif @ P_FAMILY_WOOPER +.if P_FAMILY_MURKROW == TRUE + cry_reverse Cry_Murkrow + cry_reverse Cry_Honchkrow +.endif @ P_FAMILY_MURKROW +.if P_FAMILY_MISDREAVUS == TRUE + cry_reverse Cry_Misdreavus + cry_reverse Cry_Mismagius +.endif @ P_FAMILY_MISDREAVUS +.if P_FAMILY_UNOWN == TRUE + cry_reverse Cry_Unown +.endif @ P_FAMILY_UNOWN +.if P_FAMILY_WOBBUFFET == TRUE +.if P_GEN_3_CROSS_EVOS == TRUE + cry_reverse Cry_Wynaut +.endif @ P_GEN_3_CROSS_EVOS + cry_reverse Cry_Wobbuffet +.endif @ P_FAMILY_WOBBUFFET +.if P_FAMILY_GIRAFARIG == TRUE + cry_reverse Cry_Girafarig +.if P_GEN_9_CROSS_EVOS == TRUE + cry_reverse Cry_Farigiraf +.endif @ P_GEN_9_CROSS_EVOS +.endif @ P_FAMILY_GIRAFARIG +.if P_FAMILY_PINECO == TRUE + cry_reverse Cry_Pineco + cry_reverse Cry_Forretress +.endif @ P_FAMILY_PINECO +.if P_FAMILY_DUNSPARCE == TRUE + cry_reverse Cry_Dunsparce +.if P_GEN_9_CROSS_EVOS == TRUE + cry_reverse Cry_Dudunsparce +.endif @ P_GEN_9_CROSS_EVOS +.endif @ P_FAMILY_DUNSPARCE +.if P_FAMILY_GLIGAR == TRUE + cry_reverse Cry_Gligar +.if P_GEN_4_CROSS_EVOS == TRUE + cry_reverse Cry_Gliscor +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_GLIGAR +.if P_FAMILY_SNUBBULL == TRUE + cry_reverse Cry_Snubbull + cry_reverse Cry_Granbull +.endif @ P_FAMILY_SNUBBULL +.if P_FAMILY_QWILFISH == TRUE + cry_reverse Cry_Qwilfish +.if P_HISUIAN_FORMS == TRUE + cry_reverse Cry_Overqwil +.endif @ P_HISUIAN_FORMS +.endif @ P_FAMILY_QWILFISH +.if P_FAMILY_SHUCKLE == TRUE + cry_reverse Cry_Shuckle +.endif @ P_FAMILY_SHUCKLE +.if P_FAMILY_HERACROSS == TRUE + cry_reverse Cry_Heracross +.if P_MEGA_EVOLUTIONS == TRUE cry_reverse Cry_HeracrossMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_HERACROSS +.if P_FAMILY_SNEASEL == TRUE + cry_reverse Cry_Sneasel +.if P_GEN_4_CROSS_EVOS == TRUE + cry_reverse Cry_Weavile +.endif @ P_GEN_4_CROSS_EVOS +.if P_HISUIAN_FORMS == TRUE + cry_reverse Cry_Sneasler +.endif @ P_HISUIAN_FORMS +.endif @ P_FAMILY_SNEASEL +.if P_FAMILY_TEDDIURSA == TRUE + cry_reverse Cry_Teddiursa + cry_reverse Cry_Ursaring +.if P_GEN_9_CROSS_EVOS == TRUE + cry_reverse Cry_Ursaluna +.endif @ P_GEN_9_CROSS_EVOS +.endif @ P_FAMILY_TEDDIURSA +.if P_FAMILY_SLUGMA == TRUE + cry_reverse Cry_Slugma + cry_reverse Cry_Magcargo +.endif @ P_FAMILY_SLUGMA +.if P_FAMILY_SWINUB == TRUE + cry_reverse Cry_Swinub + cry_reverse Cry_Piloswine +.if P_GEN_4_CROSS_EVOS == TRUE + cry_reverse Cry_Mamoswine +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_SWINUB +.if P_FAMILY_CORSOLA == TRUE + cry_reverse Cry_Corsola +.if P_GALARIAN_FORMS == TRUE + cry_reverse Cry_Cursola +.endif @ P_GALARIAN_FORMS +.endif @ P_FAMILY_CORSOLA +.if P_FAMILY_REMORAID == TRUE + cry_reverse Cry_Remoraid + cry_reverse Cry_Octillery +.endif @ P_FAMILY_REMORAID +.if P_FAMILY_DELIBIRD == TRUE + cry_reverse Cry_Delibird +.endif @ P_FAMILY_DELIBIRD +.if P_FAMILY_MANTINE == TRUE +.if P_GEN_4_CROSS_EVOS == TRUE + cry_reverse Cry_Mantyke +.endif @ P_GEN_4_CROSS_EVOS + cry_reverse Cry_Mantine +.endif @ P_FAMILY_MANTINE +.if P_FAMILY_SKARMORY == TRUE + cry_reverse Cry_Skarmory +.endif @ P_FAMILY_SKARMORY + cry_reverse Cry_Houndour +.if P_FAMILY_HOUNDOUR == TRUE + cry_reverse Cry_Houndoom +.if P_MEGA_EVOLUTIONS == TRUE cry_reverse Cry_HoundoomMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_HOUNDOUR +.if P_FAMILY_PHANPY == TRUE + cry_reverse Cry_Phanpy + cry_reverse Cry_Donphan +.endif @ P_FAMILY_PHANPY +.if P_FAMILY_STANTLER == TRUE + cry_reverse Cry_Stantler +.if P_GEN_8_CROSS_EVOS == TRUE + cry_reverse Cry_Wyrdeer +.endif @ P_GEN_8_CROSS_EVOS +.endif @ P_FAMILY_STANTLER +.if P_FAMILY_SMEARGLE == TRUE + cry_reverse Cry_Smeargle +.endif @ P_FAMILY_SMEARGLE +.if P_FAMILY_MILTANK == TRUE + cry_reverse Cry_Miltank +.endif @ P_FAMILY_MILTANK +.if P_FAMILY_RAIKOU == TRUE + cry_reverse Cry_Raikou +.endif @ P_FAMILY_RAIKOU +.if P_FAMILY_ENTEI == TRUE + cry_reverse Cry_Entei +.endif @ P_FAMILY_ENTEI +.if P_FAMILY_SUICUNE == TRUE + cry_reverse Cry_Suicune +.endif @ P_FAMILY_SUICUNE +.if P_FAMILY_LARVITAR == TRUE + cry_reverse Cry_Larvitar + cry_reverse Cry_Pupitar + cry_reverse Cry_Tyranitar +.if P_MEGA_EVOLUTIONS == TRUE cry_reverse Cry_TyranitarMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_LARVITAR +.if P_FAMILY_LUGIA == TRUE + cry_reverse Cry_Lugia +.endif @ P_FAMILY_LUGIA +.if P_FAMILY_HO_OH == TRUE + cry_reverse Cry_HoOh +.endif @ P_FAMILY_HO_OH +.if P_FAMILY_CELEBI == TRUE + cry_reverse Cry_Celebi +.endif @ P_FAMILY_CELEBI +.if P_FAMILY_TREECKO == TRUE + cry_reverse Cry_Treecko + cry_reverse Cry_Grovyle + cry_reverse Cry_Sceptile +.if P_MEGA_EVOLUTIONS == TRUE cry_reverse Cry_SceptileMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_TREECKO +.if P_FAMILY_TORCHIC == TRUE + cry_reverse Cry_Torchic + cry_reverse Cry_Combusken + cry_reverse Cry_Blaziken +.if P_MEGA_EVOLUTIONS == TRUE cry_reverse Cry_BlazikenMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_TORCHIC +.if P_FAMILY_MUDKIP == TRUE + cry_reverse Cry_Mudkip + cry_reverse Cry_Marshtomp + cry_reverse Cry_Swampert +.if P_MEGA_EVOLUTIONS == TRUE cry_reverse Cry_SwampertMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_MUDKIP +.if P_FAMILY_POOCHYENA == TRUE + cry_reverse Cry_Poochyena + cry_reverse Cry_Mightyena +.endif @ P_FAMILY_POOCHYENA +.if P_FAMILY_ZIGZAGOON == TRUE + cry_reverse Cry_Zigzagoon + cry_reverse Cry_Linoone +.if P_GALARIAN_FORMS == TRUE + cry_reverse Cry_Obstagoon +.endif @ P_GALARIAN_FORMS +.endif @ P_FAMILY_ZIGZAGOON +.if P_FAMILY_WURMPLE == TRUE + cry_reverse Cry_Wurmple + cry_reverse Cry_Silcoon + cry_reverse Cry_Beautifly + cry_reverse Cry_Cascoon + cry_reverse Cry_Dustox +.endif @ P_FAMILY_WURMPLE +.if P_FAMILY_LOTAD == TRUE + cry_reverse Cry_Lotad + cry_reverse Cry_Lombre + cry_reverse Cry_Ludicolo +.endif @ P_FAMILY_LOTAD +.if P_FAMILY_SEEDOT == TRUE + cry_reverse Cry_Seedot + cry_reverse Cry_Nuzleaf + cry_reverse Cry_Shiftry +.endif @ P_FAMILY_SEEDOT +.if P_FAMILY_TAILLOW == TRUE + cry_reverse Cry_Taillow + cry_reverse Cry_Swellow +.endif @ P_FAMILY_TAILLOW +.if P_FAMILY_WINGULL == TRUE + cry_reverse Cry_Wingull + cry_reverse Cry_Pelipper +.endif @ P_FAMILY_WINGULL +.if P_FAMILY_RALTS == TRUE + cry_reverse Cry_Ralts + cry_reverse Cry_Kirlia + cry_reverse Cry_Gardevoir +.if P_MEGA_EVOLUTIONS == TRUE cry_reverse Cry_GardevoirMega +.endif @ P_MEGA_EVOLUTIONS +.if P_GEN_4_CROSS_EVOS == TRUE + cry_reverse Cry_Gallade +.if P_MEGA_EVOLUTIONS == TRUE + cry_reverse Cry_GalladeMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_RALTS +.if P_FAMILY_SURSKIT == TRUE + cry_reverse Cry_Surskit + cry_reverse Cry_Masquerain +.endif @ P_FAMILY_SURSKIT +.if P_FAMILY_SHROOMISH == TRUE + cry_reverse Cry_Shroomish + cry_reverse Cry_Breloom +.endif @ P_FAMILY_SHROOMISH +.if P_FAMILY_SLAKOTH == TRUE + cry_reverse Cry_Slakoth + cry_reverse Cry_Vigoroth + cry_reverse Cry_Slaking +.endif @ P_FAMILY_SLAKOTH +.if P_FAMILY_NINCADA == TRUE + cry_reverse Cry_Nincada + cry_reverse Cry_Ninjask + cry_reverse Cry_Shedinja +.endif @ P_FAMILY_NINCADA +.if P_FAMILY_WHISMUR == TRUE + cry_reverse Cry_Whismur + cry_reverse Cry_Loudred + cry_reverse Cry_Exploud +.endif @ P_FAMILY_WHISMUR +.if P_FAMILY_MAKUHITA == TRUE + cry_reverse Cry_Makuhita + cry_reverse Cry_Hariyama +.endif @ P_FAMILY_MAKUHITA +.if P_FAMILY_NOSEPASS == TRUE + cry_reverse Cry_Nosepass +.if P_GEN_4_CROSS_EVOS == TRUE + cry_reverse Cry_Probopass +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_NOSEPASS +.if P_FAMILY_SKITTY == TRUE + cry_reverse Cry_Skitty + cry_reverse Cry_Delcatty +.endif @ P_FAMILY_SKITTY +.if P_FAMILY_SABLEYE == TRUE + cry_reverse Cry_Sableye +.if P_MEGA_EVOLUTIONS == TRUE cry_reverse Cry_SableyeMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_SABLEYE +.if P_FAMILY_MAWILE == TRUE + cry_reverse Cry_Mawile +.if P_MEGA_EVOLUTIONS == TRUE cry_reverse Cry_MawileMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_MAWILE +.if P_FAMILY_ARON == TRUE + cry_reverse Cry_Aron + cry_reverse Cry_Lairon + cry_reverse Cry_Aggron +.if P_MEGA_EVOLUTIONS == TRUE cry_reverse Cry_AggronMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_ARON +.if P_FAMILY_MEDITITE == TRUE + cry_reverse Cry_Meditite + cry_reverse Cry_Medicham +.if P_MEGA_EVOLUTIONS == TRUE cry_reverse Cry_MedichamMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_MEDITITE +.if P_FAMILY_ELECTRIKE == TRUE + cry_reverse Cry_Electrike + cry_reverse Cry_Manectric +.if P_MEGA_EVOLUTIONS == TRUE cry_reverse Cry_ManectricMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_ELECTRIKE +.if P_FAMILY_PLUSLE == TRUE + cry_reverse Cry_Plusle +.endif @ P_FAMILY_PLUSLE +.if P_FAMILY_MINUN == TRUE + cry_reverse Cry_Minun +.endif @ P_FAMILY_MINUN +.if P_FAMILY_VOLBEAT_ILLUMISE == TRUE + cry_reverse Cry_Volbeat + cry_reverse Cry_Illumise +.endif @ P_FAMILY_VOLBEAT_ILLUMISE +.if P_FAMILY_ROSELIA == TRUE +.if P_GEN_4_CROSS_EVOS == TRUE + cry_reverse Cry_Budew +.endif @ P_GEN_4_CROSS_EVOS + cry_reverse Cry_Roselia +.if P_GEN_4_CROSS_EVOS == TRUE + cry_reverse Cry_Roserade +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_ROSELIA +.if P_FAMILY_GULPIN == TRUE + cry_reverse Cry_Gulpin + cry_reverse Cry_Swalot +.endif @ P_FAMILY_GULPIN +.if P_FAMILY_CARVANHA == TRUE + cry_reverse Cry_Carvanha + cry_reverse Cry_Sharpedo +.if P_MEGA_EVOLUTIONS == TRUE cry_reverse Cry_SharpedoMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_CARVANHA +.if P_FAMILY_WAILMER == TRUE + cry_reverse Cry_Wailmer + cry_reverse Cry_Wailord +.endif @ P_FAMILY_WAILMER +.if P_FAMILY_NUMEL == TRUE + cry_reverse Cry_Numel + cry_reverse Cry_Camerupt +.if P_MEGA_EVOLUTIONS == TRUE cry_reverse Cry_CameruptMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_NUMEL +.if P_FAMILY_TORKOAL == TRUE + cry_reverse Cry_Torkoal +.endif @ P_FAMILY_TORKOAL +.if P_FAMILY_SPOINK == TRUE + cry_reverse Cry_Spoink + cry_reverse Cry_Grumpig +.endif @ P_FAMILY_SPOINK +.if P_FAMILY_SPINDA == TRUE + cry_reverse Cry_Spinda +.endif @ P_FAMILY_SPINDA +.if P_FAMILY_TRAPINCH == TRUE + cry_reverse Cry_Trapinch + cry_reverse Cry_Vibrava + cry_reverse Cry_Flygon +.endif @ P_FAMILY_TRAPINCH +.if P_FAMILY_CACNEA == TRUE + cry_reverse Cry_Cacnea + cry_reverse Cry_Cacturne +.endif @ P_FAMILY_CACNEA +.if P_FAMILY_SWABLU == TRUE + cry_reverse Cry_Swablu + cry_reverse Cry_Altaria +.if P_MEGA_EVOLUTIONS == TRUE cry_reverse Cry_AltariaMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_SWABLU +.if P_FAMILY_ZANGOOSE == TRUE + cry_reverse Cry_Zangoose +.endif @ P_FAMILY_ZANGOOSE +.if P_FAMILY_SEVIPER == TRUE + cry_reverse Cry_Seviper +.endif @ P_FAMILY_SEVIPER +.if P_FAMILY_LUNATONE == TRUE + cry_reverse Cry_Lunatone +.endif @ P_FAMILY_LUNATONE +.if P_FAMILY_SOLROCK == TRUE + cry_reverse Cry_Solrock +.endif @ P_FAMILY_SOLROCK +.if P_FAMILY_BARBOACH == TRUE + cry_reverse Cry_Barboach + cry_reverse Cry_Whiscash +.endif @ P_FAMILY_BARBOACH +.if P_FAMILY_CORPHISH == TRUE + cry_reverse Cry_Corphish + cry_reverse Cry_Crawdaunt +.endif @ P_FAMILY_CORPHISH +.if P_FAMILY_BALTOY == TRUE + cry_reverse Cry_Baltoy + cry_reverse Cry_Claydol +.endif @ P_FAMILY_BALTOY +.if P_FAMILY_LILEEP == TRUE + cry_reverse Cry_Lileep + cry_reverse Cry_Cradily +.endif @ P_FAMILY_LILEEP +.if P_FAMILY_ANORITH == TRUE + cry_reverse Cry_Anorith + cry_reverse Cry_Armaldo +.endif @ P_FAMILY_ANORITH +.if P_FAMILY_FEEBAS == TRUE + cry_reverse Cry_Feebas + cry_reverse Cry_Milotic +.endif @ P_FAMILY_FEEBAS +.if P_FAMILY_CASTFORM == TRUE + cry_reverse Cry_Castform +.endif @ P_FAMILY_CASTFORM +.if P_FAMILY_KECLEON == TRUE + cry_reverse Cry_Kecleon +.endif @ P_FAMILY_KECLEON +.if P_FAMILY_SHUPPET == TRUE + cry_reverse Cry_Shuppet + cry_reverse Cry_Banette +.if P_MEGA_EVOLUTIONS == TRUE cry_reverse Cry_BanetteMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_SHUPPET +.if P_FAMILY_DUSKULL == TRUE + cry_reverse Cry_Duskull + cry_reverse Cry_Dusclops +.if P_GEN_4_CROSS_EVOS == TRUE + cry_reverse Cry_Dusknoir +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_DUSKULL +.if P_FAMILY_TROPIUS == TRUE + cry_reverse Cry_Tropius +.endif @ P_FAMILY_TROPIUS +.if P_FAMILY_CHIMECHO == TRUE +.if P_GEN_4_CROSS_EVOS == TRUE + cry_reverse Cry_Chingling +.endif @ P_GEN_4_CROSS_EVOS + cry_reverse Cry_Chimecho +.endif @ P_FAMILY_CHIMECHO +.if P_FAMILY_ABSOL == TRUE + cry_reverse Cry_Absol +.if P_MEGA_EVOLUTIONS == TRUE cry_reverse Cry_AbsolMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_ABSOL +.if P_FAMILY_SNORUNT == TRUE + cry_reverse Cry_Snorunt + cry_reverse Cry_Glalie +.if P_MEGA_EVOLUTIONS == TRUE cry_reverse Cry_GlalieMega +.endif @ P_MEGA_EVOLUTIONS +.if P_GEN_4_CROSS_EVOS == TRUE + cry_reverse Cry_Froslass +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_SNORUNT +.if P_FAMILY_SPHEAL == TRUE + cry_reverse Cry_Spheal + cry_reverse Cry_Sealeo + cry_reverse Cry_Walrein +.endif @ P_FAMILY_SPHEAL +.if P_FAMILY_CLAMPERL == TRUE + cry_reverse Cry_Clamperl + cry_reverse Cry_Huntail + cry_reverse Cry_Gorebyss +.endif @ P_FAMILY_CLAMPERL +.if P_FAMILY_RELICANTH == TRUE + cry_reverse Cry_Relicanth +.endif @ P_FAMILY_RELICANTH +.if P_FAMILY_LUVDISC == TRUE + cry_reverse Cry_Luvdisc +.endif @ P_FAMILY_LUVDISC +.if P_FAMILY_BAGON == TRUE + cry_reverse Cry_Bagon + cry_reverse Cry_Shelgon + cry_reverse Cry_Salamence +.if P_MEGA_EVOLUTIONS == TRUE cry_reverse Cry_SalamenceMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_BAGON +.if P_FAMILY_BELDUM == TRUE + cry_reverse Cry_Beldum + cry_reverse Cry_Metang + cry_reverse Cry_Metagross +.if P_MEGA_EVOLUTIONS == TRUE cry_reverse Cry_MetagrossMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_BELDUM +.if P_FAMILY_REGIROCK == TRUE + cry_reverse Cry_Regirock +.endif @ P_FAMILY_REGIROCK +.if P_FAMILY_REGICE == TRUE + cry_reverse Cry_Regice +.endif @ P_FAMILY_REGICE +.if P_FAMILY_REGISTEEL == TRUE + cry_reverse Cry_Registeel +.endif @ P_FAMILY_REGISTEEL +.if P_FAMILY_LATIAS == TRUE + cry_reverse Cry_Latias +.if P_MEGA_EVOLUTIONS == TRUE cry_reverse Cry_LatiasMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_LATIAS +.if P_FAMILY_LATIOS == TRUE + cry_reverse Cry_Latios +.if P_MEGA_EVOLUTIONS == TRUE cry_reverse Cry_LatiosMega -.if P_GEN_4_POKEMON == TRUE - cry_reverse Cry_LopunnyMega - cry_reverse Cry_GarchompMega - cry_reverse Cry_LucarioMega - cry_reverse Cry_AbomasnowMega - cry_reverse Cry_GalladeMega -.else - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown -.endif -.if P_GEN_5_POKEMON == TRUE - cry_reverse Cry_AudinoMega -.else - cry_reverse Cry_Unown -.endif -.if P_GEN_6_POKEMON == TRUE - cry_reverse Cry_DiancieMega -.else - cry_reverse Cry_Unown -.endif - @ Special Mega + Primals - cry_reverse Cry_RayquazaMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_LATIOS +.if P_FAMILY_KYOGRE == TRUE + cry_reverse Cry_Kyogre +.if P_PRIMAL_REVERSIONS == TRUE cry_reverse Cry_KyogrePrimal - cry_reverse Cry_GroudonPrimal - @ Alolan Forms - cry_reverse Cry_Rattata - cry_reverse Cry_Raticate - cry_reverse Cry_Raichu - cry_reverse Cry_Sandshrew - cry_reverse Cry_Sandslash - cry_reverse Cry_Vulpix - cry_reverse Cry_Ninetales - cry_reverse Cry_Diglett - cry_reverse Cry_Dugtrio - cry_reverse Cry_Meowth - cry_reverse Cry_Persian - cry_reverse Cry_Geodude - cry_reverse Cry_Graveler - cry_reverse Cry_Golem - cry_reverse Cry_Grimer - cry_reverse Cry_Muk - cry_reverse Cry_Exeggutor - cry_reverse Cry_Marowak - @ Galarian Forms - cry_reverse Cry_Meowth - cry_reverse Cry_Ponyta - cry_reverse Cry_Rapidash - cry_reverse Cry_SlowpokeGalarian - cry_reverse Cry_Slowbro - cry_reverse Cry_Farfetchd - cry_reverse Cry_Weezing - cry_reverse Cry_MrMime - cry_reverse Cry_Articuno - cry_reverse Cry_Zapdos - cry_reverse Cry_Moltres - cry_reverse Cry_Slowking - cry_reverse Cry_Corsola - cry_reverse Cry_Zigzagoon - cry_reverse Cry_Linoone -.if P_GEN_5_POKEMON == TRUE - cry_reverse Cry_Darumaka - cry_reverse Cry_Darmanitan - cry_reverse Cry_Yamask - cry_reverse Cry_Stunfisk -.else - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown -.endif - @ Hisuian Forms - cry_reverse Cry_Growlithe - cry_reverse Cry_Arcanine - cry_reverse Cry_Voltorb - cry_reverse Cry_Electrode - cry_reverse Cry_Typhlosion - cry_reverse Cry_Qwilfish - cry_reverse Cry_Sneasel -.if P_GEN_5_POKEMON == TRUE - cry_reverse Cry_Samurott - cry_reverse Cry_Lilligant - cry_reverse Cry_Zorua - cry_reverse Cry_Zoroark - cry_reverse Cry_Braviary -.else - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown -.endif -.if P_GEN_6_POKEMON == TRUE - cry_reverse Cry_Sliggoo - cry_reverse Cry_Goodra - cry_reverse Cry_Avalugg -.else - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown -.endif -.if P_GEN_7_POKEMON == TRUE - cry_reverse Cry_Decidueye -.else - cry_reverse Cry_Unown -.endif - @ Misc Forms - @ Cosplay Pikachu - cry_reverse Cry_Pikachu - cry_reverse Cry_Pikachu - cry_reverse Cry_Pikachu - cry_reverse Cry_Pikachu - cry_reverse Cry_Pikachu - cry_reverse Cry_Pikachu - @ Cap Pikachu - cry_reverse Cry_Pikachu - cry_reverse Cry_Pikachu - cry_reverse Cry_Pikachu - cry_reverse Cry_Pikachu - cry_reverse Cry_Pikachu - cry_reverse Cry_Pikachu - cry_reverse Cry_Pikachu - cry_reverse Cry_Pikachu - @ Pichu - cry_reverse Cry_Pichu - @ Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - @ Castform - cry_reverse Cry_Castform - cry_reverse Cry_Castform - cry_reverse Cry_Castform - @ Deoxys - cry_reverse Cry_Deoxys - cry_reverse Cry_Deoxys +.endif @ P_PRIMAL_REVERSIONS +.endif @ P_FAMILY_KYOGRE +.if P_FAMILY_GROUDON == TRUE + cry_reverse Cry_Groudon +.if P_PRIMAL_REVERSIONS == TRUE + cry_reverse Cry_GroudonPrimal +.endif @ P_PRIMAL_REVERSIONS +.endif @ P_FAMILY_GROUDON +.if P_FAMILY_RAYQUAZA == TRUE + cry_reverse Cry_Rayquaza +.if P_MEGA_EVOLUTIONS == TRUE + cry_reverse Cry_RayquazaMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_RAYQUAZA +.if P_FAMILY_JIRACHI == TRUE + cry_reverse Cry_Jirachi +.endif @ P_FAMILY_JIRACHI +.if P_FAMILY_DEOXYS == TRUE cry_reverse Cry_Deoxys -.if P_GEN_4_POKEMON == TRUE - @ Burmy - cry_reverse Cry_Burmy +.endif @ P_FAMILY_DEOXYS +.if P_FAMILY_TURTWIG == TRUE +.endif @ P_FAMILY_TURTWIG + cry_reverse Cry_Turtwig + cry_reverse Cry_Grotle + cry_reverse Cry_Torterra +.if P_FAMILY_CHIMCHAR == TRUE +.endif @ P_FAMILY_CHIMCHAR + cry_reverse Cry_Chimchar + cry_reverse Cry_Monferno + cry_reverse Cry_Infernape +.if P_FAMILY_PIPLUP == TRUE + cry_reverse Cry_Piplup + cry_reverse Cry_Prinplup + cry_reverse Cry_Empoleon +.endif @ P_FAMILY_PIPLUP +.if P_FAMILY_STARLY == TRUE + cry_reverse Cry_Starly + cry_reverse Cry_Staravia + cry_reverse Cry_Staraptor +.endif @ P_FAMILY_STARLY +.if P_FAMILY_BIDOOF == TRUE + cry_reverse Cry_Bidoof + cry_reverse Cry_Bibarel +.endif @ P_FAMILY_BIDOOF +.if P_FAMILY_KRICKETOT == TRUE + cry_reverse Cry_Kricketot + cry_reverse Cry_Kricketune +.endif @ P_FAMILY_KRICKETOT +.if P_FAMILY_SHINX == TRUE + cry_reverse Cry_Shinx + cry_reverse Cry_Luxio + cry_reverse Cry_Luxray +.endif @ P_FAMILY_SHINX +.if P_FAMILY_CRANIDOS == TRUE + cry_reverse Cry_Cranidos + cry_reverse Cry_Rampardos +.endif @ P_FAMILY_CRANIDOS +.if P_FAMILY_SHIELDON == TRUE + cry_reverse Cry_Shieldon + cry_reverse Cry_Bastiodon +.endif @ P_FAMILY_SHIELDON +.if P_FAMILY_BURMY == TRUE cry_reverse Cry_Burmy - @ Wormadam - cry_reverse Cry_Wormadam cry_reverse Cry_Wormadam - @ Cherrim + cry_reverse Cry_Mothim +.endif @ P_FAMILY_BURMY +.if P_FAMILY_COMBEE == TRUE + cry_reverse Cry_Combee + cry_reverse Cry_Vespiquen +.endif @ P_FAMILY_COMBEE +.if P_FAMILY_PACHIRISU == TRUE + cry_reverse Cry_Pachirisu +.endif @ P_FAMILY_PACHIRISU +.if P_FAMILY_BUIZEL == TRUE + cry_reverse Cry_Buizel + cry_reverse Cry_Floatzel +.endif @ P_FAMILY_BUIZEL +.if P_FAMILY_CHERUBI == TRUE + cry_reverse Cry_Cherubi cry_reverse Cry_Cherrim - @ Shellos +.endif @ P_FAMILY_CHERUBI +.if P_FAMILY_SHELLOS == TRUE cry_reverse Cry_Shellos - @ Gastrodon cry_reverse Cry_Gastrodon - @ Rotom - cry_reverse Cry_Rotom - cry_reverse Cry_Rotom - cry_reverse Cry_Rotom - cry_reverse Cry_Rotom +.endif @ P_FAMILY_SHELLOS +.if P_FAMILY_DRIFLOON == TRUE + cry_reverse Cry_Drifloon + cry_reverse Cry_Drifblim +.endif @ P_FAMILY_DRIFLOON +.if P_FAMILY_BUNEARY == TRUE + cry_reverse Cry_Buneary + cry_reverse Cry_Lopunny +.if P_MEGA_EVOLUTIONS == TRUE + cry_reverse Cry_LopunnyMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_BUNEARY +.if P_FAMILY_GLAMEOW == TRUE + cry_reverse Cry_Glameow + cry_reverse Cry_Purugly +.endif @ P_FAMILY_GLAMEOW +.if P_FAMILY_STUNKY == TRUE + cry_reverse Cry_Stunky + cry_reverse Cry_Skuntank +.endif @ P_FAMILY_STUNKY +.if P_FAMILY_BRONZOR == TRUE + cry_reverse Cry_Bronzor + cry_reverse Cry_Bronzong +.endif @ P_FAMILY_BRONZOR +.if P_FAMILY_CHATOT == TRUE + cry_reverse Cry_Chatot +.endif @ P_FAMILY_CHATOT +.if P_FAMILY_SPIRITOMB == TRUE + cry_reverse Cry_Spiritomb +.endif @ P_FAMILY_SPIRITOMB +.if P_FAMILY_GIBLE == TRUE + cry_reverse Cry_Gible + cry_reverse Cry_Gabite + cry_reverse Cry_Garchomp +.if P_MEGA_EVOLUTIONS == TRUE + cry_reverse Cry_GarchompMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_GIBLE +.if P_FAMILY_RIOLU == TRUE + cry_reverse Cry_Riolu + cry_reverse Cry_Lucario +.if P_MEGA_EVOLUTIONS == TRUE + cry_reverse Cry_LucarioMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_RIOLU +.if P_FAMILY_HIPPOPOTAS == TRUE + cry_reverse Cry_Hippopotas + cry_reverse Cry_Hippowdon +.endif @ P_FAMILY_HIPPOPOTAS +.if P_FAMILY_SKORUPI == TRUE + cry_reverse Cry_Skorupi + cry_reverse Cry_Drapion +.endif @ P_FAMILY_SKORUPI +.if P_FAMILY_CROAGUNK == TRUE + cry_reverse Cry_Croagunk + cry_reverse Cry_Toxicroak +.endif @ P_FAMILY_CROAGUNK +.if P_FAMILY_CARNIVINE == TRUE + cry_reverse Cry_Carnivine +.endif @ P_FAMILY_CARNIVINE +.if P_FAMILY_FINNEON == TRUE + cry_reverse Cry_Finneon + cry_reverse Cry_Lumineon +.endif @ P_FAMILY_FINNEON +.if P_FAMILY_SNOVER == TRUE + cry_reverse Cry_Snover + cry_reverse Cry_Abomasnow +.if P_MEGA_EVOLUTIONS == TRUE + cry_reverse Cry_AbomasnowMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_SNOVER +.if P_FAMILY_ROTOM == TRUE cry_reverse Cry_Rotom - @ Origin Forme +.endif @ P_FAMILY_ROTOM +.if P_FAMILY_UXIE == TRUE + cry_reverse Cry_Uxie +.endif @ P_FAMILY_UXIE +.if P_FAMILY_MESPRIT == TRUE + cry_reverse Cry_Mesprit +.endif @ P_FAMILY_MESPRIT +.if P_FAMILY_AZELF == TRUE + cry_reverse Cry_Azelf +.endif @ P_FAMILY_AZELF +.if P_FAMILY_DIALGA == TRUE cry_reverse Cry_Dialga +.endif @ P_FAMILY_DIALGA +.if P_FAMILY_PALKIA == TRUE cry_reverse Cry_Palkia +.endif @ P_FAMILY_PALKIA +.if P_FAMILY_HEATRAN == TRUE + cry_reverse Cry_Heatran +.endif @ P_FAMILY_HEATRAN +.if P_FAMILY_REGIGIGAS == TRUE + cry_reverse Cry_Regigigas +.endif @ P_FAMILY_REGIGIGAS +.if P_FAMILY_GIRATINA == TRUE cry_reverse Cry_Giratina - @ Shaymin +.endif @ P_FAMILY_GIRATINA +.if P_FAMILY_CRESSELIA == TRUE + cry_reverse Cry_Cresselia +.endif @ P_FAMILY_CRESSELIA +.if P_FAMILY_MANAPHY == TRUE + cry_reverse Cry_Phione + cry_reverse Cry_Manaphy +.endif @ P_FAMILY_MANAPHY +.if P_FAMILY_DARKRAI == TRUE + cry_reverse Cry_Darkrai +.endif @ P_FAMILY_DARKRAI +.if P_FAMILY_SHAYMIN == TRUE + cry_reverse Cry_ShayminLand cry_reverse Cry_ShayminSky - @ Arceus - cry_reverse Cry_Arceus - cry_reverse Cry_Arceus - cry_reverse Cry_Arceus - cry_reverse Cry_Arceus - cry_reverse Cry_Arceus - cry_reverse Cry_Arceus - cry_reverse Cry_Arceus - cry_reverse Cry_Arceus - cry_reverse Cry_Arceus - cry_reverse Cry_Arceus - cry_reverse Cry_Arceus - cry_reverse Cry_Arceus - cry_reverse Cry_Arceus - cry_reverse Cry_Arceus +.endif @ P_FAMILY_SHAYMIN +.if P_FAMILY_ARCEUS == TRUE cry_reverse Cry_Arceus - cry_reverse Cry_Arceus - cry_reverse Cry_Arceus -.else - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown -.endif -.if P_GEN_5_POKEMON == TRUE - @ Basculin - cry_reverse Cry_Basculin +.endif @ P_FAMILY_ARCEUS +.if P_FAMILY_VICTINI == TRUE + cry_reverse Cry_Victini +.endif @ P_FAMILY_VICTINI +.if P_FAMILY_SNIVY == TRUE + cry_reverse Cry_Snivy + cry_reverse Cry_Servine + cry_reverse Cry_Serperior +.endif @ P_FAMILY_SNIVY +.if P_FAMILY_TEPIG == TRUE + cry_reverse Cry_Tepig + cry_reverse Cry_Pignite + cry_reverse Cry_Emboar +.endif @ P_FAMILY_TEPIG +.if P_FAMILY_OSHAWOTT == TRUE + cry_reverse Cry_Oshawott + cry_reverse Cry_Dewott + cry_reverse Cry_Samurott +.endif @ P_FAMILY_OSHAWOTT +.if P_FAMILY_PATRAT == TRUE + cry_reverse Cry_Patrat + cry_reverse Cry_Watchog +.endif @ P_FAMILY_PATRAT +.if P_FAMILY_LILLIPUP == TRUE + cry_reverse Cry_Lillipup + cry_reverse Cry_Herdier + cry_reverse Cry_Stoutland +.endif @ P_FAMILY_LILLIPUP +.if P_FAMILY_PURRLOIN == TRUE + cry_reverse Cry_Purrloin + cry_reverse Cry_Liepard +.endif @ P_FAMILY_PURRLOIN +.if P_FAMILY_PANSAGE == TRUE + cry_reverse Cry_Pansage + cry_reverse Cry_Simisage +.endif @ P_FAMILY_PANSAGE +.if P_FAMILY_PANSEAR == TRUE + cry_reverse Cry_Pansear + cry_reverse Cry_Simisear +.endif @ P_FAMILY_PANSEAR +.if P_FAMILY_PANPOUR == TRUE + cry_reverse Cry_Panpour + cry_reverse Cry_Simipour +.endif @ P_FAMILY_PANPOUR +.if P_FAMILY_MUNNA == TRUE + cry_reverse Cry_Munna + cry_reverse Cry_Musharna +.endif @ P_FAMILY_MUNNA +.if P_FAMILY_PIDOVE == TRUE + cry_reverse Cry_Pidove + cry_reverse Cry_Tranquill + cry_reverse Cry_Unfezant +.endif @ P_FAMILY_PIDOVE +.if P_FAMILY_BLITZLE == TRUE + cry_reverse Cry_Blitzle + cry_reverse Cry_Zebstrika +.endif @ P_FAMILY_BLITZLE +.if P_FAMILY_ROGGENROLA == TRUE + cry_reverse Cry_Roggenrola + cry_reverse Cry_Boldore + cry_reverse Cry_Gigalith +.endif @ P_FAMILY_ROGGENROLA +.if P_FAMILY_WOOBAT == TRUE + cry_reverse Cry_Woobat + cry_reverse Cry_Swoobat +.endif @ P_FAMILY_WOOBAT +.if P_FAMILY_DRILBUR == TRUE + cry_reverse Cry_Drilbur + cry_reverse Cry_Excadrill +.endif @ P_FAMILY_DRILBUR +.if P_FAMILY_AUDINO == TRUE + cry_reverse Cry_Audino +.if P_MEGA_EVOLUTIONS == TRUE + cry_reverse Cry_AudinoMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_AUDINO +.if P_FAMILY_TIMBURR == TRUE + cry_reverse Cry_Timburr + cry_reverse Cry_Gurdurr + cry_reverse Cry_Conkeldurr +.endif @ P_FAMILY_TIMBURR +.if P_FAMILY_TYMPOLE == TRUE + cry_reverse Cry_Tympole + cry_reverse Cry_Palpitoad + cry_reverse Cry_Seismitoad +.endif @ P_FAMILY_TYMPOLE +.if P_FAMILY_THROH == TRUE + cry_reverse Cry_Throh +.endif @ P_FAMILY_THROH +.if P_FAMILY_SAWK == TRUE + cry_reverse Cry_Sawk +.endif @ P_FAMILY_SAWK +.if P_FAMILY_SEWADDLE == TRUE + cry_reverse Cry_Sewaddle + cry_reverse Cry_Swadloon + cry_reverse Cry_Leavanny +.endif @ P_FAMILY_SEWADDLE +.if P_FAMILY_VENIPEDE == TRUE + cry_reverse Cry_Venipede + cry_reverse Cry_Whirlipede + cry_reverse Cry_Scolipede +.endif @ P_FAMILY_VENIPEDE +.if P_FAMILY_COTTONEE == TRUE + cry_reverse Cry_Cottonee + cry_reverse Cry_Whimsicott +.endif @ P_FAMILY_COTTONEE +.if P_FAMILY_PETILIL == TRUE + cry_reverse Cry_Petilil + cry_reverse Cry_Lilligant +.endif @ P_FAMILY_PETILIL +.if P_FAMILY_BASCULIN == TRUE cry_reverse Cry_Basculin - @ Darmanitan - cry_reverse Cry_Darmanitan +.if P_HISUIAN_FORMS == TRUE + cry_reverse Cry_Basculegion +.endif @ P_HISUIAN_FORMS +.endif @ P_FAMILY_BASCULIN +.if P_FAMILY_SANDILE == TRUE + cry_reverse Cry_Sandile + cry_reverse Cry_Krokorok + cry_reverse Cry_Krookodile +.endif @ P_FAMILY_SANDILE +.if P_FAMILY_DARUMAKA == TRUE + cry_reverse Cry_Darumaka cry_reverse Cry_Darmanitan - @ Deerling - cry_reverse Cry_Deerling - cry_reverse Cry_Deerling +.endif @ P_FAMILY_DARUMAKA +.if P_FAMILY_MARACTUS == TRUE + cry_reverse Cry_Maractus +.endif @ P_FAMILY_MARACTUS +.if P_FAMILY_DWEBBLE == TRUE + cry_reverse Cry_Dwebble + cry_reverse Cry_Crustle +.endif @ P_FAMILY_DWEBBLE +.if P_FAMILY_SCRAGGY == TRUE + cry_reverse Cry_Scraggy + cry_reverse Cry_Scrafty +.endif @ P_FAMILY_SCRAGGY +.if P_FAMILY_SIGILYPH == TRUE + cry_reverse Cry_Sigilyph +.endif @ P_FAMILY_SIGILYPH +.if P_FAMILY_YAMASK == TRUE + cry_reverse Cry_Yamask + cry_reverse Cry_Cofagrigus +.if P_GALARIAN_FORMS == TRUE + cry_reverse Cry_Runerigus +.endif @ P_GALARIAN_FORMS +.endif @ P_FAMILY_YAMASK +.if P_FAMILY_TIRTOUGA == TRUE + cry_reverse Cry_Tirtouga + cry_reverse Cry_Carracosta +.endif @ P_FAMILY_TIRTOUGA +.if P_FAMILY_ARCHEN == TRUE + cry_reverse Cry_Archen + cry_reverse Cry_Archeops +.endif @ P_FAMILY_ARCHEN +.if P_FAMILY_TRUBBISH == TRUE + cry_reverse Cry_Trubbish + cry_reverse Cry_Garbodor +.endif @ P_FAMILY_TRUBBISH +.if P_FAMILY_ZORUA == TRUE + cry_reverse Cry_Zorua + cry_reverse Cry_Zoroark +.endif @ P_FAMILY_ZORUA +.if P_FAMILY_MINCCINO == TRUE + cry_reverse Cry_Minccino + cry_reverse Cry_Cinccino +.endif @ P_FAMILY_MINCCINO +.if P_FAMILY_GOTHITA == TRUE + cry_reverse Cry_Gothita + cry_reverse Cry_Gothorita + cry_reverse Cry_Gothitelle +.endif @ P_FAMILY_GOTHITA +.if P_FAMILY_SOLOSIS == TRUE + cry_reverse Cry_Solosis + cry_reverse Cry_Duosion + cry_reverse Cry_Reuniclus +.endif @ P_FAMILY_SOLOSIS +.if P_FAMILY_DUCKLETT == TRUE + cry_reverse Cry_Ducklett + cry_reverse Cry_Swanna +.endif @ P_FAMILY_DUCKLETT +.if P_FAMILY_VANILLITE == TRUE + cry_reverse Cry_Vanillite + cry_reverse Cry_Vanillish + cry_reverse Cry_Vanilluxe +.endif @ P_FAMILY_VANILLITE +.if P_FAMILY_DEERLING == TRUE cry_reverse Cry_Deerling - @ Sawsbuck - cry_reverse Cry_Sawsbuck cry_reverse Cry_Sawsbuck - cry_reverse Cry_Sawsbuck - @ Therian Forms +.endif @ P_FAMILY_DEERLING +.if P_FAMILY_EMOLGA == TRUE + cry_reverse Cry_Emolga +.endif @ P_FAMILY_EMOLGA +.if P_FAMILY_KARRABLAST == TRUE + cry_reverse Cry_Karrablast + cry_reverse Cry_Escavalier +.endif @ P_FAMILY_KARRABLAST +.if P_FAMILY_FOONGUS == TRUE + cry_reverse Cry_Foongus + cry_reverse Cry_Amoonguss +.endif @ P_FAMILY_FOONGUS +.if P_FAMILY_FRILLISH == TRUE + cry_reverse Cry_Frillish + cry_reverse Cry_Jellicent +.endif @ P_FAMILY_FRILLISH +.if P_FAMILY_ALOMOMOLA == TRUE + cry_reverse Cry_Alomomola +.endif @ P_FAMILY_ALOMOMOLA +.if P_FAMILY_JOLTIK == TRUE + cry_reverse Cry_Joltik + cry_reverse Cry_Galvantula +.endif @ P_FAMILY_JOLTIK +.if P_FAMILY_FERROSEED == TRUE + cry_reverse Cry_Ferroseed + cry_reverse Cry_Ferrothorn +.endif @ P_FAMILY_FERROSEED +.if P_FAMILY_KLINK == TRUE + cry_reverse Cry_Klink + cry_reverse Cry_Klang + cry_reverse Cry_Klinklang +.endif @ P_FAMILY_KLINK +.if P_FAMILY_TYNAMO == TRUE + cry_reverse Cry_Tynamo + cry_reverse Cry_Eelektrik + cry_reverse Cry_Eelektross +.endif @ P_FAMILY_TYNAMO +.if P_FAMILY_ELGYEM == TRUE + cry_reverse Cry_Elgyem + cry_reverse Cry_Beheeyem +.endif @ P_FAMILY_ELGYEM +.if P_FAMILY_LITWICK == TRUE + cry_reverse Cry_Litwick + cry_reverse Cry_Lampent + cry_reverse Cry_Chandelure +.endif @ P_FAMILY_LITWICK +.if P_FAMILY_AXEW == TRUE + cry_reverse Cry_Axew + cry_reverse Cry_Fraxure + cry_reverse Cry_Haxorus +.endif @ P_FAMILY_AXEW +.if P_FAMILY_CUBCHOO == TRUE + cry_reverse Cry_Cubchoo + cry_reverse Cry_Beartic +.endif @ P_FAMILY_CUBCHOO +.if P_FAMILY_CRYOGONAL == TRUE + cry_reverse Cry_Cryogonal +.endif @ P_FAMILY_CRYOGONAL +.if P_FAMILY_SHELMET == TRUE + cry_reverse Cry_Shelmet + cry_reverse Cry_Accelgor +.endif @ P_FAMILY_SHELMET +.if P_FAMILY_STUNFISK == TRUE + cry_reverse Cry_Stunfisk +.endif @ P_FAMILY_STUNFISK +.if P_FAMILY_MIENFOO == TRUE + cry_reverse Cry_Mienfoo + cry_reverse Cry_Mienshao +.endif @ P_FAMILY_MIENFOO +.if P_FAMILY_DRUDDIGON == TRUE + cry_reverse Cry_Druddigon +.endif @ P_FAMILY_DRUDDIGON +.if P_FAMILY_GOLETT == TRUE + cry_reverse Cry_Golett + cry_reverse Cry_Golurk +.endif @ P_FAMILY_GOLETT +.if P_FAMILY_PAWNIARD == TRUE + cry_reverse Cry_Pawniard + cry_reverse Cry_Bisharp +.if P_GEN_9_CROSS_EVOS == TRUE + cry_reverse Cry_Kingambit +.endif @ P_GEN_9_CROSS_EVOS +.endif @ P_FAMILY_PAWNIARD +.if P_FAMILY_BOUFFALANT == TRUE + cry_reverse Cry_Bouffalant +.endif @ P_FAMILY_BOUFFALANT +.if P_FAMILY_RUFFLET == TRUE + cry_reverse Cry_Rufflet + cry_reverse Cry_Braviary +.endif @ P_FAMILY_RUFFLET +.if P_FAMILY_VULLABY == TRUE + cry_reverse Cry_Vullaby + cry_reverse Cry_Mandibuzz +.endif @ P_FAMILY_VULLABY +.if P_FAMILY_HEATMOR == TRUE + cry_reverse Cry_Heatmor +.endif @ P_FAMILY_HEATMOR +.if P_FAMILY_DURANT == TRUE + cry_reverse Cry_Durant +.endif @ P_FAMILY_DURANT +.if P_FAMILY_DEINO == TRUE + cry_reverse Cry_Deino + cry_reverse Cry_Zweilous + cry_reverse Cry_Hydreigon +.endif @ P_FAMILY_DEINO +.if P_FAMILY_LARVESTA == TRUE + cry_reverse Cry_Larvesta + cry_reverse Cry_Volcarona +.endif @ P_FAMILY_LARVESTA +.if P_FAMILY_COBALION == TRUE + cry_reverse Cry_Cobalion +.endif @ P_FAMILY_COBALION +.if P_FAMILY_TERRAKION == TRUE + cry_reverse Cry_Terrakion +.endif @ P_FAMILY_TERRAKION +.if P_FAMILY_VIRIZION == TRUE + cry_reverse Cry_Virizion +.endif @ P_FAMILY_VIRIZION +.if P_FAMILY_TORNADUS == TRUE + cry_reverse Cry_TornadusIncarnate cry_reverse Cry_TornadusTherian +.endif @ P_FAMILY_TORNADUS +.if P_FAMILY_THUNDURUS == TRUE + cry_reverse Cry_ThundurusIncarnate cry_reverse Cry_ThundurusTherian +.endif @ P_FAMILY_THUNDURUS +.if P_FAMILY_RESHIRAM == TRUE + cry_reverse Cry_Reshiram +.endif @ P_FAMILY_RESHIRAM +.if P_FAMILY_ZEKROM == TRUE + cry_reverse Cry_Zekrom +.endif @ P_FAMILY_ZEKROM +.if P_FAMILY_LANDORUS == TRUE + cry_reverse Cry_LandorusIncarnate cry_reverse Cry_LandorusTherian - cry_reverse Cry_EnamorusTherian - @ Kyurem +.endif @ P_FAMILY_LANDORUS +.if P_FAMILY_KYUREM == TRUE + cry_reverse Cry_Kyurem +.if P_FUSION_FORMS == TRUE cry_reverse Cry_KyuremWhite cry_reverse Cry_KyuremBlack - @ Keldeo +.endif @ P_FUSION_FORMS +.endif @ P_FAMILY_KYUREM +.if P_FAMILY_KELDEO == TRUE cry_reverse Cry_Keldeo - @ Meloetta +.endif @ P_FAMILY_KELDEO +.if P_FAMILY_MELOETTA == TRUE cry_reverse Cry_Meloetta - @ Genesect - cry_reverse Cry_Genesect +.endif @ P_FAMILY_MELOETTA +.if P_FAMILY_GENESECT == TRUE cry_reverse Cry_Genesect - cry_reverse Cry_Genesect - cry_reverse Cry_Genesect -.else - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown -.endif -.if P_GEN_6_POKEMON == TRUE - @ Greninja - cry_reverse Cry_Greninja +.endif @ P_FAMILY_GENESECT +.if P_FAMILY_CHESPIN == TRUE + cry_reverse Cry_Chespin + cry_reverse Cry_Quilladin + cry_reverse Cry_Chesnaught +.endif @ P_FAMILY_CHESPIN +.if P_FAMILY_FENNEKIN == TRUE + cry_reverse Cry_Fennekin + cry_reverse Cry_Braixen + cry_reverse Cry_Delphox +.endif @ P_FAMILY_FENNEKIN +.if P_FAMILY_FROAKIE == TRUE + cry_reverse Cry_Froakie + cry_reverse Cry_Frogadier cry_reverse Cry_Greninja - @ Vivillon - cry_reverse Cry_Vivillon - cry_reverse Cry_Vivillon - cry_reverse Cry_Vivillon - cry_reverse Cry_Vivillon - cry_reverse Cry_Vivillon - cry_reverse Cry_Vivillon - cry_reverse Cry_Vivillon - cry_reverse Cry_Vivillon - cry_reverse Cry_Vivillon - cry_reverse Cry_Vivillon - cry_reverse Cry_Vivillon - cry_reverse Cry_Vivillon - cry_reverse Cry_Vivillon - cry_reverse Cry_Vivillon - cry_reverse Cry_Vivillon - cry_reverse Cry_Vivillon - cry_reverse Cry_Vivillon - cry_reverse Cry_Vivillon +.endif @ P_FAMILY_FROAKIE +.if P_FAMILY_BUNNELBY == TRUE + cry_reverse Cry_Bunnelby + cry_reverse Cry_Diggersby +.endif @ P_FAMILY_BUNNELBY +.if P_FAMILY_FLETCHLING == TRUE + cry_reverse Cry_Fletchling + cry_reverse Cry_Fletchinder + cry_reverse Cry_Talonflame +.endif @ P_FAMILY_FLETCHLING +.if P_FAMILY_SCATTERBUG == TRUE + cry_reverse Cry_Scatterbug + cry_reverse Cry_Spewpa cry_reverse Cry_Vivillon - @ Flabébé - cry_reverse Cry_Flabebe - cry_reverse Cry_Flabebe - cry_reverse Cry_Flabebe +.endif @ P_FAMILY_SCATTERBUG +.if P_FAMILY_LITLEO == TRUE + cry_reverse Cry_Litleo + cry_reverse Cry_Pyroar +.endif @ P_FAMILY_LITLEO +.if P_FAMILY_FLABEBE == TRUE cry_reverse Cry_Flabebe - @ Floette - cry_reverse Cry_Floette - cry_reverse Cry_Floette - cry_reverse Cry_Floette cry_reverse Cry_Floette cry_reverse Cry_FloetteEternalFlower - @ Florges - cry_reverse Cry_Florges - cry_reverse Cry_Florges cry_reverse Cry_Florges - cry_reverse Cry_Florges - @ Furfrou - cry_reverse Cry_Furfrou - cry_reverse Cry_Furfrou - cry_reverse Cry_Furfrou - cry_reverse Cry_Furfrou - cry_reverse Cry_Furfrou - cry_reverse Cry_Furfrou - cry_reverse Cry_Furfrou - cry_reverse Cry_Furfrou +.endif @ P_FAMILY_FLABEBE +.if P_FAMILY_SKIDDO == TRUE + cry_reverse Cry_Skiddo + cry_reverse Cry_Gogoat +.endif @ P_FAMILY_SKIDDO +.if P_FAMILY_PANCHAM == TRUE + cry_reverse Cry_Pancham + cry_reverse Cry_Pangoro +.endif @ P_FAMILY_PANCHAM +.if P_FAMILY_FURFROU == TRUE cry_reverse Cry_Furfrou - @ Meowstic +.endif @ P_FAMILY_FURFROU +.if P_FAMILY_ESPURR == TRUE + cry_reverse Cry_Espurr cry_reverse Cry_Meowstic - @ Aegislash +.endif @ P_FAMILY_ESPURR +.if P_FAMILY_HONEDGE == TRUE + cry_reverse Cry_Honedge + cry_reverse Cry_Doublade cry_reverse Cry_Aegislash - @ Pumpkaboo - cry_reverse Cry_Pumpkaboo +.endif @ P_FAMILY_HONEDGE +.if P_FAMILY_SPRITZEE == TRUE + cry_reverse Cry_Spritzee + cry_reverse Cry_Aromatisse +.endif @ P_FAMILY_SPRITZEE +.if P_FAMILY_SWIRLIX == TRUE + cry_reverse Cry_Swirlix + cry_reverse Cry_Slurpuff +.endif @ P_FAMILY_SWIRLIX +.if P_FAMILY_INKAY == TRUE + cry_reverse Cry_Inkay + cry_reverse Cry_Malamar +.endif @ P_FAMILY_INKAY +.if P_FAMILY_BINACLE == TRUE + cry_reverse Cry_Binacle + cry_reverse Cry_Barbaracle +.endif @ P_FAMILY_BINACLE +.if P_FAMILY_SKRELP == TRUE + cry_reverse Cry_Skrelp + cry_reverse Cry_Dragalge +.endif @ P_FAMILY_SKRELP +.if P_FAMILY_CLAUNCHER == TRUE + cry_reverse Cry_Clauncher + cry_reverse Cry_Clawitzer +.endif @ P_FAMILY_CLAUNCHER +.if P_FAMILY_HELIOPTILE == TRUE + cry_reverse Cry_Helioptile + cry_reverse Cry_Heliolisk +.endif @ P_FAMILY_HELIOPTILE +.if P_FAMILY_TYRUNT == TRUE + cry_reverse Cry_Tyrunt + cry_reverse Cry_Tyrantrum +.endif @ P_FAMILY_TYRUNT +.if P_FAMILY_AMAURA == TRUE + cry_reverse Cry_Amaura + cry_reverse Cry_Aurorus +.endif @ P_FAMILY_AMAURA +.if P_FAMILY_HAWLUCHA == TRUE + cry_reverse Cry_Hawlucha +.endif @ P_FAMILY_HAWLUCHA +.if P_FAMILY_DEDENNE == TRUE + cry_reverse Cry_Dedenne +.endif @ P_FAMILY_DEDENNE +.if P_FAMILY_CARBINK == TRUE + cry_reverse Cry_Carbink +.endif @ P_FAMILY_CARBINK +.if P_FAMILY_GOOMY == TRUE + cry_reverse Cry_Goomy + cry_reverse Cry_Sliggoo + cry_reverse Cry_Goodra +.endif @ P_FAMILY_GOOMY +.if P_FAMILY_KLEFKI == TRUE + cry_reverse Cry_Klefki +.endif @ P_FAMILY_KLEFKI +.if P_FAMILY_PHANTUMP == TRUE + cry_reverse Cry_Phantump + cry_reverse Cry_Trevenant +.endif @ P_FAMILY_PHANTUMP +.if P_FAMILY_PUMPKABOO == TRUE cry_reverse Cry_Pumpkaboo cry_reverse Cry_PumpkabooSuper - @ Gourgeist - cry_reverse Cry_Gourgeist cry_reverse Cry_Gourgeist cry_reverse Cry_GourgeistSuper - @ Xerneas +.endif @ P_FAMILY_PUMPKABOO +.if P_FAMILY_BERGMITE == TRUE + cry_reverse Cry_Bergmite + cry_reverse Cry_Avalugg +.endif @ P_FAMILY_BERGMITE +.if P_FAMILY_NOIBAT == TRUE + cry_reverse Cry_Noibat + cry_reverse Cry_Noivern +.endif @ P_FAMILY_NOIBAT +.if P_FAMILY_XERNEAS == TRUE cry_reverse Cry_Xerneas - @ Zygarde - cry_reverse Cry_Zygarde10 +.endif @ P_FAMILY_XERNEAS +.if P_FAMILY_YVELTAL == TRUE + cry_reverse Cry_Yveltal +.endif @ P_FAMILY_YVELTAL +.if P_FAMILY_ZYGARDE == TRUE + cry_reverse Cry_Zygarde50 cry_reverse Cry_Zygarde10 - cry_reverse Cry_Zygarde cry_reverse Cry_ZygardeComplete - @ Hoopa +.endif @ P_FAMILY_ZYGARDE +.if P_FAMILY_DIANCIE == TRUE + cry_reverse Cry_Diancie +.if P_MEGA_EVOLUTIONS == TRUE + cry_reverse Cry_DiancieMega +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_DIANCIE +.if P_FAMILY_HOOPA == TRUE + cry_reverse Cry_HoopaConfined cry_reverse Cry_HoopaUnbound -.else - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown -.endif -.if P_GEN_7_POKEMON == TRUE - @ Oricorio +.endif @ P_FAMILY_HOOPA +.if P_FAMILY_VOLCANION == TRUE + cry_reverse Cry_Volcanion +.endif @ P_FAMILY_VOLCANION +.if P_FAMILY_ROWLET == TRUE + cry_reverse Cry_Rowlet + cry_reverse Cry_Dartrix + cry_reverse Cry_Decidueye +.endif @ P_FAMILY_ROWLET +.if P_FAMILY_LITTEN == TRUE + cry_reverse Cry_Litten + cry_reverse Cry_Torracat + cry_reverse Cry_Incineroar +.endif @ P_FAMILY_LITTEN +.if P_FAMILY_POPPLIO == TRUE + cry_reverse Cry_Popplio + cry_reverse Cry_Brionne + cry_reverse Cry_Primarina +.endif @ P_FAMILY_POPPLIO +.if P_FAMILY_PIKIPEK == TRUE + cry_reverse Cry_Pikipek + cry_reverse Cry_Trumbeak + cry_reverse Cry_Toucannon +.endif @ P_FAMILY_PIKIPEK +.if P_FAMILY_YUNGOOS == TRUE + cry_reverse Cry_Yungoos + cry_reverse Cry_Gumshoos +.endif @ P_FAMILY_YUNGOOS +.if P_FAMILY_GRUBBIN == TRUE + cry_reverse Cry_Grubbin + cry_reverse Cry_Charjabug + cry_reverse Cry_Vikavolt +.endif @ P_FAMILY_GRUBBIN +.if P_FAMILY_CRABRAWLER == TRUE + cry_reverse Cry_Crabrawler + cry_reverse Cry_Crabominable +.endif @ P_FAMILY_CRABRAWLER +.if P_FAMILY_ORICORIO == TRUE + cry_reverse Cry_OricorioBaile cry_reverse Cry_OricorioPomPom cry_reverse Cry_OricorioPau cry_reverse Cry_OricorioSensu - @ Rockruff +.endif @ P_FAMILY_ORICORIO +.if P_FAMILY_CUTIEFLY == TRUE + cry_reverse Cry_Cutiefly + cry_reverse Cry_Ribombee +.endif @ P_FAMILY_CUTIEFLY +.if P_FAMILY_ROCKRUFF == TRUE cry_reverse Cry_Rockruff - @ Lycanroc + cry_reverse Cry_LycanrocMidday cry_reverse Cry_LycanrocMidnight cry_reverse Cry_LycanrocDusk - @ Wishiwashi +.endif @ P_FAMILY_ROCKRUFF +.if P_FAMILY_WISHIWASHI == TRUE + cry_reverse Cry_WishiwashiSolo cry_reverse Cry_WishiwashiSchool - @ Silvally - cry_reverse Cry_Silvally - cry_reverse Cry_Silvally - cry_reverse Cry_Silvally - cry_reverse Cry_Silvally - cry_reverse Cry_Silvally - cry_reverse Cry_Silvally - cry_reverse Cry_Silvally - cry_reverse Cry_Silvally - cry_reverse Cry_Silvally - cry_reverse Cry_Silvally - cry_reverse Cry_Silvally - cry_reverse Cry_Silvally - cry_reverse Cry_Silvally - cry_reverse Cry_Silvally - cry_reverse Cry_Silvally - cry_reverse Cry_Silvally +.endif @ P_FAMILY_WISHIWASHI +.if P_FAMILY_MAREANIE == TRUE + cry_reverse Cry_Mareanie + cry_reverse Cry_Toxapex +.endif @ P_FAMILY_MAREANIE +.if P_FAMILY_MUDBRAY == TRUE + cry_reverse Cry_Mudbray + cry_reverse Cry_Mudsdale +.endif @ P_FAMILY_MUDBRAY +.if P_FAMILY_DEWPIDER == TRUE + cry_reverse Cry_Dewpider + cry_reverse Cry_Araquanid +.endif @ P_FAMILY_DEWPIDER +.if P_FAMILY_FOMANTIS == TRUE + cry_reverse Cry_Fomantis + cry_reverse Cry_Lurantis +.endif @ P_FAMILY_FOMANTIS +.if P_FAMILY_MORELULL == TRUE + cry_reverse Cry_Morelull + cry_reverse Cry_Shiinotic +.endif @ P_FAMILY_MORELULL +.if P_FAMILY_SALANDIT == TRUE + cry_reverse Cry_Salandit + cry_reverse Cry_Salazzle +.endif @ P_FAMILY_SALANDIT +.if P_FAMILY_STUFFUL == TRUE + cry_reverse Cry_Stufful + cry_reverse Cry_Bewear +.endif @ P_FAMILY_STUFFUL +.if P_FAMILY_BOUNSWEET == TRUE + cry_reverse Cry_Bounsweet + cry_reverse Cry_Steenee + cry_reverse Cry_Tsareena +.endif @ P_FAMILY_BOUNSWEET +.if P_FAMILY_COMFEY == TRUE + cry_reverse Cry_Comfey +.endif @ P_FAMILY_COMFEY +.if P_FAMILY_ORANGURU == TRUE + cry_reverse Cry_Oranguru +.endif @ P_FAMILY_ORANGURU +.if P_FAMILY_PASSIMIAN == TRUE + cry_reverse Cry_Passimian +.endif @ P_FAMILY_PASSIMIAN +.if P_FAMILY_WIMPOD == TRUE + cry_reverse Cry_Wimpod + cry_reverse Cry_Golisopod +.endif @ P_FAMILY_WIMPOD +.if P_FAMILY_SANDYGAST == TRUE + cry_reverse Cry_Sandygast + cry_reverse Cry_Palossand +.endif @ P_FAMILY_SANDYGAST +.if P_FAMILY_PYUKUMUKU == TRUE + cry_reverse Cry_Pyukumuku +.endif @ P_FAMILY_PYUKUMUKU +.if P_FAMILY_TYPE_NULL == TRUE + cry_reverse Cry_TypeNull cry_reverse Cry_Silvally - @ Minior - cry_reverse Cry_Minior - cry_reverse Cry_Minior - cry_reverse Cry_Minior - cry_reverse Cry_Minior - cry_reverse Cry_Minior - cry_reverse Cry_Minior - cry_reverse Cry_Minior +.endif @ P_FAMILY_TYPE_NULL +.if P_FAMILY_MINIOR == TRUE cry_reverse Cry_Minior - cry_reverse Cry_Minior - cry_reverse Cry_Minior - cry_reverse Cry_Minior - cry_reverse Cry_Minior - cry_reverse Cry_Minior - @ Mimikyu +.endif @ P_FAMILY_MINIOR +.if P_FAMILY_KOMALA == TRUE + cry_reverse Cry_Komala +.endif @ P_FAMILY_KOMALA +.if P_FAMILY_TURTONATOR == TRUE + cry_reverse Cry_Turtonator +.endif @ P_FAMILY_TURTONATOR +.if P_FAMILY_TOGEDEMARU == TRUE + cry_reverse Cry_Togedemaru +.endif @ P_FAMILY_TOGEDEMARU +.if P_FAMILY_MIMIKYU == TRUE cry_reverse Cry_Mimikyu - @ Necrozma +.endif @ P_FAMILY_MIMIKYU +.if P_FAMILY_BRUXISH == TRUE + cry_reverse Cry_Bruxish +.endif @ P_FAMILY_BRUXISH +.if P_FAMILY_DRAMPA == TRUE + cry_reverse Cry_Drampa +.endif @ P_FAMILY_DRAMPA +.if P_FAMILY_DHELMISE == TRUE + cry_reverse Cry_Dhelmise +.endif @ P_FAMILY_DHELMISE +.if P_FAMILY_JANGMO_O == TRUE + cry_reverse Cry_JangmoO + cry_reverse Cry_HakamoO + cry_reverse Cry_KommoO +.endif @ P_FAMILY_JANGMO_O +.if P_FAMILY_TAPU_KOKO == TRUE + cry_reverse Cry_TapuKoko +.endif @ P_FAMILY_TAPU_KOKO +.if P_FAMILY_TAPU_LELE == TRUE + cry_reverse Cry_TapuLele +.endif @ P_FAMILY_TAPU_LELE +.if P_FAMILY_TAPU_BULU == TRUE + cry_reverse Cry_TapuBulu +.endif @ P_FAMILY_TAPU_BULU +.if P_FAMILY_TAPU_FINI == TRUE + cry_reverse Cry_TapuFini +.endif @ P_FAMILY_TAPU_FINI +.if P_FAMILY_COSMOG == TRUE + cry_reverse Cry_Cosmog + cry_reverse Cry_Cosmoem + cry_reverse Cry_Solgaleo + cry_reverse Cry_Lunala +.endif @ P_FAMILY_COSMOG +.if P_FAMILY_NIHILEGO == TRUE + cry_reverse Cry_Nihilego +.endif @ P_FAMILY_NIHILEGO +.if P_FAMILY_BUZZWOLE == TRUE + cry_reverse Cry_Buzzwole +.endif @ P_FAMILY_BUZZWOLE +.if P_FAMILY_PHEROMOSA == TRUE + cry_reverse Cry_Pheromosa +.endif @ P_FAMILY_PHEROMOSA +.if P_FAMILY_XURKITREE == TRUE + cry_reverse Cry_Xurkitree +.endif @ P_FAMILY_XURKITREE +.if P_FAMILY_CELESTEELA == TRUE + cry_reverse Cry_Celesteela +.endif @ P_FAMILY_CELESTEELA +.if P_FAMILY_KARTANA == TRUE + cry_reverse Cry_Kartana +.endif @ P_FAMILY_KARTANA +.if P_FAMILY_GUZZLORD == TRUE + cry_reverse Cry_Guzzlord +.endif @ P_FAMILY_GUZZLORD +.if P_FAMILY_NECROZMA == TRUE + cry_reverse Cry_Necrozma +.if P_FUSION_FORMS == TRUE cry_reverse Cry_NecrozmaDuskMane cry_reverse Cry_NecrozmaDawnWings +.if P_ULTRA_BURST_FORMS == TRUE cry_reverse Cry_NecrozmaUltra - @ Magearna +.endif @ P_ULTRA_BURST_FORMS +.endif @ P_FUSION_FORMS +.endif @ P_FAMILY_NECROZMA +.if P_FAMILY_MAGEARNA == TRUE cry_reverse Cry_Magearna -.else - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown -.endif -.if P_GEN_8_POKEMON == TRUE - @ Cramorant - cry_reverse Cry_Cramorant - cry_reverse Cry_Cramorant - @ Toxtricity - cry_reverse Cry_ToxtricityLowKey - @ Sinistea - cry_reverse Cry_Sinistea - @ Polteageist - cry_reverse Cry_Polteageist - @ Alcremie - cry_reverse Cry_Alcremie - cry_reverse Cry_Alcremie - cry_reverse Cry_Alcremie - cry_reverse Cry_Alcremie - cry_reverse Cry_Alcremie - cry_reverse Cry_Alcremie - cry_reverse Cry_Alcremie - cry_reverse Cry_Alcremie - @ Eiscue - cry_reverse Cry_EiscueNoiceFace - @ Indeedee - cry_reverse Cry_IndeedeeFemale - @ Morpeko - cry_reverse Cry_MorpekoHangry - @ Zacian - cry_reverse Cry_ZacianCrownedSword - @ Zamazenta - cry_reverse Cry_ZamazentaCrownedShield - @ Eternatus - cry_reverse Cry_EternatusEternamax - @ Urshifu - cry_reverse Cry_UrshifuRapidStrikeStyle - @ Zarude - cry_reverse Cry_Zarude - @ Calyrex - cry_reverse Cry_CalyrexIceRider - cry_reverse Cry_CalyrexShadowRider - @ Basculegion - cry_reverse Cry_Basculegion -.else - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown -.endif - @ Gigantamax Forms - cry_reverse Cry_Venusaur - cry_reverse Cry_Charizard - cry_reverse Cry_Blastoise - cry_reverse Cry_Butterfree - cry_reverse Cry_Pikachu - cry_reverse Cry_Meowth - cry_reverse Cry_Machamp - cry_reverse Cry_Gengar - cry_reverse Cry_Kingler - cry_reverse Cry_Lapras - cry_reverse Cry_Eevee - cry_reverse Cry_Snorlax -.if P_GEN_5_POKEMON == TRUE - cry_reverse Cry_Garbodor -.else - cry_reverse Cry_Unown -.endif -.if P_GEN_7_POKEMON == TRUE +.endif @ P_FAMILY_MAGEARNA +.if P_FAMILY_MARSHADOW == TRUE + cry_reverse Cry_Marshadow +.endif @ P_FAMILY_MARSHADOW +.if P_FAMILY_POIPOLE == TRUE + cry_reverse Cry_Poipole + cry_reverse Cry_Naganadel +.endif @ P_FAMILY_POIPOLE +.if P_FAMILY_STAKATAKA == TRUE + cry_reverse Cry_Stakataka +.endif @ P_FAMILY_STAKATAKA +.if P_FAMILY_BLACEPHALON == TRUE + cry_reverse Cry_Blacephalon +.endif @ P_FAMILY_BLACEPHALON +.if P_FAMILY_ZERAORA == TRUE + cry_reverse Cry_Zeraora +.endif @ P_FAMILY_ZERAORA +.if P_FAMILY_MELTAN == TRUE + cry_reverse Cry_Meltan cry_reverse Cry_Melmetal -.else - cry_reverse Cry_Unown -.endif -.if P_GEN_8_POKEMON == TRUE +.endif @ P_FAMILY_MELTAN +.if P_FAMILY_GROOKEY == TRUE + cry_reverse Cry_Grookey + cry_reverse Cry_Thwackey cry_reverse Cry_Rillaboom +.endif @ P_FAMILY_GROOKEY +.if P_FAMILY_SCORBUNNY == TRUE + cry_reverse Cry_Scorbunny + cry_reverse Cry_Raboot cry_reverse Cry_Cinderace +.endif @ P_FAMILY_SCORBUNNY +.if P_FAMILY_SOBBLE == TRUE + cry_reverse Cry_Sobble + cry_reverse Cry_Drizzile cry_reverse Cry_Inteleon +.endif @ P_FAMILY_SOBBLE +.if P_FAMILY_SKWOVET == TRUE + cry_reverse Cry_Skwovet + cry_reverse Cry_Greedent +.endif @ P_FAMILY_SKWOVET +.if P_FAMILY_ROOKIDEE == TRUE + cry_reverse Cry_Rookidee + cry_reverse Cry_Corvisquire cry_reverse Cry_Corviknight +.endif @ P_FAMILY_ROOKIDEE +.if P_FAMILY_BLIPBUG == TRUE + cry_reverse Cry_Blipbug + cry_reverse Cry_Dottler cry_reverse Cry_Orbeetle +.endif @ P_FAMILY_BLIPBUG +.if P_FAMILY_NICKIT == TRUE + cry_reverse Cry_Nickit + cry_reverse Cry_Thievul +.endif @ P_FAMILY_NICKIT +.if P_FAMILY_GOSSIFLEUR == TRUE + cry_reverse Cry_Gossifleur + cry_reverse Cry_Eldegoss +.endif @ P_FAMILY_GOSSIFLEUR +.if P_FAMILY_WOOLOO == TRUE + cry_reverse Cry_Wooloo + cry_reverse Cry_Dubwool +.endif @ P_FAMILY_WOOLOO +.if P_FAMILY_CHEWTLE == TRUE + cry_reverse Cry_Chewtle cry_reverse Cry_Drednaw +.endif @ P_FAMILY_CHEWTLE +.if P_FAMILY_YAMPER == TRUE + cry_reverse Cry_Yamper + cry_reverse Cry_Boltund +.endif @ P_FAMILY_YAMPER +.if P_FAMILY_ROLYCOLY == TRUE + cry_reverse Cry_Rolycoly + cry_reverse Cry_Carkol cry_reverse Cry_Coalossal +.endif @ P_FAMILY_ROLYCOLY +.if P_FAMILY_APPLIN == TRUE + cry_reverse Cry_Applin cry_reverse Cry_Flapple cry_reverse Cry_Appletun +.if P_GEN_9_CROSS_EVOS == TRUE + cry_reverse Cry_Dipplin +.endif @ P_GEN_9_CROSS_EVOS +.endif @ P_FAMILY_APPLIN +.if P_FAMILY_SILICOBRA == TRUE + cry_reverse Cry_Silicobra cry_reverse Cry_Sandaconda - cry_reverse Cry_Toxtricity +.endif @ P_FAMILY_SILICOBRA +.if P_FAMILY_CRAMORANT == TRUE + cry_reverse Cry_Cramorant +.endif @ P_FAMILY_CRAMORANT +.if P_FAMILY_ARROKUDA == TRUE + cry_reverse Cry_Arrokuda + cry_reverse Cry_Barraskewda +.endif @ P_FAMILY_ARROKUDA +.if P_FAMILY_TOXEL == TRUE + cry_reverse Cry_Toxel + cry_reverse Cry_ToxtricityAmped + cry_reverse Cry_ToxtricityLowKey +.endif @ P_FAMILY_TOXEL +.if P_FAMILY_SIZZLIPEDE == TRUE + cry_reverse Cry_Sizzlipede cry_reverse Cry_Centiskorch +.endif @ P_FAMILY_SIZZLIPEDE +.if P_FAMILY_CLOBBOPUS == TRUE + cry_reverse Cry_Clobbopus + cry_reverse Cry_Grapploct +.endif @ P_FAMILY_CLOBBOPUS +.if P_FAMILY_SINISTEA == TRUE + cry_reverse Cry_Sinistea + cry_reverse Cry_Polteageist +.endif @ P_FAMILY_SINISTEA +.if P_FAMILY_HATENNA == TRUE + cry_reverse Cry_Hatenna + cry_reverse Cry_Hattrem cry_reverse Cry_Hatterene +.endif @ P_FAMILY_HATENNA +.if P_FAMILY_IMPIDIMP == TRUE + cry_reverse Cry_Impidimp + cry_reverse Cry_Morgrem cry_reverse Cry_Grimmsnarl +.endif @ P_FAMILY_IMPIDIMP +.if P_FAMILY_MILCERY == TRUE + cry_reverse Cry_Milcery cry_reverse Cry_Alcremie +.endif @ P_FAMILY_MILCERY +.if P_FAMILY_FALINKS == TRUE + cry_reverse Cry_Falinks +.endif @ P_FAMILY_FALINKS +.if P_FAMILY_PINCURCHIN == TRUE + cry_reverse Cry_Pincurchin +.endif @ P_FAMILY_PINCURCHIN +.if P_FAMILY_SNOM == TRUE + cry_reverse Cry_Snom + cry_reverse Cry_Frosmoth +.endif @ P_FAMILY_SNOM +.if P_FAMILY_STONJOURNER == TRUE + cry_reverse Cry_Stonjourner +.endif @ P_FAMILY_STONJOURNER +.if P_FAMILY_EISCUE == TRUE + cry_reverse Cry_EiscueIceFace + cry_reverse Cry_EiscueNoiceFace +.endif @ P_FAMILY_EISCUE +.if P_FAMILY_INDEEDEE == TRUE + cry_reverse Cry_IndeedeeMale + cry_reverse Cry_IndeedeeFemale +.endif @ P_FAMILY_INDEEDEE +.if P_FAMILY_MORPEKO == TRUE + cry_reverse Cry_MorpekoFullBelly + cry_reverse Cry_MorpekoHangry +.endif @ P_FAMILY_MORPEKO +.if P_FAMILY_CUFANT == TRUE + cry_reverse Cry_Cufant cry_reverse Cry_Copperajah +.endif @ P_FAMILY_CUFANT +.if P_FAMILY_DRACOZOLT == TRUE + cry_reverse Cry_Dracozolt +.endif @ P_FAMILY_DRACOZOLT +.if P_FAMILY_ARCTOZOLT == TRUE + cry_reverse Cry_Arctozolt +.endif @ P_FAMILY_ARCTOZOLT +.if P_FAMILY_DRACOVISH == TRUE + cry_reverse Cry_Dracovish +.endif @ P_FAMILY_DRACOVISH +.if P_FAMILY_ARCTOVISH == TRUE + cry_reverse Cry_Arctovish +.endif @ P_FAMILY_ARCTOVISH +.if P_FAMILY_DURALUDON == TRUE cry_reverse Cry_Duraludon - cry_reverse Cry_Urshifu - cry_reverse Cry_Urshifu -.else - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown - cry_reverse Cry_Unown -.endif +.endif @ P_FAMILY_DURALUDON +.if P_FAMILY_DREEPY == TRUE + cry_reverse Cry_Dreepy + cry_reverse Cry_Drakloak + cry_reverse Cry_Dragapult +.endif @ P_FAMILY_DREEPY +.if P_FAMILY_ZACIAN == TRUE + cry_reverse Cry_ZacianHeroOfManyBattles + cry_reverse Cry_ZacianCrownedSword +.endif @ P_FAMILY_ZACIAN +.if P_FAMILY_ZAMAZENTA == TRUE + cry_reverse Cry_ZamazentaHeroOfManyBattles + cry_reverse Cry_ZamazentaCrownedShield +.endif @ P_FAMILY_ZAMAZENTA +.if P_FAMILY_ETERNATUS == TRUE + cry_reverse Cry_Eternatus + cry_reverse Cry_EternatusEternamax +.endif @ P_FAMILY_ETERNATUS +.if P_FAMILY_KUBFU == TRUE + cry_reverse Cry_Kubfu + cry_reverse Cry_UrshifuSingleStrikeStyle + cry_reverse Cry_UrshifuRapidStrikeStyle +.endif @ P_FAMILY_KUBFU +.if P_FAMILY_ZARUDE == TRUE + cry_reverse Cry_Zarude +.endif @ P_FAMILY_ZARUDE +.if P_FAMILY_REGIELEKI == TRUE + cry_reverse Cry_Regieleki +.endif @ P_FAMILY_REGIELEKI +.if P_FAMILY_REGIDRAGO == TRUE + cry_reverse Cry_Regidrago +.endif @ P_FAMILY_REGIDRAGO +.if P_FAMILY_GLASTRIER == TRUE + cry_reverse Cry_Glastrier +.endif @ P_FAMILY_GLASTRIER +.if P_FAMILY_SPECTRIER == TRUE + cry_reverse Cry_Spectrier +.endif @ P_FAMILY_SPECTRIER +.if P_FAMILY_CALYREX == TRUE + cry_reverse Cry_Calyrex +.if P_FUSION_FORMS == TRUE + cry_reverse Cry_CalyrexIceRider + cry_reverse Cry_CalyrexShadowRider +.endif @ P_FUSION_FORMS +.endif @ P_FAMILY_CALYREX +.if P_FAMILY_ENAMORUS == TRUE + cry_reverse Cry_EnamorusIncarnate + cry_reverse Cry_EnamorusTherian +.endif @ P_FAMILY_ENAMORUS +.if P_FAMILY_SPRIGATITO == TRUE + cry_reverse Cry_Sprigatito + cry_reverse Cry_Floragato + cry_reverse Cry_Meowscarada +.endif @ P_FAMILY_SPRIGATITO +.if P_FAMILY_FUECOCO == TRUE + cry_reverse Cry_Fuecoco + cry_reverse Cry_Crocalor + cry_reverse Cry_Skeledirge +.endif @ P_FAMILY_FUECOCO +.if P_FAMILY_QUAXLY == TRUE + cry_reverse Cry_Quaxly + cry_reverse Cry_Quaxwell + cry_reverse Cry_Quaquaval +.endif @ P_FAMILY_QUAXLY +.if P_FAMILY_LECHONK == TRUE + cry_reverse Cry_Lechonk + cry_reverse Cry_OinkologneMale + cry_reverse Cry_OinkologneFemale +.endif @ P_FAMILY_LECHONK +.if P_FAMILY_TAROUNTULA == TRUE + cry_reverse Cry_Tarountula + cry_reverse Cry_Spidops +.endif @ P_FAMILY_TAROUNTULA +.if P_FAMILY_NYMBLE == TRUE + cry_reverse Cry_Nymble + cry_reverse Cry_Lokix +.endif @ P_FAMILY_NYMBLE +.if P_FAMILY_PAWMI == TRUE + cry_reverse Cry_Pawmi + cry_reverse Cry_Pawmo + cry_reverse Cry_Pawmot +.endif @ P_FAMILY_PAWMI +.if P_FAMILY_TANDEMAUS == TRUE + cry_reverse Cry_Tandemaus + cry_reverse Cry_MausholdFamilyOfThree + cry_reverse Cry_MausholdFamilyOfFour +.endif @ P_FAMILY_TANDEMAUS +.if P_FAMILY_FIDOUGH == TRUE + cry_reverse Cry_Fidough + cry_reverse Cry_Dachsbun +.endif @ P_FAMILY_FIDOUGH +.if P_FAMILY_SMOLIV == TRUE + cry_reverse Cry_Smoliv + cry_reverse Cry_Dolliv + cry_reverse Cry_Arboliva +.endif @ P_FAMILY_SMOLIV +.if P_FAMILY_SQUAWKABILLY == TRUE + cry_reverse Cry_Squawkabilly +.endif @ P_FAMILY_SQUAWKABILLY +.if P_FAMILY_NACLI == TRUE + cry_reverse Cry_Nacli + cry_reverse Cry_Naclstack + cry_reverse Cry_Garganacl +.endif @ P_FAMILY_NACLI +.if P_FAMILY_CHARCADET == TRUE + cry_reverse Cry_Charcadet + cry_reverse Cry_Armarouge + cry_reverse Cry_Ceruledge +.endif @ P_FAMILY_CHARCADET +.if P_FAMILY_TADBULB == TRUE + cry_reverse Cry_Tadbulb + cry_reverse Cry_Bellibolt +.endif @ P_FAMILY_TADBULB +.if P_FAMILY_WATTREL == TRUE + cry_reverse Cry_Wattrel + cry_reverse Cry_Kilowattrel +.endif @ P_FAMILY_WATTREL +.if P_FAMILY_MASCHIFF == TRUE + cry_reverse Cry_Maschiff + cry_reverse Cry_Mabosstiff +.endif @ P_FAMILY_MASCHIFF +.if P_FAMILY_SHROODLE == TRUE + cry_reverse Cry_Shroodle + cry_reverse Cry_Grafaiai +.endif @ P_FAMILY_SHROODLE +.if P_FAMILY_BRAMBLIN == TRUE + cry_reverse Cry_Bramblin + cry_reverse Cry_Brambleghast +.endif @ P_FAMILY_BRAMBLIN +.if P_FAMILY_TOEDSCOOL == TRUE + cry_reverse Cry_Toedscool + cry_reverse Cry_Toedscruel +.endif @ P_FAMILY_TOEDSCOOL +.if P_FAMILY_KLAWF == TRUE + cry_reverse Cry_Klawf +.endif @ P_FAMILY_KLAWF +.if P_FAMILY_CAPSAKID == TRUE + cry_reverse Cry_Capsakid + cry_reverse Cry_Scovillain +.endif @ P_FAMILY_CAPSAKID +.if P_FAMILY_RELLOR == TRUE + cry_reverse Cry_Rellor + cry_reverse Cry_Rabsca +.endif @ P_FAMILY_RELLOR +.if P_FAMILY_FLITTLE == TRUE + cry_reverse Cry_Flittle + cry_reverse Cry_Espathra +.endif @ P_FAMILY_FLITTLE +.if P_FAMILY_TINKATINK == TRUE + cry_reverse Cry_Tinkatink + cry_reverse Cry_Tinkatuff + cry_reverse Cry_Tinkaton +.endif @ P_FAMILY_TINKATINK +.if P_FAMILY_WIGLETT == TRUE + cry_reverse Cry_Wiglett + cry_reverse Cry_Wugtrio +.endif @ P_FAMILY_WIGLETT +.if P_FAMILY_BOMBIRDIER == TRUE + cry_reverse Cry_Bombirdier +.endif @ P_FAMILY_BOMBIRDIER +.if P_FAMILY_FINIZEN == TRUE + cry_reverse Cry_Finizen + cry_reverse Cry_PalafinZero + cry_reverse Cry_PalafinHero +.endif @ P_FAMILY_FINIZEN +.if P_FAMILY_VAROOM == TRUE + cry_reverse Cry_Varoom + cry_reverse Cry_Revavroom +.endif @ P_FAMILY_VAROOM +.if P_FAMILY_CYCLIZAR == TRUE + cry_reverse Cry_Cyclizar +.endif @ P_FAMILY_CYCLIZAR +.if P_FAMILY_ORTHWORM == TRUE + cry_reverse Cry_Orthworm +.endif @ P_FAMILY_ORTHWORM +.if P_FAMILY_GLIMMET == TRUE + cry_reverse Cry_Glimmet + cry_reverse Cry_Glimmora +.endif @ P_FAMILY_GLIMMET +.if P_FAMILY_GREAVARD == TRUE + cry_reverse Cry_Greavard + cry_reverse Cry_Houndstone +.endif @ P_FAMILY_GREAVARD +.if P_FAMILY_FLAMIGO == TRUE + cry_reverse Cry_Flamigo +.endif @ P_FAMILY_FLAMIGO +.if P_FAMILY_CETODDLE == TRUE + cry_reverse Cry_Cetoddle + cry_reverse Cry_Cetitan +.endif @ P_FAMILY_CETODDLE +.if P_FAMILY_VELUZA == TRUE + cry_reverse Cry_Veluza +.endif @ P_FAMILY_VELUZA +.if P_FAMILY_DONDOZO == TRUE + cry_reverse Cry_Dondozo +.endif @ P_FAMILY_DONDOZO +.if P_FAMILY_TATSUGIRI == TRUE + cry_reverse Cry_TatsugiriCurly + cry_reverse Cry_TatsugiriDroopy + cry_reverse Cry_TatsugiriStretchy +.endif @ P_FAMILY_TATSUGIRI +.if P_FAMILY_GREAT_TUSK == TRUE + cry_reverse Cry_GreatTusk +.endif @ P_FAMILY_GREAT_TUSK +.if P_FAMILY_SCREAM_TAIL == TRUE + cry_reverse Cry_ScreamTail +.endif @ P_FAMILY_SCREAM_TAIL +.if P_FAMILY_BRUTE_BONNET == TRUE + cry_reverse Cry_BruteBonnet +.endif @ P_FAMILY_BRUTE_BONNET +.if P_FAMILY_FLUTTER_MANE == TRUE + cry_reverse Cry_FlutterMane +.endif @ P_FAMILY_FLUTTER_MANE +.if P_FAMILY_SLITHER_WING == TRUE + cry_reverse Cry_SlitherWing +.endif @ P_FAMILY_SLITHER_WING +.if P_FAMILY_SANDY_SHOCKS == TRUE + cry_reverse Cry_SandyShocks +.endif @ P_FAMILY_SANDY_SHOCKS +.if P_FAMILY_IRON_TREADS == TRUE + cry_reverse Cry_IronTreads +.endif @ P_FAMILY_IRON_TREADS +.if P_FAMILY_IRON_BUNDLE == TRUE + cry_reverse Cry_IronBundle +.endif @ P_FAMILY_IRON_BUNDLE +.if P_FAMILY_IRON_HANDS == TRUE + cry_reverse Cry_IronHands +.endif @ P_FAMILY_IRON_HANDS +.if P_FAMILY_IRON_JUGULIS == TRUE + cry_reverse Cry_IronJugulis +.endif @ P_FAMILY_IRON_JUGULIS +.if P_FAMILY_IRON_MOTH == TRUE + cry_reverse Cry_IronMoth +.endif @ P_FAMILY_IRON_MOTH +.if P_FAMILY_IRON_THORNS == TRUE + cry_reverse Cry_IronThorns +.endif @ P_FAMILY_IRON_THORNS +.if P_FAMILY_FRIGIBAX == TRUE + cry_reverse Cry_Frigibax + cry_reverse Cry_Arctibax + cry_reverse Cry_Baxcalibur +.endif @ P_FAMILY_FRIGIBAX +.if P_FAMILY_GIMMIGHOUL == TRUE + cry_reverse Cry_Gimmighoul + cry_reverse Cry_Gholdengo +.endif @ P_FAMILY_GIMMIGHOUL +.if P_FAMILY_WO_CHIEN == TRUE + cry_reverse Cry_WoChien +.endif @ P_FAMILY_WO_CHIEN +.if P_FAMILY_CHIEN_PAO == TRUE + cry_reverse Cry_ChienPao +.endif @ P_FAMILY_CHIEN_PAO +.if P_FAMILY_TING_LU == TRUE + cry_reverse Cry_TingLu +.endif @ P_FAMILY_TING_LU +.if P_FAMILY_CHI_YU == TRUE + cry_reverse Cry_ChiYu +.endif @ P_FAMILY_CHI_YU +.if P_FAMILY_ROARING_MOON == TRUE + cry_reverse Cry_RoaringMoon +.endif @ P_FAMILY_ROARING_MOON +.if P_FAMILY_IRON_VALIANT == TRUE + cry_reverse Cry_IronValiant +.endif @ P_FAMILY_IRON_VALIANT +.if P_FAMILY_KORAIDON == TRUE + cry_reverse Cry_Koraidon +.endif @ P_FAMILY_KORAIDON +.if P_FAMILY_MIRAIDON == TRUE + cry_reverse Cry_Miraidon +.endif @ P_FAMILY_MIRAIDON +.if P_FAMILY_WALKING_WAKE == TRUE + cry_reverse Cry_WalkingWake +.endif @ P_FAMILY_WALKING_WAKE +.if P_FAMILY_IRON_LEAVES == TRUE + cry_reverse Cry_IronLeaves +.endif @ P_FAMILY_IRON_LEAVES +.if P_FAMILY_POLTCHAGEIST == TRUE + cry_reverse Cry_Poltchageist + cry_reverse Cry_Sinistcha +.endif @ P_FAMILY_POLTCHAGEIST +.if P_FAMILY_OKIDOGI == TRUE + cry_reverse Cry_Okidogi +.endif @ P_FAMILY_OKIDOGI +.if P_FAMILY_MUNKIDORI == TRUE + cry_reverse Cry_Munkidori +.endif @ P_FAMILY_MUNKIDORI +.if P_FAMILY_FEZANDIPITI == TRUE + cry_reverse Cry_Fezandipiti +.endif @ P_FAMILY_FEZANDIPITI +.if P_FAMILY_OGERPON == TRUE + cry_reverse Cry_Ogerpon +.endif @ P_FAMILY_OGERPON diff --git a/sound/direct_sound_data.inc b/sound/direct_sound_data.inc index 3020a8f1a5a9..0e48ca73c6a4 100644 --- a/sound/direct_sound_data.inc +++ b/sound/direct_sound_data.inc @@ -386,6 +386,7 @@ DirectSoundWaveData_unknown_16:: DirectSoundWaveData_unknown_17:: .incbin "sound/direct_sound_samples/unknown_17.bin" +.if P_FAMILY_BULBASAUR == TRUE .align 2 Cry_Bulbasaur:: .incbin "sound/direct_sound_samples/cries/bulbasaur.bin" @@ -398,6 +399,14 @@ Cry_Ivysaur:: Cry_Venusaur:: .incbin "sound/direct_sound_samples/cries/venusaur.bin" +.if P_MEGA_EVOLUTIONS == TRUE + .align 2 +Cry_VenusaurMega:: + .incbin "sound/direct_sound_samples/cries/venusaur_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_BULBASAUR + +.if P_FAMILY_CHARMANDER == TRUE .align 2 Cry_Charmander:: .incbin "sound/direct_sound_samples/cries/charmander.bin" @@ -410,6 +419,18 @@ Cry_Charmeleon:: Cry_Charizard:: .incbin "sound/direct_sound_samples/cries/charizard.bin" +.if P_MEGA_EVOLUTIONS == TRUE + .align 2 +Cry_CharizardMegaX:: + .incbin "sound/direct_sound_samples/cries/charizard_mega_x.bin" + + .align 2 +Cry_CharizardMegaY:: + .incbin "sound/direct_sound_samples/cries/charizard_mega_y.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_CHARMANDER + +.if P_FAMILY_SQUIRTLE == TRUE .align 2 Cry_Squirtle:: .incbin "sound/direct_sound_samples/cries/squirtle.bin" @@ -422,6 +443,14 @@ Cry_Wartortle:: Cry_Blastoise:: .incbin "sound/direct_sound_samples/cries/blastoise.bin" +.if P_MEGA_EVOLUTIONS == TRUE + .align 2 +Cry_BlastoiseMega:: + .incbin "sound/direct_sound_samples/cries/blastoise_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_SQUIRTLE + +.if P_FAMILY_CATERPIE == TRUE .align 2 Cry_Caterpie:: .incbin "sound/direct_sound_samples/cries/caterpie.bin" @@ -433,7 +462,9 @@ Cry_Metapod:: .align 2 Cry_Butterfree:: .incbin "sound/direct_sound_samples/cries/butterfree.bin" +.endif @ P_FAMILY_CATERPIE +.if P_FAMILY_WEEDLE == TRUE .align 2 Cry_Weedle:: .incbin "sound/direct_sound_samples/cries/weedle.bin" @@ -446,6 +477,14 @@ Cry_Kakuna:: Cry_Beedrill:: .incbin "sound/direct_sound_samples/cries/beedrill.bin" +.if P_MEGA_EVOLUTIONS == TRUE + .align 2 +Cry_BeedrillMega:: + .incbin "sound/direct_sound_samples/cries/beedrill_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_WEEDLE + +.if P_FAMILY_PIDGEY == TRUE .align 2 Cry_Pidgey:: .incbin "sound/direct_sound_samples/cries/pidgey.bin" @@ -458,6 +497,14 @@ Cry_Pidgeotto:: Cry_Pidgeot:: .incbin "sound/direct_sound_samples/cries/pidgeot.bin" +.if P_MEGA_EVOLUTIONS == TRUE + .align 2 +Cry_PidgeotMega:: + .incbin "sound/direct_sound_samples/cries/pidgeot_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_PIDGEY + +.if P_FAMILY_RATTATA == TRUE .align 2 Cry_Rattata:: .incbin "sound/direct_sound_samples/cries/rattata.bin" @@ -465,7 +512,9 @@ Cry_Rattata:: .align 2 Cry_Raticate:: .incbin "sound/direct_sound_samples/cries/raticate.bin" +.endif @ P_FAMILY_RATTATA +.if P_FAMILY_SPEAROW == TRUE .align 2 Cry_Spearow:: .incbin "sound/direct_sound_samples/cries/spearow.bin" @@ -473,7 +522,9 @@ Cry_Spearow:: .align 2 Cry_Fearow:: .incbin "sound/direct_sound_samples/cries/fearow.bin" +.endif @ P_FAMILY_SPEAROW +.if P_FAMILY_EKANS == TRUE .align 2 Cry_Ekans:: .incbin "sound/direct_sound_samples/cries/ekans.bin" @@ -481,6 +532,14 @@ Cry_Ekans:: .align 2 Cry_Arbok:: .incbin "sound/direct_sound_samples/cries/arbok.bin" +.endif @ P_FAMILY_EKANS + +.if P_FAMILY_PIKACHU == TRUE +.if P_GEN_2_CROSS_EVOS == TRUE + .align 2 +Cry_Pichu:: + .incbin "sound/direct_sound_samples/cries/pichu.bin" +.endif @ P_GEN_2_CROSS_EVOS .align 2 Cry_Pikachu:: @@ -489,7 +548,9 @@ Cry_Pikachu:: .align 2 Cry_Raichu:: .incbin "sound/direct_sound_samples/cries/raichu.bin" +.endif @ P_FAMILY_PIKACHU +.if P_FAMILY_SANDSHREW == TRUE .align 2 Cry_Sandshrew:: .incbin "sound/direct_sound_samples/cries/sandshrew.bin" @@ -497,7 +558,9 @@ Cry_Sandshrew:: .align 2 Cry_Sandslash:: .incbin "sound/direct_sound_samples/cries/sandslash.bin" +.endif @ P_FAMILY_SANDSHREW +.if P_FAMILY_NIDORAN == TRUE .align 2 Cry_NidoranF:: .incbin "sound/direct_sound_samples/cries/nidoran_f.bin" @@ -521,6 +584,14 @@ Cry_Nidorino:: .align 2 Cry_Nidoking:: .incbin "sound/direct_sound_samples/cries/nidoking.bin" +.endif @ P_FAMILY_NIDORAN + +.if P_FAMILY_CLEFAIRY == TRUE +.if P_GEN_2_CROSS_EVOS == TRUE + .align 2 +Cry_Cleffa:: + .incbin "sound/direct_sound_samples/cries/cleffa.bin" +.endif @ P_GEN_2_CROSS_EVOS .align 2 Cry_Clefairy:: @@ -529,7 +600,9 @@ Cry_Clefairy:: .align 2 Cry_Clefable:: .incbin "sound/direct_sound_samples/cries/clefable.bin" +.endif @ P_FAMILY_CLEFAIRY +.if P_FAMILY_VULPIX == TRUE .align 2 Cry_Vulpix:: .incbin "sound/direct_sound_samples/cries/vulpix.bin" @@ -537,6 +610,14 @@ Cry_Vulpix:: .align 2 Cry_Ninetales:: .incbin "sound/direct_sound_samples/cries/ninetales.bin" +.endif @ P_FAMILY_VULPIX + +.if P_FAMILY_JIGGLYPUFF == TRUE +.if P_GEN_2_CROSS_EVOS == TRUE + .align 2 +Cry_Igglybuff:: + .incbin "sound/direct_sound_samples/cries/igglybuff.bin" +.endif @ P_GEN_2_CROSS_EVOS .align 2 Cry_Jigglypuff:: @@ -545,7 +626,9 @@ Cry_Jigglypuff:: .align 2 Cry_Wigglytuff:: .incbin "sound/direct_sound_samples/cries/wigglytuff.bin" +.endif @ P_FAMILY_JIGGLYPUFF +.if P_FAMILY_ZUBAT == TRUE .align 2 Cry_Zubat:: .incbin "sound/direct_sound_samples/cries/zubat.bin" @@ -554,6 +637,14 @@ Cry_Zubat:: Cry_Golbat:: .incbin "sound/direct_sound_samples/cries/golbat.bin" +.if P_GEN_2_CROSS_EVOS == TRUE + .align 2 +Cry_Crobat:: + .incbin "sound/direct_sound_samples/cries/crobat.bin" +.endif @ P_GEN_2_CROSS_EVOS +.endif @ P_FAMILY_ZUBAT + +.if P_FAMILY_ODDISH == TRUE .align 2 Cry_Oddish:: .incbin "sound/direct_sound_samples/cries/oddish.bin" @@ -566,6 +657,14 @@ Cry_Gloom:: Cry_Vileplume:: .incbin "sound/direct_sound_samples/cries/vileplume.bin" +.if P_GEN_2_CROSS_EVOS == TRUE + .align 2 +Cry_Bellossom:: + .incbin "sound/direct_sound_samples/cries/bellossom.bin" +.endif @ P_GEN_2_CROSS_EVOS +.endif @ P_FAMILY_ODDISH + +.if P_FAMILY_PARAS == TRUE .align 2 Cry_Paras:: .incbin "sound/direct_sound_samples/cries/paras.bin" @@ -573,7 +672,9 @@ Cry_Paras:: .align 2 Cry_Parasect:: .incbin "sound/direct_sound_samples/cries/parasect.bin" +.endif @ P_FAMILY_PARAS +.if P_FAMILY_VENONAT == TRUE .align 2 Cry_Venonat:: .incbin "sound/direct_sound_samples/cries/venonat.bin" @@ -581,7 +682,9 @@ Cry_Venonat:: .align 2 Cry_Venomoth:: .incbin "sound/direct_sound_samples/cries/venomoth.bin" +.endif @ P_FAMILY_VENONAT +.if P_FAMILY_DIGLETT == TRUE .align 2 Cry_Diglett:: .incbin "sound/direct_sound_samples/cries/diglett.bin" @@ -589,7 +692,9 @@ Cry_Diglett:: .align 2 Cry_Dugtrio:: .incbin "sound/direct_sound_samples/cries/dugtrio.bin" +.endif @ P_FAMILY_DIGLETT +.if P_FAMILY_MEOWTH == TRUE .align 2 Cry_Meowth:: .incbin "sound/direct_sound_samples/cries/meowth.bin" @@ -598,6 +703,15 @@ Cry_Meowth:: Cry_Persian:: .incbin "sound/direct_sound_samples/cries/persian.bin" +.if P_GALARIAN_FORMS == TRUE + .align 2 +Cry_Perrserker:: + .incbin "sound/direct_sound_samples/cries/perrserker.bin" + +.endif @ P_GALARIAN_FORMS +.endif @ P_FAMILY_MEOWTH + +.if P_FAMILY_PSYDUCK == TRUE .align 2 Cry_Psyduck:: .incbin "sound/direct_sound_samples/cries/psyduck.bin" @@ -605,7 +719,9 @@ Cry_Psyduck:: .align 2 Cry_Golduck:: .incbin "sound/direct_sound_samples/cries/golduck.bin" +.endif @ P_FAMILY_PSYDUCK +.if P_FAMILY_MANKEY == TRUE .align 2 Cry_Mankey:: .incbin "sound/direct_sound_samples/cries/mankey.bin" @@ -614,6 +730,14 @@ Cry_Mankey:: Cry_Primeape:: .incbin "sound/direct_sound_samples/cries/primeape.bin" +.if P_GEN_9_CROSS_EVOS == TRUE + .align 2 +Cry_Annihilape:: + .incbin "sound/direct_sound_samples/cries/annihilape.bin" +.endif @ P_GEN_9_CROSS_EVOS +.endif @ P_FAMILY_MANKEY + +.if P_FAMILY_GROWLITHE == TRUE .align 2 Cry_Growlithe:: .incbin "sound/direct_sound_samples/cries/growlithe.bin" @@ -621,7 +745,9 @@ Cry_Growlithe:: .align 2 Cry_Arcanine:: .incbin "sound/direct_sound_samples/cries/arcanine.bin" +.endif @ P_FAMILY_GROWLITHE +.if P_FAMILY_POLIWAG == TRUE .align 2 Cry_Poliwag:: .incbin "sound/direct_sound_samples/cries/poliwag.bin" @@ -634,6 +760,14 @@ Cry_Poliwhirl:: Cry_Poliwrath:: .incbin "sound/direct_sound_samples/cries/poliwrath.bin" +.if P_GEN_2_CROSS_EVOS == TRUE + .align 2 +Cry_Politoed:: + .incbin "sound/direct_sound_samples/cries/politoed.bin" +.endif @ P_GEN_2_CROSS_EVOS +.endif @ P_FAMILY_POLIWAG + +.if P_FAMILY_ABRA == TRUE .align 2 Cry_Abra:: .incbin "sound/direct_sound_samples/cries/abra.bin" @@ -646,6 +780,14 @@ Cry_Kadabra:: Cry_Alakazam:: .incbin "sound/direct_sound_samples/cries/alakazam.bin" +.if P_MEGA_EVOLUTIONS == TRUE + .align 2 +Cry_AlakazamMega:: + .incbin "sound/direct_sound_samples/cries/alakazam_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_ABRA + +.if P_FAMILY_MACHOP == TRUE .align 2 Cry_Machop:: .incbin "sound/direct_sound_samples/cries/machop.bin" @@ -657,7 +799,9 @@ Cry_Machoke:: .align 2 Cry_Machamp:: .incbin "sound/direct_sound_samples/cries/machamp.bin" +.endif @ P_FAMILY_MACHOP +.if P_FAMILY_BELLSPROUT == TRUE .align 2 Cry_Bellsprout:: .incbin "sound/direct_sound_samples/cries/bellsprout.bin" @@ -669,7 +813,9 @@ Cry_Weepinbell:: .align 2 Cry_Victreebel:: .incbin "sound/direct_sound_samples/cries/victreebel.bin" +.endif @ P_FAMILY_BELLSPROUT +.if P_FAMILY_TENTACOOL == TRUE .align 2 Cry_Tentacool:: .incbin "sound/direct_sound_samples/cries/tentacool.bin" @@ -677,7 +823,9 @@ Cry_Tentacool:: .align 2 Cry_Tentacruel:: .incbin "sound/direct_sound_samples/cries/tentacruel.bin" +.endif @ P_FAMILY_TENTACOOL +.if P_FAMILY_GEODUDE == TRUE .align 2 Cry_Geodude:: .incbin "sound/direct_sound_samples/cries/geodude.bin" @@ -689,7 +837,9 @@ Cry_Graveler:: .align 2 Cry_Golem:: .incbin "sound/direct_sound_samples/cries/golem.bin" +.endif @ P_FAMILY_GEODUDE +.if P_FAMILY_PONYTA == TRUE .align 2 Cry_Ponyta:: .incbin "sound/direct_sound_samples/cries/ponyta.bin" @@ -697,7 +847,9 @@ Cry_Ponyta:: .align 2 Cry_Rapidash:: .incbin "sound/direct_sound_samples/cries/rapidash.bin" +.endif @ P_FAMILY_PONYTA +.if P_FAMILY_SLOWPOKE == TRUE .align 2 Cry_Slowpoke:: .incbin "sound/direct_sound_samples/cries/slowpoke.bin" @@ -706,6 +858,25 @@ Cry_Slowpoke:: Cry_Slowbro:: .incbin "sound/direct_sound_samples/cries/slowbro.bin" +.if P_GEN_2_CROSS_EVOS == TRUE + .align 2 +Cry_Slowking:: + .incbin "sound/direct_sound_samples/cries/slowking.bin" +.endif @ P_GEN_2_CROSS_EVOS +.if P_MEGA_EVOLUTIONS == TRUE + .align 2 +Cry_SlowbroMega:: + .incbin "sound/direct_sound_samples/cries/slowbro_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.if P_GALARIAN_FORMS == TRUE + .align 2 +Cry_SlowpokeGalarian:: + .incbin "sound/direct_sound_samples/cries/slowpoke_galarian.bin" + +.endif @ P_GALARIAN_FORMS +.endif @ P_FAMILY_SLOWPOKE + +.if P_FAMILY_MAGNEMITE == TRUE .align 2 Cry_Magnemite:: .incbin "sound/direct_sound_samples/cries/magnemite.bin" @@ -714,10 +885,27 @@ Cry_Magnemite:: Cry_Magneton:: .incbin "sound/direct_sound_samples/cries/magneton.bin" +.if P_GEN_4_CROSS_EVOS == TRUE + .align 2 +Cry_Magnezone:: + .incbin "sound/direct_sound_samples/cries/magnezone.bin" +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_MAGNEMITE + +.if P_FAMILY_FARFETCHD == TRUE .align 2 Cry_Farfetchd:: .incbin "sound/direct_sound_samples/cries/farfetchd.bin" +.if P_GALARIAN_FORMS == TRUE + .align 2 +Cry_Sirfetchd:: + .incbin "sound/direct_sound_samples/cries/sirfetchd.bin" + +.endif @ P_GALARIAN_FORMS +.endif @ P_FAMILY_FARFETCHD + +.if P_FAMILY_DODUO == TRUE .align 2 Cry_Doduo:: .incbin "sound/direct_sound_samples/cries/doduo.bin" @@ -725,7 +913,9 @@ Cry_Doduo:: .align 2 Cry_Dodrio:: .incbin "sound/direct_sound_samples/cries/dodrio.bin" +.endif @ P_FAMILY_DODUO +.if P_FAMILY_SEEL == TRUE .align 2 Cry_Seel:: .incbin "sound/direct_sound_samples/cries/seel.bin" @@ -733,7 +923,9 @@ Cry_Seel:: .align 2 Cry_Dewgong:: .incbin "sound/direct_sound_samples/cries/dewgong.bin" +.endif @ P_FAMILY_SEEL +.if P_FAMILY_GRIMER == TRUE .align 2 Cry_Grimer:: .incbin "sound/direct_sound_samples/cries/grimer.bin" @@ -741,7 +933,9 @@ Cry_Grimer:: .align 2 Cry_Muk:: .incbin "sound/direct_sound_samples/cries/muk.bin" +.endif @ P_FAMILY_GRIMER +.if P_FAMILY_SHELLDER == TRUE .align 2 Cry_Shellder:: .incbin "sound/direct_sound_samples/cries/shellder.bin" @@ -749,7 +943,9 @@ Cry_Shellder:: .align 2 Cry_Cloyster:: .incbin "sound/direct_sound_samples/cries/cloyster.bin" +.endif @ P_FAMILY_SHELLDER +.if P_FAMILY_GASTLY == TRUE .align 2 Cry_Gastly:: .incbin "sound/direct_sound_samples/cries/gastly.bin" @@ -762,10 +958,32 @@ Cry_Haunter:: Cry_Gengar:: .incbin "sound/direct_sound_samples/cries/gengar.bin" +.if P_MEGA_EVOLUTIONS == TRUE + .align 2 +Cry_GengarMega:: + .incbin "sound/direct_sound_samples/cries/gengar_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_GASTLY + +.if P_FAMILY_ONIX == TRUE .align 2 Cry_Onix:: .incbin "sound/direct_sound_samples/cries/onix.bin" +.if P_GEN_2_CROSS_EVOS == TRUE + .align 2 +Cry_Steelix:: + .incbin "sound/direct_sound_samples/cries/steelix.bin" + +.if P_MEGA_EVOLUTIONS == TRUE + .align 2 +Cry_SteelixMega:: + .incbin "sound/direct_sound_samples/cries/steelix_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_GEN_2_CROSS_EVOS +.endif @ P_FAMILY_ONIX + +.if P_FAMILY_DROWZEE == TRUE .align 2 Cry_Drowzee:: .incbin "sound/direct_sound_samples/cries/drowzee.bin" @@ -773,7 +991,9 @@ Cry_Drowzee:: .align 2 Cry_Hypno:: .incbin "sound/direct_sound_samples/cries/hypno.bin" +.endif @ P_FAMILY_DROWZEE +.if P_FAMILY_KRABBY == TRUE .align 2 Cry_Krabby:: .incbin "sound/direct_sound_samples/cries/krabby.bin" @@ -781,7 +1001,9 @@ Cry_Krabby:: .align 2 Cry_Kingler:: .incbin "sound/direct_sound_samples/cries/kingler.bin" +.endif @ P_FAMILY_KRABBY +.if P_FAMILY_VOLTORB == TRUE .align 2 Cry_Voltorb:: .incbin "sound/direct_sound_samples/cries/voltorb.bin" @@ -789,7 +1011,9 @@ Cry_Voltorb:: .align 2 Cry_Electrode:: .incbin "sound/direct_sound_samples/cries/electrode.bin" +.endif @ P_FAMILY_VOLTORB +.if P_FAMILY_EXEGGCUTE == TRUE .align 2 Cry_Exeggcute:: .incbin "sound/direct_sound_samples/cries/exeggcute.bin" @@ -797,7 +1021,9 @@ Cry_Exeggcute:: .align 2 Cry_Exeggutor:: .incbin "sound/direct_sound_samples/cries/exeggutor.bin" +.endif @ P_FAMILY_EXEGGCUTE +.if P_FAMILY_CUBONE == TRUE .align 2 Cry_Cubone:: .incbin "sound/direct_sound_samples/cries/cubone.bin" @@ -805,6 +1031,14 @@ Cry_Cubone:: .align 2 Cry_Marowak:: .incbin "sound/direct_sound_samples/cries/marowak.bin" +.endif @ P_FAMILY_CUBONE + +.if P_FAMILY_HITMONS == TRUE +.if P_GEN_2_CROSS_EVOS == TRUE + .align 2 +Cry_Tyrogue:: + .incbin "sound/direct_sound_samples/cries/tyrogue.bin" +.endif @ P_GEN_2_CROSS_EVOS .align 2 Cry_Hitmonlee:: @@ -814,10 +1048,26 @@ Cry_Hitmonlee:: Cry_Hitmonchan:: .incbin "sound/direct_sound_samples/cries/hitmonchan.bin" +.if P_GEN_2_CROSS_EVOS == TRUE + .align 2 +Cry_Hitmontop:: + .incbin "sound/direct_sound_samples/cries/hitmontop.bin" +.endif @ P_GEN_2_CROSS_EVOS +.endif @ P_FAMILY_HITMONS + +.if P_FAMILY_LICKITUNG == TRUE .align 2 Cry_Lickitung:: .incbin "sound/direct_sound_samples/cries/lickitung.bin" +.if P_GEN_4_CROSS_EVOS == TRUE + .align 2 +Cry_Lickilicky:: + .incbin "sound/direct_sound_samples/cries/lickilicky.bin" +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_LICKITUNG + +.if P_FAMILY_KOFFING == TRUE .align 2 Cry_Koffing:: .incbin "sound/direct_sound_samples/cries/koffing.bin" @@ -825,7 +1075,9 @@ Cry_Koffing:: .align 2 Cry_Weezing:: .incbin "sound/direct_sound_samples/cries/weezing.bin" +.endif @ P_FAMILY_KOFFING +.if P_FAMILY_RHYHORN == TRUE .align 2 Cry_Rhyhorn:: .incbin "sound/direct_sound_samples/cries/rhyhorn.bin" @@ -834,18 +1086,56 @@ Cry_Rhyhorn:: Cry_Rhydon:: .incbin "sound/direct_sound_samples/cries/rhydon.bin" +.if P_GEN_4_CROSS_EVOS == TRUE + .align 2 +Cry_Rhyperior:: + .incbin "sound/direct_sound_samples/cries/rhyperior.bin" +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_RHYHORN + +.if P_FAMILY_CHANSEY == TRUE +.if P_GEN_4_CROSS_EVOS == TRUE + .align 2 +Cry_Happiny:: + .incbin "sound/direct_sound_samples/cries/happiny.bin" +.endif @ P_GEN_4_CROSS_EVOS + .align 2 Cry_Chansey:: .incbin "sound/direct_sound_samples/cries/chansey.bin" +.if P_GEN_2_CROSS_EVOS == TRUE + .align 2 +Cry_Blissey:: + .incbin "sound/direct_sound_samples/cries/blissey.bin" +.endif @ P_GEN_2_CROSS_EVOS +.endif @ P_FAMILY_CHANSEY + +.if P_FAMILY_TANGELA == TRUE .align 2 Cry_Tangela:: .incbin "sound/direct_sound_samples/cries/tangela.bin" +.if P_GEN_4_CROSS_EVOS == TRUE + .align 2 +Cry_Tangrowth:: + .incbin "sound/direct_sound_samples/cries/tangrowth.bin" +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_TANGELA + +.if P_FAMILY_KANGASKHAN == TRUE .align 2 Cry_Kangaskhan:: .incbin "sound/direct_sound_samples/cries/kangaskhan.bin" +.if P_MEGA_EVOLUTIONS == TRUE + .align 2 +Cry_KangaskhanMega:: + .incbin "sound/direct_sound_samples/cries/kangaskhan_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_KANGASKHAN + +.if P_FAMILY_HORSEA == TRUE .align 2 Cry_Horsea:: .incbin "sound/direct_sound_samples/cries/horsea.bin" @@ -854,6 +1144,14 @@ Cry_Horsea:: Cry_Seadra:: .incbin "sound/direct_sound_samples/cries/seadra.bin" +.if P_GEN_2_CROSS_EVOS == TRUE + .align 2 +Cry_Kingdra:: + .incbin "sound/direct_sound_samples/cries/kingdra.bin" +.endif @ P_GEN_2_CROSS_EVOS +.endif @ P_FAMILY_HORSEA + +.if P_FAMILY_GOLDEEN == TRUE .align 2 Cry_Goldeen:: .incbin "sound/direct_sound_samples/cries/goldeen.bin" @@ -861,7 +1159,9 @@ Cry_Goldeen:: .align 2 Cry_Seaking:: .incbin "sound/direct_sound_samples/cries/seaking.bin" +.endif @ P_FAMILY_GOLDEEN +.if P_FAMILY_STARYU == TRUE .align 2 Cry_Staryu:: .incbin "sound/direct_sound_samples/cries/staryu.bin" @@ -869,35 +1169,117 @@ Cry_Staryu:: .align 2 Cry_Starmie:: .incbin "sound/direct_sound_samples/cries/starmie.bin" +.endif @ P_FAMILY_STARYU + +.if P_FAMILY_MR_MIME == TRUE +.if P_GEN_4_CROSS_EVOS == TRUE + .align 2 +Cry_MimeJr:: + .incbin "sound/direct_sound_samples/cries/mime_jr.bin" +.endif @ P_GEN_4_CROSS_EVOS .align 2 Cry_MrMime:: .incbin "sound/direct_sound_samples/cries/mr_mime.bin" +.if P_GALARIAN_FORMS == TRUE + .align 2 +Cry_MrRime:: + .incbin "sound/direct_sound_samples/cries/mr_rime.bin" + +.endif @ P_GALARIAN_FORMS +.endif @ P_FAMILY_MR_MIME + +.if P_FAMILY_SCYTHER == TRUE .align 2 Cry_Scyther:: .incbin "sound/direct_sound_samples/cries/scyther.bin" +.if P_GEN_2_CROSS_EVOS == TRUE + .align 2 +Cry_Scizor:: + .incbin "sound/direct_sound_samples/cries/scizor.bin" + +.if P_MEGA_EVOLUTIONS == TRUE + .align 2 +Cry_ScizorMega:: + .incbin "sound/direct_sound_samples/cries/scizor_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_GEN_2_CROSS_EVOS +.if P_GEN_8_CROSS_EVOS == TRUE + .align 2 +Cry_Kleavor:: + .incbin "sound/direct_sound_samples/cries/kleavor.bin" +.endif @ P_GEN_8_CROSS_EVOS +.endif @ P_FAMILY_SCYTHER + +.if P_FAMILY_JYNX == TRUE +.if P_GEN_2_CROSS_EVOS == TRUE + .align 2 +Cry_Smoochum:: + .incbin "sound/direct_sound_samples/cries/smoochum.bin" +.endif @ P_GEN_2_CROSS_EVOS + .align 2 Cry_Jynx:: .incbin "sound/direct_sound_samples/cries/jynx.bin" +.endif @ P_FAMILY_JYNX + +.if P_FAMILY_ELECTABUZZ == TRUE +.if P_GEN_2_CROSS_EVOS == TRUE + .align 2 +Cry_Elekid:: + .incbin "sound/direct_sound_samples/cries/elekid.bin" +.endif @ P_GEN_2_CROSS_EVOS .align 2 Cry_Electabuzz:: .incbin "sound/direct_sound_samples/cries/electabuzz.bin" +.if P_GEN_4_CROSS_EVOS == TRUE + .align 2 +Cry_Electivire:: + .incbin "sound/direct_sound_samples/cries/electivire.bin" +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_ELECTABUZZ + +.if P_FAMILY_MAGMAR == TRUE +.if P_GEN_2_CROSS_EVOS == TRUE + .align 2 +Cry_Magby:: + .incbin "sound/direct_sound_samples/cries/magby.bin" +.endif @ P_GEN_2_CROSS_EVOS + .align 2 Cry_Magmar:: .incbin "sound/direct_sound_samples/cries/magmar.bin" +.if P_GEN_4_CROSS_EVOS == TRUE + .align 2 +Cry_Magmortar:: + .incbin "sound/direct_sound_samples/cries/magmortar.bin" +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_MAGMAR + +.if P_FAMILY_PINSIR == TRUE .align 2 Cry_Pinsir:: .incbin "sound/direct_sound_samples/cries/pinsir.bin" +.if P_MEGA_EVOLUTIONS == TRUE + .align 2 +Cry_PinsirMega:: + .incbin "sound/direct_sound_samples/cries/pinsir_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_PINSIR + +.if P_FAMILY_TAUROS == TRUE .align 2 Cry_Tauros:: .incbin "sound/direct_sound_samples/cries/tauros.bin" +.endif @ P_FAMILY_TAUROS +.if P_FAMILY_MAGIKARP == TRUE .align 2 Cry_Magikarp:: .incbin "sound/direct_sound_samples/cries/magikarp.bin" @@ -906,14 +1288,26 @@ Cry_Magikarp:: Cry_Gyarados:: .incbin "sound/direct_sound_samples/cries/gyarados.bin" +.if P_MEGA_EVOLUTIONS == TRUE + .align 2 +Cry_GyaradosMega:: + .incbin "sound/direct_sound_samples/cries/gyarados_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_MAGIKARP + +.if P_FAMILY_LAPRAS == TRUE .align 2 Cry_Lapras:: .incbin "sound/direct_sound_samples/cries/lapras.bin" +.endif @ P_FAMILY_LAPRAS +.if P_FAMILY_DITTO == TRUE .align 2 Cry_Ditto:: .incbin "sound/direct_sound_samples/cries/ditto.bin" +.endif @ P_FAMILY_DITTO +.if P_FAMILY_EEVEE == TRUE .align 2 Cry_Eevee:: .incbin "sound/direct_sound_samples/cries/eevee.bin" @@ -930,10 +1324,50 @@ Cry_Jolteon:: Cry_Flareon:: .incbin "sound/direct_sound_samples/cries/flareon.bin" +.if P_GEN_2_CROSS_EVOS == TRUE + .align 2 +Cry_Espeon:: + .incbin "sound/direct_sound_samples/cries/espeon.bin" + + .align 2 +Cry_Umbreon:: + .incbin "sound/direct_sound_samples/cries/umbreon.bin" +.endif @ P_GEN_2_CROSS_EVOS +.if P_GEN_4_CROSS_EVOS == TRUE + .align 2 +Cry_Leafeon:: + .incbin "sound/direct_sound_samples/cries/leafeon.bin" + + .align 2 +Cry_Glaceon:: + .incbin "sound/direct_sound_samples/cries/glaceon.bin" +.endif @ P_GEN_4_CROSS_EVOS +.if P_GEN_6_CROSS_EVOS == TRUE + .align 2 +Cry_Sylveon:: + .incbin "sound/direct_sound_samples/cries/sylveon.bin" +.endif @ P_GEN_6_CROSS_EVOS +.endif @ P_FAMILY_EEVEE + +.if P_FAMILY_PORYGON == TRUE .align 2 Cry_Porygon:: .incbin "sound/direct_sound_samples/cries/porygon.bin" +.if P_GEN_2_CROSS_EVOS == TRUE + .align 2 +Cry_Porygon2:: + .incbin "sound/direct_sound_samples/cries/porygon2.bin" + +.if P_GEN_4_CROSS_EVOS == TRUE + .align 2 +Cry_PorygonZ:: + .incbin "sound/direct_sound_samples/cries/porygon_z.bin" +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_GEN_2_CROSS_EVOS +.endif @ P_FAMILY_PORYGON + +.if P_FAMILY_OMANYTE == TRUE .align 2 Cry_Omanyte:: .incbin "sound/direct_sound_samples/cries/omanyte.bin" @@ -941,7 +1375,9 @@ Cry_Omanyte:: .align 2 Cry_Omastar:: .incbin "sound/direct_sound_samples/cries/omastar.bin" +.endif @ P_FAMILY_OMANYTE +.if P_FAMILY_KABUTO == TRUE .align 2 Cry_Kabuto:: .incbin "sound/direct_sound_samples/cries/kabuto.bin" @@ -949,27 +1385,51 @@ Cry_Kabuto:: .align 2 Cry_Kabutops:: .incbin "sound/direct_sound_samples/cries/kabutops.bin" +.endif @ P_FAMILY_KABUTO +.if P_FAMILY_AERODACTYL == TRUE .align 2 Cry_Aerodactyl:: .incbin "sound/direct_sound_samples/cries/aerodactyl.bin" +.if P_MEGA_EVOLUTIONS == TRUE + .align 2 +Cry_AerodactylMega:: + .incbin "sound/direct_sound_samples/cries/aerodactyl_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_AERODACTYL + +.if P_FAMILY_SNORLAX == TRUE +.if P_GEN_4_CROSS_EVOS == TRUE + .align 2 +Cry_Munchlax:: + .incbin "sound/direct_sound_samples/cries/munchlax.bin" +.endif @ P_GEN_4_CROSS_EVOS + .align 2 Cry_Snorlax:: .incbin "sound/direct_sound_samples/cries/snorlax.bin" +.endif @ P_FAMILY_SNORLAX +.if P_FAMILY_ARTICUNO == TRUE .align 2 Cry_Articuno:: .incbin "sound/direct_sound_samples/cries/articuno.bin" +.endif @ P_FAMILY_ARTICUNO +.if P_FAMILY_ZAPDOS == TRUE .align 2 Cry_Zapdos:: .incbin "sound/direct_sound_samples/cries/zapdos.bin" +.endif @ P_FAMILY_ZAPDOS +.if P_FAMILY_MOLTRES == TRUE .align 2 Cry_Moltres:: .incbin "sound/direct_sound_samples/cries/moltres.bin" +.endif @ P_FAMILY_MOLTRES +.if P_FAMILY_DRATINI == TRUE .align 2 Cry_Dratini:: .incbin "sound/direct_sound_samples/cries/dratini.bin" @@ -981,15 +1441,31 @@ Cry_Dragonair:: .align 2 Cry_Dragonite:: .incbin "sound/direct_sound_samples/cries/dragonite.bin" +.endif @ P_FAMILY_DRATINI +.if P_FAMILY_MEWTWO == TRUE .align 2 Cry_Mewtwo:: .incbin "sound/direct_sound_samples/cries/mewtwo.bin" +.if P_MEGA_EVOLUTIONS == TRUE + .align 2 +Cry_MewtwoMegaX:: + .incbin "sound/direct_sound_samples/cries/mewtwo_mega_x.bin" + + .align 2 +Cry_MewtwoMegaY:: + .incbin "sound/direct_sound_samples/cries/mewtwo_mega_y.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_MEWTWO + +.if P_FAMILY_MEW == TRUE .align 2 Cry_Mew:: .incbin "sound/direct_sound_samples/cries/mew.bin" +.endif @ P_FAMILY_MEW +.if P_FAMILY_CHIKORITA == TRUE .align 2 Cry_Chikorita:: .incbin "sound/direct_sound_samples/cries/chikorita.bin" @@ -1001,7 +1477,9 @@ Cry_Bayleef:: .align 2 Cry_Meganium:: .incbin "sound/direct_sound_samples/cries/meganium.bin" +.endif @ P_FAMILY_CHIKORITA +.if P_FAMILY_CYNDAQUIL == TRUE .align 2 Cry_Cyndaquil:: .incbin "sound/direct_sound_samples/cries/cyndaquil.bin" @@ -1013,7 +1491,9 @@ Cry_Quilava:: .align 2 Cry_Typhlosion:: .incbin "sound/direct_sound_samples/cries/typhlosion.bin" +.endif @ P_FAMILY_CYNDAQUIL +.if P_FAMILY_TOTODILE == TRUE .align 2 Cry_Totodile:: .incbin "sound/direct_sound_samples/cries/totodile.bin" @@ -1025,7 +1505,9 @@ Cry_Croconaw:: .align 2 Cry_Feraligatr:: .incbin "sound/direct_sound_samples/cries/feraligatr.bin" +.endif @ P_FAMILY_TOTODILE +.if P_FAMILY_SENTRET == TRUE .align 2 Cry_Sentret:: .incbin "sound/direct_sound_samples/cries/sentret.bin" @@ -1033,7 +1515,9 @@ Cry_Sentret:: .align 2 Cry_Furret:: .incbin "sound/direct_sound_samples/cries/furret.bin" +.endif @ P_FAMILY_SENTRET +.if P_FAMILY_HOOTHOOT == TRUE .align 2 Cry_Hoothoot:: .incbin "sound/direct_sound_samples/cries/hoothoot.bin" @@ -1041,7 +1525,9 @@ Cry_Hoothoot:: .align 2 Cry_Noctowl:: .incbin "sound/direct_sound_samples/cries/noctowl.bin" +.endif @ P_FAMILY_HOOTHOOT +.if P_FAMILY_LEDYBA == TRUE .align 2 Cry_Ledyba:: .incbin "sound/direct_sound_samples/cries/ledyba.bin" @@ -1049,7 +1535,9 @@ Cry_Ledyba:: .align 2 Cry_Ledian:: .incbin "sound/direct_sound_samples/cries/ledian.bin" +.endif @ P_FAMILY_LEDYBA +.if P_FAMILY_SPINARAK == TRUE .align 2 Cry_Spinarak:: .incbin "sound/direct_sound_samples/cries/spinarak.bin" @@ -1057,11 +1545,9 @@ Cry_Spinarak:: .align 2 Cry_Ariados:: .incbin "sound/direct_sound_samples/cries/ariados.bin" +.endif @ P_FAMILY_SPINARAK - .align 2 -Cry_Crobat:: - .incbin "sound/direct_sound_samples/cries/crobat.bin" - +.if P_FAMILY_CHINCHOU == TRUE .align 2 Cry_Chinchou:: .incbin "sound/direct_sound_samples/cries/chinchou.bin" @@ -1069,19 +1555,9 @@ Cry_Chinchou:: .align 2 Cry_Lanturn:: .incbin "sound/direct_sound_samples/cries/lanturn.bin" +.endif @ P_FAMILY_CHINCHOU - .align 2 -Cry_Pichu:: - .incbin "sound/direct_sound_samples/cries/pichu.bin" - - .align 2 -Cry_Cleffa:: - .incbin "sound/direct_sound_samples/cries/cleffa.bin" - - .align 2 -Cry_Igglybuff:: - .incbin "sound/direct_sound_samples/cries/igglybuff.bin" - +.if P_FAMILY_TOGEPI == TRUE .align 2 Cry_Togepi:: .incbin "sound/direct_sound_samples/cries/togepi.bin" @@ -1090,6 +1566,14 @@ Cry_Togepi:: Cry_Togetic:: .incbin "sound/direct_sound_samples/cries/togetic.bin" +.if P_GEN_4_CROSS_EVOS == TRUE + .align 2 +Cry_Togekiss:: + .incbin "sound/direct_sound_samples/cries/togekiss.bin" +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_TOGEPI + +.if P_FAMILY_NATU == TRUE .align 2 Cry_Natu:: .incbin "sound/direct_sound_samples/cries/natu.bin" @@ -1097,11 +1581,12 @@ Cry_Natu:: .align 2 Cry_Xatu:: .incbin "sound/direct_sound_samples/cries/xatu.bin" - +.endif @ P_FAMILY_NATU .align 2 Cry_Mareep:: .incbin "sound/direct_sound_samples/cries/mareep.bin" +.if P_FAMILY_MAREEP == TRUE .align 2 Cry_Flaaffy:: .incbin "sound/direct_sound_samples/cries/flaaffy.bin" @@ -1110,9 +1595,19 @@ Cry_Flaaffy:: Cry_Ampharos:: .incbin "sound/direct_sound_samples/cries/ampharos.bin" +.if P_MEGA_EVOLUTIONS == TRUE .align 2 -Cry_Bellossom:: - .incbin "sound/direct_sound_samples/cries/bellossom.bin" +Cry_AmpharosMega:: + .incbin "sound/direct_sound_samples/cries/ampharos_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_MAREEP + +.if P_FAMILY_MARILL == TRUE +.if P_GEN_3_CROSS_EVOS == TRUE + .align 2 +Cry_Azurill:: + .incbin "sound/direct_sound_samples/cries/azurill.bin" +.endif @ P_GEN_3_CROSS_EVOS .align 2 Cry_Marill:: @@ -1121,15 +1616,19 @@ Cry_Marill:: .align 2 Cry_Azumarill:: .incbin "sound/direct_sound_samples/cries/azumarill.bin" +.endif @ P_FAMILY_MARILL +.if P_FAMILY_SUDOWOODO == TRUE .align 2 -Cry_Sudowoodo:: - .incbin "sound/direct_sound_samples/cries/sudowoodo.bin" +Cry_Bonsly:: + .incbin "sound/direct_sound_samples/cries/bonsly.bin" .align 2 -Cry_Politoed:: - .incbin "sound/direct_sound_samples/cries/politoed.bin" +Cry_Sudowoodo:: + .incbin "sound/direct_sound_samples/cries/sudowoodo.bin" +.endif @ P_FAMILY_SUDOWOODO +.if P_FAMILY_HOPPIP == TRUE .align 2 Cry_Hoppip:: .incbin "sound/direct_sound_samples/cries/hoppip.bin" @@ -1141,11 +1640,19 @@ Cry_Skiploom:: .align 2 Cry_Jumpluff:: .incbin "sound/direct_sound_samples/cries/jumpluff.bin" +.endif @ P_FAMILY_HOPPIP +.if P_FAMILY_AIPOM == TRUE .align 2 Cry_Aipom:: .incbin "sound/direct_sound_samples/cries/aipom.bin" + .align 2 +Cry_Ambipom:: + .incbin "sound/direct_sound_samples/cries/ambipom.bin" +.endif @ P_FAMILY_AIPOM + +.if P_FAMILY_SUNKERN == TRUE .align 2 Cry_Sunkern:: .incbin "sound/direct_sound_samples/cries/sunkern.bin" @@ -1153,11 +1660,21 @@ Cry_Sunkern:: .align 2 Cry_Sunflora:: .incbin "sound/direct_sound_samples/cries/sunflora.bin" +.endif @ P_FAMILY_SUNKERN +.if P_FAMILY_YANMA == TRUE .align 2 Cry_Yanma:: .incbin "sound/direct_sound_samples/cries/yanma.bin" +.if P_GEN_4_CROSS_EVOS == TRUE + .align 2 +Cry_Yanmega:: + .incbin "sound/direct_sound_samples/cries/yanmega.bin" +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_YANMA + +.if P_FAMILY_WOOPER == TRUE .align 2 Cry_Wooper:: .incbin "sound/direct_sound_samples/cries/wooper.bin" @@ -1166,38 +1683,65 @@ Cry_Wooper:: Cry_Quagsire:: .incbin "sound/direct_sound_samples/cries/quagsire.bin" +.if P_PALDEAN_FORMS == TRUE .align 2 -Cry_Espeon:: - .incbin "sound/direct_sound_samples/cries/espeon.bin" +Cry_Clodsire:: + .incbin "sound/direct_sound_samples/cries/clodsire.bin" - .align 2 -Cry_Umbreon:: - .incbin "sound/direct_sound_samples/cries/umbreon.bin" +.endif @ P_PALDEAN_FORMS +.endif @ P_FAMILY_WOOPER +.if P_FAMILY_MURKROW == TRUE .align 2 Cry_Murkrow:: .incbin "sound/direct_sound_samples/cries/murkrow.bin" .align 2 -Cry_Slowking:: - .incbin "sound/direct_sound_samples/cries/slowking.bin" +Cry_Honchkrow:: + .incbin "sound/direct_sound_samples/cries/honchkrow.bin" +.endif @ P_FAMILY_MURKROW +.if P_FAMILY_MISDREAVUS == TRUE .align 2 Cry_Misdreavus:: .incbin "sound/direct_sound_samples/cries/misdreavus.bin" .align 2 -Cry_Unown:: - .incbin "sound/direct_sound_samples/cries/unown.bin" - +Cry_Mismagius:: + .incbin "sound/direct_sound_samples/cries/mismagius.bin" +.endif @ P_FAMILY_MISDREAVUS + +.if P_FAMILY_UNOWN == TRUE + .align 2 +Cry_Unown:: + .incbin "sound/direct_sound_samples/cries/unown.bin" +.endif @ P_FAMILY_UNOWN + +.if P_FAMILY_WOBBUFFET == TRUE +.if P_GEN_3_CROSS_EVOS == TRUE + .align 2 +Cry_Wynaut:: + .incbin "sound/direct_sound_samples/cries/wynaut.bin" +.endif @ P_GEN_3_CROSS_EVOS + .align 2 Cry_Wobbuffet:: .incbin "sound/direct_sound_samples/cries/wobbuffet.bin" +.endif @ P_FAMILY_WOBBUFFET +.if P_FAMILY_GIRAFARIG == TRUE .align 2 Cry_Girafarig:: .incbin "sound/direct_sound_samples/cries/girafarig.bin" +.if P_GEN_9_CROSS_EVOS == TRUE + .align 2 +Cry_Farigiraf:: + .incbin "sound/direct_sound_samples/cries/farigiraf.bin" +.endif @ P_GEN_9_CROSS_EVOS +.endif @ P_FAMILY_GIRAFARIG + +.if P_FAMILY_PINECO == TRUE .align 2 Cry_Pineco:: .incbin "sound/direct_sound_samples/cries/pineco.bin" @@ -1205,19 +1749,33 @@ Cry_Pineco:: .align 2 Cry_Forretress:: .incbin "sound/direct_sound_samples/cries/forretress.bin" +.endif @ P_FAMILY_PINECO +.if P_FAMILY_DUNSPARCE == TRUE .align 2 Cry_Dunsparce:: .incbin "sound/direct_sound_samples/cries/dunsparce.bin" +.if P_GEN_9_CROSS_EVOS == TRUE + .align 2 +Cry_Dudunsparce:: + .incbin "sound/direct_sound_samples/cries/dudunsparce.bin" +.endif @ P_GEN_9_CROSS_EVOS +.endif @ P_FAMILY_DUNSPARCE + +.if P_FAMILY_GLIGAR == TRUE .align 2 Cry_Gligar:: .incbin "sound/direct_sound_samples/cries/gligar.bin" +.if P_GEN_4_CROSS_EVOS == TRUE .align 2 -Cry_Steelix:: - .incbin "sound/direct_sound_samples/cries/steelix.bin" +Cry_Gliscor:: + .incbin "sound/direct_sound_samples/cries/gliscor.bin" +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_GLIGAR +.if P_FAMILY_SNUBBULL == TRUE .align 2 Cry_Snubbull:: .incbin "sound/direct_sound_samples/cries/snubbull.bin" @@ -1225,27 +1783,58 @@ Cry_Snubbull:: .align 2 Cry_Granbull:: .incbin "sound/direct_sound_samples/cries/granbull.bin" +.endif @ P_FAMILY_SNUBBULL +.if P_FAMILY_QWILFISH == TRUE .align 2 Cry_Qwilfish:: .incbin "sound/direct_sound_samples/cries/qwilfish.bin" +.if P_HISUIAN_FORMS == TRUE .align 2 -Cry_Scizor:: - .incbin "sound/direct_sound_samples/cries/scizor.bin" +Cry_Overqwil:: + .incbin "sound/direct_sound_samples/cries/overqwil.bin" + +.endif @ P_HISUIAN_FORMS +.endif @ P_FAMILY_QWILFISH +.if P_FAMILY_SHUCKLE == TRUE .align 2 Cry_Shuckle:: .incbin "sound/direct_sound_samples/cries/shuckle.bin" +.endif @ P_FAMILY_SHUCKLE +.if P_FAMILY_HERACROSS == TRUE .align 2 Cry_Heracross:: .incbin "sound/direct_sound_samples/cries/heracross.bin" +.if P_MEGA_EVOLUTIONS == TRUE + .align 2 +Cry_HeracrossMega:: + .incbin "sound/direct_sound_samples/cries/heracross_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_HERACROSS + +.if P_FAMILY_SNEASEL == TRUE .align 2 Cry_Sneasel:: .incbin "sound/direct_sound_samples/cries/sneasel.bin" +.if P_GEN_4_CROSS_EVOS == TRUE + .align 2 +Cry_Weavile:: + .incbin "sound/direct_sound_samples/cries/weavile.bin" +.endif @ P_GEN_4_CROSS_EVOS +.if P_HISUIAN_FORMS == TRUE + .align 2 +Cry_Sneasler:: + .incbin "sound/direct_sound_samples/cries/sneasler.bin" + +.endif @ P_HISUIAN_FORMS +.endif @ P_FAMILY_SNEASEL + +.if P_FAMILY_TEDDIURSA == TRUE .align 2 Cry_Teddiursa:: .incbin "sound/direct_sound_samples/cries/teddiursa.bin" @@ -1254,6 +1843,14 @@ Cry_Teddiursa:: Cry_Ursaring:: .incbin "sound/direct_sound_samples/cries/ursaring.bin" +.if P_GEN_9_CROSS_EVOS == TRUE + .align 2 +Cry_Ursaluna:: + .incbin "sound/direct_sound_samples/cries/ursaluna.bin" +.endif @ P_GEN_9_CROSS_EVOS +.endif @ P_FAMILY_TEDDIURSA + +.if P_FAMILY_SLUGMA == TRUE .align 2 Cry_Slugma:: .incbin "sound/direct_sound_samples/cries/slugma.bin" @@ -1261,7 +1858,9 @@ Cry_Slugma:: .align 2 Cry_Magcargo:: .incbin "sound/direct_sound_samples/cries/magcargo.bin" +.endif @ P_FAMILY_SLUGMA +.if P_FAMILY_SWINUB == TRUE .align 2 Cry_Swinub:: .incbin "sound/direct_sound_samples/cries/swinub.bin" @@ -1270,10 +1869,27 @@ Cry_Swinub:: Cry_Piloswine:: .incbin "sound/direct_sound_samples/cries/piloswine.bin" +.if P_GEN_4_CROSS_EVOS == TRUE + .align 2 +Cry_Mamoswine:: + .incbin "sound/direct_sound_samples/cries/mamoswine.bin" +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_SWINUB + +.if P_FAMILY_CORSOLA == TRUE .align 2 Cry_Corsola:: .incbin "sound/direct_sound_samples/cries/corsola.bin" +.if P_GALARIAN_FORMS == TRUE + .align 2 +Cry_Cursola:: + .incbin "sound/direct_sound_samples/cries/cursola.bin" + +.endif @ P_GALARIAN_FORMS +.endif @ P_FAMILY_CORSOLA + +.if P_FAMILY_REMORAID == TRUE .align 2 Cry_Remoraid:: .incbin "sound/direct_sound_samples/cries/remoraid.bin" @@ -1281,31 +1897,48 @@ Cry_Remoraid:: .align 2 Cry_Octillery:: .incbin "sound/direct_sound_samples/cries/octillery.bin" +.endif @ P_FAMILY_REMORAID +.if P_FAMILY_DELIBIRD == TRUE .align 2 Cry_Delibird:: .incbin "sound/direct_sound_samples/cries/delibird.bin" +.endif @ P_FAMILY_DELIBIRD + +.if P_FAMILY_MANTINE == TRUE +.if P_GEN_4_CROSS_EVOS == TRUE + .align 2 +Cry_Mantyke:: + .incbin "sound/direct_sound_samples/cries/mantyke.bin" +.endif @ P_GEN_4_CROSS_EVOS .align 2 Cry_Mantine:: .incbin "sound/direct_sound_samples/cries/mantine.bin" +.endif @ P_FAMILY_MANTINE +.if P_FAMILY_SKARMORY == TRUE .align 2 Cry_Skarmory:: .incbin "sound/direct_sound_samples/cries/skarmory.bin" - +.endif @ P_FAMILY_SKARMORY .align 2 Cry_Houndour:: .incbin "sound/direct_sound_samples/cries/houndour.bin" +.if P_FAMILY_HOUNDOUR == TRUE .align 2 Cry_Houndoom:: .incbin "sound/direct_sound_samples/cries/houndoom.bin" +.if P_MEGA_EVOLUTIONS == TRUE .align 2 -Cry_Kingdra:: - .incbin "sound/direct_sound_samples/cries/kingdra.bin" +Cry_HoundoomMega:: + .incbin "sound/direct_sound_samples/cries/houndoom_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_HOUNDOUR +.if P_FAMILY_PHANPY == TRUE .align 2 Cry_Phanpy:: .incbin "sound/direct_sound_samples/cries/phanpy.bin" @@ -1313,59 +1946,51 @@ Cry_Phanpy:: .align 2 Cry_Donphan:: .incbin "sound/direct_sound_samples/cries/donphan.bin" +.endif @ P_FAMILY_PHANPY - .align 2 -Cry_Porygon2:: - .incbin "sound/direct_sound_samples/cries/porygon2.bin" - +.if P_FAMILY_STANTLER == TRUE .align 2 Cry_Stantler:: .incbin "sound/direct_sound_samples/cries/stantler.bin" +.if P_GEN_8_CROSS_EVOS == TRUE .align 2 -Cry_Smeargle:: - .incbin "sound/direct_sound_samples/cries/smeargle.bin" - - .align 2 -Cry_Tyrogue:: - .incbin "sound/direct_sound_samples/cries/tyrogue.bin" - - .align 2 -Cry_Hitmontop:: - .incbin "sound/direct_sound_samples/cries/hitmontop.bin" - - .align 2 -Cry_Smoochum:: - .incbin "sound/direct_sound_samples/cries/smoochum.bin" - - .align 2 -Cry_Elekid:: - .incbin "sound/direct_sound_samples/cries/elekid.bin" +Cry_Wyrdeer:: + .incbin "sound/direct_sound_samples/cries/wyrdeer.bin" +.endif @ P_GEN_8_CROSS_EVOS +.endif @ P_FAMILY_STANTLER +.if P_FAMILY_SMEARGLE == TRUE .align 2 -Cry_Magby:: - .incbin "sound/direct_sound_samples/cries/magby.bin" +Cry_Smeargle:: + .incbin "sound/direct_sound_samples/cries/smeargle.bin" +.endif @ P_FAMILY_SMEARGLE +.if P_FAMILY_MILTANK == TRUE .align 2 Cry_Miltank:: .incbin "sound/direct_sound_samples/cries/miltank.bin" +.endif @ P_FAMILY_MILTANK - .align 2 -Cry_Blissey:: - .incbin "sound/direct_sound_samples/cries/blissey.bin" - +.if P_FAMILY_RAIKOU == TRUE .align 2 Cry_Raikou:: .incbin "sound/direct_sound_samples/cries/raikou.bin" +.endif @ P_FAMILY_RAIKOU +.if P_FAMILY_ENTEI == TRUE .align 2 Cry_Entei:: .incbin "sound/direct_sound_samples/cries/entei.bin" +.endif @ P_FAMILY_ENTEI +.if P_FAMILY_SUICUNE == TRUE .align 2 Cry_Suicune:: .incbin "sound/direct_sound_samples/cries/suicune.bin" +.endif @ P_FAMILY_SUICUNE +.if P_FAMILY_LARVITAR == TRUE .align 2 Cry_Larvitar:: .incbin "sound/direct_sound_samples/cries/larvitar.bin" @@ -1378,18 +2003,32 @@ Cry_Pupitar:: Cry_Tyranitar:: .incbin "sound/direct_sound_samples/cries/tyranitar.bin" +.if P_MEGA_EVOLUTIONS == TRUE + .align 2 +Cry_TyranitarMega:: + .incbin "sound/direct_sound_samples/cries/tyranitar_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_LARVITAR + +.if P_FAMILY_LUGIA == TRUE .align 2 Cry_Lugia:: .incbin "sound/direct_sound_samples/cries/lugia.bin" +.endif @ P_FAMILY_LUGIA +.if P_FAMILY_HO_OH == TRUE .align 2 Cry_HoOh:: .incbin "sound/direct_sound_samples/cries/ho_oh.bin" +.endif @ P_FAMILY_HO_OH +.if P_FAMILY_CELEBI == TRUE .align 2 Cry_Celebi:: .incbin "sound/direct_sound_samples/cries/celebi.bin" +.endif @ P_FAMILY_CELEBI +.if P_FAMILY_TREECKO == TRUE .align 2 Cry_Treecko:: .incbin "sound/direct_sound_samples/cries/treecko.bin" @@ -1402,6 +2041,14 @@ Cry_Grovyle:: Cry_Sceptile:: .incbin "sound/direct_sound_samples/cries/sceptile.bin" +.if P_MEGA_EVOLUTIONS == TRUE + .align 2 +Cry_SceptileMega:: + .incbin "sound/direct_sound_samples/cries/sceptile_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_TREECKO + +.if P_FAMILY_TORCHIC == TRUE .align 2 Cry_Torchic:: .incbin "sound/direct_sound_samples/cries/torchic.bin" @@ -1414,6 +2061,14 @@ Cry_Combusken:: Cry_Blaziken:: .incbin "sound/direct_sound_samples/cries/blaziken.bin" +.if P_MEGA_EVOLUTIONS == TRUE + .align 2 +Cry_BlazikenMega:: + .incbin "sound/direct_sound_samples/cries/blaziken_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_TORCHIC + +.if P_FAMILY_MUDKIP == TRUE .align 2 Cry_Mudkip:: .incbin "sound/direct_sound_samples/cries/mudkip.bin" @@ -1426,6 +2081,14 @@ Cry_Marshtomp:: Cry_Swampert:: .incbin "sound/direct_sound_samples/cries/swampert.bin" +.if P_MEGA_EVOLUTIONS == TRUE + .align 2 +Cry_SwampertMega:: + .incbin "sound/direct_sound_samples/cries/swampert_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_MUDKIP + +.if P_FAMILY_POOCHYENA == TRUE .align 2 Cry_Poochyena:: .incbin "sound/direct_sound_samples/cries/poochyena.bin" @@ -1433,7 +2096,9 @@ Cry_Poochyena:: .align 2 Cry_Mightyena:: .incbin "sound/direct_sound_samples/cries/mightyena.bin" +.endif @ P_FAMILY_POOCHYENA +.if P_FAMILY_ZIGZAGOON == TRUE .align 2 Cry_Zigzagoon:: .incbin "sound/direct_sound_samples/cries/zigzagoon.bin" @@ -1442,6 +2107,15 @@ Cry_Zigzagoon:: Cry_Linoone:: .incbin "sound/direct_sound_samples/cries/linoone.bin" +.if P_GALARIAN_FORMS == TRUE + .align 2 +Cry_Obstagoon:: + .incbin "sound/direct_sound_samples/cries/obstagoon.bin" + +.endif @ P_GALARIAN_FORMS +.endif @ P_FAMILY_ZIGZAGOON + +.if P_FAMILY_WURMPLE == TRUE .align 2 Cry_Wurmple:: .incbin "sound/direct_sound_samples/cries/wurmple.bin" @@ -1461,7 +2135,9 @@ Cry_Cascoon:: .align 2 Cry_Dustox:: .incbin "sound/direct_sound_samples/cries/dustox.bin" +.endif @ P_FAMILY_WURMPLE +.if P_FAMILY_LOTAD == TRUE .align 2 Cry_Lotad:: .incbin "sound/direct_sound_samples/cries/lotad.bin" @@ -1473,7 +2149,9 @@ Cry_Lombre:: .align 2 Cry_Ludicolo:: .incbin "sound/direct_sound_samples/cries/ludicolo.bin" +.endif @ P_FAMILY_LOTAD +.if P_FAMILY_SEEDOT == TRUE .align 2 Cry_Seedot:: .incbin "sound/direct_sound_samples/cries/seedot.bin" @@ -1485,7 +2163,9 @@ Cry_Nuzleaf:: .align 2 Cry_Shiftry:: .incbin "sound/direct_sound_samples/cries/shiftry.bin" +.endif @ P_FAMILY_SEEDOT +.if P_FAMILY_TAILLOW == TRUE .align 2 Cry_Taillow:: .incbin "sound/direct_sound_samples/cries/taillow.bin" @@ -1493,7 +2173,9 @@ Cry_Taillow:: .align 2 Cry_Swellow:: .incbin "sound/direct_sound_samples/cries/swellow.bin" +.endif @ P_FAMILY_TAILLOW +.if P_FAMILY_WINGULL == TRUE .align 2 Cry_Wingull:: .incbin "sound/direct_sound_samples/cries/wingull.bin" @@ -1501,7 +2183,9 @@ Cry_Wingull:: .align 2 Cry_Pelipper:: .incbin "sound/direct_sound_samples/cries/pelipper.bin" +.endif @ P_FAMILY_WINGULL +.if P_FAMILY_RALTS == TRUE .align 2 Cry_Ralts:: .incbin "sound/direct_sound_samples/cries/ralts.bin" @@ -1514,6 +2198,25 @@ Cry_Kirlia:: Cry_Gardevoir:: .incbin "sound/direct_sound_samples/cries/gardevoir.bin" +.if P_MEGA_EVOLUTIONS == TRUE + .align 2 +Cry_GardevoirMega:: + .incbin "sound/direct_sound_samples/cries/gardevoir_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.if P_GEN_4_CROSS_EVOS == TRUE + .align 2 +Cry_Gallade:: + .incbin "sound/direct_sound_samples/cries/gallade.bin" + +.if P_MEGA_EVOLUTIONS == TRUE + .align 2 +Cry_GalladeMega:: + .incbin "sound/direct_sound_samples/cries/gallade_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_RALTS + +.if P_FAMILY_SURSKIT == TRUE .align 2 Cry_Surskit:: .incbin "sound/direct_sound_samples/cries/surskit.bin" @@ -1521,7 +2224,9 @@ Cry_Surskit:: .align 2 Cry_Masquerain:: .incbin "sound/direct_sound_samples/cries/masquerain.bin" +.endif @ P_FAMILY_SURSKIT +.if P_FAMILY_SHROOMISH == TRUE .align 2 Cry_Shroomish:: .incbin "sound/direct_sound_samples/cries/shroomish.bin" @@ -1529,7 +2234,9 @@ Cry_Shroomish:: .align 2 Cry_Breloom:: .incbin "sound/direct_sound_samples/cries/breloom.bin" +.endif @ P_FAMILY_SHROOMISH +.if P_FAMILY_SLAKOTH == TRUE .align 2 Cry_Slakoth:: .incbin "sound/direct_sound_samples/cries/slakoth.bin" @@ -1541,7 +2248,9 @@ Cry_Vigoroth:: .align 2 Cry_Slaking:: .incbin "sound/direct_sound_samples/cries/slaking.bin" +.endif @ P_FAMILY_SLAKOTH +.if P_FAMILY_NINCADA == TRUE .align 2 Cry_Nincada:: .incbin "sound/direct_sound_samples/cries/nincada.bin" @@ -1553,7 +2262,9 @@ Cry_Ninjask:: .align 2 Cry_Shedinja:: .incbin "sound/direct_sound_samples/cries/shedinja.bin" +.endif @ P_FAMILY_NINCADA +.if P_FAMILY_WHISMUR == TRUE .align 2 Cry_Whismur:: .incbin "sound/direct_sound_samples/cries/whismur.bin" @@ -1565,7 +2276,9 @@ Cry_Loudred:: .align 2 Cry_Exploud:: .incbin "sound/direct_sound_samples/cries/exploud.bin" +.endif @ P_FAMILY_WHISMUR +.if P_FAMILY_MAKUHITA == TRUE .align 2 Cry_Makuhita:: .incbin "sound/direct_sound_samples/cries/makuhita.bin" @@ -1573,15 +2286,21 @@ Cry_Makuhita:: .align 2 Cry_Hariyama:: .incbin "sound/direct_sound_samples/cries/hariyama.bin" +.endif @ P_FAMILY_MAKUHITA - .align 2 -Cry_Azurill:: - .incbin "sound/direct_sound_samples/cries/azurill.bin" - +.if P_FAMILY_NOSEPASS == TRUE .align 2 Cry_Nosepass:: .incbin "sound/direct_sound_samples/cries/nosepass.bin" +.if P_GEN_4_CROSS_EVOS == TRUE + .align 2 +Cry_Probopass:: + .incbin "sound/direct_sound_samples/cries/probopass.bin" +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_NOSEPASS + +.if P_FAMILY_SKITTY == TRUE .align 2 Cry_Skitty:: .incbin "sound/direct_sound_samples/cries/skitty.bin" @@ -1589,15 +2308,33 @@ Cry_Skitty:: .align 2 Cry_Delcatty:: .incbin "sound/direct_sound_samples/cries/delcatty.bin" +.endif @ P_FAMILY_SKITTY +.if P_FAMILY_SABLEYE == TRUE .align 2 Cry_Sableye:: .incbin "sound/direct_sound_samples/cries/sableye.bin" +.if P_MEGA_EVOLUTIONS == TRUE + .align 2 +Cry_SableyeMega:: + .incbin "sound/direct_sound_samples/cries/sableye_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_SABLEYE + +.if P_FAMILY_MAWILE == TRUE .align 2 Cry_Mawile:: .incbin "sound/direct_sound_samples/cries/mawile.bin" +.if P_MEGA_EVOLUTIONS == TRUE + .align 2 +Cry_MawileMega:: + .incbin "sound/direct_sound_samples/cries/mawile_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_MAWILE + +.if P_FAMILY_ARON == TRUE .align 2 Cry_Aron:: .incbin "sound/direct_sound_samples/cries/aron.bin" @@ -1610,6 +2347,14 @@ Cry_Lairon:: Cry_Aggron:: .incbin "sound/direct_sound_samples/cries/aggron.bin" +.if P_MEGA_EVOLUTIONS == TRUE + .align 2 +Cry_AggronMega:: + .incbin "sound/direct_sound_samples/cries/aggron_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_ARON + +.if P_FAMILY_MEDITITE == TRUE .align 2 Cry_Meditite:: .incbin "sound/direct_sound_samples/cries/meditite.bin" @@ -1618,6 +2363,14 @@ Cry_Meditite:: Cry_Medicham:: .incbin "sound/direct_sound_samples/cries/medicham.bin" +.if P_MEGA_EVOLUTIONS == TRUE + .align 2 +Cry_MedichamMega:: + .incbin "sound/direct_sound_samples/cries/medicham_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_MEDITITE + +.if P_FAMILY_ELECTRIKE == TRUE .align 2 Cry_Electrike:: .incbin "sound/direct_sound_samples/cries/electrike.bin" @@ -1626,14 +2379,26 @@ Cry_Electrike:: Cry_Manectric:: .incbin "sound/direct_sound_samples/cries/manectric.bin" +.if P_MEGA_EVOLUTIONS == TRUE + .align 2 +Cry_ManectricMega:: + .incbin "sound/direct_sound_samples/cries/manectric_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_ELECTRIKE + +.if P_FAMILY_PLUSLE == TRUE .align 2 Cry_Plusle:: .incbin "sound/direct_sound_samples/cries/plusle.bin" +.endif @ P_FAMILY_PLUSLE +.if P_FAMILY_MINUN == TRUE .align 2 Cry_Minun:: .incbin "sound/direct_sound_samples/cries/minun.bin" +.endif @ P_FAMILY_MINUN +.if P_FAMILY_VOLBEAT_ILLUMISE == TRUE .align 2 Cry_Volbeat:: .incbin "sound/direct_sound_samples/cries/volbeat.bin" @@ -1641,11 +2406,27 @@ Cry_Volbeat:: .align 2 Cry_Illumise:: .incbin "sound/direct_sound_samples/cries/illumise.bin" +.endif @ P_FAMILY_VOLBEAT_ILLUMISE + +.if P_FAMILY_ROSELIA == TRUE +.if P_GEN_4_CROSS_EVOS == TRUE + .align 2 +Cry_Budew:: + .incbin "sound/direct_sound_samples/cries/budew.bin" +.endif @ P_GEN_4_CROSS_EVOS .align 2 Cry_Roselia:: .incbin "sound/direct_sound_samples/cries/roselia.bin" +.if P_GEN_4_CROSS_EVOS == TRUE + .align 2 +Cry_Roserade:: + .incbin "sound/direct_sound_samples/cries/roserade.bin" +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_ROSELIA + +.if P_FAMILY_GULPIN == TRUE .align 2 Cry_Gulpin:: .incbin "sound/direct_sound_samples/cries/gulpin.bin" @@ -1653,7 +2434,9 @@ Cry_Gulpin:: .align 2 Cry_Swalot:: .incbin "sound/direct_sound_samples/cries/swalot.bin" +.endif @ P_FAMILY_GULPIN +.if P_FAMILY_CARVANHA == TRUE .align 2 Cry_Carvanha:: .incbin "sound/direct_sound_samples/cries/carvanha.bin" @@ -1662,6 +2445,14 @@ Cry_Carvanha:: Cry_Sharpedo:: .incbin "sound/direct_sound_samples/cries/sharpedo.bin" +.if P_MEGA_EVOLUTIONS == TRUE + .align 2 +Cry_SharpedoMega:: + .incbin "sound/direct_sound_samples/cries/sharpedo_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_CARVANHA + +.if P_FAMILY_WAILMER == TRUE .align 2 Cry_Wailmer:: .incbin "sound/direct_sound_samples/cries/wailmer.bin" @@ -1669,7 +2460,9 @@ Cry_Wailmer:: .align 2 Cry_Wailord:: .incbin "sound/direct_sound_samples/cries/wailord.bin" +.endif @ P_FAMILY_WAILMER +.if P_FAMILY_NUMEL == TRUE .align 2 Cry_Numel:: .incbin "sound/direct_sound_samples/cries/numel.bin" @@ -1678,10 +2471,20 @@ Cry_Numel:: Cry_Camerupt:: .incbin "sound/direct_sound_samples/cries/camerupt.bin" +.if P_MEGA_EVOLUTIONS == TRUE + .align 2 +Cry_CameruptMega:: + .incbin "sound/direct_sound_samples/cries/camerupt_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_NUMEL + +.if P_FAMILY_TORKOAL == TRUE .align 2 Cry_Torkoal:: .incbin "sound/direct_sound_samples/cries/torkoal.bin" +.endif @ P_FAMILY_TORKOAL +.if P_FAMILY_SPOINK == TRUE .align 2 Cry_Spoink:: .incbin "sound/direct_sound_samples/cries/spoink.bin" @@ -1689,11 +2492,15 @@ Cry_Spoink:: .align 2 Cry_Grumpig:: .incbin "sound/direct_sound_samples/cries/grumpig.bin" +.endif @ P_FAMILY_SPOINK +.if P_FAMILY_SPINDA == TRUE .align 2 Cry_Spinda:: .incbin "sound/direct_sound_samples/cries/spinda.bin" +.endif @ P_FAMILY_SPINDA +.if P_FAMILY_TRAPINCH == TRUE .align 2 Cry_Trapinch:: .incbin "sound/direct_sound_samples/cries/trapinch.bin" @@ -1705,7 +2512,9 @@ Cry_Vibrava:: .align 2 Cry_Flygon:: .incbin "sound/direct_sound_samples/cries/flygon.bin" +.endif @ P_FAMILY_TRAPINCH +.if P_FAMILY_CACNEA == TRUE .align 2 Cry_Cacnea:: .incbin "sound/direct_sound_samples/cries/cacnea.bin" @@ -1713,7 +2522,9 @@ Cry_Cacnea:: .align 2 Cry_Cacturne:: .incbin "sound/direct_sound_samples/cries/cacturne.bin" +.endif @ P_FAMILY_CACNEA +.if P_FAMILY_SWABLU == TRUE .align 2 Cry_Swablu:: .incbin "sound/direct_sound_samples/cries/swablu.bin" @@ -1722,22 +2533,38 @@ Cry_Swablu:: Cry_Altaria:: .incbin "sound/direct_sound_samples/cries/altaria.bin" +.if P_MEGA_EVOLUTIONS == TRUE + .align 2 +Cry_AltariaMega:: + .incbin "sound/direct_sound_samples/cries/altaria_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_SWABLU + +.if P_FAMILY_ZANGOOSE == TRUE .align 2 Cry_Zangoose:: .incbin "sound/direct_sound_samples/cries/zangoose.bin" +.endif @ P_FAMILY_ZANGOOSE +.if P_FAMILY_SEVIPER == TRUE .align 2 Cry_Seviper:: .incbin "sound/direct_sound_samples/cries/seviper.bin" +.endif @ P_FAMILY_SEVIPER +.if P_FAMILY_LUNATONE == TRUE .align 2 Cry_Lunatone:: .incbin "sound/direct_sound_samples/cries/lunatone.bin" +.endif @ P_FAMILY_LUNATONE +.if P_FAMILY_SOLROCK == TRUE .align 2 Cry_Solrock:: .incbin "sound/direct_sound_samples/cries/solrock.bin" +.endif @ P_FAMILY_SOLROCK +.if P_FAMILY_BARBOACH == TRUE .align 2 Cry_Barboach:: .incbin "sound/direct_sound_samples/cries/barboach.bin" @@ -1745,7 +2572,9 @@ Cry_Barboach:: .align 2 Cry_Whiscash:: .incbin "sound/direct_sound_samples/cries/whiscash.bin" +.endif @ P_FAMILY_BARBOACH +.if P_FAMILY_CORPHISH == TRUE .align 2 Cry_Corphish:: .incbin "sound/direct_sound_samples/cries/corphish.bin" @@ -1753,7 +2582,9 @@ Cry_Corphish:: .align 2 Cry_Crawdaunt:: .incbin "sound/direct_sound_samples/cries/crawdaunt.bin" +.endif @ P_FAMILY_CORPHISH +.if P_FAMILY_BALTOY == TRUE .align 2 Cry_Baltoy:: .incbin "sound/direct_sound_samples/cries/baltoy.bin" @@ -1761,7 +2592,9 @@ Cry_Baltoy:: .align 2 Cry_Claydol:: .incbin "sound/direct_sound_samples/cries/claydol.bin" +.endif @ P_FAMILY_BALTOY +.if P_FAMILY_LILEEP == TRUE .align 2 Cry_Lileep:: .incbin "sound/direct_sound_samples/cries/lileep.bin" @@ -1769,7 +2602,9 @@ Cry_Lileep:: .align 2 Cry_Cradily:: .incbin "sound/direct_sound_samples/cries/cradily.bin" +.endif @ P_FAMILY_LILEEP +.if P_FAMILY_ANORITH == TRUE .align 2 Cry_Anorith:: .incbin "sound/direct_sound_samples/cries/anorith.bin" @@ -1777,7 +2612,9 @@ Cry_Anorith:: .align 2 Cry_Armaldo:: .incbin "sound/direct_sound_samples/cries/armaldo.bin" +.endif @ P_FAMILY_ANORITH +.if P_FAMILY_FEEBAS == TRUE .align 2 Cry_Feebas:: .incbin "sound/direct_sound_samples/cries/feebas.bin" @@ -1785,15 +2622,21 @@ Cry_Feebas:: .align 2 Cry_Milotic:: .incbin "sound/direct_sound_samples/cries/milotic.bin" +.endif @ P_FAMILY_FEEBAS +.if P_FAMILY_CASTFORM == TRUE .align 2 Cry_Castform:: .incbin "sound/direct_sound_samples/cries/castform.bin" +.endif @ P_FAMILY_CASTFORM +.if P_FAMILY_KECLEON == TRUE .align 2 Cry_Kecleon:: .incbin "sound/direct_sound_samples/cries/kecleon.bin" +.endif @ P_FAMILY_KECLEON +.if P_FAMILY_SHUPPET == TRUE .align 2 Cry_Shuppet:: .incbin "sound/direct_sound_samples/cries/shuppet.bin" @@ -1802,6 +2645,14 @@ Cry_Shuppet:: Cry_Banette:: .incbin "sound/direct_sound_samples/cries/banette.bin" +.if P_MEGA_EVOLUTIONS == TRUE + .align 2 +Cry_BanetteMega:: + .incbin "sound/direct_sound_samples/cries/banette_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_SHUPPET + +.if P_FAMILY_DUSKULL == TRUE .align 2 Cry_Duskull:: .incbin "sound/direct_sound_samples/cries/duskull.bin" @@ -1810,22 +2661,44 @@ Cry_Duskull:: Cry_Dusclops:: .incbin "sound/direct_sound_samples/cries/dusclops.bin" +.if P_GEN_4_CROSS_EVOS == TRUE + .align 2 +Cry_Dusknoir:: + .incbin "sound/direct_sound_samples/cries/dusknoir.bin" +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_DUSKULL + +.if P_FAMILY_TROPIUS == TRUE .align 2 Cry_Tropius:: .incbin "sound/direct_sound_samples/cries/tropius.bin" +.endif @ P_FAMILY_TROPIUS + +.if P_FAMILY_CHIMECHO == TRUE +.if P_GEN_4_CROSS_EVOS == TRUE + .align 2 +Cry_Chingling:: + .incbin "sound/direct_sound_samples/cries/chingling.bin" +.endif @ P_GEN_4_CROSS_EVOS .align 2 Cry_Chimecho:: .incbin "sound/direct_sound_samples/cries/chimecho.bin" +.endif @ P_FAMILY_CHIMECHO +.if P_FAMILY_ABSOL == TRUE .align 2 Cry_Absol:: .incbin "sound/direct_sound_samples/cries/absol.bin" +.if P_MEGA_EVOLUTIONS == TRUE .align 2 -Cry_Wynaut:: - .incbin "sound/direct_sound_samples/cries/wynaut.bin" +Cry_AbsolMega:: + .incbin "sound/direct_sound_samples/cries/absol_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_ABSOL +.if P_FAMILY_SNORUNT == TRUE .align 2 Cry_Snorunt:: .incbin "sound/direct_sound_samples/cries/snorunt.bin" @@ -1834,6 +2707,19 @@ Cry_Snorunt:: Cry_Glalie:: .incbin "sound/direct_sound_samples/cries/glalie.bin" +.if P_MEGA_EVOLUTIONS == TRUE + .align 2 +Cry_GlalieMega:: + .incbin "sound/direct_sound_samples/cries/glalie_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.if P_GEN_4_CROSS_EVOS == TRUE + .align 2 +Cry_Froslass:: + .incbin "sound/direct_sound_samples/cries/froslass.bin" +.endif @ P_GEN_4_CROSS_EVOS +.endif @ P_FAMILY_SNORUNT + +.if P_FAMILY_SPHEAL == TRUE .align 2 Cry_Spheal:: .incbin "sound/direct_sound_samples/cries/spheal.bin" @@ -1845,7 +2731,9 @@ Cry_Sealeo:: .align 2 Cry_Walrein:: .incbin "sound/direct_sound_samples/cries/walrein.bin" +.endif @ P_FAMILY_SPHEAL +.if P_FAMILY_CLAMPERL == TRUE .align 2 Cry_Clamperl:: .incbin "sound/direct_sound_samples/cries/clamperl.bin" @@ -1857,15 +2745,21 @@ Cry_Huntail:: .align 2 Cry_Gorebyss:: .incbin "sound/direct_sound_samples/cries/gorebyss.bin" +.endif @ P_FAMILY_CLAMPERL +.if P_FAMILY_RELICANTH == TRUE .align 2 Cry_Relicanth:: .incbin "sound/direct_sound_samples/cries/relicanth.bin" +.endif @ P_FAMILY_RELICANTH +.if P_FAMILY_LUVDISC == TRUE .align 2 Cry_Luvdisc:: .incbin "sound/direct_sound_samples/cries/luvdisc.bin" +.endif @ P_FAMILY_LUVDISC +.if P_FAMILY_BAGON == TRUE .align 2 Cry_Bagon:: .incbin "sound/direct_sound_samples/cries/bagon.bin" @@ -1878,6 +2772,14 @@ Cry_Shelgon:: Cry_Salamence:: .incbin "sound/direct_sound_samples/cries/salamence.bin" +.if P_MEGA_EVOLUTIONS == TRUE + .align 2 +Cry_SalamenceMega:: + .incbin "sound/direct_sound_samples/cries/salamence_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_BAGON + +.if P_FAMILY_BELDUM == TRUE .align 2 Cry_Beldum:: .incbin "sound/direct_sound_samples/cries/beldum.bin" @@ -1890,47 +2792,107 @@ Cry_Metang:: Cry_Metagross:: .incbin "sound/direct_sound_samples/cries/metagross.bin" +.if P_MEGA_EVOLUTIONS == TRUE + .align 2 +Cry_MetagrossMega:: + .incbin "sound/direct_sound_samples/cries/metagross_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_BELDUM + +.if P_FAMILY_REGIROCK == TRUE .align 2 Cry_Regirock:: .incbin "sound/direct_sound_samples/cries/regirock.bin" +.endif @ P_FAMILY_REGIROCK +.if P_FAMILY_REGICE == TRUE .align 2 Cry_Regice:: .incbin "sound/direct_sound_samples/cries/regice.bin" +.endif @ P_FAMILY_REGICE +.if P_FAMILY_REGISTEEL == TRUE .align 2 Cry_Registeel:: .incbin "sound/direct_sound_samples/cries/registeel.bin" +.endif @ P_FAMILY_REGISTEEL +.if P_FAMILY_LATIAS == TRUE .align 2 Cry_Latias:: .incbin "sound/direct_sound_samples/cries/latias.bin" +.if P_MEGA_EVOLUTIONS == TRUE + .align 2 +Cry_LatiasMega:: + .incbin "sound/direct_sound_samples/cries/latias_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_LATIAS + +.if P_FAMILY_LATIOS == TRUE .align 2 Cry_Latios:: .incbin "sound/direct_sound_samples/cries/latios.bin" +.if P_MEGA_EVOLUTIONS == TRUE + .align 2 +Cry_LatiosMega:: + .incbin "sound/direct_sound_samples/cries/latios_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_LATIOS + +.if P_FAMILY_KYOGRE == TRUE .align 2 Cry_Kyogre:: .incbin "sound/direct_sound_samples/cries/kyogre.bin" +.if P_PRIMAL_REVERSIONS == TRUE + .align 2 +Cry_KyogrePrimal:: + .incbin "sound/direct_sound_samples/cries/kyogre_primal.bin" + +.endif @ P_PRIMAL_REVERSIONS +.endif @ P_FAMILY_KYOGRE + +.if P_FAMILY_GROUDON == TRUE .align 2 Cry_Groudon:: .incbin "sound/direct_sound_samples/cries/groudon.bin" +.if P_PRIMAL_REVERSIONS == TRUE + .align 2 +Cry_GroudonPrimal:: + .incbin "sound/direct_sound_samples/cries/groudon_primal.bin" + +.endif @ P_PRIMAL_REVERSIONS +.endif @ P_FAMILY_GROUDON + +.if P_FAMILY_RAYQUAZA == TRUE .align 2 Cry_Rayquaza:: .incbin "sound/direct_sound_samples/cries/rayquaza.bin" +.if P_MEGA_EVOLUTIONS == TRUE + .align 2 +Cry_RayquazaMega:: + .incbin "sound/direct_sound_samples/cries/rayquaza_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_RAYQUAZA + +.if P_FAMILY_JIRACHI == TRUE .align 2 Cry_Jirachi:: .incbin "sound/direct_sound_samples/cries/jirachi.bin" +.endif @ P_FAMILY_JIRACHI +.if P_FAMILY_DEOXYS == TRUE .align 2 Cry_Deoxys:: .incbin "sound/direct_sound_samples/cries/deoxys.bin" +.endif @ P_FAMILY_DEOXYS -.if P_GEN_4_POKEMON == TRUE +.if P_FAMILY_TURTWIG == TRUE +.endif @ P_FAMILY_TURTWIG .align 2 Cry_Turtwig:: .incbin "sound/direct_sound_samples/cries/turtwig.bin" @@ -1943,6 +2905,8 @@ Cry_Grotle:: Cry_Torterra:: .incbin "sound/direct_sound_samples/cries/torterra.bin" +.if P_FAMILY_CHIMCHAR == TRUE +.endif @ P_FAMILY_CHIMCHAR .align 2 Cry_Chimchar:: .incbin "sound/direct_sound_samples/cries/chimchar.bin" @@ -1955,6 +2919,7 @@ Cry_Monferno:: Cry_Infernape:: .incbin "sound/direct_sound_samples/cries/infernape.bin" +.if P_FAMILY_PIPLUP == TRUE .align 2 Cry_Piplup:: .incbin "sound/direct_sound_samples/cries/piplup.bin" @@ -1966,7 +2931,9 @@ Cry_Prinplup:: .align 2 Cry_Empoleon:: .incbin "sound/direct_sound_samples/cries/empoleon.bin" +.endif @ P_FAMILY_PIPLUP +.if P_FAMILY_STARLY == TRUE .align 2 Cry_Starly:: .incbin "sound/direct_sound_samples/cries/starly.bin" @@ -1978,7 +2945,9 @@ Cry_Staravia:: .align 2 Cry_Staraptor:: .incbin "sound/direct_sound_samples/cries/staraptor.bin" +.endif @ P_FAMILY_STARLY +.if P_FAMILY_BIDOOF == TRUE .align 2 Cry_Bidoof:: .incbin "sound/direct_sound_samples/cries/bidoof.bin" @@ -1986,7 +2955,9 @@ Cry_Bidoof:: .align 2 Cry_Bibarel:: .incbin "sound/direct_sound_samples/cries/bibarel.bin" +.endif @ P_FAMILY_BIDOOF +.if P_FAMILY_KRICKETOT == TRUE .align 2 Cry_Kricketot:: .incbin "sound/direct_sound_samples/cries/kricketot.bin" @@ -1994,7 +2965,9 @@ Cry_Kricketot:: .align 2 Cry_Kricketune:: .incbin "sound/direct_sound_samples/cries/kricketune.bin" +.endif @ P_FAMILY_KRICKETOT +.if P_FAMILY_SHINX == TRUE .align 2 Cry_Shinx:: .incbin "sound/direct_sound_samples/cries/shinx.bin" @@ -2006,15 +2979,9 @@ Cry_Luxio:: .align 2 Cry_Luxray:: .incbin "sound/direct_sound_samples/cries/luxray.bin" +.endif @ P_FAMILY_SHINX - .align 2 -Cry_Budew:: - .incbin "sound/direct_sound_samples/cries/budew.bin" - - .align 2 -Cry_Roserade:: - .incbin "sound/direct_sound_samples/cries/roserade.bin" - +.if P_FAMILY_CRANIDOS == TRUE .align 2 Cry_Cranidos:: .incbin "sound/direct_sound_samples/cries/cranidos.bin" @@ -2022,7 +2989,9 @@ Cry_Cranidos:: .align 2 Cry_Rampardos:: .incbin "sound/direct_sound_samples/cries/rampardos.bin" +.endif @ P_FAMILY_CRANIDOS +.if P_FAMILY_SHIELDON == TRUE .align 2 Cry_Shieldon:: .incbin "sound/direct_sound_samples/cries/shieldon.bin" @@ -2030,7 +2999,9 @@ Cry_Shieldon:: .align 2 Cry_Bastiodon:: .incbin "sound/direct_sound_samples/cries/bastiodon.bin" +.endif @ P_FAMILY_SHIELDON +.if P_FAMILY_BURMY == TRUE .align 2 Cry_Burmy:: .incbin "sound/direct_sound_samples/cries/burmy.bin" @@ -2042,7 +3013,9 @@ Cry_Wormadam:: .align 2 Cry_Mothim:: .incbin "sound/direct_sound_samples/cries/mothim.bin" +.endif @ P_FAMILY_BURMY +.if P_FAMILY_COMBEE == TRUE .align 2 Cry_Combee:: .incbin "sound/direct_sound_samples/cries/combee.bin" @@ -2050,11 +3023,15 @@ Cry_Combee:: .align 2 Cry_Vespiquen:: .incbin "sound/direct_sound_samples/cries/vespiquen.bin" +.endif @ P_FAMILY_COMBEE +.if P_FAMILY_PACHIRISU == TRUE .align 2 Cry_Pachirisu:: .incbin "sound/direct_sound_samples/cries/pachirisu.bin" +.endif @ P_FAMILY_PACHIRISU +.if P_FAMILY_BUIZEL == TRUE .align 2 Cry_Buizel:: .incbin "sound/direct_sound_samples/cries/buizel.bin" @@ -2062,7 +3039,9 @@ Cry_Buizel:: .align 2 Cry_Floatzel:: .incbin "sound/direct_sound_samples/cries/floatzel.bin" +.endif @ P_FAMILY_BUIZEL +.if P_FAMILY_CHERUBI == TRUE .align 2 Cry_Cherubi:: .incbin "sound/direct_sound_samples/cries/cherubi.bin" @@ -2070,7 +3049,9 @@ Cry_Cherubi:: .align 2 Cry_Cherrim:: .incbin "sound/direct_sound_samples/cries/cherrim.bin" +.endif @ P_FAMILY_CHERUBI +.if P_FAMILY_SHELLOS == TRUE .align 2 Cry_Shellos:: .incbin "sound/direct_sound_samples/cries/shellos.bin" @@ -2078,11 +3059,9 @@ Cry_Shellos:: .align 2 Cry_Gastrodon:: .incbin "sound/direct_sound_samples/cries/gastrodon.bin" +.endif @ P_FAMILY_SHELLOS - .align 2 -Cry_Ambipom:: - .incbin "sound/direct_sound_samples/cries/ambipom.bin" - +.if P_FAMILY_DRIFLOON == TRUE .align 2 Cry_Drifloon:: .incbin "sound/direct_sound_samples/cries/drifloon.bin" @@ -2090,7 +3069,9 @@ Cry_Drifloon:: .align 2 Cry_Drifblim:: .incbin "sound/direct_sound_samples/cries/drifblim.bin" +.endif @ P_FAMILY_DRIFLOON +.if P_FAMILY_BUNEARY == TRUE .align 2 Cry_Buneary:: .incbin "sound/direct_sound_samples/cries/buneary.bin" @@ -2099,14 +3080,14 @@ Cry_Buneary:: Cry_Lopunny:: .incbin "sound/direct_sound_samples/cries/lopunny.bin" +.if P_MEGA_EVOLUTIONS == TRUE .align 2 -Cry_Mismagius:: - .incbin "sound/direct_sound_samples/cries/mismagius.bin" - - .align 2 -Cry_Honchkrow:: - .incbin "sound/direct_sound_samples/cries/honchkrow.bin" +Cry_LopunnyMega:: + .incbin "sound/direct_sound_samples/cries/lopunny_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_BUNEARY +.if P_FAMILY_GLAMEOW == TRUE .align 2 Cry_Glameow:: .incbin "sound/direct_sound_samples/cries/glameow.bin" @@ -2114,11 +3095,9 @@ Cry_Glameow:: .align 2 Cry_Purugly:: .incbin "sound/direct_sound_samples/cries/purugly.bin" +.endif @ P_FAMILY_GLAMEOW - .align 2 -Cry_Chingling:: - .incbin "sound/direct_sound_samples/cries/chingling.bin" - +.if P_FAMILY_STUNKY == TRUE .align 2 Cry_Stunky:: .incbin "sound/direct_sound_samples/cries/stunky.bin" @@ -2126,7 +3105,9 @@ Cry_Stunky:: .align 2 Cry_Skuntank:: .incbin "sound/direct_sound_samples/cries/skuntank.bin" +.endif @ P_FAMILY_STUNKY +.if P_FAMILY_BRONZOR == TRUE .align 2 Cry_Bronzor:: .incbin "sound/direct_sound_samples/cries/bronzor.bin" @@ -2134,27 +3115,21 @@ Cry_Bronzor:: .align 2 Cry_Bronzong:: .incbin "sound/direct_sound_samples/cries/bronzong.bin" +.endif @ P_FAMILY_BRONZOR - .align 2 -Cry_Bonsly:: - .incbin "sound/direct_sound_samples/cries/bonsly.bin" - - .align 2 -Cry_MimeJr:: - .incbin "sound/direct_sound_samples/cries/mime_jr.bin" - - .align 2 -Cry_Happiny:: - .incbin "sound/direct_sound_samples/cries/happiny.bin" - +.if P_FAMILY_CHATOT == TRUE .align 2 Cry_Chatot:: .incbin "sound/direct_sound_samples/cries/chatot.bin" +.endif @ P_FAMILY_CHATOT +.if P_FAMILY_SPIRITOMB == TRUE .align 2 Cry_Spiritomb:: .incbin "sound/direct_sound_samples/cries/spiritomb.bin" +.endif @ P_FAMILY_SPIRITOMB +.if P_FAMILY_GIBLE == TRUE .align 2 Cry_Gible:: .incbin "sound/direct_sound_samples/cries/gible.bin" @@ -2167,10 +3142,14 @@ Cry_Gabite:: Cry_Garchomp:: .incbin "sound/direct_sound_samples/cries/garchomp.bin" +.if P_MEGA_EVOLUTIONS == TRUE .align 2 -Cry_Munchlax:: - .incbin "sound/direct_sound_samples/cries/munchlax.bin" +Cry_GarchompMega:: + .incbin "sound/direct_sound_samples/cries/garchomp_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_GIBLE +.if P_FAMILY_RIOLU == TRUE .align 2 Cry_Riolu:: .incbin "sound/direct_sound_samples/cries/riolu.bin" @@ -2179,6 +3158,14 @@ Cry_Riolu:: Cry_Lucario:: .incbin "sound/direct_sound_samples/cries/lucario.bin" +.if P_MEGA_EVOLUTIONS == TRUE + .align 2 +Cry_LucarioMega:: + .incbin "sound/direct_sound_samples/cries/lucario_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_RIOLU + +.if P_FAMILY_HIPPOPOTAS == TRUE .align 2 Cry_Hippopotas:: .incbin "sound/direct_sound_samples/cries/hippopotas.bin" @@ -2186,7 +3173,9 @@ Cry_Hippopotas:: .align 2 Cry_Hippowdon:: .incbin "sound/direct_sound_samples/cries/hippowdon.bin" +.endif @ P_FAMILY_HIPPOPOTAS +.if P_FAMILY_SKORUPI == TRUE .align 2 Cry_Skorupi:: .incbin "sound/direct_sound_samples/cries/skorupi.bin" @@ -2194,7 +3183,9 @@ Cry_Skorupi:: .align 2 Cry_Drapion:: .incbin "sound/direct_sound_samples/cries/drapion.bin" +.endif @ P_FAMILY_SKORUPI +.if P_FAMILY_CROAGUNK == TRUE .align 2 Cry_Croagunk:: .incbin "sound/direct_sound_samples/cries/croagunk.bin" @@ -2202,11 +3193,15 @@ Cry_Croagunk:: .align 2 Cry_Toxicroak:: .incbin "sound/direct_sound_samples/cries/toxicroak.bin" +.endif @ P_FAMILY_CROAGUNK +.if P_FAMILY_CARNIVINE == TRUE .align 2 Cry_Carnivine:: .incbin "sound/direct_sound_samples/cries/carnivine.bin" +.endif @ P_FAMILY_CARNIVINE +.if P_FAMILY_FINNEON == TRUE .align 2 Cry_Finneon:: .incbin "sound/direct_sound_samples/cries/finneon.bin" @@ -2214,11 +3209,9 @@ Cry_Finneon:: .align 2 Cry_Lumineon:: .incbin "sound/direct_sound_samples/cries/lumineon.bin" +.endif @ P_FAMILY_FINNEON - .align 2 -Cry_Mantyke:: - .incbin "sound/direct_sound_samples/cries/mantyke.bin" - +.if P_FAMILY_SNOVER == TRUE .align 2 Cry_Snover:: .incbin "sound/direct_sound_samples/cries/snover.bin" @@ -2227,118 +3220,74 @@ Cry_Snover:: Cry_Abomasnow:: .incbin "sound/direct_sound_samples/cries/abomasnow.bin" +.if P_MEGA_EVOLUTIONS == TRUE .align 2 -Cry_Weavile:: - .incbin "sound/direct_sound_samples/cries/weavile.bin" +Cry_AbomasnowMega:: + .incbin "sound/direct_sound_samples/cries/abomasnow_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_SNOVER +.if P_FAMILY_ROTOM == TRUE .align 2 -Cry_Magnezone:: - .incbin "sound/direct_sound_samples/cries/magnezone.bin" +Cry_Rotom:: + .incbin "sound/direct_sound_samples/cries/rotom.bin" +.endif @ P_FAMILY_ROTOM +.if P_FAMILY_UXIE == TRUE .align 2 -Cry_Lickilicky:: - .incbin "sound/direct_sound_samples/cries/lickilicky.bin" - - .align 2 -Cry_Rhyperior:: - .incbin "sound/direct_sound_samples/cries/rhyperior.bin" - - .align 2 -Cry_Tangrowth:: - .incbin "sound/direct_sound_samples/cries/tangrowth.bin" - - .align 2 -Cry_Electivire:: - .incbin "sound/direct_sound_samples/cries/electivire.bin" - - .align 2 -Cry_Magmortar:: - .incbin "sound/direct_sound_samples/cries/magmortar.bin" - - .align 2 -Cry_Togekiss:: - .incbin "sound/direct_sound_samples/cries/togekiss.bin" - - .align 2 -Cry_Yanmega:: - .incbin "sound/direct_sound_samples/cries/yanmega.bin" - - .align 2 -Cry_Leafeon:: - .incbin "sound/direct_sound_samples/cries/leafeon.bin" - - .align 2 -Cry_Glaceon:: - .incbin "sound/direct_sound_samples/cries/glaceon.bin" - - .align 2 -Cry_Gliscor:: - .incbin "sound/direct_sound_samples/cries/gliscor.bin" - - .align 2 -Cry_Mamoswine:: - .incbin "sound/direct_sound_samples/cries/mamoswine.bin" - - .align 2 -Cry_PorygonZ:: - .incbin "sound/direct_sound_samples/cries/porygon_z.bin" - - .align 2 -Cry_Gallade:: - .incbin "sound/direct_sound_samples/cries/gallade.bin" - - .align 2 -Cry_Probopass:: - .incbin "sound/direct_sound_samples/cries/probopass.bin" - - .align 2 -Cry_Dusknoir:: - .incbin "sound/direct_sound_samples/cries/dusknoir.bin" - - .align 2 -Cry_Froslass:: - .incbin "sound/direct_sound_samples/cries/froslass.bin" - - .align 2 -Cry_Rotom:: - .incbin "sound/direct_sound_samples/cries/rotom.bin" - - .align 2 -Cry_Uxie:: - .incbin "sound/direct_sound_samples/cries/uxie.bin" +Cry_Uxie:: + .incbin "sound/direct_sound_samples/cries/uxie.bin" +.endif @ P_FAMILY_UXIE +.if P_FAMILY_MESPRIT == TRUE .align 2 Cry_Mesprit:: .incbin "sound/direct_sound_samples/cries/mesprit.bin" +.endif @ P_FAMILY_MESPRIT +.if P_FAMILY_AZELF == TRUE .align 2 Cry_Azelf:: .incbin "sound/direct_sound_samples/cries/azelf.bin" +.endif @ P_FAMILY_AZELF +.if P_FAMILY_DIALGA == TRUE .align 2 Cry_Dialga:: .incbin "sound/direct_sound_samples/cries/dialga.bin" +.endif @ P_FAMILY_DIALGA +.if P_FAMILY_PALKIA == TRUE .align 2 Cry_Palkia:: .incbin "sound/direct_sound_samples/cries/palkia.bin" +.endif @ P_FAMILY_PALKIA +.if P_FAMILY_HEATRAN == TRUE .align 2 Cry_Heatran:: .incbin "sound/direct_sound_samples/cries/heatran.bin" +.endif @ P_FAMILY_HEATRAN +.if P_FAMILY_REGIGIGAS == TRUE .align 2 Cry_Regigigas:: .incbin "sound/direct_sound_samples/cries/regigigas.bin" +.endif @ P_FAMILY_REGIGIGAS +.if P_FAMILY_GIRATINA == TRUE .align 2 Cry_Giratina:: .incbin "sound/direct_sound_samples/cries/giratina.bin" +.endif @ P_FAMILY_GIRATINA +.if P_FAMILY_CRESSELIA == TRUE .align 2 Cry_Cresselia:: .incbin "sound/direct_sound_samples/cries/cresselia.bin" +.endif @ P_FAMILY_CRESSELIA +.if P_FAMILY_MANAPHY == TRUE .align 2 Cry_Phione:: .incbin "sound/direct_sound_samples/cries/phione.bin" @@ -2346,25 +3295,37 @@ Cry_Phione:: .align 2 Cry_Manaphy:: .incbin "sound/direct_sound_samples/cries/manaphy.bin" +.endif @ P_FAMILY_MANAPHY +.if P_FAMILY_DARKRAI == TRUE .align 2 Cry_Darkrai:: .incbin "sound/direct_sound_samples/cries/darkrai.bin" +.endif @ P_FAMILY_DARKRAI +.if P_FAMILY_SHAYMIN == TRUE .align 2 -Cry_Shaymin:: - .incbin "sound/direct_sound_samples/cries/shaymin.bin" +Cry_ShayminLand:: + .incbin "sound/direct_sound_samples/cries/shaymin_land.bin" + .align 2 +Cry_ShayminSky:: + .incbin "sound/direct_sound_samples/cries/shaymin_sky.bin" +.endif @ P_FAMILY_SHAYMIN + +.if P_FAMILY_ARCEUS == TRUE .align 2 Cry_Arceus:: .incbin "sound/direct_sound_samples/cries/arceus.bin" -.endif +.endif @ P_FAMILY_ARCEUS -.if P_GEN_5_POKEMON == TRUE +.if P_FAMILY_VICTINI == TRUE .align 2 Cry_Victini:: .incbin "sound/direct_sound_samples/cries/victini.bin" +.endif @ P_FAMILY_VICTINI +.if P_FAMILY_SNIVY == TRUE .align 2 Cry_Snivy:: .incbin "sound/direct_sound_samples/cries/snivy.bin" @@ -2376,7 +3337,9 @@ Cry_Servine:: .align 2 Cry_Serperior:: .incbin "sound/direct_sound_samples/cries/serperior.bin" +.endif @ P_FAMILY_SNIVY +.if P_FAMILY_TEPIG == TRUE .align 2 Cry_Tepig:: .incbin "sound/direct_sound_samples/cries/tepig.bin" @@ -2388,7 +3351,9 @@ Cry_Pignite:: .align 2 Cry_Emboar:: .incbin "sound/direct_sound_samples/cries/emboar.bin" +.endif @ P_FAMILY_TEPIG +.if P_FAMILY_OSHAWOTT == TRUE .align 2 Cry_Oshawott:: .incbin "sound/direct_sound_samples/cries/oshawott.bin" @@ -2400,7 +3365,9 @@ Cry_Dewott:: .align 2 Cry_Samurott:: .incbin "sound/direct_sound_samples/cries/samurott.bin" +.endif @ P_FAMILY_OSHAWOTT +.if P_FAMILY_PATRAT == TRUE .align 2 Cry_Patrat:: .incbin "sound/direct_sound_samples/cries/patrat.bin" @@ -2408,7 +3375,9 @@ Cry_Patrat:: .align 2 Cry_Watchog:: .incbin "sound/direct_sound_samples/cries/watchog.bin" +.endif @ P_FAMILY_PATRAT +.if P_FAMILY_LILLIPUP == TRUE .align 2 Cry_Lillipup:: .incbin "sound/direct_sound_samples/cries/lillipup.bin" @@ -2420,7 +3389,9 @@ Cry_Herdier:: .align 2 Cry_Stoutland:: .incbin "sound/direct_sound_samples/cries/stoutland.bin" +.endif @ P_FAMILY_LILLIPUP +.if P_FAMILY_PURRLOIN == TRUE .align 2 Cry_Purrloin:: .incbin "sound/direct_sound_samples/cries/purrloin.bin" @@ -2428,7 +3399,9 @@ Cry_Purrloin:: .align 2 Cry_Liepard:: .incbin "sound/direct_sound_samples/cries/liepard.bin" +.endif @ P_FAMILY_PURRLOIN +.if P_FAMILY_PANSAGE == TRUE .align 2 Cry_Pansage:: .incbin "sound/direct_sound_samples/cries/pansage.bin" @@ -2436,7 +3409,9 @@ Cry_Pansage:: .align 2 Cry_Simisage:: .incbin "sound/direct_sound_samples/cries/simisage.bin" +.endif @ P_FAMILY_PANSAGE +.if P_FAMILY_PANSEAR == TRUE .align 2 Cry_Pansear:: .incbin "sound/direct_sound_samples/cries/pansear.bin" @@ -2444,7 +3419,9 @@ Cry_Pansear:: .align 2 Cry_Simisear:: .incbin "sound/direct_sound_samples/cries/simisear.bin" +.endif @ P_FAMILY_PANSEAR +.if P_FAMILY_PANPOUR == TRUE .align 2 Cry_Panpour:: .incbin "sound/direct_sound_samples/cries/panpour.bin" @@ -2452,7 +3429,9 @@ Cry_Panpour:: .align 2 Cry_Simipour:: .incbin "sound/direct_sound_samples/cries/simipour.bin" +.endif @ P_FAMILY_PANPOUR +.if P_FAMILY_MUNNA == TRUE .align 2 Cry_Munna:: .incbin "sound/direct_sound_samples/cries/munna.bin" @@ -2460,7 +3439,9 @@ Cry_Munna:: .align 2 Cry_Musharna:: .incbin "sound/direct_sound_samples/cries/musharna.bin" +.endif @ P_FAMILY_MUNNA +.if P_FAMILY_PIDOVE == TRUE .align 2 Cry_Pidove:: .incbin "sound/direct_sound_samples/cries/pidove.bin" @@ -2472,7 +3453,9 @@ Cry_Tranquill:: .align 2 Cry_Unfezant:: .incbin "sound/direct_sound_samples/cries/unfezant.bin" +.endif @ P_FAMILY_PIDOVE +.if P_FAMILY_BLITZLE == TRUE .align 2 Cry_Blitzle:: .incbin "sound/direct_sound_samples/cries/blitzle.bin" @@ -2480,7 +3463,9 @@ Cry_Blitzle:: .align 2 Cry_Zebstrika:: .incbin "sound/direct_sound_samples/cries/zebstrika.bin" +.endif @ P_FAMILY_BLITZLE +.if P_FAMILY_ROGGENROLA == TRUE .align 2 Cry_Roggenrola:: .incbin "sound/direct_sound_samples/cries/roggenrola.bin" @@ -2492,7 +3477,9 @@ Cry_Boldore:: .align 2 Cry_Gigalith:: .incbin "sound/direct_sound_samples/cries/gigalith.bin" +.endif @ P_FAMILY_ROGGENROLA +.if P_FAMILY_WOOBAT == TRUE .align 2 Cry_Woobat:: .incbin "sound/direct_sound_samples/cries/woobat.bin" @@ -2500,7 +3487,9 @@ Cry_Woobat:: .align 2 Cry_Swoobat:: .incbin "sound/direct_sound_samples/cries/swoobat.bin" +.endif @ P_FAMILY_WOOBAT +.if P_FAMILY_DRILBUR == TRUE .align 2 Cry_Drilbur:: .incbin "sound/direct_sound_samples/cries/drilbur.bin" @@ -2508,11 +3497,21 @@ Cry_Drilbur:: .align 2 Cry_Excadrill:: .incbin "sound/direct_sound_samples/cries/excadrill.bin" +.endif @ P_FAMILY_DRILBUR +.if P_FAMILY_AUDINO == TRUE .align 2 Cry_Audino:: .incbin "sound/direct_sound_samples/cries/audino.bin" +.if P_MEGA_EVOLUTIONS == TRUE + .align 2 +Cry_AudinoMega:: + .incbin "sound/direct_sound_samples/cries/audino_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_AUDINO + +.if P_FAMILY_TIMBURR == TRUE .align 2 Cry_Timburr:: .incbin "sound/direct_sound_samples/cries/timburr.bin" @@ -2524,7 +3523,9 @@ Cry_Gurdurr:: .align 2 Cry_Conkeldurr:: .incbin "sound/direct_sound_samples/cries/conkeldurr.bin" +.endif @ P_FAMILY_TIMBURR +.if P_FAMILY_TYMPOLE == TRUE .align 2 Cry_Tympole:: .incbin "sound/direct_sound_samples/cries/tympole.bin" @@ -2536,15 +3537,21 @@ Cry_Palpitoad:: .align 2 Cry_Seismitoad:: .incbin "sound/direct_sound_samples/cries/seismitoad.bin" +.endif @ P_FAMILY_TYMPOLE +.if P_FAMILY_THROH == TRUE .align 2 Cry_Throh:: .incbin "sound/direct_sound_samples/cries/throh.bin" +.endif @ P_FAMILY_THROH +.if P_FAMILY_SAWK == TRUE .align 2 Cry_Sawk:: .incbin "sound/direct_sound_samples/cries/sawk.bin" +.endif @ P_FAMILY_SAWK +.if P_FAMILY_SEWADDLE == TRUE .align 2 Cry_Sewaddle:: .incbin "sound/direct_sound_samples/cries/sewaddle.bin" @@ -2556,7 +3563,9 @@ Cry_Swadloon:: .align 2 Cry_Leavanny:: .incbin "sound/direct_sound_samples/cries/leavanny.bin" +.endif @ P_FAMILY_SEWADDLE +.if P_FAMILY_VENIPEDE == TRUE .align 2 Cry_Venipede:: .incbin "sound/direct_sound_samples/cries/venipede.bin" @@ -2568,7 +3577,9 @@ Cry_Whirlipede:: .align 2 Cry_Scolipede:: .incbin "sound/direct_sound_samples/cries/scolipede.bin" +.endif @ P_FAMILY_VENIPEDE +.if P_FAMILY_COTTONEE == TRUE .align 2 Cry_Cottonee:: .incbin "sound/direct_sound_samples/cries/cottonee.bin" @@ -2576,7 +3587,9 @@ Cry_Cottonee:: .align 2 Cry_Whimsicott:: .incbin "sound/direct_sound_samples/cries/whimsicott.bin" +.endif @ P_FAMILY_COTTONEE +.if P_FAMILY_PETILIL == TRUE .align 2 Cry_Petilil:: .incbin "sound/direct_sound_samples/cries/petilil.bin" @@ -2584,11 +3597,22 @@ Cry_Petilil:: .align 2 Cry_Lilligant:: .incbin "sound/direct_sound_samples/cries/lilligant.bin" +.endif @ P_FAMILY_PETILIL +.if P_FAMILY_BASCULIN == TRUE .align 2 Cry_Basculin:: .incbin "sound/direct_sound_samples/cries/basculin.bin" +.if P_HISUIAN_FORMS == TRUE + .align 2 +Cry_Basculegion:: + .incbin "sound/direct_sound_samples/cries/basculegion.bin" + +.endif @ P_HISUIAN_FORMS +.endif @ P_FAMILY_BASCULIN + +.if P_FAMILY_SANDILE == TRUE .align 2 Cry_Sandile:: .incbin "sound/direct_sound_samples/cries/sandile.bin" @@ -2600,7 +3624,9 @@ Cry_Krokorok:: .align 2 Cry_Krookodile:: .incbin "sound/direct_sound_samples/cries/krookodile.bin" +.endif @ P_FAMILY_SANDILE +.if P_FAMILY_DARUMAKA == TRUE .align 2 Cry_Darumaka:: .incbin "sound/direct_sound_samples/cries/darumaka.bin" @@ -2608,11 +3634,15 @@ Cry_Darumaka:: .align 2 Cry_Darmanitan:: .incbin "sound/direct_sound_samples/cries/darmanitan.bin" +.endif @ P_FAMILY_DARUMAKA +.if P_FAMILY_MARACTUS == TRUE .align 2 Cry_Maractus:: .incbin "sound/direct_sound_samples/cries/maractus.bin" +.endif @ P_FAMILY_MARACTUS +.if P_FAMILY_DWEBBLE == TRUE .align 2 Cry_Dwebble:: .incbin "sound/direct_sound_samples/cries/dwebble.bin" @@ -2620,7 +3650,9 @@ Cry_Dwebble:: .align 2 Cry_Crustle:: .incbin "sound/direct_sound_samples/cries/crustle.bin" +.endif @ P_FAMILY_DWEBBLE +.if P_FAMILY_SCRAGGY == TRUE .align 2 Cry_Scraggy:: .incbin "sound/direct_sound_samples/cries/scraggy.bin" @@ -2628,11 +3660,15 @@ Cry_Scraggy:: .align 2 Cry_Scrafty:: .incbin "sound/direct_sound_samples/cries/scrafty.bin" +.endif @ P_FAMILY_SCRAGGY +.if P_FAMILY_SIGILYPH == TRUE .align 2 Cry_Sigilyph:: .incbin "sound/direct_sound_samples/cries/sigilyph.bin" +.endif @ P_FAMILY_SIGILYPH +.if P_FAMILY_YAMASK == TRUE .align 2 Cry_Yamask:: .incbin "sound/direct_sound_samples/cries/yamask.bin" @@ -2641,6 +3677,15 @@ Cry_Yamask:: Cry_Cofagrigus:: .incbin "sound/direct_sound_samples/cries/cofagrigus.bin" +.if P_GALARIAN_FORMS == TRUE + .align 2 +Cry_Runerigus:: + .incbin "sound/direct_sound_samples/cries/runerigus.bin" + +.endif @ P_GALARIAN_FORMS +.endif @ P_FAMILY_YAMASK + +.if P_FAMILY_TIRTOUGA == TRUE .align 2 Cry_Tirtouga:: .incbin "sound/direct_sound_samples/cries/tirtouga.bin" @@ -2648,7 +3693,9 @@ Cry_Tirtouga:: .align 2 Cry_Carracosta:: .incbin "sound/direct_sound_samples/cries/carracosta.bin" +.endif @ P_FAMILY_TIRTOUGA +.if P_FAMILY_ARCHEN == TRUE .align 2 Cry_Archen:: .incbin "sound/direct_sound_samples/cries/archen.bin" @@ -2656,7 +3703,9 @@ Cry_Archen:: .align 2 Cry_Archeops:: .incbin "sound/direct_sound_samples/cries/archeops.bin" +.endif @ P_FAMILY_ARCHEN +.if P_FAMILY_TRUBBISH == TRUE .align 2 Cry_Trubbish:: .incbin "sound/direct_sound_samples/cries/trubbish.bin" @@ -2664,7 +3713,9 @@ Cry_Trubbish:: .align 2 Cry_Garbodor:: .incbin "sound/direct_sound_samples/cries/garbodor.bin" +.endif @ P_FAMILY_TRUBBISH +.if P_FAMILY_ZORUA == TRUE .align 2 Cry_Zorua:: .incbin "sound/direct_sound_samples/cries/zorua.bin" @@ -2672,7 +3723,9 @@ Cry_Zorua:: .align 2 Cry_Zoroark:: .incbin "sound/direct_sound_samples/cries/zoroark.bin" +.endif @ P_FAMILY_ZORUA +.if P_FAMILY_MINCCINO == TRUE .align 2 Cry_Minccino:: .incbin "sound/direct_sound_samples/cries/minccino.bin" @@ -2680,7 +3733,9 @@ Cry_Minccino:: .align 2 Cry_Cinccino:: .incbin "sound/direct_sound_samples/cries/cinccino.bin" +.endif @ P_FAMILY_MINCCINO +.if P_FAMILY_GOTHITA == TRUE .align 2 Cry_Gothita:: .incbin "sound/direct_sound_samples/cries/gothita.bin" @@ -2692,7 +3747,9 @@ Cry_Gothorita:: .align 2 Cry_Gothitelle:: .incbin "sound/direct_sound_samples/cries/gothitelle.bin" +.endif @ P_FAMILY_GOTHITA +.if P_FAMILY_SOLOSIS == TRUE .align 2 Cry_Solosis:: .incbin "sound/direct_sound_samples/cries/solosis.bin" @@ -2704,7 +3761,9 @@ Cry_Duosion:: .align 2 Cry_Reuniclus:: .incbin "sound/direct_sound_samples/cries/reuniclus.bin" +.endif @ P_FAMILY_SOLOSIS +.if P_FAMILY_DUCKLETT == TRUE .align 2 Cry_Ducklett:: .incbin "sound/direct_sound_samples/cries/ducklett.bin" @@ -2712,7 +3771,9 @@ Cry_Ducklett:: .align 2 Cry_Swanna:: .incbin "sound/direct_sound_samples/cries/swanna.bin" +.endif @ P_FAMILY_DUCKLETT +.if P_FAMILY_VANILLITE == TRUE .align 2 Cry_Vanillite:: .incbin "sound/direct_sound_samples/cries/vanillite.bin" @@ -2724,7 +3785,9 @@ Cry_Vanillish:: .align 2 Cry_Vanilluxe:: .incbin "sound/direct_sound_samples/cries/vanilluxe.bin" +.endif @ P_FAMILY_VANILLITE +.if P_FAMILY_DEERLING == TRUE .align 2 Cry_Deerling:: .incbin "sound/direct_sound_samples/cries/deerling.bin" @@ -2732,11 +3795,15 @@ Cry_Deerling:: .align 2 Cry_Sawsbuck:: .incbin "sound/direct_sound_samples/cries/sawsbuck.bin" +.endif @ P_FAMILY_DEERLING +.if P_FAMILY_EMOLGA == TRUE .align 2 Cry_Emolga:: .incbin "sound/direct_sound_samples/cries/emolga.bin" +.endif @ P_FAMILY_EMOLGA +.if P_FAMILY_KARRABLAST == TRUE .align 2 Cry_Karrablast:: .incbin "sound/direct_sound_samples/cries/karrablast.bin" @@ -2744,7 +3811,9 @@ Cry_Karrablast:: .align 2 Cry_Escavalier:: .incbin "sound/direct_sound_samples/cries/escavalier.bin" +.endif @ P_FAMILY_KARRABLAST +.if P_FAMILY_FOONGUS == TRUE .align 2 Cry_Foongus:: .incbin "sound/direct_sound_samples/cries/foongus.bin" @@ -2752,7 +3821,9 @@ Cry_Foongus:: .align 2 Cry_Amoonguss:: .incbin "sound/direct_sound_samples/cries/amoonguss.bin" +.endif @ P_FAMILY_FOONGUS +.if P_FAMILY_FRILLISH == TRUE .align 2 Cry_Frillish:: .incbin "sound/direct_sound_samples/cries/frillish.bin" @@ -2760,11 +3831,15 @@ Cry_Frillish:: .align 2 Cry_Jellicent:: .incbin "sound/direct_sound_samples/cries/jellicent.bin" +.endif @ P_FAMILY_FRILLISH +.if P_FAMILY_ALOMOMOLA == TRUE .align 2 Cry_Alomomola:: .incbin "sound/direct_sound_samples/cries/alomomola.bin" +.endif @ P_FAMILY_ALOMOMOLA +.if P_FAMILY_JOLTIK == TRUE .align 2 Cry_Joltik:: .incbin "sound/direct_sound_samples/cries/joltik.bin" @@ -2772,7 +3847,9 @@ Cry_Joltik:: .align 2 Cry_Galvantula:: .incbin "sound/direct_sound_samples/cries/galvantula.bin" +.endif @ P_FAMILY_JOLTIK +.if P_FAMILY_FERROSEED == TRUE .align 2 Cry_Ferroseed:: .incbin "sound/direct_sound_samples/cries/ferroseed.bin" @@ -2780,7 +3857,9 @@ Cry_Ferroseed:: .align 2 Cry_Ferrothorn:: .incbin "sound/direct_sound_samples/cries/ferrothorn.bin" +.endif @ P_FAMILY_FERROSEED +.if P_FAMILY_KLINK == TRUE .align 2 Cry_Klink:: .incbin "sound/direct_sound_samples/cries/klink.bin" @@ -2792,7 +3871,9 @@ Cry_Klang:: .align 2 Cry_Klinklang:: .incbin "sound/direct_sound_samples/cries/klinklang.bin" +.endif @ P_FAMILY_KLINK +.if P_FAMILY_TYNAMO == TRUE .align 2 Cry_Tynamo:: .incbin "sound/direct_sound_samples/cries/tynamo.bin" @@ -2804,7 +3885,9 @@ Cry_Eelektrik:: .align 2 Cry_Eelektross:: .incbin "sound/direct_sound_samples/cries/eelektross.bin" +.endif @ P_FAMILY_TYNAMO +.if P_FAMILY_ELGYEM == TRUE .align 2 Cry_Elgyem:: .incbin "sound/direct_sound_samples/cries/elgyem.bin" @@ -2812,7 +3895,9 @@ Cry_Elgyem:: .align 2 Cry_Beheeyem:: .incbin "sound/direct_sound_samples/cries/beheeyem.bin" +.endif @ P_FAMILY_ELGYEM +.if P_FAMILY_LITWICK == TRUE .align 2 Cry_Litwick:: .incbin "sound/direct_sound_samples/cries/litwick.bin" @@ -2824,7 +3909,9 @@ Cry_Lampent:: .align 2 Cry_Chandelure:: .incbin "sound/direct_sound_samples/cries/chandelure.bin" +.endif @ P_FAMILY_LITWICK +.if P_FAMILY_AXEW == TRUE .align 2 Cry_Axew:: .incbin "sound/direct_sound_samples/cries/axew.bin" @@ -2836,7 +3923,9 @@ Cry_Fraxure:: .align 2 Cry_Haxorus:: .incbin "sound/direct_sound_samples/cries/haxorus.bin" +.endif @ P_FAMILY_AXEW +.if P_FAMILY_CUBCHOO == TRUE .align 2 Cry_Cubchoo:: .incbin "sound/direct_sound_samples/cries/cubchoo.bin" @@ -2844,11 +3933,15 @@ Cry_Cubchoo:: .align 2 Cry_Beartic:: .incbin "sound/direct_sound_samples/cries/beartic.bin" +.endif @ P_FAMILY_CUBCHOO +.if P_FAMILY_CRYOGONAL == TRUE .align 2 Cry_Cryogonal:: .incbin "sound/direct_sound_samples/cries/cryogonal.bin" +.endif @ P_FAMILY_CRYOGONAL +.if P_FAMILY_SHELMET == TRUE .align 2 Cry_Shelmet:: .incbin "sound/direct_sound_samples/cries/shelmet.bin" @@ -2856,11 +3949,15 @@ Cry_Shelmet:: .align 2 Cry_Accelgor:: .incbin "sound/direct_sound_samples/cries/accelgor.bin" +.endif @ P_FAMILY_SHELMET +.if P_FAMILY_STUNFISK == TRUE .align 2 Cry_Stunfisk:: .incbin "sound/direct_sound_samples/cries/stunfisk.bin" +.endif @ P_FAMILY_STUNFISK +.if P_FAMILY_MIENFOO == TRUE .align 2 Cry_Mienfoo:: .incbin "sound/direct_sound_samples/cries/mienfoo.bin" @@ -2868,11 +3965,15 @@ Cry_Mienfoo:: .align 2 Cry_Mienshao:: .incbin "sound/direct_sound_samples/cries/mienshao.bin" +.endif @ P_FAMILY_MIENFOO +.if P_FAMILY_DRUDDIGON == TRUE .align 2 Cry_Druddigon:: .incbin "sound/direct_sound_samples/cries/druddigon.bin" +.endif @ P_FAMILY_DRUDDIGON +.if P_FAMILY_GOLETT == TRUE .align 2 Cry_Golett:: .incbin "sound/direct_sound_samples/cries/golett.bin" @@ -2880,7 +3981,9 @@ Cry_Golett:: .align 2 Cry_Golurk:: .incbin "sound/direct_sound_samples/cries/golurk.bin" +.endif @ P_FAMILY_GOLETT +.if P_FAMILY_PAWNIARD == TRUE .align 2 Cry_Pawniard:: .incbin "sound/direct_sound_samples/cries/pawniard.bin" @@ -2889,10 +3992,20 @@ Cry_Pawniard:: Cry_Bisharp:: .incbin "sound/direct_sound_samples/cries/bisharp.bin" +.if P_GEN_9_CROSS_EVOS == TRUE + .align 2 +Cry_Kingambit:: + .incbin "sound/direct_sound_samples/cries/kingambit.bin" +.endif @ P_GEN_9_CROSS_EVOS +.endif @ P_FAMILY_PAWNIARD + +.if P_FAMILY_BOUFFALANT == TRUE .align 2 Cry_Bouffalant:: .incbin "sound/direct_sound_samples/cries/bouffalant.bin" +.endif @ P_FAMILY_BOUFFALANT +.if P_FAMILY_RUFFLET == TRUE .align 2 Cry_Rufflet:: .incbin "sound/direct_sound_samples/cries/rufflet.bin" @@ -2900,7 +4013,9 @@ Cry_Rufflet:: .align 2 Cry_Braviary:: .incbin "sound/direct_sound_samples/cries/braviary.bin" +.endif @ P_FAMILY_RUFFLET +.if P_FAMILY_VULLABY == TRUE .align 2 Cry_Vullaby:: .incbin "sound/direct_sound_samples/cries/vullaby.bin" @@ -2908,15 +4023,21 @@ Cry_Vullaby:: .align 2 Cry_Mandibuzz:: .incbin "sound/direct_sound_samples/cries/mandibuzz.bin" +.endif @ P_FAMILY_VULLABY +.if P_FAMILY_HEATMOR == TRUE .align 2 Cry_Heatmor:: .incbin "sound/direct_sound_samples/cries/heatmor.bin" +.endif @ P_FAMILY_HEATMOR +.if P_FAMILY_DURANT == TRUE .align 2 Cry_Durant:: .incbin "sound/direct_sound_samples/cries/durant.bin" +.endif @ P_FAMILY_DURANT +.if P_FAMILY_DEINO == TRUE .align 2 Cry_Deino:: .incbin "sound/direct_sound_samples/cries/deino.bin" @@ -2928,7 +4049,9 @@ Cry_Zweilous:: .align 2 Cry_Hydreigon:: .incbin "sound/direct_sound_samples/cries/hydreigon.bin" +.endif @ P_FAMILY_DEINO +.if P_FAMILY_LARVESTA == TRUE .align 2 Cry_Larvesta:: .incbin "sound/direct_sound_samples/cries/larvesta.bin" @@ -2936,57 +4059,104 @@ Cry_Larvesta:: .align 2 Cry_Volcarona:: .incbin "sound/direct_sound_samples/cries/volcarona.bin" +.endif @ P_FAMILY_LARVESTA +.if P_FAMILY_COBALION == TRUE .align 2 Cry_Cobalion:: .incbin "sound/direct_sound_samples/cries/cobalion.bin" +.endif @ P_FAMILY_COBALION +.if P_FAMILY_TERRAKION == TRUE .align 2 Cry_Terrakion:: .incbin "sound/direct_sound_samples/cries/terrakion.bin" +.endif @ P_FAMILY_TERRAKION +.if P_FAMILY_VIRIZION == TRUE .align 2 Cry_Virizion:: .incbin "sound/direct_sound_samples/cries/virizion.bin" +.endif @ P_FAMILY_VIRIZION +.if P_FAMILY_TORNADUS == TRUE .align 2 -Cry_Tornadus:: - .incbin "sound/direct_sound_samples/cries/tornadus.bin" +Cry_TornadusIncarnate:: + .incbin "sound/direct_sound_samples/cries/tornadus_incarnate.bin" .align 2 -Cry_Thundurus:: - .incbin "sound/direct_sound_samples/cries/thundurus.bin" +Cry_TornadusTherian:: + .incbin "sound/direct_sound_samples/cries/tornadus_therian.bin" +.endif @ P_FAMILY_TORNADUS + +.if P_FAMILY_THUNDURUS == TRUE + .align 2 +Cry_ThundurusIncarnate:: + .incbin "sound/direct_sound_samples/cries/thundurus_incarnate.bin" + .align 2 +Cry_ThundurusTherian:: + .incbin "sound/direct_sound_samples/cries/thundurus_therian.bin" +.endif @ P_FAMILY_THUNDURUS + +.if P_FAMILY_RESHIRAM == TRUE .align 2 Cry_Reshiram:: .incbin "sound/direct_sound_samples/cries/reshiram.bin" +.endif @ P_FAMILY_RESHIRAM +.if P_FAMILY_ZEKROM == TRUE .align 2 Cry_Zekrom:: .incbin "sound/direct_sound_samples/cries/zekrom.bin" +.endif @ P_FAMILY_ZEKROM + +.if P_FAMILY_LANDORUS == TRUE + .align 2 +Cry_LandorusIncarnate:: + .incbin "sound/direct_sound_samples/cries/landorus_incarnate.bin" .align 2 -Cry_Landorus:: - .incbin "sound/direct_sound_samples/cries/landorus.bin" +Cry_LandorusTherian:: + .incbin "sound/direct_sound_samples/cries/landorus_therian.bin" +.endif @ P_FAMILY_LANDORUS +.if P_FAMILY_KYUREM == TRUE .align 2 Cry_Kyurem:: .incbin "sound/direct_sound_samples/cries/kyurem.bin" +.if P_FUSION_FORMS == TRUE + .align 2 +Cry_KyuremWhite:: + .incbin "sound/direct_sound_samples/cries/kyurem_white.bin" + + .align 2 +Cry_KyuremBlack:: + .incbin "sound/direct_sound_samples/cries/kyurem_black.bin" + +.endif @ P_FUSION_FORMS +.endif @ P_FAMILY_KYUREM + +.if P_FAMILY_KELDEO == TRUE .align 2 Cry_Keldeo:: .incbin "sound/direct_sound_samples/cries/keldeo.bin" +.endif @ P_FAMILY_KELDEO +.if P_FAMILY_MELOETTA == TRUE .align 2 Cry_Meloetta:: .incbin "sound/direct_sound_samples/cries/meloetta.bin" +.endif @ P_FAMILY_MELOETTA +.if P_FAMILY_GENESECT == TRUE .align 2 Cry_Genesect:: .incbin "sound/direct_sound_samples/cries/genesect.bin" -.endif +.endif @ P_FAMILY_GENESECT -.if P_GEN_6_POKEMON == TRUE +.if P_FAMILY_CHESPIN == TRUE .align 2 Cry_Chespin:: .incbin "sound/direct_sound_samples/cries/chespin.bin" @@ -2998,7 +4168,9 @@ Cry_Quilladin:: .align 2 Cry_Chesnaught:: .incbin "sound/direct_sound_samples/cries/chesnaught.bin" +.endif @ P_FAMILY_CHESPIN +.if P_FAMILY_FENNEKIN == TRUE .align 2 Cry_Fennekin:: .incbin "sound/direct_sound_samples/cries/fennekin.bin" @@ -3010,7 +4182,9 @@ Cry_Braixen:: .align 2 Cry_Delphox:: .incbin "sound/direct_sound_samples/cries/delphox.bin" +.endif @ P_FAMILY_FENNEKIN +.if P_FAMILY_FROAKIE == TRUE .align 2 Cry_Froakie:: .incbin "sound/direct_sound_samples/cries/froakie.bin" @@ -3022,7 +4196,9 @@ Cry_Frogadier:: .align 2 Cry_Greninja:: .incbin "sound/direct_sound_samples/cries/greninja.bin" +.endif @ P_FAMILY_FROAKIE +.if P_FAMILY_BUNNELBY == TRUE .align 2 Cry_Bunnelby:: .incbin "sound/direct_sound_samples/cries/bunnelby.bin" @@ -3030,7 +4206,9 @@ Cry_Bunnelby:: .align 2 Cry_Diggersby:: .incbin "sound/direct_sound_samples/cries/diggersby.bin" +.endif @ P_FAMILY_BUNNELBY +.if P_FAMILY_FLETCHLING == TRUE .align 2 Cry_Fletchling:: .incbin "sound/direct_sound_samples/cries/fletchling.bin" @@ -3042,7 +4220,9 @@ Cry_Fletchinder:: .align 2 Cry_Talonflame:: .incbin "sound/direct_sound_samples/cries/talonflame.bin" +.endif @ P_FAMILY_FLETCHLING +.if P_FAMILY_SCATTERBUG == TRUE .align 2 Cry_Scatterbug:: .incbin "sound/direct_sound_samples/cries/scatterbug.bin" @@ -3054,7 +4234,9 @@ Cry_Spewpa:: .align 2 Cry_Vivillon:: .incbin "sound/direct_sound_samples/cries/vivillon.bin" +.endif @ P_FAMILY_SCATTERBUG +.if P_FAMILY_LITLEO == TRUE .align 2 Cry_Litleo:: .incbin "sound/direct_sound_samples/cries/litleo.bin" @@ -3062,7 +4244,9 @@ Cry_Litleo:: .align 2 Cry_Pyroar:: .incbin "sound/direct_sound_samples/cries/pyroar.bin" +.endif @ P_FAMILY_LITLEO +.if P_FAMILY_FLABEBE == TRUE .align 2 Cry_Flabebe:: .incbin "sound/direct_sound_samples/cries/flabebe.bin" @@ -3071,10 +4255,16 @@ Cry_Flabebe:: Cry_Floette:: .incbin "sound/direct_sound_samples/cries/floette.bin" + .align 2 +Cry_FloetteEternalFlower:: + .incbin "sound/direct_sound_samples/cries/floette_eternal_flower.bin" + .align 2 Cry_Florges:: .incbin "sound/direct_sound_samples/cries/florges.bin" +.endif @ P_FAMILY_FLABEBE +.if P_FAMILY_SKIDDO == TRUE .align 2 Cry_Skiddo:: .incbin "sound/direct_sound_samples/cries/skiddo.bin" @@ -3082,7 +4272,9 @@ Cry_Skiddo:: .align 2 Cry_Gogoat:: .incbin "sound/direct_sound_samples/cries/gogoat.bin" +.endif @ P_FAMILY_SKIDDO +.if P_FAMILY_PANCHAM == TRUE .align 2 Cry_Pancham:: .incbin "sound/direct_sound_samples/cries/pancham.bin" @@ -3090,11 +4282,15 @@ Cry_Pancham:: .align 2 Cry_Pangoro:: .incbin "sound/direct_sound_samples/cries/pangoro.bin" +.endif @ P_FAMILY_PANCHAM +.if P_FAMILY_FURFROU == TRUE .align 2 Cry_Furfrou:: .incbin "sound/direct_sound_samples/cries/furfrou.bin" +.endif @ P_FAMILY_FURFROU +.if P_FAMILY_ESPURR == TRUE .align 2 Cry_Espurr:: .incbin "sound/direct_sound_samples/cries/espurr.bin" @@ -3102,7 +4298,9 @@ Cry_Espurr:: .align 2 Cry_Meowstic:: .incbin "sound/direct_sound_samples/cries/meowstic.bin" +.endif @ P_FAMILY_ESPURR +.if P_FAMILY_HONEDGE == TRUE .align 2 Cry_Honedge:: .incbin "sound/direct_sound_samples/cries/honedge.bin" @@ -3114,7 +4312,9 @@ Cry_Doublade:: .align 2 Cry_Aegislash:: .incbin "sound/direct_sound_samples/cries/aegislash.bin" +.endif @ P_FAMILY_HONEDGE +.if P_FAMILY_SPRITZEE == TRUE .align 2 Cry_Spritzee:: .incbin "sound/direct_sound_samples/cries/spritzee.bin" @@ -3122,7 +4322,9 @@ Cry_Spritzee:: .align 2 Cry_Aromatisse:: .incbin "sound/direct_sound_samples/cries/aromatisse.bin" +.endif @ P_FAMILY_SPRITZEE +.if P_FAMILY_SWIRLIX == TRUE .align 2 Cry_Swirlix:: .incbin "sound/direct_sound_samples/cries/swirlix.bin" @@ -3130,7 +4332,9 @@ Cry_Swirlix:: .align 2 Cry_Slurpuff:: .incbin "sound/direct_sound_samples/cries/slurpuff.bin" +.endif @ P_FAMILY_SWIRLIX +.if P_FAMILY_INKAY == TRUE .align 2 Cry_Inkay:: .incbin "sound/direct_sound_samples/cries/inkay.bin" @@ -3138,7 +4342,9 @@ Cry_Inkay:: .align 2 Cry_Malamar:: .incbin "sound/direct_sound_samples/cries/malamar.bin" +.endif @ P_FAMILY_INKAY +.if P_FAMILY_BINACLE == TRUE .align 2 Cry_Binacle:: .incbin "sound/direct_sound_samples/cries/binacle.bin" @@ -3146,7 +4352,9 @@ Cry_Binacle:: .align 2 Cry_Barbaracle:: .incbin "sound/direct_sound_samples/cries/barbaracle.bin" +.endif @ P_FAMILY_BINACLE +.if P_FAMILY_SKRELP == TRUE .align 2 Cry_Skrelp:: .incbin "sound/direct_sound_samples/cries/skrelp.bin" @@ -3154,7 +4362,9 @@ Cry_Skrelp:: .align 2 Cry_Dragalge:: .incbin "sound/direct_sound_samples/cries/dragalge.bin" +.endif @ P_FAMILY_SKRELP +.if P_FAMILY_CLAUNCHER == TRUE .align 2 Cry_Clauncher:: .incbin "sound/direct_sound_samples/cries/clauncher.bin" @@ -3162,7 +4372,9 @@ Cry_Clauncher:: .align 2 Cry_Clawitzer:: .incbin "sound/direct_sound_samples/cries/clawitzer.bin" +.endif @ P_FAMILY_CLAUNCHER +.if P_FAMILY_HELIOPTILE == TRUE .align 2 Cry_Helioptile:: .incbin "sound/direct_sound_samples/cries/helioptile.bin" @@ -3170,7 +4382,9 @@ Cry_Helioptile:: .align 2 Cry_Heliolisk:: .incbin "sound/direct_sound_samples/cries/heliolisk.bin" +.endif @ P_FAMILY_HELIOPTILE +.if P_FAMILY_TYRUNT == TRUE .align 2 Cry_Tyrunt:: .incbin "sound/direct_sound_samples/cries/tyrunt.bin" @@ -3178,7 +4392,9 @@ Cry_Tyrunt:: .align 2 Cry_Tyrantrum:: .incbin "sound/direct_sound_samples/cries/tyrantrum.bin" +.endif @ P_FAMILY_TYRUNT +.if P_FAMILY_AMAURA == TRUE .align 2 Cry_Amaura:: .incbin "sound/direct_sound_samples/cries/amaura.bin" @@ -3186,23 +4402,27 @@ Cry_Amaura:: .align 2 Cry_Aurorus:: .incbin "sound/direct_sound_samples/cries/aurorus.bin" +.endif @ P_FAMILY_AMAURA - .align 2 -Cry_Sylveon:: - .incbin "sound/direct_sound_samples/cries/sylveon.bin" - +.if P_FAMILY_HAWLUCHA == TRUE .align 2 Cry_Hawlucha:: .incbin "sound/direct_sound_samples/cries/hawlucha.bin" +.endif @ P_FAMILY_HAWLUCHA +.if P_FAMILY_DEDENNE == TRUE .align 2 Cry_Dedenne:: .incbin "sound/direct_sound_samples/cries/dedenne.bin" +.endif @ P_FAMILY_DEDENNE +.if P_FAMILY_CARBINK == TRUE .align 2 Cry_Carbink:: .incbin "sound/direct_sound_samples/cries/carbink.bin" +.endif @ P_FAMILY_CARBINK +.if P_FAMILY_GOOMY == TRUE .align 2 Cry_Goomy:: .incbin "sound/direct_sound_samples/cries/goomy.bin" @@ -3214,11 +4434,15 @@ Cry_Sliggoo:: .align 2 Cry_Goodra:: .incbin "sound/direct_sound_samples/cries/goodra.bin" +.endif @ P_FAMILY_GOOMY +.if P_FAMILY_KLEFKI == TRUE .align 2 Cry_Klefki:: .incbin "sound/direct_sound_samples/cries/uncomp_klefki.bin" +.endif @ P_FAMILY_KLEFKI +.if P_FAMILY_PHANTUMP == TRUE .align 2 Cry_Phantump:: .incbin "sound/direct_sound_samples/cries/phantump.bin" @@ -3226,15 +4450,27 @@ Cry_Phantump:: .align 2 Cry_Trevenant:: .incbin "sound/direct_sound_samples/cries/trevenant.bin" +.endif @ P_FAMILY_PHANTUMP +.if P_FAMILY_PUMPKABOO == TRUE .align 2 Cry_Pumpkaboo:: .incbin "sound/direct_sound_samples/cries/pumpkaboo.bin" + .align 2 +Cry_PumpkabooSuper:: + .incbin "sound/direct_sound_samples/cries/pumpkaboo_super.bin" + .align 2 Cry_Gourgeist:: .incbin "sound/direct_sound_samples/cries/gourgeist.bin" + .align 2 +Cry_GourgeistSuper:: + .incbin "sound/direct_sound_samples/cries/gourgeist_super.bin" +.endif @ P_FAMILY_PUMPKABOO + +.if P_FAMILY_BERGMITE == TRUE .align 2 Cry_Bergmite:: .incbin "sound/direct_sound_samples/cries/bergmite.bin" @@ -3242,7 +4478,9 @@ Cry_Bergmite:: .align 2 Cry_Avalugg:: .incbin "sound/direct_sound_samples/cries/avalugg.bin" +.endif @ P_FAMILY_BERGMITE +.if P_FAMILY_NOIBAT == TRUE .align 2 Cry_Noibat:: .incbin "sound/direct_sound_samples/cries/noibat.bin" @@ -3250,33 +4488,63 @@ Cry_Noibat:: .align 2 Cry_Noivern:: .incbin "sound/direct_sound_samples/cries/noivern.bin" +.endif @ P_FAMILY_NOIBAT +.if P_FAMILY_XERNEAS == TRUE .align 2 Cry_Xerneas:: .incbin "sound/direct_sound_samples/cries/xerneas.bin" +.endif @ P_FAMILY_XERNEAS +.if P_FAMILY_YVELTAL == TRUE .align 2 Cry_Yveltal:: .incbin "sound/direct_sound_samples/cries/yveltal.bin" +.endif @ P_FAMILY_YVELTAL + +.if P_FAMILY_ZYGARDE == TRUE + .align 2 +Cry_Zygarde50:: + .incbin "sound/direct_sound_samples/cries/zygarde_50.bin" .align 2 -Cry_Zygarde:: - .incbin "sound/direct_sound_samples/cries/zygarde.bin" +Cry_Zygarde10:: + .incbin "sound/direct_sound_samples/cries/zygarde_10.bin" + + .align 2 +Cry_ZygardeComplete:: + .incbin "sound/direct_sound_samples/cries/zygarde_complete.bin" +.endif @ P_FAMILY_ZYGARDE +.if P_FAMILY_DIANCIE == TRUE .align 2 Cry_Diancie:: .incbin "sound/direct_sound_samples/cries/diancie.bin" +.if P_MEGA_EVOLUTIONS == TRUE .align 2 -Cry_Hoopa:: - .incbin "sound/direct_sound_samples/cries/hoopa.bin" +Cry_DiancieMega:: + .incbin "sound/direct_sound_samples/cries/diancie_mega.bin" +.endif @ P_MEGA_EVOLUTIONS +.endif @ P_FAMILY_DIANCIE + +.if P_FAMILY_HOOPA == TRUE + .align 2 +Cry_HoopaConfined:: + .incbin "sound/direct_sound_samples/cries/hoopa_confined.bin" + + .align 2 +Cry_HoopaUnbound:: + .incbin "sound/direct_sound_samples/cries/hoopa_unbound.bin" +.endif @ P_FAMILY_HOOPA +.if P_FAMILY_VOLCANION == TRUE .align 2 Cry_Volcanion:: .incbin "sound/direct_sound_samples/cries/volcanion.bin" -.endif +.endif @ P_FAMILY_VOLCANION -.if P_GEN_7_POKEMON == TRUE +.if P_FAMILY_ROWLET == TRUE .align 2 Cry_Rowlet:: .incbin "sound/direct_sound_samples/cries/rowlet.bin" @@ -3288,7 +4556,9 @@ Cry_Dartrix:: .align 2 Cry_Decidueye:: .incbin "sound/direct_sound_samples/cries/decidueye.bin" +.endif @ P_FAMILY_ROWLET +.if P_FAMILY_LITTEN == TRUE .align 2 Cry_Litten:: .incbin "sound/direct_sound_samples/cries/litten.bin" @@ -3300,7 +4570,9 @@ Cry_Torracat:: .align 2 Cry_Incineroar:: .incbin "sound/direct_sound_samples/cries/incineroar.bin" +.endif @ P_FAMILY_LITTEN +.if P_FAMILY_POPPLIO == TRUE .align 2 Cry_Popplio:: .incbin "sound/direct_sound_samples/cries/popplio.bin" @@ -3312,7 +4584,9 @@ Cry_Brionne:: .align 2 Cry_Primarina:: .incbin "sound/direct_sound_samples/cries/primarina.bin" +.endif @ P_FAMILY_POPPLIO +.if P_FAMILY_PIKIPEK == TRUE .align 2 Cry_Pikipek:: .incbin "sound/direct_sound_samples/cries/pikipek.bin" @@ -3324,7 +4598,9 @@ Cry_Trumbeak:: .align 2 Cry_Toucannon:: .incbin "sound/direct_sound_samples/cries/toucannon.bin" +.endif @ P_FAMILY_PIKIPEK +.if P_FAMILY_YUNGOOS == TRUE .align 2 Cry_Yungoos:: .incbin "sound/direct_sound_samples/cries/yungoos.bin" @@ -3332,7 +4608,9 @@ Cry_Yungoos:: .align 2 Cry_Gumshoos:: .incbin "sound/direct_sound_samples/cries/gumshoos.bin" +.endif @ P_FAMILY_YUNGOOS +.if P_FAMILY_GRUBBIN == TRUE .align 2 Cry_Grubbin:: .incbin "sound/direct_sound_samples/cries/grubbin.bin" @@ -3344,7 +4622,9 @@ Cry_Charjabug:: .align 2 Cry_Vikavolt:: .incbin "sound/direct_sound_samples/cries/vikavolt.bin" +.endif @ P_FAMILY_GRUBBIN +.if P_FAMILY_CRABRAWLER == TRUE .align 2 Cry_Crabrawler:: .incbin "sound/direct_sound_samples/cries/crabrawler.bin" @@ -3352,11 +4632,27 @@ Cry_Crabrawler:: .align 2 Cry_Crabominable:: .incbin "sound/direct_sound_samples/cries/crabominable.bin" +.endif @ P_FAMILY_CRABRAWLER + +.if P_FAMILY_ORICORIO == TRUE + .align 2 +Cry_OricorioBaile:: + .incbin "sound/direct_sound_samples/cries/oricorio_baile.bin" + + .align 2 +Cry_OricorioPomPom:: + .incbin "sound/direct_sound_samples/cries/uncomp_oricorio_pom_pom.bin" + + .align 2 +Cry_OricorioPau:: + .incbin "sound/direct_sound_samples/cries/oricorio_pau.bin" .align 2 -Cry_Oricorio:: - .incbin "sound/direct_sound_samples/cries/oricorio.bin" +Cry_OricorioSensu:: + .incbin "sound/direct_sound_samples/cries/oricorio_sensu.bin" +.endif @ P_FAMILY_ORICORIO +.if P_FAMILY_CUTIEFLY == TRUE .align 2 Cry_Cutiefly:: .incbin "sound/direct_sound_samples/cries/cutiefly.bin" @@ -3364,19 +4660,37 @@ Cry_Cutiefly:: .align 2 Cry_Ribombee:: .incbin "sound/direct_sound_samples/cries/ribombee.bin" +.endif @ P_FAMILY_CUTIEFLY +.if P_FAMILY_ROCKRUFF == TRUE .align 2 Cry_Rockruff:: .incbin "sound/direct_sound_samples/cries/rockruff.bin" .align 2 -Cry_Lycanroc:: - .incbin "sound/direct_sound_samples/cries/lycanroc.bin" +Cry_LycanrocMidday:: + .incbin "sound/direct_sound_samples/cries/lycanroc_midday.bin" + + .align 2 +Cry_LycanrocMidnight:: + .incbin "sound/direct_sound_samples/cries/lycanroc_midnight.bin" + + .align 2 +Cry_LycanrocDusk:: + .incbin "sound/direct_sound_samples/cries/lycanroc_dusk.bin" +.endif @ P_FAMILY_ROCKRUFF +.if P_FAMILY_WISHIWASHI == TRUE .align 2 -Cry_Wishiwashi:: - .incbin "sound/direct_sound_samples/cries/wishiwashi.bin" +Cry_WishiwashiSolo:: + .incbin "sound/direct_sound_samples/cries/wishiwashi_solo.bin" + .align 2 +Cry_WishiwashiSchool:: + .incbin "sound/direct_sound_samples/cries/wishiwashi_school.bin" +.endif @ P_FAMILY_WISHIWASHI + +.if P_FAMILY_MAREANIE == TRUE .align 2 Cry_Mareanie:: .incbin "sound/direct_sound_samples/cries/mareanie.bin" @@ -3384,7 +4698,9 @@ Cry_Mareanie:: .align 2 Cry_Toxapex:: .incbin "sound/direct_sound_samples/cries/toxapex.bin" +.endif @ P_FAMILY_MAREANIE +.if P_FAMILY_MUDBRAY == TRUE .align 2 Cry_Mudbray:: .incbin "sound/direct_sound_samples/cries/mudbray.bin" @@ -3392,7 +4708,9 @@ Cry_Mudbray:: .align 2 Cry_Mudsdale:: .incbin "sound/direct_sound_samples/cries/mudsdale.bin" +.endif @ P_FAMILY_MUDBRAY +.if P_FAMILY_DEWPIDER == TRUE .align 2 Cry_Dewpider:: .incbin "sound/direct_sound_samples/cries/dewpider.bin" @@ -3400,7 +4718,9 @@ Cry_Dewpider:: .align 2 Cry_Araquanid:: .incbin "sound/direct_sound_samples/cries/araquanid.bin" +.endif @ P_FAMILY_DEWPIDER +.if P_FAMILY_FOMANTIS == TRUE .align 2 Cry_Fomantis:: .incbin "sound/direct_sound_samples/cries/fomantis.bin" @@ -3408,7 +4728,9 @@ Cry_Fomantis:: .align 2 Cry_Lurantis:: .incbin "sound/direct_sound_samples/cries/lurantis.bin" +.endif @ P_FAMILY_FOMANTIS +.if P_FAMILY_MORELULL == TRUE .align 2 Cry_Morelull:: .incbin "sound/direct_sound_samples/cries/morelull.bin" @@ -3416,7 +4738,9 @@ Cry_Morelull:: .align 2 Cry_Shiinotic:: .incbin "sound/direct_sound_samples/cries/shiinotic.bin" +.endif @ P_FAMILY_MORELULL +.if P_FAMILY_SALANDIT == TRUE .align 2 Cry_Salandit:: .incbin "sound/direct_sound_samples/cries/salandit.bin" @@ -3424,7 +4748,9 @@ Cry_Salandit:: .align 2 Cry_Salazzle:: .incbin "sound/direct_sound_samples/cries/salazzle.bin" +.endif @ P_FAMILY_SALANDIT +.if P_FAMILY_STUFFUL == TRUE .align 2 Cry_Stufful:: .incbin "sound/direct_sound_samples/cries/stufful.bin" @@ -3432,7 +4758,9 @@ Cry_Stufful:: .align 2 Cry_Bewear:: .incbin "sound/direct_sound_samples/cries/bewear.bin" +.endif @ P_FAMILY_STUFFUL +.if P_FAMILY_BOUNSWEET == TRUE .align 2 Cry_Bounsweet:: .incbin "sound/direct_sound_samples/cries/bounsweet.bin" @@ -3444,19 +4772,27 @@ Cry_Steenee:: .align 2 Cry_Tsareena:: .incbin "sound/direct_sound_samples/cries/tsareena.bin" +.endif @ P_FAMILY_BOUNSWEET +.if P_FAMILY_COMFEY == TRUE .align 2 Cry_Comfey:: .incbin "sound/direct_sound_samples/cries/comfey.bin" +.endif @ P_FAMILY_COMFEY +.if P_FAMILY_ORANGURU == TRUE .align 2 Cry_Oranguru:: .incbin "sound/direct_sound_samples/cries/oranguru.bin" +.endif @ P_FAMILY_ORANGURU +.if P_FAMILY_PASSIMIAN == TRUE .align 2 Cry_Passimian:: .incbin "sound/direct_sound_samples/cries/passimian.bin" +.endif @ P_FAMILY_PASSIMIAN +.if P_FAMILY_WIMPOD == TRUE .align 2 Cry_Wimpod:: .incbin "sound/direct_sound_samples/cries/wimpod.bin" @@ -3464,7 +4800,9 @@ Cry_Wimpod:: .align 2 Cry_Golisopod:: .incbin "sound/direct_sound_samples/cries/golisopod.bin" +.endif @ P_FAMILY_WIMPOD +.if P_FAMILY_SANDYGAST == TRUE .align 2 Cry_Sandygast:: .incbin "sound/direct_sound_samples/cries/sandygast.bin" @@ -3472,11 +4810,15 @@ Cry_Sandygast:: .align 2 Cry_Palossand:: .incbin "sound/direct_sound_samples/cries/palossand.bin" +.endif @ P_FAMILY_SANDYGAST +.if P_FAMILY_PYUKUMUKU == TRUE .align 2 Cry_Pyukumuku:: .incbin "sound/direct_sound_samples/cries/pyukumuku.bin" +.endif @ P_FAMILY_PYUKUMUKU +.if P_FAMILY_TYPE_NULL == TRUE .align 2 Cry_TypeNull:: .incbin "sound/direct_sound_samples/cries/type_null.bin" @@ -3484,39 +4826,57 @@ Cry_TypeNull:: .align 2 Cry_Silvally:: .incbin "sound/direct_sound_samples/cries/silvally.bin" +.endif @ P_FAMILY_TYPE_NULL +.if P_FAMILY_MINIOR == TRUE .align 2 Cry_Minior:: .incbin "sound/direct_sound_samples/cries/minior.bin" +.endif @ P_FAMILY_MINIOR +.if P_FAMILY_KOMALA == TRUE .align 2 Cry_Komala:: .incbin "sound/direct_sound_samples/cries/komala.bin" +.endif @ P_FAMILY_KOMALA +.if P_FAMILY_TURTONATOR == TRUE .align 2 Cry_Turtonator:: .incbin "sound/direct_sound_samples/cries/turtonator.bin" +.endif @ P_FAMILY_TURTONATOR +.if P_FAMILY_TOGEDEMARU == TRUE .align 2 Cry_Togedemaru:: .incbin "sound/direct_sound_samples/cries/togedemaru.bin" +.endif @ P_FAMILY_TOGEDEMARU +.if P_FAMILY_MIMIKYU == TRUE .align 2 Cry_Mimikyu:: .incbin "sound/direct_sound_samples/cries/mimikyu.bin" +.endif @ P_FAMILY_MIMIKYU +.if P_FAMILY_BRUXISH == TRUE .align 2 Cry_Bruxish:: .incbin "sound/direct_sound_samples/cries/bruxish.bin" +.endif @ P_FAMILY_BRUXISH +.if P_FAMILY_DRAMPA == TRUE .align 2 Cry_Drampa:: .incbin "sound/direct_sound_samples/cries/drampa.bin" +.endif @ P_FAMILY_DRAMPA +.if P_FAMILY_DHELMISE == TRUE .align 2 Cry_Dhelmise:: .incbin "sound/direct_sound_samples/cries/dhelmise.bin" +.endif @ P_FAMILY_DHELMISE +.if P_FAMILY_JANGMO_O == TRUE .align 2 Cry_JangmoO:: .incbin "sound/direct_sound_samples/cries/jangmo_o.bin" @@ -3528,23 +4888,33 @@ Cry_HakamoO:: .align 2 Cry_KommoO:: .incbin "sound/direct_sound_samples/cries/kommo_o.bin" +.endif @ P_FAMILY_JANGMO_O +.if P_FAMILY_TAPU_KOKO == TRUE .align 2 Cry_TapuKoko:: .incbin "sound/direct_sound_samples/cries/tapu_koko.bin" +.endif @ P_FAMILY_TAPU_KOKO +.if P_FAMILY_TAPU_LELE == TRUE .align 2 Cry_TapuLele:: .incbin "sound/direct_sound_samples/cries/tapu_lele.bin" +.endif @ P_FAMILY_TAPU_LELE +.if P_FAMILY_TAPU_BULU == TRUE .align 2 Cry_TapuBulu:: .incbin "sound/direct_sound_samples/cries/tapu_bulu.bin" +.endif @ P_FAMILY_TAPU_BULU +.if P_FAMILY_TAPU_FINI == TRUE .align 2 Cry_TapuFini:: .incbin "sound/direct_sound_samples/cries/tapu_fini.bin" +.endif @ P_FAMILY_TAPU_FINI +.if P_FAMILY_COSMOG == TRUE .align 2 Cry_Cosmog:: .incbin "sound/direct_sound_samples/cries/cosmog.bin" @@ -3560,47 +4930,86 @@ Cry_Solgaleo:: .align 2 Cry_Lunala:: .incbin "sound/direct_sound_samples/cries/lunala.bin" +.endif @ P_FAMILY_COSMOG +.if P_FAMILY_NIHILEGO == TRUE .align 2 Cry_Nihilego:: .incbin "sound/direct_sound_samples/cries/nihilego.bin" +.endif @ P_FAMILY_NIHILEGO +.if P_FAMILY_BUZZWOLE == TRUE .align 2 Cry_Buzzwole:: .incbin "sound/direct_sound_samples/cries/buzzwole.bin" +.endif @ P_FAMILY_BUZZWOLE +.if P_FAMILY_PHEROMOSA == TRUE .align 2 Cry_Pheromosa:: .incbin "sound/direct_sound_samples/cries/pheromosa.bin" +.endif @ P_FAMILY_PHEROMOSA +.if P_FAMILY_XURKITREE == TRUE .align 2 Cry_Xurkitree:: .incbin "sound/direct_sound_samples/cries/xurkitree.bin" +.endif @ P_FAMILY_XURKITREE +.if P_FAMILY_CELESTEELA == TRUE .align 2 Cry_Celesteela:: .incbin "sound/direct_sound_samples/cries/celesteela.bin" +.endif @ P_FAMILY_CELESTEELA +.if P_FAMILY_KARTANA == TRUE .align 2 Cry_Kartana:: .incbin "sound/direct_sound_samples/cries/kartana.bin" +.endif @ P_FAMILY_KARTANA +.if P_FAMILY_GUZZLORD == TRUE .align 2 Cry_Guzzlord:: .incbin "sound/direct_sound_samples/cries/guzzlord.bin" +.endif @ P_FAMILY_GUZZLORD +.if P_FAMILY_NECROZMA == TRUE .align 2 Cry_Necrozma:: .incbin "sound/direct_sound_samples/cries/necrozma.bin" +.if P_FUSION_FORMS == TRUE + .align 2 +Cry_NecrozmaDuskMane:: + .incbin "sound/direct_sound_samples/cries/necrozma_dusk_mane.bin" + + .align 2 +Cry_NecrozmaDawnWings:: + .incbin "sound/direct_sound_samples/cries/necrozma_dawn_wings.bin" + +.if P_ULTRA_BURST_FORMS == TRUE + .align 2 +Cry_NecrozmaUltra:: + .incbin "sound/direct_sound_samples/cries/necrozma_ultra.bin" + +.endif @ P_ULTRA_BURST_FORMS +.endif @ P_FUSION_FORMS +.endif @ P_FAMILY_NECROZMA + +.if P_FAMILY_MAGEARNA == TRUE .align 2 Cry_Magearna:: .incbin "sound/direct_sound_samples/cries/magearna.bin" +.endif @ P_FAMILY_MAGEARNA +.if P_FAMILY_MARSHADOW == TRUE .align 2 Cry_Marshadow:: .incbin "sound/direct_sound_samples/cries/marshadow.bin" +.endif @ P_FAMILY_MARSHADOW +.if P_FAMILY_POIPOLE == TRUE .align 2 Cry_Poipole:: .incbin "sound/direct_sound_samples/cries/poipole.bin" @@ -3608,19 +5017,27 @@ Cry_Poipole:: .align 2 Cry_Naganadel:: .incbin "sound/direct_sound_samples/cries/naganadel.bin" +.endif @ P_FAMILY_POIPOLE +.if P_FAMILY_STAKATAKA == TRUE .align 2 Cry_Stakataka:: .incbin "sound/direct_sound_samples/cries/stakataka.bin" +.endif @ P_FAMILY_STAKATAKA +.if P_FAMILY_BLACEPHALON == TRUE .align 2 Cry_Blacephalon:: .incbin "sound/direct_sound_samples/cries/blacephalon.bin" +.endif @ P_FAMILY_BLACEPHALON +.if P_FAMILY_ZERAORA == TRUE .align 2 Cry_Zeraora:: .incbin "sound/direct_sound_samples/cries/zeraora.bin" +.endif @ P_FAMILY_ZERAORA +.if P_FAMILY_MELTAN == TRUE .align 2 Cry_Meltan:: .incbin "sound/direct_sound_samples/cries/meltan.bin" @@ -3628,9 +5045,9 @@ Cry_Meltan:: .align 2 Cry_Melmetal:: .incbin "sound/direct_sound_samples/cries/melmetal.bin" -.endif +.endif @ P_FAMILY_MELTAN -.if P_GEN_8_POKEMON == TRUE +.if P_FAMILY_GROOKEY == TRUE .align 2 Cry_Grookey:: .incbin "sound/direct_sound_samples/cries/grookey.bin" @@ -3642,7 +5059,9 @@ Cry_Thwackey:: .align 2 Cry_Rillaboom:: .incbin "sound/direct_sound_samples/cries/rillaboom.bin" +.endif @ P_FAMILY_GROOKEY +.if P_FAMILY_SCORBUNNY == TRUE .align 2 Cry_Scorbunny:: .incbin "sound/direct_sound_samples/cries/scorbunny.bin" @@ -3654,7 +5073,9 @@ Cry_Raboot:: .align 2 Cry_Cinderace:: .incbin "sound/direct_sound_samples/cries/cinderace.bin" +.endif @ P_FAMILY_SCORBUNNY +.if P_FAMILY_SOBBLE == TRUE .align 2 Cry_Sobble:: .incbin "sound/direct_sound_samples/cries/sobble.bin" @@ -3666,7 +5087,9 @@ Cry_Drizzile:: .align 2 Cry_Inteleon:: .incbin "sound/direct_sound_samples/cries/inteleon.bin" +.endif @ P_FAMILY_SOBBLE +.if P_FAMILY_SKWOVET == TRUE .align 2 Cry_Skwovet:: .incbin "sound/direct_sound_samples/cries/skwovet.bin" @@ -3674,7 +5097,9 @@ Cry_Skwovet:: .align 2 Cry_Greedent:: .incbin "sound/direct_sound_samples/cries/greedent.bin" +.endif @ P_FAMILY_SKWOVET +.if P_FAMILY_ROOKIDEE == TRUE .align 2 Cry_Rookidee:: .incbin "sound/direct_sound_samples/cries/rookidee.bin" @@ -3686,7 +5111,9 @@ Cry_Corvisquire:: .align 2 Cry_Corviknight:: .incbin "sound/direct_sound_samples/cries/corviknight.bin" +.endif @ P_FAMILY_ROOKIDEE +.if P_FAMILY_BLIPBUG == TRUE .align 2 Cry_Blipbug:: .incbin "sound/direct_sound_samples/cries/blipbug.bin" @@ -3698,7 +5125,9 @@ Cry_Dottler:: .align 2 Cry_Orbeetle:: .incbin "sound/direct_sound_samples/cries/orbeetle.bin" +.endif @ P_FAMILY_BLIPBUG +.if P_FAMILY_NICKIT == TRUE .align 2 Cry_Nickit:: .incbin "sound/direct_sound_samples/cries/nickit.bin" @@ -3706,7 +5135,9 @@ Cry_Nickit:: .align 2 Cry_Thievul:: .incbin "sound/direct_sound_samples/cries/thievul.bin" +.endif @ P_FAMILY_NICKIT +.if P_FAMILY_GOSSIFLEUR == TRUE .align 2 Cry_Gossifleur:: .incbin "sound/direct_sound_samples/cries/gossifleur.bin" @@ -3714,7 +5145,9 @@ Cry_Gossifleur:: .align 2 Cry_Eldegoss:: .incbin "sound/direct_sound_samples/cries/eldegoss.bin" +.endif @ P_FAMILY_GOSSIFLEUR +.if P_FAMILY_WOOLOO == TRUE .align 2 Cry_Wooloo:: .incbin "sound/direct_sound_samples/cries/wooloo.bin" @@ -3722,7 +5155,9 @@ Cry_Wooloo:: .align 2 Cry_Dubwool:: .incbin "sound/direct_sound_samples/cries/dubwool.bin" +.endif @ P_FAMILY_WOOLOO +.if P_FAMILY_CHEWTLE == TRUE .align 2 Cry_Chewtle:: .incbin "sound/direct_sound_samples/cries/chewtle.bin" @@ -3730,7 +5165,9 @@ Cry_Chewtle:: .align 2 Cry_Drednaw:: .incbin "sound/direct_sound_samples/cries/drednaw.bin" +.endif @ P_FAMILY_CHEWTLE +.if P_FAMILY_YAMPER == TRUE .align 2 Cry_Yamper:: .incbin "sound/direct_sound_samples/cries/yamper.bin" @@ -3738,7 +5175,9 @@ Cry_Yamper:: .align 2 Cry_Boltund:: .incbin "sound/direct_sound_samples/cries/boltund.bin" +.endif @ P_FAMILY_YAMPER +.if P_FAMILY_ROLYCOLY == TRUE .align 2 Cry_Rolycoly:: .incbin "sound/direct_sound_samples/cries/rolycoly.bin" @@ -3750,7 +5189,9 @@ Cry_Carkol:: .align 2 Cry_Coalossal:: .incbin "sound/direct_sound_samples/cries/coalossal.bin" +.endif @ P_FAMILY_ROLYCOLY +.if P_FAMILY_APPLIN == TRUE .align 2 Cry_Applin:: .incbin "sound/direct_sound_samples/cries/applin.bin" @@ -3763,6 +5204,14 @@ Cry_Flapple:: Cry_Appletun:: .incbin "sound/direct_sound_samples/cries/appletun.bin" +.if P_GEN_9_CROSS_EVOS == TRUE + .align 2 +Cry_Dipplin:: + .incbin "sound/direct_sound_samples/cries/dipplin.bin" +.endif @ P_GEN_9_CROSS_EVOS +.endif @ P_FAMILY_APPLIN + +.if P_FAMILY_SILICOBRA == TRUE .align 2 Cry_Silicobra:: .incbin "sound/direct_sound_samples/cries/silicobra.bin" @@ -3770,11 +5219,15 @@ Cry_Silicobra:: .align 2 Cry_Sandaconda:: .incbin "sound/direct_sound_samples/cries/sandaconda.bin" +.endif @ P_FAMILY_SILICOBRA +.if P_FAMILY_CRAMORANT == TRUE .align 2 Cry_Cramorant:: .incbin "sound/direct_sound_samples/cries/cramorant.bin" +.endif @ P_FAMILY_CRAMORANT +.if P_FAMILY_ARROKUDA == TRUE .align 2 Cry_Arrokuda:: .incbin "sound/direct_sound_samples/cries/arrokuda.bin" @@ -3782,15 +5235,23 @@ Cry_Arrokuda:: .align 2 Cry_Barraskewda:: .incbin "sound/direct_sound_samples/cries/barraskewda.bin" +.endif @ P_FAMILY_ARROKUDA +.if P_FAMILY_TOXEL == TRUE .align 2 Cry_Toxel:: .incbin "sound/direct_sound_samples/cries/toxel.bin" .align 2 -Cry_Toxtricity:: - .incbin "sound/direct_sound_samples/cries/toxtricity.bin" +Cry_ToxtricityAmped:: + .incbin "sound/direct_sound_samples/cries/toxtricity_amped.bin" + .align 2 +Cry_ToxtricityLowKey:: + .incbin "sound/direct_sound_samples/cries/toxtricity_low_key.bin" +.endif @ P_FAMILY_TOXEL + +.if P_FAMILY_SIZZLIPEDE == TRUE .align 2 Cry_Sizzlipede:: .incbin "sound/direct_sound_samples/cries/sizzlipede.bin" @@ -3798,7 +5259,9 @@ Cry_Sizzlipede:: .align 2 Cry_Centiskorch:: .incbin "sound/direct_sound_samples/cries/centiskorch.bin" +.endif @ P_FAMILY_SIZZLIPEDE +.if P_FAMILY_CLOBBOPUS == TRUE .align 2 Cry_Clobbopus:: .incbin "sound/direct_sound_samples/cries/clobbopus.bin" @@ -3806,7 +5269,9 @@ Cry_Clobbopus:: .align 2 Cry_Grapploct:: .incbin "sound/direct_sound_samples/cries/grapploct.bin" +.endif @ P_FAMILY_CLOBBOPUS +.if P_FAMILY_SINISTEA == TRUE .align 2 Cry_Sinistea:: .incbin "sound/direct_sound_samples/cries/sinistea.bin" @@ -3814,7 +5279,9 @@ Cry_Sinistea:: .align 2 Cry_Polteageist:: .incbin "sound/direct_sound_samples/cries/polteageist.bin" +.endif @ P_FAMILY_SINISTEA +.if P_FAMILY_HATENNA == TRUE .align 2 Cry_Hatenna:: .incbin "sound/direct_sound_samples/cries/hatenna.bin" @@ -3826,7 +5293,9 @@ Cry_Hattrem:: .align 2 Cry_Hatterene:: .incbin "sound/direct_sound_samples/cries/hatterene.bin" +.endif @ P_FAMILY_HATENNA +.if P_FAMILY_IMPIDIMP == TRUE .align 2 Cry_Impidimp:: .incbin "sound/direct_sound_samples/cries/impidimp.bin" @@ -3838,31 +5307,9 @@ Cry_Morgrem:: .align 2 Cry_Grimmsnarl:: .incbin "sound/direct_sound_samples/cries/grimmsnarl.bin" +.endif @ P_FAMILY_IMPIDIMP - .align 2 -Cry_Obstagoon:: - .incbin "sound/direct_sound_samples/cries/obstagoon.bin" - - .align 2 -Cry_Perrserker:: - .incbin "sound/direct_sound_samples/cries/perrserker.bin" - - .align 2 -Cry_Cursola:: - .incbin "sound/direct_sound_samples/cries/cursola.bin" - - .align 2 -Cry_Sirfetchd:: - .incbin "sound/direct_sound_samples/cries/sirfetchd.bin" - - .align 2 -Cry_MrRime:: - .incbin "sound/direct_sound_samples/cries/mr_rime.bin" - - .align 2 -Cry_Runerigus:: - .incbin "sound/direct_sound_samples/cries/runerigus.bin" - +.if P_FAMILY_MILCERY == TRUE .align 2 Cry_Milcery:: .incbin "sound/direct_sound_samples/cries/milcery.bin" @@ -3870,15 +5317,21 @@ Cry_Milcery:: .align 2 Cry_Alcremie:: .incbin "sound/direct_sound_samples/cries/alcremie.bin" +.endif @ P_FAMILY_MILCERY +.if P_FAMILY_FALINKS == TRUE .align 2 Cry_Falinks:: .incbin "sound/direct_sound_samples/cries/falinks.bin" +.endif @ P_FAMILY_FALINKS +.if P_FAMILY_PINCURCHIN == TRUE .align 2 Cry_Pincurchin:: .incbin "sound/direct_sound_samples/cries/pincurchin.bin" +.endif @ P_FAMILY_PINCURCHIN +.if P_FAMILY_SNOM == TRUE .align 2 Cry_Snom:: .incbin "sound/direct_sound_samples/cries/snom.bin" @@ -3886,23 +5339,45 @@ Cry_Snom:: .align 2 Cry_Frosmoth:: .incbin "sound/direct_sound_samples/cries/frosmoth.bin" +.endif @ P_FAMILY_SNOM +.if P_FAMILY_STONJOURNER == TRUE .align 2 Cry_Stonjourner:: .incbin "sound/direct_sound_samples/cries/stonjourner.bin" +.endif @ P_FAMILY_STONJOURNER + +.if P_FAMILY_EISCUE == TRUE + .align 2 +Cry_EiscueIceFace:: + .incbin "sound/direct_sound_samples/cries/eiscue_ice_face.bin" + + .align 2 +Cry_EiscueNoiceFace:: + .incbin "sound/direct_sound_samples/cries/eiscue_noice_face.bin" +.endif @ P_FAMILY_EISCUE +.if P_FAMILY_INDEEDEE == TRUE .align 2 -Cry_Eiscue:: - .incbin "sound/direct_sound_samples/cries/eiscue.bin" +Cry_IndeedeeMale:: + .incbin "sound/direct_sound_samples/cries/indeedee_male.bin" .align 2 -Cry_Indeedee:: - .incbin "sound/direct_sound_samples/cries/indeedee.bin" +Cry_IndeedeeFemale:: + .incbin "sound/direct_sound_samples/cries/indeedee_female.bin" +.endif @ P_FAMILY_INDEEDEE +.if P_FAMILY_MORPEKO == TRUE .align 2 -Cry_Morpeko:: - .incbin "sound/direct_sound_samples/cries/morpeko.bin" +Cry_MorpekoFullBelly:: + .incbin "sound/direct_sound_samples/cries/morpeko_full_belly.bin" + .align 2 +Cry_MorpekoHangry:: + .incbin "sound/direct_sound_samples/cries/morpeko_hangry.bin" +.endif @ P_FAMILY_MORPEKO + +.if P_FAMILY_CUFANT == TRUE .align 2 Cry_Cufant:: .incbin "sound/direct_sound_samples/cries/cufant.bin" @@ -3910,27 +5385,39 @@ Cry_Cufant:: .align 2 Cry_Copperajah:: .incbin "sound/direct_sound_samples/cries/copperajah.bin" +.endif @ P_FAMILY_CUFANT +.if P_FAMILY_DRACOZOLT == TRUE .align 2 Cry_Dracozolt:: .incbin "sound/direct_sound_samples/cries/dracozolt.bin" +.endif @ P_FAMILY_DRACOZOLT +.if P_FAMILY_ARCTOZOLT == TRUE .align 2 Cry_Arctozolt:: .incbin "sound/direct_sound_samples/cries/arctozolt.bin" +.endif @ P_FAMILY_ARCTOZOLT +.if P_FAMILY_DRACOVISH == TRUE .align 2 Cry_Dracovish:: .incbin "sound/direct_sound_samples/cries/dracovish.bin" +.endif @ P_FAMILY_DRACOVISH +.if P_FAMILY_ARCTOVISH == TRUE .align 2 Cry_Arctovish:: .incbin "sound/direct_sound_samples/cries/arctovish.bin" +.endif @ P_FAMILY_ARCTOVISH +.if P_FAMILY_DURALUDON == TRUE .align 2 Cry_Duraludon:: .incbin "sound/direct_sound_samples/cries/duraludon.bin" +.endif @ P_FAMILY_DURALUDON +.if P_FAMILY_DREEPY == TRUE .align 2 Cry_Dreepy:: .incbin "sound/direct_sound_samples/cries/dreepy.bin" @@ -3942,429 +5429,684 @@ Cry_Drakloak:: .align 2 Cry_Dragapult:: .incbin "sound/direct_sound_samples/cries/dragapult.bin" +.endif @ P_FAMILY_DREEPY + +.if P_FAMILY_ZACIAN == TRUE + .align 2 +Cry_ZacianHeroOfManyBattles:: + .incbin "sound/direct_sound_samples/cries/zacian_hero_of_many_battles.bin" + + .align 2 +Cry_ZacianCrownedSword:: + .incbin "sound/direct_sound_samples/cries/zacian_crowned_sword.bin" +.endif @ P_FAMILY_ZACIAN +.if P_FAMILY_ZAMAZENTA == TRUE .align 2 -Cry_Zacian:: - .incbin "sound/direct_sound_samples/cries/zacian.bin" +Cry_ZamazentaHeroOfManyBattles:: + .incbin "sound/direct_sound_samples/cries/zamazenta_hero_of_many_battles.bin" .align 2 -Cry_Zamazenta:: - .incbin "sound/direct_sound_samples/cries/zamazenta.bin" +Cry_ZamazentaCrownedShield:: + .incbin "sound/direct_sound_samples/cries/zamazenta_crowned_shield.bin" +.endif @ P_FAMILY_ZAMAZENTA +.if P_FAMILY_ETERNATUS == TRUE .align 2 Cry_Eternatus:: .incbin "sound/direct_sound_samples/cries/eternatus.bin" + .align 2 +Cry_EternatusEternamax:: + .incbin "sound/direct_sound_samples/cries/eternatus_eternamax.bin" +.endif @ P_FAMILY_ETERNATUS + +.if P_FAMILY_KUBFU == TRUE .align 2 Cry_Kubfu:: .incbin "sound/direct_sound_samples/cries/kubfu.bin" .align 2 -Cry_Urshifu:: - .incbin "sound/direct_sound_samples/cries/urshifu.bin" +Cry_UrshifuSingleStrikeStyle:: + .incbin "sound/direct_sound_samples/cries/urshifu_single_strike_style.bin" + .align 2 +Cry_UrshifuRapidStrikeStyle:: + .incbin "sound/direct_sound_samples/cries/urshifu_rapid_strike_style.bin" +.endif @ P_FAMILY_KUBFU + +.if P_FAMILY_ZARUDE == TRUE .align 2 Cry_Zarude:: .incbin "sound/direct_sound_samples/cries/zarude.bin" +.endif @ P_FAMILY_ZARUDE +.if P_FAMILY_REGIELEKI == TRUE .align 2 Cry_Regieleki:: .incbin "sound/direct_sound_samples/cries/regieleki.bin" +.endif @ P_FAMILY_REGIELEKI +.if P_FAMILY_REGIDRAGO == TRUE .align 2 Cry_Regidrago:: .incbin "sound/direct_sound_samples/cries/regidrago.bin" +.endif @ P_FAMILY_REGIDRAGO +.if P_FAMILY_GLASTRIER == TRUE .align 2 Cry_Glastrier:: .incbin "sound/direct_sound_samples/cries/glastrier.bin" +.endif @ P_FAMILY_GLASTRIER +.if P_FAMILY_SPECTRIER == TRUE .align 2 Cry_Spectrier:: .incbin "sound/direct_sound_samples/cries/spectrier.bin" +.endif @ P_FAMILY_SPECTRIER +.if P_FAMILY_CALYREX == TRUE .align 2 Cry_Calyrex:: .incbin "sound/direct_sound_samples/cries/calyrex.bin" +.if P_FUSION_FORMS == TRUE .align 2 -Cry_Wyrdeer:: - .incbin "sound/direct_sound_samples/cries/wyrdeer.bin" +Cry_CalyrexIceRider:: + .incbin "sound/direct_sound_samples/cries/calyrex_ice_rider.bin" .align 2 -Cry_Kleavor:: - .incbin "sound/direct_sound_samples/cries/kleavor.bin" +Cry_CalyrexShadowRider:: + .incbin "sound/direct_sound_samples/cries/calyrex_shadow_rider.bin" + +.endif @ P_FUSION_FORMS +.endif @ P_FAMILY_CALYREX +.if P_FAMILY_ENAMORUS == TRUE .align 2 -Cry_Ursaluna:: - .incbin "sound/direct_sound_samples/cries/ursaluna.bin" +Cry_EnamorusIncarnate:: + .incbin "sound/direct_sound_samples/cries/enamorus_incarnate.bin" .align 2 -Cry_Basculegion:: - .incbin "sound/direct_sound_samples/cries/basculegion.bin" +Cry_EnamorusTherian:: + .incbin "sound/direct_sound_samples/cries/enamorus_therian.bin" +.endif @ P_FAMILY_ENAMORUS +.if P_FAMILY_SPRIGATITO == TRUE .align 2 -Cry_Sneasler:: - .incbin "sound/direct_sound_samples/cries/sneasler.bin" +Cry_Sprigatito:: + .incbin "sound/direct_sound_samples/cries/sprigatito.bin" .align 2 -Cry_Overqwil:: - .incbin "sound/direct_sound_samples/cries/overqwil.bin" +Cry_Floragato:: + .incbin "sound/direct_sound_samples/cries/floragato.bin" .align 2 -Cry_Enamorus:: - .incbin "sound/direct_sound_samples/cries/enamorus.bin" +Cry_Meowscarada:: + .incbin "sound/direct_sound_samples/cries/meowscarada.bin" +.endif @ P_FAMILY_SPRIGATITO -.endif +.if P_FAMILY_FUECOCO == TRUE + .align 2 +Cry_Fuecoco:: + .incbin "sound/direct_sound_samples/cries/fuecoco.bin" .align 2 -Cry_VenusaurMega:: - .incbin "sound/direct_sound_samples/cries/mega_venusaur.bin" +Cry_Crocalor:: + .incbin "sound/direct_sound_samples/cries/crocalor.bin" .align 2 -Cry_CharizardMegaX:: - .incbin "sound/direct_sound_samples/cries/mega_charizard_x.bin" +Cry_Skeledirge:: + .incbin "sound/direct_sound_samples/cries/skeledirge.bin" +.endif @ P_FAMILY_FUECOCO +.if P_FAMILY_QUAXLY == TRUE .align 2 -Cry_CharizardMegaY:: - .incbin "sound/direct_sound_samples/cries/mega_charizard_y.bin" +Cry_Quaxly:: + .incbin "sound/direct_sound_samples/cries/quaxly.bin" .align 2 -Cry_BlastoiseMega:: - .incbin "sound/direct_sound_samples/cries/mega_blastoise.bin" +Cry_Quaxwell:: + .incbin "sound/direct_sound_samples/cries/quaxwell.bin" .align 2 -Cry_BeedrillMega:: - .incbin "sound/direct_sound_samples/cries/mega_beedrill.bin" +Cry_Quaquaval:: + .incbin "sound/direct_sound_samples/cries/quaquaval.bin" +.endif @ P_FAMILY_QUAXLY +.if P_FAMILY_LECHONK == TRUE .align 2 -Cry_PidgeotMega:: - .incbin "sound/direct_sound_samples/cries/mega_pidgeot.bin" +Cry_Lechonk:: + .incbin "sound/direct_sound_samples/cries/lechonk.bin" .align 2 -Cry_AlakazamMega:: - .incbin "sound/direct_sound_samples/cries/mega_alakazam.bin" +Cry_OinkologneMale:: + .incbin "sound/direct_sound_samples/cries/oinkologne_male.bin" .align 2 -Cry_SlowbroMega:: - .incbin "sound/direct_sound_samples/cries/mega_slowbro.bin" +Cry_OinkologneFemale:: + .incbin "sound/direct_sound_samples/cries/oinkologne_female.bin" +.endif @ P_FAMILY_LECHONK +.if P_FAMILY_TAROUNTULA == TRUE .align 2 -Cry_GengarMega:: - .incbin "sound/direct_sound_samples/cries/mega_gengar.bin" +Cry_Tarountula:: + .incbin "sound/direct_sound_samples/cries/tarountula.bin" .align 2 -Cry_KangaskhanMega:: - .incbin "sound/direct_sound_samples/cries/mega_kangaskhan.bin" +Cry_Spidops:: + .incbin "sound/direct_sound_samples/cries/spidops.bin" +.endif @ P_FAMILY_TAROUNTULA +.if P_FAMILY_NYMBLE == TRUE .align 2 -Cry_PinsirMega:: - .incbin "sound/direct_sound_samples/cries/mega_pinsir.bin" +Cry_Nymble:: + .incbin "sound/direct_sound_samples/cries/nymble.bin" .align 2 -Cry_GyaradosMega:: - .incbin "sound/direct_sound_samples/cries/mega_gyarados.bin" +Cry_Lokix:: + .incbin "sound/direct_sound_samples/cries/lokix.bin" +.endif @ P_FAMILY_NYMBLE +.if P_FAMILY_PAWMI == TRUE .align 2 -Cry_AerodactylMega:: - .incbin "sound/direct_sound_samples/cries/mega_aerodactyl.bin" +Cry_Pawmi:: + .incbin "sound/direct_sound_samples/cries/pawmi.bin" .align 2 -Cry_MewtwoMegaX:: - .incbin "sound/direct_sound_samples/cries/mega_mewtwo_x.bin" +Cry_Pawmo:: + .incbin "sound/direct_sound_samples/cries/pawmo.bin" .align 2 -Cry_MewtwoMegaY:: - .incbin "sound/direct_sound_samples/cries/mega_mewtwo_y.bin" +Cry_Pawmot:: + .incbin "sound/direct_sound_samples/cries/pawmot.bin" +.endif @ P_FAMILY_PAWMI +.if P_FAMILY_TANDEMAUS == TRUE .align 2 -Cry_AmpharosMega:: - .incbin "sound/direct_sound_samples/cries/mega_ampharos.bin" +Cry_Tandemaus:: + .incbin "sound/direct_sound_samples/cries/tandemaus.bin" .align 2 -Cry_SteelixMega:: - .incbin "sound/direct_sound_samples/cries/mega_steelix.bin" +Cry_MausholdFamilyOfThree:: + .incbin "sound/direct_sound_samples/cries/maushold_family_of_three.bin" .align 2 -Cry_ScizorMega:: - .incbin "sound/direct_sound_samples/cries/mega_scizor.bin" +Cry_MausholdFamilyOfFour:: + .incbin "sound/direct_sound_samples/cries/maushold_family_of_four.bin" +.endif @ P_FAMILY_TANDEMAUS +.if P_FAMILY_FIDOUGH == TRUE .align 2 -Cry_HeracrossMega:: - .incbin "sound/direct_sound_samples/cries/mega_heracross.bin" +Cry_Fidough:: + .incbin "sound/direct_sound_samples/cries/fidough.bin" .align 2 -Cry_HoundoomMega:: - .incbin "sound/direct_sound_samples/cries/mega_houndoom.bin" +Cry_Dachsbun:: + .incbin "sound/direct_sound_samples/cries/dachsbun.bin" +.endif @ P_FAMILY_FIDOUGH +.if P_FAMILY_SMOLIV == TRUE .align 2 -Cry_TyranitarMega:: - .incbin "sound/direct_sound_samples/cries/mega_tyranitar.bin" +Cry_Smoliv:: + .incbin "sound/direct_sound_samples/cries/smoliv.bin" .align 2 -Cry_SceptileMega:: - .incbin "sound/direct_sound_samples/cries/mega_sceptile.bin" +Cry_Dolliv:: + .incbin "sound/direct_sound_samples/cries/dolliv.bin" .align 2 -Cry_BlazikenMega:: - .incbin "sound/direct_sound_samples/cries/mega_blaziken.bin" +Cry_Arboliva:: + .incbin "sound/direct_sound_samples/cries/arboliva.bin" +.endif @ P_FAMILY_SMOLIV +.if P_FAMILY_SQUAWKABILLY == TRUE .align 2 -Cry_SwampertMega:: - .incbin "sound/direct_sound_samples/cries/mega_swampert.bin" +Cry_Squawkabilly:: + .incbin "sound/direct_sound_samples/cries/squawkabilly.bin" +.endif @ P_FAMILY_SQUAWKABILLY +.if P_FAMILY_NACLI == TRUE .align 2 -Cry_GardevoirMega:: - .incbin "sound/direct_sound_samples/cries/mega_gardevoir.bin" +Cry_Nacli:: + .incbin "sound/direct_sound_samples/cries/nacli.bin" .align 2 -Cry_SableyeMega:: - .incbin "sound/direct_sound_samples/cries/mega_sableye.bin" +Cry_Naclstack:: + .incbin "sound/direct_sound_samples/cries/naclstack.bin" .align 2 -Cry_MawileMega:: - .incbin "sound/direct_sound_samples/cries/mega_mawile.bin" +Cry_Garganacl:: + .incbin "sound/direct_sound_samples/cries/garganacl.bin" +.endif @ P_FAMILY_NACLI +.if P_FAMILY_CHARCADET == TRUE .align 2 -Cry_AggronMega:: - .incbin "sound/direct_sound_samples/cries/mega_aggron.bin" +Cry_Charcadet:: + .incbin "sound/direct_sound_samples/cries/charcadet.bin" .align 2 -Cry_MedichamMega:: - .incbin "sound/direct_sound_samples/cries/mega_medicham.bin" +Cry_Armarouge:: + .incbin "sound/direct_sound_samples/cries/armarouge.bin" .align 2 -Cry_ManectricMega:: - .incbin "sound/direct_sound_samples/cries/mega_manectric.bin" +Cry_Ceruledge:: + .incbin "sound/direct_sound_samples/cries/ceruledge.bin" +.endif @ P_FAMILY_CHARCADET +.if P_FAMILY_TADBULB == TRUE .align 2 -Cry_SharpedoMega:: - .incbin "sound/direct_sound_samples/cries/mega_sharpedo.bin" +Cry_Tadbulb:: + .incbin "sound/direct_sound_samples/cries/tadbulb.bin" .align 2 -Cry_CameruptMega:: - .incbin "sound/direct_sound_samples/cries/mega_camerupt.bin" +Cry_Bellibolt:: + .incbin "sound/direct_sound_samples/cries/bellibolt.bin" +.endif @ P_FAMILY_TADBULB +.if P_FAMILY_WATTREL == TRUE .align 2 -Cry_AltariaMega:: - .incbin "sound/direct_sound_samples/cries/mega_altaria.bin" +Cry_Wattrel:: + .incbin "sound/direct_sound_samples/cries/wattrel.bin" .align 2 -Cry_BanetteMega:: - .incbin "sound/direct_sound_samples/cries/mega_banette.bin" +Cry_Kilowattrel:: + .incbin "sound/direct_sound_samples/cries/kilowattrel.bin" +.endif @ P_FAMILY_WATTREL +.if P_FAMILY_MASCHIFF == TRUE .align 2 -Cry_AbsolMega:: - .incbin "sound/direct_sound_samples/cries/mega_absol.bin" +Cry_Maschiff:: + .incbin "sound/direct_sound_samples/cries/maschiff.bin" .align 2 -Cry_GlalieMega:: - .incbin "sound/direct_sound_samples/cries/mega_glalie.bin" +Cry_Mabosstiff:: + .incbin "sound/direct_sound_samples/cries/mabosstiff.bin" +.endif @ P_FAMILY_MASCHIFF +.if P_FAMILY_SHROODLE == TRUE .align 2 -Cry_SalamenceMega:: - .incbin "sound/direct_sound_samples/cries/mega_salamence.bin" +Cry_Shroodle:: + .incbin "sound/direct_sound_samples/cries/shroodle.bin" .align 2 -Cry_MetagrossMega:: - .incbin "sound/direct_sound_samples/cries/mega_metagross.bin" +Cry_Grafaiai:: + .incbin "sound/direct_sound_samples/cries/grafaiai.bin" +.endif @ P_FAMILY_SHROODLE +.if P_FAMILY_BRAMBLIN == TRUE .align 2 -Cry_LatiasMega:: - .incbin "sound/direct_sound_samples/cries/mega_latias.bin" +Cry_Bramblin:: + .incbin "sound/direct_sound_samples/cries/bramblin.bin" .align 2 -Cry_LatiosMega:: - .incbin "sound/direct_sound_samples/cries/mega_latios.bin" +Cry_Brambleghast:: + .incbin "sound/direct_sound_samples/cries/brambleghast.bin" +.endif @ P_FAMILY_BRAMBLIN -.if P_GEN_4_POKEMON == TRUE +.if P_FAMILY_TOEDSCOOL == TRUE .align 2 -Cry_LopunnyMega:: - .incbin "sound/direct_sound_samples/cries/mega_lopunny.bin" +Cry_Toedscool:: + .incbin "sound/direct_sound_samples/cries/toedscool.bin" .align 2 -Cry_GarchompMega:: - .incbin "sound/direct_sound_samples/cries/mega_garchomp.bin" +Cry_Toedscruel:: + .incbin "sound/direct_sound_samples/cries/toedscruel.bin" +.endif @ P_FAMILY_TOEDSCOOL +.if P_FAMILY_KLAWF == TRUE .align 2 -Cry_LucarioMega:: - .incbin "sound/direct_sound_samples/cries/mega_lucario.bin" +Cry_Klawf:: + .incbin "sound/direct_sound_samples/cries/klawf.bin" +.endif @ P_FAMILY_KLAWF +.if P_FAMILY_CAPSAKID == TRUE .align 2 -Cry_AbomasnowMega:: - .incbin "sound/direct_sound_samples/cries/mega_abomasnow.bin" +Cry_Capsakid:: + .incbin "sound/direct_sound_samples/cries/capsakid.bin" .align 2 -Cry_GalladeMega:: - .incbin "sound/direct_sound_samples/cries/mega_gallade.bin" -.endif +Cry_Scovillain:: + .incbin "sound/direct_sound_samples/cries/scovillain.bin" +.endif @ P_FAMILY_CAPSAKID -.if P_GEN_5_POKEMON == TRUE +.if P_FAMILY_RELLOR == TRUE .align 2 -Cry_AudinoMega:: - .incbin "sound/direct_sound_samples/cries/mega_audino.bin" -.endif +Cry_Rellor:: + .incbin "sound/direct_sound_samples/cries/rellor.bin" -.if P_GEN_6_POKEMON == TRUE .align 2 -Cry_DiancieMega:: - .incbin "sound/direct_sound_samples/cries/mega_diancie.bin" -.endif +Cry_Rabsca:: + .incbin "sound/direct_sound_samples/cries/rabsca.bin" +.endif @ P_FAMILY_RELLOR +.if P_FAMILY_FLITTLE == TRUE .align 2 -Cry_RayquazaMega:: - .incbin "sound/direct_sound_samples/cries/mega_rayquaza.bin" +Cry_Flittle:: + .incbin "sound/direct_sound_samples/cries/flittle.bin" .align 2 -Cry_KyogrePrimal:: - .incbin "sound/direct_sound_samples/cries/primal_kyogre.bin" +Cry_Espathra:: + .incbin "sound/direct_sound_samples/cries/espathra.bin" +.endif @ P_FAMILY_FLITTLE +.if P_FAMILY_TINKATINK == TRUE .align 2 -Cry_GroudonPrimal:: - .incbin "sound/direct_sound_samples/cries/primal_groudon.bin" +Cry_Tinkatink:: + .incbin "sound/direct_sound_samples/cries/tinkatink.bin" .align 2 -Cry_SlowpokeGalarian:: - .incbin "sound/direct_sound_samples/cries/slowpoke_galarian.bin" +Cry_Tinkatuff:: + .incbin "sound/direct_sound_samples/cries/tinkatuff.bin" -.if P_GEN_4_POKEMON == TRUE .align 2 -Cry_ShayminSky:: - .incbin "sound/direct_sound_samples/cries/shaymin_sky.bin" -.endif +Cry_Tinkaton:: + .incbin "sound/direct_sound_samples/cries/tinkaton.bin" +.endif @ P_FAMILY_TINKATINK -.if P_GEN_5_POKEMON == TRUE +.if P_FAMILY_WIGLETT == TRUE .align 2 -Cry_TornadusTherian:: - .incbin "sound/direct_sound_samples/cries/tornadus_therian.bin" +Cry_Wiglett:: + .incbin "sound/direct_sound_samples/cries/wiglett.bin" .align 2 -Cry_ThundurusTherian:: - .incbin "sound/direct_sound_samples/cries/thundurus_therian.bin" +Cry_Wugtrio:: + .incbin "sound/direct_sound_samples/cries/wugtrio.bin" +.endif @ P_FAMILY_WIGLETT +.if P_FAMILY_BOMBIRDIER == TRUE .align 2 -Cry_LandorusTherian:: - .incbin "sound/direct_sound_samples/cries/landorus_therian.bin" +Cry_Bombirdier:: + .incbin "sound/direct_sound_samples/cries/bombirdier.bin" +.endif @ P_FAMILY_BOMBIRDIER +.if P_FAMILY_FINIZEN == TRUE .align 2 -Cry_EnamorusTherian:: - .incbin "sound/direct_sound_samples/cries/enamorus_therian.bin" +Cry_Finizen:: + .incbin "sound/direct_sound_samples/cries/finizen.bin" .align 2 -Cry_KyuremWhite:: - .incbin "sound/direct_sound_samples/cries/kyurem_white.bin" +Cry_PalafinZero:: + .incbin "sound/direct_sound_samples/cries/palafin_zero.bin" .align 2 -Cry_KyuremBlack:: - .incbin "sound/direct_sound_samples/cries/kyurem_black.bin" -.endif +Cry_PalafinHero:: + .incbin "sound/direct_sound_samples/cries/palafin_hero.bin" +.endif @ P_FAMILY_FINIZEN -.if P_GEN_6_POKEMON == TRUE +.if P_FAMILY_VAROOM == TRUE .align 2 -Cry_FloetteEternalFlower:: - .incbin "sound/direct_sound_samples/cries/floette_eternal_flower.bin" +Cry_Varoom:: + .incbin "sound/direct_sound_samples/cries/varoom.bin" .align 2 -Cry_PumpkabooSuper:: - .incbin "sound/direct_sound_samples/cries/pumpkaboo_super.bin" +Cry_Revavroom:: + .incbin "sound/direct_sound_samples/cries/revavroom.bin" +.endif @ P_FAMILY_VAROOM +.if P_FAMILY_CYCLIZAR == TRUE .align 2 -Cry_GourgeistSuper:: - .incbin "sound/direct_sound_samples/cries/gourgeist_super.bin" +Cry_Cyclizar:: + .incbin "sound/direct_sound_samples/cries/cyclizar.bin" +.endif @ P_FAMILY_CYCLIZAR +.if P_FAMILY_ORTHWORM == TRUE .align 2 -Cry_Zygarde10:: - .incbin "sound/direct_sound_samples/cries/zygarde_10.bin" +Cry_Orthworm:: + .incbin "sound/direct_sound_samples/cries/orthworm.bin" +.endif @ P_FAMILY_ORTHWORM +.if P_FAMILY_GLIMMET == TRUE .align 2 -Cry_ZygardeComplete:: - .incbin "sound/direct_sound_samples/cries/zygarde_complete.bin" +Cry_Glimmet:: + .incbin "sound/direct_sound_samples/cries/glimmet.bin" .align 2 -Cry_HoopaUnbound:: - .incbin "sound/direct_sound_samples/cries/hoopa_unbound.bin" -.endif +Cry_Glimmora:: + .incbin "sound/direct_sound_samples/cries/glimmora.bin" +.endif @ P_FAMILY_GLIMMET -.if P_GEN_7_POKEMON == TRUE +.if P_FAMILY_GREAVARD == TRUE .align 2 -Cry_OricorioPomPom:: - .incbin "sound/direct_sound_samples/cries/oricorio_pom_pom.bin" +Cry_Greavard:: + .incbin "sound/direct_sound_samples/cries/greavard.bin" .align 2 -Cry_OricorioPau:: - .incbin "sound/direct_sound_samples/cries/oricorio_pau.bin" +Cry_Houndstone:: + .incbin "sound/direct_sound_samples/cries/houndstone.bin" +.endif @ P_FAMILY_GREAVARD +.if P_FAMILY_FLAMIGO == TRUE .align 2 -Cry_OricorioSensu:: - .incbin "sound/direct_sound_samples/cries/oricorio_sensu.bin" +Cry_Flamigo:: + .incbin "sound/direct_sound_samples/cries/flamigo.bin" +.endif @ P_FAMILY_FLAMIGO +.if P_FAMILY_CETODDLE == TRUE .align 2 -Cry_LycanrocMidnight:: - .incbin "sound/direct_sound_samples/cries/lycanroc_midnight.bin" +Cry_Cetoddle:: + .incbin "sound/direct_sound_samples/cries/cetoddle.bin" .align 2 -Cry_LycanrocDusk:: - .incbin "sound/direct_sound_samples/cries/lycanroc_dusk.bin" +Cry_Cetitan:: + .incbin "sound/direct_sound_samples/cries/cetitan.bin" +.endif @ P_FAMILY_CETODDLE +.if P_FAMILY_VELUZA == TRUE .align 2 -Cry_WishiwashiSchool:: - .incbin "sound/direct_sound_samples/cries/wishiwashi_school.bin" +Cry_Veluza:: + .incbin "sound/direct_sound_samples/cries/veluza.bin" +.endif @ P_FAMILY_VELUZA +.if P_FAMILY_DONDOZO == TRUE .align 2 -Cry_NecrozmaDuskMane:: - .incbin "sound/direct_sound_samples/cries/necrozma_dusk_mane.bin" +Cry_Dondozo:: + .incbin "sound/direct_sound_samples/cries/dondozo.bin" +.endif @ P_FAMILY_DONDOZO +.if P_FAMILY_TATSUGIRI == TRUE .align 2 -Cry_NecrozmaDawnWings:: - .incbin "sound/direct_sound_samples/cries/necrozma_dawn_wings.bin" +Cry_TatsugiriCurly:: + .incbin "sound/direct_sound_samples/cries/tatsugiri_curly.bin" .align 2 -Cry_NecrozmaUltra:: - .incbin "sound/direct_sound_samples/cries/necrozma_ultra.bin" -.endif +Cry_TatsugiriDroopy:: + .incbin "sound/direct_sound_samples/cries/tatsugiri_droopy.bin" -.if P_GEN_8_POKEMON == TRUE .align 2 -Cry_ToxtricityLowKey:: - .incbin "sound/direct_sound_samples/cries/toxtricity_low_key.bin" +Cry_TatsugiriStretchy:: + .incbin "sound/direct_sound_samples/cries/tatsugiri_stretchy.bin" +.endif @ P_FAMILY_TATSUGIRI +.if P_FAMILY_GREAT_TUSK == TRUE .align 2 -Cry_EiscueNoiceFace:: - .incbin "sound/direct_sound_samples/cries/eiscue_noice_face.bin" +Cry_GreatTusk:: + .incbin "sound/direct_sound_samples/cries/great_tusk.bin" +.endif @ P_FAMILY_GREAT_TUSK +.if P_FAMILY_SCREAM_TAIL == TRUE .align 2 -Cry_IndeedeeFemale:: - .incbin "sound/direct_sound_samples/cries/indeedee_female.bin" +Cry_ScreamTail:: + .incbin "sound/direct_sound_samples/cries/scream_tail.bin" +.endif @ P_FAMILY_SCREAM_TAIL +.if P_FAMILY_BRUTE_BONNET == TRUE .align 2 -Cry_MorpekoHangry:: - .incbin "sound/direct_sound_samples/cries/morpeko_hangry.bin" +Cry_BruteBonnet:: + .incbin "sound/direct_sound_samples/cries/brute_bonnet.bin" +.endif @ P_FAMILY_BRUTE_BONNET +.if P_FAMILY_FLUTTER_MANE == TRUE .align 2 -Cry_ZacianCrownedSword:: - .incbin "sound/direct_sound_samples/cries/zacian_crowned_sword.bin" +Cry_FlutterMane:: + .incbin "sound/direct_sound_samples/cries/flutter_mane.bin" +.endif @ P_FAMILY_FLUTTER_MANE +.if P_FAMILY_SLITHER_WING == TRUE .align 2 -Cry_ZamazentaCrownedShield:: - .incbin "sound/direct_sound_samples/cries/zamazenta_crowned_shield.bin" +Cry_SlitherWing:: + .incbin "sound/direct_sound_samples/cries/slither_wing.bin" +.endif @ P_FAMILY_SLITHER_WING +.if P_FAMILY_SANDY_SHOCKS == TRUE .align 2 -Cry_EternatusEternamax:: - .incbin "sound/direct_sound_samples/cries/eternatus_eternamax.bin" +Cry_SandyShocks:: + .incbin "sound/direct_sound_samples/cries/sandy_shocks.bin" +.endif @ P_FAMILY_SANDY_SHOCKS +.if P_FAMILY_IRON_TREADS == TRUE .align 2 -Cry_UrshifuRapidStrikeStyle:: - .incbin "sound/direct_sound_samples/cries/urshifu_rapid_strike_style.bin" +Cry_IronTreads:: + .incbin "sound/direct_sound_samples/cries/iron_treads.bin" +.endif @ P_FAMILY_IRON_TREADS +.if P_FAMILY_IRON_BUNDLE == TRUE .align 2 -Cry_CalyrexIceRider:: - .incbin "sound/direct_sound_samples/cries/calyrex_ice_rider.bin" +Cry_IronBundle:: + .incbin "sound/direct_sound_samples/cries/iron_bundle.bin" +.endif @ P_FAMILY_IRON_BUNDLE +.if P_FAMILY_IRON_HANDS == TRUE .align 2 -Cry_CalyrexShadowRider:: - .incbin "sound/direct_sound_samples/cries/calyrex_shadow_rider.bin" +Cry_IronHands:: + .incbin "sound/direct_sound_samples/cries/iron_hands.bin" +.endif @ P_FAMILY_IRON_HANDS + +.if P_FAMILY_IRON_JUGULIS == TRUE + .align 2 +Cry_IronJugulis:: + .incbin "sound/direct_sound_samples/cries/iron_jugulis.bin" +.endif @ P_FAMILY_IRON_JUGULIS + +.if P_FAMILY_IRON_MOTH == TRUE + .align 2 +Cry_IronMoth:: + .incbin "sound/direct_sound_samples/cries/iron_moth.bin" +.endif @ P_FAMILY_IRON_MOTH + +.if P_FAMILY_IRON_THORNS == TRUE + .align 2 +Cry_IronThorns:: + .incbin "sound/direct_sound_samples/cries/iron_thorns.bin" +.endif @ P_FAMILY_IRON_THORNS + +.if P_FAMILY_FRIGIBAX == TRUE + .align 2 +Cry_Frigibax:: + .incbin "sound/direct_sound_samples/cries/frigibax.bin" + + .align 2 +Cry_Arctibax:: + .incbin "sound/direct_sound_samples/cries/arctibax.bin" + + .align 2 +Cry_Baxcalibur:: + .incbin "sound/direct_sound_samples/cries/baxcalibur.bin" +.endif @ P_FAMILY_FRIGIBAX + +.if P_FAMILY_GIMMIGHOUL == TRUE + .align 2 +Cry_Gimmighoul:: + .incbin "sound/direct_sound_samples/cries/gimmighoul.bin" + + .align 2 +Cry_Gholdengo:: + .incbin "sound/direct_sound_samples/cries/gholdengo.bin" +.endif @ P_FAMILY_GIMMIGHOUL + +.if P_FAMILY_WO_CHIEN == TRUE + .align 2 +Cry_WoChien:: + .incbin "sound/direct_sound_samples/cries/wo_chien.bin" +.endif @ P_FAMILY_WO_CHIEN + +.if P_FAMILY_CHIEN_PAO == TRUE + .align 2 +Cry_ChienPao:: + .incbin "sound/direct_sound_samples/cries/chien_pao.bin" +.endif @ P_FAMILY_CHIEN_PAO + +.if P_FAMILY_TING_LU == TRUE + .align 2 +Cry_TingLu:: + .incbin "sound/direct_sound_samples/cries/ting_lu.bin" +.endif @ P_FAMILY_TING_LU -.endif +.if P_FAMILY_CHI_YU == TRUE + .align 2 +Cry_ChiYu:: + .incbin "sound/direct_sound_samples/cries/chi_yu.bin" +.endif @ P_FAMILY_CHI_YU + +.if P_FAMILY_ROARING_MOON == TRUE + .align 2 +Cry_RoaringMoon:: + .incbin "sound/direct_sound_samples/cries/roaring_moon.bin" +.endif @ P_FAMILY_ROARING_MOON + +.if P_FAMILY_IRON_VALIANT == TRUE + .align 2 +Cry_IronValiant:: + .incbin "sound/direct_sound_samples/cries/iron_valiant.bin" +.endif @ P_FAMILY_IRON_VALIANT + +.if P_FAMILY_KORAIDON == TRUE + .align 2 +Cry_Koraidon:: + .incbin "sound/direct_sound_samples/cries/koraidon.bin" +.endif @ P_FAMILY_KORAIDON + +.if P_FAMILY_MIRAIDON == TRUE + .align 2 +Cry_Miraidon:: + .incbin "sound/direct_sound_samples/cries/miraidon.bin" +.endif @ P_FAMILY_MIRAIDON + +.if P_FAMILY_WALKING_WAKE == TRUE + .align 2 +Cry_WalkingWake:: + .incbin "sound/direct_sound_samples/cries/walking_wake.bin" +.endif @ P_FAMILY_WALKING_WAKE + +.if P_FAMILY_IRON_LEAVES == TRUE + .align 2 +Cry_IronLeaves:: + .incbin "sound/direct_sound_samples/cries/iron_leaves.bin" +.endif @ P_FAMILY_IRON_LEAVES + +.if P_FAMILY_POLTCHAGEIST == TRUE + .align 2 +Cry_Poltchageist:: + .incbin "sound/direct_sound_samples/cries/poltchageist.bin" + + .align 2 +Cry_Sinistcha:: + .incbin "sound/direct_sound_samples/cries/sinistcha.bin" +.endif @ P_FAMILY_POLTCHAGEIST + +.if P_FAMILY_OKIDOGI == TRUE + .align 2 +Cry_Okidogi:: + .incbin "sound/direct_sound_samples/cries/okidogi.bin" +.endif @ P_FAMILY_OKIDOGI + +.if P_FAMILY_MUNKIDORI == TRUE + .align 2 +Cry_Munkidori:: + .incbin "sound/direct_sound_samples/cries/munkidori.bin" +.endif @ P_FAMILY_MUNKIDORI + +.if P_FAMILY_FEZANDIPITI == TRUE + .align 2 +Cry_Fezandipiti:: + .incbin "sound/direct_sound_samples/cries/fezandipiti.bin" +.endif @ P_FAMILY_FEZANDIPITI + +.if P_FAMILY_OGERPON == TRUE + .align 2 +Cry_Ogerpon:: + .incbin "sound/direct_sound_samples/cries/ogerpon.bin" +.endif @ P_FAMILY_OGERPON .align 2 DirectSoundWaveData_register_noise:: diff --git a/sound/direct_sound_samples/cries/abomasnow_mega.aif b/sound/direct_sound_samples/cries/abomasnow_mega.aif new file mode 100644 index 000000000000..11a0aec05927 Binary files /dev/null and b/sound/direct_sound_samples/cries/abomasnow_mega.aif differ diff --git a/sound/direct_sound_samples/cries/absol_mega.aif b/sound/direct_sound_samples/cries/absol_mega.aif new file mode 100644 index 000000000000..415b6132f61a Binary files /dev/null and b/sound/direct_sound_samples/cries/absol_mega.aif differ diff --git a/sound/direct_sound_samples/cries/accelgor.aif b/sound/direct_sound_samples/cries/accelgor.aif index 7fb5e4c96a55..39efe9c55e9f 100644 Binary files a/sound/direct_sound_samples/cries/accelgor.aif and b/sound/direct_sound_samples/cries/accelgor.aif differ diff --git a/sound/direct_sound_samples/cries/aerodactyl_mega.aif b/sound/direct_sound_samples/cries/aerodactyl_mega.aif new file mode 100644 index 000000000000..9aa15062ce4f Binary files /dev/null and b/sound/direct_sound_samples/cries/aerodactyl_mega.aif differ diff --git a/sound/direct_sound_samples/cries/aggron_mega.aif b/sound/direct_sound_samples/cries/aggron_mega.aif new file mode 100644 index 000000000000..0e1778509fa1 Binary files /dev/null and b/sound/direct_sound_samples/cries/aggron_mega.aif differ diff --git a/sound/direct_sound_samples/cries/alakazam_mega.aif b/sound/direct_sound_samples/cries/alakazam_mega.aif new file mode 100644 index 000000000000..be09f22777fa Binary files /dev/null and b/sound/direct_sound_samples/cries/alakazam_mega.aif differ diff --git a/sound/direct_sound_samples/cries/alomomola.aif b/sound/direct_sound_samples/cries/alomomola.aif index a12e3bc2355e..8f9ee13a3b58 100644 Binary files a/sound/direct_sound_samples/cries/alomomola.aif and b/sound/direct_sound_samples/cries/alomomola.aif differ diff --git a/sound/direct_sound_samples/cries/altaria_mega.aif b/sound/direct_sound_samples/cries/altaria_mega.aif new file mode 100644 index 000000000000..bf2a7daec235 Binary files /dev/null and b/sound/direct_sound_samples/cries/altaria_mega.aif differ diff --git a/sound/direct_sound_samples/cries/amoonguss.aif b/sound/direct_sound_samples/cries/amoonguss.aif index fcdbea91eb36..ddc8c6114b4a 100644 Binary files a/sound/direct_sound_samples/cries/amoonguss.aif and b/sound/direct_sound_samples/cries/amoonguss.aif differ diff --git a/sound/direct_sound_samples/cries/ampharos_mega.aif b/sound/direct_sound_samples/cries/ampharos_mega.aif new file mode 100644 index 000000000000..e24e62866776 Binary files /dev/null and b/sound/direct_sound_samples/cries/ampharos_mega.aif differ diff --git a/sound/direct_sound_samples/cries/annihilape.aif b/sound/direct_sound_samples/cries/annihilape.aif new file mode 100644 index 000000000000..889c5219296b Binary files /dev/null and b/sound/direct_sound_samples/cries/annihilape.aif differ diff --git a/sound/direct_sound_samples/cries/applin.aif b/sound/direct_sound_samples/cries/applin.aif index f7461b1b601e..828eeaeafada 100644 Binary files a/sound/direct_sound_samples/cries/applin.aif and b/sound/direct_sound_samples/cries/applin.aif differ diff --git a/sound/direct_sound_samples/cries/araquanid.aif b/sound/direct_sound_samples/cries/araquanid.aif index ff138d5ce755..0efccf6a4e8d 100644 Binary files a/sound/direct_sound_samples/cries/araquanid.aif and b/sound/direct_sound_samples/cries/araquanid.aif differ diff --git a/sound/direct_sound_samples/cries/arboliva.aif b/sound/direct_sound_samples/cries/arboliva.aif new file mode 100644 index 000000000000..1b73da2ec97c Binary files /dev/null and b/sound/direct_sound_samples/cries/arboliva.aif differ diff --git a/sound/direct_sound_samples/cries/archen.aif b/sound/direct_sound_samples/cries/archen.aif index 2f008dcf75eb..fd5b7729b2a1 100644 Binary files a/sound/direct_sound_samples/cries/archen.aif and b/sound/direct_sound_samples/cries/archen.aif differ diff --git a/sound/direct_sound_samples/cries/archeops.aif b/sound/direct_sound_samples/cries/archeops.aif index f721fe2d7166..7b65583da9b3 100644 Binary files a/sound/direct_sound_samples/cries/archeops.aif and b/sound/direct_sound_samples/cries/archeops.aif differ diff --git a/sound/direct_sound_samples/cries/arctibax.aif b/sound/direct_sound_samples/cries/arctibax.aif new file mode 100644 index 000000000000..e0b31b19aba6 Binary files /dev/null and b/sound/direct_sound_samples/cries/arctibax.aif differ diff --git a/sound/direct_sound_samples/cries/arctovish.aif b/sound/direct_sound_samples/cries/arctovish.aif index 2f5a78bab8d0..02d83dbb553e 100644 Binary files a/sound/direct_sound_samples/cries/arctovish.aif and b/sound/direct_sound_samples/cries/arctovish.aif differ diff --git a/sound/direct_sound_samples/cries/armarouge.aif b/sound/direct_sound_samples/cries/armarouge.aif new file mode 100644 index 000000000000..578c73392b41 Binary files /dev/null and b/sound/direct_sound_samples/cries/armarouge.aif differ diff --git a/sound/direct_sound_samples/cries/arrokuda.aif b/sound/direct_sound_samples/cries/arrokuda.aif index 7cb9470b3f40..863b6d2fb52b 100644 Binary files a/sound/direct_sound_samples/cries/arrokuda.aif and b/sound/direct_sound_samples/cries/arrokuda.aif differ diff --git a/sound/direct_sound_samples/cries/audino.aif b/sound/direct_sound_samples/cries/audino.aif index 278fc4ca12c0..7430d0b6801b 100644 Binary files a/sound/direct_sound_samples/cries/audino.aif and b/sound/direct_sound_samples/cries/audino.aif differ diff --git a/sound/direct_sound_samples/cries/audino_mega.aif b/sound/direct_sound_samples/cries/audino_mega.aif new file mode 100644 index 000000000000..04d815001e76 Binary files /dev/null and b/sound/direct_sound_samples/cries/audino_mega.aif differ diff --git a/sound/direct_sound_samples/cries/axew.aif b/sound/direct_sound_samples/cries/axew.aif index 1fbaa3adac72..1dbe950c3839 100644 Binary files a/sound/direct_sound_samples/cries/axew.aif and b/sound/direct_sound_samples/cries/axew.aif differ diff --git a/sound/direct_sound_samples/cries/banette_mega.aif b/sound/direct_sound_samples/cries/banette_mega.aif new file mode 100644 index 000000000000..974f74c31e97 Binary files /dev/null and b/sound/direct_sound_samples/cries/banette_mega.aif differ diff --git a/sound/direct_sound_samples/cries/basculegion.aif b/sound/direct_sound_samples/cries/basculegion.aif index a1405ee8d737..80551d79043f 100644 Binary files a/sound/direct_sound_samples/cries/basculegion.aif and b/sound/direct_sound_samples/cries/basculegion.aif differ diff --git a/sound/direct_sound_samples/cries/basculin.aif b/sound/direct_sound_samples/cries/basculin.aif index afeef551ee10..cb2184d82d76 100644 Binary files a/sound/direct_sound_samples/cries/basculin.aif and b/sound/direct_sound_samples/cries/basculin.aif differ diff --git a/sound/direct_sound_samples/cries/baxcalibur.aif b/sound/direct_sound_samples/cries/baxcalibur.aif new file mode 100644 index 000000000000..fd8f5eff6d62 Binary files /dev/null and b/sound/direct_sound_samples/cries/baxcalibur.aif differ diff --git a/sound/direct_sound_samples/cries/beartic.aif b/sound/direct_sound_samples/cries/beartic.aif index 2b5fd99af602..45d1e8bc5ee3 100644 Binary files a/sound/direct_sound_samples/cries/beartic.aif and b/sound/direct_sound_samples/cries/beartic.aif differ diff --git a/sound/direct_sound_samples/cries/beedrill_mega.aif b/sound/direct_sound_samples/cries/beedrill_mega.aif new file mode 100644 index 000000000000..8072fef185be Binary files /dev/null and b/sound/direct_sound_samples/cries/beedrill_mega.aif differ diff --git a/sound/direct_sound_samples/cries/beheeyem.aif b/sound/direct_sound_samples/cries/beheeyem.aif index c5bf9839ff8f..3ddec74ab6a7 100644 Binary files a/sound/direct_sound_samples/cries/beheeyem.aif and b/sound/direct_sound_samples/cries/beheeyem.aif differ diff --git a/sound/direct_sound_samples/cries/bellibolt.aif b/sound/direct_sound_samples/cries/bellibolt.aif new file mode 100644 index 000000000000..b7fc6d0175c6 Binary files /dev/null and b/sound/direct_sound_samples/cries/bellibolt.aif differ diff --git a/sound/direct_sound_samples/cries/bisharp.aif b/sound/direct_sound_samples/cries/bisharp.aif index ac3bf36d3312..edbcc7b296e7 100644 Binary files a/sound/direct_sound_samples/cries/bisharp.aif and b/sound/direct_sound_samples/cries/bisharp.aif differ diff --git a/sound/direct_sound_samples/cries/blastoise_mega.aif b/sound/direct_sound_samples/cries/blastoise_mega.aif new file mode 100644 index 000000000000..a25f49c30ce7 Binary files /dev/null and b/sound/direct_sound_samples/cries/blastoise_mega.aif differ diff --git a/sound/direct_sound_samples/cries/blaziken_mega.aif b/sound/direct_sound_samples/cries/blaziken_mega.aif new file mode 100644 index 000000000000..ef5f08153ed2 Binary files /dev/null and b/sound/direct_sound_samples/cries/blaziken_mega.aif differ diff --git a/sound/direct_sound_samples/cries/blitzle.aif b/sound/direct_sound_samples/cries/blitzle.aif index c7db171eb1f9..40e4672af7cc 100644 Binary files a/sound/direct_sound_samples/cries/blitzle.aif and b/sound/direct_sound_samples/cries/blitzle.aif differ diff --git a/sound/direct_sound_samples/cries/boldore.aif b/sound/direct_sound_samples/cries/boldore.aif index e275af209787..436cb1219f69 100644 Binary files a/sound/direct_sound_samples/cries/boldore.aif and b/sound/direct_sound_samples/cries/boldore.aif differ diff --git a/sound/direct_sound_samples/cries/bombirdier.aif b/sound/direct_sound_samples/cries/bombirdier.aif new file mode 100644 index 000000000000..27f334acbb97 Binary files /dev/null and b/sound/direct_sound_samples/cries/bombirdier.aif differ diff --git a/sound/direct_sound_samples/cries/bouffalant.aif b/sound/direct_sound_samples/cries/bouffalant.aif index b4dc574ce40b..fbca85e639f4 100644 Binary files a/sound/direct_sound_samples/cries/bouffalant.aif and b/sound/direct_sound_samples/cries/bouffalant.aif differ diff --git a/sound/direct_sound_samples/cries/brambleghast.aif b/sound/direct_sound_samples/cries/brambleghast.aif new file mode 100644 index 000000000000..404e7d1dc614 Binary files /dev/null and b/sound/direct_sound_samples/cries/brambleghast.aif differ diff --git a/sound/direct_sound_samples/cries/bramblin.aif b/sound/direct_sound_samples/cries/bramblin.aif new file mode 100644 index 000000000000..0c8a4a5dab92 Binary files /dev/null and b/sound/direct_sound_samples/cries/bramblin.aif differ diff --git a/sound/direct_sound_samples/cries/braviary.aif b/sound/direct_sound_samples/cries/braviary.aif index d352294484de..8c20dd2b73e6 100644 Binary files a/sound/direct_sound_samples/cries/braviary.aif and b/sound/direct_sound_samples/cries/braviary.aif differ diff --git a/sound/direct_sound_samples/cries/brute_bonnet.aif b/sound/direct_sound_samples/cries/brute_bonnet.aif new file mode 100644 index 000000000000..3a6369e8be7a Binary files /dev/null and b/sound/direct_sound_samples/cries/brute_bonnet.aif differ diff --git a/sound/direct_sound_samples/cries/calyrex_ice_rider.aif b/sound/direct_sound_samples/cries/calyrex_ice_rider.aif index e911a2fe1500..2a278279084b 100644 Binary files a/sound/direct_sound_samples/cries/calyrex_ice_rider.aif and b/sound/direct_sound_samples/cries/calyrex_ice_rider.aif differ diff --git a/sound/direct_sound_samples/cries/calyrex_shadow_rider.aif b/sound/direct_sound_samples/cries/calyrex_shadow_rider.aif index 96b7b7266be7..07cc384332f9 100644 Binary files a/sound/direct_sound_samples/cries/calyrex_shadow_rider.aif and b/sound/direct_sound_samples/cries/calyrex_shadow_rider.aif differ diff --git a/sound/direct_sound_samples/cries/camerupt_mega.aif b/sound/direct_sound_samples/cries/camerupt_mega.aif new file mode 100644 index 000000000000..0c7966b8ea6e Binary files /dev/null and b/sound/direct_sound_samples/cries/camerupt_mega.aif differ diff --git a/sound/direct_sound_samples/cries/capsakid.aif b/sound/direct_sound_samples/cries/capsakid.aif new file mode 100644 index 000000000000..7a906ead56f9 Binary files /dev/null and b/sound/direct_sound_samples/cries/capsakid.aif differ diff --git a/sound/direct_sound_samples/cries/carracosta.aif b/sound/direct_sound_samples/cries/carracosta.aif index 8f676d83e331..dc379b5fab25 100644 Binary files a/sound/direct_sound_samples/cries/carracosta.aif and b/sound/direct_sound_samples/cries/carracosta.aif differ diff --git a/sound/direct_sound_samples/cries/ceruledge.aif b/sound/direct_sound_samples/cries/ceruledge.aif new file mode 100644 index 000000000000..86048249dd20 Binary files /dev/null and b/sound/direct_sound_samples/cries/ceruledge.aif differ diff --git a/sound/direct_sound_samples/cries/cetitan.aif b/sound/direct_sound_samples/cries/cetitan.aif new file mode 100644 index 000000000000..45302ff84437 Binary files /dev/null and b/sound/direct_sound_samples/cries/cetitan.aif differ diff --git a/sound/direct_sound_samples/cries/cetoddle.aif b/sound/direct_sound_samples/cries/cetoddle.aif new file mode 100644 index 000000000000..f85f3d201f63 Binary files /dev/null and b/sound/direct_sound_samples/cries/cetoddle.aif differ diff --git a/sound/direct_sound_samples/cries/charcadet.aif b/sound/direct_sound_samples/cries/charcadet.aif new file mode 100644 index 000000000000..60f5512ca6cd Binary files /dev/null and b/sound/direct_sound_samples/cries/charcadet.aif differ diff --git a/sound/direct_sound_samples/cries/charizard_mega_x.aif b/sound/direct_sound_samples/cries/charizard_mega_x.aif new file mode 100644 index 000000000000..5f88d123554e Binary files /dev/null and b/sound/direct_sound_samples/cries/charizard_mega_x.aif differ diff --git a/sound/direct_sound_samples/cries/charizard_mega_y.aif b/sound/direct_sound_samples/cries/charizard_mega_y.aif new file mode 100644 index 000000000000..e04d518ee1ef Binary files /dev/null and b/sound/direct_sound_samples/cries/charizard_mega_y.aif differ diff --git a/sound/direct_sound_samples/cries/chi_yu.aif b/sound/direct_sound_samples/cries/chi_yu.aif new file mode 100644 index 000000000000..55ca0598b712 Binary files /dev/null and b/sound/direct_sound_samples/cries/chi_yu.aif differ diff --git a/sound/direct_sound_samples/cries/chien_pao.aif b/sound/direct_sound_samples/cries/chien_pao.aif new file mode 100644 index 000000000000..1e3d57388187 Binary files /dev/null and b/sound/direct_sound_samples/cries/chien_pao.aif differ diff --git a/sound/direct_sound_samples/cries/cinccino.aif b/sound/direct_sound_samples/cries/cinccino.aif index 005771f78a42..b4df2ea07673 100644 Binary files a/sound/direct_sound_samples/cries/cinccino.aif and b/sound/direct_sound_samples/cries/cinccino.aif differ diff --git a/sound/direct_sound_samples/cries/clobbopus.aif b/sound/direct_sound_samples/cries/clobbopus.aif index 363dba933c83..886a5208be83 100644 Binary files a/sound/direct_sound_samples/cries/clobbopus.aif and b/sound/direct_sound_samples/cries/clobbopus.aif differ diff --git a/sound/direct_sound_samples/cries/clodsire.aif b/sound/direct_sound_samples/cries/clodsire.aif new file mode 100644 index 000000000000..bdbadd64fbaa Binary files /dev/null and b/sound/direct_sound_samples/cries/clodsire.aif differ diff --git a/sound/direct_sound_samples/cries/cofagrigus.aif b/sound/direct_sound_samples/cries/cofagrigus.aif index b971f50bb7d0..5c5c426e3713 100644 Binary files a/sound/direct_sound_samples/cries/cofagrigus.aif and b/sound/direct_sound_samples/cries/cofagrigus.aif differ diff --git a/sound/direct_sound_samples/cries/conkeldurr.aif b/sound/direct_sound_samples/cries/conkeldurr.aif index 8fc66c6b67a2..96e991d49393 100644 Binary files a/sound/direct_sound_samples/cries/conkeldurr.aif and b/sound/direct_sound_samples/cries/conkeldurr.aif differ diff --git a/sound/direct_sound_samples/cries/copperajah.aif b/sound/direct_sound_samples/cries/copperajah.aif index a705d9acd634..97484e695b24 100644 Binary files a/sound/direct_sound_samples/cries/copperajah.aif and b/sound/direct_sound_samples/cries/copperajah.aif differ diff --git a/sound/direct_sound_samples/cries/corviknight.aif b/sound/direct_sound_samples/cries/corviknight.aif index 93fd03f87424..8a7e200da3fd 100644 Binary files a/sound/direct_sound_samples/cries/corviknight.aif and b/sound/direct_sound_samples/cries/corviknight.aif differ diff --git a/sound/direct_sound_samples/cries/corvisquire.aif b/sound/direct_sound_samples/cries/corvisquire.aif index 5e8954e3f9a4..3c786aca4c27 100644 Binary files a/sound/direct_sound_samples/cries/corvisquire.aif and b/sound/direct_sound_samples/cries/corvisquire.aif differ diff --git a/sound/direct_sound_samples/cries/crocalor.aif b/sound/direct_sound_samples/cries/crocalor.aif new file mode 100644 index 000000000000..897aaa860d83 Binary files /dev/null and b/sound/direct_sound_samples/cries/crocalor.aif differ diff --git a/sound/direct_sound_samples/cries/crustle.aif b/sound/direct_sound_samples/cries/crustle.aif index d4a383646952..92cc8ec07ba0 100644 Binary files a/sound/direct_sound_samples/cries/crustle.aif and b/sound/direct_sound_samples/cries/crustle.aif differ diff --git a/sound/direct_sound_samples/cries/cryogonal.aif b/sound/direct_sound_samples/cries/cryogonal.aif index 4e4ead6c17b2..1f8255f7a0df 100644 Binary files a/sound/direct_sound_samples/cries/cryogonal.aif and b/sound/direct_sound_samples/cries/cryogonal.aif differ diff --git a/sound/direct_sound_samples/cries/cubchoo.aif b/sound/direct_sound_samples/cries/cubchoo.aif index 6f739fdd942b..a4c7f2cf8ed7 100644 Binary files a/sound/direct_sound_samples/cries/cubchoo.aif and b/sound/direct_sound_samples/cries/cubchoo.aif differ diff --git a/sound/direct_sound_samples/cries/cyclizar.aif b/sound/direct_sound_samples/cries/cyclizar.aif new file mode 100644 index 000000000000..1d145154ec4d Binary files /dev/null and b/sound/direct_sound_samples/cries/cyclizar.aif differ diff --git a/sound/direct_sound_samples/cries/dachsbun.aif b/sound/direct_sound_samples/cries/dachsbun.aif new file mode 100644 index 000000000000..492020a716be Binary files /dev/null and b/sound/direct_sound_samples/cries/dachsbun.aif differ diff --git a/sound/direct_sound_samples/cries/darmanitan.aif b/sound/direct_sound_samples/cries/darmanitan.aif index 97efdf8b97b6..9ea80bd5df3a 100644 Binary files a/sound/direct_sound_samples/cries/darmanitan.aif and b/sound/direct_sound_samples/cries/darmanitan.aif differ diff --git a/sound/direct_sound_samples/cries/darumaka.aif b/sound/direct_sound_samples/cries/darumaka.aif index 863f3deb94dd..9c58dda4114c 100644 Binary files a/sound/direct_sound_samples/cries/darumaka.aif and b/sound/direct_sound_samples/cries/darumaka.aif differ diff --git a/sound/direct_sound_samples/cries/deerling.aif b/sound/direct_sound_samples/cries/deerling.aif index 09ace4dc7371..50cf0bfc502c 100644 Binary files a/sound/direct_sound_samples/cries/deerling.aif and b/sound/direct_sound_samples/cries/deerling.aif differ diff --git a/sound/direct_sound_samples/cries/deino.aif b/sound/direct_sound_samples/cries/deino.aif index bf3987c296b4..583747a615d4 100644 Binary files a/sound/direct_sound_samples/cries/deino.aif and b/sound/direct_sound_samples/cries/deino.aif differ diff --git a/sound/direct_sound_samples/cries/dewott.aif b/sound/direct_sound_samples/cries/dewott.aif index 4f45de41a033..3f7724df600f 100644 Binary files a/sound/direct_sound_samples/cries/dewott.aif and b/sound/direct_sound_samples/cries/dewott.aif differ diff --git a/sound/direct_sound_samples/cries/diancie_mega.aif b/sound/direct_sound_samples/cries/diancie_mega.aif new file mode 100644 index 000000000000..be6268315395 Binary files /dev/null and b/sound/direct_sound_samples/cries/diancie_mega.aif differ diff --git a/sound/direct_sound_samples/cries/dipplin.aif b/sound/direct_sound_samples/cries/dipplin.aif new file mode 100644 index 000000000000..61df2de5236d Binary files /dev/null and b/sound/direct_sound_samples/cries/dipplin.aif differ diff --git a/sound/direct_sound_samples/cries/dolliv.aif b/sound/direct_sound_samples/cries/dolliv.aif new file mode 100644 index 000000000000..d0aae0c9ecf9 Binary files /dev/null and b/sound/direct_sound_samples/cries/dolliv.aif differ diff --git a/sound/direct_sound_samples/cries/dondozo.aif b/sound/direct_sound_samples/cries/dondozo.aif new file mode 100644 index 000000000000..eddac5cc27f0 Binary files /dev/null and b/sound/direct_sound_samples/cries/dondozo.aif differ diff --git a/sound/direct_sound_samples/cries/dragapult.aif b/sound/direct_sound_samples/cries/dragapult.aif index 349500041d9c..7e34c9bb1be4 100644 Binary files a/sound/direct_sound_samples/cries/dragapult.aif and b/sound/direct_sound_samples/cries/dragapult.aif differ diff --git a/sound/direct_sound_samples/cries/drakloak.aif b/sound/direct_sound_samples/cries/drakloak.aif index b90afafdaf46..3b19d4768735 100644 Binary files a/sound/direct_sound_samples/cries/drakloak.aif and b/sound/direct_sound_samples/cries/drakloak.aif differ diff --git a/sound/direct_sound_samples/cries/dreepy.aif b/sound/direct_sound_samples/cries/dreepy.aif index 29c78e8d5420..b79126b119f1 100644 Binary files a/sound/direct_sound_samples/cries/dreepy.aif and b/sound/direct_sound_samples/cries/dreepy.aif differ diff --git a/sound/direct_sound_samples/cries/drilbur.aif b/sound/direct_sound_samples/cries/drilbur.aif index 8ec6e9095dcb..25314b0aecb7 100644 Binary files a/sound/direct_sound_samples/cries/drilbur.aif and b/sound/direct_sound_samples/cries/drilbur.aif differ diff --git a/sound/direct_sound_samples/cries/druddigon.aif b/sound/direct_sound_samples/cries/druddigon.aif index 52c25e3049ff..7467ee40b0aa 100644 Binary files a/sound/direct_sound_samples/cries/druddigon.aif and b/sound/direct_sound_samples/cries/druddigon.aif differ diff --git a/sound/direct_sound_samples/cries/ducklett.aif b/sound/direct_sound_samples/cries/ducklett.aif index d556d55684ed..837566a018df 100644 Binary files a/sound/direct_sound_samples/cries/ducklett.aif and b/sound/direct_sound_samples/cries/ducklett.aif differ diff --git a/sound/direct_sound_samples/cries/dudunsparce.aif b/sound/direct_sound_samples/cries/dudunsparce.aif new file mode 100644 index 000000000000..1adc2bb7c989 Binary files /dev/null and b/sound/direct_sound_samples/cries/dudunsparce.aif differ diff --git a/sound/direct_sound_samples/cries/duosion.aif b/sound/direct_sound_samples/cries/duosion.aif index 3003a3a00c16..7f931b961c9a 100644 Binary files a/sound/direct_sound_samples/cries/duosion.aif and b/sound/direct_sound_samples/cries/duosion.aif differ diff --git a/sound/direct_sound_samples/cries/durant.aif b/sound/direct_sound_samples/cries/durant.aif index d3e32043b810..c60490fd6b14 100644 Binary files a/sound/direct_sound_samples/cries/durant.aif and b/sound/direct_sound_samples/cries/durant.aif differ diff --git a/sound/direct_sound_samples/cries/dwebble.aif b/sound/direct_sound_samples/cries/dwebble.aif index 06677232410a..687cf87450b6 100644 Binary files a/sound/direct_sound_samples/cries/dwebble.aif and b/sound/direct_sound_samples/cries/dwebble.aif differ diff --git a/sound/direct_sound_samples/cries/eelektrik.aif b/sound/direct_sound_samples/cries/eelektrik.aif index 7e73ba7d1dc7..4739bd80dbe6 100644 Binary files a/sound/direct_sound_samples/cries/eelektrik.aif and b/sound/direct_sound_samples/cries/eelektrik.aif differ diff --git a/sound/direct_sound_samples/cries/eelektross.aif b/sound/direct_sound_samples/cries/eelektross.aif index efd8a146ffe5..b8e362b75471 100644 Binary files a/sound/direct_sound_samples/cries/eelektross.aif and b/sound/direct_sound_samples/cries/eelektross.aif differ diff --git a/sound/direct_sound_samples/cries/eiscue.aif b/sound/direct_sound_samples/cries/eiscue_ice_face.aif similarity index 100% rename from sound/direct_sound_samples/cries/eiscue.aif rename to sound/direct_sound_samples/cries/eiscue_ice_face.aif diff --git a/sound/direct_sound_samples/cries/eldegoss.aif b/sound/direct_sound_samples/cries/eldegoss.aif index 9725035f7111..6c7bbe5129d7 100644 Binary files a/sound/direct_sound_samples/cries/eldegoss.aif and b/sound/direct_sound_samples/cries/eldegoss.aif differ diff --git a/sound/direct_sound_samples/cries/emboar.aif b/sound/direct_sound_samples/cries/emboar.aif index 68b4bd7efc4c..4cdd5e0afc56 100644 Binary files a/sound/direct_sound_samples/cries/emboar.aif and b/sound/direct_sound_samples/cries/emboar.aif differ diff --git a/sound/direct_sound_samples/cries/emolga.aif b/sound/direct_sound_samples/cries/emolga.aif index 25aba1ea8689..c32a7274513a 100644 Binary files a/sound/direct_sound_samples/cries/emolga.aif and b/sound/direct_sound_samples/cries/emolga.aif differ diff --git a/sound/direct_sound_samples/cries/enamorus.aif b/sound/direct_sound_samples/cries/enamorus.aif deleted file mode 100644 index 40957d49da40..000000000000 Binary files a/sound/direct_sound_samples/cries/enamorus.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/enamorus_incarnate.aif b/sound/direct_sound_samples/cries/enamorus_incarnate.aif new file mode 100644 index 000000000000..71068d9b7b52 Binary files /dev/null and b/sound/direct_sound_samples/cries/enamorus_incarnate.aif differ diff --git a/sound/direct_sound_samples/cries/enamorus_therian.aif b/sound/direct_sound_samples/cries/enamorus_therian.aif index 416f59abb176..4286a98b69bd 100644 Binary files a/sound/direct_sound_samples/cries/enamorus_therian.aif and b/sound/direct_sound_samples/cries/enamorus_therian.aif differ diff --git a/sound/direct_sound_samples/cries/escavalier.aif b/sound/direct_sound_samples/cries/escavalier.aif index 55ee1ef58370..513f53d41563 100644 Binary files a/sound/direct_sound_samples/cries/escavalier.aif and b/sound/direct_sound_samples/cries/escavalier.aif differ diff --git a/sound/direct_sound_samples/cries/espathra.aif b/sound/direct_sound_samples/cries/espathra.aif new file mode 100644 index 000000000000..5a196762b134 Binary files /dev/null and b/sound/direct_sound_samples/cries/espathra.aif differ diff --git a/sound/direct_sound_samples/cries/eternatus.aif b/sound/direct_sound_samples/cries/eternatus.aif index 8bd6c5b26219..1dede8fdc4a8 100644 Binary files a/sound/direct_sound_samples/cries/eternatus.aif and b/sound/direct_sound_samples/cries/eternatus.aif differ diff --git a/sound/direct_sound_samples/cries/eternatus_eternamax.aif b/sound/direct_sound_samples/cries/eternatus_eternamax.aif index c4c5bc86d3c6..7c6b292d4dce 100644 Binary files a/sound/direct_sound_samples/cries/eternatus_eternamax.aif and b/sound/direct_sound_samples/cries/eternatus_eternamax.aif differ diff --git a/sound/direct_sound_samples/cries/excadrill.aif b/sound/direct_sound_samples/cries/excadrill.aif index 7709bee7d768..8b2ef0869e8e 100644 Binary files a/sound/direct_sound_samples/cries/excadrill.aif and b/sound/direct_sound_samples/cries/excadrill.aif differ diff --git a/sound/direct_sound_samples/cries/falinks.aif b/sound/direct_sound_samples/cries/falinks.aif index 1fa3e973c75c..6fa1af8df422 100644 Binary files a/sound/direct_sound_samples/cries/falinks.aif and b/sound/direct_sound_samples/cries/falinks.aif differ diff --git a/sound/direct_sound_samples/cries/farigiraf.aif b/sound/direct_sound_samples/cries/farigiraf.aif new file mode 100644 index 000000000000..573520315de0 Binary files /dev/null and b/sound/direct_sound_samples/cries/farigiraf.aif differ diff --git a/sound/direct_sound_samples/cries/ferroseed.aif b/sound/direct_sound_samples/cries/ferroseed.aif index 4073bf6ffbfa..24856cdd24ef 100644 Binary files a/sound/direct_sound_samples/cries/ferroseed.aif and b/sound/direct_sound_samples/cries/ferroseed.aif differ diff --git a/sound/direct_sound_samples/cries/ferrothorn.aif b/sound/direct_sound_samples/cries/ferrothorn.aif index e041923fc704..5e2d7a25794a 100644 Binary files a/sound/direct_sound_samples/cries/ferrothorn.aif and b/sound/direct_sound_samples/cries/ferrothorn.aif differ diff --git a/sound/direct_sound_samples/cries/fezandipiti.aif b/sound/direct_sound_samples/cries/fezandipiti.aif new file mode 100644 index 000000000000..d24a32b9c7d2 Binary files /dev/null and b/sound/direct_sound_samples/cries/fezandipiti.aif differ diff --git a/sound/direct_sound_samples/cries/fidough.aif b/sound/direct_sound_samples/cries/fidough.aif new file mode 100644 index 000000000000..44609a2dd7a6 Binary files /dev/null and b/sound/direct_sound_samples/cries/fidough.aif differ diff --git a/sound/direct_sound_samples/cries/finizen.aif b/sound/direct_sound_samples/cries/finizen.aif new file mode 100644 index 000000000000..07af24f69611 Binary files /dev/null and b/sound/direct_sound_samples/cries/finizen.aif differ diff --git a/sound/direct_sound_samples/cries/flamigo.aif b/sound/direct_sound_samples/cries/flamigo.aif new file mode 100644 index 000000000000..bed56a7f3131 Binary files /dev/null and b/sound/direct_sound_samples/cries/flamigo.aif differ diff --git a/sound/direct_sound_samples/cries/flittle.aif b/sound/direct_sound_samples/cries/flittle.aif new file mode 100644 index 000000000000..d81016a64def Binary files /dev/null and b/sound/direct_sound_samples/cries/flittle.aif differ diff --git a/sound/direct_sound_samples/cries/floragato.aif b/sound/direct_sound_samples/cries/floragato.aif new file mode 100644 index 000000000000..4fc883242374 Binary files /dev/null and b/sound/direct_sound_samples/cries/floragato.aif differ diff --git a/sound/direct_sound_samples/cries/flutter_mane.aif b/sound/direct_sound_samples/cries/flutter_mane.aif new file mode 100644 index 000000000000..ad4c636fe7f5 Binary files /dev/null and b/sound/direct_sound_samples/cries/flutter_mane.aif differ diff --git a/sound/direct_sound_samples/cries/fraxure.aif b/sound/direct_sound_samples/cries/fraxure.aif index 43fcf4221755..25464a1ff70a 100644 Binary files a/sound/direct_sound_samples/cries/fraxure.aif and b/sound/direct_sound_samples/cries/fraxure.aif differ diff --git a/sound/direct_sound_samples/cries/frigibax.aif b/sound/direct_sound_samples/cries/frigibax.aif new file mode 100644 index 000000000000..10c5b819aaf0 Binary files /dev/null and b/sound/direct_sound_samples/cries/frigibax.aif differ diff --git a/sound/direct_sound_samples/cries/frillish.aif b/sound/direct_sound_samples/cries/frillish.aif index b63a21f47828..c59a0a542fe9 100644 Binary files a/sound/direct_sound_samples/cries/frillish.aif and b/sound/direct_sound_samples/cries/frillish.aif differ diff --git a/sound/direct_sound_samples/cries/frosmoth.aif b/sound/direct_sound_samples/cries/frosmoth.aif index b38071ab8a2a..324034d15eef 100644 Binary files a/sound/direct_sound_samples/cries/frosmoth.aif and b/sound/direct_sound_samples/cries/frosmoth.aif differ diff --git a/sound/direct_sound_samples/cries/fuecoco.aif b/sound/direct_sound_samples/cries/fuecoco.aif new file mode 100644 index 000000000000..4c0d7eb07a5f Binary files /dev/null and b/sound/direct_sound_samples/cries/fuecoco.aif differ diff --git a/sound/direct_sound_samples/cries/gallade_mega.aif b/sound/direct_sound_samples/cries/gallade_mega.aif new file mode 100644 index 000000000000..0af522f68f94 Binary files /dev/null and b/sound/direct_sound_samples/cries/gallade_mega.aif differ diff --git a/sound/direct_sound_samples/cries/galvantula.aif b/sound/direct_sound_samples/cries/galvantula.aif index f2989d840d02..d6823775657a 100644 Binary files a/sound/direct_sound_samples/cries/galvantula.aif and b/sound/direct_sound_samples/cries/galvantula.aif differ diff --git a/sound/direct_sound_samples/cries/garbodor.aif b/sound/direct_sound_samples/cries/garbodor.aif index 28f95184a62e..ed906101f30f 100644 Binary files a/sound/direct_sound_samples/cries/garbodor.aif and b/sound/direct_sound_samples/cries/garbodor.aif differ diff --git a/sound/direct_sound_samples/cries/garchomp_mega.aif b/sound/direct_sound_samples/cries/garchomp_mega.aif new file mode 100644 index 000000000000..65637139f224 Binary files /dev/null and b/sound/direct_sound_samples/cries/garchomp_mega.aif differ diff --git a/sound/direct_sound_samples/cries/gardevoir_mega.aif b/sound/direct_sound_samples/cries/gardevoir_mega.aif new file mode 100644 index 000000000000..71ba65d45544 Binary files /dev/null and b/sound/direct_sound_samples/cries/gardevoir_mega.aif differ diff --git a/sound/direct_sound_samples/cries/garganacl.aif b/sound/direct_sound_samples/cries/garganacl.aif new file mode 100644 index 000000000000..3c530cea53ac Binary files /dev/null and b/sound/direct_sound_samples/cries/garganacl.aif differ diff --git a/sound/direct_sound_samples/cries/genesect.aif b/sound/direct_sound_samples/cries/genesect.aif index 4c0e306be7f4..e088634591c1 100644 Binary files a/sound/direct_sound_samples/cries/genesect.aif and b/sound/direct_sound_samples/cries/genesect.aif differ diff --git a/sound/direct_sound_samples/cries/gengar_mega.aif b/sound/direct_sound_samples/cries/gengar_mega.aif new file mode 100644 index 000000000000..7967d6dcfb8c Binary files /dev/null and b/sound/direct_sound_samples/cries/gengar_mega.aif differ diff --git a/sound/direct_sound_samples/cries/gholdengo.aif b/sound/direct_sound_samples/cries/gholdengo.aif new file mode 100644 index 000000000000..4cef67ba29f0 Binary files /dev/null and b/sound/direct_sound_samples/cries/gholdengo.aif differ diff --git a/sound/direct_sound_samples/cries/gigalith.aif b/sound/direct_sound_samples/cries/gigalith.aif index 98cffe443c91..e5c2f6419eb7 100644 Binary files a/sound/direct_sound_samples/cries/gigalith.aif and b/sound/direct_sound_samples/cries/gigalith.aif differ diff --git a/sound/direct_sound_samples/cries/gimmighoul.aif b/sound/direct_sound_samples/cries/gimmighoul.aif new file mode 100644 index 000000000000..dac736784eb7 Binary files /dev/null and b/sound/direct_sound_samples/cries/gimmighoul.aif differ diff --git a/sound/direct_sound_samples/cries/gimmighoul_roaming.aif b/sound/direct_sound_samples/cries/gimmighoul_roaming.aif new file mode 100644 index 000000000000..9f3c4483e9c5 Binary files /dev/null and b/sound/direct_sound_samples/cries/gimmighoul_roaming.aif differ diff --git a/sound/direct_sound_samples/cries/glalie_mega.aif b/sound/direct_sound_samples/cries/glalie_mega.aif new file mode 100644 index 000000000000..44261f52713e Binary files /dev/null and b/sound/direct_sound_samples/cries/glalie_mega.aif differ diff --git a/sound/direct_sound_samples/cries/glastrier.aif b/sound/direct_sound_samples/cries/glastrier.aif index c0b87d253203..6109f1ca0b60 100644 Binary files a/sound/direct_sound_samples/cries/glastrier.aif and b/sound/direct_sound_samples/cries/glastrier.aif differ diff --git a/sound/direct_sound_samples/cries/glimmet.aif b/sound/direct_sound_samples/cries/glimmet.aif new file mode 100644 index 000000000000..38fc118b26ab Binary files /dev/null and b/sound/direct_sound_samples/cries/glimmet.aif differ diff --git a/sound/direct_sound_samples/cries/glimmora.aif b/sound/direct_sound_samples/cries/glimmora.aif new file mode 100644 index 000000000000..64fb6822894f Binary files /dev/null and b/sound/direct_sound_samples/cries/glimmora.aif differ diff --git a/sound/direct_sound_samples/cries/golett.aif b/sound/direct_sound_samples/cries/golett.aif index 3610df2a56e6..f0f31bda7e33 100644 Binary files a/sound/direct_sound_samples/cries/golett.aif and b/sound/direct_sound_samples/cries/golett.aif differ diff --git a/sound/direct_sound_samples/cries/golurk.aif b/sound/direct_sound_samples/cries/golurk.aif index b9bd6914b785..1795ca8f4a09 100644 Binary files a/sound/direct_sound_samples/cries/golurk.aif and b/sound/direct_sound_samples/cries/golurk.aif differ diff --git a/sound/direct_sound_samples/cries/gothita.aif b/sound/direct_sound_samples/cries/gothita.aif index 78e9b1880637..93089d6200ba 100644 Binary files a/sound/direct_sound_samples/cries/gothita.aif and b/sound/direct_sound_samples/cries/gothita.aif differ diff --git a/sound/direct_sound_samples/cries/gothorita.aif b/sound/direct_sound_samples/cries/gothorita.aif index 10ea224c66e3..d0b1217c18b0 100644 Binary files a/sound/direct_sound_samples/cries/gothorita.aif and b/sound/direct_sound_samples/cries/gothorita.aif differ diff --git a/sound/direct_sound_samples/cries/grafaiai.aif b/sound/direct_sound_samples/cries/grafaiai.aif new file mode 100644 index 000000000000..d8e8511eec1e Binary files /dev/null and b/sound/direct_sound_samples/cries/grafaiai.aif differ diff --git a/sound/direct_sound_samples/cries/great_tusk.aif b/sound/direct_sound_samples/cries/great_tusk.aif new file mode 100644 index 000000000000..4ca76ff6c02f Binary files /dev/null and b/sound/direct_sound_samples/cries/great_tusk.aif differ diff --git a/sound/direct_sound_samples/cries/greavard.aif b/sound/direct_sound_samples/cries/greavard.aif new file mode 100644 index 000000000000..434c1dceb0af Binary files /dev/null and b/sound/direct_sound_samples/cries/greavard.aif differ diff --git a/sound/direct_sound_samples/cries/grookey.aif b/sound/direct_sound_samples/cries/grookey.aif index 8822e50be027..919063484f86 100644 Binary files a/sound/direct_sound_samples/cries/grookey.aif and b/sound/direct_sound_samples/cries/grookey.aif differ diff --git a/sound/direct_sound_samples/cries/groudon_primal.aif b/sound/direct_sound_samples/cries/groudon_primal.aif new file mode 100644 index 000000000000..c88326947000 Binary files /dev/null and b/sound/direct_sound_samples/cries/groudon_primal.aif differ diff --git a/sound/direct_sound_samples/cries/gurdurr.aif b/sound/direct_sound_samples/cries/gurdurr.aif index 086b02012d02..8cb56e5a702b 100644 Binary files a/sound/direct_sound_samples/cries/gurdurr.aif and b/sound/direct_sound_samples/cries/gurdurr.aif differ diff --git a/sound/direct_sound_samples/cries/gyarados_mega.aif b/sound/direct_sound_samples/cries/gyarados_mega.aif new file mode 100644 index 000000000000..5e310a46382f Binary files /dev/null and b/sound/direct_sound_samples/cries/gyarados_mega.aif differ diff --git a/sound/direct_sound_samples/cries/hatenna.aif b/sound/direct_sound_samples/cries/hatenna.aif index 8743bd35fbfb..3c431dd65f2b 100644 Binary files a/sound/direct_sound_samples/cries/hatenna.aif and b/sound/direct_sound_samples/cries/hatenna.aif differ diff --git a/sound/direct_sound_samples/cries/hatterene.aif b/sound/direct_sound_samples/cries/hatterene.aif index 89b683927f25..db21eb2e2004 100644 Binary files a/sound/direct_sound_samples/cries/hatterene.aif and b/sound/direct_sound_samples/cries/hatterene.aif differ diff --git a/sound/direct_sound_samples/cries/hattrem.aif b/sound/direct_sound_samples/cries/hattrem.aif index 2fb276f62c26..57f46a497920 100644 Binary files a/sound/direct_sound_samples/cries/hattrem.aif and b/sound/direct_sound_samples/cries/hattrem.aif differ diff --git a/sound/direct_sound_samples/cries/haxorus.aif b/sound/direct_sound_samples/cries/haxorus.aif index 7ac169415672..7fc4043d3603 100644 Binary files a/sound/direct_sound_samples/cries/haxorus.aif and b/sound/direct_sound_samples/cries/haxorus.aif differ diff --git a/sound/direct_sound_samples/cries/heatmor.aif b/sound/direct_sound_samples/cries/heatmor.aif index 6fff3da9dc95..a73dd97e4a01 100644 Binary files a/sound/direct_sound_samples/cries/heatmor.aif and b/sound/direct_sound_samples/cries/heatmor.aif differ diff --git a/sound/direct_sound_samples/cries/heracross_mega.aif b/sound/direct_sound_samples/cries/heracross_mega.aif new file mode 100644 index 000000000000..67faa6f196d2 Binary files /dev/null and b/sound/direct_sound_samples/cries/heracross_mega.aif differ diff --git a/sound/direct_sound_samples/cries/herdier.aif b/sound/direct_sound_samples/cries/herdier.aif index 5e863c94cf1c..e57234c8b0fa 100644 Binary files a/sound/direct_sound_samples/cries/herdier.aif and b/sound/direct_sound_samples/cries/herdier.aif differ diff --git a/sound/direct_sound_samples/cries/hoopa.aif b/sound/direct_sound_samples/cries/hoopa_confined.aif similarity index 100% rename from sound/direct_sound_samples/cries/hoopa.aif rename to sound/direct_sound_samples/cries/hoopa_confined.aif diff --git a/sound/direct_sound_samples/cries/hoopa_unbound.aif b/sound/direct_sound_samples/cries/hoopa_unbound.aif index 4130b2e3b537..8867fe42a3d4 100644 Binary files a/sound/direct_sound_samples/cries/hoopa_unbound.aif and b/sound/direct_sound_samples/cries/hoopa_unbound.aif differ diff --git a/sound/direct_sound_samples/cries/houndoom_mega.aif b/sound/direct_sound_samples/cries/houndoom_mega.aif new file mode 100644 index 000000000000..7bf51ba800f4 Binary files /dev/null and b/sound/direct_sound_samples/cries/houndoom_mega.aif differ diff --git a/sound/direct_sound_samples/cries/houndstone.aif b/sound/direct_sound_samples/cries/houndstone.aif new file mode 100644 index 000000000000..145cc7968284 Binary files /dev/null and b/sound/direct_sound_samples/cries/houndstone.aif differ diff --git a/sound/direct_sound_samples/cries/indeedee_female.aif b/sound/direct_sound_samples/cries/indeedee_female.aif index 93279b4ee89f..3edae13bad09 100644 Binary files a/sound/direct_sound_samples/cries/indeedee_female.aif and b/sound/direct_sound_samples/cries/indeedee_female.aif differ diff --git a/sound/direct_sound_samples/cries/indeedee.aif b/sound/direct_sound_samples/cries/indeedee_male.aif similarity index 100% rename from sound/direct_sound_samples/cries/indeedee.aif rename to sound/direct_sound_samples/cries/indeedee_male.aif diff --git a/sound/direct_sound_samples/cries/inteleon.aif b/sound/direct_sound_samples/cries/inteleon.aif index 83668dcdcb9f..d5c6d367f789 100644 Binary files a/sound/direct_sound_samples/cries/inteleon.aif and b/sound/direct_sound_samples/cries/inteleon.aif differ diff --git a/sound/direct_sound_samples/cries/iron_bundle.aif b/sound/direct_sound_samples/cries/iron_bundle.aif new file mode 100644 index 000000000000..59af7aa5041e Binary files /dev/null and b/sound/direct_sound_samples/cries/iron_bundle.aif differ diff --git a/sound/direct_sound_samples/cries/iron_hands.aif b/sound/direct_sound_samples/cries/iron_hands.aif new file mode 100644 index 000000000000..d9e5b995f0a5 Binary files /dev/null and b/sound/direct_sound_samples/cries/iron_hands.aif differ diff --git a/sound/direct_sound_samples/cries/iron_jugulis.aif b/sound/direct_sound_samples/cries/iron_jugulis.aif new file mode 100644 index 000000000000..8409934f8935 Binary files /dev/null and b/sound/direct_sound_samples/cries/iron_jugulis.aif differ diff --git a/sound/direct_sound_samples/cries/iron_leaves.aif b/sound/direct_sound_samples/cries/iron_leaves.aif new file mode 100644 index 000000000000..45e0a420e2d5 Binary files /dev/null and b/sound/direct_sound_samples/cries/iron_leaves.aif differ diff --git a/sound/direct_sound_samples/cries/iron_moth.aif b/sound/direct_sound_samples/cries/iron_moth.aif new file mode 100644 index 000000000000..fb90d304815f Binary files /dev/null and b/sound/direct_sound_samples/cries/iron_moth.aif differ diff --git a/sound/direct_sound_samples/cries/iron_thorns.aif b/sound/direct_sound_samples/cries/iron_thorns.aif new file mode 100644 index 000000000000..e73b9d553e73 Binary files /dev/null and b/sound/direct_sound_samples/cries/iron_thorns.aif differ diff --git a/sound/direct_sound_samples/cries/iron_treads.aif b/sound/direct_sound_samples/cries/iron_treads.aif new file mode 100644 index 000000000000..e3b047171179 Binary files /dev/null and b/sound/direct_sound_samples/cries/iron_treads.aif differ diff --git a/sound/direct_sound_samples/cries/iron_valiant.aif b/sound/direct_sound_samples/cries/iron_valiant.aif new file mode 100644 index 000000000000..04220e9f627f Binary files /dev/null and b/sound/direct_sound_samples/cries/iron_valiant.aif differ diff --git a/sound/direct_sound_samples/cries/jellicent.aif b/sound/direct_sound_samples/cries/jellicent.aif index 3664a9d41ce5..4c75c484f26b 100644 Binary files a/sound/direct_sound_samples/cries/jellicent.aif and b/sound/direct_sound_samples/cries/jellicent.aif differ diff --git a/sound/direct_sound_samples/cries/joltik.aif b/sound/direct_sound_samples/cries/joltik.aif index 0c6caea6e57f..cd1fa592c957 100644 Binary files a/sound/direct_sound_samples/cries/joltik.aif and b/sound/direct_sound_samples/cries/joltik.aif differ diff --git a/sound/direct_sound_samples/cries/kangaskhan_mega.aif b/sound/direct_sound_samples/cries/kangaskhan_mega.aif new file mode 100644 index 000000000000..cd95a87d3994 Binary files /dev/null and b/sound/direct_sound_samples/cries/kangaskhan_mega.aif differ diff --git a/sound/direct_sound_samples/cries/karrablast.aif b/sound/direct_sound_samples/cries/karrablast.aif index 7b22594e06f4..cf06ec45a885 100644 Binary files a/sound/direct_sound_samples/cries/karrablast.aif and b/sound/direct_sound_samples/cries/karrablast.aif differ diff --git a/sound/direct_sound_samples/cries/kilowattrel.aif b/sound/direct_sound_samples/cries/kilowattrel.aif new file mode 100644 index 000000000000..d54d4a43b5a3 Binary files /dev/null and b/sound/direct_sound_samples/cries/kilowattrel.aif differ diff --git a/sound/direct_sound_samples/cries/kingambit.aif b/sound/direct_sound_samples/cries/kingambit.aif new file mode 100644 index 000000000000..38a3d1b6cc6f Binary files /dev/null and b/sound/direct_sound_samples/cries/kingambit.aif differ diff --git a/sound/direct_sound_samples/cries/klang.aif b/sound/direct_sound_samples/cries/klang.aif index 462187f3e111..bb17984d2cec 100644 Binary files a/sound/direct_sound_samples/cries/klang.aif and b/sound/direct_sound_samples/cries/klang.aif differ diff --git a/sound/direct_sound_samples/cries/klawf.aif b/sound/direct_sound_samples/cries/klawf.aif new file mode 100644 index 000000000000..8359e13b1786 Binary files /dev/null and b/sound/direct_sound_samples/cries/klawf.aif differ diff --git a/sound/direct_sound_samples/cries/kleavor.aif b/sound/direct_sound_samples/cries/kleavor.aif index 1052cabd3a57..cf23d5b623ee 100644 Binary files a/sound/direct_sound_samples/cries/kleavor.aif and b/sound/direct_sound_samples/cries/kleavor.aif differ diff --git a/sound/direct_sound_samples/cries/klink.aif b/sound/direct_sound_samples/cries/klink.aif index a3a78f58db00..21076028de58 100644 Binary files a/sound/direct_sound_samples/cries/klink.aif and b/sound/direct_sound_samples/cries/klink.aif differ diff --git a/sound/direct_sound_samples/cries/koraidon.aif b/sound/direct_sound_samples/cries/koraidon.aif new file mode 100644 index 000000000000..6ab93ad73ec9 Binary files /dev/null and b/sound/direct_sound_samples/cries/koraidon.aif differ diff --git a/sound/direct_sound_samples/cries/krokorok.aif b/sound/direct_sound_samples/cries/krokorok.aif index d8f34f86ae4b..2cf4ceff1fb1 100644 Binary files a/sound/direct_sound_samples/cries/krokorok.aif and b/sound/direct_sound_samples/cries/krokorok.aif differ diff --git a/sound/direct_sound_samples/cries/krookodile.aif b/sound/direct_sound_samples/cries/krookodile.aif index e8cd8277e32c..4aa7ea4aedf7 100644 Binary files a/sound/direct_sound_samples/cries/krookodile.aif and b/sound/direct_sound_samples/cries/krookodile.aif differ diff --git a/sound/direct_sound_samples/cries/kyogre_primal.aif b/sound/direct_sound_samples/cries/kyogre_primal.aif new file mode 100644 index 000000000000..605b8944ce48 Binary files /dev/null and b/sound/direct_sound_samples/cries/kyogre_primal.aif differ diff --git a/sound/direct_sound_samples/cries/kyurem.aif b/sound/direct_sound_samples/cries/kyurem.aif index 2b09fee15946..036d6cf689fa 100644 Binary files a/sound/direct_sound_samples/cries/kyurem.aif and b/sound/direct_sound_samples/cries/kyurem.aif differ diff --git a/sound/direct_sound_samples/cries/lampent.aif b/sound/direct_sound_samples/cries/lampent.aif index 2037c0bb2bc6..2f11c2ecfbf1 100644 Binary files a/sound/direct_sound_samples/cries/lampent.aif and b/sound/direct_sound_samples/cries/lampent.aif differ diff --git a/sound/direct_sound_samples/cries/landorus.aif b/sound/direct_sound_samples/cries/landorus.aif deleted file mode 100644 index f0937509f300..000000000000 Binary files a/sound/direct_sound_samples/cries/landorus.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/landorus_incarnate.aif b/sound/direct_sound_samples/cries/landorus_incarnate.aif new file mode 100644 index 000000000000..189c77666870 Binary files /dev/null and b/sound/direct_sound_samples/cries/landorus_incarnate.aif differ diff --git a/sound/direct_sound_samples/cries/landorus_therian.aif b/sound/direct_sound_samples/cries/landorus_therian.aif index a790c8ecfe94..edd6fa349b23 100644 Binary files a/sound/direct_sound_samples/cries/landorus_therian.aif and b/sound/direct_sound_samples/cries/landorus_therian.aif differ diff --git a/sound/direct_sound_samples/cries/larvesta.aif b/sound/direct_sound_samples/cries/larvesta.aif index 6822dca90b18..4f3e484c8e1e 100644 Binary files a/sound/direct_sound_samples/cries/larvesta.aif and b/sound/direct_sound_samples/cries/larvesta.aif differ diff --git a/sound/direct_sound_samples/cries/latias_mega.aif b/sound/direct_sound_samples/cries/latias_mega.aif new file mode 100644 index 000000000000..0dc1b8990661 Binary files /dev/null and b/sound/direct_sound_samples/cries/latias_mega.aif differ diff --git a/sound/direct_sound_samples/cries/latios_mega.aif b/sound/direct_sound_samples/cries/latios_mega.aif new file mode 100644 index 000000000000..88a896035b60 Binary files /dev/null and b/sound/direct_sound_samples/cries/latios_mega.aif differ diff --git a/sound/direct_sound_samples/cries/leavanny.aif b/sound/direct_sound_samples/cries/leavanny.aif index c16544878783..8399bb1cf326 100644 Binary files a/sound/direct_sound_samples/cries/leavanny.aif and b/sound/direct_sound_samples/cries/leavanny.aif differ diff --git a/sound/direct_sound_samples/cries/lechonk.aif b/sound/direct_sound_samples/cries/lechonk.aif new file mode 100644 index 000000000000..f1ab3af238f6 Binary files /dev/null and b/sound/direct_sound_samples/cries/lechonk.aif differ diff --git a/sound/direct_sound_samples/cries/liepard.aif b/sound/direct_sound_samples/cries/liepard.aif index 1f97b7e1ac27..7432857bc14d 100644 Binary files a/sound/direct_sound_samples/cries/liepard.aif and b/sound/direct_sound_samples/cries/liepard.aif differ diff --git a/sound/direct_sound_samples/cries/lilligant.aif b/sound/direct_sound_samples/cries/lilligant.aif index fd940814e434..311c5affa81c 100644 Binary files a/sound/direct_sound_samples/cries/lilligant.aif and b/sound/direct_sound_samples/cries/lilligant.aif differ diff --git a/sound/direct_sound_samples/cries/lillipup.aif b/sound/direct_sound_samples/cries/lillipup.aif index e7c8bc6ba331..9a77e2596ded 100644 Binary files a/sound/direct_sound_samples/cries/lillipup.aif and b/sound/direct_sound_samples/cries/lillipup.aif differ diff --git a/sound/direct_sound_samples/cries/litwick.aif b/sound/direct_sound_samples/cries/litwick.aif index 930ca829e653..6759c29beb38 100644 Binary files a/sound/direct_sound_samples/cries/litwick.aif and b/sound/direct_sound_samples/cries/litwick.aif differ diff --git a/sound/direct_sound_samples/cries/lokix.aif b/sound/direct_sound_samples/cries/lokix.aif new file mode 100644 index 000000000000..c323e2658cc5 Binary files /dev/null and b/sound/direct_sound_samples/cries/lokix.aif differ diff --git a/sound/direct_sound_samples/cries/lopunny_mega.aif b/sound/direct_sound_samples/cries/lopunny_mega.aif new file mode 100644 index 000000000000..1331ca106b9d Binary files /dev/null and b/sound/direct_sound_samples/cries/lopunny_mega.aif differ diff --git a/sound/direct_sound_samples/cries/lucario_mega.aif b/sound/direct_sound_samples/cries/lucario_mega.aif new file mode 100644 index 000000000000..1a100f4dab28 Binary files /dev/null and b/sound/direct_sound_samples/cries/lucario_mega.aif differ diff --git a/sound/direct_sound_samples/cries/lycanroc_dusk.aif b/sound/direct_sound_samples/cries/lycanroc_dusk.aif index 1149e558bf78..61d985e64aca 100644 Binary files a/sound/direct_sound_samples/cries/lycanroc_dusk.aif and b/sound/direct_sound_samples/cries/lycanroc_dusk.aif differ diff --git a/sound/direct_sound_samples/cries/lycanroc.aif b/sound/direct_sound_samples/cries/lycanroc_midday.aif similarity index 100% rename from sound/direct_sound_samples/cries/lycanroc.aif rename to sound/direct_sound_samples/cries/lycanroc_midday.aif diff --git a/sound/direct_sound_samples/cries/lycanroc_midnight.aif b/sound/direct_sound_samples/cries/lycanroc_midnight.aif index 0b68038fd45a..f470d006b5d8 100644 Binary files a/sound/direct_sound_samples/cries/lycanroc_midnight.aif and b/sound/direct_sound_samples/cries/lycanroc_midnight.aif differ diff --git a/sound/direct_sound_samples/cries/mabosstiff.aif b/sound/direct_sound_samples/cries/mabosstiff.aif new file mode 100644 index 000000000000..ccf661e6cabc Binary files /dev/null and b/sound/direct_sound_samples/cries/mabosstiff.aif differ diff --git a/sound/direct_sound_samples/cries/mandibuzz.aif b/sound/direct_sound_samples/cries/mandibuzz.aif index 9911fa2c6819..3f12088d0a52 100644 Binary files a/sound/direct_sound_samples/cries/mandibuzz.aif and b/sound/direct_sound_samples/cries/mandibuzz.aif differ diff --git a/sound/direct_sound_samples/cries/manectric_mega.aif b/sound/direct_sound_samples/cries/manectric_mega.aif new file mode 100644 index 000000000000..ad38ec0ffceb Binary files /dev/null and b/sound/direct_sound_samples/cries/manectric_mega.aif differ diff --git a/sound/direct_sound_samples/cries/maractus.aif b/sound/direct_sound_samples/cries/maractus.aif index bf98f2c7447c..16058d97cc8c 100644 Binary files a/sound/direct_sound_samples/cries/maractus.aif and b/sound/direct_sound_samples/cries/maractus.aif differ diff --git a/sound/direct_sound_samples/cries/maschiff.aif b/sound/direct_sound_samples/cries/maschiff.aif new file mode 100644 index 000000000000..ee93b59adefe Binary files /dev/null and b/sound/direct_sound_samples/cries/maschiff.aif differ diff --git a/sound/direct_sound_samples/cries/maushold_family_of_four.aif b/sound/direct_sound_samples/cries/maushold_family_of_four.aif new file mode 100644 index 000000000000..c7c0aee6ee8c Binary files /dev/null and b/sound/direct_sound_samples/cries/maushold_family_of_four.aif differ diff --git a/sound/direct_sound_samples/cries/maushold_family_of_three.aif b/sound/direct_sound_samples/cries/maushold_family_of_three.aif new file mode 100644 index 000000000000..7412a1af6a87 Binary files /dev/null and b/sound/direct_sound_samples/cries/maushold_family_of_three.aif differ diff --git a/sound/direct_sound_samples/cries/mawile_mega.aif b/sound/direct_sound_samples/cries/mawile_mega.aif new file mode 100644 index 000000000000..a6e7ec8c8394 Binary files /dev/null and b/sound/direct_sound_samples/cries/mawile_mega.aif differ diff --git a/sound/direct_sound_samples/cries/medicham_mega.aif b/sound/direct_sound_samples/cries/medicham_mega.aif new file mode 100644 index 000000000000..f00672f3cba0 Binary files /dev/null and b/sound/direct_sound_samples/cries/medicham_mega.aif differ diff --git a/sound/direct_sound_samples/cries/mega_abomasnow.aif b/sound/direct_sound_samples/cries/mega_abomasnow.aif deleted file mode 100644 index 600efe748148..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_abomasnow.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_absol.aif b/sound/direct_sound_samples/cries/mega_absol.aif deleted file mode 100644 index e1539ce3b2fe..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_absol.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_aerodactyl.aif b/sound/direct_sound_samples/cries/mega_aerodactyl.aif deleted file mode 100644 index 762e2cb1caf4..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_aerodactyl.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_aggron.aif b/sound/direct_sound_samples/cries/mega_aggron.aif deleted file mode 100644 index 9466c9e70af3..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_aggron.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_alakazam.aif b/sound/direct_sound_samples/cries/mega_alakazam.aif deleted file mode 100644 index 149bcb7d00e1..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_alakazam.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_altaria.aif b/sound/direct_sound_samples/cries/mega_altaria.aif deleted file mode 100644 index a050f7479897..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_altaria.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_ampharos.aif b/sound/direct_sound_samples/cries/mega_ampharos.aif deleted file mode 100644 index d92b123d3732..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_ampharos.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_audino.aif b/sound/direct_sound_samples/cries/mega_audino.aif deleted file mode 100644 index f1d90100d504..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_audino.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_banette.aif b/sound/direct_sound_samples/cries/mega_banette.aif deleted file mode 100644 index c951f854f983..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_banette.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_beedrill.aif b/sound/direct_sound_samples/cries/mega_beedrill.aif deleted file mode 100644 index 26fb431d4c3d..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_beedrill.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_blastoise.aif b/sound/direct_sound_samples/cries/mega_blastoise.aif deleted file mode 100644 index d340b3ce9f25..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_blastoise.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_blaziken.aif b/sound/direct_sound_samples/cries/mega_blaziken.aif deleted file mode 100644 index 30d7c622d99c..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_blaziken.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_camerupt.aif b/sound/direct_sound_samples/cries/mega_camerupt.aif deleted file mode 100644 index 744817dac88a..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_camerupt.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_charizard_x.aif b/sound/direct_sound_samples/cries/mega_charizard_x.aif deleted file mode 100644 index 2e541e237266..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_charizard_x.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_charizard_y.aif b/sound/direct_sound_samples/cries/mega_charizard_y.aif deleted file mode 100644 index 6da97b62ab6f..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_charizard_y.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_diancie.aif b/sound/direct_sound_samples/cries/mega_diancie.aif deleted file mode 100644 index 8fc51390990f..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_diancie.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_gallade.aif b/sound/direct_sound_samples/cries/mega_gallade.aif deleted file mode 100644 index 4a12523dfe54..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_gallade.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_garchomp.aif b/sound/direct_sound_samples/cries/mega_garchomp.aif deleted file mode 100644 index 420cf6689ef6..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_garchomp.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_gardevoir.aif b/sound/direct_sound_samples/cries/mega_gardevoir.aif deleted file mode 100644 index 1b384b37b77b..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_gardevoir.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_gengar.aif b/sound/direct_sound_samples/cries/mega_gengar.aif deleted file mode 100644 index 980a228b7dd1..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_gengar.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_glalie.aif b/sound/direct_sound_samples/cries/mega_glalie.aif deleted file mode 100644 index a123a386a93f..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_glalie.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_gyarados.aif b/sound/direct_sound_samples/cries/mega_gyarados.aif deleted file mode 100644 index 1b939a6ce2cb..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_gyarados.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_heracross.aif b/sound/direct_sound_samples/cries/mega_heracross.aif deleted file mode 100644 index 99e4aded0837..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_heracross.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_houndoom.aif b/sound/direct_sound_samples/cries/mega_houndoom.aif deleted file mode 100644 index dcbc96550526..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_houndoom.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_kangaskhan.aif b/sound/direct_sound_samples/cries/mega_kangaskhan.aif deleted file mode 100644 index e5069d2d346c..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_kangaskhan.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_latias.aif b/sound/direct_sound_samples/cries/mega_latias.aif deleted file mode 100644 index 5d107897a154..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_latias.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_latios.aif b/sound/direct_sound_samples/cries/mega_latios.aif deleted file mode 100644 index 39394be44b45..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_latios.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_lopunny.aif b/sound/direct_sound_samples/cries/mega_lopunny.aif deleted file mode 100644 index 45a0dbb839a0..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_lopunny.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_lucario.aif b/sound/direct_sound_samples/cries/mega_lucario.aif deleted file mode 100644 index f9af050adaed..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_lucario.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_manectric.aif b/sound/direct_sound_samples/cries/mega_manectric.aif deleted file mode 100644 index d78d8453029e..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_manectric.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_mawile.aif b/sound/direct_sound_samples/cries/mega_mawile.aif deleted file mode 100644 index bfcd306bc319..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_mawile.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_medicham.aif b/sound/direct_sound_samples/cries/mega_medicham.aif deleted file mode 100644 index eb1153e05576..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_medicham.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_metagross.aif b/sound/direct_sound_samples/cries/mega_metagross.aif deleted file mode 100644 index 8e3c48bab056..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_metagross.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_mewtwo_x.aif b/sound/direct_sound_samples/cries/mega_mewtwo_x.aif deleted file mode 100644 index 8c82b9096108..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_mewtwo_x.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_mewtwo_y.aif b/sound/direct_sound_samples/cries/mega_mewtwo_y.aif deleted file mode 100644 index 0947d8351f91..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_mewtwo_y.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_pidgeot.aif b/sound/direct_sound_samples/cries/mega_pidgeot.aif deleted file mode 100644 index 05add9bdd744..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_pidgeot.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_pinsir.aif b/sound/direct_sound_samples/cries/mega_pinsir.aif deleted file mode 100644 index 4d5f59daee24..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_pinsir.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_rayquaza.aif b/sound/direct_sound_samples/cries/mega_rayquaza.aif deleted file mode 100644 index 1e5c3c7ed744..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_rayquaza.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_sableye.aif b/sound/direct_sound_samples/cries/mega_sableye.aif deleted file mode 100644 index 6f628fb5768c..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_sableye.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_salamence.aif b/sound/direct_sound_samples/cries/mega_salamence.aif deleted file mode 100644 index cf75bfbf8e71..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_salamence.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_sceptile.aif b/sound/direct_sound_samples/cries/mega_sceptile.aif deleted file mode 100644 index fca1708831b4..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_sceptile.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_scizor.aif b/sound/direct_sound_samples/cries/mega_scizor.aif deleted file mode 100644 index 3705ec707ac9..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_scizor.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_sharpedo.aif b/sound/direct_sound_samples/cries/mega_sharpedo.aif deleted file mode 100644 index b6eff10ff3bb..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_sharpedo.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_slowbro.aif b/sound/direct_sound_samples/cries/mega_slowbro.aif deleted file mode 100644 index 4fcda7dc4ef2..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_slowbro.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_steelix.aif b/sound/direct_sound_samples/cries/mega_steelix.aif deleted file mode 100644 index 998d0d7d9c67..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_steelix.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_swampert.aif b/sound/direct_sound_samples/cries/mega_swampert.aif deleted file mode 100644 index 6b65b03ed6ac..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_swampert.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_tyranitar.aif b/sound/direct_sound_samples/cries/mega_tyranitar.aif deleted file mode 100644 index 5df44e79b423..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_tyranitar.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/mega_venusaur.aif b/sound/direct_sound_samples/cries/mega_venusaur.aif deleted file mode 100644 index f67c278a41f0..000000000000 Binary files a/sound/direct_sound_samples/cries/mega_venusaur.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/melmetal.aif b/sound/direct_sound_samples/cries/melmetal.aif index aea0ec1c7442..d9a2e0928bda 100644 Binary files a/sound/direct_sound_samples/cries/melmetal.aif and b/sound/direct_sound_samples/cries/melmetal.aif differ diff --git a/sound/direct_sound_samples/cries/meloetta.aif b/sound/direct_sound_samples/cries/meloetta.aif index 9d2e0a254d9c..d2be5ac97f03 100644 Binary files a/sound/direct_sound_samples/cries/meloetta.aif and b/sound/direct_sound_samples/cries/meloetta.aif differ diff --git a/sound/direct_sound_samples/cries/meltan.aif b/sound/direct_sound_samples/cries/meltan.aif index 54abac63ab7a..c3bd648e3a9c 100644 Binary files a/sound/direct_sound_samples/cries/meltan.aif and b/sound/direct_sound_samples/cries/meltan.aif differ diff --git a/sound/direct_sound_samples/cries/meowscarada.aif b/sound/direct_sound_samples/cries/meowscarada.aif new file mode 100644 index 000000000000..981a07a20673 Binary files /dev/null and b/sound/direct_sound_samples/cries/meowscarada.aif differ diff --git a/sound/direct_sound_samples/cries/metagross_mega.aif b/sound/direct_sound_samples/cries/metagross_mega.aif new file mode 100644 index 000000000000..3f9ca589cf8b Binary files /dev/null and b/sound/direct_sound_samples/cries/metagross_mega.aif differ diff --git a/sound/direct_sound_samples/cries/mewtwo_mega_x.aif b/sound/direct_sound_samples/cries/mewtwo_mega_x.aif new file mode 100644 index 000000000000..c484f7b9ebca Binary files /dev/null and b/sound/direct_sound_samples/cries/mewtwo_mega_x.aif differ diff --git a/sound/direct_sound_samples/cries/mewtwo_mega_y.aif b/sound/direct_sound_samples/cries/mewtwo_mega_y.aif new file mode 100644 index 000000000000..87a5d54ad9c1 Binary files /dev/null and b/sound/direct_sound_samples/cries/mewtwo_mega_y.aif differ diff --git a/sound/direct_sound_samples/cries/mienfoo.aif b/sound/direct_sound_samples/cries/mienfoo.aif index 3e826b31b9a7..f948e6f3d930 100644 Binary files a/sound/direct_sound_samples/cries/mienfoo.aif and b/sound/direct_sound_samples/cries/mienfoo.aif differ diff --git a/sound/direct_sound_samples/cries/mienshao.aif b/sound/direct_sound_samples/cries/mienshao.aif index 3f9199c7ac2b..652be5733938 100644 Binary files a/sound/direct_sound_samples/cries/mienshao.aif and b/sound/direct_sound_samples/cries/mienshao.aif differ diff --git a/sound/direct_sound_samples/cries/minccino.aif b/sound/direct_sound_samples/cries/minccino.aif index 9299615cef1d..c10f3f7c9f2e 100644 Binary files a/sound/direct_sound_samples/cries/minccino.aif and b/sound/direct_sound_samples/cries/minccino.aif differ diff --git a/sound/direct_sound_samples/cries/miraidon.aif b/sound/direct_sound_samples/cries/miraidon.aif new file mode 100644 index 000000000000..f07c1c360c1c Binary files /dev/null and b/sound/direct_sound_samples/cries/miraidon.aif differ diff --git a/sound/direct_sound_samples/cries/morpeko.aif b/sound/direct_sound_samples/cries/morpeko.aif deleted file mode 100644 index 06937a3b1e13..000000000000 Binary files a/sound/direct_sound_samples/cries/morpeko.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/morpeko_full_belly.aif b/sound/direct_sound_samples/cries/morpeko_full_belly.aif new file mode 100644 index 000000000000..2feb33beb8c4 Binary files /dev/null and b/sound/direct_sound_samples/cries/morpeko_full_belly.aif differ diff --git a/sound/direct_sound_samples/cries/morpeko_hangry.aif b/sound/direct_sound_samples/cries/morpeko_hangry.aif index a09a85770dd6..84a89a2c01f4 100644 Binary files a/sound/direct_sound_samples/cries/morpeko_hangry.aif and b/sound/direct_sound_samples/cries/morpeko_hangry.aif differ diff --git a/sound/direct_sound_samples/cries/munkidori.aif b/sound/direct_sound_samples/cries/munkidori.aif new file mode 100644 index 000000000000..7cb192732e4e Binary files /dev/null and b/sound/direct_sound_samples/cries/munkidori.aif differ diff --git a/sound/direct_sound_samples/cries/munna.aif b/sound/direct_sound_samples/cries/munna.aif index 923f9518268b..35167be4a23e 100644 Binary files a/sound/direct_sound_samples/cries/munna.aif and b/sound/direct_sound_samples/cries/munna.aif differ diff --git a/sound/direct_sound_samples/cries/nacli.aif b/sound/direct_sound_samples/cries/nacli.aif new file mode 100644 index 000000000000..b29d579ee252 Binary files /dev/null and b/sound/direct_sound_samples/cries/nacli.aif differ diff --git a/sound/direct_sound_samples/cries/naclstack.aif b/sound/direct_sound_samples/cries/naclstack.aif new file mode 100644 index 000000000000..973fb822815f Binary files /dev/null and b/sound/direct_sound_samples/cries/naclstack.aif differ diff --git a/sound/direct_sound_samples/cries/noibat.aif b/sound/direct_sound_samples/cries/noibat.aif index c77342cc1c62..a00200aab060 100644 Binary files a/sound/direct_sound_samples/cries/noibat.aif and b/sound/direct_sound_samples/cries/noibat.aif differ diff --git a/sound/direct_sound_samples/cries/nymble.aif b/sound/direct_sound_samples/cries/nymble.aif new file mode 100644 index 000000000000..b74a198b2bd1 Binary files /dev/null and b/sound/direct_sound_samples/cries/nymble.aif differ diff --git a/sound/direct_sound_samples/cries/ogerpon.aif b/sound/direct_sound_samples/cries/ogerpon.aif new file mode 100644 index 000000000000..e5cb2f7badee Binary files /dev/null and b/sound/direct_sound_samples/cries/ogerpon.aif differ diff --git a/sound/direct_sound_samples/cries/oinkologne_female.aif b/sound/direct_sound_samples/cries/oinkologne_female.aif new file mode 100644 index 000000000000..885f2e3a7dd9 Binary files /dev/null and b/sound/direct_sound_samples/cries/oinkologne_female.aif differ diff --git a/sound/direct_sound_samples/cries/oinkologne_male.aif b/sound/direct_sound_samples/cries/oinkologne_male.aif new file mode 100644 index 000000000000..611794de314c Binary files /dev/null and b/sound/direct_sound_samples/cries/oinkologne_male.aif differ diff --git a/sound/direct_sound_samples/cries/okidogi.aif b/sound/direct_sound_samples/cries/okidogi.aif new file mode 100644 index 000000000000..afa9cfbddd88 Binary files /dev/null and b/sound/direct_sound_samples/cries/okidogi.aif differ diff --git a/sound/direct_sound_samples/cries/orbeetle.aif b/sound/direct_sound_samples/cries/orbeetle.aif index fdf498b9a081..e1ede8361a8e 100644 Binary files a/sound/direct_sound_samples/cries/orbeetle.aif and b/sound/direct_sound_samples/cries/orbeetle.aif differ diff --git a/sound/direct_sound_samples/cries/oricorio.aif b/sound/direct_sound_samples/cries/oricorio_baile.aif similarity index 100% rename from sound/direct_sound_samples/cries/oricorio.aif rename to sound/direct_sound_samples/cries/oricorio_baile.aif diff --git a/sound/direct_sound_samples/cries/oricorio_pom_pom.aif b/sound/direct_sound_samples/cries/oricorio_pom_pom.aif deleted file mode 100644 index bb4c1f27a076..000000000000 Binary files a/sound/direct_sound_samples/cries/oricorio_pom_pom.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/orthworm.aif b/sound/direct_sound_samples/cries/orthworm.aif new file mode 100644 index 000000000000..a3be4aecc073 Binary files /dev/null and b/sound/direct_sound_samples/cries/orthworm.aif differ diff --git a/sound/direct_sound_samples/cries/oshawott.aif b/sound/direct_sound_samples/cries/oshawott.aif index 6e78b950dcab..87b28da48473 100644 Binary files a/sound/direct_sound_samples/cries/oshawott.aif and b/sound/direct_sound_samples/cries/oshawott.aif differ diff --git a/sound/direct_sound_samples/cries/overqwil.aif b/sound/direct_sound_samples/cries/overqwil.aif index 56b3d97558e4..b5428ce9448c 100644 Binary files a/sound/direct_sound_samples/cries/overqwil.aif and b/sound/direct_sound_samples/cries/overqwil.aif differ diff --git a/sound/direct_sound_samples/cries/palafin_hero.aif b/sound/direct_sound_samples/cries/palafin_hero.aif new file mode 100644 index 000000000000..ff02e6a0e0e0 Binary files /dev/null and b/sound/direct_sound_samples/cries/palafin_hero.aif differ diff --git a/sound/direct_sound_samples/cries/palafin_zero.aif b/sound/direct_sound_samples/cries/palafin_zero.aif new file mode 100644 index 000000000000..3ee6bdb32195 Binary files /dev/null and b/sound/direct_sound_samples/cries/palafin_zero.aif differ diff --git a/sound/direct_sound_samples/cries/palpitoad.aif b/sound/direct_sound_samples/cries/palpitoad.aif index 637965880f65..a22b007bf0d1 100644 Binary files a/sound/direct_sound_samples/cries/palpitoad.aif and b/sound/direct_sound_samples/cries/palpitoad.aif differ diff --git a/sound/direct_sound_samples/cries/panpour.aif b/sound/direct_sound_samples/cries/panpour.aif index ba8b78d040a6..080e974b09cb 100644 Binary files a/sound/direct_sound_samples/cries/panpour.aif and b/sound/direct_sound_samples/cries/panpour.aif differ diff --git a/sound/direct_sound_samples/cries/pansage.aif b/sound/direct_sound_samples/cries/pansage.aif index b380d2fb0cbb..f5cd1a8b6ce8 100644 Binary files a/sound/direct_sound_samples/cries/pansage.aif and b/sound/direct_sound_samples/cries/pansage.aif differ diff --git a/sound/direct_sound_samples/cries/pansear.aif b/sound/direct_sound_samples/cries/pansear.aif index f8409cb13c5f..204046866e97 100644 Binary files a/sound/direct_sound_samples/cries/pansear.aif and b/sound/direct_sound_samples/cries/pansear.aif differ diff --git a/sound/direct_sound_samples/cries/patrat.aif b/sound/direct_sound_samples/cries/patrat.aif index 37015b78d82f..1bfddd3f9f44 100644 Binary files a/sound/direct_sound_samples/cries/patrat.aif and b/sound/direct_sound_samples/cries/patrat.aif differ diff --git a/sound/direct_sound_samples/cries/pawmi.aif b/sound/direct_sound_samples/cries/pawmi.aif new file mode 100644 index 000000000000..fa9a9197cb67 Binary files /dev/null and b/sound/direct_sound_samples/cries/pawmi.aif differ diff --git a/sound/direct_sound_samples/cries/pawmo.aif b/sound/direct_sound_samples/cries/pawmo.aif new file mode 100644 index 000000000000..7fbf646c2f46 Binary files /dev/null and b/sound/direct_sound_samples/cries/pawmo.aif differ diff --git a/sound/direct_sound_samples/cries/pawmot.aif b/sound/direct_sound_samples/cries/pawmot.aif new file mode 100644 index 000000000000..6175b505423a Binary files /dev/null and b/sound/direct_sound_samples/cries/pawmot.aif differ diff --git a/sound/direct_sound_samples/cries/pawniard.aif b/sound/direct_sound_samples/cries/pawniard.aif index bb41ae40f36c..db95da2044cc 100644 Binary files a/sound/direct_sound_samples/cries/pawniard.aif and b/sound/direct_sound_samples/cries/pawniard.aif differ diff --git a/sound/direct_sound_samples/cries/petilil.aif b/sound/direct_sound_samples/cries/petilil.aif index 05a9cd783636..ce243e499ef2 100644 Binary files a/sound/direct_sound_samples/cries/petilil.aif and b/sound/direct_sound_samples/cries/petilil.aif differ diff --git a/sound/direct_sound_samples/cries/pidgeot_mega.aif b/sound/direct_sound_samples/cries/pidgeot_mega.aif new file mode 100644 index 000000000000..89b846a1cc3b Binary files /dev/null and b/sound/direct_sound_samples/cries/pidgeot_mega.aif differ diff --git a/sound/direct_sound_samples/cries/pidove.aif b/sound/direct_sound_samples/cries/pidove.aif index 1459e7c082a1..faec9a046c22 100644 Binary files a/sound/direct_sound_samples/cries/pidove.aif and b/sound/direct_sound_samples/cries/pidove.aif differ diff --git a/sound/direct_sound_samples/cries/pignite.aif b/sound/direct_sound_samples/cries/pignite.aif index 73c005364e51..3cb8d0a850ef 100644 Binary files a/sound/direct_sound_samples/cries/pignite.aif and b/sound/direct_sound_samples/cries/pignite.aif differ diff --git a/sound/direct_sound_samples/cries/pinsir_mega.aif b/sound/direct_sound_samples/cries/pinsir_mega.aif new file mode 100644 index 000000000000..f6f2b6649f95 Binary files /dev/null and b/sound/direct_sound_samples/cries/pinsir_mega.aif differ diff --git a/sound/direct_sound_samples/cries/poltchageist.aif b/sound/direct_sound_samples/cries/poltchageist.aif new file mode 100644 index 000000000000..d861a0022b4a Binary files /dev/null and b/sound/direct_sound_samples/cries/poltchageist.aif differ diff --git a/sound/direct_sound_samples/cries/polteageist.aif b/sound/direct_sound_samples/cries/polteageist.aif index d002d7b53726..f9051a25c4ab 100644 Binary files a/sound/direct_sound_samples/cries/polteageist.aif and b/sound/direct_sound_samples/cries/polteageist.aif differ diff --git a/sound/direct_sound_samples/cries/primal_groudon.aif b/sound/direct_sound_samples/cries/primal_groudon.aif deleted file mode 100644 index c47922bb20fb..000000000000 Binary files a/sound/direct_sound_samples/cries/primal_groudon.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/primal_kyogre.aif b/sound/direct_sound_samples/cries/primal_kyogre.aif deleted file mode 100644 index 50ae7ed92d04..000000000000 Binary files a/sound/direct_sound_samples/cries/primal_kyogre.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/purrloin.aif b/sound/direct_sound_samples/cries/purrloin.aif index 85cde5c7bb2e..23791edb2b83 100644 Binary files a/sound/direct_sound_samples/cries/purrloin.aif and b/sound/direct_sound_samples/cries/purrloin.aif differ diff --git a/sound/direct_sound_samples/cries/quaquaval.aif b/sound/direct_sound_samples/cries/quaquaval.aif new file mode 100644 index 000000000000..d04fac23ff28 Binary files /dev/null and b/sound/direct_sound_samples/cries/quaquaval.aif differ diff --git a/sound/direct_sound_samples/cries/quaxly.aif b/sound/direct_sound_samples/cries/quaxly.aif new file mode 100644 index 000000000000..81606b4a194d Binary files /dev/null and b/sound/direct_sound_samples/cries/quaxly.aif differ diff --git a/sound/direct_sound_samples/cries/quaxwell.aif b/sound/direct_sound_samples/cries/quaxwell.aif new file mode 100644 index 000000000000..62669362ea77 Binary files /dev/null and b/sound/direct_sound_samples/cries/quaxwell.aif differ diff --git a/sound/direct_sound_samples/cries/rabsca.aif b/sound/direct_sound_samples/cries/rabsca.aif new file mode 100644 index 000000000000..9d36d01cdca5 Binary files /dev/null and b/sound/direct_sound_samples/cries/rabsca.aif differ diff --git a/sound/direct_sound_samples/cries/rayquaza_mega.aif b/sound/direct_sound_samples/cries/rayquaza_mega.aif new file mode 100644 index 000000000000..1b78a94e933f Binary files /dev/null and b/sound/direct_sound_samples/cries/rayquaza_mega.aif differ diff --git a/sound/direct_sound_samples/cries/regieleki.aif b/sound/direct_sound_samples/cries/regieleki.aif index f13c7223a7d6..75061bccff4e 100644 Binary files a/sound/direct_sound_samples/cries/regieleki.aif and b/sound/direct_sound_samples/cries/regieleki.aif differ diff --git a/sound/direct_sound_samples/cries/rellor.aif b/sound/direct_sound_samples/cries/rellor.aif new file mode 100644 index 000000000000..0a2f79805f99 Binary files /dev/null and b/sound/direct_sound_samples/cries/rellor.aif differ diff --git a/sound/direct_sound_samples/cries/reuniclus.aif b/sound/direct_sound_samples/cries/reuniclus.aif index 677130d8b1b6..75d92858c498 100644 Binary files a/sound/direct_sound_samples/cries/reuniclus.aif and b/sound/direct_sound_samples/cries/reuniclus.aif differ diff --git a/sound/direct_sound_samples/cries/revavroom.aif b/sound/direct_sound_samples/cries/revavroom.aif new file mode 100644 index 000000000000..731e2496c7c0 Binary files /dev/null and b/sound/direct_sound_samples/cries/revavroom.aif differ diff --git a/sound/direct_sound_samples/cries/rillaboom.aif b/sound/direct_sound_samples/cries/rillaboom.aif index 183354a787b6..c6a8b8932d76 100644 Binary files a/sound/direct_sound_samples/cries/rillaboom.aif and b/sound/direct_sound_samples/cries/rillaboom.aif differ diff --git a/sound/direct_sound_samples/cries/roaring_moon.aif b/sound/direct_sound_samples/cries/roaring_moon.aif new file mode 100644 index 000000000000..3c258496dce1 Binary files /dev/null and b/sound/direct_sound_samples/cries/roaring_moon.aif differ diff --git a/sound/direct_sound_samples/cries/roggenrola.aif b/sound/direct_sound_samples/cries/roggenrola.aif index 9ce801a0bb8a..c4764dc82bf0 100644 Binary files a/sound/direct_sound_samples/cries/roggenrola.aif and b/sound/direct_sound_samples/cries/roggenrola.aif differ diff --git a/sound/direct_sound_samples/cries/rookidee.aif b/sound/direct_sound_samples/cries/rookidee.aif index f5264b9e279c..036d3e2f1718 100644 Binary files a/sound/direct_sound_samples/cries/rookidee.aif and b/sound/direct_sound_samples/cries/rookidee.aif differ diff --git a/sound/direct_sound_samples/cries/rufflet.aif b/sound/direct_sound_samples/cries/rufflet.aif index 5d59c04ea32c..2aff67b5cf6a 100644 Binary files a/sound/direct_sound_samples/cries/rufflet.aif and b/sound/direct_sound_samples/cries/rufflet.aif differ diff --git a/sound/direct_sound_samples/cries/sableye_mega.aif b/sound/direct_sound_samples/cries/sableye_mega.aif new file mode 100644 index 000000000000..47d4a869ec00 Binary files /dev/null and b/sound/direct_sound_samples/cries/sableye_mega.aif differ diff --git a/sound/direct_sound_samples/cries/salamence_mega.aif b/sound/direct_sound_samples/cries/salamence_mega.aif new file mode 100644 index 000000000000..90ce0b6ff8a9 Binary files /dev/null and b/sound/direct_sound_samples/cries/salamence_mega.aif differ diff --git a/sound/direct_sound_samples/cries/sandaconda.aif b/sound/direct_sound_samples/cries/sandaconda.aif index f71b725323ff..13dd2b5ec246 100644 Binary files a/sound/direct_sound_samples/cries/sandaconda.aif and b/sound/direct_sound_samples/cries/sandaconda.aif differ diff --git a/sound/direct_sound_samples/cries/sandile.aif b/sound/direct_sound_samples/cries/sandile.aif index 2718b023880c..9e52575b7cd0 100644 Binary files a/sound/direct_sound_samples/cries/sandile.aif and b/sound/direct_sound_samples/cries/sandile.aif differ diff --git a/sound/direct_sound_samples/cries/sandy_shocks.aif b/sound/direct_sound_samples/cries/sandy_shocks.aif new file mode 100644 index 000000000000..d26cfc8817cc Binary files /dev/null and b/sound/direct_sound_samples/cries/sandy_shocks.aif differ diff --git a/sound/direct_sound_samples/cries/sawk.aif b/sound/direct_sound_samples/cries/sawk.aif index 5ae99e1cfe5c..ebfe11e4a825 100644 Binary files a/sound/direct_sound_samples/cries/sawk.aif and b/sound/direct_sound_samples/cries/sawk.aif differ diff --git a/sound/direct_sound_samples/cries/sawsbuck.aif b/sound/direct_sound_samples/cries/sawsbuck.aif index 8204786ee64d..745d3761d31f 100644 Binary files a/sound/direct_sound_samples/cries/sawsbuck.aif and b/sound/direct_sound_samples/cries/sawsbuck.aif differ diff --git a/sound/direct_sound_samples/cries/sceptile_mega.aif b/sound/direct_sound_samples/cries/sceptile_mega.aif new file mode 100644 index 000000000000..50a16a1ee3f4 Binary files /dev/null and b/sound/direct_sound_samples/cries/sceptile_mega.aif differ diff --git a/sound/direct_sound_samples/cries/scizor_mega.aif b/sound/direct_sound_samples/cries/scizor_mega.aif new file mode 100644 index 000000000000..c970f8083bb5 Binary files /dev/null and b/sound/direct_sound_samples/cries/scizor_mega.aif differ diff --git a/sound/direct_sound_samples/cries/scorbunny.aif b/sound/direct_sound_samples/cries/scorbunny.aif index 92fac5560238..120dd0f88898 100644 Binary files a/sound/direct_sound_samples/cries/scorbunny.aif and b/sound/direct_sound_samples/cries/scorbunny.aif differ diff --git a/sound/direct_sound_samples/cries/scovillain.aif b/sound/direct_sound_samples/cries/scovillain.aif new file mode 100644 index 000000000000..d84cb24087a5 Binary files /dev/null and b/sound/direct_sound_samples/cries/scovillain.aif differ diff --git a/sound/direct_sound_samples/cries/scrafty.aif b/sound/direct_sound_samples/cries/scrafty.aif index 974fb0e1397a..218c897f4aa4 100644 Binary files a/sound/direct_sound_samples/cries/scrafty.aif and b/sound/direct_sound_samples/cries/scrafty.aif differ diff --git a/sound/direct_sound_samples/cries/scraggy.aif b/sound/direct_sound_samples/cries/scraggy.aif index 3c024a8f4037..5b6958fcafdf 100644 Binary files a/sound/direct_sound_samples/cries/scraggy.aif and b/sound/direct_sound_samples/cries/scraggy.aif differ diff --git a/sound/direct_sound_samples/cries/scream_tail.aif b/sound/direct_sound_samples/cries/scream_tail.aif new file mode 100644 index 000000000000..a64bbdb05191 Binary files /dev/null and b/sound/direct_sound_samples/cries/scream_tail.aif differ diff --git a/sound/direct_sound_samples/cries/seismitoad.aif b/sound/direct_sound_samples/cries/seismitoad.aif index 2a88a1e77113..267979cc0bbb 100644 Binary files a/sound/direct_sound_samples/cries/seismitoad.aif and b/sound/direct_sound_samples/cries/seismitoad.aif differ diff --git a/sound/direct_sound_samples/cries/serperior.aif b/sound/direct_sound_samples/cries/serperior.aif index a14fa9f221d7..73ea832cd49f 100644 Binary files a/sound/direct_sound_samples/cries/serperior.aif and b/sound/direct_sound_samples/cries/serperior.aif differ diff --git a/sound/direct_sound_samples/cries/servine.aif b/sound/direct_sound_samples/cries/servine.aif index dbe5c1063492..aa687c02d6ea 100644 Binary files a/sound/direct_sound_samples/cries/servine.aif and b/sound/direct_sound_samples/cries/servine.aif differ diff --git a/sound/direct_sound_samples/cries/sewaddle.aif b/sound/direct_sound_samples/cries/sewaddle.aif index 58ac1880203f..9918b44645dc 100644 Binary files a/sound/direct_sound_samples/cries/sewaddle.aif and b/sound/direct_sound_samples/cries/sewaddle.aif differ diff --git a/sound/direct_sound_samples/cries/sharpedo_mega.aif b/sound/direct_sound_samples/cries/sharpedo_mega.aif new file mode 100644 index 000000000000..454ec15892ea Binary files /dev/null and b/sound/direct_sound_samples/cries/sharpedo_mega.aif differ diff --git a/sound/direct_sound_samples/cries/shaymin.aif b/sound/direct_sound_samples/cries/shaymin_land.aif similarity index 100% rename from sound/direct_sound_samples/cries/shaymin.aif rename to sound/direct_sound_samples/cries/shaymin_land.aif diff --git a/sound/direct_sound_samples/cries/shaymin_sky.aif b/sound/direct_sound_samples/cries/shaymin_sky.aif index bd1cb0ed0f27..3a340b56ec5d 100644 Binary files a/sound/direct_sound_samples/cries/shaymin_sky.aif and b/sound/direct_sound_samples/cries/shaymin_sky.aif differ diff --git a/sound/direct_sound_samples/cries/shroodle.aif b/sound/direct_sound_samples/cries/shroodle.aif new file mode 100644 index 000000000000..b60ef3ade3f8 Binary files /dev/null and b/sound/direct_sound_samples/cries/shroodle.aif differ diff --git a/sound/direct_sound_samples/cries/sigilyph.aif b/sound/direct_sound_samples/cries/sigilyph.aif index 544ebccd6ae0..cce44936cf02 100644 Binary files a/sound/direct_sound_samples/cries/sigilyph.aif and b/sound/direct_sound_samples/cries/sigilyph.aif differ diff --git a/sound/direct_sound_samples/cries/silicobra.aif b/sound/direct_sound_samples/cries/silicobra.aif index 886c6c8b794b..3b9f5e13fcb8 100644 Binary files a/sound/direct_sound_samples/cries/silicobra.aif and b/sound/direct_sound_samples/cries/silicobra.aif differ diff --git a/sound/direct_sound_samples/cries/simipour.aif b/sound/direct_sound_samples/cries/simipour.aif index 77640cd8b081..47ac114690cc 100644 Binary files a/sound/direct_sound_samples/cries/simipour.aif and b/sound/direct_sound_samples/cries/simipour.aif differ diff --git a/sound/direct_sound_samples/cries/simisage.aif b/sound/direct_sound_samples/cries/simisage.aif index 078e6995705c..0117cf73fc34 100644 Binary files a/sound/direct_sound_samples/cries/simisage.aif and b/sound/direct_sound_samples/cries/simisage.aif differ diff --git a/sound/direct_sound_samples/cries/simisear.aif b/sound/direct_sound_samples/cries/simisear.aif index 2a767ae0fc54..c6f9ec22972a 100644 Binary files a/sound/direct_sound_samples/cries/simisear.aif and b/sound/direct_sound_samples/cries/simisear.aif differ diff --git a/sound/direct_sound_samples/cries/sinistcha.aif b/sound/direct_sound_samples/cries/sinistcha.aif new file mode 100644 index 000000000000..e9a619c3f034 Binary files /dev/null and b/sound/direct_sound_samples/cries/sinistcha.aif differ diff --git a/sound/direct_sound_samples/cries/sinistea.aif b/sound/direct_sound_samples/cries/sinistea.aif index 35ace612b073..912a0800f985 100644 Binary files a/sound/direct_sound_samples/cries/sinistea.aif and b/sound/direct_sound_samples/cries/sinistea.aif differ diff --git a/sound/direct_sound_samples/cries/skeledirge.aif b/sound/direct_sound_samples/cries/skeledirge.aif new file mode 100644 index 000000000000..720e102019db Binary files /dev/null and b/sound/direct_sound_samples/cries/skeledirge.aif differ diff --git a/sound/direct_sound_samples/cries/slither_wing.aif b/sound/direct_sound_samples/cries/slither_wing.aif new file mode 100644 index 000000000000..d61cadb5eb9e Binary files /dev/null and b/sound/direct_sound_samples/cries/slither_wing.aif differ diff --git a/sound/direct_sound_samples/cries/slowbro_mega.aif b/sound/direct_sound_samples/cries/slowbro_mega.aif new file mode 100644 index 000000000000..6ae2a0fb6835 Binary files /dev/null and b/sound/direct_sound_samples/cries/slowbro_mega.aif differ diff --git a/sound/direct_sound_samples/cries/slowpoke_galarian.aif b/sound/direct_sound_samples/cries/slowpoke_galarian.aif index d26b930f0681..2cb7b8a5f383 100644 Binary files a/sound/direct_sound_samples/cries/slowpoke_galarian.aif and b/sound/direct_sound_samples/cries/slowpoke_galarian.aif differ diff --git a/sound/direct_sound_samples/cries/smoliv.aif b/sound/direct_sound_samples/cries/smoliv.aif new file mode 100644 index 000000000000..f30f88a1c3b3 Binary files /dev/null and b/sound/direct_sound_samples/cries/smoliv.aif differ diff --git a/sound/direct_sound_samples/cries/sneasler.aif b/sound/direct_sound_samples/cries/sneasler.aif index fa2fbef2bc46..77b4f99a213f 100644 Binary files a/sound/direct_sound_samples/cries/sneasler.aif and b/sound/direct_sound_samples/cries/sneasler.aif differ diff --git a/sound/direct_sound_samples/cries/snivy.aif b/sound/direct_sound_samples/cries/snivy.aif index fac1d4afd5e5..f7f9790a168d 100644 Binary files a/sound/direct_sound_samples/cries/snivy.aif and b/sound/direct_sound_samples/cries/snivy.aif differ diff --git a/sound/direct_sound_samples/cries/snom.aif b/sound/direct_sound_samples/cries/snom.aif index bacc67ff4211..5166e1a3847d 100644 Binary files a/sound/direct_sound_samples/cries/snom.aif and b/sound/direct_sound_samples/cries/snom.aif differ diff --git a/sound/direct_sound_samples/cries/solosis.aif b/sound/direct_sound_samples/cries/solosis.aif index fa095e378a69..875f608407b2 100644 Binary files a/sound/direct_sound_samples/cries/solosis.aif and b/sound/direct_sound_samples/cries/solosis.aif differ diff --git a/sound/direct_sound_samples/cries/spectrier.aif b/sound/direct_sound_samples/cries/spectrier.aif index 1db3088e5dd2..058cc9f8c5c4 100644 Binary files a/sound/direct_sound_samples/cries/spectrier.aif and b/sound/direct_sound_samples/cries/spectrier.aif differ diff --git a/sound/direct_sound_samples/cries/spidops.aif b/sound/direct_sound_samples/cries/spidops.aif new file mode 100644 index 000000000000..e1f2c3271588 Binary files /dev/null and b/sound/direct_sound_samples/cries/spidops.aif differ diff --git a/sound/direct_sound_samples/cries/sprigatito.aif b/sound/direct_sound_samples/cries/sprigatito.aif new file mode 100644 index 000000000000..5d6b5c966d7d Binary files /dev/null and b/sound/direct_sound_samples/cries/sprigatito.aif differ diff --git a/sound/direct_sound_samples/cries/squawkabilly.aif b/sound/direct_sound_samples/cries/squawkabilly.aif new file mode 100644 index 000000000000..140243d8026d Binary files /dev/null and b/sound/direct_sound_samples/cries/squawkabilly.aif differ diff --git a/sound/direct_sound_samples/cries/steelix_mega.aif b/sound/direct_sound_samples/cries/steelix_mega.aif new file mode 100644 index 000000000000..dfb068e1617f Binary files /dev/null and b/sound/direct_sound_samples/cries/steelix_mega.aif differ diff --git a/sound/direct_sound_samples/cries/stoutland.aif b/sound/direct_sound_samples/cries/stoutland.aif index 0f8ff740ce6c..3175b64767c6 100644 Binary files a/sound/direct_sound_samples/cries/stoutland.aif and b/sound/direct_sound_samples/cries/stoutland.aif differ diff --git a/sound/direct_sound_samples/cries/stunfisk.aif b/sound/direct_sound_samples/cries/stunfisk.aif index 309dd54c965c..5dbdb6dc9cf8 100644 Binary files a/sound/direct_sound_samples/cries/stunfisk.aif and b/sound/direct_sound_samples/cries/stunfisk.aif differ diff --git a/sound/direct_sound_samples/cries/swadloon.aif b/sound/direct_sound_samples/cries/swadloon.aif index d5b3a25c64c9..5de03159209a 100644 Binary files a/sound/direct_sound_samples/cries/swadloon.aif and b/sound/direct_sound_samples/cries/swadloon.aif differ diff --git a/sound/direct_sound_samples/cries/swampert_mega.aif b/sound/direct_sound_samples/cries/swampert_mega.aif new file mode 100644 index 000000000000..c19ec99835ae Binary files /dev/null and b/sound/direct_sound_samples/cries/swampert_mega.aif differ diff --git a/sound/direct_sound_samples/cries/swanna.aif b/sound/direct_sound_samples/cries/swanna.aif index ac9fe12aef7f..d7b01aed3bbb 100644 Binary files a/sound/direct_sound_samples/cries/swanna.aif and b/sound/direct_sound_samples/cries/swanna.aif differ diff --git a/sound/direct_sound_samples/cries/tadbulb.aif b/sound/direct_sound_samples/cries/tadbulb.aif new file mode 100644 index 000000000000..6944fa31dcc6 Binary files /dev/null and b/sound/direct_sound_samples/cries/tadbulb.aif differ diff --git a/sound/direct_sound_samples/cries/tandemaus.aif b/sound/direct_sound_samples/cries/tandemaus.aif new file mode 100644 index 000000000000..c6aeb27e0c38 Binary files /dev/null and b/sound/direct_sound_samples/cries/tandemaus.aif differ diff --git a/sound/direct_sound_samples/cries/tarountula.aif b/sound/direct_sound_samples/cries/tarountula.aif new file mode 100644 index 000000000000..a08f51ee202e Binary files /dev/null and b/sound/direct_sound_samples/cries/tarountula.aif differ diff --git a/sound/direct_sound_samples/cries/tatsugiri_curly.aif b/sound/direct_sound_samples/cries/tatsugiri_curly.aif new file mode 100644 index 000000000000..ad84b372853c Binary files /dev/null and b/sound/direct_sound_samples/cries/tatsugiri_curly.aif differ diff --git a/sound/direct_sound_samples/cries/tatsugiri_droopy.aif b/sound/direct_sound_samples/cries/tatsugiri_droopy.aif new file mode 100644 index 000000000000..38b0a7949a5b Binary files /dev/null and b/sound/direct_sound_samples/cries/tatsugiri_droopy.aif differ diff --git a/sound/direct_sound_samples/cries/tatsugiri_stretchy.aif b/sound/direct_sound_samples/cries/tatsugiri_stretchy.aif new file mode 100644 index 000000000000..ad1fbe930b10 Binary files /dev/null and b/sound/direct_sound_samples/cries/tatsugiri_stretchy.aif differ diff --git a/sound/direct_sound_samples/cries/tepig.aif b/sound/direct_sound_samples/cries/tepig.aif index 63b19c40bc6f..fa226ef1f174 100644 Binary files a/sound/direct_sound_samples/cries/tepig.aif and b/sound/direct_sound_samples/cries/tepig.aif differ diff --git a/sound/direct_sound_samples/cries/terrakion.aif b/sound/direct_sound_samples/cries/terrakion.aif index dcae3a46585a..77e5c71ca280 100644 Binary files a/sound/direct_sound_samples/cries/terrakion.aif and b/sound/direct_sound_samples/cries/terrakion.aif differ diff --git a/sound/direct_sound_samples/cries/throh.aif b/sound/direct_sound_samples/cries/throh.aif index 5192e50ac8f7..176d1065d6c1 100644 Binary files a/sound/direct_sound_samples/cries/throh.aif and b/sound/direct_sound_samples/cries/throh.aif differ diff --git a/sound/direct_sound_samples/cries/thundurus.aif b/sound/direct_sound_samples/cries/thundurus_incarnate.aif similarity index 100% rename from sound/direct_sound_samples/cries/thundurus.aif rename to sound/direct_sound_samples/cries/thundurus_incarnate.aif diff --git a/sound/direct_sound_samples/cries/thwackey.aif b/sound/direct_sound_samples/cries/thwackey.aif index bd30a0c0e098..dff37f5c806a 100644 Binary files a/sound/direct_sound_samples/cries/thwackey.aif and b/sound/direct_sound_samples/cries/thwackey.aif differ diff --git a/sound/direct_sound_samples/cries/timburr.aif b/sound/direct_sound_samples/cries/timburr.aif index 1374144d52c8..839bfb59b734 100644 Binary files a/sound/direct_sound_samples/cries/timburr.aif and b/sound/direct_sound_samples/cries/timburr.aif differ diff --git a/sound/direct_sound_samples/cries/ting_lu.aif b/sound/direct_sound_samples/cries/ting_lu.aif new file mode 100644 index 000000000000..82cbff16f33e Binary files /dev/null and b/sound/direct_sound_samples/cries/ting_lu.aif differ diff --git a/sound/direct_sound_samples/cries/tinkatink.aif b/sound/direct_sound_samples/cries/tinkatink.aif new file mode 100644 index 000000000000..24b50dbbf041 Binary files /dev/null and b/sound/direct_sound_samples/cries/tinkatink.aif differ diff --git a/sound/direct_sound_samples/cries/tinkaton.aif b/sound/direct_sound_samples/cries/tinkaton.aif new file mode 100644 index 000000000000..c48068f69263 Binary files /dev/null and b/sound/direct_sound_samples/cries/tinkaton.aif differ diff --git a/sound/direct_sound_samples/cries/tinkatuff.aif b/sound/direct_sound_samples/cries/tinkatuff.aif new file mode 100644 index 000000000000..aa096ef11322 Binary files /dev/null and b/sound/direct_sound_samples/cries/tinkatuff.aif differ diff --git a/sound/direct_sound_samples/cries/tirtouga.aif b/sound/direct_sound_samples/cries/tirtouga.aif index 0df1a695add2..d32ec5ef3c13 100644 Binary files a/sound/direct_sound_samples/cries/tirtouga.aif and b/sound/direct_sound_samples/cries/tirtouga.aif differ diff --git a/sound/direct_sound_samples/cries/toedscool.aif b/sound/direct_sound_samples/cries/toedscool.aif new file mode 100644 index 000000000000..a153ed4d87d0 Binary files /dev/null and b/sound/direct_sound_samples/cries/toedscool.aif differ diff --git a/sound/direct_sound_samples/cries/toedscruel.aif b/sound/direct_sound_samples/cries/toedscruel.aif new file mode 100644 index 000000000000..87fc37decde4 Binary files /dev/null and b/sound/direct_sound_samples/cries/toedscruel.aif differ diff --git a/sound/direct_sound_samples/cries/tornadus.aif b/sound/direct_sound_samples/cries/tornadus.aif deleted file mode 100644 index 17107f6e2a1a..000000000000 Binary files a/sound/direct_sound_samples/cries/tornadus.aif and /dev/null differ diff --git a/sound/direct_sound_samples/cries/tornadus_incarnate.aif b/sound/direct_sound_samples/cries/tornadus_incarnate.aif new file mode 100644 index 000000000000..30f96ec8fe50 Binary files /dev/null and b/sound/direct_sound_samples/cries/tornadus_incarnate.aif differ diff --git a/sound/direct_sound_samples/cries/toxel.aif b/sound/direct_sound_samples/cries/toxel.aif index a53da654a5fb..2f1304295b2f 100644 Binary files a/sound/direct_sound_samples/cries/toxel.aif and b/sound/direct_sound_samples/cries/toxel.aif differ diff --git a/sound/direct_sound_samples/cries/toxtricity.aif b/sound/direct_sound_samples/cries/toxtricity_amped.aif similarity index 100% rename from sound/direct_sound_samples/cries/toxtricity.aif rename to sound/direct_sound_samples/cries/toxtricity_amped.aif diff --git a/sound/direct_sound_samples/cries/tranquill.aif b/sound/direct_sound_samples/cries/tranquill.aif index f5c652fb1193..e11795686b7d 100644 Binary files a/sound/direct_sound_samples/cries/tranquill.aif and b/sound/direct_sound_samples/cries/tranquill.aif differ diff --git a/sound/direct_sound_samples/cries/trubbish.aif b/sound/direct_sound_samples/cries/trubbish.aif index 321f1baa115b..7bde68d8ca74 100644 Binary files a/sound/direct_sound_samples/cries/trubbish.aif and b/sound/direct_sound_samples/cries/trubbish.aif differ diff --git a/sound/direct_sound_samples/cries/tympole.aif b/sound/direct_sound_samples/cries/tympole.aif index 774317ffbaae..172aab0560ef 100644 Binary files a/sound/direct_sound_samples/cries/tympole.aif and b/sound/direct_sound_samples/cries/tympole.aif differ diff --git a/sound/direct_sound_samples/cries/tynamo.aif b/sound/direct_sound_samples/cries/tynamo.aif index bbb08cfdc7cb..647040c17aca 100644 Binary files a/sound/direct_sound_samples/cries/tynamo.aif and b/sound/direct_sound_samples/cries/tynamo.aif differ diff --git a/sound/direct_sound_samples/cries/tyranitar_mega.aif b/sound/direct_sound_samples/cries/tyranitar_mega.aif new file mode 100644 index 000000000000..020118b388e7 Binary files /dev/null and b/sound/direct_sound_samples/cries/tyranitar_mega.aif differ diff --git a/sound/direct_sound_samples/cries/uncomp_klefki.aif b/sound/direct_sound_samples/cries/uncomp_klefki.aif index 4ffa19b57599..4af6a9d6d18b 100644 Binary files a/sound/direct_sound_samples/cries/uncomp_klefki.aif and b/sound/direct_sound_samples/cries/uncomp_klefki.aif differ diff --git a/sound/direct_sound_samples/cries/uncomp_oricorio_pom_pom.aif b/sound/direct_sound_samples/cries/uncomp_oricorio_pom_pom.aif new file mode 100644 index 000000000000..a37b0537ecf8 Binary files /dev/null and b/sound/direct_sound_samples/cries/uncomp_oricorio_pom_pom.aif differ diff --git a/sound/direct_sound_samples/cries/unfezant.aif b/sound/direct_sound_samples/cries/unfezant.aif index dadbed9480b1..4a3a8a9b0714 100644 Binary files a/sound/direct_sound_samples/cries/unfezant.aif and b/sound/direct_sound_samples/cries/unfezant.aif differ diff --git a/sound/direct_sound_samples/cries/ursaluna.aif b/sound/direct_sound_samples/cries/ursaluna.aif index 7f054dc5cb43..f2e96997f135 100644 Binary files a/sound/direct_sound_samples/cries/ursaluna.aif and b/sound/direct_sound_samples/cries/ursaluna.aif differ diff --git a/sound/direct_sound_samples/cries/urshifu.aif b/sound/direct_sound_samples/cries/urshifu_single_strike_style.aif similarity index 100% rename from sound/direct_sound_samples/cries/urshifu.aif rename to sound/direct_sound_samples/cries/urshifu_single_strike_style.aif diff --git a/sound/direct_sound_samples/cries/vanillish.aif b/sound/direct_sound_samples/cries/vanillish.aif index e53b51040b5a..07fe3555e453 100644 Binary files a/sound/direct_sound_samples/cries/vanillish.aif and b/sound/direct_sound_samples/cries/vanillish.aif differ diff --git a/sound/direct_sound_samples/cries/vanillite.aif b/sound/direct_sound_samples/cries/vanillite.aif index 72bbe2485dc3..e982d31bee80 100644 Binary files a/sound/direct_sound_samples/cries/vanillite.aif and b/sound/direct_sound_samples/cries/vanillite.aif differ diff --git a/sound/direct_sound_samples/cries/vanilluxe.aif b/sound/direct_sound_samples/cries/vanilluxe.aif index 45f2d085de40..94b6f0349209 100644 Binary files a/sound/direct_sound_samples/cries/vanilluxe.aif and b/sound/direct_sound_samples/cries/vanilluxe.aif differ diff --git a/sound/direct_sound_samples/cries/varoom.aif b/sound/direct_sound_samples/cries/varoom.aif new file mode 100644 index 000000000000..731bdce2d6be Binary files /dev/null and b/sound/direct_sound_samples/cries/varoom.aif differ diff --git a/sound/direct_sound_samples/cries/veluza.aif b/sound/direct_sound_samples/cries/veluza.aif new file mode 100644 index 000000000000..9bcf8974ff37 Binary files /dev/null and b/sound/direct_sound_samples/cries/veluza.aif differ diff --git a/sound/direct_sound_samples/cries/venipede.aif b/sound/direct_sound_samples/cries/venipede.aif index 43a663981566..4ccde9b76874 100644 Binary files a/sound/direct_sound_samples/cries/venipede.aif and b/sound/direct_sound_samples/cries/venipede.aif differ diff --git a/sound/direct_sound_samples/cries/venusaur_mega.aif b/sound/direct_sound_samples/cries/venusaur_mega.aif new file mode 100644 index 000000000000..cec11aaae2a2 Binary files /dev/null and b/sound/direct_sound_samples/cries/venusaur_mega.aif differ diff --git a/sound/direct_sound_samples/cries/victini.aif b/sound/direct_sound_samples/cries/victini.aif index 31801a064cdf..4bd7d7c1caea 100644 Binary files a/sound/direct_sound_samples/cries/victini.aif and b/sound/direct_sound_samples/cries/victini.aif differ diff --git a/sound/direct_sound_samples/cries/virizion.aif b/sound/direct_sound_samples/cries/virizion.aif index 296aaa829eed..06cf7a86f3ca 100644 Binary files a/sound/direct_sound_samples/cries/virizion.aif and b/sound/direct_sound_samples/cries/virizion.aif differ diff --git a/sound/direct_sound_samples/cries/vullaby.aif b/sound/direct_sound_samples/cries/vullaby.aif index 41beb9ed6071..97df0d14f9e6 100644 Binary files a/sound/direct_sound_samples/cries/vullaby.aif and b/sound/direct_sound_samples/cries/vullaby.aif differ diff --git a/sound/direct_sound_samples/cries/walking_wake.aif b/sound/direct_sound_samples/cries/walking_wake.aif new file mode 100644 index 000000000000..88518dd20053 Binary files /dev/null and b/sound/direct_sound_samples/cries/walking_wake.aif differ diff --git a/sound/direct_sound_samples/cries/watchog.aif b/sound/direct_sound_samples/cries/watchog.aif index e5f35aa07bd1..a3bd8a0f7ed0 100644 Binary files a/sound/direct_sound_samples/cries/watchog.aif and b/sound/direct_sound_samples/cries/watchog.aif differ diff --git a/sound/direct_sound_samples/cries/wattrel.aif b/sound/direct_sound_samples/cries/wattrel.aif new file mode 100644 index 000000000000..7390eea50a78 Binary files /dev/null and b/sound/direct_sound_samples/cries/wattrel.aif differ diff --git a/sound/direct_sound_samples/cries/whirlipede.aif b/sound/direct_sound_samples/cries/whirlipede.aif index 09628dce6e67..f2b6c5fa69e9 100644 Binary files a/sound/direct_sound_samples/cries/whirlipede.aif and b/sound/direct_sound_samples/cries/whirlipede.aif differ diff --git a/sound/direct_sound_samples/cries/wiglett.aif b/sound/direct_sound_samples/cries/wiglett.aif new file mode 100644 index 000000000000..d377681aef48 Binary files /dev/null and b/sound/direct_sound_samples/cries/wiglett.aif differ diff --git a/sound/direct_sound_samples/cries/wishiwashi_school.aif b/sound/direct_sound_samples/cries/wishiwashi_school.aif index 6236328ff720..ab0ac985354e 100644 Binary files a/sound/direct_sound_samples/cries/wishiwashi_school.aif and b/sound/direct_sound_samples/cries/wishiwashi_school.aif differ diff --git a/sound/direct_sound_samples/cries/wishiwashi.aif b/sound/direct_sound_samples/cries/wishiwashi_solo.aif similarity index 100% rename from sound/direct_sound_samples/cries/wishiwashi.aif rename to sound/direct_sound_samples/cries/wishiwashi_solo.aif diff --git a/sound/direct_sound_samples/cries/wo_chien.aif b/sound/direct_sound_samples/cries/wo_chien.aif new file mode 100644 index 000000000000..fa201694ebe5 Binary files /dev/null and b/sound/direct_sound_samples/cries/wo_chien.aif differ diff --git a/sound/direct_sound_samples/cries/woobat.aif b/sound/direct_sound_samples/cries/woobat.aif index 4aa987aa0419..d66f5bd15719 100644 Binary files a/sound/direct_sound_samples/cries/woobat.aif and b/sound/direct_sound_samples/cries/woobat.aif differ diff --git a/sound/direct_sound_samples/cries/wugtrio.aif b/sound/direct_sound_samples/cries/wugtrio.aif new file mode 100644 index 000000000000..6c92cae87391 Binary files /dev/null and b/sound/direct_sound_samples/cries/wugtrio.aif differ diff --git a/sound/direct_sound_samples/cries/wyrdeer.aif b/sound/direct_sound_samples/cries/wyrdeer.aif index 4e932c758c64..4d0c83dc517f 100644 Binary files a/sound/direct_sound_samples/cries/wyrdeer.aif and b/sound/direct_sound_samples/cries/wyrdeer.aif differ diff --git a/sound/direct_sound_samples/cries/zacian_crowned_sword.aif b/sound/direct_sound_samples/cries/zacian_crowned_sword.aif index 19d9d6673757..5e47f9275b54 100644 Binary files a/sound/direct_sound_samples/cries/zacian_crowned_sword.aif and b/sound/direct_sound_samples/cries/zacian_crowned_sword.aif differ diff --git a/sound/direct_sound_samples/cries/zacian.aif b/sound/direct_sound_samples/cries/zacian_hero_of_many_battles.aif similarity index 100% rename from sound/direct_sound_samples/cries/zacian.aif rename to sound/direct_sound_samples/cries/zacian_hero_of_many_battles.aif diff --git a/sound/direct_sound_samples/cries/zamazenta_crowned_shield.aif b/sound/direct_sound_samples/cries/zamazenta_crowned_shield.aif index 5542b20a658b..1e7eae771ba5 100644 Binary files a/sound/direct_sound_samples/cries/zamazenta_crowned_shield.aif and b/sound/direct_sound_samples/cries/zamazenta_crowned_shield.aif differ diff --git a/sound/direct_sound_samples/cries/zamazenta.aif b/sound/direct_sound_samples/cries/zamazenta_hero_of_many_battles.aif similarity index 100% rename from sound/direct_sound_samples/cries/zamazenta.aif rename to sound/direct_sound_samples/cries/zamazenta_hero_of_many_battles.aif diff --git a/sound/direct_sound_samples/cries/zarude.aif b/sound/direct_sound_samples/cries/zarude.aif index 61c87f5a3bcd..d1a2a76aa4a0 100644 Binary files a/sound/direct_sound_samples/cries/zarude.aif and b/sound/direct_sound_samples/cries/zarude.aif differ diff --git a/sound/direct_sound_samples/cries/zebstrika.aif b/sound/direct_sound_samples/cries/zebstrika.aif index ed075a857ffd..74ef8d943aff 100644 Binary files a/sound/direct_sound_samples/cries/zebstrika.aif and b/sound/direct_sound_samples/cries/zebstrika.aif differ diff --git a/sound/direct_sound_samples/cries/zoroark.aif b/sound/direct_sound_samples/cries/zoroark.aif index 6184a67bd516..7cd45de062c1 100644 Binary files a/sound/direct_sound_samples/cries/zoroark.aif and b/sound/direct_sound_samples/cries/zoroark.aif differ diff --git a/sound/direct_sound_samples/cries/zorua.aif b/sound/direct_sound_samples/cries/zorua.aif index aa5e68644675..039955ac19d8 100644 Binary files a/sound/direct_sound_samples/cries/zorua.aif and b/sound/direct_sound_samples/cries/zorua.aif differ diff --git a/sound/direct_sound_samples/cries/zweilous.aif b/sound/direct_sound_samples/cries/zweilous.aif index a4db32468391..987f436d9a81 100644 Binary files a/sound/direct_sound_samples/cries/zweilous.aif and b/sound/direct_sound_samples/cries/zweilous.aif differ diff --git a/sound/direct_sound_samples/cries/zygarde.aif b/sound/direct_sound_samples/cries/zygarde_50.aif similarity index 100% rename from sound/direct_sound_samples/cries/zygarde.aif rename to sound/direct_sound_samples/cries/zygarde_50.aif diff --git a/src/apprentice.c b/src/apprentice.c index f2339325e631..2d2a1fdbebee 100644 --- a/src/apprentice.c +++ b/src/apprentice.c @@ -343,7 +343,7 @@ static u16 GetRandomAlternateMove(u8 monId) id = APPRENTICE_SPECIES_ID(monId); species = gApprentices[PLAYER_APPRENTICE.id].species[id]; - learnset = gLevelUpLearnsets[species]; + learnset = GetSpeciesLevelUpLearnset(species); j = 0; if (PLAYER_APPRENTICE.lvlMode == APPRENTICE_LVL_MODE_50) @@ -467,7 +467,7 @@ static void GetLatestLearnedMoves(u16 species, u16 *moves) else // == APPRENTICE_LVL_MODE_OPEN level = 60; - learnset = gLevelUpLearnsets[species]; + learnset = GetSpeciesLevelUpLearnset(species); for (i = 0; learnset[i].move != LEVEL_UP_MOVE_END; i++) { if (learnset[i].level > level) diff --git a/src/battle_ai_main.c b/src/battle_ai_main.c index 03a41733aae8..4f7d04438b3f 100644 --- a/src/battle_ai_main.c +++ b/src/battle_ai_main.c @@ -388,7 +388,6 @@ static void SetBattlerAiMovesData(struct AiLogicData *aiData, u32 battlerAtk, u3 aiData->effectiveness[battlerAtk][battlerDef][i] = effectiveness; } } - SetMovesDamageResults(battlerAtk, moves); } void SetAiLogicDataForTurn(struct AiLogicData *aiData) @@ -417,7 +416,7 @@ void SetAiLogicDataForTurn(struct AiLogicData *aiData) static bool32 AI_SwitchMonIfSuitable(u32 battler) { - u32 monToSwitchId = GetMostSuitableMonToSwitchInto(battler); + u32 monToSwitchId = AI_DATA->mostSuitableMonId; if (monToSwitchId != PARTY_SIZE) { AI_DATA->shouldSwitchMon |= gBitTable[battler]; @@ -579,6 +578,7 @@ static u32 ChooseMoveOrAction_Doubles(u32 battlerAi) AI_THINKING_STRUCT->aiLogicId = 0; AI_THINKING_STRUCT->movesetIndex = 0; flags = AI_THINKING_STRUCT->aiFlags; + while (flags != 0) { if (flags & 1) @@ -760,6 +760,9 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) if (IsSemiInvulnerable(battlerDef, move) && moveEffect != EFFECT_SEMI_INVULNERABLE && AI_WhoStrikesFirst(battlerAtk, battlerDef, move) == AI_IS_FASTER) RETURN_SCORE_MINUS(20); // if target off screen and we go first, don't use move + if (IsChargingMove(battlerAtk, moveEffect) && CanTargetFaintAi(battlerDef, battlerAtk)) + RETURN_SCORE_MINUS(10); + // check if negates type switch (effectiveness) { @@ -847,7 +850,7 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) RETURN_SCORE_MINUS(10); break; case ABILITY_FLOWER_VEIL: - if (IS_BATTLER_OF_TYPE(battlerDef, TYPE_GRASS) && (IsNonVolatileStatusMoveEffect(moveEffect) || IsStatLoweringMoveEffect(moveEffect))) + if (IS_BATTLER_OF_TYPE(battlerDef, TYPE_GRASS) && (IsNonVolatileStatusMoveEffect(moveEffect) || IsStatLoweringEffect(moveEffect))) RETURN_SCORE_MINUS(10); break; case ABILITY_MAGIC_BOUNCE: @@ -855,13 +858,13 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) RETURN_SCORE_MINUS(20); break; case ABILITY_CONTRARY: - if (IsStatLoweringMoveEffect(moveEffect)) + if (IsStatLoweringEffect(moveEffect)) RETURN_SCORE_MINUS(20); break; case ABILITY_CLEAR_BODY: case ABILITY_FULL_METAL_BODY: case ABILITY_WHITE_SMOKE: - if (IsStatLoweringMoveEffect(moveEffect)) + if (IsStatLoweringEffect(moveEffect)) RETURN_SCORE_MINUS(10); break; case ABILITY_HYPER_CUTTER: @@ -869,6 +872,10 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) && move != MOVE_PLAY_NICE && move != MOVE_NOBLE_ROAR && move != MOVE_TEARFUL_LOOK && move != MOVE_VENOM_DRENCH) RETURN_SCORE_MINUS(10); break; + case ABILITY_ILLUMINATE: + if (B_ILLUMINATE_EFFECT < GEN_9) + break; + // fallthrough case ABILITY_KEEN_EYE: if (moveEffect == EFFECT_ACCURACY_DOWN || moveEffect == EFFECT_ACCURACY_DOWN_2) RETURN_SCORE_MINUS(10); @@ -879,7 +886,7 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) break; case ABILITY_DEFIANT: case ABILITY_COMPETITIVE: - if (IsStatLoweringMoveEffect(moveEffect) && !IS_TARGETING_PARTNER(battlerAtk, battlerDef)) + if (IsStatLoweringEffect(moveEffect) && !IS_TARGETING_PARTNER(battlerAtk, battlerDef)) RETURN_SCORE_MINUS(8); break; case ABILITY_COMATOSE: @@ -920,7 +927,7 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) RETURN_SCORE_MINUS(20); break; case ABILITY_FLOWER_VEIL: - if ((IS_BATTLER_OF_TYPE(battlerDef, TYPE_GRASS)) && (IsNonVolatileStatusMoveEffect(moveEffect) || IsStatLoweringMoveEffect(moveEffect))) + if ((IS_BATTLER_OF_TYPE(battlerDef, TYPE_GRASS)) && (IsNonVolatileStatusMoveEffect(moveEffect) || IsStatLoweringEffect(moveEffect))) RETURN_SCORE_MINUS(10); break; case ABILITY_AROMA_VEIL: @@ -1292,7 +1299,7 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) case EFFECT_ACCURACY_DOWN_2: if (!ShouldLowerStat(battlerDef, aiData->abilities[battlerDef], STAT_ACC)) ADJUST_SCORE(-10); - else if (aiData->abilities[battlerDef] == ABILITY_KEEN_EYE) + else if (aiData->abilities[battlerDef] == ABILITY_KEEN_EYE || (B_ILLUMINATE_EFFECT >= GEN_9 && aiData->abilities[battlerDef] == ABILITY_ILLUMINATE)) ADJUST_SCORE(-8); break; case EFFECT_EVASION_DOWN: @@ -1352,22 +1359,13 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) } break; //case EFFECT_BIDE: - //case EFFECT_SUPER_FANG: //case EFFECT_RECHARGE: - case EFFECT_LEVEL_DAMAGE: - case EFFECT_PSYWAVE: //case EFFECT_COUNTER: - //case EFFECT_FLAIL: - case EFFECT_RETURN: case EFFECT_PRESENT: - case EFFECT_FRUSTRATION: case EFFECT_SONICBOOM: //case EFFECT_MIRROR_COAT: - case EFFECT_SKULL_BASH: case EFFECT_FOCUS_PUNCH: - case EFFECT_SUPERPOWER: //case EFFECT_ENDEAVOR: - case EFFECT_LOW_KICK: // AI_CBM_HighRiskForDamage if (aiData->abilities[battlerDef] == ABILITY_WONDER_GUARD && effectiveness < AI_EFFECTIVENESS_x2) ADJUST_SCORE(-10); @@ -1680,10 +1678,6 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) if (gDisableStructs[battlerAtk].stockpileCounter >= 3) ADJUST_SCORE(-10); break; - case EFFECT_SPIT_UP: - if (gDisableStructs[battlerAtk].stockpileCounter <= 1) - ADJUST_SCORE(-10); - break; case EFFECT_SWALLOW: if (gDisableStructs[battlerAtk].stockpileCounter == 0) { @@ -1906,17 +1900,6 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) || (gBattleMons[battlerDef].status2 & (STATUS2_TRANSFORMED | STATUS2_SUBSTITUTE))) //Leave out Illusion b/c AI is supposed to be fooled ADJUST_SCORE(-10); break; - case EFFECT_TWO_TURNS_ATTACK: - if (aiData->holdEffects[battlerAtk] != HOLD_EFFECT_POWER_HERB && CanTargetFaintAi(battlerDef, battlerAtk)) - ADJUST_SCORE(-6); - break; - case EFFECT_RECHARGE: - if (aiData->abilities[battlerDef] == ABILITY_WONDER_GUARD && effectiveness < AI_EFFECTIVENESS_x2) - ADJUST_SCORE(-10); - else if (aiData->abilities[battlerAtk] != ABILITY_TRUANT - && !CanIndexMoveFaintTarget(battlerAtk, battlerDef, AI_THINKING_STRUCT->movesetIndex, 0)) - ADJUST_SCORE(-2); - break; case EFFECT_SPITE: case EFFECT_MIMIC: if (AI_WhoStrikesFirst(battlerAtk, battlerDef, move) == AI_IS_FASTER) // Attacker should go first @@ -2109,13 +2092,6 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) break; case EFFECT_SPECTRAL_THIEF: break; - case EFFECT_SOLAR_BEAM: - if (aiData->holdEffects[battlerAtk] == HOLD_EFFECT_POWER_HERB - || ((AI_GetWeather(aiData) & B_WEATHER_SUN) && aiData->holdEffects[battlerAtk] != HOLD_EFFECT_UTILITY_UMBRELLA)) - break; - if (CanTargetFaintAi(battlerDef, battlerAtk)) //Attacker can be knocked out - ADJUST_SCORE(-4); - break; case EFFECT_SEMI_INVULNERABLE: if (predictedMove != MOVE_NONE && AI_WhoStrikesFirst(battlerAtk, battlerDef, move) == AI_IS_SLOWER @@ -2674,6 +2650,10 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) && !BattlerStatCanRise(battlerAtk, aiData->abilities[battlerAtk], STAT_SPDEF)) ADJUST_SCORE(-10); break; + case EFFECT_LOW_KICK: + if (IsDynamaxed(battlerDef)) + ADJUST_SCORE(-10); + break; case EFFECT_PLACEHOLDER: return 0; // cannot even select } // move effect checks @@ -2687,36 +2667,25 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) static s32 AI_TryToFaint(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) { u32 movesetIndex = AI_THINKING_STRUCT->movesetIndex; - bool32 aiFaster; if (IS_TARGETING_PARTNER(battlerAtk, battlerDef)) return score; if (gBattleMoves[move].power == 0) - return score; // can't make anything faint with no power + return score; // can't make anything faint with no power - aiFaster = AI_STRIKES_FIRST(battlerAtk, battlerDef, move); if (CanIndexMoveFaintTarget(battlerAtk, battlerDef, movesetIndex, 0) && gBattleMoves[move].effect != EFFECT_EXPLOSION) { - // this move can faint the target - if (aiFaster || GetMovePriority(battlerAtk, move) > 0) - ADJUST_SCORE(5); // we go first or we're using priority move + if (AI_STRIKES_FIRST(battlerAtk, battlerDef, move)) + ADJUST_SCORE(5); // Move hits first and can faint the target else - ADJUST_SCORE(4); + ADJUST_SCORE(4); // Faints target but slower } - else + else if (CanTargetFaintAi(battlerDef, battlerAtk) + && GetWhichBattlerFaster(battlerAtk, battlerDef, TRUE) != AI_IS_FASTER + && GetMovePriority(battlerAtk, move) > 0) { - if (GetMoveDamageResult(battlerAtk, battlerDef, movesetIndex) == MOVE_POWER_OTHER) - ADJUST_SCORE(-1); - } - - //AI_TryToFaint_CheckIfDanger - if (!aiFaster && CanTargetFaintAi(battlerDef, battlerAtk)) - { // AI_TryToFaint_Danger - if (GetMoveDamageResult(battlerAtk, battlerDef, movesetIndex) != MOVE_POWER_BEST) - ADJUST_SCORE(-1); - else - ADJUST_SCORE(1); + ADJUST_SCORE(2); // If slower and target can kill } return score; @@ -2846,113 +2815,110 @@ static s32 AI_DoubleBattle(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) // check specific target if (IS_TARGETING_PARTNER(battlerAtk, battlerDef)) { - if (GetMoveDamageResult(battlerAtk, battlerDef, AI_THINKING_STRUCT->movesetIndex) == MOVE_POWER_OTHER) + // partner ability checks + if (!partnerProtecting && moveTarget != MOVE_TARGET_BOTH && !DoesBattlerIgnoreAbilityChecks(aiData->abilities[battlerAtk], move)) { - // partner ability checks - if (!partnerProtecting && moveTarget != MOVE_TARGET_BOTH && !DoesBattlerIgnoreAbilityChecks(aiData->abilities[battlerAtk], move)) + switch (atkPartnerAbility) { - switch (atkPartnerAbility) + case ABILITY_VOLT_ABSORB: + if (!(AI_THINKING_STRUCT->aiFlags & AI_FLAG_HP_AWARE)) { - case ABILITY_VOLT_ABSORB: - if (!(AI_THINKING_STRUCT->aiFlags & AI_FLAG_HP_AWARE)) - { - RETURN_SCORE_MINUS(10); - } - break; // handled in AI_HPAware - case ABILITY_MOTOR_DRIVE: - if (moveType == TYPE_ELECTRIC && BattlerStatCanRise(battlerAtkPartner, atkPartnerAbility, STAT_SPEED)) - { - RETURN_SCORE_PLUS(1); - } - break; - case ABILITY_LIGHTNING_ROD: - if (moveType == TYPE_ELECTRIC - && HasMoveWithSplit(battlerAtkPartner, SPLIT_SPECIAL) - && BattlerStatCanRise(battlerAtkPartner, atkPartnerAbility, STAT_SPATK)) - { - RETURN_SCORE_PLUS(1); - } - break; - case ABILITY_WATER_ABSORB: - case ABILITY_DRY_SKIN: - if (!(AI_THINKING_STRUCT->aiFlags & AI_FLAG_HP_AWARE)) - { - RETURN_SCORE_MINUS(10); - } - break; // handled in AI_HPAware - case ABILITY_STORM_DRAIN: - if (moveType == TYPE_WATER - && HasMoveWithSplit(battlerAtkPartner, SPLIT_SPECIAL) - && BattlerStatCanRise(battlerAtkPartner, atkPartnerAbility, STAT_SPATK)) - { - RETURN_SCORE_PLUS(1); - } - break; - case ABILITY_WATER_COMPACTION: - if (moveType == TYPE_WATER && GetMoveDamageResult(battlerAtk, battlerDef, AI_THINKING_STRUCT->movesetIndex) == MOVE_POWER_WEAK) - { - RETURN_SCORE_PLUS(1); // only mon with this ability is weak to water so only make it okay if we do very little damage - } RETURN_SCORE_MINUS(10); - break; - case ABILITY_FLASH_FIRE: - if (moveType == TYPE_FIRE - && HasMoveWithType(battlerAtkPartner, TYPE_FIRE) - && !(gBattleResources->flags->flags[battlerAtkPartner] & RESOURCE_FLAG_FLASH_FIRE)) - { - RETURN_SCORE_PLUS(1); - } - break; - case ABILITY_SAP_SIPPER: - if (moveType == TYPE_GRASS - && HasMoveWithSplit(battlerAtkPartner, SPLIT_PHYSICAL) - && BattlerStatCanRise(battlerAtkPartner, atkPartnerAbility, STAT_ATK)) - { - RETURN_SCORE_PLUS(1); - } - break; - case ABILITY_JUSTIFIED: - if (moveType == TYPE_DARK - && !IS_MOVE_STATUS(move) - && HasMoveWithSplit(battlerAtkPartner, SPLIT_PHYSICAL) - && BattlerStatCanRise(battlerAtkPartner, atkPartnerAbility, STAT_ATK) - && !CanIndexMoveFaintTarget(battlerAtk, battlerAtkPartner, AI_THINKING_STRUCT->movesetIndex, 1)) - { - RETURN_SCORE_PLUS(1); - } - break; - case ABILITY_RATTLED: - if (!IS_MOVE_STATUS(move) - && (moveType == TYPE_DARK || moveType == TYPE_GHOST || moveType == TYPE_BUG) - && BattlerStatCanRise(battlerAtkPartner, atkPartnerAbility, STAT_SPEED) - && !CanIndexMoveFaintTarget(battlerAtk, battlerAtkPartner, AI_THINKING_STRUCT->movesetIndex, 1)) - { - RETURN_SCORE_PLUS(1); - } - break; - case ABILITY_CONTRARY: - if (IsStatLoweringEffect(effect)) - { - RETURN_SCORE_PLUS(2); - } - break; - case ABILITY_DEFIANT: - if (IsStatLoweringEffect(effect) - && BattlerStatCanRise(battlerAtkPartner, atkPartnerAbility, STAT_ATK)) - { - RETURN_SCORE_PLUS(1); - } - break; - case ABILITY_COMPETITIVE: - if (IsStatLoweringEffect(effect) - && BattlerStatCanRise(battlerAtkPartner, atkPartnerAbility, STAT_SPATK)) - { - RETURN_SCORE_PLUS(1); - } - break; } - } // ability checks - } // move power check + break; // handled in AI_HPAware + case ABILITY_MOTOR_DRIVE: + if (moveType == TYPE_ELECTRIC && BattlerStatCanRise(battlerAtkPartner, atkPartnerAbility, STAT_SPEED)) + { + RETURN_SCORE_PLUS(1); + } + break; + case ABILITY_LIGHTNING_ROD: + if (moveType == TYPE_ELECTRIC + && HasMoveWithSplit(battlerAtkPartner, SPLIT_SPECIAL) + && BattlerStatCanRise(battlerAtkPartner, atkPartnerAbility, STAT_SPATK)) + { + RETURN_SCORE_PLUS(1); + } + break; + case ABILITY_WATER_ABSORB: + case ABILITY_DRY_SKIN: + if (!(AI_THINKING_STRUCT->aiFlags & AI_FLAG_HP_AWARE)) + { + RETURN_SCORE_MINUS(10); + } + break; // handled in AI_HPAware + case ABILITY_STORM_DRAIN: + if (moveType == TYPE_WATER + && HasMoveWithSplit(battlerAtkPartner, SPLIT_SPECIAL) + && BattlerStatCanRise(battlerAtkPartner, atkPartnerAbility, STAT_SPATK)) + { + RETURN_SCORE_PLUS(1); + } + break; + case ABILITY_WATER_COMPACTION: + if (moveType == TYPE_WATER && GetNoOfHitsToKOBattler(battlerAtk, battlerDef, AI_THINKING_STRUCT->movesetIndex) >= 4) + { + RETURN_SCORE_PLUS(1); // only mon with this ability is weak to water so only make it okay if we do very little damage + } + RETURN_SCORE_MINUS(10); + break; + case ABILITY_FLASH_FIRE: + if (moveType == TYPE_FIRE + && HasMoveWithType(battlerAtkPartner, TYPE_FIRE) + && !(gBattleResources->flags->flags[battlerAtkPartner] & RESOURCE_FLAG_FLASH_FIRE)) + { + RETURN_SCORE_PLUS(1); + } + break; + case ABILITY_SAP_SIPPER: + if (moveType == TYPE_GRASS + && HasMoveWithSplit(battlerAtkPartner, SPLIT_PHYSICAL) + && BattlerStatCanRise(battlerAtkPartner, atkPartnerAbility, STAT_ATK)) + { + RETURN_SCORE_PLUS(1); + } + break; + case ABILITY_JUSTIFIED: + if (moveType == TYPE_DARK + && !IS_MOVE_STATUS(move) + && HasMoveWithSplit(battlerAtkPartner, SPLIT_PHYSICAL) + && BattlerStatCanRise(battlerAtkPartner, atkPartnerAbility, STAT_ATK) + && !CanIndexMoveFaintTarget(battlerAtk, battlerAtkPartner, AI_THINKING_STRUCT->movesetIndex, 1)) + { + RETURN_SCORE_PLUS(1); + } + break; + case ABILITY_RATTLED: + if (!IS_MOVE_STATUS(move) + && (moveType == TYPE_DARK || moveType == TYPE_GHOST || moveType == TYPE_BUG) + && BattlerStatCanRise(battlerAtkPartner, atkPartnerAbility, STAT_SPEED) + && !CanIndexMoveFaintTarget(battlerAtk, battlerAtkPartner, AI_THINKING_STRUCT->movesetIndex, 1)) + { + RETURN_SCORE_PLUS(1); + } + break; + case ABILITY_CONTRARY: + if (IsStatLoweringEffect(effect)) + { + RETURN_SCORE_PLUS(2); + } + break; + case ABILITY_DEFIANT: + if (IsStatLoweringEffect(effect) + && BattlerStatCanRise(battlerAtkPartner, atkPartnerAbility, STAT_ATK)) + { + RETURN_SCORE_PLUS(1); + } + break; + case ABILITY_COMPETITIVE: + if (IsStatLoweringEffect(effect) + && BattlerStatCanRise(battlerAtkPartner, atkPartnerAbility, STAT_SPATK)) + { + RETURN_SCORE_PLUS(1); + } + break; + } + } // ability checks // attacker move effects specifically targeting partner if (!partnerProtecting) @@ -3145,11 +3111,13 @@ static s32 AI_CompareDamagingMoves(u32 battlerAtk, u32 battlerDef, u32 currId) { u32 i; bool32 multipleBestMoves = FALSE; + s32 viableMoveScores[MAX_MON_MOVES]; + s32 bestViableMoveScore; s32 noOfHits[MAX_MON_MOVES]; s32 score = 0; s32 leastHits = 1000; u16 *moves = GetMovesArray(battlerAtk); - bool8 isPowerfulIgnoredEffect[MAX_MON_MOVES]; + bool8 isChargingMoveEffect[MAX_MON_MOVES]; for (i = 0; i < MAX_MON_MOVES; i++) { @@ -3160,12 +3128,14 @@ static s32 AI_CompareDamagingMoves(u32 battlerAtk, u32 battlerDef, u32 currId) { leastHits = noOfHits[i]; } - isPowerfulIgnoredEffect[i] = IsInIgnoredPowerfulMoveEffects(gBattleMoves[moves[i]].effect); + viableMoveScores[i] = AI_SCORE_DEFAULT; + isChargingMoveEffect[i] = IsChargingMove(battlerAtk, gBattleMoves[moves[i]].effect); } else { noOfHits[i] = -1; - isPowerfulIgnoredEffect[i] = FALSE; + viableMoveScores[i] = 0; + isChargingMoveEffect[i] = FALSE; } /* MgbaPrintf_("%S: required hits: %d Dmg: %d", gMoveNames[moves[i]], noOfHits[i], AI_DATA->simulatedDmg[battlerAtk][battlerDef][i]); @@ -3174,7 +3144,7 @@ static s32 AI_CompareDamagingMoves(u32 battlerAtk, u32 battlerDef, u32 currId) // Priority list: // 1. Less no of hits to ko - // 2. Not in the powerful but ignored move effects table + // 2. Not charging // 3. More accuracy // 4. Better effect @@ -3189,20 +3159,46 @@ static s32 AI_CompareDamagingMoves(u32 battlerAtk, u32 battlerDef, u32 currId) { multipleBestMoves = TRUE; // We need to make sure it's the current move which is objectively better. - if (isPowerfulIgnoredEffect[i] && !isPowerfulIgnoredEffect[currId]) - ADJUST_SCORE(3); - else if (CompareMoveAccuracies(battlerAtk, battlerDef, currId, i) == 0) - ADJUST_SCORE(2); - else if (AI_WhichMoveBetter(moves[currId], moves[i], battlerAtk, battlerDef, noOfHits[currId]) == 0) + if (isChargingMoveEffect[i] && !isChargingMoveEffect[currId]) + viableMoveScores[i] -= 3; + else if (!isChargingMoveEffect[i] && isChargingMoveEffect[currId]) + viableMoveScores[currId] -= 3; + + switch (CompareMoveAccuracies(battlerAtk, battlerDef, currId, i)) { - // MgbaPrintf_("%S better than %S", gMoveNames[moves[currId]], gMoveNames[moves[i]]); - ADJUST_SCORE(1); + case 0: + viableMoveScores[i] -= 2; + break; + case 1: + viableMoveScores[currId] -= 2; + break; + } + switch (AI_WhichMoveBetter(moves[currId], moves[i], battlerAtk, battlerDef, noOfHits[currId])) + { + case 0: + viableMoveScores[i] -= 1; + break; + case 1: + viableMoveScores[currId] -= 1; + break; } } } // Turns out the current move deals the most dmg compared to the other 3. if (!multipleBestMoves) ADJUST_SCORE(1); + else + { + bestViableMoveScore = 0; + for (i = 0; i < MAX_MON_MOVES; i++) + { + if (viableMoveScores[i] > bestViableMoveScore) + bestViableMoveScore = viableMoveScores[i]; + } + // Unless a better move was found increase score of current move + if (viableMoveScores[currId] == bestViableMoveScore) + ADJUST_SCORE(1); + } } return score; @@ -3216,13 +3212,12 @@ static s32 AI_CheckViability(u32 battlerAtk, u32 battlerDef, u32 move, s32 score struct AiLogicData *aiData = AI_DATA; u32 movesetIndex = AI_THINKING_STRUCT->movesetIndex; u32 effectiveness = aiData->effectiveness[battlerAtk][battlerDef][movesetIndex]; + u32 secondaryEffectChance = AI_CalcSecondaryEffectChance(battlerAtk, gBattleMoves[move].secondaryEffectChance); s8 atkPriority = GetMovePriority(battlerAtk, move); u32 predictedMove = aiData->predictedMoves[battlerDef]; u32 predictedMoveSlot = GetMoveSlot(GetMovesArray(battlerDef), predictedMove); bool32 isDoubleBattle = IsValidDoubleBattle(battlerAtk); u32 i; - // We only check for moves that have a 20% chance or more for their secondary effect to happen because moves with a smaller chance are rather worthless. We don't want the AI to use those. - bool32 sereneGraceBoost = (aiData->abilities[battlerAtk] == ABILITY_SERENE_GRACE && (gBattleMoves[move].secondaryEffectChance >= 20 && gBattleMoves[move].secondaryEffectChance < 100)); // The AI should understand that while Dynamaxed, status moves function like Protect. if (IsDynamaxed(battlerAtk) && gBattleMoves[move].split == SPLIT_STATUS) @@ -3261,63 +3256,16 @@ static s32 AI_CheckViability(u32 battlerAtk, u32 battlerDef, u32 move, s32 score // check thawing moves if ((gBattleMons[battlerAtk].status1 & (STATUS1_FREEZE | STATUS1_FROSTBITE)) && gBattleMoves[move].thawsUser) - score += (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) ? 20 : 10; + ADJUST_SCORE(10); - // check burn - if (gBattleMons[battlerAtk].status1 & STATUS1_BURN) + // check burn / frostbite + if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_SMART_SWITCHING && AI_DATA->abilities[battlerAtk] == ABILITY_NATURAL_CURE) { - switch (aiData->abilities[battlerAtk]) - { - case ABILITY_GUTS: - break; - case ABILITY_NATURAL_CURE: - if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_SMART_SWITCHING - && HasOnlyMovesWithSplit(battlerAtk, SPLIT_PHYSICAL, TRUE)) - score = 90; // Force switch if all your attacking moves are physical and you have Natural Cure. - break; - default: - if (IS_MOVE_PHYSICAL(move) && gBattleMoves[move].effect != EFFECT_FACADE) - ADJUST_SCORE(-2); - break; - } - } - - // check frostbite - if (gBattleMons[battlerAtk].status1 & STATUS1_FROSTBITE) - { - switch (aiData->abilities[battlerAtk]) - { - case ABILITY_GUTS: - break; - case ABILITY_NATURAL_CURE: - if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_SMART_SWITCHING - && HasOnlyMovesWithSplit(battlerAtk, SPLIT_SPECIAL, TRUE)) - score = 90; // Force switch if all your attacking moves are special and you have Natural Cure. - break; - default: - if (IS_MOVE_SPECIAL(move) && gBattleMoves[move].effect != EFFECT_FACADE) - ADJUST_SCORE(-2); - break; - } + if ((gBattleMons[battlerAtk].status1 & STATUS1_BURN && HasOnlyMovesWithSplit(battlerAtk, SPLIT_PHYSICAL, TRUE)) + || (gBattleMons[battlerAtk].status1 & STATUS1_FROSTBITE && HasOnlyMovesWithSplit(battlerAtk, SPLIT_SPECIAL, TRUE))) + ADJUST_SCORE(-20); // Force switch if all your attacking moves are physical and you have Natural Cure. } - // attacker ability checks - switch (aiData->abilities[battlerAtk]) - { - case ABILITY_MOXIE: - case ABILITY_BEAST_BOOST: - case ABILITY_CHILLING_NEIGH: - case ABILITY_GRIM_NEIGH: - case ABILITY_AS_ONE_ICE_RIDER: - case ABILITY_AS_ONE_SHADOW_RIDER: - if (AI_WhoStrikesFirst(battlerAtk, battlerDef, move) == AI_IS_FASTER) // Attacker should go first - { - if (CanIndexMoveFaintTarget(battlerAtk, battlerDef, movesetIndex, 0)) - ADJUST_SCORE(8); // prioritize killing target for stat boost - } - break; - } // ability checks - // move effect checks switch (moveEffect) { @@ -3329,11 +3277,8 @@ static s32 AI_CheckViability(u32 battlerAtk, u32 battlerDef, u32 move, s32 score IncreaseSleepScore(battlerAtk, battlerDef, move, &score); break; case EFFECT_ABSORB: - if (aiData->holdEffects[battlerAtk] == HOLD_EFFECT_BIG_ROOT) - ADJUST_SCORE(1); - if (effectiveness <= AI_EFFECTIVENESS_x0_5 && AI_RandLessThan(50)) - ADJUST_SCORE(-3); - break; + if (aiData->holdEffects[battlerAtk] == HOLD_EFFECT_BIG_ROOT && effectiveness >= AI_EFFECTIVENESS_x1) + ADJUST_SCORE(2); case EFFECT_EXPLOSION: case EFFECT_MEMENTO: if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_WILL_SUICIDE && gBattleMons[battlerDef].statStages[STAT_EVASION] < 7) @@ -3547,11 +3492,6 @@ static s32 AI_CheckViability(u32 battlerAtk, u32 battlerDef, u32 move, s32 score if (aiData->hpPercents[battlerAtk] < 90) ADJUST_SCORE(-2); break; - case EFFECT_DREAM_EATER: - if (!(gBattleMons[battlerDef].status1 & STATUS1_SLEEP)) - break; - ADJUST_SCORE(1); // if target is asleep, dream eater is a pretty good move even without draining - // fallthrough case EFFECT_ACUPRESSURE: break; case EFFECT_ATTACK_ACCURACY_UP: // hone claws @@ -3700,38 +3640,24 @@ static s32 AI_CheckViability(u32 battlerAtk, u32 battlerDef, u32 move, s32 score || HasHighCritRatioMove(battlerAtk)) ADJUST_SCORE(2); break; - case EFFECT_CONFUSE_HIT: - if (sereneGraceBoost) - ADJUST_SCORE(1); - //fallthrough case EFFECT_CONFUSE: IncreaseConfusionScore(battlerAtk, battlerDef, move, &score); break; case EFFECT_PARALYZE: IncreaseParalyzeScore(battlerAtk, battlerDef, move, &score); break; - case EFFECT_GRAV_APPLE: - if (gFieldStatuses & STATUS_FIELD_GRAVITY) - ADJUST_SCORE(2); - // fall through + case EFFECT_SPEED_DOWN_HIT: + if (!ShouldLowerSpeed(battlerAtk, battlerDef, aiData->abilities[battlerDef])) + break; case EFFECT_ATTACK_DOWN_HIT: case EFFECT_DEFENSE_DOWN_HIT: case EFFECT_SPECIAL_ATTACK_DOWN_HIT: case EFFECT_SPECIAL_DEFENSE_DOWN_HIT: case EFFECT_ACCURACY_DOWN_HIT: case EFFECT_EVASION_DOWN_HIT: - if (sereneGraceBoost && aiData->abilities[battlerDef] != ABILITY_CONTRARY) + if (secondaryEffectChance >= 100 && aiData->abilities[battlerDef] != ABILITY_CONTRARY) ADJUST_SCORE(2); break; - case EFFECT_SPEED_DOWN_HIT: - if (ShouldLowerSpeed(battlerAtk, battlerDef, aiData->abilities[battlerDef])) - { - if (sereneGraceBoost && aiData->abilities[battlerDef] != ABILITY_CONTRARY) - ADJUST_SCORE(5); - else - ADJUST_SCORE(2); - } - break; case EFFECT_SUBSTITUTE: if (gStatuses3[battlerDef] & STATUS3_PERISH_SONG) ADJUST_SCORE(3); @@ -3857,7 +3783,7 @@ static s32 AI_CheckViability(u32 battlerAtk, u32 battlerDef, u32 move, s32 score ADJUST_SCORE(1); break; case EFFECT_SPEED_UP_HIT: - if (sereneGraceBoost && aiData->abilities[battlerDef] != ABILITY_CONTRARY && !AI_STRIKES_FIRST(battlerAtk, battlerDef, move)) + if (secondaryEffectChance >= 100 && aiData->abilities[battlerDef] != ABILITY_CONTRARY && !AI_STRIKES_FIRST(battlerAtk, battlerDef, move)) ADJUST_SCORE(3); break; case EFFECT_DESTINY_BOND: @@ -4116,11 +4042,11 @@ static s32 AI_CheckViability(u32 battlerAtk, u32 battlerDef, u32 move, s32 score } break; case EFFECT_ATTACK_UP_HIT: - if (sereneGraceBoost) + if (secondaryEffectChance >= 100) IncreaseStatUpScore(battlerAtk, battlerDef, STAT_ATK, &score); break; case EFFECT_SPECIAL_ATTACK_UP_HIT: - if (sereneGraceBoost) + if (secondaryEffectChance >= 100) IncreaseStatUpScore(battlerAtk, battlerDef, STAT_SPATK, &score); break; case EFFECT_FELL_STINGER: @@ -4209,14 +4135,6 @@ static s32 AI_CheckViability(u32 battlerAtk, u32 battlerDef, u32 move, s32 score IncreaseStatUpScore(battlerAtk, battlerDef, STAT_DEF, &score); IncreaseStatUpScore(battlerAtk, battlerDef, STAT_SPDEF, &score); break; - case EFFECT_SPIT_UP: - if (gDisableStructs[battlerAtk].stockpileCounter >= 2) - ADJUST_SCORE(1); - break; - case EFFECT_ROLLOUT: - if (gBattleMons[battlerAtk].status2 & STATUS2_DEFENSE_CURL) - ADJUST_SCORE(8); - break; case EFFECT_SWAGGER: if (HasMoveEffect(battlerAtk, EFFECT_FOUL_PLAY) || HasMoveEffect(battlerAtk, EFFECT_PSYCH_UP) @@ -4711,11 +4629,8 @@ static s32 AI_CheckViability(u32 battlerAtk, u32 battlerDef, u32 move, s32 score ADJUST_SCORE(2); break; case EFFECT_PLEDGE: - if (isDoubleBattle) - { - if (HasMoveEffect(BATTLE_PARTNER(battlerAtk), EFFECT_PLEDGE)) - ADJUST_SCORE(3); // Partner might use pledge move - } + if (isDoubleBattle && HasMoveEffect(BATTLE_PARTNER(battlerAtk), EFFECT_PLEDGE)) + ADJUST_SCORE(3); // Partner might use pledge move break; case EFFECT_TRICK_ROOM: if (!(gFieldStatuses & STATUS_FIELD_TRICK_ROOM) && GetBattlerSideSpeedAverage(battlerAtk) < GetBattlerSideSpeedAverage(battlerDef)) @@ -4891,21 +4806,12 @@ static s32 AI_CheckViability(u32 battlerAtk, u32 battlerDef, u32 move, s32 score IncreasePoisonScore(battlerAtk, battlerDef, move, &score); IncreaseStatUpScore(battlerAtk, battlerDef, STAT_SPEED, &score); break; - case EFFECT_SOLAR_BEAM: - if (GetNoOfHitsToKOBattler(battlerAtk, battlerDef, movesetIndex) >= 2 - && HasMoveEffect(battlerAtk, EFFECT_SUNNY_DAY) && (AI_GetWeather(aiData) & B_WEATHER_SUN)) // Use Sunny Day to boost damage. - ADJUST_SCORE(-3); - case EFFECT_TWO_TURNS_ATTACK: - case EFFECT_SKULL_BASH: - if (aiData->holdEffects[battlerAtk] == HOLD_EFFECT_POWER_HERB) - ADJUST_SCORE(2); - break; case EFFECT_COUNTER: if (!IsBattlerIncapacitated(battlerDef, aiData->abilities[battlerDef]) && predictedMove != MOVE_NONE) { if (gDisableStructs[battlerDef].tauntTimer != 0) ADJUST_SCORE(1); // target must use damaging move - if (GetMoveDamageResult(battlerDef, battlerAtk, predictedMoveSlot) >= MOVE_POWER_GOOD && GetBattleMoveSplit(predictedMove) == SPLIT_PHYSICAL) + if (GetNoOfHitsToKOBattler(battlerDef, battlerAtk, predictedMoveSlot) >= 2 && GetBattleMoveSplit(predictedMove) == SPLIT_PHYSICAL) ADJUST_SCORE(3); } break; @@ -4914,19 +4820,10 @@ static s32 AI_CheckViability(u32 battlerAtk, u32 battlerDef, u32 move, s32 score { if (gDisableStructs[battlerDef].tauntTimer != 0) ADJUST_SCORE(1); // target must use damaging move - if (GetMoveDamageResult(battlerDef, battlerAtk, predictedMoveSlot) >= MOVE_POWER_GOOD && GetBattleMoveSplit(predictedMove) == SPLIT_SPECIAL) + if (GetNoOfHitsToKOBattler(battlerDef, battlerAtk, predictedMoveSlot) >= 2 && GetBattleMoveSplit(predictedMove) == SPLIT_SPECIAL) ADJUST_SCORE(3); } break; - case EFFECT_FLAIL: - if (AI_WhoStrikesFirst(battlerAtk, battlerDef, move) == AI_IS_FASTER) // Ai goes first - { - if (aiData->hpPercents[battlerAtk] < 20) - ADJUST_SCORE(1); - else if (aiData->hpPercents[battlerAtk] < 8) - ADJUST_SCORE(2); - } - break; case EFFECT_SHORE_UP: if ((AI_GetWeather(aiData) & B_WEATHER_SANDSTORM) && ShouldRecover(battlerAtk, battlerDef, move, 67)) @@ -4934,10 +4831,6 @@ static s32 AI_CheckViability(u32 battlerAtk, u32 battlerDef, u32 move, s32 score else if (ShouldRecover(battlerAtk, battlerDef, move, 50)) ADJUST_SCORE(2); break; - case EFFECT_FACADE: - if (gBattleMons[battlerAtk].status1 & (STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON | STATUS1_FROSTBITE)) - ADJUST_SCORE(1); - break; case EFFECT_FOCUS_PUNCH: if (!isDoubleBattle && effectiveness > AI_EFFECTIVENESS_x0_5) { @@ -4947,19 +4840,6 @@ static s32 AI_CheckViability(u32 battlerAtk, u32 battlerDef, u32 move, s32 score ADJUST_SCORE(1); } break; - case EFFECT_SMELLINGSALT: - if (gBattleMons[battlerDef].status1 & STATUS1_PARALYSIS) - ADJUST_SCORE(2); - break; - case EFFECT_WAKE_UP_SLAP: - if (gBattleMons[battlerDef].status1 & STATUS1_SLEEP) - ADJUST_SCORE(2); - break; - case EFFECT_REVENGE: - if (!(gBattleMons[battlerDef].status1 & STATUS1_SLEEP) - && !(gBattleMons[battlerDef].status2 & (STATUS2_INFATUATION | STATUS2_CONFUSION))) - ADJUST_SCORE(2); - break; case EFFECT_ENDEAVOR: if (AI_WhoStrikesFirst(battlerAtk, battlerDef, move) == AI_IS_SLOWER) // Opponent faster { @@ -5155,7 +5035,9 @@ static s32 AI_PreferStrongestMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 if (IS_TARGETING_PARTNER(battlerAtk, battlerDef)) return score; - if (GetMoveDamageResult(battlerAtk, battlerDef, AI_THINKING_STRUCT->movesetIndex) == MOVE_POWER_BEST) + if (GetNoOfHitsToKOBattler(battlerAtk, battlerDef, AI_THINKING_STRUCT->movesetIndex) == 1) + ADJUST_SCORE(3); + else if (GetNoOfHitsToKOBattler(battlerAtk, battlerDef, AI_THINKING_STRUCT->movesetIndex) == 2) ADJUST_SCORE(2); return score; @@ -5168,7 +5050,7 @@ static s32 AI_PreferBatonPass(u32 battlerAtk, u32 battlerDef, u32 move, s32 scor if (IS_TARGETING_PARTNER(battlerAtk, battlerDef) || CountUsablePartyMons(battlerAtk) == 0 - || GetMoveDamageResult(battlerAtk, battlerDef, AI_THINKING_STRUCT->movesetIndex) != MOVE_POWER_OTHER + || gBattleMoves[move].power != 0 || !HasMoveEffect(battlerAtk, EFFECT_BATON_PASS) || IsBattlerTrapped(battlerAtk, TRUE)) return score; @@ -5316,9 +5198,6 @@ static s32 AI_HPAware(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) case EFFECT_BELLY_DRUM: case EFFECT_PSYCH_UP: case EFFECT_MIRROR_COAT: - case EFFECT_SOLAR_BEAM: - case EFFECT_TWO_TURNS_ATTACK: - case EFFECT_ERUPTION: case EFFECT_TICKLE: case EFFECT_SUNNY_DAY: case EFFECT_SANDSTORM: diff --git a/src/battle_ai_switch_items.c b/src/battle_ai_switch_items.c index 5d77dca70ba8..f4ea29176707 100644 --- a/src/battle_ai_switch_items.c +++ b/src/battle_ai_switch_items.c @@ -28,7 +28,13 @@ static bool8 ShouldUseItem(u32 battler); static bool32 AiExpectsToFaintPlayer(u32 battler); static bool32 AI_ShouldHeal(u32 battler, u32 healAmount); static bool32 AI_OpponentCanFaintAiWithMod(u32 battler, u32 healAmount); -static bool32 IsAiPartyMonOHKOBy(u32 battlerAi, u32 battlerAtk, struct Pokemon *aiMon); +static u32 GetSwitchinHazardsDamage(u32 battler, struct BattlePokemon *battleMon); + +static void InitializeSwitchinCandidate(struct Pokemon *mon) +{ + PokemonToBattleMon(mon, &AI_DATA->switchinCandidate.battleMon); + AI_DATA->switchinCandidate.hypotheticalStatus = FALSE; +} static bool32 IsAceMon(u32 battler, u32 monPartyId) { @@ -58,6 +64,156 @@ void GetAIPartyIndexes(u32 battler, s32 *firstId, s32 *lastId) } } +// Note that as many return statements as possible are INTENTIONALLY put after all of the loops; +// the function can take a max of about 0.06s to run, and this prevents the player from identifying +// whether the mon will switch or not by seeing how long the delay is before they select a move +static bool8 HasBadOdds(u32 battler) + +{ + //Variable initialization + u8 opposingPosition, atkType1, atkType2, defType1, defType2, effectiveness; + s32 i, damageDealt = 0, maxDamageDealt = 0, damageTaken = 0, maxDamageTaken = 0; + u32 aiMove, playerMove, aiBestMove = MOVE_NONE, aiAbility = GetBattlerAbility(battler), opposingBattler, weather = AI_GetWeather(AI_DATA); + bool8 getsOneShot = FALSE, hasStatusMove = FALSE, hasSuperEffectiveMove = FALSE; + u16 typeEffectiveness = UQ_4_12(1.0), aiMoveEffect; //baseline typing damage + + // Only use this if AI_FLAG_SMART_SWITCHING is set for the trainer + if (!(AI_THINKING_STRUCT->aiFlags & AI_FLAG_SMART_SWITCHING)) + return FALSE; + + // Won't bother configuring this for double battles + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + return FALSE; + + opposingPosition = BATTLE_OPPOSITE(GetBattlerPosition(battler)); + opposingBattler = GetBattlerAtPosition(opposingPosition); + + // Gets types of player (opposingBattler) and computer (battler) + atkType1 = gBattleMons[opposingBattler].type1; + atkType2 = gBattleMons[opposingBattler].type2; + defType1 = gBattleMons[battler].type1; + defType2 = gBattleMons[battler].type2; + + // Check AI moves for damage dealt + for (i = 0; i < MAX_MON_MOVES; i++) + { + aiMove = gBattleMons[battler].moves[i]; + aiMoveEffect = gBattleMoves[aiMove].effect; + if (aiMove != MOVE_NONE) + { + // Check if mon has an "important" status move + if (aiMoveEffect == EFFECT_REFLECT || aiMoveEffect == EFFECT_LIGHT_SCREEN + || aiMoveEffect == EFFECT_SPIKES || aiMoveEffect == EFFECT_TOXIC_SPIKES || aiMoveEffect == EFFECT_STEALTH_ROCK || aiMoveEffect == EFFECT_STICKY_WEB || aiMoveEffect == EFFECT_LEECH_SEED + || aiMoveEffect == EFFECT_EXPLOSION + || aiMoveEffect == EFFECT_SLEEP || aiMoveEffect == EFFECT_YAWN || aiMoveEffect == EFFECT_TOXIC || aiMoveEffect == EFFECT_WILL_O_WISP || aiMoveEffect == EFFECT_PARALYZE + || aiMoveEffect == EFFECT_TRICK || aiMoveEffect == EFFECT_TRICK_ROOM || aiMoveEffect== EFFECT_WONDER_ROOM || aiMoveEffect == EFFECT_PSYCHO_SHIFT || aiMoveEffect == EFFECT_FAKE_OUT + ) + { + hasStatusMove = TRUE; + } + + // Only check damage if move has power + if (gBattleMoves[aiMove].power != 0) + { + // Check if mon has a super effective move + if (AI_GetTypeEffectiveness(aiMove, battler, opposingBattler) >= UQ_4_12(2.0)) + hasSuperEffectiveMove = TRUE; + + // Get maximum damage mon can deal + damageDealt = AI_DATA->simulatedDmg[battler][opposingBattler][i]; + if(damageDealt > maxDamageDealt) + { + maxDamageDealt = damageDealt; + aiBestMove = aiMove; + } + + } + } + } + + // Calculate type advantage + typeEffectiveness = uq4_12_multiply(typeEffectiveness, (GetTypeModifier(atkType1, defType1))); + if (atkType2 != atkType1) + typeEffectiveness = uq4_12_multiply(typeEffectiveness, (GetTypeModifier(atkType2, defType1))); + if (defType2 != defType1) + { + typeEffectiveness = uq4_12_multiply(typeEffectiveness, (GetTypeModifier(atkType1, defType2))); + if (atkType2 != atkType1) + typeEffectiveness = uq4_12_multiply(typeEffectiveness, (GetTypeModifier(atkType2, defType2))); + } + + // Get max damage mon could take + for (i = 0; i < MAX_MON_MOVES; i++) + { + playerMove = gBattleMons[opposingBattler].moves[i]; + if (playerMove != MOVE_NONE && gBattleMoves[playerMove].power != 0) + { + damageTaken = AI_CalcDamage(playerMove, opposingBattler, battler, &effectiveness, FALSE, weather); + if (damageTaken > maxDamageTaken) + maxDamageTaken = damageTaken; + } + } + + // Check if mon gets one shot + if(maxDamageTaken > gBattleMons[battler].hp) + { + getsOneShot = TRUE; + } + + // Check if current mon can outspeed and KO in spite of bad matchup, and don't switch out if it can + if(damageDealt > gBattleMons[opposingBattler].hp) + { + if (AI_WhoStrikesFirst(battler, opposingBattler, aiBestMove) == AI_IS_FASTER) + return FALSE; + } + + // If we don't have any other viable options, don't switch out + if (AI_DATA->mostSuitableMonId == PARTY_SIZE) + return FALSE; + + // Start assessing whether or not mon has bad odds + // Jump straight to swtiching out in cases where mon gets OHKO'd + if (((getsOneShot && gBattleMons[opposingBattler].speed > gBattleMons[battler].speed) // If the player OHKOs and outspeeds OR OHKOs, doesn't outspeed but isn't 2HKO'd + || (getsOneShot && gBattleMons[opposingBattler].speed <= gBattleMons[battler].speed && maxDamageDealt < gBattleMons[opposingBattler].hp / 2)) + && (gBattleMons[battler].hp >= gBattleMons[battler].maxHP / 2 // And the current mon has at least 1/2 their HP, or 1/4 HP and Regenerator + || (aiAbility == ABILITY_REGENERATOR + && gBattleMons[battler].hp >= gBattleMons[battler].maxHP / 4))) + { + // 50% chance to stay in regardless + if (Random() % 2 == 0) + return FALSE; + + // Switch mon out + *(gBattleStruct->AI_monToSwitchIntoId + battler) = PARTY_SIZE; + BtlController_EmitTwoReturnValues(battler, 1, B_ACTION_SWITCH, 0); + return TRUE; + } + + // General bad type matchups have more wiggle room + if (typeEffectiveness >= UQ_4_12(2.0)) // If the player has at least a 2x type advantage + { + if (!hasSuperEffectiveMove // If the AI doesn't have a super effective move + && (gBattleMons[battler].hp >= gBattleMons[battler].maxHP / 2 // And the current mon has at least 1/2 their HP, or 1/4 HP and Regenerator + || (aiAbility == ABILITY_REGENERATOR + && gBattleMons[battler].hp >= gBattleMons[battler].maxHP / 4))) + { + // Then check if they have an important status move, which is worth using even in a bad matchup + if(hasStatusMove) + return FALSE; + + // 50% chance to stay in regardless + if (Random() % 2 == 0) + return FALSE; + + // Switch mon out + *(gBattleStruct->AI_monToSwitchIntoId + battler) = PARTY_SIZE; + BtlController_EmitTwoReturnValues(battler, 1, B_ACTION_SWITCH, 0); + return TRUE; + } + } + return FALSE; +} + static bool8 ShouldSwitchIfAllBadMoves(u32 battler) { if (AI_DATA->shouldSwitchMon & gBitTable[battler]) @@ -347,6 +503,7 @@ static bool8 ShouldSwitchIfGameStatePrompt(u32 battler) if (gBattleMons[battler].statStages[STAT_EVASION] > (DEFAULT_STAT_STAGE + 3) && AI_DATA->abilities[opposingBattler] != ABILITY_UNAWARE && AI_DATA->abilities[opposingBattler] != ABILITY_KEEN_EYE + && (B_ILLUMINATE_EFFECT >= GEN_9 && AI_DATA->abilities[opposingBattler] != ABILITY_ILLUMINATE) && !(gBattleMons[battler].status2 & STATUS2_FORESIGHT) && !(gStatuses3[battler] & STATUS3_MIRACLE_EYED)) switchMon = FALSE; @@ -436,12 +593,12 @@ static bool8 ShouldSwitchIfAbilityBenefit(u32 battler) moduloChance = 4; //25% //Attempt to cure bad ailment if (gBattleMons[battler].status1 & (STATUS1_SLEEP | STATUS1_FREEZE | STATUS1_TOXIC_POISON) - && GetMostSuitableMonToSwitchInto(battler) != PARTY_SIZE) + && AI_DATA->mostSuitableMonId != PARTY_SIZE) break; //Attempt to cure lesser ailment if ((gBattleMons[battler].status1 & STATUS1_ANY) && (gBattleMons[battler].hp >= gBattleMons[battler].maxHP / 2) - && GetMostSuitableMonToSwitchInto(battler) != PARTY_SIZE + && AI_DATA->mostSuitableMonId != PARTY_SIZE && Random() % (moduloChance*chanceReducer) == 0) break; @@ -453,7 +610,7 @@ static bool8 ShouldSwitchIfAbilityBenefit(u32 battler) if (gBattleMons[battler].status1 & STATUS1_ANY) return FALSE; if ((gBattleMons[battler].hp <= ((gBattleMons[battler].maxHP * 2) / 3)) - && GetMostSuitableMonToSwitchInto(battler) != PARTY_SIZE + && AI_DATA->mostSuitableMonId != PARTY_SIZE && Random() % (moduloChance*chanceReducer) == 0) break; @@ -618,6 +775,153 @@ static bool8 FindMonWithFlagsAndSuperEffective(u32 battler, u16 flags, u8 modulo return FALSE; } +static bool32 CanMonSurviveHazardSwitchin(u32 battler) +{ + u32 battlerIn1, battlerIn2; + u32 hazardDamage = 0, battlerHp = gBattleMons[battler].hp; + u32 ability = GetBattlerAbility(battler), aiMove; + s32 firstId, lastId, i, j; + struct Pokemon *party; + + if (ability == ABILITY_REGENERATOR) + battlerHp = (battlerHp * 133) / 100; // Account for Regenerator healing + + hazardDamage = GetSwitchinHazardsDamage(battler, &gBattleMons[battler]); + + // Battler will faint to hazards, check to see if another mon can clear them + if (hazardDamage > battlerHp) + { + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + { + battlerIn1 = battler; + if (gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(battler)))]) + battlerIn2 = battler; + else + battlerIn2 = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(battler))); + } + else + { + battlerIn1 = battler; + battlerIn2 = battler; + } + + GetAIPartyIndexes(battler, &firstId, &lastId); + party = GetBattlerParty(battler); + + for (i = firstId; i < lastId; i++) + { + if (!IsValidForBattle(&party[i])) + continue; + if (i == gBattlerPartyIndexes[battlerIn1]) + continue; + if (i == gBattlerPartyIndexes[battlerIn2]) + continue; + if (i == *(gBattleStruct->monToSwitchIntoId + battlerIn1)) + continue; + if (i == *(gBattleStruct->monToSwitchIntoId + battlerIn2)) + continue; + if (IsAceMon(battler, i)) + continue; + + for (j = 0; j < MAX_MON_MOVES; j++) + { + aiMove = GetMonData(&party[i], MON_DATA_MOVE1 + j, NULL); + if (aiMove == MOVE_RAPID_SPIN || aiMove == MOVE_DEFOG || aiMove == MOVE_MORTAL_SPIN || aiMove == MOVE_TIDY_UP) + { + // Have a mon that can clear the hazards, so switching out is okay + return TRUE; + } + } + } + // Faints to hazards and party can't clear them, don't switch out + return FALSE; + } + return TRUE; +} + +static bool32 ShouldSwitchIfEncored(u32 battler) +{ + // Only use this if AI_FLAG_SMART_SWITCHING is set for the trainer + if (!(AI_THINKING_STRUCT->aiFlags & AI_FLAG_SMART_SWITCHING)) + return FALSE; + + // If not Encored or if no good switchin, don't switch + if (gDisableStructs[battler].encoredMove == MOVE_NONE || AI_DATA->mostSuitableMonId == PARTY_SIZE) + return FALSE; + + // Otherwise 50% chance to switch out + if (Random() & 1) + { + *(gBattleStruct->AI_monToSwitchIntoId + battler) = PARTY_SIZE; + BtlController_EmitTwoReturnValues(battler, 1, B_ACTION_SWITCH, 0); + return TRUE; + } + + return FALSE; +} + +// AI should switch if it's become setup fodder and has something better to switch to +static bool8 AreAttackingStatsLowered(u32 battler) +{ + s8 attackingStage = gBattleMons[battler].statStages[STAT_ATK]; + s8 spAttackingStage = gBattleMons[battler].statStages[STAT_SPATK]; + + // Only use this if AI_FLAG_SMART_SWITCHING is set for the trainer + if (!(AI_THINKING_STRUCT->aiFlags & AI_FLAG_SMART_SWITCHING)) + return FALSE; + + // Physical attacker + if (gBattleMons[battler].attack > gBattleMons[battler].spAttack) + { + // Don't switch if attack isn't below -1 + if (attackingStage > DEFAULT_STAT_STAGE - 2) + return FALSE; + // 50% chance if attack at -2 and have a good candidate mon + else if (attackingStage == DEFAULT_STAT_STAGE - 2) + { + if (AI_DATA->mostSuitableMonId != PARTY_SIZE && (Random() & 1)) + { + *(gBattleStruct->AI_monToSwitchIntoId + battler) = PARTY_SIZE; + BtlController_EmitTwoReturnValues(battler, 1, B_ACTION_SWITCH, 0); + return TRUE; + } + } + // If at -3 or worse, switch out regardless + else if (attackingStage < DEFAULT_STAT_STAGE - 2) + { + *(gBattleStruct->AI_monToSwitchIntoId + battler) = PARTY_SIZE; + BtlController_EmitTwoReturnValues(battler, 1, B_ACTION_SWITCH, 0); + return TRUE; + } + } + + // Special attacker + else + { + // Don't switch if attack isn't below -1 + if (spAttackingStage > DEFAULT_STAT_STAGE - 2) + return FALSE; + // 50% chance if attack at -2 and have a good candidate mon + else if (spAttackingStage == DEFAULT_STAT_STAGE - 2) + { + if (AI_DATA->mostSuitableMonId != PARTY_SIZE && (Random() & 1)) + { + *(gBattleStruct->AI_monToSwitchIntoId + battler) = PARTY_SIZE; + BtlController_EmitTwoReturnValues(battler, 1, B_ACTION_SWITCH, 0); + return TRUE; + } + } + // If at -3 or worse, switch out regardless + else if (spAttackingStage < DEFAULT_STAT_STAGE - 2) + { + *(gBattleStruct->AI_monToSwitchIntoId + battler) = PARTY_SIZE; + BtlController_EmitTwoReturnValues(battler, 1, B_ACTION_SWITCH, 0); + return TRUE; + } + } + return FALSE; +} + bool32 ShouldSwitch(u32 battler) { u8 battlerIn1, battlerIn2; @@ -701,10 +1005,18 @@ bool32 ShouldSwitch(u32 battler) return TRUE; //These Functions can prompt switch to generic pary members + if ((AI_THINKING_STRUCT->aiFlags & AI_FLAG_SMART_SWITCHING) && (CanMonSurviveHazardSwitchin(battler) == FALSE)) + return FALSE; if (ShouldSwitchIfAllBadMoves(battler)) return TRUE; if (ShouldSwitchIfAbilityBenefit(battler)) return TRUE; + if (HasBadOdds(battler)) + return TRUE; + if (ShouldSwitchIfEncored(battler)) + return TRUE; + if (AreAttackingStatsLowered(battler)) + return TRUE; //Removing switch capabilites under specific conditions //These Functions prevent the "FindMonWithFlagsAndSuperEffective" from getting out of hand. @@ -741,7 +1053,7 @@ void AI_TrySwitchOrUseItem(u32 battler) { if (*(gBattleStruct->AI_monToSwitchIntoId + battler) == PARTY_SIZE) { - s32 monToSwitchId = GetMostSuitableMonToSwitchInto(battler); + s32 monToSwitchId = AI_DATA->mostSuitableMonId; if (monToSwitchId == PARTY_SIZE) { if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) @@ -801,8 +1113,6 @@ static u32 GetBestMonBatonPass(struct Pokemon *party, int firstId, int lastId, u { if (invalidMons & gBitTable[i]) continue; - if (IsAiPartyMonOHKOBy(battler, opposingBattler, &party[i])) - continue; for (j = 0; j < MAX_MON_MOVES; j++) { @@ -847,9 +1157,6 @@ static u32 GetBestMonTypeMatchup(struct Pokemon *party, int firstId, int lastId, u8 defType1 = gSpeciesInfo[species].types[0]; u8 defType2 = gSpeciesInfo[species].types[1]; - if (IsAiPartyMonOHKOBy(battler, opposingBattler, &party[i])) - continue; - typeEffectiveness = uq4_12_multiply(typeEffectiveness, (GetTypeModifier(atkType1, defType1))); if (atkType2 != atkType1) typeEffectiveness = uq4_12_multiply(typeEffectiveness, (GetTypeModifier(atkType2, defType1))); @@ -893,9 +1200,10 @@ static u32 GetBestMonTypeMatchup(struct Pokemon *party, int firstId, int lastId, static u32 GetBestMonDmg(struct Pokemon *party, int firstId, int lastId, u8 invalidMons, u32 battler, u32 opposingBattler) { - int i; + int i, j; int dmg, bestDmg = 0; int bestMonId = PARTY_SIZE; + u32 aiMove; gMoveResultFlags = 0; // If we couldn't find the best mon in terms of typing, find the one that deals most damage. @@ -903,21 +1211,683 @@ static u32 GetBestMonDmg(struct Pokemon *party, int firstId, int lastId, u8 inva { if (gBitTable[i] & invalidMons) continue; - if (IsAiPartyMonOHKOBy(battler, opposingBattler, &party[i])) + InitializeSwitchinCandidate(&party[i]); + for (j = 0; j < MAX_MON_MOVES; j++) + { + aiMove = AI_DATA->switchinCandidate.battleMon.moves[j]; + if (aiMove != MOVE_NONE && gBattleMoves[aiMove].power != 0) + { + aiMove = GetMonData(&party[i], MON_DATA_MOVE1 + j); + dmg = AI_CalcPartyMonDamage(aiMove, battler, opposingBattler, AI_DATA->switchinCandidate.battleMon, TRUE); + if (bestDmg < dmg) + { + bestDmg = dmg; + bestMonId = i; + } + } + } + } + + return bestMonId; +} + +static bool32 IsMonGrounded(u16 heldItemEffect, u32 ability, u8 type1, u8 type2) +{ + // List that makes mon not grounded + if (type1 == TYPE_FLYING || type2 == TYPE_FLYING || ability == ABILITY_LEVITATE + || (heldItemEffect == HOLD_EFFECT_AIR_BALLOON && ability != ABILITY_KLUTZ)) + { + // List that overrides being off the ground + if ((heldItemEffect == HOLD_EFFECT_IRON_BALL && ability != ABILITY_KLUTZ) || (gFieldStatuses & STATUS_FIELD_GRAVITY) || (gFieldStatuses & STATUS_FIELD_MAGIC_ROOM)) + return TRUE; + else + return FALSE; + } + else + return TRUE; +} + +// Gets hazard damage +static u32 GetSwitchinHazardsDamage(u32 battler, struct BattlePokemon *battleMon) +{ + u8 defType1 = battleMon->type1, defType2 = battleMon->type2, tSpikesLayers; + u16 heldItemEffect = gItems[battleMon->item].holdEffect; + u32 maxHP = battleMon->maxHP, ability = battleMon->ability, status = battleMon->status1; + u32 spikesDamage = 0, tSpikesDamage = 0, hazardDamage = 0; + u32 hazardFlags = gSideStatuses[GetBattlerSide(battler)] & (SIDE_STATUS_SPIKES | SIDE_STATUS_STEALTH_ROCK | SIDE_STATUS_STICKY_WEB | SIDE_STATUS_TOXIC_SPIKES | SIDE_STATUS_SAFEGUARD); + + // Check ways mon might avoid all hazards + if (ability != ABILITY_MAGIC_GUARD || (heldItemEffect == HOLD_EFFECT_HEAVY_DUTY_BOOTS && + !((gFieldStatuses & STATUS_FIELD_MAGIC_ROOM) || ability == ABILITY_KLUTZ))) + { + // Stealth Rock + if ((hazardFlags & SIDE_STATUS_STEALTH_ROCK) && heldItemEffect != HOLD_EFFECT_HEAVY_DUTY_BOOTS) + hazardDamage += GetStealthHazardDamageByTypesAndHP(gBattleMoves[MOVE_STEALTH_ROCK].type, defType1, defType2, battleMon->maxHP); + // Spikes + if ((hazardFlags & SIDE_STATUS_SPIKES) && IsMonGrounded(heldItemEffect, ability, defType1, defType2)) + { + spikesDamage = maxHP / ((5 - gSideTimers[GetBattlerSide(battler)].spikesAmount) * 2); + if (spikesDamage == 0) + spikesDamage = 1; + hazardDamage += spikesDamage; + } + + // Toxic Spikes + // TODO: CanBePoisoned compatibility to avoid duplicate code + if ((hazardFlags & SIDE_STATUS_TOXIC_SPIKES) && (defType1 != TYPE_POISON && defType2 != TYPE_POISON + && defType1 != TYPE_STEEL && defType2 != TYPE_STEEL + && ability != ABILITY_IMMUNITY && ability != ABILITY_POISON_HEAL && ability != ABILITY_COMATOSE + && status == 0 + && !(hazardFlags & SIDE_STATUS_SAFEGUARD) + && !(IsAbilityOnSide(battler, ABILITY_PASTEL_VEIL)) + && !(IsBattlerTerrainAffected(battler, STATUS_FIELD_MISTY_TERRAIN)) + && !(IsAbilityStatusProtected(battler)) + && heldItemEffect != HOLD_EFFECT_CURE_PSN && heldItemEffect != HOLD_EFFECT_CURE_STATUS + && IsMonGrounded(heldItemEffect, ability, defType1, defType2))) + { + tSpikesLayers = gSideTimers[GetBattlerSide(battler)].toxicSpikesAmount; + if (tSpikesLayers == 1) + { + tSpikesDamage = maxHP / 8; + if (tSpikesDamage == 0) + tSpikesDamage = 1; + } + else if (tSpikesLayers >= 2) + { + tSpikesDamage = maxHP / 16; + if (tSpikesDamage == 0) + tSpikesDamage = 1; + } + hazardDamage += tSpikesDamage; + } + } + return hazardDamage; +} + +// Gets damage / healing from weather +static s32 GetSwitchinWeatherImpact(void) +{ + s32 weatherImpact = 0, maxHP = AI_DATA->switchinCandidate.battleMon.maxHP, ability = AI_DATA->switchinCandidate.battleMon.ability; + u16 item = AI_DATA->switchinCandidate.battleMon.item; + + if (WEATHER_HAS_EFFECT) + { + // Damage + if (item != ITEM_SAFETY_GOGGLES) + { + if ((gBattleWeather & B_WEATHER_HAIL) && (AI_DATA->switchinCandidate.battleMon.type1 != TYPE_ICE || AI_DATA->switchinCandidate.battleMon.type2 != TYPE_ICE) + && ability != ABILITY_OVERCOAT && ability != ABILITY_SNOW_CLOAK && ability != ABILITY_ICE_BODY) + { + weatherImpact = maxHP / 16; + if (weatherImpact == 0) + weatherImpact = 1; + } + else if ((gBattleWeather & B_WEATHER_SANDSTORM) && (AI_DATA->switchinCandidate.battleMon.type1 != TYPE_GROUND && AI_DATA->switchinCandidate.battleMon.type2 != TYPE_GROUND + && AI_DATA->switchinCandidate.battleMon.type1 != TYPE_ROCK && AI_DATA->switchinCandidate.battleMon.type2 != TYPE_ROCK + && AI_DATA->switchinCandidate.battleMon.type1 != TYPE_STEEL && AI_DATA->switchinCandidate.battleMon.type2 != TYPE_STEEL + && ability != ABILITY_OVERCOAT && ability != ABILITY_SAND_VEIL && ability != ABILITY_SAND_RUSH && ability != ABILITY_SAND_FORCE)) + { + weatherImpact = maxHP / 16; + if (weatherImpact == 0) + weatherImpact = 1; + } + } + if ((gBattleWeather & B_WEATHER_SUN) && (ability == ABILITY_SOLAR_POWER || ability == ABILITY_DRY_SKIN)) + { + weatherImpact = maxHP / 8; + if (weatherImpact == 0) + weatherImpact = 1; + } + + // Healing + if (gBattleWeather & B_WEATHER_RAIN) + { + if (ability == ABILITY_DRY_SKIN) + { + weatherImpact = maxHP / 8; + if (weatherImpact == 0) + weatherImpact = 1; + } + else if (ability == ABILITY_RAIN_DISH) + { + weatherImpact = maxHP / 16; + if (weatherImpact == 0) + weatherImpact = 1; + } + } + if (((gBattleWeather & B_WEATHER_HAIL) || (gBattleWeather & B_WEATHER_SNOW)) && ability == ABILITY_ICE_BODY) + { + weatherImpact = maxHP / 16; + if (weatherImpact == 0) + weatherImpact =1; + } + } + return weatherImpact; +} + +// Gets one turn of recurring healing +static u32 GetSwitchinRecurringHealing(void) +{ + u32 recurringHealing = 0, maxHP = AI_DATA->switchinCandidate.battleMon.maxHP, ability = AI_DATA->switchinCandidate.battleMon.ability; + u16 item = AI_DATA->switchinCandidate.battleMon.item; + + // Items + if (ability != ABILITY_KLUTZ) + { + if (item == ITEM_BLACK_SLUDGE && (AI_DATA->switchinCandidate.battleMon.type1 == TYPE_POISON || AI_DATA->switchinCandidate.battleMon.type2 == TYPE_POISON)) + { + recurringHealing = maxHP / 16; + if (recurringHealing == 0) + recurringHealing = 1; + } + else if (item == ITEM_LEFTOVERS) + { + recurringHealing = maxHP / 16; + if (recurringHealing == 0) + recurringHealing = 1; + } + } // Intentionally omitting Shell Bell for its inconsistency + + // Abilities + if (ability == ABILITY_POISON_HEAL && (AI_DATA->switchinCandidate.battleMon.status1 & STATUS1_POISON)) + { + recurringHealing = maxHP / 8; + if (recurringHealing == 0) + recurringHealing = 1; + } + return recurringHealing; +} + +// Gets one turn of recurring damage +static u32 GetSwitchinRecurringDamage(void) +{ + u32 passiveDamage = 0, maxHP = AI_DATA->switchinCandidate.battleMon.maxHP, ability = AI_DATA->switchinCandidate.battleMon.ability; + u16 item = AI_DATA->switchinCandidate.battleMon.item; + + // Items + if (ability != ABILITY_MAGIC_GUARD && ability != ABILITY_KLUTZ) + { + if (item == ITEM_BLACK_SLUDGE && AI_DATA->switchinCandidate.battleMon.type1 != TYPE_POISON && AI_DATA->switchinCandidate.battleMon.type2 != TYPE_POISON) + { + passiveDamage = maxHP / 8; + if (passiveDamage == 0) + passiveDamage = 1; + } + else if (item == ITEM_LIFE_ORB && ability != ABILITY_SHEER_FORCE) + { + passiveDamage = maxHP / 10; + if (passiveDamage == 0) + passiveDamage = 1; + } + else if (item == ITEM_STICKY_BARB) + { + passiveDamage = maxHP / 8; + if(passiveDamage == 0) + passiveDamage = 1; + } + } + return passiveDamage; +} + +// Gets one turn of status damage +static u32 GetSwitchinStatusDamage(u32 battler) +{ + u8 defType1 = AI_DATA->switchinCandidate.battleMon.type1, defType2 = AI_DATA->switchinCandidate.battleMon.type2; + u8 tSpikesLayers = gSideTimers[GetBattlerSide(battler)].toxicSpikesAmount; + u16 heldItemEffect = gItems[AI_DATA->switchinCandidate.battleMon.item].holdEffect; + u32 status = AI_DATA->switchinCandidate.battleMon.status1, ability = AI_DATA->switchinCandidate.battleMon.ability, maxHP = AI_DATA->switchinCandidate.battleMon.maxHP; + u32 statusDamage = 0; + + // Status condition damage + if ((status != 0) && AI_DATA->switchinCandidate.battleMon.ability != ABILITY_MAGIC_GUARD) + { + if (status & STATUS1_BURN) + { + #if B_BURN_DAMAGE >= GEN_7 + statusDamage = maxHP / 16; + #else + statusDamage = maxHP / 8; + #endif + if(ability == ABILITY_HEATPROOF) + statusDamage = statusDamage / 2; + if (statusDamage == 0) + statusDamage = 1; + } + else if (status & STATUS1_FROSTBITE) + { + #if B_BURN_DAMAGE >= GEN_7 + statusDamage = maxHP / 16; + #else + statusDamage = maxHP / 8; + #endif + if (statusDamage == 0) + statusDamage = 1; + } + else if ((status & STATUS1_POISON) && ability != ABILITY_POISON_HEAL) + { + statusDamage = maxHP / 8; + if (statusDamage == 0) + statusDamage = 1; + } + else if ((status & STATUS1_TOXIC_POISON) && ability != ABILITY_POISON_HEAL) + { + if ((status & STATUS1_TOXIC_COUNTER) != STATUS1_TOXIC_TURN(15)) // not 16 turns + AI_DATA->switchinCandidate.battleMon.status1 += STATUS1_TOXIC_TURN(1); + statusDamage *= AI_DATA->switchinCandidate.battleMon.status1 & STATUS1_TOXIC_COUNTER >> 8; + if (statusDamage == 0) + statusDamage = 1; + } + } + + // Apply hypothetical poisoning from Toxic Spikes, which means the first turn of damage already added in GetSwitchinHazardsDamage + // Do this last to skip one iteration of Poison / Toxic damage, and start counting Toxic damage one turn later. + if (tSpikesLayers != 0 && (defType1 != TYPE_POISON && defType2 != TYPE_POISON + && ability != ABILITY_IMMUNITY && ability != ABILITY_POISON_HEAL + && status == 0 + && !(heldItemEffect == HOLD_EFFECT_HEAVY_DUTY_BOOTS + && (((gFieldStatuses & STATUS_FIELD_MAGIC_ROOM) || ability == ABILITY_KLUTZ))) + && heldItemEffect != HOLD_EFFECT_CURE_PSN && heldItemEffect != HOLD_EFFECT_CURE_STATUS + && IsMonGrounded(heldItemEffect, ability, defType1, defType2))) + { + if (tSpikesLayers == 1) + { + AI_DATA->switchinCandidate.battleMon.status1 = STATUS1_POISON; // Assign "hypothetical" status to the switchin candidate so we can get the damage it would take from TSpikes + AI_DATA->switchinCandidate.hypotheticalStatus = TRUE; + } + if (tSpikesLayers == 2) + { + AI_DATA->switchinCandidate.battleMon.status1 = STATUS1_TOXIC_POISON; // Assign "hypothetical" status to the switchin candidate so we can get the damage it would take from TSpikes + AI_DATA->switchinCandidate.battleMon.status1 += STATUS1_TOXIC_TURN(1); + AI_DATA->switchinCandidate.hypotheticalStatus = TRUE; + } + } + return statusDamage; +} + +// Gets number of hits to KO factoring in hazards, healing held items, status, and weather +static u32 GetSwitchinHitsToKO(s32 damageTaken, u32 battler) +{ + u32 startingHP = AI_DATA->switchinCandidate.battleMon.hp - GetSwitchinHazardsDamage(battler, &AI_DATA->switchinCandidate.battleMon); + s32 weatherImpact = GetSwitchinWeatherImpact(); // Signed to handle both damage and healing in the same value + u32 recurringDamage = GetSwitchinRecurringDamage(); + u32 recurringHealing = GetSwitchinRecurringHealing(); + u32 statusDamage = GetSwitchinStatusDamage(battler); + u32 hitsToKO = 0, singleUseItemHeal = 0; + u16 maxHP = AI_DATA->switchinCandidate.battleMon.maxHP, item = AI_DATA->switchinCandidate.battleMon.item, heldItemEffect = gItems[AI_DATA->switchinCandidate.battleMon.item].holdEffect; + u8 weatherDuration = gWishFutureKnock.weatherDuration, holdEffectParam = gItems[AI_DATA->switchinCandidate.battleMon.item].holdEffectParam; + u32 opposingBattler = GetBattlerAtPosition(BATTLE_OPPOSITE(GetBattlerPosition(battler))); + u32 opposingAbility = gBattleMons[opposingBattler].ability; + bool8 usedSingleUseHealingItem = FALSE; + s32 currentHP = startingHP; + + // No damage being dealt + if (damageTaken + statusDamage + recurringDamage == 0) + return startingHP; + + // Mon fainted to hazards + if (startingHP == 0) + return 1; + + // Find hits to KO + while (currentHP > 0) + { + // Remove weather damage when it would run out + if (weatherImpact != 0 && weatherDuration == 0) + weatherImpact = 0; + + // Take attack damage for the turn + currentHP = currentHP - damageTaken; + + // If mon is still alive, apply weather impact first, as it might KO the mon before it can heal with its item (order is weather -> item -> status) + if (currentHP != 0) + currentHP = currentHP + weatherImpact; + + // Check if we're at a single use healing item threshold + if (AI_DATA->switchinCandidate.battleMon.ability != ABILITY_KLUTZ && usedSingleUseHealingItem == FALSE) + { + if (currentHP < maxHP / 2) + { + if (item == ITEM_BERRY_JUICE) + { + singleUseItemHeal = holdEffectParam; + } + else if (opposingAbility != ABILITY_UNNERVE && heldItemEffect == HOLD_EFFECT_RESTORE_HP) + { + // By default, this should only encompass Oran Berry and Sitrus Berry. + singleUseItemHeal = holdEffectParam; + if (singleUseItemHeal == 0) + singleUseItemHeal = 1; + } + } + else if (currentHP < maxHP / CONFUSE_BERRY_HP_FRACTION + && opposingAbility != ABILITY_UNNERVE + && (item == ITEM_AGUAV_BERRY || item == ITEM_FIGY_BERRY || item == ITEM_IAPAPA_BERRY || item == ITEM_MAGO_BERRY || item == ITEM_WIKI_BERRY)) + { + singleUseItemHeal = maxHP / CONFUSE_BERRY_HEAL_FRACTION; + if (singleUseItemHeal == 0) + singleUseItemHeal = 1; + } + + // If we used one, apply it without overcapping our maxHP + if (singleUseItemHeal > 0) + { + if ((currentHP + singleUseItemHeal) > maxHP) + currentHP = maxHP; + else + currentHP = currentHP + singleUseItemHeal; + usedSingleUseHealingItem = TRUE; + } + } + + // Healing from items occurs before status so we can do the rest in one line + if (currentHP != 0) + currentHP = currentHP + recurringHealing - recurringDamage - statusDamage; + + // Recalculate toxic damage if needed + if (AI_DATA->switchinCandidate.battleMon.status1 & STATUS1_TOXIC_POISON) + statusDamage = GetSwitchinStatusDamage(battler); + + // Reduce weather duration + if (weatherDuration != 0) + weatherDuration--; + + hitsToKO++; + } + + // If mon had a hypothetical status from TSpikes, clear it + if (AI_DATA->switchinCandidate.hypotheticalStatus == TRUE) + { + AI_DATA->switchinCandidate.battleMon.status1 = 0; + AI_DATA->switchinCandidate.hypotheticalStatus = FALSE; + } + return hitsToKO; +} + +static u16 GetSwitchinTypeMatchup(u32 opposingBattler, struct BattlePokemon battleMon) +{ + + // Check type matchup + u16 typeEffectiveness = UQ_4_12(1.0); + u8 atkType1 = gSpeciesInfo[gBattleMons[opposingBattler].species].types[0], atkType2 = gSpeciesInfo[gBattleMons[opposingBattler].species].types[1], + defType1 = battleMon.type1, defType2 = battleMon.type2; + + // Multiply type effectiveness by a factor depending on type matchup + typeEffectiveness = uq4_12_multiply(typeEffectiveness, (GetTypeModifier(atkType1, defType1))); + if (atkType2 != atkType1) + typeEffectiveness = uq4_12_multiply(typeEffectiveness, (GetTypeModifier(atkType2, defType1))); + if (defType2 != defType1) + { + typeEffectiveness = uq4_12_multiply(typeEffectiveness, (GetTypeModifier(atkType1, defType2))); + if (atkType2 != atkType1) + typeEffectiveness = uq4_12_multiply(typeEffectiveness, (GetTypeModifier(atkType2, defType2))); + } + return typeEffectiveness; +} + +static int GetRandomSwitchinWithBatonPass(int aliveCount, int bits, int firstId, int lastId, int currentMonId) +{ + // Breakout early if there aren't any Baton Pass mons to save computation time + if (bits == 0) + return PARTY_SIZE; + + // GetBestMonBatonPass randomly chooses between all mons that met Baton Pass check + if ((aliveCount == 2 || (aliveCount > 2 && Random() % 3 == 0)) && bits) + { + do + { + return (Random() % (lastId - firstId)) + firstId; + } while (!(bits & gBitTable[currentMonId])); + } + + // Catch any other cases (such as only one mon alive and it has Baton Pass) + else + return PARTY_SIZE; +} + +static s32 GetMaxDamagePlayerCouldDealToSwitchin(u32 battler, u32 opposingBattler, struct BattlePokemon battleMon) +{ + int i = 0; + u32 playerMove; + s32 damageTaken = 0, maxDamageTaken = 0; + + for (i = 0; i < MAX_MON_MOVES; i++) + { + playerMove = gBattleMons[opposingBattler].moves[i]; + if (playerMove != MOVE_NONE && gBattleMoves[playerMove].power != 0) + { + damageTaken = AI_CalcPartyMonDamage(playerMove, opposingBattler, battler, battleMon, FALSE); + if (damageTaken > maxDamageTaken) + maxDamageTaken = damageTaken; + } + } + return maxDamageTaken; +} + +// This function splits switching behaviour mid-battle from after a KO. +// Mid battle, it integrates GetBestMonTypeMatchup (vanilla with modifications), GetBestMonDefensive (custom), and GetBestMonBatonPass (vanilla with modifications) +// After a KO, integrates GetBestMonRevengeKiller (custom), GetBestMonTypeMatchup (vanilla with modifications), GetBestMonBatonPass (vanilla with modifications), and GetBestMonDmg (vanilla) +// the Type Matchup code will prioritize switching into a mon with the best type matchup and also a super effective move, or just best type matchup if no super effective move is found +// the Most Defensive code will prioritize switching into the mon that takes the most hits to KO, with a minimum of 4 hits required to be considered a valid option +// the Baton Pass code will prioritize switching into a mon with Baton Pass if it can get in, boost, and BP out without being KO'd, and randomizes between multiple valid options +// the Revenge Killer code will prioritize, in order, OHKO and outspeeds / OHKO, slower but not 2HKO'd / 2HKO, outspeeds and not OHKO'd / 2HKO, slower but not 3HKO'd +// the Most Damage code will prioritize switching into whatever mon deals the most damage, which is generally not as good as having a good Type Matchup +// Everything runs in the same loop to minimize computation time. This makes it harder to read, but hopefully the comments can guide you! + +static u32 GetBestMonIntegrated(struct Pokemon *party, int firstId, int lastId, u32 battler, u32 opposingBattler, u8 battlerIn1, u8 battlerIn2, bool8 isSwitchAfterKO) +{ + int revengeKillerId = PARTY_SIZE, slowRevengeKillerId = PARTY_SIZE, fastThreatenId = PARTY_SIZE, slowThreatenId = PARTY_SIZE, damageMonId = PARTY_SIZE; + int batonPassId = PARTY_SIZE, typeMatchupId = PARTY_SIZE, typeMatchupEffectiveId = PARTY_SIZE, defensiveMonId = PARTY_SIZE, aceMonId = PARTY_SIZE; + int i, j, aliveCount = 0, bits = 0; + s32 defensiveMonHitKOThreshold = 3; // 3HKO threshold that candidate defensive mons must exceed + u32 aiMove, hitsToKO, hitsToKOThreshold, maxHitsToKO = 0; + s32 playerMonSpeed = gBattleMons[opposingBattler].speed, playerMonHP = gBattleMons[opposingBattler].hp, aiMonSpeed, maxDamageDealt = 0, damageDealt = 0; + u16 bestResist = UQ_4_12(1.0), bestResistEffective = UQ_4_12(1.0), typeMatchup; + + if (isSwitchAfterKO) + hitsToKOThreshold = 1; // After a KO, mons at minimum need to not be 1-shot, as they switch in for free + else + hitsToKOThreshold = 2; // When switching in otherwise need to not be 2-shot, as they do not switch in for free + + // Iterate through mons + for (i = firstId; i < lastId; i++) + { + // Check mon validity + if (!IsValidForBattle(&party[i]) + || gBattlerPartyIndexes[battlerIn1] == i + || gBattlerPartyIndexes[battlerIn2] == i + || i == *(gBattleStruct->monToSwitchIntoId + battlerIn1) + || i == *(gBattleStruct->monToSwitchIntoId + battlerIn2)) + { + continue; + } + // Save Ace Pokemon for last + else if (IsAceMon(battler, i)) + { + aceMonId = i; continue; + } + else + aliveCount++; + + InitializeSwitchinCandidate(&party[i]); + + // While not really invalid per say, not really wise to switch into this mon + if (AI_DATA->switchinCandidate.battleMon.ability == ABILITY_TRUANT && IsTruantMonVulnerable(battler, opposingBattler)) + continue; + + // Get max number of hits for player to KO AI mon + hitsToKO = GetSwitchinHitsToKO(GetMaxDamagePlayerCouldDealToSwitchin(battler, opposingBattler, AI_DATA->switchinCandidate.battleMon), battler); - dmg = AI_CalcPartyMonBestMoveDamage(battler, opposingBattler, &party[i], NULL); - if (bestDmg < dmg) + // Track max hits to KO and set GetBestMonDefensive if applicable + if(hitsToKO > maxHitsToKO) { - bestDmg = dmg; - bestMonId = i; + maxHitsToKO = hitsToKO; + if(maxHitsToKO > defensiveMonHitKOThreshold) + defensiveMonId = i; + } + + typeMatchup = GetSwitchinTypeMatchup(opposingBattler, AI_DATA->switchinCandidate.battleMon); + + // Check that good type matchups gets at least two turns and set GetBestMonTypeMatchup if applicable + if (typeMatchup < bestResist) + { + if ((hitsToKO > hitsToKOThreshold && AI_DATA->switchinCandidate.battleMon.speed > playerMonSpeed) || hitsToKO > hitsToKOThreshold + 1) // Need to take an extra hit if slower + { + bestResist = typeMatchup; + typeMatchupId = i; + } + } + + aiMonSpeed = AI_DATA->switchinCandidate.battleMon.speed; + + // Check through current mon's moves + for (j = 0; j < MAX_MON_MOVES; j++) + { + aiMove = AI_DATA->switchinCandidate.battleMon.moves[j]; + + // Only do damage calc if switching after KO, don't need it otherwise and saves ~0.02s per turn + if (isSwitchAfterKO && aiMove != MOVE_NONE && gBattleMoves[aiMove].power != 0) + damageDealt = AI_CalcPartyMonDamage(aiMove, battler, opposingBattler, AI_DATA->switchinCandidate.battleMon, TRUE); + + // Check for Baton Pass; hitsToKO requirements mean mon can boost and BP without dying whether it's slower or not + if (aiMove == MOVE_BATON_PASS && ((hitsToKO > hitsToKOThreshold + 1 && AI_DATA->switchinCandidate.battleMon.speed < playerMonSpeed) || (hitsToKO > hitsToKOThreshold && AI_DATA->switchinCandidate.battleMon.speed > playerMonSpeed))) + bits |= gBitTable[i]; + + // Check for mon with resistance and super effective move for GetBestMonTypeMatchup + if (aiMove != MOVE_NONE && gBattleMoves[aiMove].power != 0) + { + if (typeMatchup < bestResistEffective) + { + if (AI_GetTypeEffectiveness(aiMove, battler, opposingBattler) >= UQ_4_12(2.0)) + { + // Assuming a super effective move would do significant damage or scare the player out, so not being as conservative here + if (hitsToKO > hitsToKOThreshold) + { + bestResistEffective = typeMatchup; + typeMatchupEffectiveId = i; + } + } + } + + // If a self destruction move doesn't OHKO, don't factor it into revenge killing + if (gBattleMoves[aiMove].effect == EFFECT_EXPLOSION && damageDealt < playerMonHP) + continue; + + // Check that mon isn't one shot and set GetBestMonDmg if applicable + if (damageDealt > maxDamageDealt) + { + if(hitsToKO > hitsToKOThreshold) + { + maxDamageDealt = damageDealt; + damageMonId = i; + } + } + + // Check if current mon can revenge kill in some capacity + // If AI mon can one shot + if (damageDealt > playerMonHP) + { + // If AI mon is faster and doesn't die to hazards + if ((aiMonSpeed > playerMonSpeed || gBattleMoves[aiMove].priority > 0) && AI_DATA->switchinCandidate.battleMon.hp > GetSwitchinHazardsDamage(battler, &AI_DATA->switchinCandidate.battleMon)) + { + // We have a revenge killer + revengeKillerId = i; + } + + // If AI mon is slower + else + { + // If AI mon can't be OHKO'd + if (hitsToKO > hitsToKOThreshold) + { + // We have a slow revenge killer + slowRevengeKillerId = i; + } + } + } + + // If AI mon can two shot + if (damageDealt > playerMonHP / 2) + { + // If AI mon is faster + if (aiMonSpeed > playerMonSpeed || gBattleMoves[aiMove].priority > 0) + { + // If AI mon can't be OHKO'd + if (hitsToKO > hitsToKOThreshold) + { + // We have a fast threaten + fastThreatenId = i; + } + } + // If AI mon is slower + else + { + // If AI mon can't be 2HKO'd + if (hitsToKO > hitsToKOThreshold + 1) + { + // We have a slow threaten + slowThreatenId = i; + } + } + } + } } } - return bestMonId; + batonPassId = GetRandomSwitchinWithBatonPass(aliveCount, bits, firstId, lastId, i); + + // Different switching priorities depending on switching mid battle vs switching after a KO + if (isSwitchAfterKO) + { + // Return GetBestMonRevengeKiller > GetBestMonTypeMatchup > GetBestMonBatonPass > GetBestMonDmg + if (revengeKillerId != PARTY_SIZE) + return revengeKillerId; + + else if (slowRevengeKillerId != PARTY_SIZE) + return slowRevengeKillerId; + + else if (fastThreatenId != PARTY_SIZE) + return fastThreatenId; + + else if (slowThreatenId != PARTY_SIZE) + return slowThreatenId; + + else if (typeMatchupEffectiveId != PARTY_SIZE) + return typeMatchupEffectiveId; + + else if (typeMatchupId != PARTY_SIZE) + return typeMatchupId; + + else if (batonPassId != PARTY_SIZE) + return batonPassId; + + else if (damageMonId != PARTY_SIZE) + return damageMonId; + } + else + { + // Return GetBestMonTypeMatchup > GetBestMonDefensive > GetBestMonBatonPass + if (typeMatchupEffectiveId != PARTY_SIZE) + return typeMatchupEffectiveId; + + else if (typeMatchupId != PARTY_SIZE) + return typeMatchupId; + + else if (defensiveMonId != PARTY_SIZE) + return defensiveMonId; + + else if (batonPassId != PARTY_SIZE) + return batonPassId; + + // If ace mon is the last available Pokemon and U-Turn/Volt Switch was used - switch to the mon. + else if (aceMonId != PARTY_SIZE + && (gBattleMoves[gLastUsedMove].effect == EFFECT_HIT_ESCAPE || gBattleMoves[gLastUsedMove].effect == EFFECT_PARTING_SHOT)) + return aceMonId; + } + return PARTY_SIZE; } -u8 GetMostSuitableMonToSwitchInto(u32 battler) +u8 GetMostSuitableMonToSwitchInto(u32 battler, bool32 switchAfterMonKOd) { u32 opposingBattler = 0; u32 bestMonId = PARTY_SIZE; @@ -925,8 +1895,6 @@ u8 GetMostSuitableMonToSwitchInto(u32 battler) s32 firstId = 0; s32 lastId = 0; // + 1 struct Pokemon *party; - s32 i, aliveCount = 0; - u32 invalidMons = 0, aceMonId = PARTY_SIZE; if (*(gBattleStruct->monToSwitchIntoId + battler) != PARTY_SIZE) return *(gBattleStruct->monToSwitchIntoId + battler); @@ -959,46 +1927,59 @@ u8 GetMostSuitableMonToSwitchInto(u32 battler) else party = gEnemyParty; - // Get invalid slots ids. - for (i = firstId; i < lastId; i++) + // Split ideal mon decision between after previous mon KO'd (prioritize offensive options) and after switching active mon out (prioritize defensive options), and expand the scope of both. + // Only use better mon selection if AI_FLAG_SMART_MON_CHOICES is set for the trainer. + if (AI_THINKING_STRUCT->aiFlags & AI_FLAG_SMART_MON_CHOICES) { - if (!IsValidForBattle(&party[i]) - || gBattlerPartyIndexes[battlerIn1] == i - || gBattlerPartyIndexes[battlerIn2] == i - || i == *(gBattleStruct->monToSwitchIntoId + battlerIn1) - || i == *(gBattleStruct->monToSwitchIntoId + battlerIn2) - || (GetMonAbility(&party[i]) == ABILITY_TRUANT && IsTruantMonVulnerable(battler, opposingBattler))) // While not really invalid per say, not really wise to switch into this mon.) - { - invalidMons |= gBitTable[i]; - } - else if (IsAceMon(battler, i))// Save Ace Pokemon for last. - { - aceMonId = i; - invalidMons |= gBitTable[i]; - } - else - { - aliveCount++; - } + bestMonId = GetBestMonIntegrated(party, firstId, lastId, battler, opposingBattler, battlerIn1, battlerIn2, switchAfterMonKOd); + return bestMonId; } - bestMonId = GetBestMonBatonPass(party, firstId, lastId, invalidMons, aliveCount, battler, opposingBattler); - if (bestMonId != PARTY_SIZE) - return bestMonId; + // This all handled by the GetBestMonIntegrated function if the AI_FLAG_SMART_MON_CHOICES flag is set + else + { + s32 i, aliveCount = 0; + u32 invalidMons = 0, aceMonId = PARTY_SIZE; + // Get invalid slots ids. + for (i = firstId; i < lastId; i++) + { + if (!IsValidForBattle(&party[i]) + || gBattlerPartyIndexes[battlerIn1] == i + || gBattlerPartyIndexes[battlerIn2] == i + || i == *(gBattleStruct->monToSwitchIntoId + battlerIn1) + || i == *(gBattleStruct->monToSwitchIntoId + battlerIn2) + || (GetMonAbility(&party[i]) == ABILITY_TRUANT && IsTruantMonVulnerable(battler, opposingBattler))) // While not really invalid per say, not really wise to switch into this mon.) + { + invalidMons |= gBitTable[i]; + } + else if (IsAceMon(battler, i))// Save Ace Pokemon for last. + { + aceMonId = i; + invalidMons |= gBitTable[i]; + } + else + { + aliveCount++; + } + } + bestMonId = GetBestMonBatonPass(party, firstId, lastId, invalidMons, aliveCount, battler, opposingBattler); + if (bestMonId != PARTY_SIZE) + return bestMonId; - bestMonId = GetBestMonTypeMatchup(party, firstId, lastId, invalidMons, battler, opposingBattler); - if (bestMonId != PARTY_SIZE) - return bestMonId; + bestMonId = GetBestMonTypeMatchup(party, firstId, lastId, invalidMons, battler, opposingBattler); + if (bestMonId != PARTY_SIZE) + return bestMonId; - bestMonId = GetBestMonDmg(party, firstId, lastId, invalidMons, battler, opposingBattler); - if (bestMonId != PARTY_SIZE) - return bestMonId; + bestMonId = GetBestMonDmg(party, firstId, lastId, invalidMons, battler, opposingBattler); + if (bestMonId != PARTY_SIZE) + return bestMonId; - // If ace mon is the last available Pokemon and switch move was used - switch to the mon. - if (aceMonId != PARTY_SIZE) - return aceMonId; + // If ace mon is the last available Pokemon and switch move was used - switch to the mon. + if (aceMonId != PARTY_SIZE) + return aceMonId; - return PARTY_SIZE; + return PARTY_SIZE; + } } static bool32 AiExpectsToFaintPlayer(u32 battler) @@ -1157,30 +2138,4 @@ static bool32 AI_OpponentCanFaintAiWithMod(u32 battler, u32 healAmount) } } return FALSE; -} - -static bool32 IsAiPartyMonOHKOBy(u32 battlerAi, u32 battlerAtk, struct Pokemon *aiMon) -{ - bool32 ret = FALSE; - struct BattlePokemon *savedBattleMons; - s32 hp = GetMonData(aiMon, MON_DATA_HP); - s32 bestDmg = AI_CalcPartyMonBestMoveDamage(battlerAtk, battlerAi, NULL, aiMon); - - switch (GetNoOfHitsToKO(bestDmg, hp)) - { - case 1: - ret = TRUE; - break; - case 2: // if AI mon is faster allow 2 turns - savedBattleMons = AllocSaveBattleMons(); - PokemonToBattleMon(aiMon, &gBattleMons[battlerAi]); - if (AI_WhoStrikesFirst(battlerAi, battlerAtk, 0) == AI_IS_SLOWER) - ret = TRUE; - else - ret = FALSE; - FreeRestoreBattleMons(savedBattleMons); - break; - } - - return ret; -} +} \ No newline at end of file diff --git a/src/battle_ai_util.c b/src/battle_ai_util.c index faffe0e6b3b6..967d31bc073e 100644 --- a/src/battle_ai_util.c +++ b/src/battle_ai_util.c @@ -363,26 +363,6 @@ static const u16 sEncouragedEncoreEffects[] = EFFECT_CAMOUFLAGE, }; -// For the purposes of determining the most powerful move in a moveset, these -// moves are treated the same as having a power of 0 or 1 -#define IGNORED_MOVES_END 0xFFFF -static const u16 sIgnoredPowerfulMoveEffects[] = -{ - EFFECT_EXPLOSION, - EFFECT_DREAM_EATER, - EFFECT_RECHARGE, - EFFECT_SKULL_BASH, - EFFECT_SOLAR_BEAM, - EFFECT_SPIT_UP, - EFFECT_FOCUS_PUNCH, - EFFECT_SUPERPOWER, - EFFECT_ERUPTION, - EFFECT_OVERHEAT, - EFFECT_MIND_BLOWN, - EFFECT_MAKE_IT_RAIN, - IGNORED_MOVES_END -}; - // Functions u32 GetAIChosenMove(u32 battlerId) { @@ -509,6 +489,7 @@ void SaveBattlerData(u32 battlerId) static bool32 ShouldFailForIllusion(u32 illusionSpecies, u32 battlerId) { u32 i, j; + const struct LevelUpMove *learnset; if (BATTLE_HISTORY->abilities[battlerId] == ABILITY_ILLUSION) return FALSE; @@ -520,13 +501,14 @@ static bool32 ShouldFailForIllusion(u32 illusionSpecies, u32 battlerId) if (move == MOVE_NONE) continue; - for (j = 0; gLevelUpLearnsets[illusionSpecies][j].move != MOVE_UNAVAILABLE; j++) + learnset = GetSpeciesLevelUpLearnset(illusionSpecies); + for (j = 0; learnset[j].move != MOVE_UNAVAILABLE; j++) { - if (gLevelUpLearnsets[illusionSpecies][j].move == move) + if (learnset[j].move == move) break; } // The used move is in the learnsets of the fake species. - if (gLevelUpLearnsets[illusionSpecies][j].move != MOVE_UNAVAILABLE) + if (learnset[j].move != MOVE_UNAVAILABLE) continue; // The used move can be learned from Tm/Hm or Move Tutors. @@ -981,6 +963,11 @@ static bool32 AI_IsMoveEffectInMinus(u32 battlerAtk, u32 battlerDef, u32 move, s switch (gBattleMoves[move].effect) { case EFFECT_RECHARGE: + case EFFECT_SUPERPOWER: + case EFFECT_OVERHEAT: + case EFFECT_MAKE_IT_RAIN: + case EFFECT_MIND_BLOWN: + case EFFECT_STEEL_BEAM: return TRUE; case EFFECT_RECOIL_25: case EFFECT_RECOIL_IF_MISS: @@ -1055,107 +1042,6 @@ u32 GetNoOfHitsToKOBattler(u32 battlerAtk, u32 battlerDef, u32 moveIndex) return GetNoOfHitsToKOBattlerDmg(AI_DATA->simulatedDmg[battlerAtk][battlerDef][moveIndex], battlerDef); } -bool32 IsInIgnoredPowerfulMoveEffects(u32 effect) -{ - u32 i; - for (i = 0; sIgnoredPowerfulMoveEffects[i] != IGNORED_MOVES_END; i++) - { - if (effect == sIgnoredPowerfulMoveEffects[i]) - { - // Don't ingore Solar Beam if doesn't have a charging turn. - if (effect == EFFECT_SOLAR_BEAM && (AI_GetWeather(AI_DATA) & B_WEATHER_SUN)) - break; - return TRUE; - } - } - return FALSE; -} - -void SetMovesDamageResults(u32 battlerAtk, u16 *moves) -{ - s32 i, j, battlerDef, bestId, currId, hp, result; - s32 moveDmgs[MAX_MON_MOVES]; - bool32 isNotConsidered[MAX_MON_MOVES]; - - for (i = 0; i < MAX_MON_MOVES; i++) - { - u32 move = moves[i]; - if (move == MOVE_NONE || move == MOVE_UNAVAILABLE || gBattleMoves[move].power == 0 || IsInIgnoredPowerfulMoveEffects(gBattleMoves[move].effect)) - isNotConsidered[i] = TRUE; - else - isNotConsidered[i] = FALSE; - } - - for (i = 0; i < MAX_MON_MOVES; i++) - { - for (battlerDef = 0; battlerDef < MAX_BATTLERS_COUNT; battlerDef++) - { - if (battlerDef == battlerAtk) - continue; - - if (isNotConsidered[i]) - { - result = MOVE_POWER_OTHER; // Move has a power of 0/1, or is in the group sIgnoredPowerfulMoveEffects - } - else - { - // Considered move has power and is not in sIgnoredPowerfulMoveEffects - // Check all other moves and calculate their power - for (j = 0; j < MAX_MON_MOVES; j++) - { - if (!isNotConsidered[j]) - moveDmgs[j] = AI_DATA->simulatedDmg[battlerAtk][battlerDef][j]; - else - moveDmgs[j] = 0; - } - - hp = gBattleMons[battlerDef].hp + (20 * gBattleMons[battlerDef].hp / 100); // 20 % add to make sure the battler is always fainted - // If a move can faint battler, it doesn't matter how much damage it does - for (j = 0; j < MAX_MON_MOVES; j++) - { - if (moveDmgs[j] > hp) - moveDmgs[j] = hp; - } - - // Find move which deals most damage, in case of a tie prioritize one with better effect. - for (bestId = 0, j = 1; j < MAX_MON_MOVES; j++) - { - if (moveDmgs[j] > moveDmgs[bestId]) - bestId = j; - if (moveDmgs[j] == moveDmgs[bestId]) - { - switch (AI_WhichMoveBetter(gBattleMons[battlerAtk].moves[bestId], gBattleMons[battlerAtk].moves[j], battlerAtk, battlerDef, GetNoOfHitsToKO(moveDmgs[j], hp))) - { - case 2: - if (Random() & 1) - break; - case 1: - bestId = j; - break; - } - } - } - - currId = i; - if (currId == bestId) - result = MOVE_POWER_BEST; - else if ((moveDmgs[currId] >= hp || moveDmgs[bestId] < hp) // If current move can faint as well, or if neither can - && GetNoOfHitsToKO(moveDmgs[currId], hp) - GetNoOfHitsToKO(moveDmgs[bestId], hp) <= 2 // Consider a move weak if it needs to be used at least 2 times more to faint the target, compared to the best move. - && AI_WhichMoveBetter(gBattleMons[battlerAtk].moves[bestId], gBattleMons[battlerAtk].moves[currId], battlerAtk, battlerDef, GetNoOfHitsToKO(moveDmgs[currId], hp)) != 0) - result = MOVE_POWER_GOOD; - else - result = MOVE_POWER_WEAK; - } - AI_DATA->moveDmgResult[battlerAtk][battlerDef][i] = result; - } - } -} - -u32 GetMoveDamageResult(u32 battlerAtk, u32 battlerDef, u32 moveIndex) -{ - return AI_DATA->moveDmgResult[battlerAtk][battlerDef][moveIndex]; -} - u32 GetCurrDamageHpPercent(u32 battlerAtk, u32 battlerDef) { int bestDmg = AI_DATA->simulatedDmg[battlerAtk][battlerDef][AI_THINKING_STRUCT->movesetIndex]; @@ -1538,30 +1424,6 @@ bool32 IsConfusionMoveEffect(u32 moveEffect) } } -bool32 IsStatLoweringMoveEffect(u32 moveEffect) -{ - switch (moveEffect) - { - case EFFECT_ATTACK_DOWN: - case EFFECT_DEFENSE_DOWN: - case EFFECT_SPEED_DOWN: - case EFFECT_SPECIAL_ATTACK_DOWN: - case EFFECT_SPECIAL_DEFENSE_DOWN: - case EFFECT_ACCURACY_DOWN: - case EFFECT_EVASION_DOWN: - case EFFECT_ATTACK_DOWN_2: - case EFFECT_DEFENSE_DOWN_2: - case EFFECT_SPEED_DOWN_2: - case EFFECT_SPECIAL_ATTACK_DOWN_2: - case EFFECT_SPECIAL_DEFENSE_DOWN_2: - case EFFECT_ACCURACY_DOWN_2: - case EFFECT_EVASION_DOWN_2: - return TRUE; - default: - return FALSE; - } -} - bool32 IsHazardMoveEffect(u32 moveEffect) { switch (moveEffect) @@ -1996,6 +1858,7 @@ bool32 ShouldLowerAccuracy(u32 battlerAtk, u32 battlerDef, u32 defAbility) && defAbility != ABILITY_WHITE_SMOKE && defAbility != ABILITY_FULL_METAL_BODY && defAbility != ABILITY_KEEN_EYE + && (B_ILLUMINATE_EFFECT >= GEN_9 && defAbility != ABILITY_ILLUMINATE) && AI_DATA->holdEffects[battlerDef] != HOLD_EFFECT_CLEAR_AMULET) return TRUE; return FALSE; @@ -2062,7 +1925,6 @@ bool32 HasMoveWithSplit(u32 battler, u32 split) if (moves[i] != MOVE_NONE && moves[i] != MOVE_UNAVAILABLE && GetBattleMoveSplit(moves[i]) == split) return TRUE; } - return FALSE; } @@ -2171,6 +2033,8 @@ bool32 IsHealingMoveEffect(u32 effect) case EFFECT_HEAL_PULSE: case EFFECT_REST: case EFFECT_JUNGLE_HEALING: + case EFFECT_ABSORB: + case EFFECT_DREAM_EATER: return TRUE; default: return FALSE; @@ -2395,6 +2259,24 @@ bool32 IsEncoreEncouragedEffect(u32 moveEffect) return FALSE; } +bool32 IsChargingMove(u32 battlerAtk, u32 effect) +{ + switch (effect) + { + case EFFECT_SOLAR_BEAM: + if (AI_GetWeather(AI_DATA) & B_WEATHER_SUN) + return FALSE; + case EFFECT_SKULL_BASH: + case EFFECT_METEOR_BEAM: + case EFFECT_TWO_TURNS_ATTACK: + if (AI_DATA->holdEffects[battlerAtk] == HOLD_EFFECT_POWER_HERB) + return FALSE; + return TRUE; + default: + return FALSE; + } +} + static u32 GetLeechSeedDamage(u32 battlerId) { u32 damage = 0; @@ -3464,32 +3346,16 @@ void FreeRestoreBattleMons(struct BattlePokemon *savedBattleMons) } // party logic -s32 AI_CalcPartyMonBestMoveDamage(u32 battlerAtk, u32 battlerDef, struct Pokemon *attackerMon, struct Pokemon *targetMon) +s32 AI_CalcPartyMonDamage(u32 move, u32 battlerAtk, u32 battlerDef, struct BattlePokemon switchinCandidate, bool8 isPartyMonAttacker) { - s32 i, move, bestDmg, dmg = 0; + s32 dmg; u8 effectiveness; struct BattlePokemon *savedBattleMons = AllocSaveBattleMons(); - - if (attackerMon != NULL) - PokemonToBattleMon(attackerMon, &gBattleMons[battlerAtk]); - if (targetMon != NULL) - PokemonToBattleMon(targetMon, &gBattleMons[battlerDef]); - - for (bestDmg = 0, i = 0; i < MAX_MON_MOVES; i++) - { - if (BattlerHasAi(battlerAtk)) - move = GetMonData(attackerMon, MON_DATA_MOVE1 + i); - else - move = AI_PARTY->mons[GetBattlerSide(battlerAtk)][gBattlerPartyIndexes[battlerAtk]].moves[i]; - - if (move != MOVE_NONE && gBattleMoves[move].power != 0) - { - dmg = AI_CalcDamageSaveBattlers(move, battlerAtk, battlerDef, &effectiveness, FALSE); - if (dmg > bestDmg) - bestDmg = dmg; - } - } - + if(isPartyMonAttacker) + gBattleMons[battlerAtk] = switchinCandidate; + else + gBattleMons[battlerDef] = switchinCandidate; + dmg = AI_CalcDamage(move, battlerAtk, battlerDef, &effectiveness, FALSE, AI_GetWeather(AI_DATA)); FreeRestoreBattleMons(savedBattleMons); return dmg; } @@ -3920,3 +3786,11 @@ bool32 AI_IsBattlerAsleepOrComatose(u32 battlerId) { return (gBattleMons[battlerId].status1 & STATUS1_SLEEP) || AI_DATA->abilities[battlerId] == ABILITY_COMATOSE; } + +u32 AI_CalcSecondaryEffectChance(u32 battler, u32 secondaryEffectChance) +{ + if (AI_DATA->abilities[battler] == ABILITY_SERENE_GRACE) + secondaryEffectChance *= 2; + + return secondaryEffectChance; +} diff --git a/src/battle_anim.c b/src/battle_anim.c index c46c5cee4cb9..d2216e51554b 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -278,6 +278,9 @@ void LaunchBattleAnimation(u32 animType, u32 animId) case B_ANIM_PRIMAL_REVERSION: case B_ANIM_ULTRA_BURST: case B_ANIM_GULP_MISSILE: + case B_ANIM_RAINBOW: + case B_ANIM_SEA_OF_FIRE: + case B_ANIM_SWAMP: sAnimHideHpBoxes = TRUE; break; default: diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c index d8addec01cc5..b79c94a6a342 100644 --- a/src/battle_anim_effects_1.c +++ b/src/battle_anim_effects_1.c @@ -158,6 +158,7 @@ static void AnimRockPolishSparkle(struct Sprite *); static void AnimPoisonJabProjectile(struct Sprite *); static void AnimNightSlash(struct Sprite *); static void AnimPluck(struct Sprite *); +static void AnimAcrobaticsSlashes(struct Sprite *); const union AnimCmd gPowderParticlesAnimCmds[] = { @@ -3006,6 +3007,61 @@ const struct SpriteTemplate gSeedFlareGreenCirclesTemplate = .callback = AnimPowerAbsorptionOrb }; +const struct SpriteTemplate gSteelBeamBigOrbSpriteTemplate = +{ + .tileTag = ANIM_TAG_STEEL_BEAM, + .paletteTag = ANIM_TAG_STEEL_BEAM, + .oam = &gOamData_AffineOff_ObjNormal_8x8, + .anims = gSolarBeamBigOrbAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimSolarBeamBigOrb, +}; + +const struct SpriteTemplate gSteelBeamSmallOrbSpriteTemplate = +{ + .tileTag = ANIM_TAG_STEEL_BEAM, + .paletteTag = ANIM_TAG_STEEL_BEAM, + .oam = &gOamData_AffineOff_ObjNormal_8x8, + .anims = gSolarBeamSmallOrbAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimSolarBeamSmallOrb, +}; + +const struct SpriteTemplate gAcrobaticsSlashesSpriteTemplate = +{ + .tileTag = ANIM_TAG_WHITE_STREAK, + .paletteTag = ANIM_TAG_WHITE_STREAK, + .oam = &gOamData_AffineDouble_ObjBlend_32x8, + .anims = gRockPolishStreak_AnimCmds, + .images = NULL, + .affineAnims = gRockPolishStreak_AffineAnimCmds, + .callback = AnimAcrobaticsSlashes, +}; + +const struct SpriteTemplate gPsyshockOrbSpriteTemplate = +{ + .tileTag = ANIM_TAG_RED_ORB_2, + .paletteTag = ANIM_TAG_POISON_JAB, + .oam = &gOamData_AffineOff_ObjNormal_8x8, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimPoisonJabProjectile, +}; + +const struct SpriteTemplate gPsyshockSmokeSpriteTemplate = +{ + .tileTag = ANIM_TAG_GRAY_SMOKE, + .paletteTag = ANIM_TAG_WISP_FIRE, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gOctazookaAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimSpriteOnMonPos, +}; + // functions static void AnimGrassKnot(struct Sprite *sprite) { @@ -6971,28 +7027,6 @@ void AnimTask_CompressTargetHorizontally(u8 taskId) task->func = AnimTask_CompressTargetStep; } -const struct SpriteTemplate gSteelBeamBigOrbSpriteTemplate = -{ - .tileTag = ANIM_TAG_STEEL_BEAM, - .paletteTag = ANIM_TAG_STEEL_BEAM, - .oam = &gOamData_AffineOff_ObjNormal_8x8, - .anims = gSolarBeamBigOrbAnimTable, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = AnimSolarBeamBigOrb, -}; - -const struct SpriteTemplate gSteelBeamSmallOrbSpriteTemplate = -{ - .tileTag = ANIM_TAG_STEEL_BEAM, - .paletteTag = ANIM_TAG_STEEL_BEAM, - .oam = &gOamData_AffineOff_ObjNormal_8x8, - .anims = gSolarBeamSmallOrbAnimTable, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = AnimSolarBeamSmallOrb, -}; - void AnimTask_CreateSmallSteelBeamOrbs(u8 taskId) { if (--gTasks[taskId].data[0] == -1) @@ -7009,3 +7043,12 @@ void AnimTask_CreateSmallSteelBeamOrbs(u8 taskId) if (gTasks[taskId].data[1] == 15) DestroyAnimVisualTask(taskId); } + +static void AnimAcrobaticsSlashes(struct Sprite *sprite) +{ + int affineAnimNum = Random2() % ARRAY_COUNT(gRockPolishStreak_AffineAnimCmds); + InitSpritePosToAnimTarget(sprite, TRUE); + StartSpriteAffineAnim(sprite, affineAnimNum); + StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); + sprite->callback = RunStoredCallbackWhenAnimEnds; +} diff --git a/src/battle_anim_fire.c b/src/battle_anim_fire.c index 9a68f929bb94..3a770a7c8ce8 100644 --- a/src/battle_anim_fire.c +++ b/src/battle_anim_fire.c @@ -527,6 +527,18 @@ const struct SpriteTemplate gSpacialRendBladesTemplate2 = .callback = AnimFireSpread }; +// Sea of Fire +const struct SpriteTemplate gTwisterEmberSpriteTemplate = +{ + .tileTag = ANIM_TAG_SMALL_EMBER, + .paletteTag = ANIM_TAG_SMALL_EMBER, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = gAnims_BasicFire, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimMoveTwisterParticle, +}; + static void AnimLavaPlumeOrbitScatter(struct Sprite *sprite) { sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); diff --git a/src/battle_anim_mons.c b/src/battle_anim_mons.c index 256b2abcbabb..78e1a0a445e8 100644 --- a/src/battle_anim_mons.c +++ b/src/battle_anim_mons.c @@ -147,7 +147,7 @@ u8 GetBattlerYDelta(u8 battlerId, u16 species) u32 personality; struct BattleSpriteInfo *spriteInfo; u8 ret; - u16 coordSpecies; + species = SanitizeSpeciesId(species); if (GetBattlerSide(battlerId) == B_SIDE_PLAYER || IsContest()) { @@ -168,17 +168,9 @@ u8 GetBattlerYDelta(u8 battlerId, u16 species) else personality = gTransformedPersonalities[battlerId]; } - coordSpecies = GetUnownSpeciesId(personality); - ret = gMonBackPicCoords[coordSpecies].y_offset; - } - else if (species > NUM_SPECIES) - { - ret = gMonBackPicCoords[0].y_offset; - } - else - { - ret = gMonBackPicCoords[species].y_offset; + species = GetUnownSpeciesId(personality); } + ret = gSpeciesInfo[species].backPicYOffset; } else { @@ -190,17 +182,9 @@ u8 GetBattlerYDelta(u8 battlerId, u16 species) else personality = gTransformedPersonalities[battlerId]; - coordSpecies = GetUnownSpeciesId(personality); - ret = gMonFrontPicCoords[coordSpecies].y_offset; - } - else if (species > NUM_SPECIES) - { - ret = gMonFrontPicCoords[0].y_offset; - } - else - { - ret = gMonFrontPicCoords[species].y_offset; + species = GetUnownSpeciesId(personality); } + ret = gSpeciesInfo[species].frontPicYOffset; } return ret; } @@ -212,10 +196,8 @@ u8 GetBattlerElevation(u8 battlerId, u16 species) { if (!IsContest()) { - if (species > NUM_SPECIES) - ret = gEnemyMonElevation[0]; - else - ret = gEnemyMonElevation[species]; + species = SanitizeSpeciesId(species); + ret = gSpeciesInfo[species].enemyMonElevation; } } return ret; @@ -1899,7 +1881,7 @@ static u16 GetBattlerYDeltaFromSpriteId(u8 spriteId) if (IsContest()) { species = gContestResources->moveAnim->species; - return gMonBackPicCoords[species].y_offset; + return gSpeciesInfo[species].backPicYOffset; } else { @@ -1911,7 +1893,7 @@ static u16 GetBattlerYDeltaFromSpriteId(u8 spriteId) else species = spriteInfo[battlerId].transformSpecies; - return gMonBackPicCoords[species].y_offset; + return gSpeciesInfo[species].backPicYOffset; } else { @@ -1921,7 +1903,7 @@ static u16 GetBattlerYDeltaFromSpriteId(u8 spriteId) else species = spriteInfo[battlerId].transformSpecies; - return gMonFrontPicCoords[species].y_offset; + return gSpeciesInfo[species].frontPicYOffset; } } } @@ -2100,9 +2082,9 @@ u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 id, s16 FREE_AND_SET_NULL(gMonSpritesGfxPtr->buffer); if (!isBackpic) - spriteId = CreateSprite(&sSpriteTemplates_MoveEffectMons[id], x, y + gMonFrontPicCoords[species].y_offset, subpriority); + spriteId = CreateSprite(&sSpriteTemplates_MoveEffectMons[id], x, y + gSpeciesInfo[species].frontPicYOffset, subpriority); else - spriteId = CreateSprite(&sSpriteTemplates_MoveEffectMons[id], x, y + gMonBackPicCoords[species].y_offset, subpriority); + spriteId = CreateSprite(&sSpriteTemplates_MoveEffectMons[id], x, y + gSpeciesInfo[species].backPicYOffset, subpriority); if (IsContest()) { @@ -2122,7 +2104,8 @@ s16 GetBattlerSpriteCoordAttr(u8 battlerId, u8 attr) u16 species; u32 personality; int ret; - const struct MonCoords *coords; + u8 size; + u8 y_offset; struct BattleSpriteInfo *spriteInfo; if (IsContest()) @@ -2137,19 +2120,11 @@ s16 GetBattlerSpriteCoordAttr(u8 battlerId, u8 attr) species = gContestResources->moveAnim->species; personality = gContestResources->moveAnim->personality; } + species = SanitizeSpeciesId(species); if (species == SPECIES_UNOWN) - { species = GetUnownSpeciesId(personality); - coords = &gMonBackPicCoords[species]; - } - else if (species <= SPECIES_EGG) - { - coords = &gMonBackPicCoords[species]; - } - else - { - coords = &gMonBackPicCoords[0]; - } + size = gSpeciesInfo[species].backPicSize; + y_offset = gSpeciesInfo[species].backPicYOffset; } else { @@ -2167,19 +2142,14 @@ s16 GetBattlerSpriteCoordAttr(u8 battlerId, u8 attr) personality = gTransformedPersonalities[battlerId]; } + species = SanitizeSpeciesId(species); if (species == SPECIES_UNOWN) - { species = GetUnownSpeciesId(personality); - coords = &gMonBackPicCoords[species]; - } - else if (species > NUM_SPECIES) - { - coords = &gMonBackPicCoords[0]; - } + if (gSpeciesInfo[species].backPicFemale != NULL && IsPersonalityFemale(species, personality)) + size = gSpeciesInfo[species].backPicSizeFemale; else - { - coords = &gMonBackPicCoords[species]; - } + size = gSpeciesInfo[species].backPicSize; + y_offset = gSpeciesInfo[species].backPicYOffset; } else { @@ -2195,39 +2165,34 @@ s16 GetBattlerSpriteCoordAttr(u8 battlerId, u8 attr) personality = gTransformedPersonalities[battlerId]; } + species = SanitizeSpeciesId(species); if (species == SPECIES_UNOWN) - { species = GetUnownSpeciesId(personality); - coords = &gMonFrontPicCoords[species]; - } - else if (species > NUM_SPECIES) - { - coords = &gMonFrontPicCoords[0]; - } + if (gSpeciesInfo[species].frontPicFemale != NULL && IsPersonalityFemale(species, personality)) + size = gSpeciesInfo[species].frontPicSizeFemale; else - { - coords = &gMonFrontPicCoords[species]; - } + size = gSpeciesInfo[species].frontPicSize; + y_offset = gSpeciesInfo[species].frontPicYOffset; } } switch (attr) { case BATTLER_COORD_ATTR_HEIGHT: - return GET_MON_COORDS_HEIGHT(coords->size); + return GET_MON_COORDS_HEIGHT(size); case BATTLER_COORD_ATTR_WIDTH: - return GET_MON_COORDS_WIDTH(coords->size); + return GET_MON_COORDS_WIDTH(size); case BATTLER_COORD_ATTR_LEFT: - return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2) - (GET_MON_COORDS_WIDTH(coords->size) / 2); + return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2) - (GET_MON_COORDS_WIDTH(size) / 2); case BATTLER_COORD_ATTR_RIGHT: - return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2) + (GET_MON_COORDS_WIDTH(coords->size) / 2); + return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2) + (GET_MON_COORDS_WIDTH(size) / 2); case BATTLER_COORD_ATTR_TOP: - return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y_PIC_OFFSET) - (GET_MON_COORDS_HEIGHT(coords->size) / 2); + return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y_PIC_OFFSET) - (GET_MON_COORDS_HEIGHT(size) / 2); case BATTLER_COORD_ATTR_BOTTOM: - return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y_PIC_OFFSET) + (GET_MON_COORDS_HEIGHT(coords->size) / 2); + return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y_PIC_OFFSET) + (GET_MON_COORDS_HEIGHT(size) / 2); case BATTLER_COORD_ATTR_RAW_BOTTOM: ret = GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y) + 31; - return ret - coords->y_offset; + return ret - y_offset; default: return 0; } diff --git a/src/battle_anim_new.c b/src/battle_anim_new.c index f150afb79979..281b3087cc2b 100644 --- a/src/battle_anim_new.c +++ b/src/battle_anim_new.c @@ -8630,7 +8630,7 @@ void AnimTask_TerrainPulse(u8 taskId) void AnimTask_AffectionHangedOn(u8 taskId) { - gBattleAnimArgs[0] = GetBattlerFriendshipScore(gBattleAnimTarget); + gBattleAnimArgs[0] = GetBattlerAffectionHearts(gBattleAnimTarget); DestroyAnimVisualTask(taskId); } @@ -9148,3 +9148,16 @@ void AnimTask_GetWeatherToSet(u8 taskId) } DestroyAnimVisualTask(taskId); } + +void AnimTask_SyrupBomb(u8 taskId) +{ + struct Pokemon *party = GetBattlerParty(gBattleAnimAttacker); + gBattleAnimArgs[0] = IsMonShiny(&party[gBattlerPartyIndexes[gBattleAnimAttacker]]); + DestroyAnimVisualTask(taskId); +} + +void AnimTask_StickySyrup(u8 taskId) +{ + gBattleAnimArgs[0] = gAnimDisableStructPtr->syrupBombIsShiny; + DestroyAnimVisualTask(taskId); +} diff --git a/src/battle_anim_poison.c b/src/battle_anim_poison.c index 8905f5c475af..0ed4e430906b 100644 --- a/src/battle_anim_poison.c +++ b/src/battle_anim_poison.c @@ -14,6 +14,7 @@ static void AnimSuckerPunch(struct Sprite *sprite); static void AnimGunkShotParticlesStep(struct Sprite *sprite); static void AnimGunkShotParticles(struct Sprite *sprite); static void AnimGunkShotImpact(struct Sprite *sprite); +static void AnimAnimSyrupBomb(struct Sprite *); static const union AnimCmd sAnim_ToxicBubble[] = { @@ -305,6 +306,123 @@ const struct SpriteTemplate gGunkShotImpactSpriteTemplate = .callback = AnimGunkShotImpact, }; +static const union AnimCmd sAnim_SyrupCoat[] = +{ + ANIMCMD_FRAME(128, 10), + ANIMCMD_FRAME(64, 5), + ANIMCMD_FRAME(0, 45), + ANIMCMD_FRAME(64, 15), + ANIMCMD_FRAME(128, 15), + ANIMCMD_FRAME(192, 20), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_SyrupStick[] = +{ + ANIMCMD_FRAME(192, 5), + ANIMCMD_FRAME(128, 35), + ANIMCMD_FRAME(192, 20), + ANIMCMD_END, +}; + +static const union AnimCmd *const sAnims_SyrupCoat[] = +{ + sAnim_SyrupCoat, +}; + +static const union AnimCmd *const sAnims_SyrupStick[] = +{ + sAnim_SyrupStick, +}; + +const struct SpriteTemplate gSyrupRedProjectileSpriteTemplate = +{ + .tileTag = ANIM_TAG_SYRUP_BLOB_RED, + .paletteTag = ANIM_TAG_SYRUP_BLOB_RED, + .oam = &gOamData_AffineDouble_ObjNormal_16x16, + .anims = gAnims_PoisonProjectile, + .images = NULL, + .affineAnims = gAffineAnims_PoisonProjectile, + .callback = AnimSludgeProjectile, +}; + +const struct SpriteTemplate gSyrupYellowProjectileSpriteTemplate = +{ + .tileTag = ANIM_TAG_SYRUP_BLOB_YELLOW, + .paletteTag = ANIM_TAG_SYRUP_BLOB_YELLOW, + .oam = &gOamData_AffineDouble_ObjNormal_16x16, + .anims = gAnims_PoisonProjectile, + .images = NULL, + .affineAnims = gAffineAnims_PoisonProjectile, + .callback = AnimSludgeProjectile, +}; + +const struct SpriteTemplate gSyrupBombRedHitParticleSpriteTemplate = +{ + .tileTag = ANIM_TAG_SYRUP_SPLAT_RED, + .paletteTag = ANIM_TAG_SYRUP_BLOB_RED, + .oam = &gOamData_AffineNormal_ObjNormal_16x16, + .anims = gAnims_PoisonProjectile, + .images = NULL, + .affineAnims = sAffineAnims_SludgeBombHit, + .callback = AnimSludgeBombHitParticle, +}; + +const struct SpriteTemplate gSyrupBombYellowHitParticleSpriteTemplate = +{ + .tileTag = ANIM_TAG_SYRUP_SPLAT_YELLOW, + .paletteTag = ANIM_TAG_SYRUP_BLOB_YELLOW, + .oam = &gOamData_AffineNormal_ObjNormal_16x16, + .anims = gAnims_PoisonProjectile, + .images = NULL, + .affineAnims = sAffineAnims_SludgeBombHit, + .callback = AnimSludgeBombHitParticle, +}; + +const struct SpriteTemplate gSyrupBombRedShellSpriteTemplate = +{ + .tileTag = ANIM_TAG_SYRUP_SHELL_RED, + .paletteTag = ANIM_TAG_SYRUP_BLOB_RED, + .oam = &gOamData_AffineOff_ObjNormal_64x64, + .anims = sAnims_SyrupCoat, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimAnimSyrupBomb, +}; + +const struct SpriteTemplate gSyrupBombYellowShellSpriteTemplate = +{ + .tileTag = ANIM_TAG_SYRUP_SHELL_YELLOW, + .paletteTag = ANIM_TAG_SYRUP_BLOB_YELLOW, + .oam = &gOamData_AffineOff_ObjNormal_64x64, + .anims = sAnims_SyrupCoat, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimAnimSyrupBomb, +}; + +const struct SpriteTemplate gSyrupBombRedShellBSpriteTemplate = +{ + .tileTag = ANIM_TAG_SYRUP_SHELL_RED, + .paletteTag = ANIM_TAG_SYRUP_BLOB_RED, + .oam = &gOamData_AffineOff_ObjNormal_64x64, + .anims = sAnims_SyrupStick, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimAnimSyrupBomb, +}; + +const struct SpriteTemplate gSyrupBombYellowShellBSpriteTemplate = +{ + .tileTag = ANIM_TAG_SYRUP_SHELL_YELLOW, + .paletteTag = ANIM_TAG_SYRUP_BLOB_YELLOW, + .oam = &gOamData_AffineOff_ObjNormal_64x64, + .anims = sAnims_SyrupStick, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimAnimSyrupBomb, +}; + static void AnimGunkShotImpact(struct Sprite *sprite) { StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]); @@ -534,3 +652,26 @@ static void AnimBubbleEffect_Step(struct Sprite *sprite) if (sprite->affineAnimEnded) DestroyAnimSprite(sprite); } + +static void AnimSyrupBomb_Step(struct Sprite *sprite) +{ + if (sprite->data[1] > sprite->data[0] - 10) + sprite->invisible = sprite->data[1] & 1; + + if (sprite->data[1] == sprite->data[0]) + DestroyAnimSprite(sprite); + + sprite->data[1]++; +} + +static void AnimAnimSyrupBomb(struct Sprite *sprite) +{ + if (gBattleAnimArgs[0] == ANIM_TARGET) + { + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + 2; + } + + sprite->data[0] = gBattleAnimArgs[1]; + sprite->callback = AnimSyrupBomb_Step; +} diff --git a/src/battle_anim_water.c b/src/battle_anim_water.c index e4044efe6543..159b27dec923 100644 --- a/src/battle_anim_water.c +++ b/src/battle_anim_water.c @@ -584,6 +584,28 @@ const struct SpriteTemplate gAquaTailHitSpriteTemplate = .callback = AnimAquaTail, }; +static const union AnimCmd sAnimCmdAnimatedSpark2[] = { + ANIMCMD_FRAME((8 * 8) / (16 * 16) * 0, 8), + ANIMCMD_FRAME((8 * 8) / (16 * 16) * 1, 8), + ANIMCMD_FRAME((8 * 8) / (16 * 16) * 2, 8), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd *const sAnimCmdTable_AnimatedSpark2[] = { + sAnimCmdAnimatedSpark2, +}; + +const struct SpriteTemplate gSparkBeamSpriteTemplate = +{ + .tileTag = ANIM_TAG_SPARK_2, + .paletteTag = ANIM_TAG_SPARK_2, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = sAnimCmdTable_AnimatedSpark2, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimToTargetInSinWave, +}; + static void AnimAquaTail(struct Sprite *sprite) { StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]); diff --git a/src/battle_bg.c b/src/battle_bg.c index 1da5d5c65e80..2e9265834388 100644 --- a/src/battle_bg.c +++ b/src/battle_bg.c @@ -777,6 +777,11 @@ void DrawMainBattleBackground(void) LZDecompressVram(gBattleTerrainTilemap_Rayquaza, (void*)(BG_SCREEN_ADDR(26))); LoadCompressedPalette(gBattleTerrainPalette_Rayquaza, 0x20, 0x60); break; + default: + LZDecompressVram(sBattleTerrainTable[gBattleTerrain].tileset, (void *)(BG_CHAR_ADDR(2))); + LZDecompressVram(sBattleTerrainTable[gBattleTerrain].tilemap, (void *)(BG_SCREEN_ADDR(26))); + LoadCompressedPalette(sBattleTerrainTable[gBattleTerrain].palette, BG_PLTT_ID(2), 3 * PLTT_SIZE_4BPP); + break; } } else @@ -1174,6 +1179,10 @@ void DrawBattleEntryBackground(void) LZDecompressVram(gBattleTerrainAnimTiles_Rayquaza, (void*)(BG_CHAR_ADDR(1))); LZDecompressVram(gBattleTerrainAnimTilemap_Rayquaza, (void*)(BG_SCREEN_ADDR(28))); break; + default: + LZDecompressVram(sBattleTerrainTable[gBattleTerrain].entryTileset, (void *)(BG_CHAR_ADDR(1))); + LZDecompressVram(sBattleTerrainTable[gBattleTerrain].entryTilemap, (void *)(BG_SCREEN_ADDR(28))); + break; } } else diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index 703d66105b68..6b09f0d41fa7 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -561,13 +561,13 @@ static void OpponentHandleChooseMove(u32 battler) if (ShouldUseZMove(battler, gBattlerTarget, chosenMove)) QueueZMove(battler, chosenMove); // If opponent can Mega Evolve, do it. - if (CanMegaEvolve(battler)) + if (CanMegaEvolve(battler)) BtlController_EmitTwoReturnValues(battler, BUFFER_B, 10, (chosenMoveId) | (RET_MEGA_EVOLUTION) | (gBattlerTarget << 8)); // If opponent can Ultra Burst, do it. else if (CanUltraBurst(battler)) BtlController_EmitTwoReturnValues(battler, BUFFER_B, 10, (chosenMoveId) | (RET_ULTRA_BURST) | (gBattlerTarget << 8)); // If opponent can Dynamax and is on final Pokemon, do it. - else if (CanDynamax(battler) && CountAIAliveNonEggMonsExcept(gBattlerPartyIndexes[battler]) == 0) + else if (CanDynamax(battler) && CountAIAliveNonEggMonsExcept(gBattlerPartyIndexes[battler]) == 0) BtlController_EmitTwoReturnValues(battler, BUFFER_B, 10, (chosenMoveId) | (RET_DYNAMAX) | (gBattlerTarget << 8)); else BtlController_EmitTwoReturnValues(battler, BUFFER_B, 10, (chosenMoveId) | (gBattlerTarget << 8)); @@ -656,7 +656,7 @@ static void OpponentHandleChoosePokemon(u32 battler) // Switching out else if (*(gBattleStruct->AI_monToSwitchIntoId + battler) == PARTY_SIZE) { - chosenMonId = GetMostSuitableMonToSwitchInto(battler); + chosenMonId = GetMostSuitableMonToSwitchInto(battler, TRUE); if (chosenMonId == PARTY_SIZE) { s32 battler1, battler2, firstId, lastId; diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 7f8d3174ef7f..bcbbc5ebc6cf 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -31,6 +31,7 @@ #include "util.h" #include "window.h" #include "constants/battle_anim.h" +#include "constants/hold_effects.h" #include "constants/items.h" #include "constants/moves.h" #include "constants/party_menu.h" @@ -233,7 +234,7 @@ static u16 GetNextBall(u16 ballId) { if (ballId == gBagPockets[BALLS_POCKET].itemSlots[i].itemId) { - ballNext = gBagPockets[BALLS_POCKET].itemSlots[i].itemId; + ballNext = gBagPockets[BALLS_POCKET].itemSlots[i+1].itemId; break; } } @@ -707,11 +708,8 @@ static void HandleInputChooseMove(u32 battler) } // Status moves turn into Max Guard when Dynamaxed, targets user. - if ((IsDynamaxed(battler) || gBattleStruct->dynamax.playerSelect) - && gBattleMoves[moveInfo->moves[gMoveSelectionCursor[battler]]].split == SPLIT_STATUS) - { - moveTarget = MOVE_TARGET_USER; - } + if ((IsDynamaxed(battler) || gBattleStruct->dynamax.playerSelect)) + moveTarget = gBattleMoves[GetMaxMove(battler, moveInfo->moves[gMoveSelectionCursor[battler]])].target; if (moveTarget & MOVE_TARGET_USER) gMultiUsePlayerCursor = battler; @@ -1730,6 +1728,9 @@ static void MoveSelectionDisplayPpNumber(u32 battler) static void MoveSelectionDisplayMoveType(u32 battler) { u8 *txtPtr; + u8 type; + u32 itemId; + struct Pokemon *mon; struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct *)(&gBattleResources->bufferA[battler][4]); txtPtr = StringCopy(gDisplayedStringBattle, gText_MoveInterfaceType); @@ -1737,7 +1738,20 @@ static void MoveSelectionDisplayMoveType(u32 battler) *(txtPtr)++ = EXT_CTRL_CODE_FONT; *(txtPtr)++ = FONT_NORMAL; - StringCopy(txtPtr, gTypeNames[gBattleMoves[moveInfo->moves[gMoveSelectionCursor[battler]]].type]); + if (moveInfo->moves[gMoveSelectionCursor[battler]] == MOVE_IVY_CUDGEL) + { + mon = &GetSideParty(GetBattlerSide(battler))[gBattlerPartyIndexes[battler]]; + itemId = GetMonData(mon, MON_DATA_HELD_ITEM); + + if (ItemId_GetHoldEffect(itemId) == HOLD_EFFECT_MASK) + type = ItemId_GetSecondaryId(itemId); + else + type = gBattleMoves[MOVE_IVY_CUDGEL].type; + } + else + type = gBattleMoves[moveInfo->moves[gMoveSelectionCursor[battler]]].type; + + StringCopy(txtPtr, gTypeNames[type]); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MOVE_TYPE); } diff --git a/src/battle_controller_player_partner.c b/src/battle_controller_player_partner.c index 361460ac72e8..f56c14a07669 100644 --- a/src/battle_controller_player_partner.c +++ b/src/battle_controller_player_partner.c @@ -399,7 +399,7 @@ static void PlayerPartnerHandleChoosePokemon(u32 battler) // Switching out else if (gBattleStruct->monToSwitchIntoId[battler] >= PARTY_SIZE || !IsValidForBattle(&gPlayerParty[gBattleStruct->monToSwitchIntoId[battler]])) { - chosenMonId = GetMostSuitableMonToSwitchInto(battler); + chosenMonId = GetMostSuitableMonToSwitchInto(battler, TRUE); if (chosenMonId == PARTY_SIZE || !IsValidForBattle(&gPlayerParty[chosenMonId])) // just switch to the next mon { diff --git a/src/battle_controllers.c b/src/battle_controllers.c index 929d51ec0872..3536d820c191 100644 --- a/src/battle_controllers.c +++ b/src/battle_controllers.c @@ -1509,13 +1509,14 @@ void BtlController_EmitSpriteInvisibility(u32 battler, u32 bufferId, bool8 isInv PrepareBufferDataTransfer(battler, bufferId, gBattleResources->transferBuffer, 4); } -void BtlController_EmitBattleAnimation(u32 battler, u32 bufferId, u8 animationId, u16 argument) +void BtlController_EmitBattleAnimation(u32 battler, u32 bufferId, u8 animationId, struct DisableStruct* disableStructPtr, u16 argument) { gBattleResources->transferBuffer[0] = CONTROLLER_BATTLEANIMATION; gBattleResources->transferBuffer[1] = animationId; gBattleResources->transferBuffer[2] = argument; gBattleResources->transferBuffer[3] = (argument & 0xFF00) >> 8; - PrepareBufferDataTransfer(battler, bufferId, gBattleResources->transferBuffer, 4); + memcpy(&gBattleResources->transferBuffer[4], disableStructPtr, sizeof(struct DisableStruct)); + PrepareBufferDataTransfer(battler, bufferId, gBattleResources->transferBuffer, 4 + sizeof(struct DisableStruct)); } // mode is a LINK_STANDBY_* constant @@ -3049,6 +3050,8 @@ void BtlController_HandleBattleAnimation(u32 battler, bool32 ignoreSE, bool32 up u8 animationId = gBattleResources->bufferA[battler][1]; u16 argument = gBattleResources->bufferA[battler][2] | (gBattleResources->bufferA[battler][3] << 8); + gAnimDisableStructPtr = (struct DisableStruct *)&gBattleResources->bufferA[battler][4]; + if (TryHandleLaunchBattleTableAnimation(battler, battler, battler, animationId, argument)) BattleControllerComplete(battler); else diff --git a/src/battle_debug.c b/src/battle_debug.c index cf7c9c423578..3fca57e38ffd 100644 --- a/src/battle_debug.c +++ b/src/battle_debug.c @@ -719,7 +719,7 @@ void CB2_BattleDebugMenu(void) data->currentMainListItemId = 0; data->activeWindow = ACTIVE_WIN_MAIN; data->secondaryListTaskId = 0xFF; - CopyWindowToVram(data->mainListWindowId, 3); + CopyWindowToVram(data->mainListWindowId, COPYWIN_FULL); gMain.state++; break; case 5: @@ -740,7 +740,7 @@ static void PutMovesPointsText(struct BattleDebugMenu *data) { text[0] = CHAR_SPACE; StringCopy(text + 1, gMoveNames[gBattleMons[data->aiBattlerId].moves[i]]); - AddTextPrinterParameterized(data->aiMovesWindowId, 1, text, 0, i * 15, 0, NULL); + AddTextPrinterParameterized(data->aiMovesWindowId, FONT_NORMAL, text, 0, i * 15, 0, NULL); for (count = 0, j = 0; j < MAX_BATTLERS_COUNT; j++) { if (data->spriteIds.aiIconSpriteIds[j] == 0xFF) @@ -749,18 +749,18 @@ static void PutMovesPointsText(struct BattleDebugMenu *data) ConvertIntToDecimalStringN(text, gBattleStruct->aiFinalScore[data->aiBattlerId][battlerDef][i], STR_CONV_MODE_RIGHT_ALIGN, 3); - AddTextPrinterParameterized(data->aiMovesWindowId, 1, text, 83 + count * 54, i * 15, 0, NULL); + AddTextPrinterParameterized(data->aiMovesWindowId, FONT_NORMAL, text, 83 + count * 54, i * 15, 0, NULL); ConvertIntToDecimalStringN(text, AI_DATA->simulatedDmg[data->aiBattlerId][battlerDef][i], STR_CONV_MODE_RIGHT_ALIGN, 3); - AddTextPrinterParameterized(data->aiMovesWindowId, 1, text, 110 + count * 54, i * 15, 0, NULL); + AddTextPrinterParameterized(data->aiMovesWindowId, FONT_NORMAL, text, 110 + count * 54, i * 15, 0, NULL); count++; } } - CopyWindowToVram(data->aiMovesWindowId, 3); + CopyWindowToVram(data->aiMovesWindowId, COPYWIN_FULL); Free(text); } @@ -852,7 +852,7 @@ static void PutAiInfoText(struct BattleDebugMenu *data) // item names for (i = 0; i < ARRAY_COUNT(sAiInfoItemNames); i++) { - AddTextPrinterParameterized(data->aiMovesWindowId, 1, sAiInfoItemNames[i], 3, i * 15, 0, NULL); + AddTextPrinterParameterized(data->aiMovesWindowId, FONT_NORMAL, sAiInfoItemNames[i], 3, i * 15, 0, NULL); } // items info @@ -864,13 +864,13 @@ static void PutAiInfoText(struct BattleDebugMenu *data) u16 holdEffect = AI_DATA->holdEffects[i]; u16 item = AI_DATA->items[i]; u8 x = (i == B_POSITION_PLAYER_LEFT) ? 83 + (i) * 75 : 83 + (i-1) * 75; - AddTextPrinterParameterized(data->aiMovesWindowId, 0, gAbilityNames[ability], x, 0, 0, NULL); - AddTextPrinterParameterized(data->aiMovesWindowId, 0, ItemId_GetName(item), x, 15, 0, NULL); - AddTextPrinterParameterized(data->aiMovesWindowId, 0, GetHoldEffectName(holdEffect), x, 30, 0, NULL); + AddTextPrinterParameterized(data->aiMovesWindowId, FONT_SMALL, gAbilityNames[ability], x, 0, 0, NULL); + AddTextPrinterParameterized(data->aiMovesWindowId, FONT_SMALL, ItemId_GetName(item), x, 15, 0, NULL); + AddTextPrinterParameterized(data->aiMovesWindowId, FONT_SMALL, GetHoldEffectName(holdEffect), x, 30, 0, NULL); } } - CopyWindowToVram(data->aiMovesWindowId, 3); + CopyWindowToVram(data->aiMovesWindowId, COPYWIN_FULL); Free(text); } @@ -917,7 +917,7 @@ static void PutAiPartyText(struct BattleDebugMenu *data) AddTextPrinterParameterized5(data->aiMovesWindowId, FONT_SMALL_NARROW, text, i * 41, 35 + (j + 1) * 15, 0, NULL, 0, 0); } - CopyWindowToVram(data->aiMovesWindowId, 3); + CopyWindowToVram(data->aiMovesWindowId, COPYWIN_FULL); Free(text); } @@ -1180,7 +1180,7 @@ static void Task_DebugMenuProcessInput(u8 taskId) data->currentSecondaryListItemId = listItemId; data->modifyWindowId = AddWindow(&sModifyWindowTemplate); PutWindowTilemap(data->modifyWindowId); - CopyWindowToVram(data->modifyWindowId, 3); + CopyWindowToVram(data->modifyWindowId, COPYWIN_FULL); SetUpModifyArrows(data); PrintDigitChars(data); data->activeWindow = ACTIVE_WIN_MODIFY; @@ -1264,8 +1264,8 @@ static void PrintOnBattlerWindow(u8 windowId, u8 battlerId) StringCopy(&text[4], gBattleMons[battlerId].nickname); FillWindowPixelBuffer(windowId, 0x11); - AddTextPrinterParameterized(windowId, 1, text, 0, 0, 0, NULL); - CopyWindowToVram(windowId, 3); + AddTextPrinterParameterized(windowId, FONT_NORMAL, text, 0, 0, 0, NULL); + CopyWindowToVram(windowId, COPYWIN_FULL); } static void UpdateWindowsOnChangedBattler(struct BattleDebugMenu *data) @@ -1371,7 +1371,7 @@ static void CreateSecondaryListMenu(struct BattleDebugMenu *data) listTemplate.windowId = data->secondaryListWindowId; data->secondaryListTaskId = ListMenuInit(&listTemplate, 0, 0); - CopyWindowToVram(data->secondaryListWindowId, 3); + CopyWindowToVram(data->secondaryListWindowId, COPYWIN_FULL); } static void PadString(const u8 *src, u8 *dst) @@ -1500,7 +1500,7 @@ static void PrintDigitChars(struct BattleDebugMenu *data) text[i] = EOS; - AddTextPrinterParameterized(data->modifyWindowId, 1, text, 3, 0, 0, NULL); + AddTextPrinterParameterized(data->modifyWindowId, FONT_NORMAL, text, 3, 0, 0, NULL); } static const u32 GetBitfieldToAndValue(u32 currBit, u32 bitsCount) diff --git a/src/battle_dome.c b/src/battle_dome.c index 24bad30f6b4d..05b8ebec4a26 100644 --- a/src/battle_dome.c +++ b/src/battle_dome.c @@ -1,6 +1,7 @@ #include "global.h" #include "battle_dome.h" #include "battle.h" +#include "battle_ai_util.h" #include "battle_main.h" #include "battle_setup.h" #include "battle_tower.h" @@ -32,6 +33,7 @@ #include "script_pokemon_util.h" #include "graphics.h" #include "constants/battle_dome.h" +#include "constants/battle_move_effects.h" #include "constants/frontier_util.h" #include "constants/moves.h" #include "constants/trainers.h" @@ -162,367 +164,6 @@ static void InitDomeTrainers(void); static EWRAM_DATA struct TourneyTreeInfoCard *sInfoCard = {0}; static EWRAM_DATA u8 *sTilemapBuffer = NULL; -// Each move has an array of points for different move characteristics which contribute to a tourney trainers listed battle style (see sBattleStyleThresholds) -// All move points are either 1 or 0, so theyre essentially flags saying whether or not the move has that characteristic -static const u8 sBattleStyleMovePoints[MOVES_COUNT][NUM_MOVE_POINT_TYPES] = -{ - [MOVE_NONE] = {0}, - [MOVE_POUND] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_KARATE_CHOP] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_DOUBLE_SLAP] = {[MOVE_POINTS_DMG] = 1}, - [MOVE_COMET_PUNCH] = {[MOVE_POINTS_DMG] = 1}, - [MOVE_MEGA_PUNCH] = {[MOVE_POINTS_DMG] = 1}, - [MOVE_PAY_DAY] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_FIRE_PUNCH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_ICE_PUNCH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_THUNDER_PUNCH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_SCRATCH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_VISE_GRIP] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_GUILLOTINE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_LOW_PP] = 1}, - [MOVE_RAZOR_WIND] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_SWORDS_DANCE] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_STAT_RAISE] = 1, [MOVE_POINTS_POPULAR] = 1}, - [MOVE_CUT] = {[MOVE_POINTS_DMG] = 1}, - [MOVE_GUST] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_WING_ATTACK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_WHIRLWIND] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_FLY] = {[MOVE_POINTS_DMG] = 1}, - [MOVE_BIND] = {[MOVE_POINTS_STATUS] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_SLAM] = {[MOVE_POINTS_DMG] = 1}, - [MOVE_VINE_WHIP] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_STOMP] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_DOUBLE_KICK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_MEGA_KICK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_LOW_PP] = 1}, - [MOVE_JUMP_KICK] = {[MOVE_POINTS_DMG] = 1}, - [MOVE_ROLLING_KICK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_SAND_ATTACK] = {[MOVE_POINTS_STAT_LOWER] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_HEADBUTT] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_HORN_ATTACK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_FURY_ATTACK] = {[MOVE_POINTS_DMG] = 1}, - [MOVE_HORN_DRILL] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_LOW_PP] = 1}, - [MOVE_TACKLE] = {[MOVE_POINTS_DMG] = 1}, - [MOVE_BODY_SLAM] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_WRAP] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_TAKE_DOWN] = {[MOVE_POINTS_DMG] = 1}, - [MOVE_THRASH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_DOUBLE_EDGE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_TAIL_WHIP] = {[MOVE_POINTS_STAT_LOWER] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_POISON_STING] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_TWINEEDLE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_PIN_MISSILE] = {[MOVE_POINTS_DMG] = 1}, - [MOVE_LEER] = {[MOVE_POINTS_STAT_LOWER] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_BITE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_GROWL] = {[MOVE_POINTS_STAT_LOWER] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_ROAR] = {[MOVE_POINTS_ACCURATE] = 1}, - [MOVE_SING] = {[MOVE_POINTS_STATUS] = 1}, - [MOVE_SUPERSONIC] = {[MOVE_POINTS_STATUS] = 1}, - [MOVE_SONIC_BOOM] = {[MOVE_POINTS_DMG] = 1}, - [MOVE_DISABLE] = {[MOVE_POINTS_STATUS] = 1}, - [MOVE_ACID] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_EMBER] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_FLAMETHROWER] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_POPULAR] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_MIST] = {0}, - [MOVE_WATER_GUN] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_HYDRO_PUMP] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_LOW_PP] = 1}, - [MOVE_SURF] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_POPULAR] = 1, [MOVE_POINTS_STRONG] = 1}, - [MOVE_ICE_BEAM] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_POPULAR] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_BLIZZARD] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_LOW_PP] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_PSYBEAM] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_BUBBLE_BEAM] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_AURORA_BEAM] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_HYPER_BEAM] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_POPULAR] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1}, - [MOVE_PECK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_DRILL_PECK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_SUBMISSION] = {[MOVE_POINTS_DMG] = 1}, - [MOVE_LOW_KICK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_COUNTER] = {[MOVE_POINTS_DEF] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LUCK] = 1}, - [MOVE_SEISMIC_TOSS] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_STRENGTH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_ABSORB] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_MEGA_DRAIN] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_LEECH_SEED] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_STATUS] = 1}, - [MOVE_GROWTH] = {[MOVE_POINTS_STAT_RAISE] = 1}, - [MOVE_RAZOR_LEAF] = {[MOVE_POINTS_DMG] = 1}, - [MOVE_SOLAR_BEAM] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_POPULAR] = 1, [MOVE_POINTS_STRONG] = 1}, - [MOVE_POISON_POWDER] = {[MOVE_POINTS_STATUS] = 1}, - [MOVE_STUN_SPORE] = {[MOVE_POINTS_STATUS] = 1}, - [MOVE_SLEEP_POWDER] = {[MOVE_POINTS_STATUS] = 1}, - [MOVE_PETAL_DANCE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_STRING_SHOT] = {[MOVE_POINTS_STAT_LOWER] = 1}, - [MOVE_DRAGON_RAGE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_FIRE_SPIN] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_THUNDER_SHOCK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_THUNDERBOLT] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_POPULAR] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_THUNDER_WAVE] = {[MOVE_POINTS_STATUS] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_THUNDER] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_ROCK_THROW] = {[MOVE_POINTS_DMG] = 1}, - [MOVE_EARTHQUAKE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_POPULAR] = 1, [MOVE_POINTS_STRONG] = 1}, - [MOVE_FISSURE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_LUCK] = 1, [MOVE_POINTS_LOW_PP] = 1}, - [MOVE_DIG] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_TOXIC] = {[MOVE_POINTS_STATUS] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_CONFUSION] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_PSYCHIC] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_POPULAR] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_HYPNOSIS] = {[MOVE_POINTS_COMBO] = 1}, - [MOVE_MEDITATE] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_STAT_RAISE] = 1}, - [MOVE_AGILITY] = {[MOVE_POINTS_STAT_RAISE] = 1}, - [MOVE_QUICK_ATTACK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_RAGE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_TELEPORT] = {0}, - [MOVE_NIGHT_SHADE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_MIMIC] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_SCREECH] = {[MOVE_POINTS_STAT_LOWER] = 1}, - [MOVE_DOUBLE_TEAM] = {[MOVE_POINTS_STAT_RAISE] = 1, [MOVE_POINTS_DEF] = 1}, - [MOVE_RECOVER] = {0}, - [MOVE_HARDEN] = {[MOVE_POINTS_STAT_RAISE] = 1, [MOVE_POINTS_DEF] = 1}, - [MOVE_MINIMIZE] = {[MOVE_POINTS_STAT_RAISE] = 1, [MOVE_POINTS_DEF] = 1}, - [MOVE_SMOKESCREEN] = {[MOVE_POINTS_STAT_LOWER] = 1, [MOVE_POINTS_DEF] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_CONFUSE_RAY] = {[MOVE_POINTS_ACCURATE] = 1}, - [MOVE_WITHDRAW] = {[MOVE_POINTS_STAT_RAISE] = 1, [MOVE_POINTS_DEF] = 1}, - [MOVE_DEFENSE_CURL] = {[MOVE_POINTS_STAT_RAISE] = 1, [MOVE_POINTS_DEF] = 1}, - [MOVE_BARRIER] = {[MOVE_POINTS_DEF] = 1}, - [MOVE_LIGHT_SCREEN] = {[MOVE_POINTS_DEF] = 1}, - [MOVE_HAZE] = {0}, - [MOVE_REFLECT] = {[MOVE_POINTS_DEF] = 1}, - [MOVE_FOCUS_ENERGY] = {[MOVE_POINTS_COMBO] = 1}, - [MOVE_BIDE] = {[MOVE_POINTS_ACCURATE] = 1}, - [MOVE_METRONOME] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_LUCK] = 1}, - [MOVE_MIRROR_MOVE] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_LUCK] = 1}, - [MOVE_SELF_DESTRUCT] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1}, - [MOVE_EGG_BOMB] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1}, - [MOVE_LICK] = {[MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_SMOG] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_SLUDGE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_BONE_CLUB] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_FIRE_BLAST] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_WATERFALL] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_CLAMP] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_SWIFT] = {[MOVE_POINTS_DMG] = 1}, - [MOVE_SKULL_BASH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_STRONG] = 1}, - [MOVE_SPIKE_CANNON] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_CONSTRICT] = {[MOVE_POINTS_STATUS] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_AMNESIA] = {[MOVE_POINTS_STAT_RAISE] = 1, [MOVE_POINTS_DEF] = 1}, - [MOVE_KINESIS] = {[MOVE_POINTS_STAT_LOWER] = 1}, - [MOVE_SOFT_BOILED] = {[MOVE_POINTS_HEAL] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_HIGH_JUMP_KICK] = {[MOVE_POINTS_DMG] = 1}, - [MOVE_GLARE] = {[MOVE_POINTS_STAT_LOWER] = 1}, - [MOVE_DREAM_EATER] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_RARE] = 1, [MOVE_POINTS_HEAL] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_STRONG] = 1}, - [MOVE_POISON_GAS] = {[MOVE_POINTS_STATUS] = 1}, - [MOVE_BARRAGE] = {[MOVE_POINTS_DMG] = 1}, - [MOVE_LEECH_LIFE] = {[MOVE_POINTS_HEAL] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_LOVELY_KISS] = {[MOVE_POINTS_STATUS] = 1}, - [MOVE_SKY_ATTACK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_TRANSFORM] = {[MOVE_POINTS_RARE] = 1}, - [MOVE_BUBBLE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_DIZZY_PUNCH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_SPORE] = {[MOVE_POINTS_STATUS] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_FLASH] = {0}, - [MOVE_PSYWAVE] = {[MOVE_POINTS_DMG] = 1}, - [MOVE_SPLASH] = {[MOVE_POINTS_RARE] = 1}, - [MOVE_ACID_ARMOR] = {[MOVE_POINTS_STAT_RAISE] = 1, [MOVE_POINTS_DEF] = 1}, - [MOVE_CRABHAMMER] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_STRONG] = 1}, - [MOVE_EXPLOSION] = {[MOVE_POINTS_RISKY] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_POPULAR] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1}, - [MOVE_FURY_SWIPES] = {[MOVE_POINTS_DMG] = 1}, - [MOVE_BONEMERANG] = {[MOVE_POINTS_DMG] = 1}, - [MOVE_REST] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_HEAL] = 1}, - [MOVE_ROCK_SLIDE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_HYPER_FANG] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_SHARPEN] = {[MOVE_POINTS_STAT_RAISE] = 1, [MOVE_POINTS_DEF] = 1}, - [MOVE_CONVERSION] = {[MOVE_POINTS_DEF] = 1}, - [MOVE_TRI_ATTACK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_SUPER_FANG] = {[MOVE_POINTS_DMG] = 1}, - [MOVE_SLASH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_SUBSTITUTE] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_DEF] = 1}, - [MOVE_STRUGGLE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1}, // Odd that this is assigned qualities - [MOVE_SKETCH] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_LUCK] = 1, [MOVE_POINTS_LOW_PP] = 1}, - [MOVE_TRIPLE_KICK] = {[MOVE_POINTS_DMG] = 1}, - [MOVE_THIEF] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_SPIDER_WEB] = {[MOVE_POINTS_STAT_LOWER] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_MIND_READER] = {[MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1}, - [MOVE_NIGHTMARE] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_STATUS] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_FLAME_WHEEL] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_SNORE] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_CURSE] = {[MOVE_POINTS_STATUS] = 1}, - [MOVE_FLAIL] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_CONVERSION_2] = {[MOVE_POINTS_ACCURATE] = 1}, - [MOVE_AEROBLAST] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1}, - [MOVE_COTTON_SPORE] = {[MOVE_POINTS_STAT_LOWER] = 1}, - [MOVE_REVERSAL] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_SPITE] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_RISKY] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_POWDER_SNOW] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_PROTECT] = {[MOVE_POINTS_DEF] = 1, [MOVE_POINTS_POPULAR] = 1}, - [MOVE_MACH_PUNCH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_SCARY_FACE] = {0}, - [MOVE_FEINT_ATTACK] = {[MOVE_POINTS_DMG] = 1}, - [MOVE_SWEET_KISS] = {0}, - [MOVE_BELLY_DRUM] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_STAT_RAISE] = 1}, - [MOVE_SLUDGE_BOMB] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_MUD_SLAP] = {[MOVE_POINTS_STAT_LOWER] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_OCTAZOOKA] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_SPIKES] = {[MOVE_POINTS_COMBO] = 1}, - [MOVE_ZAP_CANNON] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_LUCK] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_FORESIGHT] = {[MOVE_POINTS_ACCURATE] = 1}, - [MOVE_DESTINY_BOND] = {[MOVE_POINTS_RISKY] = 1, [MOVE_POINTS_LOW_PP] = 1}, - [MOVE_PERISH_SONG] = {[MOVE_POINTS_RISKY] = 1, [MOVE_POINTS_LOW_PP] = 1}, - [MOVE_ICY_WIND] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_DETECT] = {[MOVE_POINTS_DEF] = 1, [MOVE_POINTS_LOW_PP] = 1}, - [MOVE_BONE_RUSH] = {[MOVE_POINTS_DMG] = 1}, - [MOVE_LOCK_ON] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1}, - [MOVE_OUTRAGE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_SANDSTORM] = {0}, - [MOVE_GIGA_DRAIN] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1}, - [MOVE_ENDURE] = {[MOVE_POINTS_DEF] = 1}, - [MOVE_CHARM] = {[MOVE_POINTS_ACCURATE] = 1}, - [MOVE_ROLLOUT] = {[MOVE_POINTS_DMG] = 1}, - [MOVE_FALSE_SWIPE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_SWAGGER] = {[MOVE_POINTS_EFFECT] = 1}, - [MOVE_MILK_DRINK] = {[MOVE_POINTS_HEAL] = 1}, - [MOVE_SPARK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_FURY_CUTTER] = {[MOVE_POINTS_DMG] = 1}, - [MOVE_STEEL_WING] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_MEAN_LOOK] = {[MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1}, - [MOVE_ATTRACT] = {[MOVE_POINTS_STATUS] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_SLEEP_TALK] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_LUCK] = 1}, - [MOVE_HEAL_BELL] = {[MOVE_POINTS_LOW_PP] = 1}, - [MOVE_RETURN] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_PRESENT] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_LUCK] = 1}, - [MOVE_FRUSTRATION] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_SAFEGUARD] = {[MOVE_POINTS_DEF] = 1}, - [MOVE_PAIN_SPLIT] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_SACRED_FIRE] = {[MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_MAGNITUDE] = {[MOVE_POINTS_ACCURATE] = 1}, - [MOVE_DYNAMIC_PUNCH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_LUCK] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_MEGAHORN] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_STRONG] = 1}, - [MOVE_DRAGON_BREATH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_BATON_PASS] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_RARE] = 1}, - [MOVE_ENCORE] = {[MOVE_POINTS_STATUS] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1}, - [MOVE_PURSUIT] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_RAPID_SPIN] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_SWEET_SCENT] = {[MOVE_POINTS_STAT_LOWER] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_IRON_TAIL] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_METAL_CLAW] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_VITAL_THROW] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_MORNING_SUN] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_HEAL] = 1, [MOVE_POINTS_LOW_PP] = 1}, - [MOVE_SYNTHESIS] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_HEAL] = 1, [MOVE_POINTS_LOW_PP] = 1}, - [MOVE_MOONLIGHT] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_HEAL] = 1, [MOVE_POINTS_LOW_PP] = 1}, - [MOVE_HIDDEN_POWER] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_CROSS_CHOP] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1}, - [MOVE_TWISTER] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_RAIN_DANCE] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_LOW_PP] = 1}, - [MOVE_SUNNY_DAY] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_LOW_PP] = 1}, - [MOVE_CRUNCH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_MIRROR_COAT] = {[MOVE_POINTS_DEF] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_PSYCH_UP] = {[MOVE_POINTS_STAT_RAISE] = 1}, - [MOVE_EXTREME_SPEED] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1}, - [MOVE_ANCIENT_POWER] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_SHADOW_BALL] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_FUTURE_SIGHT] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_DMG] = 1}, - [MOVE_ROCK_SMASH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_WHIRLPOOL] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_BEAT_UP] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_FAKE_OUT] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_UPROAR] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_STOCKPILE] = {[MOVE_POINTS_COMBO] = 1}, - [MOVE_SPIT_UP] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_STRONG] = 1}, - [MOVE_SWALLOW] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_HEAL] = 1}, - [MOVE_HEAT_WAVE] = {[MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_HAIL] = {0}, - [MOVE_TORMENT] = {[MOVE_POINTS_STATUS] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_FLATTER] = {[MOVE_POINTS_ACCURATE] = 1}, - [MOVE_WILL_O_WISP] = {[MOVE_POINTS_STATUS] = 1}, - [MOVE_MEMENTO] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_FACADE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_FOCUS_PUNCH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_STRONG] = 1}, - [MOVE_SMELLING_SALTS] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_FOLLOW_ME] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_NATURE_POWER] = {[MOVE_POINTS_DMG] = 1}, - [MOVE_CHARGE] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_TAUNT] = {[MOVE_POINTS_STATUS] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_HELPING_HAND] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_TRICK] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_ROLE_PLAY] = {[MOVE_POINTS_ACCURATE] = 1}, - [MOVE_WISH] = {[MOVE_POINTS_HEAL] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_ASSIST] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LUCK] = 1}, - [MOVE_INGRAIN] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_HEAL] = 1, [MOVE_POINTS_DEF] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_SUPERPOWER] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1}, - [MOVE_MAGIC_COAT] = {[MOVE_POINTS_DEF] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LUCK] = 1}, - [MOVE_RECYCLE] = {[MOVE_POINTS_ACCURATE] = 1}, - [MOVE_REVENGE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LUCK] = 1}, - [MOVE_BRICK_BREAK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_YAWN] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_STATUS] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_KNOCK_OFF] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_ENDEAVOR] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1}, - [MOVE_ERUPTION] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1}, - [MOVE_SKILL_SWAP] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_IMPRISON] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LUCK] = 1}, - [MOVE_REFRESH] = {[MOVE_POINTS_HEAL] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_GRUDGE] = {[MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1}, - [MOVE_SNATCH] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LUCK] = 1}, - [MOVE_SECRET_POWER] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_DIVE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_ARM_THRUST] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_CAMOUFLAGE] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_TAIL_GLOW] = {[MOVE_POINTS_ACCURATE] = 1}, - [MOVE_LUSTER_PURGE] = {[MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_MIST_BALL] = {[MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_FEATHER_DANCE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_TEETER_DANCE] = {[MOVE_POINTS_ACCURATE] = 1}, - [MOVE_BLAZE_KICK] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_MUD_SPORT] = {[MOVE_POINTS_ACCURATE] = 1}, - [MOVE_ICE_BALL] = {[MOVE_POINTS_DMG] = 1}, - [MOVE_NEEDLE_ARM] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_SLACK_OFF] = {[MOVE_POINTS_HEAL] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_HYPER_VOICE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_STRONG] = 1}, - [MOVE_POISON_FANG] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_CRUSH_CLAW] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_BLAST_BURN] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1}, - [MOVE_HYDRO_CANNON] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1}, - [MOVE_METEOR_MASH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_ASTONISH] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_WEATHER_BALL] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_AROMATHERAPY] = {[MOVE_POINTS_LOW_PP] = 1}, - [MOVE_FAKE_TEARS] = {[MOVE_POINTS_ACCURATE] = 1}, - [MOVE_AIR_CUTTER] = {[MOVE_POINTS_DMG] = 1}, - [MOVE_OVERHEAT] = {[MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_ODOR_SLEUTH] = {[MOVE_POINTS_ACCURATE] = 1}, - [MOVE_ROCK_TOMB] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_SILVER_WIND] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_METAL_SOUND] = {0}, - [MOVE_GRASS_WHISTLE] = {0}, - [MOVE_TICKLE] = {[MOVE_POINTS_ACCURATE] = 1}, - [MOVE_COSMIC_POWER] = {0}, - [MOVE_WATER_SPOUT] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1}, - [MOVE_SIGNAL_BEAM] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_SHADOW_PUNCH] = {[MOVE_POINTS_DMG] = 1}, - [MOVE_EXTRASENSORY] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_SKY_UPPERCUT] = {[MOVE_POINTS_DMG] = 1}, - [MOVE_SAND_TOMB] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_SHEER_COLD] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_LUCK] = 1, [MOVE_POINTS_LOW_PP] = 1}, - [MOVE_MUDDY_WATER] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_BULLET_SEED] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_AERIAL_ACE] = {[MOVE_POINTS_DMG] = 1}, - [MOVE_ICICLE_SPEAR] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_IRON_DEFENSE] = {[MOVE_POINTS_DEF] = 1}, - [MOVE_BLOCK] = {[MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_LOW_PP] = 1}, - [MOVE_HOWL] = {0}, - [MOVE_DRAGON_CLAW] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_FRENZY_PLANT] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1}, - [MOVE_BULK_UP] = {[MOVE_POINTS_COMBO] = 1}, - [MOVE_BOUNCE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_LOW_PP] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_MUD_SHOT] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_POISON_TAIL] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_COVET] = {[MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_VOLT_TACKLE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1}, - [MOVE_MAGICAL_LEAF] = {[MOVE_POINTS_DMG] = 1}, - [MOVE_WATER_SPORT] = {[MOVE_POINTS_ACCURATE] = 1}, - [MOVE_CALM_MIND] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_STAT_RAISE] = 1}, - [MOVE_LEAF_BLADE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1}, - [MOVE_DRAGON_DANCE] = {[MOVE_POINTS_COMBO] = 1, [MOVE_POINTS_STAT_RAISE] = 1}, - [MOVE_ROCK_BLAST] = {[MOVE_POINTS_DMG] = 1}, - [MOVE_SHOCK_WAVE] = {[MOVE_POINTS_DMG] = 1}, - [MOVE_WATER_PULSE] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_ACCURATE] = 1, [MOVE_POINTS_EFFECT] = 1}, - [MOVE_DOOM_DESIRE] = {[MOVE_POINTS_RARE] = 1, [MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1}, - [MOVE_PSYCHO_BOOST] = {[MOVE_POINTS_DMG] = 1, [MOVE_POINTS_POWERFUL] = 1, [MOVE_POINTS_STRONG] = 1, [MOVE_POINTS_LOW_PP] = 1, [MOVE_POINTS_EFFECT] = 1}, -}; - // This array is searched in-order to determine what battle style a tourney trainer uses. // If the sum of the points for the party's moves meets/exceeds all the point totals of an element, then they use that battle style static const u8 sBattleStyleThresholds[NUM_BATTLE_STYLES - 1][NUM_MOVE_POINT_TYPES] = @@ -4287,6 +3928,245 @@ static u8 Task_GetInfoCardInput(u8 taskId) #undef tUsingAlternateSlot +static bool32 IsDomeHealingMoveEffect(u32 effect) +{ + if (IsHealingMoveEffect(effect)) + return TRUE; + // Check extra effects not considered plain healing by AI + switch(effect) + { + case EFFECT_INGRAIN: + case EFFECT_REFRESH: + case EFFECT_AQUA_RING: + return TRUE; + default: + return FALSE; + } +} + +static bool32 IsDomeDefensiveMoveEffect(u32 effect) +{ + switch(effect) + { + case EFFECT_COUNTER: + case EFFECT_EVASION_UP: + case EFFECT_DEFENSE_UP: + case EFFECT_DEFENSE_UP_2: + case EFFECT_SPECIAL_DEFENSE_UP: + case EFFECT_SPECIAL_DEFENSE_UP_2: + case EFFECT_MINIMIZE: + case EFFECT_ACCURACY_DOWN: + case EFFECT_DEFENSE_CURL: + case EFFECT_LIGHT_SCREEN: + case EFFECT_REFLECT: + case EFFECT_AURORA_VEIL: + case EFFECT_CONVERSION: + case EFFECT_PROTECT: + case EFFECT_MAT_BLOCK: + case EFFECT_ENDURE: + case EFFECT_SAFEGUARD: + case EFFECT_MIRROR_COAT: + case EFFECT_MAGIC_COAT: + case EFFECT_INGRAIN: + case EFFECT_AQUA_RING: + case EFFECT_SUBSTITUTE: + return TRUE; + default: + return FALSE; + } +} + +static bool32 IsDomeRiskyMoveEffect(u32 effect) +{ + switch(effect) + { + case EFFECT_EXPLOSION: + case EFFECT_SPITE: + case EFFECT_DESTINY_BOND: + case EFFECT_PERISH_SONG: + return TRUE; + default: + return FALSE; + } +} + +static bool32 IsDomeLuckyMove(u32 move) +{ + if (gBattleMoves[move].accuracy <= 50) + return TRUE; + switch(gBattleMoves[move].effect) + { + case EFFECT_COUNTER: + case EFFECT_OHKO: // Technically redundant because of the above accuracy check + case EFFECT_METRONOME: + case EFFECT_MIRROR_MOVE: + case EFFECT_SKETCH: + case EFFECT_SLEEP_TALK: + case EFFECT_PRESENT: + case EFFECT_ASSIST: + case EFFECT_MAGIC_COAT: + case EFFECT_REVENGE: + case EFFECT_IMPRISON: + case EFFECT_SNATCH: + return TRUE; + default: + return FALSE; + } +} + +static bool32 IsDomePopularMove(u32 move) +{ + u8 i; + for (i = 0; i < NUM_TECHNICAL_MACHINES + NUM_HIDDEN_MACHINES; i++) + { + if (ItemIdToBattleMoveId(ITEM_TM01 + i) == move) + return TRUE; + } + if (i == NUM_TECHNICAL_MACHINES + NUM_HIDDEN_MACHINES) + return FALSE; + // Filter in TMs/HMs + if (gBattleMoves[move].power >= 90) + return TRUE; + + switch(gBattleMoves[move].effect) + { + case EFFECT_PROTECT: + case EFFECT_MAT_BLOCK: + case EFFECT_ATTACK_UP_2: + case EFFECT_SPECIAL_ATTACK_UP_2: + case EFFECT_SPECIAL_ATTACK_UP_3: + return TRUE; + default: + return FALSE; + } +} + +static bool32 IsDomeStatusMoveEffect(u32 effect) +{ + switch(effect) + { + case EFFECT_TRAP: + case EFFECT_SLEEP: + case EFFECT_CONFUSE: + case EFFECT_DISABLE: + case EFFECT_POISON: + case EFFECT_PARALYZE: + case EFFECT_TOXIC: + case EFFECT_LEECH_SEED: + case EFFECT_TAUNT: + case EFFECT_TORMENT: + case EFFECT_WILL_O_WISP: + case EFFECT_ENCORE: + case EFFECT_ATTRACT: + case EFFECT_NIGHTMARE: + case EFFECT_YAWN: + case EFFECT_CURSE: + return TRUE; + default: + return FALSE; + } +} + +static bool32 IsDomeRareMove(u32 move) +{ + u16 i, j; + u16 species = 0; + for(i = 0; i < NUM_SPECIES; i++) + { + const struct LevelUpMove *learnset = GetSpeciesLevelUpLearnset(i); + for(j = 0; learnset[j].move != LEVEL_UP_MOVE_END; j++) + { + if (learnset[j].move == move) + { + species++; + break; + } + } + if (species >= NUM_SPECIES / 20) // At least 5% of all mons can learn this move + return FALSE; + } + return TRUE; +} + +static bool32 IsDomeComboMoveEffect(u32 effect) +{ + switch(effect) + { + // Weather moves + case EFFECT_SUNNY_DAY: + case EFFECT_RAIN_DANCE: + case EFFECT_SANDSTORM: + case EFFECT_HAIL: + case EFFECT_SNOWSCAPE: + // Terrain moves + case EFFECT_GRASSY_TERRAIN: + case EFFECT_ELECTRIC_TERRAIN: + case EFFECT_MISTY_TERRAIN: + case EFFECT_PSYCHIC_TERRAIN: + // Moves dependent on weather + case EFFECT_SYNTHESIS: + case EFFECT_MORNING_SUN: + case EFFECT_MOONLIGHT: + case EFFECT_SHORE_UP: + case EFFECT_THUNDER: + case EFFECT_HURRICANE: + //case EFFECT_BLIZZARD: (needs a unique effect in gBattleMoves!) + case EFFECT_SOLAR_BEAM: + case EFFECT_GROWTH: + case EFFECT_AURORA_VEIL: + case EFFECT_WEATHER_BALL: + // Moves dependent on terrain + case EFFECT_EXPANDING_FORCE: + case EFFECT_GRASSY_GLIDE: + //case EFFECT_MISTY_EXPLOSION: (needs a unique effect in gBattleMoves!) + case EFFECT_PSYBLADE: + case EFFECT_RISING_VOLTAGE: + case EFFECT_TERRAIN_PULSE: + // Stockpile group + case EFFECT_STOCKPILE: + case EFFECT_SPIT_UP: + case EFFECT_SWALLOW: + // Entry hazards & cleaners + case EFFECT_SPIKES: + case EFFECT_TOXIC_SPIKES: + case EFFECT_STEALTH_ROCK: + case EFFECT_STICKY_WEB: + // Inflicting sleep & related effects + case EFFECT_SLEEP: + case EFFECT_YAWN: + case EFFECT_DREAM_EATER: + case EFFECT_NIGHTMARE: + case EFFECT_REST: + case EFFECT_SLEEP_TALK: + case EFFECT_SNORE: + // Anything that ups offensive stats by more than one + case EFFECT_ATTACK_UP: + case EFFECT_ATTACK_UP_2: + case EFFECT_ATTACK_SPATK_UP: + case EFFECT_SPECIAL_ATTACK_UP: + case EFFECT_SPECIAL_ATTACK_UP_2: + case EFFECT_SPECIAL_ATTACK_UP_3: + case EFFECT_CALM_MIND: + case EFFECT_DRAGON_DANCE: + case EFFECT_BELLY_DRUM: + case EFFECT_CHARGE: + case EFFECT_BULK_UP: + case EFFECT_ATTACK_ACCURACY_UP: + // Others + case EFFECT_FOCUS_ENERGY: + case EFFECT_LOCK_ON: + case EFFECT_FLAIL: + case EFFECT_BATON_PASS: + case EFFECT_INGRAIN: + case EFFECT_AQUA_RING: + case EFFECT_LEECH_SEED: + case EFFECT_ROAR: + return TRUE; + default: + return FALSE; + } +} + // allocatedArray below needs to be large enough to hold stat totals for each mon, or totals of each type of move points #define ALLOC_ARRAY_SIZE max(NUM_STATS * FRONTIER_PARTY_SIZE, NUM_MOVE_POINT_TYPES) @@ -4456,12 +4336,65 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTourneyId) { for (k = 0; k < NUM_MOVE_POINT_TYPES; k++) { + u16 move; if (trainerId == TRAINER_FRONTIER_BRAIN) - allocatedArray[k] += sBattleStyleMovePoints[GetFrontierBrainMonMove(i, j)][k]; + move = GetFrontierBrainMonMove(i, j); else if (trainerId == TRAINER_PLAYER) - allocatedArray[k] += sBattleStyleMovePoints[gSaveBlock2Ptr->frontier.domePlayerPartyData[i].moves[j]][k]; + move = gSaveBlock2Ptr->frontier.domePlayerPartyData[i].moves[j]; else - allocatedArray[k] += sBattleStyleMovePoints[gFacilityTrainerMons[DOME_MONS[trainerTourneyId][i]].moves[j]][k]; + move = gFacilityTrainerMons[DOME_MONS[trainerTourneyId][i]].moves[j]; + + switch (k) + { + case MOVE_POINTS_COMBO: + allocatedArray[k] = IsDomeComboMoveEffect(gBattleMoves[move].effect) ? 1 : 0; + break; + case MOVE_POINTS_STAT_RAISE: + allocatedArray[k] = IsStatRaisingEffect(gBattleMoves[move].effect) ? 1 : 0; + break; + case MOVE_POINTS_STAT_LOWER: + allocatedArray[k] = IsStatLoweringEffect(gBattleMoves[move].effect) ? 1 : 0; + break; + case MOVE_POINTS_RARE: + allocatedArray[k] = IsDomeRareMove(move) ? 1 : 0; + break; + case MOVE_POINTS_HEAL: + allocatedArray[k] = IsDomeHealingMoveEffect(gBattleMoves[move].effect) ? 1 : 0; + break; + case MOVE_POINTS_RISKY: + allocatedArray[k] = IsDomeRiskyMoveEffect(gBattleMoves[move].effect) ? 1 : 0; + break; + case MOVE_POINTS_STATUS: + allocatedArray[k] = IsDomeStatusMoveEffect(gBattleMoves[move].effect) ? 1 : 0; + break; + case MOVE_POINTS_DMG: + allocatedArray[k] = (gBattleMoves[move].power != 0) ? 1 : 0; + break; + case MOVE_POINTS_DEF: + allocatedArray[k] = IsDomeDefensiveMoveEffect(gBattleMoves[move].effect) ? 1 : 0; + break; + case MOVE_POINTS_ACCURATE: + allocatedArray[k] = (gBattleMoves[move].accuracy == 0 || gBattleMoves[move].accuracy == 100) ? 1 : 0; + break; + case MOVE_POINTS_POWERFUL: + allocatedArray[k] = (gBattleMoves[move].power >= 100) ? 1 : 0; + break; + case MOVE_POINTS_POPULAR: + allocatedArray[k] = IsDomePopularMove(move) ? 1 : 0; + break; + case MOVE_POINTS_LUCK: + allocatedArray[k] = IsDomeLuckyMove(move) ? 1 : 0; + break; + case MOVE_POINTS_STRONG: + allocatedArray[k] = (gBattleMoves[move].power >= 90) ? 1 : 0; + break; + case MOVE_POINTS_LOW_PP: + allocatedArray[k] = (gBattleMoves[move].pp <= 5) ? 1 : 0; + break; + case MOVE_POINTS_EFFECT: + allocatedArray[k] = (gBattleMoves[move].secondaryEffectChance > 0) ? 1 : 0; + break; + } } } } diff --git a/src/battle_dynamax.c b/src/battle_dynamax.c index a9370a4ab537..fbbd91ae3f81 100644 --- a/src/battle_dynamax.c +++ b/src/battle_dynamax.c @@ -150,7 +150,7 @@ bool32 CanDynamax(u16 battlerId) bool32 IsGigantamaxed(u16 battlerId) { // TODO: Incorporate Gigantamax factor. - if ((gSpeciesInfo[gBattleMons[battlerId].species].gigantamax)) + if ((gSpeciesInfo[gBattleMons[battlerId].species].isGigantamax)) return TRUE; return FALSE; } @@ -289,13 +289,13 @@ static u16 GetTypeBasedMaxMove(u16 battlerId, u16 type) u16 species = gBattleMons[battlerId].species; u16 targetSpecies = SPECIES_NONE; - if (!gSpeciesInfo[species].gigantamax) + if (!gSpeciesInfo[species].isGigantamax) targetSpecies = GetBattleFormChangeTargetSpecies(battlerId, FORM_CHANGE_BATTLE_GIGANTAMAX); if (targetSpecies != SPECIES_NONE) species = targetSpecies; - if (gSpeciesInfo[species].gigantamax) + if (gSpeciesInfo[species].isGigantamax) { for (i = 0; i < ARRAY_COUNT(sGMaxMoveTable); i++) { diff --git a/src/battle_factory.c b/src/battle_factory.c index 6983444a50ed..cd7258284742 100644 --- a/src/battle_factory.c +++ b/src/battle_factory.c @@ -742,7 +742,7 @@ u8 GetFactoryMonFixedIV(u8 challengeNum, bool8 isLastBattle) u8 ivSet; bool8 useHigherIV = isLastBattle ? TRUE : FALSE; -// The Factory has an out-of-bounds access when generating the rental draft for round 9 (challengeNum==8), +// The Factory has an out-of-bounds access when generating the rental draft for round 9 (challengeNum==8), // or the "elevated" rentals from round 8 (challengeNum+1==8) // This happens to land on a number higher than 31, which is interpreted as "random IVs" #ifdef BUGFIX diff --git a/src/battle_factory_screen.c b/src/battle_factory_screen.c index 8cba2bceef6a..66ff6bcb0301 100644 --- a/src/battle_factory_screen.c +++ b/src/battle_factory_screen.c @@ -2004,7 +2004,7 @@ static void Select_PrintMonCategory(void) PutWindowTilemap(SELECT_WIN_MON_CATEGORY); FillWindowPixelBuffer(SELECT_WIN_MON_CATEGORY, PIXEL_FILL(0)); species = GetMonData(&sFactorySelectScreen->mons[monId].monData, MON_DATA_SPECIES, NULL); - CopyMonCategoryText(SpeciesToNationalPokedexNum(species), text); + CopyMonCategoryText(species, text); x = GetStringRightAlignXOffset(FONT_NORMAL, text, 118); AddTextPrinterParameterized(SELECT_WIN_MON_CATEGORY, FONT_NORMAL, text, x, 1, 0, NULL); CopyWindowToVram(SELECT_WIN_MON_CATEGORY, COPYWIN_GFX); @@ -3951,7 +3951,7 @@ static void Swap_PrintMonCategory(void) species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, NULL); else species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, NULL); - CopyMonCategoryText(SpeciesToNationalPokedexNum(species), text); + CopyMonCategoryText(species, text); x = GetStringRightAlignXOffset(FONT_NORMAL, text, 118); AddTextPrinterParameterized(SWAP_WIN_MON_CATEGORY, FONT_NORMAL, text, x, 1, 0, NULL); CopyWindowToVram(SWAP_WIN_MON_CATEGORY, COPYWIN_GFX); diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index f321ff75dd71..4a4b47440bf1 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -651,8 +651,7 @@ void DecompressTrainerFrontPic(u16 frontPicId, u8 battler) { u8 position = GetBattlerPosition(battler); DecompressPicFromTable(&gTrainerFrontPicTable[frontPicId], - gMonSpritesGfxPtr->sprites.ptr[position], - SPECIES_NONE); + gMonSpritesGfxPtr->sprites.ptr[position]); LoadCompressedSpritePalette(&gTrainerFrontPicPaletteTable[frontPicId]); } @@ -660,8 +659,7 @@ void DecompressTrainerBackPic(u16 backPicId, u8 battler) { u8 position = GetBattlerPosition(battler); DecompressPicFromTable(&gTrainerBackPicTable[backPicId], - gMonSpritesGfxPtr->sprites.ptr[position], - SPECIES_NONE); + gMonSpritesGfxPtr->sprites.ptr[position]); LoadCompressedPalette(gTrainerBackPicPaletteTable[backPicId].data, OBJ_PLTT_ID(battler), PLTT_SIZE_4BPP); } @@ -1129,6 +1127,7 @@ void SpriteCB_EnemyShadow(struct Sprite *shadowSprite) bool8 invisible = FALSE; u8 battler = shadowSprite->tBattlerId; struct Sprite *battlerSprite = &gSprites[gBattlerSpriteIds[battler]]; + u16 transformSpecies = SanitizeSpeciesId(gBattleSpritesDataPtr->battlerData[battler].transformSpecies); if (!battlerSprite->inUse || !IsBattlerSpritePresent(battler)) { @@ -1137,8 +1136,7 @@ void SpriteCB_EnemyShadow(struct Sprite *shadowSprite) } if (gAnimScriptActive || battlerSprite->invisible) invisible = TRUE; - else if (gBattleSpritesDataPtr->battlerData[battler].transformSpecies != SPECIES_NONE - && gEnemyMonElevation[gBattleSpritesDataPtr->battlerData[battler].transformSpecies] == 0) + else if (transformSpecies != SPECIES_NONE && gSpeciesInfo[transformSpecies].enemyMonElevation == 0) invisible = TRUE; if (gBattleSpritesDataPtr->battlerData[battler].behindSubstitute) @@ -1165,7 +1163,7 @@ void SetBattlerShadowSpriteCallback(u8 battler, u16 species) if (gBattleSpritesDataPtr->battlerData[battler].transformSpecies != SPECIES_NONE) species = gBattleSpritesDataPtr->battlerData[battler].transformSpecies; - if (gEnemyMonElevation[species] != 0) + if (gSpeciesInfo[SanitizeSpeciesId(species)].enemyMonElevation != 0) gSprites[gBattleSpritesDataPtr->healthBoxesData[battler].shadowSpriteId].callback = SpriteCB_EnemyShadow; else gSprites[gBattleSpritesDataPtr->healthBoxesData[battler].shadowSpriteId].callback = SpriteCB_SetInvisible; diff --git a/src/battle_interface.c b/src/battle_interface.c index 4be97c814821..a92e953d9215 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -1057,6 +1057,7 @@ static void UpdateLvlInHealthbox(u8 healthboxSpriteId, u8 lvl) objVram = ConvertIntToDecimalStringN(text + 2, lvl, STR_CONV_MODE_LEFT_ALIGN, 3); xPos = 5 * (3 - (objVram - (text + 2))); + MegaIndicator_SetVisibilities(healthboxSpriteId, TRUE); } windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(text, xPos, 3, 2, &windowId); diff --git a/src/battle_main.c b/src/battle_main.c index 23000b963757..87360d3d85f0 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -66,8 +66,6 @@ #include "constants/trainers.h" #include "cable_club.h" -extern struct Evolution gEvolutionTable[][EVOS_PER_MON]; - extern const struct BgTemplate gBattleBgTemplates[]; extern const struct WindowTemplate *const gBattleWindowTemplates[]; @@ -2689,8 +2687,6 @@ void SpriteCallbackDummy_2(struct Sprite *sprite) } -extern const struct MonCoords gMonFrontPicCoords[]; - void SpriteCB_FaintOpponentMon(struct Sprite *sprite) { u8 battler = sprite->sBattler; @@ -2703,19 +2699,10 @@ void SpriteCB_FaintOpponentMon(struct Sprite *sprite) else species = sprite->sSpeciesId; + species = SanitizeSpeciesId(species); if (species == SPECIES_UNOWN) - { species = GetUnownSpeciesId(personality); - yOffset = gMonFrontPicCoords[species].y_offset; - } - else if (species > NUM_SPECIES) - { - yOffset = gMonFrontPicCoords[SPECIES_NONE].y_offset; - } - else - { - yOffset = gMonFrontPicCoords[species].y_offset; - } + yOffset = gSpeciesInfo[species].frontPicYOffset; sprite->data[3] = 8 - yOffset / 8; sprite->data[4] = 1; @@ -4085,6 +4072,7 @@ static void HandleTurnActionSelectionState(void) if ((gBattleTypeFlags & BATTLE_TYPE_HAS_AI || IsWildMonSmart()) && (BattlerHasAi(battler) && !(gBattleTypeFlags & BATTLE_TYPE_PALACE))) { + AI_DATA->mostSuitableMonId = GetMostSuitableMonToSwitchInto(battler, FALSE); gBattleStruct->aiMoveOrAction[battler] = ComputeBattleAiScores(battler); } // fallthrough @@ -4286,8 +4274,8 @@ static void HandleTurnActionSelectionState(void) gBattleStruct->mega.toEvolve &= ~(gBitTable[BATTLE_PARTNER(GetBattlerPosition(battler))]); gBattleStruct->burst.toBurst &= ~(gBitTable[BATTLE_PARTNER(GetBattlerPosition(battler))]); - gBattleStruct->dynamax.toDynamax &= ~(gBitTable[battler]); - gBattleStruct->dynamax.usingMaxMove[battler] = FALSE; + gBattleStruct->dynamax.toDynamax &= ~(gBitTable[BATTLE_PARTNER(GetBattlerPosition(battler))]); + gBattleStruct->dynamax.usingMaxMove[BATTLE_PARTNER(GetBattlerPosition(battler))] = FALSE; gBattleStruct->zmove.toBeUsed[BATTLE_PARTNER(GetBattlerPosition(battler))] = MOVE_NONE; BtlController_EmitEndBounceEffect(battler, BUFFER_A); MarkBattlerForControllerExec(battler); @@ -4387,7 +4375,7 @@ static void HandleTurnActionSelectionState(void) gBattleStruct->burst.toBurst |= gBitTable[battler]; else if (gBattleResources->bufferB[battler][2] & RET_DYNAMAX) gBattleStruct->dynamax.toDynamax |= gBitTable[battler]; - + // Max Move check if (ShouldUseMaxMove(battler, gChosenMoveByBattler[battler])) { @@ -4683,6 +4671,9 @@ u32 GetBattlerTotalSpeedStatArgs(u32 battler, u32 ability, u32 holdEffect) if (gBattleMons[battler].status1 & STATUS1_PARALYSIS && ability != ABILITY_QUICK_FEET) speed /= B_PARALYSIS_SPEED >= GEN_7 ? 2 : 4; + if (gSideStatuses[GetBattlerSide(battler)] & SIDE_STATUS_SWAMP) + speed /= 4; + return speed; } @@ -4732,27 +4723,8 @@ s8 GetMovePriority(u32 battler, u16 move) { priority++; } - else if (ability == ABILITY_TRIAGE) - { - switch (gBattleMoves[move].effect) - { - case EFFECT_RESTORE_HP: - case EFFECT_REST: - case EFFECT_MORNING_SUN: - case EFFECT_MOONLIGHT: - case EFFECT_SYNTHESIS: - case EFFECT_HEAL_PULSE: - case EFFECT_HEALING_WISH: - case EFFECT_SWALLOW: - case EFFECT_WISH: - case EFFECT_SOFTBOILED: - case EFFECT_ABSORB: - case EFFECT_ROOST: - case EFFECT_JUNGLE_HEALING: - priority += 3; - break; - } - } + else if (ability == ABILITY_TRIAGE && IsHealingMoveEffect(gBattleMoves[move].effect)) + priority += 3; if (gProtectStructs[battler].quash) priority = -8; @@ -5686,6 +5658,13 @@ void SetTypeBeforeUsingMove(u32 move, u32 battlerAtk) else if (gBattleMons[battlerAtk].type3 != TYPE_MYSTERY) gBattleStruct->dynamicMoveType = gBattleMons[battlerAtk].type3 | F_DYNAMIC_TYPE_2; } + else if (gBattleMoves[move].effect == EFFECT_RAGING_BULL + && (gBattleMons[battlerAtk].species == SPECIES_TAUROS_PALDEAN_COMBAT_BREED + || gBattleMons[battlerAtk].species == SPECIES_TAUROS_PALDEAN_BLAZE_BREED + || gBattleMons[battlerAtk].species == SPECIES_TAUROS_PALDEAN_AQUA_BREED)) + { + gBattleStruct->dynamicMoveType = gBattleMons[battlerAtk].type2 | F_DYNAMIC_TYPE_2; + } else if (gBattleMoves[move].effect == EFFECT_NATURAL_GIFT) { if (ItemId_GetPocket(gBattleMons[battlerAtk].item) == POCKET_BERRIES) @@ -5709,13 +5688,8 @@ void SetTypeBeforeUsingMove(u32 move, u32 battlerAtk) } attackerAbility = GetBattlerAbility(battlerAtk); - GET_MOVE_TYPE(move, moveType); - if ((gFieldStatuses & STATUS_FIELD_ION_DELUGE && moveType == TYPE_NORMAL) - || gStatuses4[battlerAtk] & STATUS4_ELECTRIFIED) - { - gBattleStruct->dynamicMoveType = TYPE_ELECTRIC | F_DYNAMIC_TYPE_2; - } - else if (gBattleMoves[move].type == TYPE_NORMAL + + if (gBattleMoves[move].type == TYPE_NORMAL && gBattleMoves[move].effect != EFFECT_HIDDEN_POWER && gBattleMoves[move].effect != EFFECT_WEATHER_BALL && gBattleMoves[move].effect != EFFECT_CHANGE_TYPE_ON_ITEM @@ -5744,15 +5718,16 @@ void SetTypeBeforeUsingMove(u32 move, u32 battlerAtk) { gBattleStruct->dynamicMoveType = TYPE_WATER | F_DYNAMIC_TYPE_2; } - else if (gStatuses4[battlerAtk] & STATUS4_PLASMA_FISTS && moveType == TYPE_NORMAL) - { - gBattleStruct->dynamicMoveType = TYPE_ELECTRIC | F_DYNAMIC_TYPE_2; - } else if (move == MOVE_AURA_WHEEL && gBattleMons[battlerAtk].species == SPECIES_MORPEKO_HANGRY) { gBattleStruct->dynamicMoveType = TYPE_DARK | F_DYNAMIC_TYPE_2; } + GET_MOVE_TYPE(move, moveType); + if ((gFieldStatuses & STATUS_FIELD_ION_DELUGE && moveType == TYPE_NORMAL) + || gStatuses4[battlerAtk] & STATUS4_ELECTRIFIED) + gBattleStruct->dynamicMoveType = TYPE_ELECTRIC | F_DYNAMIC_TYPE_2; + // Check if a gem should activate. GET_MOVE_TYPE(move, moveType); if (holdEffect == HOLD_EFFECT_GEMS diff --git a/src/battle_message.c b/src/battle_message.c index 116a42d6bc7c..fa2df70688b5 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -702,7 +702,7 @@ static const u8 sText_PkmnAbsorbingPower[] = _("{B_ATK_NAME_WITH_PREFIX} is abso static const u8 sText_NoOneWillBeAbleToRun[] = _("No one will be able to run away\nduring the next turn!"); static const u8 sText_DestinyKnotActivates[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} fell in love\nfrom the {B_LAST_ITEM}!"); static const u8 sText_CloakedInAFreezingLight[] = _("{B_ATK_NAME_WITH_PREFIX} became cloaked\nin a freezing light!"); -static const u8 sText_StatWasNotLowered[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_BUFF1}\nwas not lowered!"); +static const u8 sText_ClearAmuletWontLowerStats[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_LAST_ITEM} prevents\nits stats from being lowered!"); static const u8 sText_AuraFlaredToLife[] = _("{B_DEF_NAME_WITH_PREFIX}'s aura flared to life!"); static const u8 sText_AirLockActivates[] = _("The effects of weather\ndisappeared."); static const u8 sText_PressureActivates[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} is exerting its\npressure!"); @@ -822,9 +822,29 @@ static const u8 sText_TargetIsBeingSaltCured[] = _("{B_DEF_NAME_WITH_PREFIX} is static const u8 sText_TargetIsHurtBySaltCure[] = _("{B_DEF_NAME_WITH_PREFIX} is hurt by {B_BUFF1}!"); static const u8 sText_OpportunistCopied[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} copied its\nopponent's stat changes!"); static const u8 sText_TargetCoveredInStickyCandySyrup[] = _("{B_DEF_NAME_WITH_PREFIX} got covered\nin sticky syrup!"); +static const u8 sText_ZeroToHeroTransformation[] = _("{B_ATK_NAME_WITH_PREFIX} underwent a heroic\ntransformation!"); +static const u8 sText_TheTwoMovesBecomeOne[] = _("The two moves become one!\nIt's a combined move!{PAUSE 16}"); +static const u8 sText_ARainbowAppearedOnSide[] = _("A rainbow appeared in the sky\non {B_ATK_TEAM2} team's side!"); +static const u8 sText_TheRainbowDisappeared[] = _("The rainbow on {B_ATK_TEAM2}\nside disappeared!"); +static const u8 sText_WaitingForPartnersMove[] = _("{B_ATK_NAME_WITH_PREFIX} is waiting\nfor {B_ATK_PARTNER_NAME}'s move…{PAUSE 16}"); +static const u8 sText_SeaOfFireEnvelopedSide[] = _("A sea of fire enveloped\n{B_DEF_TEAM2} team!"); +static const u8 sText_HurtByTheSeaOfFire[] = _("{B_ATK_TEAM1} {B_ATK_NAME_WITH_PREFIX} was hurt\nby the sea of fire!"); +static const u8 sText_TheSeaOfFireDisappeared[] = _("The sea of fire around {B_ATK_TEAM2}\nteam disappeared!"); +static const u8 sText_SwampEnvelopedSide[] = _("A swamp enveloped\n{B_DEF_TEAM2} team!"); +static const u8 sText_TheSwampDisappeared[] = _("The swamp around {B_ATK_TEAM2}\nteam disappeared!"); const u8 *const gBattleStringsTable[BATTLESTRINGS_COUNT] = { + [STRINGID_THESWAMPDISAPPEARED - BATTLESTRINGS_TABLE_START] = sText_TheSwampDisappeared, + [STRINGID_SWAMPENVELOPEDSIDE - BATTLESTRINGS_TABLE_START] = sText_SwampEnvelopedSide, + [STRINGID_THESEAOFFIREDISAPPEARED - BATTLESTRINGS_TABLE_START] = sText_TheSeaOfFireDisappeared, + [STRINGID_HURTBYTHESEAOFFIRE - BATTLESTRINGS_TABLE_START] = sText_HurtByTheSeaOfFire, + [STRINGID_SEAOFFIREENVELOPEDSIDE - BATTLESTRINGS_TABLE_START] = sText_SeaOfFireEnvelopedSide, + [STRINGID_WAITINGFORPARTNERSMOVE - BATTLESTRINGS_TABLE_START] = sText_WaitingForPartnersMove, + [STRINGID_THERAINBOWDISAPPEARED - BATTLESTRINGS_TABLE_START] = sText_TheRainbowDisappeared, + [STRINGID_ARAINBOWAPPEAREDONSIDE - BATTLESTRINGS_TABLE_START] = sText_ARainbowAppearedOnSide, + [STRINGID_THETWOMOVESBECOMEONE - BATTLESTRINGS_TABLE_START] = sText_TheTwoMovesBecomeOne, + [STRINGID_ZEROTOHEROTRANSFORMATION - BATTLESTRINGS_TABLE_START] = sText_ZeroToHeroTransformation, [STRINGID_MOVEBLOCKEDBYDYNAMAX - BATTLESTRINGS_TABLE_START] = sText_MoveBlockedByDynamax, [STRINGID_OPPORTUNISTCOPIED - BATTLESTRINGS_TABLE_START] = sText_OpportunistCopied, [STRINGID_TARGETISHURTBYSALTCURE - BATTLESTRINGS_TABLE_START] = sText_TargetIsHurtBySaltCure, @@ -924,7 +944,7 @@ const u8 *const gBattleStringsTable[BATTLESTRINGS_COUNT] = [STRINGID_ASANDSTORMKICKEDUP - BATTLESTRINGS_TABLE_START] = sText_ASandstormKickedUp, [STRINGID_BATTLERABILITYRAISEDSTAT - BATTLESTRINGS_TABLE_START] = sText_BattlerAbilityRaisedStat, [STRINGID_FETCHEDPOKEBALL - BATTLESTRINGS_TABLE_START] = sText_FetchedPokeBall, - [STRINGID_STATWASNOTLOWERED - BATTLESTRINGS_TABLE_START] = sText_StatWasNotLowered, + [STRINGID_CLEARAMULETWONTLOWERSTATS - BATTLESTRINGS_TABLE_START] = sText_ClearAmuletWontLowerStats, [STRINGID_CLOAKEDINAFREEZINGLIGHT - BATTLESTRINGS_TABLE_START] = sText_CloakedInAFreezingLight, [STRINGID_DESTINYKNOTACTIVATES - BATTLESTRINGS_TABLE_START] = sText_DestinyKnotActivates, [STRINGID_NOONEWILLBEABLETORUNAWAY - BATTLESTRINGS_TABLE_START] = sText_NoOneWillBeAbleToRun, @@ -4013,6 +4033,7 @@ struct TrainerSlide const u8 *msgMegaEvolution; const u8 *msgZMove; const u8 *msgBeforeFirstTurn; + const u8 *msgDynamax; }; static const struct TrainerSlide sTrainerSlides[] = @@ -4033,6 +4054,7 @@ static const struct TrainerSlide sTrainerSlides[] = .msgMegaEvolution = sText_PowderExplodes, .msgZMove = sText_Electromagnetism, .msgBeforeFirstTurn = sText_GravityIntensified, + .msgDynamax = sText_TargetWokeUp, }, */ }; @@ -4218,6 +4240,14 @@ u32 ShouldDoTrainerSlide(u32 battler, u32 which) return TRUE; } break; + case TRAINER_SLIDE_DYNAMAX: + if (sTrainerSlides[i].msgDynamax != NULL && !gBattleStruct->trainerSlideDynamaxMsgDone) + { + gBattleStruct->trainerSlideDynamaxMsgDone = TRUE; + gBattleStruct->trainerSlideMsg = sTrainerSlides[i].msgDynamax; + return TRUE; + } + break; } break; } diff --git a/src/battle_pyramid.c b/src/battle_pyramid.c index ba3d6201113f..a21034d75a52 100644 --- a/src/battle_pyramid.c +++ b/src/battle_pyramid.c @@ -27,6 +27,7 @@ #include "overworld.h" #include "event_scripts.h" #include "graphics.h" +#include "wild_encounter.h" #include "constants/battle_frontier.h" #include "constants/battle_pyramid.h" #include "constants/event_objects.h" @@ -101,8 +102,13 @@ static bool8 TrySetPyramidObjectEventPositionAtCoords(bool8, u8, u8, u8 *, u8, u // Const rom data. #define ABILITY_RANDOM 2 // For wild mons data. -#include "data/battle_frontier/battle_pyramid_level_50_wild_mons.h" -#include "data/battle_frontier/battle_pyramid_open_level_wild_mons.h" +#if BATTLE_PYRAMID_RANDOM_ENCOUNTERS == TRUE + #include "data/battle_frontier/battle_pyramid_wild_requirements.h" +#else + #include "data/battle_frontier/battle_pyramid_level_50_wild_mons.h" + #include "data/battle_frontier/battle_pyramid_open_level_wild_mons.h" +#endif + static const struct PyramidFloorTemplate sPyramidFloorTemplates[] = { @@ -1340,6 +1346,209 @@ static void MarkPyramidTrainerAsBattled(u16 trainerId) gObjectEvents[gSelectedObjectEvent].initialCoords.y = gObjectEvents[gSelectedObjectEvent].currentCoords.y; } +#if BATTLE_PYRAMID_RANDOM_ENCOUNTERS == TRUE +// check if given species evolved from a specific evolutionary stone +// if nItems is passed as 0, it will check for any EVO_ITEM case +static bool32 CheckBattlePyramidEvoRequirement(u16 species, const u16 *evoItems, u8 nItems) +{ + u32 i, j, k; + for (i = 0; i < NUM_SPECIES; i++) + { + const struct Evolution *evolutions = GetSpeciesEvolutions(i); + if (evolutions == NULL) + continue; + for (j = 0; evolutions[j].method != EVOLUTIONS_END; j++) + { + if (evolutions[j].targetSpecies == species + && (evolutions[j].method == EVO_ITEM + || evolutions[j].method == EVO_ITEM_MALE + || evolutions[j].method == EVO_ITEM_FEMALE)) + { + if (nItems == 0) + { + // Any EVO_ITEM case will do + return TRUE; + } + else + { + // Otherwise, need to match specific set provided + for (k = 0; k < nItems; k++) + { + if (evolutions[j].param == evoItems[k]) + return TRUE; + } + } + } + } + } + return FALSE; +} + +extern u32 GetTotalBaseStat(u32 species); +void GenerateBattlePyramidWildMon(void) +{ + u8 name[POKEMON_NAME_LENGTH + 1]; + int i, j; + u32 id; + u32 lvl = gSaveBlock2Ptr->frontier.lvlMode; + u16 round = (gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvl] / 7) % TOTAL_PYRAMID_ROUNDS; + const struct BattlePyramidRequirement *reqs = &sBattlePyramidRequirementsByRound[round]; + u16 species; + u32 bstLim; + u16 *moves = NULL; + u16 *abilities = NULL; + int moveCount = 0, abilityCount = 0; + + if (reqs->nMoves != 0) + moves = AllocZeroed(sizeof(u16) * reqs->nMoves); + + if (reqs->nAbilities != 0) + abilities = AllocZeroed(sizeof(u16) * reqs->nAbilities); + + if (round >= TOTAL_PYRAMID_ROUNDS) + round = TOTAL_PYRAMID_ROUNDS - 1; + + id = GetMonData(&gEnemyParty[0], MON_DATA_SPECIES, NULL) - 1; // index in table (0-11) -> higher index is lower probability + bstLim = 450 + (25*round) + (5*id); // higher BST limit for 'rarer' wild mon rolls + + while (1) + { + species = Random() % FORMS_START; + // check type + if (reqs->type != TYPE_MYSTERY && gSpeciesInfo[species].types[0] != reqs->type && gSpeciesInfo[species].types[1] != reqs->type) + continue; + + // check base stat total + if (GetTotalBaseStat(species) > bstLim) + continue; + + // check moves + if (reqs->nMoves != 0) + { + moveCount = 0; + // get list of moves that can be learned + for (i = 0; i < reqs->nMoves; i++) + { + if (CanLearnTeachableMove(species, reqs->moves[i])) + { + moves[moveCount] = reqs->moves[i]; + moveCount++; + } + } + if (moveCount == 0) + continue; + } + + // check abilities + if (reqs->nAbilities != 0) + { + abilityCount = 0; + // get list of moves that can be learned + for (i = 0; i < reqs->nAbilities; i++) + { + for (j = 0; j < NUM_ABILITY_SLOTS; j++) + { + if (gSpeciesInfo[species].abilities[j] == reqs->abilities[i]) + { + abilities[abilityCount] = reqs->abilities[i]; + abilityCount++; + break; + } + } + } + if (abilityCount == 0) + continue; + } + // check evos + if (reqs->evoItems[0] != 0 && !CheckBattlePyramidEvoRequirement(species, reqs->evoItems, reqs->nEvoItems)) + continue; + + // we found a species we can use! + break; + } + + // Set species, name + SetMonData(&gEnemyParty[0], MON_DATA_SPECIES, &species); + StringCopy(name, GetSpeciesName(species)); + SetMonData(&gEnemyParty[0], MON_DATA_NICKNAME, &name); + + // set level + if (lvl != FRONTIER_LVL_50) + { + lvl = SetFacilityPtrsGetLevel(); + lvl -= (5 + (Random() % (TOTAL_PYRAMID_ROUNDS - round)/2)); + } + else + { + lvl = 50 - (5 + (Random() % (TOTAL_PYRAMID_ROUNDS - round)/4)); + } + SetMonData(&gEnemyParty[0], + MON_DATA_EXP, + &gExperienceTables[gSpeciesInfo[species].growthRate][lvl]); + + // Give initial moves and replace one with desired move + GiveBoxMonInitialMoveset(&gEnemyParty[0].box); + if (moves != NULL) + { + // get a random move to give + i = 0; + while (1) + { + id = moves[Random() % moveCount]; + if (!MonKnowsMove(&gEnemyParty[0], id)) + { + // replace random move + SetMonData(&gEnemyParty[0], MON_DATA_MOVE1 + Random() % MAX_MON_MOVES, &id); + break; + } + i++; + if (i == 20) + break; + } + Free(moves); + } + + // Initialize a random ability num + if (gSpeciesInfo[species].abilities[1]) + { + i = GetMonData(&gEnemyParty[0], MON_DATA_PERSONALITY, NULL) % 2; + SetMonData(&gEnemyParty[0], MON_DATA_ABILITY_NUM, &i); + } + else + { + i = 0; + SetMonData(&gEnemyParty[0], MON_DATA_ABILITY_NUM, &i); + } + + // Try to replace with desired ability + if (abilities != NULL) + { + i = 0; + while (1) + { + id = abilities[Random() % abilityCount]; + for (j = 0; j < NUM_ABILITY_SLOTS; j++) + { + if (id == gSpeciesInfo[species].abilities[j]) + { + // Set this ability num + SetMonData(&gEnemyParty[0], MON_DATA_ABILITY_NUM, &id); + } + } + } + Free(abilities); + } + + if (gSaveBlock2Ptr->frontier.pyramidWinStreaks[gSaveBlock2Ptr->frontier.lvlMode] >= 140) + { + id = (Random() % 17) + 15; + for (i = 0; i < NUM_STATS; i++) + SetMonData(&gEnemyParty[0], MON_DATA_HP_IV + i, &id); + } + + CalculateMonStats(&gEnemyParty[0]); +} +#else void GenerateBattlePyramidWildMon(void) { u8 name[POKEMON_NAME_LENGTH + 1]; @@ -1412,6 +1621,7 @@ void GenerateBattlePyramidWildMon(void) } CalculateMonStats(&gEnemyParty[0]); } +#endif u8 GetPyramidRunMultiplier(void) { diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 59b21fc11957..15956c8e7e1c 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -94,8 +94,6 @@ #define MEMBERS_7(a, b, c, d, e, f, g) a; b; c; d; e; f; g; #define MEMBERS_8(a, b, c, d, e, f, g, h) a; b; c; d; e; f; g; h; -extern struct Evolution gEvolutionTable[][EVOS_PER_MON]; - extern const u8 *const gBattleScriptsForMoveEffects[]; // table to avoid ugly powing on gba (courtesy of doesnt) @@ -354,6 +352,7 @@ static void TryUpdateRoundTurnOrder(void); static bool32 ChangeOrderTargetAfterAttacker(void); void ApplyExperienceMultipliers(s32 *expAmount, u8 expGetterMonId, u8 faintedBattler); static void RemoveAllTerrains(void); +static bool8 CanAbilityPreventStatLoss(u16 abilityDef, bool8 isIntimidate); static void Cmd_attackcanceler(void); static void Cmd_accuracycheck(void); @@ -978,7 +977,7 @@ static const u16 sFinalStrikeOnlyEffects[] = EFFECT_SECRET_POWER, EFFECT_SMACK_DOWN, EFFECT_SPARKLING_ARIA, - EFFECT_SMELLINGSALT, + EFFECT_SMELLING_SALTS, EFFECT_WAKE_UP_SLAP, EFFECT_HIT_ESCAPE, EFFECT_RECOIL_HP_25, @@ -1255,6 +1254,11 @@ bool32 ProteanTryChangeType(u32 battler, u32 ability, u32 move, u32 moveType) return FALSE; } +bool32 IsMoveNotAllowedInSkyBattles(u32 move) +{ + return ((gBattleStruct->isSkyBattle) && (gBattleMoves[gCurrentMove].skyBattleBanned)); +} + static void Cmd_attackcanceler(void) { CMD_ARGS(); @@ -1362,9 +1366,10 @@ static void Cmd_attackcanceler(void) } gHitMarker |= HITMARKER_OBEYS; - // Check if no available target present on the field. - if (NoTargetPresent(gBattlerAttacker, gCurrentMove) + // Check if no available target present on the field or if Sky Battles ban the move + if ((NoTargetPresent(gBattlerAttacker, gCurrentMove) && (!gBattleMoves[gCurrentMove].twoTurnMove || (gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS))) + || (IsMoveNotAllowedInSkyBattles(gCurrentMove))) { if (gBattleMoves[gCurrentMove].effect == EFFECT_FLING) // Edge case for removing a mon's item when there is no target available after using Fling. gBattlescriptCurrInstr = BattleScript_FlingFailConsumeItem; @@ -1530,12 +1535,9 @@ static bool8 JumpIfMoveAffectedByProtect(u16 move) static bool32 AccuracyCalcHelper(u16 move) { - if (gStatuses3[gBattlerTarget] & STATUS3_ALWAYS_HITS && gDisableStructs[gBattlerTarget].battlerWithSureHit == gBattlerAttacker) - { - JumpIfMoveFailed(7, move); - return TRUE; - } - else if (B_TOXIC_NEVER_MISS >= GEN_6 && gBattleMoves[move].effect == EFFECT_TOXIC && IS_BATTLER_OF_TYPE(gBattlerAttacker, TYPE_POISON)) + if ((gStatuses3[gBattlerTarget] & STATUS3_ALWAYS_HITS && gDisableStructs[gBattlerTarget].battlerWithSureHit == gBattlerAttacker) + || (B_TOXIC_NEVER_MISS >= GEN_6 && gBattleMoves[move].effect == EFFECT_TOXIC && IS_BATTLER_OF_TYPE(gBattlerAttacker, TYPE_POISON)) + || gStatuses4[gBattlerTarget] & STATUS4_GLAIVE_RUSH) { JumpIfMoveFailed(7, move); return TRUE; @@ -1622,7 +1624,7 @@ u32 GetTotalAccuracy(u32 battlerAtk, u32 battlerDef, u32 move, u32 atkAbility, u gPotentialItemEffectBattler = battlerDef; accStage = gBattleMons[battlerAtk].statStages[STAT_ACC]; evasionStage = gBattleMons[battlerDef].statStages[STAT_EVASION]; - if (atkAbility == ABILITY_UNAWARE || atkAbility == ABILITY_KEEN_EYE) + if (atkAbility == ABILITY_UNAWARE || atkAbility == ABILITY_KEEN_EYE || (B_ILLUMINATE_EFFECT >= GEN_9 && atkAbility == ABILITY_ILLUMINATE)) evasionStage = DEFAULT_STAT_STAGE; if (gBattleMoves[move].ignoresTargetDefenseEvasionStages) evasionStage = DEFAULT_STAT_STAGE; @@ -1724,9 +1726,7 @@ u32 GetTotalAccuracy(u32 battlerAtk, u32 battlerDef, u32 move, u32 atkAbility, u if (gFieldStatuses & STATUS_FIELD_GRAVITY) calc = (calc * 5) / 3; // 1.66 Gravity acc boost - // With high affection/friendship there's a chance to evade a move by substracting 10% of its accuracy. - // I can't find exact information about that chance, so I'm just gonna write it as a 20% chance for now. - if (B_AFFECTION_MECHANICS == TRUE && GetBattlerFriendshipScore(battlerDef) >= FRIENDSHIP_150_TO_199 && (Random() % 100) <= 20) + if (B_AFFECTION_MECHANICS == TRUE && GetBattlerAffectionHearts(battlerDef) == AFFECTION_FIVE_HEARTS) calc = (calc * 90) / 100; return calc; @@ -1906,7 +1906,7 @@ s32 CalcCritChanceStageArgs(u32 battlerAtk, u32 battlerDef, u32 move, bool32 rec + (holdEffectAtk == HOLD_EFFECT_SCOPE_LENS) + 2 * (holdEffectAtk == HOLD_EFFECT_LUCKY_PUNCH && gBattleMons[battlerAtk].species == SPECIES_CHANSEY) + 2 * BENEFITS_FROM_LEEK(battlerAtk, holdEffectAtk) - + 2 * (B_AFFECTION_MECHANICS == TRUE && GetBattlerFriendshipScore(battlerAtk) >= FRIENDSHIP_200_TO_254) + + 2 * (B_AFFECTION_MECHANICS == TRUE && GetBattlerAffectionHearts(battlerAtk) == AFFECTION_FIVE_HEARTS) + (abilityAtk == ABILITY_SUPER_LUCK) + gBattleStruct->bonusCritStages[gBattlerAttacker]; @@ -1993,7 +1993,7 @@ static void Cmd_adjustdamage(void) u8 holdEffect, param; u32 moveType; - u32 friendshipScore = GetBattlerFriendshipScore(gBattlerTarget); + u32 affectionScore = GetBattlerAffectionHearts(gBattlerTarget); u32 rand = Random() % 100; GET_MOVE_TYPE(gCurrentMove, moveType); @@ -2025,12 +2025,11 @@ static void Cmd_adjustdamage(void) RecordItemEffectBattle(gBattlerTarget, holdEffect); gSpecialStatuses[gBattlerTarget].focusSashed = TRUE; } - else if (B_AFFECTION_MECHANICS == TRUE && GetBattlerSide(gBattlerTarget) == B_SIDE_PLAYER && friendshipScore >= FRIENDSHIP_100_TO_149) + else if (B_AFFECTION_MECHANICS == TRUE && GetBattlerSide(gBattlerTarget) == B_SIDE_PLAYER && affectionScore >= AFFECTION_THREE_HEARTS) { - if ((friendshipScore == FRIENDSHIP_MAX && rand < 25) - || (friendshipScore == FRIENDSHIP_200_TO_254 && rand < 20) - || (friendshipScore == FRIENDSHIP_150_TO_199 && rand < 15) - || (friendshipScore == FRIENDSHIP_100_TO_149 && rand < 10)) + if ((affectionScore == AFFECTION_FIVE_HEARTS && rand < 20) + || (affectionScore == AFFECTION_FOUR_HEARTS && rand < 15) + || (affectionScore == AFFECTION_THREE_HEARTS && rand < 10)) gSpecialStatuses[gBattlerTarget].affectionEndured = TRUE; } @@ -2081,7 +2080,9 @@ static void Cmd_adjustdamage(void) } if (gSpecialStatuses[gBattlerAttacker].gemBoost && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && gBattleMons[gBattlerAttacker].item) + && gBattleMons[gBattlerAttacker].item + && gBattleMoves[gCurrentMove].effect != EFFECT_PLEDGE + && gCurrentMove != MOVE_STRUGGLE) { BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_GemActivates; @@ -2156,7 +2157,7 @@ static void Cmd_attackanimation(void) if (gBattleControllerExecFlags) return; - if ((gHitMarker & HITMARKER_NO_ANIMATIONS) + if ((gHitMarker & (HITMARKER_NO_ANIMATIONS | HITMARKER_DISABLE_ANIMATION)) && gCurrentMove != MOVE_TRANSFORM && gCurrentMove != MOVE_SUBSTITUTE // In a wild double battle gotta use the teleport animation if two wild pokemon are alive. @@ -2781,7 +2782,7 @@ void SetMoveEffect(bool32 primary, u32 certain) && !primary && gBattleScripting.moveEffect <= MOVE_EFFECT_CONFUSION) INCREMENT_RESET_RETURN - if (TestSheerForceFlag(gBattlerAttacker, gCurrentMove) && affectsUser != MOVE_EFFECT_AFFECTS_USER) + if (TestSheerForceFlag(gBattlerAttacker, gCurrentMove) && gBattleScripting.moveEffect != MOVE_EFFECT_CHARGING) INCREMENT_RESET_RETURN if (gBattleMons[gEffectBattler].hp == 0 && !activateAfterFaint) @@ -3548,21 +3549,6 @@ void SetMoveEffect(bool32 primary, u32 certain) gBattlescriptCurrInstr = BattleScript_MoveEffectBugBite; } break; - case MOVE_EFFECT_RELIC_SONG: - if (GetBattlerAbility(gBattlerAttacker) != ABILITY_SHEER_FORCE && !(gBattleMons[gBattlerAttacker].status2 & STATUS2_TRANSFORMED)) - { - if (gBattleMons[gBattlerAttacker].species == SPECIES_MELOETTA_ARIA) - { - gBattleMons[gBattlerAttacker].species = SPECIES_MELOETTA_PIROUETTE; - BattleScriptPushCursorAndCallback(BattleScript_AttackerFormChangeMoveEffect); - } - else if (gBattleMons[gBattlerAttacker].species == SPECIES_MELOETTA_PIROUETTE) - { - gBattleMons[gBattlerAttacker].species = SPECIES_MELOETTA_ARIA; - BattleScriptPushCursorAndCallback(BattleScript_AttackerFormChangeMoveEffect); - } - } - break; case MOVE_EFFECT_TRAP_BOTH: if (!(gBattleMons[gBattlerTarget].status2 & STATUS2_ESCAPE_PREVENTION) && !(gBattleMons[gBattlerAttacker].status2 & STATUS2_ESCAPE_PREVENTION)) { @@ -3613,13 +3599,17 @@ void SetMoveEffect(bool32 primary, u32 certain) { gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SPIKESSCATTERED; BattleScriptPush(gBattlescriptCurrInstr + 1); - gBattlescriptCurrInstr = BattleScript_SpikesActivates; + + if (gBattleStruct->isSkyBattle) + gBattlescriptCurrInstr++; + else + gBattlescriptCurrInstr = BattleScript_SpikesActivates; } break; case MOVE_EFFECT_TRIPLE_ARROWS: { - u8 randomLowerDefenseChance = RandomPercentage(RNG_TRIPLE_ARROWS_DEFENSE_DOWN, CalcSecondaryEffectChance(gBattlerAttacker, 50)); - u8 randomFlinchChance = RandomPercentage(RNG_TRIPLE_ARROWS_FLINCH, CalcSecondaryEffectChance(gBattlerAttacker, 30)); + u8 randomLowerDefenseChance = RandomPercentage(RNG_TRIPLE_ARROWS_DEFENSE_DOWN, CalcSecondaryEffectChance(gBattlerAttacker, 50, EFFECT_DEFENSE_DOWN_HIT)); + u8 randomFlinchChance = RandomPercentage(RNG_TRIPLE_ARROWS_FLINCH, CalcSecondaryEffectChance(gBattlerAttacker, 30, EFFECT_FLINCH_HIT)); if (randomFlinchChance && battlerAbility != ABILITY_INNER_FOCUS && GetBattlerTurnOrderNum(gEffectBattler) > gCurrentTurnActionNumber) gBattleMons[gEffectBattler].status2 |= sStatusFlagsForMoveEffects[MOVE_EFFECT_FLINCH]; @@ -3637,15 +3627,15 @@ void SetMoveEffect(bool32 primary, u32 certain) break; case MOVE_EFFECT_SYRUP_BOMB: - if (gStatuses4[gEffectBattler] & STATUS4_SYRUP_BOMB) - { - gBattlescriptCurrInstr++; - } - else + if (!(gStatuses4[gEffectBattler] & STATUS4_SYRUP_BOMB)) { + struct Pokemon *party = GetBattlerParty(gBattlerAttacker); + gStatuses4[gEffectBattler] |= STATUS4_SYRUP_BOMB; - gDisableStructs[gBattlerTarget].syrupBombTimer = 3; - gBattlescriptCurrInstr++; + gDisableStructs[gEffectBattler].syrupBombTimer = 3; + gDisableStructs[gEffectBattler].syrupBombIsShiny = IsMonShiny(&party[gBattlerPartyIndexes[gBattlerAttacker]]); + BattleScriptPush(gBattlescriptCurrInstr + 1); + gBattlescriptCurrInstr = BattleScript_SyrupBombActivates; } break; } @@ -3659,7 +3649,7 @@ static void Cmd_seteffectwithchance(void) { CMD_ARGS(); - u32 percentChance = CalcSecondaryEffectChance(gBattlerAttacker, gBattleMoves[gCurrentMove].secondaryEffectChance); + u32 percentChance = CalcSecondaryEffectChance(gBattlerAttacker, gBattleMoves[gCurrentMove].secondaryEffectChance, gBattleMoves[gCurrentMove].effect); if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && gBattleScripting.moveEffect) @@ -4346,7 +4336,7 @@ static bool32 NoAliveMonsForPlayerAndPartner(void) return (HP_count == 0); } -static bool32 NoAliveMonsForPlayer(void) +bool32 NoAliveMonsForPlayer(void) { u32 i; u32 HP_count = 0; @@ -4928,11 +4918,11 @@ static void PlayAnimation(u32 battler, u8 animId, const u16 *argPtr, const u8 *n || animId == B_ANIM_PRIMAL_REVERSION || animId == B_ANIM_ULTRA_BURST) { - BtlController_EmitBattleAnimation(battler, BUFFER_A, animId, *argPtr); + BtlController_EmitBattleAnimation(battler, BUFFER_A, animId, &gDisableStructs[battler], *argPtr); MarkBattlerForControllerExec(battler); gBattlescriptCurrInstr = nextInstr; } - else if (gHitMarker & HITMARKER_NO_ANIMATIONS && animId != B_ANIM_RESTORE_BG) + else if (gHitMarker & (HITMARKER_NO_ANIMATIONS | HITMARKER_DISABLE_ANIMATION) && animId != B_ANIM_RESTORE_BG) { BattleScriptPush(nextInstr); gBattlescriptCurrInstr = BattleScript_Pausex20; @@ -4943,7 +4933,7 @@ static void PlayAnimation(u32 battler, u8 animId, const u16 *argPtr, const u8 *n || animId == B_ANIM_HAIL_CONTINUES || animId == B_ANIM_SNOW_CONTINUES) { - BtlController_EmitBattleAnimation(battler, BUFFER_A, animId, *argPtr); + BtlController_EmitBattleAnimation(battler, BUFFER_A, animId, &gDisableStructs[battler], *argPtr); MarkBattlerForControllerExec(battler); gBattlescriptCurrInstr = nextInstr; } @@ -4953,7 +4943,7 @@ static void PlayAnimation(u32 battler, u8 animId, const u16 *argPtr, const u8 *n } else { - BtlController_EmitBattleAnimation(battler, BUFFER_A, animId, *argPtr); + BtlController_EmitBattleAnimation(battler, BUFFER_A, animId, &gDisableStructs[battler], *argPtr); MarkBattlerForControllerExec(battler); gBattlescriptCurrInstr = nextInstr; } @@ -5064,6 +5054,7 @@ static void Cmd_playstatchangeanimation(void) && ability != ABILITY_FULL_METAL_BODY && ability != ABILITY_WHITE_SMOKE && !(ability == ABILITY_KEEN_EYE && currStat == STAT_ACC) + && !(B_ILLUMINATE_EFFECT >= GEN_9 && ability == ABILITY_ILLUMINATE && currStat == STAT_ACC) && !(ability == ABILITY_HYPER_CUTTER && currStat == STAT_ATK) && !(ability == ABILITY_BIG_PECKS && currStat == STAT_DEF)) { @@ -5117,7 +5108,7 @@ static void Cmd_playstatchangeanimation(void) } else if (changeableStatsCount != 0 && !gBattleScripting.statAnimPlayed) { - BtlController_EmitBattleAnimation(battler, BUFFER_A, B_ANIM_STATS_CHANGE, statAnimId); + BtlController_EmitBattleAnimation(battler, BUFFER_A, B_ANIM_STATS_CHANGE, &gDisableStructs[battler], statAnimId); MarkBattlerForControllerExec(battler); if (flags & STAT_CHANGE_MULTIPLE_STATS && changeableStatsCount > 1) gBattleScripting.statAnimPlayed = TRUE; @@ -5513,7 +5504,7 @@ static void Cmd_moveend(void) break; case MOVEEND_ATTACKER_INVISIBLE: // make attacker sprite invisible if (gStatuses3[gBattlerAttacker] & (STATUS3_SEMI_INVULNERABLE) - && gHitMarker & HITMARKER_NO_ANIMATIONS) + && gHitMarker & (HITMARKER_NO_ANIMATIONS | HITMARKER_DISABLE_ANIMATION)) { BtlController_EmitSpriteInvisibility(gBattlerAttacker, BUFFER_A, TRUE); MarkBattlerForControllerExec(gBattlerAttacker); @@ -7033,6 +7024,7 @@ static void Cmd_returntoball(void) u32 battler = GetBattlerForBattleScript(cmd->battler); BtlController_EmitReturnMonToBall(battler, BUFFER_A, TRUE); MarkBattlerForControllerExec(battler); + TryBattleFormChange(battler, FORM_CHANGE_BATTLE_SWITCH); gBattlescriptCurrInstr = cmd->nextInstr; } @@ -7456,7 +7448,7 @@ static void Cmd_statusanimation(void) u32 battler = GetBattlerForBattleScript(cmd->battler); if (!(gStatuses3[battler] & STATUS3_SEMI_INVULNERABLE) && gDisableStructs[battler].substituteHP == 0 - && !(gHitMarker & HITMARKER_NO_ANIMATIONS)) + && !(gHitMarker & (HITMARKER_NO_ANIMATIONS | HITMARKER_DISABLE_ANIMATION))) { BtlController_EmitStatusAnimation(battler, BUFFER_A, FALSE, gBattleMons[battler].status1); MarkBattlerForControllerExec(battler); @@ -7475,7 +7467,7 @@ static void Cmd_status2animation(void) u32 status2ToAnim = cmd->status2; if (!(gStatuses3[battler] & STATUS3_SEMI_INVULNERABLE) && gDisableStructs[battler].substituteHP == 0 - && !(gHitMarker & HITMARKER_NO_ANIMATIONS)) + && !(gHitMarker & (HITMARKER_NO_ANIMATIONS | HITMARKER_DISABLE_ANIMATION))) { BtlController_EmitStatusAnimation(battler, BUFFER_A, TRUE, gBattleMons[battler].status2 & status2ToAnim); MarkBattlerForControllerExec(battler); @@ -7494,7 +7486,7 @@ static void Cmd_chosenstatusanimation(void) u32 wantedStatus = cmd->status; if (!(gStatuses3[battler] & STATUS3_SEMI_INVULNERABLE) && gDisableStructs[battler].substituteHP == 0 - && !(gHitMarker & HITMARKER_NO_ANIMATIONS)) + && !(gHitMarker & (HITMARKER_NO_ANIMATIONS | HITMARKER_DISABLE_ANIMATION))) { BtlController_EmitStatusAnimation(battler, BUFFER_A, cmd->isStatus2, wantedStatus); MarkBattlerForControllerExec(battler); @@ -8344,8 +8336,6 @@ static void CourtChangeSwapSideStatuses(void) struct SideTimer *sideTimerOpp = &gSideTimers[B_SIDE_OPPONENT]; u32 temp; - // TODO: add Pledge-related effects - // Swap timers and statuses COURTCHANGE_SWAP(SIDE_STATUS_REFLECT, reflectTimer, temp) COURTCHANGE_SWAP(SIDE_STATUS_LIGHTSCREEN, lightscreenTimer, temp) @@ -8361,6 +8351,10 @@ static void CourtChangeSwapSideStatuses(void) COURTCHANGE_SWAP(SIDE_STATUS_STICKY_WEB, stickyWebAmount, temp); COURTCHANGE_SWAP(SIDE_STATUS_STEELSURGE, steelsurgeAmount, temp); COURTCHANGE_SWAP(SIDE_STATUS_DAMAGE_NON_TYPES, damageNonTypesTimer, temp); + // Track Pledge effect side + COURTCHANGE_SWAP(SIDE_STATUS_RAINBOW, rainbowTimer, temp); + COURTCHANGE_SWAP(SIDE_STATUS_SEA_OF_FIRE, seaOfFireTimer, temp); + COURTCHANGE_SWAP(SIDE_STATUS_SWAMP, swampTimer, temp); // Change battler IDs of swapped effects. Needed for the correct string when they expire // E.g. "Foe's Reflect wore off!" @@ -9155,6 +9149,7 @@ static void Cmd_various(void) case ABILITY_SCHOOLING: case ABILITY_COMATOSE: case ABILITY_SHIELDS_DOWN: case ABILITY_DISGUISE: case ABILITY_RKS_SYSTEM: case ABILITY_TRACE: + case ABILITY_ZERO_TO_HERO: break; default: gBattleStruct->tracedAbility[gBattlerAbility] = gBattleMons[battler].ability; // re-using the variable for trace @@ -9316,26 +9311,6 @@ static void Cmd_various(void) gLastUsedAbility = gBattleMons[battler].ability; break; } - case VARIOUS_TRY_HEAL_PULSE: - { - VARIOUS_ARGS(const u8 *failInstr); - if (BATTLER_MAX_HP(battler)) - { - gBattlescriptCurrInstr = cmd->failInstr; - } - else - { - if (GetBattlerAbility(gBattlerAttacker) == ABILITY_MEGA_LAUNCHER && gBattleMoves[gCurrentMove].pulseMove) - gBattleMoveDamage = -(GetNonDynamaxMaxHP(battler) * 75 / 100); - else - gBattleMoveDamage = -(GetNonDynamaxMaxHP(battler) / 2); - - if (gBattleMoveDamage == 0) - gBattleMoveDamage = -1; - gBattlescriptCurrInstr = cmd->nextInstr; - } - return; - } case VARIOUS_TRY_QUASH: { VARIOUS_ARGS(const u8 *failInstr); @@ -9551,7 +9526,7 @@ static void Cmd_various(void) { VARIOUS_ARGS(const u8 *failInstr); u16 move = gLastMoves[gBattlerTarget]; - if (move == MOVE_NONE || move == MOVE_UNAVAILABLE || gBattleMoves[move].effect == EFFECT_RECHARGE + if (move == MOVE_NONE || move == MOVE_UNAVAILABLE || gBattleMoves[move].effect == EFFECT_RECHARGE || gBattleMoves[move].instructBanned || gBattleMoves[move].twoTurnMove || IsDynamaxed(gBattlerTarget)) { gBattlescriptCurrInstr = cmd->failInstr; @@ -10244,13 +10219,6 @@ static void Cmd_various(void) gBattlescriptCurrInstr = cmd->nextInstr; return; } - case VARIOUS_APPLY_PLASMA_FISTS: - { - VARIOUS_ARGS(); - for (i = 0; i < gBattlersCount; i++) - gStatuses4[i] |= STATUS4_PLASMA_FISTS; - break; - } case VARIOUS_JUMP_IF_SPECIES: { VARIOUS_ARGS(u16 species, const u8 *jumpInstr); @@ -10355,22 +10323,6 @@ static void Cmd_various(void) } return; } - case VARIOUS_SET_OCTOLOCK: - { - VARIOUS_ARGS(const u8 *failInstr); - if (gDisableStructs[battler].octolock) - { - gBattlescriptCurrInstr = cmd->failInstr; - } - else - { - gDisableStructs[battler].octolock = TRUE; - gBattleMons[battler].status2 |= STATUS2_ESCAPE_PREVENTION; - gDisableStructs[battler].battlerPreventingEscape = gBattlerAttacker; - gBattlescriptCurrInstr = cmd->nextInstr; - } - return; - } case VARIOUS_CHECK_POLTERGEIST: { VARIOUS_ARGS(const u8 *failInstr); @@ -10681,30 +10633,6 @@ static void Cmd_various(void) } return; } - case VARIOUS_TRY_TRAINER_SLIDE_MSG_Z_MOVE: - { - VARIOUS_ARGS(); - if ((i = ShouldDoTrainerSlide(battler, TRAINER_SLIDE_Z_MOVE))) - { - gBattleScripting.battler = battler; - BattleScriptPush(cmd->nextInstr); - gBattlescriptCurrInstr = (i == 1 ? BattleScript_TrainerASlideMsgRet : BattleScript_TrainerBSlideMsgRet); - return; - } - break; - } - case VARIOUS_TRY_TRAINER_SLIDE_MSG_MEGA_EVOLUTION: - { - VARIOUS_ARGS(); - if ((i = ShouldDoTrainerSlide(battler, TRAINER_SLIDE_MEGA_EVOLUTION))) - { - gBattleScripting.battler = battler; - BattleScriptPush(cmd->nextInstr); - gBattlescriptCurrInstr = (i == 1 ? BattleScript_TrainerASlideMsgRet : BattleScript_TrainerBSlideMsgRet); - return; - } - break; - } } // End of switch (cmd->id) gBattlescriptCurrInstr = cmd->nextInstr; @@ -11405,16 +11333,9 @@ static u32 ChangeStatBuffs(s8 statValue, u32 statId, u32 flags, const u8 *BS_ptr return STAT_CHANGE_DIDNT_WORK; } else if ((battlerHoldEffect == HOLD_EFFECT_CLEAR_AMULET - || battlerAbility == ABILITY_CLEAR_BODY - || battlerAbility == ABILITY_FULL_METAL_BODY - || battlerAbility == ABILITY_WHITE_SMOKE) - && (!affectsUser || mirrorArmored) && !certain && gCurrentMove != MOVE_CURSE) + || CanAbilityPreventStatLoss(battlerAbility, GetBattlerAbility(gBattlerAttacker) == ABILITY_INTIMIDATE)) + && (!affectsUser || mirrorArmored) && !certain && gCurrentMove != MOVE_CURSE) { - if (battlerHoldEffect == HOLD_EFFECT_CLEAR_AMULET) - { - RecordItemEffectBattle(battler, HOLD_EFFECT_CLEAR_AMULET); - } - if (flags == STAT_CHANGE_ALLOW_PTR) { if (gSpecialStatuses[battler].statLowered) @@ -11427,7 +11348,9 @@ static u32 ChangeStatBuffs(s8 statValue, u32 statId, u32 flags, const u8 *BS_ptr gBattleScripting.battler = battler; if (battlerHoldEffect == HOLD_EFFECT_CLEAR_AMULET) { + gLastUsedItem = gBattleMons[battler].item; gBattlescriptCurrInstr = BattleScript_ItemNoStatLoss; + RecordItemEffectBattle(battler, HOLD_EFFECT_CLEAR_AMULET); } else { @@ -11463,6 +11386,7 @@ static u32 ChangeStatBuffs(s8 statValue, u32 statId, u32 flags, const u8 *BS_ptr } else if (!certain && ((battlerAbility == ABILITY_KEEN_EYE && statId == STAT_ACC) + || (B_ILLUMINATE_EFFECT >= GEN_9 && battlerAbility == ABILITY_ILLUMINATE && statId == STAT_ACC) || (battlerAbility == ABILITY_HYPER_CUTTER && statId == STAT_ATK) || (battlerAbility == ABILITY_BIG_PECKS && statId == STAT_DEF))) { @@ -12801,6 +12725,8 @@ static void Cmd_trychoosesleeptalkmove(void) } else // at least one move can be chosen { + // Set Sleep Talk as used move, so it works with Last Resort. + gDisableStructs[gBattlerAttacker].usedMoves |= gBitTable[gCurrMovePos]; do { movePosition = MOD(Random(), MAX_MON_MOVES); @@ -14863,7 +14789,7 @@ static void Cmd_handleballthrow(void) else catchRate = gSpeciesInfo[gBattleMons[gBattlerTarget].species].catchRate; - if (gSpeciesInfo[gBattleMons[gBattlerTarget].species].flags & SPECIES_FLAG_ULTRA_BEAST) + if (gSpeciesInfo[gBattleMons[gBattlerTarget].species].isUltraBeast) { if (gLastUsedItem == ITEM_BEAST_BALL) ballMultiplier = 500; @@ -14924,8 +14850,7 @@ static void Cmd_handleballthrow(void) ballMultiplier = 400; break; case ITEM_DUSK_BALL: - RtcCalcLocalTime(); - if ((gLocalTime.hours >= 20 && gLocalTime.hours <= 3) || gMapHeader.cave || gMapHeader.mapType == MAP_TYPE_UNDERGROUND) + if ((GetTimeOfDay() == TIME_EVENING || GetTimeOfDay() == TIME_NIGHT) || gMapHeader.cave || gMapHeader.mapType == MAP_TYPE_UNDERGROUND) ballMultiplier = (B_DUSK_BALL_MODIFIER >= GEN_7 ? 300 : 350); break; case ITEM_QUICK_BALL: @@ -14945,13 +14870,18 @@ static void Cmd_handleballthrow(void) ballMultiplier = (B_LURE_BALL_MODIFIER >= GEN_7 ? 500 : 300); break; case ITEM_MOON_BALL: - for (i = 0; i < EVOS_PER_MON; i++) + { + const struct Evolution *evolutions = GetSpeciesEvolutions(gBattleMons[gBattlerTarget].species); + if (evolutions == NULL) + break; + for (i = 0; evolutions[i].method != EVOLUTIONS_END; i++) { - if (gEvolutionTable[gBattleMons[gBattlerTarget].species][i].method == EVO_ITEM - && gEvolutionTable[gBattleMons[gBattlerTarget].species][i].param == ITEM_MOON_STONE) + if (evolutions[i].method == EVO_ITEM + && evolutions[i].param == ITEM_MOON_STONE) ballMultiplier = 400; } - break; + } + break; case ITEM_LOVE_BALL: if (gBattleMons[gBattlerTarget].species == gBattleMons[gBattlerAttacker].species) { @@ -14967,7 +14897,7 @@ static void Cmd_handleballthrow(void) ballMultiplier = 400; break; case ITEM_HEAVY_BALL: - i = GetPokedexHeightWeight(SpeciesToNationalPokedexNum(gBattleMons[gBattlerTarget].species), 1); + i = GetSpeciesWeight(gBattleMons[gBattlerTarget].species); if (B_HEAVY_BALL_MODIFIER >= GEN_7) { if (i < 1000) @@ -15701,6 +15631,25 @@ static bool8 IsFinalStrikeEffect(u16 move) return FALSE; } +static bool8 CanAbilityPreventStatLoss(u16 abilityDef, bool8 byIntimidate) +{ + switch (abilityDef) + { + case ABILITY_CLEAR_BODY: + case ABILITY_FULL_METAL_BODY: + case ABILITY_WHITE_SMOKE: + return TRUE; + case ABILITY_INNER_FOCUS: + case ABILITY_SCRAPPY: + case ABILITY_OWN_TEMPO: + case ABILITY_OBLIVIOUS: + if (byIntimidate && (B_UPDATED_INTIMIDATE >= GEN_8)) + return TRUE; + break; + } + return FALSE; +} + void BS_CheckParentalBondCounter(void) { NATIVE_ARGS(u8 counter, const u8 *jumpInstr); @@ -15849,7 +15798,7 @@ void ApplyExperienceMultipliers(s32 *expAmount, u8 expGetterMonId, u8 faintedBat *expAmount = (*expAmount * 150) / 100; if (B_UNEVOLVED_EXP_MULTIPLIER >= GEN_6 && IsMonPastEvolutionLevel(&gPlayerParty[expGetterMonId])) *expAmount = (*expAmount * 4915) / 4096; - if (B_AFFECTION_MECHANICS == TRUE && GetBattlerFriendshipScore(expGetterMonId) >= FRIENDSHIP_50_TO_99) + if (B_AFFECTION_MECHANICS == TRUE && GetBattlerAffectionHearts(expGetterMonId) >= AFFECTION_FOUR_HEARTS) *expAmount = (*expAmount * 4915) / 4096; if (CheckBagHasItem(ITEM_EXP_CHARM, 1)) //is also for other exp boosting Powers if/when implemented *expAmount = (*expAmount * 150) / 100; @@ -16268,3 +16217,227 @@ void BS_TryReflectType(void) gBattlescriptCurrInstr = cmd->nextInstr; } } + +void BS_TrySetOctolock(void) +{ + NATIVE_ARGS(u8 battler, const u8 *failInstr); + u32 battler = GetBattlerForBattleScript(cmd->battler); + + if (gDisableStructs[battler].octolock) + { + gBattlescriptCurrInstr = cmd->failInstr; + } + else + { + gDisableStructs[battler].octolock = TRUE; + gBattleMons[battler].status2 |= STATUS2_ESCAPE_PREVENTION; + gDisableStructs[battler].battlerPreventingEscape = gBattlerAttacker; + gBattlescriptCurrInstr = cmd->nextInstr; + } +} + +void BS_SetGlaiveRush(void) +{ + NATIVE_ARGS(); + + gStatuses4[gBattlerAttacker] |= STATUS4_GLAIVE_RUSH; + + gBattlescriptCurrInstr = cmd->nextInstr; +} + +void BS_TryRelicSong(void) +{ + NATIVE_ARGS(); + + if (GetBattlerAbility(gBattlerAttacker) != ABILITY_SHEER_FORCE && !(gBattleMons[gBattlerAttacker].status2 & STATUS2_TRANSFORMED)) + { + if (gBattleMons[gBattlerAttacker].species == SPECIES_MELOETTA_ARIA) + gBattleMons[gBattlerAttacker].species = SPECIES_MELOETTA_PIROUETTE; + else if (gBattleMons[gBattlerAttacker].species == SPECIES_MELOETTA_PIROUETTE) + gBattleMons[gBattlerAttacker].species = SPECIES_MELOETTA_ARIA; + + BattleScriptPush(cmd->nextInstr); + gBattlescriptCurrInstr = BattleScript_AttackerFormChangeMoveEffect; + } + else + gBattlescriptCurrInstr = cmd->nextInstr; +} + +void BS_SetPledge(void) +{ + NATIVE_ARGS(const u8 *jumpInstr); + + u32 partner = BATTLE_PARTNER(gBattlerAttacker); + u32 partnerMove = gBattleMons[partner].moves[gBattleStruct->chosenMovePositions[partner]]; + u32 i = 0; + u32 k = 0; + + if (gBattleStruct->pledgeMove) + { + PrepareStringBattle(STRINGID_USEDMOVE, gBattlerAttacker); + gHitMarker |= HITMARKER_ATTACKSTRING_PRINTED; + + if ((gCurrentMove == MOVE_GRASS_PLEDGE && partnerMove == MOVE_WATER_PLEDGE) + || (gCurrentMove == MOVE_WATER_PLEDGE && partnerMove == MOVE_GRASS_PLEDGE)) + { + gCurrentMove = MOVE_GRASS_PLEDGE; + gBattlescriptCurrInstr = BattleScript_EffectCombinedPledge_Grass; + } + else if ((gCurrentMove == MOVE_FIRE_PLEDGE && partnerMove == MOVE_GRASS_PLEDGE) + || (gCurrentMove == MOVE_GRASS_PLEDGE && partnerMove == MOVE_FIRE_PLEDGE)) + { + gCurrentMove = MOVE_FIRE_PLEDGE; + gBattlescriptCurrInstr = BattleScript_EffectCombinedPledge_Fire; + } + else if ((gCurrentMove == MOVE_WATER_PLEDGE && partnerMove == MOVE_FIRE_PLEDGE) + || (gCurrentMove == MOVE_FIRE_PLEDGE && partnerMove == MOVE_WATER_PLEDGE)) + { + gCurrentMove = MOVE_WATER_PLEDGE; + gBattlescriptCurrInstr = BattleScript_EffectCombinedPledge_Water; + } + + gBattleCommunication[MSG_DISPLAY] = 0; + } + else if ((gChosenActionByBattler[partner] == B_ACTION_USE_MOVE) + && gBattleTypeFlags & BATTLE_TYPE_DOUBLE + && IsBattlerAlive(partner) + && gCurrentMove != partnerMove + && gBattleMoves[partnerMove].effect == EFFECT_PLEDGE) + { + u32 currPledgeUser = 0; + u32 newTurnOrder[] = {0xFF, 0xFF}; + + for (i = 0; i < gBattlersCount; i++) + { + if (gBattlerByTurnOrder[i] == gBattlerAttacker) + { + currPledgeUser = i + 1; // Current battler going after attacker + break; + } + } + for (i = currPledgeUser; i < gBattlersCount; i++) + { + if (gBattlerByTurnOrder[i] != partner) + { + newTurnOrder[k] = gBattlerByTurnOrder[i]; + k++; + } + } + + gBattlerByTurnOrder[currPledgeUser] = partner; + currPledgeUser++; + + for (i = 0; newTurnOrder[i] != 0xFF && i < 2; i++) + { + gBattlerByTurnOrder[currPledgeUser] = newTurnOrder[i]; + currPledgeUser++; + } + + gBattleStruct->pledgeMove = TRUE; + gBattleScripting.battler = partner; + gBattlescriptCurrInstr = cmd->nextInstr; + } + else + { + gBattlescriptCurrInstr = cmd->jumpInstr; + + } +} + +void BS_SetPledgeStatus(void) +{ + NATIVE_ARGS(u8 battler, u32 sideStatus); + + u32 battler = GetBattlerForBattleScript(cmd->battler); + u32 side = GetBattlerSide(battler); + + gBattleStruct->pledgeMove = FALSE; + if (!(gSideStatuses[side] & cmd->sideStatus)) + { + gSideStatuses[side] |= cmd->sideStatus; + + switch (cmd->sideStatus) + { + case SIDE_STATUS_RAINBOW: + gSideTimers[side].rainbowTimer = 4; + break; + case SIDE_STATUS_SEA_OF_FIRE: + gSideTimers[side].seaOfFireTimer = 4; + break; + case SIDE_STATUS_SWAMP: + gSideTimers[side].swampTimer = 4; + } + + gBattlescriptCurrInstr = cmd->nextInstr; + } + else + gBattlescriptCurrInstr = BattleScript_MoveEnd; +} + +void BS_TryTrainerSlideZMoveMsg(void) +{ + NATIVE_ARGS(); + s32 shouldSlide; + + if ((shouldSlide = ShouldDoTrainerSlide(gBattlerAttacker, TRAINER_SLIDE_Z_MOVE))) + { + gBattleScripting.battler = gBattlerAttacker; + BattleScriptPush(cmd->nextInstr); + gBattlescriptCurrInstr = (shouldSlide == 1 ? BattleScript_TrainerASlideMsgRet : BattleScript_TrainerBSlideMsgRet); + } + else + gBattlescriptCurrInstr = cmd->nextInstr; +} + +void BS_TryTrainerSlideMegaEvolutionMsg(void) +{ + NATIVE_ARGS(); + s32 shouldSlide; + + if ((shouldSlide = ShouldDoTrainerSlide(gBattlerAttacker, TRAINER_SLIDE_MEGA_EVOLUTION))) + { + gBattleScripting.battler = gBattlerAttacker; + BattleScriptPush(cmd->nextInstr); + gBattlescriptCurrInstr = (shouldSlide == 1 ? BattleScript_TrainerASlideMsgRet : BattleScript_TrainerBSlideMsgRet); + } + else + gBattlescriptCurrInstr = cmd->nextInstr; +} + +void BS_TryTrainerSlideDynamaxMsg(void) +{ + NATIVE_ARGS(); + s32 shouldSlide; + + if ((shouldSlide = ShouldDoTrainerSlide(gBattlerAttacker, TRAINER_SLIDE_DYNAMAX))) + { + gBattleScripting.battler = gBattlerAttacker; + BattleScriptPush(cmd->nextInstr); + gBattlescriptCurrInstr = (shouldSlide == 1 ? BattleScript_TrainerASlideMsgRet : BattleScript_TrainerBSlideMsgRet); + } + else + gBattlescriptCurrInstr = cmd->nextInstr; +} + +void BS_TryHealPulse(void) +{ + NATIVE_ARGS(const u8 *failInstr); + + if (BATTLER_MAX_HP(gBattlerTarget)) + { + gBattlescriptCurrInstr = cmd->failInstr; + } + else + { + if (GetBattlerAbility(gBattlerAttacker) == ABILITY_MEGA_LAUNCHER && gBattleMoves[gCurrentMove].pulseMove) + gBattleMoveDamage = -(GetNonDynamaxMaxHP(gBattlerTarget) * 75 / 100); + else if (gFieldStatuses & STATUS_FIELD_GRASSY_TERRAIN && gBattleMoves[gCurrentMove].argument == MOVE_EFFECT_FLORAL_HEALING) + gBattleMoveDamage = -(GetNonDynamaxMaxHP(gBattlerTarget) * 2 / 3); + else + gBattleMoveDamage = -(GetNonDynamaxMaxHP(gBattlerTarget) / 2); + + if (gBattleMoveDamage == 0) + gBattleMoveDamage = -1; + gBattlescriptCurrInstr = cmd->nextInstr; + } +} diff --git a/src/battle_setup.c b/src/battle_setup.c index 3b34ee6cb9a8..3de04d03c576 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -1,5 +1,6 @@ #include "global.h" #include "battle.h" +#include "load_save.h" #include "battle_setup.h" #include "battle_transition.h" #include "main.h" @@ -37,6 +38,8 @@ #include "mirage_tower.h" #include "field_screen_effect.h" #include "data.h" +#include "vs_seeker.h" +#include "item.h" #include "constants/battle_frontier.h" #include "constants/battle_setup.h" #include "constants/game_stat.h" @@ -81,6 +84,8 @@ static void TryUpdateGymLeaderRematchFromTrainer(void); static void CB2_GiveStarter(void); static void CB2_StartFirstBattle(void); static void CB2_EndFirstBattle(void); +static void SaveChangesToPlayerParty(void); +static void HandleBattleVariantEndParty(void); static void CB2_EndTrainerBattle(void); static bool32 IsPlayerDefeated(u32 battleOutcome); static u16 GetRematchTrainerId(u16 trainerId); @@ -672,6 +677,19 @@ void StartRegiBattle(void) TryUpdateGymLeaderRematchFromWild(); } +static void DowngradeBadPoison(void) +{ + u8 i; + u32 status = STATUS1_POISON; + if (B_TOXIC_REVERSAL < GEN_5) + return; + for(i = 0; i < PARTY_SIZE; i++) + { + if (GetMonData(&gPlayerParty[i], MON_DATA_SANITY_HAS_SPECIES) && GetMonData(&gPlayerParty[i], MON_DATA_STATUS) == STATUS1_TOXIC_POISON) + SetMonData(&gPlayerParty[i], MON_DATA_STATUS, &status); + } +} + static void CB2_EndWildBattle(void) { CpuFill16(0, (void *)(BG_PLTT), BG_PLTT_SIZE); @@ -684,6 +702,7 @@ static void CB2_EndWildBattle(void) else { SetMainCallback2(CB2_ReturnToField); + DowngradeBadPoison(); gFieldCallback = FieldCB_ReturnToFieldNoScriptCheckMusic; } } @@ -702,6 +721,7 @@ static void CB2_EndScriptedWildBattle(void) } else { + DowngradeBadPoison(); SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); } } @@ -992,6 +1012,7 @@ static void CB2_StartFirstBattle(void) static void CB2_EndFirstBattle(void) { Overworld_ClearSavedMusic(); + DowngradeBadPoison(); SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); } @@ -1382,15 +1403,41 @@ void BattleSetup_StartTrainerBattle_Debug(void) ScriptContext_Stop(); } +static void SaveChangesToPlayerParty(void) +{ + u8 i = 0, j = 0; + u8 participatedPokemon = VarGet(B_VAR_SKY_BATTLE); + for (i = 0; i < PARTY_SIZE; i++) + { + if ((participatedPokemon >> i & 1) == 1) + { + gSaveBlock1Ptr->playerParty[i] = gPlayerParty[j]; + j++; + } + } +} + +static void HandleBattleVariantEndParty(void) +{ + if (B_FLAG_SKY_BATTLE == 0 || !FlagGet(B_FLAG_SKY_BATTLE)) + return; + SaveChangesToPlayerParty(); + LoadPlayerParty(); + FlagClear(B_FLAG_SKY_BATTLE); +} + static void CB2_EndTrainerBattle(void) { + HandleBattleVariantEndParty(); + if (gTrainerBattleOpponent_A == TRAINER_SECRET_BASE) { + DowngradeBadPoison(); SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); } else if (IsPlayerDefeated(gBattleOutcome) == TRUE) { - if (InBattlePyramid() || InTrainerHillChallenge()) + if (InBattlePyramid() || InTrainerHillChallenge() || (!NoAliveMonsForPlayer())) SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); else SetMainCallback2(CB2_WhiteOut); @@ -1398,6 +1445,7 @@ static void CB2_EndTrainerBattle(void) else { SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); + DowngradeBadPoison(); if (!InBattlePyramid() && !InTrainerHillChallenge()) { RegisterTrainerInMatchCall(); @@ -1410,6 +1458,7 @@ static void CB2_EndRematchBattle(void) { if (gTrainerBattleOpponent_A == TRAINER_SECRET_BASE) { + DowngradeBadPoison(); SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); } else if (IsPlayerDefeated(gBattleOutcome) == TRUE) @@ -1422,6 +1471,7 @@ static void CB2_EndRematchBattle(void) RegisterTrainerInMatchCall(); SetBattledTrainersFlags(); HandleRematchVarsOnBattleEnd(); + DowngradeBadPoison(); } } @@ -1601,7 +1651,7 @@ static const u8 *GetTrainerCantBattleSpeech(void) return ReturnEmptyStringIfNull(sTrainerCannotBattleSpeech); } -static s32 FirstBattleTrainerIdToRematchTableId(const struct RematchTrainer *table, u16 trainerId) +s32 FirstBattleTrainerIdToRematchTableId(const struct RematchTrainer *table, u16 trainerId) { s32 i; @@ -1614,7 +1664,7 @@ static s32 FirstBattleTrainerIdToRematchTableId(const struct RematchTrainer *tab return -1; } -static s32 TrainerIdToRematchTableId(const struct RematchTrainer *table, u16 trainerId) +s32 TrainerIdToRematchTableId(const struct RematchTrainer *table, u16 trainerId) { s32 i, j; @@ -1662,30 +1712,44 @@ static void SetRematchIdForTrainer(const struct RematchTrainer *table, u32 table #endif } +static bool32 DoesCurrentMapMatchRematchTrainerMap(s32 i, const struct RematchTrainer *table, u16 mapGroup, u16 mapNum) +{ + return table[i].mapGroup == mapGroup && table[i].mapNum == mapNum; +} + +bool32 TrainerIsMatchCallRegistered(s32 i) +{ + return FlagGet(FLAG_MATCH_CALL_REGISTERED + i); +} + static bool32 UpdateRandomTrainerRematches(const struct RematchTrainer *table, u16 mapGroup, u16 mapNum) { s32 i; bool32 ret = FALSE; #ifndef FREE_MATCH_CALL + if (CheckBagHasItem(ITEM_VS_SEEKER, 1) && I_VS_SEEKER_CHARGING != 0) + return FALSE; + for (i = 0; i <= REMATCH_SPECIAL_TRAINER_START; i++) { - if (table[i].mapGroup == mapGroup && table[i].mapNum == mapNum && !IsRematchForbidden(i)) + if (DoesCurrentMapMatchRematchTrainerMap(i,table,mapGroup,mapNum) && !IsRematchForbidden(i)) + continue; + + if (gSaveBlock1Ptr->trainerRematches[i] != 0) + { + // Trainer already wants a rematch. Don't bother updating it. + return TRUE; + } + else if (TrainerIsMatchCallRegistered(i) && ((Random() % 100) <= 30)) + // 31% chance of getting a rematch. { - if (gSaveBlock1Ptr->trainerRematches[i] != 0) - { - // Trainer already wants a rematch. Don't bother updating it. - ret = TRUE; - } - else if (FlagGet(FLAG_MATCH_CALL_REGISTERED + i) - && (Random() % 100) <= 30) // 31% chance of getting a rematch. - { - SetRematchIdForTrainer(table, i); - ret = TRUE; - } + SetRematchIdForTrainer(table, i); + return TRUE; } } #endif return ret; + } void UpdateRematchIfDefeated(s32 rematchTableId) @@ -1751,7 +1815,7 @@ static bool8 IsTrainerReadyForRematch_(const struct RematchTrainer *table, u16 t return TRUE; } -static u16 GetRematchTrainerIdFromTable(const struct RematchTrainer *table, u16 firstBattleTrainerId) +u16 GetRematchTrainerIdFromTable(const struct RematchTrainer *table, u16 firstBattleTrainerId) { const struct RematchTrainer *trainerEntry; s32 i; @@ -1859,7 +1923,9 @@ static bool32 HasAtLeastFiveBadges(void) void IncrementRematchStepCounter(void) { #ifndef FREE_MATCH_CALL - if (HasAtLeastFiveBadges()) + if (HasAtLeastFiveBadges() + && (I_VS_SEEKER_CHARGING != 0) + && (!CheckBagHasItem(ITEM_VS_SEEKER, 1))) { if (gSaveBlock1Ptr->trainerRematchStepCounter >= STEP_COUNTER_MAX) gSaveBlock1Ptr->trainerRematchStepCounter = STEP_COUNTER_MAX; @@ -1901,7 +1967,10 @@ bool32 IsRematchTrainerIn(u16 mapGroup, u16 mapNum) static u16 GetRematchTrainerId(u16 trainerId) { - return GetRematchTrainerIdFromTable(gRematchTable, trainerId); + if (FlagGet(I_VS_SEEKER_CHARGING) && (I_VS_SEEKER_CHARGING != 0)) + return GetRematchTrainerIdVSSeeker(trainerId); + else + return GetRematchTrainerIdFromTable(gRematchTable, trainerId); } u16 GetLastBeatenRematchTrainerId(u16 trainerId) @@ -1924,6 +1993,9 @@ bool8 IsTrainerReadyForRematch(void) static void HandleRematchVarsOnBattleEnd(void) { + if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER) && (I_VS_SEEKER_CHARGING != 0)) + ClearRematchMovementByTrainerId(); + ClearTrainerWantRematchState(gRematchTable, gTrainerBattleOpponent_A); SetBattledTrainersFlags(); } diff --git a/src/battle_tv.c b/src/battle_tv.c index 361b6fa2b9e3..af485df70d27 100644 --- a/src/battle_tv.c +++ b/src/battle_tv.c @@ -253,7 +253,7 @@ static const u16 sPoints_MoveEffect[NUM_BATTLE_MOVE_EFFECTS] = [EFFECT_MEMENTO] = 7, [EFFECT_FACADE] = 1, [EFFECT_FOCUS_PUNCH] = 7, - [EFFECT_SMELLINGSALT] = 1, + [EFFECT_SMELLING_SALTS] = 1, [EFFECT_FOLLOW_ME] = 5, [EFFECT_NATURE_POWER] = 0, [EFFECT_CHARGE] = 4, diff --git a/src/battle_util.c b/src/battle_util.c index afef74b0f80f..3b413cde5885 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -48,8 +48,6 @@ #include "constants/weather.h" #include "constants/pokemon.h" -extern struct Evolution gEvolutionTable[][EVOS_PER_MON]; - /* NOTE: The data and functions in this file up until (but not including) sSoundMovesTable are actually part of battle_main.c. They needed to be moved to this file in order to @@ -113,6 +111,7 @@ static const u16 sSkillSwapBannedAbilities[] = ABILITY_ICE_FACE, ABILITY_HUNGER_SWITCH, ABILITY_GULP_MISSILE, + ABILITY_ZERO_TO_HERO, }; static const u16 sRolePlayBannedAbilities[] = @@ -138,6 +137,7 @@ static const u16 sRolePlayBannedAbilities[] = ABILITY_ICE_FACE, ABILITY_HUNGER_SWITCH, ABILITY_GULP_MISSILE, + ABILITY_ZERO_TO_HERO, }; static const u16 sRolePlayBannedAttackerAbilities[] = @@ -154,6 +154,7 @@ static const u16 sRolePlayBannedAttackerAbilities[] = ABILITY_POWER_CONSTRUCT, ABILITY_ICE_FACE, ABILITY_GULP_MISSILE, + ABILITY_ZERO_TO_HERO, }; static const u16 sWorrySeedBannedAbilities[] = @@ -170,6 +171,7 @@ static const u16 sWorrySeedBannedAbilities[] = ABILITY_TRUANT, ABILITY_ICE_FACE, ABILITY_GULP_MISSILE, + ABILITY_ZERO_TO_HERO, }; static const u16 sGastroAcidBannedAbilities[] = @@ -188,6 +190,7 @@ static const u16 sGastroAcidBannedAbilities[] = ABILITY_SHIELDS_DOWN, ABILITY_STANCE_CHANGE, ABILITY_ZEN_MODE, + ABILITY_ZERO_TO_HERO, }; static const u16 sEntrainmentBannedAttackerAbilities[] = @@ -206,6 +209,7 @@ static const u16 sEntrainmentBannedAttackerAbilities[] = ABILITY_ICE_FACE, ABILITY_HUNGER_SWITCH, ABILITY_GULP_MISSILE, + ABILITY_ZERO_TO_HERO, }; static const u16 sEntrainmentTargetSimpleBeamBannedAbilities[] = @@ -221,6 +225,7 @@ static const u16 sEntrainmentTargetSimpleBeamBannedAbilities[] = ABILITY_BATTLE_BOND, ABILITY_ICE_FACE, ABILITY_GULP_MISSILE, + ABILITY_ZERO_TO_HERO, }; static u8 CalcBeatUpPower(void) @@ -322,8 +327,6 @@ void HandleAction_UseMove(void) gCurrentMove = gBattleStruct->zmove.toBeUsed[gBattlerAttacker]; } - moveTarget = GetBattlerMoveTargetType(gBattlerAttacker, gCurrentMove); - if (gBattleMons[gBattlerAttacker].hp != 0) { if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER) @@ -343,6 +346,8 @@ void HandleAction_UseMove(void) gBattleStruct->dynamax.activeSplit = gBattleStruct->dynamax.splits[gBattlerAttacker]; } + moveTarget = GetBattlerMoveTargetType(gBattlerAttacker, gCurrentMove); + // choose target side = BATTLE_OPPOSITE(GetBattlerSide(gBattlerAttacker)); if (IsAffectedByFollowMe(gBattlerAttacker, side, gCurrentMove) @@ -366,6 +371,7 @@ void HandleAction_UseMove(void) || (GetBattlerAbility(battler) == ABILITY_STORM_DRAIN && moveType == TYPE_WATER)) && GetBattlerTurnOrderNum(battler) < var && gBattleMoves[gCurrentMove].effect != EFFECT_SNIPE_SHOT + && gBattleMoves[gCurrentMove].effect != EFFECT_PLEDGE && (GetBattlerAbility(gBattlerAttacker) != ABILITY_PROPELLER_TAIL || GetBattlerAbility(gBattlerAttacker) != ABILITY_STALWART)) { @@ -556,7 +562,7 @@ void HandleAction_UseItem(void) gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber]; gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - ClearFuryCutterDestinyBondGrudge(gBattlerAttacker); + ClearVariousBattlerFlags(gBattlerAttacker); gLastUsedItem = gBattleResources->bufferB[gBattlerAttacker][1] | (gBattleResources->bufferB[gBattlerAttacker][2] << 8); gBattlescriptCurrInstr = gBattlescriptsForUsingItem[ItemId_GetBattleUsage(gLastUsedItem) - 1]; @@ -680,7 +686,7 @@ void HandleAction_Run(void) { if (!TryRunFromBattle(gBattlerAttacker)) // failed to run away { - ClearFuryCutterDestinyBondGrudge(gBattlerAttacker); + ClearVariousBattlerFlags(gBattlerAttacker); gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_CANT_ESCAPE_2; gBattlescriptCurrInstr = BattleScript_PrintFailedToRunString; gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT; @@ -858,7 +864,7 @@ void HandleAction_ActionFinished(void) gBattleResources->battleScriptsStack->size = 0; gBattleStruct->dynamax.usingMaxMove[gBattlerAttacker] = 0; - if (B_RECALC_TURN_AFTER_ACTIONS >= GEN_8 && !afterYouActive) + if (B_RECALC_TURN_AFTER_ACTIONS >= GEN_8 && !afterYouActive && !gBattleStruct->pledgeMove) { // i starts at `gCurrentTurnActionNumber` because we don't want to recalculate turn order for mon that have already // taken action. It's been previously increased, which we want in order to not recalculate the turn of the mon that just finished its action @@ -993,6 +999,7 @@ static const u8 sAbilitiesNotTraced[ABILITIES_COUNT] = [ABILITY_STANCE_CHANGE] = 1, [ABILITY_TRACE] = 1, [ABILITY_ZEN_MODE] = 1, + [ABILITY_ZERO_TO_HERO] = 1, }; static const u8 sHoldEffectToType[][2] = @@ -1124,39 +1131,41 @@ static const uq4_12_t sPercentToModifier[] = }; #define X UQ_4_12 +#define ______ X(1.0) // Regular effectiveness. static const uq4_12_t sTypeEffectivenessTable[NUMBER_OF_MON_TYPES][NUMBER_OF_MON_TYPES] = -{ -// normal fight flying poison ground rock bug ghost steel mystery fire water grass electric psychic ice dragon dark fairy - {X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(0.5), X(1.0), X(0.0), X(0.5), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0)}, // normal - {X(2.0), X(1.0), X(0.5), X(0.5), X(1.0), X(2.0), X(0.5), X(0.0), X(2.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(0.5), X(2.0), X(1.0), X(2.0), X(0.5)}, // fight - {X(1.0), X(2.0), X(1.0), X(1.0), X(1.0), X(0.5), X(2.0), X(1.0), X(0.5), X(1.0), X(1.0), X(1.0), X(2.0), X(0.5), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0)}, // flying - {X(1.0), X(1.0), X(1.0), X(0.5), X(0.5), X(0.5), X(1.0), X(0.5), X(0.0), X(1.0), X(1.0), X(1.0), X(2.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(2.0)}, // poison - {X(1.0), X(1.0), X(0.0), X(2.0), X(1.0), X(2.0), X(0.5), X(1.0), X(2.0), X(1.0), X(2.0), X(1.0), X(0.5), X(2.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0)}, // ground - {X(1.0), X(0.5), X(2.0), X(1.0), X(0.5), X(1.0), X(2.0), X(1.0), X(0.5), X(1.0), X(2.0), X(1.0), X(1.0), X(1.0), X(1.0), X(2.0), X(1.0), X(1.0), X(1.0)}, // rock - {X(1.0), X(0.5), X(0.5), X(0.5), X(1.0), X(1.0), X(1.0), X(0.5), X(0.5), X(1.0), X(0.5), X(1.0), X(2.0), X(1.0), X(2.0), X(1.0), X(1.0), X(2.0), X(0.5)}, // bug - #if B_STEEL_RESISTANCES >= GEN_6 - {X(0.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(2.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(2.0), X(1.0), X(1.0), X(0.5), X(1.0)}, // ghost - #else - {X(0.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(2.0), X(0.5), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(2.0), X(1.0), X(1.0), X(0.5), X(1.0)}, // ghost - #endif - {X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(2.0), X(1.0), X(1.0), X(0.5), X(1.0), X(0.5), X(0.5), X(1.0), X(0.5), X(1.0), X(2.0), X(1.0), X(1.0), X(2.0)}, // steel - {X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0)}, // mystery - {X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(0.5), X(2.0), X(1.0), X(2.0), X(1.0), X(0.5), X(0.5), X(2.0), X(1.0), X(1.0), X(2.0), X(0.5), X(1.0), X(1.0)}, // fire - {X(1.0), X(1.0), X(1.0), X(1.0), X(2.0), X(2.0), X(1.0), X(1.0), X(1.0), X(1.0), X(2.0), X(0.5), X(0.5), X(1.0), X(1.0), X(1.0), X(0.5), X(1.0), X(1.0)}, // water - {X(1.0), X(1.0), X(0.5), X(0.5), X(2.0), X(2.0), X(0.5), X(1.0), X(0.5), X(1.0), X(0.5), X(2.0), X(0.5), X(1.0), X(1.0), X(1.0), X(0.5), X(1.0), X(1.0)}, // grass - {X(1.0), X(1.0), X(2.0), X(1.0), X(0.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(2.0), X(0.5), X(0.5), X(1.0), X(1.0), X(0.5), X(1.0), X(1.0)}, // electric - {X(1.0), X(2.0), X(1.0), X(2.0), X(1.0), X(1.0), X(1.0), X(1.0), X(0.5), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(0.5), X(1.0), X(1.0), X(0.0), X(1.0)}, // psychic - {X(1.0), X(1.0), X(2.0), X(1.0), X(2.0), X(1.0), X(1.0), X(1.0), X(0.5), X(1.0), X(0.5), X(0.5), X(2.0), X(1.0), X(1.0), X(0.5), X(2.0), X(1.0), X(1.0)}, // ice - {X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(0.5), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(2.0), X(1.0), X(0.0)}, // dragon - #if B_STEEL_RESISTANCES >= GEN_6 - {X(1.0), X(0.5), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(2.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(2.0), X(1.0), X(1.0), X(0.5), X(0.5)}, // dark - #else - {X(1.0), X(0.5), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(2.0), X(0.5), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(2.0), X(1.0), X(1.0), X(0.5), X(0.5)}, // dark - #endif - {X(1.0), X(2.0), X(1.0), X(0.5), X(1.0), X(1.0), X(1.0), X(1.0), X(0.5), X(1.0), X(0.5), X(1.0), X(1.0), X(1.0), X(1.0), X(1.0), X(2.0), X(2.0), X(1.0)}, // fairy +{// Defender --> + // Attacker Normal Fighting Flying Poison Ground Rock Bug Ghost Steel Mystery Fire Water Grass Electric Psychic Ice Dragon Dark Fairy + [TYPE_NORMAL] = {______, ______, ______, ______, ______, X(0.5), ______, X(0.0), X(0.5), ______, ______, ______, ______, ______, ______, ______, ______, ______, ______}, + [TYPE_FIGHTING] = {X(2.0), ______, X(0.5), X(0.5), ______, X(2.0), X(0.5), X(0.0), X(2.0), ______, ______, ______, ______, ______, X(0.5), X(2.0), ______, X(2.0), X(0.5)}, + [TYPE_FLYING] = {______, X(2.0), ______, ______, ______, X(0.5), X(2.0), ______, X(0.5), ______, ______, ______, X(2.0), X(0.5), ______, ______, ______, ______, ______}, + [TYPE_POISON] = {______, ______, ______, X(0.5), X(0.5), X(0.5), ______, X(0.5), X(0.0), ______, ______, ______, X(2.0), ______, ______, ______, ______, ______, X(2.0)}, + [TYPE_GROUND] = {______, ______, X(0.0), X(2.0), ______, X(2.0), X(0.5), ______, X(2.0), ______, X(2.0), ______, X(0.5), X(2.0), ______, ______, ______, ______, ______}, + [TYPE_ROCK] = {______, X(0.5), X(2.0), ______, X(0.5), ______, X(2.0), ______, X(0.5), ______, X(2.0), ______, ______, ______, ______, X(2.0), ______, ______, ______}, + [TYPE_BUG] = {______, X(0.5), X(0.5), X(0.5), ______, ______, ______, X(0.5), X(0.5), ______, X(0.5), ______, X(2.0), ______, X(2.0), ______, ______, X(2.0), X(0.5)}, +#if B_STEEL_RESISTANCES >= GEN_6 + [TYPE_GHOST] = {X(0.0), ______, ______, ______, ______, ______, ______, X(2.0), ______, ______, ______, ______, ______, ______, X(2.0), ______, ______, X(0.5), ______}, +#else + [TYPE_GHOST] = {X(0.0), ______, ______, ______, ______, ______, ______, X(2.0), X(0.5), ______, ______, ______, ______, ______, X(2.0), ______, ______, X(0.5), ______}, +#endif + [TYPE_STEEL] = {______, ______, ______, ______, ______, X(2.0), ______, ______, X(0.5), ______, X(0.5), X(0.5), ______, X(0.5), ______, X(2.0), ______, ______, X(2.0)}, + [TYPE_MYSTERY] = {______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______}, + [TYPE_FIRE] = {______, ______, ______, ______, ______, X(0.5), X(2.0), ______, X(2.0), ______, X(0.5), X(0.5), X(2.0), ______, ______, X(2.0), X(0.5), ______, ______}, + [TYPE_WATER] = {______, ______, ______, ______, X(2.0), X(2.0), ______, ______, ______, ______, X(2.0), X(0.5), X(0.5), ______, ______, ______, X(0.5), ______, ______}, + [TYPE_GRASS] = {______, ______, X(0.5), X(0.5), X(2.0), X(2.0), X(0.5), ______, X(0.5), ______, X(0.5), X(2.0), X(0.5), ______, ______, ______, X(0.5), ______, ______}, + [TYPE_ELECTRIC] = {______, ______, X(2.0), ______, X(0.0), ______, ______, ______, ______, ______, ______, X(2.0), X(0.5), X(0.5), ______, ______, X(0.5), ______, ______}, + [TYPE_PSYCHIC] = {______, X(2.0), ______, X(2.0), ______, ______, ______, ______, X(0.5), ______, ______, ______, ______, ______, X(0.5), ______, ______, X(0.0), ______}, + [TYPE_ICE] = {______, ______, X(2.0), ______, X(2.0), ______, ______, ______, X(0.5), ______, X(0.5), X(0.5), X(2.0), ______, ______, X(0.5), X(2.0), ______, ______}, + [TYPE_DRAGON] = {______, ______, ______, ______, ______, ______, ______, ______, X(0.5), ______, ______, ______, ______, ______, ______, ______, X(2.0), ______, X(0.0)}, +#if B_STEEL_RESISTANCES >= GEN_6 + [TYPE_DARK] = {______, X(0.5), ______, ______, ______, ______, ______, X(2.0), ______, ______, ______, ______, ______, ______, X(2.0), ______, ______, X(0.5), X(0.5)}, +#else + [TYPE_DARK] = {______, X(0.5), ______, ______, ______, ______, ______, X(2.0), X(0.5), ______, ______, ______, ______, ______, X(2.0), ______, ______, X(0.5), X(0.5)}, +#endif + [TYPE_FAIRY] = {______, X(2.0), ______, X(0.5), ______, ______, ______, ______, X(0.5), ______, X(0.5), ______, ______, ______, ______, ______, X(2.0), X(2.0), ______}, }; +#undef ______ #undef X // code @@ -1333,6 +1342,7 @@ const u8* CancelMultiTurnMoves(u32 battler) gDisableStructs[battler].rolloutTimer = 0; gDisableStructs[battler].furyCutterCounter = 0; + return result; } @@ -1853,31 +1863,32 @@ u8 GetImprisonedMovesCount(u32 battler, u16 move) return imprisonedMoves; } -u32 GetBattlerFriendshipScore(u32 battler) +u32 GetBattlerAffectionHearts(u32 battler) { u8 side = GetBattlerSide(battler); struct Pokemon *party = GetSideParty(side); u16 species = GetMonData(&party[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES); if (side != B_SIDE_PLAYER) - return FRIENDSHIP_NONE; - else if (gSpeciesInfo[species].flags & SPECIES_FLAG_MEGA_EVOLUTION + return AFFECTION_NO_HEARTS; + else if (gSpeciesInfo[species].isMegaEvolution || (gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_SECRET_BASE))) - return FRIENDSHIP_NONE; + return AFFECTION_NO_HEARTS; - return GetMonFriendshipScore(&party[gBattlerPartyIndexes[battler]]); + return GetMonAffectionHearts(&party[gBattlerPartyIndexes[battler]]); } -static void TryToRevertMimicry(void) +static void TryToRevertMimicryAndFlags(void) { u32 i; for (i = 0; i < gBattlersCount; i++) { + gDisableStructs[i].terrainAbilityDone = FALSE; if (GetBattlerAbility(i) == ABILITY_MIMICRY) RESTORE_BATTLER_TYPE(i); } @@ -1915,6 +1926,9 @@ enum ENDTURN_RETALIATE, ENDTURN_WEATHER_FORM, ENDTURN_STATUS_HEAL, + ENDTURN_RAINBOW, + ENDTURN_SEA_OF_FIRE, + ENDTURN_SWAMP, ENDTURN_FIELD_COUNT, }; @@ -1927,7 +1941,7 @@ static bool32 EndTurnTerrain(u32 terrainFlag, u32 stringTableId) if (!(gFieldStatuses & STATUS_FIELD_TERRAIN_PERMANENT) && --gFieldTimers.terrainTimer == 0) { gFieldStatuses &= ~terrainFlag; - TryToRevertMimicry(); + TryToRevertMimicryAndFlags(); gBattleCommunication[MULTISTRING_CHOOSER] = stringTableId; BattleScriptExecute(BattleScript_TerrainEnds); return TRUE; @@ -2227,6 +2241,8 @@ u8 DoFieldEndTurnEffects(void) && --gWishFutureKnock.weatherDuration == 0) { gBattleWeather &= ~B_WEATHER_SUN_TEMPORARY; + for (i = 0; i < gBattlersCount; i++) + gDisableStructs[i].weatherAbilityDone = FALSE; gBattlescriptCurrInstr = BattleScript_SunlightFaded; } else @@ -2412,7 +2428,7 @@ u8 DoFieldEndTurnEffects(void) { if (B_AFFECTION_MECHANICS == TRUE && GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER - && GetBattlerFriendshipScore(gBattlerAttacker) >= FRIENDSHIP_150_TO_199 + && GetBattlerAffectionHearts(gBattlerAttacker) >= AFFECTION_FOUR_HEARTS && (Random() % 100 < 20)) { gBattleCommunication[MULTISTRING_CHOOSER] = 1; @@ -2422,6 +2438,95 @@ u8 DoFieldEndTurnEffects(void) } gBattleStruct->turnCountersTracker++; break; + case ENDTURN_RAINBOW: + while (gBattleStruct->turnSideTracker < 2) + { + side = gBattleStruct->turnSideTracker; + if (gSideStatuses[side] & SIDE_STATUS_RAINBOW) + { + for (gBattlerAttacker = 0; gBattlerAttacker < gBattlersCount; gBattlerAttacker++) + { + if (GetBattlerSide(gBattlerAttacker) == side) + break; + } + + if (gSideTimers[side].rainbowTimer > 0 && --gSideTimers[side].rainbowTimer == 0) + { + gSideStatuses[side] &= ~SIDE_STATUS_RAINBOW; + BattleScriptExecute(BattleScript_TheRainbowDisappeared); + effect++; + } + } + gBattleStruct->turnSideTracker++; + if (effect != 0) + break; + } + if (!effect) + { + gBattleStruct->turnCountersTracker++; + gBattleStruct->turnSideTracker = 0; + } + break; + case ENDTURN_SEA_OF_FIRE: + while (gBattleStruct->turnSideTracker < 2) + { + side = gBattleStruct->turnSideTracker; + + if (gSideStatuses[side] & SIDE_STATUS_SEA_OF_FIRE) + { + for (gBattlerAttacker = 0; gBattlerAttacker < gBattlersCount; gBattlerAttacker++) + { + if (GetBattlerSide(gBattlerAttacker) == side) + break; + } + + if (gSideTimers[side].seaOfFireTimer > 0 && --gSideTimers[side].seaOfFireTimer == 0) + { + gSideStatuses[side] &= ~SIDE_STATUS_SEA_OF_FIRE; + BattleScriptExecute(BattleScript_TheSeaOfFireDisappeared); + effect++; + } + } + gBattleStruct->turnSideTracker++; + if (effect != 0) + break; + } + if (!effect) + { + gBattleStruct->turnCountersTracker++; + gBattleStruct->turnSideTracker = 0; + } + break; + case ENDTURN_SWAMP: + while (gBattleStruct->turnSideTracker < 2) + { + side = gBattleStruct->turnSideTracker; + + if (gSideStatuses[side] & SIDE_STATUS_SWAMP) + { + for (gBattlerAttacker = 0; gBattlerAttacker < gBattlersCount; gBattlerAttacker++) + { + if (GetBattlerSide(gBattlerAttacker) == side) + break; + } + + if (gSideTimers[side].swampTimer > 0 && --gSideTimers[side].swampTimer == 0) + { + gSideStatuses[side] &= ~SIDE_STATUS_SWAMP; + BattleScriptExecute(BattleScript_TheSwampDisappeared); + effect++; + } + } + gBattleStruct->turnSideTracker++; + if (effect != 0) + break; + } + if (!effect) + { + gBattleStruct->turnCountersTracker++; + gBattleStruct->turnSideTracker = 0; + } + break; case ENDTURN_FIELD_COUNT: effect++; break; @@ -2467,12 +2572,12 @@ enum ENDTURN_POWDER, ENDTURN_THROAT_CHOP, ENDTURN_SLOW_START, - ENDTURN_PLASMA_FISTS, ENDTURN_CUD_CHEW, ENDTURN_TORMENT, // supposedly this goes after Taunt, before Encore, but Encore is first right now? ENDTURN_SALT_CURE, ENDTURN_SYRUP_BOMB, ENDTURN_DYNAMAX, + ENDTURN_SEA_OF_FIRE_DAMAGE, ENDTURN_BATTLER_COUNT }; @@ -2735,12 +2840,7 @@ u8 DoBattlerEndTurnEffects(void) break; case ENDTURN_OCTOLOCK: { - u16 battlerAbility = GetBattlerAbility(battler); - if (gDisableStructs[battler].octolock - && !(GetBattlerHoldEffect(battler, TRUE) == HOLD_EFFECT_CLEAR_AMULET - || battlerAbility == ABILITY_CLEAR_BODY - || battlerAbility == ABILITY_FULL_METAL_BODY - || battlerAbility == ABILITY_WHITE_SMOKE)) + if (gDisableStructs[battler].octolock) { gBattlerTarget = battler; BattleScriptExecute(BattleScript_OctolockEndTurn); @@ -3009,10 +3109,6 @@ u8 DoBattlerEndTurnEffects(void) } gBattleStruct->turnEffectsTracker++; break; - case ENDTURN_PLASMA_FISTS: - gStatuses4[battler] &= ~STATUS4_PLASMA_FISTS; - gBattleStruct->turnEffectsTracker++; - break; case ENDTURN_CUD_CHEW: if (GetBattlerAbility(battler) == ABILITY_CUD_CHEW && !gDisableStructs[battler].cudChew && ItemId_GetPocket(GetUsedHeldItem(battler)) == POCKET_BERRIES) gDisableStructs[battler].cudChew = TRUE; @@ -3037,19 +3133,11 @@ u8 DoBattlerEndTurnEffects(void) case ENDTURN_SYRUP_BOMB: if ((gStatuses4[battler] & STATUS4_SYRUP_BOMB) && (gBattleMons[battler].hp != 0)) { - gDisableStructs[battler].syrupBombTimer--; - if (gDisableStructs[battler].syrupBombTimer == 0) - { + if (gDisableStructs[battler].syrupBombTimer > 0 && --gDisableStructs[battler].syrupBombTimer == 0) gStatuses4[battler] &= ~STATUS4_SYRUP_BOMB; - PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_SYRUP_BOMB); - gBattlescriptCurrInstr = BattleScript_WrapEnds; - } - else if (gDisableStructs[battler].syrupBombTimer != 0) - { - gBattlerTarget = battler; - PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_SYRUP_BOMB); - gBattlescriptCurrInstr = BattleScript_SyrupBombEndTurn; - } + gBattlerTarget = battler; + PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_SYRUP_BOMB); + gBattlescriptCurrInstr = BattleScript_SyrupBombEndTurn; BattleScriptExecute(gBattlescriptCurrInstr); effect++; } @@ -3076,6 +3164,17 @@ u8 DoBattlerEndTurnEffects(void) } gBattleStruct->turnEffectsTracker++; break; + case ENDTURN_SEA_OF_FIRE_DAMAGE: + if (gSideStatuses[GetBattlerSide(battler)] & SIDE_STATUS_SEA_OF_FIRE) + { + gBattleMoveDamage = gBattleMons[battler].maxHP / 8; + BtlController_EmitStatusAnimation(battler, BUFFER_A, FALSE, STATUS1_BURN); + MarkBattlerForControllerExec(battler); + BattleScriptExecute(BattleScript_HurtByTheSeaOfFire); + effect++; + } + gBattleStruct->turnEffectsTracker++; + break; case ENDTURN_BATTLER_COUNT: // done gBattleStruct->turnEffectsTracker = 0; gBattleStruct->turnEffectsBattlerId++; @@ -3326,6 +3425,7 @@ u8 AtkCanceller_UnableToUseMove(u32 moveType) case CANCELLER_FLAGS: // flags clear gBattleMons[gBattlerAttacker].status2 &= ~STATUS2_DESTINY_BOND; gStatuses3[gBattlerAttacker] &= ~STATUS3_GRUDGE; + gStatuses4[gBattlerAttacker] &= ~ STATUS4_GLAIVE_RUSH; gBattleScripting.tripleKickPower = 0; gBattleStruct->atkCancellerTracker++; break; @@ -3772,6 +3872,8 @@ u8 AtkCanceller_UnableToUseMove2(void) if (gFieldStatuses & STATUS_FIELD_PSYCHIC_TERRAIN && IsBattlerGrounded(gBattlerTarget) && GetChosenMovePriority(gBattlerAttacker) > 0 + && gBattleMoves[gCurrentMove].target != MOVE_TARGET_ALL_BATTLERS + && gBattleMoves[gCurrentMove].target != MOVE_TARGET_OPPONENTS_FIELD && GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget)) { CancelMultiTurnMoves(gBattlerAttacker); @@ -3991,10 +4093,11 @@ bool32 TryChangeBattleWeather(u32 battler, u32 weatherEnumId, bool32 viaAbility) static bool32 TryChangeBattleTerrain(u32 battler, u32 statusFlag, u8 *timer) { - if (!(gFieldStatuses & statusFlag)) + if ((!(gFieldStatuses & statusFlag) && (!gBattleStruct->isSkyBattle))) { gFieldStatuses &= ~(STATUS_FIELD_MISTY_TERRAIN | STATUS_FIELD_GRASSY_TERRAIN | STATUS_FIELD_ELECTRIC_TERRAIN | STATUS_FIELD_PSYCHIC_TERRAIN); gFieldStatuses |= statusFlag; + gDisableStructs[battler].terrainAbilityDone = FALSE; if (GetBattlerHoldEffect(battler, TRUE) == HOLD_EFFECT_TERRAIN_EXTENDER) *timer = 8; @@ -4107,11 +4210,20 @@ static uq4_12_t GetSupremeOverlordModifier(u32 battler) return modifier; } +static bool32 HadMoreThanHalfHpNowHasLess(u32 battler) +{ + // Had more than half of hp before, now has less + return (gBattleStruct->hpBefore[battler] >= gBattleMons[battler].maxHP / 2 + && gBattleMons[battler].hp < gBattleMons[battler].maxHP / 2); +} + u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 moveArg) { u32 effect = 0; u32 moveType, move; + u32 side; u32 i, j; + struct Pokemon *mon; if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) return 0; @@ -4698,6 +4810,20 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 effect++; } break; + case ABILITY_ZERO_TO_HERO: + side = GetBattlerSide(battler); + mon = &GetSideParty(side)[gBattlerPartyIndexes[battler]]; + + if (!gSpecialStatuses[battler].switchInAbilityDone + && GetMonData(mon, MON_DATA_SPECIES) == SPECIES_PALAFIN_HERO + && !gBattleStruct->transformZeroToHero[gBattlerPartyIndexes[battler]][side]) + { + gSpecialStatuses[battler].switchInAbilityDone = TRUE; + gBattleStruct->transformZeroToHero[gBattlerPartyIndexes[battler]][side] = TRUE; + BattleScriptPushCursorAndCallback(BattleScript_ZeroToHeroActivates); + effect++; + } + break; } break; case ABILITYEFFECT_ENDTURN: // 1 @@ -5055,6 +5181,9 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 PREPARE_STAT_BUFFER(gBattleTextBuff1, statId); } } + + if (effect) + gMultiHitCounter = 0; // Prevent multi-hit moves from hitting more than once after move has been absorbed. } break; case ABILITYEFFECT_MOVE_END: // Think contact abilities. @@ -5119,9 +5248,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && TARGET_TURN_DAMAGED && IsBattlerAlive(battler) - // Had more than half of hp before, now has less - && gBattleStruct->hpBefore[battler] >= gBattleMons[battler].maxHP / 2 - && gBattleMons[battler].hp < gBattleMons[battler].maxHP / 2 + && HadMoreThanHalfHpNowHasLess(battler) && (gMultiHitCounter == 0 || gMultiHitCounter == 1) && !(TestSheerForceFlag(gBattlerAttacker, gCurrentMove)) && CompareStat(battler, STAT_SPATK, MAX_STAT_STAGE, CMP_LESS_THAN)) @@ -5158,8 +5285,8 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 && TARGET_TURN_DAMAGED && IsBattlerAlive(battler) && IS_MOVE_PHYSICAL(gCurrentMove) - && (CompareStat(battler, STAT_SPEED, MAX_STAT_STAGE, CMP_LESS_THAN) // Don't activate if speed cannot be raised - || CompareStat(battler, STAT_DEF, MIN_STAT_STAGE, CMP_GREATER_THAN))) // Don't activate if defense cannot be lowered + && (CompareStat(battler, STAT_SPEED, MAX_STAT_STAGE, CMP_LESS_THAN) // Don't activate if both Speed and Defense cannot be raised. + || CompareStat(battler, STAT_DEF, MIN_STAT_STAGE, CMP_GREATER_THAN))) { if (gBattleMoves[gCurrentMove].effect == EFFECT_HIT_ESCAPE && CanBattlerSwitch(gBattlerAttacker)) gProtectStructs[battler].disableEjectPack = TRUE; // Set flag for target @@ -5245,6 +5372,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 case ABILITY_STANCE_CHANGE: case ABILITY_WONDER_GUARD: case ABILITY_ZEN_MODE: + case ABILITY_ZERO_TO_HERO: break; default: if (GetBattlerHoldEffect(gBattlerAttacker, TRUE) == HOLD_EFFECT_ABILITY_SHIELD) @@ -5598,8 +5726,9 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && !gProtectStructs[gBattlerAttacker].confusionSelfDmg && TARGET_TURN_DAMAGED + && (gMultiHitCounter == 0 || gMultiHitCounter == 1) // Activates after all hits from a multi-hit move. && IsBattlerAlive(gBattlerTarget) - && (gBattleMons[gBattlerTarget].hp <= gBattleMons[gBattlerTarget].maxHP / 2) + && HadMoreThanHalfHpNowHasLess(gBattlerTarget) && !(TestSheerForceFlag(gBattlerAttacker, gCurrentMove))) { gBattlerAttacker = gBattlerTarget; @@ -5625,6 +5754,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 break; case ABILITY_TOXIC_DEBRIS: if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + && (!gBattleStruct->isSkyBattle) && !gProtectStructs[gBattlerAttacker].confusionSelfDmg && IS_MOVE_PHYSICAL(gCurrentMove) && TARGET_TURN_DAMAGED @@ -5885,7 +6015,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 { if (!sAbilitiesNotTraced[gBattleMons[target1].ability] && gBattleMons[target1].hp != 0 && !sAbilitiesNotTraced[gBattleMons[target2].ability] && gBattleMons[target2].hp != 0) - chosenTarget = GetBattlerAtPosition(((Random() & 1) * 2) | side), effect++; + chosenTarget = GetBattlerAtPosition((RandomPercentage(RNG_TRACE, 50) * 2) | side), effect++; else if (!sAbilitiesNotTraced[gBattleMons[target1].ability] && gBattleMons[target1].hp != 0) chosenTarget = target1, effect++; else if (!sAbilitiesNotTraced[gBattleMons[target2].ability] && gBattleMons[target2].hp != 0) @@ -5899,15 +6029,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 if (effect != 0) { - if (caseID == ABILITYEFFECT_TRACE1) - { - BattleScriptPushCursorAndCallback(BattleScript_TraceActivatesEnd3); - } - else - { - BattleScriptPushCursor(); - gBattlescriptCurrInstr = BattleScript_TraceActivates; - } + BattleScriptPushCursorAndCallback(BattleScript_TraceActivatesEnd3); gBattleResources->flags->flags[i] &= ~RESOURCE_FLAG_TRACED; gBattleStruct->tracedAbility[i] = gLastUsedAbility = gBattleMons[chosenTarget].ability; RecordAbilityBattle(chosenTarget, gLastUsedAbility); // Record the opposing battler has this ability @@ -5995,10 +6117,11 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 } break; case ABILITY_PROTOSYNTHESIS: - if (!gSpecialStatuses[battler].weatherAbilityDone && IsBattlerWeatherAffected(battler, B_WEATHER_SUN)) + if (!gDisableStructs[battler].weatherAbilityDone && IsBattlerWeatherAffected(battler, B_WEATHER_SUN)) { - gSpecialStatuses[battler].weatherAbilityDone = TRUE; + gDisableStructs[battler].weatherAbilityDone = TRUE; PREPARE_STAT_BUFFER(gBattleTextBuff1, GetHighestStatId(battler)); + gBattlerAbility = gBattleScripting.battler = battler; BattleScriptPushCursorAndCallback(BattleScript_ProtosynthesisActivates); effect++; } @@ -6010,9 +6133,9 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 switch (gLastUsedAbility) { case ABILITY_MIMICRY: - if (!gSpecialStatuses[battler].terrainAbilityDone && ChangeTypeBasedOnTerrain(battler)) + if (!gDisableStructs[battler].terrainAbilityDone && ChangeTypeBasedOnTerrain(battler)) { - gSpecialStatuses[battler].terrainAbilityDone = TRUE; + gDisableStructs[battler].terrainAbilityDone = TRUE; ChangeTypeBasedOnTerrain(battler); gBattlerAbility = gBattleScripting.battler = battler; BattleScriptPushCursorAndCallback(BattleScript_MimicryActivates_End3); @@ -6020,11 +6143,11 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 } break; case ABILITY_QUARK_DRIVE: - if (!gSpecialStatuses[battler].terrainAbilityDone && IsBattlerTerrainAffected(battler, STATUS_FIELD_ELECTRIC_TERRAIN)) + if (!gDisableStructs[battler].terrainAbilityDone && IsBattlerTerrainAffected(battler, STATUS_FIELD_ELECTRIC_TERRAIN)) { - gSpecialStatuses[battler].terrainAbilityDone = TRUE; - gBattlerAbility = gBattleScripting.battler = battler; + gDisableStructs[battler].terrainAbilityDone = TRUE; PREPARE_STAT_BUFFER(gBattleTextBuff1, GetHighestStatId(battler)); + gBattlerAbility = gBattleScripting.battler = battler; BattleScriptPushCursorAndCallback(BattleScript_QuarkDriveActivates); effect++; } @@ -6033,7 +6156,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 break; } - if (effect && gLastUsedAbility != 0xFF) + if (effect && gLastUsedAbility != 0xFFFF) RecordAbilityBattle(battler, gLastUsedAbility); if (effect && caseID <= ABILITYEFFECT_MOVE_END) gBattlerAbility = battler; @@ -6079,6 +6202,7 @@ bool32 IsNeutralizingGasBannedAbility(u32 ability) case ABILITY_ICE_FACE: case ABILITY_AS_ONE_ICE_RIDER: case ABILITY_AS_ONE_SHADOW_RIDER: + case ABILITY_ZERO_TO_HERO: return TRUE; default: return FALSE; @@ -6186,7 +6310,7 @@ u32 IsAbilityPreventingEscape(u32 battler) if (B_GHOSTS_ESCAPE >= GEN_6 && IS_BATTLER_OF_TYPE(battler, TYPE_GHOST)) return 0; if ((id = IsAbilityOnOpposingSide(battler, ABILITY_SHADOW_TAG)) - && (B_SHADOW_TAG_ESCAPE < GEN_4 && GetBattlerAbility(battler) != ABILITY_SHADOW_TAG)) + && (B_SHADOW_TAG_ESCAPE >= GEN_4 && GetBattlerAbility(battler) != ABILITY_SHADOW_TAG)) return id; if ((id = IsAbilityOnOpposingSide(battler, ABILITY_ARENA_TRAP)) && IsBattlerGrounded(battler)) return id; @@ -7587,6 +7711,8 @@ u8 ItemBattleEffects(u8 caseID, u32 battler, bool32 moveTurn) u16 ability = GetBattlerAbility(gBattlerAttacker); if (B_SERENE_GRACE_BOOST >= GEN_5 && ability == ABILITY_SERENE_GRACE) atkHoldEffectParam *= 2; + if (gSideStatuses[GetBattlerSide(battler)] & SIDE_STATUS_RAINBOW && gCurrentMove != MOVE_SECRET_POWER) + atkHoldEffectParam *= 2; if (gBattleMoveDamage != 0 // Need to have done damage && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && TARGET_TURN_DAMAGED @@ -7878,11 +8004,12 @@ u8 ItemBattleEffects(u8 caseID, u32 battler, bool32 moveTurn) return effect; } -void ClearFuryCutterDestinyBondGrudge(u32 battler) +void ClearVariousBattlerFlags(u32 battler) { gDisableStructs[battler].furyCutterCounter = 0; gBattleMons[battler].status2 &= ~STATUS2_DESTINY_BOND; gStatuses3[battler] &= ~STATUS3_GRUDGE; + gStatuses4[battler] &= ~ STATUS4_GLAIVE_RUSH; } void HandleAction_RunBattleScript(void) // identical to RunBattleScriptCommands @@ -8019,17 +8146,25 @@ u8 IsMonDisobedient(void) return 0; if (B_OBEDIENCE_MECHANICS < GEN_8 && !IsOtherTrainer(gBattleMons[gBattlerAttacker].otId, gBattleMons[gBattlerAttacker].otName)) return 0; - if (FlagGet(FLAG_BADGE08_GET)) + if (FlagGet(FLAG_BADGE08_GET)) // Rain Badge, ignore obedience altogether return 0; obedienceLevel = 10; - if (FlagGet(FLAG_BADGE02_GET)) + if (FlagGet(FLAG_BADGE01_GET)) // Stone Badge + obedienceLevel = 20; + if (FlagGet(FLAG_BADGE02_GET)) // Knuckle Badge obedienceLevel = 30; - if (FlagGet(FLAG_BADGE04_GET)) + if (FlagGet(FLAG_BADGE03_GET)) // Dynamo Badge + obedienceLevel = 40; + if (FlagGet(FLAG_BADGE04_GET)) // Heat Badge obedienceLevel = 50; - if (FlagGet(FLAG_BADGE06_GET)) + if (FlagGet(FLAG_BADGE05_GET)) // Balance Badge + obedienceLevel = 60; + if (FlagGet(FLAG_BADGE06_GET)) // Feather Badge obedienceLevel = 70; + if (FlagGet(FLAG_BADGE07_GET)) // Mind Badge + obedienceLevel = 80; } if (B_OBEDIENCE_MECHANICS >= GEN_8 @@ -8193,10 +8328,10 @@ bool32 IsBattlerProtected(u32 battler, u32 move) // Z-Moves and Max Moves bypass protection (except Max Guard). if ((IsMaxMove(move) || gBattleStruct->zmove.active) - && (!gProtectStructs[battler].maxGuarded + && (!gProtectStructs[battler].maxGuarded || gBattleMoves[move].argument == MAX_EFFECT_BYPASS_PROTECT)) return FALSE; - + // Max Guard is silly about the moves it blocks, including Teatime. if (gProtectStructs[battler].maxGuarded && IsMoveBlockedByMaxGuard(move)) return TRUE; @@ -8295,7 +8430,7 @@ u32 GetMoveSlot(u16 *moves, u32 move) u32 GetBattlerWeight(u32 battler) { u32 i; - u32 weight = GetPokedexHeightWeight(SpeciesToNationalPokedexNum(gBattleMons[battler].species), 1); + u32 weight = GetSpeciesWeight(gBattleMons[battler].species); u32 ability = GetBattlerAbility(battler); u32 holdEffect = GetBattlerHoldEffect(battler, TRUE); @@ -8493,7 +8628,8 @@ static inline u32 CalcMoveBasePower(u32 move, u32 battlerAtk, u32 battlerDef, u3 switch (gBattleMoves[move].effect) { case EFFECT_PLEDGE: - // todo + if (gBattleStruct->pledgeMove) + basePower = 150; break; case EFFECT_FLING: basePower = GetFlingPowerFromItemId(gBattleMons[battlerAtk].item); @@ -8559,7 +8695,7 @@ static inline u32 CalcMoveBasePower(u32 move, u32 battlerAtk, u32 battlerDef, u3 if (gBattleMons[battlerDef].status1 & STATUS1_SLEEP || abilityDef == ABILITY_COMATOSE) basePower *= 2; break; - case EFFECT_SMELLINGSALT: + case EFFECT_SMELLING_SALTS: if (gBattleMons[battlerDef].status1 & STATUS1_PARALYSIS) basePower *= 2; break; @@ -9289,11 +9425,17 @@ static inline u32 CalcAttackStat(u32 move, u32 battlerAtk, u32 battlerDef, u32 m static bool32 CanEvolve(u32 species) { u32 i; + const struct Evolution *evolutions = GetSpeciesEvolutions(species); - for (i = 0; i < EVOS_PER_MON; i++) + if (evolutions != NULL) { - if (gEvolutionTable[species][i].method) - return TRUE; + for (i = 0; evolutions[i].method != EVOLUTIONS_END; i++) + { + if (evolutions[i].method + && SanitizeSpeciesId(evolutions[i].targetSpecies) != SPECIES_NONE) + return TRUE; + } + } return FALSE; } @@ -9472,7 +9614,9 @@ static inline uq4_12_t GetParentalBondModifier(u32 battlerAtk) static inline uq4_12_t GetSameTypeAttackBonusModifier(u32 battlerAtk, u32 moveType, u32 move, u32 abilityAtk) { - if (!IS_BATTLER_OF_TYPE(battlerAtk, moveType) || move == MOVE_STRUGGLE || move == MOVE_NONE) + if (gBattleStruct->pledgeMove && IS_BATTLER_OF_TYPE(BATTLE_PARTNER(battlerAtk), moveType)) + return (abilityAtk == ABILITY_ADAPTABILITY) ? UQ_4_12(2.0) : UQ_4_12(1.5); + else if (!IS_BATTLER_OF_TYPE(battlerAtk, moveType) || move == MOVE_STRUGGLE || move == MOVE_NONE) return UQ_4_12(1.0); return (abilityAtk == ABILITY_ADAPTABILITY) ? UQ_4_12(2.0) : UQ_4_12(1.5); } @@ -9524,6 +9668,13 @@ static inline uq4_12_t GetCriticalModifier(bool32 isCrit) return UQ_4_12(1.0); } +static inline uq4_12_t GetGlaiveRushModifier(u32 battlerDef) +{ + if (gStatuses4[battlerDef] & STATUS4_GLAIVE_RUSH) + return UQ_4_12(2.0); + return UQ_4_12(1.0); +} + static inline uq4_12_t GetZMaxMoveAgainstProtectionModifier(u32 battlerDef, u32 move) { if ((gBattleStruct->zmove.active || IsMaxMove(move)) && IS_BATTLER_PROTECTED(battlerDef)) @@ -9759,7 +9910,8 @@ static inline s32 DoMoveDamageCalcVars(u32 move, u32 battlerAtk, u32 battlerDef, DAMAGE_APPLY_MODIFIER(GetParentalBondModifier(battlerAtk)); DAMAGE_APPLY_MODIFIER(GetWeatherDamageModifier(battlerAtk, move, moveType, holdEffectAtk, holdEffectDef, weather)); DAMAGE_APPLY_MODIFIER(GetCriticalModifier(isCrit)); - // TODO: Glaive Rush (Gen IX effect) + DAMAGE_APPLY_MODIFIER(GetGlaiveRushModifier(battlerDef)); + if (randomFactor) { dmg *= 100 - RandomUniform(RNG_DAMAGE_MODIFIER, 0, 15); @@ -10087,7 +10239,7 @@ bool32 IsPartnerMonFromSameTrainer(u32 battler) bool32 DoesSpeciesUseHoldItemToChangeForm(u16 species, u16 heldItemId) { u32 i; - const struct FormChange *formChanges = gFormChangeTablePointers[species]; + const struct FormChange *formChanges = GetSpeciesFormChanges(species); if (formChanges != NULL) { @@ -10230,7 +10382,7 @@ bool32 IsBattlerMegaEvolved(u32 battler) // While Transform does copy stats and visuals, it shouldn't be counted as true Mega Evolution. if (gBattleMons[battler].status2 & STATUS2_TRANSFORMED) return FALSE; - return (gSpeciesInfo[gBattleMons[battler].species].flags & SPECIES_FLAG_MEGA_EVOLUTION); + return (gSpeciesInfo[gBattleMons[battler].species].isMegaEvolution); } bool32 IsBattlerPrimalReverted(u32 battler) @@ -10238,7 +10390,7 @@ bool32 IsBattlerPrimalReverted(u32 battler) // While Transform does copy stats and visuals, it shouldn't be counted as true Primal Revesion. if (gBattleMons[battler].status2 & STATUS2_TRANSFORMED) return FALSE; - return (gSpeciesInfo[gBattleMons[battler].species].flags & SPECIES_FLAG_PRIMAL_REVERSION); + return (gSpeciesInfo[gBattleMons[battler].species].isPrimalRevesion); } bool32 IsBattlerUltraBursted(u32 battler) @@ -10246,7 +10398,7 @@ bool32 IsBattlerUltraBursted(u32 battler) // While Transform does copy stats and visuals, it shouldn't be counted as true Ultra Burst. if (gBattleMons[battler].status2 & STATUS2_TRANSFORMED) return FALSE; - return (gSpeciesInfo[gBattleMons[battler].species].flags & SPECIES_FLAG_ULTRA_BURST); + return (gSpeciesInfo[gBattleMons[battler].species].isUltraBurst); } // Returns SPECIES_NONE if no form change is possible @@ -10255,7 +10407,7 @@ u16 GetBattleFormChangeTargetSpecies(u32 battler, u16 method) u32 i; u16 targetSpecies = SPECIES_NONE; u16 species = gBattleMons[battler].species; - const struct FormChange *formChanges = gFormChangeTablePointers[species]; + const struct FormChange *formChanges = GetSpeciesFormChanges(species); u16 heldItem; if (formChanges != NULL) @@ -11082,9 +11234,17 @@ bool32 AreBattlersOfSameGender(u32 battler1, u32 battler2) return (gender1 != MON_GENDERLESS && gender2 != MON_GENDERLESS && gender1 == gender2); } -u32 CalcSecondaryEffectChance(u32 battler, u8 secondaryEffectChance) +u32 CalcSecondaryEffectChance(u32 battler, u8 secondaryEffectChance, u16 moveEffect) { - if (GetBattlerAbility(battler) == ABILITY_SERENE_GRACE) + bool8 hasSereneGrace = (GetBattlerAbility(battler) == ABILITY_SERENE_GRACE); + bool8 hasRainbow = (gSideStatuses[GetBattlerSide(battler)] & SIDE_STATUS_RAINBOW) != 0; + + if (hasRainbow && hasSereneGrace && moveEffect == EFFECT_FLINCH_HIT) + return secondaryEffectChance *= 2; + + if (hasSereneGrace) + secondaryEffectChance *= 2; + if (hasRainbow && moveEffect != EFFECT_SECRET_POWER) secondaryEffectChance *= 2; return secondaryEffectChance; @@ -11104,6 +11264,56 @@ bool32 IsGen6ExpShareEnabled(void) #endif } +bool8 CanMonParticipateInSkyBattle(struct Pokemon *mon) +{ + u16 species = GetMonData(mon, MON_DATA_SPECIES); + u16 monAbilityNum = GetMonData(mon, MON_DATA_ABILITY_NUM, NULL); + + bool8 hasLevitateAbility = gSpeciesInfo[species].abilities[monAbilityNum] == ABILITY_LEVITATE; + bool8 isFlyingType = gSpeciesInfo[species].types[0] == TYPE_FLYING || gSpeciesInfo[species].types[1] == TYPE_FLYING; + bool8 monIsValidAndNotEgg = GetMonData(mon, MON_DATA_SANITY_HAS_SPECIES) && !GetMonData(mon, MON_DATA_IS_EGG); + + if (monIsValidAndNotEgg) + { + if ((hasLevitateAbility || isFlyingType) && !IsMonBannedFromSkyBattles(species)) + return TRUE; + } + return FALSE; +} + +bool8 IsMonBannedFromSkyBattles(u16 species) +{ + switch (species) + { +#if B_SKY_BATTLE_STRICT_ELIGIBILITY == TRUE + case SPECIES_SPEAROW: + case SPECIES_FARFETCHD: + case SPECIES_DODUO: + case SPECIES_DODRIO: + case SPECIES_HOOTHOOT: + case SPECIES_NATU: + case SPECIES_MURKROW: + case SPECIES_DELIBIRD: + case SPECIES_TAILLOW: + case SPECIES_STARLY: + case SPECIES_CHATOT: + case SPECIES_SHAYMIN: + case SPECIES_PIDOVE: + case SPECIES_ARCHEN: + case SPECIES_DUCKLETT: + case SPECIES_RUFFLET: + case SPECIES_VULLABY: + case SPECIES_FLETCHLING: + case SPECIES_HAWLUCHA: + case SPECIES_ROWLET: + case SPECIES_PIKIPEK: +#endif + case SPECIES_EGG: + return TRUE; + default: + return FALSE; + } +} u8 GetBattlerType(u32 battler, u8 typeIndex) { @@ -11126,4 +11336,3 @@ u8 GetBattlerType(u32 battler, u8 typeIndex) return types[typeIndex]; } - diff --git a/src/battle_util2.c b/src/battle_util2.c index 8dda3004c057..2c333978d240 100644 --- a/src/battle_util2.c +++ b/src/battle_util2.c @@ -19,6 +19,10 @@ void AllocateBattleResources(void) gBattleStruct = AllocZeroed(sizeof(*gBattleStruct)); +#if B_FLAG_SKY_BATTLE + gBattleStruct->isSkyBattle = FlagGet(B_FLAG_SKY_BATTLE); +#endif + gBattleResources = AllocZeroed(sizeof(*gBattleResources)); gBattleResources->secretBase = AllocZeroed(sizeof(*gBattleResources->secretBase)); gBattleResources->flags = AllocZeroed(sizeof(*gBattleResources->flags)); diff --git a/src/clock.c b/src/clock.c index 76297b4f4c6f..825ccc4448bb 100644 --- a/src/clock.c +++ b/src/clock.c @@ -11,9 +11,11 @@ #include "main.h" #include "overworld.h" #include "wallclock.h" +#include "constants/form_change_types.h" static void UpdatePerDay(struct Time *localTime); static void UpdatePerMinute(struct Time *localTime); +static void FormChangeTimeUpdate(); void InitTimeBasedEvents(void) { @@ -69,6 +71,23 @@ static void UpdatePerMinute(struct Time *localTime) { BerryTreeTimeUpdate(minutes); gSaveBlock2Ptr->lastBerryTreeUpdate = *localTime; + FormChangeTimeUpdate(); + } + } +} + +static void FormChangeTimeUpdate() +{ + s32 i; + for (i = 0; i < PARTY_SIZE; i++) + { + struct Pokemon *mon = &gPlayerParty[i]; + u16 targetSpecies = GetFormChangeTargetSpecies(mon, FORM_CHANGE_TIME_OF_DAY, 0); + + if (targetSpecies != SPECIES_NONE) + { + SetMonData(mon, MON_DATA_SPECIES, &targetSpecies); + CalculateMonStats(mon); } } } diff --git a/src/contest_util.c b/src/contest_util.c index 6a62372f4761..4664e641396b 100644 --- a/src/contest_util.c +++ b/src/contest_util.c @@ -881,7 +881,6 @@ static void Task_ShowWinnerMonBanner(u8 taskId) u16 species; u32 otId; u32 personality; - const struct CompressedSpritePalette *pokePal; switch (gTasks[taskId].tState) { @@ -898,10 +897,9 @@ static void Task_ShowWinnerMonBanner(u8 taskId) species, personality); - pokePal = GetMonSpritePalStructFromOtIdPersonality(species, otId, personality); - LoadCompressedSpritePalette(pokePal); + LoadCompressedSpritePaletteWithTag(GetMonSpritePalFromSpeciesAndPersonality(species, otId, personality), species); SetMultiuseSpriteTemplateToPokemon(species, B_POSITION_OPPONENT_LEFT); - gMultiuseSpriteTemplate.paletteTag = pokePal->tag; + gMultiuseSpriteTemplate.paletteTag = species; spriteId = CreateSprite(&gMultiuseSpriteTemplate, DISPLAY_WIDTH + 32, DISPLAY_HEIGHT / 2, 10); gSprites[spriteId].data[1] = species; gSprites[spriteId].oam.priority = 0; @@ -1127,7 +1125,7 @@ static void LoadAllContestMonIconPalettes(void) for (i = 0; i < CONTESTANT_COUNT; i++) { species = gContestMons[i].species; - LoadPalette(gMonIconPalettes[gMonIconPaletteIndices[GetIconSpecies(species, 0)]], BG_PLTT_ID(10 + i), PLTT_SIZE_4BPP); + LoadPalette(gMonIconPalettes[gSpeciesInfo[GetIconSpecies(species, 0)].iconPalIndex], BG_PLTT_ID(10 + i), PLTT_SIZE_4BPP); } } @@ -2560,7 +2558,6 @@ bool8 IsContestDebugActive(void) void ShowContestEntryMonPic(void) { - const struct CompressedSpritePalette *palette; u32 personality, otId; u16 species; u8 spriteId; @@ -2580,10 +2577,9 @@ void ShowContestEntryMonPic(void) gTasks[taskId].data[1] = species; HandleLoadSpecialPokePic(TRUE, gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_LEFT], species, personality); - palette = GetMonSpritePalStructFromOtIdPersonality(species, otId, personality); - LoadCompressedSpritePalette(palette); + LoadCompressedSpritePaletteWithTag(GetMonSpritePalFromSpeciesAndPersonality(species, otId, personality), species); SetMultiuseSpriteTemplateToPokemon(species, B_POSITION_OPPONENT_LEFT); - gMultiuseSpriteTemplate.paletteTag = palette->tag; + gMultiuseSpriteTemplate.paletteTag = species; spriteId = CreateSprite(&gMultiuseSpriteTemplate, (left + 1) * 8 + 32, (top * 8) + 40, 0); if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) diff --git a/src/data.c b/src/data.c index bb73ee13fce7..608c8f774e31 100644 --- a/src/data.c +++ b/src/data.c @@ -113,7 +113,7 @@ const struct SpriteFrameImage gTrainerBackPicTable_Steven[] = {gTrainerBackPic_Steven + TRAINER_PIC_SIZE * 3, TRAINER_PIC_SIZE}, }; -static const union AnimCmd sAnim_GeneralFrame0[] = +const union AnimCmd sAnim_GeneralFrame0[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_END, @@ -285,31 +285,19 @@ const union AnimCmd *const gAnims_MonPic[MAX_MON_PIC_FRAMES] = sAnim_MonPic_1, }; -#define SPECIES_SPRITE(species, sprite) [SPECIES_##species] = {sprite, MON_PIC_SIZE, SPECIES_##species} -#define SPECIES_PAL(species, pal) [SPECIES_##species] = {pal, SPECIES_##species} -#define SPECIES_SHINY_PAL(species, pal) [SPECIES_##species] = {pal, SPECIES_##species + SPECIES_SHINY_TAG} + #define FOLLOWER_PAL(species, pal) [SPECIES_##species] = {pal, SPECIES_##species + FOLLOWER_PAL_TAG} #define FOLLOWER_SHINY_PAL(species, pal) [SPECIES_##species] = {pal, SPECIES_##species + FOLLOWER_SHINY_TAG} -#include "data/pokemon_graphics/front_pic_coordinates.h" -#include "data/pokemon_graphics/back_pic_coordinates.h" - -#include "data/pokemon_graphics/back_pic_table.h" #include "data/pokemon_graphics/palette_table.h" -#include "data/pokemon_graphics/shiny_palette_table.h" #include "data/trainer_graphics/front_pic_anims.h" #include "data/trainer_graphics/front_pic_tables.h" #include "data/trainer_graphics/back_pic_anims.h" #include "data/trainer_graphics/back_pic_tables.h" -#include "data/pokemon_graphics/enemy_mon_elevation.h" -#include "data/pokemon_graphics/front_pic_anims.h" -#include "data/pokemon_graphics/front_pic_table.h" - #include "data/trainer_parties.h" #include "data/text/trainer_class_names.h" #include "data/trainers.h" -#include "data/text/species_names.h" #include "data/text/move_names.h" #include "data/text/follower_messages.h" diff --git a/src/data/battle_anim.h b/src/data/battle_anim.h index d342ccbae51d..239e655918fd 100644 --- a/src/data/battle_anim.h +++ b/src/data/battle_anim.h @@ -1449,6 +1449,12 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_Teapot, 0x1800, ANIM_TAG_TEAPOT}, {gBattleAnimSpriteGfx_WoodHammerHammer, 0x800, ANIM_TAG_WOOD_HAMMER_HAMMER}, {gBattleAnimSpriteGfx_Snowflakes, 0x0700, ANIM_TAG_SNOWFLAKES}, + {gBattleAnimSpriteGfx_SyrupBlob, 0x400, ANIM_TAG_SYRUP_BLOB_RED}, + {gBattleAnimSpriteGfx_SyrupShell, 0x2000, ANIM_TAG_SYRUP_SHELL_RED}, + {gBattleAnimSpriteGfx_SyrupBlob, 0x400, ANIM_TAG_SYRUP_BLOB_YELLOW}, + {gBattleAnimSpriteGfx_SyrupShell, 0x2000, ANIM_TAG_SYRUP_SHELL_YELLOW}, + {gBattleAnimSpriteGfx_SyrupSplat, 0x400, ANIM_TAG_SYRUP_SPLAT_RED}, + {gBattleAnimSpriteGfx_SyrupSplat, 0x400, ANIM_TAG_SYRUP_SPLAT_YELLOW}, }; const struct CompressedSpritePalette gBattleAnimPaletteTable[] = @@ -1898,6 +1904,12 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_Teapot, ANIM_TAG_TEAPOT}, {gBattleAnimSpritePal_WoodHammerHammer, ANIM_TAG_WOOD_HAMMER_HAMMER}, {gBattleAnimSpritePal_RainDrops, ANIM_TAG_SNOWFLAKES}, + {gBattleAnimSpritePal_SyrupRed, ANIM_TAG_SYRUP_BLOB_RED}, + {gBattleAnimSpritePal_SyrupRed, ANIM_TAG_SYRUP_SHELL_RED}, + {gBattleAnimSpritePal_SyrupYellow, ANIM_TAG_SYRUP_BLOB_YELLOW}, + {gBattleAnimSpritePal_SyrupYellow, ANIM_TAG_SYRUP_SHELL_YELLOW}, + {gBattleAnimSpritePal_SyrupRed, ANIM_TAG_SYRUP_SPLAT_RED}, + {gBattleAnimSpritePal_SyrupYellow, ANIM_TAG_SYRUP_SPLAT_YELLOW}, }; const struct BattleAnimBackground gBattleAnimBackgroundTable[] = @@ -1984,4 +1996,5 @@ const struct BattleAnimBackground gBattleAnimBackgroundTable[] = [BG_STEEL_BEAM_OPPONENT] = {gBattleAnimBgImage_Highspeed, gBattleAnimBgPalette_SteelBeam, gBattleAnimBgTilemap_HighspeedOpponent}, [BG_STEEL_BEAM_PLAYER] = {gBattleAnimBgImage_Highspeed, gBattleAnimBgPalette_SteelBeam, gBattleAnimBgTilemap_HighspeedPlayer}, [BG_CHLOROBLAST] = {gBattleAnimBgImage_HydroCannon, gBattleAnimBgPalette_Chloroblast, gBattleAnimBgTilemap_HydroCannon}, + [BG_RAINBOW] = {gBattleAnimBgImage_Rainbow, gBattleAnimBGPalette_Rainbow, gBattleAnimBgTilemap_Rainbow}, }; diff --git a/src/data/battle_frontier/battle_pyramid_wild_requirements.h b/src/data/battle_frontier/battle_pyramid_wild_requirements.h new file mode 100644 index 000000000000..1b9e359f1f03 --- /dev/null +++ b/src/data/battle_frontier/battle_pyramid_wild_requirements.h @@ -0,0 +1,237 @@ +#if BATTLE_PYRAMID_RANDOM_ENCOUNTERS == TRUE + +#include "constants/abilities.h" +#include "constants/battle_move_effects.h" + +struct BattlePyramidRequirement { + const u16 *moves; /* use moves instead of effects so we don't need to find moves with said effect in our loop */ + u16 abilities[10]; + u8 nAbilities; + u8 type; + u8 nMoves; + const u16 *evoItems; + u8 nEvoItems; +}; + +// EFFECT_PARALYZE, EFFECT_PARALYZE_HIT (30% or more) +static const u16 sParalyzingMoves[] = { + //MOVE_THUNDER_PUNCH, + MOVE_BODY_SLAM, + MOVE_STUN_SPORE, + //MOVE_THUNDER_SHOCK, + //MOVE_THUNDERBOLT, + MOVE_THUNDER_WAVE, + MOVE_LICK, + MOVE_GLARE, + MOVE_ZAP_CANNON, + MOVE_SPARK, + MOVE_DRAGON_BREATH, + MOVE_FORCE_PALM, + MOVE_DISCHARGE, + //MOVE_BOLT_STRIKE, + MOVE_NUZZLE, + MOVE_SPLISHY_SPLASH, + MOVE_BUZZY_BUZZ, + MOVE_COMBAT_TORQUE, +}; + +// EFFECT_POISON_HIT (30% or more), EFFECT_POISON, EFFECT_POISON_FANG, EFFECT_TOXIC, EFFECT_TOXIC_THREAD +static const u16 sPoisoningMoves[] = { + MOVE_POISON_STING, + //MOVE_TWINEEDLE, + MOVE_SMOG, + MOVE_SLUDGE, + MOVE_SLUDGE_BOMB, + //MOVE_POISON_TAIL, + MOVE_POISON_JAB, + //MOVE_CROSS_POISON, + MOVE_GUNK_SHOT, + //MOVE_SLUDGE_WAVE, + MOVE_NOXIOUS_TORQUE, + //MOVE_ACID, + MOVE_POISON_POWDER, + MOVE_TOXIC, + MOVE_POISON_GAS, + MOVE_POISON_FANG, + MOVE_BANEFUL_BUNKER, + MOVE_TOXIC_THREAD, +}; + +// EFFECT_BURN_HIT, EFFECT_WILL_O_WISP +static const u16 sBurningMoves[] = { + MOVE_WILL_O_WISP, + //MOVE_EMBER, + //MOVE_FLAMETHROWER, + //MOVE_FIRE_BLAST, + //MOVE_HEAT_WAVE, + //MOVE_BLAZE_KICK, + MOVE_LAVA_PLUME, + MOVE_SCALD, + MOVE_INFERNO, + MOVE_SEARING_SHOT, + MOVE_BLUE_FLARE, + MOVE_STEAM_ERUPTION, + MOVE_SIZZLY_SLIDE, + //MOVE_PYRO_BALL, + MOVE_BURNING_JEALOUSY, + MOVE_SCORCHING_SANDS, + MOVE_SANDSEAR_STORM, + MOVE_BLAZING_TORQUE, +}; + +// EFFECT_FREEZE, EFFECT_FREEZE_HIT +static const u16 sFrostbiteMoves[] = { + MOVE_ICE_PUNCH, + MOVE_ICE_BEAM, + MOVE_BLIZZARD, + MOVE_POWDER_SNOW, + MOVE_FREEZING_GLARE, +}; + +// EFFECT_GRUDGE, EFFECT_SPITE, EFFECT_EERIE_SPELL +static const u16 sPPReducingMoves[] = { + MOVE_GRUDGE, + MOVE_SPITE, + MOVE_EERIE_SPELL, +}; + +// EFFECT_EXPLOSION +static const u16 sExplosionMoves[] = { + MOVE_SELF_DESTRUCT, + MOVE_EXPLOSION, + MOVE_MISTY_EXPLOSION, +}; + +// EFFECT_RAIN_DANCE, EFFECT_SANDSTORM, EFFECT_HAIL, EFFECT_SUNNY_DAY, +static const u16 sWeatherChangingMoves[] = { + MOVE_RAIN_DANCE, + MOVE_SANDSTORM, + MOVE_HAIL, + MOVE_SUNNY_DAY, +}; + +// EFFECT_RECHARGE, EFFECT_RECOIL_33 +static const u16 sPowerfulNormalMoves[] = { + MOVE_HYPER_BEAM, + MOVE_GIGA_IMPACT, + MOVE_THRASH, + MOVE_BODY_SLAM, + MOVE_DOUBLE_EDGE, +}; + +static const u16 sEvoItems[] = {ITEM_FIRE_STONE, ITEM_WATER_STONE, ITEM_THUNDER_STONE}; + +static const struct BattlePyramidRequirement sBattlePyramidRequirementsByRound[] = { + [0] = /* pokemon with moves that paraylze */ + { + .type = TYPE_MYSTERY, // no type limitation + .moves = sParalyzingMoves, + .nMoves = NELEMS(sParalyzingMoves), + .abilities = { ABILITY_STATIC }, + .nAbilities = 1, + }, + [1] = /* pokemon with moves that poison */ + { + .type = TYPE_MYSTERY, + .moves = sPoisoningMoves, + .nMoves = NELEMS(sPoisoningMoves), + .abilities = { ABILITY_POISON_POINT }, + }, + [2] = /* Pokemon with moves that burn */ + { + .type = TYPE_MYSTERY, + .moves = sBurningMoves, + .nMoves = NELEMS(sBurningMoves), + .abilities = { ABILITY_FLAME_BODY }, + .nAbilities = 1, + }, + [3] = /* pokemon with moves that waste PP */ + { + .type = TYPE_MYSTERY, + .moves = sPPReducingMoves, + .nMoves = NELEMS(sPPReducingMoves), + .abilities = { ABILITY_PRESSURE }, + .nAbilities = 1, + }, + [4] = /* pokemon with Levitate */ + { + .type = TYPE_MYSTERY, + .abilities = { ABILITY_LEVITATE }, + .nAbilities = 1, + }, + [5] = /* pokemon with trapping abilities */ + { + .type = TYPE_MYSTERY, + .abilities = { ABILITY_SHADOW_TAG, ABILITY_ARENA_TRAP }, // TODO magnet pull? + .nAbilities = 2, + }, + [6] = /* ice types */ + { + .type = TYPE_ICE, + }, + + [7] = /* pokemon with explosion effects */ + { + .type = TYPE_MYSTERY, + .moves = sExplosionMoves, + .nMoves = NELEMS(sExplosionMoves), + }, + [8] = /* psychic types */ + { + .type = TYPE_PSYCHIC, + }, + [9] = /* rock types */ + { + .type = TYPE_ROCK, + }, + [10] = /* fighting types */ + { + .type = TYPE_FIGHTING, + }, + [11] = /* pokemon with weather-altering effects */ + { + .type = TYPE_MYSTERY, + .moves = sWeatherChangingMoves, + .nMoves = NELEMS(sWeatherChangingMoves), + .abilities = { ABILITY_SAND_SPIT, ABILITY_DRIZZLE, ABILITY_SNOW_WARNING, ABILITY_DROUGHT, ABILITY_SAND_STREAM }, + .nAbilities = 5, + }, + [12] = /* bug types */ + { + .type = TYPE_BUG, + }, + [13] = /* dark types */ + { + .type = TYPE_DARK, + }, + [14] = /* water types */ + { + .type = TYPE_WATER, + }, + [15] = /* ghost types */ + { + .type = TYPE_GHOST, + }, + [16] = /* steel types */ + { + .type = TYPE_STEEL, + }, + [17] = /* flying/dragon types */ + { + .type = TYPE_DRAGON, + }, + [18] = /* evolve via water/thunder/fire stone */ + { + .type = TYPE_MYSTERY, + .evoItems = sEvoItems, + .nEvoItems = 3, + }, + [19] = /* normal with powerful moves */ + { + .type = TYPE_NORMAL, + .moves = sPowerfulNormalMoves, + .nMoves = NELEMS(sPowerfulNormalMoves), + }, +}; + +#endif diff --git a/src/data/battle_moves.h b/src/data/battle_moves.h index 0ad7cc07196d..f3cf0fa76b5d 100644 --- a/src/data/battle_moves.h +++ b/src/data/battle_moves.h @@ -376,6 +376,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .zMoveEffect = Z_EFFECT_NONE, .makesContact = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_VINE_WHIP] = @@ -416,6 +417,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .makesContact = TRUE, .sheerForceBoost = TRUE, .minimizeDoubleDamage = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_DOUBLE_KICK] = @@ -604,6 +606,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .makesContact = TRUE, .sheerForceBoost = TRUE, .minimizeDoubleDamage = B_UPDATED_MOVE_FLAGS >= GEN_6, + .skyBattleBanned = TRUE, }, [MOVE_WRAP] = @@ -1008,6 +1011,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_SPECIAL, .zMoveEffect = Z_EFFECT_NONE, .damagesUnderwater = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_ICE_BEAM] = @@ -1216,6 +1220,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .zMoveEffect = Z_EFFECT_NONE, .makesContact = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_STRENGTH] = @@ -1574,6 +1579,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .zMoveEffect = Z_EFFECT_NONE, .ignoresKingsRock = B_UPDATED_MOVE_FLAGS < GEN_3, .damagesUnderground = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_FISSURE] = @@ -1589,6 +1595,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .zMoveEffect = Z_EFFECT_NONE, .damagesUnderground = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_DIG] = @@ -1612,6 +1619,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .sleepTalkBanned = TRUE, .instructBanned = TRUE, .assistBanned = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_TOXIC] = @@ -2913,6 +2921,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_STRUGGLE] = @@ -3416,6 +3425,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .mirrorMoveBanned = TRUE, .magicCoatAffected = B_UPDATED_MOVE_FLAGS >= GEN_5, .forcePressure = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_ZAP_CANNON] = @@ -3986,6 +3996,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .zMoveEffect = Z_EFFECT_NONE, .damagesUnderground = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_DYNAMIC_PUNCH] = @@ -4748,7 +4759,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = #else .power = 60, #endif - .effect = EFFECT_SMELLINGSALT, + .effect = EFFECT_SMELLING_SALTS, .type = TYPE_NORMAL, .accuracy = 100, .pp = 10, @@ -4952,6 +4963,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .snatchAffected = TRUE, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_SUPERPOWER] = @@ -5219,6 +5231,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .sleepTalkBanned = TRUE, .instructBanned = TRUE, .assistBanned = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_ARM_THRUST] = @@ -5368,6 +5381,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .zMoveEffect = Z_EFFECT_SPDEF_UP_1, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_ICE_BALL] = @@ -5891,6 +5905,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_SPECIAL, .zMoveEffect = Z_EFFECT_NONE, .sheerForceBoost = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_BULLET_SEED] = @@ -6028,6 +6043,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .priority = 0, .split = SPLIT_SPECIAL, .zMoveEffect = Z_EFFECT_NONE, + .skyBattleBanned = TRUE, }, [MOVE_BULK_UP] = @@ -6182,6 +6198,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .zMoveEffect = Z_EFFECT_SPDEF_UP_1, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_CALM_MIND] = @@ -6360,6 +6377,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .zMoveEffect = Z_EFFECT_SPATK_UP_1, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_MIRACLE_EYE] = @@ -6934,6 +6952,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .mirrorMoveBanned = TRUE, .magicCoatAffected = B_UPDATED_MOVE_FLAGS >= GEN_5, .forcePressure = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_HEART_SWAP] = @@ -7343,6 +7362,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_SPECIAL, .zMoveEffect = Z_EFFECT_NONE, .sheerForceBoost = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_SWITCHEROO] = @@ -7878,6 +7898,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_SPECIAL, .zMoveEffect = Z_EFFECT_NONE, .makesContact = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_CHATTER] = @@ -8428,6 +8449,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .zMoveEffect = Z_EFFECT_NONE, .damagesAirborne = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_STORM_THROW] = @@ -8510,6 +8532,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .zMoveEffect = Z_EFFECT_NONE, .makesContact = TRUE, .minimizeDoubleDamage = B_UPDATED_MOVE_FLAGS >= GEN_7, + .skyBattleBanned = TRUE, }, [MOVE_SYNCHRONOISE] = @@ -9077,6 +9100,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .priority = 0, .split = SPLIT_SPECIAL, .zMoveEffect = Z_EFFECT_NONE, + .skyBattleBanned = TRUE, }, [MOVE_FIRE_PLEDGE] = @@ -9095,6 +9119,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .priority = 0, .split = SPLIT_SPECIAL, .zMoveEffect = Z_EFFECT_NONE, + .skyBattleBanned = TRUE, }, [MOVE_GRASS_PLEDGE] = @@ -9113,6 +9138,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .priority = 0, .split = SPLIT_SPECIAL, .zMoveEffect = Z_EFFECT_NONE, + .skyBattleBanned = TRUE, }, [MOVE_VOLT_SWITCH] = @@ -9161,6 +9187,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .zMoveEffect = Z_EFFECT_NONE, .sheerForceBoost = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_FROST_BREATH] = @@ -9557,7 +9584,6 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .priority = 0, .split = SPLIT_SPECIAL, .zMoveEffect = Z_EFFECT_NONE, - .argument = STATUS1_SLEEP, .sheerForceBoost = TRUE, .ignoresSubstitute = B_UPDATED_MOVE_FLAGS >= GEN_6, .soundMove = TRUE, @@ -9780,6 +9806,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .makesContact = TRUE, .minimizeDoubleDamage = TRUE, .gravityBanned = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_MAT_BLOCK] = @@ -9801,6 +9828,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .metronomeBanned = TRUE, .copycatBanned = TRUE, .assistBanned = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_BELCH] = @@ -9839,6 +9867,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .zMoveEffect = Z_EFFECT_ATK_UP_1, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_STICKY_WEB] = @@ -9856,6 +9885,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, .magicCoatAffected = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_FELL_STINGER] = @@ -10130,6 +10160,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .zMoveEffect = Z_EFFECT_DEF_UP_1, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_MISTY_TERRAIN] = @@ -10146,6 +10177,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .zMoveEffect = Z_EFFECT_SPDEF_UP_1, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_ELECTRIFY] = @@ -10486,6 +10518,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .twoTurnMove = TRUE, .sleepTalkBanned = TRUE, .instructBanned = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_MAGNETIC_FLUX] = @@ -10536,6 +10569,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .zMoveEffect = Z_EFFECT_SPD_UP_1, .ignoresProtect = TRUE, .mirrorMoveBanned = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_DAZZLING_GLEAM] = @@ -10705,6 +10739,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .damagesAirborne = TRUE, .ignoreTypeIfFlyingAndUngrounded = TRUE, .metronomeBanned = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_THOUSAND_WAVES] = @@ -10720,6 +10755,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .zMoveEffect = Z_EFFECT_NONE, .metronomeBanned = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_LANDS_WRATH] = @@ -10734,6 +10770,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .priority = 0, .split = SPLIT_PHYSICAL, .zMoveEffect = Z_EFFECT_NONE, + .skyBattleBanned = TRUE, }, [MOVE_LIGHT_OF_RUIN] = @@ -10948,6 +10985,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .priority = 0, .split = SPLIT_STATUS, .zMoveEffect = Z_EFFECT_RESET_STATS, + .argument = MOVE_EFFECT_FLORAL_HEALING, .mirrorMoveBanned = TRUE, .healBlockBanned = TRUE, .magicCoatAffected = TRUE, @@ -11471,6 +11509,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .zMoveEffect = Z_EFFECT_NONE, .makesContact = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_SHADOW_BONE] = @@ -12233,6 +12272,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .zMoveEffect = Z_EFFECT_NONE, .makesContact = TRUE, .metronomeBanned = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_DECORATE] = @@ -12282,6 +12322,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .zMoveEffect = Z_EFFECT_NONE, .makesContact = TRUE, .metronomeBanned = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_PYRO_BALL] = @@ -12600,6 +12641,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .zMoveEffect = Z_EFFECT_NONE, .makesContact = TRUE, .argument = ARG_TRY_REMOVE_TERRAIN_FAIL, // Remove a field terrain if there is one and hit, otherwise fail. + .skyBattleBanned = TRUE, }, [MOVE_SCALE_SHOT] = @@ -12679,6 +12721,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .zMoveEffect = Z_EFFECT_NONE, .makesContact = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_RISING_VOLTAGE] = @@ -13200,6 +13243,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .zMoveEffect = Z_EFFECT_NONE, .makesContact = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_CHLOROBLAST] = @@ -13645,6 +13689,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .zMoveEffect = Z_EFFECT_NONE, .makesContact = TRUE, + .skyBattleBanned = TRUE, }, [MOVE_POPULATION_BOMB] = @@ -13679,11 +13724,12 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .zMoveEffect = Z_EFFECT_NONE, .makesContact = TRUE, .argument = ARG_TRY_REMOVE_TERRAIN_HIT, // Remove the active field terrain if there is one. + .skyBattleBanned = TRUE, }, [MOVE_GLAIVE_RUSH] = { - .effect = EFFECT_PLACEHOLDER, // EFFECT_GLAIVE_RUSH + .effect = EFFECT_GLAIVE_RUSH, .power = 120, .type = TYPE_DRAGON, .accuracy = 100, @@ -13863,7 +13909,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = [MOVE_RAGING_BULL] = { - .effect = EFFECT_PLACEHOLDER, // EFFECT_RAGING_BULL + .effect = EFFECT_RAGING_BULL, .power = 90, .type = TYPE_NORMAL, .accuracy = 100, @@ -14480,6 +14526,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .priority = 0, .split = SPLIT_PHYSICAL, .zMoveEffect = 0, + .skyBattleBanned = TRUE, }, [MOVE_CONTINENTAL_CRUSH] = { @@ -15142,7 +15189,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .argument = MAX_EFFECT_RAISE_TEAM_DEFENSE, }, - + [MOVE_G_MAX_VINE_LASH] = { //ANIM TODO .effect = EFFECT_MAX_MOVE, @@ -15156,7 +15203,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .argument = MAX_EFFECT_VINE_LASH, }, - + [MOVE_G_MAX_WILDFIRE] = { .effect = EFFECT_MAX_MOVE, @@ -15170,7 +15217,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .argument = MAX_EFFECT_WILDFIRE, }, - + [MOVE_G_MAX_CANNONADE] = { //ANIM TODO .effect = EFFECT_MAX_MOVE, @@ -15184,7 +15231,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .argument = MAX_EFFECT_CANNONADE, }, - + [MOVE_G_MAX_BEFUDDLE] = { .effect = EFFECT_MAX_MOVE, @@ -15198,7 +15245,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .argument = MAX_EFFECT_EFFECT_SPORE_FOES, }, - + [MOVE_G_MAX_VOLT_CRASH] = { .effect = EFFECT_MAX_MOVE, @@ -15212,7 +15259,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .argument = MAX_EFFECT_PARALYZE_FOES, }, - + [MOVE_G_MAX_GOLD_RUSH] = { .effect = EFFECT_MAX_MOVE, @@ -15226,7 +15273,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .argument = MAX_EFFECT_CONFUSE_FOES_PAY_DAY, }, - + [MOVE_G_MAX_CHI_STRIKE] = { .effect = EFFECT_MAX_MOVE, @@ -15240,7 +15287,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .argument = MAX_EFFECT_CRIT_PLUS, }, - + [MOVE_G_MAX_TERROR] = { .effect = EFFECT_MAX_MOVE, @@ -15254,7 +15301,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .argument = MAX_EFFECT_MEAN_LOOK, }, - + [MOVE_G_MAX_FOAM_BURST] = { .effect = EFFECT_MAX_MOVE, @@ -15268,7 +15315,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .argument = MAX_EFFECT_LOWER_SPEED_2_FOES, }, - + [MOVE_G_MAX_RESONANCE] = { .effect = EFFECT_MAX_MOVE, @@ -15282,7 +15329,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .argument = MAX_EFFECT_AURORA_VEIL, }, - + [MOVE_G_MAX_CUDDLE] = { .effect = EFFECT_MAX_MOVE, @@ -15296,7 +15343,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .argument = MAX_EFFECT_INFATUATE_FOES, }, - + [MOVE_G_MAX_REPLENISH] = { .effect = EFFECT_MAX_MOVE, @@ -15310,7 +15357,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .argument = MAX_EFFECT_RECYCLE_BERRIES, }, - + [MOVE_G_MAX_MALODOR] = { .effect = EFFECT_MAX_MOVE, @@ -15324,7 +15371,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .argument = MAX_EFFECT_POISON_FOES, }, - + [MOVE_G_MAX_MELTDOWN] = { .effect = EFFECT_MAX_MOVE, @@ -15338,7 +15385,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .argument = MAX_EFFECT_TORMENT_FOES, }, - + [MOVE_G_MAX_DRUM_SOLO] = { //ANIM TODO .effect = EFFECT_MAX_MOVE, @@ -15353,7 +15400,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .argument = MAX_EFFECT_FIXED_POWER, //EFFECT TODO .ignoresTargetAbility = TRUE, }, - + [MOVE_G_MAX_FIREBALL] = { //ANIM TODO .effect = EFFECT_MAX_MOVE, @@ -15368,7 +15415,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .argument = MAX_EFFECT_FIXED_POWER, //EFFECT TODO .ignoresTargetAbility = TRUE, }, - + [MOVE_G_MAX_HYDROSNIPE] = { //ANIM TODO .effect = EFFECT_MAX_MOVE, @@ -15383,7 +15430,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .argument = MAX_EFFECT_FIXED_POWER, //EFFECT TODO .ignoresTargetAbility = TRUE, }, - + [MOVE_G_MAX_WIND_RAGE] = { .effect = EFFECT_MAX_MOVE, @@ -15397,7 +15444,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .argument = MAX_EFFECT_DEFOG, }, - + [MOVE_G_MAX_GRAVITAS] = { .effect = EFFECT_MAX_MOVE, @@ -15411,7 +15458,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .argument = MAX_EFFECT_GRAVITY, }, - + [MOVE_G_MAX_STONESURGE] = { .effect = EFFECT_MAX_MOVE, @@ -15425,7 +15472,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .argument = MAX_EFFECT_STEALTH_ROCK, }, - + [MOVE_G_MAX_VOLCALITH] = { .effect = EFFECT_MAX_MOVE, @@ -15439,7 +15486,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .argument = MAX_EFFECT_VOLCALITH, }, - + [MOVE_G_MAX_TARTNESS] = { .effect = EFFECT_MAX_MOVE, @@ -15453,7 +15500,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .argument = MAX_EFFECT_LOWER_EVASIVENESS_FOES, }, - + [MOVE_G_MAX_SWEETNESS] = { .effect = EFFECT_MAX_MOVE, @@ -15467,7 +15514,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .argument = MAX_EFFECT_AROMATHERAPY, }, - + [MOVE_G_MAX_SANDBLAST] = { .effect = EFFECT_MAX_MOVE, @@ -15481,7 +15528,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .argument = MAX_EFFECT_SANDBLAST_FOES, }, - + [MOVE_G_MAX_STUN_SHOCK] = { .effect = EFFECT_MAX_MOVE, @@ -15495,7 +15542,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .argument = MAX_EFFECT_POISON_PARALYZE_FOES, }, - + [MOVE_G_MAX_CENTIFERNO] = { .effect = EFFECT_MAX_MOVE, @@ -15509,7 +15556,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .argument = MAX_EFFECT_FIRE_SPIN_FOES, }, - + [MOVE_G_MAX_SMITE] = { .effect = EFFECT_MAX_MOVE, @@ -15523,7 +15570,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .argument = MAX_EFFECT_CONFUSE_FOES, }, - + [MOVE_G_MAX_SNOOZE] = { @@ -15538,7 +15585,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .argument = MAX_EFFECT_YAWN_FOE, }, - + [MOVE_G_MAX_FINALE] = { .effect = EFFECT_MAX_MOVE, @@ -15552,7 +15599,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .argument = MAX_EFFECT_HEAL_TEAM, }, - + [MOVE_G_MAX_STEELSURGE] = { .effect = EFFECT_MAX_MOVE, @@ -15566,7 +15613,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .argument = MAX_EFFECT_STEELSURGE, }, - + [MOVE_G_MAX_DEPLETION] = { .effect = EFFECT_MAX_MOVE, @@ -15580,7 +15627,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .argument = MAX_EFFECT_SPITE, }, - + [MOVE_G_MAX_ONE_BLOW] = { .effect = EFFECT_MAX_MOVE, @@ -15594,7 +15641,7 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .argument = MAX_EFFECT_BYPASS_PROTECT, //EFFECT TODO }, - + [MOVE_G_MAX_RAPID_FLOW] = { //ANIM TODO .effect = EFFECT_MAX_MOVE, @@ -15608,5 +15655,5 @@ const struct BattleMove gBattleMoves[MOVES_COUNT_DYNAMAX] = .split = SPLIT_PHYSICAL, .argument = MAX_EFFECT_BYPASS_PROTECT, //EFFECT TODO }, - + }; diff --git a/src/data/graphics/items.h b/src/data/graphics/items.h index 08eda8601808..10e2996a9c0b 100644 --- a/src/data/graphics/items.h +++ b/src/data/graphics/items.h @@ -654,6 +654,15 @@ const u32 gItemIconPalette_LinkingCord[] = INCBIN_U32("graphics/items/icon_palet const u32 gItemIcon_PeatBlock[] = INCBIN_U32("graphics/items/icons/peat_block.4bpp.lz"); const u32 gItemIconPalette_PeatBlock[] = INCBIN_U32("graphics/items/icon_palettes/peat_block.gbapal.lz"); +const u32 gItemIcon_SyrupyApple[] = INCBIN_U32("graphics/items/icons/syrupy_apple.4bpp.lz"); +const u32 gItemIconPalette_SyrupyApple[] = INCBIN_U32("graphics/items/icon_palettes/syrupy_apple.gbapal.lz"); + +const u32 gItemIcon_UnremarkableTeacup[] = INCBIN_U32("graphics/items/icons/unremarkable_teacup.4bpp.lz"); +const u32 gItemIconPalette_UnremarkableTeacup[] = INCBIN_U32("graphics/items/icon_palettes/unremarkable_teacup.gbapal.lz"); + +const u32 gItemIcon_MasterpieceTeacup[] = INCBIN_U32("graphics/items/icons/masterpiece_teacup.4bpp.lz"); +const u32 gItemIconPalette_MasterpieceTeacup[] = INCBIN_U32("graphics/items/icon_palettes/masterpiece_teacup.gbapal.lz"); + // Nectars const u32 gItemIcon_RedNectar[] = INCBIN_U32("graphics/items/icons/red_nectar.4bpp.lz"); @@ -1746,6 +1755,9 @@ const u32 gItemIconPalette_CatchingCharm[] = INCBIN_U32("graphics/items/icon_pal const u32 gItemIcon_ExpCharm[] = INCBIN_U32("graphics/items/icons/exp_charm.4bpp.lz"); const u32 gItemIconPalette_ExpCharm[] = INCBIN_U32("graphics/items/icon_palettes/exp_charm.gbapal.lz"); +const u32 gItemIcon_GlimmeringCharm[] = INCBIN_U32("graphics/items/icons/glimmering_charm.4bpp.lz"); +const u32 gItemIconPalette_GlimmeringCharm[] = INCBIN_U32("graphics/items/icon_palettes/glimmering_charm.gbapal.lz"); + // Form-changing Key Items const u32 gItemIcon_RotomCatalog[] = INCBIN_U32("graphics/items/icons/rotom_catalog.4bpp.lz"); @@ -1906,8 +1918,8 @@ const u32 gItemIconPalette_MagmaEmblem[] = INCBIN_U32("graphics/items/icon_palet const u32 gItemIcon_ContestPass[] = INCBIN_U32("graphics/items/icons/contest_pass.4bpp.lz"); const u32 gItemIconPalette_ContestPass[] = INCBIN_U32("graphics/items/icon_palettes/contest_pass.gbapal.lz"); -const u32 gItemIcon_OaksParcel[] = INCBIN_U32("graphics/items/icons/oaks_parcel.4bpp.lz"); -const u32 gItemIconPalette_OaksParcel[] = INCBIN_U32("graphics/items/icon_palettes/oaks_parcel.gbapal.lz"); +const u32 gItemIcon_Parcel[] = INCBIN_U32("graphics/items/icons/parcel.4bpp.lz"); +const u32 gItemIconPalette_Parcel[] = INCBIN_U32("graphics/items/icon_palettes/parcel.gbapal.lz"); const u32 gItemIcon_SecretKey[] = INCBIN_U32("graphics/items/icons/secret_key.4bpp.lz"); const u32 gItemIconPalette_SecretKey[] = INCBIN_U32("graphics/items/icon_palettes/secret_key.gbapal.lz"); @@ -2010,6 +2022,26 @@ const u32 gItemIconPalette_DragonTeraShard[] = INCBIN_U32("graphics/items/icon_p const u32 gItemIconPalette_SteelTeraShard[] = INCBIN_U32("graphics/items/icon_palettes/steel_tera_shard.gbapal.lz"); const u32 gItemIconPalette_FairyTeraShard[] = INCBIN_U32("graphics/items/icon_palettes/fairy_tera_shard.gbapal.lz"); +// Mochi + +const u32 gItemIcon_Mochi[] = INCBIN_U32("graphics/items/icons/mochi.4bpp.lz"); +const u32 gItemIconPalette_HealthMochi[] = INCBIN_U32("graphics/items/icon_palettes/health_mochi.gbapal.lz"); +const u32 gItemIconPalette_MuscleMochi[] = INCBIN_U32("graphics/items/icon_palettes/muscle_mochi.gbapal.lz"); +const u32 gItemIconPalette_ResistMochi[] = INCBIN_U32("graphics/items/icon_palettes/resist_mochi.gbapal.lz"); +const u32 gItemIconPalette_GeniusMochi[] = INCBIN_U32("graphics/items/icon_palettes/genius_mochi.gbapal.lz"); +const u32 gItemIconPalette_CleverMochi[] = INCBIN_U32("graphics/items/icon_palettes/clever_mochi.gbapal.lz"); +const u32 gItemIconPalette_SwiftMochi[] = INCBIN_U32("graphics/items/icon_palettes/swift_mochi.gbapal.lz"); +const u32 gItemIconPalette_FreshStartMochi[] = INCBIN_U32("graphics/items/icon_palettes/fresh_start_mochi.gbapal.lz"); + +// Ogerpon masks + +const u32 gItemIcon_WellspringMask[] = INCBIN_U32("graphics/items/icons/wellspring_mask.4bpp.lz"); +const u32 gItemIconPalette_WellspringMask[] = INCBIN_U32("graphics/items/icon_palettes/wellspring_mask.gbapal.lz"); +const u32 gItemIcon_HearthflameMask[] = INCBIN_U32("graphics/items/icons/hearthflame_mask.4bpp.lz"); +const u32 gItemIconPalette_HearthflameMask[] = INCBIN_U32("graphics/items/icon_palettes/hearthflame_mask.gbapal.lz"); +const u32 gItemIcon_CornerstoneMask[] = INCBIN_U32("graphics/items/icons/cornerstone_mask.4bpp.lz"); +const u32 gItemIconPalette_CornerstoneMask[] = INCBIN_U32("graphics/items/icon_palettes/cornerstone_mask.gbapal.lz"); + // Misc. Items const u32 gItemIcon_AdamantCrystal[] = INCBIN_U32("graphics/items/icons/adamant_crystal.4bpp.lz"); @@ -2077,3 +2109,5 @@ const u32 gBallIcon_Dream[] = INCBIN_U32("graphics/summary_screen/ball_icons/dre const u32 gBallIconPalette_Dream[] = INCBIN_U32("graphics/summary_screen/ball_icons/dream.gbapal.lz"); const u32 gBallIcon_Beast[] = INCBIN_U32("graphics/summary_screen/ball_icons/beast.4bpp.lz"); const u32 gBallIconPalette_Beast[] = INCBIN_U32("graphics/summary_screen/ball_icons/beast.gbapal.lz"); +const u32 gItemIcon_FairyFeather[] = INCBIN_U32("graphics/items/icons/fairy_feather.4bpp.lz"); +const u32 gItemIconPalette_FairyFeather[] = INCBIN_U32("graphics/items/icon_palettes/fairy_feather.gbapal.lz"); diff --git a/src/data/graphics/pokemon.h b/src/data/graphics/pokemon.h index d0074bbaf23c..82c62a461019 100644 --- a/src/data/graphics/pokemon.h +++ b/src/data/graphics/pokemon.h @@ -1,3912 +1,6 @@ const u32 gMonFrontPic_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/question_mark/circled/anim_front.4bpp.lz"); -const u32 gMonFrontPic_DoubleQuestionMark[] = INCBIN_U32("graphics/pokemon/question_mark/double/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Bulbasaur[] = INCBIN_U32("graphics/pokemon/bulbasaur/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Ivysaur[] = INCBIN_U32("graphics/pokemon/ivysaur/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Venusaur[] = INCBIN_U32("graphics/pokemon/venusaur/anim_front.4bpp.lz"); -const u32 gMonFrontPic_VenusaurF[] = INCBIN_U32("graphics/pokemon/venusaur/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Charmander[] = INCBIN_U32("graphics/pokemon/charmander/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Charmeleon[] = INCBIN_U32("graphics/pokemon/charmeleon/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Charizard[] = INCBIN_U32("graphics/pokemon/charizard/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Squirtle[] = INCBIN_U32("graphics/pokemon/squirtle/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Wartortle[] = INCBIN_U32("graphics/pokemon/wartortle/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Blastoise[] = INCBIN_U32("graphics/pokemon/blastoise/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Caterpie[] = INCBIN_U32("graphics/pokemon/caterpie/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Metapod[] = INCBIN_U32("graphics/pokemon/metapod/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Butterfree[] = INCBIN_U32("graphics/pokemon/butterfree/anim_front.4bpp.lz"); -const u32 gMonFrontPic_ButterfreeF[] = INCBIN_U32("graphics/pokemon/butterfree/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Weedle[] = INCBIN_U32("graphics/pokemon/weedle/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Kakuna[] = INCBIN_U32("graphics/pokemon/kakuna/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Beedrill[] = INCBIN_U32("graphics/pokemon/beedrill/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Pidgey[] = INCBIN_U32("graphics/pokemon/pidgey/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Pidgeotto[] = INCBIN_U32("graphics/pokemon/pidgeotto/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Pidgeot[] = INCBIN_U32("graphics/pokemon/pidgeot/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Rattata[] = INCBIN_U32("graphics/pokemon/rattata/anim_front.4bpp.lz"); -const u32 gMonFrontPic_RattataF[] = INCBIN_U32("graphics/pokemon/rattata/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Raticate[] = INCBIN_U32("graphics/pokemon/raticate/anim_front.4bpp.lz"); -const u32 gMonFrontPic_RaticateF[] = INCBIN_U32("graphics/pokemon/raticate/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Spearow[] = INCBIN_U32("graphics/pokemon/spearow/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Fearow[] = INCBIN_U32("graphics/pokemon/fearow/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Ekans[] = INCBIN_U32("graphics/pokemon/ekans/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Arbok[] = INCBIN_U32("graphics/pokemon/arbok/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Pikachu[] = INCBIN_U32("graphics/pokemon/pikachu/anim_front.4bpp.lz"); -const u32 gMonFrontPic_PikachuF[] = INCBIN_U32("graphics/pokemon/pikachu/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Raichu[] = INCBIN_U32("graphics/pokemon/raichu/anim_front.4bpp.lz"); -const u32 gMonFrontPic_RaichuF[] = INCBIN_U32("graphics/pokemon/raichu/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Sandshrew[] = INCBIN_U32("graphics/pokemon/sandshrew/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Sandslash[] = INCBIN_U32("graphics/pokemon/sandslash/anim_front.4bpp.lz"); -const u32 gMonFrontPic_NidoranF[] = INCBIN_U32("graphics/pokemon/nidoran_f/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Nidorina[] = INCBIN_U32("graphics/pokemon/nidorina/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Nidoqueen[] = INCBIN_U32("graphics/pokemon/nidoqueen/anim_front.4bpp.lz"); -const u32 gMonFrontPic_NidoranM[] = INCBIN_U32("graphics/pokemon/nidoran_m/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Nidorino[] = INCBIN_U32("graphics/pokemon/nidorino/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Nidoking[] = INCBIN_U32("graphics/pokemon/nidoking/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Clefairy[] = INCBIN_U32("graphics/pokemon/clefairy/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Clefable[] = INCBIN_U32("graphics/pokemon/clefable/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Vulpix[] = INCBIN_U32("graphics/pokemon/vulpix/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Ninetales[] = INCBIN_U32("graphics/pokemon/ninetales/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Jigglypuff[] = INCBIN_U32("graphics/pokemon/jigglypuff/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Wigglytuff[] = INCBIN_U32("graphics/pokemon/wigglytuff/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Zubat[] = INCBIN_U32("graphics/pokemon/zubat/anim_front.4bpp.lz"); -const u32 gMonFrontPic_ZubatF[] = INCBIN_U32("graphics/pokemon/zubat/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Golbat[] = INCBIN_U32("graphics/pokemon/golbat/anim_front.4bpp.lz"); -const u32 gMonFrontPic_GolbatF[] = INCBIN_U32("graphics/pokemon/golbat/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Oddish[] = INCBIN_U32("graphics/pokemon/oddish/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Gloom[] = INCBIN_U32("graphics/pokemon/gloom/anim_front.4bpp.lz"); -const u32 gMonFrontPic_GloomF[] = INCBIN_U32("graphics/pokemon/gloom/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Vileplume[] = INCBIN_U32("graphics/pokemon/vileplume/anim_front.4bpp.lz"); -const u32 gMonFrontPic_VileplumeF[] = INCBIN_U32("graphics/pokemon/vileplume/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Paras[] = INCBIN_U32("graphics/pokemon/paras/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Parasect[] = INCBIN_U32("graphics/pokemon/parasect/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Venonat[] = INCBIN_U32("graphics/pokemon/venonat/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Venomoth[] = INCBIN_U32("graphics/pokemon/venomoth/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Diglett[] = INCBIN_U32("graphics/pokemon/diglett/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Dugtrio[] = INCBIN_U32("graphics/pokemon/dugtrio/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Meowth[] = INCBIN_U32("graphics/pokemon/meowth/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Persian[] = INCBIN_U32("graphics/pokemon/persian/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Psyduck[] = INCBIN_U32("graphics/pokemon/psyduck/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Golduck[] = INCBIN_U32("graphics/pokemon/golduck/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Mankey[] = INCBIN_U32("graphics/pokemon/mankey/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Primeape[] = INCBIN_U32("graphics/pokemon/primeape/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Growlithe[] = INCBIN_U32("graphics/pokemon/growlithe/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Arcanine[] = INCBIN_U32("graphics/pokemon/arcanine/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Poliwag[] = INCBIN_U32("graphics/pokemon/poliwag/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Poliwhirl[] = INCBIN_U32("graphics/pokemon/poliwhirl/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Poliwrath[] = INCBIN_U32("graphics/pokemon/poliwrath/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Abra[] = INCBIN_U32("graphics/pokemon/abra/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Kadabra[] = INCBIN_U32("graphics/pokemon/kadabra/anim_front.4bpp.lz"); -const u32 gMonFrontPic_KadabraF[] = INCBIN_U32("graphics/pokemon/kadabra/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Alakazam[] = INCBIN_U32("graphics/pokemon/alakazam/anim_front.4bpp.lz"); -const u32 gMonFrontPic_AlakazamF[] = INCBIN_U32("graphics/pokemon/alakazam/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Machop[] = INCBIN_U32("graphics/pokemon/machop/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Machoke[] = INCBIN_U32("graphics/pokemon/machoke/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Machamp[] = INCBIN_U32("graphics/pokemon/machamp/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Bellsprout[] = INCBIN_U32("graphics/pokemon/bellsprout/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Weepinbell[] = INCBIN_U32("graphics/pokemon/weepinbell/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Victreebel[] = INCBIN_U32("graphics/pokemon/victreebel/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Tentacool[] = INCBIN_U32("graphics/pokemon/tentacool/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Tentacruel[] = INCBIN_U32("graphics/pokemon/tentacruel/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Geodude[] = INCBIN_U32("graphics/pokemon/geodude/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Graveler[] = INCBIN_U32("graphics/pokemon/graveler/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Golem[] = INCBIN_U32("graphics/pokemon/golem/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Ponyta[] = INCBIN_U32("graphics/pokemon/ponyta/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Rapidash[] = INCBIN_U32("graphics/pokemon/rapidash/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Slowpoke[] = INCBIN_U32("graphics/pokemon/slowpoke/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Slowbro[] = INCBIN_U32("graphics/pokemon/slowbro/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Magnemite[] = INCBIN_U32("graphics/pokemon/magnemite/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Magneton[] = INCBIN_U32("graphics/pokemon/magneton/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Farfetchd[] = INCBIN_U32("graphics/pokemon/farfetchd/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Doduo[] = INCBIN_U32("graphics/pokemon/doduo/anim_front.4bpp.lz"); -const u32 gMonFrontPic_DoduoF[] = INCBIN_U32("graphics/pokemon/doduo/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Dodrio[] = INCBIN_U32("graphics/pokemon/dodrio/anim_front.4bpp.lz"); -const u32 gMonFrontPic_DodrioF[] = INCBIN_U32("graphics/pokemon/dodrio/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Seel[] = INCBIN_U32("graphics/pokemon/seel/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Dewgong[] = INCBIN_U32("graphics/pokemon/dewgong/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Grimer[] = INCBIN_U32("graphics/pokemon/grimer/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Muk[] = INCBIN_U32("graphics/pokemon/muk/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Shellder[] = INCBIN_U32("graphics/pokemon/shellder/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Cloyster[] = INCBIN_U32("graphics/pokemon/cloyster/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Gastly[] = INCBIN_U32("graphics/pokemon/gastly/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Haunter[] = INCBIN_U32("graphics/pokemon/haunter/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Gengar[] = INCBIN_U32("graphics/pokemon/gengar/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Onix[] = INCBIN_U32("graphics/pokemon/onix/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Drowzee[] = INCBIN_U32("graphics/pokemon/drowzee/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Hypno[] = INCBIN_U32("graphics/pokemon/hypno/anim_front.4bpp.lz"); -const u32 gMonFrontPic_HypnoF[] = INCBIN_U32("graphics/pokemon/hypno/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Krabby[] = INCBIN_U32("graphics/pokemon/krabby/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Kingler[] = INCBIN_U32("graphics/pokemon/kingler/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Voltorb[] = INCBIN_U32("graphics/pokemon/voltorb/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Electrode[] = INCBIN_U32("graphics/pokemon/electrode/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Exeggcute[] = INCBIN_U32("graphics/pokemon/exeggcute/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Exeggutor[] = INCBIN_U32("graphics/pokemon/exeggutor/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Cubone[] = INCBIN_U32("graphics/pokemon/cubone/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Marowak[] = INCBIN_U32("graphics/pokemon/marowak/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Hitmonlee[] = INCBIN_U32("graphics/pokemon/hitmonlee/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Hitmonchan[] = INCBIN_U32("graphics/pokemon/hitmonchan/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Lickitung[] = INCBIN_U32("graphics/pokemon/lickitung/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Koffing[] = INCBIN_U32("graphics/pokemon/koffing/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Weezing[] = INCBIN_U32("graphics/pokemon/weezing/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Rhyhorn[] = INCBIN_U32("graphics/pokemon/rhyhorn/anim_front.4bpp.lz"); -const u32 gMonFrontPic_RhyhornF[] = INCBIN_U32("graphics/pokemon/rhyhorn/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Rhydon[] = INCBIN_U32("graphics/pokemon/rhydon/anim_front.4bpp.lz"); -const u32 gMonFrontPic_RhydonF[] = INCBIN_U32("graphics/pokemon/rhydon/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Chansey[] = INCBIN_U32("graphics/pokemon/chansey/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Tangela[] = INCBIN_U32("graphics/pokemon/tangela/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Kangaskhan[] = INCBIN_U32("graphics/pokemon/kangaskhan/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Horsea[] = INCBIN_U32("graphics/pokemon/horsea/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Seadra[] = INCBIN_U32("graphics/pokemon/seadra/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Goldeen[] = INCBIN_U32("graphics/pokemon/goldeen/anim_front.4bpp.lz"); -const u32 gMonFrontPic_GoldeenF[] = INCBIN_U32("graphics/pokemon/goldeen/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Seaking[] = INCBIN_U32("graphics/pokemon/seaking/anim_front.4bpp.lz"); -const u32 gMonFrontPic_SeakingF[] = INCBIN_U32("graphics/pokemon/seaking/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Staryu[] = INCBIN_U32("graphics/pokemon/staryu/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Starmie[] = INCBIN_U32("graphics/pokemon/starmie/anim_front.4bpp.lz"); -const u32 gMonFrontPic_MrMime[] = INCBIN_U32("graphics/pokemon/mr_mime/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Scyther[] = INCBIN_U32("graphics/pokemon/scyther/anim_front.4bpp.lz"); -const u32 gMonFrontPic_ScytherF[] = INCBIN_U32("graphics/pokemon/scyther/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Jynx[] = INCBIN_U32("graphics/pokemon/jynx/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Electabuzz[] = INCBIN_U32("graphics/pokemon/electabuzz/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Magmar[] = INCBIN_U32("graphics/pokemon/magmar/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Pinsir[] = INCBIN_U32("graphics/pokemon/pinsir/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Tauros[] = INCBIN_U32("graphics/pokemon/tauros/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Magikarp[] = INCBIN_U32("graphics/pokemon/magikarp/anim_front.4bpp.lz"); -const u32 gMonFrontPic_MagikarpF[] = INCBIN_U32("graphics/pokemon/magikarp/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Gyarados[] = INCBIN_U32("graphics/pokemon/gyarados/anim_front.4bpp.lz"); -const u32 gMonFrontPic_GyaradosF[] = INCBIN_U32("graphics/pokemon/gyarados/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Lapras[] = INCBIN_U32("graphics/pokemon/lapras/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Ditto[] = INCBIN_U32("graphics/pokemon/ditto/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Eevee[] = INCBIN_U32("graphics/pokemon/eevee/anim_front.4bpp.lz"); -const u32 gMonFrontPic_EeveeF[] = INCBIN_U32("graphics/pokemon/eevee/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Vaporeon[] = INCBIN_U32("graphics/pokemon/vaporeon/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Jolteon[] = INCBIN_U32("graphics/pokemon/jolteon/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Flareon[] = INCBIN_U32("graphics/pokemon/flareon/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Porygon[] = INCBIN_U32("graphics/pokemon/porygon/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Omanyte[] = INCBIN_U32("graphics/pokemon/omanyte/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Omastar[] = INCBIN_U32("graphics/pokemon/omastar/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Kabuto[] = INCBIN_U32("graphics/pokemon/kabuto/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Kabutops[] = INCBIN_U32("graphics/pokemon/kabutops/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Aerodactyl[] = INCBIN_U32("graphics/pokemon/aerodactyl/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Snorlax[] = INCBIN_U32("graphics/pokemon/snorlax/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Articuno[] = INCBIN_U32("graphics/pokemon/articuno/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Zapdos[] = INCBIN_U32("graphics/pokemon/zapdos/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Moltres[] = INCBIN_U32("graphics/pokemon/moltres/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Dratini[] = INCBIN_U32("graphics/pokemon/dratini/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Dragonair[] = INCBIN_U32("graphics/pokemon/dragonair/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Dragonite[] = INCBIN_U32("graphics/pokemon/dragonite/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Mewtwo[] = INCBIN_U32("graphics/pokemon/mewtwo/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Mew[] = INCBIN_U32("graphics/pokemon/mew/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Chikorita[] = INCBIN_U32("graphics/pokemon/chikorita/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Bayleef[] = INCBIN_U32("graphics/pokemon/bayleef/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Meganium[] = INCBIN_U32("graphics/pokemon/meganium/anim_front.4bpp.lz"); -const u32 gMonFrontPic_MeganiumF[] = INCBIN_U32("graphics/pokemon/meganium/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Cyndaquil[] = INCBIN_U32("graphics/pokemon/cyndaquil/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Quilava[] = INCBIN_U32("graphics/pokemon/quilava/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Typhlosion[] = INCBIN_U32("graphics/pokemon/typhlosion/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Totodile[] = INCBIN_U32("graphics/pokemon/totodile/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Croconaw[] = INCBIN_U32("graphics/pokemon/croconaw/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Feraligatr[] = INCBIN_U32("graphics/pokemon/feraligatr/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Sentret[] = INCBIN_U32("graphics/pokemon/sentret/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Furret[] = INCBIN_U32("graphics/pokemon/furret/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Hoothoot[] = INCBIN_U32("graphics/pokemon/hoothoot/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Noctowl[] = INCBIN_U32("graphics/pokemon/noctowl/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Ledyba[] = INCBIN_U32("graphics/pokemon/ledyba/anim_front.4bpp.lz"); -const u32 gMonFrontPic_LedybaF[] = INCBIN_U32("graphics/pokemon/ledyba/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Ledian[] = INCBIN_U32("graphics/pokemon/ledian/anim_front.4bpp.lz"); -const u32 gMonFrontPic_LedianF[] = INCBIN_U32("graphics/pokemon/ledian/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Spinarak[] = INCBIN_U32("graphics/pokemon/spinarak/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Ariados[] = INCBIN_U32("graphics/pokemon/ariados/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Crobat[] = INCBIN_U32("graphics/pokemon/crobat/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Chinchou[] = INCBIN_U32("graphics/pokemon/chinchou/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Lanturn[] = INCBIN_U32("graphics/pokemon/lanturn/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Pichu[] = INCBIN_U32("graphics/pokemon/pichu/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Cleffa[] = INCBIN_U32("graphics/pokemon/cleffa/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Igglybuff[] = INCBIN_U32("graphics/pokemon/igglybuff/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Togepi[] = INCBIN_U32("graphics/pokemon/togepi/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Togetic[] = INCBIN_U32("graphics/pokemon/togetic/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Natu[] = INCBIN_U32("graphics/pokemon/natu/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Xatu[] = INCBIN_U32("graphics/pokemon/xatu/anim_front.4bpp.lz"); -const u32 gMonFrontPic_XatuF[] = INCBIN_U32("graphics/pokemon/xatu/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Mareep[] = INCBIN_U32("graphics/pokemon/mareep/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Flaaffy[] = INCBIN_U32("graphics/pokemon/flaaffy/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Ampharos[] = INCBIN_U32("graphics/pokemon/ampharos/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Bellossom[] = INCBIN_U32("graphics/pokemon/bellossom/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Marill[] = INCBIN_U32("graphics/pokemon/marill/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Azumarill[] = INCBIN_U32("graphics/pokemon/azumarill/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Sudowoodo[] = INCBIN_U32("graphics/pokemon/sudowoodo/anim_front.4bpp.lz"); -const u32 gMonFrontPic_SudowoodoF[] = INCBIN_U32("graphics/pokemon/sudowoodo/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Politoed[] = INCBIN_U32("graphics/pokemon/politoed/anim_front.4bpp.lz"); -const u32 gMonFrontPic_PolitoedF[] = INCBIN_U32("graphics/pokemon/politoed/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Hoppip[] = INCBIN_U32("graphics/pokemon/hoppip/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Skiploom[] = INCBIN_U32("graphics/pokemon/skiploom/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Jumpluff[] = INCBIN_U32("graphics/pokemon/jumpluff/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Aipom[] = INCBIN_U32("graphics/pokemon/aipom/anim_front.4bpp.lz"); -const u32 gMonFrontPic_AipomF[] = INCBIN_U32("graphics/pokemon/aipom/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Sunkern[] = INCBIN_U32("graphics/pokemon/sunkern/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Sunflora[] = INCBIN_U32("graphics/pokemon/sunflora/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Yanma[] = INCBIN_U32("graphics/pokemon/yanma/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Wooper[] = INCBIN_U32("graphics/pokemon/wooper/anim_front.4bpp.lz"); -const u32 gMonFrontPic_WooperF[] = INCBIN_U32("graphics/pokemon/wooper/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Quagsire[] = INCBIN_U32("graphics/pokemon/quagsire/anim_front.4bpp.lz"); -const u32 gMonFrontPic_QuagsireF[] = INCBIN_U32("graphics/pokemon/quagsire/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Espeon[] = INCBIN_U32("graphics/pokemon/espeon/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Umbreon[] = INCBIN_U32("graphics/pokemon/umbreon/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Murkrow[] = INCBIN_U32("graphics/pokemon/murkrow/anim_front.4bpp.lz"); -const u32 gMonFrontPic_MurkrowF[] = INCBIN_U32("graphics/pokemon/murkrow/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Slowking[] = INCBIN_U32("graphics/pokemon/slowking/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Misdreavus[] = INCBIN_U32("graphics/pokemon/misdreavus/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Unown[] = INCBIN_U32("graphics/pokemon/unown/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Wobbuffet[] = INCBIN_U32("graphics/pokemon/wobbuffet/anim_front.4bpp.lz"); -const u32 gMonFrontPic_WobbuffetF[] = INCBIN_U32("graphics/pokemon/wobbuffet/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Girafarig[] = INCBIN_U32("graphics/pokemon/girafarig/anim_front.4bpp.lz"); -const u32 gMonFrontPic_GirafarigF[] = INCBIN_U32("graphics/pokemon/girafarig/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Pineco[] = INCBIN_U32("graphics/pokemon/pineco/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Forretress[] = INCBIN_U32("graphics/pokemon/forretress/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Dunsparce[] = INCBIN_U32("graphics/pokemon/dunsparce/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Gligar[] = INCBIN_U32("graphics/pokemon/gligar/anim_front.4bpp.lz"); -const u32 gMonFrontPic_GligarF[] = INCBIN_U32("graphics/pokemon/gligar/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Steelix[] = INCBIN_U32("graphics/pokemon/steelix/anim_front.4bpp.lz"); -const u32 gMonFrontPic_SteelixF[] = INCBIN_U32("graphics/pokemon/steelix/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Snubbull[] = INCBIN_U32("graphics/pokemon/snubbull/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Granbull[] = INCBIN_U32("graphics/pokemon/granbull/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Qwilfish[] = INCBIN_U32("graphics/pokemon/qwilfish/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Scizor[] = INCBIN_U32("graphics/pokemon/scizor/anim_front.4bpp.lz"); -const u32 gMonFrontPic_ScizorF[] = INCBIN_U32("graphics/pokemon/scizor/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Shuckle[] = INCBIN_U32("graphics/pokemon/shuckle/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Heracross[] = INCBIN_U32("graphics/pokemon/heracross/anim_front.4bpp.lz"); -const u32 gMonFrontPic_HeracrossF[] = INCBIN_U32("graphics/pokemon/heracross/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Sneasel[] = INCBIN_U32("graphics/pokemon/sneasel/anim_front.4bpp.lz"); -const u32 gMonFrontPic_SneaselF[] = INCBIN_U32("graphics/pokemon/sneasel/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Teddiursa[] = INCBIN_U32("graphics/pokemon/teddiursa/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Ursaring[] = INCBIN_U32("graphics/pokemon/ursaring/anim_front.4bpp.lz"); -const u32 gMonFrontPic_UrsaringF[] = INCBIN_U32("graphics/pokemon/ursaring/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Slugma[] = INCBIN_U32("graphics/pokemon/slugma/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Magcargo[] = INCBIN_U32("graphics/pokemon/magcargo/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Swinub[] = INCBIN_U32("graphics/pokemon/swinub/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Piloswine[] = INCBIN_U32("graphics/pokemon/piloswine/anim_front.4bpp.lz"); -const u32 gMonFrontPic_PiloswineF[] = INCBIN_U32("graphics/pokemon/piloswine/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Corsola[] = INCBIN_U32("graphics/pokemon/corsola/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Remoraid[] = INCBIN_U32("graphics/pokemon/remoraid/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Octillery[] = INCBIN_U32("graphics/pokemon/octillery/anim_front.4bpp.lz"); -const u32 gMonFrontPic_OctilleryF[] = INCBIN_U32("graphics/pokemon/octillery/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Delibird[] = INCBIN_U32("graphics/pokemon/delibird/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Mantine[] = INCBIN_U32("graphics/pokemon/mantine/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Skarmory[] = INCBIN_U32("graphics/pokemon/skarmory/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Houndour[] = INCBIN_U32("graphics/pokemon/houndour/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Houndoom[] = INCBIN_U32("graphics/pokemon/houndoom/anim_front.4bpp.lz"); -const u32 gMonFrontPic_HoundoomF[] = INCBIN_U32("graphics/pokemon/houndoom/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Kingdra[] = INCBIN_U32("graphics/pokemon/kingdra/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Phanpy[] = INCBIN_U32("graphics/pokemon/phanpy/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Donphan[] = INCBIN_U32("graphics/pokemon/donphan/anim_front.4bpp.lz"); -const u32 gMonFrontPic_DonphanF[] = INCBIN_U32("graphics/pokemon/donphan/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Porygon2[] = INCBIN_U32("graphics/pokemon/porygon2/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Stantler[] = INCBIN_U32("graphics/pokemon/stantler/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Smeargle[] = INCBIN_U32("graphics/pokemon/smeargle/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Tyrogue[] = INCBIN_U32("graphics/pokemon/tyrogue/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Hitmontop[] = INCBIN_U32("graphics/pokemon/hitmontop/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Smoochum[] = INCBIN_U32("graphics/pokemon/smoochum/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Elekid[] = INCBIN_U32("graphics/pokemon/elekid/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Magby[] = INCBIN_U32("graphics/pokemon/magby/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Miltank[] = INCBIN_U32("graphics/pokemon/miltank/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Blissey[] = INCBIN_U32("graphics/pokemon/blissey/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Raikou[] = INCBIN_U32("graphics/pokemon/raikou/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Entei[] = INCBIN_U32("graphics/pokemon/entei/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Suicune[] = INCBIN_U32("graphics/pokemon/suicune/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Larvitar[] = INCBIN_U32("graphics/pokemon/larvitar/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Pupitar[] = INCBIN_U32("graphics/pokemon/pupitar/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Tyranitar[] = INCBIN_U32("graphics/pokemon/tyranitar/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Lugia[] = INCBIN_U32("graphics/pokemon/lugia/anim_front.4bpp.lz"); -const u32 gMonFrontPic_HoOh[] = INCBIN_U32("graphics/pokemon/ho_oh/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Celebi[] = INCBIN_U32("graphics/pokemon/celebi/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Treecko[] = INCBIN_U32("graphics/pokemon/treecko/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Grovyle[] = INCBIN_U32("graphics/pokemon/grovyle/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Sceptile[] = INCBIN_U32("graphics/pokemon/sceptile/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Torchic[] = INCBIN_U32("graphics/pokemon/torchic/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Combusken[] = INCBIN_U32("graphics/pokemon/combusken/anim_front.4bpp.lz"); -const u32 gMonFrontPic_CombuskenF[] = INCBIN_U32("graphics/pokemon/combusken/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Blaziken[] = INCBIN_U32("graphics/pokemon/blaziken/anim_front.4bpp.lz"); -const u32 gMonFrontPic_BlazikenF[] = INCBIN_U32("graphics/pokemon/blaziken/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Mudkip[] = INCBIN_U32("graphics/pokemon/mudkip/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Marshtomp[] = INCBIN_U32("graphics/pokemon/marshtomp/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Swampert[] = INCBIN_U32("graphics/pokemon/swampert/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Poochyena[] = INCBIN_U32("graphics/pokemon/poochyena/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Mightyena[] = INCBIN_U32("graphics/pokemon/mightyena/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Zigzagoon[] = INCBIN_U32("graphics/pokemon/zigzagoon/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Linoone[] = INCBIN_U32("graphics/pokemon/linoone/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Wurmple[] = INCBIN_U32("graphics/pokemon/wurmple/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Silcoon[] = INCBIN_U32("graphics/pokemon/silcoon/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Beautifly[] = INCBIN_U32("graphics/pokemon/beautifly/anim_front.4bpp.lz"); -const u32 gMonFrontPic_BeautiflyF[] = INCBIN_U32("graphics/pokemon/beautifly/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Cascoon[] = INCBIN_U32("graphics/pokemon/cascoon/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Dustox[] = INCBIN_U32("graphics/pokemon/dustox/anim_front.4bpp.lz"); -const u32 gMonFrontPic_DustoxF[] = INCBIN_U32("graphics/pokemon/dustox/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Lotad[] = INCBIN_U32("graphics/pokemon/lotad/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Lombre[] = INCBIN_U32("graphics/pokemon/lombre/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Ludicolo[] = INCBIN_U32("graphics/pokemon/ludicolo/anim_front.4bpp.lz"); -const u32 gMonFrontPic_LudicoloF[] = INCBIN_U32("graphics/pokemon/ludicolo/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Seedot[] = INCBIN_U32("graphics/pokemon/seedot/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Nuzleaf[] = INCBIN_U32("graphics/pokemon/nuzleaf/anim_front.4bpp.lz"); -const u32 gMonFrontPic_NuzleafF[] = INCBIN_U32("graphics/pokemon/nuzleaf/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Shiftry[] = INCBIN_U32("graphics/pokemon/shiftry/anim_front.4bpp.lz"); -const u32 gMonFrontPic_ShiftryF[] = INCBIN_U32("graphics/pokemon/shiftry/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Taillow[] = INCBIN_U32("graphics/pokemon/taillow/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Swellow[] = INCBIN_U32("graphics/pokemon/swellow/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Wingull[] = INCBIN_U32("graphics/pokemon/wingull/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Pelipper[] = INCBIN_U32("graphics/pokemon/pelipper/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Ralts[] = INCBIN_U32("graphics/pokemon/ralts/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Kirlia[] = INCBIN_U32("graphics/pokemon/kirlia/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Gardevoir[] = INCBIN_U32("graphics/pokemon/gardevoir/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Surskit[] = INCBIN_U32("graphics/pokemon/surskit/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Masquerain[] = INCBIN_U32("graphics/pokemon/masquerain/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Shroomish[] = INCBIN_U32("graphics/pokemon/shroomish/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Breloom[] = INCBIN_U32("graphics/pokemon/breloom/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Slakoth[] = INCBIN_U32("graphics/pokemon/slakoth/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Vigoroth[] = INCBIN_U32("graphics/pokemon/vigoroth/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Slaking[] = INCBIN_U32("graphics/pokemon/slaking/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Nincada[] = INCBIN_U32("graphics/pokemon/nincada/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Ninjask[] = INCBIN_U32("graphics/pokemon/ninjask/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Shedinja[] = INCBIN_U32("graphics/pokemon/shedinja/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Whismur[] = INCBIN_U32("graphics/pokemon/whismur/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Loudred[] = INCBIN_U32("graphics/pokemon/loudred/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Exploud[] = INCBIN_U32("graphics/pokemon/exploud/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Makuhita[] = INCBIN_U32("graphics/pokemon/makuhita/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Hariyama[] = INCBIN_U32("graphics/pokemon/hariyama/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Azurill[] = INCBIN_U32("graphics/pokemon/azurill/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Nosepass[] = INCBIN_U32("graphics/pokemon/nosepass/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Skitty[] = INCBIN_U32("graphics/pokemon/skitty/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Delcatty[] = INCBIN_U32("graphics/pokemon/delcatty/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Sableye[] = INCBIN_U32("graphics/pokemon/sableye/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Mawile[] = INCBIN_U32("graphics/pokemon/mawile/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Aron[] = INCBIN_U32("graphics/pokemon/aron/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Lairon[] = INCBIN_U32("graphics/pokemon/lairon/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Aggron[] = INCBIN_U32("graphics/pokemon/aggron/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Meditite[] = INCBIN_U32("graphics/pokemon/meditite/anim_front.4bpp.lz"); -const u32 gMonFrontPic_MedititeF[] = INCBIN_U32("graphics/pokemon/meditite/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Medicham[] = INCBIN_U32("graphics/pokemon/medicham/anim_front.4bpp.lz"); -const u32 gMonFrontPic_MedichamF[] = INCBIN_U32("graphics/pokemon/medicham/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Electrike[] = INCBIN_U32("graphics/pokemon/electrike/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Manectric[] = INCBIN_U32("graphics/pokemon/manectric/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Plusle[] = INCBIN_U32("graphics/pokemon/plusle/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Minun[] = INCBIN_U32("graphics/pokemon/minun/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Volbeat[] = INCBIN_U32("graphics/pokemon/volbeat/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Illumise[] = INCBIN_U32("graphics/pokemon/illumise/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Roselia[] = INCBIN_U32("graphics/pokemon/roselia/anim_front.4bpp.lz"); -const u32 gMonFrontPic_RoseliaF[] = INCBIN_U32("graphics/pokemon/roselia/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Gulpin[] = INCBIN_U32("graphics/pokemon/gulpin/anim_front.4bpp.lz"); -const u32 gMonFrontPic_GulpinF[] = INCBIN_U32("graphics/pokemon/gulpin/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Swalot[] = INCBIN_U32("graphics/pokemon/swalot/anim_front.4bpp.lz"); -const u32 gMonFrontPic_SwalotF[] = INCBIN_U32("graphics/pokemon/swalot/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Carvanha[] = INCBIN_U32("graphics/pokemon/carvanha/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Sharpedo[] = INCBIN_U32("graphics/pokemon/sharpedo/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Wailmer[] = INCBIN_U32("graphics/pokemon/wailmer/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Wailord[] = INCBIN_U32("graphics/pokemon/wailord/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Numel[] = INCBIN_U32("graphics/pokemon/numel/anim_front.4bpp.lz"); -const u32 gMonFrontPic_NumelF[] = INCBIN_U32("graphics/pokemon/numel/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Camerupt[] = INCBIN_U32("graphics/pokemon/camerupt/anim_front.4bpp.lz"); -const u32 gMonFrontPic_CameruptF[] = INCBIN_U32("graphics/pokemon/camerupt/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Torkoal[] = INCBIN_U32("graphics/pokemon/torkoal/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Spoink[] = INCBIN_U32("graphics/pokemon/spoink/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Grumpig[] = INCBIN_U32("graphics/pokemon/grumpig/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Spinda[] = INCBIN_U32("graphics/pokemon/spinda/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Trapinch[] = INCBIN_U32("graphics/pokemon/trapinch/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Vibrava[] = INCBIN_U32("graphics/pokemon/vibrava/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Flygon[] = INCBIN_U32("graphics/pokemon/flygon/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Cacnea[] = INCBIN_U32("graphics/pokemon/cacnea/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Cacturne[] = INCBIN_U32("graphics/pokemon/cacturne/anim_front.4bpp.lz"); -const u32 gMonFrontPic_CacturneF[] = INCBIN_U32("graphics/pokemon/cacturne/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Swablu[] = INCBIN_U32("graphics/pokemon/swablu/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Altaria[] = INCBIN_U32("graphics/pokemon/altaria/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Zangoose[] = INCBIN_U32("graphics/pokemon/zangoose/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Seviper[] = INCBIN_U32("graphics/pokemon/seviper/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Lunatone[] = INCBIN_U32("graphics/pokemon/lunatone/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Solrock[] = INCBIN_U32("graphics/pokemon/solrock/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Barboach[] = INCBIN_U32("graphics/pokemon/barboach/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Whiscash[] = INCBIN_U32("graphics/pokemon/whiscash/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Corphish[] = INCBIN_U32("graphics/pokemon/corphish/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Crawdaunt[] = INCBIN_U32("graphics/pokemon/crawdaunt/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Baltoy[] = INCBIN_U32("graphics/pokemon/baltoy/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Claydol[] = INCBIN_U32("graphics/pokemon/claydol/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Lileep[] = INCBIN_U32("graphics/pokemon/lileep/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Cradily[] = INCBIN_U32("graphics/pokemon/cradily/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Anorith[] = INCBIN_U32("graphics/pokemon/anorith/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Armaldo[] = INCBIN_U32("graphics/pokemon/armaldo/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Feebas[] = INCBIN_U32("graphics/pokemon/feebas/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Milotic[] = INCBIN_U32("graphics/pokemon/milotic/anim_front.4bpp.lz"); -const u32 gMonFrontPic_MiloticF[] = INCBIN_U32("graphics/pokemon/milotic/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_CastformNormal[] = INCBIN_U32("graphics/pokemon/castform/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Kecleon[] = INCBIN_U32("graphics/pokemon/kecleon/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Shuppet[] = INCBIN_U32("graphics/pokemon/shuppet/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Banette[] = INCBIN_U32("graphics/pokemon/banette/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Duskull[] = INCBIN_U32("graphics/pokemon/duskull/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Dusclops[] = INCBIN_U32("graphics/pokemon/dusclops/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Tropius[] = INCBIN_U32("graphics/pokemon/tropius/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Chimecho[] = INCBIN_U32("graphics/pokemon/chimecho/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Absol[] = INCBIN_U32("graphics/pokemon/absol/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Wynaut[] = INCBIN_U32("graphics/pokemon/wynaut/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Snorunt[] = INCBIN_U32("graphics/pokemon/snorunt/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Glalie[] = INCBIN_U32("graphics/pokemon/glalie/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Spheal[] = INCBIN_U32("graphics/pokemon/spheal/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Sealeo[] = INCBIN_U32("graphics/pokemon/sealeo/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Walrein[] = INCBIN_U32("graphics/pokemon/walrein/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Clamperl[] = INCBIN_U32("graphics/pokemon/clamperl/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Huntail[] = INCBIN_U32("graphics/pokemon/huntail/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Gorebyss[] = INCBIN_U32("graphics/pokemon/gorebyss/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Relicanth[] = INCBIN_U32("graphics/pokemon/relicanth/anim_front.4bpp.lz"); -const u32 gMonFrontPic_RelicanthF[] = INCBIN_U32("graphics/pokemon/relicanth/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Luvdisc[] = INCBIN_U32("graphics/pokemon/luvdisc/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Bagon[] = INCBIN_U32("graphics/pokemon/bagon/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Shelgon[] = INCBIN_U32("graphics/pokemon/shelgon/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Salamence[] = INCBIN_U32("graphics/pokemon/salamence/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Beldum[] = INCBIN_U32("graphics/pokemon/beldum/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Metang[] = INCBIN_U32("graphics/pokemon/metang/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Metagross[] = INCBIN_U32("graphics/pokemon/metagross/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Regirock[] = INCBIN_U32("graphics/pokemon/regirock/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Regice[] = INCBIN_U32("graphics/pokemon/regice/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Registeel[] = INCBIN_U32("graphics/pokemon/registeel/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Latias[] = INCBIN_U32("graphics/pokemon/latias/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Latios[] = INCBIN_U32("graphics/pokemon/latios/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Kyogre[] = INCBIN_U32("graphics/pokemon/kyogre/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Groudon[] = INCBIN_U32("graphics/pokemon/groudon/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Rayquaza[] = INCBIN_U32("graphics/pokemon/rayquaza/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Jirachi[] = INCBIN_U32("graphics/pokemon/jirachi/anim_front.4bpp.lz"); -const u32 gMonFrontPic_DeoxysNormal[] = INCBIN_U32("graphics/pokemon/deoxys/anim_front.4bpp.lz"); -#if P_GEN_4_POKEMON == TRUE -const u32 gMonFrontPic_Turtwig[] = INCBIN_U32("graphics/pokemon/turtwig/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Grotle[] = INCBIN_U32("graphics/pokemon/grotle/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Torterra[] = INCBIN_U32("graphics/pokemon/torterra/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Chimchar[] = INCBIN_U32("graphics/pokemon/chimchar/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Monferno[] = INCBIN_U32("graphics/pokemon/monferno/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Infernape[] = INCBIN_U32("graphics/pokemon/infernape/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Piplup[] = INCBIN_U32("graphics/pokemon/piplup/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Prinplup[] = INCBIN_U32("graphics/pokemon/prinplup/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Empoleon[] = INCBIN_U32("graphics/pokemon/empoleon/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Starly[] = INCBIN_U32("graphics/pokemon/starly/anim_front.4bpp.lz"); -const u32 gMonFrontPic_StarlyF[] = INCBIN_U32("graphics/pokemon/starly/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Staravia[] = INCBIN_U32("graphics/pokemon/staravia/anim_front.4bpp.lz"); -const u32 gMonFrontPic_StaraviaF[] = INCBIN_U32("graphics/pokemon/staravia/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Staraptor[] = INCBIN_U32("graphics/pokemon/staraptor/anim_front.4bpp.lz"); -const u32 gMonFrontPic_StaraptorF[] = INCBIN_U32("graphics/pokemon/staraptor/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Bidoof[] = INCBIN_U32("graphics/pokemon/bidoof/anim_front.4bpp.lz"); -const u32 gMonFrontPic_BidoofF[] = INCBIN_U32("graphics/pokemon/bidoof/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Bibarel[] = INCBIN_U32("graphics/pokemon/bibarel/anim_front.4bpp.lz"); -const u32 gMonFrontPic_BibarelF[] = INCBIN_U32("graphics/pokemon/bibarel/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Kricketot[] = INCBIN_U32("graphics/pokemon/kricketot/anim_front.4bpp.lz"); -const u32 gMonFrontPic_KricketotF[] = INCBIN_U32("graphics/pokemon/kricketot/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Kricketune[] = INCBIN_U32("graphics/pokemon/kricketune/anim_front.4bpp.lz"); -const u32 gMonFrontPic_KricketuneF[] = INCBIN_U32("graphics/pokemon/kricketune/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Shinx[] = INCBIN_U32("graphics/pokemon/shinx/anim_front.4bpp.lz"); -const u32 gMonFrontPic_ShinxF[] = INCBIN_U32("graphics/pokemon/shinx/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Luxio[] = INCBIN_U32("graphics/pokemon/luxio/anim_front.4bpp.lz"); -const u32 gMonFrontPic_LuxioF[] = INCBIN_U32("graphics/pokemon/luxio/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Luxray[] = INCBIN_U32("graphics/pokemon/luxray/anim_front.4bpp.lz"); -const u32 gMonFrontPic_LuxrayF[] = INCBIN_U32("graphics/pokemon/luxray/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Budew[] = INCBIN_U32("graphics/pokemon/budew/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Roserade[] = INCBIN_U32("graphics/pokemon/roserade/anim_front.4bpp.lz"); -const u32 gMonFrontPic_RoseradeF[] = INCBIN_U32("graphics/pokemon/roserade/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Cranidos[] = INCBIN_U32("graphics/pokemon/cranidos/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Rampardos[] = INCBIN_U32("graphics/pokemon/rampardos/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Shieldon[] = INCBIN_U32("graphics/pokemon/shieldon/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Bastiodon[] = INCBIN_U32("graphics/pokemon/bastiodon/anim_front.4bpp.lz"); -const u32 gMonFrontPic_BurmyPlantCloak[] = INCBIN_U32("graphics/pokemon/burmy/anim_front.4bpp.lz"); -const u32 gMonFrontPic_WormadamPlantCloak[] = INCBIN_U32("graphics/pokemon/wormadam/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Mothim[] = INCBIN_U32("graphics/pokemon/mothim/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Combee[] = INCBIN_U32("graphics/pokemon/combee/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Vespiquen[] = INCBIN_U32("graphics/pokemon/vespiquen/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Pachirisu[] = INCBIN_U32("graphics/pokemon/pachirisu/anim_front.4bpp.lz"); -const u32 gMonFrontPic_PachirisuF[] = INCBIN_U32("graphics/pokemon/pachirisu/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Buizel[] = INCBIN_U32("graphics/pokemon/buizel/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Floatzel[] = INCBIN_U32("graphics/pokemon/floatzel/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Cherubi[] = INCBIN_U32("graphics/pokemon/cherubi/anim_front.4bpp.lz"); -const u32 gMonFrontPic_CherrimOvercast[] = INCBIN_U32("graphics/pokemon/cherrim/anim_front.4bpp.lz"); -const u32 gMonFrontPic_ShellosWestSea[] = INCBIN_U32("graphics/pokemon/shellos/anim_front.4bpp.lz"); -const u32 gMonFrontPic_GastrodonWestSea[] = INCBIN_U32("graphics/pokemon/gastrodon/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Ambipom[] = INCBIN_U32("graphics/pokemon/ambipom/anim_front.4bpp.lz"); -const u32 gMonFrontPic_AmbipomF[] = INCBIN_U32("graphics/pokemon/ambipom/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Drifloon[] = INCBIN_U32("graphics/pokemon/drifloon/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Drifblim[] = INCBIN_U32("graphics/pokemon/drifblim/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Buneary[] = INCBIN_U32("graphics/pokemon/buneary/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Lopunny[] = INCBIN_U32("graphics/pokemon/lopunny/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Mismagius[] = INCBIN_U32("graphics/pokemon/mismagius/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Honchkrow[] = INCBIN_U32("graphics/pokemon/honchkrow/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Glameow[] = INCBIN_U32("graphics/pokemon/glameow/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Purugly[] = INCBIN_U32("graphics/pokemon/purugly/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Chingling[] = INCBIN_U32("graphics/pokemon/chingling/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Stunky[] = INCBIN_U32("graphics/pokemon/stunky/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Skuntank[] = INCBIN_U32("graphics/pokemon/skuntank/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Bronzor[] = INCBIN_U32("graphics/pokemon/bronzor/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Bronzong[] = INCBIN_U32("graphics/pokemon/bronzong/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Bonsly[] = INCBIN_U32("graphics/pokemon/bonsly/anim_front.4bpp.lz"); -const u32 gMonFrontPic_MimeJr[] = INCBIN_U32("graphics/pokemon/mime_jr/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Happiny[] = INCBIN_U32("graphics/pokemon/happiny/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Chatot[] = INCBIN_U32("graphics/pokemon/chatot/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Spiritomb[] = INCBIN_U32("graphics/pokemon/spiritomb/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Gible[] = INCBIN_U32("graphics/pokemon/gible/anim_front.4bpp.lz"); -const u32 gMonFrontPic_GibleF[] = INCBIN_U32("graphics/pokemon/gible/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Gabite[] = INCBIN_U32("graphics/pokemon/gabite/anim_front.4bpp.lz"); -const u32 gMonFrontPic_GabiteF[] = INCBIN_U32("graphics/pokemon/gabite/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Garchomp[] = INCBIN_U32("graphics/pokemon/garchomp/anim_front.4bpp.lz"); -const u32 gMonFrontPic_GarchompF[] = INCBIN_U32("graphics/pokemon/garchomp/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Munchlax[] = INCBIN_U32("graphics/pokemon/munchlax/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Riolu[] = INCBIN_U32("graphics/pokemon/riolu/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Lucario[] = INCBIN_U32("graphics/pokemon/lucario/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Hippopotas[] = INCBIN_U32("graphics/pokemon/hippopotas/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Hippowdon[] = INCBIN_U32("graphics/pokemon/hippowdon/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Skorupi[] = INCBIN_U32("graphics/pokemon/skorupi/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Drapion[] = INCBIN_U32("graphics/pokemon/drapion/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Croagunk[] = INCBIN_U32("graphics/pokemon/croagunk/anim_front.4bpp.lz"); -const u32 gMonFrontPic_CroagunkF[] = INCBIN_U32("graphics/pokemon/croagunk/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Toxicroak[] = INCBIN_U32("graphics/pokemon/toxicroak/anim_front.4bpp.lz"); -const u32 gMonFrontPic_ToxicroakF[] = INCBIN_U32("graphics/pokemon/toxicroak/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Carnivine[] = INCBIN_U32("graphics/pokemon/carnivine/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Finneon[] = INCBIN_U32("graphics/pokemon/finneon/anim_front.4bpp.lz"); -const u32 gMonFrontPic_FinneonF[] = INCBIN_U32("graphics/pokemon/finneon/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Lumineon[] = INCBIN_U32("graphics/pokemon/lumineon/anim_front.4bpp.lz"); -const u32 gMonFrontPic_LumineonF[] = INCBIN_U32("graphics/pokemon/lumineon/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Mantyke[] = INCBIN_U32("graphics/pokemon/mantyke/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Snover[] = INCBIN_U32("graphics/pokemon/snover/anim_front.4bpp.lz"); -const u32 gMonFrontPic_SnoverF[] = INCBIN_U32("graphics/pokemon/snover/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Abomasnow[] = INCBIN_U32("graphics/pokemon/abomasnow/anim_front.4bpp.lz"); -const u32 gMonFrontPic_AbomasnowF[] = INCBIN_U32("graphics/pokemon/abomasnow/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Weavile[] = INCBIN_U32("graphics/pokemon/weavile/anim_front.4bpp.lz"); -const u32 gMonFrontPic_WeavileF[] = INCBIN_U32("graphics/pokemon/weavile/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Magnezone[] = INCBIN_U32("graphics/pokemon/magnezone/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Lickilicky[] = INCBIN_U32("graphics/pokemon/lickilicky/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Rhyperior[] = INCBIN_U32("graphics/pokemon/rhyperior/anim_front.4bpp.lz"); -const u32 gMonFrontPic_RhyperiorF[] = INCBIN_U32("graphics/pokemon/rhyperior/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Tangrowth[] = INCBIN_U32("graphics/pokemon/tangrowth/anim_front.4bpp.lz"); -const u32 gMonFrontPic_TangrowthF[] = INCBIN_U32("graphics/pokemon/tangrowth/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Electivire[] = INCBIN_U32("graphics/pokemon/electivire/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Magmortar[] = INCBIN_U32("graphics/pokemon/magmortar/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Togekiss[] = INCBIN_U32("graphics/pokemon/togekiss/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Yanmega[] = INCBIN_U32("graphics/pokemon/yanmega/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Leafeon[] = INCBIN_U32("graphics/pokemon/leafeon/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Glaceon[] = INCBIN_U32("graphics/pokemon/glaceon/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Gliscor[] = INCBIN_U32("graphics/pokemon/gliscor/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Mamoswine[] = INCBIN_U32("graphics/pokemon/mamoswine/anim_front.4bpp.lz"); -const u32 gMonFrontPic_MamoswineF[] = INCBIN_U32("graphics/pokemon/mamoswine/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_PorygonZ[] = INCBIN_U32("graphics/pokemon/porygon_z/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Gallade[] = INCBIN_U32("graphics/pokemon/gallade/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Probopass[] = INCBIN_U32("graphics/pokemon/probopass/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Dusknoir[] = INCBIN_U32("graphics/pokemon/dusknoir/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Froslass[] = INCBIN_U32("graphics/pokemon/froslass/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Rotom[] = INCBIN_U32("graphics/pokemon/rotom/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Uxie[] = INCBIN_U32("graphics/pokemon/uxie/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Mesprit[] = INCBIN_U32("graphics/pokemon/mesprit/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Azelf[] = INCBIN_U32("graphics/pokemon/azelf/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Dialga[] = INCBIN_U32("graphics/pokemon/dialga/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Palkia[] = INCBIN_U32("graphics/pokemon/palkia/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Heatran[] = INCBIN_U32("graphics/pokemon/heatran/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Regigigas[] = INCBIN_U32("graphics/pokemon/regigigas/anim_front.4bpp.lz"); -const u32 gMonFrontPic_GiratinaAltered[] = INCBIN_U32("graphics/pokemon/giratina/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Cresselia[] = INCBIN_U32("graphics/pokemon/cresselia/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Phione[] = INCBIN_U32("graphics/pokemon/phione/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Manaphy[] = INCBIN_U32("graphics/pokemon/manaphy/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Darkrai[] = INCBIN_U32("graphics/pokemon/darkrai/anim_front.4bpp.lz"); -const u32 gMonFrontPic_ShayminLand[] = INCBIN_U32("graphics/pokemon/shaymin/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Arceus[] = INCBIN_U32("graphics/pokemon/arceus/anim_front.4bpp.lz"); -#endif -#if P_GEN_5_POKEMON == TRUE -const u32 gMonFrontPic_Victini[] = INCBIN_U32("graphics/pokemon/victini/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Snivy[] = INCBIN_U32("graphics/pokemon/snivy/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Servine[] = INCBIN_U32("graphics/pokemon/servine/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Serperior[] = INCBIN_U32("graphics/pokemon/serperior/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Tepig[] = INCBIN_U32("graphics/pokemon/tepig/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Pignite[] = INCBIN_U32("graphics/pokemon/pignite/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Emboar[] = INCBIN_U32("graphics/pokemon/emboar/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Oshawott[] = INCBIN_U32("graphics/pokemon/oshawott/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Dewott[] = INCBIN_U32("graphics/pokemon/dewott/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Samurott[] = INCBIN_U32("graphics/pokemon/samurott/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Patrat[] = INCBIN_U32("graphics/pokemon/patrat/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Watchog[] = INCBIN_U32("graphics/pokemon/watchog/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Lillipup[] = INCBIN_U32("graphics/pokemon/lillipup/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Herdier[] = INCBIN_U32("graphics/pokemon/herdier/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Stoutland[] = INCBIN_U32("graphics/pokemon/stoutland/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Purrloin[] = INCBIN_U32("graphics/pokemon/purrloin/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Liepard[] = INCBIN_U32("graphics/pokemon/liepard/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Pansage[] = INCBIN_U32("graphics/pokemon/pansage/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Simisage[] = INCBIN_U32("graphics/pokemon/simisage/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Pansear[] = INCBIN_U32("graphics/pokemon/pansear/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Simisear[] = INCBIN_U32("graphics/pokemon/simisear/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Panpour[] = INCBIN_U32("graphics/pokemon/panpour/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Simipour[] = INCBIN_U32("graphics/pokemon/simipour/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Munna[] = INCBIN_U32("graphics/pokemon/munna/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Musharna[] = INCBIN_U32("graphics/pokemon/musharna/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Pidove[] = INCBIN_U32("graphics/pokemon/pidove/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Tranquill[] = INCBIN_U32("graphics/pokemon/tranquill/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Unfezant[] = INCBIN_U32("graphics/pokemon/unfezant/anim_front.4bpp.lz"); -const u32 gMonFrontPic_UnfezantF[] = INCBIN_U32("graphics/pokemon/unfezant/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Blitzle[] = INCBIN_U32("graphics/pokemon/blitzle/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Zebstrika[] = INCBIN_U32("graphics/pokemon/zebstrika/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Roggenrola[] = INCBIN_U32("graphics/pokemon/roggenrola/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Boldore[] = INCBIN_U32("graphics/pokemon/boldore/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Gigalith[] = INCBIN_U32("graphics/pokemon/gigalith/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Woobat[] = INCBIN_U32("graphics/pokemon/woobat/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Swoobat[] = INCBIN_U32("graphics/pokemon/swoobat/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Drilbur[] = INCBIN_U32("graphics/pokemon/drilbur/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Excadrill[] = INCBIN_U32("graphics/pokemon/excadrill/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Audino[] = INCBIN_U32("graphics/pokemon/audino/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Timburr[] = INCBIN_U32("graphics/pokemon/timburr/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Gurdurr[] = INCBIN_U32("graphics/pokemon/gurdurr/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Conkeldurr[] = INCBIN_U32("graphics/pokemon/conkeldurr/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Tympole[] = INCBIN_U32("graphics/pokemon/tympole/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Palpitoad[] = INCBIN_U32("graphics/pokemon/palpitoad/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Seismitoad[] = INCBIN_U32("graphics/pokemon/seismitoad/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Throh[] = INCBIN_U32("graphics/pokemon/throh/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Sawk[] = INCBIN_U32("graphics/pokemon/sawk/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Sewaddle[] = INCBIN_U32("graphics/pokemon/sewaddle/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Swadloon[] = INCBIN_U32("graphics/pokemon/swadloon/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Leavanny[] = INCBIN_U32("graphics/pokemon/leavanny/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Venipede[] = INCBIN_U32("graphics/pokemon/venipede/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Whirlipede[] = INCBIN_U32("graphics/pokemon/whirlipede/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Scolipede[] = INCBIN_U32("graphics/pokemon/scolipede/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Cottonee[] = INCBIN_U32("graphics/pokemon/cottonee/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Whimsicott[] = INCBIN_U32("graphics/pokemon/whimsicott/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Petilil[] = INCBIN_U32("graphics/pokemon/petilil/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Lilligant[] = INCBIN_U32("graphics/pokemon/lilligant/anim_front.4bpp.lz"); -const u32 gMonFrontPic_BasculinRedStriped[] = INCBIN_U32("graphics/pokemon/basculin/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Sandile[] = INCBIN_U32("graphics/pokemon/sandile/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Krokorok[] = INCBIN_U32("graphics/pokemon/krokorok/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Krookodile[] = INCBIN_U32("graphics/pokemon/krookodile/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Darumaka[] = INCBIN_U32("graphics/pokemon/darumaka/anim_front.4bpp.lz"); -const u32 gMonFrontPic_DarmanitanStandardMode[] = INCBIN_U32("graphics/pokemon/darmanitan/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Maractus[] = INCBIN_U32("graphics/pokemon/maractus/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Dwebble[] = INCBIN_U32("graphics/pokemon/dwebble/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Crustle[] = INCBIN_U32("graphics/pokemon/crustle/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Scraggy[] = INCBIN_U32("graphics/pokemon/scraggy/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Scrafty[] = INCBIN_U32("graphics/pokemon/scrafty/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Sigilyph[] = INCBIN_U32("graphics/pokemon/sigilyph/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Yamask[] = INCBIN_U32("graphics/pokemon/yamask/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Cofagrigus[] = INCBIN_U32("graphics/pokemon/cofagrigus/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Tirtouga[] = INCBIN_U32("graphics/pokemon/tirtouga/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Carracosta[] = INCBIN_U32("graphics/pokemon/carracosta/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Archen[] = INCBIN_U32("graphics/pokemon/archen/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Archeops[] = INCBIN_U32("graphics/pokemon/archeops/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Trubbish[] = INCBIN_U32("graphics/pokemon/trubbish/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Garbodor[] = INCBIN_U32("graphics/pokemon/garbodor/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Zorua[] = INCBIN_U32("graphics/pokemon/zorua/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Zoroark[] = INCBIN_U32("graphics/pokemon/zoroark/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Minccino[] = INCBIN_U32("graphics/pokemon/minccino/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Cinccino[] = INCBIN_U32("graphics/pokemon/cinccino/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Gothita[] = INCBIN_U32("graphics/pokemon/gothita/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Gothorita[] = INCBIN_U32("graphics/pokemon/gothorita/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Gothitelle[] = INCBIN_U32("graphics/pokemon/gothitelle/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Solosis[] = INCBIN_U32("graphics/pokemon/solosis/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Duosion[] = INCBIN_U32("graphics/pokemon/duosion/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Reuniclus[] = INCBIN_U32("graphics/pokemon/reuniclus/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Ducklett[] = INCBIN_U32("graphics/pokemon/ducklett/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Swanna[] = INCBIN_U32("graphics/pokemon/swanna/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Vanillite[] = INCBIN_U32("graphics/pokemon/vanillite/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Vanillish[] = INCBIN_U32("graphics/pokemon/vanillish/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Vanilluxe[] = INCBIN_U32("graphics/pokemon/vanilluxe/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Deerling[] = INCBIN_U32("graphics/pokemon/deerling/anim_front.4bpp.lz"); -const u32 gMonFrontPic_SawsbuckSpring[] = INCBIN_U32("graphics/pokemon/sawsbuck/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Emolga[] = INCBIN_U32("graphics/pokemon/emolga/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Karrablast[] = INCBIN_U32("graphics/pokemon/karrablast/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Escavalier[] = INCBIN_U32("graphics/pokemon/escavalier/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Foongus[] = INCBIN_U32("graphics/pokemon/foongus/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Amoonguss[] = INCBIN_U32("graphics/pokemon/amoonguss/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Frillish[] = INCBIN_U32("graphics/pokemon/frillish/anim_front.4bpp.lz"); -const u32 gMonFrontPic_FrillishF[] = INCBIN_U32("graphics/pokemon/frillish/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Jellicent[] = INCBIN_U32("graphics/pokemon/jellicent/anim_front.4bpp.lz"); -const u32 gMonFrontPic_JellicentF[] = INCBIN_U32("graphics/pokemon/jellicent/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Alomomola[] = INCBIN_U32("graphics/pokemon/alomomola/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Joltik[] = INCBIN_U32("graphics/pokemon/joltik/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Galvantula[] = INCBIN_U32("graphics/pokemon/galvantula/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Ferroseed[] = INCBIN_U32("graphics/pokemon/ferroseed/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Ferrothorn[] = INCBIN_U32("graphics/pokemon/ferrothorn/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Klink[] = INCBIN_U32("graphics/pokemon/klink/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Klang[] = INCBIN_U32("graphics/pokemon/klang/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Klinklang[] = INCBIN_U32("graphics/pokemon/klinklang/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Tynamo[] = INCBIN_U32("graphics/pokemon/tynamo/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Eelektrik[] = INCBIN_U32("graphics/pokemon/eelektrik/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Eelektross[] = INCBIN_U32("graphics/pokemon/eelektross/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Elgyem[] = INCBIN_U32("graphics/pokemon/elgyem/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Beheeyem[] = INCBIN_U32("graphics/pokemon/beheeyem/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Litwick[] = INCBIN_U32("graphics/pokemon/litwick/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Lampent[] = INCBIN_U32("graphics/pokemon/lampent/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Chandelure[] = INCBIN_U32("graphics/pokemon/chandelure/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Axew[] = INCBIN_U32("graphics/pokemon/axew/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Fraxure[] = INCBIN_U32("graphics/pokemon/fraxure/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Haxorus[] = INCBIN_U32("graphics/pokemon/haxorus/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Cubchoo[] = INCBIN_U32("graphics/pokemon/cubchoo/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Beartic[] = INCBIN_U32("graphics/pokemon/beartic/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Cryogonal[] = INCBIN_U32("graphics/pokemon/cryogonal/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Shelmet[] = INCBIN_U32("graphics/pokemon/shelmet/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Accelgor[] = INCBIN_U32("graphics/pokemon/accelgor/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Stunfisk[] = INCBIN_U32("graphics/pokemon/stunfisk/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Mienfoo[] = INCBIN_U32("graphics/pokemon/mienfoo/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Mienshao[] = INCBIN_U32("graphics/pokemon/mienshao/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Druddigon[] = INCBIN_U32("graphics/pokemon/druddigon/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Golett[] = INCBIN_U32("graphics/pokemon/golett/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Golurk[] = INCBIN_U32("graphics/pokemon/golurk/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Pawniard[] = INCBIN_U32("graphics/pokemon/pawniard/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Bisharp[] = INCBIN_U32("graphics/pokemon/bisharp/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Bouffalant[] = INCBIN_U32("graphics/pokemon/bouffalant/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Rufflet[] = INCBIN_U32("graphics/pokemon/rufflet/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Braviary[] = INCBIN_U32("graphics/pokemon/braviary/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Vullaby[] = INCBIN_U32("graphics/pokemon/vullaby/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Mandibuzz[] = INCBIN_U32("graphics/pokemon/mandibuzz/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Heatmor[] = INCBIN_U32("graphics/pokemon/heatmor/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Durant[] = INCBIN_U32("graphics/pokemon/durant/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Deino[] = INCBIN_U32("graphics/pokemon/deino/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Zweilous[] = INCBIN_U32("graphics/pokemon/zweilous/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Hydreigon[] = INCBIN_U32("graphics/pokemon/hydreigon/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Larvesta[] = INCBIN_U32("graphics/pokemon/larvesta/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Volcarona[] = INCBIN_U32("graphics/pokemon/volcarona/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Cobalion[] = INCBIN_U32("graphics/pokemon/cobalion/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Terrakion[] = INCBIN_U32("graphics/pokemon/terrakion/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Virizion[] = INCBIN_U32("graphics/pokemon/virizion/anim_front.4bpp.lz"); -const u32 gMonFrontPic_TornadusIncarnate[] = INCBIN_U32("graphics/pokemon/tornadus/anim_front.4bpp.lz"); -const u32 gMonFrontPic_ThundurusIncarnate[] = INCBIN_U32("graphics/pokemon/thundurus/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Reshiram[] = INCBIN_U32("graphics/pokemon/reshiram/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Zekrom[] = INCBIN_U32("graphics/pokemon/zekrom/anim_front.4bpp.lz"); -const u32 gMonFrontPic_LandorusIncarnate[] = INCBIN_U32("graphics/pokemon/landorus/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Kyurem[] = INCBIN_U32("graphics/pokemon/kyurem/anim_front.4bpp.lz"); -const u32 gMonFrontPic_KeldeoOrdinary[] = INCBIN_U32("graphics/pokemon/keldeo/anim_front.4bpp.lz"); -const u32 gMonFrontPic_MeloettaAria[] = INCBIN_U32("graphics/pokemon/meloetta/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Genesect[] = INCBIN_U32("graphics/pokemon/genesect/anim_front.4bpp.lz"); -#endif -#if P_GEN_6_POKEMON == TRUE -const u32 gMonFrontPic_Chespin[] = INCBIN_U32("graphics/pokemon/chespin/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Quilladin[] = INCBIN_U32("graphics/pokemon/quilladin/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Chesnaught[] = INCBIN_U32("graphics/pokemon/chesnaught/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Fennekin[] = INCBIN_U32("graphics/pokemon/fennekin/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Braixen[] = INCBIN_U32("graphics/pokemon/braixen/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Delphox[] = INCBIN_U32("graphics/pokemon/delphox/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Froakie[] = INCBIN_U32("graphics/pokemon/froakie/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Frogadier[] = INCBIN_U32("graphics/pokemon/frogadier/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Greninja[] = INCBIN_U32("graphics/pokemon/greninja/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Bunnelby[] = INCBIN_U32("graphics/pokemon/bunnelby/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Diggersby[] = INCBIN_U32("graphics/pokemon/diggersby/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Fletchling[] = INCBIN_U32("graphics/pokemon/fletchling/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Fletchinder[] = INCBIN_U32("graphics/pokemon/fletchinder/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Talonflame[] = INCBIN_U32("graphics/pokemon/talonflame/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Scatterbug[] = INCBIN_U32("graphics/pokemon/scatterbug/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Spewpa[] = INCBIN_U32("graphics/pokemon/spewpa/anim_front.4bpp.lz"); -const u32 gMonFrontPic_VivillonIcySnow[] = INCBIN_U32("graphics/pokemon/vivillon/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Litleo[] = INCBIN_U32("graphics/pokemon/litleo/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Pyroar[] = INCBIN_U32("graphics/pokemon/pyroar/anim_front.4bpp.lz"); -const u32 gMonFrontPic_PyroarF[] = INCBIN_U32("graphics/pokemon/pyroar/anim_frontf.4bpp.lz"); -const u32 gMonFrontPic_Flabebe[] = INCBIN_U32("graphics/pokemon/flabebe/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Floette[] = INCBIN_U32("graphics/pokemon/floette/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Florges[] = INCBIN_U32("graphics/pokemon/florges/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Skiddo[] = INCBIN_U32("graphics/pokemon/skiddo/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Gogoat[] = INCBIN_U32("graphics/pokemon/gogoat/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Pancham[] = INCBIN_U32("graphics/pokemon/pancham/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Pangoro[] = INCBIN_U32("graphics/pokemon/pangoro/anim_front.4bpp.lz"); -const u32 gMonFrontPic_FurfrouNatural[] = INCBIN_U32("graphics/pokemon/furfrou/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Espurr[] = INCBIN_U32("graphics/pokemon/espurr/anim_front.4bpp.lz"); -const u32 gMonFrontPic_MeowsticMale[] = INCBIN_U32("graphics/pokemon/meowstic/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Honedge[] = INCBIN_U32("graphics/pokemon/honedge/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Doublade[] = INCBIN_U32("graphics/pokemon/doublade/anim_front.4bpp.lz"); -const u32 gMonFrontPic_AegislashShield[] = INCBIN_U32("graphics/pokemon/aegislash/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Spritzee[] = INCBIN_U32("graphics/pokemon/spritzee/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Aromatisse[] = INCBIN_U32("graphics/pokemon/aromatisse/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Swirlix[] = INCBIN_U32("graphics/pokemon/swirlix/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Slurpuff[] = INCBIN_U32("graphics/pokemon/slurpuff/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Inkay[] = INCBIN_U32("graphics/pokemon/inkay/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Malamar[] = INCBIN_U32("graphics/pokemon/malamar/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Binacle[] = INCBIN_U32("graphics/pokemon/binacle/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Barbaracle[] = INCBIN_U32("graphics/pokemon/barbaracle/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Skrelp[] = INCBIN_U32("graphics/pokemon/skrelp/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Dragalge[] = INCBIN_U32("graphics/pokemon/dragalge/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Clauncher[] = INCBIN_U32("graphics/pokemon/clauncher/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Clawitzer[] = INCBIN_U32("graphics/pokemon/clawitzer/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Helioptile[] = INCBIN_U32("graphics/pokemon/helioptile/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Heliolisk[] = INCBIN_U32("graphics/pokemon/heliolisk/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Tyrunt[] = INCBIN_U32("graphics/pokemon/tyrunt/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Tyrantrum[] = INCBIN_U32("graphics/pokemon/tyrantrum/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Amaura[] = INCBIN_U32("graphics/pokemon/amaura/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Aurorus[] = INCBIN_U32("graphics/pokemon/aurorus/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Sylveon[] = INCBIN_U32("graphics/pokemon/sylveon/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Hawlucha[] = INCBIN_U32("graphics/pokemon/hawlucha/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Dedenne[] = INCBIN_U32("graphics/pokemon/dedenne/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Carbink[] = INCBIN_U32("graphics/pokemon/carbink/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Goomy[] = INCBIN_U32("graphics/pokemon/goomy/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Sliggoo[] = INCBIN_U32("graphics/pokemon/sliggoo/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Goodra[] = INCBIN_U32("graphics/pokemon/goodra/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Klefki[] = INCBIN_U32("graphics/pokemon/klefki/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Phantump[] = INCBIN_U32("graphics/pokemon/phantump/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Trevenant[] = INCBIN_U32("graphics/pokemon/trevenant/anim_front.4bpp.lz"); -const u32 gMonFrontPic_PumpkabooAverage[] = INCBIN_U32("graphics/pokemon/pumpkaboo/anim_front.4bpp.lz"); -const u32 gMonFrontPic_GourgeistAverage[] = INCBIN_U32("graphics/pokemon/gourgeist/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Bergmite[] = INCBIN_U32("graphics/pokemon/bergmite/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Avalugg[] = INCBIN_U32("graphics/pokemon/avalugg/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Noibat[] = INCBIN_U32("graphics/pokemon/noibat/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Noivern[] = INCBIN_U32("graphics/pokemon/noivern/anim_front.4bpp.lz"); -const u32 gMonFrontPic_XerneasNeutral[] = INCBIN_U32("graphics/pokemon/xerneas/front.4bpp.lz"); -const u32 gMonFrontPic_Yveltal[] = INCBIN_U32("graphics/pokemon/yveltal/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Zygarde50[] = INCBIN_U32("graphics/pokemon/zygarde/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Diancie[] = INCBIN_U32("graphics/pokemon/diancie/anim_front.4bpp.lz"); -const u32 gMonFrontPic_HoopaConfined[] = INCBIN_U32("graphics/pokemon/hoopa/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Volcanion[] = INCBIN_U32("graphics/pokemon/volcanion/anim_front.4bpp.lz"); -#endif -#if P_GEN_7_POKEMON == TRUE -const u32 gMonFrontPic_Rowlet[] = INCBIN_U32("graphics/pokemon/rowlet/front.4bpp.lz"); -const u32 gMonFrontPic_Dartrix[] = INCBIN_U32("graphics/pokemon/dartrix/front.4bpp.lz"); -const u32 gMonFrontPic_Decidueye[] = INCBIN_U32("graphics/pokemon/decidueye/front.4bpp.lz"); -const u32 gMonFrontPic_Litten[] = INCBIN_U32("graphics/pokemon/litten/front.4bpp.lz"); -const u32 gMonFrontPic_Torracat[] = INCBIN_U32("graphics/pokemon/torracat/front.4bpp.lz"); -const u32 gMonFrontPic_Incineroar[] = INCBIN_U32("graphics/pokemon/incineroar/front.4bpp.lz"); -const u32 gMonFrontPic_Popplio[] = INCBIN_U32("graphics/pokemon/popplio/front.4bpp.lz"); -const u32 gMonFrontPic_Brionne[] = INCBIN_U32("graphics/pokemon/brionne/front.4bpp.lz"); -const u32 gMonFrontPic_Primarina[] = INCBIN_U32("graphics/pokemon/primarina/front.4bpp.lz"); -const u32 gMonFrontPic_Pikipek[] = INCBIN_U32("graphics/pokemon/pikipek/front.4bpp.lz"); -const u32 gMonFrontPic_Trumbeak[] = INCBIN_U32("graphics/pokemon/trumbeak/front.4bpp.lz"); -const u32 gMonFrontPic_Toucannon[] = INCBIN_U32("graphics/pokemon/toucannon/front.4bpp.lz"); -const u32 gMonFrontPic_Yungoos[] = INCBIN_U32("graphics/pokemon/yungoos/front.4bpp.lz"); -const u32 gMonFrontPic_Gumshoos[] = INCBIN_U32("graphics/pokemon/gumshoos/front.4bpp.lz"); -const u32 gMonFrontPic_Grubbin[] = INCBIN_U32("graphics/pokemon/grubbin/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Charjabug[] = INCBIN_U32("graphics/pokemon/charjabug/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Vikavolt[] = INCBIN_U32("graphics/pokemon/vikavolt/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Crabrawler[] = INCBIN_U32("graphics/pokemon/crabrawler/front.4bpp.lz"); -const u32 gMonFrontPic_Crabominable[] = INCBIN_U32("graphics/pokemon/crabominable/front.4bpp.lz"); -const u32 gMonFrontPic_OricorioBaile[] = INCBIN_U32("graphics/pokemon/oricorio/front.4bpp.lz"); -const u32 gMonFrontPic_Cutiefly[] = INCBIN_U32("graphics/pokemon/cutiefly/front.4bpp.lz"); -const u32 gMonFrontPic_Ribombee[] = INCBIN_U32("graphics/pokemon/ribombee/front.4bpp.lz"); -const u32 gMonFrontPic_Rockruff[] = INCBIN_U32("graphics/pokemon/rockruff/front.4bpp.lz"); -const u32 gMonFrontPic_LycanrocMidday[] = INCBIN_U32("graphics/pokemon/lycanroc/front.4bpp.lz"); -const u32 gMonFrontPic_WishiwashiSolo[] = INCBIN_U32("graphics/pokemon/wishiwashi/front.4bpp.lz"); -const u32 gMonFrontPic_Mareanie[] = INCBIN_U32("graphics/pokemon/mareanie/front.4bpp.lz"); -const u32 gMonFrontPic_Toxapex[] = INCBIN_U32("graphics/pokemon/toxapex/front.4bpp.lz"); -const u32 gMonFrontPic_Mudbray[] = INCBIN_U32("graphics/pokemon/mudbray/front.4bpp.lz"); -const u32 gMonFrontPic_Mudsdale[] = INCBIN_U32("graphics/pokemon/mudsdale/front.4bpp.lz"); -const u32 gMonFrontPic_Dewpider[] = INCBIN_U32("graphics/pokemon/dewpider/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Araquanid[] = INCBIN_U32("graphics/pokemon/araquanid/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Fomantis[] = INCBIN_U32("graphics/pokemon/fomantis/front.4bpp.lz"); -const u32 gMonFrontPic_Lurantis[] = INCBIN_U32("graphics/pokemon/lurantis/front.4bpp.lz"); -const u32 gMonFrontPic_Morelull[] = INCBIN_U32("graphics/pokemon/morelull/front.4bpp.lz"); -const u32 gMonFrontPic_Shiinotic[] = INCBIN_U32("graphics/pokemon/shiinotic/front.4bpp.lz"); -const u32 gMonFrontPic_Salandit[] = INCBIN_U32("graphics/pokemon/salandit/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Salazzle[] = INCBIN_U32("graphics/pokemon/salazzle/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Stufful[] = INCBIN_U32("graphics/pokemon/stufful/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Bewear[] = INCBIN_U32("graphics/pokemon/bewear/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Bounsweet[] = INCBIN_U32("graphics/pokemon/bounsweet/front.4bpp.lz"); -const u32 gMonFrontPic_Steenee[] = INCBIN_U32("graphics/pokemon/steenee/front.4bpp.lz"); -const u32 gMonFrontPic_Tsareena[] = INCBIN_U32("graphics/pokemon/tsareena/front.4bpp.lz"); -const u32 gMonFrontPic_Comfey[] = INCBIN_U32("graphics/pokemon/comfey/front.4bpp.lz"); -const u32 gMonFrontPic_Oranguru[] = INCBIN_U32("graphics/pokemon/oranguru/front.4bpp.lz"); -const u32 gMonFrontPic_Passimian[] = INCBIN_U32("graphics/pokemon/passimian/front.4bpp.lz"); -const u32 gMonFrontPic_Wimpod[] = INCBIN_U32("graphics/pokemon/wimpod/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Golisopod[] = INCBIN_U32("graphics/pokemon/golisopod/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Sandygast[] = INCBIN_U32("graphics/pokemon/sandygast/front.4bpp.lz"); -const u32 gMonFrontPic_Palossand[] = INCBIN_U32("graphics/pokemon/palossand/front.4bpp.lz"); -const u32 gMonFrontPic_Pyukumuku[] = INCBIN_U32("graphics/pokemon/pyukumuku/anim_front.4bpp.lz"); -const u32 gMonFrontPic_TypeNull[] = INCBIN_U32("graphics/pokemon/type_null/front.4bpp.lz"); -const u32 gMonFrontPic_Silvally[] = INCBIN_U32("graphics/pokemon/silvally/front.4bpp.lz"); -const u32 gMonFrontPic_MiniorMeteor[] = INCBIN_U32("graphics/pokemon/minior/front.4bpp.lz"); -const u32 gMonFrontPic_Komala[] = INCBIN_U32("graphics/pokemon/komala/front.4bpp.lz"); -const u32 gMonFrontPic_Turtonator[] = INCBIN_U32("graphics/pokemon/turtonator/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Togedemaru[] = INCBIN_U32("graphics/pokemon/togedemaru/front.4bpp.lz"); -const u32 gMonFrontPic_MimikyuDisguised[] = INCBIN_U32("graphics/pokemon/mimikyu/front.4bpp.lz"); -const u32 gMonFrontPic_Bruxish[] = INCBIN_U32("graphics/pokemon/bruxish/front.4bpp.lz"); -const u32 gMonFrontPic_Drampa[] = INCBIN_U32("graphics/pokemon/drampa/front.4bpp.lz"); -const u32 gMonFrontPic_Dhelmise[] = INCBIN_U32("graphics/pokemon/dhelmise/front.4bpp.lz"); -const u32 gMonFrontPic_JangmoO[] = INCBIN_U32("graphics/pokemon/jangmo_o/anim_front.4bpp.lz"); -const u32 gMonFrontPic_HakamoO[] = INCBIN_U32("graphics/pokemon/hakamo_o/anim_front.4bpp.lz"); -const u32 gMonFrontPic_KommoO[] = INCBIN_U32("graphics/pokemon/kommo_o/anim_front.4bpp.lz"); -const u32 gMonFrontPic_TapuKoko[] = INCBIN_U32("graphics/pokemon/tapu_koko/anim_front.4bpp.lz"); -const u32 gMonFrontPic_TapuLele[] = INCBIN_U32("graphics/pokemon/tapu_lele/anim_front.4bpp.lz"); -const u32 gMonFrontPic_TapuBulu[] = INCBIN_U32("graphics/pokemon/tapu_bulu/anim_front.4bpp.lz"); -const u32 gMonFrontPic_TapuFini[] = INCBIN_U32("graphics/pokemon/tapu_fini/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Cosmog[] = INCBIN_U32("graphics/pokemon/cosmog/front.4bpp.lz"); -const u32 gMonFrontPic_Cosmoem[] = INCBIN_U32("graphics/pokemon/cosmoem/front.4bpp.lz"); -const u32 gMonFrontPic_Solgaleo[] = INCBIN_U32("graphics/pokemon/solgaleo/front.4bpp.lz"); -const u32 gMonFrontPic_Lunala[] = INCBIN_U32("graphics/pokemon/lunala/front.4bpp.lz"); -const u32 gMonFrontPic_Nihilego[] = INCBIN_U32("graphics/pokemon/nihilego/front.4bpp.lz"); -const u32 gMonFrontPic_Buzzwole[] = INCBIN_U32("graphics/pokemon/buzzwole/front.4bpp.lz"); -const u32 gMonFrontPic_Pheromosa[] = INCBIN_U32("graphics/pokemon/pheromosa/front.4bpp.lz"); -const u32 gMonFrontPic_Xurkitree[] = INCBIN_U32("graphics/pokemon/xurkitree/front.4bpp.lz"); -const u32 gMonFrontPic_Celesteela[] = INCBIN_U32("graphics/pokemon/celesteela/front.4bpp.lz"); -const u32 gMonFrontPic_Kartana[] = INCBIN_U32("graphics/pokemon/kartana/front.4bpp.lz"); -const u32 gMonFrontPic_Guzzlord[] = INCBIN_U32("graphics/pokemon/guzzlord/front.4bpp.lz"); -const u32 gMonFrontPic_Necrozma[] = INCBIN_U32("graphics/pokemon/necrozma/front.4bpp.lz"); -const u32 gMonFrontPic_Magearna[] = INCBIN_U32("graphics/pokemon/magearna/front.4bpp.lz"); -const u32 gMonFrontPic_Marshadow[] = INCBIN_U32("graphics/pokemon/marshadow/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Poipole[] = INCBIN_U32("graphics/pokemon/poipole/front.4bpp.lz"); -const u32 gMonFrontPic_Naganadel[] = INCBIN_U32("graphics/pokemon/naganadel/front.4bpp.lz"); -const u32 gMonFrontPic_Stakataka[] = INCBIN_U32("graphics/pokemon/stakataka/front.4bpp.lz"); -const u32 gMonFrontPic_Blacephalon[] = INCBIN_U32("graphics/pokemon/blacephalon/front.4bpp.lz"); -const u32 gMonFrontPic_Zeraora[] = INCBIN_U32("graphics/pokemon/zeraora/front.4bpp.lz"); -const u32 gMonFrontPic_Meltan[] = INCBIN_U32("graphics/pokemon/meltan/front.4bpp.lz"); -const u32 gMonFrontPic_Melmetal[] = INCBIN_U32("graphics/pokemon/melmetal/front.4bpp.lz"); -#endif -#if P_GEN_8_POKEMON == TRUE -const u32 gMonFrontPic_Grookey[] = INCBIN_U32("graphics/pokemon/grookey/front.4bpp.lz"); -const u32 gMonFrontPic_Thwackey[] = INCBIN_U32("graphics/pokemon/thwackey/front.4bpp.lz"); -const u32 gMonFrontPic_Rillaboom[] = INCBIN_U32("graphics/pokemon/rillaboom/front.4bpp.lz"); -const u32 gMonFrontPic_Scorbunny[] = INCBIN_U32("graphics/pokemon/scorbunny/front.4bpp.lz"); -const u32 gMonFrontPic_Raboot[] = INCBIN_U32("graphics/pokemon/raboot/front.4bpp.lz"); -const u32 gMonFrontPic_Cinderace[] = INCBIN_U32("graphics/pokemon/cinderace/front.4bpp.lz"); -const u32 gMonFrontPic_Sobble[] = INCBIN_U32("graphics/pokemon/sobble/front.4bpp.lz"); -const u32 gMonFrontPic_Drizzile[] = INCBIN_U32("graphics/pokemon/drizzile/front.4bpp.lz"); -const u32 gMonFrontPic_Inteleon[] = INCBIN_U32("graphics/pokemon/inteleon/front.4bpp.lz"); -const u32 gMonFrontPic_Skwovet[] = INCBIN_U32("graphics/pokemon/skwovet/front.4bpp.lz"); -const u32 gMonFrontPic_Greedent[] = INCBIN_U32("graphics/pokemon/greedent/front.4bpp.lz"); -const u32 gMonFrontPic_Rookidee[] = INCBIN_U32("graphics/pokemon/rookidee/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Corvisquire[] = INCBIN_U32("graphics/pokemon/corvisquire/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Corviknight[] = INCBIN_U32("graphics/pokemon/corviknight/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Blipbug[] = INCBIN_U32("graphics/pokemon/blipbug/front.4bpp.lz"); -const u32 gMonFrontPic_Dottler[] = INCBIN_U32("graphics/pokemon/dottler/front.4bpp.lz"); -const u32 gMonFrontPic_Orbeetle[] = INCBIN_U32("graphics/pokemon/orbeetle/front.4bpp.lz"); -const u32 gMonFrontPic_Nickit[] = INCBIN_U32("graphics/pokemon/nickit/front.4bpp.lz"); -const u32 gMonFrontPic_Thievul[] = INCBIN_U32("graphics/pokemon/thievul/front.4bpp.lz"); -const u32 gMonFrontPic_Gossifleur[] = INCBIN_U32("graphics/pokemon/gossifleur/front.4bpp.lz"); -const u32 gMonFrontPic_Eldegoss[] = INCBIN_U32("graphics/pokemon/eldegoss/front.4bpp.lz"); -const u32 gMonFrontPic_Wooloo[] = INCBIN_U32("graphics/pokemon/wooloo/front.4bpp.lz"); -const u32 gMonFrontPic_Dubwool[] = INCBIN_U32("graphics/pokemon/dubwool/front.4bpp.lz"); -const u32 gMonFrontPic_Chewtle[] = INCBIN_U32("graphics/pokemon/chewtle/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Drednaw[] = INCBIN_U32("graphics/pokemon/drednaw/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Yamper[] = INCBIN_U32("graphics/pokemon/yamper/front.4bpp.lz"); -const u32 gMonFrontPic_Boltund[] = INCBIN_U32("graphics/pokemon/boltund/front.4bpp.lz"); -const u32 gMonFrontPic_Rolycoly[] = INCBIN_U32("graphics/pokemon/rolycoly/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Carkol[] = INCBIN_U32("graphics/pokemon/carkol/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Coalossal[] = INCBIN_U32("graphics/pokemon/coalossal/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Applin[] = INCBIN_U32("graphics/pokemon/applin/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Flapple[] = INCBIN_U32("graphics/pokemon/flapple/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Appletun[] = INCBIN_U32("graphics/pokemon/appletun/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Silicobra[] = INCBIN_U32("graphics/pokemon/silicobra/front.4bpp.lz"); -const u32 gMonFrontPic_Sandaconda[] = INCBIN_U32("graphics/pokemon/sandaconda/front.4bpp.lz"); -const u32 gMonFrontPic_Cramorant[] = INCBIN_U32("graphics/pokemon/cramorant/front.4bpp.lz"); -const u32 gMonFrontPic_Arrokuda[] = INCBIN_U32("graphics/pokemon/arrokuda/front.4bpp.lz"); -const u32 gMonFrontPic_Barraskewda[] = INCBIN_U32("graphics/pokemon/barraskewda/front.4bpp.lz"); -const u32 gMonFrontPic_Toxel[] = INCBIN_U32("graphics/pokemon/toxel/front.4bpp.lz"); -const u32 gMonFrontPic_ToxtricityAmped[] = INCBIN_U32("graphics/pokemon/toxtricity/front.4bpp.lz"); -const u32 gMonFrontPic_Sizzlipede[] = INCBIN_U32("graphics/pokemon/sizzlipede/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Centiskorch[] = INCBIN_U32("graphics/pokemon/centiskorch/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Clobbopus[] = INCBIN_U32("graphics/pokemon/clobbopus/front.4bpp.lz"); -const u32 gMonFrontPic_Grapploct[] = INCBIN_U32("graphics/pokemon/grapploct/front.4bpp.lz"); -const u32 gMonFrontPic_Sinistea[] = INCBIN_U32("graphics/pokemon/sinistea/front.4bpp.lz"); -const u32 gMonFrontPic_Polteageist[] = INCBIN_U32("graphics/pokemon/polteageist/front.4bpp.lz"); -const u32 gMonFrontPic_Hatenna[] = INCBIN_U32("graphics/pokemon/hatenna/front.4bpp.lz"); -const u32 gMonFrontPic_Hattrem[] = INCBIN_U32("graphics/pokemon/hattrem/front.4bpp.lz"); -const u32 gMonFrontPic_Hatterene[] = INCBIN_U32("graphics/pokemon/hatterene/front.4bpp.lz"); -const u32 gMonFrontPic_Impidimp[] = INCBIN_U32("graphics/pokemon/impidimp/front.4bpp.lz"); -const u32 gMonFrontPic_Morgrem[] = INCBIN_U32("graphics/pokemon/morgrem/front.4bpp.lz"); -const u32 gMonFrontPic_Grimmsnarl[] = INCBIN_U32("graphics/pokemon/grimmsnarl/front.4bpp.lz"); -const u32 gMonFrontPic_Obstagoon[] = INCBIN_U32("graphics/pokemon/obstagoon/front.4bpp.lz"); -const u32 gMonFrontPic_Perrserker[] = INCBIN_U32("graphics/pokemon/perrserker/front.4bpp.lz"); -const u32 gMonFrontPic_Cursola[] = INCBIN_U32("graphics/pokemon/cursola/front.4bpp.lz"); -const u32 gMonFrontPic_Sirfetchd[] = INCBIN_U32("graphics/pokemon/sirfetchd/front.4bpp.lz"); -const u32 gMonFrontPic_MrRime[] = INCBIN_U32("graphics/pokemon/mr_rime/front.4bpp.lz"); -const u32 gMonFrontPic_Runerigus[] = INCBIN_U32("graphics/pokemon/runerigus/front.4bpp.lz"); -const u32 gMonFrontPic_Milcery[] = INCBIN_U32("graphics/pokemon/milcery/front.4bpp.lz"); -const u32 gMonFrontPic_Alcremie[] = INCBIN_U32("graphics/pokemon/alcremie/front.4bpp.lz"); -const u32 gMonFrontPic_Falinks[] = INCBIN_U32("graphics/pokemon/falinks/front.4bpp.lz"); -const u32 gMonFrontPic_Pincurchin[] = INCBIN_U32("graphics/pokemon/pincurchin/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Snom[] = INCBIN_U32("graphics/pokemon/snom/front.4bpp.lz"); -const u32 gMonFrontPic_Frosmoth[] = INCBIN_U32("graphics/pokemon/frosmoth/front.4bpp.lz"); -const u32 gMonFrontPic_Stonjourner[] = INCBIN_U32("graphics/pokemon/stonjourner/front.4bpp.lz"); -const u32 gMonFrontPic_EiscueFace[] = INCBIN_U32("graphics/pokemon/eiscue/front.4bpp.lz"); -const u32 gMonFrontPic_IndeedeeMale[] = INCBIN_U32("graphics/pokemon/indeedee/front.4bpp.lz"); -const u32 gMonFrontPic_MorpekoFullBelly[] = INCBIN_U32("graphics/pokemon/morpeko/front.4bpp.lz"); -const u32 gMonFrontPic_Cufant[] = INCBIN_U32("graphics/pokemon/cufant/front.4bpp.lz"); -const u32 gMonFrontPic_Copperajah[] = INCBIN_U32("graphics/pokemon/copperajah/front.4bpp.lz"); -const u32 gMonFrontPic_Dracozolt[] = INCBIN_U32("graphics/pokemon/dracozolt/front.4bpp.lz"); -const u32 gMonFrontPic_Arctozolt[] = INCBIN_U32("graphics/pokemon/arctozolt/front.4bpp.lz"); -const u32 gMonFrontPic_Dracovish[] = INCBIN_U32("graphics/pokemon/dracovish/front.4bpp.lz"); -const u32 gMonFrontPic_Arctovish[] = INCBIN_U32("graphics/pokemon/arctovish/front.4bpp.lz"); -const u32 gMonFrontPic_Duraludon[] = INCBIN_U32("graphics/pokemon/duraludon/front.4bpp.lz"); -const u32 gMonFrontPic_Dreepy[] = INCBIN_U32("graphics/pokemon/dreepy/front.4bpp.lz"); -const u32 gMonFrontPic_Drakloak[] = INCBIN_U32("graphics/pokemon/drakloak/front.4bpp.lz"); -const u32 gMonFrontPic_Dragapult[] = INCBIN_U32("graphics/pokemon/dragapult/front.4bpp.lz"); -const u32 gMonFrontPic_ZacianHeroOfManyBattles[] = INCBIN_U32("graphics/pokemon/zacian/front.4bpp.lz"); -const u32 gMonFrontPic_ZamazentaHeroOfManyBattles[] = INCBIN_U32("graphics/pokemon/zamazenta/front.4bpp.lz"); -const u32 gMonFrontPic_Eternatus[] = INCBIN_U32("graphics/pokemon/eternatus/front.4bpp.lz"); -const u32 gMonFrontPic_Kubfu[] = INCBIN_U32("graphics/pokemon/kubfu/front.4bpp.lz"); -const u32 gMonFrontPic_UrshifuSingleStrikeStyle[] = INCBIN_U32("graphics/pokemon/urshifu/front.4bpp.lz"); -const u32 gMonFrontPic_Zarude[] = INCBIN_U32("graphics/pokemon/zarude/front.4bpp.lz"); -const u32 gMonFrontPic_Regieleki[] = INCBIN_U32("graphics/pokemon/regieleki/front.4bpp.lz"); -const u32 gMonFrontPic_Regidrago[] = INCBIN_U32("graphics/pokemon/regidrago/front.4bpp.lz"); -const u32 gMonFrontPic_Glastrier[] = INCBIN_U32("graphics/pokemon/glastrier/front.4bpp.lz"); -const u32 gMonFrontPic_Spectrier[] = INCBIN_U32("graphics/pokemon/spectrier/front.4bpp.lz"); -const u32 gMonFrontPic_Calyrex[] = INCBIN_U32("graphics/pokemon/calyrex/front.4bpp.lz"); -const u32 gMonFrontPic_Wyrdeer[] = INCBIN_U32("graphics/pokemon/wyrdeer/front.4bpp.lz"); -const u32 gMonFrontPic_Kleavor[] = INCBIN_U32("graphics/pokemon/kleavor/front.4bpp.lz"); -const u32 gMonFrontPic_Ursaluna[] = INCBIN_U32("graphics/pokemon/ursaluna/front.4bpp.lz"); -const u32 gMonFrontPic_BasculegionMale[] = INCBIN_U32("graphics/pokemon/basculegion/front.4bpp.lz"); -const u32 gMonFrontPic_Sneasler[] = INCBIN_U32("graphics/pokemon/sneasler/front.4bpp.lz"); -const u32 gMonFrontPic_Overqwil[] = INCBIN_U32("graphics/pokemon/overqwil/front.4bpp.lz"); -const u32 gMonFrontPic_EnamorusIncarnate[] = INCBIN_U32("graphics/pokemon/enamorus/front.4bpp.lz"); -#endif -const u32 gMonFrontPic_VenusaurMega[] = INCBIN_U32("graphics/pokemon/venusaur/mega/front.4bpp.lz"); -const u32 gMonFrontPic_CharizardMegaX[] = INCBIN_U32("graphics/pokemon/charizard/mega_x/front.4bpp.lz"); -const u32 gMonFrontPic_CharizardMegaY[] = INCBIN_U32("graphics/pokemon/charizard/mega_y/front.4bpp.lz"); -const u32 gMonFrontPic_BlastoiseMega[] = INCBIN_U32("graphics/pokemon/blastoise/mega/front.4bpp.lz"); -const u32 gMonFrontPic_BeedrillMega[] = INCBIN_U32("graphics/pokemon/beedrill/mega/front.4bpp.lz"); -const u32 gMonFrontPic_PidgeotMega[] = INCBIN_U32("graphics/pokemon/pidgeot/mega/front.4bpp.lz"); -const u32 gMonFrontPic_AlakazamMega[] = INCBIN_U32("graphics/pokemon/alakazam/mega/front.4bpp.lz"); -const u32 gMonFrontPic_SlowbroMega[] = INCBIN_U32("graphics/pokemon/slowbro/mega/front.4bpp.lz"); -const u32 gMonFrontPic_GengarMega[] = INCBIN_U32("graphics/pokemon/gengar/mega/front.4bpp.lz"); -const u32 gMonFrontPic_KangaskhanMega[] = INCBIN_U32("graphics/pokemon/kangaskhan/mega/front.4bpp.lz"); -const u32 gMonFrontPic_PinsirMega[] = INCBIN_U32("graphics/pokemon/pinsir/mega/front.4bpp.lz"); -const u32 gMonFrontPic_GyaradosMega[] = INCBIN_U32("graphics/pokemon/gyarados/mega/front.4bpp.lz"); -const u32 gMonFrontPic_AerodactylMega[] = INCBIN_U32("graphics/pokemon/aerodactyl/mega/front.4bpp.lz"); -const u32 gMonFrontPic_MewtwoMegaX[] = INCBIN_U32("graphics/pokemon/mewtwo/mega_x/front.4bpp.lz"); -const u32 gMonFrontPic_MewtwoMegaY[] = INCBIN_U32("graphics/pokemon/mewtwo/mega_y/front.4bpp.lz"); -const u32 gMonFrontPic_AmpharosMega[] = INCBIN_U32("graphics/pokemon/ampharos/mega/front.4bpp.lz"); -const u32 gMonFrontPic_SteelixMega[] = INCBIN_U32("graphics/pokemon/steelix/mega/front.4bpp.lz"); -const u32 gMonFrontPic_ScizorMega[] = INCBIN_U32("graphics/pokemon/scizor/mega/front.4bpp.lz"); -const u32 gMonFrontPic_HeracrossMega[] = INCBIN_U32("graphics/pokemon/heracross/mega/front.4bpp.lz"); -const u32 gMonFrontPic_HoundoomMega[] = INCBIN_U32("graphics/pokemon/houndoom/mega/front.4bpp.lz"); -const u32 gMonFrontPic_TyranitarMega[] = INCBIN_U32("graphics/pokemon/tyranitar/mega/front.4bpp.lz"); -const u32 gMonFrontPic_SceptileMega[] = INCBIN_U32("graphics/pokemon/sceptile/mega/front.4bpp.lz"); -const u32 gMonFrontPic_BlazikenMega[] = INCBIN_U32("graphics/pokemon/blaziken/mega/front.4bpp.lz"); -const u32 gMonFrontPic_SwampertMega[] = INCBIN_U32("graphics/pokemon/swampert/mega/front.4bpp.lz"); -const u32 gMonFrontPic_GardevoirMega[] = INCBIN_U32("graphics/pokemon/gardevoir/mega/front.4bpp.lz"); -const u32 gMonFrontPic_SableyeMega[] = INCBIN_U32("graphics/pokemon/sableye/mega/front.4bpp.lz"); -const u32 gMonFrontPic_MawileMega[] = INCBIN_U32("graphics/pokemon/mawile/mega/front.4bpp.lz"); -const u32 gMonFrontPic_AggronMega[] = INCBIN_U32("graphics/pokemon/aggron/mega/front.4bpp.lz"); -const u32 gMonFrontPic_MedichamMega[] = INCBIN_U32("graphics/pokemon/medicham/mega/front.4bpp.lz"); -const u32 gMonFrontPic_ManectricMega[] = INCBIN_U32("graphics/pokemon/manectric/mega/front.4bpp.lz"); -const u32 gMonFrontPic_SharpedoMega[] = INCBIN_U32("graphics/pokemon/sharpedo/mega/front.4bpp.lz"); -const u32 gMonFrontPic_CameruptMega[] = INCBIN_U32("graphics/pokemon/camerupt/mega/front.4bpp.lz"); -const u32 gMonFrontPic_AltariaMega[] = INCBIN_U32("graphics/pokemon/altaria/mega/front.4bpp.lz"); -const u32 gMonFrontPic_BanetteMega[] = INCBIN_U32("graphics/pokemon/banette/mega/front.4bpp.lz"); -const u32 gMonFrontPic_AbsolMega[] = INCBIN_U32("graphics/pokemon/absol/mega/front.4bpp.lz"); -const u32 gMonFrontPic_GlalieMega[] = INCBIN_U32("graphics/pokemon/glalie/mega/front.4bpp.lz"); -const u32 gMonFrontPic_SalamenceMega[] = INCBIN_U32("graphics/pokemon/salamence/mega/front.4bpp.lz"); -const u32 gMonFrontPic_MetagrossMega[] = INCBIN_U32("graphics/pokemon/metagross/mega/front.4bpp.lz"); -const u32 gMonFrontPic_LatiasMega[] = INCBIN_U32("graphics/pokemon/latias/mega/front.4bpp.lz"); -const u32 gMonFrontPic_LatiosMega[] = INCBIN_U32("graphics/pokemon/latios/mega/front.4bpp.lz"); -#if P_GEN_4_POKEMON == TRUE -const u32 gMonFrontPic_LopunnyMega[] = INCBIN_U32("graphics/pokemon/lopunny/mega/front.4bpp.lz"); -const u32 gMonFrontPic_GarchompMega[] = INCBIN_U32("graphics/pokemon/garchomp/mega/front.4bpp.lz"); -const u32 gMonFrontPic_LucarioMega[] = INCBIN_U32("graphics/pokemon/lucario/mega/front.4bpp.lz"); -const u32 gMonFrontPic_AbomasnowMega[] = INCBIN_U32("graphics/pokemon/abomasnow/mega/front.4bpp.lz"); -const u32 gMonFrontPic_GalladeMega[] = INCBIN_U32("graphics/pokemon/gallade/mega/front.4bpp.lz"); -#endif -#if P_GEN_5_POKEMON == TRUE -const u32 gMonFrontPic_AudinoMega[] = INCBIN_U32("graphics/pokemon/audino/mega/front.4bpp.lz"); -#endif -#if P_GEN_6_POKEMON == TRUE -const u32 gMonFrontPic_DiancieMega[] = INCBIN_U32("graphics/pokemon/diancie/mega/front.4bpp.lz"); -#endif -const u32 gMonFrontPic_RayquazaMega[] = INCBIN_U32("graphics/pokemon/rayquaza/mega/front.4bpp.lz"); -const u32 gMonFrontPic_KyogrePrimal[] = INCBIN_U32("graphics/pokemon/kyogre/primal/front.4bpp.lz"); -const u32 gMonFrontPic_GroudonPrimal[] = INCBIN_U32("graphics/pokemon/groudon/primal/front.4bpp.lz"); -const u32 gMonFrontPic_RattataAlolan[] = INCBIN_U32("graphics/pokemon/rattata/alolan/front.4bpp.lz"); -const u32 gMonFrontPic_RaticateAlolan[] = INCBIN_U32("graphics/pokemon/raticate/alolan/front.4bpp.lz"); -const u32 gMonFrontPic_RaichuAlolan[] = INCBIN_U32("graphics/pokemon/raichu/alolan/front.4bpp.lz"); -const u32 gMonFrontPic_SandshrewAlolan[] = INCBIN_U32("graphics/pokemon/sandshrew/alolan/front.4bpp.lz"); -const u32 gMonFrontPic_SandslashAlolan[] = INCBIN_U32("graphics/pokemon/sandslash/alolan/front.4bpp.lz"); -const u32 gMonFrontPic_VulpixAlolan[] = INCBIN_U32("graphics/pokemon/vulpix/alolan/front.4bpp.lz"); -const u32 gMonFrontPic_NinetalesAlolan[] = INCBIN_U32("graphics/pokemon/ninetales/alolan/front.4bpp.lz"); -const u32 gMonFrontPic_DiglettAlolan[] = INCBIN_U32("graphics/pokemon/diglett/alolan/front.4bpp.lz"); -const u32 gMonFrontPic_DugtrioAlolan[] = INCBIN_U32("graphics/pokemon/dugtrio/alolan/front.4bpp.lz"); -const u32 gMonFrontPic_MeowthAlolan[] = INCBIN_U32("graphics/pokemon/meowth/alolan/front.4bpp.lz"); -const u32 gMonFrontPic_PersianAlolan[] = INCBIN_U32("graphics/pokemon/persian/alolan/front.4bpp.lz"); -const u32 gMonFrontPic_GeodudeAlolan[] = INCBIN_U32("graphics/pokemon/geodude/alolan/front.4bpp.lz"); -const u32 gMonFrontPic_GravelerAlolan[] = INCBIN_U32("graphics/pokemon/graveler/alolan/front.4bpp.lz"); -const u32 gMonFrontPic_GolemAlolan[] = INCBIN_U32("graphics/pokemon/golem/alolan/front.4bpp.lz"); -const u32 gMonFrontPic_GrimerAlolan[] = INCBIN_U32("graphics/pokemon/grimer/alolan/front.4bpp.lz"); -const u32 gMonFrontPic_MukAlolan[] = INCBIN_U32("graphics/pokemon/muk/alolan/front.4bpp.lz"); -const u32 gMonFrontPic_ExeggutorAlolan[] = INCBIN_U32("graphics/pokemon/exeggutor/alolan/anim_front.4bpp.lz"); -const u32 gMonFrontPic_MarowakAlolan[] = INCBIN_U32("graphics/pokemon/marowak/alolan/front.4bpp.lz"); -const u32 gMonFrontPic_MeowthGalarian[] = INCBIN_U32("graphics/pokemon/meowth/galarian/front.4bpp.lz"); -const u32 gMonFrontPic_PonytaGalarian[] = INCBIN_U32("graphics/pokemon/ponyta/galarian/front.4bpp.lz"); -const u32 gMonFrontPic_RapidashGalarian[] = INCBIN_U32("graphics/pokemon/rapidash/galarian/front.4bpp.lz"); -const u32 gMonFrontPic_SlowpokeGalarian[] = INCBIN_U32("graphics/pokemon/slowpoke/galarian/front.4bpp.lz"); -const u32 gMonFrontPic_SlowbroGalarian[] = INCBIN_U32("graphics/pokemon/slowbro/galarian/front.4bpp.lz"); -const u32 gMonFrontPic_FarfetchdGalarian[] = INCBIN_U32("graphics/pokemon/farfetchd/galarian/front.4bpp.lz"); -const u32 gMonFrontPic_WeezingGalarian[] = INCBIN_U32("graphics/pokemon/weezing/galarian/front.4bpp.lz"); -const u32 gMonFrontPic_MrMimeGalarian[] = INCBIN_U32("graphics/pokemon/mr_mime/galarian/front.4bpp.lz"); -const u32 gMonFrontPic_ArticunoGalarian[] = INCBIN_U32("graphics/pokemon/articuno/galarian/front.4bpp.lz"); -const u32 gMonFrontPic_ZapdosGalarian[] = INCBIN_U32("graphics/pokemon/zapdos/galarian/front.4bpp.lz"); -const u32 gMonFrontPic_MoltresGalarian[] = INCBIN_U32("graphics/pokemon/moltres/galarian/front.4bpp.lz"); -const u32 gMonFrontPic_SlowkingGalarian[] = INCBIN_U32("graphics/pokemon/slowking/galarian/front.4bpp.lz"); -const u32 gMonFrontPic_CorsolaGalarian[] = INCBIN_U32("graphics/pokemon/corsola/galarian/front.4bpp.lz"); -const u32 gMonFrontPic_ZigzagoonGalarian[] = INCBIN_U32("graphics/pokemon/zigzagoon/galarian/front.4bpp.lz"); -const u32 gMonFrontPic_LinooneGalarian[] = INCBIN_U32("graphics/pokemon/linoone/galarian/front.4bpp.lz"); -#if P_GEN_5_POKEMON == TRUE -const u32 gMonFrontPic_DarumakaGalarian[] = INCBIN_U32("graphics/pokemon/darumaka/galarian/front.4bpp.lz"); -const u32 gMonFrontPic_DarmanitanGalarianStandardMode[] = INCBIN_U32("graphics/pokemon/darmanitan/galarian/front.4bpp.lz"); -const u32 gMonFrontPic_YamaskGalarian[] = INCBIN_U32("graphics/pokemon/yamask/galarian/front.4bpp.lz"); -const u32 gMonFrontPic_StunfiskGalarian[] = INCBIN_U32("graphics/pokemon/stunfisk/galarian/front.4bpp.lz"); -#endif -const u32 gMonFrontPic_GrowlitheHisuian[] = INCBIN_U32("graphics/pokemon/growlithe/hisuian/front.4bpp.lz"); -const u32 gMonFrontPic_ArcanineHisuian[] = INCBIN_U32("graphics/pokemon/arcanine/hisuian/front.4bpp.lz"); -const u32 gMonFrontPic_VoltorbHisuian[] = INCBIN_U32("graphics/pokemon/voltorb/hisuian/front.4bpp.lz"); -const u32 gMonFrontPic_ElectrodeHisuian[] = INCBIN_U32("graphics/pokemon/electrode/hisuian/front.4bpp.lz"); -const u32 gMonFrontPic_TyphlosionHisuian[] = INCBIN_U32("graphics/pokemon/typhlosion/hisuian/front.4bpp.lz"); -const u32 gMonFrontPic_QwilfishHisuian[] = INCBIN_U32("graphics/pokemon/qwilfish/hisuian/front.4bpp.lz"); -const u32 gMonFrontPic_SneaselHisuian[] = INCBIN_U32("graphics/pokemon/sneasel/hisuian/front.4bpp.lz"); -const u32 gMonFrontPic_SneaselHisuianF[] = INCBIN_U32("graphics/pokemon/sneasel/hisuian/frontf.4bpp.lz"); -#if P_GEN_5_POKEMON == TRUE -const u32 gMonFrontPic_SamurottHisuian[] = INCBIN_U32("graphics/pokemon/samurott/hisuian/front.4bpp.lz"); -const u32 gMonFrontPic_LilligantHisuian[] = INCBIN_U32("graphics/pokemon/lilligant/hisuian/front.4bpp.lz"); -const u32 gMonFrontPic_ZoruaHisuian[] = INCBIN_U32("graphics/pokemon/zorua/hisuian/front.4bpp.lz"); -const u32 gMonFrontPic_ZoroarkHisuian[] = INCBIN_U32("graphics/pokemon/zoroark/hisuian/front.4bpp.lz"); -const u32 gMonFrontPic_BraviaryHisuian[] = INCBIN_U32("graphics/pokemon/braviary/hisuian/front.4bpp.lz"); -#endif -#if P_GEN_6_POKEMON == TRUE -const u32 gMonFrontPic_SliggooHisuian[] = INCBIN_U32("graphics/pokemon/sliggoo/hisuian/front.4bpp.lz"); -const u32 gMonFrontPic_GoodraHisuian[] = INCBIN_U32("graphics/pokemon/goodra/hisuian/front.4bpp.lz"); -const u32 gMonFrontPic_AvaluggHisuian[] = INCBIN_U32("graphics/pokemon/avalugg/hisuian/front.4bpp.lz"); -#endif -#if P_GEN_7_POKEMON == TRUE -const u32 gMonFrontPic_DecidueyeHisuian[] = INCBIN_U32("graphics/pokemon/decidueye/hisuian/front.4bpp.lz"); -#endif -const u32 gMonFrontPic_PikachuCosplay[] = INCBIN_U32("graphics/pokemon/pikachu/cosplay/front.4bpp.lz"); -const u32 gMonFrontPic_PikachuRockStar[] = INCBIN_U32("graphics/pokemon/pikachu/rock_star/front.4bpp.lz"); -const u32 gMonFrontPic_PikachuBelle[] = INCBIN_U32("graphics/pokemon/pikachu/belle/front.4bpp.lz"); -const u32 gMonFrontPic_PikachuPopStar[] = INCBIN_U32("graphics/pokemon/pikachu/pop_star/front.4bpp.lz"); -const u32 gMonFrontPic_PikachuPhD[] = INCBIN_U32("graphics/pokemon/pikachu/ph_d/front.4bpp.lz"); -const u32 gMonFrontPic_PikachuLibre[] = INCBIN_U32("graphics/pokemon/pikachu/libre/front.4bpp.lz"); -const u32 gMonFrontPic_PikachuOriginalCap[] = INCBIN_U32("graphics/pokemon/pikachu/original_cap/front.4bpp.lz"); -const u32 gMonFrontPic_PikachuHoennCap[] = INCBIN_U32("graphics/pokemon/pikachu/hoenn_cap/front.4bpp.lz"); -const u32 gMonFrontPic_PikachuSinnohCap[] = INCBIN_U32("graphics/pokemon/pikachu/sinnoh_cap/front.4bpp.lz"); -const u32 gMonFrontPic_PikachuUnovaCap[] = INCBIN_U32("graphics/pokemon/pikachu/unova_cap/front.4bpp.lz"); -const u32 gMonFrontPic_PikachuKalosCap[] = INCBIN_U32("graphics/pokemon/pikachu/kalos_cap/front.4bpp.lz"); -const u32 gMonFrontPic_PikachuAlolaCap[] = INCBIN_U32("graphics/pokemon/pikachu/alola_cap/front.4bpp.lz"); -const u32 gMonFrontPic_PikachuPartnerCap[] = INCBIN_U32("graphics/pokemon/pikachu/partner_cap/front.4bpp.lz"); -const u32 gMonFrontPic_PikachuWorldCap[] = INCBIN_U32("graphics/pokemon/pikachu/world_cap/front.4bpp.lz"); -const u32 gMonFrontPic_PichuSpikyEared[] = INCBIN_U32("graphics/pokemon/pichu/spiky_eared/front.4bpp.lz"); -const u32 gMonFrontPic_UnownB[] = INCBIN_U32("graphics/pokemon/unown/b/anim_front.4bpp.lz"); -const u32 gMonFrontPic_UnownC[] = INCBIN_U32("graphics/pokemon/unown/c/anim_front.4bpp.lz"); -const u32 gMonFrontPic_UnownD[] = INCBIN_U32("graphics/pokemon/unown/d/anim_front.4bpp.lz"); -const u32 gMonFrontPic_UnownE[] = INCBIN_U32("graphics/pokemon/unown/e/anim_front.4bpp.lz"); -const u32 gMonFrontPic_UnownF[] = INCBIN_U32("graphics/pokemon/unown/f/anim_front.4bpp.lz"); -const u32 gMonFrontPic_UnownG[] = INCBIN_U32("graphics/pokemon/unown/g/anim_front.4bpp.lz"); -const u32 gMonFrontPic_UnownH[] = INCBIN_U32("graphics/pokemon/unown/h/anim_front.4bpp.lz"); -const u32 gMonFrontPic_UnownI[] = INCBIN_U32("graphics/pokemon/unown/i/anim_front.4bpp.lz"); -const u32 gMonFrontPic_UnownJ[] = INCBIN_U32("graphics/pokemon/unown/j/anim_front.4bpp.lz"); -const u32 gMonFrontPic_UnownK[] = INCBIN_U32("graphics/pokemon/unown/k/anim_front.4bpp.lz"); -const u32 gMonFrontPic_UnownL[] = INCBIN_U32("graphics/pokemon/unown/l/anim_front.4bpp.lz"); -const u32 gMonFrontPic_UnownM[] = INCBIN_U32("graphics/pokemon/unown/m/anim_front.4bpp.lz"); -const u32 gMonFrontPic_UnownN[] = INCBIN_U32("graphics/pokemon/unown/n/anim_front.4bpp.lz"); -const u32 gMonFrontPic_UnownO[] = INCBIN_U32("graphics/pokemon/unown/o/anim_front.4bpp.lz"); -const u32 gMonFrontPic_UnownP[] = INCBIN_U32("graphics/pokemon/unown/p/anim_front.4bpp.lz"); -const u32 gMonFrontPic_UnownQ[] = INCBIN_U32("graphics/pokemon/unown/q/anim_front.4bpp.lz"); -const u32 gMonFrontPic_UnownR[] = INCBIN_U32("graphics/pokemon/unown/r/anim_front.4bpp.lz"); -const u32 gMonFrontPic_UnownS[] = INCBIN_U32("graphics/pokemon/unown/s/anim_front.4bpp.lz"); -const u32 gMonFrontPic_UnownT[] = INCBIN_U32("graphics/pokemon/unown/t/anim_front.4bpp.lz"); -const u32 gMonFrontPic_UnownU[] = INCBIN_U32("graphics/pokemon/unown/u/anim_front.4bpp.lz"); -const u32 gMonFrontPic_UnownV[] = INCBIN_U32("graphics/pokemon/unown/v/anim_front.4bpp.lz"); -const u32 gMonFrontPic_UnownW[] = INCBIN_U32("graphics/pokemon/unown/w/anim_front.4bpp.lz"); -const u32 gMonFrontPic_UnownX[] = INCBIN_U32("graphics/pokemon/unown/x/anim_front.4bpp.lz"); -const u32 gMonFrontPic_UnownY[] = INCBIN_U32("graphics/pokemon/unown/y/anim_front.4bpp.lz"); -const u32 gMonFrontPic_UnownZ[] = INCBIN_U32("graphics/pokemon/unown/z/anim_front.4bpp.lz"); -const u32 gMonFrontPic_UnownExclamationMark[] = INCBIN_U32("graphics/pokemon/unown/exclamation_mark/anim_front.4bpp.lz"); -const u32 gMonFrontPic_UnownQuestionMark[] = INCBIN_U32("graphics/pokemon/unown/question_mark/anim_front.4bpp.lz"); -const u32 gMonFrontPic_CastformSunny[] = INCBIN_U32("graphics/pokemon/castform/sunny/anim_front.4bpp.lz"); -const u32 gMonFrontPic_CastformRainy[] = INCBIN_U32("graphics/pokemon/castform/rainy/anim_front.4bpp.lz"); -const u32 gMonFrontPic_CastformSnowy[] = INCBIN_U32("graphics/pokemon/castform/snowy/anim_front.4bpp.lz"); -const u32 gMonFrontPic_DeoxysAttack[] = INCBIN_U32("graphics/pokemon/deoxys/attack/anim_front.4bpp.lz"); -const u32 gMonFrontPic_DeoxysDefense[] = INCBIN_U32("graphics/pokemon/deoxys/defense/anim_front.4bpp.lz"); -const u32 gMonFrontPic_DeoxysSpeed[] = INCBIN_U32("graphics/pokemon/deoxys/speed/anim_front.4bpp.lz"); -#if P_GEN_4_POKEMON == TRUE -const u32 gMonFrontPic_BurmySandyCloak[] = INCBIN_U32("graphics/pokemon/burmy/sandy_cloak/anim_front.4bpp.lz"); -const u32 gMonFrontPic_BurmyTrashCloak[] = INCBIN_U32("graphics/pokemon/burmy/trash_cloak/anim_front.4bpp.lz"); -const u32 gMonFrontPic_WormadamSandyCloak[] = INCBIN_U32("graphics/pokemon/wormadam/sandy_cloak/anim_front.4bpp.lz"); -const u32 gMonFrontPic_WormadamTrashCloak[] = INCBIN_U32("graphics/pokemon/wormadam/trash_cloak/anim_front.4bpp.lz"); -const u32 gMonFrontPic_CherrimSunshine[] = INCBIN_U32("graphics/pokemon/cherrim/sunshine/anim_front.4bpp.lz"); -const u32 gMonFrontPic_ShellosEastSea[] = INCBIN_U32("graphics/pokemon/shellos/east_sea/anim_front.4bpp.lz"); -const u32 gMonFrontPic_GastrodonEastSea[] = INCBIN_U32("graphics/pokemon/gastrodon/east_sea/anim_front.4bpp.lz"); -const u32 gMonFrontPic_RotomHeat[] = INCBIN_U32("graphics/pokemon/rotom/heat/anim_front.4bpp.lz"); -const u32 gMonFrontPic_RotomWash[] = INCBIN_U32("graphics/pokemon/rotom/wash/anim_front.4bpp.lz"); -const u32 gMonFrontPic_RotomFrost[] = INCBIN_U32("graphics/pokemon/rotom/frost/anim_front.4bpp.lz"); -const u32 gMonFrontPic_RotomFan[] = INCBIN_U32("graphics/pokemon/rotom/fan/anim_front.4bpp.lz"); -const u32 gMonFrontPic_RotomMow[] = INCBIN_U32("graphics/pokemon/rotom/mow/anim_front.4bpp.lz"); -const u32 gMonFrontPic_DialgaOrigin[] = INCBIN_U32("graphics/pokemon/dialga/origin/front.4bpp.lz"); -const u32 gMonFrontPic_PalkiaOrigin[] = INCBIN_U32("graphics/pokemon/palkia/origin/front.4bpp.lz"); -const u32 gMonFrontPic_GiratinaOrigin[] = INCBIN_U32("graphics/pokemon/giratina/origin/anim_front.4bpp.lz"); -const u32 gMonFrontPic_ShayminSky[] = INCBIN_U32("graphics/pokemon/shaymin/sky/anim_front.4bpp.lz"); -#endif -#if P_GEN_5_POKEMON == TRUE -const u32 gMonFrontPic_BasculinBlueStriped[] = INCBIN_U32("graphics/pokemon/basculin/blue_striped/front.4bpp.lz"); -const u32 gMonFrontPic_BasculinWhiteStriped[] = INCBIN_U32("graphics/pokemon/basculin/white_striped/front.4bpp.lz"); -const u32 gMonFrontPic_DarmanitanZenMode[] = INCBIN_U32("graphics/pokemon/darmanitan/zen_mode/anim_front.4bpp.lz"); -const u32 gMonFrontPic_DarmanitanGalarianZenMode[] = INCBIN_U32("graphics/pokemon/darmanitan/zen_mode/galarian/front.4bpp.lz"); -const u32 gMonFrontPic_SawsbuckSummer[] = INCBIN_U32("graphics/pokemon/sawsbuck/summer/front.4bpp.lz"); -const u32 gMonFrontPic_SawsbuckAutumn[] = INCBIN_U32("graphics/pokemon/sawsbuck/autumn/front.4bpp.lz"); -const u32 gMonFrontPic_SawsbuckWinter[] = INCBIN_U32("graphics/pokemon/sawsbuck/winter/front.4bpp.lz"); -const u32 gMonFrontPic_TornadusTherian[] = INCBIN_U32("graphics/pokemon/tornadus/therian/anim_front.4bpp.lz"); -const u32 gMonFrontPic_ThundurusTherian[] = INCBIN_U32("graphics/pokemon/thundurus/therian/anim_front.4bpp.lz"); -const u32 gMonFrontPic_LandorusTherian[] = INCBIN_U32("graphics/pokemon/landorus/therian/anim_front.4bpp.lz"); -const u32 gMonFrontPic_KyuremWhite[] = INCBIN_U32("graphics/pokemon/kyurem/white/anim_front.4bpp.lz"); -const u32 gMonFrontPic_KyuremBlack[] = INCBIN_U32("graphics/pokemon/kyurem/black/anim_front.4bpp.lz"); -const u32 gMonFrontPic_KeldeoResolute[] = INCBIN_U32("graphics/pokemon/keldeo/resolute/front.4bpp.lz"); -const u32 gMonFrontPic_MeloettaPirouette[] = INCBIN_U32("graphics/pokemon/meloetta/pirouette/front.4bpp.lz"); -#endif -#if P_GEN_6_POKEMON == TRUE -const u32 gMonFrontPic_GreninjaAsh[] = INCBIN_U32("graphics/pokemon/greninja/ash/anim_front.4bpp.lz"); -const u32 gMonFrontPic_VivillonPolar[] = INCBIN_U32("graphics/pokemon/vivillon/polar/anim_front.4bpp.lz"); -const u32 gMonFrontPic_VivillonTundra[] = INCBIN_U32("graphics/pokemon/vivillon/tundra/anim_front.4bpp.lz"); -const u32 gMonFrontPic_VivillonContinental[] = INCBIN_U32("graphics/pokemon/vivillon/continental/anim_front.4bpp.lz"); -const u32 gMonFrontPic_VivillonGarden[] = INCBIN_U32("graphics/pokemon/vivillon/garden/anim_front.4bpp.lz"); -const u32 gMonFrontPic_VivillonElegant[] = INCBIN_U32("graphics/pokemon/vivillon/elegant/anim_front.4bpp.lz"); -const u32 gMonFrontPic_VivillonMeadow[] = INCBIN_U32("graphics/pokemon/vivillon/meadow/anim_front.4bpp.lz"); -const u32 gMonFrontPic_VivillonModern[] = INCBIN_U32("graphics/pokemon/vivillon/modern/anim_front.4bpp.lz"); -const u32 gMonFrontPic_VivillonMarine[] = INCBIN_U32("graphics/pokemon/vivillon/marine/anim_front.4bpp.lz"); -const u32 gMonFrontPic_VivillonArchipelago[] = INCBIN_U32("graphics/pokemon/vivillon/archipelago/anim_front.4bpp.lz"); -const u32 gMonFrontPic_VivillonHighPlains[] = INCBIN_U32("graphics/pokemon/vivillon/high_plains/anim_front.4bpp.lz"); -const u32 gMonFrontPic_VivillonSandstorm[] = INCBIN_U32("graphics/pokemon/vivillon/sandstorm/anim_front.4bpp.lz"); -const u32 gMonFrontPic_VivillonRiver[] = INCBIN_U32("graphics/pokemon/vivillon/river/anim_front.4bpp.lz"); -const u32 gMonFrontPic_VivillonMonsoon[] = INCBIN_U32("graphics/pokemon/vivillon/monsoon/anim_front.4bpp.lz"); -const u32 gMonFrontPic_VivillonSavanna[] = INCBIN_U32("graphics/pokemon/vivillon/savanna/anim_front.4bpp.lz"); -const u32 gMonFrontPic_VivillonSun[] = INCBIN_U32("graphics/pokemon/vivillon/sun/anim_front.4bpp.lz"); -const u32 gMonFrontPic_VivillonOcean[] = INCBIN_U32("graphics/pokemon/vivillon/ocean/anim_front.4bpp.lz"); -const u32 gMonFrontPic_VivillonJungle[] = INCBIN_U32("graphics/pokemon/vivillon/jungle/anim_front.4bpp.lz"); -const u32 gMonFrontPic_VivillonFancy[] = INCBIN_U32("graphics/pokemon/vivillon/fancy/anim_front.4bpp.lz"); -const u32 gMonFrontPic_VivillonPokeBall[] = INCBIN_U32("graphics/pokemon/vivillon/poke_ball/anim_front.4bpp.lz"); -const u32 gMonFrontPic_FloetteEternalFlower[] = INCBIN_U32("graphics/pokemon/floette/eternal_flower/front.4bpp.lz"); -const u32 gMonFrontPic_FurfrouHeartTrim[] = INCBIN_U32("graphics/pokemon/furfrou/heart_trim/anim_front.4bpp.lz"); -const u32 gMonFrontPic_FurfrouStarTrim[] = INCBIN_U32("graphics/pokemon/furfrou/star_trim/anim_front.4bpp.lz"); -const u32 gMonFrontPic_FurfrouDiamondTrim[] = INCBIN_U32("graphics/pokemon/furfrou/diamond_trim/anim_front.4bpp.lz"); -const u32 gMonFrontPic_FurfrouDebutanteTrim[] = INCBIN_U32("graphics/pokemon/furfrou/debutante_trim/anim_front.4bpp.lz"); -const u32 gMonFrontPic_FurfrouMatronTrim[] = INCBIN_U32("graphics/pokemon/furfrou/matron_trim/anim_front.4bpp.lz"); -const u32 gMonFrontPic_FurfrouDandyTrim[] = INCBIN_U32("graphics/pokemon/furfrou/dandy_trim/anim_front.4bpp.lz"); -const u32 gMonFrontPic_FurfrouLaReineTrim[] = INCBIN_U32("graphics/pokemon/furfrou/la_reine_trim/anim_front.4bpp.lz"); -const u32 gMonFrontPic_FurfrouKabukiTrim[] = INCBIN_U32("graphics/pokemon/furfrou/kabuki_trim/anim_front.4bpp.lz"); -const u32 gMonFrontPic_FurfrouPharaohTrim[] = INCBIN_U32("graphics/pokemon/furfrou/pharaoh_trim/anim_front.4bpp.lz"); -const u32 gMonFrontPic_MeowsticFemale[] = INCBIN_U32("graphics/pokemon/meowstic/female/anim_front.4bpp.lz"); -const u32 gMonFrontPic_AegislashBlade[] = INCBIN_U32("graphics/pokemon/aegislash/blade/anim_front.4bpp.lz"); -const u32 gMonFrontPic_PumpkabooSmall[] = INCBIN_U32("graphics/pokemon/pumpkaboo/small/anim_front.4bpp.lz"); -const u32 gMonFrontPic_PumpkabooLarge[] = INCBIN_U32("graphics/pokemon/pumpkaboo/large/anim_front.4bpp.lz"); -const u32 gMonFrontPic_PumpkabooSuper[] = INCBIN_U32("graphics/pokemon/pumpkaboo/super/anim_front.4bpp.lz"); -const u32 gMonFrontPic_GourgeistSmall[] = INCBIN_U32("graphics/pokemon/gourgeist/small/anim_front.4bpp.lz"); -const u32 gMonFrontPic_GourgeistLarge[] = INCBIN_U32("graphics/pokemon/gourgeist/large/anim_front.4bpp.lz"); -const u32 gMonFrontPic_GourgeistSuper[] = INCBIN_U32("graphics/pokemon/gourgeist/super/anim_front.4bpp.lz"); -const u32 gMonFrontPic_XerneasActive[] = INCBIN_U32("graphics/pokemon/xerneas/active/anim_front.4bpp.lz"); -const u32 gMonFrontPic_Zygarde10[] = INCBIN_U32("graphics/pokemon/zygarde/10_percent/anim_front.4bpp.lz"); -const u32 gMonFrontPic_ZygardeComplete[] = INCBIN_U32("graphics/pokemon/zygarde/complete/anim_front.4bpp.lz"); -const u32 gMonFrontPic_HoopaUnbound[] = INCBIN_U32("graphics/pokemon/hoopa/unbound/anim_front.4bpp.lz"); -#endif -#if P_GEN_7_POKEMON == TRUE -const u32 gMonFrontPic_OricorioPomPom[] = INCBIN_U32("graphics/pokemon/oricorio/pom_pom/front.4bpp.lz"); -const u32 gMonFrontPic_OricorioPau[] = INCBIN_U32("graphics/pokemon/oricorio/pau/front.4bpp.lz"); -const u32 gMonFrontPic_OricorioSensu[] = INCBIN_U32("graphics/pokemon/oricorio/sensu/front.4bpp.lz"); -const u32 gMonFrontPic_LycanrocMidnight[] = INCBIN_U32("graphics/pokemon/lycanroc/midnight/front.4bpp.lz"); -const u32 gMonFrontPic_LycanrocDusk[] = INCBIN_U32("graphics/pokemon/lycanroc/dusk/front.4bpp.lz"); -const u32 gMonFrontPic_WishiwashiSchool[] = INCBIN_U32("graphics/pokemon/wishiwashi/school/front.4bpp.lz"); -const u32 gMonFrontPic_MiniorCore[] = INCBIN_U32("graphics/pokemon/minior/core/front.4bpp.lz"); -const u32 gMonFrontPic_MimikyuBusted[] = INCBIN_U32("graphics/pokemon/mimikyu/busted/front.4bpp.lz"); -const u32 gMonFrontPic_NecrozmaDuskMane[] = INCBIN_U32("graphics/pokemon/necrozma/dusk_mane/front.4bpp.lz"); -const u32 gMonFrontPic_NecrozmaDawnWings[] = INCBIN_U32("graphics/pokemon/necrozma/dawn_wings/front.4bpp.lz"); -const u32 gMonFrontPic_NecrozmaUltra[] = INCBIN_U32("graphics/pokemon/necrozma/ultra/front.4bpp.lz"); -const u32 gMonFrontPic_MagearnaOriginalColor[] = INCBIN_U32("graphics/pokemon/magearna/original_color/front.4bpp.lz"); -#endif -#if P_GEN_8_POKEMON == TRUE -const u32 gMonFrontPic_CramorantGulping[] = INCBIN_U32("graphics/pokemon/cramorant/gulping/front.4bpp.lz"); -const u32 gMonFrontPic_CramorantGorging[] = INCBIN_U32("graphics/pokemon/cramorant/gorging/front.4bpp.lz"); -const u32 gMonFrontPic_ToxtricityLowKey[] = INCBIN_U32("graphics/pokemon/toxtricity/low_key/front.4bpp.lz"); -const u32 gMonFrontPic_AlcremieRubyCream[] = INCBIN_U32("graphics/pokemon/alcremie/ruby_cream/front.4bpp.lz"); -const u32 gMonFrontPic_AlcremieMatchaCream[] = INCBIN_U32("graphics/pokemon/alcremie/matcha_cream/front.4bpp.lz"); -const u32 gMonFrontPic_AlcremieMintCream[] = INCBIN_U32("graphics/pokemon/alcremie/mint_cream/front.4bpp.lz"); -const u32 gMonFrontPic_AlcremieLemonCream[] = INCBIN_U32("graphics/pokemon/alcremie/lemon_cream/front.4bpp.lz"); -const u32 gMonFrontPic_AlcremieSaltedCream[] = INCBIN_U32("graphics/pokemon/alcremie/salted_cream/front.4bpp.lz"); -const u32 gMonFrontPic_AlcremieRubySwirl[] = INCBIN_U32("graphics/pokemon/alcremie/ruby_swirl/front.4bpp.lz"); -const u32 gMonFrontPic_AlcremieCaramelSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/caramel_swirl/front.4bpp.lz"); -const u32 gMonFrontPic_AlcremieRainbowSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/rainbow_swirl/front.4bpp.lz"); -const u32 gMonFrontPic_EiscueNoiceFace[] = INCBIN_U32("graphics/pokemon/eiscue/noice_face/front.4bpp.lz"); -const u32 gMonFrontPic_IndeedeeFemale[] = INCBIN_U32("graphics/pokemon/indeedee/female/front.4bpp.lz"); -const u32 gMonFrontPic_MorpekoHangry[] = INCBIN_U32("graphics/pokemon/morpeko/hangry/front.4bpp.lz"); -const u32 gMonFrontPic_ZacianCrownedSword[] = INCBIN_U32("graphics/pokemon/zacian/crowned_sword/front.4bpp.lz"); -const u32 gMonFrontPic_ZamazentaCrownedShield[] = INCBIN_U32("graphics/pokemon/zamazenta/crowned_shield/front.4bpp.lz"); -const u32 gMonFrontPic_EternatusEternamax[] = INCBIN_U32("graphics/pokemon/eternatus/eternamax/front.4bpp.lz"); -const u32 gMonFrontPic_UrshifuRapidStrikeStyle[] = INCBIN_U32("graphics/pokemon/urshifu/rapid_strike_style/front.4bpp.lz"); -const u32 gMonFrontPic_ZarudeDada[] = INCBIN_U32("graphics/pokemon/zarude/dada/front.4bpp.lz"); -const u32 gMonFrontPic_CalyrexIceRider[] = INCBIN_U32("graphics/pokemon/calyrex/ice_rider/front.4bpp.lz"); -const u32 gMonFrontPic_CalyrexShadowRider[] = INCBIN_U32("graphics/pokemon/calyrex/shadow_rider/front.4bpp.lz"); -const u32 gMonFrontPic_EnamorusTherian[] = INCBIN_U32("graphics/pokemon/enamorus/therian/front.4bpp.lz"); -const u32 gMonFrontPic_BasculegionFemale[] = INCBIN_U32("graphics/pokemon/basculegion/female/front.4bpp.lz"); -const u32 gMonFrontPic_VenusaurGigantamax[] = INCBIN_U32("graphics/pokemon/venusaur/gigantamax/front.4bpp.lz"); -const u32 gMonFrontPic_CharizardGigantamax[] = INCBIN_U32("graphics/pokemon/charizard/gigantamax/front.4bpp.lz"); -const u32 gMonFrontPic_BlastoiseGigantamax[] = INCBIN_U32("graphics/pokemon/blastoise/gigantamax/front.4bpp.lz"); -const u32 gMonFrontPic_ButterfreeGigantamax[] = INCBIN_U32("graphics/pokemon/butterfree/gigantamax/front.4bpp.lz"); -const u32 gMonFrontPic_PikachuGigantamax[] = INCBIN_U32("graphics/pokemon/pikachu/gigantamax/front.4bpp.lz"); -const u32 gMonFrontPic_MeowthGigantamax[] = INCBIN_U32("graphics/pokemon/meowth/gigantamax/front.4bpp.lz"); -const u32 gMonFrontPic_MachampGigantamax[] = INCBIN_U32("graphics/pokemon/machamp/gigantamax/front.4bpp.lz"); -const u32 gMonFrontPic_GengarGigantamax[] = INCBIN_U32("graphics/pokemon/gengar/gigantamax/front.4bpp.lz"); -const u32 gMonFrontPic_KinglerGigantamax[] = INCBIN_U32("graphics/pokemon/kingler/gigantamax/front.4bpp.lz"); -const u32 gMonFrontPic_LaprasGigantamax[] = INCBIN_U32("graphics/pokemon/lapras/gigantamax/front.4bpp.lz"); -const u32 gMonFrontPic_EeveeGigantamax[] = INCBIN_U32("graphics/pokemon/eevee/gigantamax/front.4bpp.lz"); -const u32 gMonFrontPic_SnorlaxGigantamax[] = INCBIN_U32("graphics/pokemon/snorlax/gigantamax/front.4bpp.lz"); -const u32 gMonFrontPic_GarbodorGigantamax[] = INCBIN_U32("graphics/pokemon/garbodor/gigantamax/front.4bpp.lz"); -const u32 gMonFrontPic_MelmetalGigantamax[] = INCBIN_U32("graphics/pokemon/melmetal/gigantamax/front.4bpp.lz"); -const u32 gMonFrontPic_RillaboomGigantamax[] = INCBIN_U32("graphics/pokemon/rillaboom/gigantamax/front.4bpp.lz"); -const u32 gMonFrontPic_CinderaceGigantamax[] = INCBIN_U32("graphics/pokemon/cinderace/gigantamax/front.4bpp.lz"); -const u32 gMonFrontPic_InteleonGigantamax[] = INCBIN_U32("graphics/pokemon/inteleon/gigantamax/front.4bpp.lz"); -const u32 gMonFrontPic_CorviknightGigantamax[] = INCBIN_U32("graphics/pokemon/corviknight/gigantamax/front.4bpp.lz"); -const u32 gMonFrontPic_OrbeetleGigantamax[] = INCBIN_U32("graphics/pokemon/orbeetle/gigantamax/front.4bpp.lz"); -const u32 gMonFrontPic_DrednawGigantamax[] = INCBIN_U32("graphics/pokemon/drednaw/gigantamax/front.4bpp.lz"); -const u32 gMonFrontPic_CoalossalGigantamax[] = INCBIN_U32("graphics/pokemon/coalossal/gigantamax/front.4bpp.lz"); -const u32 gMonFrontPic_FlappleGigantamax[] = INCBIN_U32("graphics/pokemon/flapple/gigantamax/front.4bpp.lz"); -const u32 gMonFrontPic_AppletunGigantamax[] = INCBIN_U32("graphics/pokemon/appletun/gigantamax/front.4bpp.lz"); -const u32 gMonFrontPic_SandacondaGigantamax[] = INCBIN_U32("graphics/pokemon/sandaconda/gigantamax/front.4bpp.lz"); -const u32 gMonFrontPic_ToxtricityGigantamax[] = INCBIN_U32("graphics/pokemon/toxtricity/gigantamax/front.4bpp.lz"); -const u32 gMonFrontPic_CentiskorchGigantamax[] = INCBIN_U32("graphics/pokemon/centiskorch/gigantamax/front.4bpp.lz"); -const u32 gMonFrontPic_HattereneGigantamax[] = INCBIN_U32("graphics/pokemon/hatterene/gigantamax/front.4bpp.lz"); -const u32 gMonFrontPic_GrimmsnarlGigantamax[] = INCBIN_U32("graphics/pokemon/grimmsnarl/gigantamax/front.4bpp.lz"); -const u32 gMonFrontPic_AlcremieGigantamax[] = INCBIN_U32("graphics/pokemon/alcremie/gigantamax/front.4bpp.lz"); -const u32 gMonFrontPic_CopperajahGigantamax[] = INCBIN_U32("graphics/pokemon/copperajah/gigantamax/front.4bpp.lz"); -const u32 gMonFrontPic_DuraludonGigantamax[] = INCBIN_U32("graphics/pokemon/duraludon/gigantamax/front.4bpp.lz"); -const u32 gMonFrontPic_UrshifuSingleStrikeGigantamax[] = INCBIN_U32("graphics/pokemon/urshifu/single_strike_style_gigantamax/front.4bpp.lz"); -const u32 gMonFrontPic_UrshifuRapidStrikeGigantamax[] = INCBIN_U32("graphics/pokemon/urshifu/rapid_strike_style_gigantamax/front.4bpp.lz"); -#endif -const u32 gMonFrontPic_Egg[] = INCBIN_U32("graphics/pokemon/egg/anim_front.4bpp.lz"); - const u32 gMonBackPic_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/question_mark/circled/back.4bpp.lz"); -const u32 gMonBackPic_DoubleQuestionMark[] = INCBIN_U32("graphics/pokemon/question_mark/double/back.4bpp.lz"); -const u32 gMonBackPic_Bulbasaur[] = INCBIN_U32("graphics/pokemon/bulbasaur/back.4bpp.lz"); -const u32 gMonBackPic_Ivysaur[] = INCBIN_U32("graphics/pokemon/ivysaur/back.4bpp.lz"); -const u32 gMonBackPic_Venusaur[] = INCBIN_U32("graphics/pokemon/venusaur/back.4bpp.lz"); -const u32 gMonBackPic_VenusaurF[] = INCBIN_U32("graphics/pokemon/venusaur/backf.4bpp.lz"); -const u32 gMonBackPic_Charmander[] = INCBIN_U32("graphics/pokemon/charmander/back.4bpp.lz"); -const u32 gMonBackPic_Charmeleon[] = INCBIN_U32("graphics/pokemon/charmeleon/back.4bpp.lz"); -const u32 gMonBackPic_Charizard[] = INCBIN_U32("graphics/pokemon/charizard/back.4bpp.lz"); -const u32 gMonBackPic_Squirtle[] = INCBIN_U32("graphics/pokemon/squirtle/back.4bpp.lz"); -const u32 gMonBackPic_Wartortle[] = INCBIN_U32("graphics/pokemon/wartortle/back.4bpp.lz"); -const u32 gMonBackPic_Blastoise[] = INCBIN_U32("graphics/pokemon/blastoise/back.4bpp.lz"); -const u32 gMonBackPic_Caterpie[] = INCBIN_U32("graphics/pokemon/caterpie/back.4bpp.lz"); -const u32 gMonBackPic_Metapod[] = INCBIN_U32("graphics/pokemon/metapod/back.4bpp.lz"); -const u32 gMonBackPic_Butterfree[] = INCBIN_U32("graphics/pokemon/butterfree/back.4bpp.lz"); -const u32 gMonBackPic_ButterfreeF[] = INCBIN_U32("graphics/pokemon/butterfree/backf.4bpp.lz"); -const u32 gMonBackPic_Weedle[] = INCBIN_U32("graphics/pokemon/weedle/back.4bpp.lz"); -const u32 gMonBackPic_Kakuna[] = INCBIN_U32("graphics/pokemon/kakuna/back.4bpp.lz"); -const u32 gMonBackPic_Beedrill[] = INCBIN_U32("graphics/pokemon/beedrill/back.4bpp.lz"); -const u32 gMonBackPic_Pidgey[] = INCBIN_U32("graphics/pokemon/pidgey/back.4bpp.lz"); -const u32 gMonBackPic_Pidgeotto[] = INCBIN_U32("graphics/pokemon/pidgeotto/back.4bpp.lz"); -const u32 gMonBackPic_Pidgeot[] = INCBIN_U32("graphics/pokemon/pidgeot/back.4bpp.lz"); -const u32 gMonBackPic_Rattata[] = INCBIN_U32("graphics/pokemon/rattata/back.4bpp.lz"); -const u32 gMonBackPic_RattataF[] = INCBIN_U32("graphics/pokemon/rattata/backf.4bpp.lz"); -const u32 gMonBackPic_Raticate[] = INCBIN_U32("graphics/pokemon/raticate/back.4bpp.lz"); -const u32 gMonBackPic_RaticateF[] = INCBIN_U32("graphics/pokemon/raticate/backf.4bpp.lz"); -const u32 gMonBackPic_Spearow[] = INCBIN_U32("graphics/pokemon/spearow/back.4bpp.lz"); -const u32 gMonBackPic_Fearow[] = INCBIN_U32("graphics/pokemon/fearow/back.4bpp.lz"); -const u32 gMonBackPic_Ekans[] = INCBIN_U32("graphics/pokemon/ekans/back.4bpp.lz"); -const u32 gMonBackPic_Arbok[] = INCBIN_U32("graphics/pokemon/arbok/back.4bpp.lz"); -const u32 gMonBackPic_Pikachu[] = INCBIN_U32("graphics/pokemon/pikachu/back.4bpp.lz"); -const u32 gMonBackPic_PikachuF[] = INCBIN_U32("graphics/pokemon/pikachu/backf.4bpp.lz"); -const u32 gMonBackPic_Raichu[] = INCBIN_U32("graphics/pokemon/raichu/back.4bpp.lz"); -const u32 gMonBackPic_Sandshrew[] = INCBIN_U32("graphics/pokemon/sandshrew/back.4bpp.lz"); -const u32 gMonBackPic_Sandslash[] = INCBIN_U32("graphics/pokemon/sandslash/back.4bpp.lz"); -const u32 gMonBackPic_NidoranF[] = INCBIN_U32("graphics/pokemon/nidoran_f/back.4bpp.lz"); -const u32 gMonBackPic_Nidorina[] = INCBIN_U32("graphics/pokemon/nidorina/back.4bpp.lz"); -const u32 gMonBackPic_Nidoqueen[] = INCBIN_U32("graphics/pokemon/nidoqueen/back.4bpp.lz"); -const u32 gMonBackPic_NidoranM[] = INCBIN_U32("graphics/pokemon/nidoran_m/back.4bpp.lz"); -const u32 gMonBackPic_Nidorino[] = INCBIN_U32("graphics/pokemon/nidorino/back.4bpp.lz"); -const u32 gMonBackPic_Nidoking[] = INCBIN_U32("graphics/pokemon/nidoking/back.4bpp.lz"); -const u32 gMonBackPic_Clefairy[] = INCBIN_U32("graphics/pokemon/clefairy/back.4bpp.lz"); -const u32 gMonBackPic_Clefable[] = INCBIN_U32("graphics/pokemon/clefable/back.4bpp.lz"); -const u32 gMonBackPic_Vulpix[] = INCBIN_U32("graphics/pokemon/vulpix/back.4bpp.lz"); -const u32 gMonBackPic_Ninetales[] = INCBIN_U32("graphics/pokemon/ninetales/back.4bpp.lz"); -const u32 gMonBackPic_Jigglypuff[] = INCBIN_U32("graphics/pokemon/jigglypuff/back.4bpp.lz"); -const u32 gMonBackPic_Wigglytuff[] = INCBIN_U32("graphics/pokemon/wigglytuff/back.4bpp.lz"); -const u32 gMonBackPic_Zubat[] = INCBIN_U32("graphics/pokemon/zubat/back.4bpp.lz"); -const u32 gMonBackPic_ZubatF[] = INCBIN_U32("graphics/pokemon/zubat/backf.4bpp.lz"); -const u32 gMonBackPic_Golbat[] = INCBIN_U32("graphics/pokemon/golbat/back.4bpp.lz"); -const u32 gMonBackPic_GolbatF[] = INCBIN_U32("graphics/pokemon/golbat/backf.4bpp.lz"); -const u32 gMonBackPic_Oddish[] = INCBIN_U32("graphics/pokemon/oddish/back.4bpp.lz"); -const u32 gMonBackPic_Gloom[] = INCBIN_U32("graphics/pokemon/gloom/back.4bpp.lz"); -const u32 gMonBackPic_GloomF[] = INCBIN_U32("graphics/pokemon/gloom/backf.4bpp.lz"); -const u32 gMonBackPic_Vileplume[] = INCBIN_U32("graphics/pokemon/vileplume/back.4bpp.lz"); -const u32 gMonBackPic_VileplumeF[] = INCBIN_U32("graphics/pokemon/vileplume/backf.4bpp.lz"); -const u32 gMonBackPic_Paras[] = INCBIN_U32("graphics/pokemon/paras/back.4bpp.lz"); -const u32 gMonBackPic_Parasect[] = INCBIN_U32("graphics/pokemon/parasect/back.4bpp.lz"); -const u32 gMonBackPic_Venonat[] = INCBIN_U32("graphics/pokemon/venonat/back.4bpp.lz"); -const u32 gMonBackPic_Venomoth[] = INCBIN_U32("graphics/pokemon/venomoth/back.4bpp.lz"); -const u32 gMonBackPic_Diglett[] = INCBIN_U32("graphics/pokemon/diglett/back.4bpp.lz"); -const u32 gMonBackPic_Dugtrio[] = INCBIN_U32("graphics/pokemon/dugtrio/back.4bpp.lz"); -const u32 gMonBackPic_Meowth[] = INCBIN_U32("graphics/pokemon/meowth/back.4bpp.lz"); -const u32 gMonBackPic_Persian[] = INCBIN_U32("graphics/pokemon/persian/back.4bpp.lz"); -const u32 gMonBackPic_Psyduck[] = INCBIN_U32("graphics/pokemon/psyduck/back.4bpp.lz"); -const u32 gMonBackPic_Golduck[] = INCBIN_U32("graphics/pokemon/golduck/back.4bpp.lz"); -const u32 gMonBackPic_Mankey[] = INCBIN_U32("graphics/pokemon/mankey/back.4bpp.lz"); -const u32 gMonBackPic_Primeape[] = INCBIN_U32("graphics/pokemon/primeape/back.4bpp.lz"); -const u32 gMonBackPic_Growlithe[] = INCBIN_U32("graphics/pokemon/growlithe/back.4bpp.lz"); -const u32 gMonBackPic_Arcanine[] = INCBIN_U32("graphics/pokemon/arcanine/back.4bpp.lz"); -const u32 gMonBackPic_Poliwag[] = INCBIN_U32("graphics/pokemon/poliwag/back.4bpp.lz"); -const u32 gMonBackPic_Poliwhirl[] = INCBIN_U32("graphics/pokemon/poliwhirl/back.4bpp.lz"); -const u32 gMonBackPic_Poliwrath[] = INCBIN_U32("graphics/pokemon/poliwrath/back.4bpp.lz"); -const u32 gMonBackPic_Abra[] = INCBIN_U32("graphics/pokemon/abra/back.4bpp.lz"); -const u32 gMonBackPic_Kadabra[] = INCBIN_U32("graphics/pokemon/kadabra/back.4bpp.lz"); -const u32 gMonBackPic_KadabraF[] = INCBIN_U32("graphics/pokemon/kadabra/backf.4bpp.lz"); -const u32 gMonBackPic_Alakazam[] = INCBIN_U32("graphics/pokemon/alakazam/back.4bpp.lz"); -const u32 gMonBackPic_AlakazamF[] = INCBIN_U32("graphics/pokemon/alakazam/backf.4bpp.lz"); -const u32 gMonBackPic_Machop[] = INCBIN_U32("graphics/pokemon/machop/back.4bpp.lz"); -const u32 gMonBackPic_Machoke[] = INCBIN_U32("graphics/pokemon/machoke/back.4bpp.lz"); -const u32 gMonBackPic_Machamp[] = INCBIN_U32("graphics/pokemon/machamp/back.4bpp.lz"); -const u32 gMonBackPic_Bellsprout[] = INCBIN_U32("graphics/pokemon/bellsprout/back.4bpp.lz"); -const u32 gMonBackPic_Weepinbell[] = INCBIN_U32("graphics/pokemon/weepinbell/back.4bpp.lz"); -const u32 gMonBackPic_Victreebel[] = INCBIN_U32("graphics/pokemon/victreebel/back.4bpp.lz"); -const u32 gMonBackPic_Tentacool[] = INCBIN_U32("graphics/pokemon/tentacool/back.4bpp.lz"); -const u32 gMonBackPic_Tentacruel[] = INCBIN_U32("graphics/pokemon/tentacruel/back.4bpp.lz"); -const u32 gMonBackPic_Geodude[] = INCBIN_U32("graphics/pokemon/geodude/back.4bpp.lz"); -const u32 gMonBackPic_Graveler[] = INCBIN_U32("graphics/pokemon/graveler/back.4bpp.lz"); -const u32 gMonBackPic_Golem[] = INCBIN_U32("graphics/pokemon/golem/back.4bpp.lz"); -const u32 gMonBackPic_Ponyta[] = INCBIN_U32("graphics/pokemon/ponyta/back.4bpp.lz"); -const u32 gMonBackPic_Rapidash[] = INCBIN_U32("graphics/pokemon/rapidash/back.4bpp.lz"); -const u32 gMonBackPic_Slowpoke[] = INCBIN_U32("graphics/pokemon/slowpoke/back.4bpp.lz"); -const u32 gMonBackPic_Slowbro[] = INCBIN_U32("graphics/pokemon/slowbro/back.4bpp.lz"); -const u32 gMonBackPic_Magnemite[] = INCBIN_U32("graphics/pokemon/magnemite/back.4bpp.lz"); -const u32 gMonBackPic_Magneton[] = INCBIN_U32("graphics/pokemon/magneton/back.4bpp.lz"); -const u32 gMonBackPic_Farfetchd[] = INCBIN_U32("graphics/pokemon/farfetchd/back.4bpp.lz"); -const u32 gMonBackPic_Doduo[] = INCBIN_U32("graphics/pokemon/doduo/back.4bpp.lz"); -const u32 gMonBackPic_DoduoF[] = INCBIN_U32("graphics/pokemon/doduo/backf.4bpp.lz"); -const u32 gMonBackPic_Dodrio[] = INCBIN_U32("graphics/pokemon/dodrio/back.4bpp.lz"); -const u32 gMonBackPic_DodrioF[] = INCBIN_U32("graphics/pokemon/dodrio/backf.4bpp.lz"); -const u32 gMonBackPic_Seel[] = INCBIN_U32("graphics/pokemon/seel/back.4bpp.lz"); -const u32 gMonBackPic_Dewgong[] = INCBIN_U32("graphics/pokemon/dewgong/back.4bpp.lz"); -const u32 gMonBackPic_Grimer[] = INCBIN_U32("graphics/pokemon/grimer/back.4bpp.lz"); -const u32 gMonBackPic_Muk[] = INCBIN_U32("graphics/pokemon/muk/back.4bpp.lz"); -const u32 gMonBackPic_Shellder[] = INCBIN_U32("graphics/pokemon/shellder/back.4bpp.lz"); -const u32 gMonBackPic_Cloyster[] = INCBIN_U32("graphics/pokemon/cloyster/back.4bpp.lz"); -const u32 gMonBackPic_Gastly[] = INCBIN_U32("graphics/pokemon/gastly/back.4bpp.lz"); -const u32 gMonBackPic_Haunter[] = INCBIN_U32("graphics/pokemon/haunter/back.4bpp.lz"); -const u32 gMonBackPic_Gengar[] = INCBIN_U32("graphics/pokemon/gengar/back.4bpp.lz"); -const u32 gMonBackPic_Onix[] = INCBIN_U32("graphics/pokemon/onix/back.4bpp.lz"); -const u32 gMonBackPic_Drowzee[] = INCBIN_U32("graphics/pokemon/drowzee/back.4bpp.lz"); -const u32 gMonBackPic_Hypno[] = INCBIN_U32("graphics/pokemon/hypno/back.4bpp.lz"); -const u32 gMonBackPic_HypnoF[] = INCBIN_U32("graphics/pokemon/hypno/backf.4bpp.lz"); -const u32 gMonBackPic_Krabby[] = INCBIN_U32("graphics/pokemon/krabby/back.4bpp.lz"); -const u32 gMonBackPic_Kingler[] = INCBIN_U32("graphics/pokemon/kingler/back.4bpp.lz"); -const u32 gMonBackPic_Voltorb[] = INCBIN_U32("graphics/pokemon/voltorb/back.4bpp.lz"); -const u32 gMonBackPic_Electrode[] = INCBIN_U32("graphics/pokemon/electrode/back.4bpp.lz"); -const u32 gMonBackPic_Exeggcute[] = INCBIN_U32("graphics/pokemon/exeggcute/back.4bpp.lz"); -const u32 gMonBackPic_Exeggutor[] = INCBIN_U32("graphics/pokemon/exeggutor/back.4bpp.lz"); -const u32 gMonBackPic_Cubone[] = INCBIN_U32("graphics/pokemon/cubone/back.4bpp.lz"); -const u32 gMonBackPic_Marowak[] = INCBIN_U32("graphics/pokemon/marowak/back.4bpp.lz"); -const u32 gMonBackPic_Hitmonlee[] = INCBIN_U32("graphics/pokemon/hitmonlee/back.4bpp.lz"); -const u32 gMonBackPic_Hitmonchan[] = INCBIN_U32("graphics/pokemon/hitmonchan/back.4bpp.lz"); -const u32 gMonBackPic_Lickitung[] = INCBIN_U32("graphics/pokemon/lickitung/back.4bpp.lz"); -const u32 gMonBackPic_Koffing[] = INCBIN_U32("graphics/pokemon/koffing/back.4bpp.lz"); -const u32 gMonBackPic_Weezing[] = INCBIN_U32("graphics/pokemon/weezing/back.4bpp.lz"); -const u32 gMonBackPic_Rhyhorn[] = INCBIN_U32("graphics/pokemon/rhyhorn/back.4bpp.lz"); -const u32 gMonBackPic_RhyhornF[] = INCBIN_U32("graphics/pokemon/rhyhorn/backf.4bpp.lz"); -const u32 gMonBackPic_Rhydon[] = INCBIN_U32("graphics/pokemon/rhydon/back.4bpp.lz"); -const u32 gMonBackPic_RhydonF[] = INCBIN_U32("graphics/pokemon/rhydon/backf.4bpp.lz"); -const u32 gMonBackPic_Chansey[] = INCBIN_U32("graphics/pokemon/chansey/back.4bpp.lz"); -const u32 gMonBackPic_Tangela[] = INCBIN_U32("graphics/pokemon/tangela/back.4bpp.lz"); -const u32 gMonBackPic_Kangaskhan[] = INCBIN_U32("graphics/pokemon/kangaskhan/back.4bpp.lz"); -const u32 gMonBackPic_Horsea[] = INCBIN_U32("graphics/pokemon/horsea/back.4bpp.lz"); -const u32 gMonBackPic_Seadra[] = INCBIN_U32("graphics/pokemon/seadra/back.4bpp.lz"); -const u32 gMonBackPic_Goldeen[] = INCBIN_U32("graphics/pokemon/goldeen/back.4bpp.lz"); -const u32 gMonBackPic_GoldeenF[] = INCBIN_U32("graphics/pokemon/goldeen/backf.4bpp.lz"); -const u32 gMonBackPic_Seaking[] = INCBIN_U32("graphics/pokemon/seaking/back.4bpp.lz"); -const u32 gMonBackPic_SeakingF[] = INCBIN_U32("graphics/pokemon/seaking/backf.4bpp.lz"); -const u32 gMonBackPic_Staryu[] = INCBIN_U32("graphics/pokemon/staryu/back.4bpp.lz"); -const u32 gMonBackPic_Starmie[] = INCBIN_U32("graphics/pokemon/starmie/back.4bpp.lz"); -const u32 gMonBackPic_MrMime[] = INCBIN_U32("graphics/pokemon/mr_mime/back.4bpp.lz"); -const u32 gMonBackPic_Scyther[] = INCBIN_U32("graphics/pokemon/scyther/back.4bpp.lz"); -const u32 gMonBackPic_Jynx[] = INCBIN_U32("graphics/pokemon/jynx/back.4bpp.lz"); -const u32 gMonBackPic_Electabuzz[] = INCBIN_U32("graphics/pokemon/electabuzz/back.4bpp.lz"); -const u32 gMonBackPic_Magmar[] = INCBIN_U32("graphics/pokemon/magmar/back.4bpp.lz"); -const u32 gMonBackPic_Pinsir[] = INCBIN_U32("graphics/pokemon/pinsir/back.4bpp.lz"); -const u32 gMonBackPic_Tauros[] = INCBIN_U32("graphics/pokemon/tauros/back.4bpp.lz"); -const u32 gMonBackPic_Magikarp[] = INCBIN_U32("graphics/pokemon/magikarp/back.4bpp.lz"); -const u32 gMonBackPic_MagikarpF[] = INCBIN_U32("graphics/pokemon/magikarp/backf.4bpp.lz"); -const u32 gMonBackPic_Gyarados[] = INCBIN_U32("graphics/pokemon/gyarados/back.4bpp.lz"); -const u32 gMonBackPic_GyaradosF[] = INCBIN_U32("graphics/pokemon/gyarados/backf.4bpp.lz"); -const u32 gMonBackPic_Lapras[] = INCBIN_U32("graphics/pokemon/lapras/back.4bpp.lz"); -const u32 gMonBackPic_Ditto[] = INCBIN_U32("graphics/pokemon/ditto/back.4bpp.lz"); -const u32 gMonBackPic_Eevee[] = INCBIN_U32("graphics/pokemon/eevee/back.4bpp.lz"); -const u32 gMonBackPic_EeveeF[] = INCBIN_U32("graphics/pokemon/eevee/backf.4bpp.lz"); -const u32 gMonBackPic_Vaporeon[] = INCBIN_U32("graphics/pokemon/vaporeon/back.4bpp.lz"); -const u32 gMonBackPic_Jolteon[] = INCBIN_U32("graphics/pokemon/jolteon/back.4bpp.lz"); -const u32 gMonBackPic_Flareon[] = INCBIN_U32("graphics/pokemon/flareon/back.4bpp.lz"); -const u32 gMonBackPic_Porygon[] = INCBIN_U32("graphics/pokemon/porygon/back.4bpp.lz"); -const u32 gMonBackPic_Omanyte[] = INCBIN_U32("graphics/pokemon/omanyte/back.4bpp.lz"); -const u32 gMonBackPic_Omastar[] = INCBIN_U32("graphics/pokemon/omastar/back.4bpp.lz"); -const u32 gMonBackPic_Kabuto[] = INCBIN_U32("graphics/pokemon/kabuto/back.4bpp.lz"); -const u32 gMonBackPic_Kabutops[] = INCBIN_U32("graphics/pokemon/kabutops/back.4bpp.lz"); -const u32 gMonBackPic_Aerodactyl[] = INCBIN_U32("graphics/pokemon/aerodactyl/back.4bpp.lz"); -const u32 gMonBackPic_Snorlax[] = INCBIN_U32("graphics/pokemon/snorlax/back.4bpp.lz"); -const u32 gMonBackPic_Articuno[] = INCBIN_U32("graphics/pokemon/articuno/back.4bpp.lz"); -const u32 gMonBackPic_Zapdos[] = INCBIN_U32("graphics/pokemon/zapdos/back.4bpp.lz"); -const u32 gMonBackPic_Moltres[] = INCBIN_U32("graphics/pokemon/moltres/back.4bpp.lz"); -const u32 gMonBackPic_Dratini[] = INCBIN_U32("graphics/pokemon/dratini/back.4bpp.lz"); -const u32 gMonBackPic_Dragonair[] = INCBIN_U32("graphics/pokemon/dragonair/back.4bpp.lz"); -const u32 gMonBackPic_Dragonite[] = INCBIN_U32("graphics/pokemon/dragonite/back.4bpp.lz"); -const u32 gMonBackPic_Mewtwo[] = INCBIN_U32("graphics/pokemon/mewtwo/back.4bpp.lz"); -const u32 gMonBackPic_Mew[] = INCBIN_U32("graphics/pokemon/mew/back.4bpp.lz"); -const u32 gMonBackPic_Chikorita[] = INCBIN_U32("graphics/pokemon/chikorita/back.4bpp.lz"); -const u32 gMonBackPic_Bayleef[] = INCBIN_U32("graphics/pokemon/bayleef/back.4bpp.lz"); -const u32 gMonBackPic_Meganium[] = INCBIN_U32("graphics/pokemon/meganium/back.4bpp.lz"); -const u32 gMonBackPic_MeganiumF[] = INCBIN_U32("graphics/pokemon/meganium/backf.4bpp.lz"); -const u32 gMonBackPic_Cyndaquil[] = INCBIN_U32("graphics/pokemon/cyndaquil/back.4bpp.lz"); -const u32 gMonBackPic_Quilava[] = INCBIN_U32("graphics/pokemon/quilava/back.4bpp.lz"); -const u32 gMonBackPic_Typhlosion[] = INCBIN_U32("graphics/pokemon/typhlosion/back.4bpp.lz"); -const u32 gMonBackPic_Totodile[] = INCBIN_U32("graphics/pokemon/totodile/back.4bpp.lz"); -const u32 gMonBackPic_Croconaw[] = INCBIN_U32("graphics/pokemon/croconaw/back.4bpp.lz"); -const u32 gMonBackPic_Feraligatr[] = INCBIN_U32("graphics/pokemon/feraligatr/back.4bpp.lz"); -const u32 gMonBackPic_Sentret[] = INCBIN_U32("graphics/pokemon/sentret/back.4bpp.lz"); -const u32 gMonBackPic_Furret[] = INCBIN_U32("graphics/pokemon/furret/back.4bpp.lz"); -const u32 gMonBackPic_Hoothoot[] = INCBIN_U32("graphics/pokemon/hoothoot/back.4bpp.lz"); -const u32 gMonBackPic_Noctowl[] = INCBIN_U32("graphics/pokemon/noctowl/back.4bpp.lz"); -const u32 gMonBackPic_Ledyba[] = INCBIN_U32("graphics/pokemon/ledyba/back.4bpp.lz"); -const u32 gMonBackPic_LedybaF[] = INCBIN_U32("graphics/pokemon/ledyba/backf.4bpp.lz"); -const u32 gMonBackPic_Ledian[] = INCBIN_U32("graphics/pokemon/ledian/back.4bpp.lz"); -const u32 gMonBackPic_LedianF[] = INCBIN_U32("graphics/pokemon/ledian/backf.4bpp.lz"); -const u32 gMonBackPic_Spinarak[] = INCBIN_U32("graphics/pokemon/spinarak/back.4bpp.lz"); -const u32 gMonBackPic_Ariados[] = INCBIN_U32("graphics/pokemon/ariados/back.4bpp.lz"); -const u32 gMonBackPic_Crobat[] = INCBIN_U32("graphics/pokemon/crobat/back.4bpp.lz"); -const u32 gMonBackPic_Chinchou[] = INCBIN_U32("graphics/pokemon/chinchou/back.4bpp.lz"); -const u32 gMonBackPic_Lanturn[] = INCBIN_U32("graphics/pokemon/lanturn/back.4bpp.lz"); -const u32 gMonBackPic_Pichu[] = INCBIN_U32("graphics/pokemon/pichu/back.4bpp.lz"); -const u32 gMonBackPic_Cleffa[] = INCBIN_U32("graphics/pokemon/cleffa/back.4bpp.lz"); -const u32 gMonBackPic_Igglybuff[] = INCBIN_U32("graphics/pokemon/igglybuff/back.4bpp.lz"); -const u32 gMonBackPic_Togepi[] = INCBIN_U32("graphics/pokemon/togepi/back.4bpp.lz"); -const u32 gMonBackPic_Togetic[] = INCBIN_U32("graphics/pokemon/togetic/back.4bpp.lz"); -const u32 gMonBackPic_Natu[] = INCBIN_U32("graphics/pokemon/natu/back.4bpp.lz"); -const u32 gMonBackPic_Xatu[] = INCBIN_U32("graphics/pokemon/xatu/back.4bpp.lz"); -const u32 gMonBackPic_Mareep[] = INCBIN_U32("graphics/pokemon/mareep/back.4bpp.lz"); -const u32 gMonBackPic_Flaaffy[] = INCBIN_U32("graphics/pokemon/flaaffy/back.4bpp.lz"); -const u32 gMonBackPic_Ampharos[] = INCBIN_U32("graphics/pokemon/ampharos/back.4bpp.lz"); -const u32 gMonBackPic_Bellossom[] = INCBIN_U32("graphics/pokemon/bellossom/back.4bpp.lz"); -const u32 gMonBackPic_Marill[] = INCBIN_U32("graphics/pokemon/marill/back.4bpp.lz"); -const u32 gMonBackPic_Azumarill[] = INCBIN_U32("graphics/pokemon/azumarill/back.4bpp.lz"); -const u32 gMonBackPic_Sudowoodo[] = INCBIN_U32("graphics/pokemon/sudowoodo/back.4bpp.lz"); -const u32 gMonBackPic_SudowoodoF[] = INCBIN_U32("graphics/pokemon/sudowoodo/backf.4bpp.lz"); -const u32 gMonBackPic_Politoed[] = INCBIN_U32("graphics/pokemon/politoed/back.4bpp.lz"); -const u32 gMonBackPic_PolitoedF[] = INCBIN_U32("graphics/pokemon/politoed/backf.4bpp.lz"); -const u32 gMonBackPic_Hoppip[] = INCBIN_U32("graphics/pokemon/hoppip/back.4bpp.lz"); -const u32 gMonBackPic_Skiploom[] = INCBIN_U32("graphics/pokemon/skiploom/back.4bpp.lz"); -const u32 gMonBackPic_Jumpluff[] = INCBIN_U32("graphics/pokemon/jumpluff/back.4bpp.lz"); -const u32 gMonBackPic_Aipom[] = INCBIN_U32("graphics/pokemon/aipom/back.4bpp.lz"); -const u32 gMonBackPic_AipomF[] = INCBIN_U32("graphics/pokemon/aipom/backf.4bpp.lz"); -const u32 gMonBackPic_Sunkern[] = INCBIN_U32("graphics/pokemon/sunkern/back.4bpp.lz"); -const u32 gMonBackPic_Sunflora[] = INCBIN_U32("graphics/pokemon/sunflora/back.4bpp.lz"); -const u32 gMonBackPic_Yanma[] = INCBIN_U32("graphics/pokemon/yanma/back.4bpp.lz"); -const u32 gMonBackPic_Wooper[] = INCBIN_U32("graphics/pokemon/wooper/back.4bpp.lz"); -const u32 gMonBackPic_WooperF[] = INCBIN_U32("graphics/pokemon/wooper/backf.4bpp.lz"); -const u32 gMonBackPic_Quagsire[] = INCBIN_U32("graphics/pokemon/quagsire/back.4bpp.lz"); -const u32 gMonBackPic_QuagsireF[] = INCBIN_U32("graphics/pokemon/quagsire/backf.4bpp.lz"); -const u32 gMonBackPic_Espeon[] = INCBIN_U32("graphics/pokemon/espeon/back.4bpp.lz"); -const u32 gMonBackPic_Umbreon[] = INCBIN_U32("graphics/pokemon/umbreon/back.4bpp.lz"); -const u32 gMonBackPic_Murkrow[] = INCBIN_U32("graphics/pokemon/murkrow/back.4bpp.lz"); -const u32 gMonBackPic_MurkrowF[] = INCBIN_U32("graphics/pokemon/murkrow/backf.4bpp.lz"); -const u32 gMonBackPic_Slowking[] = INCBIN_U32("graphics/pokemon/slowking/back.4bpp.lz"); -const u32 gMonBackPic_Misdreavus[] = INCBIN_U32("graphics/pokemon/misdreavus/back.4bpp.lz"); -const u32 gMonBackPic_Unown[] = INCBIN_U32("graphics/pokemon/unown/back.4bpp.lz"); -const u32 gMonBackPic_Wobbuffet[] = INCBIN_U32("graphics/pokemon/wobbuffet/back.4bpp.lz"); -const u32 gMonBackPic_WobbuffetF[] = INCBIN_U32("graphics/pokemon/wobbuffet/backf.4bpp.lz"); -const u32 gMonBackPic_Girafarig[] = INCBIN_U32("graphics/pokemon/girafarig/back.4bpp.lz"); -const u32 gMonBackPic_GirafarigF[] = INCBIN_U32("graphics/pokemon/girafarig/backf.4bpp.lz"); -const u32 gMonBackPic_Pineco[] = INCBIN_U32("graphics/pokemon/pineco/back.4bpp.lz"); -const u32 gMonBackPic_Forretress[] = INCBIN_U32("graphics/pokemon/forretress/back.4bpp.lz"); -const u32 gMonBackPic_Dunsparce[] = INCBIN_U32("graphics/pokemon/dunsparce/back.4bpp.lz"); -const u32 gMonBackPic_Gligar[] = INCBIN_U32("graphics/pokemon/gligar/back.4bpp.lz"); -const u32 gMonBackPic_GligarF[] = INCBIN_U32("graphics/pokemon/gligar/backf.4bpp.lz"); -const u32 gMonBackPic_Steelix[] = INCBIN_U32("graphics/pokemon/steelix/back.4bpp.lz"); -const u32 gMonBackPic_SteelixF[] = INCBIN_U32("graphics/pokemon/steelix/backf.4bpp.lz"); -const u32 gMonBackPic_Snubbull[] = INCBIN_U32("graphics/pokemon/snubbull/back.4bpp.lz"); -const u32 gMonBackPic_Granbull[] = INCBIN_U32("graphics/pokemon/granbull/back.4bpp.lz"); -const u32 gMonBackPic_Qwilfish[] = INCBIN_U32("graphics/pokemon/qwilfish/back.4bpp.lz"); -const u32 gMonBackPic_Scizor[] = INCBIN_U32("graphics/pokemon/scizor/back.4bpp.lz"); -const u32 gMonBackPic_Shuckle[] = INCBIN_U32("graphics/pokemon/shuckle/back.4bpp.lz"); -const u32 gMonBackPic_Heracross[] = INCBIN_U32("graphics/pokemon/heracross/back.4bpp.lz"); -const u32 gMonBackPic_HeracrossF[] = INCBIN_U32("graphics/pokemon/heracross/backf.4bpp.lz"); -const u32 gMonBackPic_Sneasel[] = INCBIN_U32("graphics/pokemon/sneasel/back.4bpp.lz"); -const u32 gMonBackPic_SneaselF[] = INCBIN_U32("graphics/pokemon/sneasel/backf.4bpp.lz"); -const u32 gMonBackPic_Teddiursa[] = INCBIN_U32("graphics/pokemon/teddiursa/back.4bpp.lz"); -const u32 gMonBackPic_Ursaring[] = INCBIN_U32("graphics/pokemon/ursaring/back.4bpp.lz"); -const u32 gMonBackPic_UrsaringF[] = INCBIN_U32("graphics/pokemon/ursaring/backf.4bpp.lz"); -const u32 gMonBackPic_Slugma[] = INCBIN_U32("graphics/pokemon/slugma/back.4bpp.lz"); -const u32 gMonBackPic_Magcargo[] = INCBIN_U32("graphics/pokemon/magcargo/back.4bpp.lz"); -const u32 gMonBackPic_Swinub[] = INCBIN_U32("graphics/pokemon/swinub/back.4bpp.lz"); -const u32 gMonBackPic_Piloswine[] = INCBIN_U32("graphics/pokemon/piloswine/back.4bpp.lz"); -const u32 gMonBackPic_PiloswineF[] = INCBIN_U32("graphics/pokemon/piloswine/backf.4bpp.lz"); -const u32 gMonBackPic_Corsola[] = INCBIN_U32("graphics/pokemon/corsola/back.4bpp.lz"); -const u32 gMonBackPic_Remoraid[] = INCBIN_U32("graphics/pokemon/remoraid/back.4bpp.lz"); -const u32 gMonBackPic_Octillery[] = INCBIN_U32("graphics/pokemon/octillery/back.4bpp.lz"); -const u32 gMonBackPic_OctilleryF[] = INCBIN_U32("graphics/pokemon/octillery/backf.4bpp.lz"); -const u32 gMonBackPic_Delibird[] = INCBIN_U32("graphics/pokemon/delibird/back.4bpp.lz"); -const u32 gMonBackPic_Mantine[] = INCBIN_U32("graphics/pokemon/mantine/back.4bpp.lz"); -const u32 gMonBackPic_Skarmory[] = INCBIN_U32("graphics/pokemon/skarmory/back.4bpp.lz"); -const u32 gMonBackPic_Houndour[] = INCBIN_U32("graphics/pokemon/houndour/back.4bpp.lz"); -const u32 gMonBackPic_Houndoom[] = INCBIN_U32("graphics/pokemon/houndoom/back.4bpp.lz"); -const u32 gMonBackPic_HoundoomF[] = INCBIN_U32("graphics/pokemon/houndoom/backf.4bpp.lz"); -const u32 gMonBackPic_Kingdra[] = INCBIN_U32("graphics/pokemon/kingdra/back.4bpp.lz"); -const u32 gMonBackPic_Phanpy[] = INCBIN_U32("graphics/pokemon/phanpy/back.4bpp.lz"); -const u32 gMonBackPic_Donphan[] = INCBIN_U32("graphics/pokemon/donphan/back.4bpp.lz"); -const u32 gMonBackPic_DonphanF[] = INCBIN_U32("graphics/pokemon/donphan/backf.4bpp.lz"); -const u32 gMonBackPic_Porygon2[] = INCBIN_U32("graphics/pokemon/porygon2/back.4bpp.lz"); -const u32 gMonBackPic_Stantler[] = INCBIN_U32("graphics/pokemon/stantler/back.4bpp.lz"); -const u32 gMonBackPic_Smeargle[] = INCBIN_U32("graphics/pokemon/smeargle/back.4bpp.lz"); -const u32 gMonBackPic_Tyrogue[] = INCBIN_U32("graphics/pokemon/tyrogue/back.4bpp.lz"); -const u32 gMonBackPic_Hitmontop[] = INCBIN_U32("graphics/pokemon/hitmontop/back.4bpp.lz"); -const u32 gMonBackPic_Smoochum[] = INCBIN_U32("graphics/pokemon/smoochum/back.4bpp.lz"); -const u32 gMonBackPic_Elekid[] = INCBIN_U32("graphics/pokemon/elekid/back.4bpp.lz"); -const u32 gMonBackPic_Magby[] = INCBIN_U32("graphics/pokemon/magby/back.4bpp.lz"); -const u32 gMonBackPic_Miltank[] = INCBIN_U32("graphics/pokemon/miltank/back.4bpp.lz"); -const u32 gMonBackPic_Blissey[] = INCBIN_U32("graphics/pokemon/blissey/back.4bpp.lz"); -const u32 gMonBackPic_Raikou[] = INCBIN_U32("graphics/pokemon/raikou/back.4bpp.lz"); -const u32 gMonBackPic_Entei[] = INCBIN_U32("graphics/pokemon/entei/back.4bpp.lz"); -const u32 gMonBackPic_Suicune[] = INCBIN_U32("graphics/pokemon/suicune/back.4bpp.lz"); -const u32 gMonBackPic_Larvitar[] = INCBIN_U32("graphics/pokemon/larvitar/back.4bpp.lz"); -const u32 gMonBackPic_Pupitar[] = INCBIN_U32("graphics/pokemon/pupitar/back.4bpp.lz"); -const u32 gMonBackPic_Tyranitar[] = INCBIN_U32("graphics/pokemon/tyranitar/back.4bpp.lz"); -const u32 gMonBackPic_Lugia[] = INCBIN_U32("graphics/pokemon/lugia/back.4bpp.lz"); -const u32 gMonBackPic_HoOh[] = INCBIN_U32("graphics/pokemon/ho_oh/back.4bpp.lz"); -const u32 gMonBackPic_Celebi[] = INCBIN_U32("graphics/pokemon/celebi/back.4bpp.lz"); -const u32 gMonBackPic_Treecko[] = INCBIN_U32("graphics/pokemon/treecko/back.4bpp.lz"); -const u32 gMonBackPic_Grovyle[] = INCBIN_U32("graphics/pokemon/grovyle/back.4bpp.lz"); -const u32 gMonBackPic_Sceptile[] = INCBIN_U32("graphics/pokemon/sceptile/back.4bpp.lz"); -const u32 gMonBackPic_Torchic[] = INCBIN_U32("graphics/pokemon/torchic/back.4bpp.lz"); -const u32 gMonBackPic_TorchicF[] = INCBIN_U32("graphics/pokemon/torchic/backf.4bpp.lz"); -const u32 gMonBackPic_Combusken[] = INCBIN_U32("graphics/pokemon/combusken/back.4bpp.lz"); -const u32 gMonBackPic_CombuskenF[] = INCBIN_U32("graphics/pokemon/combusken/backf.4bpp.lz"); -const u32 gMonBackPic_Blaziken[] = INCBIN_U32("graphics/pokemon/blaziken/back.4bpp.lz"); -const u32 gMonBackPic_BlazikenF[] = INCBIN_U32("graphics/pokemon/blaziken/backf.4bpp.lz"); -const u32 gMonBackPic_Mudkip[] = INCBIN_U32("graphics/pokemon/mudkip/back.4bpp.lz"); -const u32 gMonBackPic_Marshtomp[] = INCBIN_U32("graphics/pokemon/marshtomp/back.4bpp.lz"); -const u32 gMonBackPic_Swampert[] = INCBIN_U32("graphics/pokemon/swampert/back.4bpp.lz"); -const u32 gMonBackPic_Poochyena[] = INCBIN_U32("graphics/pokemon/poochyena/back.4bpp.lz"); -const u32 gMonBackPic_Mightyena[] = INCBIN_U32("graphics/pokemon/mightyena/back.4bpp.lz"); -const u32 gMonBackPic_Zigzagoon[] = INCBIN_U32("graphics/pokemon/zigzagoon/back.4bpp.lz"); -const u32 gMonBackPic_Linoone[] = INCBIN_U32("graphics/pokemon/linoone/back.4bpp.lz"); -const u32 gMonBackPic_Wurmple[] = INCBIN_U32("graphics/pokemon/wurmple/back.4bpp.lz"); -const u32 gMonBackPic_Silcoon[] = INCBIN_U32("graphics/pokemon/silcoon/back.4bpp.lz"); -const u32 gMonBackPic_Beautifly[] = INCBIN_U32("graphics/pokemon/beautifly/back.4bpp.lz"); -const u32 gMonBackPic_BeautiflyF[] = INCBIN_U32("graphics/pokemon/beautifly/backf.4bpp.lz"); -const u32 gMonBackPic_Cascoon[] = INCBIN_U32("graphics/pokemon/cascoon/back.4bpp.lz"); -const u32 gMonBackPic_Dustox[] = INCBIN_U32("graphics/pokemon/dustox/back.4bpp.lz"); -const u32 gMonBackPic_DustoxF[] = INCBIN_U32("graphics/pokemon/dustox/backf.4bpp.lz"); -const u32 gMonBackPic_Lotad[] = INCBIN_U32("graphics/pokemon/lotad/back.4bpp.lz"); -const u32 gMonBackPic_Lombre[] = INCBIN_U32("graphics/pokemon/lombre/back.4bpp.lz"); -const u32 gMonBackPic_Ludicolo[] = INCBIN_U32("graphics/pokemon/ludicolo/back.4bpp.lz"); -const u32 gMonBackPic_LudicoloF[] = INCBIN_U32("graphics/pokemon/ludicolo/backf.4bpp.lz"); -const u32 gMonBackPic_Seedot[] = INCBIN_U32("graphics/pokemon/seedot/back.4bpp.lz"); -const u32 gMonBackPic_Nuzleaf[] = INCBIN_U32("graphics/pokemon/nuzleaf/back.4bpp.lz"); -const u32 gMonBackPic_NuzleafF[] = INCBIN_U32("graphics/pokemon/nuzleaf/backf.4bpp.lz"); -const u32 gMonBackPic_Shiftry[] = INCBIN_U32("graphics/pokemon/shiftry/back.4bpp.lz"); -const u32 gMonBackPic_ShiftryF[] = INCBIN_U32("graphics/pokemon/shiftry/backf.4bpp.lz"); -const u32 gMonBackPic_Taillow[] = INCBIN_U32("graphics/pokemon/taillow/back.4bpp.lz"); -const u32 gMonBackPic_Swellow[] = INCBIN_U32("graphics/pokemon/swellow/back.4bpp.lz"); -const u32 gMonBackPic_Wingull[] = INCBIN_U32("graphics/pokemon/wingull/back.4bpp.lz"); -const u32 gMonBackPic_Pelipper[] = INCBIN_U32("graphics/pokemon/pelipper/back.4bpp.lz"); -const u32 gMonBackPic_Ralts[] = INCBIN_U32("graphics/pokemon/ralts/back.4bpp.lz"); -const u32 gMonBackPic_Kirlia[] = INCBIN_U32("graphics/pokemon/kirlia/back.4bpp.lz"); -const u32 gMonBackPic_Gardevoir[] = INCBIN_U32("graphics/pokemon/gardevoir/back.4bpp.lz"); -const u32 gMonBackPic_Surskit[] = INCBIN_U32("graphics/pokemon/surskit/back.4bpp.lz"); -const u32 gMonBackPic_Masquerain[] = INCBIN_U32("graphics/pokemon/masquerain/back.4bpp.lz"); -const u32 gMonBackPic_Shroomish[] = INCBIN_U32("graphics/pokemon/shroomish/back.4bpp.lz"); -const u32 gMonBackPic_Breloom[] = INCBIN_U32("graphics/pokemon/breloom/back.4bpp.lz"); -const u32 gMonBackPic_Slakoth[] = INCBIN_U32("graphics/pokemon/slakoth/back.4bpp.lz"); -const u32 gMonBackPic_Vigoroth[] = INCBIN_U32("graphics/pokemon/vigoroth/back.4bpp.lz"); -const u32 gMonBackPic_Slaking[] = INCBIN_U32("graphics/pokemon/slaking/back.4bpp.lz"); -const u32 gMonBackPic_Nincada[] = INCBIN_U32("graphics/pokemon/nincada/back.4bpp.lz"); -const u32 gMonBackPic_Ninjask[] = INCBIN_U32("graphics/pokemon/ninjask/back.4bpp.lz"); -const u32 gMonBackPic_Shedinja[] = INCBIN_U32("graphics/pokemon/shedinja/back.4bpp.lz"); -const u32 gMonBackPic_Whismur[] = INCBIN_U32("graphics/pokemon/whismur/back.4bpp.lz"); -const u32 gMonBackPic_Loudred[] = INCBIN_U32("graphics/pokemon/loudred/back.4bpp.lz"); -const u32 gMonBackPic_Exploud[] = INCBIN_U32("graphics/pokemon/exploud/back.4bpp.lz"); -const u32 gMonBackPic_Makuhita[] = INCBIN_U32("graphics/pokemon/makuhita/back.4bpp.lz"); -const u32 gMonBackPic_Hariyama[] = INCBIN_U32("graphics/pokemon/hariyama/back.4bpp.lz"); -const u32 gMonBackPic_Azurill[] = INCBIN_U32("graphics/pokemon/azurill/back.4bpp.lz"); -const u32 gMonBackPic_Nosepass[] = INCBIN_U32("graphics/pokemon/nosepass/back.4bpp.lz"); -const u32 gMonBackPic_Skitty[] = INCBIN_U32("graphics/pokemon/skitty/back.4bpp.lz"); -const u32 gMonBackPic_Delcatty[] = INCBIN_U32("graphics/pokemon/delcatty/back.4bpp.lz"); -const u32 gMonBackPic_Sableye[] = INCBIN_U32("graphics/pokemon/sableye/back.4bpp.lz"); -const u32 gMonBackPic_Mawile[] = INCBIN_U32("graphics/pokemon/mawile/back.4bpp.lz"); -const u32 gMonBackPic_Aron[] = INCBIN_U32("graphics/pokemon/aron/back.4bpp.lz"); -const u32 gMonBackPic_Lairon[] = INCBIN_U32("graphics/pokemon/lairon/back.4bpp.lz"); -const u32 gMonBackPic_Aggron[] = INCBIN_U32("graphics/pokemon/aggron/back.4bpp.lz"); -const u32 gMonBackPic_Meditite[] = INCBIN_U32("graphics/pokemon/meditite/back.4bpp.lz"); -const u32 gMonBackPic_MedititeF[] = INCBIN_U32("graphics/pokemon/meditite/backf.4bpp.lz"); -const u32 gMonBackPic_Medicham[] = INCBIN_U32("graphics/pokemon/medicham/back.4bpp.lz"); -const u32 gMonBackPic_MedichamF[] = INCBIN_U32("graphics/pokemon/medicham/backf.4bpp.lz"); -const u32 gMonBackPic_Electrike[] = INCBIN_U32("graphics/pokemon/electrike/back.4bpp.lz"); -const u32 gMonBackPic_Manectric[] = INCBIN_U32("graphics/pokemon/manectric/back.4bpp.lz"); -const u32 gMonBackPic_Plusle[] = INCBIN_U32("graphics/pokemon/plusle/back.4bpp.lz"); -const u32 gMonBackPic_Minun[] = INCBIN_U32("graphics/pokemon/minun/back.4bpp.lz"); -const u32 gMonBackPic_Volbeat[] = INCBIN_U32("graphics/pokemon/volbeat/back.4bpp.lz"); -const u32 gMonBackPic_Illumise[] = INCBIN_U32("graphics/pokemon/illumise/back.4bpp.lz"); -const u32 gMonBackPic_Roselia[] = INCBIN_U32("graphics/pokemon/roselia/back.4bpp.lz"); -const u32 gMonBackPic_RoseliaF[] = INCBIN_U32("graphics/pokemon/roselia/backf.4bpp.lz"); -const u32 gMonBackPic_Gulpin[] = INCBIN_U32("graphics/pokemon/gulpin/back.4bpp.lz"); -const u32 gMonBackPic_GulpinF[] = INCBIN_U32("graphics/pokemon/gulpin/backf.4bpp.lz"); -const u32 gMonBackPic_Swalot[] = INCBIN_U32("graphics/pokemon/swalot/back.4bpp.lz"); -const u32 gMonBackPic_SwalotF[] = INCBIN_U32("graphics/pokemon/swalot/backf.4bpp.lz"); -const u32 gMonBackPic_Carvanha[] = INCBIN_U32("graphics/pokemon/carvanha/back.4bpp.lz"); -const u32 gMonBackPic_Sharpedo[] = INCBIN_U32("graphics/pokemon/sharpedo/back.4bpp.lz"); -const u32 gMonBackPic_Wailmer[] = INCBIN_U32("graphics/pokemon/wailmer/back.4bpp.lz"); -const u32 gMonBackPic_Wailord[] = INCBIN_U32("graphics/pokemon/wailord/back.4bpp.lz"); -const u32 gMonBackPic_Numel[] = INCBIN_U32("graphics/pokemon/numel/back.4bpp.lz"); -const u32 gMonBackPic_NumelF[] = INCBIN_U32("graphics/pokemon/numel/backf.4bpp.lz"); -const u32 gMonBackPic_Camerupt[] = INCBIN_U32("graphics/pokemon/camerupt/back.4bpp.lz"); -const u32 gMonBackPic_CameruptF[] = INCBIN_U32("graphics/pokemon/camerupt/backf.4bpp.lz"); -const u32 gMonBackPic_Torkoal[] = INCBIN_U32("graphics/pokemon/torkoal/back.4bpp.lz"); -const u32 gMonBackPic_Spoink[] = INCBIN_U32("graphics/pokemon/spoink/back.4bpp.lz"); -const u32 gMonBackPic_Grumpig[] = INCBIN_U32("graphics/pokemon/grumpig/back.4bpp.lz"); -const u32 gMonBackPic_Spinda[] = INCBIN_U32("graphics/pokemon/spinda/back.4bpp.lz"); -const u32 gMonBackPic_Trapinch[] = INCBIN_U32("graphics/pokemon/trapinch/back.4bpp.lz"); -const u32 gMonBackPic_Vibrava[] = INCBIN_U32("graphics/pokemon/vibrava/back.4bpp.lz"); -const u32 gMonBackPic_Flygon[] = INCBIN_U32("graphics/pokemon/flygon/back.4bpp.lz"); -const u32 gMonBackPic_Cacnea[] = INCBIN_U32("graphics/pokemon/cacnea/back.4bpp.lz"); -const u32 gMonBackPic_Cacturne[] = INCBIN_U32("graphics/pokemon/cacturne/back.4bpp.lz"); -const u32 gMonBackPic_Swablu[] = INCBIN_U32("graphics/pokemon/swablu/back.4bpp.lz"); -const u32 gMonBackPic_Altaria[] = INCBIN_U32("graphics/pokemon/altaria/back.4bpp.lz"); -const u32 gMonBackPic_Zangoose[] = INCBIN_U32("graphics/pokemon/zangoose/back.4bpp.lz"); -const u32 gMonBackPic_Seviper[] = INCBIN_U32("graphics/pokemon/seviper/back.4bpp.lz"); -const u32 gMonBackPic_Lunatone[] = INCBIN_U32("graphics/pokemon/lunatone/back.4bpp.lz"); -const u32 gMonBackPic_Solrock[] = INCBIN_U32("graphics/pokemon/solrock/back.4bpp.lz"); -const u32 gMonBackPic_Barboach[] = INCBIN_U32("graphics/pokemon/barboach/back.4bpp.lz"); -const u32 gMonBackPic_Whiscash[] = INCBIN_U32("graphics/pokemon/whiscash/back.4bpp.lz"); -const u32 gMonBackPic_Corphish[] = INCBIN_U32("graphics/pokemon/corphish/back.4bpp.lz"); -const u32 gMonBackPic_Crawdaunt[] = INCBIN_U32("graphics/pokemon/crawdaunt/back.4bpp.lz"); -const u32 gMonBackPic_Baltoy[] = INCBIN_U32("graphics/pokemon/baltoy/back.4bpp.lz"); -const u32 gMonBackPic_Claydol[] = INCBIN_U32("graphics/pokemon/claydol/back.4bpp.lz"); -const u32 gMonBackPic_Lileep[] = INCBIN_U32("graphics/pokemon/lileep/back.4bpp.lz"); -const u32 gMonBackPic_Cradily[] = INCBIN_U32("graphics/pokemon/cradily/back.4bpp.lz"); -const u32 gMonBackPic_Anorith[] = INCBIN_U32("graphics/pokemon/anorith/back.4bpp.lz"); -const u32 gMonBackPic_Armaldo[] = INCBIN_U32("graphics/pokemon/armaldo/back.4bpp.lz"); -const u32 gMonBackPic_Feebas[] = INCBIN_U32("graphics/pokemon/feebas/back.4bpp.lz"); -const u32 gMonBackPic_Milotic[] = INCBIN_U32("graphics/pokemon/milotic/back.4bpp.lz"); -const u32 gMonBackPic_MiloticF[] = INCBIN_U32("graphics/pokemon/milotic/backf.4bpp.lz"); -const u32 gMonBackPic_CastformNormal[] = INCBIN_U32("graphics/pokemon/castform/back.4bpp.lz"); -const u32 gMonBackPic_Kecleon[] = INCBIN_U32("graphics/pokemon/kecleon/back.4bpp.lz"); -const u32 gMonBackPic_Shuppet[] = INCBIN_U32("graphics/pokemon/shuppet/back.4bpp.lz"); -const u32 gMonBackPic_Banette[] = INCBIN_U32("graphics/pokemon/banette/back.4bpp.lz"); -const u32 gMonBackPic_Duskull[] = INCBIN_U32("graphics/pokemon/duskull/back.4bpp.lz"); -const u32 gMonBackPic_Dusclops[] = INCBIN_U32("graphics/pokemon/dusclops/back.4bpp.lz"); -const u32 gMonBackPic_Tropius[] = INCBIN_U32("graphics/pokemon/tropius/back.4bpp.lz"); -const u32 gMonBackPic_Chimecho[] = INCBIN_U32("graphics/pokemon/chimecho/back.4bpp.lz"); -const u32 gMonBackPic_Absol[] = INCBIN_U32("graphics/pokemon/absol/back.4bpp.lz"); -const u32 gMonBackPic_Wynaut[] = INCBIN_U32("graphics/pokemon/wynaut/back.4bpp.lz"); -const u32 gMonBackPic_Snorunt[] = INCBIN_U32("graphics/pokemon/snorunt/back.4bpp.lz"); -const u32 gMonBackPic_Glalie[] = INCBIN_U32("graphics/pokemon/glalie/back.4bpp.lz"); -const u32 gMonBackPic_Spheal[] = INCBIN_U32("graphics/pokemon/spheal/back.4bpp.lz"); -const u32 gMonBackPic_Sealeo[] = INCBIN_U32("graphics/pokemon/sealeo/back.4bpp.lz"); -const u32 gMonBackPic_Walrein[] = INCBIN_U32("graphics/pokemon/walrein/back.4bpp.lz"); -const u32 gMonBackPic_Clamperl[] = INCBIN_U32("graphics/pokemon/clamperl/back.4bpp.lz"); -const u32 gMonBackPic_Huntail[] = INCBIN_U32("graphics/pokemon/huntail/back.4bpp.lz"); -const u32 gMonBackPic_Gorebyss[] = INCBIN_U32("graphics/pokemon/gorebyss/back.4bpp.lz"); -const u32 gMonBackPic_Relicanth[] = INCBIN_U32("graphics/pokemon/relicanth/back.4bpp.lz"); -const u32 gMonBackPic_RelicanthF[] = INCBIN_U32("graphics/pokemon/relicanth/backf.4bpp.lz"); -const u32 gMonBackPic_Luvdisc[] = INCBIN_U32("graphics/pokemon/luvdisc/back.4bpp.lz"); -const u32 gMonBackPic_Bagon[] = INCBIN_U32("graphics/pokemon/bagon/back.4bpp.lz"); -const u32 gMonBackPic_Shelgon[] = INCBIN_U32("graphics/pokemon/shelgon/back.4bpp.lz"); -const u32 gMonBackPic_Salamence[] = INCBIN_U32("graphics/pokemon/salamence/back.4bpp.lz"); -const u32 gMonBackPic_Beldum[] = INCBIN_U32("graphics/pokemon/beldum/back.4bpp.lz"); -const u32 gMonBackPic_Metang[] = INCBIN_U32("graphics/pokemon/metang/back.4bpp.lz"); -const u32 gMonBackPic_Metagross[] = INCBIN_U32("graphics/pokemon/metagross/back.4bpp.lz"); -const u32 gMonBackPic_Regirock[] = INCBIN_U32("graphics/pokemon/regirock/back.4bpp.lz"); -const u32 gMonBackPic_Regice[] = INCBIN_U32("graphics/pokemon/regice/back.4bpp.lz"); -const u32 gMonBackPic_Registeel[] = INCBIN_U32("graphics/pokemon/registeel/back.4bpp.lz"); -const u32 gMonBackPic_Latias[] = INCBIN_U32("graphics/pokemon/latias/back.4bpp.lz"); -const u32 gMonBackPic_Latios[] = INCBIN_U32("graphics/pokemon/latios/back.4bpp.lz"); -const u32 gMonBackPic_Kyogre[] = INCBIN_U32("graphics/pokemon/kyogre/back.4bpp.lz"); -const u32 gMonBackPic_Groudon[] = INCBIN_U32("graphics/pokemon/groudon/back.4bpp.lz"); -const u32 gMonBackPic_Rayquaza[] = INCBIN_U32("graphics/pokemon/rayquaza/back.4bpp.lz"); -const u32 gMonBackPic_Jirachi[] = INCBIN_U32("graphics/pokemon/jirachi/back.4bpp.lz"); -const u32 gMonBackPic_DeoxysNormal[] = INCBIN_U32("graphics/pokemon/deoxys/back.4bpp.lz"); -#if P_GEN_4_POKEMON == TRUE -const u32 gMonBackPic_Turtwig[] = INCBIN_U32("graphics/pokemon/turtwig/back.4bpp.lz"); -const u32 gMonBackPic_Grotle[] = INCBIN_U32("graphics/pokemon/grotle/back.4bpp.lz"); -const u32 gMonBackPic_Torterra[] = INCBIN_U32("graphics/pokemon/torterra/back.4bpp.lz"); -const u32 gMonBackPic_Chimchar[] = INCBIN_U32("graphics/pokemon/chimchar/back.4bpp.lz"); -const u32 gMonBackPic_Monferno[] = INCBIN_U32("graphics/pokemon/monferno/back.4bpp.lz"); -const u32 gMonBackPic_Infernape[] = INCBIN_U32("graphics/pokemon/infernape/back.4bpp.lz"); -const u32 gMonBackPic_Piplup[] = INCBIN_U32("graphics/pokemon/piplup/back.4bpp.lz"); -const u32 gMonBackPic_Prinplup[] = INCBIN_U32("graphics/pokemon/prinplup/back.4bpp.lz"); -const u32 gMonBackPic_Empoleon[] = INCBIN_U32("graphics/pokemon/empoleon/back.4bpp.lz"); -const u32 gMonBackPic_Starly[] = INCBIN_U32("graphics/pokemon/starly/back.4bpp.lz"); -const u32 gMonBackPic_StarlyF[] = INCBIN_U32("graphics/pokemon/starly/backf.4bpp.lz"); -const u32 gMonBackPic_Staravia[] = INCBIN_U32("graphics/pokemon/staravia/back.4bpp.lz"); -const u32 gMonBackPic_StaraviaF[] = INCBIN_U32("graphics/pokemon/staravia/back.4bpp.lz"); -const u32 gMonBackPic_Staraptor[] = INCBIN_U32("graphics/pokemon/staraptor/back.4bpp.lz"); -const u32 gMonBackPic_Bidoof[] = INCBIN_U32("graphics/pokemon/bidoof/back.4bpp.lz"); -const u32 gMonBackPic_BidoofF[] = INCBIN_U32("graphics/pokemon/bidoof/backf.4bpp.lz"); -const u32 gMonBackPic_Bibarel[] = INCBIN_U32("graphics/pokemon/bibarel/back.4bpp.lz"); -const u32 gMonBackPic_Kricketot[] = INCBIN_U32("graphics/pokemon/kricketot/back.4bpp.lz"); -const u32 gMonBackPic_KricketotF[] = INCBIN_U32("graphics/pokemon/kricketot/backf.4bpp.lz"); -const u32 gMonBackPic_Kricketune[] = INCBIN_U32("graphics/pokemon/kricketune/back.4bpp.lz"); -const u32 gMonBackPic_KricketuneF[] = INCBIN_U32("graphics/pokemon/kricketune/backf.4bpp.lz"); -const u32 gMonBackPic_Shinx[] = INCBIN_U32("graphics/pokemon/shinx/back.4bpp.lz"); -const u32 gMonBackPic_ShinxF[] = INCBIN_U32("graphics/pokemon/shinx/backf.4bpp.lz"); -const u32 gMonBackPic_Luxio[] = INCBIN_U32("graphics/pokemon/luxio/back.4bpp.lz"); -const u32 gMonBackPic_LuxioF[] = INCBIN_U32("graphics/pokemon/luxio/backf.4bpp.lz"); -const u32 gMonBackPic_Luxray[] = INCBIN_U32("graphics/pokemon/luxray/back.4bpp.lz"); -const u32 gMonBackPic_LuxrayF[] = INCBIN_U32("graphics/pokemon/luxray/backf.4bpp.lz"); -const u32 gMonBackPic_Budew[] = INCBIN_U32("graphics/pokemon/budew/back.4bpp.lz"); -const u32 gMonBackPic_Roserade[] = INCBIN_U32("graphics/pokemon/roserade/back.4bpp.lz"); -const u32 gMonBackPic_RoseradeF[] = INCBIN_U32("graphics/pokemon/roserade/backf.4bpp.lz"); -const u32 gMonBackPic_Cranidos[] = INCBIN_U32("graphics/pokemon/cranidos/back.4bpp.lz"); -const u32 gMonBackPic_Rampardos[] = INCBIN_U32("graphics/pokemon/rampardos/back.4bpp.lz"); -const u32 gMonBackPic_Shieldon[] = INCBIN_U32("graphics/pokemon/shieldon/back.4bpp.lz"); -const u32 gMonBackPic_Bastiodon[] = INCBIN_U32("graphics/pokemon/bastiodon/back.4bpp.lz"); -const u32 gMonBackPic_BurmyPlantCloak[] = INCBIN_U32("graphics/pokemon/burmy/back.4bpp.lz"); -const u32 gMonBackPic_WormadamPlantCloak[] = INCBIN_U32("graphics/pokemon/wormadam/back.4bpp.lz"); -const u32 gMonBackPic_Mothim[] = INCBIN_U32("graphics/pokemon/mothim/back.4bpp.lz"); -const u32 gMonBackPic_Combee[] = INCBIN_U32("graphics/pokemon/combee/back.4bpp.lz"); -const u32 gMonBackPic_Vespiquen[] = INCBIN_U32("graphics/pokemon/vespiquen/back.4bpp.lz"); -const u32 gMonBackPic_Pachirisu[] = INCBIN_U32("graphics/pokemon/pachirisu/back.4bpp.lz"); -const u32 gMonBackPic_Buizel[] = INCBIN_U32("graphics/pokemon/buizel/back.4bpp.lz"); -const u32 gMonBackPic_BuizelF[] = INCBIN_U32("graphics/pokemon/buizel/backf.4bpp.lz"); -const u32 gMonBackPic_Floatzel[] = INCBIN_U32("graphics/pokemon/floatzel/back.4bpp.lz"); -const u32 gMonBackPic_FloatzelF[] = INCBIN_U32("graphics/pokemon/floatzel/backf.4bpp.lz"); -const u32 gMonBackPic_Cherubi[] = INCBIN_U32("graphics/pokemon/cherubi/back.4bpp.lz"); -const u32 gMonBackPic_CherrimOvercast[] = INCBIN_U32("graphics/pokemon/cherrim/back.4bpp.lz"); -const u32 gMonBackPic_ShellosWestSea[] = INCBIN_U32("graphics/pokemon/shellos/back.4bpp.lz"); -const u32 gMonBackPic_GastrodonWestSea[] = INCBIN_U32("graphics/pokemon/gastrodon/back.4bpp.lz"); -const u32 gMonBackPic_Ambipom[] = INCBIN_U32("graphics/pokemon/ambipom/back.4bpp.lz"); -const u32 gMonBackPic_AmbipomF[] = INCBIN_U32("graphics/pokemon/ambipom/backf.4bpp.lz"); -const u32 gMonBackPic_Drifloon[] = INCBIN_U32("graphics/pokemon/drifloon/back.4bpp.lz"); -const u32 gMonBackPic_Drifblim[] = INCBIN_U32("graphics/pokemon/drifblim/back.4bpp.lz"); -const u32 gMonBackPic_Buneary[] = INCBIN_U32("graphics/pokemon/buneary/back.4bpp.lz"); -const u32 gMonBackPic_Lopunny[] = INCBIN_U32("graphics/pokemon/lopunny/back.4bpp.lz"); -const u32 gMonBackPic_Mismagius[] = INCBIN_U32("graphics/pokemon/mismagius/back.4bpp.lz"); -const u32 gMonBackPic_Honchkrow[] = INCBIN_U32("graphics/pokemon/honchkrow/back.4bpp.lz"); -const u32 gMonBackPic_Glameow[] = INCBIN_U32("graphics/pokemon/glameow/back.4bpp.lz"); -const u32 gMonBackPic_Purugly[] = INCBIN_U32("graphics/pokemon/purugly/back.4bpp.lz"); -const u32 gMonBackPic_Chingling[] = INCBIN_U32("graphics/pokemon/chingling/back.4bpp.lz"); -const u32 gMonBackPic_Stunky[] = INCBIN_U32("graphics/pokemon/stunky/back.4bpp.lz"); -const u32 gMonBackPic_Skuntank[] = INCBIN_U32("graphics/pokemon/skuntank/back.4bpp.lz"); -const u32 gMonBackPic_Bronzor[] = INCBIN_U32("graphics/pokemon/bronzor/back.4bpp.lz"); -const u32 gMonBackPic_Bronzong[] = INCBIN_U32("graphics/pokemon/bronzong/back.4bpp.lz"); -const u32 gMonBackPic_Bonsly[] = INCBIN_U32("graphics/pokemon/bonsly/back.4bpp.lz"); -const u32 gMonBackPic_MimeJr[] = INCBIN_U32("graphics/pokemon/mime_jr/back.4bpp.lz"); -const u32 gMonBackPic_Happiny[] = INCBIN_U32("graphics/pokemon/happiny/back.4bpp.lz"); -const u32 gMonBackPic_Chatot[] = INCBIN_U32("graphics/pokemon/chatot/back.4bpp.lz"); -const u32 gMonBackPic_Spiritomb[] = INCBIN_U32("graphics/pokemon/spiritomb/back.4bpp.lz"); -const u32 gMonBackPic_Gible[] = INCBIN_U32("graphics/pokemon/gible/back.4bpp.lz"); -const u32 gMonBackPic_GibleF[] = INCBIN_U32("graphics/pokemon/gible/backf.4bpp.lz"); -const u32 gMonBackPic_Gabite[] = INCBIN_U32("graphics/pokemon/gabite/back.4bpp.lz"); -const u32 gMonBackPic_GabiteF[] = INCBIN_U32("graphics/pokemon/gabite/backf.4bpp.lz"); -const u32 gMonBackPic_Garchomp[] = INCBIN_U32("graphics/pokemon/garchomp/back.4bpp.lz"); -const u32 gMonBackPic_Munchlax[] = INCBIN_U32("graphics/pokemon/munchlax/back.4bpp.lz"); -const u32 gMonBackPic_Riolu[] = INCBIN_U32("graphics/pokemon/riolu/back.4bpp.lz"); -const u32 gMonBackPic_Lucario[] = INCBIN_U32("graphics/pokemon/lucario/back.4bpp.lz"); -const u32 gMonBackPic_Hippopotas[] = INCBIN_U32("graphics/pokemon/hippopotas/back.4bpp.lz"); -const u32 gMonBackPic_Hippowdon[] = INCBIN_U32("graphics/pokemon/hippowdon/back.4bpp.lz"); -const u32 gMonBackPic_Skorupi[] = INCBIN_U32("graphics/pokemon/skorupi/back.4bpp.lz"); -const u32 gMonBackPic_Drapion[] = INCBIN_U32("graphics/pokemon/drapion/back.4bpp.lz"); -const u32 gMonBackPic_Croagunk[] = INCBIN_U32("graphics/pokemon/croagunk/back.4bpp.lz"); -const u32 gMonBackPic_CroagunkF[] = INCBIN_U32("graphics/pokemon/croagunk/backf.4bpp.lz"); -const u32 gMonBackPic_Toxicroak[] = INCBIN_U32("graphics/pokemon/toxicroak/back.4bpp.lz"); -const u32 gMonBackPic_ToxicroakF[] = INCBIN_U32("graphics/pokemon/toxicroak/backf.4bpp.lz"); -const u32 gMonBackPic_Carnivine[] = INCBIN_U32("graphics/pokemon/carnivine/back.4bpp.lz"); -const u32 gMonBackPic_Finneon[] = INCBIN_U32("graphics/pokemon/finneon/back.4bpp.lz"); -const u32 gMonBackPic_FinneonF[] = INCBIN_U32("graphics/pokemon/finneon/backf.4bpp.lz"); -const u32 gMonBackPic_Lumineon[] = INCBIN_U32("graphics/pokemon/lumineon/back.4bpp.lz"); -const u32 gMonBackPic_LumineonF[] = INCBIN_U32("graphics/pokemon/lumineon/backf.4bpp.lz"); -const u32 gMonBackPic_Mantyke[] = INCBIN_U32("graphics/pokemon/mantyke/back.4bpp.lz"); -const u32 gMonBackPic_Snover[] = INCBIN_U32("graphics/pokemon/snover/back.4bpp.lz"); -const u32 gMonBackPic_SnoverF[] = INCBIN_U32("graphics/pokemon/snover/backf.4bpp.lz"); -const u32 gMonBackPic_Abomasnow[] = INCBIN_U32("graphics/pokemon/abomasnow/back.4bpp.lz"); -const u32 gMonBackPic_Weavile[] = INCBIN_U32("graphics/pokemon/weavile/back.4bpp.lz"); -const u32 gMonBackPic_WeavileF[] = INCBIN_U32("graphics/pokemon/weavile/backf.4bpp.lz"); -const u32 gMonBackPic_Magnezone[] = INCBIN_U32("graphics/pokemon/magnezone/back.4bpp.lz"); -const u32 gMonBackPic_Lickilicky[] = INCBIN_U32("graphics/pokemon/lickilicky/back.4bpp.lz"); -const u32 gMonBackPic_Rhyperior[] = INCBIN_U32("graphics/pokemon/rhyperior/back.4bpp.lz"); -const u32 gMonBackPic_RhyperiorF[] = INCBIN_U32("graphics/pokemon/rhyperior/backf.4bpp.lz"); -const u32 gMonBackPic_Tangrowth[] = INCBIN_U32("graphics/pokemon/tangrowth/back.4bpp.lz"); -const u32 gMonBackPic_Electivire[] = INCBIN_U32("graphics/pokemon/electivire/back.4bpp.lz"); -const u32 gMonBackPic_Magmortar[] = INCBIN_U32("graphics/pokemon/magmortar/back.4bpp.lz"); -const u32 gMonBackPic_Togekiss[] = INCBIN_U32("graphics/pokemon/togekiss/back.4bpp.lz"); -const u32 gMonBackPic_Yanmega[] = INCBIN_U32("graphics/pokemon/yanmega/back.4bpp.lz"); -const u32 gMonBackPic_Leafeon[] = INCBIN_U32("graphics/pokemon/leafeon/back.4bpp.lz"); -const u32 gMonBackPic_Glaceon[] = INCBIN_U32("graphics/pokemon/glaceon/back.4bpp.lz"); -const u32 gMonBackPic_Gliscor[] = INCBIN_U32("graphics/pokemon/gliscor/back.4bpp.lz"); -const u32 gMonBackPic_Mamoswine[] = INCBIN_U32("graphics/pokemon/mamoswine/back.4bpp.lz"); -const u32 gMonBackPic_PorygonZ[] = INCBIN_U32("graphics/pokemon/porygon_z/back.4bpp.lz"); -const u32 gMonBackPic_Gallade[] = INCBIN_U32("graphics/pokemon/gallade/back.4bpp.lz"); -const u32 gMonBackPic_Probopass[] = INCBIN_U32("graphics/pokemon/probopass/back.4bpp.lz"); -const u32 gMonBackPic_Dusknoir[] = INCBIN_U32("graphics/pokemon/dusknoir/back.4bpp.lz"); -const u32 gMonBackPic_Froslass[] = INCBIN_U32("graphics/pokemon/froslass/back.4bpp.lz"); -const u32 gMonBackPic_Rotom[] = INCBIN_U32("graphics/pokemon/rotom/back.4bpp.lz"); -const u32 gMonBackPic_Uxie[] = INCBIN_U32("graphics/pokemon/uxie/back.4bpp.lz"); -const u32 gMonBackPic_Mesprit[] = INCBIN_U32("graphics/pokemon/mesprit/back.4bpp.lz"); -const u32 gMonBackPic_Azelf[] = INCBIN_U32("graphics/pokemon/azelf/back.4bpp.lz"); -const u32 gMonBackPic_Dialga[] = INCBIN_U32("graphics/pokemon/dialga/back.4bpp.lz"); -const u32 gMonBackPic_Palkia[] = INCBIN_U32("graphics/pokemon/palkia/back.4bpp.lz"); -const u32 gMonBackPic_Heatran[] = INCBIN_U32("graphics/pokemon/heatran/back.4bpp.lz"); -const u32 gMonBackPic_Regigigas[] = INCBIN_U32("graphics/pokemon/regigigas/back.4bpp.lz"); -const u32 gMonBackPic_GiratinaAltered[] = INCBIN_U32("graphics/pokemon/giratina/back.4bpp.lz"); -const u32 gMonBackPic_Cresselia[] = INCBIN_U32("graphics/pokemon/cresselia/back.4bpp.lz"); -const u32 gMonBackPic_Phione[] = INCBIN_U32("graphics/pokemon/phione/back.4bpp.lz"); -const u32 gMonBackPic_Manaphy[] = INCBIN_U32("graphics/pokemon/manaphy/back.4bpp.lz"); -const u32 gMonBackPic_Darkrai[] = INCBIN_U32("graphics/pokemon/darkrai/back.4bpp.lz"); -const u32 gMonBackPic_ShayminLand[] = INCBIN_U32("graphics/pokemon/shaymin/back.4bpp.lz"); -const u32 gMonBackPic_Arceus[] = INCBIN_U32("graphics/pokemon/arceus/back.4bpp.lz"); -#endif -#if P_GEN_5_POKEMON == TRUE -const u32 gMonBackPic_Victini[] = INCBIN_U32("graphics/pokemon/victini/back.4bpp.lz"); -const u32 gMonBackPic_Snivy[] = INCBIN_U32("graphics/pokemon/snivy/back.4bpp.lz"); -const u32 gMonBackPic_Servine[] = INCBIN_U32("graphics/pokemon/servine/back.4bpp.lz"); -const u32 gMonBackPic_Serperior[] = INCBIN_U32("graphics/pokemon/serperior/back.4bpp.lz"); -const u32 gMonBackPic_Tepig[] = INCBIN_U32("graphics/pokemon/tepig/back.4bpp.lz"); -const u32 gMonBackPic_Pignite[] = INCBIN_U32("graphics/pokemon/pignite/back.4bpp.lz"); -const u32 gMonBackPic_Emboar[] = INCBIN_U32("graphics/pokemon/emboar/back.4bpp.lz"); -const u32 gMonBackPic_Oshawott[] = INCBIN_U32("graphics/pokemon/oshawott/back.4bpp.lz"); -const u32 gMonBackPic_Dewott[] = INCBIN_U32("graphics/pokemon/dewott/back.4bpp.lz"); -const u32 gMonBackPic_Samurott[] = INCBIN_U32("graphics/pokemon/samurott/back.4bpp.lz"); -const u32 gMonBackPic_Patrat[] = INCBIN_U32("graphics/pokemon/patrat/back.4bpp.lz"); -const u32 gMonBackPic_Watchog[] = INCBIN_U32("graphics/pokemon/watchog/back.4bpp.lz"); -const u32 gMonBackPic_Lillipup[] = INCBIN_U32("graphics/pokemon/lillipup/back.4bpp.lz"); -const u32 gMonBackPic_Herdier[] = INCBIN_U32("graphics/pokemon/herdier/back.4bpp.lz"); -const u32 gMonBackPic_Stoutland[] = INCBIN_U32("graphics/pokemon/stoutland/back.4bpp.lz"); -const u32 gMonBackPic_Purrloin[] = INCBIN_U32("graphics/pokemon/purrloin/back.4bpp.lz"); -const u32 gMonBackPic_Liepard[] = INCBIN_U32("graphics/pokemon/liepard/back.4bpp.lz"); -const u32 gMonBackPic_Pansage[] = INCBIN_U32("graphics/pokemon/pansage/back.4bpp.lz"); -const u32 gMonBackPic_Simisage[] = INCBIN_U32("graphics/pokemon/simisage/back.4bpp.lz"); -const u32 gMonBackPic_Pansear[] = INCBIN_U32("graphics/pokemon/pansear/back.4bpp.lz"); -const u32 gMonBackPic_Simisear[] = INCBIN_U32("graphics/pokemon/simisear/back.4bpp.lz"); -const u32 gMonBackPic_Panpour[] = INCBIN_U32("graphics/pokemon/panpour/back.4bpp.lz"); -const u32 gMonBackPic_Simipour[] = INCBIN_U32("graphics/pokemon/simipour/back.4bpp.lz"); -const u32 gMonBackPic_Munna[] = INCBIN_U32("graphics/pokemon/munna/back.4bpp.lz"); -const u32 gMonBackPic_Musharna[] = INCBIN_U32("graphics/pokemon/musharna/back.4bpp.lz"); -const u32 gMonBackPic_Pidove[] = INCBIN_U32("graphics/pokemon/pidove/back.4bpp.lz"); -const u32 gMonBackPic_Tranquill[] = INCBIN_U32("graphics/pokemon/tranquill/back.4bpp.lz"); -const u32 gMonBackPic_Unfezant[] = INCBIN_U32("graphics/pokemon/unfezant/back.4bpp.lz"); -const u32 gMonBackPic_UnfezantF[] = INCBIN_U32("graphics/pokemon/unfezant/backf.4bpp.lz"); -const u32 gMonBackPic_Blitzle[] = INCBIN_U32("graphics/pokemon/blitzle/back.4bpp.lz"); -const u32 gMonBackPic_Zebstrika[] = INCBIN_U32("graphics/pokemon/zebstrika/back.4bpp.lz"); -const u32 gMonBackPic_Roggenrola[] = INCBIN_U32("graphics/pokemon/roggenrola/back.4bpp.lz"); -const u32 gMonBackPic_Boldore[] = INCBIN_U32("graphics/pokemon/boldore/back.4bpp.lz"); -const u32 gMonBackPic_Gigalith[] = INCBIN_U32("graphics/pokemon/gigalith/back.4bpp.lz"); -const u32 gMonBackPic_Woobat[] = INCBIN_U32("graphics/pokemon/woobat/back.4bpp.lz"); -const u32 gMonBackPic_Swoobat[] = INCBIN_U32("graphics/pokemon/swoobat/back.4bpp.lz"); -const u32 gMonBackPic_Drilbur[] = INCBIN_U32("graphics/pokemon/drilbur/back.4bpp.lz"); -const u32 gMonBackPic_Excadrill[] = INCBIN_U32("graphics/pokemon/excadrill/back.4bpp.lz"); -const u32 gMonBackPic_Audino[] = INCBIN_U32("graphics/pokemon/audino/back.4bpp.lz"); -const u32 gMonBackPic_Timburr[] = INCBIN_U32("graphics/pokemon/timburr/back.4bpp.lz"); -const u32 gMonBackPic_Gurdurr[] = INCBIN_U32("graphics/pokemon/gurdurr/back.4bpp.lz"); -const u32 gMonBackPic_Conkeldurr[] = INCBIN_U32("graphics/pokemon/conkeldurr/back.4bpp.lz"); -const u32 gMonBackPic_Tympole[] = INCBIN_U32("graphics/pokemon/tympole/back.4bpp.lz"); -const u32 gMonBackPic_Palpitoad[] = INCBIN_U32("graphics/pokemon/palpitoad/back.4bpp.lz"); -const u32 gMonBackPic_Seismitoad[] = INCBIN_U32("graphics/pokemon/seismitoad/back.4bpp.lz"); -const u32 gMonBackPic_Throh[] = INCBIN_U32("graphics/pokemon/throh/back.4bpp.lz"); -const u32 gMonBackPic_Sawk[] = INCBIN_U32("graphics/pokemon/sawk/back.4bpp.lz"); -const u32 gMonBackPic_Sewaddle[] = INCBIN_U32("graphics/pokemon/sewaddle/back.4bpp.lz"); -const u32 gMonBackPic_Swadloon[] = INCBIN_U32("graphics/pokemon/swadloon/back.4bpp.lz"); -const u32 gMonBackPic_Leavanny[] = INCBIN_U32("graphics/pokemon/leavanny/back.4bpp.lz"); -const u32 gMonBackPic_Venipede[] = INCBIN_U32("graphics/pokemon/venipede/back.4bpp.lz"); -const u32 gMonBackPic_Whirlipede[] = INCBIN_U32("graphics/pokemon/whirlipede/back.4bpp.lz"); -const u32 gMonBackPic_Scolipede[] = INCBIN_U32("graphics/pokemon/scolipede/back.4bpp.lz"); -const u32 gMonBackPic_Cottonee[] = INCBIN_U32("graphics/pokemon/cottonee/back.4bpp.lz"); -const u32 gMonBackPic_Whimsicott[] = INCBIN_U32("graphics/pokemon/whimsicott/back.4bpp.lz"); -const u32 gMonBackPic_Petilil[] = INCBIN_U32("graphics/pokemon/petilil/back.4bpp.lz"); -const u32 gMonBackPic_Lilligant[] = INCBIN_U32("graphics/pokemon/lilligant/back.4bpp.lz"); -const u32 gMonBackPic_BasculinRedStriped[] = INCBIN_U32("graphics/pokemon/basculin/back.4bpp.lz"); -const u32 gMonBackPic_Sandile[] = INCBIN_U32("graphics/pokemon/sandile/back.4bpp.lz"); -const u32 gMonBackPic_Krokorok[] = INCBIN_U32("graphics/pokemon/krokorok/back.4bpp.lz"); -const u32 gMonBackPic_Krookodile[] = INCBIN_U32("graphics/pokemon/krookodile/back.4bpp.lz"); -const u32 gMonBackPic_Darumaka[] = INCBIN_U32("graphics/pokemon/darumaka/back.4bpp.lz"); -const u32 gMonBackPic_DarmanitanStandardMode[] = INCBIN_U32("graphics/pokemon/darmanitan/back.4bpp.lz"); -const u32 gMonBackPic_Maractus[] = INCBIN_U32("graphics/pokemon/maractus/back.4bpp.lz"); -const u32 gMonBackPic_Dwebble[] = INCBIN_U32("graphics/pokemon/dwebble/back.4bpp.lz"); -const u32 gMonBackPic_Crustle[] = INCBIN_U32("graphics/pokemon/crustle/back.4bpp.lz"); -const u32 gMonBackPic_Scraggy[] = INCBIN_U32("graphics/pokemon/scraggy/back.4bpp.lz"); -const u32 gMonBackPic_Scrafty[] = INCBIN_U32("graphics/pokemon/scrafty/back.4bpp.lz"); -const u32 gMonBackPic_Sigilyph[] = INCBIN_U32("graphics/pokemon/sigilyph/back.4bpp.lz"); -const u32 gMonBackPic_Yamask[] = INCBIN_U32("graphics/pokemon/yamask/back.4bpp.lz"); -const u32 gMonBackPic_Cofagrigus[] = INCBIN_U32("graphics/pokemon/cofagrigus/back.4bpp.lz"); -const u32 gMonBackPic_Tirtouga[] = INCBIN_U32("graphics/pokemon/tirtouga/back.4bpp.lz"); -const u32 gMonBackPic_Carracosta[] = INCBIN_U32("graphics/pokemon/carracosta/back.4bpp.lz"); -const u32 gMonBackPic_Archen[] = INCBIN_U32("graphics/pokemon/archen/back.4bpp.lz"); -const u32 gMonBackPic_Archeops[] = INCBIN_U32("graphics/pokemon/archeops/back.4bpp.lz"); -const u32 gMonBackPic_Trubbish[] = INCBIN_U32("graphics/pokemon/trubbish/back.4bpp.lz"); -const u32 gMonBackPic_Garbodor[] = INCBIN_U32("graphics/pokemon/garbodor/back.4bpp.lz"); -const u32 gMonBackPic_Zorua[] = INCBIN_U32("graphics/pokemon/zorua/back.4bpp.lz"); -const u32 gMonBackPic_Zoroark[] = INCBIN_U32("graphics/pokemon/zoroark/back.4bpp.lz"); -const u32 gMonBackPic_Minccino[] = INCBIN_U32("graphics/pokemon/minccino/back.4bpp.lz"); -const u32 gMonBackPic_Cinccino[] = INCBIN_U32("graphics/pokemon/cinccino/back.4bpp.lz"); -const u32 gMonBackPic_Gothita[] = INCBIN_U32("graphics/pokemon/gothita/back.4bpp.lz"); -const u32 gMonBackPic_Gothorita[] = INCBIN_U32("graphics/pokemon/gothorita/back.4bpp.lz"); -const u32 gMonBackPic_Gothitelle[] = INCBIN_U32("graphics/pokemon/gothitelle/back.4bpp.lz"); -const u32 gMonBackPic_Solosis[] = INCBIN_U32("graphics/pokemon/solosis/back.4bpp.lz"); -const u32 gMonBackPic_Duosion[] = INCBIN_U32("graphics/pokemon/duosion/back.4bpp.lz"); -const u32 gMonBackPic_Reuniclus[] = INCBIN_U32("graphics/pokemon/reuniclus/back.4bpp.lz"); -const u32 gMonBackPic_Ducklett[] = INCBIN_U32("graphics/pokemon/ducklett/back.4bpp.lz"); -const u32 gMonBackPic_Swanna[] = INCBIN_U32("graphics/pokemon/swanna/back.4bpp.lz"); -const u32 gMonBackPic_Vanillite[] = INCBIN_U32("graphics/pokemon/vanillite/back.4bpp.lz"); -const u32 gMonBackPic_Vanillish[] = INCBIN_U32("graphics/pokemon/vanillish/back.4bpp.lz"); -const u32 gMonBackPic_Vanilluxe[] = INCBIN_U32("graphics/pokemon/vanilluxe/back.4bpp.lz"); -const u32 gMonBackPic_Deerling[] = INCBIN_U32("graphics/pokemon/deerling/back.4bpp.lz"); -const u32 gMonBackPic_SawsbuckSpring[] = INCBIN_U32("graphics/pokemon/sawsbuck/back.4bpp.lz"); -const u32 gMonBackPic_Emolga[] = INCBIN_U32("graphics/pokemon/emolga/back.4bpp.lz"); -const u32 gMonBackPic_Karrablast[] = INCBIN_U32("graphics/pokemon/karrablast/back.4bpp.lz"); -const u32 gMonBackPic_Escavalier[] = INCBIN_U32("graphics/pokemon/escavalier/back.4bpp.lz"); -const u32 gMonBackPic_Foongus[] = INCBIN_U32("graphics/pokemon/foongus/back.4bpp.lz"); -const u32 gMonBackPic_Amoonguss[] = INCBIN_U32("graphics/pokemon/amoonguss/back.4bpp.lz"); -const u32 gMonBackPic_Frillish[] = INCBIN_U32("graphics/pokemon/frillish/back.4bpp.lz"); -const u32 gMonBackPic_FrillishF[] = INCBIN_U32("graphics/pokemon/frillish/backf.4bpp.lz"); -const u32 gMonBackPic_Jellicent[] = INCBIN_U32("graphics/pokemon/jellicent/back.4bpp.lz"); -const u32 gMonBackPic_JellicentF[] = INCBIN_U32("graphics/pokemon/jellicent/backf.4bpp.lz"); -const u32 gMonBackPic_Alomomola[] = INCBIN_U32("graphics/pokemon/alomomola/back.4bpp.lz"); -const u32 gMonBackPic_Joltik[] = INCBIN_U32("graphics/pokemon/joltik/back.4bpp.lz"); -const u32 gMonBackPic_Galvantula[] = INCBIN_U32("graphics/pokemon/galvantula/back.4bpp.lz"); -const u32 gMonBackPic_Ferroseed[] = INCBIN_U32("graphics/pokemon/ferroseed/back.4bpp.lz"); -const u32 gMonBackPic_Ferrothorn[] = INCBIN_U32("graphics/pokemon/ferrothorn/back.4bpp.lz"); -const u32 gMonBackPic_Klink[] = INCBIN_U32("graphics/pokemon/klink/back.4bpp.lz"); -const u32 gMonBackPic_Klang[] = INCBIN_U32("graphics/pokemon/klang/back.4bpp.lz"); -const u32 gMonBackPic_Klinklang[] = INCBIN_U32("graphics/pokemon/klinklang/back.4bpp.lz"); -const u32 gMonBackPic_Tynamo[] = INCBIN_U32("graphics/pokemon/tynamo/back.4bpp.lz"); -const u32 gMonBackPic_Eelektrik[] = INCBIN_U32("graphics/pokemon/eelektrik/back.4bpp.lz"); -const u32 gMonBackPic_Eelektross[] = INCBIN_U32("graphics/pokemon/eelektross/back.4bpp.lz"); -const u32 gMonBackPic_Elgyem[] = INCBIN_U32("graphics/pokemon/elgyem/back.4bpp.lz"); -const u32 gMonBackPic_Beheeyem[] = INCBIN_U32("graphics/pokemon/beheeyem/back.4bpp.lz"); -const u32 gMonBackPic_Litwick[] = INCBIN_U32("graphics/pokemon/litwick/back.4bpp.lz"); -const u32 gMonBackPic_Lampent[] = INCBIN_U32("graphics/pokemon/lampent/back.4bpp.lz"); -const u32 gMonBackPic_Chandelure[] = INCBIN_U32("graphics/pokemon/chandelure/back.4bpp.lz"); -const u32 gMonBackPic_Axew[] = INCBIN_U32("graphics/pokemon/axew/back.4bpp.lz"); -const u32 gMonBackPic_Fraxure[] = INCBIN_U32("graphics/pokemon/fraxure/back.4bpp.lz"); -const u32 gMonBackPic_Haxorus[] = INCBIN_U32("graphics/pokemon/haxorus/back.4bpp.lz"); -const u32 gMonBackPic_Cubchoo[] = INCBIN_U32("graphics/pokemon/cubchoo/back.4bpp.lz"); -const u32 gMonBackPic_Beartic[] = INCBIN_U32("graphics/pokemon/beartic/back.4bpp.lz"); -const u32 gMonBackPic_Cryogonal[] = INCBIN_U32("graphics/pokemon/cryogonal/back.4bpp.lz"); -const u32 gMonBackPic_Shelmet[] = INCBIN_U32("graphics/pokemon/shelmet/back.4bpp.lz"); -const u32 gMonBackPic_Accelgor[] = INCBIN_U32("graphics/pokemon/accelgor/back.4bpp.lz"); -const u32 gMonBackPic_Stunfisk[] = INCBIN_U32("graphics/pokemon/stunfisk/back.4bpp.lz"); -const u32 gMonBackPic_Mienfoo[] = INCBIN_U32("graphics/pokemon/mienfoo/back.4bpp.lz"); -const u32 gMonBackPic_Mienshao[] = INCBIN_U32("graphics/pokemon/mienshao/back.4bpp.lz"); -const u32 gMonBackPic_Druddigon[] = INCBIN_U32("graphics/pokemon/druddigon/back.4bpp.lz"); -const u32 gMonBackPic_Golett[] = INCBIN_U32("graphics/pokemon/golett/back.4bpp.lz"); -const u32 gMonBackPic_Golurk[] = INCBIN_U32("graphics/pokemon/golurk/back.4bpp.lz"); -const u32 gMonBackPic_Pawniard[] = INCBIN_U32("graphics/pokemon/pawniard/back.4bpp.lz"); -const u32 gMonBackPic_Bisharp[] = INCBIN_U32("graphics/pokemon/bisharp/back.4bpp.lz"); -const u32 gMonBackPic_Bouffalant[] = INCBIN_U32("graphics/pokemon/bouffalant/back.4bpp.lz"); -const u32 gMonBackPic_Rufflet[] = INCBIN_U32("graphics/pokemon/rufflet/back.4bpp.lz"); -const u32 gMonBackPic_Braviary[] = INCBIN_U32("graphics/pokemon/braviary/back.4bpp.lz"); -const u32 gMonBackPic_Vullaby[] = INCBIN_U32("graphics/pokemon/vullaby/back.4bpp.lz"); -const u32 gMonBackPic_Mandibuzz[] = INCBIN_U32("graphics/pokemon/mandibuzz/back.4bpp.lz"); -const u32 gMonBackPic_Heatmor[] = INCBIN_U32("graphics/pokemon/heatmor/back.4bpp.lz"); -const u32 gMonBackPic_Durant[] = INCBIN_U32("graphics/pokemon/durant/back.4bpp.lz"); -const u32 gMonBackPic_Deino[] = INCBIN_U32("graphics/pokemon/deino/back.4bpp.lz"); -const u32 gMonBackPic_Zweilous[] = INCBIN_U32("graphics/pokemon/zweilous/back.4bpp.lz"); -const u32 gMonBackPic_Hydreigon[] = INCBIN_U32("graphics/pokemon/hydreigon/back.4bpp.lz"); -const u32 gMonBackPic_Larvesta[] = INCBIN_U32("graphics/pokemon/larvesta/back.4bpp.lz"); -const u32 gMonBackPic_Volcarona[] = INCBIN_U32("graphics/pokemon/volcarona/back.4bpp.lz"); -const u32 gMonBackPic_Cobalion[] = INCBIN_U32("graphics/pokemon/cobalion/back.4bpp.lz"); -const u32 gMonBackPic_Terrakion[] = INCBIN_U32("graphics/pokemon/terrakion/back.4bpp.lz"); -const u32 gMonBackPic_Virizion[] = INCBIN_U32("graphics/pokemon/virizion/back.4bpp.lz"); -const u32 gMonBackPic_TornadusIncarnate[] = INCBIN_U32("graphics/pokemon/tornadus/back.4bpp.lz"); -const u32 gMonBackPic_ThundurusIncarnate[] = INCBIN_U32("graphics/pokemon/thundurus/back.4bpp.lz"); -const u32 gMonBackPic_Reshiram[] = INCBIN_U32("graphics/pokemon/reshiram/back.4bpp.lz"); -const u32 gMonBackPic_Zekrom[] = INCBIN_U32("graphics/pokemon/zekrom/back.4bpp.lz"); -const u32 gMonBackPic_LandorusIncarnate[] = INCBIN_U32("graphics/pokemon/landorus/back.4bpp.lz"); -const u32 gMonBackPic_Kyurem[] = INCBIN_U32("graphics/pokemon/kyurem/back.4bpp.lz"); -const u32 gMonBackPic_KeldeoOrdinary[] = INCBIN_U32("graphics/pokemon/keldeo/back.4bpp.lz"); -const u32 gMonBackPic_MeloettaAria[] = INCBIN_U32("graphics/pokemon/meloetta/back.4bpp.lz"); -const u32 gMonBackPic_Genesect[] = INCBIN_U32("graphics/pokemon/genesect/back.4bpp.lz"); -#endif -#if P_GEN_6_POKEMON == TRUE -const u32 gMonBackPic_Chespin[] = INCBIN_U32("graphics/pokemon/chespin/back.4bpp.lz"); -const u32 gMonBackPic_Quilladin[] = INCBIN_U32("graphics/pokemon/quilladin/back.4bpp.lz"); -const u32 gMonBackPic_Chesnaught[] = INCBIN_U32("graphics/pokemon/chesnaught/back.4bpp.lz"); -const u32 gMonBackPic_Fennekin[] = INCBIN_U32("graphics/pokemon/fennekin/back.4bpp.lz"); -const u32 gMonBackPic_Braixen[] = INCBIN_U32("graphics/pokemon/braixen/back.4bpp.lz"); -const u32 gMonBackPic_Delphox[] = INCBIN_U32("graphics/pokemon/delphox/back.4bpp.lz"); -const u32 gMonBackPic_Froakie[] = INCBIN_U32("graphics/pokemon/froakie/back.4bpp.lz"); -const u32 gMonBackPic_Frogadier[] = INCBIN_U32("graphics/pokemon/frogadier/back.4bpp.lz"); -const u32 gMonBackPic_Greninja[] = INCBIN_U32("graphics/pokemon/greninja/back.4bpp.lz"); -const u32 gMonBackPic_Bunnelby[] = INCBIN_U32("graphics/pokemon/bunnelby/back.4bpp.lz"); -const u32 gMonBackPic_Diggersby[] = INCBIN_U32("graphics/pokemon/diggersby/back.4bpp.lz"); -const u32 gMonBackPic_Fletchling[] = INCBIN_U32("graphics/pokemon/fletchling/back.4bpp.lz"); -const u32 gMonBackPic_Fletchinder[] = INCBIN_U32("graphics/pokemon/fletchinder/back.4bpp.lz"); -const u32 gMonBackPic_Talonflame[] = INCBIN_U32("graphics/pokemon/talonflame/back.4bpp.lz"); -const u32 gMonBackPic_Scatterbug[] = INCBIN_U32("graphics/pokemon/scatterbug/back.4bpp.lz"); -const u32 gMonBackPic_Spewpa[] = INCBIN_U32("graphics/pokemon/spewpa/back.4bpp.lz"); -const u32 gMonBackPic_VivillonIcySnow[] = INCBIN_U32("graphics/pokemon/vivillon/back.4bpp.lz"); -const u32 gMonBackPic_Litleo[] = INCBIN_U32("graphics/pokemon/litleo/back.4bpp.lz"); -const u32 gMonBackPic_Pyroar[] = INCBIN_U32("graphics/pokemon/pyroar/back.4bpp.lz"); -const u32 gMonBackPic_PyroarF[] = INCBIN_U32("graphics/pokemon/pyroar/backf.4bpp.lz"); -const u32 gMonBackPic_Flabebe[] = INCBIN_U32("graphics/pokemon/flabebe/back.4bpp.lz"); -const u32 gMonBackPic_Floette[] = INCBIN_U32("graphics/pokemon/floette/back.4bpp.lz"); -const u32 gMonBackPic_Florges[] = INCBIN_U32("graphics/pokemon/florges/back.4bpp.lz"); -const u32 gMonBackPic_Skiddo[] = INCBIN_U32("graphics/pokemon/skiddo/back.4bpp.lz"); -const u32 gMonBackPic_Gogoat[] = INCBIN_U32("graphics/pokemon/gogoat/back.4bpp.lz"); -const u32 gMonBackPic_Pancham[] = INCBIN_U32("graphics/pokemon/pancham/back.4bpp.lz"); -const u32 gMonBackPic_Pangoro[] = INCBIN_U32("graphics/pokemon/pangoro/back.4bpp.lz"); -const u32 gMonBackPic_FurfrouNatural[] = INCBIN_U32("graphics/pokemon/furfrou/back.4bpp.lz"); -const u32 gMonBackPic_Espurr[] = INCBIN_U32("graphics/pokemon/espurr/back.4bpp.lz"); -const u32 gMonBackPic_MeowsticMale[] = INCBIN_U32("graphics/pokemon/meowstic/back.4bpp.lz"); -const u32 gMonBackPic_Honedge[] = INCBIN_U32("graphics/pokemon/honedge/back.4bpp.lz"); -const u32 gMonBackPic_Doublade[] = INCBIN_U32("graphics/pokemon/doublade/back.4bpp.lz"); -const u32 gMonBackPic_AegislashShield[] = INCBIN_U32("graphics/pokemon/aegislash/back.4bpp.lz"); -const u32 gMonBackPic_Spritzee[] = INCBIN_U32("graphics/pokemon/spritzee/back.4bpp.lz"); -const u32 gMonBackPic_Aromatisse[] = INCBIN_U32("graphics/pokemon/aromatisse/back.4bpp.lz"); -const u32 gMonBackPic_Swirlix[] = INCBIN_U32("graphics/pokemon/swirlix/back.4bpp.lz"); -const u32 gMonBackPic_Slurpuff[] = INCBIN_U32("graphics/pokemon/slurpuff/back.4bpp.lz"); -const u32 gMonBackPic_Inkay[] = INCBIN_U32("graphics/pokemon/inkay/back.4bpp.lz"); -const u32 gMonBackPic_Malamar[] = INCBIN_U32("graphics/pokemon/malamar/back.4bpp.lz"); -const u32 gMonBackPic_Binacle[] = INCBIN_U32("graphics/pokemon/binacle/back.4bpp.lz"); -const u32 gMonBackPic_Barbaracle[] = INCBIN_U32("graphics/pokemon/barbaracle/back.4bpp.lz"); -const u32 gMonBackPic_Skrelp[] = INCBIN_U32("graphics/pokemon/skrelp/back.4bpp.lz"); -const u32 gMonBackPic_Dragalge[] = INCBIN_U32("graphics/pokemon/dragalge/back.4bpp.lz"); -const u32 gMonBackPic_Clauncher[] = INCBIN_U32("graphics/pokemon/clauncher/back.4bpp.lz"); -const u32 gMonBackPic_Clawitzer[] = INCBIN_U32("graphics/pokemon/clawitzer/back.4bpp.lz"); -const u32 gMonBackPic_Helioptile[] = INCBIN_U32("graphics/pokemon/helioptile/back.4bpp.lz"); -const u32 gMonBackPic_Heliolisk[] = INCBIN_U32("graphics/pokemon/heliolisk/back.4bpp.lz"); -const u32 gMonBackPic_Tyrunt[] = INCBIN_U32("graphics/pokemon/tyrunt/back.4bpp.lz"); -const u32 gMonBackPic_Tyrantrum[] = INCBIN_U32("graphics/pokemon/tyrantrum/back.4bpp.lz"); -const u32 gMonBackPic_Amaura[] = INCBIN_U32("graphics/pokemon/amaura/back.4bpp.lz"); -const u32 gMonBackPic_Aurorus[] = INCBIN_U32("graphics/pokemon/aurorus/back.4bpp.lz"); -const u32 gMonBackPic_Sylveon[] = INCBIN_U32("graphics/pokemon/sylveon/back.4bpp.lz"); -const u32 gMonBackPic_Hawlucha[] = INCBIN_U32("graphics/pokemon/hawlucha/back.4bpp.lz"); -const u32 gMonBackPic_Dedenne[] = INCBIN_U32("graphics/pokemon/dedenne/back.4bpp.lz"); -const u32 gMonBackPic_Carbink[] = INCBIN_U32("graphics/pokemon/carbink/back.4bpp.lz"); -const u32 gMonBackPic_Goomy[] = INCBIN_U32("graphics/pokemon/goomy/back.4bpp.lz"); -const u32 gMonBackPic_Sliggoo[] = INCBIN_U32("graphics/pokemon/sliggoo/back.4bpp.lz"); -const u32 gMonBackPic_Goodra[] = INCBIN_U32("graphics/pokemon/goodra/back.4bpp.lz"); -const u32 gMonBackPic_Klefki[] = INCBIN_U32("graphics/pokemon/klefki/back.4bpp.lz"); -const u32 gMonBackPic_Phantump[] = INCBIN_U32("graphics/pokemon/phantump/back.4bpp.lz"); -const u32 gMonBackPic_Trevenant[] = INCBIN_U32("graphics/pokemon/trevenant/back.4bpp.lz"); -const u32 gMonBackPic_PumpkabooAverage[] = INCBIN_U32("graphics/pokemon/pumpkaboo/back.4bpp.lz"); -const u32 gMonBackPic_GourgeistAverage[] = INCBIN_U32("graphics/pokemon/gourgeist/back.4bpp.lz"); -const u32 gMonBackPic_Bergmite[] = INCBIN_U32("graphics/pokemon/bergmite/back.4bpp.lz"); -const u32 gMonBackPic_Avalugg[] = INCBIN_U32("graphics/pokemon/avalugg/back.4bpp.lz"); -const u32 gMonBackPic_Noibat[] = INCBIN_U32("graphics/pokemon/noibat/back.4bpp.lz"); -const u32 gMonBackPic_Noivern[] = INCBIN_U32("graphics/pokemon/noivern/back.4bpp.lz"); -const u32 gMonBackPic_XerneasNeutral[] = INCBIN_U32("graphics/pokemon/xerneas/back.4bpp.lz"); -const u32 gMonBackPic_Yveltal[] = INCBIN_U32("graphics/pokemon/yveltal/back.4bpp.lz"); -const u32 gMonBackPic_Zygarde50[] = INCBIN_U32("graphics/pokemon/zygarde/back.4bpp.lz"); -const u32 gMonBackPic_Diancie[] = INCBIN_U32("graphics/pokemon/diancie/back.4bpp.lz"); -const u32 gMonBackPic_HoopaConfined[] = INCBIN_U32("graphics/pokemon/hoopa/back.4bpp.lz"); -const u32 gMonBackPic_Volcanion[] = INCBIN_U32("graphics/pokemon/volcanion/back.4bpp.lz"); -#endif -#if P_GEN_7_POKEMON == TRUE -const u32 gMonBackPic_Rowlet[] = INCBIN_U32("graphics/pokemon/rowlet/back.4bpp.lz"); -const u32 gMonBackPic_Dartrix[] = INCBIN_U32("graphics/pokemon/dartrix/back.4bpp.lz"); -const u32 gMonBackPic_Decidueye[] = INCBIN_U32("graphics/pokemon/decidueye/back.4bpp.lz"); -const u32 gMonBackPic_Litten[] = INCBIN_U32("graphics/pokemon/litten/back.4bpp.lz"); -const u32 gMonBackPic_Torracat[] = INCBIN_U32("graphics/pokemon/torracat/back.4bpp.lz"); -const u32 gMonBackPic_Incineroar[] = INCBIN_U32("graphics/pokemon/incineroar/back.4bpp.lz"); -const u32 gMonBackPic_Popplio[] = INCBIN_U32("graphics/pokemon/popplio/back.4bpp.lz"); -const u32 gMonBackPic_Brionne[] = INCBIN_U32("graphics/pokemon/brionne/back.4bpp.lz"); -const u32 gMonBackPic_Primarina[] = INCBIN_U32("graphics/pokemon/primarina/back.4bpp.lz"); -const u32 gMonBackPic_Pikipek[] = INCBIN_U32("graphics/pokemon/pikipek/back.4bpp.lz"); -const u32 gMonBackPic_Trumbeak[] = INCBIN_U32("graphics/pokemon/trumbeak/back.4bpp.lz"); -const u32 gMonBackPic_Toucannon[] = INCBIN_U32("graphics/pokemon/toucannon/back.4bpp.lz"); -const u32 gMonBackPic_Yungoos[] = INCBIN_U32("graphics/pokemon/yungoos/back.4bpp.lz"); -const u32 gMonBackPic_Gumshoos[] = INCBIN_U32("graphics/pokemon/gumshoos/back.4bpp.lz"); -const u32 gMonBackPic_Grubbin[] = INCBIN_U32("graphics/pokemon/grubbin/back.4bpp.lz"); -const u32 gMonBackPic_Charjabug[] = INCBIN_U32("graphics/pokemon/charjabug/back.4bpp.lz"); -const u32 gMonBackPic_Vikavolt[] = INCBIN_U32("graphics/pokemon/vikavolt/back.4bpp.lz"); -const u32 gMonBackPic_Crabrawler[] = INCBIN_U32("graphics/pokemon/crabrawler/back.4bpp.lz"); -const u32 gMonBackPic_Crabominable[] = INCBIN_U32("graphics/pokemon/crabominable/back.4bpp.lz"); -const u32 gMonBackPic_OricorioBaile[] = INCBIN_U32("graphics/pokemon/oricorio/back.4bpp.lz"); -const u32 gMonBackPic_Cutiefly[] = INCBIN_U32("graphics/pokemon/cutiefly/back.4bpp.lz"); -const u32 gMonBackPic_Ribombee[] = INCBIN_U32("graphics/pokemon/ribombee/back.4bpp.lz"); -const u32 gMonBackPic_Rockruff[] = INCBIN_U32("graphics/pokemon/rockruff/back.4bpp.lz"); -const u32 gMonBackPic_LycanrocMidday[] = INCBIN_U32("graphics/pokemon/lycanroc/back.4bpp.lz"); -const u32 gMonBackPic_WishiwashiSolo[] = INCBIN_U32("graphics/pokemon/wishiwashi/back.4bpp.lz"); -const u32 gMonBackPic_Mareanie[] = INCBIN_U32("graphics/pokemon/mareanie/back.4bpp.lz"); -const u32 gMonBackPic_Toxapex[] = INCBIN_U32("graphics/pokemon/toxapex/back.4bpp.lz"); -const u32 gMonBackPic_Mudbray[] = INCBIN_U32("graphics/pokemon/mudbray/back.4bpp.lz"); -const u32 gMonBackPic_Mudsdale[] = INCBIN_U32("graphics/pokemon/mudsdale/back.4bpp.lz"); -const u32 gMonBackPic_Dewpider[] = INCBIN_U32("graphics/pokemon/dewpider/back.4bpp.lz"); -const u32 gMonBackPic_Araquanid[] = INCBIN_U32("graphics/pokemon/araquanid/back.4bpp.lz"); -const u32 gMonBackPic_Fomantis[] = INCBIN_U32("graphics/pokemon/fomantis/back.4bpp.lz"); -const u32 gMonBackPic_Lurantis[] = INCBIN_U32("graphics/pokemon/lurantis/back.4bpp.lz"); -const u32 gMonBackPic_Morelull[] = INCBIN_U32("graphics/pokemon/morelull/back.4bpp.lz"); -const u32 gMonBackPic_Shiinotic[] = INCBIN_U32("graphics/pokemon/shiinotic/back.4bpp.lz"); -const u32 gMonBackPic_Salandit[] = INCBIN_U32("graphics/pokemon/salandit/back.4bpp.lz"); -const u32 gMonBackPic_Salazzle[] = INCBIN_U32("graphics/pokemon/salazzle/back.4bpp.lz"); -const u32 gMonBackPic_Stufful[] = INCBIN_U32("graphics/pokemon/stufful/back.4bpp.lz"); -const u32 gMonBackPic_Bewear[] = INCBIN_U32("graphics/pokemon/bewear/back.4bpp.lz"); -const u32 gMonBackPic_Bounsweet[] = INCBIN_U32("graphics/pokemon/bounsweet/back.4bpp.lz"); -const u32 gMonBackPic_Steenee[] = INCBIN_U32("graphics/pokemon/steenee/back.4bpp.lz"); -const u32 gMonBackPic_Tsareena[] = INCBIN_U32("graphics/pokemon/tsareena/back.4bpp.lz"); -const u32 gMonBackPic_Comfey[] = INCBIN_U32("graphics/pokemon/comfey/back.4bpp.lz"); -const u32 gMonBackPic_Oranguru[] = INCBIN_U32("graphics/pokemon/oranguru/back.4bpp.lz"); -const u32 gMonBackPic_Passimian[] = INCBIN_U32("graphics/pokemon/passimian/back.4bpp.lz"); -const u32 gMonBackPic_Wimpod[] = INCBIN_U32("graphics/pokemon/wimpod/back.4bpp.lz"); -const u32 gMonBackPic_Golisopod[] = INCBIN_U32("graphics/pokemon/golisopod/back.4bpp.lz"); -const u32 gMonBackPic_Sandygast[] = INCBIN_U32("graphics/pokemon/sandygast/back.4bpp.lz"); -const u32 gMonBackPic_Palossand[] = INCBIN_U32("graphics/pokemon/palossand/back.4bpp.lz"); -const u32 gMonBackPic_Pyukumuku[] = INCBIN_U32("graphics/pokemon/pyukumuku/back.4bpp.lz"); -const u32 gMonBackPic_TypeNull[] = INCBIN_U32("graphics/pokemon/type_null/back.4bpp.lz"); -const u32 gMonBackPic_Silvally[] = INCBIN_U32("graphics/pokemon/silvally/back.4bpp.lz"); -const u32 gMonBackPic_MiniorMeteor[] = INCBIN_U32("graphics/pokemon/minior/back.4bpp.lz"); -const u32 gMonBackPic_Komala[] = INCBIN_U32("graphics/pokemon/komala/back.4bpp.lz"); -const u32 gMonBackPic_Turtonator[] = INCBIN_U32("graphics/pokemon/turtonator/back.4bpp.lz"); -const u32 gMonBackPic_Togedemaru[] = INCBIN_U32("graphics/pokemon/togedemaru/back.4bpp.lz"); -const u32 gMonBackPic_MimikyuDisguised[] = INCBIN_U32("graphics/pokemon/mimikyu/back.4bpp.lz"); -const u32 gMonBackPic_Bruxish[] = INCBIN_U32("graphics/pokemon/bruxish/back.4bpp.lz"); -const u32 gMonBackPic_Drampa[] = INCBIN_U32("graphics/pokemon/drampa/back.4bpp.lz"); -const u32 gMonBackPic_Dhelmise[] = INCBIN_U32("graphics/pokemon/dhelmise/back.4bpp.lz"); -const u32 gMonBackPic_JangmoO[] = INCBIN_U32("graphics/pokemon/jangmo_o/back.4bpp.lz"); -const u32 gMonBackPic_HakamoO[] = INCBIN_U32("graphics/pokemon/hakamo_o/back.4bpp.lz"); -const u32 gMonBackPic_KommoO[] = INCBIN_U32("graphics/pokemon/kommo_o/back.4bpp.lz"); -const u32 gMonBackPic_TapuKoko[] = INCBIN_U32("graphics/pokemon/tapu_koko/back.4bpp.lz"); -const u32 gMonBackPic_TapuLele[] = INCBIN_U32("graphics/pokemon/tapu_lele/back.4bpp.lz"); -const u32 gMonBackPic_TapuBulu[] = INCBIN_U32("graphics/pokemon/tapu_bulu/back.4bpp.lz"); -const u32 gMonBackPic_TapuFini[] = INCBIN_U32("graphics/pokemon/tapu_fini/back.4bpp.lz"); -const u32 gMonBackPic_Cosmog[] = INCBIN_U32("graphics/pokemon/cosmog/back.4bpp.lz"); -const u32 gMonBackPic_Cosmoem[] = INCBIN_U32("graphics/pokemon/cosmoem/back.4bpp.lz"); -const u32 gMonBackPic_Solgaleo[] = INCBIN_U32("graphics/pokemon/solgaleo/back.4bpp.lz"); -const u32 gMonBackPic_Lunala[] = INCBIN_U32("graphics/pokemon/lunala/back.4bpp.lz"); -const u32 gMonBackPic_Nihilego[] = INCBIN_U32("graphics/pokemon/nihilego/back.4bpp.lz"); -const u32 gMonBackPic_Buzzwole[] = INCBIN_U32("graphics/pokemon/buzzwole/back.4bpp.lz"); -const u32 gMonBackPic_Pheromosa[] = INCBIN_U32("graphics/pokemon/pheromosa/back.4bpp.lz"); -const u32 gMonBackPic_Xurkitree[] = INCBIN_U32("graphics/pokemon/xurkitree/back.4bpp.lz"); -const u32 gMonBackPic_Celesteela[] = INCBIN_U32("graphics/pokemon/celesteela/back.4bpp.lz"); -const u32 gMonBackPic_Kartana[] = INCBIN_U32("graphics/pokemon/kartana/back.4bpp.lz"); -const u32 gMonBackPic_Guzzlord[] = INCBIN_U32("graphics/pokemon/guzzlord/back.4bpp.lz"); -const u32 gMonBackPic_Necrozma[] = INCBIN_U32("graphics/pokemon/necrozma/back.4bpp.lz"); -const u32 gMonBackPic_Magearna[] = INCBIN_U32("graphics/pokemon/magearna/back.4bpp.lz"); -const u32 gMonBackPic_Marshadow[] = INCBIN_U32("graphics/pokemon/marshadow/back.4bpp.lz"); -const u32 gMonBackPic_Poipole[] = INCBIN_U32("graphics/pokemon/poipole/back.4bpp.lz"); -const u32 gMonBackPic_Naganadel[] = INCBIN_U32("graphics/pokemon/naganadel/back.4bpp.lz"); -const u32 gMonBackPic_Stakataka[] = INCBIN_U32("graphics/pokemon/stakataka/back.4bpp.lz"); -const u32 gMonBackPic_Blacephalon[] = INCBIN_U32("graphics/pokemon/blacephalon/back.4bpp.lz"); -const u32 gMonBackPic_Zeraora[] = INCBIN_U32("graphics/pokemon/zeraora/back.4bpp.lz"); -const u32 gMonBackPic_Meltan[] = INCBIN_U32("graphics/pokemon/meltan/back.4bpp.lz"); -const u32 gMonBackPic_Melmetal[] = INCBIN_U32("graphics/pokemon/melmetal/back.4bpp.lz"); -#endif -#if P_GEN_8_POKEMON == TRUE -const u32 gMonBackPic_Grookey[] = INCBIN_U32("graphics/pokemon/grookey/back.4bpp.lz"); -const u32 gMonBackPic_Thwackey[] = INCBIN_U32("graphics/pokemon/thwackey/back.4bpp.lz"); -const u32 gMonBackPic_Rillaboom[] = INCBIN_U32("graphics/pokemon/rillaboom/back.4bpp.lz"); -const u32 gMonBackPic_Scorbunny[] = INCBIN_U32("graphics/pokemon/scorbunny/back.4bpp.lz"); -const u32 gMonBackPic_Raboot[] = INCBIN_U32("graphics/pokemon/raboot/back.4bpp.lz"); -const u32 gMonBackPic_Cinderace[] = INCBIN_U32("graphics/pokemon/cinderace/back.4bpp.lz"); -const u32 gMonBackPic_Sobble[] = INCBIN_U32("graphics/pokemon/sobble/back.4bpp.lz"); -const u32 gMonBackPic_Drizzile[] = INCBIN_U32("graphics/pokemon/drizzile/back.4bpp.lz"); -const u32 gMonBackPic_Inteleon[] = INCBIN_U32("graphics/pokemon/inteleon/back.4bpp.lz"); -const u32 gMonBackPic_Skwovet[] = INCBIN_U32("graphics/pokemon/skwovet/back.4bpp.lz"); -const u32 gMonBackPic_Greedent[] = INCBIN_U32("graphics/pokemon/greedent/back.4bpp.lz"); -const u32 gMonBackPic_Rookidee[] = INCBIN_U32("graphics/pokemon/rookidee/back.4bpp.lz"); -const u32 gMonBackPic_Corvisquire[] = INCBIN_U32("graphics/pokemon/corvisquire/back.4bpp.lz"); -const u32 gMonBackPic_Corviknight[] = INCBIN_U32("graphics/pokemon/corviknight/back.4bpp.lz"); -const u32 gMonBackPic_Blipbug[] = INCBIN_U32("graphics/pokemon/blipbug/back.4bpp.lz"); -const u32 gMonBackPic_Dottler[] = INCBIN_U32("graphics/pokemon/dottler/back.4bpp.lz"); -const u32 gMonBackPic_Orbeetle[] = INCBIN_U32("graphics/pokemon/orbeetle/back.4bpp.lz"); -const u32 gMonBackPic_Nickit[] = INCBIN_U32("graphics/pokemon/nickit/back.4bpp.lz"); -const u32 gMonBackPic_Thievul[] = INCBIN_U32("graphics/pokemon/thievul/back.4bpp.lz"); -const u32 gMonBackPic_Gossifleur[] = INCBIN_U32("graphics/pokemon/gossifleur/back.4bpp.lz"); -const u32 gMonBackPic_Eldegoss[] = INCBIN_U32("graphics/pokemon/eldegoss/back.4bpp.lz"); -const u32 gMonBackPic_Wooloo[] = INCBIN_U32("graphics/pokemon/wooloo/back.4bpp.lz"); -const u32 gMonBackPic_Dubwool[] = INCBIN_U32("graphics/pokemon/dubwool/back.4bpp.lz"); -const u32 gMonBackPic_Chewtle[] = INCBIN_U32("graphics/pokemon/chewtle/back.4bpp.lz"); -const u32 gMonBackPic_Drednaw[] = INCBIN_U32("graphics/pokemon/drednaw/back.4bpp.lz"); -const u32 gMonBackPic_Yamper[] = INCBIN_U32("graphics/pokemon/yamper/back.4bpp.lz"); -const u32 gMonBackPic_Boltund[] = INCBIN_U32("graphics/pokemon/boltund/back.4bpp.lz"); -const u32 gMonBackPic_Rolycoly[] = INCBIN_U32("graphics/pokemon/rolycoly/back.4bpp.lz"); -const u32 gMonBackPic_Carkol[] = INCBIN_U32("graphics/pokemon/carkol/back.4bpp.lz"); -const u32 gMonBackPic_Coalossal[] = INCBIN_U32("graphics/pokemon/coalossal/back.4bpp.lz"); -const u32 gMonBackPic_Applin[] = INCBIN_U32("graphics/pokemon/applin/back.4bpp.lz"); -const u32 gMonBackPic_Flapple[] = INCBIN_U32("graphics/pokemon/flapple/back.4bpp.lz"); -const u32 gMonBackPic_Appletun[] = INCBIN_U32("graphics/pokemon/appletun/back.4bpp.lz"); -const u32 gMonBackPic_Silicobra[] = INCBIN_U32("graphics/pokemon/silicobra/back.4bpp.lz"); -const u32 gMonBackPic_Sandaconda[] = INCBIN_U32("graphics/pokemon/sandaconda/back.4bpp.lz"); -const u32 gMonBackPic_Cramorant[] = INCBIN_U32("graphics/pokemon/cramorant/back.4bpp.lz"); -const u32 gMonBackPic_Arrokuda[] = INCBIN_U32("graphics/pokemon/arrokuda/back.4bpp.lz"); -const u32 gMonBackPic_Barraskewda[] = INCBIN_U32("graphics/pokemon/barraskewda/back.4bpp.lz"); -const u32 gMonBackPic_Toxel[] = INCBIN_U32("graphics/pokemon/toxel/back.4bpp.lz"); -const u32 gMonBackPic_ToxtricityAmped[] = INCBIN_U32("graphics/pokemon/toxtricity/back.4bpp.lz"); -const u32 gMonBackPic_Sizzlipede[] = INCBIN_U32("graphics/pokemon/sizzlipede/back.4bpp.lz"); -const u32 gMonBackPic_Centiskorch[] = INCBIN_U32("graphics/pokemon/centiskorch/back.4bpp.lz"); -const u32 gMonBackPic_Clobbopus[] = INCBIN_U32("graphics/pokemon/clobbopus/back.4bpp.lz"); -const u32 gMonBackPic_Grapploct[] = INCBIN_U32("graphics/pokemon/grapploct/back.4bpp.lz"); -const u32 gMonBackPic_Sinistea[] = INCBIN_U32("graphics/pokemon/sinistea/back.4bpp.lz"); -const u32 gMonBackPic_Polteageist[] = INCBIN_U32("graphics/pokemon/polteageist/back.4bpp.lz"); -const u32 gMonBackPic_Hatenna[] = INCBIN_U32("graphics/pokemon/hatenna/back.4bpp.lz"); -const u32 gMonBackPic_Hattrem[] = INCBIN_U32("graphics/pokemon/hattrem/back.4bpp.lz"); -const u32 gMonBackPic_Hatterene[] = INCBIN_U32("graphics/pokemon/hatterene/back.4bpp.lz"); -const u32 gMonBackPic_Impidimp[] = INCBIN_U32("graphics/pokemon/impidimp/back.4bpp.lz"); -const u32 gMonBackPic_Morgrem[] = INCBIN_U32("graphics/pokemon/morgrem/back.4bpp.lz"); -const u32 gMonBackPic_Grimmsnarl[] = INCBIN_U32("graphics/pokemon/grimmsnarl/back.4bpp.lz"); -const u32 gMonBackPic_Obstagoon[] = INCBIN_U32("graphics/pokemon/obstagoon/back.4bpp.lz"); -const u32 gMonBackPic_Perrserker[] = INCBIN_U32("graphics/pokemon/perrserker/back.4bpp.lz"); -const u32 gMonBackPic_Cursola[] = INCBIN_U32("graphics/pokemon/cursola/back.4bpp.lz"); -const u32 gMonBackPic_Sirfetchd[] = INCBIN_U32("graphics/pokemon/sirfetchd/back.4bpp.lz"); -const u32 gMonBackPic_MrRime[] = INCBIN_U32("graphics/pokemon/mr_rime/back.4bpp.lz"); -const u32 gMonBackPic_Runerigus[] = INCBIN_U32("graphics/pokemon/runerigus/back.4bpp.lz"); -const u32 gMonBackPic_Milcery[] = INCBIN_U32("graphics/pokemon/milcery/back.4bpp.lz"); -const u32 gMonBackPic_Alcremie[] = INCBIN_U32("graphics/pokemon/alcremie/back.4bpp.lz"); -const u32 gMonBackPic_Falinks[] = INCBIN_U32("graphics/pokemon/falinks/back.4bpp.lz"); -const u32 gMonBackPic_Pincurchin[] = INCBIN_U32("graphics/pokemon/pincurchin/back.4bpp.lz"); -const u32 gMonBackPic_Snom[] = INCBIN_U32("graphics/pokemon/snom/back.4bpp.lz"); -const u32 gMonBackPic_Frosmoth[] = INCBIN_U32("graphics/pokemon/frosmoth/back.4bpp.lz"); -const u32 gMonBackPic_Stonjourner[] = INCBIN_U32("graphics/pokemon/stonjourner/back.4bpp.lz"); -const u32 gMonBackPic_EiscueIceFace[] = INCBIN_U32("graphics/pokemon/eiscue/back.4bpp.lz"); -const u32 gMonBackPic_IndeedeeMale[] = INCBIN_U32("graphics/pokemon/indeedee/back.4bpp.lz"); -const u32 gMonBackPic_MorpekoFullBelly[] = INCBIN_U32("graphics/pokemon/morpeko/back.4bpp.lz"); -const u32 gMonBackPic_Cufant[] = INCBIN_U32("graphics/pokemon/cufant/back.4bpp.lz"); -const u32 gMonBackPic_Copperajah[] = INCBIN_U32("graphics/pokemon/copperajah/back.4bpp.lz"); -const u32 gMonBackPic_Dracozolt[] = INCBIN_U32("graphics/pokemon/dracozolt/back.4bpp.lz"); -const u32 gMonBackPic_Arctozolt[] = INCBIN_U32("graphics/pokemon/arctozolt/back.4bpp.lz"); -const u32 gMonBackPic_Dracovish[] = INCBIN_U32("graphics/pokemon/dracovish/back.4bpp.lz"); -const u32 gMonBackPic_Arctovish[] = INCBIN_U32("graphics/pokemon/arctovish/back.4bpp.lz"); -const u32 gMonBackPic_Duraludon[] = INCBIN_U32("graphics/pokemon/duraludon/back.4bpp.lz"); -const u32 gMonBackPic_Dreepy[] = INCBIN_U32("graphics/pokemon/dreepy/back.4bpp.lz"); -const u32 gMonBackPic_Drakloak[] = INCBIN_U32("graphics/pokemon/drakloak/back.4bpp.lz"); -const u32 gMonBackPic_Dragapult[] = INCBIN_U32("graphics/pokemon/dragapult/back.4bpp.lz"); -const u32 gMonBackPic_ZacianHeroOfManyBattles[] = INCBIN_U32("graphics/pokemon/zacian/back.4bpp.lz"); -const u32 gMonBackPic_ZamazentaHeroOfManyBattles[] = INCBIN_U32("graphics/pokemon/zamazenta/back.4bpp.lz"); -const u32 gMonBackPic_Eternatus[] = INCBIN_U32("graphics/pokemon/eternatus/back.4bpp.lz"); -const u32 gMonBackPic_Kubfu[] = INCBIN_U32("graphics/pokemon/kubfu/back.4bpp.lz"); -const u32 gMonBackPic_UrshifuSingleStrikeStyle[] = INCBIN_U32("graphics/pokemon/urshifu/back.4bpp.lz"); -const u32 gMonBackPic_Zarude[] = INCBIN_U32("graphics/pokemon/zarude/back.4bpp.lz"); -const u32 gMonBackPic_Regieleki[] = INCBIN_U32("graphics/pokemon/regieleki/back.4bpp.lz"); -const u32 gMonBackPic_Regidrago[] = INCBIN_U32("graphics/pokemon/regidrago/back.4bpp.lz"); -const u32 gMonBackPic_Glastrier[] = INCBIN_U32("graphics/pokemon/glastrier/back.4bpp.lz"); -const u32 gMonBackPic_Spectrier[] = INCBIN_U32("graphics/pokemon/spectrier/back.4bpp.lz"); -const u32 gMonBackPic_Calyrex[] = INCBIN_U32("graphics/pokemon/calyrex/back.4bpp.lz"); -const u32 gMonBackPic_Wyrdeer[] = INCBIN_U32("graphics/pokemon/wyrdeer/back.4bpp.lz"); -const u32 gMonBackPic_Kleavor[] = INCBIN_U32("graphics/pokemon/kleavor/back.4bpp.lz"); -const u32 gMonBackPic_Ursaluna[] = INCBIN_U32("graphics/pokemon/ursaluna/back.4bpp.lz"); -const u32 gMonBackPic_BasculegionMale[] = INCBIN_U32("graphics/pokemon/basculegion/back.4bpp.lz"); -const u32 gMonBackPic_Sneasler[] = INCBIN_U32("graphics/pokemon/sneasler/back.4bpp.lz"); -const u32 gMonBackPic_Overqwil[] = INCBIN_U32("graphics/pokemon/overqwil/back.4bpp.lz"); -const u32 gMonBackPic_EnamorusIncarnate[] = INCBIN_U32("graphics/pokemon/enamorus/back.4bpp.lz"); -#endif -const u32 gMonBackPic_VenusaurMega[] = INCBIN_U32("graphics/pokemon/venusaur/mega/back.4bpp.lz"); -const u32 gMonBackPic_CharizardMegaX[] = INCBIN_U32("graphics/pokemon/charizard/mega_x/back.4bpp.lz"); -const u32 gMonBackPic_CharizardMegaY[] = INCBIN_U32("graphics/pokemon/charizard/mega_y/back.4bpp.lz"); -const u32 gMonBackPic_BlastoiseMega[] = INCBIN_U32("graphics/pokemon/blastoise/mega/back.4bpp.lz"); -const u32 gMonBackPic_BeedrillMega[] = INCBIN_U32("graphics/pokemon/beedrill/mega/back.4bpp.lz"); -const u32 gMonBackPic_PidgeotMega[] = INCBIN_U32("graphics/pokemon/pidgeot/mega/back.4bpp.lz"); -const u32 gMonBackPic_AlakazamMega[] = INCBIN_U32("graphics/pokemon/alakazam/mega/back.4bpp.lz"); -const u32 gMonBackPic_SlowbroMega[] = INCBIN_U32("graphics/pokemon/slowbro/mega/back.4bpp.lz"); -const u32 gMonBackPic_GengarMega[] = INCBIN_U32("graphics/pokemon/gengar/mega/back.4bpp.lz"); -const u32 gMonBackPic_KangaskhanMega[] = INCBIN_U32("graphics/pokemon/kangaskhan/mega/back.4bpp.lz"); -const u32 gMonBackPic_PinsirMega[] = INCBIN_U32("graphics/pokemon/pinsir/mega/back.4bpp.lz"); -const u32 gMonBackPic_GyaradosMega[] = INCBIN_U32("graphics/pokemon/gyarados/mega/back.4bpp.lz"); -const u32 gMonBackPic_AerodactylMega[] = INCBIN_U32("graphics/pokemon/aerodactyl/mega/back.4bpp.lz"); -const u32 gMonBackPic_MewtwoMegaX[] = INCBIN_U32("graphics/pokemon/mewtwo/mega_x/back.4bpp.lz"); -const u32 gMonBackPic_MewtwoMegaY[] = INCBIN_U32("graphics/pokemon/mewtwo/mega_y/back.4bpp.lz"); -const u32 gMonBackPic_AmpharosMega[] = INCBIN_U32("graphics/pokemon/ampharos/mega/back.4bpp.lz"); -const u32 gMonBackPic_SteelixMega[] = INCBIN_U32("graphics/pokemon/steelix/mega/back.4bpp.lz"); -const u32 gMonBackPic_ScizorMega[] = INCBIN_U32("graphics/pokemon/scizor/mega/back.4bpp.lz"); -const u32 gMonBackPic_HeracrossMega[] = INCBIN_U32("graphics/pokemon/heracross/mega/back.4bpp.lz"); -const u32 gMonBackPic_HoundoomMega[] = INCBIN_U32("graphics/pokemon/houndoom/mega/back.4bpp.lz"); -const u32 gMonBackPic_TyranitarMega[] = INCBIN_U32("graphics/pokemon/tyranitar/mega/back.4bpp.lz"); -const u32 gMonBackPic_SceptileMega[] = INCBIN_U32("graphics/pokemon/sceptile/mega/back.4bpp.lz"); -const u32 gMonBackPic_BlazikenMega[] = INCBIN_U32("graphics/pokemon/blaziken/mega/back.4bpp.lz"); -const u32 gMonBackPic_SwampertMega[] = INCBIN_U32("graphics/pokemon/swampert/mega/back.4bpp.lz"); -const u32 gMonBackPic_GardevoirMega[] = INCBIN_U32("graphics/pokemon/gardevoir/mega/back.4bpp.lz"); -const u32 gMonBackPic_SableyeMega[] = INCBIN_U32("graphics/pokemon/sableye/mega/back.4bpp.lz"); -const u32 gMonBackPic_MawileMega[] = INCBIN_U32("graphics/pokemon/mawile/mega/back.4bpp.lz"); -const u32 gMonBackPic_AggronMega[] = INCBIN_U32("graphics/pokemon/aggron/mega/back.4bpp.lz"); -const u32 gMonBackPic_MedichamMega[] = INCBIN_U32("graphics/pokemon/medicham/mega/back.4bpp.lz"); -const u32 gMonBackPic_ManectricMega[] = INCBIN_U32("graphics/pokemon/manectric/mega/back.4bpp.lz"); -const u32 gMonBackPic_SharpedoMega[] = INCBIN_U32("graphics/pokemon/sharpedo/mega/back.4bpp.lz"); -const u32 gMonBackPic_CameruptMega[] = INCBIN_U32("graphics/pokemon/camerupt/mega/back.4bpp.lz"); -const u32 gMonBackPic_AltariaMega[] = INCBIN_U32("graphics/pokemon/altaria/mega/back.4bpp.lz"); -const u32 gMonBackPic_BanetteMega[] = INCBIN_U32("graphics/pokemon/banette/mega/back.4bpp.lz"); -const u32 gMonBackPic_AbsolMega[] = INCBIN_U32("graphics/pokemon/absol/mega/back.4bpp.lz"); -const u32 gMonBackPic_GlalieMega[] = INCBIN_U32("graphics/pokemon/glalie/mega/back.4bpp.lz"); -const u32 gMonBackPic_SalamenceMega[] = INCBIN_U32("graphics/pokemon/salamence/mega/back.4bpp.lz"); -const u32 gMonBackPic_MetagrossMega[] = INCBIN_U32("graphics/pokemon/metagross/mega/back.4bpp.lz"); -const u32 gMonBackPic_LatiasMega[] = INCBIN_U32("graphics/pokemon/latias/mega/back.4bpp.lz"); -const u32 gMonBackPic_LatiosMega[] = INCBIN_U32("graphics/pokemon/latios/mega/back.4bpp.lz"); -#if P_GEN_4_POKEMON == TRUE -const u32 gMonBackPic_LopunnyMega[] = INCBIN_U32("graphics/pokemon/lopunny/mega/back.4bpp.lz"); -const u32 gMonBackPic_GarchompMega[] = INCBIN_U32("graphics/pokemon/garchomp/mega/back.4bpp.lz"); -const u32 gMonBackPic_LucarioMega[] = INCBIN_U32("graphics/pokemon/lucario/mega/back.4bpp.lz"); -const u32 gMonBackPic_AbomasnowMega[] = INCBIN_U32("graphics/pokemon/abomasnow/mega/back.4bpp.lz"); -const u32 gMonBackPic_GalladeMega[] = INCBIN_U32("graphics/pokemon/gallade/mega/back.4bpp.lz"); -#endif -#if P_GEN_5_POKEMON == TRUE -const u32 gMonBackPic_AudinoMega[] = INCBIN_U32("graphics/pokemon/audino/mega/back.4bpp.lz"); -#endif -#if P_GEN_6_POKEMON == TRUE -const u32 gMonBackPic_DiancieMega[] = INCBIN_U32("graphics/pokemon/diancie/mega/back.4bpp.lz"); -#endif -const u32 gMonBackPic_RayquazaMega[] = INCBIN_U32("graphics/pokemon/rayquaza/mega/back.4bpp.lz"); -const u32 gMonBackPic_KyogrePrimal[] = INCBIN_U32("graphics/pokemon/kyogre/primal/back.4bpp.lz"); -const u32 gMonBackPic_GroudonPrimal[] = INCBIN_U32("graphics/pokemon/groudon/primal/back.4bpp.lz"); -const u32 gMonBackPic_RattataAlolan[] = INCBIN_U32("graphics/pokemon/rattata/alolan/back.4bpp.lz"); -const u32 gMonBackPic_RaticateAlolan[] = INCBIN_U32("graphics/pokemon/raticate/alolan/back.4bpp.lz"); -const u32 gMonBackPic_RaichuAlolan[] = INCBIN_U32("graphics/pokemon/raichu/alolan/back.4bpp.lz"); -const u32 gMonBackPic_SandshrewAlolan[] = INCBIN_U32("graphics/pokemon/sandshrew/alolan/back.4bpp.lz"); -const u32 gMonBackPic_SandslashAlolan[] = INCBIN_U32("graphics/pokemon/sandslash/alolan/back.4bpp.lz"); -const u32 gMonBackPic_VulpixAlolan[] = INCBIN_U32("graphics/pokemon/vulpix/alolan/back.4bpp.lz"); -const u32 gMonBackPic_NinetalesAlolan[] = INCBIN_U32("graphics/pokemon/ninetales/alolan/back.4bpp.lz"); -const u32 gMonBackPic_DiglettAlolan[] = INCBIN_U32("graphics/pokemon/diglett/alolan/back.4bpp.lz"); -const u32 gMonBackPic_DugtrioAlolan[] = INCBIN_U32("graphics/pokemon/dugtrio/alolan/back.4bpp.lz"); -const u32 gMonBackPic_MeowthAlolan[] = INCBIN_U32("graphics/pokemon/meowth/alolan/back.4bpp.lz"); -const u32 gMonBackPic_PersianAlolan[] = INCBIN_U32("graphics/pokemon/persian/alolan/back.4bpp.lz"); -const u32 gMonBackPic_GeodudeAlolan[] = INCBIN_U32("graphics/pokemon/geodude/alolan/back.4bpp.lz"); -const u32 gMonBackPic_GravelerAlolan[] = INCBIN_U32("graphics/pokemon/graveler/alolan/back.4bpp.lz"); -const u32 gMonBackPic_GolemAlolan[] = INCBIN_U32("graphics/pokemon/golem/alolan/back.4bpp.lz"); -const u32 gMonBackPic_GrimerAlolan[] = INCBIN_U32("graphics/pokemon/grimer/alolan/back.4bpp.lz"); -const u32 gMonBackPic_MukAlolan[] = INCBIN_U32("graphics/pokemon/muk/alolan/back.4bpp.lz"); -const u32 gMonBackPic_ExeggutorAlolan[] = INCBIN_U32("graphics/pokemon/exeggutor/alolan/back.4bpp.lz"); -const u32 gMonBackPic_MarowakAlolan[] = INCBIN_U32("graphics/pokemon/marowak/alolan/back.4bpp.lz"); -const u32 gMonBackPic_MeowthGalarian[] = INCBIN_U32("graphics/pokemon/meowth/galarian/back.4bpp.lz"); -const u32 gMonBackPic_PonytaGalarian[] = INCBIN_U32("graphics/pokemon/ponyta/galarian/back.4bpp.lz"); -const u32 gMonBackPic_RapidashGalarian[] = INCBIN_U32("graphics/pokemon/rapidash/galarian/back.4bpp.lz"); -const u32 gMonBackPic_SlowpokeGalarian[] = INCBIN_U32("graphics/pokemon/slowpoke/galarian/back.4bpp.lz"); -const u32 gMonBackPic_SlowbroGalarian[] = INCBIN_U32("graphics/pokemon/slowbro/galarian/back.4bpp.lz"); -const u32 gMonBackPic_FarfetchdGalarian[] = INCBIN_U32("graphics/pokemon/farfetchd/galarian/back.4bpp.lz"); -const u32 gMonBackPic_WeezingGalarian[] = INCBIN_U32("graphics/pokemon/weezing/galarian/back.4bpp.lz"); -const u32 gMonBackPic_MrMimeGalarian[] = INCBIN_U32("graphics/pokemon/mr_mime/galarian/back.4bpp.lz"); -const u32 gMonBackPic_ArticunoGalarian[] = INCBIN_U32("graphics/pokemon/articuno/galarian/back.4bpp.lz"); -const u32 gMonBackPic_ZapdosGalarian[] = INCBIN_U32("graphics/pokemon/zapdos/galarian/back.4bpp.lz"); -const u32 gMonBackPic_MoltresGalarian[] = INCBIN_U32("graphics/pokemon/moltres/galarian/back.4bpp.lz"); -const u32 gMonBackPic_SlowkingGalarian[] = INCBIN_U32("graphics/pokemon/slowking/galarian/back.4bpp.lz"); -const u32 gMonBackPic_CorsolaGalarian[] = INCBIN_U32("graphics/pokemon/corsola/galarian/back.4bpp.lz"); -const u32 gMonBackPic_ZigzagoonGalarian[] = INCBIN_U32("graphics/pokemon/zigzagoon/galarian/back.4bpp.lz"); -const u32 gMonBackPic_LinooneGalarian[] = INCBIN_U32("graphics/pokemon/linoone/galarian/back.4bpp.lz"); -#if P_GEN_5_POKEMON == TRUE -const u32 gMonBackPic_DarumakaGalarian[] = INCBIN_U32("graphics/pokemon/darumaka/galarian/back.4bpp.lz"); -const u32 gMonBackPic_DarmanitanGalarianStandardMode[] = INCBIN_U32("graphics/pokemon/darmanitan/galarian/back.4bpp.lz"); -const u32 gMonBackPic_YamaskGalarian[] = INCBIN_U32("graphics/pokemon/yamask/galarian/back.4bpp.lz"); -const u32 gMonBackPic_StunfiskGalarian[] = INCBIN_U32("graphics/pokemon/stunfisk/galarian/back.4bpp.lz"); -#endif -const u32 gMonBackPic_GrowlitheHisuian[] = INCBIN_U32("graphics/pokemon/growlithe/hisuian/back.4bpp.lz"); -const u32 gMonBackPic_ArcanineHisuian[] = INCBIN_U32("graphics/pokemon/arcanine/hisuian/back.4bpp.lz"); -const u32 gMonBackPic_VoltorbHisuian[] = INCBIN_U32("graphics/pokemon/voltorb/hisuian/back.4bpp.lz"); -const u32 gMonBackPic_ElectrodeHisuian[] = INCBIN_U32("graphics/pokemon/electrode/hisuian/back.4bpp.lz"); -const u32 gMonBackPic_TyphlosionHisuian[] = INCBIN_U32("graphics/pokemon/typhlosion/hisuian/back.4bpp.lz"); -const u32 gMonBackPic_QwilfishHisuian[] = INCBIN_U32("graphics/pokemon/qwilfish/hisuian/back.4bpp.lz"); -const u32 gMonBackPic_SneaselHisuian[] = INCBIN_U32("graphics/pokemon/sneasel/hisuian/back.4bpp.lz"); -const u32 gMonBackPic_SneaselHisuianF[] = INCBIN_U32("graphics/pokemon/sneasel/hisuian/backf.4bpp.lz"); -#if P_GEN_5_POKEMON == TRUE -const u32 gMonBackPic_SamurottHisuian[] = INCBIN_U32("graphics/pokemon/samurott/hisuian/back.4bpp.lz"); -const u32 gMonBackPic_LilligantHisuian[] = INCBIN_U32("graphics/pokemon/lilligant/hisuian/back.4bpp.lz"); -const u32 gMonBackPic_ZoruaHisuian[] = INCBIN_U32("graphics/pokemon/zorua/hisuian/back.4bpp.lz"); -const u32 gMonBackPic_ZoroarkHisuian[] = INCBIN_U32("graphics/pokemon/zoroark/hisuian/back.4bpp.lz"); -const u32 gMonBackPic_BraviaryHisuian[] = INCBIN_U32("graphics/pokemon/braviary/hisuian/back.4bpp.lz"); -#endif -#if P_GEN_6_POKEMON == TRUE -const u32 gMonBackPic_SliggooHisuian[] = INCBIN_U32("graphics/pokemon/sliggoo/hisuian/back.4bpp.lz"); -const u32 gMonBackPic_GoodraHisuian[] = INCBIN_U32("graphics/pokemon/goodra/hisuian/back.4bpp.lz"); -const u32 gMonBackPic_AvaluggHisuian[] = INCBIN_U32("graphics/pokemon/avalugg/hisuian/back.4bpp.lz"); -#endif -#if P_GEN_7_POKEMON == TRUE -const u32 gMonBackPic_DecidueyeHisuian[] = INCBIN_U32("graphics/pokemon/decidueye/hisuian/back.4bpp.lz"); -#endif -const u32 gMonBackPic_PikachuCosplay[] = INCBIN_U32("graphics/pokemon/pikachu/cosplay/back.4bpp.lz"); -const u32 gMonBackPic_PikachuRockStar[] = INCBIN_U32("graphics/pokemon/pikachu/rock_star/back.4bpp.lz"); -const u32 gMonBackPic_PikachuBelle[] = INCBIN_U32("graphics/pokemon/pikachu/belle/back.4bpp.lz"); -const u32 gMonBackPic_PikachuPopStar[] = INCBIN_U32("graphics/pokemon/pikachu/pop_star/back.4bpp.lz"); -const u32 gMonBackPic_PikachuPhD[] = INCBIN_U32("graphics/pokemon/pikachu/ph_d/back.4bpp.lz"); -const u32 gMonBackPic_PikachuLibre[] = INCBIN_U32("graphics/pokemon/pikachu/libre/back.4bpp.lz"); -const u32 gMonBackPic_PikachuOriginalCap[] = INCBIN_U32("graphics/pokemon/pikachu/original_cap/back.4bpp.lz"); -const u32 gMonBackPic_PikachuHoennCap[] = INCBIN_U32("graphics/pokemon/pikachu/hoenn_cap/back.4bpp.lz"); -const u32 gMonBackPic_PikachuSinnohCap[] = INCBIN_U32("graphics/pokemon/pikachu/sinnoh_cap/back.4bpp.lz"); -const u32 gMonBackPic_PikachuUnovaCap[] = INCBIN_U32("graphics/pokemon/pikachu/unova_cap/back.4bpp.lz"); -const u32 gMonBackPic_PikachuKalosCap[] = INCBIN_U32("graphics/pokemon/pikachu/kalos_cap/back.4bpp.lz"); -const u32 gMonBackPic_PikachuAlolaCap[] = INCBIN_U32("graphics/pokemon/pikachu/alola_cap/back.4bpp.lz"); -const u32 gMonBackPic_PikachuPartnerCap[] = INCBIN_U32("graphics/pokemon/pikachu/partner_cap/back.4bpp.lz"); -const u32 gMonBackPic_PikachuWorldCap[] = INCBIN_U32("graphics/pokemon/pikachu/world_cap/back.4bpp.lz"); -const u32 gMonBackPic_PichuSpikyEared[] = INCBIN_U32("graphics/pokemon/pichu/spiky_eared/back.4bpp.lz"); -const u32 gMonBackPic_UnownB[] = INCBIN_U32("graphics/pokemon/unown/b/back.4bpp.lz"); -const u32 gMonBackPic_UnownC[] = INCBIN_U32("graphics/pokemon/unown/c/back.4bpp.lz"); -const u32 gMonBackPic_UnownD[] = INCBIN_U32("graphics/pokemon/unown/d/back.4bpp.lz"); -const u32 gMonBackPic_UnownE[] = INCBIN_U32("graphics/pokemon/unown/e/back.4bpp.lz"); -const u32 gMonBackPic_UnownF[] = INCBIN_U32("graphics/pokemon/unown/f/back.4bpp.lz"); -const u32 gMonBackPic_UnownG[] = INCBIN_U32("graphics/pokemon/unown/g/back.4bpp.lz"); -const u32 gMonBackPic_UnownH[] = INCBIN_U32("graphics/pokemon/unown/h/back.4bpp.lz"); -const u32 gMonBackPic_UnownI[] = INCBIN_U32("graphics/pokemon/unown/i/back.4bpp.lz"); -const u32 gMonBackPic_UnownJ[] = INCBIN_U32("graphics/pokemon/unown/j/back.4bpp.lz"); -const u32 gMonBackPic_UnownK[] = INCBIN_U32("graphics/pokemon/unown/k/back.4bpp.lz"); -const u32 gMonBackPic_UnownL[] = INCBIN_U32("graphics/pokemon/unown/l/back.4bpp.lz"); -const u32 gMonBackPic_UnownM[] = INCBIN_U32("graphics/pokemon/unown/m/back.4bpp.lz"); -const u32 gMonBackPic_UnownN[] = INCBIN_U32("graphics/pokemon/unown/n/back.4bpp.lz"); -const u32 gMonBackPic_UnownO[] = INCBIN_U32("graphics/pokemon/unown/o/back.4bpp.lz"); -const u32 gMonBackPic_UnownP[] = INCBIN_U32("graphics/pokemon/unown/p/back.4bpp.lz"); -const u32 gMonBackPic_UnownQ[] = INCBIN_U32("graphics/pokemon/unown/q/back.4bpp.lz"); -const u32 gMonBackPic_UnownR[] = INCBIN_U32("graphics/pokemon/unown/r/back.4bpp.lz"); -const u32 gMonBackPic_UnownS[] = INCBIN_U32("graphics/pokemon/unown/s/back.4bpp.lz"); -const u32 gMonBackPic_UnownT[] = INCBIN_U32("graphics/pokemon/unown/t/back.4bpp.lz"); -const u32 gMonBackPic_UnownU[] = INCBIN_U32("graphics/pokemon/unown/u/back.4bpp.lz"); -const u32 gMonBackPic_UnownV[] = INCBIN_U32("graphics/pokemon/unown/v/back.4bpp.lz"); -const u32 gMonBackPic_UnownW[] = INCBIN_U32("graphics/pokemon/unown/w/back.4bpp.lz"); -const u32 gMonBackPic_UnownX[] = INCBIN_U32("graphics/pokemon/unown/x/back.4bpp.lz"); -const u32 gMonBackPic_UnownY[] = INCBIN_U32("graphics/pokemon/unown/y/back.4bpp.lz"); -const u32 gMonBackPic_UnownZ[] = INCBIN_U32("graphics/pokemon/unown/z/back.4bpp.lz"); -const u32 gMonBackPic_UnownExclamationMark[] = INCBIN_U32("graphics/pokemon/unown/exclamation_mark/back.4bpp.lz"); -const u32 gMonBackPic_UnownQuestionMark[] = INCBIN_U32("graphics/pokemon/unown/question_mark/back.4bpp.lz"); -const u32 gMonBackPic_CastformSunny[] = INCBIN_U32("graphics/pokemon/castform/sunny/back.4bpp.lz"); -const u32 gMonBackPic_CastformRainy[] = INCBIN_U32("graphics/pokemon/castform/rainy/back.4bpp.lz"); -const u32 gMonBackPic_CastformSnowy[] = INCBIN_U32("graphics/pokemon/castform/snowy/back.4bpp.lz"); -const u32 gMonBackPic_DeoxysAttack[] = INCBIN_U32("graphics/pokemon/deoxys/attack/back.4bpp.lz"); -const u32 gMonBackPic_DeoxysDefense[] = INCBIN_U32("graphics/pokemon/deoxys/defense/back.4bpp.lz"); -const u32 gMonBackPic_DeoxysSpeed[] = INCBIN_U32("graphics/pokemon/deoxys/speed/back.4bpp.lz"); -#if P_GEN_4_POKEMON == TRUE -const u32 gMonBackPic_BurmySandyCloak[] = INCBIN_U32("graphics/pokemon/burmy/sandy_cloak/back.4bpp.lz"); -const u32 gMonBackPic_BurmyTrashCloak[] = INCBIN_U32("graphics/pokemon/burmy/trash_cloak/back.4bpp.lz"); -const u32 gMonBackPic_WormadamSandyCloak[] = INCBIN_U32("graphics/pokemon/wormadam/sandy_cloak/back.4bpp.lz"); -const u32 gMonBackPic_WormadamTrashCloak[] = INCBIN_U32("graphics/pokemon/wormadam/trash_cloak/back.4bpp.lz"); -const u32 gMonBackPic_CherrimSunshine[] = INCBIN_U32("graphics/pokemon/cherrim/sunshine/back.4bpp.lz"); -const u32 gMonBackPic_ShellosEastSea[] = INCBIN_U32("graphics/pokemon/shellos/east_sea/back.4bpp.lz"); -const u32 gMonBackPic_GastrodonEastSea[] = INCBIN_U32("graphics/pokemon/gastrodon/east_sea/back.4bpp.lz"); -const u32 gMonBackPic_RotomHeat[] = INCBIN_U32("graphics/pokemon/rotom/heat/back.4bpp.lz"); -const u32 gMonBackPic_RotomWash[] = INCBIN_U32("graphics/pokemon/rotom/wash/back.4bpp.lz"); -const u32 gMonBackPic_RotomFrost[] = INCBIN_U32("graphics/pokemon/rotom/frost/back.4bpp.lz"); -const u32 gMonBackPic_RotomFan[] = INCBIN_U32("graphics/pokemon/rotom/fan/back.4bpp.lz"); -const u32 gMonBackPic_RotomMow[] = INCBIN_U32("graphics/pokemon/rotom/mow/back.4bpp.lz"); -const u32 gMonBackPic_DialgaOrigin[] = INCBIN_U32("graphics/pokemon/dialga/origin/back.4bpp.lz"); -const u32 gMonBackPic_PalkiaOrigin[] = INCBIN_U32("graphics/pokemon/palkia/origin/back.4bpp.lz"); -const u32 gMonBackPic_GiratinaOrigin[] = INCBIN_U32("graphics/pokemon/giratina/origin/back.4bpp.lz"); -const u32 gMonBackPic_ShayminSky[] = INCBIN_U32("graphics/pokemon/shaymin/sky/back.4bpp.lz"); -#endif -#if P_GEN_5_POKEMON == TRUE -const u32 gMonBackPic_BasculinBlueStriped[] = INCBIN_U32("graphics/pokemon/basculin/blue_striped/back.4bpp.lz"); -const u32 gMonBackPic_BasculinWhiteStriped[] = INCBIN_U32("graphics/pokemon/basculin/white_striped/back.4bpp.lz"); -const u32 gMonBackPic_DarmanitanZenMode[] = INCBIN_U32("graphics/pokemon/darmanitan/zen_mode/back.4bpp.lz"); -const u32 gMonBackPic_DarmanitanGalarianZenMode[] = INCBIN_U32("graphics/pokemon/darmanitan/zen_mode/galarian/back.4bpp.lz"); -const u32 gMonBackPic_SawsbuckSummer[] = INCBIN_U32("graphics/pokemon/sawsbuck/summer/back.4bpp.lz"); -const u32 gMonBackPic_SawsbuckAutumn[] = INCBIN_U32("graphics/pokemon/sawsbuck/autumn/back.4bpp.lz"); -const u32 gMonBackPic_SawsbuckWinter[] = INCBIN_U32("graphics/pokemon/sawsbuck/winter/back.4bpp.lz"); -const u32 gMonBackPic_TornadusTherian[] = INCBIN_U32("graphics/pokemon/tornadus/therian/back.4bpp.lz"); -const u32 gMonBackPic_ThundurusTherian[] = INCBIN_U32("graphics/pokemon/thundurus/therian/back.4bpp.lz"); -const u32 gMonBackPic_LandorusTherian[] = INCBIN_U32("graphics/pokemon/landorus/therian/back.4bpp.lz"); -const u32 gMonBackPic_KyuremWhite[] = INCBIN_U32("graphics/pokemon/kyurem/white/back.4bpp.lz"); -const u32 gMonBackPic_KyuremBlack[] = INCBIN_U32("graphics/pokemon/kyurem/black/back.4bpp.lz"); -const u32 gMonBackPic_KeldeoResolute[] = INCBIN_U32("graphics/pokemon/keldeo/resolute/back.4bpp.lz"); -const u32 gMonBackPic_MeloettaPirouette[] = INCBIN_U32("graphics/pokemon/meloetta/pirouette/back.4bpp.lz"); -#endif -#if P_GEN_6_POKEMON == TRUE -const u32 gMonBackPic_GreninjaAsh[] = INCBIN_U32("graphics/pokemon/greninja/ash/back.4bpp.lz"); -const u32 gMonBackPic_VivillonPolar[] = INCBIN_U32("graphics/pokemon/vivillon/polar/back.4bpp.lz"); -const u32 gMonBackPic_VivillonTundra[] = INCBIN_U32("graphics/pokemon/vivillon/tundra/back.4bpp.lz"); -const u32 gMonBackPic_VivillonContinental[] = INCBIN_U32("graphics/pokemon/vivillon/continental/back.4bpp.lz"); -const u32 gMonBackPic_VivillonGarden[] = INCBIN_U32("graphics/pokemon/vivillon/garden/back.4bpp.lz"); -const u32 gMonBackPic_VivillonElegant[] = INCBIN_U32("graphics/pokemon/vivillon/elegant/back.4bpp.lz"); -const u32 gMonBackPic_VivillonMeadow[] = INCBIN_U32("graphics/pokemon/vivillon/meadow/back.4bpp.lz"); -const u32 gMonBackPic_VivillonModern[] = INCBIN_U32("graphics/pokemon/vivillon/modern/back.4bpp.lz"); -const u32 gMonBackPic_VivillonMarine[] = INCBIN_U32("graphics/pokemon/vivillon/marine/back.4bpp.lz"); -const u32 gMonBackPic_VivillonArchipelago[] = INCBIN_U32("graphics/pokemon/vivillon/archipelago/back.4bpp.lz"); -const u32 gMonBackPic_VivillonHighPlains[] = INCBIN_U32("graphics/pokemon/vivillon/high_plains/back.4bpp.lz"); -const u32 gMonBackPic_VivillonSandstorm[] = INCBIN_U32("graphics/pokemon/vivillon/sandstorm/back.4bpp.lz"); -const u32 gMonBackPic_VivillonRiver[] = INCBIN_U32("graphics/pokemon/vivillon/river/back.4bpp.lz"); -const u32 gMonBackPic_VivillonMonsoon[] = INCBIN_U32("graphics/pokemon/vivillon/monsoon/back.4bpp.lz"); -const u32 gMonBackPic_VivillonSavanna[] = INCBIN_U32("graphics/pokemon/vivillon/savanna/back.4bpp.lz"); -const u32 gMonBackPic_VivillonSun[] = INCBIN_U32("graphics/pokemon/vivillon/sun/back.4bpp.lz"); -const u32 gMonBackPic_VivillonOcean[] = INCBIN_U32("graphics/pokemon/vivillon/ocean/back.4bpp.lz"); -const u32 gMonBackPic_VivillonJungle[] = INCBIN_U32("graphics/pokemon/vivillon/jungle/back.4bpp.lz"); -const u32 gMonBackPic_VivillonFancy[] = INCBIN_U32("graphics/pokemon/vivillon/fancy/back.4bpp.lz"); -const u32 gMonBackPic_VivillonPokeBall[] = INCBIN_U32("graphics/pokemon/vivillon/poke_ball/back.4bpp.lz"); -const u32 gMonBackPic_FloetteEternalFlower[] = INCBIN_U32("graphics/pokemon/floette/eternal_flower/back.4bpp.lz"); -const u32 gMonBackPic_FurfrouHeartTrim[] = INCBIN_U32("graphics/pokemon/furfrou/heart_trim/back.4bpp.lz"); -const u32 gMonBackPic_FurfrouStarTrim[] = INCBIN_U32("graphics/pokemon/furfrou/star_trim/back.4bpp.lz"); -const u32 gMonBackPic_FurfrouDiamondTrim[] = INCBIN_U32("graphics/pokemon/furfrou/diamond_trim/back.4bpp.lz"); -const u32 gMonBackPic_FurfrouDebutanteTrim[] = INCBIN_U32("graphics/pokemon/furfrou/debutante_trim/back.4bpp.lz"); -const u32 gMonBackPic_FurfrouMatronTrim[] = INCBIN_U32("graphics/pokemon/furfrou/matron_trim/back.4bpp.lz"); -const u32 gMonBackPic_FurfrouDandyTrim[] = INCBIN_U32("graphics/pokemon/furfrou/dandy_trim/back.4bpp.lz"); -const u32 gMonBackPic_FurfrouLaReineTrim[] = INCBIN_U32("graphics/pokemon/furfrou/la_reine_trim/back.4bpp.lz"); -const u32 gMonBackPic_FurfrouKabukiTrim[] = INCBIN_U32("graphics/pokemon/furfrou/kabuki_trim/back.4bpp.lz"); -const u32 gMonBackPic_FurfrouPharaohTrim[] = INCBIN_U32("graphics/pokemon/furfrou/pharaoh_trim/back.4bpp.lz"); -const u32 gMonBackPic_MeowsticFemale[] = INCBIN_U32("graphics/pokemon/meowstic/female/back.4bpp.lz"); -const u32 gMonBackPic_AegislashBlade[] = INCBIN_U32("graphics/pokemon/aegislash/blade/back.4bpp.lz"); -const u32 gMonBackPic_PumpkabooSmall[] = INCBIN_U32("graphics/pokemon/pumpkaboo/small/back.4bpp.lz"); -const u32 gMonBackPic_PumpkabooLarge[] = INCBIN_U32("graphics/pokemon/pumpkaboo/large/back.4bpp.lz"); -const u32 gMonBackPic_PumpkabooSuper[] = INCBIN_U32("graphics/pokemon/pumpkaboo/super/back.4bpp.lz"); -const u32 gMonBackPic_GourgeistSmall[] = INCBIN_U32("graphics/pokemon/gourgeist/small/back.4bpp.lz"); -const u32 gMonBackPic_GourgeistLarge[] = INCBIN_U32("graphics/pokemon/gourgeist/large/back.4bpp.lz"); -const u32 gMonBackPic_GourgeistSuper[] = INCBIN_U32("graphics/pokemon/gourgeist/super/back.4bpp.lz"); -const u32 gMonBackPic_XerneasActive[] = INCBIN_U32("graphics/pokemon/xerneas/active/back.4bpp.lz"); -const u32 gMonBackPic_Zygarde10[] = INCBIN_U32("graphics/pokemon/zygarde/10_percent/back.4bpp.lz"); -const u32 gMonBackPic_ZygardeComplete[] = INCBIN_U32("graphics/pokemon/zygarde/complete/back.4bpp.lz"); -const u32 gMonBackPic_HoopaUnbound[] = INCBIN_U32("graphics/pokemon/hoopa/unbound/back.4bpp.lz"); -#endif -#if P_GEN_7_POKEMON == TRUE -const u32 gMonBackPic_OricorioPomPom[] = INCBIN_U32("graphics/pokemon/oricorio/pom_pom/back.4bpp.lz"); -const u32 gMonBackPic_OricorioPau[] = INCBIN_U32("graphics/pokemon/oricorio/pau/back.4bpp.lz"); -const u32 gMonBackPic_OricorioSensu[] = INCBIN_U32("graphics/pokemon/oricorio/sensu/back.4bpp.lz"); -const u32 gMonBackPic_LycanrocMidnight[] = INCBIN_U32("graphics/pokemon/lycanroc/midnight/back.4bpp.lz"); -const u32 gMonBackPic_LycanrocDusk[] = INCBIN_U32("graphics/pokemon/lycanroc/dusk/back.4bpp.lz"); -const u32 gMonBackPic_WishiwashiSchool[] = INCBIN_U32("graphics/pokemon/wishiwashi/school/back.4bpp.lz"); -const u32 gMonBackPic_MiniorCore[] = INCBIN_U32("graphics/pokemon/minior/core/back.4bpp.lz"); -const u32 gMonBackPic_MimikyuBusted[] = INCBIN_U32("graphics/pokemon/mimikyu/busted/back.4bpp.lz"); -const u32 gMonBackPic_NecrozmaDuskMane[] = INCBIN_U32("graphics/pokemon/necrozma/dusk_mane/back.4bpp.lz"); -const u32 gMonBackPic_NecrozmaDawnWings[] = INCBIN_U32("graphics/pokemon/necrozma/dawn_wings/back.4bpp.lz"); -const u32 gMonBackPic_NecrozmaUltra[] = INCBIN_U32("graphics/pokemon/necrozma/ultra/back.4bpp.lz"); -const u32 gMonBackPic_MagearnaOriginalColor[] = INCBIN_U32("graphics/pokemon/magearna/original_color/back.4bpp.lz"); -#endif -#if P_GEN_8_POKEMON == TRUE -const u32 gMonBackPic_CramorantGulping[] = INCBIN_U32("graphics/pokemon/cramorant/gulping/back.4bpp.lz"); -const u32 gMonBackPic_CramorantGorging[] = INCBIN_U32("graphics/pokemon/cramorant/gorging/back.4bpp.lz"); -const u32 gMonBackPic_ToxtricityLowKey[] = INCBIN_U32("graphics/pokemon/toxtricity/low_key/back.4bpp.lz"); -const u32 gMonBackPic_AlcremieRubyCream[] = INCBIN_U32("graphics/pokemon/alcremie/ruby_cream/back.4bpp.lz"); -const u32 gMonBackPic_AlcremieMatchaCream[] = INCBIN_U32("graphics/pokemon/alcremie/matcha_cream/back.4bpp.lz"); -const u32 gMonBackPic_AlcremieMintCream[] = INCBIN_U32("graphics/pokemon/alcremie/mint_cream/back.4bpp.lz"); -const u32 gMonBackPic_AlcremieLemonCream[] = INCBIN_U32("graphics/pokemon/alcremie/lemon_cream/back.4bpp.lz"); -const u32 gMonBackPic_AlcremieSaltedCream[] = INCBIN_U32("graphics/pokemon/alcremie/salted_cream/back.4bpp.lz"); -const u32 gMonBackPic_AlcremieRubySwirl[] = INCBIN_U32("graphics/pokemon/alcremie/ruby_swirl/back.4bpp.lz"); -const u32 gMonBackPic_AlcremieCaramelSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/caramel_swirl/back.4bpp.lz"); -const u32 gMonBackPic_AlcremieRainbowSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/rainbow_swirl/back.4bpp.lz"); -const u32 gMonBackPic_EiscueNoiceFace[] = INCBIN_U32("graphics/pokemon/eiscue/noice_face/back.4bpp.lz"); -const u32 gMonBackPic_IndeedeeFemale[] = INCBIN_U32("graphics/pokemon/indeedee/female/back.4bpp.lz"); -const u32 gMonBackPic_MorpekoHangry[] = INCBIN_U32("graphics/pokemon/morpeko/hangry/back.4bpp.lz"); -const u32 gMonBackPic_ZacianCrownedSword[] = INCBIN_U32("graphics/pokemon/zacian/crowned_sword/back.4bpp.lz"); -const u32 gMonBackPic_ZamazentaCrownedShield[] = INCBIN_U32("graphics/pokemon/zamazenta/crowned_shield/back.4bpp.lz"); -const u32 gMonBackPic_EternatusEternamax[] = INCBIN_U32("graphics/pokemon/eternatus/eternamax/back.4bpp.lz"); -const u32 gMonBackPic_UrshifuRapidStrikeStyle[] = INCBIN_U32("graphics/pokemon/urshifu/rapid_strike_style/back.4bpp.lz"); -const u32 gMonBackPic_ZarudeDada[] = INCBIN_U32("graphics/pokemon/zarude/dada/back.4bpp.lz"); -const u32 gMonBackPic_CalyrexIceRider[] = INCBIN_U32("graphics/pokemon/calyrex/ice_rider/back.4bpp.lz"); -const u32 gMonBackPic_CalyrexShadowRider[] = INCBIN_U32("graphics/pokemon/calyrex/shadow_rider/back.4bpp.lz"); -const u32 gMonBackPic_EnamorusTherian[] = INCBIN_U32("graphics/pokemon/enamorus/therian/back.4bpp.lz"); -const u32 gMonBackPic_BasculegionFemale[] = INCBIN_U32("graphics/pokemon/basculegion/female/back.4bpp.lz"); -const u32 gMonBackPic_VenusaurGigantamax[] = INCBIN_U32("graphics/pokemon/venusaur/gigantamax/back.4bpp.lz"); -const u32 gMonBackPic_CharizardGigantamax[] = INCBIN_U32("graphics/pokemon/charizard/gigantamax/back.4bpp.lz"); -const u32 gMonBackPic_BlastoiseGigantamax[] = INCBIN_U32("graphics/pokemon/blastoise/gigantamax/back.4bpp.lz"); -const u32 gMonBackPic_ButterfreeGigantamax[] = INCBIN_U32("graphics/pokemon/butterfree/gigantamax/back.4bpp.lz"); -const u32 gMonBackPic_PikachuGigantamax[] = INCBIN_U32("graphics/pokemon/pikachu/gigantamax/back.4bpp.lz"); -const u32 gMonBackPic_MeowthGigantamax[] = INCBIN_U32("graphics/pokemon/meowth/gigantamax/back.4bpp.lz"); -const u32 gMonBackPic_MachampGigantamax[] = INCBIN_U32("graphics/pokemon/machamp/gigantamax/back.4bpp.lz"); -const u32 gMonBackPic_GengarGigantamax[] = INCBIN_U32("graphics/pokemon/gengar/gigantamax/back.4bpp.lz"); -const u32 gMonBackPic_KinglerGigantamax[] = INCBIN_U32("graphics/pokemon/kingler/gigantamax/back.4bpp.lz"); -const u32 gMonBackPic_LaprasGigantamax[] = INCBIN_U32("graphics/pokemon/lapras/gigantamax/back.4bpp.lz"); -const u32 gMonBackPic_EeveeGigantamax[] = INCBIN_U32("graphics/pokemon/eevee/gigantamax/back.4bpp.lz"); -const u32 gMonBackPic_SnorlaxGigantamax[] = INCBIN_U32("graphics/pokemon/snorlax/gigantamax/back.4bpp.lz"); -const u32 gMonBackPic_GarbodorGigantamax[] = INCBIN_U32("graphics/pokemon/garbodor/gigantamax/back.4bpp.lz"); -const u32 gMonBackPic_MelmetalGigantamax[] = INCBIN_U32("graphics/pokemon/melmetal/gigantamax/back.4bpp.lz"); -const u32 gMonBackPic_RillaboomGigantamax[] = INCBIN_U32("graphics/pokemon/rillaboom/gigantamax/back.4bpp.lz"); -const u32 gMonBackPic_CinderaceGigantamax[] = INCBIN_U32("graphics/pokemon/cinderace/gigantamax/back.4bpp.lz"); -const u32 gMonBackPic_InteleonGigantamax[] = INCBIN_U32("graphics/pokemon/inteleon/gigantamax/back.4bpp.lz"); -const u32 gMonBackPic_CorviknightGigantamax[] = INCBIN_U32("graphics/pokemon/corviknight/gigantamax/back.4bpp.lz"); -const u32 gMonBackPic_OrbeetleGigantamax[] = INCBIN_U32("graphics/pokemon/orbeetle/gigantamax/back.4bpp.lz"); -const u32 gMonBackPic_DrednawGigantamax[] = INCBIN_U32("graphics/pokemon/drednaw/gigantamax/back.4bpp.lz"); -const u32 gMonBackPic_CoalossalGigantamax[] = INCBIN_U32("graphics/pokemon/coalossal/gigantamax/back.4bpp.lz"); -const u32 gMonBackPic_FlappleGigantamax[] = INCBIN_U32("graphics/pokemon/flapple/gigantamax/back.4bpp.lz"); -const u32 gMonBackPic_AppletunGigantamax[] = INCBIN_U32("graphics/pokemon/appletun/gigantamax/back.4bpp.lz"); -const u32 gMonBackPic_SandacondaGigantamax[] = INCBIN_U32("graphics/pokemon/sandaconda/gigantamax/back.4bpp.lz"); -const u32 gMonBackPic_ToxtricityGigantamax[] = INCBIN_U32("graphics/pokemon/toxtricity/gigantamax/back.4bpp.lz"); -const u32 gMonBackPic_CentiskorchGigantamax[] = INCBIN_U32("graphics/pokemon/centiskorch/gigantamax/back.4bpp.lz"); -const u32 gMonBackPic_HattereneGigantamax[] = INCBIN_U32("graphics/pokemon/hatterene/gigantamax/back.4bpp.lz"); -const u32 gMonBackPic_GrimmsnarlGigantamax[] = INCBIN_U32("graphics/pokemon/grimmsnarl/gigantamax/back.4bpp.lz"); -const u32 gMonBackPic_AlcremieGigantamax[] = INCBIN_U32("graphics/pokemon/alcremie/gigantamax/back.4bpp.lz"); -const u32 gMonBackPic_CopperajahGigantamax[] = INCBIN_U32("graphics/pokemon/copperajah/gigantamax/back.4bpp.lz"); -const u32 gMonBackPic_DuraludonGigantamax[] = INCBIN_U32("graphics/pokemon/duraludon/gigantamax/back.4bpp.lz"); -const u32 gMonBackPic_UrshifuSingleStrikeGigantamax[] = INCBIN_U32("graphics/pokemon/urshifu/single_strike_style_gigantamax/back.4bpp.lz"); -const u32 gMonBackPic_UrshifuRapidStrikeGigantamax[] = INCBIN_U32("graphics/pokemon/urshifu/rapid_strike_style_gigantamax/back.4bpp.lz"); -#endif - const u32 gMonPalette_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/question_mark/circled/normal.gbapal.lz"); -const u32 gMonPalette_DoubleQuestionMark[] = INCBIN_U32("graphics/pokemon/question_mark/double/normal.gbapal.lz"); -const u32 gMonPalette_Bulbasaur[] = INCBIN_U32("graphics/pokemon/bulbasaur/normal.gbapal.lz"); -const u32 gMonPalette_Ivysaur[] = INCBIN_U32("graphics/pokemon/ivysaur/normal.gbapal.lz"); -const u32 gMonPalette_Venusaur[] = INCBIN_U32("graphics/pokemon/venusaur/normal.gbapal.lz"); -const u32 gMonPalette_Charmander[] = INCBIN_U32("graphics/pokemon/charmander/normal.gbapal.lz"); -const u32 gMonPalette_Charmeleon[] = INCBIN_U32("graphics/pokemon/charmeleon/normal.gbapal.lz"); -const u32 gMonPalette_Charizard[] = INCBIN_U32("graphics/pokemon/charizard/normal.gbapal.lz"); -const u32 gMonPalette_Squirtle[] = INCBIN_U32("graphics/pokemon/squirtle/normal.gbapal.lz"); -const u32 gMonPalette_Wartortle[] = INCBIN_U32("graphics/pokemon/wartortle/normal.gbapal.lz"); -const u32 gMonPalette_Blastoise[] = INCBIN_U32("graphics/pokemon/blastoise/normal.gbapal.lz"); -const u32 gMonPalette_Caterpie[] = INCBIN_U32("graphics/pokemon/caterpie/normal.gbapal.lz"); -const u32 gMonPalette_Metapod[] = INCBIN_U32("graphics/pokemon/metapod/normal.gbapal.lz"); -const u32 gMonPalette_Butterfree[] = INCBIN_U32("graphics/pokemon/butterfree/normal.gbapal.lz"); -const u32 gMonPalette_Weedle[] = INCBIN_U32("graphics/pokemon/weedle/normal.gbapal.lz"); -const u32 gMonPalette_Kakuna[] = INCBIN_U32("graphics/pokemon/kakuna/normal.gbapal.lz"); -const u32 gMonPalette_Beedrill[] = INCBIN_U32("graphics/pokemon/beedrill/normal.gbapal.lz"); -const u32 gMonPalette_Pidgey[] = INCBIN_U32("graphics/pokemon/pidgey/normal.gbapal.lz"); -const u32 gMonPalette_Pidgeotto[] = INCBIN_U32("graphics/pokemon/pidgeotto/normal.gbapal.lz"); -const u32 gMonPalette_Pidgeot[] = INCBIN_U32("graphics/pokemon/pidgeot/normal.gbapal.lz"); -const u32 gMonPalette_Rattata[] = INCBIN_U32("graphics/pokemon/rattata/normal.gbapal.lz"); -const u32 gMonPalette_Raticate[] = INCBIN_U32("graphics/pokemon/raticate/normal.gbapal.lz"); -const u32 gMonPalette_Spearow[] = INCBIN_U32("graphics/pokemon/spearow/normal.gbapal.lz"); -const u32 gMonPalette_Fearow[] = INCBIN_U32("graphics/pokemon/fearow/normal.gbapal.lz"); -const u32 gMonPalette_Ekans[] = INCBIN_U32("graphics/pokemon/ekans/normal.gbapal.lz"); -const u32 gMonPalette_Arbok[] = INCBIN_U32("graphics/pokemon/arbok/normal.gbapal.lz"); -const u32 gMonPalette_Pikachu[] = INCBIN_U32("graphics/pokemon/pikachu/normal.gbapal.lz"); -const u32 gMonPalette_Raichu[] = INCBIN_U32("graphics/pokemon/raichu/normal.gbapal.lz"); -const u32 gMonPalette_Sandshrew[] = INCBIN_U32("graphics/pokemon/sandshrew/normal.gbapal.lz"); -const u32 gMonPalette_Sandslash[] = INCBIN_U32("graphics/pokemon/sandslash/normal.gbapal.lz"); -const u32 gMonPalette_NidoranF[] = INCBIN_U32("graphics/pokemon/nidoran_f/normal.gbapal.lz"); -const u32 gMonPalette_Nidorina[] = INCBIN_U32("graphics/pokemon/nidorina/normal.gbapal.lz"); -const u32 gMonPalette_Nidoqueen[] = INCBIN_U32("graphics/pokemon/nidoqueen/normal.gbapal.lz"); -const u32 gMonPalette_NidoranM[] = INCBIN_U32("graphics/pokemon/nidoran_m/normal.gbapal.lz"); -const u32 gMonPalette_Nidorino[] = INCBIN_U32("graphics/pokemon/nidorino/normal.gbapal.lz"); -const u32 gMonPalette_Nidoking[] = INCBIN_U32("graphics/pokemon/nidoking/normal.gbapal.lz"); -const u32 gMonPalette_Clefairy[] = INCBIN_U32("graphics/pokemon/clefairy/normal.gbapal.lz"); -const u32 gMonPalette_Clefable[] = INCBIN_U32("graphics/pokemon/clefable/normal.gbapal.lz"); -const u32 gMonPalette_Vulpix[] = INCBIN_U32("graphics/pokemon/vulpix/normal.gbapal.lz"); -const u32 gMonPalette_Ninetales[] = INCBIN_U32("graphics/pokemon/ninetales/normal.gbapal.lz"); -const u32 gMonPalette_Jigglypuff[] = INCBIN_U32("graphics/pokemon/jigglypuff/normal.gbapal.lz"); -const u32 gMonPalette_Wigglytuff[] = INCBIN_U32("graphics/pokemon/wigglytuff/normal.gbapal.lz"); -const u32 gMonPalette_Zubat[] = INCBIN_U32("graphics/pokemon/zubat/normal.gbapal.lz"); -const u32 gMonPalette_Golbat[] = INCBIN_U32("graphics/pokemon/golbat/normal.gbapal.lz"); -const u32 gMonPalette_Oddish[] = INCBIN_U32("graphics/pokemon/oddish/normal.gbapal.lz"); -const u32 gMonPalette_Gloom[] = INCBIN_U32("graphics/pokemon/gloom/normal.gbapal.lz"); -const u32 gMonPalette_Vileplume[] = INCBIN_U32("graphics/pokemon/vileplume/normal.gbapal.lz"); -const u32 gMonPalette_Paras[] = INCBIN_U32("graphics/pokemon/paras/normal.gbapal.lz"); -const u32 gMonPalette_Parasect[] = INCBIN_U32("graphics/pokemon/parasect/normal.gbapal.lz"); -const u32 gMonPalette_Venonat[] = INCBIN_U32("graphics/pokemon/venonat/normal.gbapal.lz"); -const u32 gMonPalette_Venomoth[] = INCBIN_U32("graphics/pokemon/venomoth/normal.gbapal.lz"); -const u32 gMonPalette_Diglett[] = INCBIN_U32("graphics/pokemon/diglett/normal.gbapal.lz"); -const u32 gMonPalette_Dugtrio[] = INCBIN_U32("graphics/pokemon/dugtrio/normal.gbapal.lz"); -const u32 gMonPalette_Meowth[] = INCBIN_U32("graphics/pokemon/meowth/normal.gbapal.lz"); -const u32 gMonPalette_Persian[] = INCBIN_U32("graphics/pokemon/persian/normal.gbapal.lz"); -const u32 gMonPalette_Psyduck[] = INCBIN_U32("graphics/pokemon/psyduck/normal.gbapal.lz"); -const u32 gMonPalette_Golduck[] = INCBIN_U32("graphics/pokemon/golduck/normal.gbapal.lz"); -const u32 gMonPalette_Mankey[] = INCBIN_U32("graphics/pokemon/mankey/normal.gbapal.lz"); -const u32 gMonPalette_Primeape[] = INCBIN_U32("graphics/pokemon/primeape/normal.gbapal.lz"); -const u32 gMonPalette_Growlithe[] = INCBIN_U32("graphics/pokemon/growlithe/normal.gbapal.lz"); -const u32 gMonPalette_Arcanine[] = INCBIN_U32("graphics/pokemon/arcanine/normal.gbapal.lz"); -const u32 gMonPalette_Poliwag[] = INCBIN_U32("graphics/pokemon/poliwag/normal.gbapal.lz"); -const u32 gMonPalette_Poliwhirl[] = INCBIN_U32("graphics/pokemon/poliwhirl/normal.gbapal.lz"); -const u32 gMonPalette_Poliwrath[] = INCBIN_U32("graphics/pokemon/poliwrath/normal.gbapal.lz"); -const u32 gMonPalette_Abra[] = INCBIN_U32("graphics/pokemon/abra/normal.gbapal.lz"); -const u32 gMonPalette_Kadabra[] = INCBIN_U32("graphics/pokemon/kadabra/normal.gbapal.lz"); -const u32 gMonPalette_Alakazam[] = INCBIN_U32("graphics/pokemon/alakazam/normal.gbapal.lz"); -const u32 gMonPalette_Machop[] = INCBIN_U32("graphics/pokemon/machop/normal.gbapal.lz"); -const u32 gMonPalette_Machoke[] = INCBIN_U32("graphics/pokemon/machoke/normal.gbapal.lz"); -const u32 gMonPalette_Machamp[] = INCBIN_U32("graphics/pokemon/machamp/normal.gbapal.lz"); -const u32 gMonPalette_Bellsprout[] = INCBIN_U32("graphics/pokemon/bellsprout/normal.gbapal.lz"); -const u32 gMonPalette_Weepinbell[] = INCBIN_U32("graphics/pokemon/weepinbell/normal.gbapal.lz"); -const u32 gMonPalette_Victreebel[] = INCBIN_U32("graphics/pokemon/victreebel/normal.gbapal.lz"); -const u32 gMonPalette_Tentacool[] = INCBIN_U32("graphics/pokemon/tentacool/normal.gbapal.lz"); -const u32 gMonPalette_Tentacruel[] = INCBIN_U32("graphics/pokemon/tentacruel/normal.gbapal.lz"); -const u32 gMonPalette_Geodude[] = INCBIN_U32("graphics/pokemon/geodude/normal.gbapal.lz"); -const u32 gMonPalette_Graveler[] = INCBIN_U32("graphics/pokemon/graveler/normal.gbapal.lz"); -const u32 gMonPalette_Golem[] = INCBIN_U32("graphics/pokemon/golem/normal.gbapal.lz"); -const u32 gMonPalette_Ponyta[] = INCBIN_U32("graphics/pokemon/ponyta/normal.gbapal.lz"); -const u32 gMonPalette_Rapidash[] = INCBIN_U32("graphics/pokemon/rapidash/normal.gbapal.lz"); -const u32 gMonPalette_Slowpoke[] = INCBIN_U32("graphics/pokemon/slowpoke/normal.gbapal.lz"); -const u32 gMonPalette_Slowbro[] = INCBIN_U32("graphics/pokemon/slowbro/normal.gbapal.lz"); -const u32 gMonPalette_Magnemite[] = INCBIN_U32("graphics/pokemon/magnemite/normal.gbapal.lz"); -const u32 gMonPalette_Magneton[] = INCBIN_U32("graphics/pokemon/magneton/normal.gbapal.lz"); -const u32 gMonPalette_Farfetchd[] = INCBIN_U32("graphics/pokemon/farfetchd/normal.gbapal.lz"); -const u32 gMonPalette_Doduo[] = INCBIN_U32("graphics/pokemon/doduo/normal.gbapal.lz"); -const u32 gMonPalette_Dodrio[] = INCBIN_U32("graphics/pokemon/dodrio/normal.gbapal.lz"); -const u32 gMonPalette_Seel[] = INCBIN_U32("graphics/pokemon/seel/normal.gbapal.lz"); -const u32 gMonPalette_Dewgong[] = INCBIN_U32("graphics/pokemon/dewgong/normal.gbapal.lz"); -const u32 gMonPalette_Grimer[] = INCBIN_U32("graphics/pokemon/grimer/normal.gbapal.lz"); -const u32 gMonPalette_Muk[] = INCBIN_U32("graphics/pokemon/muk/normal.gbapal.lz"); -const u32 gMonPalette_Shellder[] = INCBIN_U32("graphics/pokemon/shellder/normal.gbapal.lz"); -const u32 gMonPalette_Cloyster[] = INCBIN_U32("graphics/pokemon/cloyster/normal.gbapal.lz"); -const u32 gMonPalette_Gastly[] = INCBIN_U32("graphics/pokemon/gastly/normal.gbapal.lz"); -const u32 gMonPalette_Haunter[] = INCBIN_U32("graphics/pokemon/haunter/normal.gbapal.lz"); -const u32 gMonPalette_Gengar[] = INCBIN_U32("graphics/pokemon/gengar/normal.gbapal.lz"); -const u32 gMonPalette_Onix[] = INCBIN_U32("graphics/pokemon/onix/normal.gbapal.lz"); -const u32 gMonPalette_Drowzee[] = INCBIN_U32("graphics/pokemon/drowzee/normal.gbapal.lz"); -const u32 gMonPalette_Hypno[] = INCBIN_U32("graphics/pokemon/hypno/normal.gbapal.lz"); -const u32 gMonPalette_Krabby[] = INCBIN_U32("graphics/pokemon/krabby/normal.gbapal.lz"); -const u32 gMonPalette_Kingler[] = INCBIN_U32("graphics/pokemon/kingler/normal.gbapal.lz"); -const u32 gMonPalette_Voltorb[] = INCBIN_U32("graphics/pokemon/voltorb/normal.gbapal.lz"); -const u32 gMonPalette_Electrode[] = INCBIN_U32("graphics/pokemon/electrode/normal.gbapal.lz"); -const u32 gMonPalette_Exeggcute[] = INCBIN_U32("graphics/pokemon/exeggcute/normal.gbapal.lz"); -const u32 gMonPalette_Exeggutor[] = INCBIN_U32("graphics/pokemon/exeggutor/normal.gbapal.lz"); -const u32 gMonPalette_Cubone[] = INCBIN_U32("graphics/pokemon/cubone/normal.gbapal.lz"); -const u32 gMonPalette_Marowak[] = INCBIN_U32("graphics/pokemon/marowak/normal.gbapal.lz"); -const u32 gMonPalette_Hitmonlee[] = INCBIN_U32("graphics/pokemon/hitmonlee/normal.gbapal.lz"); -const u32 gMonPalette_Hitmonchan[] = INCBIN_U32("graphics/pokemon/hitmonchan/normal.gbapal.lz"); -const u32 gMonPalette_Lickitung[] = INCBIN_U32("graphics/pokemon/lickitung/normal.gbapal.lz"); -const u32 gMonPalette_Koffing[] = INCBIN_U32("graphics/pokemon/koffing/normal.gbapal.lz"); -const u32 gMonPalette_Weezing[] = INCBIN_U32("graphics/pokemon/weezing/normal.gbapal.lz"); -const u32 gMonPalette_Rhyhorn[] = INCBIN_U32("graphics/pokemon/rhyhorn/normal.gbapal.lz"); -const u32 gMonPalette_Rhydon[] = INCBIN_U32("graphics/pokemon/rhydon/normal.gbapal.lz"); -const u32 gMonPalette_Chansey[] = INCBIN_U32("graphics/pokemon/chansey/normal.gbapal.lz"); -const u32 gMonPalette_Tangela[] = INCBIN_U32("graphics/pokemon/tangela/normal.gbapal.lz"); -const u32 gMonPalette_Kangaskhan[] = INCBIN_U32("graphics/pokemon/kangaskhan/normal.gbapal.lz"); -const u32 gMonPalette_Horsea[] = INCBIN_U32("graphics/pokemon/horsea/normal.gbapal.lz"); -const u32 gMonPalette_Seadra[] = INCBIN_U32("graphics/pokemon/seadra/normal.gbapal.lz"); -const u32 gMonPalette_Goldeen[] = INCBIN_U32("graphics/pokemon/goldeen/normal.gbapal.lz"); -const u32 gMonPalette_Seaking[] = INCBIN_U32("graphics/pokemon/seaking/normal.gbapal.lz"); -const u32 gMonPalette_Staryu[] = INCBIN_U32("graphics/pokemon/staryu/normal.gbapal.lz"); -const u32 gMonPalette_Starmie[] = INCBIN_U32("graphics/pokemon/starmie/normal.gbapal.lz"); -const u32 gMonPalette_MrMime[] = INCBIN_U32("graphics/pokemon/mr_mime/normal.gbapal.lz"); -const u32 gMonPalette_Scyther[] = INCBIN_U32("graphics/pokemon/scyther/normal.gbapal.lz"); -const u32 gMonPalette_Jynx[] = INCBIN_U32("graphics/pokemon/jynx/normal.gbapal.lz"); -const u32 gMonPalette_Electabuzz[] = INCBIN_U32("graphics/pokemon/electabuzz/normal.gbapal.lz"); -const u32 gMonPalette_Magmar[] = INCBIN_U32("graphics/pokemon/magmar/normal.gbapal.lz"); -const u32 gMonPalette_Pinsir[] = INCBIN_U32("graphics/pokemon/pinsir/normal.gbapal.lz"); -const u32 gMonPalette_Tauros[] = INCBIN_U32("graphics/pokemon/tauros/normal.gbapal.lz"); -const u32 gMonPalette_Magikarp[] = INCBIN_U32("graphics/pokemon/magikarp/normal.gbapal.lz"); -const u32 gMonPalette_Gyarados[] = INCBIN_U32("graphics/pokemon/gyarados/normal.gbapal.lz"); -const u32 gMonPalette_Lapras[] = INCBIN_U32("graphics/pokemon/lapras/normal.gbapal.lz"); -const u32 gMonPalette_Ditto[] = INCBIN_U32("graphics/pokemon/ditto/normal.gbapal.lz"); -const u32 gMonPalette_Eevee[] = INCBIN_U32("graphics/pokemon/eevee/normal.gbapal.lz"); -const u32 gMonPalette_Vaporeon[] = INCBIN_U32("graphics/pokemon/vaporeon/normal.gbapal.lz"); -const u32 gMonPalette_Jolteon[] = INCBIN_U32("graphics/pokemon/jolteon/normal.gbapal.lz"); -const u32 gMonPalette_Flareon[] = INCBIN_U32("graphics/pokemon/flareon/normal.gbapal.lz"); -const u32 gMonPalette_Porygon[] = INCBIN_U32("graphics/pokemon/porygon/normal.gbapal.lz"); -const u32 gMonPalette_Omanyte[] = INCBIN_U32("graphics/pokemon/omanyte/normal.gbapal.lz"); -const u32 gMonPalette_Omastar[] = INCBIN_U32("graphics/pokemon/omastar/normal.gbapal.lz"); -const u32 gMonPalette_Kabuto[] = INCBIN_U32("graphics/pokemon/kabuto/normal.gbapal.lz"); -const u32 gMonPalette_Kabutops[] = INCBIN_U32("graphics/pokemon/kabutops/normal.gbapal.lz"); -const u32 gMonPalette_Aerodactyl[] = INCBIN_U32("graphics/pokemon/aerodactyl/normal.gbapal.lz"); -const u32 gMonPalette_Snorlax[] = INCBIN_U32("graphics/pokemon/snorlax/normal.gbapal.lz"); -const u32 gMonPalette_Articuno[] = INCBIN_U32("graphics/pokemon/articuno/normal.gbapal.lz"); -const u32 gMonPalette_Zapdos[] = INCBIN_U32("graphics/pokemon/zapdos/normal.gbapal.lz"); -const u32 gMonPalette_Moltres[] = INCBIN_U32("graphics/pokemon/moltres/normal.gbapal.lz"); -const u32 gMonPalette_Dratini[] = INCBIN_U32("graphics/pokemon/dratini/normal.gbapal.lz"); -const u32 gMonPalette_Dragonair[] = INCBIN_U32("graphics/pokemon/dragonair/normal.gbapal.lz"); -const u32 gMonPalette_Dragonite[] = INCBIN_U32("graphics/pokemon/dragonite/normal.gbapal.lz"); -const u32 gMonPalette_Mewtwo[] = INCBIN_U32("graphics/pokemon/mewtwo/normal.gbapal.lz"); -const u32 gMonPalette_Mew[] = INCBIN_U32("graphics/pokemon/mew/normal.gbapal.lz"); -const u32 gMonPalette_Chikorita[] = INCBIN_U32("graphics/pokemon/chikorita/normal.gbapal.lz"); -const u32 gMonPalette_Bayleef[] = INCBIN_U32("graphics/pokemon/bayleef/normal.gbapal.lz"); -const u32 gMonPalette_Meganium[] = INCBIN_U32("graphics/pokemon/meganium/normal.gbapal.lz"); -const u32 gMonPalette_Cyndaquil[] = INCBIN_U32("graphics/pokemon/cyndaquil/normal.gbapal.lz"); -const u32 gMonPalette_Quilava[] = INCBIN_U32("graphics/pokemon/quilava/normal.gbapal.lz"); -const u32 gMonPalette_Typhlosion[] = INCBIN_U32("graphics/pokemon/typhlosion/normal.gbapal.lz"); -const u32 gMonPalette_Totodile[] = INCBIN_U32("graphics/pokemon/totodile/normal.gbapal.lz"); -const u32 gMonPalette_Croconaw[] = INCBIN_U32("graphics/pokemon/croconaw/normal.gbapal.lz"); -const u32 gMonPalette_Feraligatr[] = INCBIN_U32("graphics/pokemon/feraligatr/normal.gbapal.lz"); -const u32 gMonPalette_Sentret[] = INCBIN_U32("graphics/pokemon/sentret/normal.gbapal.lz"); -const u32 gMonPalette_Furret[] = INCBIN_U32("graphics/pokemon/furret/normal.gbapal.lz"); -const u32 gMonPalette_Hoothoot[] = INCBIN_U32("graphics/pokemon/hoothoot/normal.gbapal.lz"); -const u32 gMonPalette_Noctowl[] = INCBIN_U32("graphics/pokemon/noctowl/normal.gbapal.lz"); -const u32 gMonPalette_Ledyba[] = INCBIN_U32("graphics/pokemon/ledyba/normal.gbapal.lz"); -const u32 gMonPalette_Ledian[] = INCBIN_U32("graphics/pokemon/ledian/normal.gbapal.lz"); -const u32 gMonPalette_Spinarak[] = INCBIN_U32("graphics/pokemon/spinarak/normal.gbapal.lz"); -const u32 gMonPalette_Ariados[] = INCBIN_U32("graphics/pokemon/ariados/normal.gbapal.lz"); -const u32 gMonPalette_Crobat[] = INCBIN_U32("graphics/pokemon/crobat/normal.gbapal.lz"); -const u32 gMonPalette_Chinchou[] = INCBIN_U32("graphics/pokemon/chinchou/normal.gbapal.lz"); -const u32 gMonPalette_Lanturn[] = INCBIN_U32("graphics/pokemon/lanturn/normal.gbapal.lz"); -const u32 gMonPalette_Pichu[] = INCBIN_U32("graphics/pokemon/pichu/normal.gbapal.lz"); -const u32 gMonPalette_Cleffa[] = INCBIN_U32("graphics/pokemon/cleffa/normal.gbapal.lz"); -const u32 gMonPalette_Igglybuff[] = INCBIN_U32("graphics/pokemon/igglybuff/normal.gbapal.lz"); -const u32 gMonPalette_Togepi[] = INCBIN_U32("graphics/pokemon/togepi/normal.gbapal.lz"); -const u32 gMonPalette_Togetic[] = INCBIN_U32("graphics/pokemon/togetic/normal.gbapal.lz"); -const u32 gMonPalette_Natu[] = INCBIN_U32("graphics/pokemon/natu/normal.gbapal.lz"); -const u32 gMonPalette_Xatu[] = INCBIN_U32("graphics/pokemon/xatu/normal.gbapal.lz"); -const u32 gMonPalette_Mareep[] = INCBIN_U32("graphics/pokemon/mareep/normal.gbapal.lz"); -const u32 gMonPalette_Flaaffy[] = INCBIN_U32("graphics/pokemon/flaaffy/normal.gbapal.lz"); -const u32 gMonPalette_Ampharos[] = INCBIN_U32("graphics/pokemon/ampharos/normal.gbapal.lz"); -const u32 gMonPalette_Bellossom[] = INCBIN_U32("graphics/pokemon/bellossom/normal.gbapal.lz"); -const u32 gMonPalette_Marill[] = INCBIN_U32("graphics/pokemon/marill/normal.gbapal.lz"); -const u32 gMonPalette_Azumarill[] = INCBIN_U32("graphics/pokemon/azumarill/normal.gbapal.lz"); -const u32 gMonPalette_Sudowoodo[] = INCBIN_U32("graphics/pokemon/sudowoodo/normal.gbapal.lz"); -const u32 gMonPalette_Politoed[] = INCBIN_U32("graphics/pokemon/politoed/normal.gbapal.lz"); -const u32 gMonPalette_Hoppip[] = INCBIN_U32("graphics/pokemon/hoppip/normal.gbapal.lz"); -const u32 gMonPalette_Skiploom[] = INCBIN_U32("graphics/pokemon/skiploom/normal.gbapal.lz"); -const u32 gMonPalette_Jumpluff[] = INCBIN_U32("graphics/pokemon/jumpluff/normal.gbapal.lz"); -const u32 gMonPalette_Aipom[] = INCBIN_U32("graphics/pokemon/aipom/normal.gbapal.lz"); -const u32 gMonPalette_Sunkern[] = INCBIN_U32("graphics/pokemon/sunkern/normal.gbapal.lz"); -const u32 gMonPalette_Sunflora[] = INCBIN_U32("graphics/pokemon/sunflora/normal.gbapal.lz"); -const u32 gMonPalette_Yanma[] = INCBIN_U32("graphics/pokemon/yanma/normal.gbapal.lz"); -const u32 gMonPalette_Wooper[] = INCBIN_U32("graphics/pokemon/wooper/normal.gbapal.lz"); -const u32 gMonPalette_Quagsire[] = INCBIN_U32("graphics/pokemon/quagsire/normal.gbapal.lz"); -const u32 gMonPalette_Espeon[] = INCBIN_U32("graphics/pokemon/espeon/normal.gbapal.lz"); -const u32 gMonPalette_Umbreon[] = INCBIN_U32("graphics/pokemon/umbreon/normal.gbapal.lz"); -const u32 gMonPalette_Murkrow[] = INCBIN_U32("graphics/pokemon/murkrow/normal.gbapal.lz"); -const u32 gMonPalette_Slowking[] = INCBIN_U32("graphics/pokemon/slowking/normal.gbapal.lz"); -const u32 gMonPalette_Misdreavus[] = INCBIN_U32("graphics/pokemon/misdreavus/normal.gbapal.lz"); -const u32 gMonPalette_Unown[] = INCBIN_U32("graphics/pokemon/unown/normal.gbapal.lz"); -const u32 gMonPalette_Wobbuffet[] = INCBIN_U32("graphics/pokemon/wobbuffet/normal.gbapal.lz"); -const u32 gMonPalette_Girafarig[] = INCBIN_U32("graphics/pokemon/girafarig/normal.gbapal.lz"); -const u32 gMonPalette_Pineco[] = INCBIN_U32("graphics/pokemon/pineco/normal.gbapal.lz"); -const u32 gMonPalette_Forretress[] = INCBIN_U32("graphics/pokemon/forretress/normal.gbapal.lz"); -const u32 gMonPalette_Dunsparce[] = INCBIN_U32("graphics/pokemon/dunsparce/normal.gbapal.lz"); -const u32 gMonPalette_Gligar[] = INCBIN_U32("graphics/pokemon/gligar/normal.gbapal.lz"); -const u32 gMonPalette_Steelix[] = INCBIN_U32("graphics/pokemon/steelix/normal.gbapal.lz"); -const u32 gMonPalette_Snubbull[] = INCBIN_U32("graphics/pokemon/snubbull/normal.gbapal.lz"); -const u32 gMonPalette_Granbull[] = INCBIN_U32("graphics/pokemon/granbull/normal.gbapal.lz"); -const u32 gMonPalette_Qwilfish[] = INCBIN_U32("graphics/pokemon/qwilfish/normal.gbapal.lz"); -const u32 gMonPalette_Scizor[] = INCBIN_U32("graphics/pokemon/scizor/normal.gbapal.lz"); -const u32 gMonPalette_Shuckle[] = INCBIN_U32("graphics/pokemon/shuckle/normal.gbapal.lz"); -const u32 gMonPalette_Heracross[] = INCBIN_U32("graphics/pokemon/heracross/normal.gbapal.lz"); -const u32 gMonPalette_Sneasel[] = INCBIN_U32("graphics/pokemon/sneasel/normal.gbapal.lz"); -const u32 gMonPalette_Teddiursa[] = INCBIN_U32("graphics/pokemon/teddiursa/normal.gbapal.lz"); -const u32 gMonPalette_Ursaring[] = INCBIN_U32("graphics/pokemon/ursaring/normal.gbapal.lz"); -const u32 gMonPalette_Slugma[] = INCBIN_U32("graphics/pokemon/slugma/normal.gbapal.lz"); -const u32 gMonPalette_Magcargo[] = INCBIN_U32("graphics/pokemon/magcargo/normal.gbapal.lz"); -const u32 gMonPalette_Swinub[] = INCBIN_U32("graphics/pokemon/swinub/normal.gbapal.lz"); -const u32 gMonPalette_Piloswine[] = INCBIN_U32("graphics/pokemon/piloswine/normal.gbapal.lz"); -const u32 gMonPalette_Corsola[] = INCBIN_U32("graphics/pokemon/corsola/normal.gbapal.lz"); -const u32 gMonPalette_Remoraid[] = INCBIN_U32("graphics/pokemon/remoraid/normal.gbapal.lz"); -const u32 gMonPalette_Octillery[] = INCBIN_U32("graphics/pokemon/octillery/normal.gbapal.lz"); -const u32 gMonPalette_Delibird[] = INCBIN_U32("graphics/pokemon/delibird/normal.gbapal.lz"); -const u32 gMonPalette_Mantine[] = INCBIN_U32("graphics/pokemon/mantine/normal.gbapal.lz"); -const u32 gMonPalette_Skarmory[] = INCBIN_U32("graphics/pokemon/skarmory/normal.gbapal.lz"); -const u32 gMonPalette_Houndour[] = INCBIN_U32("graphics/pokemon/houndour/normal.gbapal.lz"); -const u32 gMonPalette_Houndoom[] = INCBIN_U32("graphics/pokemon/houndoom/normal.gbapal.lz"); -const u32 gMonPalette_Kingdra[] = INCBIN_U32("graphics/pokemon/kingdra/normal.gbapal.lz"); -const u32 gMonPalette_Phanpy[] = INCBIN_U32("graphics/pokemon/phanpy/normal.gbapal.lz"); -const u32 gMonPalette_Donphan[] = INCBIN_U32("graphics/pokemon/donphan/normal.gbapal.lz"); -const u32 gMonPalette_Porygon2[] = INCBIN_U32("graphics/pokemon/porygon2/normal.gbapal.lz"); -const u32 gMonPalette_Stantler[] = INCBIN_U32("graphics/pokemon/stantler/normal.gbapal.lz"); -const u32 gMonPalette_Smeargle[] = INCBIN_U32("graphics/pokemon/smeargle/normal.gbapal.lz"); -const u32 gMonPalette_Tyrogue[] = INCBIN_U32("graphics/pokemon/tyrogue/normal.gbapal.lz"); -const u32 gMonPalette_Hitmontop[] = INCBIN_U32("graphics/pokemon/hitmontop/normal.gbapal.lz"); -const u32 gMonPalette_Smoochum[] = INCBIN_U32("graphics/pokemon/smoochum/normal.gbapal.lz"); -const u32 gMonPalette_Elekid[] = INCBIN_U32("graphics/pokemon/elekid/normal.gbapal.lz"); -const u32 gMonPalette_Magby[] = INCBIN_U32("graphics/pokemon/magby/normal.gbapal.lz"); -const u32 gMonPalette_Miltank[] = INCBIN_U32("graphics/pokemon/miltank/normal.gbapal.lz"); -const u32 gMonPalette_Blissey[] = INCBIN_U32("graphics/pokemon/blissey/normal.gbapal.lz"); -const u32 gMonPalette_Raikou[] = INCBIN_U32("graphics/pokemon/raikou/normal.gbapal.lz"); -const u32 gMonPalette_Entei[] = INCBIN_U32("graphics/pokemon/entei/normal.gbapal.lz"); -const u32 gMonPalette_Suicune[] = INCBIN_U32("graphics/pokemon/suicune/normal.gbapal.lz"); -const u32 gMonPalette_Larvitar[] = INCBIN_U32("graphics/pokemon/larvitar/normal.gbapal.lz"); -const u32 gMonPalette_Pupitar[] = INCBIN_U32("graphics/pokemon/pupitar/normal.gbapal.lz"); -const u32 gMonPalette_Tyranitar[] = INCBIN_U32("graphics/pokemon/tyranitar/normal.gbapal.lz"); -const u32 gMonPalette_Lugia[] = INCBIN_U32("graphics/pokemon/lugia/normal.gbapal.lz"); -const u32 gMonPalette_HoOh[] = INCBIN_U32("graphics/pokemon/ho_oh/normal.gbapal.lz"); -const u32 gMonPalette_Celebi[] = INCBIN_U32("graphics/pokemon/celebi/normal.gbapal.lz"); -const u32 gMonPalette_Treecko[] = INCBIN_U32("graphics/pokemon/treecko/normal.gbapal.lz"); -const u32 gMonPalette_Grovyle[] = INCBIN_U32("graphics/pokemon/grovyle/normal.gbapal.lz"); -const u32 gMonPalette_Sceptile[] = INCBIN_U32("graphics/pokemon/sceptile/normal.gbapal.lz"); -const u32 gMonPalette_Torchic[] = INCBIN_U32("graphics/pokemon/torchic/normal.gbapal.lz"); -const u32 gMonPalette_Combusken[] = INCBIN_U32("graphics/pokemon/combusken/normal.gbapal.lz"); -const u32 gMonPalette_Blaziken[] = INCBIN_U32("graphics/pokemon/blaziken/normal.gbapal.lz"); -const u32 gMonPalette_Mudkip[] = INCBIN_U32("graphics/pokemon/mudkip/normal.gbapal.lz"); -const u32 gMonPalette_Marshtomp[] = INCBIN_U32("graphics/pokemon/marshtomp/normal.gbapal.lz"); -const u32 gMonPalette_Swampert[] = INCBIN_U32("graphics/pokemon/swampert/normal.gbapal.lz"); -const u32 gMonPalette_Poochyena[] = INCBIN_U32("graphics/pokemon/poochyena/normal.gbapal.lz"); -const u32 gMonPalette_Mightyena[] = INCBIN_U32("graphics/pokemon/mightyena/normal.gbapal.lz"); -const u32 gMonPalette_Zigzagoon[] = INCBIN_U32("graphics/pokemon/zigzagoon/normal.gbapal.lz"); -const u32 gMonPalette_Linoone[] = INCBIN_U32("graphics/pokemon/linoone/normal.gbapal.lz"); -const u32 gMonPalette_Wurmple[] = INCBIN_U32("graphics/pokemon/wurmple/normal.gbapal.lz"); -const u32 gMonPalette_Silcoon[] = INCBIN_U32("graphics/pokemon/silcoon/normal.gbapal.lz"); -const u32 gMonPalette_Beautifly[] = INCBIN_U32("graphics/pokemon/beautifly/normal.gbapal.lz"); -const u32 gMonPalette_Cascoon[] = INCBIN_U32("graphics/pokemon/cascoon/normal.gbapal.lz"); -const u32 gMonPalette_Dustox[] = INCBIN_U32("graphics/pokemon/dustox/normal.gbapal.lz"); -const u32 gMonPalette_Lotad[] = INCBIN_U32("graphics/pokemon/lotad/normal.gbapal.lz"); -const u32 gMonPalette_Lombre[] = INCBIN_U32("graphics/pokemon/lombre/normal.gbapal.lz"); -const u32 gMonPalette_Ludicolo[] = INCBIN_U32("graphics/pokemon/ludicolo/normal.gbapal.lz"); -const u32 gMonPalette_Seedot[] = INCBIN_U32("graphics/pokemon/seedot/normal.gbapal.lz"); -const u32 gMonPalette_Nuzleaf[] = INCBIN_U32("graphics/pokemon/nuzleaf/normal.gbapal.lz"); -const u32 gMonPalette_Shiftry[] = INCBIN_U32("graphics/pokemon/shiftry/normal.gbapal.lz"); -const u32 gMonPalette_Taillow[] = INCBIN_U32("graphics/pokemon/taillow/normal.gbapal.lz"); -const u32 gMonPalette_Swellow[] = INCBIN_U32("graphics/pokemon/swellow/normal.gbapal.lz"); -const u32 gMonPalette_Wingull[] = INCBIN_U32("graphics/pokemon/wingull/normal.gbapal.lz"); -const u32 gMonPalette_Pelipper[] = INCBIN_U32("graphics/pokemon/pelipper/normal.gbapal.lz"); -const u32 gMonPalette_Ralts[] = INCBIN_U32("graphics/pokemon/ralts/normal.gbapal.lz"); -const u32 gMonPalette_Kirlia[] = INCBIN_U32("graphics/pokemon/kirlia/normal.gbapal.lz"); -const u32 gMonPalette_Gardevoir[] = INCBIN_U32("graphics/pokemon/gardevoir/normal.gbapal.lz"); -const u32 gMonPalette_Surskit[] = INCBIN_U32("graphics/pokemon/surskit/normal.gbapal.lz"); -const u32 gMonPalette_Masquerain[] = INCBIN_U32("graphics/pokemon/masquerain/normal.gbapal.lz"); -const u32 gMonPalette_Shroomish[] = INCBIN_U32("graphics/pokemon/shroomish/normal.gbapal.lz"); -const u32 gMonPalette_Breloom[] = INCBIN_U32("graphics/pokemon/breloom/normal.gbapal.lz"); -const u32 gMonPalette_Slakoth[] = INCBIN_U32("graphics/pokemon/slakoth/normal.gbapal.lz"); -const u32 gMonPalette_Vigoroth[] = INCBIN_U32("graphics/pokemon/vigoroth/normal.gbapal.lz"); -const u32 gMonPalette_Slaking[] = INCBIN_U32("graphics/pokemon/slaking/normal.gbapal.lz"); -const u32 gMonPalette_Nincada[] = INCBIN_U32("graphics/pokemon/nincada/normal.gbapal.lz"); -const u32 gMonPalette_Ninjask[] = INCBIN_U32("graphics/pokemon/ninjask/normal.gbapal.lz"); -const u32 gMonPalette_Shedinja[] = INCBIN_U32("graphics/pokemon/shedinja/normal.gbapal.lz"); -const u32 gMonPalette_Whismur[] = INCBIN_U32("graphics/pokemon/whismur/normal.gbapal.lz"); -const u32 gMonPalette_Loudred[] = INCBIN_U32("graphics/pokemon/loudred/normal.gbapal.lz"); -const u32 gMonPalette_Exploud[] = INCBIN_U32("graphics/pokemon/exploud/normal.gbapal.lz"); -const u32 gMonPalette_Makuhita[] = INCBIN_U32("graphics/pokemon/makuhita/normal.gbapal.lz"); -const u32 gMonPalette_Hariyama[] = INCBIN_U32("graphics/pokemon/hariyama/normal.gbapal.lz"); -const u32 gMonPalette_Azurill[] = INCBIN_U32("graphics/pokemon/azurill/normal.gbapal.lz"); -const u32 gMonPalette_Nosepass[] = INCBIN_U32("graphics/pokemon/nosepass/normal.gbapal.lz"); -const u32 gMonPalette_Skitty[] = INCBIN_U32("graphics/pokemon/skitty/normal.gbapal.lz"); -const u32 gMonPalette_Delcatty[] = INCBIN_U32("graphics/pokemon/delcatty/normal.gbapal.lz"); -const u32 gMonPalette_Sableye[] = INCBIN_U32("graphics/pokemon/sableye/normal.gbapal.lz"); -const u32 gMonPalette_Mawile[] = INCBIN_U32("graphics/pokemon/mawile/normal.gbapal.lz"); -const u32 gMonPalette_Aron[] = INCBIN_U32("graphics/pokemon/aron/normal.gbapal.lz"); -const u32 gMonPalette_Lairon[] = INCBIN_U32("graphics/pokemon/lairon/normal.gbapal.lz"); -const u32 gMonPalette_Aggron[] = INCBIN_U32("graphics/pokemon/aggron/normal.gbapal.lz"); -const u32 gMonPalette_Meditite[] = INCBIN_U32("graphics/pokemon/meditite/normal.gbapal.lz"); -const u32 gMonPalette_Medicham[] = INCBIN_U32("graphics/pokemon/medicham/normal.gbapal.lz"); -const u32 gMonPalette_Electrike[] = INCBIN_U32("graphics/pokemon/electrike/normal.gbapal.lz"); -const u32 gMonPalette_Manectric[] = INCBIN_U32("graphics/pokemon/manectric/normal.gbapal.lz"); -const u32 gMonPalette_Plusle[] = INCBIN_U32("graphics/pokemon/plusle/normal.gbapal.lz"); -const u32 gMonPalette_Minun[] = INCBIN_U32("graphics/pokemon/minun/normal.gbapal.lz"); -const u32 gMonPalette_Volbeat[] = INCBIN_U32("graphics/pokemon/volbeat/normal.gbapal.lz"); -const u32 gMonPalette_Illumise[] = INCBIN_U32("graphics/pokemon/illumise/normal.gbapal.lz"); -const u32 gMonPalette_Roselia[] = INCBIN_U32("graphics/pokemon/roselia/normal.gbapal.lz"); -const u32 gMonPalette_Gulpin[] = INCBIN_U32("graphics/pokemon/gulpin/normal.gbapal.lz"); -const u32 gMonPalette_Swalot[] = INCBIN_U32("graphics/pokemon/swalot/normal.gbapal.lz"); -const u32 gMonPalette_Carvanha[] = INCBIN_U32("graphics/pokemon/carvanha/normal.gbapal.lz"); -const u32 gMonPalette_Sharpedo[] = INCBIN_U32("graphics/pokemon/sharpedo/normal.gbapal.lz"); -const u32 gMonPalette_Wailmer[] = INCBIN_U32("graphics/pokemon/wailmer/normal.gbapal.lz"); -const u32 gMonPalette_Wailord[] = INCBIN_U32("graphics/pokemon/wailord/normal.gbapal.lz"); -const u32 gMonPalette_Numel[] = INCBIN_U32("graphics/pokemon/numel/normal.gbapal.lz"); -const u32 gMonPalette_Camerupt[] = INCBIN_U32("graphics/pokemon/camerupt/normal.gbapal.lz"); -const u32 gMonPalette_Torkoal[] = INCBIN_U32("graphics/pokemon/torkoal/normal.gbapal.lz"); -const u32 gMonPalette_Spoink[] = INCBIN_U32("graphics/pokemon/spoink/normal.gbapal.lz"); -const u32 gMonPalette_Grumpig[] = INCBIN_U32("graphics/pokemon/grumpig/normal.gbapal.lz"); -const u32 gMonPalette_Spinda[] = INCBIN_U32("graphics/pokemon/spinda/normal.gbapal.lz"); -const u32 gMonPalette_Trapinch[] = INCBIN_U32("graphics/pokemon/trapinch/normal.gbapal.lz"); -const u32 gMonPalette_Vibrava[] = INCBIN_U32("graphics/pokemon/vibrava/normal.gbapal.lz"); -const u32 gMonPalette_Flygon[] = INCBIN_U32("graphics/pokemon/flygon/normal.gbapal.lz"); -const u32 gMonPalette_Cacnea[] = INCBIN_U32("graphics/pokemon/cacnea/normal.gbapal.lz"); -const u32 gMonPalette_Cacturne[] = INCBIN_U32("graphics/pokemon/cacturne/normal.gbapal.lz"); -const u32 gMonPalette_Swablu[] = INCBIN_U32("graphics/pokemon/swablu/normal.gbapal.lz"); -const u32 gMonPalette_Altaria[] = INCBIN_U32("graphics/pokemon/altaria/normal.gbapal.lz"); -const u32 gMonPalette_Zangoose[] = INCBIN_U32("graphics/pokemon/zangoose/normal.gbapal.lz"); -const u32 gMonPalette_Seviper[] = INCBIN_U32("graphics/pokemon/seviper/normal.gbapal.lz"); -const u32 gMonPalette_Lunatone[] = INCBIN_U32("graphics/pokemon/lunatone/normal.gbapal.lz"); -const u32 gMonPalette_Solrock[] = INCBIN_U32("graphics/pokemon/solrock/normal.gbapal.lz"); -const u32 gMonPalette_Barboach[] = INCBIN_U32("graphics/pokemon/barboach/normal.gbapal.lz"); -const u32 gMonPalette_Whiscash[] = INCBIN_U32("graphics/pokemon/whiscash/normal.gbapal.lz"); -const u32 gMonPalette_Corphish[] = INCBIN_U32("graphics/pokemon/corphish/normal.gbapal.lz"); -const u32 gMonPalette_Crawdaunt[] = INCBIN_U32("graphics/pokemon/crawdaunt/normal.gbapal.lz"); -const u32 gMonPalette_Baltoy[] = INCBIN_U32("graphics/pokemon/baltoy/normal.gbapal.lz"); -const u32 gMonPalette_Claydol[] = INCBIN_U32("graphics/pokemon/claydol/normal.gbapal.lz"); -const u32 gMonPalette_Lileep[] = INCBIN_U32("graphics/pokemon/lileep/normal.gbapal.lz"); -const u32 gMonPalette_Cradily[] = INCBIN_U32("graphics/pokemon/cradily/normal.gbapal.lz"); -const u32 gMonPalette_Anorith[] = INCBIN_U32("graphics/pokemon/anorith/normal.gbapal.lz"); -const u32 gMonPalette_Armaldo[] = INCBIN_U32("graphics/pokemon/armaldo/normal.gbapal.lz"); -const u32 gMonPalette_Feebas[] = INCBIN_U32("graphics/pokemon/feebas/normal.gbapal.lz"); -const u32 gMonPalette_Milotic[] = INCBIN_U32("graphics/pokemon/milotic/normal.gbapal.lz"); -const u32 gMonPalette_CastformNormal[] = INCBIN_U32("graphics/pokemon/castform/normal.gbapal.lz"); -const u32 gMonPalette_Kecleon[] = INCBIN_U32("graphics/pokemon/kecleon/normal.gbapal.lz"); -const u32 gMonPalette_Shuppet[] = INCBIN_U32("graphics/pokemon/shuppet/normal.gbapal.lz"); -const u32 gMonPalette_Banette[] = INCBIN_U32("graphics/pokemon/banette/normal.gbapal.lz"); -const u32 gMonPalette_Duskull[] = INCBIN_U32("graphics/pokemon/duskull/normal.gbapal.lz"); -const u32 gMonPalette_Dusclops[] = INCBIN_U32("graphics/pokemon/dusclops/normal.gbapal.lz"); -const u32 gMonPalette_Tropius[] = INCBIN_U32("graphics/pokemon/tropius/normal.gbapal.lz"); -const u32 gMonPalette_Chimecho[] = INCBIN_U32("graphics/pokemon/chimecho/normal.gbapal.lz"); -const u32 gMonPalette_Absol[] = INCBIN_U32("graphics/pokemon/absol/normal.gbapal.lz"); -const u32 gMonPalette_Wynaut[] = INCBIN_U32("graphics/pokemon/wynaut/normal.gbapal.lz"); -const u32 gMonPalette_Snorunt[] = INCBIN_U32("graphics/pokemon/snorunt/normal.gbapal.lz"); -const u32 gMonPalette_Glalie[] = INCBIN_U32("graphics/pokemon/glalie/normal.gbapal.lz"); -const u32 gMonPalette_Spheal[] = INCBIN_U32("graphics/pokemon/spheal/normal.gbapal.lz"); -const u32 gMonPalette_Sealeo[] = INCBIN_U32("graphics/pokemon/sealeo/normal.gbapal.lz"); -const u32 gMonPalette_Walrein[] = INCBIN_U32("graphics/pokemon/walrein/normal.gbapal.lz"); -const u32 gMonPalette_Clamperl[] = INCBIN_U32("graphics/pokemon/clamperl/normal.gbapal.lz"); -const u32 gMonPalette_Huntail[] = INCBIN_U32("graphics/pokemon/huntail/normal.gbapal.lz"); -const u32 gMonPalette_Gorebyss[] = INCBIN_U32("graphics/pokemon/gorebyss/normal.gbapal.lz"); -const u32 gMonPalette_Relicanth[] = INCBIN_U32("graphics/pokemon/relicanth/normal.gbapal.lz"); -const u32 gMonPalette_Luvdisc[] = INCBIN_U32("graphics/pokemon/luvdisc/normal.gbapal.lz"); -const u32 gMonPalette_Bagon[] = INCBIN_U32("graphics/pokemon/bagon/normal.gbapal.lz"); -const u32 gMonPalette_Shelgon[] = INCBIN_U32("graphics/pokemon/shelgon/normal.gbapal.lz"); -const u32 gMonPalette_Salamence[] = INCBIN_U32("graphics/pokemon/salamence/normal.gbapal.lz"); -const u32 gMonPalette_Beldum[] = INCBIN_U32("graphics/pokemon/beldum/normal.gbapal.lz"); -const u32 gMonPalette_Metang[] = INCBIN_U32("graphics/pokemon/metang/normal.gbapal.lz"); -const u32 gMonPalette_Metagross[] = INCBIN_U32("graphics/pokemon/metagross/normal.gbapal.lz"); -const u32 gMonPalette_Regirock[] = INCBIN_U32("graphics/pokemon/regirock/normal.gbapal.lz"); -const u32 gMonPalette_Regice[] = INCBIN_U32("graphics/pokemon/regice/normal.gbapal.lz"); -const u32 gMonPalette_Registeel[] = INCBIN_U32("graphics/pokemon/registeel/normal.gbapal.lz"); -const u32 gMonPalette_Latias[] = INCBIN_U32("graphics/pokemon/latias/normal.gbapal.lz"); -const u32 gMonPalette_Latios[] = INCBIN_U32("graphics/pokemon/latios/normal.gbapal.lz"); -const u32 gMonPalette_Kyogre[] = INCBIN_U32("graphics/pokemon/kyogre/normal.gbapal.lz"); -const u32 gMonPalette_Groudon[] = INCBIN_U32("graphics/pokemon/groudon/normal.gbapal.lz"); -const u32 gMonPalette_Rayquaza[] = INCBIN_U32("graphics/pokemon/rayquaza/normal.gbapal.lz"); -const u32 gMonPalette_Jirachi[] = INCBIN_U32("graphics/pokemon/jirachi/normal.gbapal.lz"); -const u32 gMonPalette_DeoxysNormal[] = INCBIN_U32("graphics/pokemon/deoxys/normal.gbapal.lz"); -#if P_GEN_4_POKEMON == TRUE -const u32 gMonPalette_Turtwig[] = INCBIN_U32("graphics/pokemon/turtwig/normal.gbapal.lz"); -const u32 gMonPalette_Grotle[] = INCBIN_U32("graphics/pokemon/grotle/normal.gbapal.lz"); -const u32 gMonPalette_Torterra[] = INCBIN_U32("graphics/pokemon/torterra/normal.gbapal.lz"); -const u32 gMonPalette_Chimchar[] = INCBIN_U32("graphics/pokemon/chimchar/normal.gbapal.lz"); -const u32 gMonPalette_Monferno[] = INCBIN_U32("graphics/pokemon/monferno/normal.gbapal.lz"); -const u32 gMonPalette_Infernape[] = INCBIN_U32("graphics/pokemon/infernape/normal.gbapal.lz"); -const u32 gMonPalette_Piplup[] = INCBIN_U32("graphics/pokemon/piplup/normal.gbapal.lz"); -const u32 gMonPalette_Prinplup[] = INCBIN_U32("graphics/pokemon/prinplup/normal.gbapal.lz"); -const u32 gMonPalette_Empoleon[] = INCBIN_U32("graphics/pokemon/empoleon/normal.gbapal.lz"); -const u32 gMonPalette_Starly[] = INCBIN_U32("graphics/pokemon/starly/normal.gbapal.lz"); -const u32 gMonPalette_Staravia[] = INCBIN_U32("graphics/pokemon/staravia/normal.gbapal.lz"); -const u32 gMonPalette_Staraptor[] = INCBIN_U32("graphics/pokemon/staraptor/normal.gbapal.lz"); -const u32 gMonPalette_Bidoof[] = INCBIN_U32("graphics/pokemon/bidoof/normal.gbapal.lz"); -const u32 gMonPalette_Bibarel[] = INCBIN_U32("graphics/pokemon/bibarel/normal.gbapal.lz"); -const u32 gMonPalette_Kricketot[] = INCBIN_U32("graphics/pokemon/kricketot/normal.gbapal.lz"); -const u32 gMonPalette_Kricketune[] = INCBIN_U32("graphics/pokemon/kricketune/normal.gbapal.lz"); -const u32 gMonPalette_Shinx[] = INCBIN_U32("graphics/pokemon/shinx/normal.gbapal.lz"); -const u32 gMonPalette_Luxio[] = INCBIN_U32("graphics/pokemon/luxio/normal.gbapal.lz"); -const u32 gMonPalette_Luxray[] = INCBIN_U32("graphics/pokemon/luxray/normal.gbapal.lz"); -const u32 gMonPalette_Budew[] = INCBIN_U32("graphics/pokemon/budew/normal.gbapal.lz"); -const u32 gMonPalette_Roserade[] = INCBIN_U32("graphics/pokemon/roserade/normal.gbapal.lz"); -const u32 gMonPalette_Cranidos[] = INCBIN_U32("graphics/pokemon/cranidos/normal.gbapal.lz"); -const u32 gMonPalette_Rampardos[] = INCBIN_U32("graphics/pokemon/rampardos/normal.gbapal.lz"); -const u32 gMonPalette_Shieldon[] = INCBIN_U32("graphics/pokemon/shieldon/normal.gbapal.lz"); -const u32 gMonPalette_Bastiodon[] = INCBIN_U32("graphics/pokemon/bastiodon/normal.gbapal.lz"); -const u32 gMonPalette_BurmyPlantCloak[] = INCBIN_U32("graphics/pokemon/burmy/normal.gbapal.lz"); -const u32 gMonPalette_WormadamPlantCloak[] = INCBIN_U32("graphics/pokemon/wormadam/normal.gbapal.lz"); -const u32 gMonPalette_Mothim[] = INCBIN_U32("graphics/pokemon/mothim/normal.gbapal.lz"); -const u32 gMonPalette_Combee[] = INCBIN_U32("graphics/pokemon/combee/normal.gbapal.lz"); -const u32 gMonPalette_CombeeF[] = INCBIN_U32("graphics/pokemon/combee/normalf.gbapal.lz"); -const u32 gMonPalette_Vespiquen[] = INCBIN_U32("graphics/pokemon/vespiquen/normal.gbapal.lz"); -const u32 gMonPalette_Pachirisu[] = INCBIN_U32("graphics/pokemon/pachirisu/normal.gbapal.lz"); -const u32 gMonPalette_Buizel[] = INCBIN_U32("graphics/pokemon/buizel/normal.gbapal.lz"); -const u32 gMonPalette_Floatzel[] = INCBIN_U32("graphics/pokemon/floatzel/normal.gbapal.lz"); -const u32 gMonPalette_Cherubi[] = INCBIN_U32("graphics/pokemon/cherubi/normal.gbapal.lz"); -const u32 gMonPalette_CherrimOvercast[] = INCBIN_U32("graphics/pokemon/cherrim/normal.gbapal.lz"); -const u32 gMonPalette_ShellosWestSea[] = INCBIN_U32("graphics/pokemon/shellos/normal.gbapal.lz"); -const u32 gMonPalette_GastrodonWestSea[] = INCBIN_U32("graphics/pokemon/gastrodon/normal.gbapal.lz"); -const u32 gMonPalette_Ambipom[] = INCBIN_U32("graphics/pokemon/ambipom/normal.gbapal.lz"); -const u32 gMonPalette_Drifloon[] = INCBIN_U32("graphics/pokemon/drifloon/normal.gbapal.lz"); -const u32 gMonPalette_Drifblim[] = INCBIN_U32("graphics/pokemon/drifblim/normal.gbapal.lz"); -const u32 gMonPalette_Buneary[] = INCBIN_U32("graphics/pokemon/buneary/normal.gbapal.lz"); -const u32 gMonPalette_Lopunny[] = INCBIN_U32("graphics/pokemon/lopunny/normal.gbapal.lz"); -const u32 gMonPalette_Mismagius[] = INCBIN_U32("graphics/pokemon/mismagius/normal.gbapal.lz"); -const u32 gMonPalette_Honchkrow[] = INCBIN_U32("graphics/pokemon/honchkrow/normal.gbapal.lz"); -const u32 gMonPalette_Glameow[] = INCBIN_U32("graphics/pokemon/glameow/normal.gbapal.lz"); -const u32 gMonPalette_Purugly[] = INCBIN_U32("graphics/pokemon/purugly/normal.gbapal.lz"); -const u32 gMonPalette_Chingling[] = INCBIN_U32("graphics/pokemon/chingling/normal.gbapal.lz"); -const u32 gMonPalette_Stunky[] = INCBIN_U32("graphics/pokemon/stunky/normal.gbapal.lz"); -const u32 gMonPalette_Skuntank[] = INCBIN_U32("graphics/pokemon/skuntank/normal.gbapal.lz"); -const u32 gMonPalette_Bronzor[] = INCBIN_U32("graphics/pokemon/bronzor/normal.gbapal.lz"); -const u32 gMonPalette_Bronzong[] = INCBIN_U32("graphics/pokemon/bronzong/normal.gbapal.lz"); -const u32 gMonPalette_Bonsly[] = INCBIN_U32("graphics/pokemon/bonsly/normal.gbapal.lz"); -const u32 gMonPalette_MimeJr[] = INCBIN_U32("graphics/pokemon/mime_jr/normal.gbapal.lz"); -const u32 gMonPalette_Happiny[] = INCBIN_U32("graphics/pokemon/happiny/normal.gbapal.lz"); -const u32 gMonPalette_Chatot[] = INCBIN_U32("graphics/pokemon/chatot/normal.gbapal.lz"); -const u32 gMonPalette_Spiritomb[] = INCBIN_U32("graphics/pokemon/spiritomb/normal.gbapal.lz"); -const u32 gMonPalette_Gible[] = INCBIN_U32("graphics/pokemon/gible/normal.gbapal.lz"); -const u32 gMonPalette_Gabite[] = INCBIN_U32("graphics/pokemon/gabite/normal.gbapal.lz"); -const u32 gMonPalette_Garchomp[] = INCBIN_U32("graphics/pokemon/garchomp/normal.gbapal.lz"); -const u32 gMonPalette_Munchlax[] = INCBIN_U32("graphics/pokemon/munchlax/normal.gbapal.lz"); -const u32 gMonPalette_Riolu[] = INCBIN_U32("graphics/pokemon/riolu/normal.gbapal.lz"); -const u32 gMonPalette_Lucario[] = INCBIN_U32("graphics/pokemon/lucario/normal.gbapal.lz"); -const u32 gMonPalette_Hippopotas[] = INCBIN_U32("graphics/pokemon/hippopotas/normal.gbapal.lz"); -const u32 gMonPalette_HippopotasF[] = INCBIN_U32("graphics/pokemon/hippopotas/normalf.gbapal.lz"); -const u32 gMonPalette_Hippowdon[] = INCBIN_U32("graphics/pokemon/hippowdon/normal.gbapal.lz"); -const u32 gMonPalette_HippowdonF[] = INCBIN_U32("graphics/pokemon/hippowdon/normalf.gbapal.lz"); -const u32 gMonPalette_Skorupi[] = INCBIN_U32("graphics/pokemon/skorupi/normal.gbapal.lz"); -const u32 gMonPalette_Drapion[] = INCBIN_U32("graphics/pokemon/drapion/normal.gbapal.lz"); -const u32 gMonPalette_Croagunk[] = INCBIN_U32("graphics/pokemon/croagunk/normal.gbapal.lz"); -const u32 gMonPalette_Toxicroak[] = INCBIN_U32("graphics/pokemon/toxicroak/normal.gbapal.lz"); -const u32 gMonPalette_Carnivine[] = INCBIN_U32("graphics/pokemon/carnivine/normal.gbapal.lz"); -const u32 gMonPalette_Finneon[] = INCBIN_U32("graphics/pokemon/finneon/normal.gbapal.lz"); -const u32 gMonPalette_Lumineon[] = INCBIN_U32("graphics/pokemon/lumineon/normal.gbapal.lz"); -const u32 gMonPalette_Mantyke[] = INCBIN_U32("graphics/pokemon/mantyke/normal.gbapal.lz"); -const u32 gMonPalette_Snover[] = INCBIN_U32("graphics/pokemon/snover/normal.gbapal.lz"); -const u32 gMonPalette_Abomasnow[] = INCBIN_U32("graphics/pokemon/abomasnow/normal.gbapal.lz"); -const u32 gMonPalette_Weavile[] = INCBIN_U32("graphics/pokemon/weavile/normal.gbapal.lz"); -const u32 gMonPalette_Magnezone[] = INCBIN_U32("graphics/pokemon/magnezone/normal.gbapal.lz"); -const u32 gMonPalette_Lickilicky[] = INCBIN_U32("graphics/pokemon/lickilicky/normal.gbapal.lz"); -const u32 gMonPalette_Rhyperior[] = INCBIN_U32("graphics/pokemon/rhyperior/normal.gbapal.lz"); -const u32 gMonPalette_Tangrowth[] = INCBIN_U32("graphics/pokemon/tangrowth/normal.gbapal.lz"); -const u32 gMonPalette_Electivire[] = INCBIN_U32("graphics/pokemon/electivire/normal.gbapal.lz"); -const u32 gMonPalette_Magmortar[] = INCBIN_U32("graphics/pokemon/magmortar/normal.gbapal.lz"); -const u32 gMonPalette_Togekiss[] = INCBIN_U32("graphics/pokemon/togekiss/normal.gbapal.lz"); -const u32 gMonPalette_Yanmega[] = INCBIN_U32("graphics/pokemon/yanmega/normal.gbapal.lz"); -const u32 gMonPalette_Leafeon[] = INCBIN_U32("graphics/pokemon/leafeon/normal.gbapal.lz"); -const u32 gMonPalette_Glaceon[] = INCBIN_U32("graphics/pokemon/glaceon/normal.gbapal.lz"); -const u32 gMonPalette_Gliscor[] = INCBIN_U32("graphics/pokemon/gliscor/normal.gbapal.lz"); -const u32 gMonPalette_Mamoswine[] = INCBIN_U32("graphics/pokemon/mamoswine/normal.gbapal.lz"); -const u32 gMonPalette_PorygonZ[] = INCBIN_U32("graphics/pokemon/porygon_z/normal.gbapal.lz"); -const u32 gMonPalette_Gallade[] = INCBIN_U32("graphics/pokemon/gallade/normal.gbapal.lz"); -const u32 gMonPalette_Probopass[] = INCBIN_U32("graphics/pokemon/probopass/normal.gbapal.lz"); -const u32 gMonPalette_Dusknoir[] = INCBIN_U32("graphics/pokemon/dusknoir/normal.gbapal.lz"); -const u32 gMonPalette_Froslass[] = INCBIN_U32("graphics/pokemon/froslass/normal.gbapal.lz"); -const u32 gMonPalette_Rotom[] = INCBIN_U32("graphics/pokemon/rotom/normal.gbapal.lz"); -const u32 gMonPalette_Uxie[] = INCBIN_U32("graphics/pokemon/uxie/normal.gbapal.lz"); -const u32 gMonPalette_Mesprit[] = INCBIN_U32("graphics/pokemon/mesprit/normal.gbapal.lz"); -const u32 gMonPalette_Azelf[] = INCBIN_U32("graphics/pokemon/azelf/normal.gbapal.lz"); -const u32 gMonPalette_Dialga[] = INCBIN_U32("graphics/pokemon/dialga/normal.gbapal.lz"); -const u32 gMonPalette_Palkia[] = INCBIN_U32("graphics/pokemon/palkia/normal.gbapal.lz"); -const u32 gMonPalette_Heatran[] = INCBIN_U32("graphics/pokemon/heatran/normal.gbapal.lz"); -const u32 gMonPalette_Regigigas[] = INCBIN_U32("graphics/pokemon/regigigas/normal.gbapal.lz"); -const u32 gMonPalette_GiratinaAltered[] = INCBIN_U32("graphics/pokemon/giratina/normal.gbapal.lz"); -const u32 gMonPalette_Cresselia[] = INCBIN_U32("graphics/pokemon/cresselia/normal.gbapal.lz"); -const u32 gMonPalette_Phione[] = INCBIN_U32("graphics/pokemon/phione/normal.gbapal.lz"); -const u32 gMonPalette_Manaphy[] = INCBIN_U32("graphics/pokemon/manaphy/normal.gbapal.lz"); -const u32 gMonPalette_Darkrai[] = INCBIN_U32("graphics/pokemon/darkrai/normal.gbapal.lz"); -const u32 gMonPalette_ShayminLand[] = INCBIN_U32("graphics/pokemon/shaymin/normal.gbapal.lz"); -const u32 gMonPalette_Arceus[] = INCBIN_U32("graphics/pokemon/arceus/normal.gbapal.lz"); -#endif -#if P_GEN_5_POKEMON == TRUE -const u32 gMonPalette_Victini[] = INCBIN_U32("graphics/pokemon/victini/normal.gbapal.lz"); -const u32 gMonPalette_Snivy[] = INCBIN_U32("graphics/pokemon/snivy/normal.gbapal.lz"); -const u32 gMonPalette_Servine[] = INCBIN_U32("graphics/pokemon/servine/normal.gbapal.lz"); -const u32 gMonPalette_Serperior[] = INCBIN_U32("graphics/pokemon/serperior/normal.gbapal.lz"); -const u32 gMonPalette_Tepig[] = INCBIN_U32("graphics/pokemon/tepig/normal.gbapal.lz"); -const u32 gMonPalette_Pignite[] = INCBIN_U32("graphics/pokemon/pignite/normal.gbapal.lz"); -const u32 gMonPalette_Emboar[] = INCBIN_U32("graphics/pokemon/emboar/normal.gbapal.lz"); -const u32 gMonPalette_Oshawott[] = INCBIN_U32("graphics/pokemon/oshawott/normal.gbapal.lz"); -const u32 gMonPalette_Dewott[] = INCBIN_U32("graphics/pokemon/dewott/normal.gbapal.lz"); -const u32 gMonPalette_Samurott[] = INCBIN_U32("graphics/pokemon/samurott/normal.gbapal.lz"); -const u32 gMonPalette_Patrat[] = INCBIN_U32("graphics/pokemon/patrat/normal.gbapal.lz"); -const u32 gMonPalette_Watchog[] = INCBIN_U32("graphics/pokemon/watchog/normal.gbapal.lz"); -const u32 gMonPalette_Lillipup[] = INCBIN_U32("graphics/pokemon/lillipup/normal.gbapal.lz"); -const u32 gMonPalette_Herdier[] = INCBIN_U32("graphics/pokemon/herdier/normal.gbapal.lz"); -const u32 gMonPalette_Stoutland[] = INCBIN_U32("graphics/pokemon/stoutland/normal.gbapal.lz"); -const u32 gMonPalette_Purrloin[] = INCBIN_U32("graphics/pokemon/purrloin/normal.gbapal.lz"); -const u32 gMonPalette_Liepard[] = INCBIN_U32("graphics/pokemon/liepard/normal.gbapal.lz"); -const u32 gMonPalette_Pansage[] = INCBIN_U32("graphics/pokemon/pansage/normal.gbapal.lz"); -const u32 gMonPalette_Simisage[] = INCBIN_U32("graphics/pokemon/simisage/normal.gbapal.lz"); -const u32 gMonPalette_Pansear[] = INCBIN_U32("graphics/pokemon/pansear/normal.gbapal.lz"); -const u32 gMonPalette_Simisear[] = INCBIN_U32("graphics/pokemon/simisear/normal.gbapal.lz"); -const u32 gMonPalette_Panpour[] = INCBIN_U32("graphics/pokemon/panpour/normal.gbapal.lz"); -const u32 gMonPalette_Simipour[] = INCBIN_U32("graphics/pokemon/simipour/normal.gbapal.lz"); -const u32 gMonPalette_Munna[] = INCBIN_U32("graphics/pokemon/munna/normal.gbapal.lz"); -const u32 gMonPalette_Musharna[] = INCBIN_U32("graphics/pokemon/musharna/normal.gbapal.lz"); -const u32 gMonPalette_Pidove[] = INCBIN_U32("graphics/pokemon/pidove/normal.gbapal.lz"); -const u32 gMonPalette_Tranquill[] = INCBIN_U32("graphics/pokemon/tranquill/normal.gbapal.lz"); -const u32 gMonPalette_Unfezant[] = INCBIN_U32("graphics/pokemon/unfezant/normal.gbapal.lz"); -const u32 gMonPalette_UnfezantF[] = INCBIN_U32("graphics/pokemon/unfezant/normalf.gbapal.lz"); -const u32 gMonPalette_Blitzle[] = INCBIN_U32("graphics/pokemon/blitzle/normal.gbapal.lz"); -const u32 gMonPalette_Zebstrika[] = INCBIN_U32("graphics/pokemon/zebstrika/normal.gbapal.lz"); -const u32 gMonPalette_Roggenrola[] = INCBIN_U32("graphics/pokemon/roggenrola/normal.gbapal.lz"); -const u32 gMonPalette_Boldore[] = INCBIN_U32("graphics/pokemon/boldore/normal.gbapal.lz"); -const u32 gMonPalette_Gigalith[] = INCBIN_U32("graphics/pokemon/gigalith/normal.gbapal.lz"); -const u32 gMonPalette_Woobat[] = INCBIN_U32("graphics/pokemon/woobat/normal.gbapal.lz"); -const u32 gMonPalette_Swoobat[] = INCBIN_U32("graphics/pokemon/swoobat/normal.gbapal.lz"); -const u32 gMonPalette_Drilbur[] = INCBIN_U32("graphics/pokemon/drilbur/normal.gbapal.lz"); -const u32 gMonPalette_Excadrill[] = INCBIN_U32("graphics/pokemon/excadrill/normal.gbapal.lz"); -const u32 gMonPalette_Audino[] = INCBIN_U32("graphics/pokemon/audino/normal.gbapal.lz"); -const u32 gMonPalette_Timburr[] = INCBIN_U32("graphics/pokemon/timburr/normal.gbapal.lz"); -const u32 gMonPalette_Gurdurr[] = INCBIN_U32("graphics/pokemon/gurdurr/normal.gbapal.lz"); -const u32 gMonPalette_Conkeldurr[] = INCBIN_U32("graphics/pokemon/conkeldurr/normal.gbapal.lz"); -const u32 gMonPalette_Tympole[] = INCBIN_U32("graphics/pokemon/tympole/normal.gbapal.lz"); -const u32 gMonPalette_Palpitoad[] = INCBIN_U32("graphics/pokemon/palpitoad/normal.gbapal.lz"); -const u32 gMonPalette_Seismitoad[] = INCBIN_U32("graphics/pokemon/seismitoad/normal.gbapal.lz"); -const u32 gMonPalette_Throh[] = INCBIN_U32("graphics/pokemon/throh/normal.gbapal.lz"); -const u32 gMonPalette_Sawk[] = INCBIN_U32("graphics/pokemon/sawk/normal.gbapal.lz"); -const u32 gMonPalette_Sewaddle[] = INCBIN_U32("graphics/pokemon/sewaddle/normal.gbapal.lz"); -const u32 gMonPalette_Swadloon[] = INCBIN_U32("graphics/pokemon/swadloon/normal.gbapal.lz"); -const u32 gMonPalette_Leavanny[] = INCBIN_U32("graphics/pokemon/leavanny/normal.gbapal.lz"); -const u32 gMonPalette_Venipede[] = INCBIN_U32("graphics/pokemon/venipede/normal.gbapal.lz"); -const u32 gMonPalette_Whirlipede[] = INCBIN_U32("graphics/pokemon/whirlipede/normal.gbapal.lz"); -const u32 gMonPalette_Scolipede[] = INCBIN_U32("graphics/pokemon/scolipede/normal.gbapal.lz"); -const u32 gMonPalette_Cottonee[] = INCBIN_U32("graphics/pokemon/cottonee/normal.gbapal.lz"); -const u32 gMonPalette_Whimsicott[] = INCBIN_U32("graphics/pokemon/whimsicott/normal.gbapal.lz"); -const u32 gMonPalette_Petilil[] = INCBIN_U32("graphics/pokemon/petilil/normal.gbapal.lz"); -const u32 gMonPalette_Lilligant[] = INCBIN_U32("graphics/pokemon/lilligant/normal.gbapal.lz"); -const u32 gMonPalette_BasculinRedStriped[] = INCBIN_U32("graphics/pokemon/basculin/normal.gbapal.lz"); -const u32 gMonPalette_Sandile[] = INCBIN_U32("graphics/pokemon/sandile/normal.gbapal.lz"); -const u32 gMonPalette_Krokorok[] = INCBIN_U32("graphics/pokemon/krokorok/normal.gbapal.lz"); -const u32 gMonPalette_Krookodile[] = INCBIN_U32("graphics/pokemon/krookodile/normal.gbapal.lz"); -const u32 gMonPalette_Darumaka[] = INCBIN_U32("graphics/pokemon/darumaka/normal.gbapal.lz"); -const u32 gMonPalette_DarmanitanStandardMode[] = INCBIN_U32("graphics/pokemon/darmanitan/normal.gbapal.lz"); -const u32 gMonPalette_Maractus[] = INCBIN_U32("graphics/pokemon/maractus/normal.gbapal.lz"); -const u32 gMonPalette_Dwebble[] = INCBIN_U32("graphics/pokemon/dwebble/normal.gbapal.lz"); -const u32 gMonPalette_Crustle[] = INCBIN_U32("graphics/pokemon/crustle/normal.gbapal.lz"); -const u32 gMonPalette_Scraggy[] = INCBIN_U32("graphics/pokemon/scraggy/normal.gbapal.lz"); -const u32 gMonPalette_Scrafty[] = INCBIN_U32("graphics/pokemon/scrafty/normal.gbapal.lz"); -const u32 gMonPalette_Sigilyph[] = INCBIN_U32("graphics/pokemon/sigilyph/normal.gbapal.lz"); -const u32 gMonPalette_Yamask[] = INCBIN_U32("graphics/pokemon/yamask/normal.gbapal.lz"); -const u32 gMonPalette_Cofagrigus[] = INCBIN_U32("graphics/pokemon/cofagrigus/normal.gbapal.lz"); -const u32 gMonPalette_Tirtouga[] = INCBIN_U32("graphics/pokemon/tirtouga/normal.gbapal.lz"); -const u32 gMonPalette_Carracosta[] = INCBIN_U32("graphics/pokemon/carracosta/normal.gbapal.lz"); -const u32 gMonPalette_Archen[] = INCBIN_U32("graphics/pokemon/archen/normal.gbapal.lz"); -const u32 gMonPalette_Archeops[] = INCBIN_U32("graphics/pokemon/archeops/normal.gbapal.lz"); -const u32 gMonPalette_Trubbish[] = INCBIN_U32("graphics/pokemon/trubbish/normal.gbapal.lz"); -const u32 gMonPalette_Garbodor[] = INCBIN_U32("graphics/pokemon/garbodor/normal.gbapal.lz"); -const u32 gMonPalette_Zorua[] = INCBIN_U32("graphics/pokemon/zorua/normal.gbapal.lz"); -const u32 gMonPalette_Zoroark[] = INCBIN_U32("graphics/pokemon/zoroark/normal.gbapal.lz"); -const u32 gMonPalette_Minccino[] = INCBIN_U32("graphics/pokemon/minccino/normal.gbapal.lz"); -const u32 gMonPalette_Cinccino[] = INCBIN_U32("graphics/pokemon/cinccino/normal.gbapal.lz"); -const u32 gMonPalette_Gothita[] = INCBIN_U32("graphics/pokemon/gothita/normal.gbapal.lz"); -const u32 gMonPalette_Gothorita[] = INCBIN_U32("graphics/pokemon/gothorita/normal.gbapal.lz"); -const u32 gMonPalette_Gothitelle[] = INCBIN_U32("graphics/pokemon/gothitelle/normal.gbapal.lz"); -const u32 gMonPalette_Solosis[] = INCBIN_U32("graphics/pokemon/solosis/normal.gbapal.lz"); -const u32 gMonPalette_Duosion[] = INCBIN_U32("graphics/pokemon/duosion/normal.gbapal.lz"); -const u32 gMonPalette_Reuniclus[] = INCBIN_U32("graphics/pokemon/reuniclus/normal.gbapal.lz"); -const u32 gMonPalette_Ducklett[] = INCBIN_U32("graphics/pokemon/ducklett/normal.gbapal.lz"); -const u32 gMonPalette_Swanna[] = INCBIN_U32("graphics/pokemon/swanna/normal.gbapal.lz"); -const u32 gMonPalette_Vanillite[] = INCBIN_U32("graphics/pokemon/vanillite/normal.gbapal.lz"); -const u32 gMonPalette_Vanillish[] = INCBIN_U32("graphics/pokemon/vanillish/normal.gbapal.lz"); -const u32 gMonPalette_Vanilluxe[] = INCBIN_U32("graphics/pokemon/vanilluxe/normal.gbapal.lz"); -const u32 gMonPalette_DeerlingSpring[] = INCBIN_U32("graphics/pokemon/deerling/normal.gbapal.lz"); -const u32 gMonPalette_SawsbuckSpring[] = INCBIN_U32("graphics/pokemon/sawsbuck/normal.gbapal.lz"); -const u32 gMonPalette_Emolga[] = INCBIN_U32("graphics/pokemon/emolga/normal.gbapal.lz"); -const u32 gMonPalette_Karrablast[] = INCBIN_U32("graphics/pokemon/karrablast/normal.gbapal.lz"); -const u32 gMonPalette_Escavalier[] = INCBIN_U32("graphics/pokemon/escavalier/normal.gbapal.lz"); -const u32 gMonPalette_Foongus[] = INCBIN_U32("graphics/pokemon/foongus/normal.gbapal.lz"); -const u32 gMonPalette_Amoonguss[] = INCBIN_U32("graphics/pokemon/amoonguss/normal.gbapal.lz"); -const u32 gMonPalette_Frillish[] = INCBIN_U32("graphics/pokemon/frillish/normal.gbapal.lz"); -const u32 gMonPalette_FrillishF[] = INCBIN_U32("graphics/pokemon/frillish/normalf.gbapal.lz"); -const u32 gMonPalette_Jellicent[] = INCBIN_U32("graphics/pokemon/jellicent/normal.gbapal.lz"); -const u32 gMonPalette_JellicentF[] = INCBIN_U32("graphics/pokemon/jellicent/normalf.gbapal.lz"); -const u32 gMonPalette_Alomomola[] = INCBIN_U32("graphics/pokemon/alomomola/normal.gbapal.lz"); -const u32 gMonPalette_Joltik[] = INCBIN_U32("graphics/pokemon/joltik/normal.gbapal.lz"); -const u32 gMonPalette_Galvantula[] = INCBIN_U32("graphics/pokemon/galvantula/normal.gbapal.lz"); -const u32 gMonPalette_Ferroseed[] = INCBIN_U32("graphics/pokemon/ferroseed/normal.gbapal.lz"); -const u32 gMonPalette_Ferrothorn[] = INCBIN_U32("graphics/pokemon/ferrothorn/normal.gbapal.lz"); -const u32 gMonPalette_Klink[] = INCBIN_U32("graphics/pokemon/klink/normal.gbapal.lz"); -const u32 gMonPalette_Klang[] = INCBIN_U32("graphics/pokemon/klang/normal.gbapal.lz"); -const u32 gMonPalette_Klinklang[] = INCBIN_U32("graphics/pokemon/klinklang/normal.gbapal.lz"); -const u32 gMonPalette_Tynamo[] = INCBIN_U32("graphics/pokemon/tynamo/normal.gbapal.lz"); -const u32 gMonPalette_Eelektrik[] = INCBIN_U32("graphics/pokemon/eelektrik/normal.gbapal.lz"); -const u32 gMonPalette_Eelektross[] = INCBIN_U32("graphics/pokemon/eelektross/normal.gbapal.lz"); -const u32 gMonPalette_Elgyem[] = INCBIN_U32("graphics/pokemon/elgyem/normal.gbapal.lz"); -const u32 gMonPalette_Beheeyem[] = INCBIN_U32("graphics/pokemon/beheeyem/normal.gbapal.lz"); -const u32 gMonPalette_Litwick[] = INCBIN_U32("graphics/pokemon/litwick/normal.gbapal.lz"); -const u32 gMonPalette_Lampent[] = INCBIN_U32("graphics/pokemon/lampent/normal.gbapal.lz"); -const u32 gMonPalette_Chandelure[] = INCBIN_U32("graphics/pokemon/chandelure/normal.gbapal.lz"); -const u32 gMonPalette_Axew[] = INCBIN_U32("graphics/pokemon/axew/normal.gbapal.lz"); -const u32 gMonPalette_Fraxure[] = INCBIN_U32("graphics/pokemon/fraxure/normal.gbapal.lz"); -const u32 gMonPalette_Haxorus[] = INCBIN_U32("graphics/pokemon/haxorus/normal.gbapal.lz"); -const u32 gMonPalette_Cubchoo[] = INCBIN_U32("graphics/pokemon/cubchoo/normal.gbapal.lz"); -const u32 gMonPalette_Beartic[] = INCBIN_U32("graphics/pokemon/beartic/normal.gbapal.lz"); -const u32 gMonPalette_Cryogonal[] = INCBIN_U32("graphics/pokemon/cryogonal/normal.gbapal.lz"); -const u32 gMonPalette_Shelmet[] = INCBIN_U32("graphics/pokemon/shelmet/normal.gbapal.lz"); -const u32 gMonPalette_Accelgor[] = INCBIN_U32("graphics/pokemon/accelgor/normal.gbapal.lz"); -const u32 gMonPalette_Stunfisk[] = INCBIN_U32("graphics/pokemon/stunfisk/normal.gbapal.lz"); -const u32 gMonPalette_Mienfoo[] = INCBIN_U32("graphics/pokemon/mienfoo/normal.gbapal.lz"); -const u32 gMonPalette_Mienshao[] = INCBIN_U32("graphics/pokemon/mienshao/normal.gbapal.lz"); -const u32 gMonPalette_Druddigon[] = INCBIN_U32("graphics/pokemon/druddigon/normal.gbapal.lz"); -const u32 gMonPalette_Golett[] = INCBIN_U32("graphics/pokemon/golett/normal.gbapal.lz"); -const u32 gMonPalette_Golurk[] = INCBIN_U32("graphics/pokemon/golurk/normal.gbapal.lz"); -const u32 gMonPalette_Pawniard[] = INCBIN_U32("graphics/pokemon/pawniard/normal.gbapal.lz"); -const u32 gMonPalette_Bisharp[] = INCBIN_U32("graphics/pokemon/bisharp/normal.gbapal.lz"); -const u32 gMonPalette_Bouffalant[] = INCBIN_U32("graphics/pokemon/bouffalant/normal.gbapal.lz"); -const u32 gMonPalette_Rufflet[] = INCBIN_U32("graphics/pokemon/rufflet/normal.gbapal.lz"); -const u32 gMonPalette_Braviary[] = INCBIN_U32("graphics/pokemon/braviary/normal.gbapal.lz"); -const u32 gMonPalette_Vullaby[] = INCBIN_U32("graphics/pokemon/vullaby/normal.gbapal.lz"); -const u32 gMonPalette_Mandibuzz[] = INCBIN_U32("graphics/pokemon/mandibuzz/normal.gbapal.lz"); -const u32 gMonPalette_Heatmor[] = INCBIN_U32("graphics/pokemon/heatmor/normal.gbapal.lz"); -const u32 gMonPalette_Durant[] = INCBIN_U32("graphics/pokemon/durant/normal.gbapal.lz"); -const u32 gMonPalette_Deino[] = INCBIN_U32("graphics/pokemon/deino/normal.gbapal.lz"); -const u32 gMonPalette_Zweilous[] = INCBIN_U32("graphics/pokemon/zweilous/normal.gbapal.lz"); -const u32 gMonPalette_Hydreigon[] = INCBIN_U32("graphics/pokemon/hydreigon/normal.gbapal.lz"); -const u32 gMonPalette_Larvesta[] = INCBIN_U32("graphics/pokemon/larvesta/normal.gbapal.lz"); -const u32 gMonPalette_Volcarona[] = INCBIN_U32("graphics/pokemon/volcarona/normal.gbapal.lz"); -const u32 gMonPalette_Cobalion[] = INCBIN_U32("graphics/pokemon/cobalion/normal.gbapal.lz"); -const u32 gMonPalette_Terrakion[] = INCBIN_U32("graphics/pokemon/terrakion/normal.gbapal.lz"); -const u32 gMonPalette_Virizion[] = INCBIN_U32("graphics/pokemon/virizion/normal.gbapal.lz"); -const u32 gMonPalette_TornadusIncarnate[] = INCBIN_U32("graphics/pokemon/tornadus/normal.gbapal.lz"); -const u32 gMonPalette_ThundurusIncarnate[] = INCBIN_U32("graphics/pokemon/thundurus/normal.gbapal.lz"); -const u32 gMonPalette_Reshiram[] = INCBIN_U32("graphics/pokemon/reshiram/normal.gbapal.lz"); -const u32 gMonPalette_Zekrom[] = INCBIN_U32("graphics/pokemon/zekrom/normal.gbapal.lz"); -const u32 gMonPalette_LandorusIncarnate[] = INCBIN_U32("graphics/pokemon/landorus/normal.gbapal.lz"); -const u32 gMonPalette_Kyurem[] = INCBIN_U32("graphics/pokemon/kyurem/normal.gbapal.lz"); -const u32 gMonPalette_KeldeoOrdinary[] = INCBIN_U32("graphics/pokemon/keldeo/normal.gbapal.lz"); -const u32 gMonPalette_MeloettaAria[] = INCBIN_U32("graphics/pokemon/meloetta/normal.gbapal.lz"); -const u32 gMonPalette_Genesect[] = INCBIN_U32("graphics/pokemon/genesect/normal.gbapal.lz"); -#endif -#if P_GEN_6_POKEMON == TRUE -const u32 gMonPalette_Chespin[] = INCBIN_U32("graphics/pokemon/chespin/normal.gbapal.lz"); -const u32 gMonPalette_Quilladin[] = INCBIN_U32("graphics/pokemon/quilladin/normal.gbapal.lz"); -const u32 gMonPalette_Chesnaught[] = INCBIN_U32("graphics/pokemon/chesnaught/normal.gbapal.lz"); -const u32 gMonPalette_Fennekin[] = INCBIN_U32("graphics/pokemon/fennekin/normal.gbapal.lz"); -const u32 gMonPalette_Braixen[] = INCBIN_U32("graphics/pokemon/braixen/normal.gbapal.lz"); -const u32 gMonPalette_Delphox[] = INCBIN_U32("graphics/pokemon/delphox/normal.gbapal.lz"); -const u32 gMonPalette_Froakie[] = INCBIN_U32("graphics/pokemon/froakie/normal.gbapal.lz"); -const u32 gMonPalette_Frogadier[] = INCBIN_U32("graphics/pokemon/frogadier/normal.gbapal.lz"); -const u32 gMonPalette_Greninja[] = INCBIN_U32("graphics/pokemon/greninja/normal.gbapal.lz"); -const u32 gMonPalette_Bunnelby[] = INCBIN_U32("graphics/pokemon/bunnelby/normal.gbapal.lz"); -const u32 gMonPalette_Diggersby[] = INCBIN_U32("graphics/pokemon/diggersby/normal.gbapal.lz"); -const u32 gMonPalette_Fletchling[] = INCBIN_U32("graphics/pokemon/fletchling/normal.gbapal.lz"); -const u32 gMonPalette_Fletchinder[] = INCBIN_U32("graphics/pokemon/fletchinder/normal.gbapal.lz"); -const u32 gMonPalette_Talonflame[] = INCBIN_U32("graphics/pokemon/talonflame/normal.gbapal.lz"); -const u32 gMonPalette_Scatterbug[] = INCBIN_U32("graphics/pokemon/scatterbug/normal.gbapal.lz"); -const u32 gMonPalette_Spewpa[] = INCBIN_U32("graphics/pokemon/spewpa/normal.gbapal.lz"); -const u32 gMonPalette_VivillonIcySnow[] = INCBIN_U32("graphics/pokemon/vivillon/normal.gbapal.lz"); -const u32 gMonPalette_Litleo[] = INCBIN_U32("graphics/pokemon/litleo/normal.gbapal.lz"); -const u32 gMonPalette_Pyroar[] = INCBIN_U32("graphics/pokemon/pyroar/normal.gbapal.lz"); -const u32 gMonPalette_FlabebeRedFlower[] = INCBIN_U32("graphics/pokemon/flabebe/normal.gbapal.lz"); -const u32 gMonPalette_FloetteRedFlower[] = INCBIN_U32("graphics/pokemon/floette/normal.gbapal.lz"); -const u32 gMonPalette_FlorgesRedFlower[] = INCBIN_U32("graphics/pokemon/florges/normal.gbapal.lz"); -const u32 gMonPalette_Skiddo[] = INCBIN_U32("graphics/pokemon/skiddo/normal.gbapal.lz"); -const u32 gMonPalette_Gogoat[] = INCBIN_U32("graphics/pokemon/gogoat/normal.gbapal.lz"); -const u32 gMonPalette_Pancham[] = INCBIN_U32("graphics/pokemon/pancham/normal.gbapal.lz"); -const u32 gMonPalette_Pangoro[] = INCBIN_U32("graphics/pokemon/pangoro/normal.gbapal.lz"); -const u32 gMonPalette_FurfrouNatural[] = INCBIN_U32("graphics/pokemon/furfrou/normal.gbapal.lz"); -const u32 gMonPalette_Espurr[] = INCBIN_U32("graphics/pokemon/espurr/normal.gbapal.lz"); -const u32 gMonPalette_MeowsticMale[] = INCBIN_U32("graphics/pokemon/meowstic/normal.gbapal.lz"); -const u32 gMonPalette_Honedge[] = INCBIN_U32("graphics/pokemon/honedge/normal.gbapal.lz"); -const u32 gMonPalette_Doublade[] = INCBIN_U32("graphics/pokemon/doublade/normal.gbapal.lz"); -const u32 gMonPalette_AegislashShield[] = INCBIN_U32("graphics/pokemon/aegislash/normal.gbapal.lz"); -const u32 gMonPalette_Spritzee[] = INCBIN_U32("graphics/pokemon/spritzee/normal.gbapal.lz"); -const u32 gMonPalette_Aromatisse[] = INCBIN_U32("graphics/pokemon/aromatisse/normal.gbapal.lz"); -const u32 gMonPalette_Swirlix[] = INCBIN_U32("graphics/pokemon/swirlix/normal.gbapal.lz"); -const u32 gMonPalette_Slurpuff[] = INCBIN_U32("graphics/pokemon/slurpuff/normal.gbapal.lz"); -const u32 gMonPalette_Inkay[] = INCBIN_U32("graphics/pokemon/inkay/normal.gbapal.lz"); -const u32 gMonPalette_Malamar[] = INCBIN_U32("graphics/pokemon/malamar/normal.gbapal.lz"); -const u32 gMonPalette_Binacle[] = INCBIN_U32("graphics/pokemon/binacle/normal.gbapal.lz"); -const u32 gMonPalette_Barbaracle[] = INCBIN_U32("graphics/pokemon/barbaracle/normal.gbapal.lz"); -const u32 gMonPalette_Skrelp[] = INCBIN_U32("graphics/pokemon/skrelp/normal.gbapal.lz"); -const u32 gMonPalette_Dragalge[] = INCBIN_U32("graphics/pokemon/dragalge/normal.gbapal.lz"); -const u32 gMonPalette_Clauncher[] = INCBIN_U32("graphics/pokemon/clauncher/normal.gbapal.lz"); -const u32 gMonPalette_Clawitzer[] = INCBIN_U32("graphics/pokemon/clawitzer/normal.gbapal.lz"); -const u32 gMonPalette_Helioptile[] = INCBIN_U32("graphics/pokemon/helioptile/normal.gbapal.lz"); -const u32 gMonPalette_Heliolisk[] = INCBIN_U32("graphics/pokemon/heliolisk/normal.gbapal.lz"); -const u32 gMonPalette_Tyrunt[] = INCBIN_U32("graphics/pokemon/tyrunt/normal.gbapal.lz"); -const u32 gMonPalette_Tyrantrum[] = INCBIN_U32("graphics/pokemon/tyrantrum/normal.gbapal.lz"); -const u32 gMonPalette_Amaura[] = INCBIN_U32("graphics/pokemon/amaura/normal.gbapal.lz"); -const u32 gMonPalette_Aurorus[] = INCBIN_U32("graphics/pokemon/aurorus/normal.gbapal.lz"); -const u32 gMonPalette_Sylveon[] = INCBIN_U32("graphics/pokemon/sylveon/normal.gbapal.lz"); -const u32 gMonPalette_Hawlucha[] = INCBIN_U32("graphics/pokemon/hawlucha/normal.gbapal.lz"); -const u32 gMonPalette_Dedenne[] = INCBIN_U32("graphics/pokemon/dedenne/normal.gbapal.lz"); -const u32 gMonPalette_Carbink[] = INCBIN_U32("graphics/pokemon/carbink/normal.gbapal.lz"); -const u32 gMonPalette_Goomy[] = INCBIN_U32("graphics/pokemon/goomy/normal.gbapal.lz"); -const u32 gMonPalette_Sliggoo[] = INCBIN_U32("graphics/pokemon/sliggoo/normal.gbapal.lz"); -const u32 gMonPalette_Goodra[] = INCBIN_U32("graphics/pokemon/goodra/normal.gbapal.lz"); -const u32 gMonPalette_Klefki[] = INCBIN_U32("graphics/pokemon/klefki/normal.gbapal.lz"); -const u32 gMonPalette_Phantump[] = INCBIN_U32("graphics/pokemon/phantump/normal.gbapal.lz"); -const u32 gMonPalette_Trevenant[] = INCBIN_U32("graphics/pokemon/trevenant/normal.gbapal.lz"); -const u32 gMonPalette_Pumpkaboo[] = INCBIN_U32("graphics/pokemon/pumpkaboo/normal.gbapal.lz"); -const u32 gMonPalette_Gourgeist[] = INCBIN_U32("graphics/pokemon/gourgeist/normal.gbapal.lz"); -const u32 gMonPalette_Bergmite[] = INCBIN_U32("graphics/pokemon/bergmite/normal.gbapal.lz"); -const u32 gMonPalette_Avalugg[] = INCBIN_U32("graphics/pokemon/avalugg/normal.gbapal.lz"); -const u32 gMonPalette_Noibat[] = INCBIN_U32("graphics/pokemon/noibat/normal.gbapal.lz"); -const u32 gMonPalette_Noivern[] = INCBIN_U32("graphics/pokemon/noivern/normal.gbapal.lz"); -const u32 gMonPalette_XerneasNeutral[] = INCBIN_U32("graphics/pokemon/xerneas/normal.gbapal.lz"); -const u32 gMonPalette_Yveltal[] = INCBIN_U32("graphics/pokemon/yveltal/normal.gbapal.lz"); -const u32 gMonPalette_Zygarde50[] = INCBIN_U32("graphics/pokemon/zygarde/normal.gbapal.lz"); -const u32 gMonPalette_Diancie[] = INCBIN_U32("graphics/pokemon/diancie/normal.gbapal.lz"); -const u32 gMonPalette_HoopaConfined[] = INCBIN_U32("graphics/pokemon/hoopa/normal.gbapal.lz"); -const u32 gMonPalette_Volcanion[] = INCBIN_U32("graphics/pokemon/volcanion/normal.gbapal.lz"); -#endif -#if P_GEN_7_POKEMON == TRUE -const u32 gMonPalette_Rowlet[] = INCBIN_U32("graphics/pokemon/rowlet/normal.gbapal.lz"); -const u32 gMonPalette_Dartrix[] = INCBIN_U32("graphics/pokemon/dartrix/normal.gbapal.lz"); -const u32 gMonPalette_Decidueye[] = INCBIN_U32("graphics/pokemon/decidueye/normal.gbapal.lz"); -const u32 gMonPalette_Litten[] = INCBIN_U32("graphics/pokemon/litten/normal.gbapal.lz"); -const u32 gMonPalette_Torracat[] = INCBIN_U32("graphics/pokemon/torracat/normal.gbapal.lz"); -const u32 gMonPalette_Incineroar[] = INCBIN_U32("graphics/pokemon/incineroar/normal.gbapal.lz"); -const u32 gMonPalette_Popplio[] = INCBIN_U32("graphics/pokemon/popplio/normal.gbapal.lz"); -const u32 gMonPalette_Brionne[] = INCBIN_U32("graphics/pokemon/brionne/normal.gbapal.lz"); -const u32 gMonPalette_Primarina[] = INCBIN_U32("graphics/pokemon/primarina/normal.gbapal.lz"); -const u32 gMonPalette_Pikipek[] = INCBIN_U32("graphics/pokemon/pikipek/normal.gbapal.lz"); -const u32 gMonPalette_Trumbeak[] = INCBIN_U32("graphics/pokemon/trumbeak/normal.gbapal.lz"); -const u32 gMonPalette_Toucannon[] = INCBIN_U32("graphics/pokemon/toucannon/normal.gbapal.lz"); -const u32 gMonPalette_Yungoos[] = INCBIN_U32("graphics/pokemon/yungoos/normal.gbapal.lz"); -const u32 gMonPalette_Gumshoos[] = INCBIN_U32("graphics/pokemon/gumshoos/normal.gbapal.lz"); -const u32 gMonPalette_Grubbin[] = INCBIN_U32("graphics/pokemon/grubbin/normal.gbapal.lz"); -const u32 gMonPalette_Charjabug[] = INCBIN_U32("graphics/pokemon/charjabug/normal.gbapal.lz"); -const u32 gMonPalette_Vikavolt[] = INCBIN_U32("graphics/pokemon/vikavolt/normal.gbapal.lz"); -const u32 gMonPalette_Crabrawler[] = INCBIN_U32("graphics/pokemon/crabrawler/normal.gbapal.lz"); -const u32 gMonPalette_Crabominable[] = INCBIN_U32("graphics/pokemon/crabominable/normal.gbapal.lz"); -const u32 gMonPalette_OricorioBaile[] = INCBIN_U32("graphics/pokemon/oricorio/normal.gbapal.lz"); -const u32 gMonPalette_Cutiefly[] = INCBIN_U32("graphics/pokemon/cutiefly/normal.gbapal.lz"); -const u32 gMonPalette_Ribombee[] = INCBIN_U32("graphics/pokemon/ribombee/normal.gbapal.lz"); -const u32 gMonPalette_Rockruff[] = INCBIN_U32("graphics/pokemon/rockruff/normal.gbapal.lz"); -const u32 gMonPalette_LycanrocMidday[] = INCBIN_U32("graphics/pokemon/lycanroc/normal.gbapal.lz"); -const u32 gMonPalette_WishiwashiSolo[] = INCBIN_U32("graphics/pokemon/wishiwashi/normal.gbapal.lz"); -const u32 gMonPalette_Mareanie[] = INCBIN_U32("graphics/pokemon/mareanie/normal.gbapal.lz"); -const u32 gMonPalette_Toxapex[] = INCBIN_U32("graphics/pokemon/toxapex/normal.gbapal.lz"); -const u32 gMonPalette_Mudbray[] = INCBIN_U32("graphics/pokemon/mudbray/normal.gbapal.lz"); -const u32 gMonPalette_Mudsdale[] = INCBIN_U32("graphics/pokemon/mudsdale/normal.gbapal.lz"); -const u32 gMonPalette_Dewpider[] = INCBIN_U32("graphics/pokemon/dewpider/normal.gbapal.lz"); -const u32 gMonPalette_Araquanid[] = INCBIN_U32("graphics/pokemon/araquanid/normal.gbapal.lz"); -const u32 gMonPalette_Fomantis[] = INCBIN_U32("graphics/pokemon/fomantis/normal.gbapal.lz"); -const u32 gMonPalette_Lurantis[] = INCBIN_U32("graphics/pokemon/lurantis/normal.gbapal.lz"); -const u32 gMonPalette_Morelull[] = INCBIN_U32("graphics/pokemon/morelull/normal.gbapal.lz"); -const u32 gMonPalette_Shiinotic[] = INCBIN_U32("graphics/pokemon/shiinotic/normal.gbapal.lz"); -const u32 gMonPalette_Salandit[] = INCBIN_U32("graphics/pokemon/salandit/normal.gbapal.lz"); -const u32 gMonPalette_Salazzle[] = INCBIN_U32("graphics/pokemon/salazzle/normal.gbapal.lz"); -const u32 gMonPalette_Stufful[] = INCBIN_U32("graphics/pokemon/stufful/normal.gbapal.lz"); -const u32 gMonPalette_Bewear[] = INCBIN_U32("graphics/pokemon/bewear/normal.gbapal.lz"); -const u32 gMonPalette_Bounsweet[] = INCBIN_U32("graphics/pokemon/bounsweet/normal.gbapal.lz"); -const u32 gMonPalette_Steenee[] = INCBIN_U32("graphics/pokemon/steenee/normal.gbapal.lz"); -const u32 gMonPalette_Tsareena[] = INCBIN_U32("graphics/pokemon/tsareena/normal.gbapal.lz"); -const u32 gMonPalette_Comfey[] = INCBIN_U32("graphics/pokemon/comfey/normal.gbapal.lz"); -const u32 gMonPalette_Oranguru[] = INCBIN_U32("graphics/pokemon/oranguru/normal.gbapal.lz"); -const u32 gMonPalette_Passimian[] = INCBIN_U32("graphics/pokemon/passimian/normal.gbapal.lz"); -const u32 gMonPalette_Wimpod[] = INCBIN_U32("graphics/pokemon/wimpod/normal.gbapal.lz"); -const u32 gMonPalette_Golisopod[] = INCBIN_U32("graphics/pokemon/golisopod/normal.gbapal.lz"); -const u32 gMonPalette_Sandygast[] = INCBIN_U32("graphics/pokemon/sandygast/normal.gbapal.lz"); -const u32 gMonPalette_Palossand[] = INCBIN_U32("graphics/pokemon/palossand/normal.gbapal.lz"); -const u32 gMonPalette_Pyukumuku[] = INCBIN_U32("graphics/pokemon/pyukumuku/normal.gbapal.lz"); -const u32 gMonPalette_TypeNull[] = INCBIN_U32("graphics/pokemon/type_null/normal.gbapal.lz"); -const u32 gMonPalette_SilvallyNormal[] = INCBIN_U32("graphics/pokemon/silvally/normal.gbapal.lz"); -const u32 gMonPalette_MiniorMeteor[] = INCBIN_U32("graphics/pokemon/minior/normal.gbapal.lz"); -const u32 gMonPalette_Komala[] = INCBIN_U32("graphics/pokemon/komala/normal.gbapal.lz"); -const u32 gMonPalette_Turtonator[] = INCBIN_U32("graphics/pokemon/turtonator/normal.gbapal.lz"); -const u32 gMonPalette_Togedemaru[] = INCBIN_U32("graphics/pokemon/togedemaru/normal.gbapal.lz"); -const u32 gMonPalette_MimikyuDisguised[] = INCBIN_U32("graphics/pokemon/mimikyu/normal.gbapal.lz"); -const u32 gMonPalette_Bruxish[] = INCBIN_U32("graphics/pokemon/bruxish/normal.gbapal.lz"); -const u32 gMonPalette_Drampa[] = INCBIN_U32("graphics/pokemon/drampa/normal.gbapal.lz"); -const u32 gMonPalette_Dhelmise[] = INCBIN_U32("graphics/pokemon/dhelmise/normal.gbapal.lz"); -const u32 gMonPalette_JangmoO[] = INCBIN_U32("graphics/pokemon/jangmo_o/normal.gbapal.lz"); -const u32 gMonPalette_HakamoO[] = INCBIN_U32("graphics/pokemon/hakamo_o/normal.gbapal.lz"); -const u32 gMonPalette_KommoO[] = INCBIN_U32("graphics/pokemon/kommo_o/normal.gbapal.lz"); -const u32 gMonPalette_TapuKoko[] = INCBIN_U32("graphics/pokemon/tapu_koko/normal.gbapal.lz"); -const u32 gMonPalette_TapuLele[] = INCBIN_U32("graphics/pokemon/tapu_lele/normal.gbapal.lz"); -const u32 gMonPalette_TapuBulu[] = INCBIN_U32("graphics/pokemon/tapu_bulu/normal.gbapal.lz"); -const u32 gMonPalette_TapuFini[] = INCBIN_U32("graphics/pokemon/tapu_fini/normal.gbapal.lz"); -const u32 gMonPalette_Cosmog[] = INCBIN_U32("graphics/pokemon/cosmog/normal.gbapal.lz"); -const u32 gMonPalette_Cosmoem[] = INCBIN_U32("graphics/pokemon/cosmoem/normal.gbapal.lz"); -const u32 gMonPalette_Solgaleo[] = INCBIN_U32("graphics/pokemon/solgaleo/normal.gbapal.lz"); -const u32 gMonPalette_Lunala[] = INCBIN_U32("graphics/pokemon/lunala/normal.gbapal.lz"); -const u32 gMonPalette_Nihilego[] = INCBIN_U32("graphics/pokemon/nihilego/normal.gbapal.lz"); -const u32 gMonPalette_Buzzwole[] = INCBIN_U32("graphics/pokemon/buzzwole/normal.gbapal.lz"); -const u32 gMonPalette_Pheromosa[] = INCBIN_U32("graphics/pokemon/pheromosa/normal.gbapal.lz"); -const u32 gMonPalette_Xurkitree[] = INCBIN_U32("graphics/pokemon/xurkitree/normal.gbapal.lz"); -const u32 gMonPalette_Celesteela[] = INCBIN_U32("graphics/pokemon/celesteela/normal.gbapal.lz"); -const u32 gMonPalette_Kartana[] = INCBIN_U32("graphics/pokemon/kartana/normal.gbapal.lz"); -const u32 gMonPalette_Guzzlord[] = INCBIN_U32("graphics/pokemon/guzzlord/normal.gbapal.lz"); -const u32 gMonPalette_Necrozma[] = INCBIN_U32("graphics/pokemon/necrozma/normal.gbapal.lz"); -const u32 gMonPalette_Magearna[] = INCBIN_U32("graphics/pokemon/magearna/normal.gbapal.lz"); -const u32 gMonPalette_Marshadow[] = INCBIN_U32("graphics/pokemon/marshadow/normal.gbapal.lz"); -const u32 gMonPalette_Poipole[] = INCBIN_U32("graphics/pokemon/poipole/normal.gbapal.lz"); -const u32 gMonPalette_Naganadel[] = INCBIN_U32("graphics/pokemon/naganadel/normal.gbapal.lz"); -const u32 gMonPalette_Stakataka[] = INCBIN_U32("graphics/pokemon/stakataka/normal.gbapal.lz"); -const u32 gMonPalette_Blacephalon[] = INCBIN_U32("graphics/pokemon/blacephalon/normal.gbapal.lz"); -const u32 gMonPalette_Zeraora[] = INCBIN_U32("graphics/pokemon/zeraora/normal.gbapal.lz"); -const u32 gMonPalette_Meltan[] = INCBIN_U32("graphics/pokemon/meltan/normal.gbapal.lz"); -const u32 gMonPalette_Melmetal[] = INCBIN_U32("graphics/pokemon/melmetal/normal.gbapal.lz"); -#endif -#if P_GEN_8_POKEMON == TRUE -const u32 gMonPalette_Grookey[] = INCBIN_U32("graphics/pokemon/grookey/normal.gbapal.lz"); -const u32 gMonPalette_Thwackey[] = INCBIN_U32("graphics/pokemon/thwackey/normal.gbapal.lz"); -const u32 gMonPalette_Rillaboom[] = INCBIN_U32("graphics/pokemon/rillaboom/normal.gbapal.lz"); -const u32 gMonPalette_Scorbunny[] = INCBIN_U32("graphics/pokemon/scorbunny/normal.gbapal.lz"); -const u32 gMonPalette_Raboot[] = INCBIN_U32("graphics/pokemon/raboot/normal.gbapal.lz"); -const u32 gMonPalette_Cinderace[] = INCBIN_U32("graphics/pokemon/cinderace/normal.gbapal.lz"); -const u32 gMonPalette_Sobble[] = INCBIN_U32("graphics/pokemon/sobble/normal.gbapal.lz"); -const u32 gMonPalette_Drizzile[] = INCBIN_U32("graphics/pokemon/drizzile/normal.gbapal.lz"); -const u32 gMonPalette_Inteleon[] = INCBIN_U32("graphics/pokemon/inteleon/normal.gbapal.lz"); -const u32 gMonPalette_Skwovet[] = INCBIN_U32("graphics/pokemon/skwovet/normal.gbapal.lz"); -const u32 gMonPalette_Greedent[] = INCBIN_U32("graphics/pokemon/greedent/normal.gbapal.lz"); -const u32 gMonPalette_Rookidee[] = INCBIN_U32("graphics/pokemon/rookidee/normal.gbapal.lz"); -const u32 gMonPalette_Corvisquire[] = INCBIN_U32("graphics/pokemon/corvisquire/normal.gbapal.lz"); -const u32 gMonPalette_Corviknight[] = INCBIN_U32("graphics/pokemon/corviknight/normal.gbapal.lz"); -const u32 gMonPalette_Blipbug[] = INCBIN_U32("graphics/pokemon/blipbug/normal.gbapal.lz"); -const u32 gMonPalette_Dottler[] = INCBIN_U32("graphics/pokemon/dottler/normal.gbapal.lz"); -const u32 gMonPalette_Orbeetle[] = INCBIN_U32("graphics/pokemon/orbeetle/normal.gbapal.lz"); -const u32 gMonPalette_Nickit[] = INCBIN_U32("graphics/pokemon/nickit/normal.gbapal.lz"); -const u32 gMonPalette_Thievul[] = INCBIN_U32("graphics/pokemon/thievul/normal.gbapal.lz"); -const u32 gMonPalette_Gossifleur[] = INCBIN_U32("graphics/pokemon/gossifleur/normal.gbapal.lz"); -const u32 gMonPalette_Eldegoss[] = INCBIN_U32("graphics/pokemon/eldegoss/normal.gbapal.lz"); -const u32 gMonPalette_Wooloo[] = INCBIN_U32("graphics/pokemon/wooloo/normal.gbapal.lz"); -const u32 gMonPalette_Dubwool[] = INCBIN_U32("graphics/pokemon/dubwool/normal.gbapal.lz"); -const u32 gMonPalette_Chewtle[] = INCBIN_U32("graphics/pokemon/chewtle/normal.gbapal.lz"); -const u32 gMonPalette_Drednaw[] = INCBIN_U32("graphics/pokemon/drednaw/normal.gbapal.lz"); -const u32 gMonPalette_Yamper[] = INCBIN_U32("graphics/pokemon/yamper/normal.gbapal.lz"); -const u32 gMonPalette_Boltund[] = INCBIN_U32("graphics/pokemon/boltund/normal.gbapal.lz"); -const u32 gMonPalette_Rolycoly[] = INCBIN_U32("graphics/pokemon/rolycoly/normal.gbapal.lz"); -const u32 gMonPalette_Carkol[] = INCBIN_U32("graphics/pokemon/carkol/normal.gbapal.lz"); -const u32 gMonPalette_Coalossal[] = INCBIN_U32("graphics/pokemon/coalossal/normal.gbapal.lz"); -const u32 gMonPalette_Applin[] = INCBIN_U32("graphics/pokemon/applin/normal.gbapal.lz"); -const u32 gMonPalette_Flapple[] = INCBIN_U32("graphics/pokemon/flapple/normal.gbapal.lz"); -const u32 gMonPalette_Appletun[] = INCBIN_U32("graphics/pokemon/appletun/normal.gbapal.lz"); -const u32 gMonPalette_Silicobra[] = INCBIN_U32("graphics/pokemon/silicobra/normal.gbapal.lz"); -const u32 gMonPalette_Sandaconda[] = INCBIN_U32("graphics/pokemon/sandaconda/normal.gbapal.lz"); -const u32 gMonPalette_Cramorant[] = INCBIN_U32("graphics/pokemon/cramorant/normal.gbapal.lz"); -const u32 gMonPalette_Arrokuda[] = INCBIN_U32("graphics/pokemon/arrokuda/normal.gbapal.lz"); -const u32 gMonPalette_Barraskewda[] = INCBIN_U32("graphics/pokemon/barraskewda/normal.gbapal.lz"); -const u32 gMonPalette_Toxel[] = INCBIN_U32("graphics/pokemon/toxel/normal.gbapal.lz"); -const u32 gMonPalette_ToxtricityAmped[] = INCBIN_U32("graphics/pokemon/toxtricity/normal.gbapal.lz"); -const u32 gMonPalette_Sizzlipede[] = INCBIN_U32("graphics/pokemon/sizzlipede/normal.gbapal.lz"); -const u32 gMonPalette_Centiskorch[] = INCBIN_U32("graphics/pokemon/centiskorch/normal.gbapal.lz"); -const u32 gMonPalette_Clobbopus[] = INCBIN_U32("graphics/pokemon/clobbopus/normal.gbapal.lz"); -const u32 gMonPalette_Grapploct[] = INCBIN_U32("graphics/pokemon/grapploct/normal.gbapal.lz"); -const u32 gMonPalette_Sinistea[] = INCBIN_U32("graphics/pokemon/sinistea/normal.gbapal.lz"); -const u32 gMonPalette_Polteageist[] = INCBIN_U32("graphics/pokemon/polteageist/normal.gbapal.lz"); -const u32 gMonPalette_Hatenna[] = INCBIN_U32("graphics/pokemon/hatenna/normal.gbapal.lz"); -const u32 gMonPalette_Hattrem[] = INCBIN_U32("graphics/pokemon/hattrem/normal.gbapal.lz"); -const u32 gMonPalette_Hatterene[] = INCBIN_U32("graphics/pokemon/hatterene/normal.gbapal.lz"); -const u32 gMonPalette_Impidimp[] = INCBIN_U32("graphics/pokemon/impidimp/normal.gbapal.lz"); -const u32 gMonPalette_Morgrem[] = INCBIN_U32("graphics/pokemon/morgrem/normal.gbapal.lz"); -const u32 gMonPalette_Grimmsnarl[] = INCBIN_U32("graphics/pokemon/grimmsnarl/normal.gbapal.lz"); -const u32 gMonPalette_Obstagoon[] = INCBIN_U32("graphics/pokemon/obstagoon/normal.gbapal.lz"); -const u32 gMonPalette_Perrserker[] = INCBIN_U32("graphics/pokemon/perrserker/normal.gbapal.lz"); -const u32 gMonPalette_Cursola[] = INCBIN_U32("graphics/pokemon/cursola/normal.gbapal.lz"); -const u32 gMonPalette_Sirfetchd[] = INCBIN_U32("graphics/pokemon/sirfetchd/normal.gbapal.lz"); -const u32 gMonPalette_MrRime[] = INCBIN_U32("graphics/pokemon/mr_rime/normal.gbapal.lz"); -const u32 gMonPalette_Runerigus[] = INCBIN_U32("graphics/pokemon/runerigus/normal.gbapal.lz"); -const u32 gMonPalette_Milcery[] = INCBIN_U32("graphics/pokemon/milcery/normal.gbapal.lz"); -const u32 gMonPalette_Alcremie[] = INCBIN_U32("graphics/pokemon/alcremie/normal.gbapal.lz"); -const u32 gMonPalette_Falinks[] = INCBIN_U32("graphics/pokemon/falinks/normal.gbapal.lz"); -const u32 gMonPalette_Pincurchin[] = INCBIN_U32("graphics/pokemon/pincurchin/normal.gbapal.lz"); -const u32 gMonPalette_Snom[] = INCBIN_U32("graphics/pokemon/snom/normal.gbapal.lz"); -const u32 gMonPalette_Frosmoth[] = INCBIN_U32("graphics/pokemon/frosmoth/normal.gbapal.lz"); -const u32 gMonPalette_Stonjourner[] = INCBIN_U32("graphics/pokemon/stonjourner/normal.gbapal.lz"); -const u32 gMonPalette_EiscueIceFace[] = INCBIN_U32("graphics/pokemon/eiscue/normal.gbapal.lz"); -const u32 gMonPalette_IndeedeeMale[] = INCBIN_U32("graphics/pokemon/indeedee/normal.gbapal.lz"); -const u32 gMonPalette_MorpekoFullBelly[] = INCBIN_U32("graphics/pokemon/morpeko/normal.gbapal.lz"); -const u32 gMonPalette_Cufant[] = INCBIN_U32("graphics/pokemon/cufant/normal.gbapal.lz"); -const u32 gMonPalette_Copperajah[] = INCBIN_U32("graphics/pokemon/copperajah/normal.gbapal.lz"); -const u32 gMonPalette_Dracozolt[] = INCBIN_U32("graphics/pokemon/dracozolt/normal.gbapal.lz"); -const u32 gMonPalette_Arctozolt[] = INCBIN_U32("graphics/pokemon/arctozolt/normal.gbapal.lz"); -const u32 gMonPalette_Dracovish[] = INCBIN_U32("graphics/pokemon/dracovish/normal.gbapal.lz"); -const u32 gMonPalette_Arctovish[] = INCBIN_U32("graphics/pokemon/arctovish/normal.gbapal.lz"); -const u32 gMonPalette_Duraludon[] = INCBIN_U32("graphics/pokemon/duraludon/normal.gbapal.lz"); -const u32 gMonPalette_Dreepy[] = INCBIN_U32("graphics/pokemon/dreepy/normal.gbapal.lz"); -const u32 gMonPalette_Drakloak[] = INCBIN_U32("graphics/pokemon/drakloak/normal.gbapal.lz"); -const u32 gMonPalette_Dragapult[] = INCBIN_U32("graphics/pokemon/dragapult/normal.gbapal.lz"); -const u32 gMonPalette_ZacianHeroOfManyBattles[] = INCBIN_U32("graphics/pokemon/zacian/normal.gbapal.lz"); -const u32 gMonPalette_ZamazentaHeroOfManyBattles[] = INCBIN_U32("graphics/pokemon/zamazenta/normal.gbapal.lz"); -const u32 gMonPalette_Eternatus[] = INCBIN_U32("graphics/pokemon/eternatus/normal.gbapal.lz"); -const u32 gMonPalette_Kubfu[] = INCBIN_U32("graphics/pokemon/kubfu/normal.gbapal.lz"); -const u32 gMonPalette_UrshifuSingleStrikeStyle[] = INCBIN_U32("graphics/pokemon/urshifu/normal.gbapal.lz"); -const u32 gMonPalette_Zarude[] = INCBIN_U32("graphics/pokemon/zarude/normal.gbapal.lz"); -const u32 gMonPalette_Regieleki[] = INCBIN_U32("graphics/pokemon/regieleki/normal.gbapal.lz"); -const u32 gMonPalette_Regidrago[] = INCBIN_U32("graphics/pokemon/regidrago/normal.gbapal.lz"); -const u32 gMonPalette_Glastrier[] = INCBIN_U32("graphics/pokemon/glastrier/normal.gbapal.lz"); -const u32 gMonPalette_Spectrier[] = INCBIN_U32("graphics/pokemon/spectrier/normal.gbapal.lz"); -const u32 gMonPalette_Calyrex[] = INCBIN_U32("graphics/pokemon/calyrex/normal.gbapal.lz"); -const u32 gMonPalette_Wyrdeer[] = INCBIN_U32("graphics/pokemon/wyrdeer/normal.gbapal.lz"); -const u32 gMonPalette_Kleavor[] = INCBIN_U32("graphics/pokemon/kleavor/normal.gbapal.lz"); -const u32 gMonPalette_Ursaluna[] = INCBIN_U32("graphics/pokemon/ursaluna/normal.gbapal.lz"); -const u32 gMonPalette_BasculegionMale[] = INCBIN_U32("graphics/pokemon/basculegion/normal.gbapal.lz"); -const u32 gMonPalette_Sneasler[] = INCBIN_U32("graphics/pokemon/sneasler/normal.gbapal.lz"); -const u32 gMonPalette_Overqwil[] = INCBIN_U32("graphics/pokemon/overqwil/normal.gbapal.lz"); -const u32 gMonPalette_EnamorusIncarnate[] = INCBIN_U32("graphics/pokemon/enamorus/normal.gbapal.lz"); -#endif -const u32 gMonPalette_VenusaurMega[] = INCBIN_U32("graphics/pokemon/venusaur/mega/normal.gbapal.lz"); -const u32 gMonPalette_CharizardMegaX[] = INCBIN_U32("graphics/pokemon/charizard/mega_x/normal.gbapal.lz"); -const u32 gMonPalette_CharizardMegaY[] = INCBIN_U32("graphics/pokemon/charizard/mega_y/normal.gbapal.lz"); -const u32 gMonPalette_BlastoiseMega[] = INCBIN_U32("graphics/pokemon/blastoise/mega/normal.gbapal.lz"); -const u32 gMonPalette_BeedrillMega[] = INCBIN_U32("graphics/pokemon/beedrill/mega/normal.gbapal.lz"); -const u32 gMonPalette_PidgeotMega[] = INCBIN_U32("graphics/pokemon/pidgeot/mega/normal.gbapal.lz"); -const u32 gMonPalette_AlakazamMega[] = INCBIN_U32("graphics/pokemon/alakazam/mega/normal.gbapal.lz"); -const u32 gMonPalette_SlowbroMega[] = INCBIN_U32("graphics/pokemon/slowbro/mega/normal.gbapal.lz"); -const u32 gMonPalette_GengarMega[] = INCBIN_U32("graphics/pokemon/gengar/mega/normal.gbapal.lz"); -const u32 gMonPalette_KangaskhanMega[] = INCBIN_U32("graphics/pokemon/kangaskhan/mega/normal.gbapal.lz"); -const u32 gMonPalette_PinsirMega[] = INCBIN_U32("graphics/pokemon/pinsir/mega/normal.gbapal.lz"); -const u32 gMonPalette_GyaradosMega[] = INCBIN_U32("graphics/pokemon/gyarados/mega/normal.gbapal.lz"); -const u32 gMonPalette_AerodactylMega[] = INCBIN_U32("graphics/pokemon/aerodactyl/mega/normal.gbapal.lz"); -const u32 gMonPalette_MewtwoMegaX[] = INCBIN_U32("graphics/pokemon/mewtwo/mega_x/normal.gbapal.lz"); -const u32 gMonPalette_MewtwoMegaY[] = INCBIN_U32("graphics/pokemon/mewtwo/mega_y/normal.gbapal.lz"); -const u32 gMonPalette_AmpharosMega[] = INCBIN_U32("graphics/pokemon/ampharos/mega/normal.gbapal.lz"); -const u32 gMonPalette_SteelixMega[] = INCBIN_U32("graphics/pokemon/steelix/mega/normal.gbapal.lz"); -const u32 gMonPalette_ScizorMega[] = INCBIN_U32("graphics/pokemon/scizor/mega/normal.gbapal.lz"); -const u32 gMonPalette_HeracrossMega[] = INCBIN_U32("graphics/pokemon/heracross/mega/normal.gbapal.lz"); -const u32 gMonPalette_HoundoomMega[] = INCBIN_U32("graphics/pokemon/houndoom/mega/normal.gbapal.lz"); -const u32 gMonPalette_TyranitarMega[] = INCBIN_U32("graphics/pokemon/tyranitar/mega/normal.gbapal.lz"); -const u32 gMonPalette_SceptileMega[] = INCBIN_U32("graphics/pokemon/sceptile/mega/normal.gbapal.lz"); -const u32 gMonPalette_BlazikenMega[] = INCBIN_U32("graphics/pokemon/blaziken/mega/normal.gbapal.lz"); -const u32 gMonPalette_SwampertMega[] = INCBIN_U32("graphics/pokemon/swampert/mega/normal.gbapal.lz"); -const u32 gMonPalette_GardevoirMega[] = INCBIN_U32("graphics/pokemon/gardevoir/mega/normal.gbapal.lz"); -const u32 gMonPalette_SableyeMega[] = INCBIN_U32("graphics/pokemon/sableye/mega/normal.gbapal.lz"); -const u32 gMonPalette_MawileMega[] = INCBIN_U32("graphics/pokemon/mawile/mega/normal.gbapal.lz"); -const u32 gMonPalette_AggronMega[] = INCBIN_U32("graphics/pokemon/aggron/mega/normal.gbapal.lz"); -const u32 gMonPalette_MedichamMega[] = INCBIN_U32("graphics/pokemon/medicham/mega/normal.gbapal.lz"); -const u32 gMonPalette_ManectricMega[] = INCBIN_U32("graphics/pokemon/manectric/mega/normal.gbapal.lz"); -const u32 gMonPalette_SharpedoMega[] = INCBIN_U32("graphics/pokemon/sharpedo/mega/normal.gbapal.lz"); -const u32 gMonPalette_CameruptMega[] = INCBIN_U32("graphics/pokemon/camerupt/mega/normal.gbapal.lz"); -const u32 gMonPalette_AltariaMega[] = INCBIN_U32("graphics/pokemon/altaria/mega/normal.gbapal.lz"); -const u32 gMonPalette_BanetteMega[] = INCBIN_U32("graphics/pokemon/banette/mega/normal.gbapal.lz"); -const u32 gMonPalette_AbsolMega[] = INCBIN_U32("graphics/pokemon/absol/mega/normal.gbapal.lz"); -const u32 gMonPalette_GlalieMega[] = INCBIN_U32("graphics/pokemon/glalie/mega/normal.gbapal.lz"); -const u32 gMonPalette_SalamenceMega[] = INCBIN_U32("graphics/pokemon/salamence/mega/normal.gbapal.lz"); -const u32 gMonPalette_MetagrossMega[] = INCBIN_U32("graphics/pokemon/metagross/mega/normal.gbapal.lz"); -const u32 gMonPalette_LatiasMega[] = INCBIN_U32("graphics/pokemon/latias/mega/normal.gbapal.lz"); -const u32 gMonPalette_LatiosMega[] = INCBIN_U32("graphics/pokemon/latios/mega/normal.gbapal.lz"); -#if P_GEN_4_POKEMON == TRUE -const u32 gMonPalette_LopunnyMega[] = INCBIN_U32("graphics/pokemon/lopunny/mega/normal.gbapal.lz"); -const u32 gMonPalette_GarchompMega[] = INCBIN_U32("graphics/pokemon/garchomp/mega/normal.gbapal.lz"); -const u32 gMonPalette_LucarioMega[] = INCBIN_U32("graphics/pokemon/lucario/mega/normal.gbapal.lz"); -const u32 gMonPalette_AbomasnowMega[] = INCBIN_U32("graphics/pokemon/abomasnow/mega/normal.gbapal.lz"); -const u32 gMonPalette_GalladeMega[] = INCBIN_U32("graphics/pokemon/gallade/mega/normal.gbapal.lz"); -#endif -#if P_GEN_5_POKEMON == TRUE -const u32 gMonPalette_AudinoMega[] = INCBIN_U32("graphics/pokemon/audino/mega/normal.gbapal.lz"); -#endif -#if P_GEN_6_POKEMON == TRUE -const u32 gMonPalette_DiancieMega[] = INCBIN_U32("graphics/pokemon/diancie/mega/normal.gbapal.lz"); -#endif -const u32 gMonPalette_RayquazaMega[] = INCBIN_U32("graphics/pokemon/rayquaza/mega/normal.gbapal.lz"); -const u32 gMonPalette_KyogrePrimal[] = INCBIN_U32("graphics/pokemon/kyogre/primal/normal.gbapal.lz"); -const u32 gMonPalette_GroudonPrimal[] = INCBIN_U32("graphics/pokemon/groudon/primal/normal.gbapal.lz"); -const u32 gMonPalette_RattataAlolan[] = INCBIN_U32("graphics/pokemon/rattata/alolan/normal.gbapal.lz"); -const u32 gMonPalette_RaticateAlolan[] = INCBIN_U32("graphics/pokemon/raticate/alolan/normal.gbapal.lz"); -const u32 gMonPalette_RaichuAlolan[] = INCBIN_U32("graphics/pokemon/raichu/alolan/normal.gbapal.lz"); -const u32 gMonPalette_SandshrewAlolan[] = INCBIN_U32("graphics/pokemon/sandshrew/alolan/normal.gbapal.lz"); -const u32 gMonPalette_SandslashAlolan[] = INCBIN_U32("graphics/pokemon/sandslash/alolan/normal.gbapal.lz"); -const u32 gMonPalette_VulpixAlolan[] = INCBIN_U32("graphics/pokemon/vulpix/alolan/normal.gbapal.lz"); -const u32 gMonPalette_NinetalesAlolan[] = INCBIN_U32("graphics/pokemon/ninetales/alolan/normal.gbapal.lz"); -const u32 gMonPalette_DiglettAlolan[] = INCBIN_U32("graphics/pokemon/diglett/alolan/normal.gbapal.lz"); -const u32 gMonPalette_DugtrioAlolan[] = INCBIN_U32("graphics/pokemon/dugtrio/alolan/normal.gbapal.lz"); -const u32 gMonPalette_MeowthAlolan[] = INCBIN_U32("graphics/pokemon/meowth/alolan/normal.gbapal.lz"); -const u32 gMonPalette_PersianAlolan[] = INCBIN_U32("graphics/pokemon/persian/alolan/normal.gbapal.lz"); -const u32 gMonPalette_GeodudeAlolan[] = INCBIN_U32("graphics/pokemon/geodude/alolan/normal.gbapal.lz"); -const u32 gMonPalette_GravelerAlolan[] = INCBIN_U32("graphics/pokemon/graveler/alolan/normal.gbapal.lz"); -const u32 gMonPalette_GolemAlolan[] = INCBIN_U32("graphics/pokemon/golem/alolan/normal.gbapal.lz"); -const u32 gMonPalette_GrimerAlolan[] = INCBIN_U32("graphics/pokemon/grimer/alolan/normal.gbapal.lz"); -const u32 gMonPalette_MukAlolan[] = INCBIN_U32("graphics/pokemon/muk/alolan/normal.gbapal.lz"); -const u32 gMonPalette_ExeggutorAlolan[] = INCBIN_U32("graphics/pokemon/exeggutor/alolan/normal.gbapal.lz"); -const u32 gMonPalette_MarowakAlolan[] = INCBIN_U32("graphics/pokemon/marowak/alolan/normal.gbapal.lz"); -const u32 gMonPalette_MeowthGalarian[] = INCBIN_U32("graphics/pokemon/meowth/galarian/normal.gbapal.lz"); -const u32 gMonPalette_PonytaGalarian[] = INCBIN_U32("graphics/pokemon/ponyta/galarian/normal.gbapal.lz"); -const u32 gMonPalette_RapidashGalarian[] = INCBIN_U32("graphics/pokemon/rapidash/galarian/normal.gbapal.lz"); -const u32 gMonPalette_SlowpokeGalarian[] = INCBIN_U32("graphics/pokemon/slowpoke/galarian/normal.gbapal.lz"); -const u32 gMonPalette_SlowbroGalarian[] = INCBIN_U32("graphics/pokemon/slowbro/galarian/normal.gbapal.lz"); -const u32 gMonPalette_FarfetchdGalarian[] = INCBIN_U32("graphics/pokemon/farfetchd/galarian/normal.gbapal.lz"); -const u32 gMonPalette_WeezingGalarian[] = INCBIN_U32("graphics/pokemon/weezing/galarian/normal.gbapal.lz"); -const u32 gMonPalette_MrMimeGalarian[] = INCBIN_U32("graphics/pokemon/mr_mime/galarian/normal.gbapal.lz"); -const u32 gMonPalette_ArticunoGalarian[] = INCBIN_U32("graphics/pokemon/articuno/galarian/normal.gbapal.lz"); -const u32 gMonPalette_ZapdosGalarian[] = INCBIN_U32("graphics/pokemon/zapdos/galarian/normal.gbapal.lz"); -const u32 gMonPalette_MoltresGalarian[] = INCBIN_U32("graphics/pokemon/moltres/galarian/normal.gbapal.lz"); -const u32 gMonPalette_SlowkingGalarian[] = INCBIN_U32("graphics/pokemon/slowking/galarian/normal.gbapal.lz"); -const u32 gMonPalette_CorsolaGalarian[] = INCBIN_U32("graphics/pokemon/corsola/galarian/normal.gbapal.lz"); -const u32 gMonPalette_ZigzagoonGalarian[] = INCBIN_U32("graphics/pokemon/zigzagoon/galarian/normal.gbapal.lz"); -const u32 gMonPalette_LinooneGalarian[] = INCBIN_U32("graphics/pokemon/linoone/galarian/normal.gbapal.lz"); -#if P_GEN_5_POKEMON == TRUE -const u32 gMonPalette_DarumakaGalarian[] = INCBIN_U32("graphics/pokemon/darumaka/galarian/normal.gbapal.lz"); -const u32 gMonPalette_DarmanitanGalarianStandardMode[] = INCBIN_U32("graphics/pokemon/darmanitan/galarian/normal.gbapal.lz"); -const u32 gMonPalette_YamaskGalarian[] = INCBIN_U32("graphics/pokemon/yamask/galarian/normal.gbapal.lz"); -const u32 gMonPalette_StunfiskGalarian[] = INCBIN_U32("graphics/pokemon/stunfisk/galarian/normal.gbapal.lz"); -#endif -const u32 gMonPalette_GrowlitheHisuian[] = INCBIN_U32("graphics/pokemon/growlithe/hisuian/normal.gbapal.lz"); -const u32 gMonPalette_ArcanineHisuian[] = INCBIN_U32("graphics/pokemon/arcanine/hisuian/normal.gbapal.lz"); -const u32 gMonPalette_VoltorbHisuian[] = INCBIN_U32("graphics/pokemon/voltorb/hisuian/normal.gbapal.lz"); -const u32 gMonPalette_ElectrodeHisuian[] = INCBIN_U32("graphics/pokemon/electrode/hisuian/normal.gbapal.lz"); -const u32 gMonPalette_TyphlosionHisuian[] = INCBIN_U32("graphics/pokemon/typhlosion/hisuian/normal.gbapal.lz"); -const u32 gMonPalette_QwilfishHisuian[] = INCBIN_U32("graphics/pokemon/qwilfish/hisuian/normal.gbapal.lz"); -const u32 gMonPalette_SneaselHisuian[] = INCBIN_U32("graphics/pokemon/sneasel/hisuian/normal.gbapal.lz"); -#if P_GEN_5_POKEMON == TRUE -const u32 gMonPalette_SamurottHisuian[] = INCBIN_U32("graphics/pokemon/samurott/hisuian/normal.gbapal.lz"); -const u32 gMonPalette_LilligantHisuian[] = INCBIN_U32("graphics/pokemon/lilligant/hisuian/normal.gbapal.lz"); -const u32 gMonPalette_ZoruaHisuian[] = INCBIN_U32("graphics/pokemon/zorua/hisuian/normal.gbapal.lz"); -const u32 gMonPalette_ZoroarkHisuian[] = INCBIN_U32("graphics/pokemon/zoroark/hisuian/normal.gbapal.lz"); -const u32 gMonPalette_BraviaryHisuian[] = INCBIN_U32("graphics/pokemon/braviary/hisuian/normal.gbapal.lz"); -#endif -#if P_GEN_6_POKEMON == TRUE -const u32 gMonPalette_SliggooHisuian[] = INCBIN_U32("graphics/pokemon/sliggoo/hisuian/normal.gbapal.lz"); -const u32 gMonPalette_GoodraHisuian[] = INCBIN_U32("graphics/pokemon/goodra/hisuian/normal.gbapal.lz"); -const u32 gMonPalette_AvaluggHisuian[] = INCBIN_U32("graphics/pokemon/avalugg/hisuian/normal.gbapal.lz"); -#endif -#if P_GEN_7_POKEMON == TRUE -const u32 gMonPalette_DecidueyeHisuian[] = INCBIN_U32("graphics/pokemon/decidueye/hisuian/normal.gbapal.lz"); -#endif -const u32 gMonPalette_PikachuCosplay[] = INCBIN_U32("graphics/pokemon/pikachu/cosplay/normal.gbapal.lz"); -const u32 gMonPalette_PikachuRockStar[] = INCBIN_U32("graphics/pokemon/pikachu/rock_star/normal.gbapal.lz"); -const u32 gMonPalette_PikachuBelle[] = INCBIN_U32("graphics/pokemon/pikachu/belle/normal.gbapal.lz"); -const u32 gMonPalette_PikachuPopStar[] = INCBIN_U32("graphics/pokemon/pikachu/pop_star/normal.gbapal.lz"); -const u32 gMonPalette_PikachuPhD[] = INCBIN_U32("graphics/pokemon/pikachu/ph_d/normal.gbapal.lz"); -const u32 gMonPalette_PikachuLibre[] = INCBIN_U32("graphics/pokemon/pikachu/libre/normal.gbapal.lz"); -const u32 gMonPalette_PikachuOriginalCap[] = INCBIN_U32("graphics/pokemon/pikachu/original_cap/normal.gbapal.lz"); -const u32 gMonPalette_PikachuHoennCap[] = INCBIN_U32("graphics/pokemon/pikachu/hoenn_cap/normal.gbapal.lz"); -const u32 gMonPalette_PikachuSinnohCap[] = INCBIN_U32("graphics/pokemon/pikachu/sinnoh_cap/normal.gbapal.lz"); -const u32 gMonPalette_PikachuUnovaCap[] = INCBIN_U32("graphics/pokemon/pikachu/unova_cap/normal.gbapal.lz"); -const u32 gMonPalette_PikachuKalosCap[] = INCBIN_U32("graphics/pokemon/pikachu/kalos_cap/normal.gbapal.lz"); -const u32 gMonPalette_PikachuAlolaCap[] = INCBIN_U32("graphics/pokemon/pikachu/alola_cap/normal.gbapal.lz"); -const u32 gMonPalette_PikachuPartnerCap[] = INCBIN_U32("graphics/pokemon/pikachu/partner_cap/normal.gbapal.lz"); -const u32 gMonPalette_PikachuWorldCap[] = INCBIN_U32("graphics/pokemon/pikachu/world_cap/normal.gbapal.lz"); -const u32 gMonPalette_PichuSpikyEared[] = INCBIN_U32("graphics/pokemon/pichu/spiky_eared/normal.gbapal.lz"); -const u32 gMonPalette_CastformSunny[] = INCBIN_U32("graphics/pokemon/castform/sunny/normal.gbapal.lz"); -const u32 gMonPalette_CastformRainy[] = INCBIN_U32("graphics/pokemon/castform/rainy/normal.gbapal.lz"); -const u32 gMonPalette_CastformSnowy[] = INCBIN_U32("graphics/pokemon/castform/snowy/normal.gbapal.lz"); -const u32 gMonPalette_DeoxysAttack[] = INCBIN_U32("graphics/pokemon/deoxys/attack/normal.gbapal.lz"); -const u32 gMonPalette_DeoxysDefense[] = INCBIN_U32("graphics/pokemon/deoxys/defense/normal.gbapal.lz"); -const u32 gMonPalette_DeoxysSpeed[] = INCBIN_U32("graphics/pokemon/deoxys/speed/normal.gbapal.lz"); -#if P_GEN_4_POKEMON == TRUE -const u32 gMonPalette_BurmySandyCloak[] = INCBIN_U32("graphics/pokemon/burmy/sandy_cloak/normal.gbapal.lz"); -const u32 gMonPalette_BurmyTrashCloak[] = INCBIN_U32("graphics/pokemon/burmy/trash_cloak/normal.gbapal.lz"); -const u32 gMonPalette_WormadamSandyCloak[] = INCBIN_U32("graphics/pokemon/wormadam/sandy_cloak/normal.gbapal.lz"); -const u32 gMonPalette_WormadamTrashCloak[] = INCBIN_U32("graphics/pokemon/wormadam/trash_cloak/normal.gbapal.lz"); -const u32 gMonPalette_CherrimSunshine[] = INCBIN_U32("graphics/pokemon/cherrim/sunshine/normal.gbapal.lz"); -const u32 gMonPalette_ShellosEastSea[] = INCBIN_U32("graphics/pokemon/shellos/east_sea/normal.gbapal.lz"); -const u32 gMonPalette_GastrodonEastSea[] = INCBIN_U32("graphics/pokemon/gastrodon/east_sea/normal.gbapal.lz"); -const u32 gMonPalette_RotomHeat[] = INCBIN_U32("graphics/pokemon/rotom/heat/normal.gbapal.lz"); -const u32 gMonPalette_RotomWash[] = INCBIN_U32("graphics/pokemon/rotom/wash/normal.gbapal.lz"); -const u32 gMonPalette_RotomFrost[] = INCBIN_U32("graphics/pokemon/rotom/frost/normal.gbapal.lz"); -const u32 gMonPalette_RotomFan[] = INCBIN_U32("graphics/pokemon/rotom/fan/normal.gbapal.lz"); -const u32 gMonPalette_RotomMow[] = INCBIN_U32("graphics/pokemon/rotom/mow/normal.gbapal.lz"); -const u32 gMonPalette_DialgaOrigin[] = INCBIN_U32("graphics/pokemon/dialga/origin/normal.gbapal.lz"); -const u32 gMonPalette_PalkiaOrigin[] = INCBIN_U32("graphics/pokemon/palkia/origin/normal.gbapal.lz"); -const u32 gMonPalette_GiratinaOrigin[] = INCBIN_U32("graphics/pokemon/giratina/origin/normal.gbapal.lz"); -const u32 gMonPalette_ShayminSky[] = INCBIN_U32("graphics/pokemon/shaymin/sky/normal.gbapal.lz"); -const u32 gMonPalette_ArceusFighting[] = INCBIN_U32("graphics/pokemon/arceus/fighting/normal.gbapal.lz"); -const u32 gMonPalette_ArceusFlying[] = INCBIN_U32("graphics/pokemon/arceus/flying/normal.gbapal.lz"); -const u32 gMonPalette_ArceusPoison[] = INCBIN_U32("graphics/pokemon/arceus/poison/normal.gbapal.lz"); -const u32 gMonPalette_ArceusGround[] = INCBIN_U32("graphics/pokemon/arceus/ground/normal.gbapal.lz"); -const u32 gMonPalette_ArceusRock[] = INCBIN_U32("graphics/pokemon/arceus/rock/normal.gbapal.lz"); -const u32 gMonPalette_ArceusBug[] = INCBIN_U32("graphics/pokemon/arceus/bug/normal.gbapal.lz"); -const u32 gMonPalette_ArceusGhost[] = INCBIN_U32("graphics/pokemon/arceus/ghost/normal.gbapal.lz"); -const u32 gMonPalette_ArceusSteel[] = INCBIN_U32("graphics/pokemon/arceus/steel/normal.gbapal.lz"); -const u32 gMonPalette_ArceusFire[] = INCBIN_U32("graphics/pokemon/arceus/fire/normal.gbapal.lz"); -const u32 gMonPalette_ArceusWater[] = INCBIN_U32("graphics/pokemon/arceus/water/normal.gbapal.lz"); -const u32 gMonPalette_ArceusGrass[] = INCBIN_U32("graphics/pokemon/arceus/grass/normal.gbapal.lz"); -const u32 gMonPalette_ArceusElectric[] = INCBIN_U32("graphics/pokemon/arceus/electric/normal.gbapal.lz"); -const u32 gMonPalette_ArceusPsychic[] = INCBIN_U32("graphics/pokemon/arceus/psychic/normal.gbapal.lz"); -const u32 gMonPalette_ArceusIce[] = INCBIN_U32("graphics/pokemon/arceus/ice/normal.gbapal.lz"); -const u32 gMonPalette_ArceusDragon[] = INCBIN_U32("graphics/pokemon/arceus/dragon/normal.gbapal.lz"); -const u32 gMonPalette_ArceusDark[] = INCBIN_U32("graphics/pokemon/arceus/dark/normal.gbapal.lz"); -const u32 gMonPalette_ArceusFairy[] = INCBIN_U32("graphics/pokemon/arceus/fairy/normal.gbapal.lz"); -#endif -#if P_GEN_5_POKEMON == TRUE -const u32 gMonPalette_BasculinBlueStriped[] = INCBIN_U32("graphics/pokemon/basculin/blue_striped/normal.gbapal.lz"); -const u32 gMonPalette_BasculinWhiteStriped[] = INCBIN_U32("graphics/pokemon/basculin/white_striped/normal.gbapal.lz"); -const u32 gMonPalette_DarmanitanZenMode[] = INCBIN_U32("graphics/pokemon/darmanitan/zen_mode/normal.gbapal.lz"); -const u32 gMonPalette_DarmanitanGalarianZenMode[] = INCBIN_U32("graphics/pokemon/darmanitan/zen_mode/galarian/normal.gbapal.lz"); -const u32 gMonPalette_DeerlingSummer[] = INCBIN_U32("graphics/pokemon/deerling/summer/normal.gbapal.lz"); -const u32 gMonPalette_DeerlingAutumn[] = INCBIN_U32("graphics/pokemon/deerling/autumn/normal.gbapal.lz"); -const u32 gMonPalette_DeerlingWinter[] = INCBIN_U32("graphics/pokemon/deerling/winter/normal.gbapal.lz"); -const u32 gMonPalette_SawsbuckSummer[] = INCBIN_U32("graphics/pokemon/sawsbuck/summer/normal.gbapal.lz"); -const u32 gMonPalette_SawsbuckAutumn[] = INCBIN_U32("graphics/pokemon/sawsbuck/autumn/normal.gbapal.lz"); -const u32 gMonPalette_SawsbuckWinter[] = INCBIN_U32("graphics/pokemon/sawsbuck/winter/normal.gbapal.lz"); -const u32 gMonPalette_TornadusTherian[] = INCBIN_U32("graphics/pokemon/tornadus/therian/normal.gbapal.lz"); -const u32 gMonPalette_ThundurusTherian[] = INCBIN_U32("graphics/pokemon/thundurus/therian/normal.gbapal.lz"); -const u32 gMonPalette_LandorusTherian[] = INCBIN_U32("graphics/pokemon/landorus/therian/normal.gbapal.lz"); -const u32 gMonPalette_KyuremWhite[] = INCBIN_U32("graphics/pokemon/kyurem/white/normal.gbapal.lz"); -const u32 gMonPalette_KyuremBlack[] = INCBIN_U32("graphics/pokemon/kyurem/black/normal.gbapal.lz"); -const u32 gMonPalette_KeldeoResolute[] = INCBIN_U32("graphics/pokemon/keldeo/resolute/normal.gbapal.lz"); -const u32 gMonPalette_MeloettaPirouette[] = INCBIN_U32("graphics/pokemon/meloetta/pirouette/normal.gbapal.lz"); -const u32 gMonPalette_GenesectDouseDrive[] = INCBIN_U32("graphics/pokemon/genesect/douse_drive/normal.gbapal.lz"); -const u32 gMonPalette_GenesectShockDrive[] = INCBIN_U32("graphics/pokemon/genesect/shock_drive/normal.gbapal.lz"); -const u32 gMonPalette_GenesectBurnDrive[] = INCBIN_U32("graphics/pokemon/genesect/burn_drive/normal.gbapal.lz"); -const u32 gMonPalette_GenesectChillDrive[] = INCBIN_U32("graphics/pokemon/genesect/chill_drive/normal.gbapal.lz"); -#endif -#if P_GEN_6_POKEMON == TRUE -const u32 gMonPalette_GreninjaAsh[] = INCBIN_U32("graphics/pokemon/greninja/ash/normal.gbapal.lz"); -const u32 gMonPalette_VivillonPolar[] = INCBIN_U32("graphics/pokemon/vivillon/polar/normal.gbapal.lz"); -const u32 gMonPalette_VivillonTundra[] = INCBIN_U32("graphics/pokemon/vivillon/tundra/normal.gbapal.lz"); -const u32 gMonPalette_VivillonContinental[] = INCBIN_U32("graphics/pokemon/vivillon/continental/normal.gbapal.lz"); -const u32 gMonPalette_VivillonGarden[] = INCBIN_U32("graphics/pokemon/vivillon/garden/normal.gbapal.lz"); -const u32 gMonPalette_VivillonElegant[] = INCBIN_U32("graphics/pokemon/vivillon/elegant/normal.gbapal.lz"); -const u32 gMonPalette_VivillonMeadow[] = INCBIN_U32("graphics/pokemon/vivillon/meadow/normal.gbapal.lz"); -const u32 gMonPalette_VivillonModern[] = INCBIN_U32("graphics/pokemon/vivillon/modern/normal.gbapal.lz"); -const u32 gMonPalette_VivillonMarine[] = INCBIN_U32("graphics/pokemon/vivillon/marine/normal.gbapal.lz"); -const u32 gMonPalette_VivillonArchipelago[] = INCBIN_U32("graphics/pokemon/vivillon/archipelago/normal.gbapal.lz"); -const u32 gMonPalette_VivillonHighPlains[] = INCBIN_U32("graphics/pokemon/vivillon/high_plains/normal.gbapal.lz"); -const u32 gMonPalette_VivillonSandstorm[] = INCBIN_U32("graphics/pokemon/vivillon/sandstorm/normal.gbapal.lz"); -const u32 gMonPalette_VivillonRiver[] = INCBIN_U32("graphics/pokemon/vivillon/river/normal.gbapal.lz"); -const u32 gMonPalette_VivillonMonsoon[] = INCBIN_U32("graphics/pokemon/vivillon/monsoon/normal.gbapal.lz"); -const u32 gMonPalette_VivillonSavanna[] = INCBIN_U32("graphics/pokemon/vivillon/savanna/normal.gbapal.lz"); -const u32 gMonPalette_VivillonSun[] = INCBIN_U32("graphics/pokemon/vivillon/sun/normal.gbapal.lz"); -const u32 gMonPalette_VivillonOcean[] = INCBIN_U32("graphics/pokemon/vivillon/ocean/normal.gbapal.lz"); -const u32 gMonPalette_VivillonJungle[] = INCBIN_U32("graphics/pokemon/vivillon/jungle/normal.gbapal.lz"); -const u32 gMonPalette_VivillonFancy[] = INCBIN_U32("graphics/pokemon/vivillon/fancy/normal.gbapal.lz"); -const u32 gMonPalette_VivillonPokeBall[] = INCBIN_U32("graphics/pokemon/vivillon/poke_ball/normal.gbapal.lz"); -const u32 gMonPalette_FlabebeYellowFlower[] = INCBIN_U32("graphics/pokemon/flabebe/yellow_flower/normal.gbapal.lz"); -const u32 gMonPalette_FlabebeOrangeFlower[] = INCBIN_U32("graphics/pokemon/flabebe/orange_flower/normal.gbapal.lz"); -const u32 gMonPalette_FlabebeBlueFlower[] = INCBIN_U32("graphics/pokemon/flabebe/blue_flower/normal.gbapal.lz"); -const u32 gMonPalette_FlabebeWhiteFlower[] = INCBIN_U32("graphics/pokemon/flabebe/white_flower/normal.gbapal.lz"); -const u32 gMonPalette_FloetteYellowFlower[] = INCBIN_U32("graphics/pokemon/floette/yellow_flower/normal.gbapal.lz"); -const u32 gMonPalette_FloetteOrangeFlower[] = INCBIN_U32("graphics/pokemon/floette/orange_flower/normal.gbapal.lz"); -const u32 gMonPalette_FloetteBlueFlower[] = INCBIN_U32("graphics/pokemon/floette/blue_flower/normal.gbapal.lz"); -const u32 gMonPalette_FloetteWhiteFlower[] = INCBIN_U32("graphics/pokemon/floette/white_flower/normal.gbapal.lz"); -const u32 gMonPalette_FloetteEternalFlower[] = INCBIN_U32("graphics/pokemon/floette/eternal_flower/normal.gbapal.lz"); -const u32 gMonPalette_FlorgesYellowFlower[] = INCBIN_U32("graphics/pokemon/florges/yellow_flower/normal.gbapal.lz"); -const u32 gMonPalette_FlorgesOrangeFlower[] = INCBIN_U32("graphics/pokemon/florges/orange_flower/normal.gbapal.lz"); -const u32 gMonPalette_FlorgesBlueFlower[] = INCBIN_U32("graphics/pokemon/florges/blue_flower/normal.gbapal.lz"); -const u32 gMonPalette_FlorgesWhiteFlower[] = INCBIN_U32("graphics/pokemon/florges/white_flower/normal.gbapal.lz"); -const u32 gMonPalette_FurfrouHeartTrim[] = INCBIN_U32("graphics/pokemon/furfrou/heart_trim/normal.gbapal.lz"); -const u32 gMonPalette_FurfrouStarTrim[] = INCBIN_U32("graphics/pokemon/furfrou/star_trim/normal.gbapal.lz"); -const u32 gMonPalette_FurfrouDiamondTrim[] = INCBIN_U32("graphics/pokemon/furfrou/diamond_trim/normal.gbapal.lz"); -const u32 gMonPalette_FurfrouDebutanteTrim[] = INCBIN_U32("graphics/pokemon/furfrou/debutante_trim/normal.gbapal.lz"); -const u32 gMonPalette_FurfrouMatronTrim[] = INCBIN_U32("graphics/pokemon/furfrou/matron_trim/normal.gbapal.lz"); -const u32 gMonPalette_FurfrouDandyTrim[] = INCBIN_U32("graphics/pokemon/furfrou/dandy_trim/normal.gbapal.lz"); -const u32 gMonPalette_FurfrouLaReineTrim[] = INCBIN_U32("graphics/pokemon/furfrou/la_reine_trim/normal.gbapal.lz"); -const u32 gMonPalette_FurfrouKabukiTrim[] = INCBIN_U32("graphics/pokemon/furfrou/kabuki_trim/normal.gbapal.lz"); -const u32 gMonPalette_FurfrouPharaohTrim[] = INCBIN_U32("graphics/pokemon/furfrou/pharaoh_trim/normal.gbapal.lz"); -const u32 gMonPalette_MeowsticFemale[] = INCBIN_U32("graphics/pokemon/meowstic/female/normal.gbapal.lz"); -const u32 gMonPalette_AegislashBlade[] = INCBIN_U32("graphics/pokemon/aegislash/blade/normal.gbapal.lz"); -const u32 gMonPalette_XerneasActive[] = INCBIN_U32("graphics/pokemon/xerneas/active/normal.gbapal.lz"); -const u32 gMonPalette_Zygarde10[] = INCBIN_U32("graphics/pokemon/zygarde/10_percent/normal.gbapal.lz"); -const u32 gMonPalette_ZygardeComplete[] = INCBIN_U32("graphics/pokemon/zygarde/complete/normal.gbapal.lz"); -const u32 gMonPalette_HoopaUnbound[] = INCBIN_U32("graphics/pokemon/hoopa/unbound/normal.gbapal.lz"); -#endif -#if P_GEN_7_POKEMON == TRUE -const u32 gMonPalette_OricorioPomPom[] = INCBIN_U32("graphics/pokemon/oricorio/pom_pom/normal.gbapal.lz"); -const u32 gMonPalette_OricorioPau[] = INCBIN_U32("graphics/pokemon/oricorio/pau/normal.gbapal.lz"); -const u32 gMonPalette_OricorioSensu[] = INCBIN_U32("graphics/pokemon/oricorio/sensu/normal.gbapal.lz"); -const u32 gMonPalette_LycanrocMidnight[] = INCBIN_U32("graphics/pokemon/lycanroc/midnight/normal.gbapal.lz"); -const u32 gMonPalette_LycanrocDusk[] = INCBIN_U32("graphics/pokemon/lycanroc/dusk/normal.gbapal.lz"); -const u32 gMonPalette_WishiwashiSchool[] = INCBIN_U32("graphics/pokemon/wishiwashi/school/normal.gbapal.lz"); -const u32 gMonPalette_SilvallyFighting[] = INCBIN_U32("graphics/pokemon/silvally/fighting/normal.gbapal.lz"); -const u32 gMonPalette_SilvallyFlying[] = INCBIN_U32("graphics/pokemon/silvally/flying/normal.gbapal.lz"); -const u32 gMonPalette_SilvallyPoison[] = INCBIN_U32("graphics/pokemon/silvally/poison/normal.gbapal.lz"); -const u32 gMonPalette_SilvallyGround[] = INCBIN_U32("graphics/pokemon/silvally/ground/normal.gbapal.lz"); -const u32 gMonPalette_SilvallyRock[] = INCBIN_U32("graphics/pokemon/silvally/rock/normal.gbapal.lz"); -const u32 gMonPalette_SilvallyBug[] = INCBIN_U32("graphics/pokemon/silvally/bug/normal.gbapal.lz"); -const u32 gMonPalette_SilvallyGhost[] = INCBIN_U32("graphics/pokemon/silvally/ghost/normal.gbapal.lz"); -const u32 gMonPalette_SilvallySteel[] = INCBIN_U32("graphics/pokemon/silvally/steel/normal.gbapal.lz"); -const u32 gMonPalette_SilvallyFire[] = INCBIN_U32("graphics/pokemon/silvally/fire/normal.gbapal.lz"); -const u32 gMonPalette_SilvallyWater[] = INCBIN_U32("graphics/pokemon/silvally/water/normal.gbapal.lz"); -const u32 gMonPalette_SilvallyGrass[] = INCBIN_U32("graphics/pokemon/silvally/grass/normal.gbapal.lz"); -const u32 gMonPalette_SilvallyElectric[] = INCBIN_U32("graphics/pokemon/silvally/electric/normal.gbapal.lz"); -const u32 gMonPalette_SilvallyPsychic[] = INCBIN_U32("graphics/pokemon/silvally/psychic/normal.gbapal.lz"); -const u32 gMonPalette_SilvallyIce[] = INCBIN_U32("graphics/pokemon/silvally/ice/normal.gbapal.lz"); -const u32 gMonPalette_SilvallyDragon[] = INCBIN_U32("graphics/pokemon/silvally/dragon/normal.gbapal.lz"); -const u32 gMonPalette_SilvallyDark[] = INCBIN_U32("graphics/pokemon/silvally/dark/normal.gbapal.lz"); -const u32 gMonPalette_SilvallyFairy[] = INCBIN_U32("graphics/pokemon/silvally/fairy/normal.gbapal.lz"); -const u32 gMonPalette_MiniorCoreRed[] = INCBIN_U32("graphics/pokemon/minior/core/red/normal.gbapal.lz"); -const u32 gMonPalette_MiniorCoreOrange[] = INCBIN_U32("graphics/pokemon/minior/core/orange/normal.gbapal.lz"); -const u32 gMonPalette_MiniorCoreYellow[] = INCBIN_U32("graphics/pokemon/minior/core/yellow/normal.gbapal.lz"); -const u32 gMonPalette_MiniorCoreGreen[] = INCBIN_U32("graphics/pokemon/minior/core/green/normal.gbapal.lz"); -const u32 gMonPalette_MiniorCoreBlue[] = INCBIN_U32("graphics/pokemon/minior/core/blue/normal.gbapal.lz"); -const u32 gMonPalette_MiniorCoreIndigo[] = INCBIN_U32("graphics/pokemon/minior/core/indigo/normal.gbapal.lz"); -const u32 gMonPalette_MiniorCoreViolet[] = INCBIN_U32("graphics/pokemon/minior/core/violet/normal.gbapal.lz"); -const u32 gMonPalette_MimikyuBusted[] = INCBIN_U32("graphics/pokemon/mimikyu/busted/normal.gbapal.lz"); -const u32 gMonPalette_NecrozmaDuskMane[] = INCBIN_U32("graphics/pokemon/necrozma/dusk_mane/normal.gbapal.lz"); -const u32 gMonPalette_NecrozmaDawnWings[] = INCBIN_U32("graphics/pokemon/necrozma/dawn_wings/normal.gbapal.lz"); -const u32 gMonPalette_NecrozmaUltra[] = INCBIN_U32("graphics/pokemon/necrozma/ultra/normal.gbapal.lz"); -const u32 gMonPalette_MagearnaOriginalColor[] = INCBIN_U32("graphics/pokemon/magearna/original_color/normal.gbapal.lz"); -#endif -#if P_GEN_8_POKEMON == TRUE -const u32 gMonPalette_CramorantGulping[] = INCBIN_U32("graphics/pokemon/cramorant/gulping/normal.gbapal.lz"); -const u32 gMonPalette_CramorantGorging[] = INCBIN_U32("graphics/pokemon/cramorant/gorging/normal.gbapal.lz"); -const u32 gMonPalette_ToxtricityLowKey[] = INCBIN_U32("graphics/pokemon/toxtricity/low_key/normal.gbapal.lz"); -const u32 gMonPalette_AlcremieRubyCream[] = INCBIN_U32("graphics/pokemon/alcremie/ruby_cream/normal.gbapal.lz"); -const u32 gMonPalette_AlcremieMatchaCream[] = INCBIN_U32("graphics/pokemon/alcremie/matcha_cream/normal.gbapal.lz"); -const u32 gMonPalette_AlcremieMintCream[] = INCBIN_U32("graphics/pokemon/alcremie/mint_cream/normal.gbapal.lz"); -const u32 gMonPalette_AlcremieLemonCream[] = INCBIN_U32("graphics/pokemon/alcremie/lemon_cream/normal.gbapal.lz"); -const u32 gMonPalette_AlcremieSaltedCream[] = INCBIN_U32("graphics/pokemon/alcremie/salted_cream/normal.gbapal.lz"); -const u32 gMonPalette_AlcremieRubySwirl[] = INCBIN_U32("graphics/pokemon/alcremie/ruby_swirl/normal.gbapal.lz"); -const u32 gMonPalette_AlcremieCaramelSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/caramel_swirl/normal.gbapal.lz"); -const u32 gMonPalette_AlcremieRainbowSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/rainbow_swirl/normal.gbapal.lz"); -const u32 gMonPalette_EiscueNoiceFace[] = INCBIN_U32("graphics/pokemon/eiscue/noice_face/normal.gbapal.lz"); -const u32 gMonPalette_IndeedeeFemale[] = INCBIN_U32("graphics/pokemon/indeedee/female/normal.gbapal.lz"); -const u32 gMonPalette_MorpekoHangry[] = INCBIN_U32("graphics/pokemon/morpeko/hangry/normal.gbapal.lz"); -const u32 gMonPalette_ZacianCrownedSword[] = INCBIN_U32("graphics/pokemon/zacian/crowned_sword/normal.gbapal.lz"); -const u32 gMonPalette_ZamazentaCrownedShield[] = INCBIN_U32("graphics/pokemon/zamazenta/crowned_shield/normal.gbapal.lz"); -const u32 gMonPalette_EternatusEternamax[] = INCBIN_U32("graphics/pokemon/eternatus/eternamax/normal.gbapal.lz"); -const u32 gMonPalette_UrshifuRapidStrikeStyle[] = INCBIN_U32("graphics/pokemon/urshifu/rapid_strike_style/normal.gbapal.lz"); -const u32 gMonPalette_ZarudeDada[] = INCBIN_U32("graphics/pokemon/zarude/dada/normal.gbapal.lz"); -const u32 gMonPalette_CalyrexIceRider[] = INCBIN_U32("graphics/pokemon/calyrex/ice_rider/normal.gbapal.lz"); -const u32 gMonPalette_CalyrexShadowRider[] = INCBIN_U32("graphics/pokemon/calyrex/shadow_rider/normal.gbapal.lz"); -const u32 gMonPalette_EnamorusTherian[] = INCBIN_U32("graphics/pokemon/enamorus/therian/normal.gbapal.lz"); -const u32 gMonPalette_BasculegionFemale[] = INCBIN_U32("graphics/pokemon/basculegion/female/normal.gbapal.lz"); -const u32 gMonPalette_VenusaurGigantamax[] = INCBIN_U32("graphics/pokemon/venusaur/gigantamax/normal.gbapal.lz"); -const u32 gMonPalette_CharizardGigantamax[] = INCBIN_U32("graphics/pokemon/charizard/gigantamax/normal.gbapal.lz"); -const u32 gMonPalette_BlastoiseGigantamax[] = INCBIN_U32("graphics/pokemon/blastoise/gigantamax/normal.gbapal.lz"); -const u32 gMonPalette_ButterfreeGigantamax[] = INCBIN_U32("graphics/pokemon/butterfree/gigantamax/normal.gbapal.lz"); -const u32 gMonPalette_PikachuGigantamax[] = INCBIN_U32("graphics/pokemon/pikachu/gigantamax/normal.gbapal.lz"); -const u32 gMonPalette_MeowthGigantamax[] = INCBIN_U32("graphics/pokemon/meowth/gigantamax/normal.gbapal.lz"); -const u32 gMonPalette_MachampGigantamax[] = INCBIN_U32("graphics/pokemon/machamp/gigantamax/normal.gbapal.lz"); -const u32 gMonPalette_GengarGigantamax[] = INCBIN_U32("graphics/pokemon/gengar/gigantamax/normal.gbapal.lz"); -const u32 gMonPalette_KinglerGigantamax[] = INCBIN_U32("graphics/pokemon/kingler/gigantamax/normal.gbapal.lz"); -const u32 gMonPalette_LaprasGigantamax[] = INCBIN_U32("graphics/pokemon/lapras/gigantamax/normal.gbapal.lz"); -const u32 gMonPalette_EeveeGigantamax[] = INCBIN_U32("graphics/pokemon/eevee/gigantamax/normal.gbapal.lz"); -const u32 gMonPalette_SnorlaxGigantamax[] = INCBIN_U32("graphics/pokemon/snorlax/gigantamax/normal.gbapal.lz"); -const u32 gMonPalette_GarbodorGigantamax[] = INCBIN_U32("graphics/pokemon/garbodor/gigantamax/normal.gbapal.lz"); -const u32 gMonPalette_MelmetalGigantamax[] = INCBIN_U32("graphics/pokemon/melmetal/gigantamax/normal.gbapal.lz"); -const u32 gMonPalette_RillaboomGigantamax[] = INCBIN_U32("graphics/pokemon/rillaboom/gigantamax/normal.gbapal.lz"); -const u32 gMonPalette_CinderaceGigantamax[] = INCBIN_U32("graphics/pokemon/cinderace/gigantamax/normal.gbapal.lz"); -const u32 gMonPalette_InteleonGigantamax[] = INCBIN_U32("graphics/pokemon/inteleon/gigantamax/normal.gbapal.lz"); -const u32 gMonPalette_CorviknightGigantamax[] = INCBIN_U32("graphics/pokemon/corviknight/gigantamax/normal.gbapal.lz"); -const u32 gMonPalette_OrbeetleGigantamax[] = INCBIN_U32("graphics/pokemon/orbeetle/gigantamax/normal.gbapal.lz"); -const u32 gMonPalette_DrednawGigantamax[] = INCBIN_U32("graphics/pokemon/drednaw/gigantamax/normal.gbapal.lz"); -const u32 gMonPalette_CoalossalGigantamax[] = INCBIN_U32("graphics/pokemon/coalossal/gigantamax/normal.gbapal.lz"); -const u32 gMonPalette_FlappleGigantamax[] = INCBIN_U32("graphics/pokemon/flapple/gigantamax/normal.gbapal.lz"); -const u32 gMonPalette_AppletunGigantamax[] = INCBIN_U32("graphics/pokemon/appletun/gigantamax/normal.gbapal.lz"); -const u32 gMonPalette_SandacondaGigantamax[] = INCBIN_U32("graphics/pokemon/sandaconda/gigantamax/normal.gbapal.lz"); -const u32 gMonPalette_ToxtricityGigantamax[] = INCBIN_U32("graphics/pokemon/toxtricity/gigantamax/normal.gbapal.lz"); -const u32 gMonPalette_CentiskorchGigantamax[] = INCBIN_U32("graphics/pokemon/centiskorch/gigantamax/normal.gbapal.lz"); -const u32 gMonPalette_HattereneGigantamax[] = INCBIN_U32("graphics/pokemon/hatterene/gigantamax/normal.gbapal.lz"); -const u32 gMonPalette_GrimmsnarlGigantamax[] = INCBIN_U32("graphics/pokemon/grimmsnarl/gigantamax/normal.gbapal.lz"); -const u32 gMonPalette_AlcremieGigantamax[] = INCBIN_U32("graphics/pokemon/alcremie/gigantamax/normal.gbapal.lz"); -const u32 gMonPalette_CopperajahGigantamax[] = INCBIN_U32("graphics/pokemon/copperajah/gigantamax/normal.gbapal.lz"); -const u32 gMonPalette_DuraludonGigantamax[] = INCBIN_U32("graphics/pokemon/duraludon/gigantamax/normal.gbapal.lz"); -const u32 gMonPalette_UrshifuSingleStrikeGigantamax[] = INCBIN_U32("graphics/pokemon/urshifu/single_strike_style_gigantamax/normal.gbapal.lz"); -const u32 gMonPalette_UrshifuRapidStrikeGigantamax[] = INCBIN_U32("graphics/pokemon/urshifu/rapid_strike_style_gigantamax/normal.gbapal.lz"); -#endif -const u32 gMonPalette_Egg[] = INCBIN_U32("graphics/pokemon/egg/normal.gbapal.lz"); const u32 gMonFollowerPalette_Bulbasaur[] = INCBIN_U32("graphics/object_events/pics/pokemon/bulbasaur/normal.gbapal.lz"); const u32 gMonFollowerPalette_Ivysaur[] = INCBIN_U32("graphics/object_events/pics/pokemon/ivysaur/normal.gbapal.lz"); @@ -4295,3434 +389,10912 @@ const u32 gMonFollowerPalette_Rayquaza[] = INCBIN_U32("graphics/object_events/pi const u32 gMonFollowerPalette_Jirachi[] = INCBIN_U32("graphics/object_events/pics/pokemon/jirachi/normal.gbapal.lz"); const u32 gMonFollowerPalette_Deoxys[] = INCBIN_U32("graphics/object_events/pics/pokemon/deoxys/normal.gbapal.lz"); - const u32 gMonShinyPalette_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/question_mark/circled/shiny.gbapal.lz"); -const u32 gMonShinyPalette_DoubleQuestionMark[] = INCBIN_U32("graphics/pokemon/question_mark/double/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Bulbasaur[] = INCBIN_U32("graphics/pokemon/bulbasaur/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Ivysaur[] = INCBIN_U32("graphics/pokemon/ivysaur/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Venusaur[] = INCBIN_U32("graphics/pokemon/venusaur/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Charmander[] = INCBIN_U32("graphics/pokemon/charmander/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Charmeleon[] = INCBIN_U32("graphics/pokemon/charmeleon/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Charizard[] = INCBIN_U32("graphics/pokemon/charizard/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Squirtle[] = INCBIN_U32("graphics/pokemon/squirtle/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Wartortle[] = INCBIN_U32("graphics/pokemon/wartortle/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Blastoise[] = INCBIN_U32("graphics/pokemon/blastoise/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Caterpie[] = INCBIN_U32("graphics/pokemon/caterpie/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Metapod[] = INCBIN_U32("graphics/pokemon/metapod/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Butterfree[] = INCBIN_U32("graphics/pokemon/butterfree/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Weedle[] = INCBIN_U32("graphics/pokemon/weedle/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Kakuna[] = INCBIN_U32("graphics/pokemon/kakuna/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Beedrill[] = INCBIN_U32("graphics/pokemon/beedrill/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Pidgey[] = INCBIN_U32("graphics/pokemon/pidgey/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Pidgeotto[] = INCBIN_U32("graphics/pokemon/pidgeotto/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Pidgeot[] = INCBIN_U32("graphics/pokemon/pidgeot/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Rattata[] = INCBIN_U32("graphics/pokemon/rattata/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Raticate[] = INCBIN_U32("graphics/pokemon/raticate/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Spearow[] = INCBIN_U32("graphics/pokemon/spearow/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Fearow[] = INCBIN_U32("graphics/pokemon/fearow/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Ekans[] = INCBIN_U32("graphics/pokemon/ekans/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Arbok[] = INCBIN_U32("graphics/pokemon/arbok/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Pikachu[] = INCBIN_U32("graphics/pokemon/pikachu/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Raichu[] = INCBIN_U32("graphics/pokemon/raichu/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Sandshrew[] = INCBIN_U32("graphics/pokemon/sandshrew/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Sandslash[] = INCBIN_U32("graphics/pokemon/sandslash/shiny.gbapal.lz"); -const u32 gMonShinyPalette_NidoranF[] = INCBIN_U32("graphics/pokemon/nidoran_f/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Nidorina[] = INCBIN_U32("graphics/pokemon/nidorina/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Nidoqueen[] = INCBIN_U32("graphics/pokemon/nidoqueen/shiny.gbapal.lz"); -const u32 gMonShinyPalette_NidoranM[] = INCBIN_U32("graphics/pokemon/nidoran_m/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Nidorino[] = INCBIN_U32("graphics/pokemon/nidorino/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Nidoking[] = INCBIN_U32("graphics/pokemon/nidoking/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Clefairy[] = INCBIN_U32("graphics/pokemon/clefairy/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Clefable[] = INCBIN_U32("graphics/pokemon/clefable/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Vulpix[] = INCBIN_U32("graphics/pokemon/vulpix/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Ninetales[] = INCBIN_U32("graphics/pokemon/ninetales/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Jigglypuff[] = INCBIN_U32("graphics/pokemon/jigglypuff/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Wigglytuff[] = INCBIN_U32("graphics/pokemon/wigglytuff/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Zubat[] = INCBIN_U32("graphics/pokemon/zubat/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Golbat[] = INCBIN_U32("graphics/pokemon/golbat/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Oddish[] = INCBIN_U32("graphics/pokemon/oddish/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Gloom[] = INCBIN_U32("graphics/pokemon/gloom/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Vileplume[] = INCBIN_U32("graphics/pokemon/vileplume/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Paras[] = INCBIN_U32("graphics/pokemon/paras/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Parasect[] = INCBIN_U32("graphics/pokemon/parasect/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Venonat[] = INCBIN_U32("graphics/pokemon/venonat/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Venomoth[] = INCBIN_U32("graphics/pokemon/venomoth/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Diglett[] = INCBIN_U32("graphics/pokemon/diglett/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Dugtrio[] = INCBIN_U32("graphics/pokemon/dugtrio/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Meowth[] = INCBIN_U32("graphics/pokemon/meowth/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Persian[] = INCBIN_U32("graphics/pokemon/persian/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Psyduck[] = INCBIN_U32("graphics/pokemon/psyduck/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Golduck[] = INCBIN_U32("graphics/pokemon/golduck/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Mankey[] = INCBIN_U32("graphics/pokemon/mankey/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Primeape[] = INCBIN_U32("graphics/pokemon/primeape/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Growlithe[] = INCBIN_U32("graphics/pokemon/growlithe/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Arcanine[] = INCBIN_U32("graphics/pokemon/arcanine/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Poliwag[] = INCBIN_U32("graphics/pokemon/poliwag/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Poliwhirl[] = INCBIN_U32("graphics/pokemon/poliwhirl/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Poliwrath[] = INCBIN_U32("graphics/pokemon/poliwrath/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Abra[] = INCBIN_U32("graphics/pokemon/abra/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Kadabra[] = INCBIN_U32("graphics/pokemon/kadabra/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Alakazam[] = INCBIN_U32("graphics/pokemon/alakazam/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Machop[] = INCBIN_U32("graphics/pokemon/machop/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Machoke[] = INCBIN_U32("graphics/pokemon/machoke/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Machamp[] = INCBIN_U32("graphics/pokemon/machamp/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Bellsprout[] = INCBIN_U32("graphics/pokemon/bellsprout/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Weepinbell[] = INCBIN_U32("graphics/pokemon/weepinbell/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Victreebel[] = INCBIN_U32("graphics/pokemon/victreebel/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Tentacool[] = INCBIN_U32("graphics/pokemon/tentacool/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Tentacruel[] = INCBIN_U32("graphics/pokemon/tentacruel/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Geodude[] = INCBIN_U32("graphics/pokemon/geodude/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Graveler[] = INCBIN_U32("graphics/pokemon/graveler/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Golem[] = INCBIN_U32("graphics/pokemon/golem/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Ponyta[] = INCBIN_U32("graphics/pokemon/ponyta/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Rapidash[] = INCBIN_U32("graphics/pokemon/rapidash/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Slowpoke[] = INCBIN_U32("graphics/pokemon/slowpoke/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Slowbro[] = INCBIN_U32("graphics/pokemon/slowbro/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Magnemite[] = INCBIN_U32("graphics/pokemon/magnemite/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Magneton[] = INCBIN_U32("graphics/pokemon/magneton/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Farfetchd[] = INCBIN_U32("graphics/pokemon/farfetchd/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Doduo[] = INCBIN_U32("graphics/pokemon/doduo/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Dodrio[] = INCBIN_U32("graphics/pokemon/dodrio/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Seel[] = INCBIN_U32("graphics/pokemon/seel/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Dewgong[] = INCBIN_U32("graphics/pokemon/dewgong/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Grimer[] = INCBIN_U32("graphics/pokemon/grimer/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Muk[] = INCBIN_U32("graphics/pokemon/muk/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Shellder[] = INCBIN_U32("graphics/pokemon/shellder/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Cloyster[] = INCBIN_U32("graphics/pokemon/cloyster/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Gastly[] = INCBIN_U32("graphics/pokemon/gastly/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Haunter[] = INCBIN_U32("graphics/pokemon/haunter/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Gengar[] = INCBIN_U32("graphics/pokemon/gengar/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Onix[] = INCBIN_U32("graphics/pokemon/onix/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Drowzee[] = INCBIN_U32("graphics/pokemon/drowzee/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Hypno[] = INCBIN_U32("graphics/pokemon/hypno/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Krabby[] = INCBIN_U32("graphics/pokemon/krabby/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Kingler[] = INCBIN_U32("graphics/pokemon/kingler/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Voltorb[] = INCBIN_U32("graphics/pokemon/voltorb/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Electrode[] = INCBIN_U32("graphics/pokemon/electrode/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Exeggcute[] = INCBIN_U32("graphics/pokemon/exeggcute/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Exeggutor[] = INCBIN_U32("graphics/pokemon/exeggutor/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Cubone[] = INCBIN_U32("graphics/pokemon/cubone/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Marowak[] = INCBIN_U32("graphics/pokemon/marowak/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Hitmonlee[] = INCBIN_U32("graphics/pokemon/hitmonlee/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Hitmonchan[] = INCBIN_U32("graphics/pokemon/hitmonchan/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Lickitung[] = INCBIN_U32("graphics/pokemon/lickitung/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Koffing[] = INCBIN_U32("graphics/pokemon/koffing/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Weezing[] = INCBIN_U32("graphics/pokemon/weezing/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Rhyhorn[] = INCBIN_U32("graphics/pokemon/rhyhorn/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Rhydon[] = INCBIN_U32("graphics/pokemon/rhydon/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Chansey[] = INCBIN_U32("graphics/pokemon/chansey/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Tangela[] = INCBIN_U32("graphics/pokemon/tangela/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Kangaskhan[] = INCBIN_U32("graphics/pokemon/kangaskhan/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Horsea[] = INCBIN_U32("graphics/pokemon/horsea/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Seadra[] = INCBIN_U32("graphics/pokemon/seadra/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Goldeen[] = INCBIN_U32("graphics/pokemon/goldeen/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Seaking[] = INCBIN_U32("graphics/pokemon/seaking/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Staryu[] = INCBIN_U32("graphics/pokemon/staryu/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Starmie[] = INCBIN_U32("graphics/pokemon/starmie/shiny.gbapal.lz"); -const u32 gMonShinyPalette_MrMime[] = INCBIN_U32("graphics/pokemon/mr_mime/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Scyther[] = INCBIN_U32("graphics/pokemon/scyther/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Jynx[] = INCBIN_U32("graphics/pokemon/jynx/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Electabuzz[] = INCBIN_U32("graphics/pokemon/electabuzz/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Magmar[] = INCBIN_U32("graphics/pokemon/magmar/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Pinsir[] = INCBIN_U32("graphics/pokemon/pinsir/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Tauros[] = INCBIN_U32("graphics/pokemon/tauros/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Magikarp[] = INCBIN_U32("graphics/pokemon/magikarp/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Gyarados[] = INCBIN_U32("graphics/pokemon/gyarados/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Lapras[] = INCBIN_U32("graphics/pokemon/lapras/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Ditto[] = INCBIN_U32("graphics/pokemon/ditto/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Eevee[] = INCBIN_U32("graphics/pokemon/eevee/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Vaporeon[] = INCBIN_U32("graphics/pokemon/vaporeon/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Jolteon[] = INCBIN_U32("graphics/pokemon/jolteon/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Flareon[] = INCBIN_U32("graphics/pokemon/flareon/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Porygon[] = INCBIN_U32("graphics/pokemon/porygon/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Omanyte[] = INCBIN_U32("graphics/pokemon/omanyte/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Omastar[] = INCBIN_U32("graphics/pokemon/omastar/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Kabuto[] = INCBIN_U32("graphics/pokemon/kabuto/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Kabutops[] = INCBIN_U32("graphics/pokemon/kabutops/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Aerodactyl[] = INCBIN_U32("graphics/pokemon/aerodactyl/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Snorlax[] = INCBIN_U32("graphics/pokemon/snorlax/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Articuno[] = INCBIN_U32("graphics/pokemon/articuno/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Zapdos[] = INCBIN_U32("graphics/pokemon/zapdos/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Moltres[] = INCBIN_U32("graphics/pokemon/moltres/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Dratini[] = INCBIN_U32("graphics/pokemon/dratini/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Dragonair[] = INCBIN_U32("graphics/pokemon/dragonair/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Dragonite[] = INCBIN_U32("graphics/pokemon/dragonite/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Mewtwo[] = INCBIN_U32("graphics/pokemon/mewtwo/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Mew[] = INCBIN_U32("graphics/pokemon/mew/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Chikorita[] = INCBIN_U32("graphics/pokemon/chikorita/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Bayleef[] = INCBIN_U32("graphics/pokemon/bayleef/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Meganium[] = INCBIN_U32("graphics/pokemon/meganium/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Cyndaquil[] = INCBIN_U32("graphics/pokemon/cyndaquil/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Quilava[] = INCBIN_U32("graphics/pokemon/quilava/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Typhlosion[] = INCBIN_U32("graphics/pokemon/typhlosion/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Totodile[] = INCBIN_U32("graphics/pokemon/totodile/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Croconaw[] = INCBIN_U32("graphics/pokemon/croconaw/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Feraligatr[] = INCBIN_U32("graphics/pokemon/feraligatr/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Sentret[] = INCBIN_U32("graphics/pokemon/sentret/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Furret[] = INCBIN_U32("graphics/pokemon/furret/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Hoothoot[] = INCBIN_U32("graphics/pokemon/hoothoot/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Noctowl[] = INCBIN_U32("graphics/pokemon/noctowl/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Ledyba[] = INCBIN_U32("graphics/pokemon/ledyba/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Ledian[] = INCBIN_U32("graphics/pokemon/ledian/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Spinarak[] = INCBIN_U32("graphics/pokemon/spinarak/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Ariados[] = INCBIN_U32("graphics/pokemon/ariados/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Crobat[] = INCBIN_U32("graphics/pokemon/crobat/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Chinchou[] = INCBIN_U32("graphics/pokemon/chinchou/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Lanturn[] = INCBIN_U32("graphics/pokemon/lanturn/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Pichu[] = INCBIN_U32("graphics/pokemon/pichu/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Cleffa[] = INCBIN_U32("graphics/pokemon/cleffa/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Igglybuff[] = INCBIN_U32("graphics/pokemon/igglybuff/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Togepi[] = INCBIN_U32("graphics/pokemon/togepi/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Togetic[] = INCBIN_U32("graphics/pokemon/togetic/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Natu[] = INCBIN_U32("graphics/pokemon/natu/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Xatu[] = INCBIN_U32("graphics/pokemon/xatu/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Mareep[] = INCBIN_U32("graphics/pokemon/mareep/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Flaaffy[] = INCBIN_U32("graphics/pokemon/flaaffy/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Ampharos[] = INCBIN_U32("graphics/pokemon/ampharos/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Bellossom[] = INCBIN_U32("graphics/pokemon/bellossom/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Marill[] = INCBIN_U32("graphics/pokemon/marill/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Azumarill[] = INCBIN_U32("graphics/pokemon/azumarill/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Sudowoodo[] = INCBIN_U32("graphics/pokemon/sudowoodo/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Politoed[] = INCBIN_U32("graphics/pokemon/politoed/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Hoppip[] = INCBIN_U32("graphics/pokemon/hoppip/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Skiploom[] = INCBIN_U32("graphics/pokemon/skiploom/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Jumpluff[] = INCBIN_U32("graphics/pokemon/jumpluff/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Aipom[] = INCBIN_U32("graphics/pokemon/aipom/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Sunkern[] = INCBIN_U32("graphics/pokemon/sunkern/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Sunflora[] = INCBIN_U32("graphics/pokemon/sunflora/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Yanma[] = INCBIN_U32("graphics/pokemon/yanma/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Wooper[] = INCBIN_U32("graphics/pokemon/wooper/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Quagsire[] = INCBIN_U32("graphics/pokemon/quagsire/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Espeon[] = INCBIN_U32("graphics/pokemon/espeon/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Umbreon[] = INCBIN_U32("graphics/pokemon/umbreon/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Murkrow[] = INCBIN_U32("graphics/pokemon/murkrow/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Slowking[] = INCBIN_U32("graphics/pokemon/slowking/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Misdreavus[] = INCBIN_U32("graphics/pokemon/misdreavus/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Unown[] = INCBIN_U32("graphics/pokemon/unown/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Wobbuffet[] = INCBIN_U32("graphics/pokemon/wobbuffet/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Girafarig[] = INCBIN_U32("graphics/pokemon/girafarig/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Pineco[] = INCBIN_U32("graphics/pokemon/pineco/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Forretress[] = INCBIN_U32("graphics/pokemon/forretress/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Dunsparce[] = INCBIN_U32("graphics/pokemon/dunsparce/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Gligar[] = INCBIN_U32("graphics/pokemon/gligar/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Steelix[] = INCBIN_U32("graphics/pokemon/steelix/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Snubbull[] = INCBIN_U32("graphics/pokemon/snubbull/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Granbull[] = INCBIN_U32("graphics/pokemon/granbull/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Qwilfish[] = INCBIN_U32("graphics/pokemon/qwilfish/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Scizor[] = INCBIN_U32("graphics/pokemon/scizor/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Shuckle[] = INCBIN_U32("graphics/pokemon/shuckle/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Heracross[] = INCBIN_U32("graphics/pokemon/heracross/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Sneasel[] = INCBIN_U32("graphics/pokemon/sneasel/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Teddiursa[] = INCBIN_U32("graphics/pokemon/teddiursa/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Ursaring[] = INCBIN_U32("graphics/pokemon/ursaring/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Slugma[] = INCBIN_U32("graphics/pokemon/slugma/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Magcargo[] = INCBIN_U32("graphics/pokemon/magcargo/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Swinub[] = INCBIN_U32("graphics/pokemon/swinub/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Piloswine[] = INCBIN_U32("graphics/pokemon/piloswine/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Corsola[] = INCBIN_U32("graphics/pokemon/corsola/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Remoraid[] = INCBIN_U32("graphics/pokemon/remoraid/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Octillery[] = INCBIN_U32("graphics/pokemon/octillery/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Delibird[] = INCBIN_U32("graphics/pokemon/delibird/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Mantine[] = INCBIN_U32("graphics/pokemon/mantine/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Skarmory[] = INCBIN_U32("graphics/pokemon/skarmory/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Houndour[] = INCBIN_U32("graphics/pokemon/houndour/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Houndoom[] = INCBIN_U32("graphics/pokemon/houndoom/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Kingdra[] = INCBIN_U32("graphics/pokemon/kingdra/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Phanpy[] = INCBIN_U32("graphics/pokemon/phanpy/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Donphan[] = INCBIN_U32("graphics/pokemon/donphan/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Porygon2[] = INCBIN_U32("graphics/pokemon/porygon2/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Stantler[] = INCBIN_U32("graphics/pokemon/stantler/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Smeargle[] = INCBIN_U32("graphics/pokemon/smeargle/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Tyrogue[] = INCBIN_U32("graphics/pokemon/tyrogue/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Hitmontop[] = INCBIN_U32("graphics/pokemon/hitmontop/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Smoochum[] = INCBIN_U32("graphics/pokemon/smoochum/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Elekid[] = INCBIN_U32("graphics/pokemon/elekid/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Magby[] = INCBIN_U32("graphics/pokemon/magby/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Miltank[] = INCBIN_U32("graphics/pokemon/miltank/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Blissey[] = INCBIN_U32("graphics/pokemon/blissey/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Raikou[] = INCBIN_U32("graphics/pokemon/raikou/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Entei[] = INCBIN_U32("graphics/pokemon/entei/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Suicune[] = INCBIN_U32("graphics/pokemon/suicune/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Larvitar[] = INCBIN_U32("graphics/pokemon/larvitar/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Pupitar[] = INCBIN_U32("graphics/pokemon/pupitar/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Tyranitar[] = INCBIN_U32("graphics/pokemon/tyranitar/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Lugia[] = INCBIN_U32("graphics/pokemon/lugia/shiny.gbapal.lz"); -const u32 gMonShinyPalette_HoOh[] = INCBIN_U32("graphics/pokemon/ho_oh/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Celebi[] = INCBIN_U32("graphics/pokemon/celebi/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Treecko[] = INCBIN_U32("graphics/pokemon/treecko/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Grovyle[] = INCBIN_U32("graphics/pokemon/grovyle/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Sceptile[] = INCBIN_U32("graphics/pokemon/sceptile/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Torchic[] = INCBIN_U32("graphics/pokemon/torchic/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Combusken[] = INCBIN_U32("graphics/pokemon/combusken/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Blaziken[] = INCBIN_U32("graphics/pokemon/blaziken/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Mudkip[] = INCBIN_U32("graphics/pokemon/mudkip/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Marshtomp[] = INCBIN_U32("graphics/pokemon/marshtomp/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Swampert[] = INCBIN_U32("graphics/pokemon/swampert/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Poochyena[] = INCBIN_U32("graphics/pokemon/poochyena/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Mightyena[] = INCBIN_U32("graphics/pokemon/mightyena/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Zigzagoon[] = INCBIN_U32("graphics/pokemon/zigzagoon/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Linoone[] = INCBIN_U32("graphics/pokemon/linoone/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Wurmple[] = INCBIN_U32("graphics/pokemon/wurmple/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Silcoon[] = INCBIN_U32("graphics/pokemon/silcoon/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Beautifly[] = INCBIN_U32("graphics/pokemon/beautifly/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Cascoon[] = INCBIN_U32("graphics/pokemon/cascoon/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Dustox[] = INCBIN_U32("graphics/pokemon/dustox/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Lotad[] = INCBIN_U32("graphics/pokemon/lotad/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Lombre[] = INCBIN_U32("graphics/pokemon/lombre/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Ludicolo[] = INCBIN_U32("graphics/pokemon/ludicolo/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Seedot[] = INCBIN_U32("graphics/pokemon/seedot/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Nuzleaf[] = INCBIN_U32("graphics/pokemon/nuzleaf/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Shiftry[] = INCBIN_U32("graphics/pokemon/shiftry/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Taillow[] = INCBIN_U32("graphics/pokemon/taillow/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Swellow[] = INCBIN_U32("graphics/pokemon/swellow/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Wingull[] = INCBIN_U32("graphics/pokemon/wingull/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Pelipper[] = INCBIN_U32("graphics/pokemon/pelipper/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Ralts[] = INCBIN_U32("graphics/pokemon/ralts/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Kirlia[] = INCBIN_U32("graphics/pokemon/kirlia/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Gardevoir[] = INCBIN_U32("graphics/pokemon/gardevoir/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Surskit[] = INCBIN_U32("graphics/pokemon/surskit/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Masquerain[] = INCBIN_U32("graphics/pokemon/masquerain/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Shroomish[] = INCBIN_U32("graphics/pokemon/shroomish/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Breloom[] = INCBIN_U32("graphics/pokemon/breloom/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Slakoth[] = INCBIN_U32("graphics/pokemon/slakoth/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Vigoroth[] = INCBIN_U32("graphics/pokemon/vigoroth/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Slaking[] = INCBIN_U32("graphics/pokemon/slaking/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Nincada[] = INCBIN_U32("graphics/pokemon/nincada/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Ninjask[] = INCBIN_U32("graphics/pokemon/ninjask/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Shedinja[] = INCBIN_U32("graphics/pokemon/shedinja/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Whismur[] = INCBIN_U32("graphics/pokemon/whismur/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Loudred[] = INCBIN_U32("graphics/pokemon/loudred/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Exploud[] = INCBIN_U32("graphics/pokemon/exploud/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Makuhita[] = INCBIN_U32("graphics/pokemon/makuhita/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Hariyama[] = INCBIN_U32("graphics/pokemon/hariyama/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Azurill[] = INCBIN_U32("graphics/pokemon/azurill/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Nosepass[] = INCBIN_U32("graphics/pokemon/nosepass/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Skitty[] = INCBIN_U32("graphics/pokemon/skitty/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Delcatty[] = INCBIN_U32("graphics/pokemon/delcatty/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Sableye[] = INCBIN_U32("graphics/pokemon/sableye/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Mawile[] = INCBIN_U32("graphics/pokemon/mawile/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Aron[] = INCBIN_U32("graphics/pokemon/aron/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Lairon[] = INCBIN_U32("graphics/pokemon/lairon/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Aggron[] = INCBIN_U32("graphics/pokemon/aggron/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Meditite[] = INCBIN_U32("graphics/pokemon/meditite/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Medicham[] = INCBIN_U32("graphics/pokemon/medicham/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Electrike[] = INCBIN_U32("graphics/pokemon/electrike/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Manectric[] = INCBIN_U32("graphics/pokemon/manectric/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Plusle[] = INCBIN_U32("graphics/pokemon/plusle/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Minun[] = INCBIN_U32("graphics/pokemon/minun/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Volbeat[] = INCBIN_U32("graphics/pokemon/volbeat/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Illumise[] = INCBIN_U32("graphics/pokemon/illumise/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Roselia[] = INCBIN_U32("graphics/pokemon/roselia/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Gulpin[] = INCBIN_U32("graphics/pokemon/gulpin/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Swalot[] = INCBIN_U32("graphics/pokemon/swalot/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Carvanha[] = INCBIN_U32("graphics/pokemon/carvanha/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Sharpedo[] = INCBIN_U32("graphics/pokemon/sharpedo/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Wailmer[] = INCBIN_U32("graphics/pokemon/wailmer/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Wailord[] = INCBIN_U32("graphics/pokemon/wailord/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Numel[] = INCBIN_U32("graphics/pokemon/numel/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Camerupt[] = INCBIN_U32("graphics/pokemon/camerupt/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Torkoal[] = INCBIN_U32("graphics/pokemon/torkoal/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Spoink[] = INCBIN_U32("graphics/pokemon/spoink/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Grumpig[] = INCBIN_U32("graphics/pokemon/grumpig/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Spinda[] = INCBIN_U32("graphics/pokemon/spinda/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Trapinch[] = INCBIN_U32("graphics/pokemon/trapinch/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Vibrava[] = INCBIN_U32("graphics/pokemon/vibrava/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Flygon[] = INCBIN_U32("graphics/pokemon/flygon/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Cacnea[] = INCBIN_U32("graphics/pokemon/cacnea/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Cacturne[] = INCBIN_U32("graphics/pokemon/cacturne/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Swablu[] = INCBIN_U32("graphics/pokemon/swablu/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Altaria[] = INCBIN_U32("graphics/pokemon/altaria/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Zangoose[] = INCBIN_U32("graphics/pokemon/zangoose/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Seviper[] = INCBIN_U32("graphics/pokemon/seviper/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Lunatone[] = INCBIN_U32("graphics/pokemon/lunatone/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Solrock[] = INCBIN_U32("graphics/pokemon/solrock/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Barboach[] = INCBIN_U32("graphics/pokemon/barboach/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Whiscash[] = INCBIN_U32("graphics/pokemon/whiscash/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Corphish[] = INCBIN_U32("graphics/pokemon/corphish/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Crawdaunt[] = INCBIN_U32("graphics/pokemon/crawdaunt/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Baltoy[] = INCBIN_U32("graphics/pokemon/baltoy/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Claydol[] = INCBIN_U32("graphics/pokemon/claydol/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Lileep[] = INCBIN_U32("graphics/pokemon/lileep/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Cradily[] = INCBIN_U32("graphics/pokemon/cradily/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Anorith[] = INCBIN_U32("graphics/pokemon/anorith/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Armaldo[] = INCBIN_U32("graphics/pokemon/armaldo/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Feebas[] = INCBIN_U32("graphics/pokemon/feebas/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Milotic[] = INCBIN_U32("graphics/pokemon/milotic/shiny.gbapal.lz"); -const u32 gMonShinyPalette_CastformNormal[] = INCBIN_U32("graphics/pokemon/castform/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Kecleon[] = INCBIN_U32("graphics/pokemon/kecleon/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Shuppet[] = INCBIN_U32("graphics/pokemon/shuppet/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Banette[] = INCBIN_U32("graphics/pokemon/banette/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Duskull[] = INCBIN_U32("graphics/pokemon/duskull/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Dusclops[] = INCBIN_U32("graphics/pokemon/dusclops/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Tropius[] = INCBIN_U32("graphics/pokemon/tropius/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Chimecho[] = INCBIN_U32("graphics/pokemon/chimecho/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Absol[] = INCBIN_U32("graphics/pokemon/absol/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Wynaut[] = INCBIN_U32("graphics/pokemon/wynaut/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Snorunt[] = INCBIN_U32("graphics/pokemon/snorunt/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Glalie[] = INCBIN_U32("graphics/pokemon/glalie/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Spheal[] = INCBIN_U32("graphics/pokemon/spheal/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Sealeo[] = INCBIN_U32("graphics/pokemon/sealeo/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Walrein[] = INCBIN_U32("graphics/pokemon/walrein/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Clamperl[] = INCBIN_U32("graphics/pokemon/clamperl/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Huntail[] = INCBIN_U32("graphics/pokemon/huntail/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Gorebyss[] = INCBIN_U32("graphics/pokemon/gorebyss/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Relicanth[] = INCBIN_U32("graphics/pokemon/relicanth/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Luvdisc[] = INCBIN_U32("graphics/pokemon/luvdisc/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Bagon[] = INCBIN_U32("graphics/pokemon/bagon/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Shelgon[] = INCBIN_U32("graphics/pokemon/shelgon/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Salamence[] = INCBIN_U32("graphics/pokemon/salamence/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Beldum[] = INCBIN_U32("graphics/pokemon/beldum/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Metang[] = INCBIN_U32("graphics/pokemon/metang/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Metagross[] = INCBIN_U32("graphics/pokemon/metagross/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Regirock[] = INCBIN_U32("graphics/pokemon/regirock/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Regice[] = INCBIN_U32("graphics/pokemon/regice/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Registeel[] = INCBIN_U32("graphics/pokemon/registeel/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Latias[] = INCBIN_U32("graphics/pokemon/latias/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Latios[] = INCBIN_U32("graphics/pokemon/latios/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Kyogre[] = INCBIN_U32("graphics/pokemon/kyogre/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Groudon[] = INCBIN_U32("graphics/pokemon/groudon/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Rayquaza[] = INCBIN_U32("graphics/pokemon/rayquaza/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Jirachi[] = INCBIN_U32("graphics/pokemon/jirachi/shiny.gbapal.lz"); -const u32 gMonShinyPalette_DeoxysNormal[] = INCBIN_U32("graphics/pokemon/deoxys/shiny.gbapal.lz"); -#if P_GEN_4_POKEMON == TRUE -const u32 gMonShinyPalette_Turtwig[] = INCBIN_U32("graphics/pokemon/turtwig/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Grotle[] = INCBIN_U32("graphics/pokemon/grotle/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Torterra[] = INCBIN_U32("graphics/pokemon/torterra/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Chimchar[] = INCBIN_U32("graphics/pokemon/chimchar/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Monferno[] = INCBIN_U32("graphics/pokemon/monferno/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Infernape[] = INCBIN_U32("graphics/pokemon/infernape/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Piplup[] = INCBIN_U32("graphics/pokemon/piplup/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Prinplup[] = INCBIN_U32("graphics/pokemon/prinplup/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Empoleon[] = INCBIN_U32("graphics/pokemon/empoleon/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Starly[] = INCBIN_U32("graphics/pokemon/starly/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Staravia[] = INCBIN_U32("graphics/pokemon/staravia/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Staraptor[] = INCBIN_U32("graphics/pokemon/staraptor/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Bidoof[] = INCBIN_U32("graphics/pokemon/bidoof/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Bibarel[] = INCBIN_U32("graphics/pokemon/bibarel/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Kricketot[] = INCBIN_U32("graphics/pokemon/kricketot/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Kricketune[] = INCBIN_U32("graphics/pokemon/kricketune/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Shinx[] = INCBIN_U32("graphics/pokemon/shinx/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Luxio[] = INCBIN_U32("graphics/pokemon/luxio/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Luxray[] = INCBIN_U32("graphics/pokemon/luxray/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Budew[] = INCBIN_U32("graphics/pokemon/budew/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Roserade[] = INCBIN_U32("graphics/pokemon/roserade/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Cranidos[] = INCBIN_U32("graphics/pokemon/cranidos/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Rampardos[] = INCBIN_U32("graphics/pokemon/rampardos/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Shieldon[] = INCBIN_U32("graphics/pokemon/shieldon/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Bastiodon[] = INCBIN_U32("graphics/pokemon/bastiodon/shiny.gbapal.lz"); -const u32 gMonShinyPalette_BurmyPlantCloak[] = INCBIN_U32("graphics/pokemon/burmy/shiny.gbapal.lz"); -const u32 gMonShinyPalette_WormadamPlantCloak[] = INCBIN_U32("graphics/pokemon/wormadam/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Mothim[] = INCBIN_U32("graphics/pokemon/mothim/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Combee[] = INCBIN_U32("graphics/pokemon/combee/shiny.gbapal.lz"); -const u32 gMonShinyPalette_CombeeF[] = INCBIN_U32("graphics/pokemon/combee/shinyf.gbapal.lz"); -const u32 gMonShinyPalette_Vespiquen[] = INCBIN_U32("graphics/pokemon/vespiquen/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Pachirisu[] = INCBIN_U32("graphics/pokemon/pachirisu/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Buizel[] = INCBIN_U32("graphics/pokemon/buizel/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Floatzel[] = INCBIN_U32("graphics/pokemon/floatzel/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Cherubi[] = INCBIN_U32("graphics/pokemon/cherubi/shiny.gbapal.lz"); -const u32 gMonShinyPalette_CherrimOvercast[] = INCBIN_U32("graphics/pokemon/cherrim/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ShellosWestSea[] = INCBIN_U32("graphics/pokemon/shellos/shiny.gbapal.lz"); -const u32 gMonShinyPalette_GastrodonWestSea[] = INCBIN_U32("graphics/pokemon/gastrodon/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Ambipom[] = INCBIN_U32("graphics/pokemon/ambipom/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Drifloon[] = INCBIN_U32("graphics/pokemon/drifloon/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Drifblim[] = INCBIN_U32("graphics/pokemon/drifblim/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Buneary[] = INCBIN_U32("graphics/pokemon/buneary/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Lopunny[] = INCBIN_U32("graphics/pokemon/lopunny/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Mismagius[] = INCBIN_U32("graphics/pokemon/mismagius/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Honchkrow[] = INCBIN_U32("graphics/pokemon/honchkrow/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Glameow[] = INCBIN_U32("graphics/pokemon/glameow/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Purugly[] = INCBIN_U32("graphics/pokemon/purugly/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Chingling[] = INCBIN_U32("graphics/pokemon/chingling/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Stunky[] = INCBIN_U32("graphics/pokemon/stunky/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Skuntank[] = INCBIN_U32("graphics/pokemon/skuntank/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Bronzor[] = INCBIN_U32("graphics/pokemon/bronzor/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Bronzong[] = INCBIN_U32("graphics/pokemon/bronzong/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Bonsly[] = INCBIN_U32("graphics/pokemon/bonsly/shiny.gbapal.lz"); -const u32 gMonShinyPalette_MimeJr[] = INCBIN_U32("graphics/pokemon/mime_jr/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Happiny[] = INCBIN_U32("graphics/pokemon/happiny/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Chatot[] = INCBIN_U32("graphics/pokemon/chatot/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Spiritomb[] = INCBIN_U32("graphics/pokemon/spiritomb/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Gible[] = INCBIN_U32("graphics/pokemon/gible/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Gabite[] = INCBIN_U32("graphics/pokemon/gabite/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Garchomp[] = INCBIN_U32("graphics/pokemon/garchomp/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Munchlax[] = INCBIN_U32("graphics/pokemon/munchlax/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Riolu[] = INCBIN_U32("graphics/pokemon/riolu/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Lucario[] = INCBIN_U32("graphics/pokemon/lucario/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Hippopotas[] = INCBIN_U32("graphics/pokemon/hippopotas/shiny.gbapal.lz"); -const u32 gMonShinyPalette_HippopotasF[] = INCBIN_U32("graphics/pokemon/hippopotas/shinyf.gbapal.lz"); -const u32 gMonShinyPalette_Hippowdon[] = INCBIN_U32("graphics/pokemon/hippowdon/shiny.gbapal.lz"); -const u32 gMonShinyPalette_HippowdonF[] = INCBIN_U32("graphics/pokemon/hippowdon/shinyf.gbapal.lz"); -const u32 gMonShinyPalette_Skorupi[] = INCBIN_U32("graphics/pokemon/skorupi/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Drapion[] = INCBIN_U32("graphics/pokemon/drapion/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Croagunk[] = INCBIN_U32("graphics/pokemon/croagunk/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Toxicroak[] = INCBIN_U32("graphics/pokemon/toxicroak/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Carnivine[] = INCBIN_U32("graphics/pokemon/carnivine/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Finneon[] = INCBIN_U32("graphics/pokemon/finneon/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Lumineon[] = INCBIN_U32("graphics/pokemon/lumineon/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Mantyke[] = INCBIN_U32("graphics/pokemon/mantyke/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Snover[] = INCBIN_U32("graphics/pokemon/snover/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Abomasnow[] = INCBIN_U32("graphics/pokemon/abomasnow/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Weavile[] = INCBIN_U32("graphics/pokemon/weavile/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Magnezone[] = INCBIN_U32("graphics/pokemon/magnezone/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Lickilicky[] = INCBIN_U32("graphics/pokemon/lickilicky/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Rhyperior[] = INCBIN_U32("graphics/pokemon/rhyperior/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Tangrowth[] = INCBIN_U32("graphics/pokemon/tangrowth/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Electivire[] = INCBIN_U32("graphics/pokemon/electivire/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Magmortar[] = INCBIN_U32("graphics/pokemon/magmortar/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Togekiss[] = INCBIN_U32("graphics/pokemon/togekiss/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Yanmega[] = INCBIN_U32("graphics/pokemon/yanmega/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Leafeon[] = INCBIN_U32("graphics/pokemon/leafeon/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Glaceon[] = INCBIN_U32("graphics/pokemon/glaceon/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Gliscor[] = INCBIN_U32("graphics/pokemon/gliscor/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Mamoswine[] = INCBIN_U32("graphics/pokemon/mamoswine/shiny.gbapal.lz"); -const u32 gMonShinyPalette_PorygonZ[] = INCBIN_U32("graphics/pokemon/porygon_z/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Gallade[] = INCBIN_U32("graphics/pokemon/gallade/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Probopass[] = INCBIN_U32("graphics/pokemon/probopass/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Dusknoir[] = INCBIN_U32("graphics/pokemon/dusknoir/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Froslass[] = INCBIN_U32("graphics/pokemon/froslass/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Rotom[] = INCBIN_U32("graphics/pokemon/rotom/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Uxie[] = INCBIN_U32("graphics/pokemon/uxie/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Mesprit[] = INCBIN_U32("graphics/pokemon/mesprit/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Azelf[] = INCBIN_U32("graphics/pokemon/azelf/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Dialga[] = INCBIN_U32("graphics/pokemon/dialga/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Palkia[] = INCBIN_U32("graphics/pokemon/palkia/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Heatran[] = INCBIN_U32("graphics/pokemon/heatran/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Regigigas[] = INCBIN_U32("graphics/pokemon/regigigas/shiny.gbapal.lz"); -const u32 gMonShinyPalette_GiratinaAltered[] = INCBIN_U32("graphics/pokemon/giratina/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Cresselia[] = INCBIN_U32("graphics/pokemon/cresselia/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Phione[] = INCBIN_U32("graphics/pokemon/phione/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Manaphy[] = INCBIN_U32("graphics/pokemon/manaphy/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Darkrai[] = INCBIN_U32("graphics/pokemon/darkrai/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ShayminLand[] = INCBIN_U32("graphics/pokemon/shaymin/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Arceus[] = INCBIN_U32("graphics/pokemon/arceus/shiny.gbapal.lz"); -#endif -#if P_GEN_5_POKEMON == TRUE -const u32 gMonShinyPalette_Victini[] = INCBIN_U32("graphics/pokemon/victini/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Snivy[] = INCBIN_U32("graphics/pokemon/snivy/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Servine[] = INCBIN_U32("graphics/pokemon/servine/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Serperior[] = INCBIN_U32("graphics/pokemon/serperior/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Tepig[] = INCBIN_U32("graphics/pokemon/tepig/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Pignite[] = INCBIN_U32("graphics/pokemon/pignite/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Emboar[] = INCBIN_U32("graphics/pokemon/emboar/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Oshawott[] = INCBIN_U32("graphics/pokemon/oshawott/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Dewott[] = INCBIN_U32("graphics/pokemon/dewott/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Samurott[] = INCBIN_U32("graphics/pokemon/samurott/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Patrat[] = INCBIN_U32("graphics/pokemon/patrat/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Watchog[] = INCBIN_U32("graphics/pokemon/watchog/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Lillipup[] = INCBIN_U32("graphics/pokemon/lillipup/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Herdier[] = INCBIN_U32("graphics/pokemon/herdier/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Stoutland[] = INCBIN_U32("graphics/pokemon/stoutland/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Purrloin[] = INCBIN_U32("graphics/pokemon/purrloin/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Liepard[] = INCBIN_U32("graphics/pokemon/liepard/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Pansage[] = INCBIN_U32("graphics/pokemon/pansage/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Simisage[] = INCBIN_U32("graphics/pokemon/simisage/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Pansear[] = INCBIN_U32("graphics/pokemon/pansear/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Simisear[] = INCBIN_U32("graphics/pokemon/simisear/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Panpour[] = INCBIN_U32("graphics/pokemon/panpour/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Simipour[] = INCBIN_U32("graphics/pokemon/simipour/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Munna[] = INCBIN_U32("graphics/pokemon/munna/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Musharna[] = INCBIN_U32("graphics/pokemon/musharna/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Pidove[] = INCBIN_U32("graphics/pokemon/pidove/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Tranquill[] = INCBIN_U32("graphics/pokemon/tranquill/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Unfezant[] = INCBIN_U32("graphics/pokemon/unfezant/shiny.gbapal.lz"); -const u32 gMonShinyPalette_UnfezantF[] = INCBIN_U32("graphics/pokemon/unfezant/shinyf.gbapal.lz"); -const u32 gMonShinyPalette_Blitzle[] = INCBIN_U32("graphics/pokemon/blitzle/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Zebstrika[] = INCBIN_U32("graphics/pokemon/zebstrika/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Roggenrola[] = INCBIN_U32("graphics/pokemon/roggenrola/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Boldore[] = INCBIN_U32("graphics/pokemon/boldore/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Gigalith[] = INCBIN_U32("graphics/pokemon/gigalith/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Woobat[] = INCBIN_U32("graphics/pokemon/woobat/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Swoobat[] = INCBIN_U32("graphics/pokemon/swoobat/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Drilbur[] = INCBIN_U32("graphics/pokemon/drilbur/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Excadrill[] = INCBIN_U32("graphics/pokemon/excadrill/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Audino[] = INCBIN_U32("graphics/pokemon/audino/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Timburr[] = INCBIN_U32("graphics/pokemon/timburr/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Gurdurr[] = INCBIN_U32("graphics/pokemon/gurdurr/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Conkeldurr[] = INCBIN_U32("graphics/pokemon/conkeldurr/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Tympole[] = INCBIN_U32("graphics/pokemon/tympole/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Palpitoad[] = INCBIN_U32("graphics/pokemon/palpitoad/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Seismitoad[] = INCBIN_U32("graphics/pokemon/seismitoad/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Throh[] = INCBIN_U32("graphics/pokemon/throh/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Sawk[] = INCBIN_U32("graphics/pokemon/sawk/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Sewaddle[] = INCBIN_U32("graphics/pokemon/sewaddle/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Swadloon[] = INCBIN_U32("graphics/pokemon/swadloon/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Leavanny[] = INCBIN_U32("graphics/pokemon/leavanny/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Venipede[] = INCBIN_U32("graphics/pokemon/venipede/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Whirlipede[] = INCBIN_U32("graphics/pokemon/whirlipede/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Scolipede[] = INCBIN_U32("graphics/pokemon/scolipede/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Cottonee[] = INCBIN_U32("graphics/pokemon/cottonee/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Whimsicott[] = INCBIN_U32("graphics/pokemon/whimsicott/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Petilil[] = INCBIN_U32("graphics/pokemon/petilil/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Lilligant[] = INCBIN_U32("graphics/pokemon/lilligant/shiny.gbapal.lz"); -const u32 gMonShinyPalette_BasculinRedStriped[] = INCBIN_U32("graphics/pokemon/basculin/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Sandile[] = INCBIN_U32("graphics/pokemon/sandile/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Krokorok[] = INCBIN_U32("graphics/pokemon/krokorok/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Krookodile[] = INCBIN_U32("graphics/pokemon/krookodile/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Darumaka[] = INCBIN_U32("graphics/pokemon/darumaka/shiny.gbapal.lz"); -const u32 gMonShinyPalette_DarmanitanStandardMode[] = INCBIN_U32("graphics/pokemon/darmanitan/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Maractus[] = INCBIN_U32("graphics/pokemon/maractus/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Dwebble[] = INCBIN_U32("graphics/pokemon/dwebble/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Crustle[] = INCBIN_U32("graphics/pokemon/crustle/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Scraggy[] = INCBIN_U32("graphics/pokemon/scraggy/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Scrafty[] = INCBIN_U32("graphics/pokemon/scrafty/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Sigilyph[] = INCBIN_U32("graphics/pokemon/sigilyph/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Yamask[] = INCBIN_U32("graphics/pokemon/yamask/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Cofagrigus[] = INCBIN_U32("graphics/pokemon/cofagrigus/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Tirtouga[] = INCBIN_U32("graphics/pokemon/tirtouga/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Carracosta[] = INCBIN_U32("graphics/pokemon/carracosta/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Archen[] = INCBIN_U32("graphics/pokemon/archen/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Archeops[] = INCBIN_U32("graphics/pokemon/archeops/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Trubbish[] = INCBIN_U32("graphics/pokemon/trubbish/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Garbodor[] = INCBIN_U32("graphics/pokemon/garbodor/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Zorua[] = INCBIN_U32("graphics/pokemon/zorua/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Zoroark[] = INCBIN_U32("graphics/pokemon/zoroark/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Minccino[] = INCBIN_U32("graphics/pokemon/minccino/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Cinccino[] = INCBIN_U32("graphics/pokemon/cinccino/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Gothita[] = INCBIN_U32("graphics/pokemon/gothita/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Gothorita[] = INCBIN_U32("graphics/pokemon/gothorita/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Gothitelle[] = INCBIN_U32("graphics/pokemon/gothitelle/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Solosis[] = INCBIN_U32("graphics/pokemon/solosis/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Duosion[] = INCBIN_U32("graphics/pokemon/duosion/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Reuniclus[] = INCBIN_U32("graphics/pokemon/reuniclus/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Ducklett[] = INCBIN_U32("graphics/pokemon/ducklett/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Swanna[] = INCBIN_U32("graphics/pokemon/swanna/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Vanillite[] = INCBIN_U32("graphics/pokemon/vanillite/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Vanillish[] = INCBIN_U32("graphics/pokemon/vanillish/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Vanilluxe[] = INCBIN_U32("graphics/pokemon/vanilluxe/shiny.gbapal.lz"); -const u32 gMonShinyPalette_DeerlingSpring[] = INCBIN_U32("graphics/pokemon/deerling/shiny.gbapal.lz"); -const u32 gMonShinyPalette_SawsbuckSpring[] = INCBIN_U32("graphics/pokemon/sawsbuck/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Emolga[] = INCBIN_U32("graphics/pokemon/emolga/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Karrablast[] = INCBIN_U32("graphics/pokemon/karrablast/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Escavalier[] = INCBIN_U32("graphics/pokemon/escavalier/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Foongus[] = INCBIN_U32("graphics/pokemon/foongus/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Amoonguss[] = INCBIN_U32("graphics/pokemon/amoonguss/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Frillish[] = INCBIN_U32("graphics/pokemon/frillish/shiny.gbapal.lz"); -const u32 gMonShinyPalette_FrillishF[] = INCBIN_U32("graphics/pokemon/frillish/shinyf.gbapal.lz"); -const u32 gMonShinyPalette_Jellicent[] = INCBIN_U32("graphics/pokemon/jellicent/shiny.gbapal.lz"); -const u32 gMonShinyPalette_JellicentF[] = INCBIN_U32("graphics/pokemon/jellicent/shinyf.gbapal.lz"); -const u32 gMonShinyPalette_Alomomola[] = INCBIN_U32("graphics/pokemon/alomomola/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Joltik[] = INCBIN_U32("graphics/pokemon/joltik/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Galvantula[] = INCBIN_U32("graphics/pokemon/galvantula/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Ferroseed[] = INCBIN_U32("graphics/pokemon/ferroseed/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Ferrothorn[] = INCBIN_U32("graphics/pokemon/ferrothorn/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Klink[] = INCBIN_U32("graphics/pokemon/klink/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Klang[] = INCBIN_U32("graphics/pokemon/klang/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Klinklang[] = INCBIN_U32("graphics/pokemon/klinklang/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Tynamo[] = INCBIN_U32("graphics/pokemon/tynamo/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Eelektrik[] = INCBIN_U32("graphics/pokemon/eelektrik/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Eelektross[] = INCBIN_U32("graphics/pokemon/eelektross/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Elgyem[] = INCBIN_U32("graphics/pokemon/elgyem/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Beheeyem[] = INCBIN_U32("graphics/pokemon/beheeyem/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Litwick[] = INCBIN_U32("graphics/pokemon/litwick/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Lampent[] = INCBIN_U32("graphics/pokemon/lampent/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Chandelure[] = INCBIN_U32("graphics/pokemon/chandelure/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Axew[] = INCBIN_U32("graphics/pokemon/axew/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Fraxure[] = INCBIN_U32("graphics/pokemon/fraxure/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Haxorus[] = INCBIN_U32("graphics/pokemon/haxorus/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Cubchoo[] = INCBIN_U32("graphics/pokemon/cubchoo/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Beartic[] = INCBIN_U32("graphics/pokemon/beartic/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Cryogonal[] = INCBIN_U32("graphics/pokemon/cryogonal/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Shelmet[] = INCBIN_U32("graphics/pokemon/shelmet/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Accelgor[] = INCBIN_U32("graphics/pokemon/accelgor/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Stunfisk[] = INCBIN_U32("graphics/pokemon/stunfisk/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Mienfoo[] = INCBIN_U32("graphics/pokemon/mienfoo/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Mienshao[] = INCBIN_U32("graphics/pokemon/mienshao/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Druddigon[] = INCBIN_U32("graphics/pokemon/druddigon/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Golett[] = INCBIN_U32("graphics/pokemon/golett/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Golurk[] = INCBIN_U32("graphics/pokemon/golurk/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Pawniard[] = INCBIN_U32("graphics/pokemon/pawniard/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Bisharp[] = INCBIN_U32("graphics/pokemon/bisharp/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Bouffalant[] = INCBIN_U32("graphics/pokemon/bouffalant/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Rufflet[] = INCBIN_U32("graphics/pokemon/rufflet/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Braviary[] = INCBIN_U32("graphics/pokemon/braviary/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Vullaby[] = INCBIN_U32("graphics/pokemon/vullaby/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Mandibuzz[] = INCBIN_U32("graphics/pokemon/mandibuzz/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Heatmor[] = INCBIN_U32("graphics/pokemon/heatmor/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Durant[] = INCBIN_U32("graphics/pokemon/durant/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Deino[] = INCBIN_U32("graphics/pokemon/deino/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Zweilous[] = INCBIN_U32("graphics/pokemon/zweilous/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Hydreigon[] = INCBIN_U32("graphics/pokemon/hydreigon/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Larvesta[] = INCBIN_U32("graphics/pokemon/larvesta/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Volcarona[] = INCBIN_U32("graphics/pokemon/volcarona/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Cobalion[] = INCBIN_U32("graphics/pokemon/cobalion/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Terrakion[] = INCBIN_U32("graphics/pokemon/terrakion/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Virizion[] = INCBIN_U32("graphics/pokemon/virizion/shiny.gbapal.lz"); -const u32 gMonShinyPalette_TornadusIncarnate[] = INCBIN_U32("graphics/pokemon/tornadus/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ThundurusIncarnate[] = INCBIN_U32("graphics/pokemon/thundurus/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Reshiram[] = INCBIN_U32("graphics/pokemon/reshiram/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Zekrom[] = INCBIN_U32("graphics/pokemon/zekrom/shiny.gbapal.lz"); -const u32 gMonShinyPalette_LandorusIncarnate[] = INCBIN_U32("graphics/pokemon/landorus/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Kyurem[] = INCBIN_U32("graphics/pokemon/kyurem/shiny.gbapal.lz"); -const u32 gMonShinyPalette_KeldeoOrdinary[] = INCBIN_U32("graphics/pokemon/keldeo/shiny.gbapal.lz"); -const u32 gMonShinyPalette_MeloettaAria[] = INCBIN_U32("graphics/pokemon/meloetta/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Genesect[] = INCBIN_U32("graphics/pokemon/genesect/shiny.gbapal.lz"); -#endif -#if P_GEN_6_POKEMON == TRUE -const u32 gMonShinyPalette_Chespin[] = INCBIN_U32("graphics/pokemon/chespin/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Quilladin[] = INCBIN_U32("graphics/pokemon/quilladin/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Chesnaught[] = INCBIN_U32("graphics/pokemon/chesnaught/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Fennekin[] = INCBIN_U32("graphics/pokemon/fennekin/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Braixen[] = INCBIN_U32("graphics/pokemon/braixen/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Delphox[] = INCBIN_U32("graphics/pokemon/delphox/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Froakie[] = INCBIN_U32("graphics/pokemon/froakie/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Frogadier[] = INCBIN_U32("graphics/pokemon/frogadier/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Greninja[] = INCBIN_U32("graphics/pokemon/greninja/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Bunnelby[] = INCBIN_U32("graphics/pokemon/bunnelby/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Diggersby[] = INCBIN_U32("graphics/pokemon/diggersby/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Fletchling[] = INCBIN_U32("graphics/pokemon/fletchling/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Fletchinder[] = INCBIN_U32("graphics/pokemon/fletchinder/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Talonflame[] = INCBIN_U32("graphics/pokemon/talonflame/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Scatterbug[] = INCBIN_U32("graphics/pokemon/scatterbug/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Spewpa[] = INCBIN_U32("graphics/pokemon/spewpa/shiny.gbapal.lz"); -const u32 gMonShinyPalette_VivillonIcySnow[] = INCBIN_U32("graphics/pokemon/vivillon/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Litleo[] = INCBIN_U32("graphics/pokemon/litleo/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Pyroar[] = INCBIN_U32("graphics/pokemon/pyroar/shiny.gbapal.lz"); -const u32 gMonShinyPalette_FlabebeRedFlower[] = INCBIN_U32("graphics/pokemon/flabebe/shiny.gbapal.lz"); -const u32 gMonShinyPalette_FloetteRedFlower[] = INCBIN_U32("graphics/pokemon/floette/shiny.gbapal.lz"); -const u32 gMonShinyPalette_FlorgesRedFlower[] = INCBIN_U32("graphics/pokemon/florges/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Skiddo[] = INCBIN_U32("graphics/pokemon/skiddo/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Gogoat[] = INCBIN_U32("graphics/pokemon/gogoat/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Pancham[] = INCBIN_U32("graphics/pokemon/pancham/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Pangoro[] = INCBIN_U32("graphics/pokemon/pangoro/shiny.gbapal.lz"); -const u32 gMonShinyPalette_FurfrouNatural[] = INCBIN_U32("graphics/pokemon/furfrou/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Espurr[] = INCBIN_U32("graphics/pokemon/espurr/shiny.gbapal.lz"); -const u32 gMonShinyPalette_MeowsticMale[] = INCBIN_U32("graphics/pokemon/meowstic/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Honedge[] = INCBIN_U32("graphics/pokemon/honedge/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Doublade[] = INCBIN_U32("graphics/pokemon/doublade/shiny.gbapal.lz"); -const u32 gMonShinyPalette_AegislashShield[] = INCBIN_U32("graphics/pokemon/aegislash/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Spritzee[] = INCBIN_U32("graphics/pokemon/spritzee/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Aromatisse[] = INCBIN_U32("graphics/pokemon/aromatisse/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Swirlix[] = INCBIN_U32("graphics/pokemon/swirlix/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Slurpuff[] = INCBIN_U32("graphics/pokemon/slurpuff/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Inkay[] = INCBIN_U32("graphics/pokemon/inkay/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Malamar[] = INCBIN_U32("graphics/pokemon/malamar/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Binacle[] = INCBIN_U32("graphics/pokemon/binacle/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Barbaracle[] = INCBIN_U32("graphics/pokemon/barbaracle/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Skrelp[] = INCBIN_U32("graphics/pokemon/skrelp/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Dragalge[] = INCBIN_U32("graphics/pokemon/dragalge/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Clauncher[] = INCBIN_U32("graphics/pokemon/clauncher/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Clawitzer[] = INCBIN_U32("graphics/pokemon/clawitzer/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Helioptile[] = INCBIN_U32("graphics/pokemon/helioptile/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Heliolisk[] = INCBIN_U32("graphics/pokemon/heliolisk/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Tyrunt[] = INCBIN_U32("graphics/pokemon/tyrunt/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Tyrantrum[] = INCBIN_U32("graphics/pokemon/tyrantrum/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Amaura[] = INCBIN_U32("graphics/pokemon/amaura/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Aurorus[] = INCBIN_U32("graphics/pokemon/aurorus/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Sylveon[] = INCBIN_U32("graphics/pokemon/sylveon/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Hawlucha[] = INCBIN_U32("graphics/pokemon/hawlucha/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Dedenne[] = INCBIN_U32("graphics/pokemon/dedenne/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Carbink[] = INCBIN_U32("graphics/pokemon/carbink/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Goomy[] = INCBIN_U32("graphics/pokemon/goomy/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Sliggoo[] = INCBIN_U32("graphics/pokemon/sliggoo/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Goodra[] = INCBIN_U32("graphics/pokemon/goodra/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Klefki[] = INCBIN_U32("graphics/pokemon/klefki/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Phantump[] = INCBIN_U32("graphics/pokemon/phantump/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Trevenant[] = INCBIN_U32("graphics/pokemon/trevenant/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Pumpkaboo[] = INCBIN_U32("graphics/pokemon/pumpkaboo/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Gourgeist[] = INCBIN_U32("graphics/pokemon/gourgeist/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Bergmite[] = INCBIN_U32("graphics/pokemon/bergmite/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Avalugg[] = INCBIN_U32("graphics/pokemon/avalugg/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Noibat[] = INCBIN_U32("graphics/pokemon/noibat/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Noivern[] = INCBIN_U32("graphics/pokemon/noivern/shiny.gbapal.lz"); -const u32 gMonShinyPalette_XerneasNeutral[] = INCBIN_U32("graphics/pokemon/xerneas/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Yveltal[] = INCBIN_U32("graphics/pokemon/yveltal/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Zygarde50[] = INCBIN_U32("graphics/pokemon/zygarde/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Diancie[] = INCBIN_U32("graphics/pokemon/diancie/shiny.gbapal.lz"); -const u32 gMonShinyPalette_HoopaConfined[] = INCBIN_U32("graphics/pokemon/hoopa/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Volcanion[] = INCBIN_U32("graphics/pokemon/volcanion/shiny.gbapal.lz"); -#endif -#if P_GEN_7_POKEMON == TRUE -const u32 gMonShinyPalette_Rowlet[] = INCBIN_U32("graphics/pokemon/rowlet/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Dartrix[] = INCBIN_U32("graphics/pokemon/dartrix/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Decidueye[] = INCBIN_U32("graphics/pokemon/decidueye/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Litten[] = INCBIN_U32("graphics/pokemon/litten/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Torracat[] = INCBIN_U32("graphics/pokemon/torracat/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Incineroar[] = INCBIN_U32("graphics/pokemon/incineroar/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Popplio[] = INCBIN_U32("graphics/pokemon/popplio/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Brionne[] = INCBIN_U32("graphics/pokemon/brionne/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Primarina[] = INCBIN_U32("graphics/pokemon/primarina/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Pikipek[] = INCBIN_U32("graphics/pokemon/pikipek/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Trumbeak[] = INCBIN_U32("graphics/pokemon/trumbeak/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Toucannon[] = INCBIN_U32("graphics/pokemon/toucannon/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Yungoos[] = INCBIN_U32("graphics/pokemon/yungoos/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Gumshoos[] = INCBIN_U32("graphics/pokemon/gumshoos/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Grubbin[] = INCBIN_U32("graphics/pokemon/grubbin/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Charjabug[] = INCBIN_U32("graphics/pokemon/charjabug/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Vikavolt[] = INCBIN_U32("graphics/pokemon/vikavolt/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Crabrawler[] = INCBIN_U32("graphics/pokemon/crabrawler/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Crabominable[] = INCBIN_U32("graphics/pokemon/crabominable/shiny.gbapal.lz"); -const u32 gMonShinyPalette_OricorioBaile[] = INCBIN_U32("graphics/pokemon/oricorio/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Cutiefly[] = INCBIN_U32("graphics/pokemon/cutiefly/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Ribombee[] = INCBIN_U32("graphics/pokemon/ribombee/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Rockruff[] = INCBIN_U32("graphics/pokemon/rockruff/shiny.gbapal.lz"); -const u32 gMonShinyPalette_LycanrocMidday[] = INCBIN_U32("graphics/pokemon/lycanroc/shiny.gbapal.lz"); -const u32 gMonShinyPalette_WishiwashiSolo[] = INCBIN_U32("graphics/pokemon/wishiwashi/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Mareanie[] = INCBIN_U32("graphics/pokemon/mareanie/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Toxapex[] = INCBIN_U32("graphics/pokemon/toxapex/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Mudbray[] = INCBIN_U32("graphics/pokemon/mudbray/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Mudsdale[] = INCBIN_U32("graphics/pokemon/mudsdale/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Dewpider[] = INCBIN_U32("graphics/pokemon/dewpider/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Araquanid[] = INCBIN_U32("graphics/pokemon/araquanid/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Fomantis[] = INCBIN_U32("graphics/pokemon/fomantis/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Lurantis[] = INCBIN_U32("graphics/pokemon/lurantis/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Morelull[] = INCBIN_U32("graphics/pokemon/morelull/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Shiinotic[] = INCBIN_U32("graphics/pokemon/shiinotic/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Salandit[] = INCBIN_U32("graphics/pokemon/salandit/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Salazzle[] = INCBIN_U32("graphics/pokemon/salazzle/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Stufful[] = INCBIN_U32("graphics/pokemon/stufful/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Bewear[] = INCBIN_U32("graphics/pokemon/bewear/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Bounsweet[] = INCBIN_U32("graphics/pokemon/bounsweet/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Steenee[] = INCBIN_U32("graphics/pokemon/steenee/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Tsareena[] = INCBIN_U32("graphics/pokemon/tsareena/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Comfey[] = INCBIN_U32("graphics/pokemon/comfey/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Oranguru[] = INCBIN_U32("graphics/pokemon/oranguru/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Passimian[] = INCBIN_U32("graphics/pokemon/passimian/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Wimpod[] = INCBIN_U32("graphics/pokemon/wimpod/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Golisopod[] = INCBIN_U32("graphics/pokemon/golisopod/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Sandygast[] = INCBIN_U32("graphics/pokemon/sandygast/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Palossand[] = INCBIN_U32("graphics/pokemon/palossand/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Pyukumuku[] = INCBIN_U32("graphics/pokemon/pyukumuku/shiny.gbapal.lz"); -const u32 gMonShinyPalette_TypeNull[] = INCBIN_U32("graphics/pokemon/type_null/shiny.gbapal.lz"); -const u32 gMonShinyPalette_SilvallyNormal[] = INCBIN_U32("graphics/pokemon/silvally/shiny.gbapal.lz"); -const u32 gMonShinyPalette_MiniorMeteor[] = INCBIN_U32("graphics/pokemon/minior/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Komala[] = INCBIN_U32("graphics/pokemon/komala/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Turtonator[] = INCBIN_U32("graphics/pokemon/turtonator/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Togedemaru[] = INCBIN_U32("graphics/pokemon/togedemaru/shiny.gbapal.lz"); -const u32 gMonShinyPalette_MimikyuDisguised[] = INCBIN_U32("graphics/pokemon/mimikyu/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Bruxish[] = INCBIN_U32("graphics/pokemon/bruxish/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Drampa[] = INCBIN_U32("graphics/pokemon/drampa/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Dhelmise[] = INCBIN_U32("graphics/pokemon/dhelmise/shiny.gbapal.lz"); -const u32 gMonShinyPalette_JangmoO[] = INCBIN_U32("graphics/pokemon/jangmo_o/shiny.gbapal.lz"); -const u32 gMonShinyPalette_HakamoO[] = INCBIN_U32("graphics/pokemon/hakamo_o/shiny.gbapal.lz"); -const u32 gMonShinyPalette_KommoO[] = INCBIN_U32("graphics/pokemon/kommo_o/shiny.gbapal.lz"); -const u32 gMonShinyPalette_TapuKoko[] = INCBIN_U32("graphics/pokemon/tapu_koko/shiny.gbapal.lz"); -const u32 gMonShinyPalette_TapuLele[] = INCBIN_U32("graphics/pokemon/tapu_lele/shiny.gbapal.lz"); -const u32 gMonShinyPalette_TapuBulu[] = INCBIN_U32("graphics/pokemon/tapu_bulu/shiny.gbapal.lz"); -const u32 gMonShinyPalette_TapuFini[] = INCBIN_U32("graphics/pokemon/tapu_fini/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Cosmog[] = INCBIN_U32("graphics/pokemon/cosmog/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Cosmoem[] = INCBIN_U32("graphics/pokemon/cosmoem/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Solgaleo[] = INCBIN_U32("graphics/pokemon/solgaleo/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Lunala[] = INCBIN_U32("graphics/pokemon/lunala/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Nihilego[] = INCBIN_U32("graphics/pokemon/nihilego/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Buzzwole[] = INCBIN_U32("graphics/pokemon/buzzwole/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Pheromosa[] = INCBIN_U32("graphics/pokemon/pheromosa/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Xurkitree[] = INCBIN_U32("graphics/pokemon/xurkitree/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Celesteela[] = INCBIN_U32("graphics/pokemon/celesteela/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Kartana[] = INCBIN_U32("graphics/pokemon/kartana/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Guzzlord[] = INCBIN_U32("graphics/pokemon/guzzlord/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Necrozma[] = INCBIN_U32("graphics/pokemon/necrozma/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Magearna[] = INCBIN_U32("graphics/pokemon/magearna/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Marshadow[] = INCBIN_U32("graphics/pokemon/marshadow/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Poipole[] = INCBIN_U32("graphics/pokemon/poipole/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Naganadel[] = INCBIN_U32("graphics/pokemon/naganadel/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Stakataka[] = INCBIN_U32("graphics/pokemon/stakataka/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Blacephalon[] = INCBIN_U32("graphics/pokemon/blacephalon/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Zeraora[] = INCBIN_U32("graphics/pokemon/zeraora/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Meltan[] = INCBIN_U32("graphics/pokemon/meltan/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Melmetal[] = INCBIN_U32("graphics/pokemon/melmetal/shiny.gbapal.lz"); -#endif -#if P_GEN_8_POKEMON == TRUE -const u32 gMonShinyPalette_Grookey[] = INCBIN_U32("graphics/pokemon/grookey/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Thwackey[] = INCBIN_U32("graphics/pokemon/thwackey/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Rillaboom[] = INCBIN_U32("graphics/pokemon/rillaboom/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Scorbunny[] = INCBIN_U32("graphics/pokemon/scorbunny/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Raboot[] = INCBIN_U32("graphics/pokemon/raboot/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Cinderace[] = INCBIN_U32("graphics/pokemon/cinderace/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Sobble[] = INCBIN_U32("graphics/pokemon/sobble/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Drizzile[] = INCBIN_U32("graphics/pokemon/drizzile/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Inteleon[] = INCBIN_U32("graphics/pokemon/inteleon/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Skwovet[] = INCBIN_U32("graphics/pokemon/skwovet/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Greedent[] = INCBIN_U32("graphics/pokemon/greedent/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Rookidee[] = INCBIN_U32("graphics/pokemon/rookidee/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Corvisquire[] = INCBIN_U32("graphics/pokemon/corvisquire/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Corviknight[] = INCBIN_U32("graphics/pokemon/corviknight/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Blipbug[] = INCBIN_U32("graphics/pokemon/blipbug/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Dottler[] = INCBIN_U32("graphics/pokemon/dottler/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Orbeetle[] = INCBIN_U32("graphics/pokemon/orbeetle/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Nickit[] = INCBIN_U32("graphics/pokemon/nickit/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Thievul[] = INCBIN_U32("graphics/pokemon/thievul/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Gossifleur[] = INCBIN_U32("graphics/pokemon/gossifleur/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Eldegoss[] = INCBIN_U32("graphics/pokemon/eldegoss/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Wooloo[] = INCBIN_U32("graphics/pokemon/wooloo/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Dubwool[] = INCBIN_U32("graphics/pokemon/dubwool/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Chewtle[] = INCBIN_U32("graphics/pokemon/chewtle/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Drednaw[] = INCBIN_U32("graphics/pokemon/drednaw/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Yamper[] = INCBIN_U32("graphics/pokemon/yamper/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Boltund[] = INCBIN_U32("graphics/pokemon/boltund/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Rolycoly[] = INCBIN_U32("graphics/pokemon/rolycoly/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Carkol[] = INCBIN_U32("graphics/pokemon/carkol/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Coalossal[] = INCBIN_U32("graphics/pokemon/coalossal/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Applin[] = INCBIN_U32("graphics/pokemon/applin/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Flapple[] = INCBIN_U32("graphics/pokemon/flapple/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Appletun[] = INCBIN_U32("graphics/pokemon/appletun/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Silicobra[] = INCBIN_U32("graphics/pokemon/silicobra/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Sandaconda[] = INCBIN_U32("graphics/pokemon/sandaconda/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Cramorant[] = INCBIN_U32("graphics/pokemon/cramorant/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Arrokuda[] = INCBIN_U32("graphics/pokemon/arrokuda/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Barraskewda[] = INCBIN_U32("graphics/pokemon/barraskewda/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Toxel[] = INCBIN_U32("graphics/pokemon/toxel/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ToxtricityAmped[] = INCBIN_U32("graphics/pokemon/toxtricity/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Sizzlipede[] = INCBIN_U32("graphics/pokemon/sizzlipede/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Centiskorch[] = INCBIN_U32("graphics/pokemon/centiskorch/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Clobbopus[] = INCBIN_U32("graphics/pokemon/clobbopus/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Grapploct[] = INCBIN_U32("graphics/pokemon/grapploct/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Sinistea[] = INCBIN_U32("graphics/pokemon/sinistea/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Polteageist[] = INCBIN_U32("graphics/pokemon/polteageist/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Hatenna[] = INCBIN_U32("graphics/pokemon/hatenna/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Hattrem[] = INCBIN_U32("graphics/pokemon/hattrem/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Hatterene[] = INCBIN_U32("graphics/pokemon/hatterene/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Impidimp[] = INCBIN_U32("graphics/pokemon/impidimp/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Morgrem[] = INCBIN_U32("graphics/pokemon/morgrem/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Grimmsnarl[] = INCBIN_U32("graphics/pokemon/grimmsnarl/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Obstagoon[] = INCBIN_U32("graphics/pokemon/obstagoon/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Perrserker[] = INCBIN_U32("graphics/pokemon/perrserker/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Cursola[] = INCBIN_U32("graphics/pokemon/cursola/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Sirfetchd[] = INCBIN_U32("graphics/pokemon/sirfetchd/shiny.gbapal.lz"); -const u32 gMonShinyPalette_MrRime[] = INCBIN_U32("graphics/pokemon/mr_rime/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Runerigus[] = INCBIN_U32("graphics/pokemon/runerigus/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Milcery[] = INCBIN_U32("graphics/pokemon/milcery/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Alcremie[] = INCBIN_U32("graphics/pokemon/alcremie/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Falinks[] = INCBIN_U32("graphics/pokemon/falinks/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Pincurchin[] = INCBIN_U32("graphics/pokemon/pincurchin/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Snom[] = INCBIN_U32("graphics/pokemon/snom/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Frosmoth[] = INCBIN_U32("graphics/pokemon/frosmoth/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Stonjourner[] = INCBIN_U32("graphics/pokemon/stonjourner/shiny.gbapal.lz"); -const u32 gMonShinyPalette_EiscueIceFace[] = INCBIN_U32("graphics/pokemon/eiscue/shiny.gbapal.lz"); -const u32 gMonShinyPalette_IndeedeeMale[] = INCBIN_U32("graphics/pokemon/indeedee/shiny.gbapal.lz"); -const u32 gMonShinyPalette_MorpekoFullBelly[] = INCBIN_U32("graphics/pokemon/morpeko/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Cufant[] = INCBIN_U32("graphics/pokemon/cufant/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Copperajah[] = INCBIN_U32("graphics/pokemon/copperajah/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Dracozolt[] = INCBIN_U32("graphics/pokemon/dracozolt/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Arctozolt[] = INCBIN_U32("graphics/pokemon/arctozolt/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Dracovish[] = INCBIN_U32("graphics/pokemon/dracovish/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Arctovish[] = INCBIN_U32("graphics/pokemon/arctovish/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Duraludon[] = INCBIN_U32("graphics/pokemon/duraludon/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Dreepy[] = INCBIN_U32("graphics/pokemon/dreepy/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Drakloak[] = INCBIN_U32("graphics/pokemon/drakloak/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Dragapult[] = INCBIN_U32("graphics/pokemon/dragapult/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ZacianHeroOfManyBattles[] = INCBIN_U32("graphics/pokemon/zacian/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ZamazentaHeroOfManyBattles[] = INCBIN_U32("graphics/pokemon/zamazenta/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Eternatus[] = INCBIN_U32("graphics/pokemon/eternatus/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Kubfu[] = INCBIN_U32("graphics/pokemon/kubfu/shiny.gbapal.lz"); -const u32 gMonShinyPalette_UrshifuSingleStrikeStyle[] = INCBIN_U32("graphics/pokemon/urshifu/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Zarude[] = INCBIN_U32("graphics/pokemon/zarude/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Regieleki[] = INCBIN_U32("graphics/pokemon/regieleki/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Regidrago[] = INCBIN_U32("graphics/pokemon/regidrago/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Glastrier[] = INCBIN_U32("graphics/pokemon/glastrier/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Spectrier[] = INCBIN_U32("graphics/pokemon/spectrier/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Calyrex[] = INCBIN_U32("graphics/pokemon/calyrex/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Wyrdeer[] = INCBIN_U32("graphics/pokemon/wyrdeer/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Kleavor[] = INCBIN_U32("graphics/pokemon/kleavor/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Ursaluna[] = INCBIN_U32("graphics/pokemon/ursaluna/shiny.gbapal.lz"); -const u32 gMonShinyPalette_BasculegionMale[] = INCBIN_U32("graphics/pokemon/basculegion/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Sneasler[] = INCBIN_U32("graphics/pokemon/sneasler/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Overqwil[] = INCBIN_U32("graphics/pokemon/overqwil/shiny.gbapal.lz"); -const u32 gMonShinyPalette_EnamorusIncarnate[] = INCBIN_U32("graphics/pokemon/enamorus/shiny.gbapal.lz"); -#endif -const u32 gMonShinyPalette_VenusaurMega[] = INCBIN_U32("graphics/pokemon/venusaur/mega/shiny.gbapal.lz"); -const u32 gMonShinyPalette_CharizardMegaX[] = INCBIN_U32("graphics/pokemon/charizard/mega_x/shiny.gbapal.lz"); -const u32 gMonShinyPalette_CharizardMegaY[] = INCBIN_U32("graphics/pokemon/charizard/mega_y/shiny.gbapal.lz"); -const u32 gMonShinyPalette_BlastoiseMega[] = INCBIN_U32("graphics/pokemon/blastoise/mega/shiny.gbapal.lz"); -const u32 gMonShinyPalette_BeedrillMega[] = INCBIN_U32("graphics/pokemon/beedrill/mega/shiny.gbapal.lz"); -const u32 gMonShinyPalette_PidgeotMega[] = INCBIN_U32("graphics/pokemon/pidgeot/mega/shiny.gbapal.lz"); -const u32 gMonShinyPalette_AlakazamMega[] = INCBIN_U32("graphics/pokemon/alakazam/mega/shiny.gbapal.lz"); -const u32 gMonShinyPalette_SlowbroMega[] = INCBIN_U32("graphics/pokemon/slowbro/mega/shiny.gbapal.lz"); -const u32 gMonShinyPalette_GengarMega[] = INCBIN_U32("graphics/pokemon/gengar/mega/shiny.gbapal.lz"); -const u32 gMonShinyPalette_KangaskhanMega[] = INCBIN_U32("graphics/pokemon/kangaskhan/mega/shiny.gbapal.lz"); -const u32 gMonShinyPalette_PinsirMega[] = INCBIN_U32("graphics/pokemon/pinsir/mega/shiny.gbapal.lz"); -const u32 gMonShinyPalette_GyaradosMega[] = INCBIN_U32("graphics/pokemon/gyarados/mega/shiny.gbapal.lz"); -const u32 gMonShinyPalette_AerodactylMega[] = INCBIN_U32("graphics/pokemon/aerodactyl/mega/shiny.gbapal.lz"); -const u32 gMonShinyPalette_MewtwoMegaX[] = INCBIN_U32("graphics/pokemon/mewtwo/mega_x/shiny.gbapal.lz"); -const u32 gMonShinyPalette_MewtwoMegaY[] = INCBIN_U32("graphics/pokemon/mewtwo/mega_y/shiny.gbapal.lz"); -const u32 gMonShinyPalette_AmpharosMega[] = INCBIN_U32("graphics/pokemon/ampharos/mega/shiny.gbapal.lz"); -const u32 gMonShinyPalette_SteelixMega[] = INCBIN_U32("graphics/pokemon/steelix/mega/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ScizorMega[] = INCBIN_U32("graphics/pokemon/scizor/mega/shiny.gbapal.lz"); -const u32 gMonShinyPalette_HeracrossMega[] = INCBIN_U32("graphics/pokemon/heracross/mega/shiny.gbapal.lz"); -const u32 gMonShinyPalette_HoundoomMega[] = INCBIN_U32("graphics/pokemon/houndoom/mega/shiny.gbapal.lz"); -const u32 gMonShinyPalette_TyranitarMega[] = INCBIN_U32("graphics/pokemon/tyranitar/mega/shiny.gbapal.lz"); -const u32 gMonShinyPalette_SceptileMega[] = INCBIN_U32("graphics/pokemon/sceptile/mega/shiny.gbapal.lz"); -const u32 gMonShinyPalette_BlazikenMega[] = INCBIN_U32("graphics/pokemon/blaziken/mega/shiny.gbapal.lz"); -const u32 gMonShinyPalette_SwampertMega[] = INCBIN_U32("graphics/pokemon/swampert/mega/shiny.gbapal.lz"); -const u32 gMonShinyPalette_GardevoirMega[] = INCBIN_U32("graphics/pokemon/gardevoir/mega/shiny.gbapal.lz"); -const u32 gMonShinyPalette_SableyeMega[] = INCBIN_U32("graphics/pokemon/sableye/mega/shiny.gbapal.lz"); -const u32 gMonShinyPalette_MawileMega[] = INCBIN_U32("graphics/pokemon/mawile/mega/shiny.gbapal.lz"); -const u32 gMonShinyPalette_AggronMega[] = INCBIN_U32("graphics/pokemon/aggron/mega/shiny.gbapal.lz"); -const u32 gMonShinyPalette_MedichamMega[] = INCBIN_U32("graphics/pokemon/medicham/mega/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ManectricMega[] = INCBIN_U32("graphics/pokemon/manectric/mega/shiny.gbapal.lz"); -const u32 gMonShinyPalette_SharpedoMega[] = INCBIN_U32("graphics/pokemon/sharpedo/mega/shiny.gbapal.lz"); -const u32 gMonShinyPalette_CameruptMega[] = INCBIN_U32("graphics/pokemon/camerupt/mega/shiny.gbapal.lz"); -const u32 gMonShinyPalette_AltariaMega[] = INCBIN_U32("graphics/pokemon/altaria/mega/shiny.gbapal.lz"); -const u32 gMonShinyPalette_BanetteMega[] = INCBIN_U32("graphics/pokemon/banette/mega/shiny.gbapal.lz"); -const u32 gMonShinyPalette_AbsolMega[] = INCBIN_U32("graphics/pokemon/absol/mega/shiny.gbapal.lz"); -const u32 gMonShinyPalette_GlalieMega[] = INCBIN_U32("graphics/pokemon/glalie/mega/shiny.gbapal.lz"); -const u32 gMonShinyPalette_SalamenceMega[] = INCBIN_U32("graphics/pokemon/salamence/mega/shiny.gbapal.lz"); -const u32 gMonShinyPalette_MetagrossMega[] = INCBIN_U32("graphics/pokemon/metagross/mega/shiny.gbapal.lz"); -const u32 gMonShinyPalette_LatiasMega[] = INCBIN_U32("graphics/pokemon/latias/mega/shiny.gbapal.lz"); -const u32 gMonShinyPalette_LatiosMega[] = INCBIN_U32("graphics/pokemon/latios/mega/shiny.gbapal.lz"); -#if P_GEN_4_POKEMON == TRUE -const u32 gMonShinyPalette_LopunnyMega[] = INCBIN_U32("graphics/pokemon/lopunny/mega/shiny.gbapal.lz"); -const u32 gMonShinyPalette_GarchompMega[] = INCBIN_U32("graphics/pokemon/garchomp/mega/shiny.gbapal.lz"); -const u32 gMonShinyPalette_LucarioMega[] = INCBIN_U32("graphics/pokemon/lucario/mega/shiny.gbapal.lz"); -const u32 gMonShinyPalette_AbomasnowMega[] = INCBIN_U32("graphics/pokemon/abomasnow/mega/shiny.gbapal.lz"); -const u32 gMonShinyPalette_GalladeMega[] = INCBIN_U32("graphics/pokemon/gallade/mega/shiny.gbapal.lz"); -#endif -#if P_GEN_5_POKEMON == TRUE -const u32 gMonShinyPalette_AudinoMega[] = INCBIN_U32("graphics/pokemon/audino/mega/shiny.gbapal.lz"); -#endif -#if P_GEN_6_POKEMON == TRUE -const u32 gMonShinyPalette_DiancieMega[] = INCBIN_U32("graphics/pokemon/diancie/mega/shiny.gbapal.lz"); -#endif -const u32 gMonShinyPalette_RayquazaMega[] = INCBIN_U32("graphics/pokemon/rayquaza/mega/shiny.gbapal.lz"); -const u32 gMonShinyPalette_KyogrePrimal[] = INCBIN_U32("graphics/pokemon/kyogre/primal/shiny.gbapal.lz"); -const u32 gMonShinyPalette_GroudonPrimal[] = INCBIN_U32("graphics/pokemon/groudon/primal/shiny.gbapal.lz"); -const u32 gMonShinyPalette_RattataAlolan[] = INCBIN_U32("graphics/pokemon/rattata/alolan/shiny.gbapal.lz"); -const u32 gMonShinyPalette_RaticateAlolan[] = INCBIN_U32("graphics/pokemon/raticate/alolan/shiny.gbapal.lz"); -const u32 gMonShinyPalette_RaichuAlolan[] = INCBIN_U32("graphics/pokemon/raichu/alolan/shiny.gbapal.lz"); -const u32 gMonShinyPalette_SandshrewAlolan[] = INCBIN_U32("graphics/pokemon/sandshrew/alolan/shiny.gbapal.lz"); -const u32 gMonShinyPalette_SandslashAlolan[] = INCBIN_U32("graphics/pokemon/sandslash/alolan/shiny.gbapal.lz"); -const u32 gMonShinyPalette_VulpixAlolan[] = INCBIN_U32("graphics/pokemon/vulpix/alolan/shiny.gbapal.lz"); -const u32 gMonShinyPalette_NinetalesAlolan[] = INCBIN_U32("graphics/pokemon/ninetales/alolan/shiny.gbapal.lz"); -const u32 gMonShinyPalette_DiglettAlolan[] = INCBIN_U32("graphics/pokemon/diglett/alolan/shiny.gbapal.lz"); -const u32 gMonShinyPalette_DugtrioAlolan[] = INCBIN_U32("graphics/pokemon/dugtrio/alolan/shiny.gbapal.lz"); -const u32 gMonShinyPalette_MeowthAlolan[] = INCBIN_U32("graphics/pokemon/meowth/alolan/shiny.gbapal.lz"); -const u32 gMonShinyPalette_PersianAlolan[] = INCBIN_U32("graphics/pokemon/persian/alolan/shiny.gbapal.lz"); -const u32 gMonShinyPalette_GeodudeAlolan[] = INCBIN_U32("graphics/pokemon/geodude/alolan/shiny.gbapal.lz"); -const u32 gMonShinyPalette_GravelerAlolan[] = INCBIN_U32("graphics/pokemon/graveler/alolan/shiny.gbapal.lz"); -const u32 gMonShinyPalette_GolemAlolan[] = INCBIN_U32("graphics/pokemon/golem/alolan/shiny.gbapal.lz"); -const u32 gMonShinyPalette_GrimerAlolan[] = INCBIN_U32("graphics/pokemon/grimer/alolan/shiny.gbapal.lz"); -const u32 gMonShinyPalette_MukAlolan[] = INCBIN_U32("graphics/pokemon/muk/alolan/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ExeggutorAlolan[] = INCBIN_U32("graphics/pokemon/exeggutor/alolan/shiny.gbapal.lz"); -const u32 gMonShinyPalette_MarowakAlolan[] = INCBIN_U32("graphics/pokemon/marowak/alolan/shiny.gbapal.lz"); -const u32 gMonShinyPalette_MeowthGalarian[] = INCBIN_U32("graphics/pokemon/meowth/galarian/shiny.gbapal.lz"); -const u32 gMonShinyPalette_PonytaGalarian[] = INCBIN_U32("graphics/pokemon/ponyta/galarian/shiny.gbapal.lz"); -const u32 gMonShinyPalette_RapidashGalarian[] = INCBIN_U32("graphics/pokemon/rapidash/galarian/shiny.gbapal.lz"); -const u32 gMonShinyPalette_SlowpokeGalarian[] = INCBIN_U32("graphics/pokemon/slowpoke/galarian/shiny.gbapal.lz"); -const u32 gMonShinyPalette_SlowbroGalarian[] = INCBIN_U32("graphics/pokemon/slowbro/galarian/shiny.gbapal.lz"); -const u32 gMonShinyPalette_FarfetchdGalarian[] = INCBIN_U32("graphics/pokemon/farfetchd/galarian/shiny.gbapal.lz"); -const u32 gMonShinyPalette_WeezingGalarian[] = INCBIN_U32("graphics/pokemon/weezing/galarian/shiny.gbapal.lz"); -const u32 gMonShinyPalette_MrMimeGalarian[] = INCBIN_U32("graphics/pokemon/mr_mime/galarian/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ArticunoGalarian[] = INCBIN_U32("graphics/pokemon/articuno/galarian/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ZapdosGalarian[] = INCBIN_U32("graphics/pokemon/zapdos/galarian/shiny.gbapal.lz"); -const u32 gMonShinyPalette_MoltresGalarian[] = INCBIN_U32("graphics/pokemon/moltres/galarian/shiny.gbapal.lz"); -const u32 gMonShinyPalette_SlowkingGalarian[] = INCBIN_U32("graphics/pokemon/slowking/galarian/shiny.gbapal.lz"); -const u32 gMonShinyPalette_CorsolaGalarian[] = INCBIN_U32("graphics/pokemon/corsola/galarian/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ZigzagoonGalarian[] = INCBIN_U32("graphics/pokemon/zigzagoon/galarian/shiny.gbapal.lz"); -const u32 gMonShinyPalette_LinooneGalarian[] = INCBIN_U32("graphics/pokemon/linoone/galarian/shiny.gbapal.lz"); -#if P_GEN_5_POKEMON == TRUE -const u32 gMonShinyPalette_DarumakaGalarian[] = INCBIN_U32("graphics/pokemon/darumaka/galarian/shiny.gbapal.lz"); -const u32 gMonShinyPalette_DarmanitanGalarianStandardMode[] = INCBIN_U32("graphics/pokemon/darmanitan/galarian/shiny.gbapal.lz"); -const u32 gMonShinyPalette_YamaskGalarian[] = INCBIN_U32("graphics/pokemon/yamask/galarian/shiny.gbapal.lz"); -const u32 gMonShinyPalette_StunfiskGalarian[] = INCBIN_U32("graphics/pokemon/stunfisk/galarian/shiny.gbapal.lz"); -#endif -const u32 gMonShinyPalette_GrowlitheHisuian[] = INCBIN_U32("graphics/pokemon/growlithe/hisuian/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ArcanineHisuian[] = INCBIN_U32("graphics/pokemon/arcanine/hisuian/shiny.gbapal.lz"); -const u32 gMonShinyPalette_VoltorbHisuian[] = INCBIN_U32("graphics/pokemon/voltorb/hisuian/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ElectrodeHisuian[] = INCBIN_U32("graphics/pokemon/electrode/hisuian/shiny.gbapal.lz"); -const u32 gMonShinyPalette_TyphlosionHisuian[] = INCBIN_U32("graphics/pokemon/typhlosion/hisuian/shiny.gbapal.lz"); -const u32 gMonShinyPalette_QwilfishHisuian[] = INCBIN_U32("graphics/pokemon/qwilfish/hisuian/shiny.gbapal.lz"); -const u32 gMonShinyPalette_SneaselHisuian[] = INCBIN_U32("graphics/pokemon/sneasel/hisuian/shiny.gbapal.lz"); -#if P_GEN_5_POKEMON == TRUE -const u32 gMonShinyPalette_SamurottHisuian[] = INCBIN_U32("graphics/pokemon/samurott/hisuian/shiny.gbapal.lz"); -const u32 gMonShinyPalette_LilligantHisuian[] = INCBIN_U32("graphics/pokemon/lilligant/hisuian/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ZoruaHisuian[] = INCBIN_U32("graphics/pokemon/zorua/hisuian/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ZoroarkHisuian[] = INCBIN_U32("graphics/pokemon/zoroark/hisuian/shiny.gbapal.lz"); -const u32 gMonShinyPalette_BraviaryHisuian[] = INCBIN_U32("graphics/pokemon/braviary/hisuian/shiny.gbapal.lz"); -#endif -#if P_GEN_6_POKEMON == TRUE -const u32 gMonShinyPalette_SliggooHisuian[] = INCBIN_U32("graphics/pokemon/sliggoo/hisuian/shiny.gbapal.lz"); -const u32 gMonShinyPalette_GoodraHisuian[] = INCBIN_U32("graphics/pokemon/goodra/hisuian/shiny.gbapal.lz"); -const u32 gMonShinyPalette_AvaluggHisuian[] = INCBIN_U32("graphics/pokemon/avalugg/hisuian/shiny.gbapal.lz"); -#endif -#if P_GEN_7_POKEMON == TRUE -const u32 gMonShinyPalette_DecidueyeHisuian[] = INCBIN_U32("graphics/pokemon/decidueye/hisuian/shiny.gbapal.lz"); -#endif -const u32 gMonShinyPalette_PikachuCosplay[] = INCBIN_U32("graphics/pokemon/pikachu/cosplay/shiny.gbapal.lz"); -const u32 gMonShinyPalette_PikachuRockStar[] = INCBIN_U32("graphics/pokemon/pikachu/rock_star/shiny.gbapal.lz"); -const u32 gMonShinyPalette_PikachuBelle[] = INCBIN_U32("graphics/pokemon/pikachu/belle/shiny.gbapal.lz"); -const u32 gMonShinyPalette_PikachuPopStar[] = INCBIN_U32("graphics/pokemon/pikachu/pop_star/shiny.gbapal.lz"); -const u32 gMonShinyPalette_PikachuPhD[] = INCBIN_U32("graphics/pokemon/pikachu/ph_d/shiny.gbapal.lz"); -const u32 gMonShinyPalette_PikachuLibre[] = INCBIN_U32("graphics/pokemon/pikachu/libre/shiny.gbapal.lz"); -const u32 gMonShinyPalette_PikachuOriginalCap[] = INCBIN_U32("graphics/pokemon/pikachu/original_cap/shiny.gbapal.lz"); -const u32 gMonShinyPalette_PikachuHoennCap[] = INCBIN_U32("graphics/pokemon/pikachu/hoenn_cap/shiny.gbapal.lz"); -const u32 gMonShinyPalette_PikachuSinnohCap[] = INCBIN_U32("graphics/pokemon/pikachu/sinnoh_cap/shiny.gbapal.lz"); -const u32 gMonShinyPalette_PikachuUnovaCap[] = INCBIN_U32("graphics/pokemon/pikachu/unova_cap/shiny.gbapal.lz"); -const u32 gMonShinyPalette_PikachuKalosCap[] = INCBIN_U32("graphics/pokemon/pikachu/kalos_cap/shiny.gbapal.lz"); -const u32 gMonShinyPalette_PikachuAlolaCap[] = INCBIN_U32("graphics/pokemon/pikachu/alola_cap/shiny.gbapal.lz"); -const u32 gMonShinyPalette_PikachuPartnerCap[] = INCBIN_U32("graphics/pokemon/pikachu/partner_cap/shiny.gbapal.lz"); -const u32 gMonShinyPalette_PikachuWorldCap[] = INCBIN_U32("graphics/pokemon/pikachu/world_cap/shiny.gbapal.lz"); -const u32 gMonShinyPalette_PichuSpikyEared[] = INCBIN_U32("graphics/pokemon/pichu/spiky_eared/shiny.gbapal.lz"); -const u32 gMonShinyPalette_CastformSunny[] = INCBIN_U32("graphics/pokemon/castform/sunny/shiny.gbapal.lz"); -const u32 gMonShinyPalette_CastformRainy[] = INCBIN_U32("graphics/pokemon/castform/rainy/shiny.gbapal.lz"); -const u32 gMonShinyPalette_CastformSnowy[] = INCBIN_U32("graphics/pokemon/castform/snowy/shiny.gbapal.lz"); -const u32 gMonShinyPalette_DeoxysAttack[] = INCBIN_U32("graphics/pokemon/deoxys/attack/shiny.gbapal.lz"); -const u32 gMonShinyPalette_DeoxysDefense[] = INCBIN_U32("graphics/pokemon/deoxys/defense/shiny.gbapal.lz"); -const u32 gMonShinyPalette_DeoxysSpeed[] = INCBIN_U32("graphics/pokemon/deoxys/speed/shiny.gbapal.lz"); -#if P_GEN_4_POKEMON == TRUE -const u32 gMonShinyPalette_BurmySandyCloak[] = INCBIN_U32("graphics/pokemon/burmy/sandy_cloak/shiny.gbapal.lz"); -const u32 gMonShinyPalette_BurmyTrashCloak[] = INCBIN_U32("graphics/pokemon/burmy/trash_cloak/shiny.gbapal.lz"); -const u32 gMonShinyPalette_WormadamSandyCloak[] = INCBIN_U32("graphics/pokemon/wormadam/sandy_cloak/shiny.gbapal.lz"); -const u32 gMonShinyPalette_WormadamTrashCloak[] = INCBIN_U32("graphics/pokemon/wormadam/trash_cloak/shiny.gbapal.lz"); -const u32 gMonShinyPalette_CherrimSunshine[] = INCBIN_U32("graphics/pokemon/cherrim/sunshine/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ShellosEastSea[] = INCBIN_U32("graphics/pokemon/shellos/east_sea/shiny.gbapal.lz"); -const u32 gMonShinyPalette_GastrodonEastSea[] = INCBIN_U32("graphics/pokemon/gastrodon/east_sea/shiny.gbapal.lz"); -const u32 gMonShinyPalette_RotomHeat[] = INCBIN_U32("graphics/pokemon/rotom/heat/shiny.gbapal.lz"); -const u32 gMonShinyPalette_RotomWash[] = INCBIN_U32("graphics/pokemon/rotom/wash/shiny.gbapal.lz"); -const u32 gMonShinyPalette_RotomFrost[] = INCBIN_U32("graphics/pokemon/rotom/frost/shiny.gbapal.lz"); -const u32 gMonShinyPalette_RotomFan[] = INCBIN_U32("graphics/pokemon/rotom/fan/shiny.gbapal.lz"); -const u32 gMonShinyPalette_RotomMow[] = INCBIN_U32("graphics/pokemon/rotom/mow/shiny.gbapal.lz"); -const u32 gMonShinyPalette_DialgaOrigin[] = INCBIN_U32("graphics/pokemon/dialga/origin/shiny.gbapal.lz"); -const u32 gMonShinyPalette_PalkiaOrigin[] = INCBIN_U32("graphics/pokemon/palkia/origin/shiny.gbapal.lz"); -const u32 gMonShinyPalette_GiratinaOrigin[] = INCBIN_U32("graphics/pokemon/giratina/origin/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ShayminSky[] = INCBIN_U32("graphics/pokemon/shaymin/sky/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ArceusFighting[] = INCBIN_U32("graphics/pokemon/arceus/fighting/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ArceusFlying[] = INCBIN_U32("graphics/pokemon/arceus/flying/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ArceusPoison[] = INCBIN_U32("graphics/pokemon/arceus/poison/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ArceusGround[] = INCBIN_U32("graphics/pokemon/arceus/ground/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ArceusRock[] = INCBIN_U32("graphics/pokemon/arceus/rock/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ArceusBug[] = INCBIN_U32("graphics/pokemon/arceus/bug/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ArceusGhost[] = INCBIN_U32("graphics/pokemon/arceus/ghost/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ArceusSteel[] = INCBIN_U32("graphics/pokemon/arceus/steel/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ArceusFire[] = INCBIN_U32("graphics/pokemon/arceus/fire/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ArceusWater[] = INCBIN_U32("graphics/pokemon/arceus/water/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ArceusGrass[] = INCBIN_U32("graphics/pokemon/arceus/grass/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ArceusElectric[] = INCBIN_U32("graphics/pokemon/arceus/electric/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ArceusPsychic[] = INCBIN_U32("graphics/pokemon/arceus/psychic/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ArceusIce[] = INCBIN_U32("graphics/pokemon/arceus/ice/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ArceusDragon[] = INCBIN_U32("graphics/pokemon/arceus/dragon/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ArceusDark[] = INCBIN_U32("graphics/pokemon/arceus/dark/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ArceusFairy[] = INCBIN_U32("graphics/pokemon/arceus/fairy/shiny.gbapal.lz"); -#endif -#if P_GEN_5_POKEMON == TRUE -const u32 gMonShinyPalette_BasculinBlueStriped[] = INCBIN_U32("graphics/pokemon/basculin/blue_striped/shiny.gbapal.lz"); -const u32 gMonShinyPalette_BasculinWhiteStriped[] = INCBIN_U32("graphics/pokemon/basculin/white_striped/shiny.gbapal.lz"); -const u32 gMonShinyPalette_DarmanitanZenMode[] = INCBIN_U32("graphics/pokemon/darmanitan/zen_mode/shiny.gbapal.lz"); -const u32 gMonShinyPalette_DarmanitanGalarianZenMode[] = INCBIN_U32("graphics/pokemon/darmanitan/zen_mode/galarian/shiny.gbapal.lz"); -const u32 gMonShinyPalette_DeerlingSummer[] = INCBIN_U32("graphics/pokemon/deerling/summer/shiny.gbapal.lz"); -const u32 gMonShinyPalette_DeerlingAutumn[] = INCBIN_U32("graphics/pokemon/deerling/autumn/shiny.gbapal.lz"); -const u32 gMonShinyPalette_DeerlingWinter[] = INCBIN_U32("graphics/pokemon/deerling/winter/shiny.gbapal.lz"); -const u32 gMonShinyPalette_SawsbuckSummer[] = INCBIN_U32("graphics/pokemon/sawsbuck/summer/shiny.gbapal.lz"); -const u32 gMonShinyPalette_SawsbuckAutumn[] = INCBIN_U32("graphics/pokemon/sawsbuck/autumn/shiny.gbapal.lz"); -const u32 gMonShinyPalette_SawsbuckWinter[] = INCBIN_U32("graphics/pokemon/sawsbuck/winter/shiny.gbapal.lz"); -const u32 gMonShinyPalette_TornadusTherian[] = INCBIN_U32("graphics/pokemon/tornadus/therian/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ThundurusTherian[] = INCBIN_U32("graphics/pokemon/thundurus/therian/shiny.gbapal.lz"); -const u32 gMonShinyPalette_LandorusTherian[] = INCBIN_U32("graphics/pokemon/landorus/therian/shiny.gbapal.lz"); -const u32 gMonShinyPalette_KyuremWhite[] = INCBIN_U32("graphics/pokemon/kyurem/white/shiny.gbapal.lz"); -const u32 gMonShinyPalette_KyuremBlack[] = INCBIN_U32("graphics/pokemon/kyurem/black/shiny.gbapal.lz"); -const u32 gMonShinyPalette_KeldeoResolute[] = INCBIN_U32("graphics/pokemon/keldeo/resolute/shiny.gbapal.lz"); -const u32 gMonShinyPalette_MeloettaPirouette[] = INCBIN_U32("graphics/pokemon/meloetta/pirouette/shiny.gbapal.lz"); -const u32 gMonShinyPalette_GenesectDouseDrive[] = INCBIN_U32("graphics/pokemon/genesect/douse_drive/shiny.gbapal.lz"); -const u32 gMonShinyPalette_GenesectShockDrive[] = INCBIN_U32("graphics/pokemon/genesect/shock_drive/shiny.gbapal.lz"); -const u32 gMonShinyPalette_GenesectBurnDrive[] = INCBIN_U32("graphics/pokemon/genesect/burn_drive/shiny.gbapal.lz"); -const u32 gMonShinyPalette_GenesectChillDrive[] = INCBIN_U32("graphics/pokemon/genesect/chill_drive/shiny.gbapal.lz"); -#endif -#if P_GEN_6_POKEMON == TRUE -const u32 gMonShinyPalette_GreninjaAsh[] = INCBIN_U32("graphics/pokemon/greninja/ash/shiny.gbapal.lz"); -const u32 gMonShinyPalette_VivillonPolar[] = INCBIN_U32("graphics/pokemon/vivillon/polar/shiny.gbapal.lz"); -const u32 gMonShinyPalette_VivillonTundra[] = INCBIN_U32("graphics/pokemon/vivillon/tundra/shiny.gbapal.lz"); -const u32 gMonShinyPalette_VivillonContinental[] = INCBIN_U32("graphics/pokemon/vivillon/continental/shiny.gbapal.lz"); -const u32 gMonShinyPalette_VivillonGarden[] = INCBIN_U32("graphics/pokemon/vivillon/garden/shiny.gbapal.lz"); -const u32 gMonShinyPalette_VivillonElegant[] = INCBIN_U32("graphics/pokemon/vivillon/elegant/shiny.gbapal.lz"); -const u32 gMonShinyPalette_VivillonMeadow[] = INCBIN_U32("graphics/pokemon/vivillon/meadow/shiny.gbapal.lz"); -const u32 gMonShinyPalette_VivillonModern[] = INCBIN_U32("graphics/pokemon/vivillon/modern/shiny.gbapal.lz"); -const u32 gMonShinyPalette_VivillonMarine[] = INCBIN_U32("graphics/pokemon/vivillon/marine/shiny.gbapal.lz"); -const u32 gMonShinyPalette_VivillonArchipelago[] = INCBIN_U32("graphics/pokemon/vivillon/archipelago/shiny.gbapal.lz"); -const u32 gMonShinyPalette_VivillonHighPlains[] = INCBIN_U32("graphics/pokemon/vivillon/high_plains/shiny.gbapal.lz"); -const u32 gMonShinyPalette_VivillonSandstorm[] = INCBIN_U32("graphics/pokemon/vivillon/sandstorm/shiny.gbapal.lz"); -const u32 gMonShinyPalette_VivillonRiver[] = INCBIN_U32("graphics/pokemon/vivillon/river/shiny.gbapal.lz"); -const u32 gMonShinyPalette_VivillonMonsoon[] = INCBIN_U32("graphics/pokemon/vivillon/monsoon/shiny.gbapal.lz"); -const u32 gMonShinyPalette_VivillonSavanna[] = INCBIN_U32("graphics/pokemon/vivillon/savanna/shiny.gbapal.lz"); -const u32 gMonShinyPalette_VivillonSun[] = INCBIN_U32("graphics/pokemon/vivillon/sun/shiny.gbapal.lz"); -const u32 gMonShinyPalette_VivillonOcean[] = INCBIN_U32("graphics/pokemon/vivillon/ocean/shiny.gbapal.lz"); -const u32 gMonShinyPalette_VivillonJungle[] = INCBIN_U32("graphics/pokemon/vivillon/jungle/shiny.gbapal.lz"); -const u32 gMonShinyPalette_VivillonFancy[] = INCBIN_U32("graphics/pokemon/vivillon/fancy/shiny.gbapal.lz"); -const u32 gMonShinyPalette_VivillonPokeBall[] = INCBIN_U32("graphics/pokemon/vivillon/poke_ball/shiny.gbapal.lz"); -const u32 gMonShinyPalette_FlabebeYellowFlower[] = INCBIN_U32("graphics/pokemon/flabebe/yellow_flower/shiny.gbapal.lz"); -const u32 gMonShinyPalette_FlabebeOrangeFlower[] = INCBIN_U32("graphics/pokemon/flabebe/orange_flower/shiny.gbapal.lz"); -const u32 gMonShinyPalette_FlabebeBlueFlower[] = INCBIN_U32("graphics/pokemon/flabebe/blue_flower/shiny.gbapal.lz"); -const u32 gMonShinyPalette_FlabebeWhiteFlower[] = INCBIN_U32("graphics/pokemon/flabebe/white_flower/shiny.gbapal.lz"); -const u32 gMonShinyPalette_FloetteYellowFlower[] = INCBIN_U32("graphics/pokemon/floette/yellow_flower/shiny.gbapal.lz"); -const u32 gMonShinyPalette_FloetteOrangeFlower[] = INCBIN_U32("graphics/pokemon/floette/orange_flower/shiny.gbapal.lz"); -const u32 gMonShinyPalette_FloetteBlueFlower[] = INCBIN_U32("graphics/pokemon/floette/blue_flower/shiny.gbapal.lz"); -const u32 gMonShinyPalette_FloetteWhiteFlower[] = INCBIN_U32("graphics/pokemon/floette/white_flower/shiny.gbapal.lz"); -const u32 gMonShinyPalette_FloetteEternalFlower[] = INCBIN_U32("graphics/pokemon/floette/eternal_flower/shiny.gbapal.lz"); -const u32 gMonShinyPalette_FlorgesYellowFlower[] = INCBIN_U32("graphics/pokemon/florges/yellow_flower/shiny.gbapal.lz"); -const u32 gMonShinyPalette_FlorgesOrangeFlower[] = INCBIN_U32("graphics/pokemon/florges/orange_flower/shiny.gbapal.lz"); -const u32 gMonShinyPalette_FlorgesBlueFlower[] = INCBIN_U32("graphics/pokemon/florges/blue_flower/shiny.gbapal.lz"); -const u32 gMonShinyPalette_FlorgesWhiteFlower[] = INCBIN_U32("graphics/pokemon/florges/white_flower/shiny.gbapal.lz"); -const u32 gMonShinyPalette_FurfrouHeartTrim[] = INCBIN_U32("graphics/pokemon/furfrou/heart_trim/shiny.gbapal.lz"); -const u32 gMonShinyPalette_FurfrouStarTrim[] = INCBIN_U32("graphics/pokemon/furfrou/star_trim/shiny.gbapal.lz"); -const u32 gMonShinyPalette_FurfrouDiamondTrim[] = INCBIN_U32("graphics/pokemon/furfrou/diamond_trim/shiny.gbapal.lz"); -const u32 gMonShinyPalette_FurfrouDebutanteTrim[] = INCBIN_U32("graphics/pokemon/furfrou/debutante_trim/shiny.gbapal.lz"); -const u32 gMonShinyPalette_FurfrouMatronTrim[] = INCBIN_U32("graphics/pokemon/furfrou/matron_trim/shiny.gbapal.lz"); -const u32 gMonShinyPalette_FurfrouDandyTrim[] = INCBIN_U32("graphics/pokemon/furfrou/dandy_trim/shiny.gbapal.lz"); -const u32 gMonShinyPalette_FurfrouLaReineTrim[] = INCBIN_U32("graphics/pokemon/furfrou/la_reine_trim/shiny.gbapal.lz"); -const u32 gMonShinyPalette_FurfrouKabukiTrim[] = INCBIN_U32("graphics/pokemon/furfrou/kabuki_trim/shiny.gbapal.lz"); -const u32 gMonShinyPalette_FurfrouPharaohTrim[] = INCBIN_U32("graphics/pokemon/furfrou/pharaoh_trim/shiny.gbapal.lz"); -const u32 gMonShinyPalette_MeowsticFemale[] = INCBIN_U32("graphics/pokemon/meowstic/female/shiny.gbapal.lz"); -const u32 gMonShinyPalette_AegislashBlade[] = INCBIN_U32("graphics/pokemon/aegislash/blade/shiny.gbapal.lz"); -const u32 gMonShinyPalette_XerneasActive[] = INCBIN_U32("graphics/pokemon/xerneas/active/shiny.gbapal.lz"); -const u32 gMonShinyPalette_Zygarde10[] = INCBIN_U32("graphics/pokemon/zygarde/10_percent/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ZygardeComplete[] = INCBIN_U32("graphics/pokemon/zygarde/complete/shiny.gbapal.lz"); -const u32 gMonShinyPalette_HoopaUnbound[] = INCBIN_U32("graphics/pokemon/hoopa/unbound/shiny.gbapal.lz"); -#endif -#if P_GEN_7_POKEMON == TRUE -const u32 gMonShinyPalette_OricorioPomPom[] = INCBIN_U32("graphics/pokemon/oricorio/pom_pom/shiny.gbapal.lz"); -const u32 gMonShinyPalette_OricorioPau[] = INCBIN_U32("graphics/pokemon/oricorio/pau/shiny.gbapal.lz"); -const u32 gMonShinyPalette_OricorioSensu[] = INCBIN_U32("graphics/pokemon/oricorio/sensu/shiny.gbapal.lz"); -const u32 gMonShinyPalette_LycanrocMidnight[] = INCBIN_U32("graphics/pokemon/lycanroc/midnight/shiny.gbapal.lz"); -const u32 gMonShinyPalette_LycanrocDusk[] = INCBIN_U32("graphics/pokemon/lycanroc/dusk/shiny.gbapal.lz"); -const u32 gMonShinyPalette_WishiwashiSchool[] = INCBIN_U32("graphics/pokemon/wishiwashi/school/shiny.gbapal.lz"); -const u32 gMonShinyPalette_SilvallyFighting[] = INCBIN_U32("graphics/pokemon/silvally/fighting/shiny.gbapal.lz"); -const u32 gMonShinyPalette_SilvallyFlying[] = INCBIN_U32("graphics/pokemon/silvally/flying/shiny.gbapal.lz"); -const u32 gMonShinyPalette_SilvallyPoison[] = INCBIN_U32("graphics/pokemon/silvally/poison/shiny.gbapal.lz"); -const u32 gMonShinyPalette_SilvallyGround[] = INCBIN_U32("graphics/pokemon/silvally/ground/shiny.gbapal.lz"); -const u32 gMonShinyPalette_SilvallyRock[] = INCBIN_U32("graphics/pokemon/silvally/rock/shiny.gbapal.lz"); -const u32 gMonShinyPalette_SilvallyBug[] = INCBIN_U32("graphics/pokemon/silvally/bug/shiny.gbapal.lz"); -const u32 gMonShinyPalette_SilvallyGhost[] = INCBIN_U32("graphics/pokemon/silvally/ghost/shiny.gbapal.lz"); -const u32 gMonShinyPalette_SilvallySteel[] = INCBIN_U32("graphics/pokemon/silvally/steel/shiny.gbapal.lz"); -const u32 gMonShinyPalette_SilvallyFire[] = INCBIN_U32("graphics/pokemon/silvally/fire/shiny.gbapal.lz"); -const u32 gMonShinyPalette_SilvallyWater[] = INCBIN_U32("graphics/pokemon/silvally/water/shiny.gbapal.lz"); -const u32 gMonShinyPalette_SilvallyGrass[] = INCBIN_U32("graphics/pokemon/silvally/grass/shiny.gbapal.lz"); -const u32 gMonShinyPalette_SilvallyElectric[] = INCBIN_U32("graphics/pokemon/silvally/electric/shiny.gbapal.lz"); -const u32 gMonShinyPalette_SilvallyPsychic[] = INCBIN_U32("graphics/pokemon/silvally/psychic/shiny.gbapal.lz"); -const u32 gMonShinyPalette_SilvallyIce[] = INCBIN_U32("graphics/pokemon/silvally/ice/shiny.gbapal.lz"); -const u32 gMonShinyPalette_SilvallyDragon[] = INCBIN_U32("graphics/pokemon/silvally/dragon/shiny.gbapal.lz"); -const u32 gMonShinyPalette_SilvallyDark[] = INCBIN_U32("graphics/pokemon/silvally/dark/shiny.gbapal.lz"); -const u32 gMonShinyPalette_SilvallyFairy[] = INCBIN_U32("graphics/pokemon/silvally/fairy/shiny.gbapal.lz"); -const u32 gMonShinyPalette_MiniorCore[] = INCBIN_U32("graphics/pokemon/minior/core/shiny.gbapal.lz"); -const u32 gMonShinyPalette_MimikyuBusted[] = INCBIN_U32("graphics/pokemon/mimikyu/busted/shiny.gbapal.lz"); -const u32 gMonShinyPalette_NecrozmaDuskMane[] = INCBIN_U32("graphics/pokemon/necrozma/dusk_mane/shiny.gbapal.lz"); -const u32 gMonShinyPalette_NecrozmaDawnWings[] = INCBIN_U32("graphics/pokemon/necrozma/dawn_wings/shiny.gbapal.lz"); -const u32 gMonShinyPalette_NecrozmaUltra[] = INCBIN_U32("graphics/pokemon/necrozma/ultra/shiny.gbapal.lz"); -const u32 gMonShinyPalette_MagearnaOriginalColor[] = INCBIN_U32("graphics/pokemon/magearna/original_color/shiny.gbapal.lz"); -#endif -#if P_GEN_8_POKEMON == TRUE -const u32 gMonShinyPalette_CramorantGulping[] = INCBIN_U32("graphics/pokemon/cramorant/gulping/shiny.gbapal.lz"); -const u32 gMonShinyPalette_CramorantGorging[] = INCBIN_U32("graphics/pokemon/cramorant/gorging/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ToxtricityLowKey[] = INCBIN_U32("graphics/pokemon/toxtricity/low_key/shiny.gbapal.lz"); -const u32 gMonShinyPalette_AlcremieRubyCream[] = INCBIN_U32("graphics/pokemon/alcremie/ruby_cream/shiny.gbapal.lz"); -const u32 gMonShinyPalette_AlcremieMatchaCream[] = INCBIN_U32("graphics/pokemon/alcremie/matcha_cream/shiny.gbapal.lz"); -const u32 gMonShinyPalette_AlcremieMintCream[] = INCBIN_U32("graphics/pokemon/alcremie/mint_cream/shiny.gbapal.lz"); -const u32 gMonShinyPalette_AlcremieLemonCream[] = INCBIN_U32("graphics/pokemon/alcremie/lemon_cream/shiny.gbapal.lz"); -const u32 gMonShinyPalette_AlcremieSaltedCream[] = INCBIN_U32("graphics/pokemon/alcremie/salted_cream/shiny.gbapal.lz"); -const u32 gMonShinyPalette_AlcremieRubySwirl[] = INCBIN_U32("graphics/pokemon/alcremie/ruby_swirl/shiny.gbapal.lz"); -const u32 gMonShinyPalette_AlcremieCaramelSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/caramel_swirl/shiny.gbapal.lz"); -const u32 gMonShinyPalette_AlcremieRainbowSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/rainbow_swirl/shiny.gbapal.lz"); -const u32 gMonShinyPalette_EiscueNoiceFace[] = INCBIN_U32("graphics/pokemon/eiscue/noice_face/shiny.gbapal.lz"); -const u32 gMonShinyPalette_IndeedeeFemale[] = INCBIN_U32("graphics/pokemon/indeedee/female/shiny.gbapal.lz"); -const u32 gMonShinyPalette_MorpekoHangry[] = INCBIN_U32("graphics/pokemon/morpeko/hangry/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ZacianCrownedSword[] = INCBIN_U32("graphics/pokemon/zacian/crowned_sword/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ZamazentaCrownedShield[] = INCBIN_U32("graphics/pokemon/zamazenta/crowned_shield/shiny.gbapal.lz"); -const u32 gMonShinyPalette_EternatusEternamax[] = INCBIN_U32("graphics/pokemon/eternatus/eternamax/shiny.gbapal.lz"); -const u32 gMonShinyPalette_UrshifuRapidStrikeStyle[] = INCBIN_U32("graphics/pokemon/urshifu/rapid_strike_style/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ZarudeDada[] = INCBIN_U32("graphics/pokemon/zarude/dada/shiny.gbapal.lz"); -const u32 gMonShinyPalette_CalyrexIceRider[] = INCBIN_U32("graphics/pokemon/calyrex/ice_rider/shiny.gbapal.lz"); -const u32 gMonShinyPalette_CalyrexShadowRider[] = INCBIN_U32("graphics/pokemon/calyrex/shadow_rider/shiny.gbapal.lz"); -const u32 gMonShinyPalette_EnamorusTherian[] = INCBIN_U32("graphics/pokemon/enamorus/therian/shiny.gbapal.lz"); -const u32 gMonShinyPalette_BasculegionFemale[] = INCBIN_U32("graphics/pokemon/basculegion/female/shiny.gbapal.lz"); -const u32 gMonShinyPalette_VenusaurGigantamax[] = INCBIN_U32("graphics/pokemon/venusaur/gigantamax/shiny.gbapal.lz"); -const u32 gMonShinyPalette_CharizardGigantamax[] = INCBIN_U32("graphics/pokemon/charizard/gigantamax/shiny.gbapal.lz"); -const u32 gMonShinyPalette_BlastoiseGigantamax[] = INCBIN_U32("graphics/pokemon/blastoise/gigantamax/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ButterfreeGigantamax[] = INCBIN_U32("graphics/pokemon/butterfree/gigantamax/shiny.gbapal.lz"); -const u32 gMonShinyPalette_PikachuGigantamax[] = INCBIN_U32("graphics/pokemon/pikachu/gigantamax/shiny.gbapal.lz"); -const u32 gMonShinyPalette_MeowthGigantamax[] = INCBIN_U32("graphics/pokemon/meowth/gigantamax/shiny.gbapal.lz"); -const u32 gMonShinyPalette_MachampGigantamax[] = INCBIN_U32("graphics/pokemon/machamp/gigantamax/shiny.gbapal.lz"); -const u32 gMonShinyPalette_GengarGigantamax[] = INCBIN_U32("graphics/pokemon/gengar/gigantamax/shiny.gbapal.lz"); -const u32 gMonShinyPalette_KinglerGigantamax[] = INCBIN_U32("graphics/pokemon/kingler/gigantamax/shiny.gbapal.lz"); -const u32 gMonShinyPalette_LaprasGigantamax[] = INCBIN_U32("graphics/pokemon/lapras/gigantamax/shiny.gbapal.lz"); -const u32 gMonShinyPalette_EeveeGigantamax[] = INCBIN_U32("graphics/pokemon/eevee/gigantamax/shiny.gbapal.lz"); -const u32 gMonShinyPalette_SnorlaxGigantamax[] = INCBIN_U32("graphics/pokemon/snorlax/gigantamax/shiny.gbapal.lz"); -const u32 gMonShinyPalette_GarbodorGigantamax[] = INCBIN_U32("graphics/pokemon/garbodor/gigantamax/shiny.gbapal.lz"); -const u32 gMonShinyPalette_MelmetalGigantamax[] = INCBIN_U32("graphics/pokemon/melmetal/gigantamax/shiny.gbapal.lz"); -const u32 gMonShinyPalette_RillaboomGigantamax[] = INCBIN_U32("graphics/pokemon/rillaboom/gigantamax/shiny.gbapal.lz"); -const u32 gMonShinyPalette_CinderaceGigantamax[] = INCBIN_U32("graphics/pokemon/cinderace/gigantamax/shiny.gbapal.lz"); -const u32 gMonShinyPalette_InteleonGigantamax[] = INCBIN_U32("graphics/pokemon/inteleon/gigantamax/shiny.gbapal.lz"); -const u32 gMonShinyPalette_CorviknightGigantamax[] = INCBIN_U32("graphics/pokemon/corviknight/gigantamax/shiny.gbapal.lz"); -const u32 gMonShinyPalette_OrbeetleGigantamax[] = INCBIN_U32("graphics/pokemon/orbeetle/gigantamax/shiny.gbapal.lz"); -const u32 gMonShinyPalette_DrednawGigantamax[] = INCBIN_U32("graphics/pokemon/drednaw/gigantamax/shiny.gbapal.lz"); -const u32 gMonShinyPalette_CoalossalGigantamax[] = INCBIN_U32("graphics/pokemon/coalossal/gigantamax/shiny.gbapal.lz"); -const u32 gMonShinyPalette_FlappleGigantamax[] = INCBIN_U32("graphics/pokemon/flapple/gigantamax/shiny.gbapal.lz"); -const u32 gMonShinyPalette_AppletunGigantamax[] = INCBIN_U32("graphics/pokemon/appletun/gigantamax/shiny.gbapal.lz"); -const u32 gMonShinyPalette_SandacondaGigantamax[] = INCBIN_U32("graphics/pokemon/sandaconda/gigantamax/shiny.gbapal.lz"); -const u32 gMonShinyPalette_ToxtricityGigantamax[] = INCBIN_U32("graphics/pokemon/toxtricity/gigantamax/shiny.gbapal.lz"); -const u32 gMonShinyPalette_CentiskorchGigantamax[] = INCBIN_U32("graphics/pokemon/centiskorch/gigantamax/shiny.gbapal.lz"); -const u32 gMonShinyPalette_HattereneGigantamax[] = INCBIN_U32("graphics/pokemon/hatterene/gigantamax/shiny.gbapal.lz"); -const u32 gMonShinyPalette_GrimmsnarlGigantamax[] = INCBIN_U32("graphics/pokemon/grimmsnarl/gigantamax/shiny.gbapal.lz"); -const u32 gMonShinyPalette_AlcremieGigantamax[] = INCBIN_U32("graphics/pokemon/alcremie/gigantamax/shiny.gbapal.lz"); -const u32 gMonShinyPalette_CopperajahGigantamax[] = INCBIN_U32("graphics/pokemon/copperajah/gigantamax/shiny.gbapal.lz"); -const u32 gMonShinyPalette_DuraludonGigantamax[] = INCBIN_U32("graphics/pokemon/duraludon/gigantamax/shiny.gbapal.lz"); -const u32 gMonShinyPalette_UrshifuSingleStrikeGigantamax[] = INCBIN_U32("graphics/pokemon/urshifu/single_strike_style_gigantamax/shiny.gbapal.lz"); -const u32 gMonShinyPalette_UrshifuRapidStrikeGigantamax[] = INCBIN_U32("graphics/pokemon/urshifu/rapid_strike_style_gigantamax/shiny.gbapal.lz"); -#endif - const u8 gMonIcon_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mark/icon.4bpp"); -const u8 gMonIcon_Bulbasaur[] = INCBIN_U8("graphics/pokemon/bulbasaur/icon.4bpp"); -const u8 gMonIcon_Ivysaur[] = INCBIN_U8("graphics/pokemon/ivysaur/icon.4bpp"); -const u8 gMonIcon_Venusaur[] = INCBIN_U8("graphics/pokemon/venusaur/icon.4bpp"); -const u8 gMonIcon_Charmander[] = INCBIN_U8("graphics/pokemon/charmander/icon.4bpp"); -const u8 gMonIcon_Charmeleon[] = INCBIN_U8("graphics/pokemon/charmeleon/icon.4bpp"); -const u8 gMonIcon_Charizard[] = INCBIN_U8("graphics/pokemon/charizard/icon.4bpp"); -const u8 gMonIcon_Squirtle[] = INCBIN_U8("graphics/pokemon/squirtle/icon.4bpp"); -const u8 gMonIcon_Wartortle[] = INCBIN_U8("graphics/pokemon/wartortle/icon.4bpp"); -const u8 gMonIcon_Blastoise[] = INCBIN_U8("graphics/pokemon/blastoise/icon.4bpp"); -const u8 gMonIcon_Caterpie[] = INCBIN_U8("graphics/pokemon/caterpie/icon.4bpp"); -const u8 gMonIcon_Metapod[] = INCBIN_U8( "graphics/pokemon/metapod/icon.4bpp"); -const u8 gMonIcon_Butterfree[] = INCBIN_U8("graphics/pokemon/butterfree/icon.4bpp"); -const u8 gMonIcon_Weedle[] = INCBIN_U8("graphics/pokemon/weedle/icon.4bpp"); -const u8 gMonIcon_Kakuna[] = INCBIN_U8("graphics/pokemon/kakuna/icon.4bpp"); -const u8 gMonIcon_Beedrill[] = INCBIN_U8("graphics/pokemon/beedrill/icon.4bpp"); -const u8 gMonIcon_Pidgey[] = INCBIN_U8("graphics/pokemon/pidgey/icon.4bpp"); -const u8 gMonIcon_Pidgeotto[] = INCBIN_U8("graphics/pokemon/pidgeotto/icon.4bpp"); -const u8 gMonIcon_Pidgeot[] = INCBIN_U8("graphics/pokemon/pidgeot/icon.4bpp"); -const u8 gMonIcon_Rattata[] = INCBIN_U8("graphics/pokemon/rattata/icon.4bpp"); -const u8 gMonIcon_Raticate[] = INCBIN_U8("graphics/pokemon/raticate/icon.4bpp"); -const u8 gMonIcon_Spearow[] = INCBIN_U8("graphics/pokemon/spearow/icon.4bpp"); -const u8 gMonIcon_Fearow[] = INCBIN_U8("graphics/pokemon/fearow/icon.4bpp"); -const u8 gMonIcon_Ekans[] = INCBIN_U8("graphics/pokemon/ekans/icon.4bpp"); -const u8 gMonIcon_Arbok[] = INCBIN_U8("graphics/pokemon/arbok/icon.4bpp"); -const u8 gMonIcon_Pikachu[] = INCBIN_U8("graphics/pokemon/pikachu/icon.4bpp"); -const u8 gMonIcon_Raichu[] = INCBIN_U8("graphics/pokemon/raichu/icon.4bpp"); -const u8 gMonIcon_Sandshrew[] = INCBIN_U8("graphics/pokemon/sandshrew/icon.4bpp"); -const u8 gMonIcon_Sandslash[] = INCBIN_U8("graphics/pokemon/sandslash/icon.4bpp"); -const u8 gMonIcon_NidoranF[] = INCBIN_U8("graphics/pokemon/nidoran_f/icon.4bpp"); -const u8 gMonIcon_Nidorina[] = INCBIN_U8("graphics/pokemon/nidorina/icon.4bpp"); -const u8 gMonIcon_Nidoqueen[] = INCBIN_U8("graphics/pokemon/nidoqueen/icon.4bpp"); -const u8 gMonIcon_NidoranM[] = INCBIN_U8("graphics/pokemon/nidoran_m/icon.4bpp"); -const u8 gMonIcon_Nidorino[] = INCBIN_U8("graphics/pokemon/nidorino/icon.4bpp"); -const u8 gMonIcon_Nidoking[] = INCBIN_U8("graphics/pokemon/nidoking/icon.4bpp"); -const u8 gMonIcon_Clefairy[] = INCBIN_U8("graphics/pokemon/clefairy/icon.4bpp"); -const u8 gMonIcon_Clefable[] = INCBIN_U8("graphics/pokemon/clefable/icon.4bpp"); -const u8 gMonIcon_Vulpix[] = INCBIN_U8("graphics/pokemon/vulpix/icon.4bpp"); -const u8 gMonIcon_Ninetales[] = INCBIN_U8("graphics/pokemon/ninetales/icon.4bpp"); -const u8 gMonIcon_Jigglypuff[] = INCBIN_U8("graphics/pokemon/jigglypuff/icon.4bpp"); -const u8 gMonIcon_Wigglytuff[] = INCBIN_U8("graphics/pokemon/wigglytuff/icon.4bpp"); -const u8 gMonIcon_Zubat[] = INCBIN_U8("graphics/pokemon/zubat/icon.4bpp"); -const u8 gMonIcon_Golbat[] = INCBIN_U8("graphics/pokemon/golbat/icon.4bpp"); -const u8 gMonIcon_Oddish[] = INCBIN_U8("graphics/pokemon/oddish/icon.4bpp"); -const u8 gMonIcon_Gloom[] = INCBIN_U8("graphics/pokemon/gloom/icon.4bpp"); -const u8 gMonIcon_Vileplume[] = INCBIN_U8("graphics/pokemon/vileplume/icon.4bpp"); -const u8 gMonIcon_Paras[] = INCBIN_U8("graphics/pokemon/paras/icon.4bpp"); -const u8 gMonIcon_Parasect[] = INCBIN_U8("graphics/pokemon/parasect/icon.4bpp"); -const u8 gMonIcon_Venonat[] = INCBIN_U8("graphics/pokemon/venonat/icon.4bpp"); -const u8 gMonIcon_Venomoth[] = INCBIN_U8("graphics/pokemon/venomoth/icon.4bpp"); -const u8 gMonIcon_Diglett[] = INCBIN_U8("graphics/pokemon/diglett/icon.4bpp"); -const u8 gMonIcon_Dugtrio[] = INCBIN_U8("graphics/pokemon/dugtrio/icon.4bpp"); -const u8 gMonIcon_Meowth[] = INCBIN_U8("graphics/pokemon/meowth/icon.4bpp"); -const u8 gMonIcon_Persian[] = INCBIN_U8("graphics/pokemon/persian/icon.4bpp"); -const u8 gMonIcon_Psyduck[] = INCBIN_U8("graphics/pokemon/psyduck/icon.4bpp"); -const u8 gMonIcon_Golduck[] = INCBIN_U8("graphics/pokemon/golduck/icon.4bpp"); -const u8 gMonIcon_Mankey[] = INCBIN_U8("graphics/pokemon/mankey/icon.4bpp"); -const u8 gMonIcon_Primeape[] = INCBIN_U8("graphics/pokemon/primeape/icon.4bpp"); -const u8 gMonIcon_Growlithe[] = INCBIN_U8("graphics/pokemon/growlithe/icon.4bpp"); -const u8 gMonIcon_Arcanine[] = INCBIN_U8("graphics/pokemon/arcanine/icon.4bpp"); -const u8 gMonIcon_Poliwag[] = INCBIN_U8("graphics/pokemon/poliwag/icon.4bpp"); -const u8 gMonIcon_Poliwhirl[] = INCBIN_U8("graphics/pokemon/poliwhirl/icon.4bpp"); -const u8 gMonIcon_Poliwrath[] = INCBIN_U8("graphics/pokemon/poliwrath/icon.4bpp"); -const u8 gMonIcon_Abra[] = INCBIN_U8("graphics/pokemon/abra/icon.4bpp"); -const u8 gMonIcon_Kadabra[] = INCBIN_U8("graphics/pokemon/kadabra/icon.4bpp"); -const u8 gMonIcon_Alakazam[] = INCBIN_U8("graphics/pokemon/alakazam/icon.4bpp"); -const u8 gMonIcon_Machop[] = INCBIN_U8("graphics/pokemon/machop/icon.4bpp"); -const u8 gMonIcon_Machoke[] = INCBIN_U8("graphics/pokemon/machoke/icon.4bpp"); -const u8 gMonIcon_Machamp[] = INCBIN_U8("graphics/pokemon/machamp/icon.4bpp"); -const u8 gMonIcon_Bellsprout[] = INCBIN_U8("graphics/pokemon/bellsprout/icon.4bpp"); -const u8 gMonIcon_Weepinbell[] = INCBIN_U8("graphics/pokemon/weepinbell/icon.4bpp"); -const u8 gMonIcon_Victreebel[] = INCBIN_U8("graphics/pokemon/victreebel/icon.4bpp"); -const u8 gMonIcon_Tentacool[] = INCBIN_U8("graphics/pokemon/tentacool/icon.4bpp"); -const u8 gMonIcon_Tentacruel[] = INCBIN_U8("graphics/pokemon/tentacruel/icon.4bpp"); -const u8 gMonIcon_Geodude[] = INCBIN_U8("graphics/pokemon/geodude/icon.4bpp"); -const u8 gMonIcon_Graveler[] = INCBIN_U8("graphics/pokemon/graveler/icon.4bpp"); -const u8 gMonIcon_Golem[] = INCBIN_U8("graphics/pokemon/golem/icon.4bpp"); -const u8 gMonIcon_Ponyta[] = INCBIN_U8("graphics/pokemon/ponyta/icon.4bpp"); -const u8 gMonIcon_Rapidash[] = INCBIN_U8("graphics/pokemon/rapidash/icon.4bpp"); -const u8 gMonIcon_Slowpoke[] = INCBIN_U8("graphics/pokemon/slowpoke/icon.4bpp"); -const u8 gMonIcon_Slowbro[] = INCBIN_U8("graphics/pokemon/slowbro/icon.4bpp"); -const u8 gMonIcon_Magnemite[] = INCBIN_U8("graphics/pokemon/magnemite/icon.4bpp"); -const u8 gMonIcon_Magneton[] = INCBIN_U8("graphics/pokemon/magneton/icon.4bpp"); -const u8 gMonIcon_Farfetchd[] = INCBIN_U8("graphics/pokemon/farfetchd/icon.4bpp"); -const u8 gMonIcon_Doduo[] = INCBIN_U8("graphics/pokemon/doduo/icon.4bpp"); -const u8 gMonIcon_Dodrio[] = INCBIN_U8("graphics/pokemon/dodrio/icon.4bpp"); -const u8 gMonIcon_Seel[] = INCBIN_U8("graphics/pokemon/seel/icon.4bpp"); -const u8 gMonIcon_Dewgong[] = INCBIN_U8("graphics/pokemon/dewgong/icon.4bpp"); -const u8 gMonIcon_Grimer[] = INCBIN_U8("graphics/pokemon/grimer/icon.4bpp"); -const u8 gMonIcon_Muk[] = INCBIN_U8("graphics/pokemon/muk/icon.4bpp"); -const u8 gMonIcon_Shellder[] = INCBIN_U8("graphics/pokemon/shellder/icon.4bpp"); -const u8 gMonIcon_Cloyster[] = INCBIN_U8("graphics/pokemon/cloyster/icon.4bpp"); -const u8 gMonIcon_Gastly[] = INCBIN_U8("graphics/pokemon/gastly/icon.4bpp"); -const u8 gMonIcon_Haunter[] = INCBIN_U8("graphics/pokemon/haunter/icon.4bpp"); -const u8 gMonIcon_Gengar[] = INCBIN_U8("graphics/pokemon/gengar/icon.4bpp"); -const u8 gMonIcon_Onix[] = INCBIN_U8("graphics/pokemon/onix/icon.4bpp"); -const u8 gMonIcon_Drowzee[] = INCBIN_U8("graphics/pokemon/drowzee/icon.4bpp"); -const u8 gMonIcon_Hypno[] = INCBIN_U8("graphics/pokemon/hypno/icon.4bpp"); -const u8 gMonIcon_Krabby[] = INCBIN_U8("graphics/pokemon/krabby/icon.4bpp"); -const u8 gMonIcon_Kingler[] = INCBIN_U8("graphics/pokemon/kingler/icon.4bpp"); -const u8 gMonIcon_Voltorb[] = INCBIN_U8("graphics/pokemon/voltorb/icon.4bpp"); -const u8 gMonIcon_Electrode[] = INCBIN_U8("graphics/pokemon/electrode/icon.4bpp"); -const u8 gMonIcon_Exeggcute[] = INCBIN_U8("graphics/pokemon/exeggcute/icon.4bpp"); -const u8 gMonIcon_Exeggutor[] = INCBIN_U8("graphics/pokemon/exeggutor/icon.4bpp"); -const u8 gMonIcon_Cubone[] = INCBIN_U8("graphics/pokemon/cubone/icon.4bpp"); -const u8 gMonIcon_Marowak[] = INCBIN_U8("graphics/pokemon/marowak/icon.4bpp"); -const u8 gMonIcon_Hitmonlee[] = INCBIN_U8("graphics/pokemon/hitmonlee/icon.4bpp"); -const u8 gMonIcon_Hitmonchan[] = INCBIN_U8("graphics/pokemon/hitmonchan/icon.4bpp"); -const u8 gMonIcon_Lickitung[] = INCBIN_U8("graphics/pokemon/lickitung/icon.4bpp"); -const u8 gMonIcon_Koffing[] = INCBIN_U8("graphics/pokemon/koffing/icon.4bpp"); -const u8 gMonIcon_Weezing[] = INCBIN_U8("graphics/pokemon/weezing/icon.4bpp"); -const u8 gMonIcon_Rhyhorn[] = INCBIN_U8("graphics/pokemon/rhyhorn/icon.4bpp"); -const u8 gMonIcon_Rhydon[] = INCBIN_U8("graphics/pokemon/rhydon/icon.4bpp"); -const u8 gMonIcon_Chansey[] = INCBIN_U8("graphics/pokemon/chansey/icon.4bpp"); -const u8 gMonIcon_Tangela[] = INCBIN_U8("graphics/pokemon/tangela/icon.4bpp"); -const u8 gMonIcon_Kangaskhan[] = INCBIN_U8("graphics/pokemon/kangaskhan/icon.4bpp"); -const u8 gMonIcon_Horsea[] = INCBIN_U8("graphics/pokemon/horsea/icon.4bpp"); -const u8 gMonIcon_Seadra[] = INCBIN_U8("graphics/pokemon/seadra/icon.4bpp"); -const u8 gMonIcon_Goldeen[] = INCBIN_U8("graphics/pokemon/goldeen/icon.4bpp"); -const u8 gMonIcon_Seaking[] = INCBIN_U8("graphics/pokemon/seaking/icon.4bpp"); -const u8 gMonIcon_Staryu[] = INCBIN_U8("graphics/pokemon/staryu/icon.4bpp"); -const u8 gMonIcon_Starmie[] = INCBIN_U8("graphics/pokemon/starmie/icon.4bpp"); -const u8 gMonIcon_MrMime[] = INCBIN_U8("graphics/pokemon/mr_mime/icon.4bpp"); -const u8 gMonIcon_Scyther[] = INCBIN_U8("graphics/pokemon/scyther/icon.4bpp"); -const u8 gMonIcon_Jynx[] = INCBIN_U8("graphics/pokemon/jynx/icon.4bpp"); -const u8 gMonIcon_Electabuzz[] = INCBIN_U8("graphics/pokemon/electabuzz/icon.4bpp"); -const u8 gMonIcon_Magmar[] = INCBIN_U8("graphics/pokemon/magmar/icon.4bpp"); -const u8 gMonIcon_Pinsir[] = INCBIN_U8("graphics/pokemon/pinsir/icon.4bpp"); -const u8 gMonIcon_Tauros[] = INCBIN_U8("graphics/pokemon/tauros/icon.4bpp"); -const u8 gMonIcon_Magikarp[] = INCBIN_U8("graphics/pokemon/magikarp/icon.4bpp"); -const u8 gMonIcon_Gyarados[] = INCBIN_U8("graphics/pokemon/gyarados/icon.4bpp"); -const u8 gMonIcon_Lapras[] = INCBIN_U8("graphics/pokemon/lapras/icon.4bpp"); -const u8 gMonIcon_Ditto[] = INCBIN_U8("graphics/pokemon/ditto/icon.4bpp"); -const u8 gMonIcon_Eevee[] = INCBIN_U8("graphics/pokemon/eevee/icon.4bpp"); -const u8 gMonIcon_Vaporeon[] = INCBIN_U8("graphics/pokemon/vaporeon/icon.4bpp"); -const u8 gMonIcon_Jolteon[] = INCBIN_U8("graphics/pokemon/jolteon/icon.4bpp"); -const u8 gMonIcon_Flareon[] = INCBIN_U8("graphics/pokemon/flareon/icon.4bpp"); -const u8 gMonIcon_Porygon[] = INCBIN_U8("graphics/pokemon/porygon/icon.4bpp"); -const u8 gMonIcon_Omanyte[] = INCBIN_U8("graphics/pokemon/omanyte/icon.4bpp"); -const u8 gMonIcon_Omastar[] = INCBIN_U8("graphics/pokemon/omastar/icon.4bpp"); -const u8 gMonIcon_Kabuto[] = INCBIN_U8("graphics/pokemon/kabuto/icon.4bpp"); -const u8 gMonIcon_Kabutops[] = INCBIN_U8("graphics/pokemon/kabutops/icon.4bpp"); -const u8 gMonIcon_Aerodactyl[] = INCBIN_U8("graphics/pokemon/aerodactyl/icon.4bpp"); -const u8 gMonIcon_Snorlax[] = INCBIN_U8("graphics/pokemon/snorlax/icon.4bpp"); -const u8 gMonIcon_Articuno[] = INCBIN_U8("graphics/pokemon/articuno/icon.4bpp"); -const u8 gMonIcon_Zapdos[] = INCBIN_U8("graphics/pokemon/zapdos/icon.4bpp"); -const u8 gMonIcon_Moltres[] = INCBIN_U8("graphics/pokemon/moltres/icon.4bpp"); -const u8 gMonIcon_Dratini[] = INCBIN_U8("graphics/pokemon/dratini/icon.4bpp"); -const u8 gMonIcon_Dragonair[] = INCBIN_U8("graphics/pokemon/dragonair/icon.4bpp"); -const u8 gMonIcon_Dragonite[] = INCBIN_U8("graphics/pokemon/dragonite/icon.4bpp"); -const u8 gMonIcon_Mewtwo[] = INCBIN_U8("graphics/pokemon/mewtwo/icon.4bpp"); -const u8 gMonIcon_Mew[] = INCBIN_U8("graphics/pokemon/mew/icon.4bpp"); -const u8 gMonIcon_Chikorita[] = INCBIN_U8("graphics/pokemon/chikorita/icon.4bpp"); -const u8 gMonIcon_Bayleef[] = INCBIN_U8("graphics/pokemon/bayleef/icon.4bpp"); -const u8 gMonIcon_Meganium[] = INCBIN_U8("graphics/pokemon/meganium/icon.4bpp"); -const u8 gMonIcon_Cyndaquil[] = INCBIN_U8("graphics/pokemon/cyndaquil/icon.4bpp"); -const u8 gMonIcon_Quilava[] = INCBIN_U8("graphics/pokemon/quilava/icon.4bpp"); -const u8 gMonIcon_Typhlosion[] = INCBIN_U8("graphics/pokemon/typhlosion/icon.4bpp"); -const u8 gMonIcon_Totodile[] = INCBIN_U8("graphics/pokemon/totodile/icon.4bpp"); -const u8 gMonIcon_Croconaw[] = INCBIN_U8("graphics/pokemon/croconaw/icon.4bpp"); -const u8 gMonIcon_Feraligatr[] = INCBIN_U8("graphics/pokemon/feraligatr/icon.4bpp"); -const u8 gMonIcon_Sentret[] = INCBIN_U8("graphics/pokemon/sentret/icon.4bpp"); -const u8 gMonIcon_Furret[] = INCBIN_U8("graphics/pokemon/furret/icon.4bpp"); -const u8 gMonIcon_Hoothoot[] = INCBIN_U8("graphics/pokemon/hoothoot/icon.4bpp"); -const u8 gMonIcon_Noctowl[] = INCBIN_U8("graphics/pokemon/noctowl/icon.4bpp"); -const u8 gMonIcon_Ledyba[] = INCBIN_U8("graphics/pokemon/ledyba/icon.4bpp"); -const u8 gMonIcon_Ledian[] = INCBIN_U8("graphics/pokemon/ledian/icon.4bpp"); -const u8 gMonIcon_Spinarak[] = INCBIN_U8("graphics/pokemon/spinarak/icon.4bpp"); -const u8 gMonIcon_Ariados[] = INCBIN_U8("graphics/pokemon/ariados/icon.4bpp"); -const u8 gMonIcon_Crobat[] = INCBIN_U8("graphics/pokemon/crobat/icon.4bpp"); -const u8 gMonIcon_Chinchou[] = INCBIN_U8("graphics/pokemon/chinchou/icon.4bpp"); -const u8 gMonIcon_Lanturn[] = INCBIN_U8("graphics/pokemon/lanturn/icon.4bpp"); -const u8 gMonIcon_Pichu[] = INCBIN_U8("graphics/pokemon/pichu/icon.4bpp"); -const u8 gMonIcon_Cleffa[] = INCBIN_U8("graphics/pokemon/cleffa/icon.4bpp"); -const u8 gMonIcon_Igglybuff[] = INCBIN_U8("graphics/pokemon/igglybuff/icon.4bpp"); -const u8 gMonIcon_Togepi[] = INCBIN_U8("graphics/pokemon/togepi/icon.4bpp"); -const u8 gMonIcon_Togetic[] = INCBIN_U8("graphics/pokemon/togetic/icon.4bpp"); -const u8 gMonIcon_Natu[] = INCBIN_U8("graphics/pokemon/natu/icon.4bpp"); -const u8 gMonIcon_Xatu[] = INCBIN_U8("graphics/pokemon/xatu/icon.4bpp"); -const u8 gMonIcon_Mareep[] = INCBIN_U8("graphics/pokemon/mareep/icon.4bpp"); -const u8 gMonIcon_Flaaffy[] = INCBIN_U8("graphics/pokemon/flaaffy/icon.4bpp"); -const u8 gMonIcon_Ampharos[] = INCBIN_U8("graphics/pokemon/ampharos/icon.4bpp"); -const u8 gMonIcon_Bellossom[] = INCBIN_U8("graphics/pokemon/bellossom/icon.4bpp"); -const u8 gMonIcon_Marill[] = INCBIN_U8("graphics/pokemon/marill/icon.4bpp"); -const u8 gMonIcon_Azumarill[] = INCBIN_U8("graphics/pokemon/azumarill/icon.4bpp"); -const u8 gMonIcon_Sudowoodo[] = INCBIN_U8("graphics/pokemon/sudowoodo/icon.4bpp"); -const u8 gMonIcon_Politoed[] = INCBIN_U8("graphics/pokemon/politoed/icon.4bpp"); -const u8 gMonIcon_Hoppip[] = INCBIN_U8("graphics/pokemon/hoppip/icon.4bpp"); -const u8 gMonIcon_Skiploom[] = INCBIN_U8("graphics/pokemon/skiploom/icon.4bpp"); -const u8 gMonIcon_Jumpluff[] = INCBIN_U8("graphics/pokemon/jumpluff/icon.4bpp"); -const u8 gMonIcon_Aipom[] = INCBIN_U8("graphics/pokemon/aipom/icon.4bpp"); -const u8 gMonIcon_Sunkern[] = INCBIN_U8("graphics/pokemon/sunkern/icon.4bpp"); -const u8 gMonIcon_Sunflora[] = INCBIN_U8("graphics/pokemon/sunflora/icon.4bpp"); -const u8 gMonIcon_Yanma[] = INCBIN_U8("graphics/pokemon/yanma/icon.4bpp"); -const u8 gMonIcon_Wooper[] = INCBIN_U8("graphics/pokemon/wooper/icon.4bpp"); -const u8 gMonIcon_Quagsire[] = INCBIN_U8("graphics/pokemon/quagsire/icon.4bpp"); -const u8 gMonIcon_Espeon[] = INCBIN_U8("graphics/pokemon/espeon/icon.4bpp"); -const u8 gMonIcon_Umbreon[] = INCBIN_U8("graphics/pokemon/umbreon/icon.4bpp"); -const u8 gMonIcon_Murkrow[] = INCBIN_U8("graphics/pokemon/murkrow/icon.4bpp"); -const u8 gMonIcon_Slowking[] = INCBIN_U8("graphics/pokemon/slowking/icon.4bpp"); -const u8 gMonIcon_Misdreavus[] = INCBIN_U8("graphics/pokemon/misdreavus/icon.4bpp"); -const u8 gMonIcon_Unown[] = INCBIN_U8("graphics/pokemon/unown/icon.4bpp"); -const u8 gMonIcon_Wobbuffet[] = INCBIN_U8("graphics/pokemon/wobbuffet/icon.4bpp"); -const u8 gMonIcon_Girafarig[] = INCBIN_U8("graphics/pokemon/girafarig/icon.4bpp"); -const u8 gMonIcon_Pineco[] = INCBIN_U8("graphics/pokemon/pineco/icon.4bpp"); -const u8 gMonIcon_Forretress[] = INCBIN_U8("graphics/pokemon/forretress/icon.4bpp"); -const u8 gMonIcon_Dunsparce[] = INCBIN_U8("graphics/pokemon/dunsparce/icon.4bpp"); -const u8 gMonIcon_Gligar[] = INCBIN_U8("graphics/pokemon/gligar/icon.4bpp"); -const u8 gMonIcon_Steelix[] = INCBIN_U8("graphics/pokemon/steelix/icon.4bpp"); -const u8 gMonIcon_Snubbull[] = INCBIN_U8("graphics/pokemon/snubbull/icon.4bpp"); -const u8 gMonIcon_Granbull[] = INCBIN_U8("graphics/pokemon/granbull/icon.4bpp"); -const u8 gMonIcon_Qwilfish[] = INCBIN_U8("graphics/pokemon/qwilfish/icon.4bpp"); -const u8 gMonIcon_Scizor[] = INCBIN_U8("graphics/pokemon/scizor/icon.4bpp"); -const u8 gMonIcon_Shuckle[] = INCBIN_U8("graphics/pokemon/shuckle/icon.4bpp"); -const u8 gMonIcon_Heracross[] = INCBIN_U8("graphics/pokemon/heracross/icon.4bpp"); -const u8 gMonIcon_Sneasel[] = INCBIN_U8("graphics/pokemon/sneasel/icon.4bpp"); -const u8 gMonIcon_Teddiursa[] = INCBIN_U8("graphics/pokemon/teddiursa/icon.4bpp"); -const u8 gMonIcon_Ursaring[] = INCBIN_U8("graphics/pokemon/ursaring/icon.4bpp"); -const u8 gMonIcon_Slugma[] = INCBIN_U8("graphics/pokemon/slugma/icon.4bpp"); -const u8 gMonIcon_Magcargo[] = INCBIN_U8("graphics/pokemon/magcargo/icon.4bpp"); -const u8 gMonIcon_Swinub[] = INCBIN_U8("graphics/pokemon/swinub/icon.4bpp"); -const u8 gMonIcon_Piloswine[] = INCBIN_U8("graphics/pokemon/piloswine/icon.4bpp"); -const u8 gMonIcon_Corsola[] = INCBIN_U8("graphics/pokemon/corsola/icon.4bpp"); -const u8 gMonIcon_Remoraid[] = INCBIN_U8("graphics/pokemon/remoraid/icon.4bpp"); -const u8 gMonIcon_Octillery[] = INCBIN_U8("graphics/pokemon/octillery/icon.4bpp"); -const u8 gMonIcon_Delibird[] = INCBIN_U8("graphics/pokemon/delibird/icon.4bpp"); -const u8 gMonIcon_Mantine[] = INCBIN_U8("graphics/pokemon/mantine/icon.4bpp"); -const u8 gMonIcon_Skarmory[] = INCBIN_U8("graphics/pokemon/skarmory/icon.4bpp"); -const u8 gMonIcon_Houndour[] = INCBIN_U8("graphics/pokemon/houndour/icon.4bpp"); -const u8 gMonIcon_Houndoom[] = INCBIN_U8("graphics/pokemon/houndoom/icon.4bpp"); -const u8 gMonIcon_Kingdra[] = INCBIN_U8("graphics/pokemon/kingdra/icon.4bpp"); -const u8 gMonIcon_Phanpy[] = INCBIN_U8("graphics/pokemon/phanpy/icon.4bpp"); -const u8 gMonIcon_Donphan[] = INCBIN_U8("graphics/pokemon/donphan/icon.4bpp"); -const u8 gMonIcon_Porygon2[] = INCBIN_U8("graphics/pokemon/porygon2/icon.4bpp"); -const u8 gMonIcon_Stantler[] = INCBIN_U8("graphics/pokemon/stantler/icon.4bpp"); -const u8 gMonIcon_Smeargle[] = INCBIN_U8("graphics/pokemon/smeargle/icon.4bpp"); -const u8 gMonIcon_Tyrogue[] = INCBIN_U8("graphics/pokemon/tyrogue/icon.4bpp"); -const u8 gMonIcon_Hitmontop[] = INCBIN_U8("graphics/pokemon/hitmontop/icon.4bpp"); -const u8 gMonIcon_Smoochum[] = INCBIN_U8("graphics/pokemon/smoochum/icon.4bpp"); -const u8 gMonIcon_Elekid[] = INCBIN_U8("graphics/pokemon/elekid/icon.4bpp"); -const u8 gMonIcon_Magby[] = INCBIN_U8("graphics/pokemon/magby/icon.4bpp"); -const u8 gMonIcon_Miltank[] = INCBIN_U8("graphics/pokemon/miltank/icon.4bpp"); -const u8 gMonIcon_Blissey[] = INCBIN_U8("graphics/pokemon/blissey/icon.4bpp"); -const u8 gMonIcon_Raikou[] = INCBIN_U8("graphics/pokemon/raikou/icon.4bpp"); -const u8 gMonIcon_Entei[] = INCBIN_U8("graphics/pokemon/entei/icon.4bpp"); -const u8 gMonIcon_Suicune[] = INCBIN_U8("graphics/pokemon/suicune/icon.4bpp"); -const u8 gMonIcon_Larvitar[] = INCBIN_U8("graphics/pokemon/larvitar/icon.4bpp"); -const u8 gMonIcon_Pupitar[] = INCBIN_U8("graphics/pokemon/pupitar/icon.4bpp"); -const u8 gMonIcon_Tyranitar[] = INCBIN_U8("graphics/pokemon/tyranitar/icon.4bpp"); -const u8 gMonIcon_Lugia[] = INCBIN_U8("graphics/pokemon/lugia/icon.4bpp"); -const u8 gMonIcon_HoOh[] = INCBIN_U8("graphics/pokemon/ho_oh/icon.4bpp"); -const u8 gMonIcon_Celebi[] = INCBIN_U8("graphics/pokemon/celebi/icon.4bpp"); -const u8 gMonIcon_Treecko[] = INCBIN_U8("graphics/pokemon/treecko/icon.4bpp"); -const u8 gMonIcon_Grovyle[] = INCBIN_U8("graphics/pokemon/grovyle/icon.4bpp"); -const u8 gMonIcon_Sceptile[] = INCBIN_U8("graphics/pokemon/sceptile/icon.4bpp"); -const u8 gMonIcon_Torchic[] = INCBIN_U8("graphics/pokemon/torchic/icon.4bpp"); -const u8 gMonIcon_Combusken[] = INCBIN_U8("graphics/pokemon/combusken/icon.4bpp"); -const u8 gMonIcon_Blaziken[] = INCBIN_U8("graphics/pokemon/blaziken/icon.4bpp"); -const u8 gMonIcon_Mudkip[] = INCBIN_U8("graphics/pokemon/mudkip/icon.4bpp"); -const u8 gMonIcon_Marshtomp[] = INCBIN_U8("graphics/pokemon/marshtomp/icon.4bpp"); -const u8 gMonIcon_Swampert[] = INCBIN_U8("graphics/pokemon/swampert/icon.4bpp"); -const u8 gMonIcon_Poochyena[] = INCBIN_U8("graphics/pokemon/poochyena/icon.4bpp"); -const u8 gMonIcon_Mightyena[] = INCBIN_U8("graphics/pokemon/mightyena/icon.4bpp"); -const u8 gMonIcon_Zigzagoon[] = INCBIN_U8("graphics/pokemon/zigzagoon/icon.4bpp"); -const u8 gMonIcon_Linoone[] = INCBIN_U8("graphics/pokemon/linoone/icon.4bpp"); -const u8 gMonIcon_Wurmple[] = INCBIN_U8("graphics/pokemon/wurmple/icon.4bpp"); -const u8 gMonIcon_Silcoon[] = INCBIN_U8("graphics/pokemon/silcoon/icon.4bpp"); -const u8 gMonIcon_Beautifly[] = INCBIN_U8("graphics/pokemon/beautifly/icon.4bpp"); -const u8 gMonIcon_Cascoon[] = INCBIN_U8("graphics/pokemon/cascoon/icon.4bpp"); -const u8 gMonIcon_Dustox[] = INCBIN_U8("graphics/pokemon/dustox/icon.4bpp"); -const u8 gMonIcon_Lotad[] = INCBIN_U8("graphics/pokemon/lotad/icon.4bpp"); -const u8 gMonIcon_Lombre[] = INCBIN_U8("graphics/pokemon/lombre/icon.4bpp"); -const u8 gMonIcon_Ludicolo[] = INCBIN_U8("graphics/pokemon/ludicolo/icon.4bpp"); -const u8 gMonIcon_Seedot[] = INCBIN_U8("graphics/pokemon/seedot/icon.4bpp"); -const u8 gMonIcon_Nuzleaf[] = INCBIN_U8("graphics/pokemon/nuzleaf/icon.4bpp"); -const u8 gMonIcon_Shiftry[] = INCBIN_U8("graphics/pokemon/shiftry/icon.4bpp"); -const u8 gMonIcon_Taillow[] = INCBIN_U8("graphics/pokemon/taillow/icon.4bpp"); -const u8 gMonIcon_Swellow[] = INCBIN_U8("graphics/pokemon/swellow/icon.4bpp"); -const u8 gMonIcon_Wingull[] = INCBIN_U8("graphics/pokemon/wingull/icon.4bpp"); -const u8 gMonIcon_Pelipper[] = INCBIN_U8("graphics/pokemon/pelipper/icon.4bpp"); -const u8 gMonIcon_Ralts[] = INCBIN_U8("graphics/pokemon/ralts/icon.4bpp"); -const u8 gMonIcon_Kirlia[] = INCBIN_U8("graphics/pokemon/kirlia/icon.4bpp"); -const u8 gMonIcon_Gardevoir[] = INCBIN_U8("graphics/pokemon/gardevoir/icon.4bpp"); -const u8 gMonIcon_Surskit[] = INCBIN_U8("graphics/pokemon/surskit/icon.4bpp"); -const u8 gMonIcon_Masquerain[] = INCBIN_U8("graphics/pokemon/masquerain/icon.4bpp"); -const u8 gMonIcon_Shroomish[] = INCBIN_U8("graphics/pokemon/shroomish/icon.4bpp"); -const u8 gMonIcon_Breloom[] = INCBIN_U8("graphics/pokemon/breloom/icon.4bpp"); -const u8 gMonIcon_Slakoth[] = INCBIN_U8("graphics/pokemon/slakoth/icon.4bpp"); -const u8 gMonIcon_Vigoroth[] = INCBIN_U8("graphics/pokemon/vigoroth/icon.4bpp"); -const u8 gMonIcon_Slaking[] = INCBIN_U8("graphics/pokemon/slaking/icon.4bpp"); -const u8 gMonIcon_Nincada[] = INCBIN_U8("graphics/pokemon/nincada/icon.4bpp"); -const u8 gMonIcon_Ninjask[] = INCBIN_U8("graphics/pokemon/ninjask/icon.4bpp"); -const u8 gMonIcon_Shedinja[] = INCBIN_U8("graphics/pokemon/shedinja/icon.4bpp"); -const u8 gMonIcon_Whismur[] = INCBIN_U8("graphics/pokemon/whismur/icon.4bpp"); -const u8 gMonIcon_Loudred[] = INCBIN_U8("graphics/pokemon/loudred/icon.4bpp"); -const u8 gMonIcon_Exploud[] = INCBIN_U8("graphics/pokemon/exploud/icon.4bpp"); -const u8 gMonIcon_Makuhita[] = INCBIN_U8("graphics/pokemon/makuhita/icon.4bpp"); -const u8 gMonIcon_Hariyama[] = INCBIN_U8("graphics/pokemon/hariyama/icon.4bpp"); -const u8 gMonIcon_Azurill[] = INCBIN_U8("graphics/pokemon/azurill/icon.4bpp"); -const u8 gMonIcon_Nosepass[] = INCBIN_U8("graphics/pokemon/nosepass/icon.4bpp"); -const u8 gMonIcon_Skitty[] = INCBIN_U8("graphics/pokemon/skitty/icon.4bpp"); -const u8 gMonIcon_Delcatty[] = INCBIN_U8("graphics/pokemon/delcatty/icon.4bpp"); -const u8 gMonIcon_Sableye[] = INCBIN_U8("graphics/pokemon/sableye/icon.4bpp"); -const u8 gMonIcon_Mawile[] = INCBIN_U8("graphics/pokemon/mawile/icon.4bpp"); -const u8 gMonIcon_Aron[] = INCBIN_U8("graphics/pokemon/aron/icon.4bpp"); -const u8 gMonIcon_Lairon[] = INCBIN_U8("graphics/pokemon/lairon/icon.4bpp"); -const u8 gMonIcon_Aggron[] = INCBIN_U8("graphics/pokemon/aggron/icon.4bpp"); -const u8 gMonIcon_Meditite[] = INCBIN_U8("graphics/pokemon/meditite/icon.4bpp"); -const u8 gMonIcon_Medicham[] = INCBIN_U8("graphics/pokemon/medicham/icon.4bpp"); -const u8 gMonIcon_Electrike[] = INCBIN_U8("graphics/pokemon/electrike/icon.4bpp"); -const u8 gMonIcon_Manectric[] = INCBIN_U8("graphics/pokemon/manectric/icon.4bpp"); -const u8 gMonIcon_Plusle[] = INCBIN_U8("graphics/pokemon/plusle/icon.4bpp"); -const u8 gMonIcon_Minun[] = INCBIN_U8("graphics/pokemon/minun/icon.4bpp"); -const u8 gMonIcon_Volbeat[] = INCBIN_U8("graphics/pokemon/volbeat/icon.4bpp"); -const u8 gMonIcon_Illumise[] = INCBIN_U8("graphics/pokemon/illumise/icon.4bpp"); -const u8 gMonIcon_Roselia[] = INCBIN_U8("graphics/pokemon/roselia/icon.4bpp"); -const u8 gMonIcon_Gulpin[] = INCBIN_U8("graphics/pokemon/gulpin/icon.4bpp"); -const u8 gMonIcon_Swalot[] = INCBIN_U8("graphics/pokemon/swalot/icon.4bpp"); -const u8 gMonIcon_Carvanha[] = INCBIN_U8("graphics/pokemon/carvanha/icon.4bpp"); -const u8 gMonIcon_Sharpedo[] = INCBIN_U8("graphics/pokemon/sharpedo/icon.4bpp"); -const u8 gMonIcon_Wailmer[] = INCBIN_U8("graphics/pokemon/wailmer/icon.4bpp"); -const u8 gMonIcon_Wailord[] = INCBIN_U8("graphics/pokemon/wailord/icon.4bpp"); -const u8 gMonIcon_Numel[] = INCBIN_U8("graphics/pokemon/numel/icon.4bpp"); -const u8 gMonIcon_Camerupt[] = INCBIN_U8("graphics/pokemon/camerupt/icon.4bpp"); -const u8 gMonIcon_Torkoal[] = INCBIN_U8("graphics/pokemon/torkoal/icon.4bpp"); -const u8 gMonIcon_Spoink[] = INCBIN_U8("graphics/pokemon/spoink/icon.4bpp"); -const u8 gMonIcon_Grumpig[] = INCBIN_U8("graphics/pokemon/grumpig/icon.4bpp"); -const u8 gMonIcon_Spinda[] = INCBIN_U8("graphics/pokemon/spinda/icon.4bpp"); -const u8 gMonIcon_Trapinch[] = INCBIN_U8("graphics/pokemon/trapinch/icon.4bpp"); -const u8 gMonIcon_Vibrava[] = INCBIN_U8("graphics/pokemon/vibrava/icon.4bpp"); -const u8 gMonIcon_Flygon[] = INCBIN_U8("graphics/pokemon/flygon/icon.4bpp"); -const u8 gMonIcon_Cacnea[] = INCBIN_U8("graphics/pokemon/cacnea/icon.4bpp"); -const u8 gMonIcon_Cacturne[] = INCBIN_U8("graphics/pokemon/cacturne/icon.4bpp"); -const u8 gMonIcon_Swablu[] = INCBIN_U8("graphics/pokemon/swablu/icon.4bpp"); -const u8 gMonIcon_Altaria[] = INCBIN_U8("graphics/pokemon/altaria/icon.4bpp"); -const u8 gMonIcon_Zangoose[] = INCBIN_U8("graphics/pokemon/zangoose/icon.4bpp"); -const u8 gMonIcon_Seviper[] = INCBIN_U8("graphics/pokemon/seviper/icon.4bpp"); -const u8 gMonIcon_Lunatone[] = INCBIN_U8("graphics/pokemon/lunatone/icon.4bpp"); -const u8 gMonIcon_Solrock[] = INCBIN_U8("graphics/pokemon/solrock/icon.4bpp"); -const u8 gMonIcon_Barboach[] = INCBIN_U8("graphics/pokemon/barboach/icon.4bpp"); -const u8 gMonIcon_Whiscash[] = INCBIN_U8("graphics/pokemon/whiscash/icon.4bpp"); -const u8 gMonIcon_Corphish[] = INCBIN_U8("graphics/pokemon/corphish/icon.4bpp"); -const u8 gMonIcon_Crawdaunt[] = INCBIN_U8("graphics/pokemon/crawdaunt/icon.4bpp"); -const u8 gMonIcon_Baltoy[] = INCBIN_U8("graphics/pokemon/baltoy/icon.4bpp"); -const u8 gMonIcon_Claydol[] = INCBIN_U8("graphics/pokemon/claydol/icon.4bpp"); -const u8 gMonIcon_Lileep[] = INCBIN_U8("graphics/pokemon/lileep/icon.4bpp"); -const u8 gMonIcon_Cradily[] = INCBIN_U8("graphics/pokemon/cradily/icon.4bpp"); -const u8 gMonIcon_Anorith[] = INCBIN_U8("graphics/pokemon/anorith/icon.4bpp"); -const u8 gMonIcon_Armaldo[] = INCBIN_U8("graphics/pokemon/armaldo/icon.4bpp"); -const u8 gMonIcon_Feebas[] = INCBIN_U8("graphics/pokemon/feebas/icon.4bpp"); -const u8 gMonIcon_Milotic[] = INCBIN_U8("graphics/pokemon/milotic/icon.4bpp"); -const u8 gMonIcon_CastformNormal[] = INCBIN_U8("graphics/pokemon/castform/icon.4bpp"); -const u8 gMonIcon_Kecleon[] = INCBIN_U8("graphics/pokemon/kecleon/icon.4bpp"); -const u8 gMonIcon_Shuppet[] = INCBIN_U8("graphics/pokemon/shuppet/icon.4bpp"); -const u8 gMonIcon_Banette[] = INCBIN_U8("graphics/pokemon/banette/icon.4bpp"); -const u8 gMonIcon_Duskull[] = INCBIN_U8("graphics/pokemon/duskull/icon.4bpp"); -const u8 gMonIcon_Dusclops[] = INCBIN_U8("graphics/pokemon/dusclops/icon.4bpp"); -const u8 gMonIcon_Tropius[] = INCBIN_U8("graphics/pokemon/tropius/icon.4bpp"); -const u8 gMonIcon_Chimecho[] = INCBIN_U8("graphics/pokemon/chimecho/icon.4bpp"); -const u8 gMonIcon_Absol[] = INCBIN_U8("graphics/pokemon/absol/icon.4bpp"); -const u8 gMonIcon_Wynaut[] = INCBIN_U8("graphics/pokemon/wynaut/icon.4bpp"); -const u8 gMonIcon_Snorunt[] = INCBIN_U8("graphics/pokemon/snorunt/icon.4bpp"); -const u8 gMonIcon_Glalie[] = INCBIN_U8("graphics/pokemon/glalie/icon.4bpp"); -const u8 gMonIcon_Spheal[] = INCBIN_U8("graphics/pokemon/spheal/icon.4bpp"); -const u8 gMonIcon_Sealeo[] = INCBIN_U8("graphics/pokemon/sealeo/icon.4bpp"); -const u8 gMonIcon_Walrein[] = INCBIN_U8("graphics/pokemon/walrein/icon.4bpp"); -const u8 gMonIcon_Clamperl[] = INCBIN_U8("graphics/pokemon/clamperl/icon.4bpp"); -const u8 gMonIcon_Huntail[] = INCBIN_U8("graphics/pokemon/huntail/icon.4bpp"); -const u8 gMonIcon_Gorebyss[] = INCBIN_U8("graphics/pokemon/gorebyss/icon.4bpp"); -const u8 gMonIcon_Relicanth[] = INCBIN_U8("graphics/pokemon/relicanth/icon.4bpp"); -const u8 gMonIcon_Luvdisc[] = INCBIN_U8("graphics/pokemon/luvdisc/icon.4bpp"); -const u8 gMonIcon_Bagon[] = INCBIN_U8("graphics/pokemon/bagon/icon.4bpp"); -const u8 gMonIcon_Shelgon[] = INCBIN_U8("graphics/pokemon/shelgon/icon.4bpp"); -const u8 gMonIcon_Salamence[] = INCBIN_U8("graphics/pokemon/salamence/icon.4bpp"); -const u8 gMonIcon_Beldum[] = INCBIN_U8("graphics/pokemon/beldum/icon.4bpp"); -const u8 gMonIcon_Metang[] = INCBIN_U8("graphics/pokemon/metang/icon.4bpp"); -const u8 gMonIcon_Metagross[] = INCBIN_U8("graphics/pokemon/metagross/icon.4bpp"); -const u8 gMonIcon_Regirock[] = INCBIN_U8("graphics/pokemon/regirock/icon.4bpp"); -const u8 gMonIcon_Regice[] = INCBIN_U8("graphics/pokemon/regice/icon.4bpp"); -const u8 gMonIcon_Registeel[] = INCBIN_U8("graphics/pokemon/registeel/icon.4bpp"); -const u8 gMonIcon_Latias[] = INCBIN_U8("graphics/pokemon/latias/icon.4bpp"); -const u8 gMonIcon_Latios[] = INCBIN_U8("graphics/pokemon/latios/icon.4bpp"); -const u8 gMonIcon_Kyogre[] = INCBIN_U8("graphics/pokemon/kyogre/icon.4bpp"); -const u8 gMonIcon_Groudon[] = INCBIN_U8("graphics/pokemon/groudon/icon.4bpp"); -const u8 gMonIcon_Rayquaza[] = INCBIN_U8("graphics/pokemon/rayquaza/icon.4bpp"); -const u8 gMonIcon_Jirachi[] = INCBIN_U8("graphics/pokemon/jirachi/icon.4bpp"); -const u8 gMonIcon_DeoxysNormal[] = INCBIN_U8("graphics/pokemon/deoxys/icon.4bpp"); -#if P_GEN_4_POKEMON == TRUE -const u8 gMonIcon_Turtwig[] = INCBIN_U8("graphics/pokemon/turtwig/icon.4bpp"); -const u8 gMonIcon_Grotle[] = INCBIN_U8("graphics/pokemon/grotle/icon.4bpp"); -const u8 gMonIcon_Torterra[] = INCBIN_U8("graphics/pokemon/torterra/icon.4bpp"); -const u8 gMonIcon_Chimchar[] = INCBIN_U8("graphics/pokemon/chimchar/icon.4bpp"); -const u8 gMonIcon_Monferno[] = INCBIN_U8("graphics/pokemon/monferno/icon.4bpp"); -const u8 gMonIcon_Infernape[] = INCBIN_U8("graphics/pokemon/infernape/icon.4bpp"); -const u8 gMonIcon_Piplup[] = INCBIN_U8("graphics/pokemon/piplup/icon.4bpp"); -const u8 gMonIcon_Prinplup[] = INCBIN_U8("graphics/pokemon/prinplup/icon.4bpp"); -const u8 gMonIcon_Empoleon[] = INCBIN_U8("graphics/pokemon/empoleon/icon.4bpp"); -const u8 gMonIcon_Starly[] = INCBIN_U8("graphics/pokemon/starly/icon.4bpp"); -const u8 gMonIcon_Staravia[] = INCBIN_U8("graphics/pokemon/staravia/icon.4bpp"); -const u8 gMonIcon_Staraptor[] = INCBIN_U8("graphics/pokemon/staraptor/icon.4bpp"); -const u8 gMonIcon_Bidoof[] = INCBIN_U8("graphics/pokemon/bidoof/icon.4bpp"); -const u8 gMonIcon_Bibarel[] = INCBIN_U8("graphics/pokemon/bibarel/icon.4bpp"); -const u8 gMonIcon_Kricketot[] = INCBIN_U8("graphics/pokemon/kricketot/icon.4bpp"); -const u8 gMonIcon_Kricketune[] = INCBIN_U8("graphics/pokemon/kricketune/icon.4bpp"); -const u8 gMonIcon_Shinx[] = INCBIN_U8("graphics/pokemon/shinx/icon.4bpp"); -const u8 gMonIcon_Luxio[] = INCBIN_U8("graphics/pokemon/luxio/icon.4bpp"); -const u8 gMonIcon_Luxray[] = INCBIN_U8("graphics/pokemon/luxray/icon.4bpp"); -const u8 gMonIcon_Budew[] = INCBIN_U8("graphics/pokemon/budew/icon.4bpp"); -const u8 gMonIcon_Roserade[] = INCBIN_U8("graphics/pokemon/roserade/icon.4bpp"); -const u8 gMonIcon_Cranidos[] = INCBIN_U8("graphics/pokemon/cranidos/icon.4bpp"); -const u8 gMonIcon_Rampardos[] = INCBIN_U8("graphics/pokemon/rampardos/icon.4bpp"); -const u8 gMonIcon_Shieldon[] = INCBIN_U8("graphics/pokemon/shieldon/icon.4bpp"); -const u8 gMonIcon_Bastiodon[] = INCBIN_U8("graphics/pokemon/bastiodon/icon.4bpp"); -const u8 gMonIcon_BurmyPlantCloak[] = INCBIN_U8("graphics/pokemon/burmy/icon.4bpp"); -const u8 gMonIcon_WormadamPlantCloak[] = INCBIN_U8("graphics/pokemon/wormadam/icon.4bpp"); -const u8 gMonIcon_Mothim[] = INCBIN_U8("graphics/pokemon/mothim/icon.4bpp"); -const u8 gMonIcon_Combee[] = INCBIN_U8("graphics/pokemon/combee/icon.4bpp"); -const u8 gMonIcon_Vespiquen[] = INCBIN_U8("graphics/pokemon/vespiquen/icon.4bpp"); -const u8 gMonIcon_Pachirisu[] = INCBIN_U8("graphics/pokemon/pachirisu/icon.4bpp"); -const u8 gMonIcon_Buizel[] = INCBIN_U8("graphics/pokemon/buizel/icon.4bpp"); -const u8 gMonIcon_Floatzel[] = INCBIN_U8("graphics/pokemon/floatzel/icon.4bpp"); -const u8 gMonIcon_Cherubi[] = INCBIN_U8("graphics/pokemon/cherubi/icon.4bpp"); -const u8 gMonIcon_CherrimOvercast[] = INCBIN_U8("graphics/pokemon/cherrim/icon.4bpp"); -const u8 gMonIcon_ShellosWestSea[] = INCBIN_U8("graphics/pokemon/shellos/icon.4bpp"); -const u8 gMonIcon_GastrodonWestSea[] = INCBIN_U8("graphics/pokemon/gastrodon/icon.4bpp"); -const u8 gMonIcon_Ambipom[] = INCBIN_U8("graphics/pokemon/ambipom/icon.4bpp"); -const u8 gMonIcon_Drifloon[] = INCBIN_U8("graphics/pokemon/drifloon/icon.4bpp"); -const u8 gMonIcon_Drifblim[] = INCBIN_U8("graphics/pokemon/drifblim/icon.4bpp"); -const u8 gMonIcon_Buneary[] = INCBIN_U8("graphics/pokemon/buneary/icon.4bpp"); -const u8 gMonIcon_Lopunny[] = INCBIN_U8("graphics/pokemon/lopunny/icon.4bpp"); -const u8 gMonIcon_Mismagius[] = INCBIN_U8("graphics/pokemon/mismagius/icon.4bpp"); -const u8 gMonIcon_Honchkrow[] = INCBIN_U8("graphics/pokemon/honchkrow/icon.4bpp"); -const u8 gMonIcon_Glameow[] = INCBIN_U8("graphics/pokemon/glameow/icon.4bpp"); -const u8 gMonIcon_Purugly[] = INCBIN_U8("graphics/pokemon/purugly/icon.4bpp"); -const u8 gMonIcon_Chingling[] = INCBIN_U8("graphics/pokemon/chingling/icon.4bpp"); -const u8 gMonIcon_Stunky[] = INCBIN_U8("graphics/pokemon/stunky/icon.4bpp"); -const u8 gMonIcon_Skuntank[] = INCBIN_U8("graphics/pokemon/skuntank/icon.4bpp"); -const u8 gMonIcon_Bronzor[] = INCBIN_U8("graphics/pokemon/bronzor/icon.4bpp"); -const u8 gMonIcon_Bronzong[] = INCBIN_U8("graphics/pokemon/bronzong/icon.4bpp"); -const u8 gMonIcon_Bonsly[] = INCBIN_U8("graphics/pokemon/bonsly/icon.4bpp"); -const u8 gMonIcon_MimeJr[] = INCBIN_U8("graphics/pokemon/mime_jr/icon.4bpp"); -const u8 gMonIcon_Happiny[] = INCBIN_U8("graphics/pokemon/happiny/icon.4bpp"); -const u8 gMonIcon_Chatot[] = INCBIN_U8("graphics/pokemon/chatot/icon.4bpp"); -const u8 gMonIcon_Spiritomb[] = INCBIN_U8("graphics/pokemon/spiritomb/icon.4bpp"); -const u8 gMonIcon_Gible[] = INCBIN_U8("graphics/pokemon/gible/icon.4bpp"); -const u8 gMonIcon_Gabite[] = INCBIN_U8("graphics/pokemon/gabite/icon.4bpp"); -const u8 gMonIcon_Garchomp[] = INCBIN_U8("graphics/pokemon/garchomp/icon.4bpp"); -const u8 gMonIcon_Munchlax[] = INCBIN_U8("graphics/pokemon/munchlax/icon.4bpp"); -const u8 gMonIcon_Riolu[] = INCBIN_U8("graphics/pokemon/riolu/icon.4bpp"); -const u8 gMonIcon_Lucario[] = INCBIN_U8("graphics/pokemon/lucario/icon.4bpp"); -const u8 gMonIcon_Hippopotas[] = INCBIN_U8("graphics/pokemon/hippopotas/icon.4bpp"); -const u8 gMonIcon_Hippowdon[] = INCBIN_U8("graphics/pokemon/hippowdon/icon.4bpp"); -#if P_HIPPO_GENDER_DIFF_ICONS == TRUE -const u8 gMonIcon_HippopotasF[] = INCBIN_U8("graphics/pokemon/hippopotas/iconf.4bpp"); -const u8 gMonIcon_HippowdonF[] = INCBIN_U8("graphics/pokemon/hippowdon/iconf.4bpp"); -#endif -const u8 gMonIcon_Skorupi[] = INCBIN_U8("graphics/pokemon/skorupi/icon.4bpp"); -const u8 gMonIcon_Drapion[] = INCBIN_U8("graphics/pokemon/drapion/icon.4bpp"); -const u8 gMonIcon_Croagunk[] = INCBIN_U8("graphics/pokemon/croagunk/icon.4bpp"); -const u8 gMonIcon_Toxicroak[] = INCBIN_U8("graphics/pokemon/toxicroak/icon.4bpp"); -const u8 gMonIcon_Carnivine[] = INCBIN_U8("graphics/pokemon/carnivine/icon.4bpp"); -const u8 gMonIcon_Finneon[] = INCBIN_U8("graphics/pokemon/finneon/icon.4bpp"); -const u8 gMonIcon_Lumineon[] = INCBIN_U8("graphics/pokemon/lumineon/icon.4bpp"); -const u8 gMonIcon_Mantyke[] = INCBIN_U8("graphics/pokemon/mantyke/icon.4bpp"); -const u8 gMonIcon_Snover[] = INCBIN_U8("graphics/pokemon/snover/icon.4bpp"); -const u8 gMonIcon_Abomasnow[] = INCBIN_U8("graphics/pokemon/abomasnow/icon.4bpp"); -const u8 gMonIcon_Weavile[] = INCBIN_U8("graphics/pokemon/weavile/icon.4bpp"); -const u8 gMonIcon_Magnezone[] = INCBIN_U8("graphics/pokemon/magnezone/icon.4bpp"); -const u8 gMonIcon_Lickilicky[] = INCBIN_U8("graphics/pokemon/lickilicky/icon.4bpp"); -const u8 gMonIcon_Rhyperior[] = INCBIN_U8("graphics/pokemon/rhyperior/icon.4bpp"); -const u8 gMonIcon_Tangrowth[] = INCBIN_U8("graphics/pokemon/tangrowth/icon.4bpp"); -const u8 gMonIcon_Electivire[] = INCBIN_U8("graphics/pokemon/electivire/icon.4bpp"); -const u8 gMonIcon_Magmortar[] = INCBIN_U8("graphics/pokemon/magmortar/icon.4bpp"); -const u8 gMonIcon_Togekiss[] = INCBIN_U8("graphics/pokemon/togekiss/icon.4bpp"); -const u8 gMonIcon_Yanmega[] = INCBIN_U8("graphics/pokemon/yanmega/icon.4bpp"); -const u8 gMonIcon_Leafeon[] = INCBIN_U8("graphics/pokemon/leafeon/icon.4bpp"); -const u8 gMonIcon_Glaceon[] = INCBIN_U8("graphics/pokemon/glaceon/icon.4bpp"); -const u8 gMonIcon_Gliscor[] = INCBIN_U8("graphics/pokemon/gliscor/icon.4bpp"); -const u8 gMonIcon_Mamoswine[] = INCBIN_U8("graphics/pokemon/mamoswine/icon.4bpp"); -const u8 gMonIcon_Porygon_Z[] = INCBIN_U8("graphics/pokemon/porygon_z/icon.4bpp"); -const u8 gMonIcon_Gallade[] = INCBIN_U8("graphics/pokemon/gallade/icon.4bpp"); -const u8 gMonIcon_Probopass[] = INCBIN_U8("graphics/pokemon/probopass/icon.4bpp"); -const u8 gMonIcon_Dusknoir[] = INCBIN_U8("graphics/pokemon/dusknoir/icon.4bpp"); -const u8 gMonIcon_Froslass[] = INCBIN_U8("graphics/pokemon/froslass/icon.4bpp"); -const u8 gMonIcon_Rotom[] = INCBIN_U8("graphics/pokemon/rotom/icon.4bpp"); -const u8 gMonIcon_Uxie[] = INCBIN_U8("graphics/pokemon/uxie/icon.4bpp"); -const u8 gMonIcon_Mesprit[] = INCBIN_U8("graphics/pokemon/mesprit/icon.4bpp"); -const u8 gMonIcon_Azelf[] = INCBIN_U8("graphics/pokemon/azelf/icon.4bpp"); -const u8 gMonIcon_Dialga[] = INCBIN_U8("graphics/pokemon/dialga/icon.4bpp"); -const u8 gMonIcon_Palkia[] = INCBIN_U8("graphics/pokemon/palkia/icon.4bpp"); -const u8 gMonIcon_Heatran[] = INCBIN_U8("graphics/pokemon/heatran/icon.4bpp"); -const u8 gMonIcon_Regigigas[] = INCBIN_U8("graphics/pokemon/regigigas/icon.4bpp"); -const u8 gMonIcon_GiratinaAltered[] = INCBIN_U8("graphics/pokemon/giratina/icon.4bpp"); -const u8 gMonIcon_Cresselia[] = INCBIN_U8("graphics/pokemon/cresselia/icon.4bpp"); -const u8 gMonIcon_Phione[] = INCBIN_U8("graphics/pokemon/phione/icon.4bpp"); -const u8 gMonIcon_Manaphy[] = INCBIN_U8("graphics/pokemon/manaphy/icon.4bpp"); -const u8 gMonIcon_Darkrai[] = INCBIN_U8("graphics/pokemon/darkrai/icon.4bpp"); -const u8 gMonIcon_ShayminLand[] = INCBIN_U8("graphics/pokemon/shaymin/icon.4bpp"); -const u8 gMonIcon_Arceus[] = INCBIN_U8("graphics/pokemon/arceus/icon.4bpp"); -#endif -#if P_GEN_5_POKEMON == TRUE -const u8 gMonIcon_Victini[] = INCBIN_U8("graphics/pokemon/victini/icon.4bpp"); -const u8 gMonIcon_Snivy[] = INCBIN_U8("graphics/pokemon/snivy/icon.4bpp"); -const u8 gMonIcon_Servine[] = INCBIN_U8("graphics/pokemon/servine/icon.4bpp"); -const u8 gMonIcon_Serperior[] = INCBIN_U8("graphics/pokemon/serperior/icon.4bpp"); -const u8 gMonIcon_Tepig[] = INCBIN_U8("graphics/pokemon/tepig/icon.4bpp"); -const u8 gMonIcon_Pignite[] = INCBIN_U8("graphics/pokemon/pignite/icon.4bpp"); -const u8 gMonIcon_Emboar[] = INCBIN_U8("graphics/pokemon/emboar/icon.4bpp"); -const u8 gMonIcon_Oshawott[] = INCBIN_U8("graphics/pokemon/oshawott/icon.4bpp"); -const u8 gMonIcon_Dewott[] = INCBIN_U8("graphics/pokemon/dewott/icon.4bpp"); -const u8 gMonIcon_Samurott[] = INCBIN_U8("graphics/pokemon/samurott/icon.4bpp"); -const u8 gMonIcon_Patrat[] = INCBIN_U8("graphics/pokemon/patrat/icon.4bpp"); -const u8 gMonIcon_Watchog[] = INCBIN_U8("graphics/pokemon/watchog/icon.4bpp"); -const u8 gMonIcon_Lillipup[] = INCBIN_U8("graphics/pokemon/lillipup/icon.4bpp"); -const u8 gMonIcon_Herdier[] = INCBIN_U8("graphics/pokemon/herdier/icon.4bpp"); -const u8 gMonIcon_Stoutland[] = INCBIN_U8("graphics/pokemon/stoutland/icon.4bpp"); -const u8 gMonIcon_Purrloin[] = INCBIN_U8("graphics/pokemon/purrloin/icon.4bpp"); -const u8 gMonIcon_Liepard[] = INCBIN_U8("graphics/pokemon/liepard/icon.4bpp"); -const u8 gMonIcon_Pansage[] = INCBIN_U8("graphics/pokemon/pansage/icon.4bpp"); -const u8 gMonIcon_Simisage[] = INCBIN_U8("graphics/pokemon/simisage/icon.4bpp"); -const u8 gMonIcon_Pansear[] = INCBIN_U8("graphics/pokemon/pansear/icon.4bpp"); -const u8 gMonIcon_Simisear[] = INCBIN_U8("graphics/pokemon/simisear/icon.4bpp"); -const u8 gMonIcon_Panpour[] = INCBIN_U8("graphics/pokemon/panpour/icon.4bpp"); -const u8 gMonIcon_Simipour[] = INCBIN_U8("graphics/pokemon/simipour/icon.4bpp"); -const u8 gMonIcon_Munna[] = INCBIN_U8("graphics/pokemon/munna/icon.4bpp"); -const u8 gMonIcon_Musharna[] = INCBIN_U8("graphics/pokemon/musharna/icon.4bpp"); -const u8 gMonIcon_Pidove[] = INCBIN_U8("graphics/pokemon/pidove/icon.4bpp"); -const u8 gMonIcon_Tranquill[] = INCBIN_U8("graphics/pokemon/tranquill/icon.4bpp"); -const u8 gMonIcon_Unfezant[] = INCBIN_U8("graphics/pokemon/unfezant/icon.4bpp"); -const u8 gMonIcon_UnfezantF[] = INCBIN_U8("graphics/pokemon/unfezant/iconf.4bpp"); -const u8 gMonIcon_Blitzle[] = INCBIN_U8("graphics/pokemon/blitzle/icon.4bpp"); -const u8 gMonIcon_Zebstrika[] = INCBIN_U8("graphics/pokemon/zebstrika/icon.4bpp"); -const u8 gMonIcon_Roggenrola[] = INCBIN_U8("graphics/pokemon/roggenrola/icon.4bpp"); -const u8 gMonIcon_Boldore[] = INCBIN_U8("graphics/pokemon/boldore/icon.4bpp"); -const u8 gMonIcon_Gigalith[] = INCBIN_U8("graphics/pokemon/gigalith/icon.4bpp"); -const u8 gMonIcon_Woobat[] = INCBIN_U8("graphics/pokemon/woobat/icon.4bpp"); -const u8 gMonIcon_Swoobat[] = INCBIN_U8("graphics/pokemon/swoobat/icon.4bpp"); -const u8 gMonIcon_Drilbur[] = INCBIN_U8("graphics/pokemon/drilbur/icon.4bpp"); -const u8 gMonIcon_Excadrill[] = INCBIN_U8("graphics/pokemon/excadrill/icon.4bpp"); -const u8 gMonIcon_Audino[] = INCBIN_U8("graphics/pokemon/audino/icon.4bpp"); -const u8 gMonIcon_Timburr[] = INCBIN_U8("graphics/pokemon/timburr/icon.4bpp"); -const u8 gMonIcon_Gurdurr[] = INCBIN_U8("graphics/pokemon/gurdurr/icon.4bpp"); -const u8 gMonIcon_Conkeldurr[] = INCBIN_U8("graphics/pokemon/conkeldurr/icon.4bpp"); -const u8 gMonIcon_Tympole[] = INCBIN_U8("graphics/pokemon/tympole/icon.4bpp"); -const u8 gMonIcon_Palpitoad[] = INCBIN_U8("graphics/pokemon/palpitoad/icon.4bpp"); -const u8 gMonIcon_Seismitoad[] = INCBIN_U8("graphics/pokemon/seismitoad/icon.4bpp"); -const u8 gMonIcon_Throh[] = INCBIN_U8("graphics/pokemon/throh/icon.4bpp"); -const u8 gMonIcon_Sawk[] = INCBIN_U8("graphics/pokemon/sawk/icon.4bpp"); -const u8 gMonIcon_Sewaddle[] = INCBIN_U8("graphics/pokemon/sewaddle/icon.4bpp"); -const u8 gMonIcon_Swadloon[] = INCBIN_U8("graphics/pokemon/swadloon/icon.4bpp"); -const u8 gMonIcon_Leavanny[] = INCBIN_U8("graphics/pokemon/leavanny/icon.4bpp"); -const u8 gMonIcon_Venipede[] = INCBIN_U8("graphics/pokemon/venipede/icon.4bpp"); -const u8 gMonIcon_Whirlipede[] = INCBIN_U8("graphics/pokemon/whirlipede/icon.4bpp"); -const u8 gMonIcon_Scolipede[] = INCBIN_U8("graphics/pokemon/scolipede/icon.4bpp"); -const u8 gMonIcon_Cottonee[] = INCBIN_U8("graphics/pokemon/cottonee/icon.4bpp"); -const u8 gMonIcon_Whimsicott[] = INCBIN_U8("graphics/pokemon/whimsicott/icon.4bpp"); -const u8 gMonIcon_Petilil[] = INCBIN_U8("graphics/pokemon/petilil/icon.4bpp"); -const u8 gMonIcon_Lilligant[] = INCBIN_U8("graphics/pokemon/lilligant/icon.4bpp"); -const u8 gMonIcon_BasculinRedStriped[] = INCBIN_U8("graphics/pokemon/basculin/icon.4bpp"); -const u8 gMonIcon_Sandile[] = INCBIN_U8("graphics/pokemon/sandile/icon.4bpp"); -const u8 gMonIcon_Krokorok[] = INCBIN_U8("graphics/pokemon/krokorok/icon.4bpp"); -const u8 gMonIcon_Krookodile[] = INCBIN_U8("graphics/pokemon/krookodile/icon.4bpp"); -const u8 gMonIcon_Darumaka[] = INCBIN_U8("graphics/pokemon/darumaka/icon.4bpp"); -const u8 gMonIcon_DarmanitanStandardMode[] = INCBIN_U8("graphics/pokemon/darmanitan/icon.4bpp"); -const u8 gMonIcon_Maractus[] = INCBIN_U8("graphics/pokemon/maractus/icon.4bpp"); -const u8 gMonIcon_Dwebble[] = INCBIN_U8("graphics/pokemon/dwebble/icon.4bpp"); -const u8 gMonIcon_Crustle[] = INCBIN_U8("graphics/pokemon/crustle/icon.4bpp"); -const u8 gMonIcon_Scraggy[] = INCBIN_U8("graphics/pokemon/scraggy/icon.4bpp"); -const u8 gMonIcon_Scrafty[] = INCBIN_U8("graphics/pokemon/scrafty/icon.4bpp"); -const u8 gMonIcon_Sigilyph[] = INCBIN_U8("graphics/pokemon/sigilyph/icon.4bpp"); -const u8 gMonIcon_Yamask[] = INCBIN_U8("graphics/pokemon/yamask/icon.4bpp"); -const u8 gMonIcon_Cofagrigus[] = INCBIN_U8("graphics/pokemon/cofagrigus/icon.4bpp"); -const u8 gMonIcon_Tirtouga[] = INCBIN_U8("graphics/pokemon/tirtouga/icon.4bpp"); -const u8 gMonIcon_Carracosta[] = INCBIN_U8("graphics/pokemon/carracosta/icon.4bpp"); -const u8 gMonIcon_Archen[] = INCBIN_U8("graphics/pokemon/archen/icon.4bpp"); -const u8 gMonIcon_Archeops[] = INCBIN_U8("graphics/pokemon/archeops/icon.4bpp"); -const u8 gMonIcon_Trubbish[] = INCBIN_U8("graphics/pokemon/trubbish/icon.4bpp"); -const u8 gMonIcon_Garbodor[] = INCBIN_U8("graphics/pokemon/garbodor/icon.4bpp"); -const u8 gMonIcon_Zorua[] = INCBIN_U8("graphics/pokemon/zorua/icon.4bpp"); -const u8 gMonIcon_Zoroark[] = INCBIN_U8("graphics/pokemon/zoroark/icon.4bpp"); -const u8 gMonIcon_Minccino[] = INCBIN_U8("graphics/pokemon/minccino/icon.4bpp"); -const u8 gMonIcon_Cinccino[] = INCBIN_U8("graphics/pokemon/cinccino/icon.4bpp"); -const u8 gMonIcon_Gothita[] = INCBIN_U8("graphics/pokemon/gothita/icon.4bpp"); -const u8 gMonIcon_Gothorita[] = INCBIN_U8("graphics/pokemon/gothorita/icon.4bpp"); -const u8 gMonIcon_Gothitelle[] = INCBIN_U8("graphics/pokemon/gothitelle/icon.4bpp"); -const u8 gMonIcon_Solosis[] = INCBIN_U8("graphics/pokemon/solosis/icon.4bpp"); -const u8 gMonIcon_Duosion[] = INCBIN_U8("graphics/pokemon/duosion/icon.4bpp"); -const u8 gMonIcon_Reuniclus[] = INCBIN_U8("graphics/pokemon/reuniclus/icon.4bpp"); -const u8 gMonIcon_Ducklett[] = INCBIN_U8("graphics/pokemon/ducklett/icon.4bpp"); -const u8 gMonIcon_Swanna[] = INCBIN_U8("graphics/pokemon/swanna/icon.4bpp"); -const u8 gMonIcon_Vanillite[] = INCBIN_U8("graphics/pokemon/vanillite/icon.4bpp"); -const u8 gMonIcon_Vanillish[] = INCBIN_U8("graphics/pokemon/vanillish/icon.4bpp"); -const u8 gMonIcon_Vanilluxe[] = INCBIN_U8("graphics/pokemon/vanilluxe/icon.4bpp"); -const u8 gMonIcon_DeerlingSpring[] = INCBIN_U8("graphics/pokemon/deerling/icon.4bpp"); -const u8 gMonIcon_SawsbuckSpring[] = INCBIN_U8("graphics/pokemon/sawsbuck/icon.4bpp"); -const u8 gMonIcon_Emolga[] = INCBIN_U8("graphics/pokemon/emolga/icon.4bpp"); -const u8 gMonIcon_Karrablast[] = INCBIN_U8("graphics/pokemon/karrablast/icon.4bpp"); -const u8 gMonIcon_Escavalier[] = INCBIN_U8("graphics/pokemon/escavalier/icon.4bpp"); -const u8 gMonIcon_Foongus[] = INCBIN_U8("graphics/pokemon/foongus/icon.4bpp"); -const u8 gMonIcon_Amoonguss[] = INCBIN_U8("graphics/pokemon/amoonguss/icon.4bpp"); -const u8 gMonIcon_Frillish[] = INCBIN_U8("graphics/pokemon/frillish/icon.4bpp"); -const u8 gMonIcon_FrillishF[] = INCBIN_U8("graphics/pokemon/frillish/iconf.4bpp"); -const u8 gMonIcon_Jellicent[] = INCBIN_U8("graphics/pokemon/jellicent/icon.4bpp"); -const u8 gMonIcon_JellicentF[] = INCBIN_U8("graphics/pokemon/jellicent/iconf.4bpp"); -const u8 gMonIcon_Alomomola[] = INCBIN_U8("graphics/pokemon/alomomola/icon.4bpp"); -const u8 gMonIcon_Joltik[] = INCBIN_U8("graphics/pokemon/joltik/icon.4bpp"); -const u8 gMonIcon_Galvantula[] = INCBIN_U8("graphics/pokemon/galvantula/icon.4bpp"); -const u8 gMonIcon_Ferroseed[] = INCBIN_U8("graphics/pokemon/ferroseed/icon.4bpp"); -const u8 gMonIcon_Ferrothorn[] = INCBIN_U8("graphics/pokemon/ferrothorn/icon.4bpp"); -const u8 gMonIcon_Klink[] = INCBIN_U8("graphics/pokemon/klink/icon.4bpp"); -const u8 gMonIcon_Klang[] = INCBIN_U8("graphics/pokemon/klang/icon.4bpp"); -const u8 gMonIcon_Klinklang[] = INCBIN_U8("graphics/pokemon/klinklang/icon.4bpp"); -const u8 gMonIcon_Tynamo[] = INCBIN_U8("graphics/pokemon/tynamo/icon.4bpp"); -const u8 gMonIcon_Eelektrik[] = INCBIN_U8("graphics/pokemon/eelektrik/icon.4bpp"); -const u8 gMonIcon_Eelektross[] = INCBIN_U8("graphics/pokemon/eelektross/icon.4bpp"); -const u8 gMonIcon_Elgyem[] = INCBIN_U8("graphics/pokemon/elgyem/icon.4bpp"); -const u8 gMonIcon_Beheeyem[] = INCBIN_U8("graphics/pokemon/beheeyem/icon.4bpp"); -const u8 gMonIcon_Litwick[] = INCBIN_U8("graphics/pokemon/litwick/icon.4bpp"); -const u8 gMonIcon_Lampent[] = INCBIN_U8("graphics/pokemon/lampent/icon.4bpp"); -const u8 gMonIcon_Chandelure[] = INCBIN_U8("graphics/pokemon/chandelure/icon.4bpp"); -const u8 gMonIcon_Axew[] = INCBIN_U8("graphics/pokemon/axew/icon.4bpp"); -const u8 gMonIcon_Fraxure[] = INCBIN_U8("graphics/pokemon/fraxure/icon.4bpp"); -const u8 gMonIcon_Haxorus[] = INCBIN_U8("graphics/pokemon/haxorus/icon.4bpp"); -const u8 gMonIcon_Cubchoo[] = INCBIN_U8("graphics/pokemon/cubchoo/icon.4bpp"); -const u8 gMonIcon_Beartic[] = INCBIN_U8("graphics/pokemon/beartic/icon.4bpp"); -const u8 gMonIcon_Cryogonal[] = INCBIN_U8("graphics/pokemon/cryogonal/icon.4bpp"); -const u8 gMonIcon_Shelmet[] = INCBIN_U8("graphics/pokemon/shelmet/icon.4bpp"); -const u8 gMonIcon_Accelgor[] = INCBIN_U8("graphics/pokemon/accelgor/icon.4bpp"); -const u8 gMonIcon_Stunfisk[] = INCBIN_U8("graphics/pokemon/stunfisk/icon.4bpp"); -const u8 gMonIcon_Mienfoo[] = INCBIN_U8("graphics/pokemon/mienfoo/icon.4bpp"); -const u8 gMonIcon_Mienshao[] = INCBIN_U8("graphics/pokemon/mienshao/icon.4bpp"); -const u8 gMonIcon_Druddigon[] = INCBIN_U8("graphics/pokemon/druddigon/icon.4bpp"); -const u8 gMonIcon_Golett[] = INCBIN_U8("graphics/pokemon/golett/icon.4bpp"); -const u8 gMonIcon_Golurk[] = INCBIN_U8("graphics/pokemon/golurk/icon.4bpp"); -const u8 gMonIcon_Pawniard[] = INCBIN_U8("graphics/pokemon/pawniard/icon.4bpp"); -const u8 gMonIcon_Bisharp[] = INCBIN_U8("graphics/pokemon/bisharp/icon.4bpp"); -const u8 gMonIcon_Bouffalant[] = INCBIN_U8("graphics/pokemon/bouffalant/icon.4bpp"); -const u8 gMonIcon_Rufflet[] = INCBIN_U8("graphics/pokemon/rufflet/icon.4bpp"); -const u8 gMonIcon_Braviary[] = INCBIN_U8("graphics/pokemon/braviary/icon.4bpp"); -const u8 gMonIcon_Vullaby[] = INCBIN_U8("graphics/pokemon/vullaby/icon.4bpp"); -const u8 gMonIcon_Mandibuzz[] = INCBIN_U8("graphics/pokemon/mandibuzz/icon.4bpp"); -const u8 gMonIcon_Heatmor[] = INCBIN_U8("graphics/pokemon/heatmor/icon.4bpp"); -const u8 gMonIcon_Durant[] = INCBIN_U8("graphics/pokemon/durant/icon.4bpp"); -const u8 gMonIcon_Deino[] = INCBIN_U8("graphics/pokemon/deino/icon.4bpp"); -const u8 gMonIcon_Zweilous[] = INCBIN_U8("graphics/pokemon/zweilous/icon.4bpp"); -const u8 gMonIcon_Hydreigon[] = INCBIN_U8("graphics/pokemon/hydreigon/icon.4bpp"); -const u8 gMonIcon_Larvesta[] = INCBIN_U8("graphics/pokemon/larvesta/icon.4bpp"); -const u8 gMonIcon_Volcarona[] = INCBIN_U8("graphics/pokemon/volcarona/icon.4bpp"); -const u8 gMonIcon_Cobalion[] = INCBIN_U8("graphics/pokemon/cobalion/icon.4bpp"); -const u8 gMonIcon_Terrakion[] = INCBIN_U8("graphics/pokemon/terrakion/icon.4bpp"); -const u8 gMonIcon_Virizion[] = INCBIN_U8("graphics/pokemon/virizion/icon.4bpp"); -const u8 gMonIcon_TornadusIncarnate[] = INCBIN_U8("graphics/pokemon/tornadus/icon.4bpp"); -const u8 gMonIcon_ThundurusIncarnate[] = INCBIN_U8("graphics/pokemon/thundurus/icon.4bpp"); -const u8 gMonIcon_Reshiram[] = INCBIN_U8("graphics/pokemon/reshiram/icon.4bpp"); -const u8 gMonIcon_Zekrom[] = INCBIN_U8("graphics/pokemon/zekrom/icon.4bpp"); -const u8 gMonIcon_LandorusIncarnate[] = INCBIN_U8("graphics/pokemon/landorus/icon.4bpp"); -const u8 gMonIcon_Kyurem[] = INCBIN_U8("graphics/pokemon/kyurem/icon.4bpp"); -const u8 gMonIcon_KeldeoOrdinary[] = INCBIN_U8("graphics/pokemon/keldeo/icon.4bpp"); -const u8 gMonIcon_MeloettaAria[] = INCBIN_U8("graphics/pokemon/meloetta/icon.4bpp"); -const u8 gMonIcon_Genesect[] = INCBIN_U8("graphics/pokemon/genesect/icon.4bpp"); -#endif -#if P_GEN_6_POKEMON == TRUE -const u8 gMonIcon_Chespin[] = INCBIN_U8("graphics/pokemon/chespin/icon.4bpp"); -const u8 gMonIcon_Quilladin[] = INCBIN_U8("graphics/pokemon/quilladin/icon.4bpp"); -const u8 gMonIcon_Chesnaught[] = INCBIN_U8("graphics/pokemon/chesnaught/icon.4bpp"); -const u8 gMonIcon_Fennekin[] = INCBIN_U8("graphics/pokemon/fennekin/icon.4bpp"); -const u8 gMonIcon_Braixen[] = INCBIN_U8("graphics/pokemon/braixen/icon.4bpp"); -const u8 gMonIcon_Delphox[] = INCBIN_U8("graphics/pokemon/delphox/icon.4bpp"); -const u8 gMonIcon_Froakie[] = INCBIN_U8("graphics/pokemon/froakie/icon.4bpp"); -const u8 gMonIcon_Frogadier[] = INCBIN_U8("graphics/pokemon/frogadier/icon.4bpp"); -const u8 gMonIcon_Greninja[] = INCBIN_U8("graphics/pokemon/greninja/icon.4bpp"); -const u8 gMonIcon_Bunnelby[] = INCBIN_U8("graphics/pokemon/bunnelby/icon.4bpp"); -const u8 gMonIcon_Diggersby[] = INCBIN_U8("graphics/pokemon/diggersby/icon.4bpp"); -const u8 gMonIcon_Fletchling[] = INCBIN_U8("graphics/pokemon/fletchling/icon.4bpp"); -const u8 gMonIcon_Fletchinder[] = INCBIN_U8("graphics/pokemon/fletchinder/icon.4bpp"); -const u8 gMonIcon_Talonflame[] = INCBIN_U8("graphics/pokemon/talonflame/icon.4bpp"); -const u8 gMonIcon_Scatterbug[] = INCBIN_U8("graphics/pokemon/scatterbug/icon.4bpp"); -const u8 gMonIcon_Spewpa[] = INCBIN_U8("graphics/pokemon/spewpa/icon.4bpp"); -const u8 gMonIcon_VivillonIcySnow[] = INCBIN_U8("graphics/pokemon/vivillon/meadow/icon.4bpp"); -const u8 gMonIcon_Litleo[] = INCBIN_U8("graphics/pokemon/litleo/icon.4bpp"); -const u8 gMonIcon_Pyroar[] = INCBIN_U8("graphics/pokemon/pyroar/icon.4bpp"); -const u8 gMonIcon_PyroarF[] = INCBIN_U8("graphics/pokemon/pyroar/iconf.4bpp"); -const u8 gMonIcon_FlabebeRedFlower[] = INCBIN_U8("graphics/pokemon/flabebe/icon.4bpp"); -const u8 gMonIcon_FloetteRedFlower[] = INCBIN_U8("graphics/pokemon/floette/icon.4bpp"); -const u8 gMonIcon_FlorgesRedFlower[] = INCBIN_U8("graphics/pokemon/florges/icon.4bpp"); -const u8 gMonIcon_Skiddo[] = INCBIN_U8("graphics/pokemon/skiddo/icon.4bpp"); -const u8 gMonIcon_Gogoat[] = INCBIN_U8("graphics/pokemon/gogoat/icon.4bpp"); -const u8 gMonIcon_Pancham[] = INCBIN_U8("graphics/pokemon/pancham/icon.4bpp"); -const u8 gMonIcon_Pangoro[] = INCBIN_U8("graphics/pokemon/pangoro/icon.4bpp"); -const u8 gMonIcon_FurfrouNatural[] = INCBIN_U8("graphics/pokemon/furfrou/icon.4bpp"); -const u8 gMonIcon_Espurr[] = INCBIN_U8("graphics/pokemon/espurr/icon.4bpp"); -const u8 gMonIcon_MeowsticMale[] = INCBIN_U8("graphics/pokemon/meowstic/icon.4bpp"); -const u8 gMonIcon_Honedge[] = INCBIN_U8("graphics/pokemon/honedge/icon.4bpp"); -const u8 gMonIcon_Doublade[] = INCBIN_U8("graphics/pokemon/doublade/icon.4bpp"); -const u8 gMonIcon_AegislashShield[] = INCBIN_U8("graphics/pokemon/aegislash/icon.4bpp"); -const u8 gMonIcon_Spritzee[] = INCBIN_U8("graphics/pokemon/spritzee/icon.4bpp"); -const u8 gMonIcon_Aromatisse[] = INCBIN_U8("graphics/pokemon/aromatisse/icon.4bpp"); -const u8 gMonIcon_Swirlix[] = INCBIN_U8("graphics/pokemon/swirlix/icon.4bpp"); -const u8 gMonIcon_Slurpuff[] = INCBIN_U8("graphics/pokemon/slurpuff/icon.4bpp"); -const u8 gMonIcon_Inkay[] = INCBIN_U8("graphics/pokemon/inkay/icon.4bpp"); -const u8 gMonIcon_Malamar[] = INCBIN_U8("graphics/pokemon/malamar/icon.4bpp"); -const u8 gMonIcon_Binacle[] = INCBIN_U8("graphics/pokemon/binacle/icon.4bpp"); -const u8 gMonIcon_Barbaracle[] = INCBIN_U8("graphics/pokemon/barbaracle/icon.4bpp"); -const u8 gMonIcon_Skrelp[] = INCBIN_U8("graphics/pokemon/skrelp/icon.4bpp"); -const u8 gMonIcon_Dragalge[] = INCBIN_U8("graphics/pokemon/dragalge/icon.4bpp"); -const u8 gMonIcon_Clauncher[] = INCBIN_U8("graphics/pokemon/clauncher/icon.4bpp"); -const u8 gMonIcon_Clawitzer[] = INCBIN_U8("graphics/pokemon/clawitzer/icon.4bpp"); -const u8 gMonIcon_Helioptile[] = INCBIN_U8("graphics/pokemon/helioptile/icon.4bpp"); -const u8 gMonIcon_Heliolisk[] = INCBIN_U8("graphics/pokemon/heliolisk/icon.4bpp"); -const u8 gMonIcon_Tyrunt[] = INCBIN_U8("graphics/pokemon/tyrunt/icon.4bpp"); -const u8 gMonIcon_Tyrantrum[] = INCBIN_U8("graphics/pokemon/tyrantrum/icon.4bpp"); -const u8 gMonIcon_Amaura[] = INCBIN_U8("graphics/pokemon/amaura/icon.4bpp"); -const u8 gMonIcon_Aurorus[] = INCBIN_U8("graphics/pokemon/aurorus/icon.4bpp"); -const u8 gMonIcon_Sylveon[] = INCBIN_U8("graphics/pokemon/sylveon/icon.4bpp"); -const u8 gMonIcon_Hawlucha[] = INCBIN_U8("graphics/pokemon/hawlucha/icon.4bpp"); -const u8 gMonIcon_Dedenne[] = INCBIN_U8("graphics/pokemon/dedenne/icon.4bpp"); -const u8 gMonIcon_Carbink[] = INCBIN_U8("graphics/pokemon/carbink/icon.4bpp"); -const u8 gMonIcon_Goomy[] = INCBIN_U8("graphics/pokemon/goomy/icon.4bpp"); -const u8 gMonIcon_Sliggoo[] = INCBIN_U8("graphics/pokemon/sliggoo/icon.4bpp"); -const u8 gMonIcon_Goodra[] = INCBIN_U8("graphics/pokemon/goodra/icon.4bpp"); -const u8 gMonIcon_Klefki[] = INCBIN_U8("graphics/pokemon/klefki/icon.4bpp"); -const u8 gMonIcon_Phantump[] = INCBIN_U8("graphics/pokemon/phantump/icon.4bpp"); -const u8 gMonIcon_Trevenant[] = INCBIN_U8("graphics/pokemon/trevenant/icon.4bpp"); -const u8 gMonIcon_Pumpkaboo[] = INCBIN_U8("graphics/pokemon/pumpkaboo/icon.4bpp"); -const u8 gMonIcon_Gourgeist[] = INCBIN_U8("graphics/pokemon/gourgeist/icon.4bpp"); -const u8 gMonIcon_Bergmite[] = INCBIN_U8("graphics/pokemon/bergmite/icon.4bpp"); -const u8 gMonIcon_Avalugg[] = INCBIN_U8("graphics/pokemon/avalugg/icon.4bpp"); -const u8 gMonIcon_Noibat[] = INCBIN_U8("graphics/pokemon/noibat/icon.4bpp"); -const u8 gMonIcon_Noivern[] = INCBIN_U8("graphics/pokemon/noivern/icon.4bpp"); -const u8 gMonIcon_XerneasNeutral[] = INCBIN_U8("graphics/pokemon/xerneas/icon.4bpp"); -const u8 gMonIcon_Yveltal[] = INCBIN_U8("graphics/pokemon/yveltal/icon.4bpp"); -const u8 gMonIcon_Zygarde50[] = INCBIN_U8("graphics/pokemon/zygarde/icon.4bpp"); -const u8 gMonIcon_Diancie[] = INCBIN_U8("graphics/pokemon/diancie/icon.4bpp"); -const u8 gMonIcon_HoopaConfined[] = INCBIN_U8("graphics/pokemon/hoopa/icon.4bpp"); -const u8 gMonIcon_Volcanion[] = INCBIN_U8("graphics/pokemon/volcanion/icon.4bpp"); -#endif -#if P_GEN_7_POKEMON == TRUE -const u8 gMonIcon_Rowlet[] = INCBIN_U8("graphics/pokemon/rowlet/icon.4bpp"); -const u8 gMonIcon_Dartrix[] = INCBIN_U8("graphics/pokemon/dartrix/icon.4bpp"); -const u8 gMonIcon_Decidueye[] = INCBIN_U8("graphics/pokemon/decidueye/icon.4bpp"); -const u8 gMonIcon_Litten[] = INCBIN_U8("graphics/pokemon/litten/icon.4bpp"); -const u8 gMonIcon_Torracat[] = INCBIN_U8("graphics/pokemon/torracat/icon.4bpp"); -const u8 gMonIcon_Incineroar[] = INCBIN_U8("graphics/pokemon/incineroar/icon.4bpp"); -const u8 gMonIcon_Popplio[] = INCBIN_U8("graphics/pokemon/popplio/icon.4bpp"); -const u8 gMonIcon_Brionne[] = INCBIN_U8("graphics/pokemon/brionne/icon.4bpp"); -const u8 gMonIcon_Primarina[] = INCBIN_U8("graphics/pokemon/primarina/icon.4bpp"); -const u8 gMonIcon_Pikipek[] = INCBIN_U8("graphics/pokemon/pikipek/icon.4bpp"); -const u8 gMonIcon_Trumbeak[] = INCBIN_U8("graphics/pokemon/trumbeak/icon.4bpp"); -const u8 gMonIcon_Toucannon[] = INCBIN_U8("graphics/pokemon/toucannon/icon.4bpp"); -const u8 gMonIcon_Yungoos[] = INCBIN_U8("graphics/pokemon/yungoos/icon.4bpp"); -const u8 gMonIcon_Gumshoos[] = INCBIN_U8("graphics/pokemon/gumshoos/icon.4bpp"); -const u8 gMonIcon_Grubbin[] = INCBIN_U8("graphics/pokemon/grubbin/icon.4bpp"); -const u8 gMonIcon_Charjabug[] = INCBIN_U8("graphics/pokemon/charjabug/icon.4bpp"); -const u8 gMonIcon_Vikavolt[] = INCBIN_U8("graphics/pokemon/vikavolt/icon.4bpp"); -const u8 gMonIcon_Crabrawler[] = INCBIN_U8("graphics/pokemon/crabrawler/icon.4bpp"); -const u8 gMonIcon_Crabominable[] = INCBIN_U8("graphics/pokemon/crabominable/icon.4bpp"); -const u8 gMonIcon_OricorioBaile[] = INCBIN_U8("graphics/pokemon/oricorio/icon.4bpp"); -const u8 gMonIcon_Cutiefly[] = INCBIN_U8("graphics/pokemon/cutiefly/icon.4bpp"); -const u8 gMonIcon_Ribombee[] = INCBIN_U8("graphics/pokemon/ribombee/icon.4bpp"); -const u8 gMonIcon_Rockruff[] = INCBIN_U8("graphics/pokemon/rockruff/icon.4bpp"); -const u8 gMonIcon_LycanrocMidday[] = INCBIN_U8("graphics/pokemon/lycanroc/icon.4bpp"); -const u8 gMonIcon_WishiwashiSolo[] = INCBIN_U8("graphics/pokemon/wishiwashi/icon.4bpp"); -const u8 gMonIcon_Mareanie[] = INCBIN_U8("graphics/pokemon/mareanie/icon.4bpp"); -const u8 gMonIcon_Toxapex[] = INCBIN_U8("graphics/pokemon/toxapex/icon.4bpp"); -const u8 gMonIcon_Mudbray[] = INCBIN_U8("graphics/pokemon/mudbray/icon.4bpp"); -const u8 gMonIcon_Mudsdale[] = INCBIN_U8("graphics/pokemon/mudsdale/icon.4bpp"); -const u8 gMonIcon_Dewpider[] = INCBIN_U8("graphics/pokemon/dewpider/icon.4bpp"); -const u8 gMonIcon_Araquanid[] = INCBIN_U8("graphics/pokemon/araquanid/icon.4bpp"); -const u8 gMonIcon_Fomantis[] = INCBIN_U8("graphics/pokemon/fomantis/icon.4bpp"); -const u8 gMonIcon_Lurantis[] = INCBIN_U8("graphics/pokemon/lurantis/icon.4bpp"); -const u8 gMonIcon_Morelull[] = INCBIN_U8("graphics/pokemon/morelull/icon.4bpp"); -const u8 gMonIcon_Shiinotic[] = INCBIN_U8("graphics/pokemon/shiinotic/icon.4bpp"); -const u8 gMonIcon_Salandit[] = INCBIN_U8("graphics/pokemon/salandit/icon.4bpp"); -const u8 gMonIcon_Salazzle[] = INCBIN_U8("graphics/pokemon/salazzle/icon.4bpp"); -const u8 gMonIcon_Stufful[] = INCBIN_U8("graphics/pokemon/stufful/icon.4bpp"); -const u8 gMonIcon_Bewear[] = INCBIN_U8("graphics/pokemon/bewear/icon.4bpp"); -const u8 gMonIcon_Bounsweet[] = INCBIN_U8("graphics/pokemon/bounsweet/icon.4bpp"); -const u8 gMonIcon_Steenee[] = INCBIN_U8("graphics/pokemon/steenee/icon.4bpp"); -const u8 gMonIcon_Tsareena[] = INCBIN_U8("graphics/pokemon/tsareena/icon.4bpp"); -const u8 gMonIcon_Comfey[] = INCBIN_U8("graphics/pokemon/comfey/icon.4bpp"); -const u8 gMonIcon_Oranguru[] = INCBIN_U8("graphics/pokemon/oranguru/icon.4bpp"); -const u8 gMonIcon_Passimian[] = INCBIN_U8("graphics/pokemon/passimian/icon.4bpp"); -const u8 gMonIcon_Wimpod[] = INCBIN_U8("graphics/pokemon/wimpod/icon.4bpp"); -const u8 gMonIcon_Golisopod[] = INCBIN_U8("graphics/pokemon/golisopod/icon.4bpp"); -const u8 gMonIcon_Sandygast[] = INCBIN_U8("graphics/pokemon/sandygast/icon.4bpp"); -const u8 gMonIcon_Palossand[] = INCBIN_U8("graphics/pokemon/palossand/icon.4bpp"); -const u8 gMonIcon_Pyukumuku[] = INCBIN_U8("graphics/pokemon/pyukumuku/icon.4bpp"); -const u8 gMonIcon_TypeNull[] = INCBIN_U8("graphics/pokemon/type_null/icon.4bpp"); -const u8 gMonIcon_Silvally[] = INCBIN_U8("graphics/pokemon/silvally/icon.4bpp"); -const u8 gMonIcon_MiniorMeteor[] = INCBIN_U8("graphics/pokemon/minior/icon.4bpp"); -const u8 gMonIcon_Komala[] = INCBIN_U8("graphics/pokemon/komala/icon.4bpp"); -const u8 gMonIcon_Turtonator[] = INCBIN_U8("graphics/pokemon/turtonator/icon.4bpp"); -const u8 gMonIcon_Togedemaru[] = INCBIN_U8("graphics/pokemon/togedemaru/icon.4bpp"); -const u8 gMonIcon_MimikyuDisguised[] = INCBIN_U8("graphics/pokemon/mimikyu/icon.4bpp"); -const u8 gMonIcon_Bruxish[] = INCBIN_U8("graphics/pokemon/bruxish/icon.4bpp"); -const u8 gMonIcon_Drampa[] = INCBIN_U8("graphics/pokemon/drampa/icon.4bpp"); -const u8 gMonIcon_Dhelmise[] = INCBIN_U8("graphics/pokemon/dhelmise/icon.4bpp"); -const u8 gMonIcon_JangmoO[] = INCBIN_U8("graphics/pokemon/jangmo_o/icon.4bpp"); -const u8 gMonIcon_HakamoO[] = INCBIN_U8("graphics/pokemon/hakamo_o/icon.4bpp"); -const u8 gMonIcon_KommoO[] = INCBIN_U8("graphics/pokemon/kommo_o/icon.4bpp"); -const u8 gMonIcon_TapuKoko[] = INCBIN_U8("graphics/pokemon/tapu_koko/icon.4bpp"); -const u8 gMonIcon_TapuLele[] = INCBIN_U8("graphics/pokemon/tapu_lele/icon.4bpp"); -const u8 gMonIcon_TapuBulu[] = INCBIN_U8("graphics/pokemon/tapu_bulu/icon.4bpp"); -const u8 gMonIcon_TapuFini[] = INCBIN_U8("graphics/pokemon/tapu_fini/icon.4bpp"); -const u8 gMonIcon_Cosmog[] = INCBIN_U8("graphics/pokemon/cosmog/icon.4bpp"); -const u8 gMonIcon_Cosmoem[] = INCBIN_U8("graphics/pokemon/cosmoem/icon.4bpp"); -const u8 gMonIcon_Solgaleo[] = INCBIN_U8("graphics/pokemon/solgaleo/icon.4bpp"); -const u8 gMonIcon_Lunala[] = INCBIN_U8("graphics/pokemon/lunala/icon.4bpp"); -const u8 gMonIcon_Nihilego[] = INCBIN_U8("graphics/pokemon/nihilego/icon.4bpp"); -const u8 gMonIcon_Buzzwole[] = INCBIN_U8("graphics/pokemon/buzzwole/icon.4bpp"); -const u8 gMonIcon_Pheromosa[] = INCBIN_U8("graphics/pokemon/pheromosa/icon.4bpp"); -const u8 gMonIcon_Xurkitree[] = INCBIN_U8("graphics/pokemon/xurkitree/icon.4bpp"); -const u8 gMonIcon_Celesteela[] = INCBIN_U8("graphics/pokemon/celesteela/icon.4bpp"); -const u8 gMonIcon_Kartana[] = INCBIN_U8("graphics/pokemon/kartana/icon.4bpp"); -const u8 gMonIcon_Guzzlord[] = INCBIN_U8("graphics/pokemon/guzzlord/icon.4bpp"); -const u8 gMonIcon_Necrozma[] = INCBIN_U8("graphics/pokemon/necrozma/icon.4bpp"); -const u8 gMonIcon_Magearna[] = INCBIN_U8("graphics/pokemon/magearna/icon.4bpp"); -const u8 gMonIcon_Marshadow[] = INCBIN_U8("graphics/pokemon/marshadow/icon.4bpp"); -const u8 gMonIcon_Poipole[] = INCBIN_U8("graphics/pokemon/poipole/icon.4bpp"); -const u8 gMonIcon_Naganadel[] = INCBIN_U8("graphics/pokemon/naganadel/icon.4bpp"); -const u8 gMonIcon_Stakataka[] = INCBIN_U8("graphics/pokemon/stakataka/icon.4bpp"); -const u8 gMonIcon_Blacephalon[] = INCBIN_U8("graphics/pokemon/blacephalon/icon.4bpp"); -const u8 gMonIcon_Zeraora[] = INCBIN_U8("graphics/pokemon/zeraora/icon.4bpp"); -const u8 gMonIcon_Meltan[] = INCBIN_U8("graphics/pokemon/meltan/icon.4bpp"); -const u8 gMonIcon_Melmetal[] = INCBIN_U8("graphics/pokemon/melmetal/icon.4bpp"); -#endif -#if P_GEN_8_POKEMON == TRUE -const u8 gMonIcon_Grookey[] = INCBIN_U8("graphics/pokemon/grookey/icon.4bpp"); -const u8 gMonIcon_Thwackey[] = INCBIN_U8("graphics/pokemon/thwackey/icon.4bpp"); -const u8 gMonIcon_Rillaboom[] = INCBIN_U8("graphics/pokemon/rillaboom/icon.4bpp"); -const u8 gMonIcon_Scorbunny[] = INCBIN_U8("graphics/pokemon/scorbunny/icon.4bpp"); -const u8 gMonIcon_Raboot[] = INCBIN_U8("graphics/pokemon/raboot/icon.4bpp"); -const u8 gMonIcon_Cinderace[] = INCBIN_U8("graphics/pokemon/cinderace/icon.4bpp"); -const u8 gMonIcon_Sobble[] = INCBIN_U8("graphics/pokemon/sobble/icon.4bpp"); -const u8 gMonIcon_Drizzile[] = INCBIN_U8("graphics/pokemon/drizzile/icon.4bpp"); -const u8 gMonIcon_Inteleon[] = INCBIN_U8("graphics/pokemon/inteleon/icon.4bpp"); -const u8 gMonIcon_Skwovet[] = INCBIN_U8("graphics/pokemon/skwovet/icon.4bpp"); -const u8 gMonIcon_Greedent[] = INCBIN_U8("graphics/pokemon/greedent/icon.4bpp"); -const u8 gMonIcon_Rookidee[] = INCBIN_U8("graphics/pokemon/rookidee/icon.4bpp"); -const u8 gMonIcon_Corvisquire[] = INCBIN_U8("graphics/pokemon/corvisquire/icon.4bpp"); -const u8 gMonIcon_Corviknight[] = INCBIN_U8("graphics/pokemon/corviknight/icon.4bpp"); -const u8 gMonIcon_Blipbug[] = INCBIN_U8("graphics/pokemon/blipbug/icon.4bpp"); -const u8 gMonIcon_Dottler[] = INCBIN_U8("graphics/pokemon/dottler/icon.4bpp"); -const u8 gMonIcon_Orbeetle[] = INCBIN_U8("graphics/pokemon/orbeetle/icon.4bpp"); -const u8 gMonIcon_Nickit[] = INCBIN_U8("graphics/pokemon/nickit/icon.4bpp"); -const u8 gMonIcon_Thievul[] = INCBIN_U8("graphics/pokemon/thievul/icon.4bpp"); -const u8 gMonIcon_Gossifleur[] = INCBIN_U8("graphics/pokemon/gossifleur/icon.4bpp"); -const u8 gMonIcon_Eldegoss[] = INCBIN_U8("graphics/pokemon/eldegoss/icon.4bpp"); -const u8 gMonIcon_Wooloo[] = INCBIN_U8("graphics/pokemon/wooloo/icon.4bpp"); -const u8 gMonIcon_Dubwool[] = INCBIN_U8("graphics/pokemon/dubwool/icon.4bpp"); -const u8 gMonIcon_Chewtle[] = INCBIN_U8("graphics/pokemon/chewtle/icon.4bpp"); -const u8 gMonIcon_Drednaw[] = INCBIN_U8("graphics/pokemon/drednaw/icon.4bpp"); -const u8 gMonIcon_Yamper[] = INCBIN_U8("graphics/pokemon/yamper/icon.4bpp"); -const u8 gMonIcon_Boltund[] = INCBIN_U8("graphics/pokemon/boltund/icon.4bpp"); -const u8 gMonIcon_Rolycoly[] = INCBIN_U8("graphics/pokemon/rolycoly/icon.4bpp"); -const u8 gMonIcon_Carkol[] = INCBIN_U8("graphics/pokemon/carkol/icon.4bpp"); -const u8 gMonIcon_Coalossal[] = INCBIN_U8("graphics/pokemon/coalossal/icon.4bpp"); -const u8 gMonIcon_Applin[] = INCBIN_U8("graphics/pokemon/applin/icon.4bpp"); -const u8 gMonIcon_Flapple[] = INCBIN_U8("graphics/pokemon/flapple/icon.4bpp"); -const u8 gMonIcon_Appletun[] = INCBIN_U8("graphics/pokemon/appletun/icon.4bpp"); -const u8 gMonIcon_Silicobra[] = INCBIN_U8("graphics/pokemon/silicobra/icon.4bpp"); -const u8 gMonIcon_Sandaconda[] = INCBIN_U8("graphics/pokemon/sandaconda/icon.4bpp"); -const u8 gMonIcon_Cramorant[] = INCBIN_U8("graphics/pokemon/cramorant/icon.4bpp"); -const u8 gMonIcon_Arrokuda[] = INCBIN_U8("graphics/pokemon/arrokuda/icon.4bpp"); -const u8 gMonIcon_Barraskewda[] = INCBIN_U8("graphics/pokemon/barraskewda/icon.4bpp"); -const u8 gMonIcon_Toxel[] = INCBIN_U8("graphics/pokemon/toxel/icon.4bpp"); -const u8 gMonIcon_ToxtricityAmped[] = INCBIN_U8("graphics/pokemon/toxtricity/icon.4bpp"); -const u8 gMonIcon_Sizzlipede[] = INCBIN_U8("graphics/pokemon/sizzlipede/icon.4bpp"); -const u8 gMonIcon_Centiskorch[] = INCBIN_U8("graphics/pokemon/centiskorch/icon.4bpp"); -const u8 gMonIcon_Clobbopus[] = INCBIN_U8("graphics/pokemon/clobbopus/icon.4bpp"); -const u8 gMonIcon_Grapploct[] = INCBIN_U8("graphics/pokemon/grapploct/icon.4bpp"); -const u8 gMonIcon_Sinistea[] = INCBIN_U8("graphics/pokemon/sinistea/icon.4bpp"); -const u8 gMonIcon_Polteageist[] = INCBIN_U8("graphics/pokemon/polteageist/icon.4bpp"); -const u8 gMonIcon_Hatenna[] = INCBIN_U8("graphics/pokemon/hatenna/icon.4bpp"); -const u8 gMonIcon_Hattrem[] = INCBIN_U8("graphics/pokemon/hattrem/icon.4bpp"); -const u8 gMonIcon_Hatterene[] = INCBIN_U8("graphics/pokemon/hatterene/icon.4bpp"); -const u8 gMonIcon_Impidimp[] = INCBIN_U8("graphics/pokemon/impidimp/icon.4bpp"); -const u8 gMonIcon_Morgrem[] = INCBIN_U8("graphics/pokemon/morgrem/icon.4bpp"); -const u8 gMonIcon_Grimmsnarl[] = INCBIN_U8("graphics/pokemon/grimmsnarl/icon.4bpp"); -const u8 gMonIcon_Obstagoon[] = INCBIN_U8("graphics/pokemon/obstagoon/icon.4bpp"); -const u8 gMonIcon_Perrserker[] = INCBIN_U8("graphics/pokemon/perrserker/icon.4bpp"); -const u8 gMonIcon_Cursola[] = INCBIN_U8("graphics/pokemon/cursola/icon.4bpp"); -const u8 gMonIcon_Sirfetchd[] = INCBIN_U8("graphics/pokemon/sirfetchd/icon.4bpp"); -const u8 gMonIcon_MrRime[] = INCBIN_U8("graphics/pokemon/mr_rime/icon.4bpp"); -const u8 gMonIcon_Runerigus[] = INCBIN_U8("graphics/pokemon/runerigus/icon.4bpp"); -const u8 gMonIcon_Milcery[] = INCBIN_U8("graphics/pokemon/milcery/icon.4bpp"); -const u8 gMonIcon_Alcremie[] = INCBIN_U8("graphics/pokemon/alcremie/icon.4bpp"); -const u8 gMonIcon_Falinks[] = INCBIN_U8("graphics/pokemon/falinks/icon.4bpp"); -const u8 gMonIcon_Pincurchin[] = INCBIN_U8("graphics/pokemon/pincurchin/icon.4bpp"); -const u8 gMonIcon_Snom[] = INCBIN_U8("graphics/pokemon/snom/icon.4bpp"); -const u8 gMonIcon_Frosmoth[] = INCBIN_U8("graphics/pokemon/frosmoth/icon.4bpp"); -const u8 gMonIcon_Stonjourner[] = INCBIN_U8("graphics/pokemon/stonjourner/icon.4bpp"); -const u8 gMonIcon_EiscueIceFace[] = INCBIN_U8("graphics/pokemon/eiscue/icon.4bpp"); -const u8 gMonIcon_IndeedeeMale[] = INCBIN_U8("graphics/pokemon/indeedee/icon.4bpp"); -const u8 gMonIcon_MorpekoFullBelly[] = INCBIN_U8("graphics/pokemon/morpeko/icon.4bpp"); -const u8 gMonIcon_Cufant[] = INCBIN_U8("graphics/pokemon/cufant/icon.4bpp"); -const u8 gMonIcon_Copperajah[] = INCBIN_U8("graphics/pokemon/copperajah/icon.4bpp"); -const u8 gMonIcon_Dracozolt[] = INCBIN_U8("graphics/pokemon/dracozolt/icon.4bpp"); -const u8 gMonIcon_Arctozolt[] = INCBIN_U8("graphics/pokemon/arctozolt/icon.4bpp"); -const u8 gMonIcon_Dracovish[] = INCBIN_U8("graphics/pokemon/dracovish/icon.4bpp"); -const u8 gMonIcon_Arctovish[] = INCBIN_U8("graphics/pokemon/arctovish/icon.4bpp"); -const u8 gMonIcon_Duraludon[] = INCBIN_U8("graphics/pokemon/duraludon/icon.4bpp"); -const u8 gMonIcon_Dreepy[] = INCBIN_U8("graphics/pokemon/dreepy/icon.4bpp"); -const u8 gMonIcon_Drakloak[] = INCBIN_U8("graphics/pokemon/drakloak/icon.4bpp"); -const u8 gMonIcon_Dragapult[] = INCBIN_U8("graphics/pokemon/dragapult/icon.4bpp"); -const u8 gMonIcon_ZacianHeroOfManyBattles[] = INCBIN_U8("graphics/pokemon/zacian/icon.4bpp"); -const u8 gMonIcon_ZamazentaHeroOfManyBattles[] = INCBIN_U8("graphics/pokemon/zamazenta/icon.4bpp"); -const u8 gMonIcon_Eternatus[] = INCBIN_U8("graphics/pokemon/eternatus/icon.4bpp"); -const u8 gMonIcon_Kubfu[] = INCBIN_U8("graphics/pokemon/kubfu/icon.4bpp"); -const u8 gMonIcon_UrshifuSingleStrikeStyle[] = INCBIN_U8("graphics/pokemon/urshifu/icon.4bpp"); -const u8 gMonIcon_Zarude[] = INCBIN_U8("graphics/pokemon/zarude/icon.4bpp"); -const u8 gMonIcon_Regieleki[] = INCBIN_U8("graphics/pokemon/regieleki/icon.4bpp"); -const u8 gMonIcon_Regidrago[] = INCBIN_U8("graphics/pokemon/regidrago/icon.4bpp"); -const u8 gMonIcon_Glastrier[] = INCBIN_U8("graphics/pokemon/glastrier/icon.4bpp"); -const u8 gMonIcon_Spectrier[] = INCBIN_U8("graphics/pokemon/spectrier/icon.4bpp"); -const u8 gMonIcon_Calyrex[] = INCBIN_U8("graphics/pokemon/calyrex/icon.4bpp"); -const u8 gMonIcon_Wyrdeer[] = INCBIN_U8("graphics/pokemon/wyrdeer/icon.4bpp"); -const u8 gMonIcon_Kleavor[] = INCBIN_U8("graphics/pokemon/kleavor/icon.4bpp"); -const u8 gMonIcon_Ursaluna[] = INCBIN_U8("graphics/pokemon/ursaluna/icon.4bpp"); -const u8 gMonIcon_BasculegionMale[] = INCBIN_U8("graphics/pokemon/basculegion/icon.4bpp"); -const u8 gMonIcon_Sneasler[] = INCBIN_U8("graphics/pokemon/sneasler/icon.4bpp"); -const u8 gMonIcon_Overqwil[] = INCBIN_U8("graphics/pokemon/overqwil/icon.4bpp"); -const u8 gMonIcon_EnamorusIncarnate[] = INCBIN_U8("graphics/pokemon/enamorus/icon.4bpp"); -#endif -const u8 gMonIcon_VenusaurMega[] = INCBIN_U8("graphics/pokemon/venusaur/mega/icon.4bpp"); -const u8 gMonIcon_CharizardMegaX[] = INCBIN_U8("graphics/pokemon/charizard/mega_x/icon.4bpp"); -const u8 gMonIcon_CharizardMegaY[] = INCBIN_U8("graphics/pokemon/charizard/mega_y/icon.4bpp"); -const u8 gMonIcon_BlastoiseMega[] = INCBIN_U8("graphics/pokemon/blastoise/mega/icon.4bpp"); -const u8 gMonIcon_BeedrillMega[] = INCBIN_U8("graphics/pokemon/beedrill/mega/icon.4bpp"); -const u8 gMonIcon_PidgeotMega[] = INCBIN_U8("graphics/pokemon/pidgeot/mega/icon.4bpp"); -const u8 gMonIcon_AlakazamMega[] = INCBIN_U8("graphics/pokemon/alakazam/mega/icon.4bpp"); -const u8 gMonIcon_SlowbroMega[] = INCBIN_U8("graphics/pokemon/slowbro/mega/icon.4bpp"); -const u8 gMonIcon_GengarMega[] = INCBIN_U8("graphics/pokemon/gengar/mega/icon.4bpp"); -const u8 gMonIcon_KangaskhanMega[] = INCBIN_U8("graphics/pokemon/kangaskhan/mega/icon.4bpp"); -const u8 gMonIcon_PinsirMega[] = INCBIN_U8("graphics/pokemon/pinsir/mega/icon.4bpp"); -const u8 gMonIcon_GyaradosMega[] = INCBIN_U8("graphics/pokemon/gyarados/mega/icon.4bpp"); -const u8 gMonIcon_AerodactylMega[] = INCBIN_U8("graphics/pokemon/aerodactyl/mega/icon.4bpp"); -const u8 gMonIcon_MewtwoMegaX[] = INCBIN_U8("graphics/pokemon/mewtwo/mega_x/icon.4bpp"); -const u8 gMonIcon_MewtwoMegaY[] = INCBIN_U8("graphics/pokemon/mewtwo/mega_y/icon.4bpp"); -const u8 gMonIcon_AmpharosMega[] = INCBIN_U8("graphics/pokemon/ampharos/mega/icon.4bpp"); -const u8 gMonIcon_SteelixMega[] = INCBIN_U8("graphics/pokemon/steelix/mega/icon.4bpp"); -const u8 gMonIcon_ScizorMega[] = INCBIN_U8("graphics/pokemon/scizor/mega/icon.4bpp"); -const u8 gMonIcon_HeracrossMega[] = INCBIN_U8("graphics/pokemon/heracross/mega/icon.4bpp"); -const u8 gMonIcon_HoundoomMega[] = INCBIN_U8("graphics/pokemon/houndoom/mega/icon.4bpp"); -const u8 gMonIcon_TyranitarMega[] = INCBIN_U8("graphics/pokemon/tyranitar/mega/icon.4bpp"); -const u8 gMonIcon_SceptileMega[] = INCBIN_U8("graphics/pokemon/sceptile/mega/icon.4bpp"); -const u8 gMonIcon_BlazikenMega[] = INCBIN_U8("graphics/pokemon/blaziken/mega/icon.4bpp"); -const u8 gMonIcon_SwampertMega[] = INCBIN_U8("graphics/pokemon/swampert/mega/icon.4bpp"); -const u8 gMonIcon_GardevoirMega[] = INCBIN_U8("graphics/pokemon/gardevoir/mega/icon.4bpp"); -const u8 gMonIcon_SableyeMega[] = INCBIN_U8("graphics/pokemon/sableye/mega/icon.4bpp"); -const u8 gMonIcon_MawileMega[] = INCBIN_U8("graphics/pokemon/mawile/mega/icon.4bpp"); -const u8 gMonIcon_AggronMega[] = INCBIN_U8("graphics/pokemon/aggron/mega/icon.4bpp"); -const u8 gMonIcon_MedichamMega[] = INCBIN_U8("graphics/pokemon/medicham/mega/icon.4bpp"); -const u8 gMonIcon_ManectricMega[] = INCBIN_U8("graphics/pokemon/manectric/mega/icon.4bpp"); -const u8 gMonIcon_SharpedoMega[] = INCBIN_U8("graphics/pokemon/sharpedo/mega/icon.4bpp"); -const u8 gMonIcon_CameruptMega[] = INCBIN_U8("graphics/pokemon/camerupt/mega/icon.4bpp"); -const u8 gMonIcon_AltariaMega[] = INCBIN_U8("graphics/pokemon/altaria/mega/icon.4bpp"); -const u8 gMonIcon_BanetteMega[] = INCBIN_U8("graphics/pokemon/banette/mega/icon.4bpp"); -const u8 gMonIcon_AbsolMega[] = INCBIN_U8("graphics/pokemon/absol/mega/icon.4bpp"); -const u8 gMonIcon_GlalieMega[] = INCBIN_U8("graphics/pokemon/glalie/mega/icon.4bpp"); -const u8 gMonIcon_SalamenceMega[] = INCBIN_U8("graphics/pokemon/salamence/mega/icon.4bpp"); -const u8 gMonIcon_MetagrossMega[] = INCBIN_U8("graphics/pokemon/metagross/mega/icon.4bpp"); -const u8 gMonIcon_LatiasMega[] = INCBIN_U8("graphics/pokemon/latias/mega/icon.4bpp"); -const u8 gMonIcon_LatiosMega[] = INCBIN_U8("graphics/pokemon/latios/mega/icon.4bpp"); -#if P_GEN_4_POKEMON == TRUE -const u8 gMonIcon_LopunnyMega[] = INCBIN_U8("graphics/pokemon/lopunny/mega/icon.4bpp"); -const u8 gMonIcon_GarchompMega[] = INCBIN_U8("graphics/pokemon/garchomp/mega/icon.4bpp"); -const u8 gMonIcon_LucarioMega[] = INCBIN_U8("graphics/pokemon/lucario/mega/icon.4bpp"); -const u8 gMonIcon_AbomasnowMega[] = INCBIN_U8("graphics/pokemon/abomasnow/mega/icon.4bpp"); -const u8 gMonIcon_GalladeMega[] = INCBIN_U8("graphics/pokemon/gallade/mega/icon.4bpp"); -#endif -#if P_GEN_5_POKEMON == TRUE -const u8 gMonIcon_AudinoMega[] = INCBIN_U8("graphics/pokemon/audino/mega/icon.4bpp"); -#endif -#if P_GEN_6_POKEMON == TRUE -const u8 gMonIcon_DiancieMega[] = INCBIN_U8("graphics/pokemon/diancie/mega/icon.4bpp"); -#endif -const u8 gMonIcon_RayquazaMega[] = INCBIN_U8("graphics/pokemon/rayquaza/mega/icon.4bpp"); -const u8 gMonIcon_KyogrePrimal[] = INCBIN_U8("graphics/pokemon/kyogre/primal/icon.4bpp"); -const u8 gMonIcon_GroudonPrimal[] = INCBIN_U8("graphics/pokemon/groudon/primal/icon.4bpp"); -const u8 gMonIcon_RattataAlolan[] = INCBIN_U8("graphics/pokemon/rattata/alolan/icon.4bpp"); -const u8 gMonIcon_RaticateAlolan[] = INCBIN_U8("graphics/pokemon/raticate/alolan/icon.4bpp"); -const u8 gMonIcon_RaichuAlolan[] = INCBIN_U8("graphics/pokemon/raichu/alolan/icon.4bpp"); -const u8 gMonIcon_SandshrewAlolan[] = INCBIN_U8("graphics/pokemon/sandshrew/alolan/icon.4bpp"); -const u8 gMonIcon_SandslashAlolan[] = INCBIN_U8("graphics/pokemon/sandslash/alolan/icon.4bpp"); -const u8 gMonIcon_VulpixAlolan[] = INCBIN_U8("graphics/pokemon/vulpix/alolan/icon.4bpp"); -const u8 gMonIcon_NinetalesAlolan[] = INCBIN_U8("graphics/pokemon/ninetales/alolan/icon.4bpp"); -const u8 gMonIcon_DiglettAlolan[] = INCBIN_U8("graphics/pokemon/diglett/alolan/icon.4bpp"); -const u8 gMonIcon_DugtrioAlolan[] = INCBIN_U8("graphics/pokemon/dugtrio/alolan/icon.4bpp"); -const u8 gMonIcon_MeowthAlolan[] = INCBIN_U8("graphics/pokemon/meowth/alolan/icon.4bpp"); -const u8 gMonIcon_PersianAlolan[] = INCBIN_U8("graphics/pokemon/persian/alolan/icon.4bpp"); -const u8 gMonIcon_GeodudeAlolan[] = INCBIN_U8("graphics/pokemon/geodude/alolan/icon.4bpp"); -const u8 gMonIcon_GravelerAlolan[] = INCBIN_U8("graphics/pokemon/graveler/alolan/icon.4bpp"); -const u8 gMonIcon_GolemAlolan[] = INCBIN_U8("graphics/pokemon/golem/alolan/icon.4bpp"); -const u8 gMonIcon_GrimerAlolan[] = INCBIN_U8("graphics/pokemon/grimer/alolan/icon.4bpp"); -const u8 gMonIcon_MukAlolan[] = INCBIN_U8("graphics/pokemon/muk/alolan/icon.4bpp"); -const u8 gMonIcon_ExeggutorAlolan[] = INCBIN_U8("graphics/pokemon/exeggutor/alolan/icon.4bpp"); -const u8 gMonIcon_MarowakAlolan[] = INCBIN_U8("graphics/pokemon/marowak/alolan/icon.4bpp"); -const u8 gMonIcon_MeowthGalarian[] = INCBIN_U8("graphics/pokemon/meowth/galarian/icon.4bpp"); -const u8 gMonIcon_PonytaGalarian[] = INCBIN_U8("graphics/pokemon/ponyta/galarian/icon.4bpp"); -const u8 gMonIcon_RapidashGalarian[] = INCBIN_U8("graphics/pokemon/rapidash/galarian/icon.4bpp"); -const u8 gMonIcon_SlowpokeGalarian[] = INCBIN_U8("graphics/pokemon/slowpoke/galarian/icon.4bpp"); -const u8 gMonIcon_SlowbroGalarian[] = INCBIN_U8("graphics/pokemon/slowbro/galarian/icon.4bpp"); -const u8 gMonIcon_FarfetchdGalarian[] = INCBIN_U8("graphics/pokemon/farfetchd/galarian/icon.4bpp"); -const u8 gMonIcon_WeezingGalarian[] = INCBIN_U8("graphics/pokemon/weezing/galarian/icon.4bpp"); -const u8 gMonIcon_MrMimeGalarian[] = INCBIN_U8("graphics/pokemon/mr_mime/galarian/icon.4bpp"); -const u8 gMonIcon_ArticunoGalarian[] = INCBIN_U8("graphics/pokemon/articuno/galarian/icon.4bpp"); -const u8 gMonIcon_ZapdosGalarian[] = INCBIN_U8("graphics/pokemon/zapdos/galarian/icon.4bpp"); -const u8 gMonIcon_MoltresGalarian[] = INCBIN_U8("graphics/pokemon/moltres/galarian/icon.4bpp"); -const u8 gMonIcon_SlowkingGalarian[] = INCBIN_U8("graphics/pokemon/slowking/galarian/icon.4bpp"); -const u8 gMonIcon_CorsolaGalarian[] = INCBIN_U8("graphics/pokemon/corsola/galarian/icon.4bpp"); -const u8 gMonIcon_ZigzagoonGalarian[] = INCBIN_U8("graphics/pokemon/zigzagoon/galarian/icon.4bpp"); -const u8 gMonIcon_LinooneGalarian[] = INCBIN_U8("graphics/pokemon/linoone/galarian/icon.4bpp"); -#if P_GEN_5_POKEMON == TRUE -const u8 gMonIcon_DarumakaGalarian[] = INCBIN_U8("graphics/pokemon/darumaka/galarian/icon.4bpp"); -const u8 gMonIcon_DarmanitanGalarianStandardMode[] = INCBIN_U8("graphics/pokemon/darmanitan/galarian/icon.4bpp"); -const u8 gMonIcon_YamaskGalarian[] = INCBIN_U8("graphics/pokemon/yamask/galarian/icon.4bpp"); -const u8 gMonIcon_StunfiskGalarian[] = INCBIN_U8("graphics/pokemon/stunfisk/galarian/icon.4bpp"); -#endif -const u8 gMonIcon_GrowlitheHisuian[] = INCBIN_U8("graphics/pokemon/growlithe/hisuian/icon.4bpp"); -const u8 gMonIcon_ArcanineHisuian[] = INCBIN_U8("graphics/pokemon/arcanine/hisuian/icon.4bpp"); -const u8 gMonIcon_VoltorbHisuian[] = INCBIN_U8("graphics/pokemon/voltorb/hisuian/icon.4bpp"); -const u8 gMonIcon_ElectrodeHisuian[] = INCBIN_U8("graphics/pokemon/electrode/hisuian/icon.4bpp"); -const u8 gMonIcon_TyphlosionHisuian[] = INCBIN_U8("graphics/pokemon/typhlosion/hisuian/icon.4bpp"); -const u8 gMonIcon_QwilfishHisuian[] = INCBIN_U8("graphics/pokemon/qwilfish/hisuian/icon.4bpp"); -const u8 gMonIcon_SneaselHisuian[] = INCBIN_U8("graphics/pokemon/sneasel/hisuian/icon.4bpp"); -#if P_GEN_5_POKEMON == TRUE -const u8 gMonIcon_SamurottHisuian[] = INCBIN_U8("graphics/pokemon/samurott/hisuian/icon.4bpp"); -const u8 gMonIcon_LilligantHisuian[] = INCBIN_U8("graphics/pokemon/lilligant/hisuian/icon.4bpp"); -const u8 gMonIcon_ZoruaHisuian[] = INCBIN_U8("graphics/pokemon/zorua/hisuian/icon.4bpp"); -const u8 gMonIcon_ZoroarkHisuian[] = INCBIN_U8("graphics/pokemon/zoroark/hisuian/icon.4bpp"); -const u8 gMonIcon_BraviaryHisuian[] = INCBIN_U8("graphics/pokemon/braviary/hisuian/icon.4bpp"); -#endif -#if P_GEN_6_POKEMON == TRUE -const u8 gMonIcon_SliggooHisuian[] = INCBIN_U8("graphics/pokemon/sliggoo/hisuian/icon.4bpp"); -const u8 gMonIcon_GoodraHisuian[] = INCBIN_U8("graphics/pokemon/goodra/hisuian/icon.4bpp"); -const u8 gMonIcon_AvaluggHisuian[] = INCBIN_U8("graphics/pokemon/avalugg/hisuian/icon.4bpp"); -#endif -#if P_GEN_7_POKEMON == TRUE -const u8 gMonIcon_DecidueyeHisuian[] = INCBIN_U8("graphics/pokemon/decidueye/hisuian/icon.4bpp"); -#endif -const u8 gMonIcon_PikachuCosplay[] = INCBIN_U8("graphics/pokemon/pikachu/cosplay/icon.4bpp"); -const u8 gMonIcon_PikachuRockStar[] = INCBIN_U8("graphics/pokemon/pikachu/rock_star/icon.4bpp"); -const u8 gMonIcon_PikachuBelle[] = INCBIN_U8("graphics/pokemon/pikachu/belle/icon.4bpp"); -const u8 gMonIcon_PikachuPopStar[] = INCBIN_U8("graphics/pokemon/pikachu/pop_star/icon.4bpp"); -const u8 gMonIcon_PikachuPhD[] = INCBIN_U8("graphics/pokemon/pikachu/ph_d/icon.4bpp"); -const u8 gMonIcon_PikachuLibre[] = INCBIN_U8("graphics/pokemon/pikachu/libre/icon.4bpp"); -const u8 gMonIcon_PikachuOriginalCap[] = INCBIN_U8("graphics/pokemon/pikachu/original_cap/icon.4bpp"); -const u8 gMonIcon_PikachuHoennCap[] = INCBIN_U8("graphics/pokemon/pikachu/hoenn_cap/icon.4bpp"); -const u8 gMonIcon_PikachuSinnohCap[] = INCBIN_U8("graphics/pokemon/pikachu/sinnoh_cap/icon.4bpp"); -const u8 gMonIcon_PikachuUnovaCap[] = INCBIN_U8("graphics/pokemon/pikachu/unova_cap/icon.4bpp"); -const u8 gMonIcon_PikachuKalosCap[] = INCBIN_U8("graphics/pokemon/pikachu/kalos_cap/icon.4bpp"); -const u8 gMonIcon_PikachuAlolaCap[] = INCBIN_U8("graphics/pokemon/pikachu/alola_cap/icon.4bpp"); -const u8 gMonIcon_PikachuPartnerCap[] = INCBIN_U8("graphics/pokemon/pikachu/partner_cap/icon.4bpp"); -const u8 gMonIcon_PikachuWorldCap[] = INCBIN_U8("graphics/pokemon/pikachu/world_cap/icon.4bpp"); -const u8 gMonIcon_PichuSpikyEared[] = INCBIN_U8("graphics/pokemon/pichu/spiky_eared/icon.4bpp"); -const u8 gMonIcon_UnownB[] = INCBIN_U8("graphics/pokemon/unown/b/icon.4bpp"); -const u8 gMonIcon_UnownC[] = INCBIN_U8("graphics/pokemon/unown/c/icon.4bpp"); -const u8 gMonIcon_UnownD[] = INCBIN_U8("graphics/pokemon/unown/d/icon.4bpp"); -const u8 gMonIcon_UnownE[] = INCBIN_U8("graphics/pokemon/unown/e/icon.4bpp"); -const u8 gMonIcon_UnownF[] = INCBIN_U8("graphics/pokemon/unown/f/icon.4bpp"); -const u8 gMonIcon_UnownG[] = INCBIN_U8("graphics/pokemon/unown/g/icon.4bpp"); -const u8 gMonIcon_UnownH[] = INCBIN_U8("graphics/pokemon/unown/h/icon.4bpp"); -const u8 gMonIcon_UnownI[] = INCBIN_U8("graphics/pokemon/unown/i/icon.4bpp"); -const u8 gMonIcon_UnownJ[] = INCBIN_U8("graphics/pokemon/unown/j/icon.4bpp"); -const u8 gMonIcon_UnownK[] = INCBIN_U8("graphics/pokemon/unown/k/icon.4bpp"); -const u8 gMonIcon_UnownL[] = INCBIN_U8("graphics/pokemon/unown/l/icon.4bpp"); -const u8 gMonIcon_UnownM[] = INCBIN_U8("graphics/pokemon/unown/m/icon.4bpp"); -const u8 gMonIcon_UnownN[] = INCBIN_U8("graphics/pokemon/unown/n/icon.4bpp"); -const u8 gMonIcon_UnownO[] = INCBIN_U8("graphics/pokemon/unown/o/icon.4bpp"); -const u8 gMonIcon_UnownP[] = INCBIN_U8("graphics/pokemon/unown/p/icon.4bpp"); -const u8 gMonIcon_UnownQ[] = INCBIN_U8("graphics/pokemon/unown/q/icon.4bpp"); -const u8 gMonIcon_UnownR[] = INCBIN_U8("graphics/pokemon/unown/r/icon.4bpp"); -const u8 gMonIcon_UnownS[] = INCBIN_U8("graphics/pokemon/unown/s/icon.4bpp"); -const u8 gMonIcon_UnownT[] = INCBIN_U8("graphics/pokemon/unown/t/icon.4bpp"); -const u8 gMonIcon_UnownU[] = INCBIN_U8("graphics/pokemon/unown/u/icon.4bpp"); -const u8 gMonIcon_UnownV[] = INCBIN_U8("graphics/pokemon/unown/v/icon.4bpp"); -const u8 gMonIcon_UnownW[] = INCBIN_U8("graphics/pokemon/unown/w/icon.4bpp"); -const u8 gMonIcon_UnownX[] = INCBIN_U8("graphics/pokemon/unown/x/icon.4bpp"); -const u8 gMonIcon_UnownY[] = INCBIN_U8("graphics/pokemon/unown/y/icon.4bpp"); -const u8 gMonIcon_UnownZ[] = INCBIN_U8("graphics/pokemon/unown/z/icon.4bpp"); -const u8 gMonIcon_UnownExclamationMark[] = INCBIN_U8("graphics/pokemon/unown/exclamation_mark/icon.4bpp"); -const u8 gMonIcon_UnownQuestionMark[] = INCBIN_U8("graphics/pokemon/unown/question_mark/icon.4bpp"); -const u8 gMonIcon_CastformSunny[] = INCBIN_U8("graphics/pokemon/castform/sunny/icon.4bpp"); -const u8 gMonIcon_CastformRainy[] = INCBIN_U8("graphics/pokemon/castform/rainy/icon.4bpp"); -const u8 gMonIcon_CastformSnowy[] = INCBIN_U8("graphics/pokemon/castform/snowy/icon.4bpp"); -const u8 gMonIcon_DeoxysAttack[] = INCBIN_U8("graphics/pokemon/deoxys/attack/icon.4bpp"); -const u8 gMonIcon_DeoxysDefense[] = INCBIN_U8("graphics/pokemon/deoxys/defense/icon.4bpp"); -const u8 gMonIcon_DeoxysSpeed[] = INCBIN_U8("graphics/pokemon/deoxys/speed/icon.4bpp"); -#if P_GEN_4_POKEMON == TRUE -const u8 gMonIcon_BurmySandyCloak[] = INCBIN_U8("graphics/pokemon/burmy/sandy_cloak/icon.4bpp"); -const u8 gMonIcon_BurmyTrashCloak[] = INCBIN_U8("graphics/pokemon/burmy/trash_cloak/icon.4bpp"); -const u8 gMonIcon_WormadamSandyCloak[] = INCBIN_U8("graphics/pokemon/wormadam/sandy_cloak/icon.4bpp"); -const u8 gMonIcon_WormadamTrashCloak[] = INCBIN_U8("graphics/pokemon/wormadam/trash_cloak/icon.4bpp"); -const u8 gMonIcon_CherrimSunshine[] = INCBIN_U8("graphics/pokemon/cherrim/sunshine/icon.4bpp"); -const u8 gMonIcon_ShellosEastSea[] = INCBIN_U8("graphics/pokemon/shellos/east_sea/icon.4bpp"); -const u8 gMonIcon_GastrodonEastSea[] = INCBIN_U8("graphics/pokemon/gastrodon/east_sea/icon.4bpp"); -const u8 gMonIcon_RotomHeat[] = INCBIN_U8("graphics/pokemon/rotom/heat/icon.4bpp"); -const u8 gMonIcon_RotomWash[] = INCBIN_U8("graphics/pokemon/rotom/wash/icon.4bpp"); -const u8 gMonIcon_RotomFrost[] = INCBIN_U8("graphics/pokemon/rotom/frost/icon.4bpp"); -const u8 gMonIcon_RotomFan[] = INCBIN_U8("graphics/pokemon/rotom/fan/icon.4bpp"); -const u8 gMonIcon_RotomMow[] = INCBIN_U8("graphics/pokemon/rotom/mow/icon.4bpp"); -const u8 gMonIcon_DialgaOrigin[] = INCBIN_U8("graphics/pokemon/dialga/origin/icon.4bpp"); -const u8 gMonIcon_PalkiaOrigin[] = INCBIN_U8("graphics/pokemon/palkia/origin/icon.4bpp"); -const u8 gMonIcon_GiratinaOrigin[] = INCBIN_U8("graphics/pokemon/giratina/origin/icon.4bpp"); -const u8 gMonIcon_ShayminSky[] = INCBIN_U8("graphics/pokemon/shaymin/sky/icon.4bpp"); -#endif -#if P_GEN_5_POKEMON == TRUE -const u8 gMonIcon_BasculinBlueStriped[] = INCBIN_U8("graphics/pokemon/basculin/blue_striped/icon.4bpp"); -const u8 gMonIcon_BasculinWhiteStriped[] = INCBIN_U8("graphics/pokemon/basculin/white_striped/icon.4bpp"); -const u8 gMonIcon_DarmanitanZenMode[] = INCBIN_U8("graphics/pokemon/darmanitan/zen_mode/icon.4bpp"); -const u8 gMonIcon_DarmanitanGalarianZenMode[] = INCBIN_U8("graphics/pokemon/darmanitan/zen_mode/galarian/icon.4bpp"); -const u8 gMonIcon_DeerlingSummer[] = INCBIN_U8("graphics/pokemon/deerling/summer/icon.4bpp"); -const u8 gMonIcon_DeerlingAutumn[] = INCBIN_U8("graphics/pokemon/deerling/autumn/icon.4bpp"); -const u8 gMonIcon_DeerlingWinter[] = INCBIN_U8("graphics/pokemon/deerling/winter/icon.4bpp"); -const u8 gMonIcon_SawsbuckSummer[] = INCBIN_U8("graphics/pokemon/sawsbuck/summer/icon.4bpp"); -const u8 gMonIcon_SawsbuckAutumn[] = INCBIN_U8("graphics/pokemon/sawsbuck/autumn/icon.4bpp"); -const u8 gMonIcon_SawsbuckWinter[] = INCBIN_U8("graphics/pokemon/sawsbuck/winter/icon.4bpp"); -const u8 gMonIcon_TornadusTherian[] = INCBIN_U8("graphics/pokemon/tornadus/therian/icon.4bpp"); -const u8 gMonIcon_ThundurusTherian[] = INCBIN_U8("graphics/pokemon/thundurus/therian/icon.4bpp"); -const u8 gMonIcon_LandorusTherian[] = INCBIN_U8("graphics/pokemon/landorus/therian/icon.4bpp"); -const u8 gMonIcon_KyuremWhite[] = INCBIN_U8("graphics/pokemon/kyurem/white/icon.4bpp"); -const u8 gMonIcon_KyuremBlack[] = INCBIN_U8("graphics/pokemon/kyurem/black/icon.4bpp"); -const u8 gMonIcon_KeldeoResolute[] = INCBIN_U8("graphics/pokemon/keldeo/resolute/icon.4bpp"); -const u8 gMonIcon_MeloettaPirouette[] = INCBIN_U8("graphics/pokemon/meloetta/pirouette/icon.4bpp"); -#endif -#if P_GEN_6_POKEMON == TRUE -const u8 gMonIcon_GreninjaAsh[] = INCBIN_U8("graphics/pokemon/greninja/ash/icon.4bpp"); -const u8 gMonIcon_VivillonPolar[] = INCBIN_U8("graphics/pokemon/vivillon/polar/icon.4bpp"); -const u8 gMonIcon_VivillonTundra[] = INCBIN_U8("graphics/pokemon/vivillon/tundra/icon.4bpp"); -const u8 gMonIcon_VivillonContinental[] = INCBIN_U8("graphics/pokemon/vivillon/continental/icon.4bpp"); -const u8 gMonIcon_VivillonGarden[] = INCBIN_U8("graphics/pokemon/vivillon/garden/icon.4bpp"); -const u8 gMonIcon_VivillonElegant[] = INCBIN_U8("graphics/pokemon/vivillon/elegant/icon.4bpp"); -const u8 gMonIcon_VivillonMeadow[] = INCBIN_U8("graphics/pokemon/vivillon/meadow/icon.4bpp"); -const u8 gMonIcon_VivillonModern[] = INCBIN_U8("graphics/pokemon/vivillon/modern/icon.4bpp"); -const u8 gMonIcon_VivillonMarine[] = INCBIN_U8("graphics/pokemon/vivillon/marine/icon.4bpp"); -const u8 gMonIcon_VivillonArchipelago[] = INCBIN_U8("graphics/pokemon/vivillon/archipelago/icon.4bpp"); -const u8 gMonIcon_VivillonHighPlains[] = INCBIN_U8("graphics/pokemon/vivillon/high_plains/icon.4bpp"); -const u8 gMonIcon_VivillonSandstorm[] = INCBIN_U8("graphics/pokemon/vivillon/sandstorm/icon.4bpp"); -const u8 gMonIcon_VivillonRiver[] = INCBIN_U8("graphics/pokemon/vivillon/river/icon.4bpp"); -const u8 gMonIcon_VivillonMonsoon[] = INCBIN_U8("graphics/pokemon/vivillon/monsoon/icon.4bpp"); -const u8 gMonIcon_VivillonSavanna[] = INCBIN_U8("graphics/pokemon/vivillon/savanna/icon.4bpp"); -const u8 gMonIcon_VivillonSun[] = INCBIN_U8("graphics/pokemon/vivillon/sun/icon.4bpp"); -const u8 gMonIcon_VivillonOcean[] = INCBIN_U8("graphics/pokemon/vivillon/ocean/icon.4bpp"); -const u8 gMonIcon_VivillonJungle[] = INCBIN_U8("graphics/pokemon/vivillon/jungle/icon.4bpp"); -const u8 gMonIcon_VivillonFancy[] = INCBIN_U8("graphics/pokemon/vivillon/fancy/icon.4bpp"); -const u8 gMonIcon_VivillonPokeBall[] = INCBIN_U8("graphics/pokemon/vivillon/poke_ball/icon.4bpp"); -const u8 gMonIcon_FlabebeYellowFlower[] = INCBIN_U8("graphics/pokemon/flabebe/yellow_flower/icon.4bpp"); -const u8 gMonIcon_FlabebeOrangeFlower[] = INCBIN_U8("graphics/pokemon/flabebe/orange_flower/icon.4bpp"); -const u8 gMonIcon_FlabebeBlueFlower[] = INCBIN_U8("graphics/pokemon/flabebe/blue_flower/icon.4bpp"); -const u8 gMonIcon_FlabebeWhiteFlower[] = INCBIN_U8("graphics/pokemon/flabebe/white_flower/icon.4bpp"); -const u8 gMonIcon_FloetteYellowFlower[] = INCBIN_U8("graphics/pokemon/floette/yellow_flower/icon.4bpp"); -const u8 gMonIcon_FloetteOrangeFlower[] = INCBIN_U8("graphics/pokemon/floette/orange_flower/icon.4bpp"); -const u8 gMonIcon_FloetteBlueFlower[] = INCBIN_U8("graphics/pokemon/floette/blue_flower/icon.4bpp"); -const u8 gMonIcon_FloetteWhiteFlower[] = INCBIN_U8("graphics/pokemon/floette/white_flower/icon.4bpp"); -const u8 gMonIcon_FloetteEternalFlower[] = INCBIN_U8("graphics/pokemon/floette/eternal_flower/icon.4bpp"); -const u8 gMonIcon_FlorgesYellowFlower[] = INCBIN_U8("graphics/pokemon/florges/yellow_flower/icon.4bpp"); -const u8 gMonIcon_FlorgesOrangeFlower[] = INCBIN_U8("graphics/pokemon/florges/orange_flower/icon.4bpp"); -const u8 gMonIcon_FlorgesBlueFlower[] = INCBIN_U8("graphics/pokemon/florges/blue_flower/icon.4bpp"); -const u8 gMonIcon_FlorgesWhiteFlower[] = INCBIN_U8("graphics/pokemon/florges/white_flower/icon.4bpp"); -const u8 gMonIcon_FurfrouHeartTrim[] = INCBIN_U8("graphics/pokemon/furfrou/heart_trim/icon.4bpp"); -const u8 gMonIcon_FurfrouStarTrim[] = INCBIN_U8("graphics/pokemon/furfrou/star_trim/icon.4bpp"); -const u8 gMonIcon_FurfrouDiamondTrim[] = INCBIN_U8("graphics/pokemon/furfrou/diamond_trim/icon.4bpp"); -const u8 gMonIcon_FurfrouDebutanteTrim[] = INCBIN_U8("graphics/pokemon/furfrou/debutante_trim/icon.4bpp"); -const u8 gMonIcon_FurfrouMatronTrim[] = INCBIN_U8("graphics/pokemon/furfrou/matron_trim/icon.4bpp"); -const u8 gMonIcon_FurfrouDandyTrim[] = INCBIN_U8("graphics/pokemon/furfrou/dandy_trim/icon.4bpp"); -const u8 gMonIcon_FurfrouLaReineTrim[] = INCBIN_U8("graphics/pokemon/furfrou/la_reine_trim/icon.4bpp"); -const u8 gMonIcon_FurfrouKabukiTrim[] = INCBIN_U8("graphics/pokemon/furfrou/kabuki_trim/icon.4bpp"); -const u8 gMonIcon_FurfrouPharaohTrim[] = INCBIN_U8("graphics/pokemon/furfrou/pharaoh_trim/icon.4bpp"); -const u8 gMonIcon_MeowsticFemale[] = INCBIN_U8("graphics/pokemon/meowstic/female/icon.4bpp"); -const u8 gMonIcon_AegislashBlade[] = INCBIN_U8("graphics/pokemon/aegislash/blade/icon.4bpp"); -const u8 gMonIcon_XerneasActive[] = INCBIN_U8("graphics/pokemon/xerneas/active/icon.4bpp"); -const u8 gMonIcon_Zygarde10[] = INCBIN_U8("graphics/pokemon/zygarde/10_percent/icon.4bpp"); -const u8 gMonIcon_ZygardeComplete[] = INCBIN_U8("graphics/pokemon/zygarde/complete/icon.4bpp"); -const u8 gMonIcon_HoopaUnbound[] = INCBIN_U8("graphics/pokemon/hoopa/unbound/icon.4bpp"); -#endif -#if P_GEN_7_POKEMON == TRUE -const u8 gMonIcon_OricorioPomPom[] = INCBIN_U8("graphics/pokemon/oricorio/pom_pom/icon.4bpp"); -const u8 gMonIcon_OricorioPau[] = INCBIN_U8("graphics/pokemon/oricorio/pau/icon.4bpp"); -const u8 gMonIcon_OricorioSensu[] = INCBIN_U8("graphics/pokemon/oricorio/sensu/icon.4bpp"); -const u8 gMonIcon_LycanrocMidnight[] = INCBIN_U8("graphics/pokemon/lycanroc/midnight/icon.4bpp"); -const u8 gMonIcon_LycanrocDusk[] = INCBIN_U8("graphics/pokemon/lycanroc/dusk/icon.4bpp"); -const u8 gMonIcon_WishiwashiSchool[] = INCBIN_U8("graphics/pokemon/wishiwashi/school/icon.4bpp"); -const u8 gMonIcon_MiniorCoreRed[] = INCBIN_U8("graphics/pokemon/minior/core/red/icon.4bpp"); -const u8 gMonIcon_MiniorCoreOrange[] = INCBIN_U8("graphics/pokemon/minior/core/orange/icon.4bpp"); -const u8 gMonIcon_MiniorCoreYellow[] = INCBIN_U8("graphics/pokemon/minior/core/yellow/icon.4bpp"); -const u8 gMonIcon_MiniorCoreGreen[] = INCBIN_U8("graphics/pokemon/minior/core/green/icon.4bpp"); -const u8 gMonIcon_MiniorCoreBlue[] = INCBIN_U8("graphics/pokemon/minior/core/blue/icon.4bpp"); -const u8 gMonIcon_MiniorCoreIndigo[] = INCBIN_U8("graphics/pokemon/minior/core/indigo/icon.4bpp"); -const u8 gMonIcon_MiniorCoreViolet[] = INCBIN_U8("graphics/pokemon/minior/core/violet/icon.4bpp"); -const u8 gMonIcon_MimikyuBusted[] = INCBIN_U8("graphics/pokemon/mimikyu/busted/icon.4bpp"); -const u8 gMonIcon_NecrozmaDuskMane[] = INCBIN_U8("graphics/pokemon/necrozma/dusk_mane/icon.4bpp"); -const u8 gMonIcon_NecrozmaDawnWings[] = INCBIN_U8("graphics/pokemon/necrozma/dawn_wings/icon.4bpp"); -const u8 gMonIcon_NecrozmaUltra[] = INCBIN_U8("graphics/pokemon/necrozma/ultra/icon.4bpp"); -const u8 gMonIcon_MagearnaOriginalColor[] = INCBIN_U8("graphics/pokemon/magearna/original_color/icon.4bpp"); -#endif -#if P_GEN_8_POKEMON == TRUE -const u8 gMonIcon_CramorantGulping[] = INCBIN_U8("graphics/pokemon/cramorant/gulping/icon.4bpp"); -const u8 gMonIcon_CramorantGorging[] = INCBIN_U8("graphics/pokemon/cramorant/gorging/icon.4bpp"); -const u8 gMonIcon_ToxtricityLowKey[] = INCBIN_U8("graphics/pokemon/toxtricity/low_key/icon.4bpp"); -//const u8 gMonIcon_AlcremieStrawberryRubyCream[] = INCBIN_U8("graphics/pokemon/alcremie/ruby_cream/icon.4bpp"); -//const u8 gMonIcon_AlcremieStrawberryMatchaCream[] = INCBIN_U8("graphics/pokemon/alcremie/matcha_cream/icon.4bpp"); -//const u8 gMonIcon_AlcremieStrawberryMintCream[] = INCBIN_U8("graphics/pokemon/alcremie/mint_cream/icon.4bpp"); -//const u8 gMonIcon_AlcremieStrawberryLemonCream[] = INCBIN_U8("graphics/pokemon/alcremie/lemon_cream/icon.4bpp"); -//const u8 gMonIcon_AlcremieStrawberrySaltedCream[] = INCBIN_U8("graphics/pokemon/alcremie/salted_cream/icon.4bpp"); -//const u8 gMonIcon_AlcremieStrawberryRubySwirl[] = INCBIN_U8("graphics/pokemon/alcremie/ruby_swirl/icon.4bpp"); -//const u8 gMonIcon_AlcremieStrawberryCaramelSwirl[] = INCBIN_U8("graphics/pokemon/alcremie/caramel_swirl/icon.4bpp"); -//const u8 gMonIcon_AlcremieStrawberryRainbowSwirl[] = INCBIN_U8("graphics/pokemon/alcremie/rainbow_swirl/icon.4bpp"); -const u8 gMonIcon_EiscueNoiceFace[] = INCBIN_U8("graphics/pokemon/eiscue/noice_face/icon.4bpp"); -const u8 gMonIcon_IndeedeeFemale[] = INCBIN_U8("graphics/pokemon/indeedee/female/icon.4bpp"); -const u8 gMonIcon_MorpekoHangry[] = INCBIN_U8("graphics/pokemon/morpeko/hangry/icon.4bpp"); -const u8 gMonIcon_ZacianCrownedSword[] = INCBIN_U8("graphics/pokemon/zacian/crowned_sword/icon.4bpp"); -const u8 gMonIcon_ZamazentaCrownedShield[] = INCBIN_U8("graphics/pokemon/zamazenta/crowned_shield/icon.4bpp"); -const u8 gMonIcon_EternatusEternamax[] = INCBIN_U8("graphics/pokemon/eternatus/eternamax/icon.4bpp"); -const u8 gMonIcon_ZarudeDada[] = INCBIN_U8("graphics/pokemon/zarude/dada/icon.4bpp"); -const u8 gMonIcon_CalyrexIceRider[] = INCBIN_U8("graphics/pokemon/calyrex/ice_rider/icon.4bpp"); -const u8 gMonIcon_CalyrexShadowRider[] = INCBIN_U8("graphics/pokemon/calyrex/shadow_rider/icon.4bpp"); -const u8 gMonIcon_EnamorusTherian[] = INCBIN_U8("graphics/pokemon/enamorus/therian/icon.4bpp"); -const u8 gMonIcon_BasculegionFemale[] = INCBIN_U8("graphics/pokemon/basculegion/female/icon.4bpp"); -const u8 gMonIcon_VenusaurGigantamax[] = INCBIN_U8("graphics/pokemon/venusaur/gigantamax/icon.4bpp"); -const u8 gMonIcon_CharizardGigantamax[] = INCBIN_U8("graphics/pokemon/charizard/gigantamax/icon.4bpp"); -const u8 gMonIcon_BlastoiseGigantamax[] = INCBIN_U8("graphics/pokemon/blastoise/gigantamax/icon.4bpp"); -const u8 gMonIcon_ButterfreeGigantamax[] = INCBIN_U8("graphics/pokemon/butterfree/gigantamax/icon.4bpp"); -const u8 gMonIcon_PikachuGigantamax[] = INCBIN_U8("graphics/pokemon/pikachu/gigantamax/icon.4bpp"); -const u8 gMonIcon_MeowthGigantamax[] = INCBIN_U8("graphics/pokemon/meowth/gigantamax/icon.4bpp"); -const u8 gMonIcon_MachampGigantamax[] = INCBIN_U8("graphics/pokemon/machamp/gigantamax/icon.4bpp"); -const u8 gMonIcon_GengarGigantamax[] = INCBIN_U8("graphics/pokemon/gengar/gigantamax/icon.4bpp"); -const u8 gMonIcon_KinglerGigantamax[] = INCBIN_U8("graphics/pokemon/kingler/gigantamax/icon.4bpp"); -const u8 gMonIcon_LaprasGigantamax[] = INCBIN_U8("graphics/pokemon/lapras/gigantamax/icon.4bpp"); -const u8 gMonIcon_EeveeGigantamax[] = INCBIN_U8("graphics/pokemon/eevee/gigantamax/icon.4bpp"); -const u8 gMonIcon_SnorlaxGigantamax[] = INCBIN_U8("graphics/pokemon/snorlax/gigantamax/icon.4bpp"); -const u8 gMonIcon_GarbodorGigantamax[] = INCBIN_U8("graphics/pokemon/garbodor/gigantamax/icon.4bpp"); -const u8 gMonIcon_MelmetalGigantamax[] = INCBIN_U8("graphics/pokemon/melmetal/gigantamax/icon.4bpp"); -const u8 gMonIcon_RillaboomGigantamax[] = INCBIN_U8("graphics/pokemon/rillaboom/gigantamax/icon.4bpp"); -const u8 gMonIcon_CinderaceGigantamax[] = INCBIN_U8("graphics/pokemon/cinderace/gigantamax/icon.4bpp"); -const u8 gMonIcon_InteleonGigantamax[] = INCBIN_U8("graphics/pokemon/inteleon/gigantamax/icon.4bpp"); -const u8 gMonIcon_CorviknightGigantamax[] = INCBIN_U8("graphics/pokemon/corviknight/gigantamax/icon.4bpp"); -const u8 gMonIcon_OrbeetleGigantamax[] = INCBIN_U8("graphics/pokemon/orbeetle/gigantamax/icon.4bpp"); -const u8 gMonIcon_DrednawGigantamax[] = INCBIN_U8("graphics/pokemon/drednaw/gigantamax/icon.4bpp"); -const u8 gMonIcon_CoalossalGigantamax[] = INCBIN_U8("graphics/pokemon/coalossal/gigantamax/icon.4bpp"); -const u8 gMonIcon_FlappleGigantamax[] = INCBIN_U8("graphics/pokemon/flapple/gigantamax/icon.4bpp"); -const u8 gMonIcon_AppletunGigantamax[] = INCBIN_U8("graphics/pokemon/appletun/gigantamax/icon.4bpp"); -const u8 gMonIcon_SandacondaGigantamax[] = INCBIN_U8("graphics/pokemon/sandaconda/gigantamax/icon.4bpp"); -const u8 gMonIcon_ToxtricityGigantamax[] = INCBIN_U8("graphics/pokemon/toxtricity/gigantamax/icon.4bpp"); -const u8 gMonIcon_CentiskorchGigantamax[] = INCBIN_U8("graphics/pokemon/centiskorch/gigantamax/icon.4bpp"); -const u8 gMonIcon_HattereneGigantamax[] = INCBIN_U8("graphics/pokemon/hatterene/gigantamax/icon.4bpp"); -const u8 gMonIcon_GrimmsnarlGigantamax[] = INCBIN_U8("graphics/pokemon/grimmsnarl/gigantamax/icon.4bpp"); -const u8 gMonIcon_AlcremieGigantamax[] = INCBIN_U8("graphics/pokemon/alcremie/gigantamax/icon.4bpp"); -const u8 gMonIcon_CopperajahGigantamax[] = INCBIN_U8("graphics/pokemon/copperajah/gigantamax/icon.4bpp"); -const u8 gMonIcon_DuraludonGigantamax[] = INCBIN_U8("graphics/pokemon/duraludon/gigantamax/icon.4bpp"); -const u8 gMonIcon_UrshifuSingleStrikeGigantamax[] = INCBIN_U8("graphics/pokemon/urshifu/single_strike_style_gigantamax/icon.4bpp"); -const u8 gMonIcon_UrshifuRapidStrikeGigantamax[] = INCBIN_U8("graphics/pokemon/urshifu/rapid_strike_style_gigantamax/icon.4bpp"); -#endif -const u8 gMonIcon_Egg[] = INCBIN_U8("graphics/pokemon/egg/icon.4bpp"); - const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mark/footprint.1bpp"); -const u8 gMonFootprint_Bulbasaur[] = INCBIN_U8("graphics/pokemon/bulbasaur/footprint.1bpp"); -const u8 gMonFootprint_Ivysaur[] = INCBIN_U8("graphics/pokemon/ivysaur/footprint.1bpp"); -const u8 gMonFootprint_Venusaur[] = INCBIN_U8("graphics/pokemon/venusaur/footprint.1bpp"); -const u8 gMonFootprint_Charmander[] = INCBIN_U8("graphics/pokemon/charmander/footprint.1bpp"); -const u8 gMonFootprint_Charmeleon[] = INCBIN_U8("graphics/pokemon/charmeleon/footprint.1bpp"); -const u8 gMonFootprint_Charizard[] = INCBIN_U8("graphics/pokemon/charizard/footprint.1bpp"); -const u8 gMonFootprint_Squirtle[] = INCBIN_U8("graphics/pokemon/squirtle/footprint.1bpp"); -const u8 gMonFootprint_Wartortle[] = INCBIN_U8("graphics/pokemon/wartortle/footprint.1bpp"); -const u8 gMonFootprint_Blastoise[] = INCBIN_U8("graphics/pokemon/blastoise/footprint.1bpp"); -const u8 gMonFootprint_Caterpie[] = INCBIN_U8("graphics/pokemon/caterpie/footprint.1bpp"); -const u8 gMonFootprint_Metapod[] = INCBIN_U8("graphics/pokemon/metapod/footprint.1bpp"); -const u8 gMonFootprint_Butterfree[] = INCBIN_U8("graphics/pokemon/butterfree/footprint.1bpp"); -const u8 gMonFootprint_Weedle[] = INCBIN_U8("graphics/pokemon/weedle/footprint.1bpp"); -const u8 gMonFootprint_Kakuna[] = INCBIN_U8("graphics/pokemon/kakuna/footprint.1bpp"); -const u8 gMonFootprint_Beedrill[] = INCBIN_U8("graphics/pokemon/beedrill/footprint.1bpp"); -const u8 gMonFootprint_Pidgey[] = INCBIN_U8("graphics/pokemon/pidgey/footprint.1bpp"); -const u8 gMonFootprint_Pidgeotto[] = INCBIN_U8("graphics/pokemon/pidgeotto/footprint.1bpp"); -const u8 gMonFootprint_Pidgeot[] = INCBIN_U8("graphics/pokemon/pidgeot/footprint.1bpp"); -const u8 gMonFootprint_Rattata[] = INCBIN_U8("graphics/pokemon/rattata/footprint.1bpp"); -const u8 gMonFootprint_Raticate[] = INCBIN_U8("graphics/pokemon/raticate/footprint.1bpp"); -const u8 gMonFootprint_Spearow[] = INCBIN_U8("graphics/pokemon/spearow/footprint.1bpp"); -const u8 gMonFootprint_Fearow[] = INCBIN_U8("graphics/pokemon/fearow/footprint.1bpp"); -const u8 gMonFootprint_Ekans[] = INCBIN_U8("graphics/pokemon/ekans/footprint.1bpp"); -const u8 gMonFootprint_Arbok[] = INCBIN_U8("graphics/pokemon/arbok/footprint.1bpp"); -const u8 gMonFootprint_Pikachu[] = INCBIN_U8("graphics/pokemon/pikachu/footprint.1bpp"); -const u8 gMonFootprint_Raichu[] = INCBIN_U8("graphics/pokemon/raichu/footprint.1bpp"); -const u8 gMonFootprint_Sandshrew[] = INCBIN_U8("graphics/pokemon/sandshrew/footprint.1bpp"); -const u8 gMonFootprint_Sandslash[] = INCBIN_U8("graphics/pokemon/sandslash/footprint.1bpp"); -const u8 gMonFootprint_NidoranF[] = INCBIN_U8("graphics/pokemon/nidoran_f/footprint.1bpp"); -const u8 gMonFootprint_Nidorina[] = INCBIN_U8("graphics/pokemon/nidorina/footprint.1bpp"); -const u8 gMonFootprint_Nidoqueen[] = INCBIN_U8("graphics/pokemon/nidoqueen/footprint.1bpp"); -const u8 gMonFootprint_NidoranM[] = INCBIN_U8("graphics/pokemon/nidoran_m/footprint.1bpp"); -const u8 gMonFootprint_Nidorino[] = INCBIN_U8("graphics/pokemon/nidorino/footprint.1bpp"); -const u8 gMonFootprint_Nidoking[] = INCBIN_U8("graphics/pokemon/nidoking/footprint.1bpp"); -const u8 gMonFootprint_Clefairy[] = INCBIN_U8("graphics/pokemon/clefairy/footprint.1bpp"); -const u8 gMonFootprint_Clefable[] = INCBIN_U8("graphics/pokemon/clefable/footprint.1bpp"); -const u8 gMonFootprint_Vulpix[] = INCBIN_U8("graphics/pokemon/vulpix/footprint.1bpp"); -const u8 gMonFootprint_Ninetales[] = INCBIN_U8("graphics/pokemon/ninetales/footprint.1bpp"); -const u8 gMonFootprint_Jigglypuff[] = INCBIN_U8("graphics/pokemon/jigglypuff/footprint.1bpp"); -const u8 gMonFootprint_Wigglytuff[] = INCBIN_U8("graphics/pokemon/wigglytuff/footprint.1bpp"); -const u8 gMonFootprint_Zubat[] = INCBIN_U8("graphics/pokemon/zubat/footprint.1bpp"); -const u8 gMonFootprint_Golbat[] = INCBIN_U8("graphics/pokemon/golbat/footprint.1bpp"); -const u8 gMonFootprint_Oddish[] = INCBIN_U8("graphics/pokemon/oddish/footprint.1bpp"); -const u8 gMonFootprint_Gloom[] = INCBIN_U8("graphics/pokemon/gloom/footprint.1bpp"); -const u8 gMonFootprint_Vileplume[] = INCBIN_U8("graphics/pokemon/vileplume/footprint.1bpp"); -const u8 gMonFootprint_Paras[] = INCBIN_U8("graphics/pokemon/paras/footprint.1bpp"); -const u8 gMonFootprint_Parasect[] = INCBIN_U8("graphics/pokemon/parasect/footprint.1bpp"); -const u8 gMonFootprint_Venonat[] = INCBIN_U8("graphics/pokemon/venonat/footprint.1bpp"); -const u8 gMonFootprint_Venomoth[] = INCBIN_U8("graphics/pokemon/venomoth/footprint.1bpp"); -const u8 gMonFootprint_Diglett[] = INCBIN_U8("graphics/pokemon/diglett/footprint.1bpp"); -const u8 gMonFootprint_Dugtrio[] = INCBIN_U8("graphics/pokemon/dugtrio/footprint.1bpp"); -const u8 gMonFootprint_Meowth[] = INCBIN_U8("graphics/pokemon/meowth/footprint.1bpp"); -const u8 gMonFootprint_Persian[] = INCBIN_U8("graphics/pokemon/persian/footprint.1bpp"); -const u8 gMonFootprint_Psyduck[] = INCBIN_U8("graphics/pokemon/psyduck/footprint.1bpp"); -const u8 gMonFootprint_Golduck[] = INCBIN_U8("graphics/pokemon/golduck/footprint.1bpp"); -const u8 gMonFootprint_Mankey[] = INCBIN_U8("graphics/pokemon/mankey/footprint.1bpp"); -const u8 gMonFootprint_Primeape[] = INCBIN_U8("graphics/pokemon/primeape/footprint.1bpp"); -const u8 gMonFootprint_Growlithe[] = INCBIN_U8("graphics/pokemon/growlithe/footprint.1bpp"); -const u8 gMonFootprint_Arcanine[] = INCBIN_U8("graphics/pokemon/arcanine/footprint.1bpp"); -const u8 gMonFootprint_Poliwag[] = INCBIN_U8("graphics/pokemon/poliwag/footprint.1bpp"); -const u8 gMonFootprint_Poliwhirl[] = INCBIN_U8("graphics/pokemon/poliwhirl/footprint.1bpp"); -const u8 gMonFootprint_Poliwrath[] = INCBIN_U8("graphics/pokemon/poliwrath/footprint.1bpp"); -const u8 gMonFootprint_Abra[] = INCBIN_U8("graphics/pokemon/abra/footprint.1bpp"); -const u8 gMonFootprint_Kadabra[] = INCBIN_U8("graphics/pokemon/kadabra/footprint.1bpp"); -const u8 gMonFootprint_Alakazam[] = INCBIN_U8("graphics/pokemon/alakazam/footprint.1bpp"); -const u8 gMonFootprint_Machop[] = INCBIN_U8("graphics/pokemon/machop/footprint.1bpp"); -const u8 gMonFootprint_Machoke[] = INCBIN_U8("graphics/pokemon/machoke/footprint.1bpp"); -const u8 gMonFootprint_Machamp[] = INCBIN_U8("graphics/pokemon/machamp/footprint.1bpp"); -const u8 gMonFootprint_Bellsprout[] = INCBIN_U8("graphics/pokemon/bellsprout/footprint.1bpp"); -const u8 gMonFootprint_Weepinbell[] = INCBIN_U8("graphics/pokemon/weepinbell/footprint.1bpp"); -const u8 gMonFootprint_Victreebel[] = INCBIN_U8("graphics/pokemon/victreebel/footprint.1bpp"); -const u8 gMonFootprint_Tentacool[] = INCBIN_U8("graphics/pokemon/tentacool/footprint.1bpp"); -const u8 gMonFootprint_Tentacruel[] = INCBIN_U8("graphics/pokemon/tentacruel/footprint.1bpp"); -const u8 gMonFootprint_Geodude[] = INCBIN_U8("graphics/pokemon/geodude/footprint.1bpp"); -const u8 gMonFootprint_Graveler[] = INCBIN_U8("graphics/pokemon/graveler/footprint.1bpp"); -const u8 gMonFootprint_Golem[] = INCBIN_U8("graphics/pokemon/golem/footprint.1bpp"); -const u8 gMonFootprint_Ponyta[] = INCBIN_U8("graphics/pokemon/ponyta/footprint.1bpp"); -const u8 gMonFootprint_Rapidash[] = INCBIN_U8("graphics/pokemon/rapidash/footprint.1bpp"); -const u8 gMonFootprint_Slowpoke[] = INCBIN_U8("graphics/pokemon/slowpoke/footprint.1bpp"); -const u8 gMonFootprint_Slowbro[] = INCBIN_U8("graphics/pokemon/slowbro/footprint.1bpp"); -const u8 gMonFootprint_Magnemite[] = INCBIN_U8("graphics/pokemon/magnemite/footprint.1bpp"); -const u8 gMonFootprint_Magneton[] = INCBIN_U8("graphics/pokemon/magneton/footprint.1bpp"); -const u8 gMonFootprint_Farfetchd[] = INCBIN_U8("graphics/pokemon/farfetchd/footprint.1bpp"); -const u8 gMonFootprint_Doduo[] = INCBIN_U8("graphics/pokemon/doduo/footprint.1bpp"); -const u8 gMonFootprint_Dodrio[] = INCBIN_U8("graphics/pokemon/dodrio/footprint.1bpp"); -const u8 gMonFootprint_Seel[] = INCBIN_U8("graphics/pokemon/seel/footprint.1bpp"); -const u8 gMonFootprint_Dewgong[] = INCBIN_U8("graphics/pokemon/dewgong/footprint.1bpp"); -const u8 gMonFootprint_Grimer[] = INCBIN_U8("graphics/pokemon/grimer/footprint.1bpp"); -const u8 gMonFootprint_Muk[] = INCBIN_U8("graphics/pokemon/muk/footprint.1bpp"); -const u8 gMonFootprint_Shellder[] = INCBIN_U8("graphics/pokemon/shellder/footprint.1bpp"); -const u8 gMonFootprint_Cloyster[] = INCBIN_U8("graphics/pokemon/cloyster/footprint.1bpp"); -const u8 gMonFootprint_Gastly[] = INCBIN_U8("graphics/pokemon/gastly/footprint.1bpp"); -const u8 gMonFootprint_Haunter[] = INCBIN_U8("graphics/pokemon/haunter/footprint.1bpp"); -const u8 gMonFootprint_Gengar[] = INCBIN_U8("graphics/pokemon/gengar/footprint.1bpp"); -const u8 gMonFootprint_Onix[] = INCBIN_U8("graphics/pokemon/onix/footprint.1bpp"); -const u8 gMonFootprint_Drowzee[] = INCBIN_U8("graphics/pokemon/drowzee/footprint.1bpp"); -const u8 gMonFootprint_Hypno[] = INCBIN_U8("graphics/pokemon/hypno/footprint.1bpp"); -const u8 gMonFootprint_Krabby[] = INCBIN_U8("graphics/pokemon/krabby/footprint.1bpp"); -const u8 gMonFootprint_Kingler[] = INCBIN_U8("graphics/pokemon/kingler/footprint.1bpp"); -const u8 gMonFootprint_Voltorb[] = INCBIN_U8("graphics/pokemon/voltorb/footprint.1bpp"); -const u8 gMonFootprint_Electrode[] = INCBIN_U8("graphics/pokemon/electrode/footprint.1bpp"); -const u8 gMonFootprint_Exeggcute[] = INCBIN_U8("graphics/pokemon/exeggcute/footprint.1bpp"); -const u8 gMonFootprint_Exeggutor[] = INCBIN_U8("graphics/pokemon/exeggutor/footprint.1bpp"); -const u8 gMonFootprint_Cubone[] = INCBIN_U8("graphics/pokemon/cubone/footprint.1bpp"); -const u8 gMonFootprint_Marowak[] = INCBIN_U8("graphics/pokemon/marowak/footprint.1bpp"); -const u8 gMonFootprint_Hitmonlee[] = INCBIN_U8("graphics/pokemon/hitmonlee/footprint.1bpp"); -const u8 gMonFootprint_Hitmonchan[] = INCBIN_U8("graphics/pokemon/hitmonchan/footprint.1bpp"); -const u8 gMonFootprint_Lickitung[] = INCBIN_U8("graphics/pokemon/lickitung/footprint.1bpp"); -const u8 gMonFootprint_Koffing[] = INCBIN_U8("graphics/pokemon/koffing/footprint.1bpp"); -const u8 gMonFootprint_Weezing[] = INCBIN_U8("graphics/pokemon/weezing/footprint.1bpp"); -const u8 gMonFootprint_Rhyhorn[] = INCBIN_U8("graphics/pokemon/rhyhorn/footprint.1bpp"); -const u8 gMonFootprint_Rhydon[] = INCBIN_U8("graphics/pokemon/rhydon/footprint.1bpp"); -const u8 gMonFootprint_Chansey[] = INCBIN_U8("graphics/pokemon/chansey/footprint.1bpp"); -const u8 gMonFootprint_Tangela[] = INCBIN_U8("graphics/pokemon/tangela/footprint.1bpp"); -const u8 gMonFootprint_Kangaskhan[] = INCBIN_U8("graphics/pokemon/kangaskhan/footprint.1bpp"); -const u8 gMonFootprint_Horsea[] = INCBIN_U8("graphics/pokemon/horsea/footprint.1bpp"); -const u8 gMonFootprint_Seadra[] = INCBIN_U8("graphics/pokemon/seadra/footprint.1bpp"); -const u8 gMonFootprint_Goldeen[] = INCBIN_U8("graphics/pokemon/goldeen/footprint.1bpp"); -const u8 gMonFootprint_Seaking[] = INCBIN_U8("graphics/pokemon/seaking/footprint.1bpp"); -const u8 gMonFootprint_Staryu[] = INCBIN_U8("graphics/pokemon/staryu/footprint.1bpp"); -const u8 gMonFootprint_Starmie[] = INCBIN_U8("graphics/pokemon/starmie/footprint.1bpp"); -const u8 gMonFootprint_MrMime[] = INCBIN_U8("graphics/pokemon/mr_mime/footprint.1bpp"); -const u8 gMonFootprint_Scyther[] = INCBIN_U8("graphics/pokemon/scyther/footprint.1bpp"); -const u8 gMonFootprint_Jynx[] = INCBIN_U8("graphics/pokemon/jynx/footprint.1bpp"); -const u8 gMonFootprint_Electabuzz[] = INCBIN_U8("graphics/pokemon/electabuzz/footprint.1bpp"); -const u8 gMonFootprint_Magmar[] = INCBIN_U8("graphics/pokemon/magmar/footprint.1bpp"); -const u8 gMonFootprint_Pinsir[] = INCBIN_U8("graphics/pokemon/pinsir/footprint.1bpp"); -const u8 gMonFootprint_Tauros[] = INCBIN_U8("graphics/pokemon/tauros/footprint.1bpp"); -const u8 gMonFootprint_Magikarp[] = INCBIN_U8("graphics/pokemon/magikarp/footprint.1bpp"); -const u8 gMonFootprint_Gyarados[] = INCBIN_U8("graphics/pokemon/gyarados/footprint.1bpp"); -const u8 gMonFootprint_Lapras[] = INCBIN_U8("graphics/pokemon/lapras/footprint.1bpp"); -const u8 gMonFootprint_Ditto[] = INCBIN_U8("graphics/pokemon/ditto/footprint.1bpp"); -const u8 gMonFootprint_Eevee[] = INCBIN_U8("graphics/pokemon/eevee/footprint.1bpp"); -const u8 gMonFootprint_Vaporeon[] = INCBIN_U8("graphics/pokemon/vaporeon/footprint.1bpp"); -const u8 gMonFootprint_Jolteon[] = INCBIN_U8("graphics/pokemon/jolteon/footprint.1bpp"); -const u8 gMonFootprint_Flareon[] = INCBIN_U8("graphics/pokemon/flareon/footprint.1bpp"); -const u8 gMonFootprint_Porygon[] = INCBIN_U8("graphics/pokemon/porygon/footprint.1bpp"); -const u8 gMonFootprint_Omanyte[] = INCBIN_U8("graphics/pokemon/omanyte/footprint.1bpp"); -const u8 gMonFootprint_Omastar[] = INCBIN_U8("graphics/pokemon/omastar/footprint.1bpp"); -const u8 gMonFootprint_Kabuto[] = INCBIN_U8("graphics/pokemon/kabuto/footprint.1bpp"); -const u8 gMonFootprint_Kabutops[] = INCBIN_U8("graphics/pokemon/kabutops/footprint.1bpp"); -const u8 gMonFootprint_Aerodactyl[] = INCBIN_U8("graphics/pokemon/aerodactyl/footprint.1bpp"); -const u8 gMonFootprint_Snorlax[] = INCBIN_U8("graphics/pokemon/snorlax/footprint.1bpp"); -const u8 gMonFootprint_Articuno[] = INCBIN_U8("graphics/pokemon/articuno/footprint.1bpp"); -const u8 gMonFootprint_Zapdos[] = INCBIN_U8("graphics/pokemon/zapdos/footprint.1bpp"); -const u8 gMonFootprint_Moltres[] = INCBIN_U8("graphics/pokemon/moltres/footprint.1bpp"); -const u8 gMonFootprint_Dratini[] = INCBIN_U8("graphics/pokemon/dratini/footprint.1bpp"); -const u8 gMonFootprint_Dragonair[] = INCBIN_U8("graphics/pokemon/dragonair/footprint.1bpp"); -const u8 gMonFootprint_Dragonite[] = INCBIN_U8("graphics/pokemon/dragonite/footprint.1bpp"); -const u8 gMonFootprint_Mewtwo[] = INCBIN_U8("graphics/pokemon/mewtwo/footprint.1bpp"); -const u8 gMonFootprint_Mew[] = INCBIN_U8("graphics/pokemon/mew/footprint.1bpp"); -const u8 gMonFootprint_Chikorita[] = INCBIN_U8("graphics/pokemon/chikorita/footprint.1bpp"); -const u8 gMonFootprint_Bayleef[] = INCBIN_U8("graphics/pokemon/bayleef/footprint.1bpp"); -const u8 gMonFootprint_Meganium[] = INCBIN_U8("graphics/pokemon/meganium/footprint.1bpp"); -const u8 gMonFootprint_Cyndaquil[] = INCBIN_U8("graphics/pokemon/cyndaquil/footprint.1bpp"); -const u8 gMonFootprint_Quilava[] = INCBIN_U8("graphics/pokemon/quilava/footprint.1bpp"); -const u8 gMonFootprint_Typhlosion[] = INCBIN_U8("graphics/pokemon/typhlosion/footprint.1bpp"); -const u8 gMonFootprint_Totodile[] = INCBIN_U8("graphics/pokemon/totodile/footprint.1bpp"); -const u8 gMonFootprint_Croconaw[] = INCBIN_U8("graphics/pokemon/croconaw/footprint.1bpp"); -const u8 gMonFootprint_Feraligatr[] = INCBIN_U8("graphics/pokemon/feraligatr/footprint.1bpp"); -const u8 gMonFootprint_Sentret[] = INCBIN_U8("graphics/pokemon/sentret/footprint.1bpp"); -const u8 gMonFootprint_Furret[] = INCBIN_U8("graphics/pokemon/furret/footprint.1bpp"); -const u8 gMonFootprint_Hoothoot[] = INCBIN_U8("graphics/pokemon/hoothoot/footprint.1bpp"); -const u8 gMonFootprint_Noctowl[] = INCBIN_U8("graphics/pokemon/noctowl/footprint.1bpp"); -const u8 gMonFootprint_Ledyba[] = INCBIN_U8("graphics/pokemon/ledyba/footprint.1bpp"); -const u8 gMonFootprint_Ledian[] = INCBIN_U8("graphics/pokemon/ledian/footprint.1bpp"); -const u8 gMonFootprint_Spinarak[] = INCBIN_U8("graphics/pokemon/spinarak/footprint.1bpp"); -const u8 gMonFootprint_Ariados[] = INCBIN_U8("graphics/pokemon/ariados/footprint.1bpp"); -const u8 gMonFootprint_Crobat[] = INCBIN_U8("graphics/pokemon/crobat/footprint.1bpp"); -const u8 gMonFootprint_Chinchou[] = INCBIN_U8("graphics/pokemon/chinchou/footprint.1bpp"); -const u8 gMonFootprint_Lanturn[] = INCBIN_U8("graphics/pokemon/lanturn/footprint.1bpp"); -const u8 gMonFootprint_Pichu[] = INCBIN_U8("graphics/pokemon/pichu/footprint.1bpp"); -const u8 gMonFootprint_Cleffa[] = INCBIN_U8("graphics/pokemon/cleffa/footprint.1bpp"); -const u8 gMonFootprint_Igglybuff[] = INCBIN_U8("graphics/pokemon/igglybuff/footprint.1bpp"); -const u8 gMonFootprint_Togepi[] = INCBIN_U8("graphics/pokemon/togepi/footprint.1bpp"); -const u8 gMonFootprint_Togetic[] = INCBIN_U8("graphics/pokemon/togetic/footprint.1bpp"); -const u8 gMonFootprint_Natu[] = INCBIN_U8("graphics/pokemon/natu/footprint.1bpp"); -const u8 gMonFootprint_Xatu[] = INCBIN_U8("graphics/pokemon/xatu/footprint.1bpp"); -const u8 gMonFootprint_Mareep[] = INCBIN_U8("graphics/pokemon/mareep/footprint.1bpp"); -const u8 gMonFootprint_Flaaffy[] = INCBIN_U8("graphics/pokemon/flaaffy/footprint.1bpp"); -const u8 gMonFootprint_Ampharos[] = INCBIN_U8("graphics/pokemon/ampharos/footprint.1bpp"); -const u8 gMonFootprint_Bellossom[] = INCBIN_U8("graphics/pokemon/bellossom/footprint.1bpp"); -const u8 gMonFootprint_Marill[] = INCBIN_U8("graphics/pokemon/marill/footprint.1bpp"); -const u8 gMonFootprint_Azumarill[] = INCBIN_U8("graphics/pokemon/azumarill/footprint.1bpp"); -const u8 gMonFootprint_Sudowoodo[] = INCBIN_U8("graphics/pokemon/sudowoodo/footprint.1bpp"); -const u8 gMonFootprint_Politoed[] = INCBIN_U8("graphics/pokemon/politoed/footprint.1bpp"); -const u8 gMonFootprint_Hoppip[] = INCBIN_U8("graphics/pokemon/hoppip/footprint.1bpp"); -const u8 gMonFootprint_Skiploom[] = INCBIN_U8("graphics/pokemon/skiploom/footprint.1bpp"); -const u8 gMonFootprint_Jumpluff[] = INCBIN_U8("graphics/pokemon/jumpluff/footprint.1bpp"); -const u8 gMonFootprint_Aipom[] = INCBIN_U8("graphics/pokemon/aipom/footprint.1bpp"); -const u8 gMonFootprint_Sunkern[] = INCBIN_U8("graphics/pokemon/sunkern/footprint.1bpp"); -const u8 gMonFootprint_Sunflora[] = INCBIN_U8("graphics/pokemon/sunflora/footprint.1bpp"); -const u8 gMonFootprint_Yanma[] = INCBIN_U8("graphics/pokemon/yanma/footprint.1bpp"); -const u8 gMonFootprint_Wooper[] = INCBIN_U8("graphics/pokemon/wooper/footprint.1bpp"); -const u8 gMonFootprint_Quagsire[] = INCBIN_U8("graphics/pokemon/quagsire/footprint.1bpp"); -const u8 gMonFootprint_Espeon[] = INCBIN_U8("graphics/pokemon/espeon/footprint.1bpp"); -const u8 gMonFootprint_Umbreon[] = INCBIN_U8("graphics/pokemon/umbreon/footprint.1bpp"); -const u8 gMonFootprint_Murkrow[] = INCBIN_U8("graphics/pokemon/murkrow/footprint.1bpp"); -const u8 gMonFootprint_Slowking[] = INCBIN_U8("graphics/pokemon/slowking/footprint.1bpp"); -const u8 gMonFootprint_Misdreavus[] = INCBIN_U8("graphics/pokemon/misdreavus/footprint.1bpp"); -const u8 gMonFootprint_Unown[] = INCBIN_U8("graphics/pokemon/unown/footprint.1bpp"); -const u8 gMonFootprint_Wobbuffet[] = INCBIN_U8("graphics/pokemon/wobbuffet/footprint.1bpp"); -const u8 gMonFootprint_Girafarig[] = INCBIN_U8("graphics/pokemon/girafarig/footprint.1bpp"); -const u8 gMonFootprint_Pineco[] = INCBIN_U8("graphics/pokemon/pineco/footprint.1bpp"); -const u8 gMonFootprint_Forretress[] = INCBIN_U8("graphics/pokemon/forretress/footprint.1bpp"); -const u8 gMonFootprint_Dunsparce[] = INCBIN_U8("graphics/pokemon/dunsparce/footprint.1bpp"); -const u8 gMonFootprint_Gligar[] = INCBIN_U8("graphics/pokemon/gligar/footprint.1bpp"); -const u8 gMonFootprint_Steelix[] = INCBIN_U8("graphics/pokemon/steelix/footprint.1bpp"); -const u8 gMonFootprint_Snubbull[] = INCBIN_U8("graphics/pokemon/snubbull/footprint.1bpp"); -const u8 gMonFootprint_Granbull[] = INCBIN_U8("graphics/pokemon/granbull/footprint.1bpp"); -const u8 gMonFootprint_Qwilfish[] = INCBIN_U8("graphics/pokemon/qwilfish/footprint.1bpp"); -const u8 gMonFootprint_Scizor[] = INCBIN_U8("graphics/pokemon/scizor/footprint.1bpp"); -const u8 gMonFootprint_Shuckle[] = INCBIN_U8("graphics/pokemon/shuckle/footprint.1bpp"); -const u8 gMonFootprint_Heracross[] = INCBIN_U8("graphics/pokemon/heracross/footprint.1bpp"); -const u8 gMonFootprint_Sneasel[] = INCBIN_U8("graphics/pokemon/sneasel/footprint.1bpp"); -const u8 gMonFootprint_Teddiursa[] = INCBIN_U8("graphics/pokemon/teddiursa/footprint.1bpp"); -const u8 gMonFootprint_Ursaring[] = INCBIN_U8("graphics/pokemon/ursaring/footprint.1bpp"); -const u8 gMonFootprint_Slugma[] = INCBIN_U8("graphics/pokemon/slugma/footprint.1bpp"); -const u8 gMonFootprint_Magcargo[] = INCBIN_U8("graphics/pokemon/magcargo/footprint.1bpp"); -const u8 gMonFootprint_Swinub[] = INCBIN_U8("graphics/pokemon/swinub/footprint.1bpp"); -const u8 gMonFootprint_Piloswine[] = INCBIN_U8("graphics/pokemon/piloswine/footprint.1bpp"); -const u8 gMonFootprint_Corsola[] = INCBIN_U8("graphics/pokemon/corsola/footprint.1bpp"); -const u8 gMonFootprint_Remoraid[] = INCBIN_U8("graphics/pokemon/remoraid/footprint.1bpp"); -const u8 gMonFootprint_Octillery[] = INCBIN_U8("graphics/pokemon/octillery/footprint.1bpp"); -const u8 gMonFootprint_Delibird[] = INCBIN_U8("graphics/pokemon/delibird/footprint.1bpp"); -const u8 gMonFootprint_Mantine[] = INCBIN_U8("graphics/pokemon/mantine/footprint.1bpp"); -const u8 gMonFootprint_Skarmory[] = INCBIN_U8("graphics/pokemon/skarmory/footprint.1bpp"); -const u8 gMonFootprint_Houndour[] = INCBIN_U8("graphics/pokemon/houndour/footprint.1bpp"); -const u8 gMonFootprint_Houndoom[] = INCBIN_U8("graphics/pokemon/houndoom/footprint.1bpp"); -const u8 gMonFootprint_Kingdra[] = INCBIN_U8("graphics/pokemon/kingdra/footprint.1bpp"); -const u8 gMonFootprint_Phanpy[] = INCBIN_U8("graphics/pokemon/phanpy/footprint.1bpp"); -const u8 gMonFootprint_Donphan[] = INCBIN_U8("graphics/pokemon/donphan/footprint.1bpp"); -const u8 gMonFootprint_Porygon2[] = INCBIN_U8("graphics/pokemon/porygon2/footprint.1bpp"); -const u8 gMonFootprint_Stantler[] = INCBIN_U8("graphics/pokemon/stantler/footprint.1bpp"); -const u8 gMonFootprint_Smeargle[] = INCBIN_U8("graphics/pokemon/smeargle/footprint.1bpp"); -const u8 gMonFootprint_Tyrogue[] = INCBIN_U8("graphics/pokemon/tyrogue/footprint.1bpp"); -const u8 gMonFootprint_Hitmontop[] = INCBIN_U8("graphics/pokemon/hitmontop/footprint.1bpp"); -const u8 gMonFootprint_Smoochum[] = INCBIN_U8("graphics/pokemon/smoochum/footprint.1bpp"); -const u8 gMonFootprint_Elekid[] = INCBIN_U8("graphics/pokemon/elekid/footprint.1bpp"); -const u8 gMonFootprint_Magby[] = INCBIN_U8("graphics/pokemon/magby/footprint.1bpp"); -const u8 gMonFootprint_Miltank[] = INCBIN_U8("graphics/pokemon/miltank/footprint.1bpp"); -const u8 gMonFootprint_Blissey[] = INCBIN_U8("graphics/pokemon/blissey/footprint.1bpp"); -const u8 gMonFootprint_Raikou[] = INCBIN_U8("graphics/pokemon/raikou/footprint.1bpp"); -const u8 gMonFootprint_Entei[] = INCBIN_U8("graphics/pokemon/entei/footprint.1bpp"); -const u8 gMonFootprint_Suicune[] = INCBIN_U8("graphics/pokemon/suicune/footprint.1bpp"); -const u8 gMonFootprint_Larvitar[] = INCBIN_U8("graphics/pokemon/larvitar/footprint.1bpp"); -const u8 gMonFootprint_Pupitar[] = INCBIN_U8("graphics/pokemon/pupitar/footprint.1bpp"); -const u8 gMonFootprint_Tyranitar[] = INCBIN_U8("graphics/pokemon/tyranitar/footprint.1bpp"); -const u8 gMonFootprint_Lugia[] = INCBIN_U8("graphics/pokemon/lugia/footprint.1bpp"); -const u8 gMonFootprint_HoOh[] = INCBIN_U8("graphics/pokemon/ho_oh/footprint.1bpp"); -const u8 gMonFootprint_Celebi[] = INCBIN_U8("graphics/pokemon/celebi/footprint.1bpp"); -const u8 gMonFootprint_Treecko[] = INCBIN_U8("graphics/pokemon/treecko/footprint.1bpp"); -const u8 gMonFootprint_Grovyle[] = INCBIN_U8("graphics/pokemon/grovyle/footprint.1bpp"); -const u8 gMonFootprint_Sceptile[] = INCBIN_U8("graphics/pokemon/sceptile/footprint.1bpp"); -const u8 gMonFootprint_Torchic[] = INCBIN_U8("graphics/pokemon/torchic/footprint.1bpp"); -const u8 gMonFootprint_Combusken[] = INCBIN_U8("graphics/pokemon/combusken/footprint.1bpp"); -const u8 gMonFootprint_Blaziken[] = INCBIN_U8("graphics/pokemon/blaziken/footprint.1bpp"); -const u8 gMonFootprint_Mudkip[] = INCBIN_U8("graphics/pokemon/mudkip/footprint.1bpp"); -const u8 gMonFootprint_Marshtomp[] = INCBIN_U8("graphics/pokemon/marshtomp/footprint.1bpp"); -const u8 gMonFootprint_Swampert[] = INCBIN_U8("graphics/pokemon/swampert/footprint.1bpp"); -const u8 gMonFootprint_Poochyena[] = INCBIN_U8("graphics/pokemon/poochyena/footprint.1bpp"); -const u8 gMonFootprint_Mightyena[] = INCBIN_U8("graphics/pokemon/mightyena/footprint.1bpp"); -const u8 gMonFootprint_Zigzagoon[] = INCBIN_U8("graphics/pokemon/zigzagoon/footprint.1bpp"); -const u8 gMonFootprint_Linoone[] = INCBIN_U8("graphics/pokemon/linoone/footprint.1bpp"); -const u8 gMonFootprint_Wurmple[] = INCBIN_U8("graphics/pokemon/wurmple/footprint.1bpp"); -const u8 gMonFootprint_Silcoon[] = INCBIN_U8("graphics/pokemon/silcoon/footprint.1bpp"); -const u8 gMonFootprint_Beautifly[] = INCBIN_U8("graphics/pokemon/beautifly/footprint.1bpp"); -const u8 gMonFootprint_Cascoon[] = INCBIN_U8("graphics/pokemon/cascoon/footprint.1bpp"); -const u8 gMonFootprint_Dustox[] = INCBIN_U8("graphics/pokemon/dustox/footprint.1bpp"); -const u8 gMonFootprint_Lotad[] = INCBIN_U8("graphics/pokemon/lotad/footprint.1bpp"); -const u8 gMonFootprint_Lombre[] = INCBIN_U8("graphics/pokemon/lombre/footprint.1bpp"); -const u8 gMonFootprint_Ludicolo[] = INCBIN_U8("graphics/pokemon/ludicolo/footprint.1bpp"); -const u8 gMonFootprint_Seedot[] = INCBIN_U8("graphics/pokemon/seedot/footprint.1bpp"); -const u8 gMonFootprint_Nuzleaf[] = INCBIN_U8("graphics/pokemon/nuzleaf/footprint.1bpp"); -const u8 gMonFootprint_Shiftry[] = INCBIN_U8("graphics/pokemon/shiftry/footprint.1bpp"); -const u8 gMonFootprint_Nincada[] = INCBIN_U8("graphics/pokemon/nincada/footprint.1bpp"); -const u8 gMonFootprint_Ninjask[] = INCBIN_U8("graphics/pokemon/ninjask/footprint.1bpp"); -const u8 gMonFootprint_Shedinja[] = INCBIN_U8("graphics/pokemon/shedinja/footprint.1bpp"); -const u8 gMonFootprint_Taillow[] = INCBIN_U8("graphics/pokemon/taillow/footprint.1bpp"); -const u8 gMonFootprint_Swellow[] = INCBIN_U8("graphics/pokemon/swellow/footprint.1bpp"); -const u8 gMonFootprint_Shroomish[] = INCBIN_U8("graphics/pokemon/shroomish/footprint.1bpp"); -const u8 gMonFootprint_Breloom[] = INCBIN_U8("graphics/pokemon/breloom/footprint.1bpp"); -const u8 gMonFootprint_Spinda[] = INCBIN_U8("graphics/pokemon/spinda/footprint.1bpp"); -const u8 gMonFootprint_Wingull[] = INCBIN_U8("graphics/pokemon/wingull/footprint.1bpp"); -const u8 gMonFootprint_Pelipper[] = INCBIN_U8("graphics/pokemon/pelipper/footprint.1bpp"); -const u8 gMonFootprint_Surskit[] = INCBIN_U8("graphics/pokemon/surskit/footprint.1bpp"); -const u8 gMonFootprint_Masquerain[] = INCBIN_U8("graphics/pokemon/masquerain/footprint.1bpp"); -const u8 gMonFootprint_Wailmer[] = INCBIN_U8("graphics/pokemon/wailmer/footprint.1bpp"); -const u8 gMonFootprint_Wailord[] = INCBIN_U8("graphics/pokemon/wailord/footprint.1bpp"); -const u8 gMonFootprint_Skitty[] = INCBIN_U8("graphics/pokemon/skitty/footprint.1bpp"); -const u8 gMonFootprint_Delcatty[] = INCBIN_U8("graphics/pokemon/delcatty/footprint.1bpp"); -const u8 gMonFootprint_Kecleon[] = INCBIN_U8("graphics/pokemon/kecleon/footprint.1bpp"); -const u8 gMonFootprint_Baltoy[] = INCBIN_U8("graphics/pokemon/baltoy/footprint.1bpp"); -const u8 gMonFootprint_Claydol[] = INCBIN_U8("graphics/pokemon/claydol/footprint.1bpp"); -const u8 gMonFootprint_Nosepass[] = INCBIN_U8("graphics/pokemon/nosepass/footprint.1bpp"); -const u8 gMonFootprint_Torkoal[] = INCBIN_U8("graphics/pokemon/torkoal/footprint.1bpp"); -const u8 gMonFootprint_Sableye[] = INCBIN_U8("graphics/pokemon/sableye/footprint.1bpp"); -const u8 gMonFootprint_Barboach[] = INCBIN_U8("graphics/pokemon/barboach/footprint.1bpp"); -const u8 gMonFootprint_Whiscash[] = INCBIN_U8("graphics/pokemon/whiscash/footprint.1bpp"); -const u8 gMonFootprint_Luvdisc[] = INCBIN_U8("graphics/pokemon/luvdisc/footprint.1bpp"); -const u8 gMonFootprint_Corphish[] = INCBIN_U8("graphics/pokemon/corphish/footprint.1bpp"); -const u8 gMonFootprint_Crawdaunt[] = INCBIN_U8("graphics/pokemon/crawdaunt/footprint.1bpp"); -const u8 gMonFootprint_Feebas[] = INCBIN_U8("graphics/pokemon/feebas/footprint.1bpp"); -const u8 gMonFootprint_Milotic[] = INCBIN_U8("graphics/pokemon/milotic/footprint.1bpp"); -const u8 gMonFootprint_Carvanha[] = INCBIN_U8("graphics/pokemon/carvanha/footprint.1bpp"); -const u8 gMonFootprint_Sharpedo[] = INCBIN_U8("graphics/pokemon/sharpedo/footprint.1bpp"); -const u8 gMonFootprint_Trapinch[] = INCBIN_U8("graphics/pokemon/trapinch/footprint.1bpp"); -const u8 gMonFootprint_Vibrava[] = INCBIN_U8("graphics/pokemon/vibrava/footprint.1bpp"); -const u8 gMonFootprint_Flygon[] = INCBIN_U8("graphics/pokemon/flygon/footprint.1bpp"); -const u8 gMonFootprint_Makuhita[] = INCBIN_U8("graphics/pokemon/makuhita/footprint.1bpp"); -const u8 gMonFootprint_Hariyama[] = INCBIN_U8("graphics/pokemon/hariyama/footprint.1bpp"); -const u8 gMonFootprint_Electrike[] = INCBIN_U8("graphics/pokemon/electrike/footprint.1bpp"); -const u8 gMonFootprint_Manectric[] = INCBIN_U8("graphics/pokemon/manectric/footprint.1bpp"); -const u8 gMonFootprint_Numel[] = INCBIN_U8("graphics/pokemon/numel/footprint.1bpp"); -const u8 gMonFootprint_Camerupt[] = INCBIN_U8("graphics/pokemon/camerupt/footprint.1bpp"); -const u8 gMonFootprint_Spheal[] = INCBIN_U8("graphics/pokemon/spheal/footprint.1bpp"); -const u8 gMonFootprint_Sealeo[] = INCBIN_U8("graphics/pokemon/sealeo/footprint.1bpp"); -const u8 gMonFootprint_Walrein[] = INCBIN_U8("graphics/pokemon/walrein/footprint.1bpp"); -const u8 gMonFootprint_Cacnea[] = INCBIN_U8("graphics/pokemon/cacnea/footprint.1bpp"); -const u8 gMonFootprint_Cacturne[] = INCBIN_U8("graphics/pokemon/cacturne/footprint.1bpp"); -const u8 gMonFootprint_Snorunt[] = INCBIN_U8("graphics/pokemon/snorunt/footprint.1bpp"); -const u8 gMonFootprint_Glalie[] = INCBIN_U8("graphics/pokemon/glalie/footprint.1bpp"); -const u8 gMonFootprint_Lunatone[] = INCBIN_U8("graphics/pokemon/lunatone/footprint.1bpp"); -const u8 gMonFootprint_Solrock[] = INCBIN_U8("graphics/pokemon/solrock/footprint.1bpp"); -const u8 gMonFootprint_Azurill[] = INCBIN_U8("graphics/pokemon/azurill/footprint.1bpp"); -const u8 gMonFootprint_Spoink[] = INCBIN_U8("graphics/pokemon/spoink/footprint.1bpp"); -const u8 gMonFootprint_Grumpig[] = INCBIN_U8("graphics/pokemon/grumpig/footprint.1bpp"); -const u8 gMonFootprint_Plusle[] = INCBIN_U8("graphics/pokemon/plusle/footprint.1bpp"); -const u8 gMonFootprint_Minun[] = INCBIN_U8("graphics/pokemon/minun/footprint.1bpp"); -const u8 gMonFootprint_Mawile[] = INCBIN_U8("graphics/pokemon/mawile/footprint.1bpp"); -const u8 gMonFootprint_Meditite[] = INCBIN_U8("graphics/pokemon/meditite/footprint.1bpp"); -const u8 gMonFootprint_Medicham[] = INCBIN_U8("graphics/pokemon/medicham/footprint.1bpp"); -const u8 gMonFootprint_Swablu[] = INCBIN_U8("graphics/pokemon/swablu/footprint.1bpp"); -const u8 gMonFootprint_Altaria[] = INCBIN_U8("graphics/pokemon/altaria/footprint.1bpp"); -const u8 gMonFootprint_Wynaut[] = INCBIN_U8("graphics/pokemon/wynaut/footprint.1bpp"); -const u8 gMonFootprint_Duskull[] = INCBIN_U8("graphics/pokemon/duskull/footprint.1bpp"); -const u8 gMonFootprint_Dusclops[] = INCBIN_U8("graphics/pokemon/dusclops/footprint.1bpp"); -const u8 gMonFootprint_Roselia[] = INCBIN_U8("graphics/pokemon/roselia/footprint.1bpp"); -const u8 gMonFootprint_Slakoth[] = INCBIN_U8("graphics/pokemon/slakoth/footprint.1bpp"); -const u8 gMonFootprint_Vigoroth[] = INCBIN_U8("graphics/pokemon/vigoroth/footprint.1bpp"); -const u8 gMonFootprint_Slaking[] = INCBIN_U8("graphics/pokemon/slaking/footprint.1bpp"); -const u8 gMonFootprint_Gulpin[] = INCBIN_U8("graphics/pokemon/gulpin/footprint.1bpp"); -const u8 gMonFootprint_Swalot[] = INCBIN_U8("graphics/pokemon/swalot/footprint.1bpp"); -const u8 gMonFootprint_Tropius[] = INCBIN_U8("graphics/pokemon/tropius/footprint.1bpp"); -const u8 gMonFootprint_Whismur[] = INCBIN_U8("graphics/pokemon/whismur/footprint.1bpp"); -const u8 gMonFootprint_Loudred[] = INCBIN_U8("graphics/pokemon/loudred/footprint.1bpp"); -const u8 gMonFootprint_Exploud[] = INCBIN_U8("graphics/pokemon/exploud/footprint.1bpp"); -const u8 gMonFootprint_Clamperl[] = INCBIN_U8("graphics/pokemon/clamperl/footprint.1bpp"); -const u8 gMonFootprint_Huntail[] = INCBIN_U8("graphics/pokemon/huntail/footprint.1bpp"); -const u8 gMonFootprint_Gorebyss[] = INCBIN_U8("graphics/pokemon/gorebyss/footprint.1bpp"); -const u8 gMonFootprint_Absol[] = INCBIN_U8("graphics/pokemon/absol/footprint.1bpp"); -const u8 gMonFootprint_Shuppet[] = INCBIN_U8("graphics/pokemon/shuppet/footprint.1bpp"); -const u8 gMonFootprint_Banette[] = INCBIN_U8("graphics/pokemon/banette/footprint.1bpp"); -const u8 gMonFootprint_Seviper[] = INCBIN_U8("graphics/pokemon/seviper/footprint.1bpp"); -const u8 gMonFootprint_Zangoose[] = INCBIN_U8("graphics/pokemon/zangoose/footprint.1bpp"); -const u8 gMonFootprint_Relicanth[] = INCBIN_U8("graphics/pokemon/relicanth/footprint.1bpp"); -const u8 gMonFootprint_Aron[] = INCBIN_U8("graphics/pokemon/aron/footprint.1bpp"); -const u8 gMonFootprint_Lairon[] = INCBIN_U8("graphics/pokemon/lairon/footprint.1bpp"); -const u8 gMonFootprint_Aggron[] = INCBIN_U8("graphics/pokemon/aggron/footprint.1bpp"); -const u8 gMonFootprint_Castform[] = INCBIN_U8("graphics/pokemon/castform/footprint.1bpp"); -const u8 gMonFootprint_Volbeat[] = INCBIN_U8("graphics/pokemon/volbeat/footprint.1bpp"); -const u8 gMonFootprint_Illumise[] = INCBIN_U8("graphics/pokemon/illumise/footprint.1bpp"); -const u8 gMonFootprint_Lileep[] = INCBIN_U8("graphics/pokemon/lileep/footprint.1bpp"); -const u8 gMonFootprint_Cradily[] = INCBIN_U8("graphics/pokemon/cradily/footprint.1bpp"); -const u8 gMonFootprint_Anorith[] = INCBIN_U8("graphics/pokemon/anorith/footprint.1bpp"); -const u8 gMonFootprint_Armaldo[] = INCBIN_U8("graphics/pokemon/armaldo/footprint.1bpp"); -const u8 gMonFootprint_Ralts[] = INCBIN_U8("graphics/pokemon/ralts/footprint.1bpp"); -const u8 gMonFootprint_Kirlia[] = INCBIN_U8("graphics/pokemon/kirlia/footprint.1bpp"); -const u8 gMonFootprint_Gardevoir[] = INCBIN_U8("graphics/pokemon/gardevoir/footprint.1bpp"); -const u8 gMonFootprint_Bagon[] = INCBIN_U8("graphics/pokemon/bagon/footprint.1bpp"); -const u8 gMonFootprint_Shelgon[] = INCBIN_U8("graphics/pokemon/shelgon/footprint.1bpp"); -const u8 gMonFootprint_Salamence[] = INCBIN_U8("graphics/pokemon/salamence/footprint.1bpp"); -const u8 gMonFootprint_Beldum[] = INCBIN_U8("graphics/pokemon/beldum/footprint.1bpp"); -const u8 gMonFootprint_Metang[] = INCBIN_U8("graphics/pokemon/metang/footprint.1bpp"); -const u8 gMonFootprint_Metagross[] = INCBIN_U8("graphics/pokemon/metagross/footprint.1bpp"); -const u8 gMonFootprint_Regirock[] = INCBIN_U8("graphics/pokemon/regirock/footprint.1bpp"); -const u8 gMonFootprint_Regice[] = INCBIN_U8("graphics/pokemon/regice/footprint.1bpp"); -const u8 gMonFootprint_Registeel[] = INCBIN_U8("graphics/pokemon/registeel/footprint.1bpp"); -const u8 gMonFootprint_Kyogre[] = INCBIN_U8("graphics/pokemon/kyogre/footprint.1bpp"); -const u8 gMonFootprint_Groudon[] = INCBIN_U8("graphics/pokemon/groudon/footprint.1bpp"); -const u8 gMonFootprint_Rayquaza[] = INCBIN_U8("graphics/pokemon/rayquaza/footprint.1bpp"); -const u8 gMonFootprint_Latias[] = INCBIN_U8("graphics/pokemon/latias/footprint.1bpp"); -const u8 gMonFootprint_Latios[] = INCBIN_U8("graphics/pokemon/latios/footprint.1bpp"); -const u8 gMonFootprint_Jirachi[] = INCBIN_U8("graphics/pokemon/jirachi/footprint.1bpp"); -const u8 gMonFootprint_Deoxys[] = INCBIN_U8("graphics/pokemon/deoxys/footprint.1bpp"); -const u8 gMonFootprint_Chimecho[] = INCBIN_U8("graphics/pokemon/chimecho/footprint.1bpp"); -#if P_GEN_4_POKEMON == TRUE -const u8 gMonFootprint_Turtwig[] = INCBIN_U8("graphics/pokemon/turtwig/footprint.1bpp"); -const u8 gMonFootprint_Grotle[] = INCBIN_U8("graphics/pokemon/grotle/footprint.1bpp"); -const u8 gMonFootprint_Torterra[] = INCBIN_U8("graphics/pokemon/torterra/footprint.1bpp"); -const u8 gMonFootprint_Chimchar[] = INCBIN_U8("graphics/pokemon/chimchar/footprint.1bpp"); -const u8 gMonFootprint_Monferno[] = INCBIN_U8("graphics/pokemon/monferno/footprint.1bpp"); -const u8 gMonFootprint_Infernape[] = INCBIN_U8("graphics/pokemon/infernape/footprint.1bpp"); -const u8 gMonFootprint_Piplup[] = INCBIN_U8("graphics/pokemon/piplup/footprint.1bpp"); -const u8 gMonFootprint_Prinplup[] = INCBIN_U8("graphics/pokemon/prinplup/footprint.1bpp"); -const u8 gMonFootprint_Empoleon[] = INCBIN_U8("graphics/pokemon/empoleon/footprint.1bpp"); -const u8 gMonFootprint_Starly[] = INCBIN_U8("graphics/pokemon/starly/footprint.1bpp"); -const u8 gMonFootprint_Staravia[] = INCBIN_U8("graphics/pokemon/staravia/footprint.1bpp"); -const u8 gMonFootprint_Staraptor[] = INCBIN_U8("graphics/pokemon/staraptor/footprint.1bpp"); -const u8 gMonFootprint_Bidoof[] = INCBIN_U8("graphics/pokemon/bidoof/footprint.1bpp"); -const u8 gMonFootprint_Bibarel[] = INCBIN_U8("graphics/pokemon/bibarel/footprint.1bpp"); -const u8 gMonFootprint_Kricketot[] = INCBIN_U8("graphics/pokemon/kricketot/footprint.1bpp"); -const u8 gMonFootprint_Kricketune[] = INCBIN_U8("graphics/pokemon/kricketune/footprint.1bpp"); -const u8 gMonFootprint_Shinx[] = INCBIN_U8("graphics/pokemon/shinx/footprint.1bpp"); -const u8 gMonFootprint_Luxio[] = INCBIN_U8("graphics/pokemon/luxio/footprint.1bpp"); -const u8 gMonFootprint_Luxray[] = INCBIN_U8("graphics/pokemon/luxray/footprint.1bpp"); -const u8 gMonFootprint_Budew[] = INCBIN_U8("graphics/pokemon/budew/footprint.1bpp"); -const u8 gMonFootprint_Roserade[] = INCBIN_U8("graphics/pokemon/roserade/footprint.1bpp"); -const u8 gMonFootprint_Cranidos[] = INCBIN_U8("graphics/pokemon/cranidos/footprint.1bpp"); -const u8 gMonFootprint_Rampardos[] = INCBIN_U8("graphics/pokemon/rampardos/footprint.1bpp"); -const u8 gMonFootprint_Shieldon[] = INCBIN_U8("graphics/pokemon/shieldon/footprint.1bpp"); -const u8 gMonFootprint_Bastiodon[] = INCBIN_U8("graphics/pokemon/bastiodon/footprint.1bpp"); -const u8 gMonFootprint_Burmy[] = INCBIN_U8("graphics/pokemon/burmy/plant/footprint.1bpp"); -const u8 gMonFootprint_Wormadam[] = INCBIN_U8("graphics/pokemon/wormadam/plant/footprint.1bpp"); -const u8 gMonFootprint_Mothim[] = INCBIN_U8("graphics/pokemon/mothim/footprint.1bpp"); -const u8 gMonFootprint_Combee[] = INCBIN_U8("graphics/pokemon/combee/footprint.1bpp"); -const u8 gMonFootprint_Vespiquen[] = INCBIN_U8("graphics/pokemon/vespiquen/footprint.1bpp"); -const u8 gMonFootprint_Pachirisu[] = INCBIN_U8("graphics/pokemon/pachirisu/footprint.1bpp"); -const u8 gMonFootprint_Buizel[] = INCBIN_U8("graphics/pokemon/buizel/footprint.1bpp"); -const u8 gMonFootprint_Floatzel[] = INCBIN_U8("graphics/pokemon/floatzel/footprint.1bpp"); -const u8 gMonFootprint_Cherubi[] = INCBIN_U8("graphics/pokemon/cherubi/footprint.1bpp"); -const u8 gMonFootprint_Cherrim[] = INCBIN_U8("graphics/pokemon/cherrim/footprint.1bpp"); -const u8 gMonFootprint_Shellos[] = INCBIN_U8("graphics/pokemon/shellos/footprint.1bpp"); -const u8 gMonFootprint_Gastrodon[] = INCBIN_U8("graphics/pokemon/gastrodon/footprint.1bpp"); -const u8 gMonFootprint_Ambipom[] = INCBIN_U8("graphics/pokemon/ambipom/footprint.1bpp"); -const u8 gMonFootprint_Drifloon[] = INCBIN_U8("graphics/pokemon/drifloon/footprint.1bpp"); -const u8 gMonFootprint_Drifblim[] = INCBIN_U8("graphics/pokemon/drifblim/footprint.1bpp"); -const u8 gMonFootprint_Buneary[] = INCBIN_U8("graphics/pokemon/buneary/footprint.1bpp"); -const u8 gMonFootprint_Lopunny[] = INCBIN_U8("graphics/pokemon/lopunny/footprint.1bpp"); -const u8 gMonFootprint_Mismagius[] = INCBIN_U8("graphics/pokemon/mismagius/footprint.1bpp"); -const u8 gMonFootprint_Honchkrow[] = INCBIN_U8("graphics/pokemon/honchkrow/footprint.1bpp"); -const u8 gMonFootprint_Glameow[] = INCBIN_U8("graphics/pokemon/glameow/footprint.1bpp"); -const u8 gMonFootprint_Purugly[] = INCBIN_U8("graphics/pokemon/purugly/footprint.1bpp"); -const u8 gMonFootprint_Chingling[] = INCBIN_U8("graphics/pokemon/chingling/footprint.1bpp"); -const u8 gMonFootprint_Stunky[] = INCBIN_U8("graphics/pokemon/stunky/footprint.1bpp"); -const u8 gMonFootprint_Skuntank[] = INCBIN_U8("graphics/pokemon/skuntank/footprint.1bpp"); -const u8 gMonFootprint_Bronzor[] = INCBIN_U8("graphics/pokemon/bronzor/footprint.1bpp"); -const u8 gMonFootprint_Bronzong[] = INCBIN_U8("graphics/pokemon/bronzong/footprint.1bpp"); -const u8 gMonFootprint_Bonsly[] = INCBIN_U8("graphics/pokemon/bonsly/footprint.1bpp"); -const u8 gMonFootprint_MimeJr[] = INCBIN_U8("graphics/pokemon/mime_jr/footprint.1bpp"); -const u8 gMonFootprint_Happiny[] = INCBIN_U8("graphics/pokemon/happiny/footprint.1bpp"); -const u8 gMonFootprint_Chatot[] = INCBIN_U8("graphics/pokemon/chatot/footprint.1bpp"); -const u8 gMonFootprint_Spiritomb[] = INCBIN_U8("graphics/pokemon/spiritomb/footprint.1bpp"); -const u8 gMonFootprint_Gible[] = INCBIN_U8("graphics/pokemon/gible/footprint.1bpp"); -const u8 gMonFootprint_Gabite[] = INCBIN_U8("graphics/pokemon/gabite/footprint.1bpp"); -const u8 gMonFootprint_Garchomp[] = INCBIN_U8("graphics/pokemon/garchomp/footprint.1bpp"); -const u8 gMonFootprint_Munchlax[] = INCBIN_U8("graphics/pokemon/munchlax/footprint.1bpp"); -const u8 gMonFootprint_Riolu[] = INCBIN_U8("graphics/pokemon/riolu/footprint.1bpp"); -const u8 gMonFootprint_Lucario[] = INCBIN_U8("graphics/pokemon/lucario/footprint.1bpp"); -const u8 gMonFootprint_Hippopotas[] = INCBIN_U8("graphics/pokemon/hippopotas/footprint.1bpp"); -const u8 gMonFootprint_Hippowdon[] = INCBIN_U8("graphics/pokemon/hippowdon/footprint.1bpp"); -const u8 gMonFootprint_Skorupi[] = INCBIN_U8("graphics/pokemon/skorupi/footprint.1bpp"); -const u8 gMonFootprint_Drapion[] = INCBIN_U8("graphics/pokemon/drapion/footprint.1bpp"); -const u8 gMonFootprint_Croagunk[] = INCBIN_U8("graphics/pokemon/croagunk/footprint.1bpp"); -const u8 gMonFootprint_Toxicroak[] = INCBIN_U8("graphics/pokemon/toxicroak/footprint.1bpp"); -const u8 gMonFootprint_Carnivine[] = INCBIN_U8("graphics/pokemon/carnivine/footprint.1bpp"); -const u8 gMonFootprint_Finneon[] = INCBIN_U8("graphics/pokemon/finneon/footprint.1bpp"); -const u8 gMonFootprint_Lumineon[] = INCBIN_U8("graphics/pokemon/lumineon/footprint.1bpp"); -const u8 gMonFootprint_Mantyke[] = INCBIN_U8("graphics/pokemon/mantyke/footprint.1bpp"); -const u8 gMonFootprint_Snover[] = INCBIN_U8("graphics/pokemon/snover/footprint.1bpp"); -const u8 gMonFootprint_Abomasnow[] = INCBIN_U8("graphics/pokemon/abomasnow/footprint.1bpp"); -const u8 gMonFootprint_Weavile[] = INCBIN_U8("graphics/pokemon/weavile/footprint.1bpp"); -const u8 gMonFootprint_Magnezone[] = INCBIN_U8("graphics/pokemon/magnezone/footprint.1bpp"); -const u8 gMonFootprint_Lickilicky[] = INCBIN_U8("graphics/pokemon/lickilicky/footprint.1bpp"); -const u8 gMonFootprint_Rhyperior[] = INCBIN_U8("graphics/pokemon/rhyperior/footprint.1bpp"); -const u8 gMonFootprint_Tangrowth[] = INCBIN_U8("graphics/pokemon/tangrowth/footprint.1bpp"); -const u8 gMonFootprint_Electivire[] = INCBIN_U8("graphics/pokemon/electivire/footprint.1bpp"); -const u8 gMonFootprint_Magmortar[] = INCBIN_U8("graphics/pokemon/magmortar/footprint.1bpp"); -const u8 gMonFootprint_Togekiss[] = INCBIN_U8("graphics/pokemon/togekiss/footprint.1bpp"); -const u8 gMonFootprint_Yanmega[] = INCBIN_U8("graphics/pokemon/yanmega/footprint.1bpp"); -const u8 gMonFootprint_Leafeon[] = INCBIN_U8("graphics/pokemon/leafeon/footprint.1bpp"); -const u8 gMonFootprint_Glaceon[] = INCBIN_U8("graphics/pokemon/glaceon/footprint.1bpp"); -const u8 gMonFootprint_Gliscor[] = INCBIN_U8("graphics/pokemon/gliscor/footprint.1bpp"); -const u8 gMonFootprint_Mamoswine[] = INCBIN_U8("graphics/pokemon/mamoswine/footprint.1bpp"); -const u8 gMonFootprint_PorygonZ[] = INCBIN_U8("graphics/pokemon/porygon_z/footprint.1bpp"); -const u8 gMonFootprint_Gallade[] = INCBIN_U8("graphics/pokemon/gallade/footprint.1bpp"); -const u8 gMonFootprint_Probopass[] = INCBIN_U8("graphics/pokemon/probopass/footprint.1bpp"); -const u8 gMonFootprint_Dusknoir[] = INCBIN_U8("graphics/pokemon/dusknoir/footprint.1bpp"); -const u8 gMonFootprint_Froslass[] = INCBIN_U8("graphics/pokemon/froslass/footprint.1bpp"); -const u8 gMonFootprint_Rotom[] = INCBIN_U8("graphics/pokemon/rotom/normal/footprint.1bpp"); -const u8 gMonFootprint_Uxie[] = INCBIN_U8("graphics/pokemon/uxie/footprint.1bpp"); -const u8 gMonFootprint_Mesprit[] = INCBIN_U8("graphics/pokemon/mesprit/footprint.1bpp"); -const u8 gMonFootprint_Azelf[] = INCBIN_U8("graphics/pokemon/azelf/footprint.1bpp"); -const u8 gMonFootprint_Dialga[] = INCBIN_U8("graphics/pokemon/dialga/footprint.1bpp"); -const u8 gMonFootprint_Palkia[] = INCBIN_U8("graphics/pokemon/palkia/footprint.1bpp"); -const u8 gMonFootprint_Heatran[] = INCBIN_U8("graphics/pokemon/heatran/footprint.1bpp"); -const u8 gMonFootprint_Regigigas[] = INCBIN_U8("graphics/pokemon/regigigas/footprint.1bpp"); -const u8 gMonFootprint_Giratina[] = INCBIN_U8("graphics/pokemon/giratina/footprint.1bpp"); -const u8 gMonFootprint_Cresselia[] = INCBIN_U8("graphics/pokemon/cresselia/footprint.1bpp"); -const u8 gMonFootprint_Phione[] = INCBIN_U8("graphics/pokemon/phione/footprint.1bpp"); -const u8 gMonFootprint_Manaphy[] = INCBIN_U8("graphics/pokemon/manaphy/footprint.1bpp"); -const u8 gMonFootprint_Darkrai[] = INCBIN_U8("graphics/pokemon/darkrai/footprint.1bpp"); -const u8 gMonFootprint_Shaymin[] = INCBIN_U8("graphics/pokemon/shaymin/footprint.1bpp"); -const u8 gMonFootprint_Arceus[] = INCBIN_U8("graphics/pokemon/arceus/footprint.1bpp"); -#endif -#if P_GEN_5_POKEMON == TRUE -const u8 gMonFootprint_Victini[] = INCBIN_U8("graphics/pokemon/victini/footprint.1bpp"); -const u8 gMonFootprint_Snivy[] = INCBIN_U8("graphics/pokemon/snivy/footprint.1bpp"); -const u8 gMonFootprint_Servine[] = INCBIN_U8("graphics/pokemon/servine/footprint.1bpp"); -const u8 gMonFootprint_Serperior[] = INCBIN_U8("graphics/pokemon/serperior/footprint.1bpp"); -const u8 gMonFootprint_Tepig[] = INCBIN_U8("graphics/pokemon/tepig/footprint.1bpp"); -const u8 gMonFootprint_Pignite[] = INCBIN_U8("graphics/pokemon/pignite/footprint.1bpp"); -const u8 gMonFootprint_Emboar[] = INCBIN_U8("graphics/pokemon/emboar/footprint.1bpp"); -const u8 gMonFootprint_Oshawott[] = INCBIN_U8("graphics/pokemon/oshawott/footprint.1bpp"); -const u8 gMonFootprint_Dewott[] = INCBIN_U8("graphics/pokemon/dewott/footprint.1bpp"); -const u8 gMonFootprint_Samurott[] = INCBIN_U8("graphics/pokemon/samurott/footprint.1bpp"); -const u8 gMonFootprint_Patrat[] = INCBIN_U8("graphics/pokemon/patrat/footprint.1bpp"); -const u8 gMonFootprint_Watchog[] = INCBIN_U8("graphics/pokemon/watchog/footprint.1bpp"); -const u8 gMonFootprint_Lillipup[] = INCBIN_U8("graphics/pokemon/lillipup/footprint.1bpp"); -const u8 gMonFootprint_Herdier[] = INCBIN_U8("graphics/pokemon/herdier/footprint.1bpp"); -const u8 gMonFootprint_Stoutland[] = INCBIN_U8("graphics/pokemon/stoutland/footprint.1bpp"); -const u8 gMonFootprint_Purrloin[] = INCBIN_U8("graphics/pokemon/purrloin/footprint.1bpp"); -const u8 gMonFootprint_Liepard[] = INCBIN_U8("graphics/pokemon/liepard/footprint.1bpp"); -const u8 gMonFootprint_Pansage[] = INCBIN_U8("graphics/pokemon/pansage/footprint.1bpp"); -const u8 gMonFootprint_Simisage[] = INCBIN_U8("graphics/pokemon/simisage/footprint.1bpp"); -const u8 gMonFootprint_Pansear[] = INCBIN_U8("graphics/pokemon/pansear/footprint.1bpp"); -const u8 gMonFootprint_Simisear[] = INCBIN_U8("graphics/pokemon/simisear/footprint.1bpp"); -const u8 gMonFootprint_Panpour[] = INCBIN_U8("graphics/pokemon/panpour/footprint.1bpp"); -const u8 gMonFootprint_Simipour[] = INCBIN_U8("graphics/pokemon/simipour/footprint.1bpp"); -const u8 gMonFootprint_Munna[] = INCBIN_U8("graphics/pokemon/munna/footprint.1bpp"); -const u8 gMonFootprint_Musharna[] = INCBIN_U8("graphics/pokemon/musharna/footprint.1bpp"); -const u8 gMonFootprint_Pidove[] = INCBIN_U8("graphics/pokemon/pidove/footprint.1bpp"); -const u8 gMonFootprint_Tranquill[] = INCBIN_U8("graphics/pokemon/tranquill/footprint.1bpp"); -const u8 gMonFootprint_Unfezant[] = INCBIN_U8("graphics/pokemon/unfezant/footprint.1bpp"); -const u8 gMonFootprint_Blitzle[] = INCBIN_U8("graphics/pokemon/blitzle/footprint.1bpp"); -const u8 gMonFootprint_Zebstrika[] = INCBIN_U8("graphics/pokemon/zebstrika/footprint.1bpp"); -const u8 gMonFootprint_Roggenrola[] = INCBIN_U8("graphics/pokemon/roggenrola/footprint.1bpp"); -const u8 gMonFootprint_Boldore[] = INCBIN_U8("graphics/pokemon/boldore/footprint.1bpp"); -const u8 gMonFootprint_Gigalith[] = INCBIN_U8("graphics/pokemon/gigalith/footprint.1bpp"); -const u8 gMonFootprint_Woobat[] = INCBIN_U8("graphics/pokemon/woobat/footprint.1bpp"); -const u8 gMonFootprint_Swoobat[] = INCBIN_U8("graphics/pokemon/swoobat/footprint.1bpp"); -const u8 gMonFootprint_Drilbur[] = INCBIN_U8("graphics/pokemon/drilbur/footprint.1bpp"); -const u8 gMonFootprint_Excadrill[] = INCBIN_U8("graphics/pokemon/excadrill/footprint.1bpp"); -const u8 gMonFootprint_Audino[] = INCBIN_U8("graphics/pokemon/audino/footprint.1bpp"); -const u8 gMonFootprint_Timburr[] = INCBIN_U8("graphics/pokemon/timburr/footprint.1bpp"); -const u8 gMonFootprint_Gurdurr[] = INCBIN_U8("graphics/pokemon/gurdurr/footprint.1bpp"); -const u8 gMonFootprint_Conkeldurr[] = INCBIN_U8("graphics/pokemon/conkeldurr/footprint.1bpp"); -const u8 gMonFootprint_Tympole[] = INCBIN_U8("graphics/pokemon/tympole/footprint.1bpp"); -const u8 gMonFootprint_Palpitoad[] = INCBIN_U8("graphics/pokemon/palpitoad/footprint.1bpp"); -const u8 gMonFootprint_Seismitoad[] = INCBIN_U8("graphics/pokemon/seismitoad/footprint.1bpp"); -const u8 gMonFootprint_Throh[] = INCBIN_U8("graphics/pokemon/throh/footprint.1bpp"); -const u8 gMonFootprint_Sawk[] = INCBIN_U8("graphics/pokemon/sawk/footprint.1bpp"); -const u8 gMonFootprint_Sewaddle[] = INCBIN_U8("graphics/pokemon/sewaddle/footprint.1bpp"); -const u8 gMonFootprint_Swadloon[] = INCBIN_U8("graphics/pokemon/swadloon/footprint.1bpp"); -const u8 gMonFootprint_Leavanny[] = INCBIN_U8("graphics/pokemon/leavanny/footprint.1bpp"); -const u8 gMonFootprint_Venipede[] = INCBIN_U8("graphics/pokemon/venipede/footprint.1bpp"); -const u8 gMonFootprint_Whirlipede[] = INCBIN_U8("graphics/pokemon/whirlipede/footprint.1bpp"); -const u8 gMonFootprint_Scolipede[] = INCBIN_U8("graphics/pokemon/scolipede/footprint.1bpp"); -const u8 gMonFootprint_Cottonee[] = INCBIN_U8("graphics/pokemon/cottonee/footprint.1bpp"); -const u8 gMonFootprint_Whimsicott[] = INCBIN_U8("graphics/pokemon/whimsicott/footprint.1bpp"); -const u8 gMonFootprint_Petilil[] = INCBIN_U8("graphics/pokemon/petilil/footprint.1bpp"); -const u8 gMonFootprint_Lilligant[] = INCBIN_U8("graphics/pokemon/lilligant/footprint.1bpp"); -const u8 gMonFootprint_Basculin[] = INCBIN_U8("graphics/pokemon/basculin/footprint.1bpp"); -const u8 gMonFootprint_Sandile[] = INCBIN_U8("graphics/pokemon/sandile/footprint.1bpp"); -const u8 gMonFootprint_Krokorok[] = INCBIN_U8("graphics/pokemon/krokorok/footprint.1bpp"); -const u8 gMonFootprint_Krookodile[] = INCBIN_U8("graphics/pokemon/krookodile/footprint.1bpp"); -const u8 gMonFootprint_Darumaka[] = INCBIN_U8("graphics/pokemon/darumaka/footprint.1bpp"); -const u8 gMonFootprint_Darmanitan[] = INCBIN_U8("graphics/pokemon/darmanitan/footprint.1bpp"); -const u8 gMonFootprint_Maractus[] = INCBIN_U8("graphics/pokemon/maractus/footprint.1bpp"); -const u8 gMonFootprint_Dwebble[] = INCBIN_U8("graphics/pokemon/dwebble/footprint.1bpp"); -const u8 gMonFootprint_Crustle[] = INCBIN_U8("graphics/pokemon/crustle/footprint.1bpp"); -const u8 gMonFootprint_Scraggy[] = INCBIN_U8("graphics/pokemon/scraggy/footprint.1bpp"); -const u8 gMonFootprint_Scrafty[] = INCBIN_U8("graphics/pokemon/scrafty/footprint.1bpp"); -const u8 gMonFootprint_Sigilyph[] = INCBIN_U8("graphics/pokemon/sigilyph/footprint.1bpp"); -const u8 gMonFootprint_Yamask[] = INCBIN_U8("graphics/pokemon/yamask/footprint.1bpp"); -const u8 gMonFootprint_Cofagrigus[] = INCBIN_U8("graphics/pokemon/cofagrigus/footprint.1bpp"); -const u8 gMonFootprint_Tirtouga[] = INCBIN_U8("graphics/pokemon/tirtouga/footprint.1bpp"); -const u8 gMonFootprint_Carracosta[] = INCBIN_U8("graphics/pokemon/carracosta/footprint.1bpp"); -const u8 gMonFootprint_Archen[] = INCBIN_U8("graphics/pokemon/archen/footprint.1bpp"); -const u8 gMonFootprint_Archeops[] = INCBIN_U8("graphics/pokemon/archeops/footprint.1bpp"); -const u8 gMonFootprint_Trubbish[] = INCBIN_U8("graphics/pokemon/trubbish/footprint.1bpp"); -const u8 gMonFootprint_Garbodor[] = INCBIN_U8("graphics/pokemon/garbodor/footprint.1bpp"); -const u8 gMonFootprint_Zorua[] = INCBIN_U8("graphics/pokemon/zorua/footprint.1bpp"); -const u8 gMonFootprint_Zoroark[] = INCBIN_U8("graphics/pokemon/zoroark/footprint.1bpp"); -const u8 gMonFootprint_Minccino[] = INCBIN_U8("graphics/pokemon/minccino/footprint.1bpp"); -const u8 gMonFootprint_Cinccino[] = INCBIN_U8("graphics/pokemon/cinccino/footprint.1bpp"); -const u8 gMonFootprint_Gothita[] = INCBIN_U8("graphics/pokemon/gothita/footprint.1bpp"); -const u8 gMonFootprint_Gothorita[] = INCBIN_U8("graphics/pokemon/gothorita/footprint.1bpp"); -const u8 gMonFootprint_Gothitelle[] = INCBIN_U8("graphics/pokemon/gothitelle/footprint.1bpp"); -const u8 gMonFootprint_Solosis[] = INCBIN_U8("graphics/pokemon/solosis/footprint.1bpp"); -const u8 gMonFootprint_Duosion[] = INCBIN_U8("graphics/pokemon/duosion/footprint.1bpp"); -const u8 gMonFootprint_Reuniclus[] = INCBIN_U8("graphics/pokemon/reuniclus/footprint.1bpp"); -const u8 gMonFootprint_Ducklett[] = INCBIN_U8("graphics/pokemon/ducklett/footprint.1bpp"); -const u8 gMonFootprint_Swanna[] = INCBIN_U8("graphics/pokemon/swanna/footprint.1bpp"); -const u8 gMonFootprint_Vanillite[] = INCBIN_U8("graphics/pokemon/vanillite/footprint.1bpp"); -const u8 gMonFootprint_Vanillish[] = INCBIN_U8("graphics/pokemon/vanillish/footprint.1bpp"); -const u8 gMonFootprint_Vanilluxe[] = INCBIN_U8("graphics/pokemon/vanilluxe/footprint.1bpp"); -const u8 gMonFootprint_Deerling[] = INCBIN_U8("graphics/pokemon/deerling/footprint.1bpp"); -const u8 gMonFootprint_Sawsbuck[] = INCBIN_U8("graphics/pokemon/sawsbuck/footprint.1bpp"); -const u8 gMonFootprint_Emolga[] = INCBIN_U8("graphics/pokemon/emolga/footprint.1bpp"); -const u8 gMonFootprint_Karrablast[] = INCBIN_U8("graphics/pokemon/karrablast/footprint.1bpp"); -const u8 gMonFootprint_Escavalier[] = INCBIN_U8("graphics/pokemon/escavalier/footprint.1bpp"); -const u8 gMonFootprint_Foongus[] = INCBIN_U8("graphics/pokemon/foongus/footprint.1bpp"); -const u8 gMonFootprint_Amoonguss[] = INCBIN_U8("graphics/pokemon/amoonguss/footprint.1bpp"); -const u8 gMonFootprint_Frillish[] = INCBIN_U8("graphics/pokemon/frillish/footprint.1bpp"); -const u8 gMonFootprint_Jellicent[] = INCBIN_U8("graphics/pokemon/jellicent/footprint.1bpp"); -const u8 gMonFootprint_Alomomola[] = INCBIN_U8("graphics/pokemon/alomomola/footprint.1bpp"); -const u8 gMonFootprint_Joltik[] = INCBIN_U8("graphics/pokemon/joltik/footprint.1bpp"); -const u8 gMonFootprint_Galvantula[] = INCBIN_U8("graphics/pokemon/galvantula/footprint.1bpp"); -const u8 gMonFootprint_Ferroseed[] = INCBIN_U8("graphics/pokemon/ferroseed/footprint.1bpp"); -const u8 gMonFootprint_Ferrothorn[] = INCBIN_U8("graphics/pokemon/ferrothorn/footprint.1bpp"); -const u8 gMonFootprint_Klink[] = INCBIN_U8("graphics/pokemon/klink/footprint.1bpp"); -const u8 gMonFootprint_Klang[] = INCBIN_U8("graphics/pokemon/klang/footprint.1bpp"); -const u8 gMonFootprint_Klinklang[] = INCBIN_U8("graphics/pokemon/klinklang/footprint.1bpp"); -const u8 gMonFootprint_Tynamo[] = INCBIN_U8("graphics/pokemon/tynamo/footprint.1bpp"); -const u8 gMonFootprint_Eelektrik[] = INCBIN_U8("graphics/pokemon/eelektrik/footprint.1bpp"); -const u8 gMonFootprint_Eelektross[] = INCBIN_U8("graphics/pokemon/eelektross/footprint.1bpp"); -const u8 gMonFootprint_Elgyem[] = INCBIN_U8("graphics/pokemon/elgyem/footprint.1bpp"); -const u8 gMonFootprint_Beheeyem[] = INCBIN_U8("graphics/pokemon/beheeyem/footprint.1bpp"); -const u8 gMonFootprint_Litwick[] = INCBIN_U8("graphics/pokemon/litwick/footprint.1bpp"); -const u8 gMonFootprint_Lampent[] = INCBIN_U8("graphics/pokemon/lampent/footprint.1bpp"); -const u8 gMonFootprint_Chandelure[] = INCBIN_U8("graphics/pokemon/chandelure/footprint.1bpp"); -const u8 gMonFootprint_Axew[] = INCBIN_U8("graphics/pokemon/axew/footprint.1bpp"); -const u8 gMonFootprint_Fraxure[] = INCBIN_U8("graphics/pokemon/fraxure/footprint.1bpp"); -const u8 gMonFootprint_Haxorus[] = INCBIN_U8("graphics/pokemon/haxorus/footprint.1bpp"); -const u8 gMonFootprint_Cubchoo[] = INCBIN_U8("graphics/pokemon/cubchoo/footprint.1bpp"); -const u8 gMonFootprint_Beartic[] = INCBIN_U8("graphics/pokemon/beartic/footprint.1bpp"); -const u8 gMonFootprint_Cryogonal[] = INCBIN_U8("graphics/pokemon/cryogonal/footprint.1bpp"); -const u8 gMonFootprint_Shelmet[] = INCBIN_U8("graphics/pokemon/shelmet/footprint.1bpp"); -const u8 gMonFootprint_Accelgor[] = INCBIN_U8("graphics/pokemon/accelgor/footprint.1bpp"); -const u8 gMonFootprint_Stunfisk[] = INCBIN_U8("graphics/pokemon/stunfisk/footprint.1bpp"); -const u8 gMonFootprint_Mienfoo[] = INCBIN_U8("graphics/pokemon/mienfoo/footprint.1bpp"); -const u8 gMonFootprint_Mienshao[] = INCBIN_U8("graphics/pokemon/mienshao/footprint.1bpp"); -const u8 gMonFootprint_Druddigon[] = INCBIN_U8("graphics/pokemon/druddigon/footprint.1bpp"); -const u8 gMonFootprint_Golett[] = INCBIN_U8("graphics/pokemon/golett/footprint.1bpp"); -const u8 gMonFootprint_Golurk[] = INCBIN_U8("graphics/pokemon/golurk/footprint.1bpp"); -const u8 gMonFootprint_Pawniard[] = INCBIN_U8("graphics/pokemon/pawniard/footprint.1bpp"); -const u8 gMonFootprint_Bisharp[] = INCBIN_U8("graphics/pokemon/bisharp/footprint.1bpp"); -const u8 gMonFootprint_Bouffalant[] = INCBIN_U8("graphics/pokemon/bouffalant/footprint.1bpp"); -const u8 gMonFootprint_Rufflet[] = INCBIN_U8("graphics/pokemon/rufflet/footprint.1bpp"); -const u8 gMonFootprint_Braviary[] = INCBIN_U8("graphics/pokemon/braviary/footprint.1bpp"); -const u8 gMonFootprint_Vullaby[] = INCBIN_U8("graphics/pokemon/vullaby/footprint.1bpp"); -const u8 gMonFootprint_Mandibuzz[] = INCBIN_U8("graphics/pokemon/mandibuzz/footprint.1bpp"); -const u8 gMonFootprint_Heatmor[] = INCBIN_U8("graphics/pokemon/heatmor/footprint.1bpp"); -const u8 gMonFootprint_Durant[] = INCBIN_U8("graphics/pokemon/durant/footprint.1bpp"); -const u8 gMonFootprint_Deino[] = INCBIN_U8("graphics/pokemon/deino/footprint.1bpp"); -const u8 gMonFootprint_Zweilous[] = INCBIN_U8("graphics/pokemon/zweilous/footprint.1bpp"); -const u8 gMonFootprint_Hydreigon[] = INCBIN_U8("graphics/pokemon/hydreigon/footprint.1bpp"); -const u8 gMonFootprint_Larvesta[] = INCBIN_U8("graphics/pokemon/larvesta/footprint.1bpp"); -const u8 gMonFootprint_Volcarona[] = INCBIN_U8("graphics/pokemon/volcarona/footprint.1bpp"); -const u8 gMonFootprint_Cobalion[] = INCBIN_U8("graphics/pokemon/cobalion/footprint.1bpp"); -const u8 gMonFootprint_Terrakion[] = INCBIN_U8("graphics/pokemon/terrakion/footprint.1bpp"); -const u8 gMonFootprint_Virizion[] = INCBIN_U8("graphics/pokemon/virizion/footprint.1bpp"); -const u8 gMonFootprint_Tornadus[] = INCBIN_U8("graphics/pokemon/tornadus/footprint.1bpp"); -const u8 gMonFootprint_Thundurus[] = INCBIN_U8("graphics/pokemon/thundurus/footprint.1bpp"); -const u8 gMonFootprint_Reshiram[] = INCBIN_U8("graphics/pokemon/reshiram/footprint.1bpp"); -const u8 gMonFootprint_Zekrom[] = INCBIN_U8("graphics/pokemon/zekrom/footprint.1bpp"); -const u8 gMonFootprint_Landorus[] = INCBIN_U8("graphics/pokemon/landorus/footprint.1bpp"); -const u8 gMonFootprint_Kyurem[] = INCBIN_U8("graphics/pokemon/kyurem/footprint.1bpp"); -const u8 gMonFootprint_Keldeo[] = INCBIN_U8("graphics/pokemon/keldeo/footprint.1bpp"); -const u8 gMonFootprint_Meloetta[] = INCBIN_U8("graphics/pokemon/meloetta/footprint.1bpp"); -const u8 gMonFootprint_Genesect[] = INCBIN_U8("graphics/pokemon/genesect/footprint.1bpp"); -#endif -#if P_GEN_6_POKEMON == TRUE -const u8 gMonFootprint_Chespin[] = INCBIN_U8("graphics/pokemon/chespin/footprint.1bpp"); -const u8 gMonFootprint_Quilladin[] = INCBIN_U8("graphics/pokemon/quilladin/footprint.1bpp"); -const u8 gMonFootprint_Chesnaught[] = INCBIN_U8("graphics/pokemon/chesnaught/footprint.1bpp"); -const u8 gMonFootprint_Fennekin[] = INCBIN_U8("graphics/pokemon/fennekin/footprint.1bpp"); -const u8 gMonFootprint_Braixen[] = INCBIN_U8("graphics/pokemon/braixen/footprint.1bpp"); -const u8 gMonFootprint_Delphox[] = INCBIN_U8("graphics/pokemon/delphox/footprint.1bpp"); -const u8 gMonFootprint_Froakie[] = INCBIN_U8("graphics/pokemon/froakie/footprint.1bpp"); -const u8 gMonFootprint_Frogadier[] = INCBIN_U8("graphics/pokemon/frogadier/footprint.1bpp"); -const u8 gMonFootprint_Greninja[] = INCBIN_U8("graphics/pokemon/greninja/footprint.1bpp"); -const u8 gMonFootprint_Bunnelby[] = INCBIN_U8("graphics/pokemon/bunnelby/footprint.1bpp"); -const u8 gMonFootprint_Diggersby[] = INCBIN_U8("graphics/pokemon/diggersby/footprint.1bpp"); -const u8 gMonFootprint_Fletchling[] = INCBIN_U8("graphics/pokemon/fletchling/footprint.1bpp"); -const u8 gMonFootprint_Fletchinder[] = INCBIN_U8("graphics/pokemon/fletchinder/footprint.1bpp"); -const u8 gMonFootprint_Talonflame[] = INCBIN_U8("graphics/pokemon/talonflame/footprint.1bpp"); -const u8 gMonFootprint_Scatterbug[] = INCBIN_U8("graphics/pokemon/scatterbug/footprint.1bpp"); -const u8 gMonFootprint_Spewpa[] = INCBIN_U8("graphics/pokemon/spewpa/footprint.1bpp"); -const u8 gMonFootprint_Vivillon[] = INCBIN_U8("graphics/pokemon/vivillon/footprint.1bpp"); -const u8 gMonFootprint_Litleo[] = INCBIN_U8("graphics/pokemon/litleo/footprint.1bpp"); -const u8 gMonFootprint_Pyroar[] = INCBIN_U8("graphics/pokemon/pyroar/footprint.1bpp"); -const u8 gMonFootprint_Flabebe[] = INCBIN_U8("graphics/pokemon/flabebe/footprint.1bpp"); -const u8 gMonFootprint_Floette[] = INCBIN_U8("graphics/pokemon/floette/footprint.1bpp"); -const u8 gMonFootprint_Florges[] = INCBIN_U8("graphics/pokemon/florges/footprint.1bpp"); -const u8 gMonFootprint_Skiddo[] = INCBIN_U8("graphics/pokemon/skiddo/footprint.1bpp"); -const u8 gMonFootprint_Gogoat[] = INCBIN_U8("graphics/pokemon/gogoat/footprint.1bpp"); -const u8 gMonFootprint_Pancham[] = INCBIN_U8("graphics/pokemon/pancham/footprint.1bpp"); -const u8 gMonFootprint_Pangoro[] = INCBIN_U8("graphics/pokemon/pangoro/footprint.1bpp"); -const u8 gMonFootprint_Furfrou[] = INCBIN_U8("graphics/pokemon/furfrou/footprint.1bpp"); -const u8 gMonFootprint_Espurr[] = INCBIN_U8("graphics/pokemon/espurr/footprint.1bpp"); -const u8 gMonFootprint_Meowstic[] = INCBIN_U8("graphics/pokemon/meowstic/footprint.1bpp"); -const u8 gMonFootprint_Honedge[] = INCBIN_U8("graphics/pokemon/honedge/footprint.1bpp"); -const u8 gMonFootprint_Doublade[] = INCBIN_U8("graphics/pokemon/doublade/footprint.1bpp"); -const u8 gMonFootprint_Aegislash[] = INCBIN_U8("graphics/pokemon/aegislash/footprint.1bpp"); -const u8 gMonFootprint_Spritzee[] = INCBIN_U8("graphics/pokemon/spritzee/footprint.1bpp"); -const u8 gMonFootprint_Aromatisse[] = INCBIN_U8("graphics/pokemon/aromatisse/footprint.1bpp"); -const u8 gMonFootprint_Swirlix[] = INCBIN_U8("graphics/pokemon/swirlix/footprint.1bpp"); -const u8 gMonFootprint_Slurpuff[] = INCBIN_U8("graphics/pokemon/slurpuff/footprint.1bpp"); -const u8 gMonFootprint_Inkay[] = INCBIN_U8("graphics/pokemon/inkay/footprint.1bpp"); -const u8 gMonFootprint_Malamar[] = INCBIN_U8("graphics/pokemon/malamar/footprint.1bpp"); -const u8 gMonFootprint_Binacle[] = INCBIN_U8("graphics/pokemon/binacle/footprint.1bpp"); -const u8 gMonFootprint_Barbaracle[] = INCBIN_U8("graphics/pokemon/barbaracle/footprint.1bpp"); -const u8 gMonFootprint_Skrelp[] = INCBIN_U8("graphics/pokemon/skrelp/footprint.1bpp"); -const u8 gMonFootprint_Dragalge[] = INCBIN_U8("graphics/pokemon/dragalge/footprint.1bpp"); -const u8 gMonFootprint_Clauncher[] = INCBIN_U8("graphics/pokemon/clauncher/footprint.1bpp"); -const u8 gMonFootprint_Clawitzer[] = INCBIN_U8("graphics/pokemon/clawitzer/footprint.1bpp"); -const u8 gMonFootprint_Helioptile[] = INCBIN_U8("graphics/pokemon/helioptile/footprint.1bpp"); -const u8 gMonFootprint_Heliolisk[] = INCBIN_U8("graphics/pokemon/heliolisk/footprint.1bpp"); -const u8 gMonFootprint_Tyrunt[] = INCBIN_U8("graphics/pokemon/tyrunt/footprint.1bpp"); -const u8 gMonFootprint_Tyrantrum[] = INCBIN_U8("graphics/pokemon/tyrantrum/footprint.1bpp"); -const u8 gMonFootprint_Amaura[] = INCBIN_U8("graphics/pokemon/amaura/footprint.1bpp"); -const u8 gMonFootprint_Aurorus[] = INCBIN_U8("graphics/pokemon/aurorus/footprint.1bpp"); -const u8 gMonFootprint_Sylveon[] = INCBIN_U8("graphics/pokemon/sylveon/footprint.1bpp"); -const u8 gMonFootprint_Hawlucha[] = INCBIN_U8("graphics/pokemon/hawlucha/footprint.1bpp"); -const u8 gMonFootprint_Dedenne[] = INCBIN_U8("graphics/pokemon/dedenne/footprint.1bpp"); -const u8 gMonFootprint_Carbink[] = INCBIN_U8("graphics/pokemon/carbink/footprint.1bpp"); -const u8 gMonFootprint_Goomy[] = INCBIN_U8("graphics/pokemon/goomy/footprint.1bpp"); -const u8 gMonFootprint_Sliggoo[] = INCBIN_U8("graphics/pokemon/sliggoo/footprint.1bpp"); -const u8 gMonFootprint_Goodra[] = INCBIN_U8("graphics/pokemon/goodra/footprint.1bpp"); -const u8 gMonFootprint_Klefki[] = INCBIN_U8("graphics/pokemon/klefki/footprint.1bpp"); -const u8 gMonFootprint_Phantump[] = INCBIN_U8("graphics/pokemon/phantump/footprint.1bpp"); -const u8 gMonFootprint_Trevenant[] = INCBIN_U8("graphics/pokemon/trevenant/footprint.1bpp"); -const u8 gMonFootprint_Pumpkaboo[] = INCBIN_U8("graphics/pokemon/pumpkaboo/footprint.1bpp"); -const u8 gMonFootprint_Gourgeist[] = INCBIN_U8("graphics/pokemon/gourgeist/footprint.1bpp"); -const u8 gMonFootprint_Bergmite[] = INCBIN_U8("graphics/pokemon/bergmite/footprint.1bpp"); -const u8 gMonFootprint_Avalugg[] = INCBIN_U8("graphics/pokemon/avalugg/footprint.1bpp"); -const u8 gMonFootprint_Noibat[] = INCBIN_U8("graphics/pokemon/noibat/footprint.1bpp"); -const u8 gMonFootprint_Noivern[] = INCBIN_U8("graphics/pokemon/noivern/footprint.1bpp"); -const u8 gMonFootprint_Xerneas[] = INCBIN_U8("graphics/pokemon/xerneas/footprint.1bpp"); -const u8 gMonFootprint_Yveltal[] = INCBIN_U8("graphics/pokemon/yveltal/footprint.1bpp"); -const u8 gMonFootprint_Zygarde[] = INCBIN_U8("graphics/pokemon/zygarde/footprint.1bpp"); -const u8 gMonFootprint_Diancie[] = INCBIN_U8("graphics/pokemon/diancie/footprint.1bpp"); -const u8 gMonFootprint_Hoopa[] = INCBIN_U8("graphics/pokemon/hoopa/footprint.1bpp"); -const u8 gMonFootprint_Volcanion[] = INCBIN_U8("graphics/pokemon/volcanion/footprint.1bpp"); -#endif -#if P_GEN_7_POKEMON == TRUE -const u8 gMonFootprint_Rowlet[] = INCBIN_U8("graphics/pokemon/rowlet/footprint.1bpp"); -const u8 gMonFootprint_Dartrix[] = INCBIN_U8("graphics/pokemon/dartrix/footprint.1bpp"); -const u8 gMonFootprint_Decidueye[] = INCBIN_U8("graphics/pokemon/decidueye/footprint.1bpp"); -const u8 gMonFootprint_Litten[] = INCBIN_U8("graphics/pokemon/litten/footprint.1bpp"); -const u8 gMonFootprint_Torracat[] = INCBIN_U8("graphics/pokemon/torracat/footprint.1bpp"); -const u8 gMonFootprint_Incineroar[] = INCBIN_U8("graphics/pokemon/incineroar/footprint.1bpp"); -const u8 gMonFootprint_Popplio[] = INCBIN_U8("graphics/pokemon/popplio/footprint.1bpp"); -const u8 gMonFootprint_Brionne[] = INCBIN_U8("graphics/pokemon/brionne/footprint.1bpp"); -const u8 gMonFootprint_Primarina[] = INCBIN_U8("graphics/pokemon/primarina/footprint.1bpp"); -const u8 gMonFootprint_Pikipek[] = INCBIN_U8("graphics/pokemon/pikipek/footprint.1bpp"); -const u8 gMonFootprint_Trumbeak[] = INCBIN_U8("graphics/pokemon/trumbeak/footprint.1bpp"); -const u8 gMonFootprint_Toucannon[] = INCBIN_U8("graphics/pokemon/toucannon/footprint.1bpp"); -const u8 gMonFootprint_Yungoos[] = INCBIN_U8("graphics/pokemon/yungoos/footprint.1bpp"); -const u8 gMonFootprint_Gumshoos[] = INCBIN_U8("graphics/pokemon/gumshoos/footprint.1bpp"); -const u8 gMonFootprint_Grubbin[] = INCBIN_U8("graphics/pokemon/grubbin/footprint.1bpp"); -const u8 gMonFootprint_Charjabug[] = INCBIN_U8("graphics/pokemon/charjabug/footprint.1bpp"); -const u8 gMonFootprint_Vikavolt[] = INCBIN_U8("graphics/pokemon/vikavolt/footprint.1bpp"); -const u8 gMonFootprint_Crabrawler[] = INCBIN_U8("graphics/pokemon/crabrawler/footprint.1bpp"); -const u8 gMonFootprint_Crabominable[] = INCBIN_U8("graphics/pokemon/crabominable/footprint.1bpp"); -const u8 gMonFootprint_Oricorio[] = INCBIN_U8("graphics/pokemon/oricorio/footprint.1bpp"); -const u8 gMonFootprint_Cutiefly[] = INCBIN_U8("graphics/pokemon/cutiefly/footprint.1bpp"); -const u8 gMonFootprint_Ribombee[] = INCBIN_U8("graphics/pokemon/ribombee/footprint.1bpp"); -const u8 gMonFootprint_Rockruff[] = INCBIN_U8("graphics/pokemon/rockruff/footprint.1bpp"); -const u8 gMonFootprint_Lycanroc[] = INCBIN_U8("graphics/pokemon/lycanroc/footprint.1bpp"); -const u8 gMonFootprint_Wishiwashi[] = INCBIN_U8("graphics/pokemon/wishiwashi/footprint.1bpp"); -const u8 gMonFootprint_Mareanie[] = INCBIN_U8("graphics/pokemon/mareanie/footprint.1bpp"); -const u8 gMonFootprint_Toxapex[] = INCBIN_U8("graphics/pokemon/toxapex/footprint.1bpp"); -const u8 gMonFootprint_Mudbray[] = INCBIN_U8("graphics/pokemon/mudbray/footprint.1bpp"); -const u8 gMonFootprint_Mudsdale[] = INCBIN_U8("graphics/pokemon/mudsdale/footprint.1bpp"); -const u8 gMonFootprint_Dewpider[] = INCBIN_U8("graphics/pokemon/dewpider/footprint.1bpp"); -const u8 gMonFootprint_Araquanid[] = INCBIN_U8("graphics/pokemon/araquanid/footprint.1bpp"); -const u8 gMonFootprint_Fomantis[] = INCBIN_U8("graphics/pokemon/fomantis/footprint.1bpp"); -const u8 gMonFootprint_Lurantis[] = INCBIN_U8("graphics/pokemon/lurantis/footprint.1bpp"); -const u8 gMonFootprint_Morelull[] = INCBIN_U8("graphics/pokemon/morelull/footprint.1bpp"); -const u8 gMonFootprint_Shiinotic[] = INCBIN_U8("graphics/pokemon/shiinotic/footprint.1bpp"); -const u8 gMonFootprint_Salandit[] = INCBIN_U8("graphics/pokemon/salandit/footprint.1bpp"); -const u8 gMonFootprint_Salazzle[] = INCBIN_U8("graphics/pokemon/salazzle/footprint.1bpp"); -const u8 gMonFootprint_Stufful[] = INCBIN_U8("graphics/pokemon/stufful/footprint.1bpp"); -const u8 gMonFootprint_Bewear[] = INCBIN_U8("graphics/pokemon/bewear/footprint.1bpp"); -const u8 gMonFootprint_Bounsweet[] = INCBIN_U8("graphics/pokemon/bounsweet/footprint.1bpp"); -const u8 gMonFootprint_Steenee[] = INCBIN_U8("graphics/pokemon/steenee/footprint.1bpp"); -const u8 gMonFootprint_Tsareena[] = INCBIN_U8("graphics/pokemon/tsareena/footprint.1bpp"); -const u8 gMonFootprint_Comfey[] = INCBIN_U8("graphics/pokemon/comfey/footprint.1bpp"); -const u8 gMonFootprint_Oranguru[] = INCBIN_U8("graphics/pokemon/oranguru/footprint.1bpp"); -const u8 gMonFootprint_Passimian[] = INCBIN_U8("graphics/pokemon/passimian/footprint.1bpp"); -const u8 gMonFootprint_Wimpod[] = INCBIN_U8("graphics/pokemon/wimpod/footprint.1bpp"); -const u8 gMonFootprint_Golisopod[] = INCBIN_U8("graphics/pokemon/golisopod/footprint.1bpp"); -const u8 gMonFootprint_Sandygast[] = INCBIN_U8("graphics/pokemon/sandygast/footprint.1bpp"); -const u8 gMonFootprint_Palossand[] = INCBIN_U8("graphics/pokemon/palossand/footprint.1bpp"); -const u8 gMonFootprint_Pyukumuku[] = INCBIN_U8("graphics/pokemon/pyukumuku/footprint.1bpp"); -const u8 gMonFootprint_Type_Null[] = INCBIN_U8("graphics/pokemon/type_null/footprint.1bpp"); -const u8 gMonFootprint_Silvally[] = INCBIN_U8("graphics/pokemon/silvally/footprint.1bpp"); -const u8 gMonFootprint_Minior[] = INCBIN_U8("graphics/pokemon/minior/footprint.1bpp"); -const u8 gMonFootprint_Komala[] = INCBIN_U8("graphics/pokemon/komala/footprint.1bpp"); -const u8 gMonFootprint_Turtonator[] = INCBIN_U8("graphics/pokemon/turtonator/footprint.1bpp"); -const u8 gMonFootprint_Togedemaru[] = INCBIN_U8("graphics/pokemon/togedemaru/footprint.1bpp"); -const u8 gMonFootprint_Mimikyu[] = INCBIN_U8("graphics/pokemon/mimikyu/footprint.1bpp"); -const u8 gMonFootprint_Bruxish[] = INCBIN_U8("graphics/pokemon/bruxish/footprint.1bpp"); -const u8 gMonFootprint_Drampa[] = INCBIN_U8("graphics/pokemon/drampa/footprint.1bpp"); -const u8 gMonFootprint_Dhelmise[] = INCBIN_U8("graphics/pokemon/dhelmise/footprint.1bpp"); -const u8 gMonFootprint_JangmoO[] = INCBIN_U8("graphics/pokemon/jangmo_o/footprint.1bpp"); -const u8 gMonFootprint_HakamoO[] = INCBIN_U8("graphics/pokemon/hakamo_o/footprint.1bpp"); -const u8 gMonFootprint_KommoO[] = INCBIN_U8("graphics/pokemon/kommo_o/footprint.1bpp"); -const u8 gMonFootprint_Tapu_Koko[] = INCBIN_U8("graphics/pokemon/tapu_koko/footprint.1bpp"); -const u8 gMonFootprint_Tapu_Lele[] = INCBIN_U8("graphics/pokemon/tapu_lele/footprint.1bpp"); -const u8 gMonFootprint_Tapu_Bulu[] = INCBIN_U8("graphics/pokemon/tapu_bulu/footprint.1bpp"); -const u8 gMonFootprint_Tapu_Fini[] = INCBIN_U8("graphics/pokemon/tapu_fini/footprint.1bpp"); -const u8 gMonFootprint_Cosmog[] = INCBIN_U8("graphics/pokemon/cosmog/footprint.1bpp"); -const u8 gMonFootprint_Cosmoem[] = INCBIN_U8("graphics/pokemon/cosmoem/footprint.1bpp"); -const u8 gMonFootprint_Solgaleo[] = INCBIN_U8("graphics/pokemon/solgaleo/footprint.1bpp"); -const u8 gMonFootprint_Lunala[] = INCBIN_U8("graphics/pokemon/lunala/footprint.1bpp"); -const u8 gMonFootprint_Nihilego[] = INCBIN_U8("graphics/pokemon/nihilego/footprint.1bpp"); -const u8 gMonFootprint_Buzzwole[] = INCBIN_U8("graphics/pokemon/buzzwole/footprint.1bpp"); -const u8 gMonFootprint_Pheromosa[] = INCBIN_U8("graphics/pokemon/pheromosa/footprint.1bpp"); -const u8 gMonFootprint_Xurkitree[] = INCBIN_U8("graphics/pokemon/xurkitree/footprint.1bpp"); -const u8 gMonFootprint_Celesteela[] = INCBIN_U8("graphics/pokemon/celesteela/footprint.1bpp"); -const u8 gMonFootprint_Kartana[] = INCBIN_U8("graphics/pokemon/kartana/footprint.1bpp"); -const u8 gMonFootprint_Guzzlord[] = INCBIN_U8("graphics/pokemon/guzzlord/footprint.1bpp"); -const u8 gMonFootprint_Necrozma[] = INCBIN_U8("graphics/pokemon/necrozma/footprint.1bpp"); -const u8 gMonFootprint_Magearna[] = INCBIN_U8("graphics/pokemon/magearna/footprint.1bpp"); -const u8 gMonFootprint_Marshadow[] = INCBIN_U8("graphics/pokemon/marshadow/footprint.1bpp"); -const u8 gMonFootprint_Poipole[] = INCBIN_U8("graphics/pokemon/poipole/footprint.1bpp"); -const u8 gMonFootprint_Naganadel[] = INCBIN_U8("graphics/pokemon/naganadel/footprint.1bpp"); -const u8 gMonFootprint_Stakataka[] = INCBIN_U8("graphics/pokemon/stakataka/footprint.1bpp"); -const u8 gMonFootprint_Blacephalon[] = INCBIN_U8("graphics/pokemon/blacephalon/footprint.1bpp"); -const u8 gMonFootprint_Zeraora[] = INCBIN_U8("graphics/pokemon/zeraora/footprint.1bpp"); -const u8 gMonFootprint_Meltan[] = INCBIN_U8("graphics/pokemon/meltan/footprint.1bpp"); -const u8 gMonFootprint_Melmetal[] = INCBIN_U8("graphics/pokemon/melmetal/footprint.1bpp"); -#endif -#if P_GEN_8_POKEMON == TRUE -const u8 gMonFootprint_Grookey[] = INCBIN_U8("graphics/pokemon/grookey/footprint.1bpp"); -const u8 gMonFootprint_Thwackey[] = INCBIN_U8("graphics/pokemon/thwackey/footprint.1bpp"); -const u8 gMonFootprint_Rillaboom[] = INCBIN_U8("graphics/pokemon/rillaboom/footprint.1bpp"); -const u8 gMonFootprint_Scorbunny[] = INCBIN_U8("graphics/pokemon/scorbunny/footprint.1bpp"); -const u8 gMonFootprint_Raboot[] = INCBIN_U8("graphics/pokemon/raboot/footprint.1bpp"); -const u8 gMonFootprint_Cinderace[] = INCBIN_U8("graphics/pokemon/cinderace/footprint.1bpp"); -const u8 gMonFootprint_Sobble[] = INCBIN_U8("graphics/pokemon/sobble/footprint.1bpp"); -const u8 gMonFootprint_Drizzile[] = INCBIN_U8("graphics/pokemon/drizzile/footprint.1bpp"); -const u8 gMonFootprint_Inteleon[] = INCBIN_U8("graphics/pokemon/inteleon/footprint.1bpp"); -const u8 gMonFootprint_Skwovet[] = INCBIN_U8("graphics/pokemon/skwovet/footprint.1bpp"); -const u8 gMonFootprint_Greedent[] = INCBIN_U8("graphics/pokemon/greedent/footprint.1bpp"); -const u8 gMonFootprint_Rookidee[] = INCBIN_U8("graphics/pokemon/rookidee/footprint.1bpp"); -const u8 gMonFootprint_Corvisquire[] = INCBIN_U8("graphics/pokemon/corvisquire/footprint.1bpp"); -const u8 gMonFootprint_Corviknight[] = INCBIN_U8("graphics/pokemon/corviknight/footprint.1bpp"); -const u8 gMonFootprint_Blipbug[] = INCBIN_U8("graphics/pokemon/blipbug/footprint.1bpp"); -const u8 gMonFootprint_Dottler[] = INCBIN_U8("graphics/pokemon/dottler/footprint.1bpp"); -const u8 gMonFootprint_Orbeetle[] = INCBIN_U8("graphics/pokemon/orbeetle/footprint.1bpp"); -const u8 gMonFootprint_Nickit[] = INCBIN_U8("graphics/pokemon/nickit/footprint.1bpp"); -const u8 gMonFootprint_Thievul[] = INCBIN_U8("graphics/pokemon/thievul/footprint.1bpp"); -const u8 gMonFootprint_Gossifleur[] = INCBIN_U8("graphics/pokemon/gossifleur/footprint.1bpp"); -const u8 gMonFootprint_Eldegoss[] = INCBIN_U8("graphics/pokemon/eldegoss/footprint.1bpp"); -const u8 gMonFootprint_Wooloo[] = INCBIN_U8("graphics/pokemon/wooloo/footprint.1bpp"); -const u8 gMonFootprint_Dubwool[] = INCBIN_U8("graphics/pokemon/dubwool/footprint.1bpp"); -const u8 gMonFootprint_Chewtle[] = INCBIN_U8("graphics/pokemon/chewtle/footprint.1bpp"); -const u8 gMonFootprint_Drednaw[] = INCBIN_U8("graphics/pokemon/drednaw/footprint.1bpp"); -const u8 gMonFootprint_Yamper[] = INCBIN_U8("graphics/pokemon/yamper/footprint.1bpp"); -const u8 gMonFootprint_Boltund[] = INCBIN_U8("graphics/pokemon/boltund/footprint.1bpp"); -const u8 gMonFootprint_Rolycoly[] = INCBIN_U8("graphics/pokemon/rolycoly/footprint.1bpp"); -const u8 gMonFootprint_Carkol[] = INCBIN_U8("graphics/pokemon/carkol/footprint.1bpp"); -const u8 gMonFootprint_Coalossal[] = INCBIN_U8("graphics/pokemon/coalossal/footprint.1bpp"); -const u8 gMonFootprint_Applin[] = INCBIN_U8("graphics/pokemon/applin/footprint.1bpp"); -const u8 gMonFootprint_Flapple[] = INCBIN_U8("graphics/pokemon/flapple/footprint.1bpp"); -const u8 gMonFootprint_Appletun[] = INCBIN_U8("graphics/pokemon/appletun/footprint.1bpp"); -const u8 gMonFootprint_Silicobra[] = INCBIN_U8("graphics/pokemon/silicobra/footprint.1bpp"); -const u8 gMonFootprint_Sandaconda[] = INCBIN_U8("graphics/pokemon/sandaconda/footprint.1bpp"); -const u8 gMonFootprint_Cramorant[] = INCBIN_U8("graphics/pokemon/cramorant/footprint.1bpp"); -const u8 gMonFootprint_Arrokuda[] = INCBIN_U8("graphics/pokemon/arrokuda/footprint.1bpp"); -const u8 gMonFootprint_Barraskewda[] = INCBIN_U8("graphics/pokemon/barraskewda/footprint.1bpp"); -const u8 gMonFootprint_Toxel[] = INCBIN_U8("graphics/pokemon/toxel/footprint.1bpp"); -const u8 gMonFootprint_Toxtricity[] = INCBIN_U8("graphics/pokemon/toxtricity/footprint.1bpp"); -const u8 gMonFootprint_Sizzlipede[] = INCBIN_U8("graphics/pokemon/sizzlipede/footprint.1bpp"); -const u8 gMonFootprint_Centiskorch[] = INCBIN_U8("graphics/pokemon/centiskorch/footprint.1bpp"); -const u8 gMonFootprint_Clobbopus[] = INCBIN_U8("graphics/pokemon/clobbopus/footprint.1bpp"); -const u8 gMonFootprint_Grapploct[] = INCBIN_U8("graphics/pokemon/grapploct/footprint.1bpp"); -const u8 gMonFootprint_Sinistea[] = INCBIN_U8("graphics/pokemon/sinistea/footprint.1bpp"); -const u8 gMonFootprint_Polteageist[] = INCBIN_U8("graphics/pokemon/polteageist/footprint.1bpp"); -const u8 gMonFootprint_Hatenna[] = INCBIN_U8("graphics/pokemon/hatenna/footprint.1bpp"); -const u8 gMonFootprint_Hattrem[] = INCBIN_U8("graphics/pokemon/hattrem/footprint.1bpp"); -const u8 gMonFootprint_Hatterene[] = INCBIN_U8("graphics/pokemon/hatterene/footprint.1bpp"); -const u8 gMonFootprint_Impidimp[] = INCBIN_U8("graphics/pokemon/impidimp/footprint.1bpp"); -const u8 gMonFootprint_Morgrem[] = INCBIN_U8("graphics/pokemon/morgrem/footprint.1bpp"); -const u8 gMonFootprint_Grimmsnarl[] = INCBIN_U8("graphics/pokemon/grimmsnarl/footprint.1bpp"); -const u8 gMonFootprint_Obstagoon[] = INCBIN_U8("graphics/pokemon/obstagoon/footprint.1bpp"); -const u8 gMonFootprint_Perrserker[] = INCBIN_U8("graphics/pokemon/perrserker/footprint.1bpp"); -const u8 gMonFootprint_Cursola[] = INCBIN_U8("graphics/pokemon/cursola/footprint.1bpp"); -const u8 gMonFootprint_Sirfetchd[] = INCBIN_U8("graphics/pokemon/sirfetchd/footprint.1bpp"); -const u8 gMonFootprint_Mr_Rime[] = INCBIN_U8("graphics/pokemon/mr_rime/footprint.1bpp"); -const u8 gMonFootprint_Runerigus[] = INCBIN_U8("graphics/pokemon/runerigus/footprint.1bpp"); -const u8 gMonFootprint_Milcery[] = INCBIN_U8("graphics/pokemon/milcery/footprint.1bpp"); -const u8 gMonFootprint_Alcremie[] = INCBIN_U8("graphics/pokemon/alcremie/footprint.1bpp"); -const u8 gMonFootprint_Falinks[] = INCBIN_U8("graphics/pokemon/falinks/footprint.1bpp"); -const u8 gMonFootprint_Pincurchin[] = INCBIN_U8("graphics/pokemon/pincurchin/footprint.1bpp"); -const u8 gMonFootprint_Snom[] = INCBIN_U8("graphics/pokemon/snom/footprint.1bpp"); -const u8 gMonFootprint_Frosmoth[] = INCBIN_U8("graphics/pokemon/frosmoth/footprint.1bpp"); -const u8 gMonFootprint_Stonjourner[] = INCBIN_U8("graphics/pokemon/stonjourner/footprint.1bpp"); -const u8 gMonFootprint_Eiscue[] = INCBIN_U8("graphics/pokemon/eiscue/footprint.1bpp"); -const u8 gMonFootprint_Indeedee[] = INCBIN_U8("graphics/pokemon/indeedee/footprint.1bpp"); -const u8 gMonFootprint_Morpeko[] = INCBIN_U8("graphics/pokemon/morpeko/footprint.1bpp"); -const u8 gMonFootprint_Cufant[] = INCBIN_U8("graphics/pokemon/cufant/footprint.1bpp"); -const u8 gMonFootprint_Copperajah[] = INCBIN_U8("graphics/pokemon/copperajah/footprint.1bpp"); -const u8 gMonFootprint_Dracozolt[] = INCBIN_U8("graphics/pokemon/dracozolt/footprint.1bpp"); -const u8 gMonFootprint_Arctozolt[] = INCBIN_U8("graphics/pokemon/arctozolt/footprint.1bpp"); -const u8 gMonFootprint_Dracovish[] = INCBIN_U8("graphics/pokemon/dracovish/footprint.1bpp"); -const u8 gMonFootprint_Arctovish[] = INCBIN_U8("graphics/pokemon/arctovish/footprint.1bpp"); -const u8 gMonFootprint_Duraludon[] = INCBIN_U8("graphics/pokemon/duraludon/footprint.1bpp"); -const u8 gMonFootprint_Dreepy[] = INCBIN_U8("graphics/pokemon/dreepy/footprint.1bpp"); -const u8 gMonFootprint_Drakloak[] = INCBIN_U8("graphics/pokemon/drakloak/footprint.1bpp"); -const u8 gMonFootprint_Dragapult[] = INCBIN_U8("graphics/pokemon/dragapult/footprint.1bpp"); -const u8 gMonFootprint_Zacian[] = INCBIN_U8("graphics/pokemon/zacian/footprint.1bpp"); -const u8 gMonFootprint_Zamazenta[] = INCBIN_U8("graphics/pokemon/zamazenta/footprint.1bpp"); -const u8 gMonFootprint_Eternatus[] = INCBIN_U8("graphics/pokemon/eternatus/footprint.1bpp"); -const u8 gMonFootprint_Kubfu[] = INCBIN_U8("graphics/pokemon/kubfu/footprint.1bpp"); -const u8 gMonFootprint_Urshifu[] = INCBIN_U8("graphics/pokemon/urshifu/footprint.1bpp"); -const u8 gMonFootprint_Zarude[] = INCBIN_U8("graphics/pokemon/zarude/footprint.1bpp"); -const u8 gMonFootprint_Regieleki[] = INCBIN_U8("graphics/pokemon/regieleki/footprint.1bpp"); -const u8 gMonFootprint_Regidrago[] = INCBIN_U8("graphics/pokemon/regidrago/footprint.1bpp"); -const u8 gMonFootprint_Glastrier[] = INCBIN_U8("graphics/pokemon/glastrier/footprint.1bpp"); -const u8 gMonFootprint_Spectrier[] = INCBIN_U8("graphics/pokemon/spectrier/footprint.1bpp"); -const u8 gMonFootprint_Calyrex[] = INCBIN_U8("graphics/pokemon/calyrex/footprint.1bpp"); -//const u8 gMonFootprint_Wyrdeer[] = INCBIN_U8("graphics/pokemon/wyrdeer/footprint.1bpp"); -//const u8 gMonFootprint_Kleavor[] = INCBIN_U8("graphics/pokemon/kleavor/footprint.1bpp"); -//const u8 gMonFootprint_Ursaluna[] = INCBIN_U8("graphics/pokemon/ursaluna/footprint.1bpp"); -//const u8 gMonFootprint_Basculegion[] = INCBIN_U8("graphics/pokemon/basculegion/footprint.1bpp"); -//const u8 gMonFootprint_Sneasler[] = INCBIN_U8("graphics/pokemon/sneasler/footprint.1bpp"); -//const u8 gMonFootprint_Overqwil[] = INCBIN_U8("graphics/pokemon/overqwil/footprint.1bpp"); -//const u8 gMonFootprint_Enamorus[] = INCBIN_U8("graphics/pokemon/enamorus/footprint.1bpp"); + +#if P_FAMILY_BULBASAUR + const u32 gMonFrontPic_Bulbasaur[] = INCBIN_U32("graphics/pokemon/bulbasaur/anim_front.4bpp.lz"); + const u32 gMonPalette_Bulbasaur[] = INCBIN_U32("graphics/pokemon/bulbasaur/normal.gbapal.lz"); + const u32 gMonBackPic_Bulbasaur[] = INCBIN_U32("graphics/pokemon/bulbasaur/back.4bpp.lz"); + const u32 gMonShinyPalette_Bulbasaur[] = INCBIN_U32("graphics/pokemon/bulbasaur/shiny.gbapal.lz"); + const u8 gMonIcon_Bulbasaur[] = INCBIN_U8("graphics/pokemon/bulbasaur/icon.4bpp"); + const u8 gMonFootprint_Bulbasaur[] = INCBIN_U8("graphics/pokemon/bulbasaur/footprint.1bpp"); + + const u32 gMonFrontPic_Ivysaur[] = INCBIN_U32("graphics/pokemon/ivysaur/anim_front.4bpp.lz"); + const u32 gMonPalette_Ivysaur[] = INCBIN_U32("graphics/pokemon/ivysaur/normal.gbapal.lz"); + const u32 gMonBackPic_Ivysaur[] = INCBIN_U32("graphics/pokemon/ivysaur/back.4bpp.lz"); + const u32 gMonShinyPalette_Ivysaur[] = INCBIN_U32("graphics/pokemon/ivysaur/shiny.gbapal.lz"); + const u8 gMonIcon_Ivysaur[] = INCBIN_U8("graphics/pokemon/ivysaur/icon.4bpp"); + const u8 gMonFootprint_Ivysaur[] = INCBIN_U8("graphics/pokemon/ivysaur/footprint.1bpp"); + + const u32 gMonFrontPic_Venusaur[] = INCBIN_U32("graphics/pokemon/venusaur/anim_front.4bpp.lz"); + const u32 gMonPalette_Venusaur[] = INCBIN_U32("graphics/pokemon/venusaur/normal.gbapal.lz"); + const u32 gMonBackPic_Venusaur[] = INCBIN_U32("graphics/pokemon/venusaur/back.4bpp.lz"); + const u32 gMonShinyPalette_Venusaur[] = INCBIN_U32("graphics/pokemon/venusaur/shiny.gbapal.lz"); + const u8 gMonIcon_Venusaur[] = INCBIN_U8("graphics/pokemon/venusaur/icon.4bpp"); + const u8 gMonFootprint_Venusaur[] = INCBIN_U8("graphics/pokemon/venusaur/footprint.1bpp"); + + const u32 gMonFrontPic_VenusaurF[] = INCBIN_U32("graphics/pokemon/venusaur/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_VenusaurF[] = INCBIN_U32("graphics/pokemon/venusaur/backf.4bpp.lz"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_VenusaurMega[] = INCBIN_U32("graphics/pokemon/venusaur/mega/front.4bpp.lz"); + const u32 gMonPalette_VenusaurMega[] = INCBIN_U32("graphics/pokemon/venusaur/mega/normal.gbapal.lz"); + const u32 gMonBackPic_VenusaurMega[] = INCBIN_U32("graphics/pokemon/venusaur/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_VenusaurMega[] = INCBIN_U32("graphics/pokemon/venusaur/mega/shiny.gbapal.lz"); + const u8 gMonIcon_VenusaurMega[] = INCBIN_U8("graphics/pokemon/venusaur/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS + +#if P_GIGANTAMAX_FORMS + const u32 gMonFrontPic_VenusaurGigantamax[] = INCBIN_U32("graphics/pokemon/venusaur/gigantamax/front.4bpp.lz"); + const u32 gMonBackPic_VenusaurGigantamax[] = INCBIN_U32("graphics/pokemon/venusaur/gigantamax/back.4bpp.lz"); + const u32 gMonPalette_VenusaurGigantamax[] = INCBIN_U32("graphics/pokemon/venusaur/gigantamax/normal.gbapal.lz"); + const u32 gMonShinyPalette_VenusaurGigantamax[] = INCBIN_U32("graphics/pokemon/venusaur/gigantamax/shiny.gbapal.lz"); + const u8 gMonIcon_VenusaurGigantamax[] = INCBIN_U8("graphics/pokemon/venusaur/gigantamax/icon.4bpp"); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_BULBASAUR + +#if P_FAMILY_CHARMANDER + const u32 gMonFrontPic_Charmander[] = INCBIN_U32("graphics/pokemon/charmander/anim_front.4bpp.lz"); + const u32 gMonPalette_Charmander[] = INCBIN_U32("graphics/pokemon/charmander/normal.gbapal.lz"); + const u32 gMonBackPic_Charmander[] = INCBIN_U32("graphics/pokemon/charmander/back.4bpp.lz"); + const u32 gMonShinyPalette_Charmander[] = INCBIN_U32("graphics/pokemon/charmander/shiny.gbapal.lz"); + const u8 gMonIcon_Charmander[] = INCBIN_U8("graphics/pokemon/charmander/icon.4bpp"); + const u8 gMonFootprint_Charmander[] = INCBIN_U8("graphics/pokemon/charmander/footprint.1bpp"); + + const u32 gMonFrontPic_Charmeleon[] = INCBIN_U32("graphics/pokemon/charmeleon/anim_front.4bpp.lz"); + const u32 gMonPalette_Charmeleon[] = INCBIN_U32("graphics/pokemon/charmeleon/normal.gbapal.lz"); + const u32 gMonBackPic_Charmeleon[] = INCBIN_U32("graphics/pokemon/charmeleon/back.4bpp.lz"); + const u32 gMonShinyPalette_Charmeleon[] = INCBIN_U32("graphics/pokemon/charmeleon/shiny.gbapal.lz"); + const u8 gMonIcon_Charmeleon[] = INCBIN_U8("graphics/pokemon/charmeleon/icon.4bpp"); + const u8 gMonFootprint_Charmeleon[] = INCBIN_U8("graphics/pokemon/charmeleon/footprint.1bpp"); + + const u32 gMonFrontPic_Charizard[] = INCBIN_U32("graphics/pokemon/charizard/anim_front.4bpp.lz"); + const u32 gMonPalette_Charizard[] = INCBIN_U32("graphics/pokemon/charizard/normal.gbapal.lz"); + const u32 gMonBackPic_Charizard[] = INCBIN_U32("graphics/pokemon/charizard/back.4bpp.lz"); + const u32 gMonShinyPalette_Charizard[] = INCBIN_U32("graphics/pokemon/charizard/shiny.gbapal.lz"); + const u8 gMonIcon_Charizard[] = INCBIN_U8("graphics/pokemon/charizard/icon.4bpp"); + const u8 gMonFootprint_Charizard[] = INCBIN_U8("graphics/pokemon/charizard/footprint.1bpp"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_CharizardMegaX[] = INCBIN_U32("graphics/pokemon/charizard/mega_x/front.4bpp.lz"); + const u32 gMonPalette_CharizardMegaX[] = INCBIN_U32("graphics/pokemon/charizard/mega_x/normal.gbapal.lz"); + const u32 gMonBackPic_CharizardMegaX[] = INCBIN_U32("graphics/pokemon/charizard/mega_x/back.4bpp.lz"); + const u32 gMonShinyPalette_CharizardMegaX[] = INCBIN_U32("graphics/pokemon/charizard/mega_x/shiny.gbapal.lz"); + const u8 gMonIcon_CharizardMegaX[] = INCBIN_U8("graphics/pokemon/charizard/mega_x/icon.4bpp"); + + const u32 gMonFrontPic_CharizardMegaY[] = INCBIN_U32("graphics/pokemon/charizard/mega_y/front.4bpp.lz"); + const u32 gMonPalette_CharizardMegaY[] = INCBIN_U32("graphics/pokemon/charizard/mega_y/normal.gbapal.lz"); + const u32 gMonBackPic_CharizardMegaY[] = INCBIN_U32("graphics/pokemon/charizard/mega_y/back.4bpp.lz"); + const u32 gMonShinyPalette_CharizardMegaY[] = INCBIN_U32("graphics/pokemon/charizard/mega_y/shiny.gbapal.lz"); + const u8 gMonIcon_CharizardMegaY[] = INCBIN_U8("graphics/pokemon/charizard/mega_y/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS + +#if P_GIGANTAMAX_FORMS + const u32 gMonFrontPic_CharizardGigantamax[] = INCBIN_U32("graphics/pokemon/charizard/gigantamax/front.4bpp.lz"); + const u32 gMonBackPic_CharizardGigantamax[] = INCBIN_U32("graphics/pokemon/charizard/gigantamax/back.4bpp.lz"); + const u32 gMonPalette_CharizardGigantamax[] = INCBIN_U32("graphics/pokemon/charizard/gigantamax/normal.gbapal.lz"); + const u32 gMonShinyPalette_CharizardGigantamax[] = INCBIN_U32("graphics/pokemon/charizard/gigantamax/shiny.gbapal.lz"); + const u8 gMonIcon_CharizardGigantamax[] = INCBIN_U8("graphics/pokemon/charizard/gigantamax/icon.4bpp"); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_CHARMANDER + +#if P_FAMILY_SQUIRTLE + const u32 gMonFrontPic_Squirtle[] = INCBIN_U32("graphics/pokemon/squirtle/anim_front.4bpp.lz"); + const u32 gMonPalette_Squirtle[] = INCBIN_U32("graphics/pokemon/squirtle/normal.gbapal.lz"); + const u32 gMonBackPic_Squirtle[] = INCBIN_U32("graphics/pokemon/squirtle/back.4bpp.lz"); + const u32 gMonShinyPalette_Squirtle[] = INCBIN_U32("graphics/pokemon/squirtle/shiny.gbapal.lz"); + const u8 gMonIcon_Squirtle[] = INCBIN_U8("graphics/pokemon/squirtle/icon.4bpp"); + const u8 gMonFootprint_Squirtle[] = INCBIN_U8("graphics/pokemon/squirtle/footprint.1bpp"); + + const u32 gMonFrontPic_Wartortle[] = INCBIN_U32("graphics/pokemon/wartortle/anim_front.4bpp.lz"); + const u32 gMonPalette_Wartortle[] = INCBIN_U32("graphics/pokemon/wartortle/normal.gbapal.lz"); + const u32 gMonBackPic_Wartortle[] = INCBIN_U32("graphics/pokemon/wartortle/back.4bpp.lz"); + const u32 gMonShinyPalette_Wartortle[] = INCBIN_U32("graphics/pokemon/wartortle/shiny.gbapal.lz"); + const u8 gMonIcon_Wartortle[] = INCBIN_U8("graphics/pokemon/wartortle/icon.4bpp"); + const u8 gMonFootprint_Wartortle[] = INCBIN_U8("graphics/pokemon/wartortle/footprint.1bpp"); + + const u32 gMonFrontPic_Blastoise[] = INCBIN_U32("graphics/pokemon/blastoise/anim_front.4bpp.lz"); + const u32 gMonPalette_Blastoise[] = INCBIN_U32("graphics/pokemon/blastoise/normal.gbapal.lz"); + const u32 gMonBackPic_Blastoise[] = INCBIN_U32("graphics/pokemon/blastoise/back.4bpp.lz"); + const u32 gMonShinyPalette_Blastoise[] = INCBIN_U32("graphics/pokemon/blastoise/shiny.gbapal.lz"); + const u8 gMonIcon_Blastoise[] = INCBIN_U8("graphics/pokemon/blastoise/icon.4bpp"); + const u8 gMonFootprint_Blastoise[] = INCBIN_U8("graphics/pokemon/blastoise/footprint.1bpp"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_BlastoiseMega[] = INCBIN_U32("graphics/pokemon/blastoise/mega/front.4bpp.lz"); + const u32 gMonPalette_BlastoiseMega[] = INCBIN_U32("graphics/pokemon/blastoise/mega/normal.gbapal.lz"); + const u32 gMonBackPic_BlastoiseMega[] = INCBIN_U32("graphics/pokemon/blastoise/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_BlastoiseMega[] = INCBIN_U32("graphics/pokemon/blastoise/mega/shiny.gbapal.lz"); + const u8 gMonIcon_BlastoiseMega[] = INCBIN_U8("graphics/pokemon/blastoise/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS + +#if P_GIGANTAMAX_FORMS + const u32 gMonFrontPic_BlastoiseGigantamax[] = INCBIN_U32("graphics/pokemon/blastoise/gigantamax/front.4bpp.lz"); + const u32 gMonBackPic_BlastoiseGigantamax[] = INCBIN_U32("graphics/pokemon/blastoise/gigantamax/back.4bpp.lz"); + const u32 gMonPalette_BlastoiseGigantamax[] = INCBIN_U32("graphics/pokemon/blastoise/gigantamax/normal.gbapal.lz"); + const u32 gMonShinyPalette_BlastoiseGigantamax[] = INCBIN_U32("graphics/pokemon/blastoise/gigantamax/shiny.gbapal.lz"); + const u8 gMonIcon_BlastoiseGigantamax[] = INCBIN_U8("graphics/pokemon/blastoise/gigantamax/icon.4bpp"); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_SQUIRTLE + +#if P_FAMILY_CATERPIE + const u32 gMonFrontPic_Caterpie[] = INCBIN_U32("graphics/pokemon/caterpie/anim_front.4bpp.lz"); + const u32 gMonPalette_Caterpie[] = INCBIN_U32("graphics/pokemon/caterpie/normal.gbapal.lz"); + const u32 gMonBackPic_Caterpie[] = INCBIN_U32("graphics/pokemon/caterpie/back.4bpp.lz"); + const u32 gMonShinyPalette_Caterpie[] = INCBIN_U32("graphics/pokemon/caterpie/shiny.gbapal.lz"); + const u8 gMonIcon_Caterpie[] = INCBIN_U8("graphics/pokemon/caterpie/icon.4bpp"); + const u8 gMonFootprint_Caterpie[] = INCBIN_U8("graphics/pokemon/caterpie/footprint.1bpp"); + + const u32 gMonFrontPic_Metapod[] = INCBIN_U32("graphics/pokemon/metapod/anim_front.4bpp.lz"); + const u32 gMonPalette_Metapod[] = INCBIN_U32("graphics/pokemon/metapod/normal.gbapal.lz"); + const u32 gMonBackPic_Metapod[] = INCBIN_U32("graphics/pokemon/metapod/back.4bpp.lz"); + const u32 gMonShinyPalette_Metapod[] = INCBIN_U32("graphics/pokemon/metapod/shiny.gbapal.lz"); + const u8 gMonIcon_Metapod[] = INCBIN_U8( "graphics/pokemon/metapod/icon.4bpp"); + const u8 gMonFootprint_Metapod[] = INCBIN_U8("graphics/pokemon/metapod/footprint.1bpp"); + + const u32 gMonFrontPic_Butterfree[] = INCBIN_U32("graphics/pokemon/butterfree/anim_front.4bpp.lz"); + const u32 gMonPalette_Butterfree[] = INCBIN_U32("graphics/pokemon/butterfree/normal.gbapal.lz"); + const u32 gMonBackPic_Butterfree[] = INCBIN_U32("graphics/pokemon/butterfree/back.4bpp.lz"); + const u32 gMonShinyPalette_Butterfree[] = INCBIN_U32("graphics/pokemon/butterfree/shiny.gbapal.lz"); + const u8 gMonIcon_Butterfree[] = INCBIN_U8("graphics/pokemon/butterfree/icon.4bpp"); + const u8 gMonFootprint_Butterfree[] = INCBIN_U8("graphics/pokemon/butterfree/footprint.1bpp"); + + const u32 gMonFrontPic_ButterfreeF[] = INCBIN_U32("graphics/pokemon/butterfree/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_ButterfreeF[] = INCBIN_U32("graphics/pokemon/butterfree/backf.4bpp.lz"); + +#if P_GIGANTAMAX_FORMS + const u32 gMonFrontPic_ButterfreeGigantamax[] = INCBIN_U32("graphics/pokemon/butterfree/gigantamax/front.4bpp.lz"); + const u32 gMonBackPic_ButterfreeGigantamax[] = INCBIN_U32("graphics/pokemon/butterfree/gigantamax/back.4bpp.lz"); + const u32 gMonPalette_ButterfreeGigantamax[] = INCBIN_U32("graphics/pokemon/butterfree/gigantamax/normal.gbapal.lz"); + const u32 gMonShinyPalette_ButterfreeGigantamax[] = INCBIN_U32("graphics/pokemon/butterfree/gigantamax/shiny.gbapal.lz"); + const u8 gMonIcon_ButterfreeGigantamax[] = INCBIN_U8("graphics/pokemon/butterfree/gigantamax/icon.4bpp"); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_CATERPIE + +#if P_FAMILY_WEEDLE + const u32 gMonFrontPic_Weedle[] = INCBIN_U32("graphics/pokemon/weedle/anim_front.4bpp.lz"); + const u32 gMonPalette_Weedle[] = INCBIN_U32("graphics/pokemon/weedle/normal.gbapal.lz"); + const u32 gMonBackPic_Weedle[] = INCBIN_U32("graphics/pokemon/weedle/back.4bpp.lz"); + const u32 gMonShinyPalette_Weedle[] = INCBIN_U32("graphics/pokemon/weedle/shiny.gbapal.lz"); + const u8 gMonIcon_Weedle[] = INCBIN_U8("graphics/pokemon/weedle/icon.4bpp"); + const u8 gMonFootprint_Weedle[] = INCBIN_U8("graphics/pokemon/weedle/footprint.1bpp"); + + const u32 gMonFrontPic_Kakuna[] = INCBIN_U32("graphics/pokemon/kakuna/anim_front.4bpp.lz"); + const u32 gMonPalette_Kakuna[] = INCBIN_U32("graphics/pokemon/kakuna/normal.gbapal.lz"); + const u32 gMonBackPic_Kakuna[] = INCBIN_U32("graphics/pokemon/kakuna/back.4bpp.lz"); + const u32 gMonShinyPalette_Kakuna[] = INCBIN_U32("graphics/pokemon/kakuna/shiny.gbapal.lz"); + const u8 gMonIcon_Kakuna[] = INCBIN_U8("graphics/pokemon/kakuna/icon.4bpp"); + const u8 gMonFootprint_Kakuna[] = INCBIN_U8("graphics/pokemon/kakuna/footprint.1bpp"); + + const u32 gMonFrontPic_Beedrill[] = INCBIN_U32("graphics/pokemon/beedrill/anim_front.4bpp.lz"); + const u32 gMonPalette_Beedrill[] = INCBIN_U32("graphics/pokemon/beedrill/normal.gbapal.lz"); + const u32 gMonBackPic_Beedrill[] = INCBIN_U32("graphics/pokemon/beedrill/back.4bpp.lz"); + const u32 gMonShinyPalette_Beedrill[] = INCBIN_U32("graphics/pokemon/beedrill/shiny.gbapal.lz"); + const u8 gMonIcon_Beedrill[] = INCBIN_U8("graphics/pokemon/beedrill/icon.4bpp"); + const u8 gMonFootprint_Beedrill[] = INCBIN_U8("graphics/pokemon/beedrill/footprint.1bpp"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_BeedrillMega[] = INCBIN_U32("graphics/pokemon/beedrill/mega/front.4bpp.lz"); + const u32 gMonPalette_BeedrillMega[] = INCBIN_U32("graphics/pokemon/beedrill/mega/normal.gbapal.lz"); + const u32 gMonBackPic_BeedrillMega[] = INCBIN_U32("graphics/pokemon/beedrill/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_BeedrillMega[] = INCBIN_U32("graphics/pokemon/beedrill/mega/shiny.gbapal.lz"); + const u8 gMonIcon_BeedrillMega[] = INCBIN_U8("graphics/pokemon/beedrill/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_WEEDLE + +#if P_FAMILY_PIDGEY + const u32 gMonFrontPic_Pidgey[] = INCBIN_U32("graphics/pokemon/pidgey/anim_front.4bpp.lz"); + const u32 gMonPalette_Pidgey[] = INCBIN_U32("graphics/pokemon/pidgey/normal.gbapal.lz"); + const u32 gMonBackPic_Pidgey[] = INCBIN_U32("graphics/pokemon/pidgey/back.4bpp.lz"); + const u32 gMonShinyPalette_Pidgey[] = INCBIN_U32("graphics/pokemon/pidgey/shiny.gbapal.lz"); + const u8 gMonIcon_Pidgey[] = INCBIN_U8("graphics/pokemon/pidgey/icon.4bpp"); + const u8 gMonFootprint_Pidgey[] = INCBIN_U8("graphics/pokemon/pidgey/footprint.1bpp"); + + const u32 gMonFrontPic_Pidgeotto[] = INCBIN_U32("graphics/pokemon/pidgeotto/anim_front.4bpp.lz"); + const u32 gMonPalette_Pidgeotto[] = INCBIN_U32("graphics/pokemon/pidgeotto/normal.gbapal.lz"); + const u32 gMonBackPic_Pidgeotto[] = INCBIN_U32("graphics/pokemon/pidgeotto/back.4bpp.lz"); + const u32 gMonShinyPalette_Pidgeotto[] = INCBIN_U32("graphics/pokemon/pidgeotto/shiny.gbapal.lz"); + const u8 gMonIcon_Pidgeotto[] = INCBIN_U8("graphics/pokemon/pidgeotto/icon.4bpp"); + const u8 gMonFootprint_Pidgeotto[] = INCBIN_U8("graphics/pokemon/pidgeotto/footprint.1bpp"); + + const u32 gMonFrontPic_Pidgeot[] = INCBIN_U32("graphics/pokemon/pidgeot/anim_front.4bpp.lz"); + const u32 gMonPalette_Pidgeot[] = INCBIN_U32("graphics/pokemon/pidgeot/normal.gbapal.lz"); + const u32 gMonBackPic_Pidgeot[] = INCBIN_U32("graphics/pokemon/pidgeot/back.4bpp.lz"); + const u32 gMonShinyPalette_Pidgeot[] = INCBIN_U32("graphics/pokemon/pidgeot/shiny.gbapal.lz"); + const u8 gMonIcon_Pidgeot[] = INCBIN_U8("graphics/pokemon/pidgeot/icon.4bpp"); + const u8 gMonFootprint_Pidgeot[] = INCBIN_U8("graphics/pokemon/pidgeot/footprint.1bpp"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_PidgeotMega[] = INCBIN_U32("graphics/pokemon/pidgeot/mega/front.4bpp.lz"); + const u32 gMonPalette_PidgeotMega[] = INCBIN_U32("graphics/pokemon/pidgeot/mega/normal.gbapal.lz"); + const u32 gMonBackPic_PidgeotMega[] = INCBIN_U32("graphics/pokemon/pidgeot/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_PidgeotMega[] = INCBIN_U32("graphics/pokemon/pidgeot/mega/shiny.gbapal.lz"); + const u8 gMonIcon_PidgeotMega[] = INCBIN_U8("graphics/pokemon/pidgeot/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_PIDGEY + +#if P_FAMILY_RATTATA + const u32 gMonFrontPic_Rattata[] = INCBIN_U32("graphics/pokemon/rattata/anim_front.4bpp.lz"); + const u32 gMonPalette_Rattata[] = INCBIN_U32("graphics/pokemon/rattata/normal.gbapal.lz"); + const u32 gMonBackPic_Rattata[] = INCBIN_U32("graphics/pokemon/rattata/back.4bpp.lz"); + const u32 gMonShinyPalette_Rattata[] = INCBIN_U32("graphics/pokemon/rattata/shiny.gbapal.lz"); + const u8 gMonIcon_Rattata[] = INCBIN_U8("graphics/pokemon/rattata/icon.4bpp"); + const u8 gMonFootprint_Rattata[] = INCBIN_U8("graphics/pokemon/rattata/footprint.1bpp"); + + const u32 gMonFrontPic_RattataF[] = INCBIN_U32("graphics/pokemon/rattata/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_RattataF[] = INCBIN_U32("graphics/pokemon/rattata/backf.4bpp.lz"); + + const u32 gMonFrontPic_Raticate[] = INCBIN_U32("graphics/pokemon/raticate/anim_front.4bpp.lz"); + const u32 gMonPalette_Raticate[] = INCBIN_U32("graphics/pokemon/raticate/normal.gbapal.lz"); + const u32 gMonBackPic_Raticate[] = INCBIN_U32("graphics/pokemon/raticate/back.4bpp.lz"); + const u32 gMonShinyPalette_Raticate[] = INCBIN_U32("graphics/pokemon/raticate/shiny.gbapal.lz"); + const u8 gMonIcon_Raticate[] = INCBIN_U8("graphics/pokemon/raticate/icon.4bpp"); + const u8 gMonFootprint_Raticate[] = INCBIN_U8("graphics/pokemon/raticate/footprint.1bpp"); + + const u32 gMonFrontPic_RaticateF[] = INCBIN_U32("graphics/pokemon/raticate/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_RaticateF[] = INCBIN_U32("graphics/pokemon/raticate/backf.4bpp.lz"); + +#if P_ALOLAN_FORMS + const u32 gMonFrontPic_RattataAlolan[] = INCBIN_U32("graphics/pokemon/rattata/alolan/front.4bpp.lz"); + const u32 gMonPalette_RattataAlolan[] = INCBIN_U32("graphics/pokemon/rattata/alolan/normal.gbapal.lz"); + const u32 gMonBackPic_RattataAlolan[] = INCBIN_U32("graphics/pokemon/rattata/alolan/back.4bpp.lz"); + const u32 gMonShinyPalette_RattataAlolan[] = INCBIN_U32("graphics/pokemon/rattata/alolan/shiny.gbapal.lz"); + const u8 gMonIcon_RattataAlolan[] = INCBIN_U8("graphics/pokemon/rattata/alolan/icon.4bpp"); + + const u32 gMonFrontPic_RaticateAlolan[] = INCBIN_U32("graphics/pokemon/raticate/alolan/front.4bpp.lz"); + const u32 gMonPalette_RaticateAlolan[] = INCBIN_U32("graphics/pokemon/raticate/alolan/normal.gbapal.lz"); + const u32 gMonBackPic_RaticateAlolan[] = INCBIN_U32("graphics/pokemon/raticate/alolan/back.4bpp.lz"); + const u32 gMonShinyPalette_RaticateAlolan[] = INCBIN_U32("graphics/pokemon/raticate/alolan/shiny.gbapal.lz"); + const u8 gMonIcon_RaticateAlolan[] = INCBIN_U8("graphics/pokemon/raticate/alolan/icon.4bpp"); +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_RATTATA + +#if P_FAMILY_SPEAROW + const u32 gMonFrontPic_Spearow[] = INCBIN_U32("graphics/pokemon/spearow/anim_front.4bpp.lz"); + const u32 gMonPalette_Spearow[] = INCBIN_U32("graphics/pokemon/spearow/normal.gbapal.lz"); + const u32 gMonBackPic_Spearow[] = INCBIN_U32("graphics/pokemon/spearow/back.4bpp.lz"); + const u32 gMonShinyPalette_Spearow[] = INCBIN_U32("graphics/pokemon/spearow/shiny.gbapal.lz"); + const u8 gMonIcon_Spearow[] = INCBIN_U8("graphics/pokemon/spearow/icon.4bpp"); + const u8 gMonFootprint_Spearow[] = INCBIN_U8("graphics/pokemon/spearow/footprint.1bpp"); + + const u32 gMonFrontPic_Fearow[] = INCBIN_U32("graphics/pokemon/fearow/anim_front.4bpp.lz"); + const u32 gMonPalette_Fearow[] = INCBIN_U32("graphics/pokemon/fearow/normal.gbapal.lz"); + const u32 gMonBackPic_Fearow[] = INCBIN_U32("graphics/pokemon/fearow/back.4bpp.lz"); + const u32 gMonShinyPalette_Fearow[] = INCBIN_U32("graphics/pokemon/fearow/shiny.gbapal.lz"); + const u8 gMonIcon_Fearow[] = INCBIN_U8("graphics/pokemon/fearow/icon.4bpp"); + const u8 gMonFootprint_Fearow[] = INCBIN_U8("graphics/pokemon/fearow/footprint.1bpp"); +#endif //P_FAMILY_SPEAROW + +#if P_FAMILY_EKANS + const u32 gMonFrontPic_Ekans[] = INCBIN_U32("graphics/pokemon/ekans/anim_front.4bpp.lz"); + const u32 gMonPalette_Ekans[] = INCBIN_U32("graphics/pokemon/ekans/normal.gbapal.lz"); + const u32 gMonBackPic_Ekans[] = INCBIN_U32("graphics/pokemon/ekans/back.4bpp.lz"); + const u32 gMonShinyPalette_Ekans[] = INCBIN_U32("graphics/pokemon/ekans/shiny.gbapal.lz"); + const u8 gMonIcon_Ekans[] = INCBIN_U8("graphics/pokemon/ekans/icon.4bpp"); + const u8 gMonFootprint_Ekans[] = INCBIN_U8("graphics/pokemon/ekans/footprint.1bpp"); + + const u32 gMonFrontPic_Arbok[] = INCBIN_U32("graphics/pokemon/arbok/anim_front.4bpp.lz"); + const u32 gMonPalette_Arbok[] = INCBIN_U32("graphics/pokemon/arbok/normal.gbapal.lz"); + const u32 gMonBackPic_Arbok[] = INCBIN_U32("graphics/pokemon/arbok/back.4bpp.lz"); + const u32 gMonShinyPalette_Arbok[] = INCBIN_U32("graphics/pokemon/arbok/shiny.gbapal.lz"); + const u8 gMonIcon_Arbok[] = INCBIN_U8("graphics/pokemon/arbok/icon.4bpp"); + const u8 gMonFootprint_Arbok[] = INCBIN_U8("graphics/pokemon/arbok/footprint.1bpp"); +#endif //P_FAMILY_EKANS + +#if P_FAMILY_PIKACHU +#if P_GEN_2_CROSS_EVOS + const u32 gMonFrontPic_Pichu[] = INCBIN_U32("graphics/pokemon/pichu/anim_front.4bpp.lz"); + const u32 gMonPalette_Pichu[] = INCBIN_U32("graphics/pokemon/pichu/normal.gbapal.lz"); + const u32 gMonBackPic_Pichu[] = INCBIN_U32("graphics/pokemon/pichu/back.4bpp.lz"); + const u32 gMonShinyPalette_Pichu[] = INCBIN_U32("graphics/pokemon/pichu/shiny.gbapal.lz"); + const u8 gMonIcon_Pichu[] = INCBIN_U8("graphics/pokemon/pichu/icon.4bpp"); + const u8 gMonFootprint_Pichu[] = INCBIN_U8("graphics/pokemon/pichu/footprint.1bpp"); + + const u32 gMonFrontPic_PichuSpikyEared[] = INCBIN_U32("graphics/pokemon/pichu/spiky_eared/anim_front.4bpp.lz"); + const u32 gMonPalette_PichuSpikyEared[] = INCBIN_U32("graphics/pokemon/pichu/spiky_eared/normal.gbapal.lz"); + const u32 gMonBackPic_PichuSpikyEared[] = INCBIN_U32("graphics/pokemon/pichu/spiky_eared/back.4bpp.lz"); + const u32 gMonShinyPalette_PichuSpikyEared[] = INCBIN_U32("graphics/pokemon/pichu/spiky_eared/shiny.gbapal.lz"); + const u8 gMonIcon_PichuSpikyEared[] = INCBIN_U8("graphics/pokemon/pichu/spiky_eared/icon.4bpp"); +#endif //P_GEN_2_CROSS_EVOS + + const u32 gMonFrontPic_Pikachu[] = INCBIN_U32("graphics/pokemon/pikachu/anim_front.4bpp.lz"); + const u32 gMonPalette_Pikachu[] = INCBIN_U32("graphics/pokemon/pikachu/normal.gbapal.lz"); + const u32 gMonBackPic_Pikachu[] = INCBIN_U32("graphics/pokemon/pikachu/back.4bpp.lz"); + const u32 gMonShinyPalette_Pikachu[] = INCBIN_U32("graphics/pokemon/pikachu/shiny.gbapal.lz"); + const u8 gMonIcon_Pikachu[] = INCBIN_U8("graphics/pokemon/pikachu/icon.4bpp"); + const u8 gMonFootprint_Pikachu[] = INCBIN_U8("graphics/pokemon/pikachu/footprint.1bpp"); + + const u32 gMonFrontPic_PikachuF[] = INCBIN_U32("graphics/pokemon/pikachu/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_PikachuF[] = INCBIN_U32("graphics/pokemon/pikachu/backf.4bpp.lz"); +#if P_CUSTOM_GENDER_DIFF_ICONS + const u8 gMonIcon_PikachuF[] = INCBIN_U8("graphics/pokemon/pikachu/iconf.4bpp"); #endif + +#if P_COSPLAY_PIKACHU_FORMS + const u32 gMonFrontPic_PikachuCosplay[] = INCBIN_U32("graphics/pokemon/pikachu/cosplay/front.4bpp.lz"); + const u32 gMonPalette_PikachuCosplay[] = INCBIN_U32("graphics/pokemon/pikachu/cosplay/normal.gbapal.lz"); + const u32 gMonBackPic_PikachuCosplay[] = INCBIN_U32("graphics/pokemon/pikachu/cosplay/back.4bpp.lz"); + const u32 gMonShinyPalette_PikachuCosplay[] = INCBIN_U32("graphics/pokemon/pikachu/cosplay/shiny.gbapal.lz"); + const u8 gMonIcon_PikachuCosplay[] = INCBIN_U8("graphics/pokemon/pikachu/cosplay/icon.4bpp"); + + const u32 gMonFrontPic_PikachuRockStar[] = INCBIN_U32("graphics/pokemon/pikachu/rock_star/front.4bpp.lz"); + const u32 gMonPalette_PikachuRockStar[] = INCBIN_U32("graphics/pokemon/pikachu/rock_star/normal.gbapal.lz"); + const u32 gMonBackPic_PikachuRockStar[] = INCBIN_U32("graphics/pokemon/pikachu/rock_star/back.4bpp.lz"); + const u32 gMonShinyPalette_PikachuRockStar[] = INCBIN_U32("graphics/pokemon/pikachu/rock_star/shiny.gbapal.lz"); + const u8 gMonIcon_PikachuRockStar[] = INCBIN_U8("graphics/pokemon/pikachu/rock_star/icon.4bpp"); + + const u32 gMonFrontPic_PikachuBelle[] = INCBIN_U32("graphics/pokemon/pikachu/belle/front.4bpp.lz"); + const u32 gMonPalette_PikachuBelle[] = INCBIN_U32("graphics/pokemon/pikachu/belle/normal.gbapal.lz"); + const u32 gMonBackPic_PikachuBelle[] = INCBIN_U32("graphics/pokemon/pikachu/belle/back.4bpp.lz"); + const u32 gMonShinyPalette_PikachuBelle[] = INCBIN_U32("graphics/pokemon/pikachu/belle/shiny.gbapal.lz"); + const u8 gMonIcon_PikachuBelle[] = INCBIN_U8("graphics/pokemon/pikachu/belle/icon.4bpp"); + + const u32 gMonFrontPic_PikachuPopStar[] = INCBIN_U32("graphics/pokemon/pikachu/pop_star/front.4bpp.lz"); + const u32 gMonPalette_PikachuPopStar[] = INCBIN_U32("graphics/pokemon/pikachu/pop_star/normal.gbapal.lz"); + const u32 gMonBackPic_PikachuPopStar[] = INCBIN_U32("graphics/pokemon/pikachu/pop_star/back.4bpp.lz"); + const u32 gMonShinyPalette_PikachuPopStar[] = INCBIN_U32("graphics/pokemon/pikachu/pop_star/shiny.gbapal.lz"); + const u8 gMonIcon_PikachuPopStar[] = INCBIN_U8("graphics/pokemon/pikachu/pop_star/icon.4bpp"); + + const u32 gMonFrontPic_PikachuPhD[] = INCBIN_U32("graphics/pokemon/pikachu/ph_d/front.4bpp.lz"); + const u32 gMonPalette_PikachuPhD[] = INCBIN_U32("graphics/pokemon/pikachu/ph_d/normal.gbapal.lz"); + const u32 gMonBackPic_PikachuPhD[] = INCBIN_U32("graphics/pokemon/pikachu/ph_d/back.4bpp.lz"); + const u32 gMonShinyPalette_PikachuPhD[] = INCBIN_U32("graphics/pokemon/pikachu/ph_d/shiny.gbapal.lz"); + const u8 gMonIcon_PikachuPhD[] = INCBIN_U8("graphics/pokemon/pikachu/ph_d/icon.4bpp"); + + const u32 gMonFrontPic_PikachuLibre[] = INCBIN_U32("graphics/pokemon/pikachu/libre/front.4bpp.lz"); + const u32 gMonPalette_PikachuLibre[] = INCBIN_U32("graphics/pokemon/pikachu/libre/normal.gbapal.lz"); + const u32 gMonBackPic_PikachuLibre[] = INCBIN_U32("graphics/pokemon/pikachu/libre/back.4bpp.lz"); + const u32 gMonShinyPalette_PikachuLibre[] = INCBIN_U32("graphics/pokemon/pikachu/libre/shiny.gbapal.lz"); + const u8 gMonIcon_PikachuLibre[] = INCBIN_U8("graphics/pokemon/pikachu/libre/icon.4bpp"); +#endif //P_COSPLAY_PIKACHU_FORMS + +#if P_CAP_PIKACHU_FORMS + const u32 gMonFrontPic_PikachuOriginalCap[] = INCBIN_U32("graphics/pokemon/pikachu/original_cap/front.4bpp.lz"); + const u32 gMonPalette_PikachuOriginalCap[] = INCBIN_U32("graphics/pokemon/pikachu/original_cap/normal.gbapal.lz"); + const u32 gMonBackPic_PikachuOriginalCap[] = INCBIN_U32("graphics/pokemon/pikachu/original_cap/back.4bpp.lz"); + const u32 gMonShinyPalette_PikachuOriginalCap[] = INCBIN_U32("graphics/pokemon/pikachu/original_cap/shiny.gbapal.lz"); + const u8 gMonIcon_PikachuOriginalCap[] = INCBIN_U8("graphics/pokemon/pikachu/original_cap/icon.4bpp"); + + const u32 gMonFrontPic_PikachuHoennCap[] = INCBIN_U32("graphics/pokemon/pikachu/hoenn_cap/front.4bpp.lz"); + const u32 gMonPalette_PikachuHoennCap[] = INCBIN_U32("graphics/pokemon/pikachu/hoenn_cap/normal.gbapal.lz"); + const u32 gMonBackPic_PikachuHoennCap[] = INCBIN_U32("graphics/pokemon/pikachu/hoenn_cap/back.4bpp.lz"); + const u32 gMonShinyPalette_PikachuHoennCap[] = INCBIN_U32("graphics/pokemon/pikachu/hoenn_cap/shiny.gbapal.lz"); + const u8 gMonIcon_PikachuHoennCap[] = INCBIN_U8("graphics/pokemon/pikachu/hoenn_cap/icon.4bpp"); + + const u32 gMonFrontPic_PikachuSinnohCap[] = INCBIN_U32("graphics/pokemon/pikachu/sinnoh_cap/front.4bpp.lz"); + const u32 gMonPalette_PikachuSinnohCap[] = INCBIN_U32("graphics/pokemon/pikachu/sinnoh_cap/normal.gbapal.lz"); + const u32 gMonBackPic_PikachuSinnohCap[] = INCBIN_U32("graphics/pokemon/pikachu/sinnoh_cap/back.4bpp.lz"); + const u32 gMonShinyPalette_PikachuSinnohCap[] = INCBIN_U32("graphics/pokemon/pikachu/sinnoh_cap/shiny.gbapal.lz"); + const u8 gMonIcon_PikachuSinnohCap[] = INCBIN_U8("graphics/pokemon/pikachu/sinnoh_cap/icon.4bpp"); + + const u32 gMonFrontPic_PikachuUnovaCap[] = INCBIN_U32("graphics/pokemon/pikachu/unova_cap/front.4bpp.lz"); + const u32 gMonPalette_PikachuUnovaCap[] = INCBIN_U32("graphics/pokemon/pikachu/unova_cap/normal.gbapal.lz"); + const u32 gMonBackPic_PikachuUnovaCap[] = INCBIN_U32("graphics/pokemon/pikachu/unova_cap/back.4bpp.lz"); + const u32 gMonShinyPalette_PikachuUnovaCap[] = INCBIN_U32("graphics/pokemon/pikachu/unova_cap/shiny.gbapal.lz"); + const u8 gMonIcon_PikachuUnovaCap[] = INCBIN_U8("graphics/pokemon/pikachu/unova_cap/icon.4bpp"); + + const u32 gMonFrontPic_PikachuKalosCap[] = INCBIN_U32("graphics/pokemon/pikachu/kalos_cap/front.4bpp.lz"); + const u32 gMonPalette_PikachuKalosCap[] = INCBIN_U32("graphics/pokemon/pikachu/kalos_cap/normal.gbapal.lz"); + const u32 gMonBackPic_PikachuKalosCap[] = INCBIN_U32("graphics/pokemon/pikachu/kalos_cap/back.4bpp.lz"); + const u32 gMonShinyPalette_PikachuKalosCap[] = INCBIN_U32("graphics/pokemon/pikachu/kalos_cap/shiny.gbapal.lz"); + const u8 gMonIcon_PikachuKalosCap[] = INCBIN_U8("graphics/pokemon/pikachu/kalos_cap/icon.4bpp"); + + const u32 gMonFrontPic_PikachuAlolaCap[] = INCBIN_U32("graphics/pokemon/pikachu/alola_cap/front.4bpp.lz"); + const u32 gMonPalette_PikachuAlolaCap[] = INCBIN_U32("graphics/pokemon/pikachu/alola_cap/normal.gbapal.lz"); + const u32 gMonBackPic_PikachuAlolaCap[] = INCBIN_U32("graphics/pokemon/pikachu/alola_cap/back.4bpp.lz"); + const u32 gMonShinyPalette_PikachuAlolaCap[] = INCBIN_U32("graphics/pokemon/pikachu/alola_cap/shiny.gbapal.lz"); + const u8 gMonIcon_PikachuAlolaCap[] = INCBIN_U8("graphics/pokemon/pikachu/alola_cap/icon.4bpp"); + + const u32 gMonFrontPic_PikachuPartnerCap[] = INCBIN_U32("graphics/pokemon/pikachu/partner_cap/front.4bpp.lz"); + const u32 gMonPalette_PikachuPartnerCap[] = INCBIN_U32("graphics/pokemon/pikachu/partner_cap/normal.gbapal.lz"); + const u32 gMonBackPic_PikachuPartnerCap[] = INCBIN_U32("graphics/pokemon/pikachu/partner_cap/back.4bpp.lz"); + const u32 gMonShinyPalette_PikachuPartnerCap[] = INCBIN_U32("graphics/pokemon/pikachu/partner_cap/shiny.gbapal.lz"); + const u8 gMonIcon_PikachuPartnerCap[] = INCBIN_U8("graphics/pokemon/pikachu/partner_cap/icon.4bpp"); + + const u32 gMonFrontPic_PikachuWorldCap[] = INCBIN_U32("graphics/pokemon/pikachu/world_cap/front.4bpp.lz"); + const u32 gMonPalette_PikachuWorldCap[] = INCBIN_U32("graphics/pokemon/pikachu/world_cap/normal.gbapal.lz"); + const u32 gMonBackPic_PikachuWorldCap[] = INCBIN_U32("graphics/pokemon/pikachu/world_cap/back.4bpp.lz"); + const u32 gMonShinyPalette_PikachuWorldCap[] = INCBIN_U32("graphics/pokemon/pikachu/world_cap/shiny.gbapal.lz"); + const u8 gMonIcon_PikachuWorldCap[] = INCBIN_U8("graphics/pokemon/pikachu/world_cap/icon.4bpp"); +#endif //P_CAP_PIKACHU_FORMS + +#if P_GIGANTAMAX_FORMS + const u32 gMonFrontPic_PikachuGigantamax[] = INCBIN_U32("graphics/pokemon/pikachu/gigantamax/front.4bpp.lz"); + const u32 gMonBackPic_PikachuGigantamax[] = INCBIN_U32("graphics/pokemon/pikachu/gigantamax/back.4bpp.lz"); + const u32 gMonPalette_PikachuGigantamax[] = INCBIN_U32("graphics/pokemon/pikachu/gigantamax/normal.gbapal.lz"); + const u32 gMonShinyPalette_PikachuGigantamax[] = INCBIN_U32("graphics/pokemon/pikachu/gigantamax/shiny.gbapal.lz"); + const u8 gMonIcon_PikachuGigantamax[] = INCBIN_U8("graphics/pokemon/pikachu/gigantamax/icon.4bpp"); +#endif //P_GIGANTAMAX_FORMS + + const u32 gMonFrontPic_Raichu[] = INCBIN_U32("graphics/pokemon/raichu/anim_front.4bpp.lz"); + const u32 gMonPalette_Raichu[] = INCBIN_U32("graphics/pokemon/raichu/normal.gbapal.lz"); + const u32 gMonBackPic_Raichu[] = INCBIN_U32("graphics/pokemon/raichu/back.4bpp.lz"); + const u32 gMonShinyPalette_Raichu[] = INCBIN_U32("graphics/pokemon/raichu/shiny.gbapal.lz"); + const u8 gMonIcon_Raichu[] = INCBIN_U8("graphics/pokemon/raichu/icon.4bpp"); + const u8 gMonFootprint_Raichu[] = INCBIN_U8("graphics/pokemon/raichu/footprint.1bpp"); + + const u32 gMonFrontPic_RaichuF[] = INCBIN_U32("graphics/pokemon/raichu/anim_frontf.4bpp.lz"); + +#if P_ALOLAN_FORMS + const u32 gMonFrontPic_RaichuAlolan[] = INCBIN_U32("graphics/pokemon/raichu/alolan/front.4bpp.lz"); + const u32 gMonPalette_RaichuAlolan[] = INCBIN_U32("graphics/pokemon/raichu/alolan/normal.gbapal.lz"); + const u32 gMonBackPic_RaichuAlolan[] = INCBIN_U32("graphics/pokemon/raichu/alolan/back.4bpp.lz"); + const u32 gMonShinyPalette_RaichuAlolan[] = INCBIN_U32("graphics/pokemon/raichu/alolan/shiny.gbapal.lz"); + const u8 gMonIcon_RaichuAlolan[] = INCBIN_U8("graphics/pokemon/raichu/alolan/icon.4bpp"); +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_PIKACHU + +#if P_FAMILY_SANDSHREW + const u32 gMonFrontPic_Sandshrew[] = INCBIN_U32("graphics/pokemon/sandshrew/anim_front.4bpp.lz"); + const u32 gMonPalette_Sandshrew[] = INCBIN_U32("graphics/pokemon/sandshrew/normal.gbapal.lz"); + const u32 gMonBackPic_Sandshrew[] = INCBIN_U32("graphics/pokemon/sandshrew/back.4bpp.lz"); + const u32 gMonShinyPalette_Sandshrew[] = INCBIN_U32("graphics/pokemon/sandshrew/shiny.gbapal.lz"); + const u8 gMonIcon_Sandshrew[] = INCBIN_U8("graphics/pokemon/sandshrew/icon.4bpp"); + const u8 gMonFootprint_Sandshrew[] = INCBIN_U8("graphics/pokemon/sandshrew/footprint.1bpp"); + + const u32 gMonFrontPic_Sandslash[] = INCBIN_U32("graphics/pokemon/sandslash/anim_front.4bpp.lz"); + const u32 gMonPalette_Sandslash[] = INCBIN_U32("graphics/pokemon/sandslash/normal.gbapal.lz"); + const u32 gMonBackPic_Sandslash[] = INCBIN_U32("graphics/pokemon/sandslash/back.4bpp.lz"); + const u32 gMonShinyPalette_Sandslash[] = INCBIN_U32("graphics/pokemon/sandslash/shiny.gbapal.lz"); + const u8 gMonIcon_Sandslash[] = INCBIN_U8("graphics/pokemon/sandslash/icon.4bpp"); + const u8 gMonFootprint_Sandslash[] = INCBIN_U8("graphics/pokemon/sandslash/footprint.1bpp"); + +#if P_ALOLAN_FORMS + const u32 gMonFrontPic_SandshrewAlolan[] = INCBIN_U32("graphics/pokemon/sandshrew/alolan/front.4bpp.lz"); + const u32 gMonPalette_SandshrewAlolan[] = INCBIN_U32("graphics/pokemon/sandshrew/alolan/normal.gbapal.lz"); + const u32 gMonBackPic_SandshrewAlolan[] = INCBIN_U32("graphics/pokemon/sandshrew/alolan/back.4bpp.lz"); + const u32 gMonShinyPalette_SandshrewAlolan[] = INCBIN_U32("graphics/pokemon/sandshrew/alolan/shiny.gbapal.lz"); + const u8 gMonIcon_SandshrewAlolan[] = INCBIN_U8("graphics/pokemon/sandshrew/alolan/icon.4bpp"); + + const u32 gMonFrontPic_SandslashAlolan[] = INCBIN_U32("graphics/pokemon/sandslash/alolan/front.4bpp.lz"); + const u32 gMonPalette_SandslashAlolan[] = INCBIN_U32("graphics/pokemon/sandslash/alolan/normal.gbapal.lz"); + const u32 gMonBackPic_SandslashAlolan[] = INCBIN_U32("graphics/pokemon/sandslash/alolan/back.4bpp.lz"); + const u32 gMonShinyPalette_SandslashAlolan[] = INCBIN_U32("graphics/pokemon/sandslash/alolan/shiny.gbapal.lz"); + const u8 gMonIcon_SandslashAlolan[] = INCBIN_U8("graphics/pokemon/sandslash/alolan/icon.4bpp"); +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_SANDSHREW + +#if P_FAMILY_NIDORAN + const u32 gMonFrontPic_NidoranF[] = INCBIN_U32("graphics/pokemon/nidoran_f/anim_front.4bpp.lz"); + const u32 gMonPalette_NidoranF[] = INCBIN_U32("graphics/pokemon/nidoran_f/normal.gbapal.lz"); + const u32 gMonBackPic_NidoranF[] = INCBIN_U32("graphics/pokemon/nidoran_f/back.4bpp.lz"); + const u32 gMonShinyPalette_NidoranF[] = INCBIN_U32("graphics/pokemon/nidoran_f/shiny.gbapal.lz"); + const u8 gMonIcon_NidoranF[] = INCBIN_U8("graphics/pokemon/nidoran_f/icon.4bpp"); + const u8 gMonFootprint_NidoranF[] = INCBIN_U8("graphics/pokemon/nidoran_f/footprint.1bpp"); + + const u32 gMonFrontPic_Nidorina[] = INCBIN_U32("graphics/pokemon/nidorina/anim_front.4bpp.lz"); + const u32 gMonPalette_Nidorina[] = INCBIN_U32("graphics/pokemon/nidorina/normal.gbapal.lz"); + const u32 gMonBackPic_Nidorina[] = INCBIN_U32("graphics/pokemon/nidorina/back.4bpp.lz"); + const u32 gMonShinyPalette_Nidorina[] = INCBIN_U32("graphics/pokemon/nidorina/shiny.gbapal.lz"); + const u8 gMonIcon_Nidorina[] = INCBIN_U8("graphics/pokemon/nidorina/icon.4bpp"); + const u8 gMonFootprint_Nidorina[] = INCBIN_U8("graphics/pokemon/nidorina/footprint.1bpp"); + + const u32 gMonFrontPic_Nidoqueen[] = INCBIN_U32("graphics/pokemon/nidoqueen/anim_front.4bpp.lz"); + const u32 gMonPalette_Nidoqueen[] = INCBIN_U32("graphics/pokemon/nidoqueen/normal.gbapal.lz"); + const u32 gMonBackPic_Nidoqueen[] = INCBIN_U32("graphics/pokemon/nidoqueen/back.4bpp.lz"); + const u32 gMonShinyPalette_Nidoqueen[] = INCBIN_U32("graphics/pokemon/nidoqueen/shiny.gbapal.lz"); + const u8 gMonIcon_Nidoqueen[] = INCBIN_U8("graphics/pokemon/nidoqueen/icon.4bpp"); + const u8 gMonFootprint_Nidoqueen[] = INCBIN_U8("graphics/pokemon/nidoqueen/footprint.1bpp"); + + const u32 gMonFrontPic_NidoranM[] = INCBIN_U32("graphics/pokemon/nidoran_m/anim_front.4bpp.lz"); + const u32 gMonPalette_NidoranM[] = INCBIN_U32("graphics/pokemon/nidoran_m/normal.gbapal.lz"); + const u32 gMonBackPic_NidoranM[] = INCBIN_U32("graphics/pokemon/nidoran_m/back.4bpp.lz"); + const u32 gMonShinyPalette_NidoranM[] = INCBIN_U32("graphics/pokemon/nidoran_m/shiny.gbapal.lz"); + const u8 gMonIcon_NidoranM[] = INCBIN_U8("graphics/pokemon/nidoran_m/icon.4bpp"); + const u8 gMonFootprint_NidoranM[] = INCBIN_U8("graphics/pokemon/nidoran_m/footprint.1bpp"); + + const u32 gMonFrontPic_Nidorino[] = INCBIN_U32("graphics/pokemon/nidorino/anim_front.4bpp.lz"); + const u32 gMonPalette_Nidorino[] = INCBIN_U32("graphics/pokemon/nidorino/normal.gbapal.lz"); + const u32 gMonBackPic_Nidorino[] = INCBIN_U32("graphics/pokemon/nidorino/back.4bpp.lz"); + const u32 gMonShinyPalette_Nidorino[] = INCBIN_U32("graphics/pokemon/nidorino/shiny.gbapal.lz"); + const u8 gMonIcon_Nidorino[] = INCBIN_U8("graphics/pokemon/nidorino/icon.4bpp"); + const u8 gMonFootprint_Nidorino[] = INCBIN_U8("graphics/pokemon/nidorino/footprint.1bpp"); + + const u32 gMonFrontPic_Nidoking[] = INCBIN_U32("graphics/pokemon/nidoking/anim_front.4bpp.lz"); + const u32 gMonPalette_Nidoking[] = INCBIN_U32("graphics/pokemon/nidoking/normal.gbapal.lz"); + const u32 gMonBackPic_Nidoking[] = INCBIN_U32("graphics/pokemon/nidoking/back.4bpp.lz"); + const u32 gMonShinyPalette_Nidoking[] = INCBIN_U32("graphics/pokemon/nidoking/shiny.gbapal.lz"); + const u8 gMonIcon_Nidoking[] = INCBIN_U8("graphics/pokemon/nidoking/icon.4bpp"); + const u8 gMonFootprint_Nidoking[] = INCBIN_U8("graphics/pokemon/nidoking/footprint.1bpp"); +#endif //P_FAMILY_NIDORAN + +#if P_FAMILY_CLEFAIRY +#if P_GEN_2_CROSS_EVOS + const u32 gMonFrontPic_Cleffa[] = INCBIN_U32("graphics/pokemon/cleffa/anim_front.4bpp.lz"); + const u32 gMonPalette_Cleffa[] = INCBIN_U32("graphics/pokemon/cleffa/normal.gbapal.lz"); + const u32 gMonBackPic_Cleffa[] = INCBIN_U32("graphics/pokemon/cleffa/back.4bpp.lz"); + const u32 gMonShinyPalette_Cleffa[] = INCBIN_U32("graphics/pokemon/cleffa/shiny.gbapal.lz"); + const u8 gMonIcon_Cleffa[] = INCBIN_U8("graphics/pokemon/cleffa/icon.4bpp"); + const u8 gMonFootprint_Cleffa[] = INCBIN_U8("graphics/pokemon/cleffa/footprint.1bpp"); +#endif //P_GEN_2_CROSS_EVOS + + const u32 gMonFrontPic_Clefairy[] = INCBIN_U32("graphics/pokemon/clefairy/anim_front.4bpp.lz"); + const u32 gMonPalette_Clefairy[] = INCBIN_U32("graphics/pokemon/clefairy/normal.gbapal.lz"); + const u32 gMonBackPic_Clefairy[] = INCBIN_U32("graphics/pokemon/clefairy/back.4bpp.lz"); + const u32 gMonShinyPalette_Clefairy[] = INCBIN_U32("graphics/pokemon/clefairy/shiny.gbapal.lz"); + const u8 gMonIcon_Clefairy[] = INCBIN_U8("graphics/pokemon/clefairy/icon.4bpp"); + const u8 gMonFootprint_Clefairy[] = INCBIN_U8("graphics/pokemon/clefairy/footprint.1bpp"); + + const u32 gMonFrontPic_Clefable[] = INCBIN_U32("graphics/pokemon/clefable/anim_front.4bpp.lz"); + const u32 gMonPalette_Clefable[] = INCBIN_U32("graphics/pokemon/clefable/normal.gbapal.lz"); + const u32 gMonBackPic_Clefable[] = INCBIN_U32("graphics/pokemon/clefable/back.4bpp.lz"); + const u32 gMonShinyPalette_Clefable[] = INCBIN_U32("graphics/pokemon/clefable/shiny.gbapal.lz"); + const u8 gMonIcon_Clefable[] = INCBIN_U8("graphics/pokemon/clefable/icon.4bpp"); + const u8 gMonFootprint_Clefable[] = INCBIN_U8("graphics/pokemon/clefable/footprint.1bpp"); +#endif //P_FAMILY_CLEFAIRY + +#if P_FAMILY_VULPIX + const u32 gMonFrontPic_Vulpix[] = INCBIN_U32("graphics/pokemon/vulpix/anim_front.4bpp.lz"); + const u32 gMonPalette_Vulpix[] = INCBIN_U32("graphics/pokemon/vulpix/normal.gbapal.lz"); + const u32 gMonBackPic_Vulpix[] = INCBIN_U32("graphics/pokemon/vulpix/back.4bpp.lz"); + const u32 gMonShinyPalette_Vulpix[] = INCBIN_U32("graphics/pokemon/vulpix/shiny.gbapal.lz"); + const u8 gMonIcon_Vulpix[] = INCBIN_U8("graphics/pokemon/vulpix/icon.4bpp"); + const u8 gMonFootprint_Vulpix[] = INCBIN_U8("graphics/pokemon/vulpix/footprint.1bpp"); + + const u32 gMonFrontPic_Ninetales[] = INCBIN_U32("graphics/pokemon/ninetales/anim_front.4bpp.lz"); + const u32 gMonPalette_Ninetales[] = INCBIN_U32("graphics/pokemon/ninetales/normal.gbapal.lz"); + const u32 gMonBackPic_Ninetales[] = INCBIN_U32("graphics/pokemon/ninetales/back.4bpp.lz"); + const u32 gMonShinyPalette_Ninetales[] = INCBIN_U32("graphics/pokemon/ninetales/shiny.gbapal.lz"); + const u8 gMonIcon_Ninetales[] = INCBIN_U8("graphics/pokemon/ninetales/icon.4bpp"); + const u8 gMonFootprint_Ninetales[] = INCBIN_U8("graphics/pokemon/ninetales/footprint.1bpp"); + +#if P_ALOLAN_FORMS + const u32 gMonFrontPic_VulpixAlolan[] = INCBIN_U32("graphics/pokemon/vulpix/alolan/front.4bpp.lz"); + const u32 gMonPalette_VulpixAlolan[] = INCBIN_U32("graphics/pokemon/vulpix/alolan/normal.gbapal.lz"); + const u32 gMonBackPic_VulpixAlolan[] = INCBIN_U32("graphics/pokemon/vulpix/alolan/back.4bpp.lz"); + const u32 gMonShinyPalette_VulpixAlolan[] = INCBIN_U32("graphics/pokemon/vulpix/alolan/shiny.gbapal.lz"); + const u8 gMonIcon_VulpixAlolan[] = INCBIN_U8("graphics/pokemon/vulpix/alolan/icon.4bpp"); + + const u32 gMonFrontPic_NinetalesAlolan[] = INCBIN_U32("graphics/pokemon/ninetales/alolan/front.4bpp.lz"); + const u32 gMonPalette_NinetalesAlolan[] = INCBIN_U32("graphics/pokemon/ninetales/alolan/normal.gbapal.lz"); + const u32 gMonBackPic_NinetalesAlolan[] = INCBIN_U32("graphics/pokemon/ninetales/alolan/back.4bpp.lz"); + const u32 gMonShinyPalette_NinetalesAlolan[] = INCBIN_U32("graphics/pokemon/ninetales/alolan/shiny.gbapal.lz"); + const u8 gMonIcon_NinetalesAlolan[] = INCBIN_U8("graphics/pokemon/ninetales/alolan/icon.4bpp"); +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_VULPIX + +#if P_FAMILY_JIGGLYPUFF +#if P_GEN_2_CROSS_EVOS + const u32 gMonFrontPic_Igglybuff[] = INCBIN_U32("graphics/pokemon/igglybuff/anim_front.4bpp.lz"); + const u32 gMonPalette_Igglybuff[] = INCBIN_U32("graphics/pokemon/igglybuff/normal.gbapal.lz"); + const u32 gMonBackPic_Igglybuff[] = INCBIN_U32("graphics/pokemon/igglybuff/back.4bpp.lz"); + const u32 gMonShinyPalette_Igglybuff[] = INCBIN_U32("graphics/pokemon/igglybuff/shiny.gbapal.lz"); + const u8 gMonIcon_Igglybuff[] = INCBIN_U8("graphics/pokemon/igglybuff/icon.4bpp"); + const u8 gMonFootprint_Igglybuff[] = INCBIN_U8("graphics/pokemon/igglybuff/footprint.1bpp"); +#endif //P_GEN_2_CROSS_EVOS + + const u32 gMonFrontPic_Jigglypuff[] = INCBIN_U32("graphics/pokemon/jigglypuff/anim_front.4bpp.lz"); + const u32 gMonPalette_Jigglypuff[] = INCBIN_U32("graphics/pokemon/jigglypuff/normal.gbapal.lz"); + const u32 gMonBackPic_Jigglypuff[] = INCBIN_U32("graphics/pokemon/jigglypuff/back.4bpp.lz"); + const u32 gMonShinyPalette_Jigglypuff[] = INCBIN_U32("graphics/pokemon/jigglypuff/shiny.gbapal.lz"); + const u8 gMonIcon_Jigglypuff[] = INCBIN_U8("graphics/pokemon/jigglypuff/icon.4bpp"); + const u8 gMonFootprint_Jigglypuff[] = INCBIN_U8("graphics/pokemon/jigglypuff/footprint.1bpp"); + + const u32 gMonFrontPic_Wigglytuff[] = INCBIN_U32("graphics/pokemon/wigglytuff/anim_front.4bpp.lz"); + const u32 gMonPalette_Wigglytuff[] = INCBIN_U32("graphics/pokemon/wigglytuff/normal.gbapal.lz"); + const u32 gMonBackPic_Wigglytuff[] = INCBIN_U32("graphics/pokemon/wigglytuff/back.4bpp.lz"); + const u32 gMonShinyPalette_Wigglytuff[] = INCBIN_U32("graphics/pokemon/wigglytuff/shiny.gbapal.lz"); + const u8 gMonIcon_Wigglytuff[] = INCBIN_U8("graphics/pokemon/wigglytuff/icon.4bpp"); + const u8 gMonFootprint_Wigglytuff[] = INCBIN_U8("graphics/pokemon/wigglytuff/footprint.1bpp"); +#endif //P_FAMILY_JIGGLYPUFF + +#if P_FAMILY_ZUBAT + const u32 gMonFrontPic_Zubat[] = INCBIN_U32("graphics/pokemon/zubat/anim_front.4bpp.lz"); + const u32 gMonPalette_Zubat[] = INCBIN_U32("graphics/pokemon/zubat/normal.gbapal.lz"); + const u32 gMonBackPic_Zubat[] = INCBIN_U32("graphics/pokemon/zubat/back.4bpp.lz"); + const u32 gMonShinyPalette_Zubat[] = INCBIN_U32("graphics/pokemon/zubat/shiny.gbapal.lz"); + const u8 gMonIcon_Zubat[] = INCBIN_U8("graphics/pokemon/zubat/icon.4bpp"); + const u8 gMonFootprint_Zubat[] = INCBIN_U8("graphics/pokemon/zubat/footprint.1bpp"); + + const u32 gMonFrontPic_ZubatF[] = INCBIN_U32("graphics/pokemon/zubat/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_ZubatF[] = INCBIN_U32("graphics/pokemon/zubat/backf.4bpp.lz"); + + const u32 gMonFrontPic_Golbat[] = INCBIN_U32("graphics/pokemon/golbat/anim_front.4bpp.lz"); + const u32 gMonPalette_Golbat[] = INCBIN_U32("graphics/pokemon/golbat/normal.gbapal.lz"); + const u32 gMonBackPic_Golbat[] = INCBIN_U32("graphics/pokemon/golbat/back.4bpp.lz"); + const u32 gMonShinyPalette_Golbat[] = INCBIN_U32("graphics/pokemon/golbat/shiny.gbapal.lz"); + const u8 gMonIcon_Golbat[] = INCBIN_U8("graphics/pokemon/golbat/icon.4bpp"); + const u8 gMonFootprint_Golbat[] = INCBIN_U8("graphics/pokemon/golbat/footprint.1bpp"); + + const u32 gMonFrontPic_GolbatF[] = INCBIN_U32("graphics/pokemon/golbat/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_GolbatF[] = INCBIN_U32("graphics/pokemon/golbat/backf.4bpp.lz"); + +#if P_GEN_2_CROSS_EVOS + const u32 gMonFrontPic_Crobat[] = INCBIN_U32("graphics/pokemon/crobat/anim_front.4bpp.lz"); + const u32 gMonPalette_Crobat[] = INCBIN_U32("graphics/pokemon/crobat/normal.gbapal.lz"); + const u32 gMonBackPic_Crobat[] = INCBIN_U32("graphics/pokemon/crobat/back.4bpp.lz"); + const u32 gMonShinyPalette_Crobat[] = INCBIN_U32("graphics/pokemon/crobat/shiny.gbapal.lz"); + const u8 gMonIcon_Crobat[] = INCBIN_U8("graphics/pokemon/crobat/icon.4bpp"); + const u8 gMonFootprint_Crobat[] = INCBIN_U8("graphics/pokemon/crobat/footprint.1bpp"); +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ZUBAT + +#if P_FAMILY_ODDISH + const u32 gMonFrontPic_Oddish[] = INCBIN_U32("graphics/pokemon/oddish/anim_front.4bpp.lz"); + const u32 gMonPalette_Oddish[] = INCBIN_U32("graphics/pokemon/oddish/normal.gbapal.lz"); + const u32 gMonBackPic_Oddish[] = INCBIN_U32("graphics/pokemon/oddish/back.4bpp.lz"); + const u32 gMonShinyPalette_Oddish[] = INCBIN_U32("graphics/pokemon/oddish/shiny.gbapal.lz"); + const u8 gMonIcon_Oddish[] = INCBIN_U8("graphics/pokemon/oddish/icon.4bpp"); + const u8 gMonFootprint_Oddish[] = INCBIN_U8("graphics/pokemon/oddish/footprint.1bpp"); + + const u32 gMonFrontPic_Gloom[] = INCBIN_U32("graphics/pokemon/gloom/anim_front.4bpp.lz"); + const u32 gMonPalette_Gloom[] = INCBIN_U32("graphics/pokemon/gloom/normal.gbapal.lz"); + const u32 gMonBackPic_Gloom[] = INCBIN_U32("graphics/pokemon/gloom/back.4bpp.lz"); + const u32 gMonShinyPalette_Gloom[] = INCBIN_U32("graphics/pokemon/gloom/shiny.gbapal.lz"); + const u8 gMonIcon_Gloom[] = INCBIN_U8("graphics/pokemon/gloom/icon.4bpp"); + const u8 gMonFootprint_Gloom[] = INCBIN_U8("graphics/pokemon/gloom/footprint.1bpp"); + + const u32 gMonFrontPic_GloomF[] = INCBIN_U32("graphics/pokemon/gloom/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_GloomF[] = INCBIN_U32("graphics/pokemon/gloom/backf.4bpp.lz"); + + const u32 gMonFrontPic_Vileplume[] = INCBIN_U32("graphics/pokemon/vileplume/anim_front.4bpp.lz"); + const u32 gMonPalette_Vileplume[] = INCBIN_U32("graphics/pokemon/vileplume/normal.gbapal.lz"); + const u32 gMonBackPic_Vileplume[] = INCBIN_U32("graphics/pokemon/vileplume/back.4bpp.lz"); + const u32 gMonShinyPalette_Vileplume[] = INCBIN_U32("graphics/pokemon/vileplume/shiny.gbapal.lz"); + const u8 gMonIcon_Vileplume[] = INCBIN_U8("graphics/pokemon/vileplume/icon.4bpp"); + const u8 gMonFootprint_Vileplume[] = INCBIN_U8("graphics/pokemon/vileplume/footprint.1bpp"); + + const u32 gMonFrontPic_VileplumeF[] = INCBIN_U32("graphics/pokemon/vileplume/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_VileplumeF[] = INCBIN_U32("graphics/pokemon/vileplume/backf.4bpp.lz"); + +#if P_GEN_2_CROSS_EVOS + const u32 gMonFrontPic_Bellossom[] = INCBIN_U32("graphics/pokemon/bellossom/anim_front.4bpp.lz"); + const u32 gMonPalette_Bellossom[] = INCBIN_U32("graphics/pokemon/bellossom/normal.gbapal.lz"); + const u32 gMonBackPic_Bellossom[] = INCBIN_U32("graphics/pokemon/bellossom/back.4bpp.lz"); + const u32 gMonShinyPalette_Bellossom[] = INCBIN_U32("graphics/pokemon/bellossom/shiny.gbapal.lz"); + const u8 gMonIcon_Bellossom[] = INCBIN_U8("graphics/pokemon/bellossom/icon.4bpp"); + const u8 gMonFootprint_Bellossom[] = INCBIN_U8("graphics/pokemon/bellossom/footprint.1bpp"); +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ODDISH + +#if P_FAMILY_PARAS + const u32 gMonFrontPic_Paras[] = INCBIN_U32("graphics/pokemon/paras/anim_front.4bpp.lz"); + const u32 gMonPalette_Paras[] = INCBIN_U32("graphics/pokemon/paras/normal.gbapal.lz"); + const u32 gMonBackPic_Paras[] = INCBIN_U32("graphics/pokemon/paras/back.4bpp.lz"); + const u32 gMonShinyPalette_Paras[] = INCBIN_U32("graphics/pokemon/paras/shiny.gbapal.lz"); + const u8 gMonIcon_Paras[] = INCBIN_U8("graphics/pokemon/paras/icon.4bpp"); + const u8 gMonFootprint_Paras[] = INCBIN_U8("graphics/pokemon/paras/footprint.1bpp"); + + const u32 gMonFrontPic_Parasect[] = INCBIN_U32("graphics/pokemon/parasect/anim_front.4bpp.lz"); + const u32 gMonPalette_Parasect[] = INCBIN_U32("graphics/pokemon/parasect/normal.gbapal.lz"); + const u32 gMonBackPic_Parasect[] = INCBIN_U32("graphics/pokemon/parasect/back.4bpp.lz"); + const u32 gMonShinyPalette_Parasect[] = INCBIN_U32("graphics/pokemon/parasect/shiny.gbapal.lz"); + const u8 gMonIcon_Parasect[] = INCBIN_U8("graphics/pokemon/parasect/icon.4bpp"); + const u8 gMonFootprint_Parasect[] = INCBIN_U8("graphics/pokemon/parasect/footprint.1bpp"); +#endif //P_FAMILY_PARAS + +#if P_FAMILY_VENONAT + const u32 gMonFrontPic_Venonat[] = INCBIN_U32("graphics/pokemon/venonat/anim_front.4bpp.lz"); + const u32 gMonPalette_Venonat[] = INCBIN_U32("graphics/pokemon/venonat/normal.gbapal.lz"); + const u32 gMonBackPic_Venonat[] = INCBIN_U32("graphics/pokemon/venonat/back.4bpp.lz"); + const u32 gMonShinyPalette_Venonat[] = INCBIN_U32("graphics/pokemon/venonat/shiny.gbapal.lz"); + const u8 gMonIcon_Venonat[] = INCBIN_U8("graphics/pokemon/venonat/icon.4bpp"); + const u8 gMonFootprint_Venonat[] = INCBIN_U8("graphics/pokemon/venonat/footprint.1bpp"); + + const u32 gMonFrontPic_Venomoth[] = INCBIN_U32("graphics/pokemon/venomoth/anim_front.4bpp.lz"); + const u32 gMonPalette_Venomoth[] = INCBIN_U32("graphics/pokemon/venomoth/normal.gbapal.lz"); + const u32 gMonBackPic_Venomoth[] = INCBIN_U32("graphics/pokemon/venomoth/back.4bpp.lz"); + const u32 gMonShinyPalette_Venomoth[] = INCBIN_U32("graphics/pokemon/venomoth/shiny.gbapal.lz"); + const u8 gMonIcon_Venomoth[] = INCBIN_U8("graphics/pokemon/venomoth/icon.4bpp"); + const u8 gMonFootprint_Venomoth[] = INCBIN_U8("graphics/pokemon/venomoth/footprint.1bpp"); +#endif //P_FAMILY_VENONAT + +#if P_FAMILY_DIGLETT + const u32 gMonFrontPic_Diglett[] = INCBIN_U32("graphics/pokemon/diglett/anim_front.4bpp.lz"); + const u32 gMonPalette_Diglett[] = INCBIN_U32("graphics/pokemon/diglett/normal.gbapal.lz"); + const u32 gMonBackPic_Diglett[] = INCBIN_U32("graphics/pokemon/diglett/back.4bpp.lz"); + const u32 gMonShinyPalette_Diglett[] = INCBIN_U32("graphics/pokemon/diglett/shiny.gbapal.lz"); + const u8 gMonIcon_Diglett[] = INCBIN_U8("graphics/pokemon/diglett/icon.4bpp"); + const u8 gMonFootprint_Diglett[] = INCBIN_U8("graphics/pokemon/diglett/footprint.1bpp"); + + const u32 gMonFrontPic_Dugtrio[] = INCBIN_U32("graphics/pokemon/dugtrio/anim_front.4bpp.lz"); + const u32 gMonPalette_Dugtrio[] = INCBIN_U32("graphics/pokemon/dugtrio/normal.gbapal.lz"); + const u32 gMonBackPic_Dugtrio[] = INCBIN_U32("graphics/pokemon/dugtrio/back.4bpp.lz"); + const u32 gMonShinyPalette_Dugtrio[] = INCBIN_U32("graphics/pokemon/dugtrio/shiny.gbapal.lz"); + const u8 gMonIcon_Dugtrio[] = INCBIN_U8("graphics/pokemon/dugtrio/icon.4bpp"); + const u8 gMonFootprint_Dugtrio[] = INCBIN_U8("graphics/pokemon/dugtrio/footprint.1bpp"); + +#if P_ALOLAN_FORMS + const u32 gMonFrontPic_DiglettAlolan[] = INCBIN_U32("graphics/pokemon/diglett/alolan/front.4bpp.lz"); + const u32 gMonPalette_DiglettAlolan[] = INCBIN_U32("graphics/pokemon/diglett/alolan/normal.gbapal.lz"); + const u32 gMonBackPic_DiglettAlolan[] = INCBIN_U32("graphics/pokemon/diglett/alolan/back.4bpp.lz"); + const u32 gMonShinyPalette_DiglettAlolan[] = INCBIN_U32("graphics/pokemon/diglett/alolan/shiny.gbapal.lz"); + const u8 gMonIcon_DiglettAlolan[] = INCBIN_U8("graphics/pokemon/diglett/alolan/icon.4bpp"); + + const u32 gMonFrontPic_DugtrioAlolan[] = INCBIN_U32("graphics/pokemon/dugtrio/alolan/front.4bpp.lz"); + const u32 gMonPalette_DugtrioAlolan[] = INCBIN_U32("graphics/pokemon/dugtrio/alolan/normal.gbapal.lz"); + const u32 gMonBackPic_DugtrioAlolan[] = INCBIN_U32("graphics/pokemon/dugtrio/alolan/back.4bpp.lz"); + const u32 gMonShinyPalette_DugtrioAlolan[] = INCBIN_U32("graphics/pokemon/dugtrio/alolan/shiny.gbapal.lz"); + const u8 gMonIcon_DugtrioAlolan[] = INCBIN_U8("graphics/pokemon/dugtrio/alolan/icon.4bpp"); +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_DIGLETT + +#if P_FAMILY_MEOWTH + const u32 gMonFrontPic_Meowth[] = INCBIN_U32("graphics/pokemon/meowth/anim_front.4bpp.lz"); + const u32 gMonPalette_Meowth[] = INCBIN_U32("graphics/pokemon/meowth/normal.gbapal.lz"); + const u32 gMonBackPic_Meowth[] = INCBIN_U32("graphics/pokemon/meowth/back.4bpp.lz"); + const u32 gMonShinyPalette_Meowth[] = INCBIN_U32("graphics/pokemon/meowth/shiny.gbapal.lz"); + const u8 gMonIcon_Meowth[] = INCBIN_U8("graphics/pokemon/meowth/icon.4bpp"); + const u8 gMonFootprint_Meowth[] = INCBIN_U8("graphics/pokemon/meowth/footprint.1bpp"); + + const u32 gMonFrontPic_Persian[] = INCBIN_U32("graphics/pokemon/persian/anim_front.4bpp.lz"); + const u32 gMonPalette_Persian[] = INCBIN_U32("graphics/pokemon/persian/normal.gbapal.lz"); + const u32 gMonBackPic_Persian[] = INCBIN_U32("graphics/pokemon/persian/back.4bpp.lz"); + const u32 gMonShinyPalette_Persian[] = INCBIN_U32("graphics/pokemon/persian/shiny.gbapal.lz"); + const u8 gMonIcon_Persian[] = INCBIN_U8("graphics/pokemon/persian/icon.4bpp"); + const u8 gMonFootprint_Persian[] = INCBIN_U8("graphics/pokemon/persian/footprint.1bpp"); + +#if P_ALOLAN_FORMS + const u32 gMonFrontPic_MeowthAlolan[] = INCBIN_U32("graphics/pokemon/meowth/alolan/front.4bpp.lz"); + const u32 gMonPalette_MeowthAlolan[] = INCBIN_U32("graphics/pokemon/meowth/alolan/normal.gbapal.lz"); + const u32 gMonBackPic_MeowthAlolan[] = INCBIN_U32("graphics/pokemon/meowth/alolan/back.4bpp.lz"); + const u32 gMonShinyPalette_MeowthAlolan[] = INCBIN_U32("graphics/pokemon/meowth/alolan/shiny.gbapal.lz"); + const u8 gMonIcon_MeowthAlolan[] = INCBIN_U8("graphics/pokemon/meowth/alolan/icon.4bpp"); + + const u32 gMonFrontPic_PersianAlolan[] = INCBIN_U32("graphics/pokemon/persian/alolan/front.4bpp.lz"); + const u32 gMonPalette_PersianAlolan[] = INCBIN_U32("graphics/pokemon/persian/alolan/normal.gbapal.lz"); + const u32 gMonBackPic_PersianAlolan[] = INCBIN_U32("graphics/pokemon/persian/alolan/back.4bpp.lz"); + const u32 gMonShinyPalette_PersianAlolan[] = INCBIN_U32("graphics/pokemon/persian/alolan/shiny.gbapal.lz"); + const u8 gMonIcon_PersianAlolan[] = INCBIN_U8("graphics/pokemon/persian/alolan/icon.4bpp"); +#endif //P_ALOLAN_FORMS + +#if P_GALARIAN_FORMS + const u32 gMonFrontPic_MeowthGalarian[] = INCBIN_U32("graphics/pokemon/meowth/galarian/front.4bpp.lz"); + const u32 gMonPalette_MeowthGalarian[] = INCBIN_U32("graphics/pokemon/meowth/galarian/normal.gbapal.lz"); + const u32 gMonBackPic_MeowthGalarian[] = INCBIN_U32("graphics/pokemon/meowth/galarian/back.4bpp.lz"); + const u32 gMonShinyPalette_MeowthGalarian[] = INCBIN_U32("graphics/pokemon/meowth/galarian/shiny.gbapal.lz"); + const u8 gMonIcon_MeowthGalarian[] = INCBIN_U8("graphics/pokemon/meowth/galarian/icon.4bpp"); + + const u32 gMonFrontPic_Perrserker[] = INCBIN_U32("graphics/pokemon/perrserker/front.4bpp.lz"); + const u32 gMonPalette_Perrserker[] = INCBIN_U32("graphics/pokemon/perrserker/normal.gbapal.lz"); + const u32 gMonBackPic_Perrserker[] = INCBIN_U32("graphics/pokemon/perrserker/back.4bpp.lz"); + const u32 gMonShinyPalette_Perrserker[] = INCBIN_U32("graphics/pokemon/perrserker/shiny.gbapal.lz"); + const u8 gMonIcon_Perrserker[] = INCBIN_U8("graphics/pokemon/perrserker/icon.4bpp"); + const u8 gMonFootprint_Perrserker[] = INCBIN_U8("graphics/pokemon/perrserker/footprint.1bpp"); +#endif //P_GALARIAN_FORMS + +#if P_GIGANTAMAX_FORMS + const u32 gMonFrontPic_MeowthGigantamax[] = INCBIN_U32("graphics/pokemon/meowth/gigantamax/front.4bpp.lz"); + const u32 gMonBackPic_MeowthGigantamax[] = INCBIN_U32("graphics/pokemon/meowth/gigantamax/back.4bpp.lz"); + const u32 gMonPalette_MeowthGigantamax[] = INCBIN_U32("graphics/pokemon/meowth/gigantamax/normal.gbapal.lz"); + const u32 gMonShinyPalette_MeowthGigantamax[] = INCBIN_U32("graphics/pokemon/meowth/gigantamax/shiny.gbapal.lz"); + const u8 gMonIcon_MeowthGigantamax[] = INCBIN_U8("graphics/pokemon/meowth/gigantamax/icon.4bpp"); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_MEOWTH + +#if P_FAMILY_PSYDUCK + const u32 gMonFrontPic_Psyduck[] = INCBIN_U32("graphics/pokemon/psyduck/anim_front.4bpp.lz"); + const u32 gMonPalette_Psyduck[] = INCBIN_U32("graphics/pokemon/psyduck/normal.gbapal.lz"); + const u32 gMonBackPic_Psyduck[] = INCBIN_U32("graphics/pokemon/psyduck/back.4bpp.lz"); + const u32 gMonShinyPalette_Psyduck[] = INCBIN_U32("graphics/pokemon/psyduck/shiny.gbapal.lz"); + const u8 gMonIcon_Psyduck[] = INCBIN_U8("graphics/pokemon/psyduck/icon.4bpp"); + const u8 gMonFootprint_Psyduck[] = INCBIN_U8("graphics/pokemon/psyduck/footprint.1bpp"); + + const u32 gMonFrontPic_Golduck[] = INCBIN_U32("graphics/pokemon/golduck/anim_front.4bpp.lz"); + const u32 gMonPalette_Golduck[] = INCBIN_U32("graphics/pokemon/golduck/normal.gbapal.lz"); + const u32 gMonBackPic_Golduck[] = INCBIN_U32("graphics/pokemon/golduck/back.4bpp.lz"); + const u32 gMonShinyPalette_Golduck[] = INCBIN_U32("graphics/pokemon/golduck/shiny.gbapal.lz"); + const u8 gMonIcon_Golduck[] = INCBIN_U8("graphics/pokemon/golduck/icon.4bpp"); + const u8 gMonFootprint_Golduck[] = INCBIN_U8("graphics/pokemon/golduck/footprint.1bpp"); +#endif //P_FAMILY_PSYDUCK + +#if P_FAMILY_MANKEY + const u32 gMonFrontPic_Mankey[] = INCBIN_U32("graphics/pokemon/mankey/anim_front.4bpp.lz"); + const u32 gMonPalette_Mankey[] = INCBIN_U32("graphics/pokemon/mankey/normal.gbapal.lz"); + const u32 gMonBackPic_Mankey[] = INCBIN_U32("graphics/pokemon/mankey/back.4bpp.lz"); + const u32 gMonShinyPalette_Mankey[] = INCBIN_U32("graphics/pokemon/mankey/shiny.gbapal.lz"); + const u8 gMonIcon_Mankey[] = INCBIN_U8("graphics/pokemon/mankey/icon.4bpp"); + const u8 gMonFootprint_Mankey[] = INCBIN_U8("graphics/pokemon/mankey/footprint.1bpp"); + + const u32 gMonFrontPic_Primeape[] = INCBIN_U32("graphics/pokemon/primeape/anim_front.4bpp.lz"); + const u32 gMonPalette_Primeape[] = INCBIN_U32("graphics/pokemon/primeape/normal.gbapal.lz"); + const u32 gMonBackPic_Primeape[] = INCBIN_U32("graphics/pokemon/primeape/back.4bpp.lz"); + const u32 gMonShinyPalette_Primeape[] = INCBIN_U32("graphics/pokemon/primeape/shiny.gbapal.lz"); + const u8 gMonIcon_Primeape[] = INCBIN_U8("graphics/pokemon/primeape/icon.4bpp"); + const u8 gMonFootprint_Primeape[] = INCBIN_U8("graphics/pokemon/primeape/footprint.1bpp"); + +#if P_GEN_9_CROSS_EVOS + const u32 gMonFrontPic_Annihilape[] = INCBIN_U32("graphics/pokemon/annihilape/front.4bpp.lz"); + const u32 gMonPalette_Annihilape[] = INCBIN_U32("graphics/pokemon/annihilape/normal.gbapal.lz"); + const u32 gMonBackPic_Annihilape[] = INCBIN_U32("graphics/pokemon/annihilape/back.4bpp.lz"); + const u32 gMonShinyPalette_Annihilape[] = INCBIN_U32("graphics/pokemon/annihilape/shiny.gbapal.lz"); + const u8 gMonIcon_Annihilape[] = INCBIN_U8("graphics/pokemon/annihilape/icon.4bpp"); + // const u8 gMonFootprint_Annihilape[] = INCBIN_U8("graphics/pokemon/annihilape/footprint.1bpp"); +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_MANKEY + +#if P_FAMILY_GROWLITHE + const u32 gMonFrontPic_Growlithe[] = INCBIN_U32("graphics/pokemon/growlithe/anim_front.4bpp.lz"); + const u32 gMonPalette_Growlithe[] = INCBIN_U32("graphics/pokemon/growlithe/normal.gbapal.lz"); + const u32 gMonBackPic_Growlithe[] = INCBIN_U32("graphics/pokemon/growlithe/back.4bpp.lz"); + const u32 gMonShinyPalette_Growlithe[] = INCBIN_U32("graphics/pokemon/growlithe/shiny.gbapal.lz"); + const u8 gMonIcon_Growlithe[] = INCBIN_U8("graphics/pokemon/growlithe/icon.4bpp"); + const u8 gMonFootprint_Growlithe[] = INCBIN_U8("graphics/pokemon/growlithe/footprint.1bpp"); + + const u32 gMonFrontPic_Arcanine[] = INCBIN_U32("graphics/pokemon/arcanine/anim_front.4bpp.lz"); + const u32 gMonPalette_Arcanine[] = INCBIN_U32("graphics/pokemon/arcanine/normal.gbapal.lz"); + const u32 gMonBackPic_Arcanine[] = INCBIN_U32("graphics/pokemon/arcanine/back.4bpp.lz"); + const u32 gMonShinyPalette_Arcanine[] = INCBIN_U32("graphics/pokemon/arcanine/shiny.gbapal.lz"); + const u8 gMonIcon_Arcanine[] = INCBIN_U8("graphics/pokemon/arcanine/icon.4bpp"); + const u8 gMonFootprint_Arcanine[] = INCBIN_U8("graphics/pokemon/arcanine/footprint.1bpp"); + +#if P_HISUIAN_FORMS + const u32 gMonFrontPic_GrowlitheHisuian[] = INCBIN_U32("graphics/pokemon/growlithe/hisuian/front.4bpp.lz"); + const u32 gMonPalette_GrowlitheHisuian[] = INCBIN_U32("graphics/pokemon/growlithe/hisuian/normal.gbapal.lz"); + const u32 gMonBackPic_GrowlitheHisuian[] = INCBIN_U32("graphics/pokemon/growlithe/hisuian/back.4bpp.lz"); + const u32 gMonShinyPalette_GrowlitheHisuian[] = INCBIN_U32("graphics/pokemon/growlithe/hisuian/shiny.gbapal.lz"); + const u8 gMonIcon_GrowlitheHisuian[] = INCBIN_U8("graphics/pokemon/growlithe/hisuian/icon.4bpp"); + + const u32 gMonFrontPic_ArcanineHisuian[] = INCBIN_U32("graphics/pokemon/arcanine/hisuian/front.4bpp.lz"); + const u32 gMonPalette_ArcanineHisuian[] = INCBIN_U32("graphics/pokemon/arcanine/hisuian/normal.gbapal.lz"); + const u32 gMonBackPic_ArcanineHisuian[] = INCBIN_U32("graphics/pokemon/arcanine/hisuian/back.4bpp.lz"); + const u32 gMonShinyPalette_ArcanineHisuian[] = INCBIN_U32("graphics/pokemon/arcanine/hisuian/shiny.gbapal.lz"); + const u8 gMonIcon_ArcanineHisuian[] = INCBIN_U8("graphics/pokemon/arcanine/hisuian/icon.4bpp"); +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_GROWLITHE + +#if P_FAMILY_POLIWAG + const u32 gMonFrontPic_Poliwag[] = INCBIN_U32("graphics/pokemon/poliwag/anim_front.4bpp.lz"); + const u32 gMonPalette_Poliwag[] = INCBIN_U32("graphics/pokemon/poliwag/normal.gbapal.lz"); + const u32 gMonBackPic_Poliwag[] = INCBIN_U32("graphics/pokemon/poliwag/back.4bpp.lz"); + const u32 gMonShinyPalette_Poliwag[] = INCBIN_U32("graphics/pokemon/poliwag/shiny.gbapal.lz"); + const u8 gMonIcon_Poliwag[] = INCBIN_U8("graphics/pokemon/poliwag/icon.4bpp"); + const u8 gMonFootprint_Poliwag[] = INCBIN_U8("graphics/pokemon/poliwag/footprint.1bpp"); + + const u32 gMonFrontPic_Poliwhirl[] = INCBIN_U32("graphics/pokemon/poliwhirl/anim_front.4bpp.lz"); + const u32 gMonPalette_Poliwhirl[] = INCBIN_U32("graphics/pokemon/poliwhirl/normal.gbapal.lz"); + const u32 gMonBackPic_Poliwhirl[] = INCBIN_U32("graphics/pokemon/poliwhirl/back.4bpp.lz"); + const u32 gMonShinyPalette_Poliwhirl[] = INCBIN_U32("graphics/pokemon/poliwhirl/shiny.gbapal.lz"); + const u8 gMonIcon_Poliwhirl[] = INCBIN_U8("graphics/pokemon/poliwhirl/icon.4bpp"); + const u8 gMonFootprint_Poliwhirl[] = INCBIN_U8("graphics/pokemon/poliwhirl/footprint.1bpp"); + + const u32 gMonFrontPic_Poliwrath[] = INCBIN_U32("graphics/pokemon/poliwrath/anim_front.4bpp.lz"); + const u32 gMonPalette_Poliwrath[] = INCBIN_U32("graphics/pokemon/poliwrath/normal.gbapal.lz"); + const u32 gMonBackPic_Poliwrath[] = INCBIN_U32("graphics/pokemon/poliwrath/back.4bpp.lz"); + const u32 gMonShinyPalette_Poliwrath[] = INCBIN_U32("graphics/pokemon/poliwrath/shiny.gbapal.lz"); + const u8 gMonIcon_Poliwrath[] = INCBIN_U8("graphics/pokemon/poliwrath/icon.4bpp"); + const u8 gMonFootprint_Poliwrath[] = INCBIN_U8("graphics/pokemon/poliwrath/footprint.1bpp"); + +#if P_GEN_2_CROSS_EVOS + const u32 gMonFrontPic_Politoed[] = INCBIN_U32("graphics/pokemon/politoed/anim_front.4bpp.lz"); + const u32 gMonPalette_Politoed[] = INCBIN_U32("graphics/pokemon/politoed/normal.gbapal.lz"); + const u32 gMonBackPic_Politoed[] = INCBIN_U32("graphics/pokemon/politoed/back.4bpp.lz"); + const u32 gMonShinyPalette_Politoed[] = INCBIN_U32("graphics/pokemon/politoed/shiny.gbapal.lz"); + const u8 gMonIcon_Politoed[] = INCBIN_U8("graphics/pokemon/politoed/icon.4bpp"); + const u8 gMonFootprint_Politoed[] = INCBIN_U8("graphics/pokemon/politoed/footprint.1bpp"); + + const u32 gMonFrontPic_PolitoedF[] = INCBIN_U32("graphics/pokemon/politoed/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_PolitoedF[] = INCBIN_U32("graphics/pokemon/politoed/backf.4bpp.lz"); +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_POLIWAG + +#if P_FAMILY_ABRA + const u32 gMonFrontPic_Abra[] = INCBIN_U32("graphics/pokemon/abra/anim_front.4bpp.lz"); + const u32 gMonPalette_Abra[] = INCBIN_U32("graphics/pokemon/abra/normal.gbapal.lz"); + const u32 gMonBackPic_Abra[] = INCBIN_U32("graphics/pokemon/abra/back.4bpp.lz"); + const u32 gMonShinyPalette_Abra[] = INCBIN_U32("graphics/pokemon/abra/shiny.gbapal.lz"); + const u8 gMonIcon_Abra[] = INCBIN_U8("graphics/pokemon/abra/icon.4bpp"); + const u8 gMonFootprint_Abra[] = INCBIN_U8("graphics/pokemon/abra/footprint.1bpp"); + + const u32 gMonFrontPic_Kadabra[] = INCBIN_U32("graphics/pokemon/kadabra/anim_front.4bpp.lz"); + const u32 gMonPalette_Kadabra[] = INCBIN_U32("graphics/pokemon/kadabra/normal.gbapal.lz"); + const u32 gMonBackPic_Kadabra[] = INCBIN_U32("graphics/pokemon/kadabra/back.4bpp.lz"); + const u32 gMonShinyPalette_Kadabra[] = INCBIN_U32("graphics/pokemon/kadabra/shiny.gbapal.lz"); + const u8 gMonIcon_Kadabra[] = INCBIN_U8("graphics/pokemon/kadabra/icon.4bpp"); + const u8 gMonFootprint_Kadabra[] = INCBIN_U8("graphics/pokemon/kadabra/footprint.1bpp"); + + const u32 gMonFrontPic_KadabraF[] = INCBIN_U32("graphics/pokemon/kadabra/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_KadabraF[] = INCBIN_U32("graphics/pokemon/kadabra/backf.4bpp.lz"); + + const u32 gMonFrontPic_Alakazam[] = INCBIN_U32("graphics/pokemon/alakazam/anim_front.4bpp.lz"); + const u32 gMonPalette_Alakazam[] = INCBIN_U32("graphics/pokemon/alakazam/normal.gbapal.lz"); + const u32 gMonBackPic_Alakazam[] = INCBIN_U32("graphics/pokemon/alakazam/back.4bpp.lz"); + const u32 gMonShinyPalette_Alakazam[] = INCBIN_U32("graphics/pokemon/alakazam/shiny.gbapal.lz"); + const u8 gMonIcon_Alakazam[] = INCBIN_U8("graphics/pokemon/alakazam/icon.4bpp"); + const u8 gMonFootprint_Alakazam[] = INCBIN_U8("graphics/pokemon/alakazam/footprint.1bpp"); + + const u32 gMonFrontPic_AlakazamF[] = INCBIN_U32("graphics/pokemon/alakazam/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_AlakazamF[] = INCBIN_U32("graphics/pokemon/alakazam/backf.4bpp.lz"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_AlakazamMega[] = INCBIN_U32("graphics/pokemon/alakazam/mega/front.4bpp.lz"); + const u32 gMonPalette_AlakazamMega[] = INCBIN_U32("graphics/pokemon/alakazam/mega/normal.gbapal.lz"); + const u32 gMonBackPic_AlakazamMega[] = INCBIN_U32("graphics/pokemon/alakazam/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_AlakazamMega[] = INCBIN_U32("graphics/pokemon/alakazam/mega/shiny.gbapal.lz"); + const u8 gMonIcon_AlakazamMega[] = INCBIN_U8("graphics/pokemon/alakazam/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_ABRA + +#if P_FAMILY_MACHOP + const u32 gMonFrontPic_Machop[] = INCBIN_U32("graphics/pokemon/machop/anim_front.4bpp.lz"); + const u32 gMonPalette_Machop[] = INCBIN_U32("graphics/pokemon/machop/normal.gbapal.lz"); + const u32 gMonBackPic_Machop[] = INCBIN_U32("graphics/pokemon/machop/back.4bpp.lz"); + const u32 gMonShinyPalette_Machop[] = INCBIN_U32("graphics/pokemon/machop/shiny.gbapal.lz"); + const u8 gMonIcon_Machop[] = INCBIN_U8("graphics/pokemon/machop/icon.4bpp"); + const u8 gMonFootprint_Machop[] = INCBIN_U8("graphics/pokemon/machop/footprint.1bpp"); + + const u32 gMonFrontPic_Machoke[] = INCBIN_U32("graphics/pokemon/machoke/anim_front.4bpp.lz"); + const u32 gMonPalette_Machoke[] = INCBIN_U32("graphics/pokemon/machoke/normal.gbapal.lz"); + const u32 gMonBackPic_Machoke[] = INCBIN_U32("graphics/pokemon/machoke/back.4bpp.lz"); + const u32 gMonShinyPalette_Machoke[] = INCBIN_U32("graphics/pokemon/machoke/shiny.gbapal.lz"); + const u8 gMonIcon_Machoke[] = INCBIN_U8("graphics/pokemon/machoke/icon.4bpp"); + const u8 gMonFootprint_Machoke[] = INCBIN_U8("graphics/pokemon/machoke/footprint.1bpp"); + + const u32 gMonFrontPic_Machamp[] = INCBIN_U32("graphics/pokemon/machamp/anim_front.4bpp.lz"); + const u32 gMonPalette_Machamp[] = INCBIN_U32("graphics/pokemon/machamp/normal.gbapal.lz"); + const u32 gMonBackPic_Machamp[] = INCBIN_U32("graphics/pokemon/machamp/back.4bpp.lz"); + const u32 gMonShinyPalette_Machamp[] = INCBIN_U32("graphics/pokemon/machamp/shiny.gbapal.lz"); + const u8 gMonIcon_Machamp[] = INCBIN_U8("graphics/pokemon/machamp/icon.4bpp"); + const u8 gMonFootprint_Machamp[] = INCBIN_U8("graphics/pokemon/machamp/footprint.1bpp"); + +#if P_GIGANTAMAX_FORMS + const u32 gMonFrontPic_MachampGigantamax[] = INCBIN_U32("graphics/pokemon/machamp/gigantamax/front.4bpp.lz"); + const u32 gMonBackPic_MachampGigantamax[] = INCBIN_U32("graphics/pokemon/machamp/gigantamax/back.4bpp.lz"); + const u32 gMonPalette_MachampGigantamax[] = INCBIN_U32("graphics/pokemon/machamp/gigantamax/normal.gbapal.lz"); + const u32 gMonShinyPalette_MachampGigantamax[] = INCBIN_U32("graphics/pokemon/machamp/gigantamax/shiny.gbapal.lz"); + const u8 gMonIcon_MachampGigantamax[] = INCBIN_U8("graphics/pokemon/machamp/gigantamax/icon.4bpp"); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_MACHOP + +#if P_FAMILY_BELLSPROUT + const u32 gMonFrontPic_Bellsprout[] = INCBIN_U32("graphics/pokemon/bellsprout/anim_front.4bpp.lz"); + const u32 gMonPalette_Bellsprout[] = INCBIN_U32("graphics/pokemon/bellsprout/normal.gbapal.lz"); + const u32 gMonBackPic_Bellsprout[] = INCBIN_U32("graphics/pokemon/bellsprout/back.4bpp.lz"); + const u32 gMonShinyPalette_Bellsprout[] = INCBIN_U32("graphics/pokemon/bellsprout/shiny.gbapal.lz"); + const u8 gMonIcon_Bellsprout[] = INCBIN_U8("graphics/pokemon/bellsprout/icon.4bpp"); + const u8 gMonFootprint_Bellsprout[] = INCBIN_U8("graphics/pokemon/bellsprout/footprint.1bpp"); + + const u32 gMonFrontPic_Weepinbell[] = INCBIN_U32("graphics/pokemon/weepinbell/anim_front.4bpp.lz"); + const u32 gMonPalette_Weepinbell[] = INCBIN_U32("graphics/pokemon/weepinbell/normal.gbapal.lz"); + const u32 gMonBackPic_Weepinbell[] = INCBIN_U32("graphics/pokemon/weepinbell/back.4bpp.lz"); + const u32 gMonShinyPalette_Weepinbell[] = INCBIN_U32("graphics/pokemon/weepinbell/shiny.gbapal.lz"); + const u8 gMonIcon_Weepinbell[] = INCBIN_U8("graphics/pokemon/weepinbell/icon.4bpp"); + const u8 gMonFootprint_Weepinbell[] = INCBIN_U8("graphics/pokemon/weepinbell/footprint.1bpp"); + + const u32 gMonFrontPic_Victreebel[] = INCBIN_U32("graphics/pokemon/victreebel/anim_front.4bpp.lz"); + const u32 gMonPalette_Victreebel[] = INCBIN_U32("graphics/pokemon/victreebel/normal.gbapal.lz"); + const u32 gMonBackPic_Victreebel[] = INCBIN_U32("graphics/pokemon/victreebel/back.4bpp.lz"); + const u32 gMonShinyPalette_Victreebel[] = INCBIN_U32("graphics/pokemon/victreebel/shiny.gbapal.lz"); + const u8 gMonIcon_Victreebel[] = INCBIN_U8("graphics/pokemon/victreebel/icon.4bpp"); + const u8 gMonFootprint_Victreebel[] = INCBIN_U8("graphics/pokemon/victreebel/footprint.1bpp"); +#endif //P_FAMILY_BELLSPROUT + +#if P_FAMILY_TENTACOOL + const u32 gMonFrontPic_Tentacool[] = INCBIN_U32("graphics/pokemon/tentacool/anim_front.4bpp.lz"); + const u32 gMonPalette_Tentacool[] = INCBIN_U32("graphics/pokemon/tentacool/normal.gbapal.lz"); + const u32 gMonBackPic_Tentacool[] = INCBIN_U32("graphics/pokemon/tentacool/back.4bpp.lz"); + const u32 gMonShinyPalette_Tentacool[] = INCBIN_U32("graphics/pokemon/tentacool/shiny.gbapal.lz"); + const u8 gMonIcon_Tentacool[] = INCBIN_U8("graphics/pokemon/tentacool/icon.4bpp"); + const u8 gMonFootprint_Tentacool[] = INCBIN_U8("graphics/pokemon/tentacool/footprint.1bpp"); + + const u32 gMonFrontPic_Tentacruel[] = INCBIN_U32("graphics/pokemon/tentacruel/anim_front.4bpp.lz"); + const u32 gMonPalette_Tentacruel[] = INCBIN_U32("graphics/pokemon/tentacruel/normal.gbapal.lz"); + const u32 gMonBackPic_Tentacruel[] = INCBIN_U32("graphics/pokemon/tentacruel/back.4bpp.lz"); + const u32 gMonShinyPalette_Tentacruel[] = INCBIN_U32("graphics/pokemon/tentacruel/shiny.gbapal.lz"); + const u8 gMonIcon_Tentacruel[] = INCBIN_U8("graphics/pokemon/tentacruel/icon.4bpp"); + const u8 gMonFootprint_Tentacruel[] = INCBIN_U8("graphics/pokemon/tentacruel/footprint.1bpp"); +#endif //P_FAMILY_TENTACOOL + +#if P_FAMILY_GEODUDE + const u32 gMonFrontPic_Geodude[] = INCBIN_U32("graphics/pokemon/geodude/anim_front.4bpp.lz"); + const u32 gMonPalette_Geodude[] = INCBIN_U32("graphics/pokemon/geodude/normal.gbapal.lz"); + const u32 gMonBackPic_Geodude[] = INCBIN_U32("graphics/pokemon/geodude/back.4bpp.lz"); + const u32 gMonShinyPalette_Geodude[] = INCBIN_U32("graphics/pokemon/geodude/shiny.gbapal.lz"); + const u8 gMonIcon_Geodude[] = INCBIN_U8("graphics/pokemon/geodude/icon.4bpp"); + const u8 gMonFootprint_Geodude[] = INCBIN_U8("graphics/pokemon/geodude/footprint.1bpp"); + + const u32 gMonFrontPic_Graveler[] = INCBIN_U32("graphics/pokemon/graveler/anim_front.4bpp.lz"); + const u32 gMonPalette_Graveler[] = INCBIN_U32("graphics/pokemon/graveler/normal.gbapal.lz"); + const u32 gMonBackPic_Graveler[] = INCBIN_U32("graphics/pokemon/graveler/back.4bpp.lz"); + const u32 gMonShinyPalette_Graveler[] = INCBIN_U32("graphics/pokemon/graveler/shiny.gbapal.lz"); + const u8 gMonIcon_Graveler[] = INCBIN_U8("graphics/pokemon/graveler/icon.4bpp"); + const u8 gMonFootprint_Graveler[] = INCBIN_U8("graphics/pokemon/graveler/footprint.1bpp"); + + const u32 gMonFrontPic_Golem[] = INCBIN_U32("graphics/pokemon/golem/anim_front.4bpp.lz"); + const u32 gMonPalette_Golem[] = INCBIN_U32("graphics/pokemon/golem/normal.gbapal.lz"); + const u32 gMonBackPic_Golem[] = INCBIN_U32("graphics/pokemon/golem/back.4bpp.lz"); + const u32 gMonShinyPalette_Golem[] = INCBIN_U32("graphics/pokemon/golem/shiny.gbapal.lz"); + const u8 gMonIcon_Golem[] = INCBIN_U8("graphics/pokemon/golem/icon.4bpp"); + const u8 gMonFootprint_Golem[] = INCBIN_U8("graphics/pokemon/golem/footprint.1bpp"); + +#if P_ALOLAN_FORMS + const u32 gMonFrontPic_GeodudeAlolan[] = INCBIN_U32("graphics/pokemon/geodude/alolan/front.4bpp.lz"); + const u32 gMonPalette_GeodudeAlolan[] = INCBIN_U32("graphics/pokemon/geodude/alolan/normal.gbapal.lz"); + const u32 gMonBackPic_GeodudeAlolan[] = INCBIN_U32("graphics/pokemon/geodude/alolan/back.4bpp.lz"); + const u32 gMonShinyPalette_GeodudeAlolan[] = INCBIN_U32("graphics/pokemon/geodude/alolan/shiny.gbapal.lz"); + const u8 gMonIcon_GeodudeAlolan[] = INCBIN_U8("graphics/pokemon/geodude/alolan/icon.4bpp"); + + const u32 gMonFrontPic_GravelerAlolan[] = INCBIN_U32("graphics/pokemon/graveler/alolan/front.4bpp.lz"); + const u32 gMonPalette_GravelerAlolan[] = INCBIN_U32("graphics/pokemon/graveler/alolan/normal.gbapal.lz"); + const u32 gMonBackPic_GravelerAlolan[] = INCBIN_U32("graphics/pokemon/graveler/alolan/back.4bpp.lz"); + const u32 gMonShinyPalette_GravelerAlolan[] = INCBIN_U32("graphics/pokemon/graveler/alolan/shiny.gbapal.lz"); + const u8 gMonIcon_GravelerAlolan[] = INCBIN_U8("graphics/pokemon/graveler/alolan/icon.4bpp"); + + const u32 gMonFrontPic_GolemAlolan[] = INCBIN_U32("graphics/pokemon/golem/alolan/front.4bpp.lz"); + const u32 gMonPalette_GolemAlolan[] = INCBIN_U32("graphics/pokemon/golem/alolan/normal.gbapal.lz"); + const u32 gMonBackPic_GolemAlolan[] = INCBIN_U32("graphics/pokemon/golem/alolan/back.4bpp.lz"); + const u32 gMonShinyPalette_GolemAlolan[] = INCBIN_U32("graphics/pokemon/golem/alolan/shiny.gbapal.lz"); + const u8 gMonIcon_GolemAlolan[] = INCBIN_U8("graphics/pokemon/golem/alolan/icon.4bpp"); +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_GEODUDE + +#if P_FAMILY_PONYTA + const u32 gMonFrontPic_Ponyta[] = INCBIN_U32("graphics/pokemon/ponyta/anim_front.4bpp.lz"); + const u32 gMonPalette_Ponyta[] = INCBIN_U32("graphics/pokemon/ponyta/normal.gbapal.lz"); + const u32 gMonBackPic_Ponyta[] = INCBIN_U32("graphics/pokemon/ponyta/back.4bpp.lz"); + const u32 gMonShinyPalette_Ponyta[] = INCBIN_U32("graphics/pokemon/ponyta/shiny.gbapal.lz"); + const u8 gMonIcon_Ponyta[] = INCBIN_U8("graphics/pokemon/ponyta/icon.4bpp"); + const u8 gMonFootprint_Ponyta[] = INCBIN_U8("graphics/pokemon/ponyta/footprint.1bpp"); + + const u32 gMonFrontPic_Rapidash[] = INCBIN_U32("graphics/pokemon/rapidash/anim_front.4bpp.lz"); + const u32 gMonPalette_Rapidash[] = INCBIN_U32("graphics/pokemon/rapidash/normal.gbapal.lz"); + const u32 gMonBackPic_Rapidash[] = INCBIN_U32("graphics/pokemon/rapidash/back.4bpp.lz"); + const u32 gMonShinyPalette_Rapidash[] = INCBIN_U32("graphics/pokemon/rapidash/shiny.gbapal.lz"); + const u8 gMonIcon_Rapidash[] = INCBIN_U8("graphics/pokemon/rapidash/icon.4bpp"); + const u8 gMonFootprint_Rapidash[] = INCBIN_U8("graphics/pokemon/rapidash/footprint.1bpp"); + +#if P_GALARIAN_FORMS + const u32 gMonFrontPic_PonytaGalarian[] = INCBIN_U32("graphics/pokemon/ponyta/galarian/front.4bpp.lz"); + const u32 gMonPalette_PonytaGalarian[] = INCBIN_U32("graphics/pokemon/ponyta/galarian/normal.gbapal.lz"); + const u32 gMonBackPic_PonytaGalarian[] = INCBIN_U32("graphics/pokemon/ponyta/galarian/back.4bpp.lz"); + const u32 gMonShinyPalette_PonytaGalarian[] = INCBIN_U32("graphics/pokemon/ponyta/galarian/shiny.gbapal.lz"); + const u8 gMonIcon_PonytaGalarian[] = INCBIN_U8("graphics/pokemon/ponyta/galarian/icon.4bpp"); + + const u32 gMonFrontPic_RapidashGalarian[] = INCBIN_U32("graphics/pokemon/rapidash/galarian/front.4bpp.lz"); + const u32 gMonPalette_RapidashGalarian[] = INCBIN_U32("graphics/pokemon/rapidash/galarian/normal.gbapal.lz"); + const u32 gMonBackPic_RapidashGalarian[] = INCBIN_U32("graphics/pokemon/rapidash/galarian/back.4bpp.lz"); + const u32 gMonShinyPalette_RapidashGalarian[] = INCBIN_U32("graphics/pokemon/rapidash/galarian/shiny.gbapal.lz"); + const u8 gMonIcon_RapidashGalarian[] = INCBIN_U8("graphics/pokemon/rapidash/galarian/icon.4bpp"); +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_PONYTA + +#if P_FAMILY_SLOWPOKE + const u32 gMonFrontPic_Slowpoke[] = INCBIN_U32("graphics/pokemon/slowpoke/anim_front.4bpp.lz"); + const u32 gMonPalette_Slowpoke[] = INCBIN_U32("graphics/pokemon/slowpoke/normal.gbapal.lz"); + const u32 gMonBackPic_Slowpoke[] = INCBIN_U32("graphics/pokemon/slowpoke/back.4bpp.lz"); + const u32 gMonShinyPalette_Slowpoke[] = INCBIN_U32("graphics/pokemon/slowpoke/shiny.gbapal.lz"); + const u8 gMonIcon_Slowpoke[] = INCBIN_U8("graphics/pokemon/slowpoke/icon.4bpp"); + const u8 gMonFootprint_Slowpoke[] = INCBIN_U8("graphics/pokemon/slowpoke/footprint.1bpp"); + + const u32 gMonFrontPic_Slowbro[] = INCBIN_U32("graphics/pokemon/slowbro/anim_front.4bpp.lz"); + const u32 gMonPalette_Slowbro[] = INCBIN_U32("graphics/pokemon/slowbro/normal.gbapal.lz"); + const u32 gMonBackPic_Slowbro[] = INCBIN_U32("graphics/pokemon/slowbro/back.4bpp.lz"); + const u32 gMonShinyPalette_Slowbro[] = INCBIN_U32("graphics/pokemon/slowbro/shiny.gbapal.lz"); + const u8 gMonIcon_Slowbro[] = INCBIN_U8("graphics/pokemon/slowbro/icon.4bpp"); + const u8 gMonFootprint_Slowbro[] = INCBIN_U8("graphics/pokemon/slowbro/footprint.1bpp"); + +#if P_GEN_2_CROSS_EVOS + const u32 gMonFrontPic_Slowking[] = INCBIN_U32("graphics/pokemon/slowking/anim_front.4bpp.lz"); + const u32 gMonPalette_Slowking[] = INCBIN_U32("graphics/pokemon/slowking/normal.gbapal.lz"); + const u32 gMonBackPic_Slowking[] = INCBIN_U32("graphics/pokemon/slowking/back.4bpp.lz"); + const u32 gMonShinyPalette_Slowking[] = INCBIN_U32("graphics/pokemon/slowking/shiny.gbapal.lz"); + const u8 gMonIcon_Slowking[] = INCBIN_U8("graphics/pokemon/slowking/icon.4bpp"); + const u8 gMonFootprint_Slowking[] = INCBIN_U8("graphics/pokemon/slowking/footprint.1bpp"); +#endif //P_GEN_2_CROSS_EVOS + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_SlowbroMega[] = INCBIN_U32("graphics/pokemon/slowbro/mega/front.4bpp.lz"); + const u32 gMonPalette_SlowbroMega[] = INCBIN_U32("graphics/pokemon/slowbro/mega/normal.gbapal.lz"); + const u32 gMonBackPic_SlowbroMega[] = INCBIN_U32("graphics/pokemon/slowbro/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_SlowbroMega[] = INCBIN_U32("graphics/pokemon/slowbro/mega/shiny.gbapal.lz"); + const u8 gMonIcon_SlowbroMega[] = INCBIN_U8("graphics/pokemon/slowbro/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS + +#if P_GALARIAN_FORMS + const u32 gMonFrontPic_SlowpokeGalarian[] = INCBIN_U32("graphics/pokemon/slowpoke/galarian/front.4bpp.lz"); + const u32 gMonPalette_SlowpokeGalarian[] = INCBIN_U32("graphics/pokemon/slowpoke/galarian/normal.gbapal.lz"); + const u32 gMonBackPic_SlowpokeGalarian[] = INCBIN_U32("graphics/pokemon/slowpoke/galarian/back.4bpp.lz"); + const u32 gMonShinyPalette_SlowpokeGalarian[] = INCBIN_U32("graphics/pokemon/slowpoke/galarian/shiny.gbapal.lz"); + const u8 gMonIcon_SlowpokeGalarian[] = INCBIN_U8("graphics/pokemon/slowpoke/galarian/icon.4bpp"); + + const u32 gMonFrontPic_SlowbroGalarian[] = INCBIN_U32("graphics/pokemon/slowbro/galarian/front.4bpp.lz"); + const u32 gMonPalette_SlowbroGalarian[] = INCBIN_U32("graphics/pokemon/slowbro/galarian/normal.gbapal.lz"); + const u32 gMonBackPic_SlowbroGalarian[] = INCBIN_U32("graphics/pokemon/slowbro/galarian/back.4bpp.lz"); + const u32 gMonShinyPalette_SlowbroGalarian[] = INCBIN_U32("graphics/pokemon/slowbro/galarian/shiny.gbapal.lz"); + const u8 gMonIcon_SlowbroGalarian[] = INCBIN_U8("graphics/pokemon/slowbro/galarian/icon.4bpp"); + +#if P_GEN_2_CROSS_EVOS + const u32 gMonFrontPic_SlowkingGalarian[] = INCBIN_U32("graphics/pokemon/slowking/galarian/front.4bpp.lz"); + const u32 gMonPalette_SlowkingGalarian[] = INCBIN_U32("graphics/pokemon/slowking/galarian/normal.gbapal.lz"); + const u32 gMonBackPic_SlowkingGalarian[] = INCBIN_U32("graphics/pokemon/slowking/galarian/back.4bpp.lz"); + const u32 gMonShinyPalette_SlowkingGalarian[] = INCBIN_U32("graphics/pokemon/slowking/galarian/shiny.gbapal.lz"); + const u8 gMonIcon_SlowkingGalarian[] = INCBIN_U8("graphics/pokemon/slowking/galarian/icon.4bpp"); +#endif //P_GEN_2_CROSS_EVOS +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_SLOWPOKE + +#if P_FAMILY_MAGNEMITE + const u32 gMonFrontPic_Magnemite[] = INCBIN_U32("graphics/pokemon/magnemite/anim_front.4bpp.lz"); + const u32 gMonPalette_Magnemite[] = INCBIN_U32("graphics/pokemon/magnemite/normal.gbapal.lz"); + const u32 gMonBackPic_Magnemite[] = INCBIN_U32("graphics/pokemon/magnemite/back.4bpp.lz"); + const u32 gMonShinyPalette_Magnemite[] = INCBIN_U32("graphics/pokemon/magnemite/shiny.gbapal.lz"); + const u8 gMonIcon_Magnemite[] = INCBIN_U8("graphics/pokemon/magnemite/icon.4bpp"); + const u8 gMonFootprint_Magnemite[] = INCBIN_U8("graphics/pokemon/magnemite/footprint.1bpp"); + + const u32 gMonFrontPic_Magneton[] = INCBIN_U32("graphics/pokemon/magneton/anim_front.4bpp.lz"); + const u32 gMonPalette_Magneton[] = INCBIN_U32("graphics/pokemon/magneton/normal.gbapal.lz"); + const u32 gMonBackPic_Magneton[] = INCBIN_U32("graphics/pokemon/magneton/back.4bpp.lz"); + const u32 gMonShinyPalette_Magneton[] = INCBIN_U32("graphics/pokemon/magneton/shiny.gbapal.lz"); + const u8 gMonIcon_Magneton[] = INCBIN_U8("graphics/pokemon/magneton/icon.4bpp"); + const u8 gMonFootprint_Magneton[] = INCBIN_U8("graphics/pokemon/magneton/footprint.1bpp"); + +#if P_GEN_4_CROSS_EVOS + const u32 gMonFrontPic_Magnezone[] = INCBIN_U32("graphics/pokemon/magnezone/anim_front.4bpp.lz"); + const u32 gMonPalette_Magnezone[] = INCBIN_U32("graphics/pokemon/magnezone/normal.gbapal.lz"); + const u32 gMonBackPic_Magnezone[] = INCBIN_U32("graphics/pokemon/magnezone/back.4bpp.lz"); + const u32 gMonShinyPalette_Magnezone[] = INCBIN_U32("graphics/pokemon/magnezone/shiny.gbapal.lz"); + const u8 gMonIcon_Magnezone[] = INCBIN_U8("graphics/pokemon/magnezone/icon.4bpp"); + const u8 gMonFootprint_Magnezone[] = INCBIN_U8("graphics/pokemon/magnezone/footprint.1bpp"); +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MAGNEMITE + +#if P_FAMILY_FARFETCHD + const u32 gMonFrontPic_Farfetchd[] = INCBIN_U32("graphics/pokemon/farfetchd/anim_front.4bpp.lz"); + const u32 gMonPalette_Farfetchd[] = INCBIN_U32("graphics/pokemon/farfetchd/normal.gbapal.lz"); + const u32 gMonBackPic_Farfetchd[] = INCBIN_U32("graphics/pokemon/farfetchd/back.4bpp.lz"); + const u32 gMonShinyPalette_Farfetchd[] = INCBIN_U32("graphics/pokemon/farfetchd/shiny.gbapal.lz"); + const u8 gMonIcon_Farfetchd[] = INCBIN_U8("graphics/pokemon/farfetchd/icon.4bpp"); + const u8 gMonFootprint_Farfetchd[] = INCBIN_U8("graphics/pokemon/farfetchd/footprint.1bpp"); + +#if P_GALARIAN_FORMS + const u32 gMonFrontPic_FarfetchdGalarian[] = INCBIN_U32("graphics/pokemon/farfetchd/galarian/front.4bpp.lz"); + const u32 gMonPalette_FarfetchdGalarian[] = INCBIN_U32("graphics/pokemon/farfetchd/galarian/normal.gbapal.lz"); + const u32 gMonBackPic_FarfetchdGalarian[] = INCBIN_U32("graphics/pokemon/farfetchd/galarian/back.4bpp.lz"); + const u32 gMonShinyPalette_FarfetchdGalarian[] = INCBIN_U32("graphics/pokemon/farfetchd/galarian/shiny.gbapal.lz"); + const u8 gMonIcon_FarfetchdGalarian[] = INCBIN_U8("graphics/pokemon/farfetchd/galarian/icon.4bpp"); + + const u32 gMonFrontPic_Sirfetchd[] = INCBIN_U32("graphics/pokemon/sirfetchd/front.4bpp.lz"); + const u32 gMonPalette_Sirfetchd[] = INCBIN_U32("graphics/pokemon/sirfetchd/normal.gbapal.lz"); + const u32 gMonBackPic_Sirfetchd[] = INCBIN_U32("graphics/pokemon/sirfetchd/back.4bpp.lz"); + const u32 gMonShinyPalette_Sirfetchd[] = INCBIN_U32("graphics/pokemon/sirfetchd/shiny.gbapal.lz"); + const u8 gMonIcon_Sirfetchd[] = INCBIN_U8("graphics/pokemon/sirfetchd/icon.4bpp"); + const u8 gMonFootprint_Sirfetchd[] = INCBIN_U8("graphics/pokemon/sirfetchd/footprint.1bpp"); +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_FARFETCHD + +#if P_FAMILY_DODUO + const u32 gMonFrontPic_Doduo[] = INCBIN_U32("graphics/pokemon/doduo/anim_front.4bpp.lz"); + const u32 gMonPalette_Doduo[] = INCBIN_U32("graphics/pokemon/doduo/normal.gbapal.lz"); + const u32 gMonBackPic_Doduo[] = INCBIN_U32("graphics/pokemon/doduo/back.4bpp.lz"); + const u32 gMonShinyPalette_Doduo[] = INCBIN_U32("graphics/pokemon/doduo/shiny.gbapal.lz"); + const u8 gMonIcon_Doduo[] = INCBIN_U8("graphics/pokemon/doduo/icon.4bpp"); + const u8 gMonFootprint_Doduo[] = INCBIN_U8("graphics/pokemon/doduo/footprint.1bpp"); + + const u32 gMonFrontPic_DoduoF[] = INCBIN_U32("graphics/pokemon/doduo/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_DoduoF[] = INCBIN_U32("graphics/pokemon/doduo/backf.4bpp.lz"); + + const u32 gMonFrontPic_Dodrio[] = INCBIN_U32("graphics/pokemon/dodrio/anim_front.4bpp.lz"); + const u32 gMonPalette_Dodrio[] = INCBIN_U32("graphics/pokemon/dodrio/normal.gbapal.lz"); + const u32 gMonBackPic_Dodrio[] = INCBIN_U32("graphics/pokemon/dodrio/back.4bpp.lz"); + const u32 gMonShinyPalette_Dodrio[] = INCBIN_U32("graphics/pokemon/dodrio/shiny.gbapal.lz"); + const u8 gMonIcon_Dodrio[] = INCBIN_U8("graphics/pokemon/dodrio/icon.4bpp"); + const u8 gMonFootprint_Dodrio[] = INCBIN_U8("graphics/pokemon/dodrio/footprint.1bpp"); + + const u32 gMonFrontPic_DodrioF[] = INCBIN_U32("graphics/pokemon/dodrio/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_DodrioF[] = INCBIN_U32("graphics/pokemon/dodrio/backf.4bpp.lz"); +#endif //P_FAMILY_DODUO + +#if P_FAMILY_SEEL + const u32 gMonFrontPic_Seel[] = INCBIN_U32("graphics/pokemon/seel/anim_front.4bpp.lz"); + const u32 gMonPalette_Seel[] = INCBIN_U32("graphics/pokemon/seel/normal.gbapal.lz"); + const u32 gMonBackPic_Seel[] = INCBIN_U32("graphics/pokemon/seel/back.4bpp.lz"); + const u32 gMonShinyPalette_Seel[] = INCBIN_U32("graphics/pokemon/seel/shiny.gbapal.lz"); + const u8 gMonIcon_Seel[] = INCBIN_U8("graphics/pokemon/seel/icon.4bpp"); + const u8 gMonFootprint_Seel[] = INCBIN_U8("graphics/pokemon/seel/footprint.1bpp"); + + const u32 gMonFrontPic_Dewgong[] = INCBIN_U32("graphics/pokemon/dewgong/anim_front.4bpp.lz"); + const u32 gMonPalette_Dewgong[] = INCBIN_U32("graphics/pokemon/dewgong/normal.gbapal.lz"); + const u32 gMonBackPic_Dewgong[] = INCBIN_U32("graphics/pokemon/dewgong/back.4bpp.lz"); + const u32 gMonShinyPalette_Dewgong[] = INCBIN_U32("graphics/pokemon/dewgong/shiny.gbapal.lz"); + const u8 gMonIcon_Dewgong[] = INCBIN_U8("graphics/pokemon/dewgong/icon.4bpp"); + const u8 gMonFootprint_Dewgong[] = INCBIN_U8("graphics/pokemon/dewgong/footprint.1bpp"); +#endif //P_FAMILY_SEEL + +#if P_FAMILY_GRIMER + const u32 gMonFrontPic_Grimer[] = INCBIN_U32("graphics/pokemon/grimer/anim_front.4bpp.lz"); + const u32 gMonPalette_Grimer[] = INCBIN_U32("graphics/pokemon/grimer/normal.gbapal.lz"); + const u32 gMonBackPic_Grimer[] = INCBIN_U32("graphics/pokemon/grimer/back.4bpp.lz"); + const u32 gMonShinyPalette_Grimer[] = INCBIN_U32("graphics/pokemon/grimer/shiny.gbapal.lz"); + const u8 gMonIcon_Grimer[] = INCBIN_U8("graphics/pokemon/grimer/icon.4bpp"); + const u8 gMonFootprint_Grimer[] = INCBIN_U8("graphics/pokemon/grimer/footprint.1bpp"); + + const u32 gMonFrontPic_Muk[] = INCBIN_U32("graphics/pokemon/muk/anim_front.4bpp.lz"); + const u32 gMonPalette_Muk[] = INCBIN_U32("graphics/pokemon/muk/normal.gbapal.lz"); + const u32 gMonBackPic_Muk[] = INCBIN_U32("graphics/pokemon/muk/back.4bpp.lz"); + const u32 gMonShinyPalette_Muk[] = INCBIN_U32("graphics/pokemon/muk/shiny.gbapal.lz"); + const u8 gMonIcon_Muk[] = INCBIN_U8("graphics/pokemon/muk/icon.4bpp"); + const u8 gMonFootprint_Muk[] = INCBIN_U8("graphics/pokemon/muk/footprint.1bpp"); + +#if P_ALOLAN_FORMS + const u32 gMonFrontPic_GrimerAlolan[] = INCBIN_U32("graphics/pokemon/grimer/alolan/front.4bpp.lz"); + const u32 gMonPalette_GrimerAlolan[] = INCBIN_U32("graphics/pokemon/grimer/alolan/normal.gbapal.lz"); + const u32 gMonBackPic_GrimerAlolan[] = INCBIN_U32("graphics/pokemon/grimer/alolan/back.4bpp.lz"); + const u32 gMonShinyPalette_GrimerAlolan[] = INCBIN_U32("graphics/pokemon/grimer/alolan/shiny.gbapal.lz"); + const u8 gMonIcon_GrimerAlolan[] = INCBIN_U8("graphics/pokemon/grimer/alolan/icon.4bpp"); + + const u32 gMonFrontPic_MukAlolan[] = INCBIN_U32("graphics/pokemon/muk/alolan/front.4bpp.lz"); + const u32 gMonPalette_MukAlolan[] = INCBIN_U32("graphics/pokemon/muk/alolan/normal.gbapal.lz"); + const u32 gMonBackPic_MukAlolan[] = INCBIN_U32("graphics/pokemon/muk/alolan/back.4bpp.lz"); + const u32 gMonShinyPalette_MukAlolan[] = INCBIN_U32("graphics/pokemon/muk/alolan/shiny.gbapal.lz"); + const u8 gMonIcon_MukAlolan[] = INCBIN_U8("graphics/pokemon/muk/alolan/icon.4bpp"); +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_GRIMER + +#if P_FAMILY_SHELLDER + const u32 gMonFrontPic_Shellder[] = INCBIN_U32("graphics/pokemon/shellder/anim_front.4bpp.lz"); + const u32 gMonPalette_Shellder[] = INCBIN_U32("graphics/pokemon/shellder/normal.gbapal.lz"); + const u32 gMonBackPic_Shellder[] = INCBIN_U32("graphics/pokemon/shellder/back.4bpp.lz"); + const u32 gMonShinyPalette_Shellder[] = INCBIN_U32("graphics/pokemon/shellder/shiny.gbapal.lz"); + const u8 gMonIcon_Shellder[] = INCBIN_U8("graphics/pokemon/shellder/icon.4bpp"); + const u8 gMonFootprint_Shellder[] = INCBIN_U8("graphics/pokemon/shellder/footprint.1bpp"); + + const u32 gMonFrontPic_Cloyster[] = INCBIN_U32("graphics/pokemon/cloyster/anim_front.4bpp.lz"); + const u32 gMonPalette_Cloyster[] = INCBIN_U32("graphics/pokemon/cloyster/normal.gbapal.lz"); + const u32 gMonBackPic_Cloyster[] = INCBIN_U32("graphics/pokemon/cloyster/back.4bpp.lz"); + const u32 gMonShinyPalette_Cloyster[] = INCBIN_U32("graphics/pokemon/cloyster/shiny.gbapal.lz"); + const u8 gMonIcon_Cloyster[] = INCBIN_U8("graphics/pokemon/cloyster/icon.4bpp"); + const u8 gMonFootprint_Cloyster[] = INCBIN_U8("graphics/pokemon/cloyster/footprint.1bpp"); +#endif //P_FAMILY_SHELLDER + +#if P_FAMILY_GASTLY + const u32 gMonFrontPic_Gastly[] = INCBIN_U32("graphics/pokemon/gastly/anim_front.4bpp.lz"); + const u32 gMonPalette_Gastly[] = INCBIN_U32("graphics/pokemon/gastly/normal.gbapal.lz"); + const u32 gMonBackPic_Gastly[] = INCBIN_U32("graphics/pokemon/gastly/back.4bpp.lz"); + const u32 gMonShinyPalette_Gastly[] = INCBIN_U32("graphics/pokemon/gastly/shiny.gbapal.lz"); + const u8 gMonIcon_Gastly[] = INCBIN_U8("graphics/pokemon/gastly/icon.4bpp"); + const u8 gMonFootprint_Gastly[] = INCBIN_U8("graphics/pokemon/gastly/footprint.1bpp"); + + const u32 gMonFrontPic_Haunter[] = INCBIN_U32("graphics/pokemon/haunter/anim_front.4bpp.lz"); + const u32 gMonPalette_Haunter[] = INCBIN_U32("graphics/pokemon/haunter/normal.gbapal.lz"); + const u32 gMonBackPic_Haunter[] = INCBIN_U32("graphics/pokemon/haunter/back.4bpp.lz"); + const u32 gMonShinyPalette_Haunter[] = INCBIN_U32("graphics/pokemon/haunter/shiny.gbapal.lz"); + const u8 gMonIcon_Haunter[] = INCBIN_U8("graphics/pokemon/haunter/icon.4bpp"); + const u8 gMonFootprint_Haunter[] = INCBIN_U8("graphics/pokemon/haunter/footprint.1bpp"); + + const u32 gMonFrontPic_Gengar[] = INCBIN_U32("graphics/pokemon/gengar/anim_front.4bpp.lz"); + const u32 gMonPalette_Gengar[] = INCBIN_U32("graphics/pokemon/gengar/normal.gbapal.lz"); + const u32 gMonBackPic_Gengar[] = INCBIN_U32("graphics/pokemon/gengar/back.4bpp.lz"); + const u32 gMonShinyPalette_Gengar[] = INCBIN_U32("graphics/pokemon/gengar/shiny.gbapal.lz"); + const u8 gMonIcon_Gengar[] = INCBIN_U8("graphics/pokemon/gengar/icon.4bpp"); + const u8 gMonFootprint_Gengar[] = INCBIN_U8("graphics/pokemon/gengar/footprint.1bpp"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_GengarMega[] = INCBIN_U32("graphics/pokemon/gengar/mega/front.4bpp.lz"); + const u32 gMonPalette_GengarMega[] = INCBIN_U32("graphics/pokemon/gengar/mega/normal.gbapal.lz"); + const u32 gMonBackPic_GengarMega[] = INCBIN_U32("graphics/pokemon/gengar/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_GengarMega[] = INCBIN_U32("graphics/pokemon/gengar/mega/shiny.gbapal.lz"); + const u8 gMonIcon_GengarMega[] = INCBIN_U8("graphics/pokemon/gengar/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS + +#if P_GIGANTAMAX_FORMS + const u32 gMonFrontPic_GengarGigantamax[] = INCBIN_U32("graphics/pokemon/gengar/gigantamax/front.4bpp.lz"); + const u32 gMonBackPic_GengarGigantamax[] = INCBIN_U32("graphics/pokemon/gengar/gigantamax/back.4bpp.lz"); + const u32 gMonPalette_GengarGigantamax[] = INCBIN_U32("graphics/pokemon/gengar/gigantamax/normal.gbapal.lz"); + const u32 gMonShinyPalette_GengarGigantamax[] = INCBIN_U32("graphics/pokemon/gengar/gigantamax/shiny.gbapal.lz"); + const u8 gMonIcon_GengarGigantamax[] = INCBIN_U8("graphics/pokemon/gengar/gigantamax/icon.4bpp"); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_GASTLY + +#if P_FAMILY_ONIX + const u32 gMonFrontPic_Onix[] = INCBIN_U32("graphics/pokemon/onix/anim_front.4bpp.lz"); + const u32 gMonPalette_Onix[] = INCBIN_U32("graphics/pokemon/onix/normal.gbapal.lz"); + const u32 gMonBackPic_Onix[] = INCBIN_U32("graphics/pokemon/onix/back.4bpp.lz"); + const u32 gMonShinyPalette_Onix[] = INCBIN_U32("graphics/pokemon/onix/shiny.gbapal.lz"); + const u8 gMonIcon_Onix[] = INCBIN_U8("graphics/pokemon/onix/icon.4bpp"); + const u8 gMonFootprint_Onix[] = INCBIN_U8("graphics/pokemon/onix/footprint.1bpp"); + +#if P_GEN_2_CROSS_EVOS + const u32 gMonFrontPic_Steelix[] = INCBIN_U32("graphics/pokemon/steelix/anim_front.4bpp.lz"); + const u32 gMonPalette_Steelix[] = INCBIN_U32("graphics/pokemon/steelix/normal.gbapal.lz"); + const u32 gMonBackPic_Steelix[] = INCBIN_U32("graphics/pokemon/steelix/back.4bpp.lz"); + const u32 gMonShinyPalette_Steelix[] = INCBIN_U32("graphics/pokemon/steelix/shiny.gbapal.lz"); + const u8 gMonIcon_Steelix[] = INCBIN_U8("graphics/pokemon/steelix/icon.4bpp"); + const u8 gMonFootprint_Steelix[] = INCBIN_U8("graphics/pokemon/steelix/footprint.1bpp"); + + const u32 gMonFrontPic_SteelixF[] = INCBIN_U32("graphics/pokemon/steelix/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_SteelixF[] = INCBIN_U32("graphics/pokemon/steelix/backf.4bpp.lz"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_SteelixMega[] = INCBIN_U32("graphics/pokemon/steelix/mega/front.4bpp.lz"); + const u32 gMonPalette_SteelixMega[] = INCBIN_U32("graphics/pokemon/steelix/mega/normal.gbapal.lz"); + const u32 gMonBackPic_SteelixMega[] = INCBIN_U32("graphics/pokemon/steelix/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_SteelixMega[] = INCBIN_U32("graphics/pokemon/steelix/mega/shiny.gbapal.lz"); + const u8 gMonIcon_SteelixMega[] = INCBIN_U8("graphics/pokemon/steelix/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ONIX + +#if P_FAMILY_DROWZEE + const u32 gMonFrontPic_Drowzee[] = INCBIN_U32("graphics/pokemon/drowzee/anim_front.4bpp.lz"); + const u32 gMonPalette_Drowzee[] = INCBIN_U32("graphics/pokemon/drowzee/normal.gbapal.lz"); + const u32 gMonBackPic_Drowzee[] = INCBIN_U32("graphics/pokemon/drowzee/back.4bpp.lz"); + const u32 gMonShinyPalette_Drowzee[] = INCBIN_U32("graphics/pokemon/drowzee/shiny.gbapal.lz"); + const u8 gMonIcon_Drowzee[] = INCBIN_U8("graphics/pokemon/drowzee/icon.4bpp"); + const u8 gMonFootprint_Drowzee[] = INCBIN_U8("graphics/pokemon/drowzee/footprint.1bpp"); + + const u32 gMonFrontPic_Hypno[] = INCBIN_U32("graphics/pokemon/hypno/anim_front.4bpp.lz"); + const u32 gMonPalette_Hypno[] = INCBIN_U32("graphics/pokemon/hypno/normal.gbapal.lz"); + const u32 gMonBackPic_Hypno[] = INCBIN_U32("graphics/pokemon/hypno/back.4bpp.lz"); + const u32 gMonShinyPalette_Hypno[] = INCBIN_U32("graphics/pokemon/hypno/shiny.gbapal.lz"); + const u8 gMonIcon_Hypno[] = INCBIN_U8("graphics/pokemon/hypno/icon.4bpp"); + const u8 gMonFootprint_Hypno[] = INCBIN_U8("graphics/pokemon/hypno/footprint.1bpp"); + + const u32 gMonFrontPic_HypnoF[] = INCBIN_U32("graphics/pokemon/hypno/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_HypnoF[] = INCBIN_U32("graphics/pokemon/hypno/backf.4bpp.lz"); +#endif //P_FAMILY_DROWZEE + +#if P_FAMILY_KRABBY + const u32 gMonFrontPic_Krabby[] = INCBIN_U32("graphics/pokemon/krabby/anim_front.4bpp.lz"); + const u32 gMonPalette_Krabby[] = INCBIN_U32("graphics/pokemon/krabby/normal.gbapal.lz"); + const u32 gMonBackPic_Krabby[] = INCBIN_U32("graphics/pokemon/krabby/back.4bpp.lz"); + const u32 gMonShinyPalette_Krabby[] = INCBIN_U32("graphics/pokemon/krabby/shiny.gbapal.lz"); + const u8 gMonIcon_Krabby[] = INCBIN_U8("graphics/pokemon/krabby/icon.4bpp"); + const u8 gMonFootprint_Krabby[] = INCBIN_U8("graphics/pokemon/krabby/footprint.1bpp"); + + const u32 gMonFrontPic_Kingler[] = INCBIN_U32("graphics/pokemon/kingler/anim_front.4bpp.lz"); + const u32 gMonPalette_Kingler[] = INCBIN_U32("graphics/pokemon/kingler/normal.gbapal.lz"); + const u32 gMonBackPic_Kingler[] = INCBIN_U32("graphics/pokemon/kingler/back.4bpp.lz"); + const u32 gMonShinyPalette_Kingler[] = INCBIN_U32("graphics/pokemon/kingler/shiny.gbapal.lz"); + const u8 gMonIcon_Kingler[] = INCBIN_U8("graphics/pokemon/kingler/icon.4bpp"); + const u8 gMonFootprint_Kingler[] = INCBIN_U8("graphics/pokemon/kingler/footprint.1bpp"); + +#if P_GIGANTAMAX_FORMS + const u32 gMonFrontPic_KinglerGigantamax[] = INCBIN_U32("graphics/pokemon/kingler/gigantamax/front.4bpp.lz"); + const u32 gMonBackPic_KinglerGigantamax[] = INCBIN_U32("graphics/pokemon/kingler/gigantamax/back.4bpp.lz"); + const u32 gMonPalette_KinglerGigantamax[] = INCBIN_U32("graphics/pokemon/kingler/gigantamax/normal.gbapal.lz"); + const u32 gMonShinyPalette_KinglerGigantamax[] = INCBIN_U32("graphics/pokemon/kingler/gigantamax/shiny.gbapal.lz"); + const u8 gMonIcon_KinglerGigantamax[] = INCBIN_U8("graphics/pokemon/kingler/gigantamax/icon.4bpp"); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_KRABBY + +#if P_FAMILY_VOLTORB + const u32 gMonFrontPic_Voltorb[] = INCBIN_U32("graphics/pokemon/voltorb/anim_front.4bpp.lz"); + const u32 gMonPalette_Voltorb[] = INCBIN_U32("graphics/pokemon/voltorb/normal.gbapal.lz"); + const u32 gMonBackPic_Voltorb[] = INCBIN_U32("graphics/pokemon/voltorb/back.4bpp.lz"); + const u32 gMonShinyPalette_Voltorb[] = INCBIN_U32("graphics/pokemon/voltorb/shiny.gbapal.lz"); + const u8 gMonIcon_Voltorb[] = INCBIN_U8("graphics/pokemon/voltorb/icon.4bpp"); + const u8 gMonFootprint_Voltorb[] = INCBIN_U8("graphics/pokemon/voltorb/footprint.1bpp"); + + const u32 gMonFrontPic_Electrode[] = INCBIN_U32("graphics/pokemon/electrode/anim_front.4bpp.lz"); + const u32 gMonPalette_Electrode[] = INCBIN_U32("graphics/pokemon/electrode/normal.gbapal.lz"); + const u32 gMonBackPic_Electrode[] = INCBIN_U32("graphics/pokemon/electrode/back.4bpp.lz"); + const u32 gMonShinyPalette_Electrode[] = INCBIN_U32("graphics/pokemon/electrode/shiny.gbapal.lz"); + const u8 gMonIcon_Electrode[] = INCBIN_U8("graphics/pokemon/electrode/icon.4bpp"); + const u8 gMonFootprint_Electrode[] = INCBIN_U8("graphics/pokemon/electrode/footprint.1bpp"); + +#if P_HISUIAN_FORMS + const u32 gMonFrontPic_VoltorbHisuian[] = INCBIN_U32("graphics/pokemon/voltorb/hisuian/front.4bpp.lz"); + const u32 gMonPalette_VoltorbHisuian[] = INCBIN_U32("graphics/pokemon/voltorb/hisuian/normal.gbapal.lz"); + const u32 gMonBackPic_VoltorbHisuian[] = INCBIN_U32("graphics/pokemon/voltorb/hisuian/back.4bpp.lz"); + const u32 gMonShinyPalette_VoltorbHisuian[] = INCBIN_U32("graphics/pokemon/voltorb/hisuian/shiny.gbapal.lz"); + const u8 gMonIcon_VoltorbHisuian[] = INCBIN_U8("graphics/pokemon/voltorb/hisuian/icon.4bpp"); + + const u32 gMonFrontPic_ElectrodeHisuian[] = INCBIN_U32("graphics/pokemon/electrode/hisuian/front.4bpp.lz"); + const u32 gMonPalette_ElectrodeHisuian[] = INCBIN_U32("graphics/pokemon/electrode/hisuian/normal.gbapal.lz"); + const u32 gMonBackPic_ElectrodeHisuian[] = INCBIN_U32("graphics/pokemon/electrode/hisuian/back.4bpp.lz"); + const u32 gMonShinyPalette_ElectrodeHisuian[] = INCBIN_U32("graphics/pokemon/electrode/hisuian/shiny.gbapal.lz"); + const u8 gMonIcon_ElectrodeHisuian[] = INCBIN_U8("graphics/pokemon/electrode/hisuian/icon.4bpp"); +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_VOLTORB + +#if P_FAMILY_EXEGGCUTE + const u32 gMonFrontPic_Exeggcute[] = INCBIN_U32("graphics/pokemon/exeggcute/anim_front.4bpp.lz"); + const u32 gMonPalette_Exeggcute[] = INCBIN_U32("graphics/pokemon/exeggcute/normal.gbapal.lz"); + const u32 gMonBackPic_Exeggcute[] = INCBIN_U32("graphics/pokemon/exeggcute/back.4bpp.lz"); + const u32 gMonShinyPalette_Exeggcute[] = INCBIN_U32("graphics/pokemon/exeggcute/shiny.gbapal.lz"); + const u8 gMonIcon_Exeggcute[] = INCBIN_U8("graphics/pokemon/exeggcute/icon.4bpp"); + const u8 gMonFootprint_Exeggcute[] = INCBIN_U8("graphics/pokemon/exeggcute/footprint.1bpp"); + + const u32 gMonFrontPic_Exeggutor[] = INCBIN_U32("graphics/pokemon/exeggutor/anim_front.4bpp.lz"); + const u32 gMonPalette_Exeggutor[] = INCBIN_U32("graphics/pokemon/exeggutor/normal.gbapal.lz"); + const u32 gMonBackPic_Exeggutor[] = INCBIN_U32("graphics/pokemon/exeggutor/back.4bpp.lz"); + const u32 gMonShinyPalette_Exeggutor[] = INCBIN_U32("graphics/pokemon/exeggutor/shiny.gbapal.lz"); + const u8 gMonIcon_Exeggutor[] = INCBIN_U8("graphics/pokemon/exeggutor/icon.4bpp"); + const u8 gMonFootprint_Exeggutor[] = INCBIN_U8("graphics/pokemon/exeggutor/footprint.1bpp"); + +#if P_ALOLAN_FORMS + const u32 gMonFrontPic_ExeggutorAlolan[] = INCBIN_U32("graphics/pokemon/exeggutor/alolan/anim_front.4bpp.lz"); + const u32 gMonPalette_ExeggutorAlolan[] = INCBIN_U32("graphics/pokemon/exeggutor/alolan/normal.gbapal.lz"); + const u32 gMonBackPic_ExeggutorAlolan[] = INCBIN_U32("graphics/pokemon/exeggutor/alolan/back.4bpp.lz"); + const u32 gMonShinyPalette_ExeggutorAlolan[] = INCBIN_U32("graphics/pokemon/exeggutor/alolan/shiny.gbapal.lz"); + const u8 gMonIcon_ExeggutorAlolan[] = INCBIN_U8("graphics/pokemon/exeggutor/alolan/icon.4bpp"); +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_EXEGGCUTE + +#if P_FAMILY_CUBONE + const u32 gMonFrontPic_Cubone[] = INCBIN_U32("graphics/pokemon/cubone/anim_front.4bpp.lz"); + const u32 gMonPalette_Cubone[] = INCBIN_U32("graphics/pokemon/cubone/normal.gbapal.lz"); + const u32 gMonBackPic_Cubone[] = INCBIN_U32("graphics/pokemon/cubone/back.4bpp.lz"); + const u32 gMonShinyPalette_Cubone[] = INCBIN_U32("graphics/pokemon/cubone/shiny.gbapal.lz"); + const u8 gMonIcon_Cubone[] = INCBIN_U8("graphics/pokemon/cubone/icon.4bpp"); + const u8 gMonFootprint_Cubone[] = INCBIN_U8("graphics/pokemon/cubone/footprint.1bpp"); + + const u32 gMonFrontPic_Marowak[] = INCBIN_U32("graphics/pokemon/marowak/anim_front.4bpp.lz"); + const u32 gMonPalette_Marowak[] = INCBIN_U32("graphics/pokemon/marowak/normal.gbapal.lz"); + const u32 gMonBackPic_Marowak[] = INCBIN_U32("graphics/pokemon/marowak/back.4bpp.lz"); + const u32 gMonShinyPalette_Marowak[] = INCBIN_U32("graphics/pokemon/marowak/shiny.gbapal.lz"); + const u8 gMonIcon_Marowak[] = INCBIN_U8("graphics/pokemon/marowak/icon.4bpp"); + const u8 gMonFootprint_Marowak[] = INCBIN_U8("graphics/pokemon/marowak/footprint.1bpp"); + +#if P_ALOLAN_FORMS + const u32 gMonFrontPic_MarowakAlolan[] = INCBIN_U32("graphics/pokemon/marowak/alolan/front.4bpp.lz"); + const u32 gMonPalette_MarowakAlolan[] = INCBIN_U32("graphics/pokemon/marowak/alolan/normal.gbapal.lz"); + const u32 gMonBackPic_MarowakAlolan[] = INCBIN_U32("graphics/pokemon/marowak/alolan/back.4bpp.lz"); + const u32 gMonShinyPalette_MarowakAlolan[] = INCBIN_U32("graphics/pokemon/marowak/alolan/shiny.gbapal.lz"); + const u8 gMonIcon_MarowakAlolan[] = INCBIN_U8("graphics/pokemon/marowak/alolan/icon.4bpp"); +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_CUBONE + +#if P_FAMILY_HITMONS +#if P_GEN_2_CROSS_EVOS + const u32 gMonFrontPic_Tyrogue[] = INCBIN_U32("graphics/pokemon/tyrogue/anim_front.4bpp.lz"); + const u32 gMonPalette_Tyrogue[] = INCBIN_U32("graphics/pokemon/tyrogue/normal.gbapal.lz"); + const u32 gMonBackPic_Tyrogue[] = INCBIN_U32("graphics/pokemon/tyrogue/back.4bpp.lz"); + const u32 gMonShinyPalette_Tyrogue[] = INCBIN_U32("graphics/pokemon/tyrogue/shiny.gbapal.lz"); + const u8 gMonIcon_Tyrogue[] = INCBIN_U8("graphics/pokemon/tyrogue/icon.4bpp"); + const u8 gMonFootprint_Tyrogue[] = INCBIN_U8("graphics/pokemon/tyrogue/footprint.1bpp"); +#endif //P_GEN_2_CROSS_EVOS + + const u32 gMonFrontPic_Hitmonlee[] = INCBIN_U32("graphics/pokemon/hitmonlee/anim_front.4bpp.lz"); + const u32 gMonPalette_Hitmonlee[] = INCBIN_U32("graphics/pokemon/hitmonlee/normal.gbapal.lz"); + const u32 gMonBackPic_Hitmonlee[] = INCBIN_U32("graphics/pokemon/hitmonlee/back.4bpp.lz"); + const u32 gMonShinyPalette_Hitmonlee[] = INCBIN_U32("graphics/pokemon/hitmonlee/shiny.gbapal.lz"); + const u8 gMonIcon_Hitmonlee[] = INCBIN_U8("graphics/pokemon/hitmonlee/icon.4bpp"); + const u8 gMonFootprint_Hitmonlee[] = INCBIN_U8("graphics/pokemon/hitmonlee/footprint.1bpp"); + + const u32 gMonFrontPic_Hitmonchan[] = INCBIN_U32("graphics/pokemon/hitmonchan/anim_front.4bpp.lz"); + const u32 gMonPalette_Hitmonchan[] = INCBIN_U32("graphics/pokemon/hitmonchan/normal.gbapal.lz"); + const u32 gMonBackPic_Hitmonchan[] = INCBIN_U32("graphics/pokemon/hitmonchan/back.4bpp.lz"); + const u32 gMonShinyPalette_Hitmonchan[] = INCBIN_U32("graphics/pokemon/hitmonchan/shiny.gbapal.lz"); + const u8 gMonIcon_Hitmonchan[] = INCBIN_U8("graphics/pokemon/hitmonchan/icon.4bpp"); + const u8 gMonFootprint_Hitmonchan[] = INCBIN_U8("graphics/pokemon/hitmonchan/footprint.1bpp"); + +#if P_GEN_2_CROSS_EVOS + const u32 gMonFrontPic_Hitmontop[] = INCBIN_U32("graphics/pokemon/hitmontop/anim_front.4bpp.lz"); + const u32 gMonPalette_Hitmontop[] = INCBIN_U32("graphics/pokemon/hitmontop/normal.gbapal.lz"); + const u32 gMonBackPic_Hitmontop[] = INCBIN_U32("graphics/pokemon/hitmontop/back.4bpp.lz"); + const u32 gMonShinyPalette_Hitmontop[] = INCBIN_U32("graphics/pokemon/hitmontop/shiny.gbapal.lz"); + const u8 gMonIcon_Hitmontop[] = INCBIN_U8("graphics/pokemon/hitmontop/icon.4bpp"); + const u8 gMonFootprint_Hitmontop[] = INCBIN_U8("graphics/pokemon/hitmontop/footprint.1bpp"); +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_HITMONS + +#if P_FAMILY_LICKITUNG + const u32 gMonFrontPic_Lickitung[] = INCBIN_U32("graphics/pokemon/lickitung/anim_front.4bpp.lz"); + const u32 gMonPalette_Lickitung[] = INCBIN_U32("graphics/pokemon/lickitung/normal.gbapal.lz"); + const u32 gMonBackPic_Lickitung[] = INCBIN_U32("graphics/pokemon/lickitung/back.4bpp.lz"); + const u32 gMonShinyPalette_Lickitung[] = INCBIN_U32("graphics/pokemon/lickitung/shiny.gbapal.lz"); + const u8 gMonIcon_Lickitung[] = INCBIN_U8("graphics/pokemon/lickitung/icon.4bpp"); + const u8 gMonFootprint_Lickitung[] = INCBIN_U8("graphics/pokemon/lickitung/footprint.1bpp"); + +#if P_GEN_4_CROSS_EVOS + const u32 gMonFrontPic_Lickilicky[] = INCBIN_U32("graphics/pokemon/lickilicky/anim_front.4bpp.lz"); + const u32 gMonPalette_Lickilicky[] = INCBIN_U32("graphics/pokemon/lickilicky/normal.gbapal.lz"); + const u32 gMonBackPic_Lickilicky[] = INCBIN_U32("graphics/pokemon/lickilicky/back.4bpp.lz"); + const u32 gMonShinyPalette_Lickilicky[] = INCBIN_U32("graphics/pokemon/lickilicky/shiny.gbapal.lz"); + const u8 gMonIcon_Lickilicky[] = INCBIN_U8("graphics/pokemon/lickilicky/icon.4bpp"); + const u8 gMonFootprint_Lickilicky[] = INCBIN_U8("graphics/pokemon/lickilicky/footprint.1bpp"); +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_LICKITUNG + +#if P_FAMILY_KOFFING + const u32 gMonFrontPic_Koffing[] = INCBIN_U32("graphics/pokemon/koffing/anim_front.4bpp.lz"); + const u32 gMonPalette_Koffing[] = INCBIN_U32("graphics/pokemon/koffing/normal.gbapal.lz"); + const u32 gMonBackPic_Koffing[] = INCBIN_U32("graphics/pokemon/koffing/back.4bpp.lz"); + const u32 gMonShinyPalette_Koffing[] = INCBIN_U32("graphics/pokemon/koffing/shiny.gbapal.lz"); + const u8 gMonIcon_Koffing[] = INCBIN_U8("graphics/pokemon/koffing/icon.4bpp"); + const u8 gMonFootprint_Koffing[] = INCBIN_U8("graphics/pokemon/koffing/footprint.1bpp"); + + const u32 gMonFrontPic_Weezing[] = INCBIN_U32("graphics/pokemon/weezing/anim_front.4bpp.lz"); + const u32 gMonPalette_Weezing[] = INCBIN_U32("graphics/pokemon/weezing/normal.gbapal.lz"); + const u32 gMonBackPic_Weezing[] = INCBIN_U32("graphics/pokemon/weezing/back.4bpp.lz"); + const u32 gMonShinyPalette_Weezing[] = INCBIN_U32("graphics/pokemon/weezing/shiny.gbapal.lz"); + const u8 gMonIcon_Weezing[] = INCBIN_U8("graphics/pokemon/weezing/icon.4bpp"); + const u8 gMonFootprint_Weezing[] = INCBIN_U8("graphics/pokemon/weezing/footprint.1bpp"); + +#if P_GALARIAN_FORMS + const u32 gMonFrontPic_WeezingGalarian[] = INCBIN_U32("graphics/pokemon/weezing/galarian/front.4bpp.lz"); + const u32 gMonPalette_WeezingGalarian[] = INCBIN_U32("graphics/pokemon/weezing/galarian/normal.gbapal.lz"); + const u32 gMonBackPic_WeezingGalarian[] = INCBIN_U32("graphics/pokemon/weezing/galarian/back.4bpp.lz"); + const u32 gMonShinyPalette_WeezingGalarian[] = INCBIN_U32("graphics/pokemon/weezing/galarian/shiny.gbapal.lz"); + const u8 gMonIcon_WeezingGalarian[] = INCBIN_U8("graphics/pokemon/weezing/galarian/icon.4bpp"); +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_KOFFING + +#if P_FAMILY_RHYHORN + const u32 gMonFrontPic_Rhyhorn[] = INCBIN_U32("graphics/pokemon/rhyhorn/anim_front.4bpp.lz"); + const u32 gMonPalette_Rhyhorn[] = INCBIN_U32("graphics/pokemon/rhyhorn/normal.gbapal.lz"); + const u32 gMonBackPic_Rhyhorn[] = INCBIN_U32("graphics/pokemon/rhyhorn/back.4bpp.lz"); + const u32 gMonShinyPalette_Rhyhorn[] = INCBIN_U32("graphics/pokemon/rhyhorn/shiny.gbapal.lz"); + const u8 gMonIcon_Rhyhorn[] = INCBIN_U8("graphics/pokemon/rhyhorn/icon.4bpp"); + const u8 gMonFootprint_Rhyhorn[] = INCBIN_U8("graphics/pokemon/rhyhorn/footprint.1bpp"); + + const u32 gMonFrontPic_RhyhornF[] = INCBIN_U32("graphics/pokemon/rhyhorn/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_RhyhornF[] = INCBIN_U32("graphics/pokemon/rhyhorn/backf.4bpp.lz"); + + const u32 gMonFrontPic_Rhydon[] = INCBIN_U32("graphics/pokemon/rhydon/anim_front.4bpp.lz"); + const u32 gMonPalette_Rhydon[] = INCBIN_U32("graphics/pokemon/rhydon/normal.gbapal.lz"); + const u32 gMonBackPic_Rhydon[] = INCBIN_U32("graphics/pokemon/rhydon/back.4bpp.lz"); + const u32 gMonShinyPalette_Rhydon[] = INCBIN_U32("graphics/pokemon/rhydon/shiny.gbapal.lz"); + const u8 gMonIcon_Rhydon[] = INCBIN_U8("graphics/pokemon/rhydon/icon.4bpp"); + const u8 gMonFootprint_Rhydon[] = INCBIN_U8("graphics/pokemon/rhydon/footprint.1bpp"); + + const u32 gMonFrontPic_RhydonF[] = INCBIN_U32("graphics/pokemon/rhydon/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_RhydonF[] = INCBIN_U32("graphics/pokemon/rhydon/backf.4bpp.lz"); + +#if P_GEN_4_CROSS_EVOS + const u32 gMonFrontPic_Rhyperior[] = INCBIN_U32("graphics/pokemon/rhyperior/anim_front.4bpp.lz"); + const u32 gMonPalette_Rhyperior[] = INCBIN_U32("graphics/pokemon/rhyperior/normal.gbapal.lz"); + const u32 gMonBackPic_Rhyperior[] = INCBIN_U32("graphics/pokemon/rhyperior/back.4bpp.lz"); + const u32 gMonShinyPalette_Rhyperior[] = INCBIN_U32("graphics/pokemon/rhyperior/shiny.gbapal.lz"); + const u8 gMonIcon_Rhyperior[] = INCBIN_U8("graphics/pokemon/rhyperior/icon.4bpp"); + const u8 gMonFootprint_Rhyperior[] = INCBIN_U8("graphics/pokemon/rhyperior/footprint.1bpp"); + + const u32 gMonFrontPic_RhyperiorF[] = INCBIN_U32("graphics/pokemon/rhyperior/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_RhyperiorF[] = INCBIN_U32("graphics/pokemon/rhyperior/backf.4bpp.lz"); +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_RHYHORN + +#if P_FAMILY_CHANSEY +#if P_GEN_4_CROSS_EVOS + const u32 gMonFrontPic_Happiny[] = INCBIN_U32("graphics/pokemon/happiny/anim_front.4bpp.lz"); + const u32 gMonPalette_Happiny[] = INCBIN_U32("graphics/pokemon/happiny/normal.gbapal.lz"); + const u32 gMonBackPic_Happiny[] = INCBIN_U32("graphics/pokemon/happiny/back.4bpp.lz"); + const u32 gMonShinyPalette_Happiny[] = INCBIN_U32("graphics/pokemon/happiny/shiny.gbapal.lz"); + const u8 gMonIcon_Happiny[] = INCBIN_U8("graphics/pokemon/happiny/icon.4bpp"); + const u8 gMonFootprint_Happiny[] = INCBIN_U8("graphics/pokemon/happiny/footprint.1bpp"); +#endif //P_GEN_4_CROSS_EVOS + + const u32 gMonFrontPic_Chansey[] = INCBIN_U32("graphics/pokemon/chansey/anim_front.4bpp.lz"); + const u32 gMonPalette_Chansey[] = INCBIN_U32("graphics/pokemon/chansey/normal.gbapal.lz"); + const u32 gMonBackPic_Chansey[] = INCBIN_U32("graphics/pokemon/chansey/back.4bpp.lz"); + const u32 gMonShinyPalette_Chansey[] = INCBIN_U32("graphics/pokemon/chansey/shiny.gbapal.lz"); + const u8 gMonIcon_Chansey[] = INCBIN_U8("graphics/pokemon/chansey/icon.4bpp"); + const u8 gMonFootprint_Chansey[] = INCBIN_U8("graphics/pokemon/chansey/footprint.1bpp"); + +#if P_GEN_2_CROSS_EVOS + const u32 gMonFrontPic_Blissey[] = INCBIN_U32("graphics/pokemon/blissey/anim_front.4bpp.lz"); + const u32 gMonPalette_Blissey[] = INCBIN_U32("graphics/pokemon/blissey/normal.gbapal.lz"); + const u32 gMonBackPic_Blissey[] = INCBIN_U32("graphics/pokemon/blissey/back.4bpp.lz"); + const u32 gMonShinyPalette_Blissey[] = INCBIN_U32("graphics/pokemon/blissey/shiny.gbapal.lz"); + const u8 gMonIcon_Blissey[] = INCBIN_U8("graphics/pokemon/blissey/icon.4bpp"); + const u8 gMonFootprint_Blissey[] = INCBIN_U8("graphics/pokemon/blissey/footprint.1bpp"); +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_CHANSEY + +#if P_FAMILY_TANGELA + const u32 gMonFrontPic_Tangela[] = INCBIN_U32("graphics/pokemon/tangela/anim_front.4bpp.lz"); + const u32 gMonPalette_Tangela[] = INCBIN_U32("graphics/pokemon/tangela/normal.gbapal.lz"); + const u32 gMonBackPic_Tangela[] = INCBIN_U32("graphics/pokemon/tangela/back.4bpp.lz"); + const u32 gMonShinyPalette_Tangela[] = INCBIN_U32("graphics/pokemon/tangela/shiny.gbapal.lz"); + const u8 gMonIcon_Tangela[] = INCBIN_U8("graphics/pokemon/tangela/icon.4bpp"); + const u8 gMonFootprint_Tangela[] = INCBIN_U8("graphics/pokemon/tangela/footprint.1bpp"); + +#if P_GEN_4_CROSS_EVOS + const u32 gMonFrontPic_Tangrowth[] = INCBIN_U32("graphics/pokemon/tangrowth/anim_front.4bpp.lz"); + const u32 gMonPalette_Tangrowth[] = INCBIN_U32("graphics/pokemon/tangrowth/normal.gbapal.lz"); + const u32 gMonBackPic_Tangrowth[] = INCBIN_U32("graphics/pokemon/tangrowth/back.4bpp.lz"); + const u32 gMonShinyPalette_Tangrowth[] = INCBIN_U32("graphics/pokemon/tangrowth/shiny.gbapal.lz"); + const u8 gMonIcon_Tangrowth[] = INCBIN_U8("graphics/pokemon/tangrowth/icon.4bpp"); + const u8 gMonFootprint_Tangrowth[] = INCBIN_U8("graphics/pokemon/tangrowth/footprint.1bpp"); + + const u32 gMonFrontPic_TangrowthF[] = INCBIN_U32("graphics/pokemon/tangrowth/anim_frontf.4bpp.lz"); +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_TANGELA + +#if P_FAMILY_KANGASKHAN + const u32 gMonFrontPic_Kangaskhan[] = INCBIN_U32("graphics/pokemon/kangaskhan/anim_front.4bpp.lz"); + const u32 gMonPalette_Kangaskhan[] = INCBIN_U32("graphics/pokemon/kangaskhan/normal.gbapal.lz"); + const u32 gMonBackPic_Kangaskhan[] = INCBIN_U32("graphics/pokemon/kangaskhan/back.4bpp.lz"); + const u32 gMonShinyPalette_Kangaskhan[] = INCBIN_U32("graphics/pokemon/kangaskhan/shiny.gbapal.lz"); + const u8 gMonIcon_Kangaskhan[] = INCBIN_U8("graphics/pokemon/kangaskhan/icon.4bpp"); + const u8 gMonFootprint_Kangaskhan[] = INCBIN_U8("graphics/pokemon/kangaskhan/footprint.1bpp"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_KangaskhanMega[] = INCBIN_U32("graphics/pokemon/kangaskhan/mega/front.4bpp.lz"); + const u32 gMonPalette_KangaskhanMega[] = INCBIN_U32("graphics/pokemon/kangaskhan/mega/normal.gbapal.lz"); + const u32 gMonBackPic_KangaskhanMega[] = INCBIN_U32("graphics/pokemon/kangaskhan/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_KangaskhanMega[] = INCBIN_U32("graphics/pokemon/kangaskhan/mega/shiny.gbapal.lz"); + const u8 gMonIcon_KangaskhanMega[] = INCBIN_U8("graphics/pokemon/kangaskhan/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_KANGASKHAN + +#if P_FAMILY_HORSEA + const u32 gMonFrontPic_Horsea[] = INCBIN_U32("graphics/pokemon/horsea/anim_front.4bpp.lz"); + const u32 gMonPalette_Horsea[] = INCBIN_U32("graphics/pokemon/horsea/normal.gbapal.lz"); + const u32 gMonBackPic_Horsea[] = INCBIN_U32("graphics/pokemon/horsea/back.4bpp.lz"); + const u32 gMonShinyPalette_Horsea[] = INCBIN_U32("graphics/pokemon/horsea/shiny.gbapal.lz"); + const u8 gMonIcon_Horsea[] = INCBIN_U8("graphics/pokemon/horsea/icon.4bpp"); + const u8 gMonFootprint_Horsea[] = INCBIN_U8("graphics/pokemon/horsea/footprint.1bpp"); + + const u32 gMonFrontPic_Seadra[] = INCBIN_U32("graphics/pokemon/seadra/anim_front.4bpp.lz"); + const u32 gMonPalette_Seadra[] = INCBIN_U32("graphics/pokemon/seadra/normal.gbapal.lz"); + const u32 gMonBackPic_Seadra[] = INCBIN_U32("graphics/pokemon/seadra/back.4bpp.lz"); + const u32 gMonShinyPalette_Seadra[] = INCBIN_U32("graphics/pokemon/seadra/shiny.gbapal.lz"); + const u8 gMonIcon_Seadra[] = INCBIN_U8("graphics/pokemon/seadra/icon.4bpp"); + const u8 gMonFootprint_Seadra[] = INCBIN_U8("graphics/pokemon/seadra/footprint.1bpp"); + +#if P_GEN_2_CROSS_EVOS + const u32 gMonFrontPic_Kingdra[] = INCBIN_U32("graphics/pokemon/kingdra/anim_front.4bpp.lz"); + const u32 gMonPalette_Kingdra[] = INCBIN_U32("graphics/pokemon/kingdra/normal.gbapal.lz"); + const u32 gMonBackPic_Kingdra[] = INCBIN_U32("graphics/pokemon/kingdra/back.4bpp.lz"); + const u32 gMonShinyPalette_Kingdra[] = INCBIN_U32("graphics/pokemon/kingdra/shiny.gbapal.lz"); + const u8 gMonIcon_Kingdra[] = INCBIN_U8("graphics/pokemon/kingdra/icon.4bpp"); + const u8 gMonFootprint_Kingdra[] = INCBIN_U8("graphics/pokemon/kingdra/footprint.1bpp"); +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_HORSEA + +#if P_FAMILY_GOLDEEN + const u32 gMonFrontPic_Goldeen[] = INCBIN_U32("graphics/pokemon/goldeen/anim_front.4bpp.lz"); + const u32 gMonPalette_Goldeen[] = INCBIN_U32("graphics/pokemon/goldeen/normal.gbapal.lz"); + const u32 gMonBackPic_Goldeen[] = INCBIN_U32("graphics/pokemon/goldeen/back.4bpp.lz"); + const u32 gMonShinyPalette_Goldeen[] = INCBIN_U32("graphics/pokemon/goldeen/shiny.gbapal.lz"); + const u8 gMonIcon_Goldeen[] = INCBIN_U8("graphics/pokemon/goldeen/icon.4bpp"); + const u8 gMonFootprint_Goldeen[] = INCBIN_U8("graphics/pokemon/goldeen/footprint.1bpp"); + + const u32 gMonFrontPic_GoldeenF[] = INCBIN_U32("graphics/pokemon/goldeen/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_GoldeenF[] = INCBIN_U32("graphics/pokemon/goldeen/backf.4bpp.lz"); + + const u32 gMonFrontPic_Seaking[] = INCBIN_U32("graphics/pokemon/seaking/anim_front.4bpp.lz"); + const u32 gMonPalette_Seaking[] = INCBIN_U32("graphics/pokemon/seaking/normal.gbapal.lz"); + const u32 gMonBackPic_Seaking[] = INCBIN_U32("graphics/pokemon/seaking/back.4bpp.lz"); + const u32 gMonShinyPalette_Seaking[] = INCBIN_U32("graphics/pokemon/seaking/shiny.gbapal.lz"); + const u8 gMonIcon_Seaking[] = INCBIN_U8("graphics/pokemon/seaking/icon.4bpp"); + const u8 gMonFootprint_Seaking[] = INCBIN_U8("graphics/pokemon/seaking/footprint.1bpp"); + + const u32 gMonFrontPic_SeakingF[] = INCBIN_U32("graphics/pokemon/seaking/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_SeakingF[] = INCBIN_U32("graphics/pokemon/seaking/backf.4bpp.lz"); +#endif //P_FAMILY_GOLDEEN + +#if P_FAMILY_STARYU + const u32 gMonFrontPic_Staryu[] = INCBIN_U32("graphics/pokemon/staryu/anim_front.4bpp.lz"); + const u32 gMonPalette_Staryu[] = INCBIN_U32("graphics/pokemon/staryu/normal.gbapal.lz"); + const u32 gMonBackPic_Staryu[] = INCBIN_U32("graphics/pokemon/staryu/back.4bpp.lz"); + const u32 gMonShinyPalette_Staryu[] = INCBIN_U32("graphics/pokemon/staryu/shiny.gbapal.lz"); + const u8 gMonIcon_Staryu[] = INCBIN_U8("graphics/pokemon/staryu/icon.4bpp"); + const u8 gMonFootprint_Staryu[] = INCBIN_U8("graphics/pokemon/staryu/footprint.1bpp"); + + const u32 gMonFrontPic_Starmie[] = INCBIN_U32("graphics/pokemon/starmie/anim_front.4bpp.lz"); + const u32 gMonPalette_Starmie[] = INCBIN_U32("graphics/pokemon/starmie/normal.gbapal.lz"); + const u32 gMonBackPic_Starmie[] = INCBIN_U32("graphics/pokemon/starmie/back.4bpp.lz"); + const u32 gMonShinyPalette_Starmie[] = INCBIN_U32("graphics/pokemon/starmie/shiny.gbapal.lz"); + const u8 gMonIcon_Starmie[] = INCBIN_U8("graphics/pokemon/starmie/icon.4bpp"); + const u8 gMonFootprint_Starmie[] = INCBIN_U8("graphics/pokemon/starmie/footprint.1bpp"); +#endif //P_FAMILY_STARYU + +#if P_FAMILY_MR_MIME +#if P_GEN_4_CROSS_EVOS + const u32 gMonFrontPic_MimeJr[] = INCBIN_U32("graphics/pokemon/mime_jr/anim_front.4bpp.lz"); + const u32 gMonPalette_MimeJr[] = INCBIN_U32("graphics/pokemon/mime_jr/normal.gbapal.lz"); + const u32 gMonBackPic_MimeJr[] = INCBIN_U32("graphics/pokemon/mime_jr/back.4bpp.lz"); + const u32 gMonShinyPalette_MimeJr[] = INCBIN_U32("graphics/pokemon/mime_jr/shiny.gbapal.lz"); + const u8 gMonIcon_MimeJr[] = INCBIN_U8("graphics/pokemon/mime_jr/icon.4bpp"); + const u8 gMonFootprint_MimeJr[] = INCBIN_U8("graphics/pokemon/mime_jr/footprint.1bpp"); +#endif //P_GEN_4_CROSS_EVOS + + const u32 gMonFrontPic_MrMime[] = INCBIN_U32("graphics/pokemon/mr_mime/anim_front.4bpp.lz"); + const u32 gMonPalette_MrMime[] = INCBIN_U32("graphics/pokemon/mr_mime/normal.gbapal.lz"); + const u32 gMonBackPic_MrMime[] = INCBIN_U32("graphics/pokemon/mr_mime/back.4bpp.lz"); + const u32 gMonShinyPalette_MrMime[] = INCBIN_U32("graphics/pokemon/mr_mime/shiny.gbapal.lz"); + const u8 gMonIcon_MrMime[] = INCBIN_U8("graphics/pokemon/mr_mime/icon.4bpp"); + const u8 gMonFootprint_MrMime[] = INCBIN_U8("graphics/pokemon/mr_mime/footprint.1bpp"); + +#if P_GALARIAN_FORMS + const u32 gMonFrontPic_MrMimeGalarian[] = INCBIN_U32("graphics/pokemon/mr_mime/galarian/front.4bpp.lz"); + const u32 gMonPalette_MrMimeGalarian[] = INCBIN_U32("graphics/pokemon/mr_mime/galarian/normal.gbapal.lz"); + const u32 gMonBackPic_MrMimeGalarian[] = INCBIN_U32("graphics/pokemon/mr_mime/galarian/back.4bpp.lz"); + const u32 gMonShinyPalette_MrMimeGalarian[] = INCBIN_U32("graphics/pokemon/mr_mime/galarian/shiny.gbapal.lz"); + const u8 gMonIcon_MrMimeGalarian[] = INCBIN_U8("graphics/pokemon/mr_mime/galarian/icon.4bpp"); + + const u32 gMonFrontPic_MrRime[] = INCBIN_U32("graphics/pokemon/mr_rime/front.4bpp.lz"); + const u32 gMonPalette_MrRime[] = INCBIN_U32("graphics/pokemon/mr_rime/normal.gbapal.lz"); + const u32 gMonBackPic_MrRime[] = INCBIN_U32("graphics/pokemon/mr_rime/back.4bpp.lz"); + const u32 gMonShinyPalette_MrRime[] = INCBIN_U32("graphics/pokemon/mr_rime/shiny.gbapal.lz"); + const u8 gMonIcon_MrRime[] = INCBIN_U8("graphics/pokemon/mr_rime/icon.4bpp"); + const u8 gMonFootprint_MrRime[] = INCBIN_U8("graphics/pokemon/mr_rime/footprint.1bpp"); +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MR_MIME + +#if P_FAMILY_SCYTHER + const u32 gMonFrontPic_Scyther[] = INCBIN_U32("graphics/pokemon/scyther/anim_front.4bpp.lz"); + const u32 gMonPalette_Scyther[] = INCBIN_U32("graphics/pokemon/scyther/normal.gbapal.lz"); + const u32 gMonBackPic_Scyther[] = INCBIN_U32("graphics/pokemon/scyther/back.4bpp.lz"); + const u32 gMonShinyPalette_Scyther[] = INCBIN_U32("graphics/pokemon/scyther/shiny.gbapal.lz"); + const u8 gMonIcon_Scyther[] = INCBIN_U8("graphics/pokemon/scyther/icon.4bpp"); + const u8 gMonFootprint_Scyther[] = INCBIN_U8("graphics/pokemon/scyther/footprint.1bpp"); + + const u32 gMonFrontPic_ScytherF[] = INCBIN_U32("graphics/pokemon/scyther/anim_frontf.4bpp.lz"); + +#if P_GEN_2_CROSS_EVOS + const u32 gMonFrontPic_Scizor[] = INCBIN_U32("graphics/pokemon/scizor/anim_front.4bpp.lz"); + const u32 gMonPalette_Scizor[] = INCBIN_U32("graphics/pokemon/scizor/normal.gbapal.lz"); + const u32 gMonBackPic_Scizor[] = INCBIN_U32("graphics/pokemon/scizor/back.4bpp.lz"); + const u32 gMonShinyPalette_Scizor[] = INCBIN_U32("graphics/pokemon/scizor/shiny.gbapal.lz"); + const u8 gMonIcon_Scizor[] = INCBIN_U8("graphics/pokemon/scizor/icon.4bpp"); + const u8 gMonFootprint_Scizor[] = INCBIN_U8("graphics/pokemon/scizor/footprint.1bpp"); + + const u32 gMonFrontPic_ScizorF[] = INCBIN_U32("graphics/pokemon/scizor/anim_frontf.4bpp.lz"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_ScizorMega[] = INCBIN_U32("graphics/pokemon/scizor/mega/front.4bpp.lz"); + const u32 gMonPalette_ScizorMega[] = INCBIN_U32("graphics/pokemon/scizor/mega/normal.gbapal.lz"); + const u32 gMonBackPic_ScizorMega[] = INCBIN_U32("graphics/pokemon/scizor/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_ScizorMega[] = INCBIN_U32("graphics/pokemon/scizor/mega/shiny.gbapal.lz"); + const u8 gMonIcon_ScizorMega[] = INCBIN_U8("graphics/pokemon/scizor/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS +#endif //P_GEN_2_CROSS_EVOS + +#if P_GEN_8_CROSS_EVOS + const u32 gMonFrontPic_Kleavor[] = INCBIN_U32("graphics/pokemon/kleavor/front.4bpp.lz"); + const u32 gMonPalette_Kleavor[] = INCBIN_U32("graphics/pokemon/kleavor/normal.gbapal.lz"); + const u32 gMonBackPic_Kleavor[] = INCBIN_U32("graphics/pokemon/kleavor/back.4bpp.lz"); + const u32 gMonShinyPalette_Kleavor[] = INCBIN_U32("graphics/pokemon/kleavor/shiny.gbapal.lz"); + const u8 gMonIcon_Kleavor[] = INCBIN_U8("graphics/pokemon/kleavor/icon.4bpp"); + //const u8 gMonFootprint_Kleavor[] = INCBIN_U8("graphics/pokemon/kleavor/footprint.1bpp"); +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_SCYTHER + +#if P_FAMILY_JYNX +#if P_GEN_2_CROSS_EVOS + const u32 gMonFrontPic_Smoochum[] = INCBIN_U32("graphics/pokemon/smoochum/anim_front.4bpp.lz"); + const u32 gMonPalette_Smoochum[] = INCBIN_U32("graphics/pokemon/smoochum/normal.gbapal.lz"); + const u32 gMonBackPic_Smoochum[] = INCBIN_U32("graphics/pokemon/smoochum/back.4bpp.lz"); + const u32 gMonShinyPalette_Smoochum[] = INCBIN_U32("graphics/pokemon/smoochum/shiny.gbapal.lz"); + const u8 gMonIcon_Smoochum[] = INCBIN_U8("graphics/pokemon/smoochum/icon.4bpp"); + const u8 gMonFootprint_Smoochum[] = INCBIN_U8("graphics/pokemon/smoochum/footprint.1bpp"); +#endif //P_GEN_2_CROSS_EVOS + + const u32 gMonFrontPic_Jynx[] = INCBIN_U32("graphics/pokemon/jynx/anim_front.4bpp.lz"); + const u32 gMonPalette_Jynx[] = INCBIN_U32("graphics/pokemon/jynx/normal.gbapal.lz"); + const u32 gMonBackPic_Jynx[] = INCBIN_U32("graphics/pokemon/jynx/back.4bpp.lz"); + const u32 gMonShinyPalette_Jynx[] = INCBIN_U32("graphics/pokemon/jynx/shiny.gbapal.lz"); + const u8 gMonIcon_Jynx[] = INCBIN_U8("graphics/pokemon/jynx/icon.4bpp"); + const u8 gMonFootprint_Jynx[] = INCBIN_U8("graphics/pokemon/jynx/footprint.1bpp"); +#endif //P_FAMILY_JYNX + +#if P_FAMILY_ELECTABUZZ +#if P_GEN_2_CROSS_EVOS + const u32 gMonFrontPic_Elekid[] = INCBIN_U32("graphics/pokemon/elekid/anim_front.4bpp.lz"); + const u32 gMonPalette_Elekid[] = INCBIN_U32("graphics/pokemon/elekid/normal.gbapal.lz"); + const u32 gMonBackPic_Elekid[] = INCBIN_U32("graphics/pokemon/elekid/back.4bpp.lz"); + const u32 gMonShinyPalette_Elekid[] = INCBIN_U32("graphics/pokemon/elekid/shiny.gbapal.lz"); + const u8 gMonIcon_Elekid[] = INCBIN_U8("graphics/pokemon/elekid/icon.4bpp"); + const u8 gMonFootprint_Elekid[] = INCBIN_U8("graphics/pokemon/elekid/footprint.1bpp"); +#endif //P_GEN_2_CROSS_EVOS + + const u32 gMonFrontPic_Electabuzz[] = INCBIN_U32("graphics/pokemon/electabuzz/anim_front.4bpp.lz"); + const u32 gMonPalette_Electabuzz[] = INCBIN_U32("graphics/pokemon/electabuzz/normal.gbapal.lz"); + const u32 gMonBackPic_Electabuzz[] = INCBIN_U32("graphics/pokemon/electabuzz/back.4bpp.lz"); + const u32 gMonShinyPalette_Electabuzz[] = INCBIN_U32("graphics/pokemon/electabuzz/shiny.gbapal.lz"); + const u8 gMonIcon_Electabuzz[] = INCBIN_U8("graphics/pokemon/electabuzz/icon.4bpp"); + const u8 gMonFootprint_Electabuzz[] = INCBIN_U8("graphics/pokemon/electabuzz/footprint.1bpp"); + +#if P_GEN_4_CROSS_EVOS + const u32 gMonFrontPic_Electivire[] = INCBIN_U32("graphics/pokemon/electivire/anim_front.4bpp.lz"); + const u32 gMonPalette_Electivire[] = INCBIN_U32("graphics/pokemon/electivire/normal.gbapal.lz"); + const u32 gMonBackPic_Electivire[] = INCBIN_U32("graphics/pokemon/electivire/back.4bpp.lz"); + const u32 gMonShinyPalette_Electivire[] = INCBIN_U32("graphics/pokemon/electivire/shiny.gbapal.lz"); + const u8 gMonIcon_Electivire[] = INCBIN_U8("graphics/pokemon/electivire/icon.4bpp"); + const u8 gMonFootprint_Electivire[] = INCBIN_U8("graphics/pokemon/electivire/footprint.1bpp"); +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_ELECTABUZZ + +#if P_FAMILY_MAGMAR +#if P_GEN_2_CROSS_EVOS + const u32 gMonFrontPic_Magby[] = INCBIN_U32("graphics/pokemon/magby/anim_front.4bpp.lz"); + const u32 gMonPalette_Magby[] = INCBIN_U32("graphics/pokemon/magby/normal.gbapal.lz"); + const u32 gMonBackPic_Magby[] = INCBIN_U32("graphics/pokemon/magby/back.4bpp.lz"); + const u32 gMonShinyPalette_Magby[] = INCBIN_U32("graphics/pokemon/magby/shiny.gbapal.lz"); + const u8 gMonIcon_Magby[] = INCBIN_U8("graphics/pokemon/magby/icon.4bpp"); + const u8 gMonFootprint_Magby[] = INCBIN_U8("graphics/pokemon/magby/footprint.1bpp"); +#endif //P_GEN_2_CROSS_EVOS + + const u32 gMonFrontPic_Magmar[] = INCBIN_U32("graphics/pokemon/magmar/anim_front.4bpp.lz"); + const u32 gMonPalette_Magmar[] = INCBIN_U32("graphics/pokemon/magmar/normal.gbapal.lz"); + const u32 gMonBackPic_Magmar[] = INCBIN_U32("graphics/pokemon/magmar/back.4bpp.lz"); + const u32 gMonShinyPalette_Magmar[] = INCBIN_U32("graphics/pokemon/magmar/shiny.gbapal.lz"); + const u8 gMonIcon_Magmar[] = INCBIN_U8("graphics/pokemon/magmar/icon.4bpp"); + const u8 gMonFootprint_Magmar[] = INCBIN_U8("graphics/pokemon/magmar/footprint.1bpp"); + +#if P_GEN_4_CROSS_EVOS + const u32 gMonFrontPic_Magmortar[] = INCBIN_U32("graphics/pokemon/magmortar/anim_front.4bpp.lz"); + const u32 gMonPalette_Magmortar[] = INCBIN_U32("graphics/pokemon/magmortar/normal.gbapal.lz"); + const u32 gMonBackPic_Magmortar[] = INCBIN_U32("graphics/pokemon/magmortar/back.4bpp.lz"); + const u32 gMonShinyPalette_Magmortar[] = INCBIN_U32("graphics/pokemon/magmortar/shiny.gbapal.lz"); + const u8 gMonIcon_Magmortar[] = INCBIN_U8("graphics/pokemon/magmortar/icon.4bpp"); + const u8 gMonFootprint_Magmortar[] = INCBIN_U8("graphics/pokemon/magmortar/footprint.1bpp"); +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MAGMAR + +#if P_FAMILY_PINSIR + const u32 gMonFrontPic_Pinsir[] = INCBIN_U32("graphics/pokemon/pinsir/anim_front.4bpp.lz"); + const u32 gMonPalette_Pinsir[] = INCBIN_U32("graphics/pokemon/pinsir/normal.gbapal.lz"); + const u32 gMonBackPic_Pinsir[] = INCBIN_U32("graphics/pokemon/pinsir/back.4bpp.lz"); + const u32 gMonShinyPalette_Pinsir[] = INCBIN_U32("graphics/pokemon/pinsir/shiny.gbapal.lz"); + const u8 gMonIcon_Pinsir[] = INCBIN_U8("graphics/pokemon/pinsir/icon.4bpp"); + const u8 gMonFootprint_Pinsir[] = INCBIN_U8("graphics/pokemon/pinsir/footprint.1bpp"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_PinsirMega[] = INCBIN_U32("graphics/pokemon/pinsir/mega/front.4bpp.lz"); + const u32 gMonPalette_PinsirMega[] = INCBIN_U32("graphics/pokemon/pinsir/mega/normal.gbapal.lz"); + const u32 gMonBackPic_PinsirMega[] = INCBIN_U32("graphics/pokemon/pinsir/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_PinsirMega[] = INCBIN_U32("graphics/pokemon/pinsir/mega/shiny.gbapal.lz"); + const u8 gMonIcon_PinsirMega[] = INCBIN_U8("graphics/pokemon/pinsir/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_PINSIR + +#if P_FAMILY_TAUROS + const u32 gMonFrontPic_Tauros[] = INCBIN_U32("graphics/pokemon/tauros/anim_front.4bpp.lz"); + const u32 gMonPalette_Tauros[] = INCBIN_U32("graphics/pokemon/tauros/normal.gbapal.lz"); + const u32 gMonBackPic_Tauros[] = INCBIN_U32("graphics/pokemon/tauros/back.4bpp.lz"); + const u32 gMonShinyPalette_Tauros[] = INCBIN_U32("graphics/pokemon/tauros/shiny.gbapal.lz"); + const u8 gMonIcon_Tauros[] = INCBIN_U8("graphics/pokemon/tauros/icon.4bpp"); + const u8 gMonFootprint_Tauros[] = INCBIN_U8("graphics/pokemon/tauros/footprint.1bpp"); + +#if P_PALDEAN_FORMS + const u32 gMonFrontPic_TaurosPaldeanCombatBreed[] = INCBIN_U32("graphics/pokemon/tauros/combat/front.4bpp.lz"); + const u32 gMonPalette_TaurosPaldeanCombatBreed[] = INCBIN_U32("graphics/pokemon/tauros/combat/normal.gbapal.lz"); + const u32 gMonBackPic_TaurosPaldeanCombatBreed[] = INCBIN_U32("graphics/pokemon/tauros/combat/back.4bpp.lz"); + const u32 gMonShinyPalette_TaurosPaldeanCombatBreed[] = INCBIN_U32("graphics/pokemon/tauros/combat/shiny.gbapal.lz"); + const u8 gMonIcon_TaurosPaldeanCombatBreed[] = INCBIN_U8("graphics/pokemon/tauros/combat/icon.4bpp"); + + const u32 gMonFrontPic_TaurosPaldeanBlazeBreed[] = INCBIN_U32("graphics/pokemon/tauros/blaze/front.4bpp.lz"); + const u32 gMonPalette_TaurosPaldeanBlazeBreed[] = INCBIN_U32("graphics/pokemon/tauros/blaze/normal.gbapal.lz"); + const u32 gMonBackPic_TaurosPaldeanBlazeBreed[] = INCBIN_U32("graphics/pokemon/tauros/blaze/back.4bpp.lz"); + const u32 gMonShinyPalette_TaurosPaldeanBlazeBreed[] = INCBIN_U32("graphics/pokemon/tauros/blaze/shiny.gbapal.lz"); + const u8 gMonIcon_TaurosPaldeanBlazeBreed[] = INCBIN_U8("graphics/pokemon/tauros/blaze/icon.4bpp"); + + const u32 gMonFrontPic_TaurosPaldeanAquaBreed[] = INCBIN_U32("graphics/pokemon/tauros/aqua/front.4bpp.lz"); + const u32 gMonPalette_TaurosPaldeanAquaBreed[] = INCBIN_U32("graphics/pokemon/tauros/aqua/normal.gbapal.lz"); + const u32 gMonBackPic_TaurosPaldeanAquaBreed[] = INCBIN_U32("graphics/pokemon/tauros/aqua/back.4bpp.lz"); + const u32 gMonShinyPalette_TaurosPaldeanAquaBreed[] = INCBIN_U32("graphics/pokemon/tauros/aqua/shiny.gbapal.lz"); + const u8 gMonIcon_TaurosPaldeanAquaBreed[] = INCBIN_U8("graphics/pokemon/tauros/aqua/icon.4bpp"); +#endif //P_PALDEAN_FORMS +#endif //P_FAMILY_TAUROS + +#if P_FAMILY_MAGIKARP + const u32 gMonFrontPic_Magikarp[] = INCBIN_U32("graphics/pokemon/magikarp/anim_front.4bpp.lz"); + const u32 gMonPalette_Magikarp[] = INCBIN_U32("graphics/pokemon/magikarp/normal.gbapal.lz"); + const u32 gMonBackPic_Magikarp[] = INCBIN_U32("graphics/pokemon/magikarp/back.4bpp.lz"); + const u32 gMonShinyPalette_Magikarp[] = INCBIN_U32("graphics/pokemon/magikarp/shiny.gbapal.lz"); + const u8 gMonIcon_Magikarp[] = INCBIN_U8("graphics/pokemon/magikarp/icon.4bpp"); + const u8 gMonFootprint_Magikarp[] = INCBIN_U8("graphics/pokemon/magikarp/footprint.1bpp"); + + const u32 gMonFrontPic_MagikarpF[] = INCBIN_U32("graphics/pokemon/magikarp/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_MagikarpF[] = INCBIN_U32("graphics/pokemon/magikarp/backf.4bpp.lz"); + + const u32 gMonFrontPic_Gyarados[] = INCBIN_U32("graphics/pokemon/gyarados/anim_front.4bpp.lz"); + const u32 gMonPalette_Gyarados[] = INCBIN_U32("graphics/pokemon/gyarados/normal.gbapal.lz"); + const u32 gMonBackPic_Gyarados[] = INCBIN_U32("graphics/pokemon/gyarados/back.4bpp.lz"); + const u32 gMonShinyPalette_Gyarados[] = INCBIN_U32("graphics/pokemon/gyarados/shiny.gbapal.lz"); + const u8 gMonIcon_Gyarados[] = INCBIN_U8("graphics/pokemon/gyarados/icon.4bpp"); + const u8 gMonFootprint_Gyarados[] = INCBIN_U8("graphics/pokemon/gyarados/footprint.1bpp"); + + const u32 gMonFrontPic_GyaradosF[] = INCBIN_U32("graphics/pokemon/gyarados/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_GyaradosF[] = INCBIN_U32("graphics/pokemon/gyarados/backf.4bpp.lz"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_GyaradosMega[] = INCBIN_U32("graphics/pokemon/gyarados/mega/front.4bpp.lz"); + const u32 gMonPalette_GyaradosMega[] = INCBIN_U32("graphics/pokemon/gyarados/mega/normal.gbapal.lz"); + const u32 gMonBackPic_GyaradosMega[] = INCBIN_U32("graphics/pokemon/gyarados/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_GyaradosMega[] = INCBIN_U32("graphics/pokemon/gyarados/mega/shiny.gbapal.lz"); + const u8 gMonIcon_GyaradosMega[] = INCBIN_U8("graphics/pokemon/gyarados/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_MAGIKARP + +#if P_FAMILY_LAPRAS + const u32 gMonFrontPic_Lapras[] = INCBIN_U32("graphics/pokemon/lapras/anim_front.4bpp.lz"); + const u32 gMonPalette_Lapras[] = INCBIN_U32("graphics/pokemon/lapras/normal.gbapal.lz"); + const u32 gMonBackPic_Lapras[] = INCBIN_U32("graphics/pokemon/lapras/back.4bpp.lz"); + const u32 gMonShinyPalette_Lapras[] = INCBIN_U32("graphics/pokemon/lapras/shiny.gbapal.lz"); + const u8 gMonIcon_Lapras[] = INCBIN_U8("graphics/pokemon/lapras/icon.4bpp"); + const u8 gMonFootprint_Lapras[] = INCBIN_U8("graphics/pokemon/lapras/footprint.1bpp"); + +#if P_GIGANTAMAX_FORMS + const u32 gMonFrontPic_LaprasGigantamax[] = INCBIN_U32("graphics/pokemon/lapras/gigantamax/front.4bpp.lz"); + const u32 gMonBackPic_LaprasGigantamax[] = INCBIN_U32("graphics/pokemon/lapras/gigantamax/back.4bpp.lz"); + const u32 gMonPalette_LaprasGigantamax[] = INCBIN_U32("graphics/pokemon/lapras/gigantamax/normal.gbapal.lz"); + const u32 gMonShinyPalette_LaprasGigantamax[] = INCBIN_U32("graphics/pokemon/lapras/gigantamax/shiny.gbapal.lz"); + const u8 gMonIcon_LaprasGigantamax[] = INCBIN_U8("graphics/pokemon/lapras/gigantamax/icon.4bpp"); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_LAPRAS + +#if P_FAMILY_DITTO + const u32 gMonFrontPic_Ditto[] = INCBIN_U32("graphics/pokemon/ditto/anim_front.4bpp.lz"); + const u32 gMonPalette_Ditto[] = INCBIN_U32("graphics/pokemon/ditto/normal.gbapal.lz"); + const u32 gMonBackPic_Ditto[] = INCBIN_U32("graphics/pokemon/ditto/back.4bpp.lz"); + const u32 gMonShinyPalette_Ditto[] = INCBIN_U32("graphics/pokemon/ditto/shiny.gbapal.lz"); + const u8 gMonIcon_Ditto[] = INCBIN_U8("graphics/pokemon/ditto/icon.4bpp"); + const u8 gMonFootprint_Ditto[] = INCBIN_U8("graphics/pokemon/ditto/footprint.1bpp"); +#endif //P_FAMILY_DITTO + +#if P_FAMILY_EEVEE + const u32 gMonFrontPic_Eevee[] = INCBIN_U32("graphics/pokemon/eevee/anim_front.4bpp.lz"); + const u32 gMonPalette_Eevee[] = INCBIN_U32("graphics/pokemon/eevee/normal.gbapal.lz"); + const u32 gMonBackPic_Eevee[] = INCBIN_U32("graphics/pokemon/eevee/back.4bpp.lz"); + const u32 gMonShinyPalette_Eevee[] = INCBIN_U32("graphics/pokemon/eevee/shiny.gbapal.lz"); + const u8 gMonIcon_Eevee[] = INCBIN_U8("graphics/pokemon/eevee/icon.4bpp"); + const u8 gMonFootprint_Eevee[] = INCBIN_U8("graphics/pokemon/eevee/footprint.1bpp"); + + const u32 gMonFrontPic_EeveeF[] = INCBIN_U32("graphics/pokemon/eevee/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_EeveeF[] = INCBIN_U32("graphics/pokemon/eevee/backf.4bpp.lz"); + +#if P_GIGANTAMAX_FORMS + const u32 gMonFrontPic_EeveeGigantamax[] = INCBIN_U32("graphics/pokemon/eevee/gigantamax/front.4bpp.lz"); + const u32 gMonBackPic_EeveeGigantamax[] = INCBIN_U32("graphics/pokemon/eevee/gigantamax/back.4bpp.lz"); + const u32 gMonPalette_EeveeGigantamax[] = INCBIN_U32("graphics/pokemon/eevee/gigantamax/normal.gbapal.lz"); + const u32 gMonShinyPalette_EeveeGigantamax[] = INCBIN_U32("graphics/pokemon/eevee/gigantamax/shiny.gbapal.lz"); + const u8 gMonIcon_EeveeGigantamax[] = INCBIN_U8("graphics/pokemon/eevee/gigantamax/icon.4bpp"); +#endif //P_GIGANTAMAX_FORMS + + const u32 gMonFrontPic_Vaporeon[] = INCBIN_U32("graphics/pokemon/vaporeon/anim_front.4bpp.lz"); + const u32 gMonPalette_Vaporeon[] = INCBIN_U32("graphics/pokemon/vaporeon/normal.gbapal.lz"); + const u32 gMonBackPic_Vaporeon[] = INCBIN_U32("graphics/pokemon/vaporeon/back.4bpp.lz"); + const u32 gMonShinyPalette_Vaporeon[] = INCBIN_U32("graphics/pokemon/vaporeon/shiny.gbapal.lz"); + const u8 gMonIcon_Vaporeon[] = INCBIN_U8("graphics/pokemon/vaporeon/icon.4bpp"); + const u8 gMonFootprint_Vaporeon[] = INCBIN_U8("graphics/pokemon/vaporeon/footprint.1bpp"); + + const u32 gMonFrontPic_Jolteon[] = INCBIN_U32("graphics/pokemon/jolteon/anim_front.4bpp.lz"); + const u32 gMonPalette_Jolteon[] = INCBIN_U32("graphics/pokemon/jolteon/normal.gbapal.lz"); + const u32 gMonBackPic_Jolteon[] = INCBIN_U32("graphics/pokemon/jolteon/back.4bpp.lz"); + const u32 gMonShinyPalette_Jolteon[] = INCBIN_U32("graphics/pokemon/jolteon/shiny.gbapal.lz"); + const u8 gMonIcon_Jolteon[] = INCBIN_U8("graphics/pokemon/jolteon/icon.4bpp"); + const u8 gMonFootprint_Jolteon[] = INCBIN_U8("graphics/pokemon/jolteon/footprint.1bpp"); + + const u32 gMonFrontPic_Flareon[] = INCBIN_U32("graphics/pokemon/flareon/anim_front.4bpp.lz"); + const u32 gMonPalette_Flareon[] = INCBIN_U32("graphics/pokemon/flareon/normal.gbapal.lz"); + const u32 gMonBackPic_Flareon[] = INCBIN_U32("graphics/pokemon/flareon/back.4bpp.lz"); + const u32 gMonShinyPalette_Flareon[] = INCBIN_U32("graphics/pokemon/flareon/shiny.gbapal.lz"); + const u8 gMonIcon_Flareon[] = INCBIN_U8("graphics/pokemon/flareon/icon.4bpp"); + const u8 gMonFootprint_Flareon[] = INCBIN_U8("graphics/pokemon/flareon/footprint.1bpp"); + +#if P_GEN_2_CROSS_EVOS + const u32 gMonFrontPic_Espeon[] = INCBIN_U32("graphics/pokemon/espeon/anim_front.4bpp.lz"); + const u32 gMonPalette_Espeon[] = INCBIN_U32("graphics/pokemon/espeon/normal.gbapal.lz"); + const u32 gMonBackPic_Espeon[] = INCBIN_U32("graphics/pokemon/espeon/back.4bpp.lz"); + const u32 gMonShinyPalette_Espeon[] = INCBIN_U32("graphics/pokemon/espeon/shiny.gbapal.lz"); + const u8 gMonIcon_Espeon[] = INCBIN_U8("graphics/pokemon/espeon/icon.4bpp"); + const u8 gMonFootprint_Espeon[] = INCBIN_U8("graphics/pokemon/espeon/footprint.1bpp"); + + const u32 gMonFrontPic_Umbreon[] = INCBIN_U32("graphics/pokemon/umbreon/anim_front.4bpp.lz"); + const u32 gMonPalette_Umbreon[] = INCBIN_U32("graphics/pokemon/umbreon/normal.gbapal.lz"); + const u32 gMonBackPic_Umbreon[] = INCBIN_U32("graphics/pokemon/umbreon/back.4bpp.lz"); + const u32 gMonShinyPalette_Umbreon[] = INCBIN_U32("graphics/pokemon/umbreon/shiny.gbapal.lz"); + const u8 gMonIcon_Umbreon[] = INCBIN_U8("graphics/pokemon/umbreon/icon.4bpp"); + const u8 gMonFootprint_Umbreon[] = INCBIN_U8("graphics/pokemon/umbreon/footprint.1bpp"); +#endif //P_GEN_2_CROSS_EVOS + +#if P_GEN_4_CROSS_EVOS + const u32 gMonFrontPic_Leafeon[] = INCBIN_U32("graphics/pokemon/leafeon/anim_front.4bpp.lz"); + const u32 gMonPalette_Leafeon[] = INCBIN_U32("graphics/pokemon/leafeon/normal.gbapal.lz"); + const u32 gMonBackPic_Leafeon[] = INCBIN_U32("graphics/pokemon/leafeon/back.4bpp.lz"); + const u32 gMonShinyPalette_Leafeon[] = INCBIN_U32("graphics/pokemon/leafeon/shiny.gbapal.lz"); + const u8 gMonIcon_Leafeon[] = INCBIN_U8("graphics/pokemon/leafeon/icon.4bpp"); + const u8 gMonFootprint_Leafeon[] = INCBIN_U8("graphics/pokemon/leafeon/footprint.1bpp"); + + const u32 gMonFrontPic_Glaceon[] = INCBIN_U32("graphics/pokemon/glaceon/anim_front.4bpp.lz"); + const u32 gMonPalette_Glaceon[] = INCBIN_U32("graphics/pokemon/glaceon/normal.gbapal.lz"); + const u32 gMonBackPic_Glaceon[] = INCBIN_U32("graphics/pokemon/glaceon/back.4bpp.lz"); + const u32 gMonShinyPalette_Glaceon[] = INCBIN_U32("graphics/pokemon/glaceon/shiny.gbapal.lz"); + const u8 gMonIcon_Glaceon[] = INCBIN_U8("graphics/pokemon/glaceon/icon.4bpp"); + const u8 gMonFootprint_Glaceon[] = INCBIN_U8("graphics/pokemon/glaceon/footprint.1bpp"); +#endif //P_GEN_4_CROSS_EVOS + +#if P_GEN_6_CROSS_EVOS + const u32 gMonFrontPic_Sylveon[] = INCBIN_U32("graphics/pokemon/sylveon/anim_front.4bpp.lz"); + const u32 gMonPalette_Sylveon[] = INCBIN_U32("graphics/pokemon/sylveon/normal.gbapal.lz"); + const u32 gMonBackPic_Sylveon[] = INCBIN_U32("graphics/pokemon/sylveon/back.4bpp.lz"); + const u32 gMonShinyPalette_Sylveon[] = INCBIN_U32("graphics/pokemon/sylveon/shiny.gbapal.lz"); + const u8 gMonIcon_Sylveon[] = INCBIN_U8("graphics/pokemon/sylveon/icon.4bpp"); + const u8 gMonFootprint_Sylveon[] = INCBIN_U8("graphics/pokemon/sylveon/footprint.1bpp"); +#endif //P_GEN_6_CROSS_EVOS +#endif //P_FAMILY_EEVEE + +#if P_FAMILY_PORYGON + const u32 gMonFrontPic_Porygon[] = INCBIN_U32("graphics/pokemon/porygon/anim_front.4bpp.lz"); + const u32 gMonPalette_Porygon[] = INCBIN_U32("graphics/pokemon/porygon/normal.gbapal.lz"); + const u32 gMonBackPic_Porygon[] = INCBIN_U32("graphics/pokemon/porygon/back.4bpp.lz"); + const u32 gMonShinyPalette_Porygon[] = INCBIN_U32("graphics/pokemon/porygon/shiny.gbapal.lz"); + const u8 gMonIcon_Porygon[] = INCBIN_U8("graphics/pokemon/porygon/icon.4bpp"); + const u8 gMonFootprint_Porygon[] = INCBIN_U8("graphics/pokemon/porygon/footprint.1bpp"); + +#if P_GEN_2_CROSS_EVOS + const u32 gMonFrontPic_Porygon2[] = INCBIN_U32("graphics/pokemon/porygon2/anim_front.4bpp.lz"); + const u32 gMonPalette_Porygon2[] = INCBIN_U32("graphics/pokemon/porygon2/normal.gbapal.lz"); + const u32 gMonBackPic_Porygon2[] = INCBIN_U32("graphics/pokemon/porygon2/back.4bpp.lz"); + const u32 gMonShinyPalette_Porygon2[] = INCBIN_U32("graphics/pokemon/porygon2/shiny.gbapal.lz"); + const u8 gMonIcon_Porygon2[] = INCBIN_U8("graphics/pokemon/porygon2/icon.4bpp"); + const u8 gMonFootprint_Porygon2[] = INCBIN_U8("graphics/pokemon/porygon2/footprint.1bpp"); + +#if P_GEN_4_CROSS_EVOS + const u32 gMonFrontPic_PorygonZ[] = INCBIN_U32("graphics/pokemon/porygon_z/anim_front.4bpp.lz"); + const u32 gMonPalette_PorygonZ[] = INCBIN_U32("graphics/pokemon/porygon_z/normal.gbapal.lz"); + const u32 gMonBackPic_PorygonZ[] = INCBIN_U32("graphics/pokemon/porygon_z/back.4bpp.lz"); + const u32 gMonShinyPalette_PorygonZ[] = INCBIN_U32("graphics/pokemon/porygon_z/shiny.gbapal.lz"); + const u8 gMonIcon_PorygonZ[] = INCBIN_U8("graphics/pokemon/porygon_z/icon.4bpp"); + const u8 gMonFootprint_PorygonZ[] = INCBIN_U8("graphics/pokemon/porygon_z/footprint.1bpp"); +#endif //P_GEN_4_CROSS_EVOS +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_PORYGON + +#if P_FAMILY_OMANYTE + const u32 gMonFrontPic_Omanyte[] = INCBIN_U32("graphics/pokemon/omanyte/anim_front.4bpp.lz"); + const u32 gMonPalette_Omanyte[] = INCBIN_U32("graphics/pokemon/omanyte/normal.gbapal.lz"); + const u32 gMonBackPic_Omanyte[] = INCBIN_U32("graphics/pokemon/omanyte/back.4bpp.lz"); + const u32 gMonShinyPalette_Omanyte[] = INCBIN_U32("graphics/pokemon/omanyte/shiny.gbapal.lz"); + const u8 gMonIcon_Omanyte[] = INCBIN_U8("graphics/pokemon/omanyte/icon.4bpp"); + const u8 gMonFootprint_Omanyte[] = INCBIN_U8("graphics/pokemon/omanyte/footprint.1bpp"); + + const u32 gMonFrontPic_Omastar[] = INCBIN_U32("graphics/pokemon/omastar/anim_front.4bpp.lz"); + const u32 gMonPalette_Omastar[] = INCBIN_U32("graphics/pokemon/omastar/normal.gbapal.lz"); + const u32 gMonBackPic_Omastar[] = INCBIN_U32("graphics/pokemon/omastar/back.4bpp.lz"); + const u32 gMonShinyPalette_Omastar[] = INCBIN_U32("graphics/pokemon/omastar/shiny.gbapal.lz"); + const u8 gMonIcon_Omastar[] = INCBIN_U8("graphics/pokemon/omastar/icon.4bpp"); + const u8 gMonFootprint_Omastar[] = INCBIN_U8("graphics/pokemon/omastar/footprint.1bpp"); +#endif //P_FAMILY_OMANYTE + +#if P_FAMILY_KABUTO + const u32 gMonFrontPic_Kabuto[] = INCBIN_U32("graphics/pokemon/kabuto/anim_front.4bpp.lz"); + const u32 gMonPalette_Kabuto[] = INCBIN_U32("graphics/pokemon/kabuto/normal.gbapal.lz"); + const u32 gMonBackPic_Kabuto[] = INCBIN_U32("graphics/pokemon/kabuto/back.4bpp.lz"); + const u32 gMonShinyPalette_Kabuto[] = INCBIN_U32("graphics/pokemon/kabuto/shiny.gbapal.lz"); + const u8 gMonIcon_Kabuto[] = INCBIN_U8("graphics/pokemon/kabuto/icon.4bpp"); + const u8 gMonFootprint_Kabuto[] = INCBIN_U8("graphics/pokemon/kabuto/footprint.1bpp"); + + const u32 gMonFrontPic_Kabutops[] = INCBIN_U32("graphics/pokemon/kabutops/anim_front.4bpp.lz"); + const u32 gMonPalette_Kabutops[] = INCBIN_U32("graphics/pokemon/kabutops/normal.gbapal.lz"); + const u32 gMonBackPic_Kabutops[] = INCBIN_U32("graphics/pokemon/kabutops/back.4bpp.lz"); + const u32 gMonShinyPalette_Kabutops[] = INCBIN_U32("graphics/pokemon/kabutops/shiny.gbapal.lz"); + const u8 gMonIcon_Kabutops[] = INCBIN_U8("graphics/pokemon/kabutops/icon.4bpp"); + const u8 gMonFootprint_Kabutops[] = INCBIN_U8("graphics/pokemon/kabutops/footprint.1bpp"); +#endif //P_FAMILY_KABUTO + +#if P_FAMILY_AERODACTYL + const u32 gMonFrontPic_Aerodactyl[] = INCBIN_U32("graphics/pokemon/aerodactyl/anim_front.4bpp.lz"); + const u32 gMonPalette_Aerodactyl[] = INCBIN_U32("graphics/pokemon/aerodactyl/normal.gbapal.lz"); + const u32 gMonBackPic_Aerodactyl[] = INCBIN_U32("graphics/pokemon/aerodactyl/back.4bpp.lz"); + const u32 gMonShinyPalette_Aerodactyl[] = INCBIN_U32("graphics/pokemon/aerodactyl/shiny.gbapal.lz"); + const u8 gMonIcon_Aerodactyl[] = INCBIN_U8("graphics/pokemon/aerodactyl/icon.4bpp"); + const u8 gMonFootprint_Aerodactyl[] = INCBIN_U8("graphics/pokemon/aerodactyl/footprint.1bpp"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_AerodactylMega[] = INCBIN_U32("graphics/pokemon/aerodactyl/mega/front.4bpp.lz"); + const u32 gMonPalette_AerodactylMega[] = INCBIN_U32("graphics/pokemon/aerodactyl/mega/normal.gbapal.lz"); + const u32 gMonBackPic_AerodactylMega[] = INCBIN_U32("graphics/pokemon/aerodactyl/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_AerodactylMega[] = INCBIN_U32("graphics/pokemon/aerodactyl/mega/shiny.gbapal.lz"); + const u8 gMonIcon_AerodactylMega[] = INCBIN_U8("graphics/pokemon/aerodactyl/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_AERODACTYL + +#if P_FAMILY_SNORLAX +#if P_GEN_4_CROSS_EVOS + const u32 gMonFrontPic_Munchlax[] = INCBIN_U32("graphics/pokemon/munchlax/anim_front.4bpp.lz"); + const u32 gMonPalette_Munchlax[] = INCBIN_U32("graphics/pokemon/munchlax/normal.gbapal.lz"); + const u32 gMonBackPic_Munchlax[] = INCBIN_U32("graphics/pokemon/munchlax/back.4bpp.lz"); + const u32 gMonShinyPalette_Munchlax[] = INCBIN_U32("graphics/pokemon/munchlax/shiny.gbapal.lz"); + const u8 gMonIcon_Munchlax[] = INCBIN_U8("graphics/pokemon/munchlax/icon.4bpp"); + const u8 gMonFootprint_Munchlax[] = INCBIN_U8("graphics/pokemon/munchlax/footprint.1bpp"); +#endif //P_GEN_4_CROSS_EVOS + + const u32 gMonFrontPic_Snorlax[] = INCBIN_U32("graphics/pokemon/snorlax/anim_front.4bpp.lz"); + const u32 gMonPalette_Snorlax[] = INCBIN_U32("graphics/pokemon/snorlax/normal.gbapal.lz"); + const u32 gMonBackPic_Snorlax[] = INCBIN_U32("graphics/pokemon/snorlax/back.4bpp.lz"); + const u32 gMonShinyPalette_Snorlax[] = INCBIN_U32("graphics/pokemon/snorlax/shiny.gbapal.lz"); + const u8 gMonIcon_Snorlax[] = INCBIN_U8("graphics/pokemon/snorlax/icon.4bpp"); + const u8 gMonFootprint_Snorlax[] = INCBIN_U8("graphics/pokemon/snorlax/footprint.1bpp"); + +#if P_GIGANTAMAX_FORMS + const u32 gMonFrontPic_SnorlaxGigantamax[] = INCBIN_U32("graphics/pokemon/snorlax/gigantamax/front.4bpp.lz"); + const u32 gMonBackPic_SnorlaxGigantamax[] = INCBIN_U32("graphics/pokemon/snorlax/gigantamax/back.4bpp.lz"); + const u32 gMonPalette_SnorlaxGigantamax[] = INCBIN_U32("graphics/pokemon/snorlax/gigantamax/normal.gbapal.lz"); + const u32 gMonShinyPalette_SnorlaxGigantamax[] = INCBIN_U32("graphics/pokemon/snorlax/gigantamax/shiny.gbapal.lz"); + const u8 gMonIcon_SnorlaxGigantamax[] = INCBIN_U8("graphics/pokemon/snorlax/gigantamax/icon.4bpp"); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_SNORLAX + +#if P_FAMILY_ARTICUNO + const u32 gMonFrontPic_Articuno[] = INCBIN_U32("graphics/pokemon/articuno/anim_front.4bpp.lz"); + const u32 gMonPalette_Articuno[] = INCBIN_U32("graphics/pokemon/articuno/normal.gbapal.lz"); + const u32 gMonBackPic_Articuno[] = INCBIN_U32("graphics/pokemon/articuno/back.4bpp.lz"); + const u32 gMonShinyPalette_Articuno[] = INCBIN_U32("graphics/pokemon/articuno/shiny.gbapal.lz"); + const u8 gMonIcon_Articuno[] = INCBIN_U8("graphics/pokemon/articuno/icon.4bpp"); + const u8 gMonFootprint_Articuno[] = INCBIN_U8("graphics/pokemon/articuno/footprint.1bpp"); + +#if P_GALARIAN_FORMS + const u32 gMonFrontPic_ArticunoGalarian[] = INCBIN_U32("graphics/pokemon/articuno/galarian/front.4bpp.lz"); + const u32 gMonPalette_ArticunoGalarian[] = INCBIN_U32("graphics/pokemon/articuno/galarian/normal.gbapal.lz"); + const u32 gMonBackPic_ArticunoGalarian[] = INCBIN_U32("graphics/pokemon/articuno/galarian/back.4bpp.lz"); + const u32 gMonShinyPalette_ArticunoGalarian[] = INCBIN_U32("graphics/pokemon/articuno/galarian/shiny.gbapal.lz"); + const u8 gMonIcon_ArticunoGalarian[] = INCBIN_U8("graphics/pokemon/articuno/galarian/icon.4bpp"); +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ARTICUNO + +#if P_FAMILY_ZAPDOS + const u32 gMonFrontPic_Zapdos[] = INCBIN_U32("graphics/pokemon/zapdos/anim_front.4bpp.lz"); + const u32 gMonPalette_Zapdos[] = INCBIN_U32("graphics/pokemon/zapdos/normal.gbapal.lz"); + const u32 gMonBackPic_Zapdos[] = INCBIN_U32("graphics/pokemon/zapdos/back.4bpp.lz"); + const u32 gMonShinyPalette_Zapdos[] = INCBIN_U32("graphics/pokemon/zapdos/shiny.gbapal.lz"); + const u8 gMonIcon_Zapdos[] = INCBIN_U8("graphics/pokemon/zapdos/icon.4bpp"); + const u8 gMonFootprint_Zapdos[] = INCBIN_U8("graphics/pokemon/zapdos/footprint.1bpp"); + +#if P_GALARIAN_FORMS + const u32 gMonFrontPic_ZapdosGalarian[] = INCBIN_U32("graphics/pokemon/zapdos/galarian/front.4bpp.lz"); + const u32 gMonPalette_ZapdosGalarian[] = INCBIN_U32("graphics/pokemon/zapdos/galarian/normal.gbapal.lz"); + const u32 gMonBackPic_ZapdosGalarian[] = INCBIN_U32("graphics/pokemon/zapdos/galarian/back.4bpp.lz"); + const u32 gMonShinyPalette_ZapdosGalarian[] = INCBIN_U32("graphics/pokemon/zapdos/galarian/shiny.gbapal.lz"); + const u8 gMonIcon_ZapdosGalarian[] = INCBIN_U8("graphics/pokemon/zapdos/galarian/icon.4bpp"); +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ZAPDOS + +#if P_FAMILY_MOLTRES + const u32 gMonFrontPic_Moltres[] = INCBIN_U32("graphics/pokemon/moltres/anim_front.4bpp.lz"); + const u32 gMonPalette_Moltres[] = INCBIN_U32("graphics/pokemon/moltres/normal.gbapal.lz"); + const u32 gMonBackPic_Moltres[] = INCBIN_U32("graphics/pokemon/moltres/back.4bpp.lz"); + const u32 gMonShinyPalette_Moltres[] = INCBIN_U32("graphics/pokemon/moltres/shiny.gbapal.lz"); + const u8 gMonIcon_Moltres[] = INCBIN_U8("graphics/pokemon/moltres/icon.4bpp"); + const u8 gMonFootprint_Moltres[] = INCBIN_U8("graphics/pokemon/moltres/footprint.1bpp"); + +#if P_GALARIAN_FORMS + const u32 gMonFrontPic_MoltresGalarian[] = INCBIN_U32("graphics/pokemon/moltres/galarian/front.4bpp.lz"); + const u32 gMonPalette_MoltresGalarian[] = INCBIN_U32("graphics/pokemon/moltres/galarian/normal.gbapal.lz"); + const u32 gMonBackPic_MoltresGalarian[] = INCBIN_U32("graphics/pokemon/moltres/galarian/back.4bpp.lz"); + const u32 gMonShinyPalette_MoltresGalarian[] = INCBIN_U32("graphics/pokemon/moltres/galarian/shiny.gbapal.lz"); + const u8 gMonIcon_MoltresGalarian[] = INCBIN_U8("graphics/pokemon/moltres/galarian/icon.4bpp"); +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MOLTRES + +#if P_FAMILY_DRATINI + const u32 gMonFrontPic_Dratini[] = INCBIN_U32("graphics/pokemon/dratini/anim_front.4bpp.lz"); + const u32 gMonPalette_Dratini[] = INCBIN_U32("graphics/pokemon/dratini/normal.gbapal.lz"); + const u32 gMonBackPic_Dratini[] = INCBIN_U32("graphics/pokemon/dratini/back.4bpp.lz"); + const u32 gMonShinyPalette_Dratini[] = INCBIN_U32("graphics/pokemon/dratini/shiny.gbapal.lz"); + const u8 gMonIcon_Dratini[] = INCBIN_U8("graphics/pokemon/dratini/icon.4bpp"); + const u8 gMonFootprint_Dratini[] = INCBIN_U8("graphics/pokemon/dratini/footprint.1bpp"); + + const u32 gMonFrontPic_Dragonair[] = INCBIN_U32("graphics/pokemon/dragonair/anim_front.4bpp.lz"); + const u32 gMonPalette_Dragonair[] = INCBIN_U32("graphics/pokemon/dragonair/normal.gbapal.lz"); + const u32 gMonBackPic_Dragonair[] = INCBIN_U32("graphics/pokemon/dragonair/back.4bpp.lz"); + const u32 gMonShinyPalette_Dragonair[] = INCBIN_U32("graphics/pokemon/dragonair/shiny.gbapal.lz"); + const u8 gMonIcon_Dragonair[] = INCBIN_U8("graphics/pokemon/dragonair/icon.4bpp"); + const u8 gMonFootprint_Dragonair[] = INCBIN_U8("graphics/pokemon/dragonair/footprint.1bpp"); + + const u32 gMonFrontPic_Dragonite[] = INCBIN_U32("graphics/pokemon/dragonite/anim_front.4bpp.lz"); + const u32 gMonPalette_Dragonite[] = INCBIN_U32("graphics/pokemon/dragonite/normal.gbapal.lz"); + const u32 gMonBackPic_Dragonite[] = INCBIN_U32("graphics/pokemon/dragonite/back.4bpp.lz"); + const u32 gMonShinyPalette_Dragonite[] = INCBIN_U32("graphics/pokemon/dragonite/shiny.gbapal.lz"); + const u8 gMonIcon_Dragonite[] = INCBIN_U8("graphics/pokemon/dragonite/icon.4bpp"); + const u8 gMonFootprint_Dragonite[] = INCBIN_U8("graphics/pokemon/dragonite/footprint.1bpp"); +#endif //P_FAMILY_DRATINI + +#if P_FAMILY_MEWTWO + const u32 gMonFrontPic_Mewtwo[] = INCBIN_U32("graphics/pokemon/mewtwo/anim_front.4bpp.lz"); + const u32 gMonPalette_Mewtwo[] = INCBIN_U32("graphics/pokemon/mewtwo/normal.gbapal.lz"); + const u32 gMonBackPic_Mewtwo[] = INCBIN_U32("graphics/pokemon/mewtwo/back.4bpp.lz"); + const u32 gMonShinyPalette_Mewtwo[] = INCBIN_U32("graphics/pokemon/mewtwo/shiny.gbapal.lz"); + const u8 gMonIcon_Mewtwo[] = INCBIN_U8("graphics/pokemon/mewtwo/icon.4bpp"); + const u8 gMonFootprint_Mewtwo[] = INCBIN_U8("graphics/pokemon/mewtwo/footprint.1bpp"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_MewtwoMegaX[] = INCBIN_U32("graphics/pokemon/mewtwo/mega_x/front.4bpp.lz"); + const u32 gMonPalette_MewtwoMegaX[] = INCBIN_U32("graphics/pokemon/mewtwo/mega_x/normal.gbapal.lz"); + const u32 gMonBackPic_MewtwoMegaX[] = INCBIN_U32("graphics/pokemon/mewtwo/mega_x/back.4bpp.lz"); + const u32 gMonShinyPalette_MewtwoMegaX[] = INCBIN_U32("graphics/pokemon/mewtwo/mega_x/shiny.gbapal.lz"); + const u8 gMonIcon_MewtwoMegaX[] = INCBIN_U8("graphics/pokemon/mewtwo/mega_x/icon.4bpp"); + + const u32 gMonFrontPic_MewtwoMegaY[] = INCBIN_U32("graphics/pokemon/mewtwo/mega_y/front.4bpp.lz"); + const u32 gMonPalette_MewtwoMegaY[] = INCBIN_U32("graphics/pokemon/mewtwo/mega_y/normal.gbapal.lz"); + const u32 gMonBackPic_MewtwoMegaY[] = INCBIN_U32("graphics/pokemon/mewtwo/mega_y/back.4bpp.lz"); + const u32 gMonShinyPalette_MewtwoMegaY[] = INCBIN_U32("graphics/pokemon/mewtwo/mega_y/shiny.gbapal.lz"); + const u8 gMonIcon_MewtwoMegaY[] = INCBIN_U8("graphics/pokemon/mewtwo/mega_y/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_MEWTWO + +#if P_FAMILY_MEW + const u32 gMonFrontPic_Mew[] = INCBIN_U32("graphics/pokemon/mew/anim_front.4bpp.lz"); + const u32 gMonPalette_Mew[] = INCBIN_U32("graphics/pokemon/mew/normal.gbapal.lz"); + const u32 gMonBackPic_Mew[] = INCBIN_U32("graphics/pokemon/mew/back.4bpp.lz"); + const u32 gMonShinyPalette_Mew[] = INCBIN_U32("graphics/pokemon/mew/shiny.gbapal.lz"); + const u8 gMonIcon_Mew[] = INCBIN_U8("graphics/pokemon/mew/icon.4bpp"); + const u8 gMonFootprint_Mew[] = INCBIN_U8("graphics/pokemon/mew/footprint.1bpp"); +#endif //P_FAMILY_MEW + +#if P_FAMILY_CHIKORITA + const u32 gMonFrontPic_Chikorita[] = INCBIN_U32("graphics/pokemon/chikorita/anim_front.4bpp.lz"); + const u32 gMonPalette_Chikorita[] = INCBIN_U32("graphics/pokemon/chikorita/normal.gbapal.lz"); + const u32 gMonBackPic_Chikorita[] = INCBIN_U32("graphics/pokemon/chikorita/back.4bpp.lz"); + const u32 gMonShinyPalette_Chikorita[] = INCBIN_U32("graphics/pokemon/chikorita/shiny.gbapal.lz"); + const u8 gMonIcon_Chikorita[] = INCBIN_U8("graphics/pokemon/chikorita/icon.4bpp"); + const u8 gMonFootprint_Chikorita[] = INCBIN_U8("graphics/pokemon/chikorita/footprint.1bpp"); + + const u32 gMonFrontPic_Bayleef[] = INCBIN_U32("graphics/pokemon/bayleef/anim_front.4bpp.lz"); + const u32 gMonPalette_Bayleef[] = INCBIN_U32("graphics/pokemon/bayleef/normal.gbapal.lz"); + const u32 gMonBackPic_Bayleef[] = INCBIN_U32("graphics/pokemon/bayleef/back.4bpp.lz"); + const u32 gMonShinyPalette_Bayleef[] = INCBIN_U32("graphics/pokemon/bayleef/shiny.gbapal.lz"); + const u8 gMonIcon_Bayleef[] = INCBIN_U8("graphics/pokemon/bayleef/icon.4bpp"); + const u8 gMonFootprint_Bayleef[] = INCBIN_U8("graphics/pokemon/bayleef/footprint.1bpp"); + + const u32 gMonFrontPic_Meganium[] = INCBIN_U32("graphics/pokemon/meganium/anim_front.4bpp.lz"); + const u32 gMonPalette_Meganium[] = INCBIN_U32("graphics/pokemon/meganium/normal.gbapal.lz"); + const u32 gMonBackPic_Meganium[] = INCBIN_U32("graphics/pokemon/meganium/back.4bpp.lz"); + const u32 gMonShinyPalette_Meganium[] = INCBIN_U32("graphics/pokemon/meganium/shiny.gbapal.lz"); + const u8 gMonIcon_Meganium[] = INCBIN_U8("graphics/pokemon/meganium/icon.4bpp"); + const u8 gMonFootprint_Meganium[] = INCBIN_U8("graphics/pokemon/meganium/footprint.1bpp"); + + const u32 gMonFrontPic_MeganiumF[] = INCBIN_U32("graphics/pokemon/meganium/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_MeganiumF[] = INCBIN_U32("graphics/pokemon/meganium/backf.4bpp.lz"); +#endif //P_FAMILY_CHIKORITA + +#if P_FAMILY_CYNDAQUIL + const u32 gMonFrontPic_Cyndaquil[] = INCBIN_U32("graphics/pokemon/cyndaquil/anim_front.4bpp.lz"); + const u32 gMonPalette_Cyndaquil[] = INCBIN_U32("graphics/pokemon/cyndaquil/normal.gbapal.lz"); + const u32 gMonBackPic_Cyndaquil[] = INCBIN_U32("graphics/pokemon/cyndaquil/back.4bpp.lz"); + const u32 gMonShinyPalette_Cyndaquil[] = INCBIN_U32("graphics/pokemon/cyndaquil/shiny.gbapal.lz"); + const u8 gMonIcon_Cyndaquil[] = INCBIN_U8("graphics/pokemon/cyndaquil/icon.4bpp"); + const u8 gMonFootprint_Cyndaquil[] = INCBIN_U8("graphics/pokemon/cyndaquil/footprint.1bpp"); + + const u32 gMonFrontPic_Quilava[] = INCBIN_U32("graphics/pokemon/quilava/anim_front.4bpp.lz"); + const u32 gMonPalette_Quilava[] = INCBIN_U32("graphics/pokemon/quilava/normal.gbapal.lz"); + const u32 gMonBackPic_Quilava[] = INCBIN_U32("graphics/pokemon/quilava/back.4bpp.lz"); + const u32 gMonShinyPalette_Quilava[] = INCBIN_U32("graphics/pokemon/quilava/shiny.gbapal.lz"); + const u8 gMonIcon_Quilava[] = INCBIN_U8("graphics/pokemon/quilava/icon.4bpp"); + const u8 gMonFootprint_Quilava[] = INCBIN_U8("graphics/pokemon/quilava/footprint.1bpp"); + + const u32 gMonFrontPic_Typhlosion[] = INCBIN_U32("graphics/pokemon/typhlosion/anim_front.4bpp.lz"); + const u32 gMonPalette_Typhlosion[] = INCBIN_U32("graphics/pokemon/typhlosion/normal.gbapal.lz"); + const u32 gMonBackPic_Typhlosion[] = INCBIN_U32("graphics/pokemon/typhlosion/back.4bpp.lz"); + const u32 gMonShinyPalette_Typhlosion[] = INCBIN_U32("graphics/pokemon/typhlosion/shiny.gbapal.lz"); + const u8 gMonIcon_Typhlosion[] = INCBIN_U8("graphics/pokemon/typhlosion/icon.4bpp"); + const u8 gMonFootprint_Typhlosion[] = INCBIN_U8("graphics/pokemon/typhlosion/footprint.1bpp"); + +#if P_HISUIAN_FORMS + const u32 gMonFrontPic_TyphlosionHisuian[] = INCBIN_U32("graphics/pokemon/typhlosion/hisuian/front.4bpp.lz"); + const u32 gMonPalette_TyphlosionHisuian[] = INCBIN_U32("graphics/pokemon/typhlosion/hisuian/normal.gbapal.lz"); + const u32 gMonBackPic_TyphlosionHisuian[] = INCBIN_U32("graphics/pokemon/typhlosion/hisuian/back.4bpp.lz"); + const u32 gMonShinyPalette_TyphlosionHisuian[] = INCBIN_U32("graphics/pokemon/typhlosion/hisuian/shiny.gbapal.lz"); + const u8 gMonIcon_TyphlosionHisuian[] = INCBIN_U8("graphics/pokemon/typhlosion/hisuian/icon.4bpp"); +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_CYNDAQUIL + +#if P_FAMILY_TOTODILE + const u32 gMonFrontPic_Totodile[] = INCBIN_U32("graphics/pokemon/totodile/anim_front.4bpp.lz"); + const u32 gMonPalette_Totodile[] = INCBIN_U32("graphics/pokemon/totodile/normal.gbapal.lz"); + const u32 gMonBackPic_Totodile[] = INCBIN_U32("graphics/pokemon/totodile/back.4bpp.lz"); + const u32 gMonShinyPalette_Totodile[] = INCBIN_U32("graphics/pokemon/totodile/shiny.gbapal.lz"); + const u8 gMonIcon_Totodile[] = INCBIN_U8("graphics/pokemon/totodile/icon.4bpp"); + const u8 gMonFootprint_Totodile[] = INCBIN_U8("graphics/pokemon/totodile/footprint.1bpp"); + + const u32 gMonFrontPic_Croconaw[] = INCBIN_U32("graphics/pokemon/croconaw/anim_front.4bpp.lz"); + const u32 gMonPalette_Croconaw[] = INCBIN_U32("graphics/pokemon/croconaw/normal.gbapal.lz"); + const u32 gMonBackPic_Croconaw[] = INCBIN_U32("graphics/pokemon/croconaw/back.4bpp.lz"); + const u32 gMonShinyPalette_Croconaw[] = INCBIN_U32("graphics/pokemon/croconaw/shiny.gbapal.lz"); + const u8 gMonIcon_Croconaw[] = INCBIN_U8("graphics/pokemon/croconaw/icon.4bpp"); + const u8 gMonFootprint_Croconaw[] = INCBIN_U8("graphics/pokemon/croconaw/footprint.1bpp"); + + const u32 gMonFrontPic_Feraligatr[] = INCBIN_U32("graphics/pokemon/feraligatr/anim_front.4bpp.lz"); + const u32 gMonPalette_Feraligatr[] = INCBIN_U32("graphics/pokemon/feraligatr/normal.gbapal.lz"); + const u32 gMonBackPic_Feraligatr[] = INCBIN_U32("graphics/pokemon/feraligatr/back.4bpp.lz"); + const u32 gMonShinyPalette_Feraligatr[] = INCBIN_U32("graphics/pokemon/feraligatr/shiny.gbapal.lz"); + const u8 gMonIcon_Feraligatr[] = INCBIN_U8("graphics/pokemon/feraligatr/icon.4bpp"); + const u8 gMonFootprint_Feraligatr[] = INCBIN_U8("graphics/pokemon/feraligatr/footprint.1bpp"); +#endif //P_FAMILY_TOTODILE + +#if P_FAMILY_SENTRET + const u32 gMonFrontPic_Sentret[] = INCBIN_U32("graphics/pokemon/sentret/anim_front.4bpp.lz"); + const u32 gMonPalette_Sentret[] = INCBIN_U32("graphics/pokemon/sentret/normal.gbapal.lz"); + const u32 gMonBackPic_Sentret[] = INCBIN_U32("graphics/pokemon/sentret/back.4bpp.lz"); + const u32 gMonShinyPalette_Sentret[] = INCBIN_U32("graphics/pokemon/sentret/shiny.gbapal.lz"); + const u8 gMonIcon_Sentret[] = INCBIN_U8("graphics/pokemon/sentret/icon.4bpp"); + const u8 gMonFootprint_Sentret[] = INCBIN_U8("graphics/pokemon/sentret/footprint.1bpp"); + + const u32 gMonFrontPic_Furret[] = INCBIN_U32("graphics/pokemon/furret/anim_front.4bpp.lz"); + const u32 gMonPalette_Furret[] = INCBIN_U32("graphics/pokemon/furret/normal.gbapal.lz"); + const u32 gMonBackPic_Furret[] = INCBIN_U32("graphics/pokemon/furret/back.4bpp.lz"); + const u32 gMonShinyPalette_Furret[] = INCBIN_U32("graphics/pokemon/furret/shiny.gbapal.lz"); + const u8 gMonIcon_Furret[] = INCBIN_U8("graphics/pokemon/furret/icon.4bpp"); + const u8 gMonFootprint_Furret[] = INCBIN_U8("graphics/pokemon/furret/footprint.1bpp"); +#endif //P_FAMILY_SENTRET + +#if P_FAMILY_HOOTHOOT + const u32 gMonFrontPic_Hoothoot[] = INCBIN_U32("graphics/pokemon/hoothoot/anim_front.4bpp.lz"); + const u32 gMonPalette_Hoothoot[] = INCBIN_U32("graphics/pokemon/hoothoot/normal.gbapal.lz"); + const u32 gMonBackPic_Hoothoot[] = INCBIN_U32("graphics/pokemon/hoothoot/back.4bpp.lz"); + const u32 gMonShinyPalette_Hoothoot[] = INCBIN_U32("graphics/pokemon/hoothoot/shiny.gbapal.lz"); + const u8 gMonIcon_Hoothoot[] = INCBIN_U8("graphics/pokemon/hoothoot/icon.4bpp"); + const u8 gMonFootprint_Hoothoot[] = INCBIN_U8("graphics/pokemon/hoothoot/footprint.1bpp"); + + const u32 gMonFrontPic_Noctowl[] = INCBIN_U32("graphics/pokemon/noctowl/anim_front.4bpp.lz"); + const u32 gMonPalette_Noctowl[] = INCBIN_U32("graphics/pokemon/noctowl/normal.gbapal.lz"); + const u32 gMonBackPic_Noctowl[] = INCBIN_U32("graphics/pokemon/noctowl/back.4bpp.lz"); + const u32 gMonShinyPalette_Noctowl[] = INCBIN_U32("graphics/pokemon/noctowl/shiny.gbapal.lz"); + const u8 gMonIcon_Noctowl[] = INCBIN_U8("graphics/pokemon/noctowl/icon.4bpp"); + const u8 gMonFootprint_Noctowl[] = INCBIN_U8("graphics/pokemon/noctowl/footprint.1bpp"); +#endif //P_FAMILY_HOOTHOOT + +#if P_FAMILY_LEDYBA + const u32 gMonFrontPic_Ledyba[] = INCBIN_U32("graphics/pokemon/ledyba/anim_front.4bpp.lz"); + const u32 gMonPalette_Ledyba[] = INCBIN_U32("graphics/pokemon/ledyba/normal.gbapal.lz"); + const u32 gMonBackPic_Ledyba[] = INCBIN_U32("graphics/pokemon/ledyba/back.4bpp.lz"); + const u32 gMonShinyPalette_Ledyba[] = INCBIN_U32("graphics/pokemon/ledyba/shiny.gbapal.lz"); + const u8 gMonIcon_Ledyba[] = INCBIN_U8("graphics/pokemon/ledyba/icon.4bpp"); + const u8 gMonFootprint_Ledyba[] = INCBIN_U8("graphics/pokemon/ledyba/footprint.1bpp"); + + const u32 gMonFrontPic_LedybaF[] = INCBIN_U32("graphics/pokemon/ledyba/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_LedybaF[] = INCBIN_U32("graphics/pokemon/ledyba/backf.4bpp.lz"); + + const u32 gMonFrontPic_Ledian[] = INCBIN_U32("graphics/pokemon/ledian/anim_front.4bpp.lz"); + const u32 gMonPalette_Ledian[] = INCBIN_U32("graphics/pokemon/ledian/normal.gbapal.lz"); + const u32 gMonBackPic_Ledian[] = INCBIN_U32("graphics/pokemon/ledian/back.4bpp.lz"); + const u32 gMonShinyPalette_Ledian[] = INCBIN_U32("graphics/pokemon/ledian/shiny.gbapal.lz"); + const u8 gMonIcon_Ledian[] = INCBIN_U8("graphics/pokemon/ledian/icon.4bpp"); + const u8 gMonFootprint_Ledian[] = INCBIN_U8("graphics/pokemon/ledian/footprint.1bpp"); + + const u32 gMonFrontPic_LedianF[] = INCBIN_U32("graphics/pokemon/ledian/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_LedianF[] = INCBIN_U32("graphics/pokemon/ledian/backf.4bpp.lz"); +#endif //P_FAMILY_LEDYBA + +#if P_FAMILY_SPINARAK + const u32 gMonFrontPic_Spinarak[] = INCBIN_U32("graphics/pokemon/spinarak/anim_front.4bpp.lz"); + const u32 gMonPalette_Spinarak[] = INCBIN_U32("graphics/pokemon/spinarak/normal.gbapal.lz"); + const u32 gMonBackPic_Spinarak[] = INCBIN_U32("graphics/pokemon/spinarak/back.4bpp.lz"); + const u32 gMonShinyPalette_Spinarak[] = INCBIN_U32("graphics/pokemon/spinarak/shiny.gbapal.lz"); + const u8 gMonIcon_Spinarak[] = INCBIN_U8("graphics/pokemon/spinarak/icon.4bpp"); + const u8 gMonFootprint_Spinarak[] = INCBIN_U8("graphics/pokemon/spinarak/footprint.1bpp"); + + const u32 gMonFrontPic_Ariados[] = INCBIN_U32("graphics/pokemon/ariados/anim_front.4bpp.lz"); + const u32 gMonPalette_Ariados[] = INCBIN_U32("graphics/pokemon/ariados/normal.gbapal.lz"); + const u32 gMonBackPic_Ariados[] = INCBIN_U32("graphics/pokemon/ariados/back.4bpp.lz"); + const u32 gMonShinyPalette_Ariados[] = INCBIN_U32("graphics/pokemon/ariados/shiny.gbapal.lz"); + const u8 gMonIcon_Ariados[] = INCBIN_U8("graphics/pokemon/ariados/icon.4bpp"); + const u8 gMonFootprint_Ariados[] = INCBIN_U8("graphics/pokemon/ariados/footprint.1bpp"); +#endif //P_FAMILY_SPINARAK + +#if P_FAMILY_CHINCHOU + const u32 gMonFrontPic_Chinchou[] = INCBIN_U32("graphics/pokemon/chinchou/anim_front.4bpp.lz"); + const u32 gMonPalette_Chinchou[] = INCBIN_U32("graphics/pokemon/chinchou/normal.gbapal.lz"); + const u32 gMonBackPic_Chinchou[] = INCBIN_U32("graphics/pokemon/chinchou/back.4bpp.lz"); + const u32 gMonShinyPalette_Chinchou[] = INCBIN_U32("graphics/pokemon/chinchou/shiny.gbapal.lz"); + const u8 gMonIcon_Chinchou[] = INCBIN_U8("graphics/pokemon/chinchou/icon.4bpp"); + const u8 gMonFootprint_Chinchou[] = INCBIN_U8("graphics/pokemon/chinchou/footprint.1bpp"); + + const u32 gMonFrontPic_Lanturn[] = INCBIN_U32("graphics/pokemon/lanturn/anim_front.4bpp.lz"); + const u32 gMonPalette_Lanturn[] = INCBIN_U32("graphics/pokemon/lanturn/normal.gbapal.lz"); + const u32 gMonBackPic_Lanturn[] = INCBIN_U32("graphics/pokemon/lanturn/back.4bpp.lz"); + const u32 gMonShinyPalette_Lanturn[] = INCBIN_U32("graphics/pokemon/lanturn/shiny.gbapal.lz"); + const u8 gMonIcon_Lanturn[] = INCBIN_U8("graphics/pokemon/lanturn/icon.4bpp"); + const u8 gMonFootprint_Lanturn[] = INCBIN_U8("graphics/pokemon/lanturn/footprint.1bpp"); +#endif //P_FAMILY_CHINCHOU + +#if P_FAMILY_TOGEPI + const u32 gMonFrontPic_Togepi[] = INCBIN_U32("graphics/pokemon/togepi/anim_front.4bpp.lz"); + const u32 gMonPalette_Togepi[] = INCBIN_U32("graphics/pokemon/togepi/normal.gbapal.lz"); + const u32 gMonBackPic_Togepi[] = INCBIN_U32("graphics/pokemon/togepi/back.4bpp.lz"); + const u32 gMonShinyPalette_Togepi[] = INCBIN_U32("graphics/pokemon/togepi/shiny.gbapal.lz"); + const u8 gMonIcon_Togepi[] = INCBIN_U8("graphics/pokemon/togepi/icon.4bpp"); + const u8 gMonFootprint_Togepi[] = INCBIN_U8("graphics/pokemon/togepi/footprint.1bpp"); + + const u32 gMonFrontPic_Togetic[] = INCBIN_U32("graphics/pokemon/togetic/anim_front.4bpp.lz"); + const u32 gMonPalette_Togetic[] = INCBIN_U32("graphics/pokemon/togetic/normal.gbapal.lz"); + const u32 gMonBackPic_Togetic[] = INCBIN_U32("graphics/pokemon/togetic/back.4bpp.lz"); + const u32 gMonShinyPalette_Togetic[] = INCBIN_U32("graphics/pokemon/togetic/shiny.gbapal.lz"); + const u8 gMonIcon_Togetic[] = INCBIN_U8("graphics/pokemon/togetic/icon.4bpp"); + const u8 gMonFootprint_Togetic[] = INCBIN_U8("graphics/pokemon/togetic/footprint.1bpp"); + +#if P_GEN_4_CROSS_EVOS + const u32 gMonFrontPic_Togekiss[] = INCBIN_U32("graphics/pokemon/togekiss/anim_front.4bpp.lz"); + const u32 gMonPalette_Togekiss[] = INCBIN_U32("graphics/pokemon/togekiss/normal.gbapal.lz"); + const u32 gMonBackPic_Togekiss[] = INCBIN_U32("graphics/pokemon/togekiss/back.4bpp.lz"); + const u32 gMonShinyPalette_Togekiss[] = INCBIN_U32("graphics/pokemon/togekiss/shiny.gbapal.lz"); + const u8 gMonIcon_Togekiss[] = INCBIN_U8("graphics/pokemon/togekiss/icon.4bpp"); + const u8 gMonFootprint_Togekiss[] = INCBIN_U8("graphics/pokemon/togekiss/footprint.1bpp"); +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_TOGEPI + +#if P_FAMILY_NATU + const u32 gMonFrontPic_Natu[] = INCBIN_U32("graphics/pokemon/natu/anim_front.4bpp.lz"); + const u32 gMonPalette_Natu[] = INCBIN_U32("graphics/pokemon/natu/normal.gbapal.lz"); + const u32 gMonBackPic_Natu[] = INCBIN_U32("graphics/pokemon/natu/back.4bpp.lz"); + const u32 gMonShinyPalette_Natu[] = INCBIN_U32("graphics/pokemon/natu/shiny.gbapal.lz"); + const u8 gMonIcon_Natu[] = INCBIN_U8("graphics/pokemon/natu/icon.4bpp"); + const u8 gMonFootprint_Natu[] = INCBIN_U8("graphics/pokemon/natu/footprint.1bpp"); + + const u32 gMonFrontPic_Xatu[] = INCBIN_U32("graphics/pokemon/xatu/anim_front.4bpp.lz"); + const u32 gMonPalette_Xatu[] = INCBIN_U32("graphics/pokemon/xatu/normal.gbapal.lz"); + const u32 gMonBackPic_Xatu[] = INCBIN_U32("graphics/pokemon/xatu/back.4bpp.lz"); + const u32 gMonShinyPalette_Xatu[] = INCBIN_U32("graphics/pokemon/xatu/shiny.gbapal.lz"); + const u8 gMonIcon_Xatu[] = INCBIN_U8("graphics/pokemon/xatu/icon.4bpp"); + const u8 gMonFootprint_Xatu[] = INCBIN_U8("graphics/pokemon/xatu/footprint.1bpp"); + + const u32 gMonFrontPic_XatuF[] = INCBIN_U32("graphics/pokemon/xatu/anim_frontf.4bpp.lz"); +#endif //P_FAMILY_NATU + +#if P_FAMILY_MAREEP + const u32 gMonFrontPic_Mareep[] = INCBIN_U32("graphics/pokemon/mareep/anim_front.4bpp.lz"); + const u32 gMonPalette_Mareep[] = INCBIN_U32("graphics/pokemon/mareep/normal.gbapal.lz"); + const u32 gMonBackPic_Mareep[] = INCBIN_U32("graphics/pokemon/mareep/back.4bpp.lz"); + const u32 gMonShinyPalette_Mareep[] = INCBIN_U32("graphics/pokemon/mareep/shiny.gbapal.lz"); + const u8 gMonIcon_Mareep[] = INCBIN_U8("graphics/pokemon/mareep/icon.4bpp"); + const u8 gMonFootprint_Mareep[] = INCBIN_U8("graphics/pokemon/mareep/footprint.1bpp"); + + const u32 gMonFrontPic_Flaaffy[] = INCBIN_U32("graphics/pokemon/flaaffy/anim_front.4bpp.lz"); + const u32 gMonPalette_Flaaffy[] = INCBIN_U32("graphics/pokemon/flaaffy/normal.gbapal.lz"); + const u32 gMonBackPic_Flaaffy[] = INCBIN_U32("graphics/pokemon/flaaffy/back.4bpp.lz"); + const u32 gMonShinyPalette_Flaaffy[] = INCBIN_U32("graphics/pokemon/flaaffy/shiny.gbapal.lz"); + const u8 gMonIcon_Flaaffy[] = INCBIN_U8("graphics/pokemon/flaaffy/icon.4bpp"); + const u8 gMonFootprint_Flaaffy[] = INCBIN_U8("graphics/pokemon/flaaffy/footprint.1bpp"); + + const u32 gMonFrontPic_Ampharos[] = INCBIN_U32("graphics/pokemon/ampharos/anim_front.4bpp.lz"); + const u32 gMonPalette_Ampharos[] = INCBIN_U32("graphics/pokemon/ampharos/normal.gbapal.lz"); + const u32 gMonBackPic_Ampharos[] = INCBIN_U32("graphics/pokemon/ampharos/back.4bpp.lz"); + const u32 gMonShinyPalette_Ampharos[] = INCBIN_U32("graphics/pokemon/ampharos/shiny.gbapal.lz"); + const u8 gMonIcon_Ampharos[] = INCBIN_U8("graphics/pokemon/ampharos/icon.4bpp"); + const u8 gMonFootprint_Ampharos[] = INCBIN_U8("graphics/pokemon/ampharos/footprint.1bpp"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_AmpharosMega[] = INCBIN_U32("graphics/pokemon/ampharos/mega/front.4bpp.lz"); + const u32 gMonPalette_AmpharosMega[] = INCBIN_U32("graphics/pokemon/ampharos/mega/normal.gbapal.lz"); + const u32 gMonBackPic_AmpharosMega[] = INCBIN_U32("graphics/pokemon/ampharos/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_AmpharosMega[] = INCBIN_U32("graphics/pokemon/ampharos/mega/shiny.gbapal.lz"); + const u8 gMonIcon_AmpharosMega[] = INCBIN_U8("graphics/pokemon/ampharos/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_MAREEP + +#if P_FAMILY_MARILL +#if P_GEN_3_CROSS_EVOS + const u32 gMonFrontPic_Azurill[] = INCBIN_U32("graphics/pokemon/azurill/anim_front.4bpp.lz"); + const u32 gMonPalette_Azurill[] = INCBIN_U32("graphics/pokemon/azurill/normal.gbapal.lz"); + const u32 gMonBackPic_Azurill[] = INCBIN_U32("graphics/pokemon/azurill/back.4bpp.lz"); + const u32 gMonShinyPalette_Azurill[] = INCBIN_U32("graphics/pokemon/azurill/shiny.gbapal.lz"); + const u8 gMonIcon_Azurill[] = INCBIN_U8("graphics/pokemon/azurill/icon.4bpp"); + const u8 gMonFootprint_Azurill[] = INCBIN_U8("graphics/pokemon/azurill/footprint.1bpp"); +#endif //P_GEN_3_CROSS_EVOS + + const u32 gMonFrontPic_Marill[] = INCBIN_U32("graphics/pokemon/marill/anim_front.4bpp.lz"); + const u32 gMonPalette_Marill[] = INCBIN_U32("graphics/pokemon/marill/normal.gbapal.lz"); + const u32 gMonBackPic_Marill[] = INCBIN_U32("graphics/pokemon/marill/back.4bpp.lz"); + const u32 gMonShinyPalette_Marill[] = INCBIN_U32("graphics/pokemon/marill/shiny.gbapal.lz"); + const u8 gMonIcon_Marill[] = INCBIN_U8("graphics/pokemon/marill/icon.4bpp"); + const u8 gMonFootprint_Marill[] = INCBIN_U8("graphics/pokemon/marill/footprint.1bpp"); + + const u32 gMonFrontPic_Azumarill[] = INCBIN_U32("graphics/pokemon/azumarill/anim_front.4bpp.lz"); + const u32 gMonPalette_Azumarill[] = INCBIN_U32("graphics/pokemon/azumarill/normal.gbapal.lz"); + const u32 gMonBackPic_Azumarill[] = INCBIN_U32("graphics/pokemon/azumarill/back.4bpp.lz"); + const u32 gMonShinyPalette_Azumarill[] = INCBIN_U32("graphics/pokemon/azumarill/shiny.gbapal.lz"); + const u8 gMonIcon_Azumarill[] = INCBIN_U8("graphics/pokemon/azumarill/icon.4bpp"); + const u8 gMonFootprint_Azumarill[] = INCBIN_U8("graphics/pokemon/azumarill/footprint.1bpp"); +#endif //P_FAMILY_MARILL + +#if P_FAMILY_SUDOWOODO +#if P_GEN_4_CROSS_EVOS + const u32 gMonFrontPic_Bonsly[] = INCBIN_U32("graphics/pokemon/bonsly/anim_front.4bpp.lz"); + const u32 gMonPalette_Bonsly[] = INCBIN_U32("graphics/pokemon/bonsly/normal.gbapal.lz"); + const u32 gMonBackPic_Bonsly[] = INCBIN_U32("graphics/pokemon/bonsly/back.4bpp.lz"); + const u32 gMonShinyPalette_Bonsly[] = INCBIN_U32("graphics/pokemon/bonsly/shiny.gbapal.lz"); + const u8 gMonIcon_Bonsly[] = INCBIN_U8("graphics/pokemon/bonsly/icon.4bpp"); + const u8 gMonFootprint_Bonsly[] = INCBIN_U8("graphics/pokemon/bonsly/footprint.1bpp"); +#endif //P_GEN_4_CROSS_EVOS + + const u32 gMonFrontPic_Sudowoodo[] = INCBIN_U32("graphics/pokemon/sudowoodo/anim_front.4bpp.lz"); + const u32 gMonPalette_Sudowoodo[] = INCBIN_U32("graphics/pokemon/sudowoodo/normal.gbapal.lz"); + const u32 gMonBackPic_Sudowoodo[] = INCBIN_U32("graphics/pokemon/sudowoodo/back.4bpp.lz"); + const u32 gMonShinyPalette_Sudowoodo[] = INCBIN_U32("graphics/pokemon/sudowoodo/shiny.gbapal.lz"); + const u8 gMonIcon_Sudowoodo[] = INCBIN_U8("graphics/pokemon/sudowoodo/icon.4bpp"); + const u8 gMonFootprint_Sudowoodo[] = INCBIN_U8("graphics/pokemon/sudowoodo/footprint.1bpp"); + + const u32 gMonFrontPic_SudowoodoF[] = INCBIN_U32("graphics/pokemon/sudowoodo/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_SudowoodoF[] = INCBIN_U32("graphics/pokemon/sudowoodo/backf.4bpp.lz"); +#endif //P_FAMILY_SUDOWOODO + +#if P_FAMILY_HOPPIP + const u32 gMonFrontPic_Hoppip[] = INCBIN_U32("graphics/pokemon/hoppip/anim_front.4bpp.lz"); + const u32 gMonPalette_Hoppip[] = INCBIN_U32("graphics/pokemon/hoppip/normal.gbapal.lz"); + const u32 gMonBackPic_Hoppip[] = INCBIN_U32("graphics/pokemon/hoppip/back.4bpp.lz"); + const u32 gMonShinyPalette_Hoppip[] = INCBIN_U32("graphics/pokemon/hoppip/shiny.gbapal.lz"); + const u8 gMonIcon_Hoppip[] = INCBIN_U8("graphics/pokemon/hoppip/icon.4bpp"); + const u8 gMonFootprint_Hoppip[] = INCBIN_U8("graphics/pokemon/hoppip/footprint.1bpp"); + + const u32 gMonFrontPic_Skiploom[] = INCBIN_U32("graphics/pokemon/skiploom/anim_front.4bpp.lz"); + const u32 gMonPalette_Skiploom[] = INCBIN_U32("graphics/pokemon/skiploom/normal.gbapal.lz"); + const u32 gMonBackPic_Skiploom[] = INCBIN_U32("graphics/pokemon/skiploom/back.4bpp.lz"); + const u32 gMonShinyPalette_Skiploom[] = INCBIN_U32("graphics/pokemon/skiploom/shiny.gbapal.lz"); + const u8 gMonIcon_Skiploom[] = INCBIN_U8("graphics/pokemon/skiploom/icon.4bpp"); + const u8 gMonFootprint_Skiploom[] = INCBIN_U8("graphics/pokemon/skiploom/footprint.1bpp"); + + const u32 gMonFrontPic_Jumpluff[] = INCBIN_U32("graphics/pokemon/jumpluff/anim_front.4bpp.lz"); + const u32 gMonPalette_Jumpluff[] = INCBIN_U32("graphics/pokemon/jumpluff/normal.gbapal.lz"); + const u32 gMonBackPic_Jumpluff[] = INCBIN_U32("graphics/pokemon/jumpluff/back.4bpp.lz"); + const u32 gMonShinyPalette_Jumpluff[] = INCBIN_U32("graphics/pokemon/jumpluff/shiny.gbapal.lz"); + const u8 gMonIcon_Jumpluff[] = INCBIN_U8("graphics/pokemon/jumpluff/icon.4bpp"); + const u8 gMonFootprint_Jumpluff[] = INCBIN_U8("graphics/pokemon/jumpluff/footprint.1bpp"); +#endif //P_FAMILY_HOPPIP + +#if P_FAMILY_AIPOM + const u32 gMonFrontPic_Aipom[] = INCBIN_U32("graphics/pokemon/aipom/anim_front.4bpp.lz"); + const u32 gMonPalette_Aipom[] = INCBIN_U32("graphics/pokemon/aipom/normal.gbapal.lz"); + const u32 gMonBackPic_Aipom[] = INCBIN_U32("graphics/pokemon/aipom/back.4bpp.lz"); + const u32 gMonShinyPalette_Aipom[] = INCBIN_U32("graphics/pokemon/aipom/shiny.gbapal.lz"); + const u8 gMonIcon_Aipom[] = INCBIN_U8("graphics/pokemon/aipom/icon.4bpp"); + const u8 gMonFootprint_Aipom[] = INCBIN_U8("graphics/pokemon/aipom/footprint.1bpp"); + + const u32 gMonFrontPic_AipomF[] = INCBIN_U32("graphics/pokemon/aipom/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_AipomF[] = INCBIN_U32("graphics/pokemon/aipom/backf.4bpp.lz"); + +#if P_GEN_4_CROSS_EVOS + const u32 gMonFrontPic_Ambipom[] = INCBIN_U32("graphics/pokemon/ambipom/anim_front.4bpp.lz"); + const u32 gMonPalette_Ambipom[] = INCBIN_U32("graphics/pokemon/ambipom/normal.gbapal.lz"); + const u32 gMonBackPic_Ambipom[] = INCBIN_U32("graphics/pokemon/ambipom/back.4bpp.lz"); + const u32 gMonShinyPalette_Ambipom[] = INCBIN_U32("graphics/pokemon/ambipom/shiny.gbapal.lz"); + const u8 gMonIcon_Ambipom[] = INCBIN_U8("graphics/pokemon/ambipom/icon.4bpp"); + const u8 gMonFootprint_Ambipom[] = INCBIN_U8("graphics/pokemon/ambipom/footprint.1bpp"); + + const u32 gMonFrontPic_AmbipomF[] = INCBIN_U32("graphics/pokemon/ambipom/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_AmbipomF[] = INCBIN_U32("graphics/pokemon/ambipom/backf.4bpp.lz"); +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_AIPOM + +#if P_FAMILY_SUNKERN + const u32 gMonFrontPic_Sunkern[] = INCBIN_U32("graphics/pokemon/sunkern/anim_front.4bpp.lz"); + const u32 gMonPalette_Sunkern[] = INCBIN_U32("graphics/pokemon/sunkern/normal.gbapal.lz"); + const u32 gMonBackPic_Sunkern[] = INCBIN_U32("graphics/pokemon/sunkern/back.4bpp.lz"); + const u32 gMonShinyPalette_Sunkern[] = INCBIN_U32("graphics/pokemon/sunkern/shiny.gbapal.lz"); + const u8 gMonIcon_Sunkern[] = INCBIN_U8("graphics/pokemon/sunkern/icon.4bpp"); + const u8 gMonFootprint_Sunkern[] = INCBIN_U8("graphics/pokemon/sunkern/footprint.1bpp"); + + const u32 gMonFrontPic_Sunflora[] = INCBIN_U32("graphics/pokemon/sunflora/anim_front.4bpp.lz"); + const u32 gMonPalette_Sunflora[] = INCBIN_U32("graphics/pokemon/sunflora/normal.gbapal.lz"); + const u32 gMonBackPic_Sunflora[] = INCBIN_U32("graphics/pokemon/sunflora/back.4bpp.lz"); + const u32 gMonShinyPalette_Sunflora[] = INCBIN_U32("graphics/pokemon/sunflora/shiny.gbapal.lz"); + const u8 gMonIcon_Sunflora[] = INCBIN_U8("graphics/pokemon/sunflora/icon.4bpp"); + const u8 gMonFootprint_Sunflora[] = INCBIN_U8("graphics/pokemon/sunflora/footprint.1bpp"); +#endif //P_FAMILY_SUNKERN + +#if P_FAMILY_YANMA + const u32 gMonFrontPic_Yanma[] = INCBIN_U32("graphics/pokemon/yanma/anim_front.4bpp.lz"); + const u32 gMonPalette_Yanma[] = INCBIN_U32("graphics/pokemon/yanma/normal.gbapal.lz"); + const u32 gMonBackPic_Yanma[] = INCBIN_U32("graphics/pokemon/yanma/back.4bpp.lz"); + const u32 gMonShinyPalette_Yanma[] = INCBIN_U32("graphics/pokemon/yanma/shiny.gbapal.lz"); + const u8 gMonIcon_Yanma[] = INCBIN_U8("graphics/pokemon/yanma/icon.4bpp"); + const u8 gMonFootprint_Yanma[] = INCBIN_U8("graphics/pokemon/yanma/footprint.1bpp"); + +#if P_GEN_4_CROSS_EVOS + const u32 gMonFrontPic_Yanmega[] = INCBIN_U32("graphics/pokemon/yanmega/anim_front.4bpp.lz"); + const u32 gMonPalette_Yanmega[] = INCBIN_U32("graphics/pokemon/yanmega/normal.gbapal.lz"); + const u32 gMonBackPic_Yanmega[] = INCBIN_U32("graphics/pokemon/yanmega/back.4bpp.lz"); + const u32 gMonShinyPalette_Yanmega[] = INCBIN_U32("graphics/pokemon/yanmega/shiny.gbapal.lz"); + const u8 gMonIcon_Yanmega[] = INCBIN_U8("graphics/pokemon/yanmega/icon.4bpp"); + const u8 gMonFootprint_Yanmega[] = INCBIN_U8("graphics/pokemon/yanmega/footprint.1bpp"); +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_YANMA + +#if P_FAMILY_WOOPER + const u32 gMonFrontPic_Wooper[] = INCBIN_U32("graphics/pokemon/wooper/anim_front.4bpp.lz"); + const u32 gMonPalette_Wooper[] = INCBIN_U32("graphics/pokemon/wooper/normal.gbapal.lz"); + const u32 gMonBackPic_Wooper[] = INCBIN_U32("graphics/pokemon/wooper/back.4bpp.lz"); + const u32 gMonShinyPalette_Wooper[] = INCBIN_U32("graphics/pokemon/wooper/shiny.gbapal.lz"); + const u8 gMonIcon_Wooper[] = INCBIN_U8("graphics/pokemon/wooper/icon.4bpp"); + const u8 gMonFootprint_Wooper[] = INCBIN_U8("graphics/pokemon/wooper/footprint.1bpp"); + + const u32 gMonFrontPic_WooperF[] = INCBIN_U32("graphics/pokemon/wooper/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_WooperF[] = INCBIN_U32("graphics/pokemon/wooper/backf.4bpp.lz"); + + const u32 gMonFrontPic_Quagsire[] = INCBIN_U32("graphics/pokemon/quagsire/anim_front.4bpp.lz"); + const u32 gMonPalette_Quagsire[] = INCBIN_U32("graphics/pokemon/quagsire/normal.gbapal.lz"); + const u32 gMonBackPic_Quagsire[] = INCBIN_U32("graphics/pokemon/quagsire/back.4bpp.lz"); + const u32 gMonShinyPalette_Quagsire[] = INCBIN_U32("graphics/pokemon/quagsire/shiny.gbapal.lz"); + const u8 gMonIcon_Quagsire[] = INCBIN_U8("graphics/pokemon/quagsire/icon.4bpp"); + const u8 gMonFootprint_Quagsire[] = INCBIN_U8("graphics/pokemon/quagsire/footprint.1bpp"); + + const u32 gMonFrontPic_QuagsireF[] = INCBIN_U32("graphics/pokemon/quagsire/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_QuagsireF[] = INCBIN_U32("graphics/pokemon/quagsire/backf.4bpp.lz"); + +#if P_PALDEAN_FORMS + const u32 gMonFrontPic_WooperPaldean[] = INCBIN_U32("graphics/pokemon/wooper/wooper_paldea/front.4bpp.lz"); + const u32 gMonPalette_WooperPaldean[] = INCBIN_U32("graphics/pokemon/wooper/wooper_paldea/normal.gbapal.lz"); + const u32 gMonBackPic_WooperPaldean[] = INCBIN_U32("graphics/pokemon/wooper/wooper_paldea/back.4bpp.lz"); + const u32 gMonShinyPalette_WooperPaldean[] = INCBIN_U32("graphics/pokemon/wooper/wooper_paldea/shiny.gbapal.lz"); + // const u8 gMonIcon_WooperPaldean[] = INCBIN_U8("graphics/pokemon/wooper/wooper_paldea/icon.4bpp"); + + const u32 gMonFrontPic_Clodsire[] = INCBIN_U32("graphics/pokemon/clodsire/front.4bpp.lz"); + const u32 gMonPalette_Clodsire[] = INCBIN_U32("graphics/pokemon/clodsire/normal.gbapal.lz"); + const u32 gMonBackPic_Clodsire[] = INCBIN_U32("graphics/pokemon/clodsire/back.4bpp.lz"); + const u32 gMonShinyPalette_Clodsire[] = INCBIN_U32("graphics/pokemon/clodsire/shiny.gbapal.lz"); + const u8 gMonIcon_Clodsire[] = INCBIN_U8("graphics/pokemon/clodsire/icon.4bpp"); + // const u8 gMonFootprint_Clodsire[] = INCBIN_U8("graphics/pokemon/clodsire/footprint.1bpp"); +#endif //P_PALDEAN_FORMS +#endif //P_FAMILY_WOOPER + +#if P_FAMILY_MURKROW + const u32 gMonFrontPic_Murkrow[] = INCBIN_U32("graphics/pokemon/murkrow/anim_front.4bpp.lz"); + const u32 gMonPalette_Murkrow[] = INCBIN_U32("graphics/pokemon/murkrow/normal.gbapal.lz"); + const u32 gMonBackPic_Murkrow[] = INCBIN_U32("graphics/pokemon/murkrow/back.4bpp.lz"); + const u32 gMonShinyPalette_Murkrow[] = INCBIN_U32("graphics/pokemon/murkrow/shiny.gbapal.lz"); + const u8 gMonIcon_Murkrow[] = INCBIN_U8("graphics/pokemon/murkrow/icon.4bpp"); + const u8 gMonFootprint_Murkrow[] = INCBIN_U8("graphics/pokemon/murkrow/footprint.1bpp"); + + const u32 gMonFrontPic_MurkrowF[] = INCBIN_U32("graphics/pokemon/murkrow/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_MurkrowF[] = INCBIN_U32("graphics/pokemon/murkrow/backf.4bpp.lz"); + +#if P_GEN_4_CROSS_EVOS + const u32 gMonFrontPic_Honchkrow[] = INCBIN_U32("graphics/pokemon/honchkrow/anim_front.4bpp.lz"); + const u32 gMonPalette_Honchkrow[] = INCBIN_U32("graphics/pokemon/honchkrow/normal.gbapal.lz"); + const u32 gMonBackPic_Honchkrow[] = INCBIN_U32("graphics/pokemon/honchkrow/back.4bpp.lz"); + const u32 gMonShinyPalette_Honchkrow[] = INCBIN_U32("graphics/pokemon/honchkrow/shiny.gbapal.lz"); + const u8 gMonIcon_Honchkrow[] = INCBIN_U8("graphics/pokemon/honchkrow/icon.4bpp"); + const u8 gMonFootprint_Honchkrow[] = INCBIN_U8("graphics/pokemon/honchkrow/footprint.1bpp"); +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MURKROW + +#if P_FAMILY_MISDREAVUS + const u32 gMonFrontPic_Misdreavus[] = INCBIN_U32("graphics/pokemon/misdreavus/anim_front.4bpp.lz"); + const u32 gMonPalette_Misdreavus[] = INCBIN_U32("graphics/pokemon/misdreavus/normal.gbapal.lz"); + const u32 gMonBackPic_Misdreavus[] = INCBIN_U32("graphics/pokemon/misdreavus/back.4bpp.lz"); + const u32 gMonShinyPalette_Misdreavus[] = INCBIN_U32("graphics/pokemon/misdreavus/shiny.gbapal.lz"); + const u8 gMonIcon_Misdreavus[] = INCBIN_U8("graphics/pokemon/misdreavus/icon.4bpp"); + const u8 gMonFootprint_Misdreavus[] = INCBIN_U8("graphics/pokemon/misdreavus/footprint.1bpp"); + +#if P_GEN_4_CROSS_EVOS + const u32 gMonFrontPic_Mismagius[] = INCBIN_U32("graphics/pokemon/mismagius/anim_front.4bpp.lz"); + const u32 gMonPalette_Mismagius[] = INCBIN_U32("graphics/pokemon/mismagius/normal.gbapal.lz"); + const u32 gMonBackPic_Mismagius[] = INCBIN_U32("graphics/pokemon/mismagius/back.4bpp.lz"); + const u32 gMonShinyPalette_Mismagius[] = INCBIN_U32("graphics/pokemon/mismagius/shiny.gbapal.lz"); + const u8 gMonIcon_Mismagius[] = INCBIN_U8("graphics/pokemon/mismagius/icon.4bpp"); + const u8 gMonFootprint_Mismagius[] = INCBIN_U8("graphics/pokemon/mismagius/footprint.1bpp"); +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MISDREAVUS + +#if P_FAMILY_UNOWN + const u32 gMonPalette_Unown[] = INCBIN_U32("graphics/pokemon/unown/normal.gbapal.lz"); + const u32 gMonShinyPalette_Unown[] = INCBIN_U32("graphics/pokemon/unown/shiny.gbapal.lz"); + const u8 gMonFootprint_Unown[] = INCBIN_U8("graphics/pokemon/unown/footprint.1bpp"); + + const u32 gMonFrontPic_UnownA[] = INCBIN_U32("graphics/pokemon/unown/anim_front.4bpp.lz"); + const u32 gMonBackPic_UnownA[] = INCBIN_U32("graphics/pokemon/unown/back.4bpp.lz"); + const u8 gMonIcon_UnownA[] = INCBIN_U8("graphics/pokemon/unown/icon.4bpp"); + + const u32 gMonFrontPic_UnownB[] = INCBIN_U32("graphics/pokemon/unown/b/anim_front.4bpp.lz"); + const u32 gMonBackPic_UnownB[] = INCBIN_U32("graphics/pokemon/unown/b/back.4bpp.lz"); + const u8 gMonIcon_UnownB[] = INCBIN_U8("graphics/pokemon/unown/b/icon.4bpp"); + + const u32 gMonFrontPic_UnownC[] = INCBIN_U32("graphics/pokemon/unown/c/anim_front.4bpp.lz"); + const u32 gMonBackPic_UnownC[] = INCBIN_U32("graphics/pokemon/unown/c/back.4bpp.lz"); + const u8 gMonIcon_UnownC[] = INCBIN_U8("graphics/pokemon/unown/c/icon.4bpp"); + + const u32 gMonFrontPic_UnownD[] = INCBIN_U32("graphics/pokemon/unown/d/anim_front.4bpp.lz"); + const u32 gMonBackPic_UnownD[] = INCBIN_U32("graphics/pokemon/unown/d/back.4bpp.lz"); + const u8 gMonIcon_UnownD[] = INCBIN_U8("graphics/pokemon/unown/d/icon.4bpp"); + + const u32 gMonFrontPic_UnownE[] = INCBIN_U32("graphics/pokemon/unown/e/anim_front.4bpp.lz"); + const u32 gMonBackPic_UnownE[] = INCBIN_U32("graphics/pokemon/unown/e/back.4bpp.lz"); + const u8 gMonIcon_UnownE[] = INCBIN_U8("graphics/pokemon/unown/e/icon.4bpp"); + + const u32 gMonFrontPic_UnownF[] = INCBIN_U32("graphics/pokemon/unown/f/anim_front.4bpp.lz"); + const u32 gMonBackPic_UnownF[] = INCBIN_U32("graphics/pokemon/unown/f/back.4bpp.lz"); + const u8 gMonIcon_UnownF[] = INCBIN_U8("graphics/pokemon/unown/f/icon.4bpp"); + + const u32 gMonFrontPic_UnownG[] = INCBIN_U32("graphics/pokemon/unown/g/anim_front.4bpp.lz"); + const u32 gMonBackPic_UnownG[] = INCBIN_U32("graphics/pokemon/unown/g/back.4bpp.lz"); + const u8 gMonIcon_UnownG[] = INCBIN_U8("graphics/pokemon/unown/g/icon.4bpp"); + + const u32 gMonFrontPic_UnownH[] = INCBIN_U32("graphics/pokemon/unown/h/anim_front.4bpp.lz"); + const u32 gMonBackPic_UnownH[] = INCBIN_U32("graphics/pokemon/unown/h/back.4bpp.lz"); + const u8 gMonIcon_UnownH[] = INCBIN_U8("graphics/pokemon/unown/h/icon.4bpp"); + + const u32 gMonFrontPic_UnownI[] = INCBIN_U32("graphics/pokemon/unown/i/anim_front.4bpp.lz"); + const u32 gMonBackPic_UnownI[] = INCBIN_U32("graphics/pokemon/unown/i/back.4bpp.lz"); + const u8 gMonIcon_UnownI[] = INCBIN_U8("graphics/pokemon/unown/i/icon.4bpp"); + + const u32 gMonFrontPic_UnownJ[] = INCBIN_U32("graphics/pokemon/unown/j/anim_front.4bpp.lz"); + const u32 gMonBackPic_UnownJ[] = INCBIN_U32("graphics/pokemon/unown/j/back.4bpp.lz"); + const u8 gMonIcon_UnownJ[] = INCBIN_U8("graphics/pokemon/unown/j/icon.4bpp"); + + const u32 gMonFrontPic_UnownK[] = INCBIN_U32("graphics/pokemon/unown/k/anim_front.4bpp.lz"); + const u32 gMonBackPic_UnownK[] = INCBIN_U32("graphics/pokemon/unown/k/back.4bpp.lz"); + const u8 gMonIcon_UnownK[] = INCBIN_U8("graphics/pokemon/unown/k/icon.4bpp"); + + const u32 gMonFrontPic_UnownL[] = INCBIN_U32("graphics/pokemon/unown/l/anim_front.4bpp.lz"); + const u32 gMonBackPic_UnownL[] = INCBIN_U32("graphics/pokemon/unown/l/back.4bpp.lz"); + const u8 gMonIcon_UnownL[] = INCBIN_U8("graphics/pokemon/unown/l/icon.4bpp"); + + const u32 gMonFrontPic_UnownM[] = INCBIN_U32("graphics/pokemon/unown/m/anim_front.4bpp.lz"); + const u32 gMonBackPic_UnownM[] = INCBIN_U32("graphics/pokemon/unown/m/back.4bpp.lz"); + const u8 gMonIcon_UnownM[] = INCBIN_U8("graphics/pokemon/unown/m/icon.4bpp"); + + const u32 gMonFrontPic_UnownN[] = INCBIN_U32("graphics/pokemon/unown/n/anim_front.4bpp.lz"); + const u32 gMonBackPic_UnownN[] = INCBIN_U32("graphics/pokemon/unown/n/back.4bpp.lz"); + const u8 gMonIcon_UnownN[] = INCBIN_U8("graphics/pokemon/unown/n/icon.4bpp"); + + const u32 gMonFrontPic_UnownO[] = INCBIN_U32("graphics/pokemon/unown/o/anim_front.4bpp.lz"); + const u32 gMonBackPic_UnownO[] = INCBIN_U32("graphics/pokemon/unown/o/back.4bpp.lz"); + const u8 gMonIcon_UnownO[] = INCBIN_U8("graphics/pokemon/unown/o/icon.4bpp"); + + const u32 gMonFrontPic_UnownP[] = INCBIN_U32("graphics/pokemon/unown/p/anim_front.4bpp.lz"); + const u32 gMonBackPic_UnownP[] = INCBIN_U32("graphics/pokemon/unown/p/back.4bpp.lz"); + const u8 gMonIcon_UnownP[] = INCBIN_U8("graphics/pokemon/unown/p/icon.4bpp"); + + const u32 gMonFrontPic_UnownQ[] = INCBIN_U32("graphics/pokemon/unown/q/anim_front.4bpp.lz"); + const u32 gMonBackPic_UnownQ[] = INCBIN_U32("graphics/pokemon/unown/q/back.4bpp.lz"); + const u8 gMonIcon_UnownQ[] = INCBIN_U8("graphics/pokemon/unown/q/icon.4bpp"); + + const u32 gMonFrontPic_UnownR[] = INCBIN_U32("graphics/pokemon/unown/r/anim_front.4bpp.lz"); + const u32 gMonBackPic_UnownR[] = INCBIN_U32("graphics/pokemon/unown/r/back.4bpp.lz"); + const u8 gMonIcon_UnownR[] = INCBIN_U8("graphics/pokemon/unown/r/icon.4bpp"); + + const u32 gMonFrontPic_UnownS[] = INCBIN_U32("graphics/pokemon/unown/s/anim_front.4bpp.lz"); + const u32 gMonBackPic_UnownS[] = INCBIN_U32("graphics/pokemon/unown/s/back.4bpp.lz"); + const u8 gMonIcon_UnownS[] = INCBIN_U8("graphics/pokemon/unown/s/icon.4bpp"); + + const u32 gMonFrontPic_UnownT[] = INCBIN_U32("graphics/pokemon/unown/t/anim_front.4bpp.lz"); + const u32 gMonBackPic_UnownT[] = INCBIN_U32("graphics/pokemon/unown/t/back.4bpp.lz"); + const u8 gMonIcon_UnownT[] = INCBIN_U8("graphics/pokemon/unown/t/icon.4bpp"); + + const u32 gMonFrontPic_UnownU[] = INCBIN_U32("graphics/pokemon/unown/u/anim_front.4bpp.lz"); + const u32 gMonBackPic_UnownU[] = INCBIN_U32("graphics/pokemon/unown/u/back.4bpp.lz"); + const u8 gMonIcon_UnownU[] = INCBIN_U8("graphics/pokemon/unown/u/icon.4bpp"); + + const u32 gMonFrontPic_UnownV[] = INCBIN_U32("graphics/pokemon/unown/v/anim_front.4bpp.lz"); + const u32 gMonBackPic_UnownV[] = INCBIN_U32("graphics/pokemon/unown/v/back.4bpp.lz"); + const u8 gMonIcon_UnownV[] = INCBIN_U8("graphics/pokemon/unown/v/icon.4bpp"); + + const u32 gMonFrontPic_UnownW[] = INCBIN_U32("graphics/pokemon/unown/w/anim_front.4bpp.lz"); + const u32 gMonBackPic_UnownW[] = INCBIN_U32("graphics/pokemon/unown/w/back.4bpp.lz"); + const u8 gMonIcon_UnownW[] = INCBIN_U8("graphics/pokemon/unown/w/icon.4bpp"); + + const u32 gMonFrontPic_UnownX[] = INCBIN_U32("graphics/pokemon/unown/x/anim_front.4bpp.lz"); + const u32 gMonBackPic_UnownX[] = INCBIN_U32("graphics/pokemon/unown/x/back.4bpp.lz"); + const u8 gMonIcon_UnownX[] = INCBIN_U8("graphics/pokemon/unown/x/icon.4bpp"); + + const u32 gMonFrontPic_UnownY[] = INCBIN_U32("graphics/pokemon/unown/y/anim_front.4bpp.lz"); + const u32 gMonBackPic_UnownY[] = INCBIN_U32("graphics/pokemon/unown/y/back.4bpp.lz"); + const u8 gMonIcon_UnownY[] = INCBIN_U8("graphics/pokemon/unown/y/icon.4bpp"); + + const u32 gMonFrontPic_UnownZ[] = INCBIN_U32("graphics/pokemon/unown/z/anim_front.4bpp.lz"); + const u32 gMonBackPic_UnownZ[] = INCBIN_U32("graphics/pokemon/unown/z/back.4bpp.lz"); + const u8 gMonIcon_UnownZ[] = INCBIN_U8("graphics/pokemon/unown/z/icon.4bpp"); + + const u32 gMonFrontPic_UnownExclamationMark[] = INCBIN_U32("graphics/pokemon/unown/exclamation_mark/anim_front.4bpp.lz"); + const u32 gMonBackPic_UnownExclamationMark[] = INCBIN_U32("graphics/pokemon/unown/exclamation_mark/back.4bpp.lz"); + const u8 gMonIcon_UnownExclamationMark[] = INCBIN_U8("graphics/pokemon/unown/exclamation_mark/icon.4bpp"); + + const u32 gMonFrontPic_UnownQuestionMark[] = INCBIN_U32("graphics/pokemon/unown/question_mark/anim_front.4bpp.lz"); + const u32 gMonBackPic_UnownQuestionMark[] = INCBIN_U32("graphics/pokemon/unown/question_mark/back.4bpp.lz"); + const u8 gMonIcon_UnownQuestionMark[] = INCBIN_U8("graphics/pokemon/unown/question_mark/icon.4bpp"); +#endif //P_FAMILY_UNOWN + +#if P_FAMILY_WOBBUFFET +#if P_GEN_3_CROSS_EVOS + const u32 gMonFrontPic_Wynaut[] = INCBIN_U32("graphics/pokemon/wynaut/anim_front.4bpp.lz"); + const u32 gMonPalette_Wynaut[] = INCBIN_U32("graphics/pokemon/wynaut/normal.gbapal.lz"); + const u32 gMonBackPic_Wynaut[] = INCBIN_U32("graphics/pokemon/wynaut/back.4bpp.lz"); + const u32 gMonShinyPalette_Wynaut[] = INCBIN_U32("graphics/pokemon/wynaut/shiny.gbapal.lz"); + const u8 gMonIcon_Wynaut[] = INCBIN_U8("graphics/pokemon/wynaut/icon.4bpp"); + const u8 gMonFootprint_Wynaut[] = INCBIN_U8("graphics/pokemon/wynaut/footprint.1bpp"); +#endif //P_GEN_3_CROSS_EVOS + + const u32 gMonFrontPic_Wobbuffet[] = INCBIN_U32("graphics/pokemon/wobbuffet/anim_front.4bpp.lz"); + const u32 gMonPalette_Wobbuffet[] = INCBIN_U32("graphics/pokemon/wobbuffet/normal.gbapal.lz"); + const u32 gMonBackPic_Wobbuffet[] = INCBIN_U32("graphics/pokemon/wobbuffet/back.4bpp.lz"); + const u32 gMonShinyPalette_Wobbuffet[] = INCBIN_U32("graphics/pokemon/wobbuffet/shiny.gbapal.lz"); + const u8 gMonIcon_Wobbuffet[] = INCBIN_U8("graphics/pokemon/wobbuffet/icon.4bpp"); + const u8 gMonFootprint_Wobbuffet[] = INCBIN_U8("graphics/pokemon/wobbuffet/footprint.1bpp"); + + const u32 gMonFrontPic_WobbuffetF[] = INCBIN_U32("graphics/pokemon/wobbuffet/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_WobbuffetF[] = INCBIN_U32("graphics/pokemon/wobbuffet/backf.4bpp.lz"); +#if P_CUSTOM_GENDER_DIFF_ICONS + const u8 gMonIcon_WobbuffetF[] = INCBIN_U8("graphics/pokemon/wobbuffet/iconf.4bpp"); +#endif +#endif //P_FAMILY_WOBBUFFET + +#if P_FAMILY_GIRAFARIG + const u32 gMonFrontPic_Girafarig[] = INCBIN_U32("graphics/pokemon/girafarig/anim_front.4bpp.lz"); + const u32 gMonPalette_Girafarig[] = INCBIN_U32("graphics/pokemon/girafarig/normal.gbapal.lz"); + const u32 gMonBackPic_Girafarig[] = INCBIN_U32("graphics/pokemon/girafarig/back.4bpp.lz"); + const u32 gMonShinyPalette_Girafarig[] = INCBIN_U32("graphics/pokemon/girafarig/shiny.gbapal.lz"); + const u8 gMonIcon_Girafarig[] = INCBIN_U8("graphics/pokemon/girafarig/icon.4bpp"); + const u8 gMonFootprint_Girafarig[] = INCBIN_U8("graphics/pokemon/girafarig/footprint.1bpp"); + + const u32 gMonFrontPic_GirafarigF[] = INCBIN_U32("graphics/pokemon/girafarig/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_GirafarigF[] = INCBIN_U32("graphics/pokemon/girafarig/backf.4bpp.lz"); + +#if P_GEN_9_CROSS_EVOS + const u32 gMonFrontPic_Farigiraf[] = INCBIN_U32("graphics/pokemon/farigiraf/front.4bpp.lz"); + const u32 gMonPalette_Farigiraf[] = INCBIN_U32("graphics/pokemon/farigiraf/normal.gbapal.lz"); + const u32 gMonBackPic_Farigiraf[] = INCBIN_U32("graphics/pokemon/farigiraf/back.4bpp.lz"); + const u32 gMonShinyPalette_Farigiraf[] = INCBIN_U32("graphics/pokemon/farigiraf/shiny.gbapal.lz"); + const u8 gMonIcon_Farigiraf[] = INCBIN_U8("graphics/pokemon/farigiraf/icon.4bpp"); + // const u8 gMonFootprint_Farigiraf[] = INCBIN_U8("graphics/pokemon/farigiraf/footprint.1bpp"); +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_GIRAFARIG + +#if P_FAMILY_PINECO + const u32 gMonFrontPic_Pineco[] = INCBIN_U32("graphics/pokemon/pineco/anim_front.4bpp.lz"); + const u32 gMonPalette_Pineco[] = INCBIN_U32("graphics/pokemon/pineco/normal.gbapal.lz"); + const u32 gMonBackPic_Pineco[] = INCBIN_U32("graphics/pokemon/pineco/back.4bpp.lz"); + const u32 gMonShinyPalette_Pineco[] = INCBIN_U32("graphics/pokemon/pineco/shiny.gbapal.lz"); + const u8 gMonIcon_Pineco[] = INCBIN_U8("graphics/pokemon/pineco/icon.4bpp"); + const u8 gMonFootprint_Pineco[] = INCBIN_U8("graphics/pokemon/pineco/footprint.1bpp"); + + const u32 gMonFrontPic_Forretress[] = INCBIN_U32("graphics/pokemon/forretress/anim_front.4bpp.lz"); + const u32 gMonPalette_Forretress[] = INCBIN_U32("graphics/pokemon/forretress/normal.gbapal.lz"); + const u32 gMonBackPic_Forretress[] = INCBIN_U32("graphics/pokemon/forretress/back.4bpp.lz"); + const u32 gMonShinyPalette_Forretress[] = INCBIN_U32("graphics/pokemon/forretress/shiny.gbapal.lz"); + const u8 gMonIcon_Forretress[] = INCBIN_U8("graphics/pokemon/forretress/icon.4bpp"); + const u8 gMonFootprint_Forretress[] = INCBIN_U8("graphics/pokemon/forretress/footprint.1bpp"); +#endif //P_FAMILY_PINECO + +#if P_FAMILY_DUNSPARCE + const u32 gMonFrontPic_Dunsparce[] = INCBIN_U32("graphics/pokemon/dunsparce/anim_front.4bpp.lz"); + const u32 gMonPalette_Dunsparce[] = INCBIN_U32("graphics/pokemon/dunsparce/normal.gbapal.lz"); + const u32 gMonBackPic_Dunsparce[] = INCBIN_U32("graphics/pokemon/dunsparce/back.4bpp.lz"); + const u32 gMonShinyPalette_Dunsparce[] = INCBIN_U32("graphics/pokemon/dunsparce/shiny.gbapal.lz"); + const u8 gMonIcon_Dunsparce[] = INCBIN_U8("graphics/pokemon/dunsparce/icon.4bpp"); + const u8 gMonFootprint_Dunsparce[] = INCBIN_U8("graphics/pokemon/dunsparce/footprint.1bpp"); + +#if P_GEN_9_CROSS_EVOS + const u32 gMonPalette_Dudunsparce[] = INCBIN_U32("graphics/pokemon/dudunsparce/normal.gbapal.lz"); + const u32 gMonShinyPalette_Dudunsparce[] = INCBIN_U32("graphics/pokemon/dudunsparce/shiny.gbapal.lz"); + const u8 gMonIcon_Dudunsparce[] = INCBIN_U8("graphics/pokemon/dudunsparce/icon.4bpp"); + // const u8 gMonFootprint_Dudunsparce[] = INCBIN_U8("graphics/pokemon/dudunsparce/footprint.1bpp"); + + const u32 gMonFrontPic_DudunsparceTwoSegment[] = INCBIN_U32("graphics/pokemon/dudunsparce/front.4bpp.lz"); + const u32 gMonBackPic_DudunsparceTwoSegment[] = INCBIN_U32("graphics/pokemon/dudunsparce/back.4bpp.lz"); + + const u32 gMonFrontPic_DudunsparceThreeSegment[] = INCBIN_U32("graphics/pokemon/dudunsparce/three_segment/front.4bpp.lz"); + const u32 gMonBackPic_DudunsparceThreeSegment[] = INCBIN_U32("graphics/pokemon/dudunsparce/three_segment/back.4bpp.lz"); +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_DUNSPARCE + +#if P_FAMILY_GLIGAR + const u32 gMonFrontPic_Gligar[] = INCBIN_U32("graphics/pokemon/gligar/anim_front.4bpp.lz"); + const u32 gMonPalette_Gligar[] = INCBIN_U32("graphics/pokemon/gligar/normal.gbapal.lz"); + const u32 gMonBackPic_Gligar[] = INCBIN_U32("graphics/pokemon/gligar/back.4bpp.lz"); + const u32 gMonShinyPalette_Gligar[] = INCBIN_U32("graphics/pokemon/gligar/shiny.gbapal.lz"); + const u8 gMonIcon_Gligar[] = INCBIN_U8("graphics/pokemon/gligar/icon.4bpp"); + const u8 gMonFootprint_Gligar[] = INCBIN_U8("graphics/pokemon/gligar/footprint.1bpp"); + + const u32 gMonFrontPic_GligarF[] = INCBIN_U32("graphics/pokemon/gligar/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_GligarF[] = INCBIN_U32("graphics/pokemon/gligar/backf.4bpp.lz"); + +#if P_GEN_4_CROSS_EVOS + const u32 gMonFrontPic_Gliscor[] = INCBIN_U32("graphics/pokemon/gliscor/anim_front.4bpp.lz"); + const u32 gMonPalette_Gliscor[] = INCBIN_U32("graphics/pokemon/gliscor/normal.gbapal.lz"); + const u32 gMonBackPic_Gliscor[] = INCBIN_U32("graphics/pokemon/gliscor/back.4bpp.lz"); + const u32 gMonShinyPalette_Gliscor[] = INCBIN_U32("graphics/pokemon/gliscor/shiny.gbapal.lz"); + const u8 gMonIcon_Gliscor[] = INCBIN_U8("graphics/pokemon/gliscor/icon.4bpp"); + const u8 gMonFootprint_Gliscor[] = INCBIN_U8("graphics/pokemon/gliscor/footprint.1bpp"); +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_GLIGAR + +#if P_FAMILY_SNUBBULL + const u32 gMonFrontPic_Snubbull[] = INCBIN_U32("graphics/pokemon/snubbull/anim_front.4bpp.lz"); + const u32 gMonPalette_Snubbull[] = INCBIN_U32("graphics/pokemon/snubbull/normal.gbapal.lz"); + const u32 gMonBackPic_Snubbull[] = INCBIN_U32("graphics/pokemon/snubbull/back.4bpp.lz"); + const u32 gMonShinyPalette_Snubbull[] = INCBIN_U32("graphics/pokemon/snubbull/shiny.gbapal.lz"); + const u8 gMonIcon_Snubbull[] = INCBIN_U8("graphics/pokemon/snubbull/icon.4bpp"); + const u8 gMonFootprint_Snubbull[] = INCBIN_U8("graphics/pokemon/snubbull/footprint.1bpp"); + + const u32 gMonFrontPic_Granbull[] = INCBIN_U32("graphics/pokemon/granbull/anim_front.4bpp.lz"); + const u32 gMonPalette_Granbull[] = INCBIN_U32("graphics/pokemon/granbull/normal.gbapal.lz"); + const u32 gMonBackPic_Granbull[] = INCBIN_U32("graphics/pokemon/granbull/back.4bpp.lz"); + const u32 gMonShinyPalette_Granbull[] = INCBIN_U32("graphics/pokemon/granbull/shiny.gbapal.lz"); + const u8 gMonIcon_Granbull[] = INCBIN_U8("graphics/pokemon/granbull/icon.4bpp"); + const u8 gMonFootprint_Granbull[] = INCBIN_U8("graphics/pokemon/granbull/footprint.1bpp"); +#endif //P_FAMILY_SNUBBULL + +#if P_FAMILY_QWILFISH + const u32 gMonFrontPic_Qwilfish[] = INCBIN_U32("graphics/pokemon/qwilfish/anim_front.4bpp.lz"); + const u32 gMonPalette_Qwilfish[] = INCBIN_U32("graphics/pokemon/qwilfish/normal.gbapal.lz"); + const u32 gMonBackPic_Qwilfish[] = INCBIN_U32("graphics/pokemon/qwilfish/back.4bpp.lz"); + const u32 gMonShinyPalette_Qwilfish[] = INCBIN_U32("graphics/pokemon/qwilfish/shiny.gbapal.lz"); + const u8 gMonIcon_Qwilfish[] = INCBIN_U8("graphics/pokemon/qwilfish/icon.4bpp"); + const u8 gMonFootprint_Qwilfish[] = INCBIN_U8("graphics/pokemon/qwilfish/footprint.1bpp"); + +#if P_HISUIAN_FORMS + const u32 gMonFrontPic_QwilfishHisuian[] = INCBIN_U32("graphics/pokemon/qwilfish/hisuian/front.4bpp.lz"); + const u32 gMonPalette_QwilfishHisuian[] = INCBIN_U32("graphics/pokemon/qwilfish/hisuian/normal.gbapal.lz"); + const u32 gMonBackPic_QwilfishHisuian[] = INCBIN_U32("graphics/pokemon/qwilfish/hisuian/back.4bpp.lz"); + const u32 gMonShinyPalette_QwilfishHisuian[] = INCBIN_U32("graphics/pokemon/qwilfish/hisuian/shiny.gbapal.lz"); + const u8 gMonIcon_QwilfishHisuian[] = INCBIN_U8("graphics/pokemon/qwilfish/hisuian/icon.4bpp"); + + const u32 gMonFrontPic_Overqwil[] = INCBIN_U32("graphics/pokemon/overqwil/front.4bpp.lz"); + const u32 gMonPalette_Overqwil[] = INCBIN_U32("graphics/pokemon/overqwil/normal.gbapal.lz"); + const u32 gMonBackPic_Overqwil[] = INCBIN_U32("graphics/pokemon/overqwil/back.4bpp.lz"); + const u32 gMonShinyPalette_Overqwil[] = INCBIN_U32("graphics/pokemon/overqwil/shiny.gbapal.lz"); + const u8 gMonIcon_Overqwil[] = INCBIN_U8("graphics/pokemon/overqwil/icon.4bpp"); + //const u8 gMonFootprint_Overqwil[] = INCBIN_U8("graphics/pokemon/overqwil/footprint.1bpp"); +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_QWILFISH + +#if P_FAMILY_SHUCKLE + const u32 gMonFrontPic_Shuckle[] = INCBIN_U32("graphics/pokemon/shuckle/anim_front.4bpp.lz"); + const u32 gMonPalette_Shuckle[] = INCBIN_U32("graphics/pokemon/shuckle/normal.gbapal.lz"); + const u32 gMonBackPic_Shuckle[] = INCBIN_U32("graphics/pokemon/shuckle/back.4bpp.lz"); + const u32 gMonShinyPalette_Shuckle[] = INCBIN_U32("graphics/pokemon/shuckle/shiny.gbapal.lz"); + const u8 gMonIcon_Shuckle[] = INCBIN_U8("graphics/pokemon/shuckle/icon.4bpp"); + const u8 gMonFootprint_Shuckle[] = INCBIN_U8("graphics/pokemon/shuckle/footprint.1bpp"); +#endif //P_FAMILY_SHUCKLE + +#if P_FAMILY_HERACROSS + const u32 gMonFrontPic_Heracross[] = INCBIN_U32("graphics/pokemon/heracross/anim_front.4bpp.lz"); + const u32 gMonPalette_Heracross[] = INCBIN_U32("graphics/pokemon/heracross/normal.gbapal.lz"); + const u32 gMonBackPic_Heracross[] = INCBIN_U32("graphics/pokemon/heracross/back.4bpp.lz"); + const u32 gMonShinyPalette_Heracross[] = INCBIN_U32("graphics/pokemon/heracross/shiny.gbapal.lz"); + const u8 gMonIcon_Heracross[] = INCBIN_U8("graphics/pokemon/heracross/icon.4bpp"); + const u8 gMonFootprint_Heracross[] = INCBIN_U8("graphics/pokemon/heracross/footprint.1bpp"); + + const u32 gMonFrontPic_HeracrossF[] = INCBIN_U32("graphics/pokemon/heracross/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_HeracrossF[] = INCBIN_U32("graphics/pokemon/heracross/backf.4bpp.lz"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_HeracrossMega[] = INCBIN_U32("graphics/pokemon/heracross/mega/front.4bpp.lz"); + const u32 gMonPalette_HeracrossMega[] = INCBIN_U32("graphics/pokemon/heracross/mega/normal.gbapal.lz"); + const u32 gMonBackPic_HeracrossMega[] = INCBIN_U32("graphics/pokemon/heracross/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_HeracrossMega[] = INCBIN_U32("graphics/pokemon/heracross/mega/shiny.gbapal.lz"); + const u8 gMonIcon_HeracrossMega[] = INCBIN_U8("graphics/pokemon/heracross/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_HERACROSS + +#if P_FAMILY_SNEASEL + const u32 gMonFrontPic_Sneasel[] = INCBIN_U32("graphics/pokemon/sneasel/anim_front.4bpp.lz"); + const u32 gMonPalette_Sneasel[] = INCBIN_U32("graphics/pokemon/sneasel/normal.gbapal.lz"); + const u32 gMonBackPic_Sneasel[] = INCBIN_U32("graphics/pokemon/sneasel/back.4bpp.lz"); + const u32 gMonShinyPalette_Sneasel[] = INCBIN_U32("graphics/pokemon/sneasel/shiny.gbapal.lz"); + const u8 gMonIcon_Sneasel[] = INCBIN_U8("graphics/pokemon/sneasel/icon.4bpp"); + const u8 gMonFootprint_Sneasel[] = INCBIN_U8("graphics/pokemon/sneasel/footprint.1bpp"); + + const u32 gMonFrontPic_SneaselF[] = INCBIN_U32("graphics/pokemon/sneasel/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_SneaselF[] = INCBIN_U32("graphics/pokemon/sneasel/backf.4bpp.lz"); + +#if P_GEN_4_CROSS_EVOS + const u32 gMonFrontPic_Weavile[] = INCBIN_U32("graphics/pokemon/weavile/anim_front.4bpp.lz"); + const u32 gMonPalette_Weavile[] = INCBIN_U32("graphics/pokemon/weavile/normal.gbapal.lz"); + const u32 gMonBackPic_Weavile[] = INCBIN_U32("graphics/pokemon/weavile/back.4bpp.lz"); + const u32 gMonShinyPalette_Weavile[] = INCBIN_U32("graphics/pokemon/weavile/shiny.gbapal.lz"); + const u8 gMonIcon_Weavile[] = INCBIN_U8("graphics/pokemon/weavile/icon.4bpp"); + const u8 gMonFootprint_Weavile[] = INCBIN_U8("graphics/pokemon/weavile/footprint.1bpp"); + + const u32 gMonFrontPic_WeavileF[] = INCBIN_U32("graphics/pokemon/weavile/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_WeavileF[] = INCBIN_U32("graphics/pokemon/weavile/backf.4bpp.lz"); +#endif //P_GEN_4_CROSS_EVOS + +#if P_HISUIAN_FORMS + const u32 gMonFrontPic_SneaselHisuian[] = INCBIN_U32("graphics/pokemon/sneasel/hisuian/front.4bpp.lz"); + const u32 gMonPalette_SneaselHisuian[] = INCBIN_U32("graphics/pokemon/sneasel/hisuian/normal.gbapal.lz"); + const u32 gMonBackPic_SneaselHisuian[] = INCBIN_U32("graphics/pokemon/sneasel/hisuian/back.4bpp.lz"); + const u32 gMonShinyPalette_SneaselHisuian[] = INCBIN_U32("graphics/pokemon/sneasel/hisuian/shiny.gbapal.lz"); + const u8 gMonIcon_SneaselHisuian[] = INCBIN_U8("graphics/pokemon/sneasel/hisuian/icon.4bpp"); + + const u32 gMonFrontPic_SneaselHisuianF[] = INCBIN_U32("graphics/pokemon/sneasel/hisuian/frontf.4bpp.lz"); + const u32 gMonBackPic_SneaselHisuianF[] = INCBIN_U32("graphics/pokemon/sneasel/hisuian/backf.4bpp.lz"); + + const u32 gMonFrontPic_Sneasler[] = INCBIN_U32("graphics/pokemon/sneasler/front.4bpp.lz"); + const u32 gMonPalette_Sneasler[] = INCBIN_U32("graphics/pokemon/sneasler/normal.gbapal.lz"); + const u32 gMonBackPic_Sneasler[] = INCBIN_U32("graphics/pokemon/sneasler/back.4bpp.lz"); + const u32 gMonShinyPalette_Sneasler[] = INCBIN_U32("graphics/pokemon/sneasler/shiny.gbapal.lz"); + const u8 gMonIcon_Sneasler[] = INCBIN_U8("graphics/pokemon/sneasler/icon.4bpp"); + //const u8 gMonFootprint_Sneasler[] = INCBIN_U8("graphics/pokemon/sneasler/footprint.1bpp"); +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_SNEASEL + +#if P_FAMILY_TEDDIURSA + const u32 gMonFrontPic_Teddiursa[] = INCBIN_U32("graphics/pokemon/teddiursa/anim_front.4bpp.lz"); + const u32 gMonPalette_Teddiursa[] = INCBIN_U32("graphics/pokemon/teddiursa/normal.gbapal.lz"); + const u32 gMonBackPic_Teddiursa[] = INCBIN_U32("graphics/pokemon/teddiursa/back.4bpp.lz"); + const u32 gMonShinyPalette_Teddiursa[] = INCBIN_U32("graphics/pokemon/teddiursa/shiny.gbapal.lz"); + const u8 gMonIcon_Teddiursa[] = INCBIN_U8("graphics/pokemon/teddiursa/icon.4bpp"); + const u8 gMonFootprint_Teddiursa[] = INCBIN_U8("graphics/pokemon/teddiursa/footprint.1bpp"); + + const u32 gMonFrontPic_Ursaring[] = INCBIN_U32("graphics/pokemon/ursaring/anim_front.4bpp.lz"); + const u32 gMonPalette_Ursaring[] = INCBIN_U32("graphics/pokemon/ursaring/normal.gbapal.lz"); + const u32 gMonBackPic_Ursaring[] = INCBIN_U32("graphics/pokemon/ursaring/back.4bpp.lz"); + const u32 gMonShinyPalette_Ursaring[] = INCBIN_U32("graphics/pokemon/ursaring/shiny.gbapal.lz"); + const u8 gMonIcon_Ursaring[] = INCBIN_U8("graphics/pokemon/ursaring/icon.4bpp"); + const u8 gMonFootprint_Ursaring[] = INCBIN_U8("graphics/pokemon/ursaring/footprint.1bpp"); + + const u32 gMonFrontPic_UrsaringF[] = INCBIN_U32("graphics/pokemon/ursaring/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_UrsaringF[] = INCBIN_U32("graphics/pokemon/ursaring/backf.4bpp.lz"); + +#if P_GEN_8_CROSS_EVOS + const u32 gMonFrontPic_Ursaluna[] = INCBIN_U32("graphics/pokemon/ursaluna/front.4bpp.lz"); + const u32 gMonPalette_Ursaluna[] = INCBIN_U32("graphics/pokemon/ursaluna/normal.gbapal.lz"); + const u32 gMonBackPic_Ursaluna[] = INCBIN_U32("graphics/pokemon/ursaluna/back.4bpp.lz"); + const u32 gMonShinyPalette_Ursaluna[] = INCBIN_U32("graphics/pokemon/ursaluna/shiny.gbapal.lz"); + const u8 gMonIcon_Ursaluna[] = INCBIN_U8("graphics/pokemon/ursaluna/icon.4bpp"); + //const u8 gMonFootprint_Ursaluna[] = INCBIN_U8("graphics/pokemon/ursaluna/footprint.1bpp"); + + const u32 gMonFrontPic_UrsalunaBloodmoon[] = INCBIN_U32("graphics/pokemon/ursaluna/bloodmoon/front.4bpp.lz"); + const u32 gMonPalette_UrsalunaBloodmoon[] = INCBIN_U32("graphics/pokemon/ursaluna/bloodmoon/normal.gbapal.lz"); + const u32 gMonBackPic_UrsalunaBloodmoon[] = INCBIN_U32("graphics/pokemon/ursaluna/bloodmoon/back.4bpp.lz"); + const u32 gMonShinyPalette_UrsalunaBloodmoon[] = INCBIN_U32("graphics/pokemon/ursaluna/bloodmoon/shiny.gbapal.lz"); + // const u8 gMonIcon_UrsalunaBloodmoon[] = INCBIN_U8("graphics/pokemon/ursaluna/bloodmoon/icon.4bpp"); +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_TEDDIURSA + +#if P_FAMILY_SLUGMA + const u32 gMonFrontPic_Slugma[] = INCBIN_U32("graphics/pokemon/slugma/anim_front.4bpp.lz"); + const u32 gMonPalette_Slugma[] = INCBIN_U32("graphics/pokemon/slugma/normal.gbapal.lz"); + const u32 gMonBackPic_Slugma[] = INCBIN_U32("graphics/pokemon/slugma/back.4bpp.lz"); + const u32 gMonShinyPalette_Slugma[] = INCBIN_U32("graphics/pokemon/slugma/shiny.gbapal.lz"); + const u8 gMonIcon_Slugma[] = INCBIN_U8("graphics/pokemon/slugma/icon.4bpp"); + const u8 gMonFootprint_Slugma[] = INCBIN_U8("graphics/pokemon/slugma/footprint.1bpp"); + + const u32 gMonFrontPic_Magcargo[] = INCBIN_U32("graphics/pokemon/magcargo/anim_front.4bpp.lz"); + const u32 gMonPalette_Magcargo[] = INCBIN_U32("graphics/pokemon/magcargo/normal.gbapal.lz"); + const u32 gMonBackPic_Magcargo[] = INCBIN_U32("graphics/pokemon/magcargo/back.4bpp.lz"); + const u32 gMonShinyPalette_Magcargo[] = INCBIN_U32("graphics/pokemon/magcargo/shiny.gbapal.lz"); + const u8 gMonIcon_Magcargo[] = INCBIN_U8("graphics/pokemon/magcargo/icon.4bpp"); + const u8 gMonFootprint_Magcargo[] = INCBIN_U8("graphics/pokemon/magcargo/footprint.1bpp"); +#endif //P_FAMILY_SLUGMA + +#if P_FAMILY_SWINUB + const u32 gMonFrontPic_Swinub[] = INCBIN_U32("graphics/pokemon/swinub/anim_front.4bpp.lz"); + const u32 gMonPalette_Swinub[] = INCBIN_U32("graphics/pokemon/swinub/normal.gbapal.lz"); + const u32 gMonBackPic_Swinub[] = INCBIN_U32("graphics/pokemon/swinub/back.4bpp.lz"); + const u32 gMonShinyPalette_Swinub[] = INCBIN_U32("graphics/pokemon/swinub/shiny.gbapal.lz"); + const u8 gMonIcon_Swinub[] = INCBIN_U8("graphics/pokemon/swinub/icon.4bpp"); + const u8 gMonFootprint_Swinub[] = INCBIN_U8("graphics/pokemon/swinub/footprint.1bpp"); + + const u32 gMonFrontPic_Piloswine[] = INCBIN_U32("graphics/pokemon/piloswine/anim_front.4bpp.lz"); + const u32 gMonPalette_Piloswine[] = INCBIN_U32("graphics/pokemon/piloswine/normal.gbapal.lz"); + const u32 gMonBackPic_Piloswine[] = INCBIN_U32("graphics/pokemon/piloswine/back.4bpp.lz"); + const u32 gMonShinyPalette_Piloswine[] = INCBIN_U32("graphics/pokemon/piloswine/shiny.gbapal.lz"); + const u8 gMonIcon_Piloswine[] = INCBIN_U8("graphics/pokemon/piloswine/icon.4bpp"); + const u8 gMonFootprint_Piloswine[] = INCBIN_U8("graphics/pokemon/piloswine/footprint.1bpp"); + + const u32 gMonFrontPic_PiloswineF[] = INCBIN_U32("graphics/pokemon/piloswine/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_PiloswineF[] = INCBIN_U32("graphics/pokemon/piloswine/backf.4bpp.lz"); + +#if P_GEN_4_CROSS_EVOS + const u32 gMonFrontPic_Mamoswine[] = INCBIN_U32("graphics/pokemon/mamoswine/anim_front.4bpp.lz"); + const u32 gMonPalette_Mamoswine[] = INCBIN_U32("graphics/pokemon/mamoswine/normal.gbapal.lz"); + const u32 gMonBackPic_Mamoswine[] = INCBIN_U32("graphics/pokemon/mamoswine/back.4bpp.lz"); + const u32 gMonShinyPalette_Mamoswine[] = INCBIN_U32("graphics/pokemon/mamoswine/shiny.gbapal.lz"); + const u8 gMonIcon_Mamoswine[] = INCBIN_U8("graphics/pokemon/mamoswine/icon.4bpp"); + const u8 gMonFootprint_Mamoswine[] = INCBIN_U8("graphics/pokemon/mamoswine/footprint.1bpp"); + + const u32 gMonFrontPic_MamoswineF[] = INCBIN_U32("graphics/pokemon/mamoswine/anim_frontf.4bpp.lz"); +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_SWINUB + +#if P_FAMILY_CORSOLA + const u32 gMonFrontPic_Corsola[] = INCBIN_U32("graphics/pokemon/corsola/anim_front.4bpp.lz"); + const u32 gMonPalette_Corsola[] = INCBIN_U32("graphics/pokemon/corsola/normal.gbapal.lz"); + const u32 gMonBackPic_Corsola[] = INCBIN_U32("graphics/pokemon/corsola/back.4bpp.lz"); + const u32 gMonShinyPalette_Corsola[] = INCBIN_U32("graphics/pokemon/corsola/shiny.gbapal.lz"); + const u8 gMonIcon_Corsola[] = INCBIN_U8("graphics/pokemon/corsola/icon.4bpp"); + const u8 gMonFootprint_Corsola[] = INCBIN_U8("graphics/pokemon/corsola/footprint.1bpp"); + +#if P_GALARIAN_FORMS + const u32 gMonFrontPic_CorsolaGalarian[] = INCBIN_U32("graphics/pokemon/corsola/galarian/front.4bpp.lz"); + const u32 gMonPalette_CorsolaGalarian[] = INCBIN_U32("graphics/pokemon/corsola/galarian/normal.gbapal.lz"); + const u32 gMonBackPic_CorsolaGalarian[] = INCBIN_U32("graphics/pokemon/corsola/galarian/back.4bpp.lz"); + const u32 gMonShinyPalette_CorsolaGalarian[] = INCBIN_U32("graphics/pokemon/corsola/galarian/shiny.gbapal.lz"); + const u8 gMonIcon_CorsolaGalarian[] = INCBIN_U8("graphics/pokemon/corsola/galarian/icon.4bpp"); + + const u32 gMonFrontPic_Cursola[] = INCBIN_U32("graphics/pokemon/cursola/front.4bpp.lz"); + const u32 gMonPalette_Cursola[] = INCBIN_U32("graphics/pokemon/cursola/normal.gbapal.lz"); + const u32 gMonBackPic_Cursola[] = INCBIN_U32("graphics/pokemon/cursola/back.4bpp.lz"); + const u32 gMonShinyPalette_Cursola[] = INCBIN_U32("graphics/pokemon/cursola/shiny.gbapal.lz"); + const u8 gMonIcon_Cursola[] = INCBIN_U8("graphics/pokemon/cursola/icon.4bpp"); + const u8 gMonFootprint_Cursola[] = INCBIN_U8("graphics/pokemon/cursola/footprint.1bpp"); +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_CORSOLA + +#if P_FAMILY_REMORAID + const u32 gMonFrontPic_Remoraid[] = INCBIN_U32("graphics/pokemon/remoraid/anim_front.4bpp.lz"); + const u32 gMonPalette_Remoraid[] = INCBIN_U32("graphics/pokemon/remoraid/normal.gbapal.lz"); + const u32 gMonBackPic_Remoraid[] = INCBIN_U32("graphics/pokemon/remoraid/back.4bpp.lz"); + const u32 gMonShinyPalette_Remoraid[] = INCBIN_U32("graphics/pokemon/remoraid/shiny.gbapal.lz"); + const u8 gMonIcon_Remoraid[] = INCBIN_U8("graphics/pokemon/remoraid/icon.4bpp"); + const u8 gMonFootprint_Remoraid[] = INCBIN_U8("graphics/pokemon/remoraid/footprint.1bpp"); + + const u32 gMonFrontPic_Octillery[] = INCBIN_U32("graphics/pokemon/octillery/anim_front.4bpp.lz"); + const u32 gMonPalette_Octillery[] = INCBIN_U32("graphics/pokemon/octillery/normal.gbapal.lz"); + const u32 gMonBackPic_Octillery[] = INCBIN_U32("graphics/pokemon/octillery/back.4bpp.lz"); + const u32 gMonShinyPalette_Octillery[] = INCBIN_U32("graphics/pokemon/octillery/shiny.gbapal.lz"); + const u8 gMonIcon_Octillery[] = INCBIN_U8("graphics/pokemon/octillery/icon.4bpp"); + const u8 gMonFootprint_Octillery[] = INCBIN_U8("graphics/pokemon/octillery/footprint.1bpp"); + + const u32 gMonFrontPic_OctilleryF[] = INCBIN_U32("graphics/pokemon/octillery/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_OctilleryF[] = INCBIN_U32("graphics/pokemon/octillery/backf.4bpp.lz"); +#endif //P_FAMILY_REMORAID + +#if P_FAMILY_DELIBIRD + const u32 gMonFrontPic_Delibird[] = INCBIN_U32("graphics/pokemon/delibird/anim_front.4bpp.lz"); + const u32 gMonPalette_Delibird[] = INCBIN_U32("graphics/pokemon/delibird/normal.gbapal.lz"); + const u32 gMonBackPic_Delibird[] = INCBIN_U32("graphics/pokemon/delibird/back.4bpp.lz"); + const u32 gMonShinyPalette_Delibird[] = INCBIN_U32("graphics/pokemon/delibird/shiny.gbapal.lz"); + const u8 gMonIcon_Delibird[] = INCBIN_U8("graphics/pokemon/delibird/icon.4bpp"); + const u8 gMonFootprint_Delibird[] = INCBIN_U8("graphics/pokemon/delibird/footprint.1bpp"); +#endif //P_FAMILY_DELIBIRD + +#if P_FAMILY_MANTINE +#if P_GEN_4_CROSS_EVOS + const u32 gMonFrontPic_Mantyke[] = INCBIN_U32("graphics/pokemon/mantyke/anim_front.4bpp.lz"); + const u32 gMonPalette_Mantyke[] = INCBIN_U32("graphics/pokemon/mantyke/normal.gbapal.lz"); + const u32 gMonBackPic_Mantyke[] = INCBIN_U32("graphics/pokemon/mantyke/back.4bpp.lz"); + const u32 gMonShinyPalette_Mantyke[] = INCBIN_U32("graphics/pokemon/mantyke/shiny.gbapal.lz"); + const u8 gMonIcon_Mantyke[] = INCBIN_U8("graphics/pokemon/mantyke/icon.4bpp"); + const u8 gMonFootprint_Mantyke[] = INCBIN_U8("graphics/pokemon/mantyke/footprint.1bpp"); +#endif //P_GEN_4_CROSS_EVOS + + const u32 gMonFrontPic_Mantine[] = INCBIN_U32("graphics/pokemon/mantine/anim_front.4bpp.lz"); + const u32 gMonPalette_Mantine[] = INCBIN_U32("graphics/pokemon/mantine/normal.gbapal.lz"); + const u32 gMonBackPic_Mantine[] = INCBIN_U32("graphics/pokemon/mantine/back.4bpp.lz"); + const u32 gMonShinyPalette_Mantine[] = INCBIN_U32("graphics/pokemon/mantine/shiny.gbapal.lz"); + const u8 gMonIcon_Mantine[] = INCBIN_U8("graphics/pokemon/mantine/icon.4bpp"); + const u8 gMonFootprint_Mantine[] = INCBIN_U8("graphics/pokemon/mantine/footprint.1bpp"); +#endif //P_FAMILY_MANTINE + +#if P_FAMILY_SKARMORY + const u32 gMonFrontPic_Skarmory[] = INCBIN_U32("graphics/pokemon/skarmory/anim_front.4bpp.lz"); + const u32 gMonPalette_Skarmory[] = INCBIN_U32("graphics/pokemon/skarmory/normal.gbapal.lz"); + const u32 gMonBackPic_Skarmory[] = INCBIN_U32("graphics/pokemon/skarmory/back.4bpp.lz"); + const u32 gMonShinyPalette_Skarmory[] = INCBIN_U32("graphics/pokemon/skarmory/shiny.gbapal.lz"); + const u8 gMonIcon_Skarmory[] = INCBIN_U8("graphics/pokemon/skarmory/icon.4bpp"); + const u8 gMonFootprint_Skarmory[] = INCBIN_U8("graphics/pokemon/skarmory/footprint.1bpp"); +#endif //P_FAMILY_SKARMORY + +#if P_FAMILY_HOUNDOUR + const u32 gMonFrontPic_Houndour[] = INCBIN_U32("graphics/pokemon/houndour/anim_front.4bpp.lz"); + const u32 gMonPalette_Houndour[] = INCBIN_U32("graphics/pokemon/houndour/normal.gbapal.lz"); + const u32 gMonBackPic_Houndour[] = INCBIN_U32("graphics/pokemon/houndour/back.4bpp.lz"); + const u32 gMonShinyPalette_Houndour[] = INCBIN_U32("graphics/pokemon/houndour/shiny.gbapal.lz"); + const u8 gMonIcon_Houndour[] = INCBIN_U8("graphics/pokemon/houndour/icon.4bpp"); + const u8 gMonFootprint_Houndour[] = INCBIN_U8("graphics/pokemon/houndour/footprint.1bpp"); + + const u32 gMonFrontPic_Houndoom[] = INCBIN_U32("graphics/pokemon/houndoom/anim_front.4bpp.lz"); + const u32 gMonPalette_Houndoom[] = INCBIN_U32("graphics/pokemon/houndoom/normal.gbapal.lz"); + const u32 gMonBackPic_Houndoom[] = INCBIN_U32("graphics/pokemon/houndoom/back.4bpp.lz"); + const u32 gMonShinyPalette_Houndoom[] = INCBIN_U32("graphics/pokemon/houndoom/shiny.gbapal.lz"); + const u8 gMonIcon_Houndoom[] = INCBIN_U8("graphics/pokemon/houndoom/icon.4bpp"); + const u8 gMonFootprint_Houndoom[] = INCBIN_U8("graphics/pokemon/houndoom/footprint.1bpp"); + + const u32 gMonFrontPic_HoundoomF[] = INCBIN_U32("graphics/pokemon/houndoom/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_HoundoomF[] = INCBIN_U32("graphics/pokemon/houndoom/backf.4bpp.lz"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_HoundoomMega[] = INCBIN_U32("graphics/pokemon/houndoom/mega/front.4bpp.lz"); + const u32 gMonPalette_HoundoomMega[] = INCBIN_U32("graphics/pokemon/houndoom/mega/normal.gbapal.lz"); + const u32 gMonBackPic_HoundoomMega[] = INCBIN_U32("graphics/pokemon/houndoom/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_HoundoomMega[] = INCBIN_U32("graphics/pokemon/houndoom/mega/shiny.gbapal.lz"); + const u8 gMonIcon_HoundoomMega[] = INCBIN_U8("graphics/pokemon/houndoom/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_HOUNDOUR + +#if P_FAMILY_PHANPY + const u32 gMonFrontPic_Phanpy[] = INCBIN_U32("graphics/pokemon/phanpy/anim_front.4bpp.lz"); + const u32 gMonPalette_Phanpy[] = INCBIN_U32("graphics/pokemon/phanpy/normal.gbapal.lz"); + const u32 gMonBackPic_Phanpy[] = INCBIN_U32("graphics/pokemon/phanpy/back.4bpp.lz"); + const u32 gMonShinyPalette_Phanpy[] = INCBIN_U32("graphics/pokemon/phanpy/shiny.gbapal.lz"); + const u8 gMonIcon_Phanpy[] = INCBIN_U8("graphics/pokemon/phanpy/icon.4bpp"); + const u8 gMonFootprint_Phanpy[] = INCBIN_U8("graphics/pokemon/phanpy/footprint.1bpp"); + + const u32 gMonFrontPic_Donphan[] = INCBIN_U32("graphics/pokemon/donphan/anim_front.4bpp.lz"); + const u32 gMonPalette_Donphan[] = INCBIN_U32("graphics/pokemon/donphan/normal.gbapal.lz"); + const u32 gMonBackPic_Donphan[] = INCBIN_U32("graphics/pokemon/donphan/back.4bpp.lz"); + const u32 gMonShinyPalette_Donphan[] = INCBIN_U32("graphics/pokemon/donphan/shiny.gbapal.lz"); + const u8 gMonIcon_Donphan[] = INCBIN_U8("graphics/pokemon/donphan/icon.4bpp"); + const u8 gMonFootprint_Donphan[] = INCBIN_U8("graphics/pokemon/donphan/footprint.1bpp"); + + const u32 gMonFrontPic_DonphanF[] = INCBIN_U32("graphics/pokemon/donphan/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_DonphanF[] = INCBIN_U32("graphics/pokemon/donphan/backf.4bpp.lz"); +#endif //P_FAMILY_PHANPY + +#if P_FAMILY_STANTLER + const u32 gMonFrontPic_Stantler[] = INCBIN_U32("graphics/pokemon/stantler/anim_front.4bpp.lz"); + const u32 gMonPalette_Stantler[] = INCBIN_U32("graphics/pokemon/stantler/normal.gbapal.lz"); + const u32 gMonBackPic_Stantler[] = INCBIN_U32("graphics/pokemon/stantler/back.4bpp.lz"); + const u32 gMonShinyPalette_Stantler[] = INCBIN_U32("graphics/pokemon/stantler/shiny.gbapal.lz"); + const u8 gMonIcon_Stantler[] = INCBIN_U8("graphics/pokemon/stantler/icon.4bpp"); + const u8 gMonFootprint_Stantler[] = INCBIN_U8("graphics/pokemon/stantler/footprint.1bpp"); + +#if P_GEN_8_CROSS_EVOS + const u32 gMonFrontPic_Wyrdeer[] = INCBIN_U32("graphics/pokemon/wyrdeer/front.4bpp.lz"); + const u32 gMonPalette_Wyrdeer[] = INCBIN_U32("graphics/pokemon/wyrdeer/normal.gbapal.lz"); + const u32 gMonBackPic_Wyrdeer[] = INCBIN_U32("graphics/pokemon/wyrdeer/back.4bpp.lz"); + const u32 gMonShinyPalette_Wyrdeer[] = INCBIN_U32("graphics/pokemon/wyrdeer/shiny.gbapal.lz"); + const u8 gMonIcon_Wyrdeer[] = INCBIN_U8("graphics/pokemon/wyrdeer/icon.4bpp"); + //const u8 gMonFootprint_Wyrdeer[] = INCBIN_U8("graphics/pokemon/wyrdeer/footprint.1bpp"); +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_STANTLER + +#if P_FAMILY_SMEARGLE + const u32 gMonFrontPic_Smeargle[] = INCBIN_U32("graphics/pokemon/smeargle/anim_front.4bpp.lz"); + const u32 gMonPalette_Smeargle[] = INCBIN_U32("graphics/pokemon/smeargle/normal.gbapal.lz"); + const u32 gMonBackPic_Smeargle[] = INCBIN_U32("graphics/pokemon/smeargle/back.4bpp.lz"); + const u32 gMonShinyPalette_Smeargle[] = INCBIN_U32("graphics/pokemon/smeargle/shiny.gbapal.lz"); + const u8 gMonIcon_Smeargle[] = INCBIN_U8("graphics/pokemon/smeargle/icon.4bpp"); + const u8 gMonFootprint_Smeargle[] = INCBIN_U8("graphics/pokemon/smeargle/footprint.1bpp"); +#endif //P_FAMILY_SMEARGLE + +#if P_FAMILY_MILTANK + const u32 gMonFrontPic_Miltank[] = INCBIN_U32("graphics/pokemon/miltank/anim_front.4bpp.lz"); + const u32 gMonPalette_Miltank[] = INCBIN_U32("graphics/pokemon/miltank/normal.gbapal.lz"); + const u32 gMonBackPic_Miltank[] = INCBIN_U32("graphics/pokemon/miltank/back.4bpp.lz"); + const u32 gMonShinyPalette_Miltank[] = INCBIN_U32("graphics/pokemon/miltank/shiny.gbapal.lz"); + const u8 gMonIcon_Miltank[] = INCBIN_U8("graphics/pokemon/miltank/icon.4bpp"); + const u8 gMonFootprint_Miltank[] = INCBIN_U8("graphics/pokemon/miltank/footprint.1bpp"); +#endif //P_FAMILY_MILTANK + +#if P_FAMILY_RAIKOU + const u32 gMonFrontPic_Raikou[] = INCBIN_U32("graphics/pokemon/raikou/anim_front.4bpp.lz"); + const u32 gMonPalette_Raikou[] = INCBIN_U32("graphics/pokemon/raikou/normal.gbapal.lz"); + const u32 gMonBackPic_Raikou[] = INCBIN_U32("graphics/pokemon/raikou/back.4bpp.lz"); + const u32 gMonShinyPalette_Raikou[] = INCBIN_U32("graphics/pokemon/raikou/shiny.gbapal.lz"); + const u8 gMonIcon_Raikou[] = INCBIN_U8("graphics/pokemon/raikou/icon.4bpp"); + const u8 gMonFootprint_Raikou[] = INCBIN_U8("graphics/pokemon/raikou/footprint.1bpp"); +#endif //P_FAMILY_RAIKOU + +#if P_FAMILY_ENTEI + const u32 gMonFrontPic_Entei[] = INCBIN_U32("graphics/pokemon/entei/anim_front.4bpp.lz"); + const u32 gMonPalette_Entei[] = INCBIN_U32("graphics/pokemon/entei/normal.gbapal.lz"); + const u32 gMonBackPic_Entei[] = INCBIN_U32("graphics/pokemon/entei/back.4bpp.lz"); + const u32 gMonShinyPalette_Entei[] = INCBIN_U32("graphics/pokemon/entei/shiny.gbapal.lz"); + const u8 gMonIcon_Entei[] = INCBIN_U8("graphics/pokemon/entei/icon.4bpp"); + const u8 gMonFootprint_Entei[] = INCBIN_U8("graphics/pokemon/entei/footprint.1bpp"); +#endif //P_FAMILY_ENTEI + +#if P_FAMILY_SUICUNE + const u32 gMonFrontPic_Suicune[] = INCBIN_U32("graphics/pokemon/suicune/anim_front.4bpp.lz"); + const u32 gMonPalette_Suicune[] = INCBIN_U32("graphics/pokemon/suicune/normal.gbapal.lz"); + const u32 gMonBackPic_Suicune[] = INCBIN_U32("graphics/pokemon/suicune/back.4bpp.lz"); + const u32 gMonShinyPalette_Suicune[] = INCBIN_U32("graphics/pokemon/suicune/shiny.gbapal.lz"); + const u8 gMonIcon_Suicune[] = INCBIN_U8("graphics/pokemon/suicune/icon.4bpp"); + const u8 gMonFootprint_Suicune[] = INCBIN_U8("graphics/pokemon/suicune/footprint.1bpp"); +#endif //P_FAMILY_SUICUNE + +#if P_FAMILY_LARVITAR + const u32 gMonFrontPic_Larvitar[] = INCBIN_U32("graphics/pokemon/larvitar/anim_front.4bpp.lz"); + const u32 gMonPalette_Larvitar[] = INCBIN_U32("graphics/pokemon/larvitar/normal.gbapal.lz"); + const u32 gMonBackPic_Larvitar[] = INCBIN_U32("graphics/pokemon/larvitar/back.4bpp.lz"); + const u32 gMonShinyPalette_Larvitar[] = INCBIN_U32("graphics/pokemon/larvitar/shiny.gbapal.lz"); + const u8 gMonIcon_Larvitar[] = INCBIN_U8("graphics/pokemon/larvitar/icon.4bpp"); + const u8 gMonFootprint_Larvitar[] = INCBIN_U8("graphics/pokemon/larvitar/footprint.1bpp"); + + const u32 gMonFrontPic_Pupitar[] = INCBIN_U32("graphics/pokemon/pupitar/anim_front.4bpp.lz"); + const u32 gMonPalette_Pupitar[] = INCBIN_U32("graphics/pokemon/pupitar/normal.gbapal.lz"); + const u32 gMonBackPic_Pupitar[] = INCBIN_U32("graphics/pokemon/pupitar/back.4bpp.lz"); + const u32 gMonShinyPalette_Pupitar[] = INCBIN_U32("graphics/pokemon/pupitar/shiny.gbapal.lz"); + const u8 gMonIcon_Pupitar[] = INCBIN_U8("graphics/pokemon/pupitar/icon.4bpp"); + const u8 gMonFootprint_Pupitar[] = INCBIN_U8("graphics/pokemon/pupitar/footprint.1bpp"); + + const u32 gMonFrontPic_Tyranitar[] = INCBIN_U32("graphics/pokemon/tyranitar/anim_front.4bpp.lz"); + const u32 gMonPalette_Tyranitar[] = INCBIN_U32("graphics/pokemon/tyranitar/normal.gbapal.lz"); + const u32 gMonBackPic_Tyranitar[] = INCBIN_U32("graphics/pokemon/tyranitar/back.4bpp.lz"); + const u32 gMonShinyPalette_Tyranitar[] = INCBIN_U32("graphics/pokemon/tyranitar/shiny.gbapal.lz"); + const u8 gMonIcon_Tyranitar[] = INCBIN_U8("graphics/pokemon/tyranitar/icon.4bpp"); + const u8 gMonFootprint_Tyranitar[] = INCBIN_U8("graphics/pokemon/tyranitar/footprint.1bpp"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_TyranitarMega[] = INCBIN_U32("graphics/pokemon/tyranitar/mega/front.4bpp.lz"); + const u32 gMonPalette_TyranitarMega[] = INCBIN_U32("graphics/pokemon/tyranitar/mega/normal.gbapal.lz"); + const u32 gMonBackPic_TyranitarMega[] = INCBIN_U32("graphics/pokemon/tyranitar/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_TyranitarMega[] = INCBIN_U32("graphics/pokemon/tyranitar/mega/shiny.gbapal.lz"); + const u8 gMonIcon_TyranitarMega[] = INCBIN_U8("graphics/pokemon/tyranitar/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_LARVITAR + +#if P_FAMILY_LUGIA + const u32 gMonFrontPic_Lugia[] = INCBIN_U32("graphics/pokemon/lugia/anim_front.4bpp.lz"); + const u32 gMonPalette_Lugia[] = INCBIN_U32("graphics/pokemon/lugia/normal.gbapal.lz"); + const u32 gMonBackPic_Lugia[] = INCBIN_U32("graphics/pokemon/lugia/back.4bpp.lz"); + const u32 gMonShinyPalette_Lugia[] = INCBIN_U32("graphics/pokemon/lugia/shiny.gbapal.lz"); + const u8 gMonIcon_Lugia[] = INCBIN_U8("graphics/pokemon/lugia/icon.4bpp"); + const u8 gMonFootprint_Lugia[] = INCBIN_U8("graphics/pokemon/lugia/footprint.1bpp"); +#endif //P_FAMILY_LUGIA + +#if P_FAMILY_HO_OH + const u32 gMonFrontPic_HoOh[] = INCBIN_U32("graphics/pokemon/ho_oh/anim_front.4bpp.lz"); + const u32 gMonPalette_HoOh[] = INCBIN_U32("graphics/pokemon/ho_oh/normal.gbapal.lz"); + const u32 gMonBackPic_HoOh[] = INCBIN_U32("graphics/pokemon/ho_oh/back.4bpp.lz"); + const u32 gMonShinyPalette_HoOh[] = INCBIN_U32("graphics/pokemon/ho_oh/shiny.gbapal.lz"); + const u8 gMonIcon_HoOh[] = INCBIN_U8("graphics/pokemon/ho_oh/icon.4bpp"); + const u8 gMonFootprint_HoOh[] = INCBIN_U8("graphics/pokemon/ho_oh/footprint.1bpp"); +#endif //P_FAMILY_HO_OH + +#if P_FAMILY_CELEBI + const u32 gMonFrontPic_Celebi[] = INCBIN_U32("graphics/pokemon/celebi/anim_front.4bpp.lz"); + const u32 gMonPalette_Celebi[] = INCBIN_U32("graphics/pokemon/celebi/normal.gbapal.lz"); + const u32 gMonBackPic_Celebi[] = INCBIN_U32("graphics/pokemon/celebi/back.4bpp.lz"); + const u32 gMonShinyPalette_Celebi[] = INCBIN_U32("graphics/pokemon/celebi/shiny.gbapal.lz"); + const u8 gMonIcon_Celebi[] = INCBIN_U8("graphics/pokemon/celebi/icon.4bpp"); + const u8 gMonFootprint_Celebi[] = INCBIN_U8("graphics/pokemon/celebi/footprint.1bpp"); +#endif //P_FAMILY_CELEBI + +#if P_FAMILY_TREECKO + const u32 gMonFrontPic_Treecko[] = INCBIN_U32("graphics/pokemon/treecko/anim_front.4bpp.lz"); + const u32 gMonPalette_Treecko[] = INCBIN_U32("graphics/pokemon/treecko/normal.gbapal.lz"); + const u32 gMonBackPic_Treecko[] = INCBIN_U32("graphics/pokemon/treecko/back.4bpp.lz"); + const u32 gMonShinyPalette_Treecko[] = INCBIN_U32("graphics/pokemon/treecko/shiny.gbapal.lz"); + const u8 gMonIcon_Treecko[] = INCBIN_U8("graphics/pokemon/treecko/icon.4bpp"); + const u8 gMonFootprint_Treecko[] = INCBIN_U8("graphics/pokemon/treecko/footprint.1bpp"); + + const u32 gMonFrontPic_Grovyle[] = INCBIN_U32("graphics/pokemon/grovyle/anim_front.4bpp.lz"); + const u32 gMonPalette_Grovyle[] = INCBIN_U32("graphics/pokemon/grovyle/normal.gbapal.lz"); + const u32 gMonBackPic_Grovyle[] = INCBIN_U32("graphics/pokemon/grovyle/back.4bpp.lz"); + const u32 gMonShinyPalette_Grovyle[] = INCBIN_U32("graphics/pokemon/grovyle/shiny.gbapal.lz"); + const u8 gMonIcon_Grovyle[] = INCBIN_U8("graphics/pokemon/grovyle/icon.4bpp"); + const u8 gMonFootprint_Grovyle[] = INCBIN_U8("graphics/pokemon/grovyle/footprint.1bpp"); + + const u32 gMonFrontPic_Sceptile[] = INCBIN_U32("graphics/pokemon/sceptile/anim_front.4bpp.lz"); + const u32 gMonPalette_Sceptile[] = INCBIN_U32("graphics/pokemon/sceptile/normal.gbapal.lz"); + const u32 gMonBackPic_Sceptile[] = INCBIN_U32("graphics/pokemon/sceptile/back.4bpp.lz"); + const u32 gMonShinyPalette_Sceptile[] = INCBIN_U32("graphics/pokemon/sceptile/shiny.gbapal.lz"); + const u8 gMonIcon_Sceptile[] = INCBIN_U8("graphics/pokemon/sceptile/icon.4bpp"); + const u8 gMonFootprint_Sceptile[] = INCBIN_U8("graphics/pokemon/sceptile/footprint.1bpp"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_SceptileMega[] = INCBIN_U32("graphics/pokemon/sceptile/mega/front.4bpp.lz"); + const u32 gMonPalette_SceptileMega[] = INCBIN_U32("graphics/pokemon/sceptile/mega/normal.gbapal.lz"); + const u32 gMonBackPic_SceptileMega[] = INCBIN_U32("graphics/pokemon/sceptile/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_SceptileMega[] = INCBIN_U32("graphics/pokemon/sceptile/mega/shiny.gbapal.lz"); + const u8 gMonIcon_SceptileMega[] = INCBIN_U8("graphics/pokemon/sceptile/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_TREECKO + +#if P_FAMILY_TORCHIC + const u32 gMonFrontPic_Torchic[] = INCBIN_U32("graphics/pokemon/torchic/anim_front.4bpp.lz"); + const u32 gMonPalette_Torchic[] = INCBIN_U32("graphics/pokemon/torchic/normal.gbapal.lz"); + const u32 gMonBackPic_Torchic[] = INCBIN_U32("graphics/pokemon/torchic/back.4bpp.lz"); + const u32 gMonShinyPalette_Torchic[] = INCBIN_U32("graphics/pokemon/torchic/shiny.gbapal.lz"); + const u8 gMonIcon_Torchic[] = INCBIN_U8("graphics/pokemon/torchic/icon.4bpp"); + const u8 gMonFootprint_Torchic[] = INCBIN_U8("graphics/pokemon/torchic/footprint.1bpp"); + + const u32 gMonBackPic_TorchicF[] = INCBIN_U32("graphics/pokemon/torchic/backf.4bpp.lz"); + + const u32 gMonFrontPic_Combusken[] = INCBIN_U32("graphics/pokemon/combusken/anim_front.4bpp.lz"); + const u32 gMonPalette_Combusken[] = INCBIN_U32("graphics/pokemon/combusken/normal.gbapal.lz"); + const u32 gMonBackPic_Combusken[] = INCBIN_U32("graphics/pokemon/combusken/back.4bpp.lz"); + const u32 gMonShinyPalette_Combusken[] = INCBIN_U32("graphics/pokemon/combusken/shiny.gbapal.lz"); + const u8 gMonIcon_Combusken[] = INCBIN_U8("graphics/pokemon/combusken/icon.4bpp"); + const u8 gMonFootprint_Combusken[] = INCBIN_U8("graphics/pokemon/combusken/footprint.1bpp"); + + const u32 gMonFrontPic_CombuskenF[] = INCBIN_U32("graphics/pokemon/combusken/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_CombuskenF[] = INCBIN_U32("graphics/pokemon/combusken/backf.4bpp.lz"); + + const u32 gMonFrontPic_Blaziken[] = INCBIN_U32("graphics/pokemon/blaziken/anim_front.4bpp.lz"); + const u32 gMonPalette_Blaziken[] = INCBIN_U32("graphics/pokemon/blaziken/normal.gbapal.lz"); + const u32 gMonBackPic_Blaziken[] = INCBIN_U32("graphics/pokemon/blaziken/back.4bpp.lz"); + const u32 gMonShinyPalette_Blaziken[] = INCBIN_U32("graphics/pokemon/blaziken/shiny.gbapal.lz"); + const u8 gMonIcon_Blaziken[] = INCBIN_U8("graphics/pokemon/blaziken/icon.4bpp"); + const u8 gMonFootprint_Blaziken[] = INCBIN_U8("graphics/pokemon/blaziken/footprint.1bpp"); + + const u32 gMonFrontPic_BlazikenF[] = INCBIN_U32("graphics/pokemon/blaziken/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_BlazikenF[] = INCBIN_U32("graphics/pokemon/blaziken/backf.4bpp.lz"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_BlazikenMega[] = INCBIN_U32("graphics/pokemon/blaziken/mega/front.4bpp.lz"); + const u32 gMonPalette_BlazikenMega[] = INCBIN_U32("graphics/pokemon/blaziken/mega/normal.gbapal.lz"); + const u32 gMonBackPic_BlazikenMega[] = INCBIN_U32("graphics/pokemon/blaziken/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_BlazikenMega[] = INCBIN_U32("graphics/pokemon/blaziken/mega/shiny.gbapal.lz"); + const u8 gMonIcon_BlazikenMega[] = INCBIN_U8("graphics/pokemon/blaziken/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_TORCHIC + +#if P_FAMILY_MUDKIP + const u32 gMonFrontPic_Mudkip[] = INCBIN_U32("graphics/pokemon/mudkip/anim_front.4bpp.lz"); + const u32 gMonPalette_Mudkip[] = INCBIN_U32("graphics/pokemon/mudkip/normal.gbapal.lz"); + const u32 gMonBackPic_Mudkip[] = INCBIN_U32("graphics/pokemon/mudkip/back.4bpp.lz"); + const u32 gMonShinyPalette_Mudkip[] = INCBIN_U32("graphics/pokemon/mudkip/shiny.gbapal.lz"); + const u8 gMonIcon_Mudkip[] = INCBIN_U8("graphics/pokemon/mudkip/icon.4bpp"); + const u8 gMonFootprint_Mudkip[] = INCBIN_U8("graphics/pokemon/mudkip/footprint.1bpp"); + + const u32 gMonFrontPic_Marshtomp[] = INCBIN_U32("graphics/pokemon/marshtomp/anim_front.4bpp.lz"); + const u32 gMonPalette_Marshtomp[] = INCBIN_U32("graphics/pokemon/marshtomp/normal.gbapal.lz"); + const u32 gMonBackPic_Marshtomp[] = INCBIN_U32("graphics/pokemon/marshtomp/back.4bpp.lz"); + const u32 gMonShinyPalette_Marshtomp[] = INCBIN_U32("graphics/pokemon/marshtomp/shiny.gbapal.lz"); + const u8 gMonIcon_Marshtomp[] = INCBIN_U8("graphics/pokemon/marshtomp/icon.4bpp"); + const u8 gMonFootprint_Marshtomp[] = INCBIN_U8("graphics/pokemon/marshtomp/footprint.1bpp"); + + const u32 gMonFrontPic_Swampert[] = INCBIN_U32("graphics/pokemon/swampert/anim_front.4bpp.lz"); + const u32 gMonPalette_Swampert[] = INCBIN_U32("graphics/pokemon/swampert/normal.gbapal.lz"); + const u32 gMonBackPic_Swampert[] = INCBIN_U32("graphics/pokemon/swampert/back.4bpp.lz"); + const u32 gMonShinyPalette_Swampert[] = INCBIN_U32("graphics/pokemon/swampert/shiny.gbapal.lz"); + const u8 gMonIcon_Swampert[] = INCBIN_U8("graphics/pokemon/swampert/icon.4bpp"); + const u8 gMonFootprint_Swampert[] = INCBIN_U8("graphics/pokemon/swampert/footprint.1bpp"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_SwampertMega[] = INCBIN_U32("graphics/pokemon/swampert/mega/front.4bpp.lz"); + const u32 gMonPalette_SwampertMega[] = INCBIN_U32("graphics/pokemon/swampert/mega/normal.gbapal.lz"); + const u32 gMonBackPic_SwampertMega[] = INCBIN_U32("graphics/pokemon/swampert/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_SwampertMega[] = INCBIN_U32("graphics/pokemon/swampert/mega/shiny.gbapal.lz"); + const u8 gMonIcon_SwampertMega[] = INCBIN_U8("graphics/pokemon/swampert/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_MUDKIP + +#if P_FAMILY_POOCHYENA + const u32 gMonFrontPic_Poochyena[] = INCBIN_U32("graphics/pokemon/poochyena/anim_front.4bpp.lz"); + const u32 gMonPalette_Poochyena[] = INCBIN_U32("graphics/pokemon/poochyena/normal.gbapal.lz"); + const u32 gMonBackPic_Poochyena[] = INCBIN_U32("graphics/pokemon/poochyena/back.4bpp.lz"); + const u32 gMonShinyPalette_Poochyena[] = INCBIN_U32("graphics/pokemon/poochyena/shiny.gbapal.lz"); + const u8 gMonIcon_Poochyena[] = INCBIN_U8("graphics/pokemon/poochyena/icon.4bpp"); + const u8 gMonFootprint_Poochyena[] = INCBIN_U8("graphics/pokemon/poochyena/footprint.1bpp"); + + const u32 gMonFrontPic_Mightyena[] = INCBIN_U32("graphics/pokemon/mightyena/anim_front.4bpp.lz"); + const u32 gMonPalette_Mightyena[] = INCBIN_U32("graphics/pokemon/mightyena/normal.gbapal.lz"); + const u32 gMonBackPic_Mightyena[] = INCBIN_U32("graphics/pokemon/mightyena/back.4bpp.lz"); + const u32 gMonShinyPalette_Mightyena[] = INCBIN_U32("graphics/pokemon/mightyena/shiny.gbapal.lz"); + const u8 gMonIcon_Mightyena[] = INCBIN_U8("graphics/pokemon/mightyena/icon.4bpp"); + const u8 gMonFootprint_Mightyena[] = INCBIN_U8("graphics/pokemon/mightyena/footprint.1bpp"); +#endif //P_FAMILY_POOCHYENA + +#if P_FAMILY_ZIGZAGOON + const u32 gMonFrontPic_Zigzagoon[] = INCBIN_U32("graphics/pokemon/zigzagoon/anim_front.4bpp.lz"); + const u32 gMonPalette_Zigzagoon[] = INCBIN_U32("graphics/pokemon/zigzagoon/normal.gbapal.lz"); + const u32 gMonBackPic_Zigzagoon[] = INCBIN_U32("graphics/pokemon/zigzagoon/back.4bpp.lz"); + const u32 gMonShinyPalette_Zigzagoon[] = INCBIN_U32("graphics/pokemon/zigzagoon/shiny.gbapal.lz"); + const u8 gMonIcon_Zigzagoon[] = INCBIN_U8("graphics/pokemon/zigzagoon/icon.4bpp"); + const u8 gMonFootprint_Zigzagoon[] = INCBIN_U8("graphics/pokemon/zigzagoon/footprint.1bpp"); + + const u32 gMonFrontPic_Linoone[] = INCBIN_U32("graphics/pokemon/linoone/anim_front.4bpp.lz"); + const u32 gMonPalette_Linoone[] = INCBIN_U32("graphics/pokemon/linoone/normal.gbapal.lz"); + const u32 gMonBackPic_Linoone[] = INCBIN_U32("graphics/pokemon/linoone/back.4bpp.lz"); + const u32 gMonShinyPalette_Linoone[] = INCBIN_U32("graphics/pokemon/linoone/shiny.gbapal.lz"); + const u8 gMonIcon_Linoone[] = INCBIN_U8("graphics/pokemon/linoone/icon.4bpp"); + const u8 gMonFootprint_Linoone[] = INCBIN_U8("graphics/pokemon/linoone/footprint.1bpp"); + +#if P_GALARIAN_FORMS + const u32 gMonFrontPic_ZigzagoonGalarian[] = INCBIN_U32("graphics/pokemon/zigzagoon/galarian/front.4bpp.lz"); + const u32 gMonPalette_ZigzagoonGalarian[] = INCBIN_U32("graphics/pokemon/zigzagoon/galarian/normal.gbapal.lz"); + const u32 gMonBackPic_ZigzagoonGalarian[] = INCBIN_U32("graphics/pokemon/zigzagoon/galarian/back.4bpp.lz"); + const u32 gMonShinyPalette_ZigzagoonGalarian[] = INCBIN_U32("graphics/pokemon/zigzagoon/galarian/shiny.gbapal.lz"); + const u8 gMonIcon_ZigzagoonGalarian[] = INCBIN_U8("graphics/pokemon/zigzagoon/galarian/icon.4bpp"); + + const u32 gMonFrontPic_LinooneGalarian[] = INCBIN_U32("graphics/pokemon/linoone/galarian/front.4bpp.lz"); + const u32 gMonPalette_LinooneGalarian[] = INCBIN_U32("graphics/pokemon/linoone/galarian/normal.gbapal.lz"); + const u32 gMonBackPic_LinooneGalarian[] = INCBIN_U32("graphics/pokemon/linoone/galarian/back.4bpp.lz"); + const u32 gMonShinyPalette_LinooneGalarian[] = INCBIN_U32("graphics/pokemon/linoone/galarian/shiny.gbapal.lz"); + const u8 gMonIcon_LinooneGalarian[] = INCBIN_U8("graphics/pokemon/linoone/galarian/icon.4bpp"); + + const u32 gMonFrontPic_Obstagoon[] = INCBIN_U32("graphics/pokemon/obstagoon/front.4bpp.lz"); + const u32 gMonPalette_Obstagoon[] = INCBIN_U32("graphics/pokemon/obstagoon/normal.gbapal.lz"); + const u32 gMonBackPic_Obstagoon[] = INCBIN_U32("graphics/pokemon/obstagoon/back.4bpp.lz"); + const u32 gMonShinyPalette_Obstagoon[] = INCBIN_U32("graphics/pokemon/obstagoon/shiny.gbapal.lz"); + const u8 gMonIcon_Obstagoon[] = INCBIN_U8("graphics/pokemon/obstagoon/icon.4bpp"); + const u8 gMonFootprint_Obstagoon[] = INCBIN_U8("graphics/pokemon/obstagoon/footprint.1bpp"); +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ZIGZAGOON + +#if P_FAMILY_WURMPLE + const u32 gMonFrontPic_Wurmple[] = INCBIN_U32("graphics/pokemon/wurmple/anim_front.4bpp.lz"); + const u32 gMonPalette_Wurmple[] = INCBIN_U32("graphics/pokemon/wurmple/normal.gbapal.lz"); + const u32 gMonBackPic_Wurmple[] = INCBIN_U32("graphics/pokemon/wurmple/back.4bpp.lz"); + const u32 gMonShinyPalette_Wurmple[] = INCBIN_U32("graphics/pokemon/wurmple/shiny.gbapal.lz"); + const u8 gMonIcon_Wurmple[] = INCBIN_U8("graphics/pokemon/wurmple/icon.4bpp"); + const u8 gMonFootprint_Wurmple[] = INCBIN_U8("graphics/pokemon/wurmple/footprint.1bpp"); + + const u32 gMonFrontPic_Silcoon[] = INCBIN_U32("graphics/pokemon/silcoon/anim_front.4bpp.lz"); + const u32 gMonPalette_Silcoon[] = INCBIN_U32("graphics/pokemon/silcoon/normal.gbapal.lz"); + const u32 gMonBackPic_Silcoon[] = INCBIN_U32("graphics/pokemon/silcoon/back.4bpp.lz"); + const u32 gMonShinyPalette_Silcoon[] = INCBIN_U32("graphics/pokemon/silcoon/shiny.gbapal.lz"); + const u8 gMonIcon_Silcoon[] = INCBIN_U8("graphics/pokemon/silcoon/icon.4bpp"); + const u8 gMonFootprint_Silcoon[] = INCBIN_U8("graphics/pokemon/silcoon/footprint.1bpp"); + + const u32 gMonFrontPic_Beautifly[] = INCBIN_U32("graphics/pokemon/beautifly/anim_front.4bpp.lz"); + const u32 gMonPalette_Beautifly[] = INCBIN_U32("graphics/pokemon/beautifly/normal.gbapal.lz"); + const u32 gMonBackPic_Beautifly[] = INCBIN_U32("graphics/pokemon/beautifly/back.4bpp.lz"); + const u32 gMonShinyPalette_Beautifly[] = INCBIN_U32("graphics/pokemon/beautifly/shiny.gbapal.lz"); + const u8 gMonIcon_Beautifly[] = INCBIN_U8("graphics/pokemon/beautifly/icon.4bpp"); + const u8 gMonFootprint_Beautifly[] = INCBIN_U8("graphics/pokemon/beautifly/footprint.1bpp"); + + const u32 gMonFrontPic_BeautiflyF[] = INCBIN_U32("graphics/pokemon/beautifly/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_BeautiflyF[] = INCBIN_U32("graphics/pokemon/beautifly/backf.4bpp.lz"); + + const u32 gMonFrontPic_Cascoon[] = INCBIN_U32("graphics/pokemon/cascoon/anim_front.4bpp.lz"); + const u32 gMonPalette_Cascoon[] = INCBIN_U32("graphics/pokemon/cascoon/normal.gbapal.lz"); + const u32 gMonBackPic_Cascoon[] = INCBIN_U32("graphics/pokemon/cascoon/back.4bpp.lz"); + const u32 gMonShinyPalette_Cascoon[] = INCBIN_U32("graphics/pokemon/cascoon/shiny.gbapal.lz"); + const u8 gMonIcon_Cascoon[] = INCBIN_U8("graphics/pokemon/cascoon/icon.4bpp"); + const u8 gMonFootprint_Cascoon[] = INCBIN_U8("graphics/pokemon/cascoon/footprint.1bpp"); + + const u32 gMonFrontPic_Dustox[] = INCBIN_U32("graphics/pokemon/dustox/anim_front.4bpp.lz"); + const u32 gMonPalette_Dustox[] = INCBIN_U32("graphics/pokemon/dustox/normal.gbapal.lz"); + const u32 gMonBackPic_Dustox[] = INCBIN_U32("graphics/pokemon/dustox/back.4bpp.lz"); + const u32 gMonShinyPalette_Dustox[] = INCBIN_U32("graphics/pokemon/dustox/shiny.gbapal.lz"); + const u8 gMonIcon_Dustox[] = INCBIN_U8("graphics/pokemon/dustox/icon.4bpp"); + const u8 gMonFootprint_Dustox[] = INCBIN_U8("graphics/pokemon/dustox/footprint.1bpp"); + + const u32 gMonFrontPic_DustoxF[] = INCBIN_U32("graphics/pokemon/dustox/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_DustoxF[] = INCBIN_U32("graphics/pokemon/dustox/backf.4bpp.lz"); +#endif //P_FAMILY_WURMPLE + +#if P_FAMILY_LOTAD + const u32 gMonFrontPic_Lotad[] = INCBIN_U32("graphics/pokemon/lotad/anim_front.4bpp.lz"); + const u32 gMonPalette_Lotad[] = INCBIN_U32("graphics/pokemon/lotad/normal.gbapal.lz"); + const u32 gMonBackPic_Lotad[] = INCBIN_U32("graphics/pokemon/lotad/back.4bpp.lz"); + const u32 gMonShinyPalette_Lotad[] = INCBIN_U32("graphics/pokemon/lotad/shiny.gbapal.lz"); + const u8 gMonIcon_Lotad[] = INCBIN_U8("graphics/pokemon/lotad/icon.4bpp"); + const u8 gMonFootprint_Lotad[] = INCBIN_U8("graphics/pokemon/lotad/footprint.1bpp"); + + const u32 gMonFrontPic_Lombre[] = INCBIN_U32("graphics/pokemon/lombre/anim_front.4bpp.lz"); + const u32 gMonPalette_Lombre[] = INCBIN_U32("graphics/pokemon/lombre/normal.gbapal.lz"); + const u32 gMonBackPic_Lombre[] = INCBIN_U32("graphics/pokemon/lombre/back.4bpp.lz"); + const u32 gMonShinyPalette_Lombre[] = INCBIN_U32("graphics/pokemon/lombre/shiny.gbapal.lz"); + const u8 gMonIcon_Lombre[] = INCBIN_U8("graphics/pokemon/lombre/icon.4bpp"); + const u8 gMonFootprint_Lombre[] = INCBIN_U8("graphics/pokemon/lombre/footprint.1bpp"); + + const u32 gMonFrontPic_Ludicolo[] = INCBIN_U32("graphics/pokemon/ludicolo/anim_front.4bpp.lz"); + const u32 gMonPalette_Ludicolo[] = INCBIN_U32("graphics/pokemon/ludicolo/normal.gbapal.lz"); + const u32 gMonBackPic_Ludicolo[] = INCBIN_U32("graphics/pokemon/ludicolo/back.4bpp.lz"); + const u32 gMonShinyPalette_Ludicolo[] = INCBIN_U32("graphics/pokemon/ludicolo/shiny.gbapal.lz"); + const u8 gMonIcon_Ludicolo[] = INCBIN_U8("graphics/pokemon/ludicolo/icon.4bpp"); + const u8 gMonFootprint_Ludicolo[] = INCBIN_U8("graphics/pokemon/ludicolo/footprint.1bpp"); + + const u32 gMonFrontPic_LudicoloF[] = INCBIN_U32("graphics/pokemon/ludicolo/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_LudicoloF[] = INCBIN_U32("graphics/pokemon/ludicolo/backf.4bpp.lz"); +#endif //P_FAMILY_LOTAD + +#if P_FAMILY_SEEDOT + const u32 gMonFrontPic_Seedot[] = INCBIN_U32("graphics/pokemon/seedot/anim_front.4bpp.lz"); + const u32 gMonPalette_Seedot[] = INCBIN_U32("graphics/pokemon/seedot/normal.gbapal.lz"); + const u32 gMonBackPic_Seedot[] = INCBIN_U32("graphics/pokemon/seedot/back.4bpp.lz"); + const u32 gMonShinyPalette_Seedot[] = INCBIN_U32("graphics/pokemon/seedot/shiny.gbapal.lz"); + const u8 gMonIcon_Seedot[] = INCBIN_U8("graphics/pokemon/seedot/icon.4bpp"); + const u8 gMonFootprint_Seedot[] = INCBIN_U8("graphics/pokemon/seedot/footprint.1bpp"); + + const u32 gMonFrontPic_Nuzleaf[] = INCBIN_U32("graphics/pokemon/nuzleaf/anim_front.4bpp.lz"); + const u32 gMonPalette_Nuzleaf[] = INCBIN_U32("graphics/pokemon/nuzleaf/normal.gbapal.lz"); + const u32 gMonBackPic_Nuzleaf[] = INCBIN_U32("graphics/pokemon/nuzleaf/back.4bpp.lz"); + const u32 gMonShinyPalette_Nuzleaf[] = INCBIN_U32("graphics/pokemon/nuzleaf/shiny.gbapal.lz"); + const u8 gMonIcon_Nuzleaf[] = INCBIN_U8("graphics/pokemon/nuzleaf/icon.4bpp"); + const u8 gMonFootprint_Nuzleaf[] = INCBIN_U8("graphics/pokemon/nuzleaf/footprint.1bpp"); + + const u32 gMonFrontPic_NuzleafF[] = INCBIN_U32("graphics/pokemon/nuzleaf/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_NuzleafF[] = INCBIN_U32("graphics/pokemon/nuzleaf/backf.4bpp.lz"); + + const u32 gMonFrontPic_Shiftry[] = INCBIN_U32("graphics/pokemon/shiftry/anim_front.4bpp.lz"); + const u32 gMonPalette_Shiftry[] = INCBIN_U32("graphics/pokemon/shiftry/normal.gbapal.lz"); + const u32 gMonBackPic_Shiftry[] = INCBIN_U32("graphics/pokemon/shiftry/back.4bpp.lz"); + const u32 gMonShinyPalette_Shiftry[] = INCBIN_U32("graphics/pokemon/shiftry/shiny.gbapal.lz"); + const u8 gMonIcon_Shiftry[] = INCBIN_U8("graphics/pokemon/shiftry/icon.4bpp"); + const u8 gMonFootprint_Shiftry[] = INCBIN_U8("graphics/pokemon/shiftry/footprint.1bpp"); + + const u32 gMonFrontPic_ShiftryF[] = INCBIN_U32("graphics/pokemon/shiftry/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_ShiftryF[] = INCBIN_U32("graphics/pokemon/shiftry/backf.4bpp.lz"); +#endif //P_FAMILY_SEEDOT + +#if P_FAMILY_TAILLOW + const u32 gMonFrontPic_Taillow[] = INCBIN_U32("graphics/pokemon/taillow/anim_front.4bpp.lz"); + const u32 gMonPalette_Taillow[] = INCBIN_U32("graphics/pokemon/taillow/normal.gbapal.lz"); + const u32 gMonBackPic_Taillow[] = INCBIN_U32("graphics/pokemon/taillow/back.4bpp.lz"); + const u32 gMonShinyPalette_Taillow[] = INCBIN_U32("graphics/pokemon/taillow/shiny.gbapal.lz"); + const u8 gMonIcon_Taillow[] = INCBIN_U8("graphics/pokemon/taillow/icon.4bpp"); + const u8 gMonFootprint_Taillow[] = INCBIN_U8("graphics/pokemon/taillow/footprint.1bpp"); + + const u32 gMonFrontPic_Swellow[] = INCBIN_U32("graphics/pokemon/swellow/anim_front.4bpp.lz"); + const u32 gMonPalette_Swellow[] = INCBIN_U32("graphics/pokemon/swellow/normal.gbapal.lz"); + const u32 gMonBackPic_Swellow[] = INCBIN_U32("graphics/pokemon/swellow/back.4bpp.lz"); + const u32 gMonShinyPalette_Swellow[] = INCBIN_U32("graphics/pokemon/swellow/shiny.gbapal.lz"); + const u8 gMonIcon_Swellow[] = INCBIN_U8("graphics/pokemon/swellow/icon.4bpp"); + const u8 gMonFootprint_Swellow[] = INCBIN_U8("graphics/pokemon/swellow/footprint.1bpp"); +#endif //P_FAMILY_TAILLOW + +#if P_FAMILY_WINGULL + const u32 gMonFrontPic_Wingull[] = INCBIN_U32("graphics/pokemon/wingull/anim_front.4bpp.lz"); + const u32 gMonPalette_Wingull[] = INCBIN_U32("graphics/pokemon/wingull/normal.gbapal.lz"); + const u32 gMonBackPic_Wingull[] = INCBIN_U32("graphics/pokemon/wingull/back.4bpp.lz"); + const u32 gMonShinyPalette_Wingull[] = INCBIN_U32("graphics/pokemon/wingull/shiny.gbapal.lz"); + const u8 gMonIcon_Wingull[] = INCBIN_U8("graphics/pokemon/wingull/icon.4bpp"); + const u8 gMonFootprint_Wingull[] = INCBIN_U8("graphics/pokemon/wingull/footprint.1bpp"); + + const u32 gMonFrontPic_Pelipper[] = INCBIN_U32("graphics/pokemon/pelipper/anim_front.4bpp.lz"); + const u32 gMonPalette_Pelipper[] = INCBIN_U32("graphics/pokemon/pelipper/normal.gbapal.lz"); + const u32 gMonBackPic_Pelipper[] = INCBIN_U32("graphics/pokemon/pelipper/back.4bpp.lz"); + const u32 gMonShinyPalette_Pelipper[] = INCBIN_U32("graphics/pokemon/pelipper/shiny.gbapal.lz"); + const u8 gMonIcon_Pelipper[] = INCBIN_U8("graphics/pokemon/pelipper/icon.4bpp"); + const u8 gMonFootprint_Pelipper[] = INCBIN_U8("graphics/pokemon/pelipper/footprint.1bpp"); +#endif //P_FAMILY_WINGULL + +#if P_FAMILY_RALTS + const u32 gMonFrontPic_Ralts[] = INCBIN_U32("graphics/pokemon/ralts/anim_front.4bpp.lz"); + const u32 gMonPalette_Ralts[] = INCBIN_U32("graphics/pokemon/ralts/normal.gbapal.lz"); + const u32 gMonBackPic_Ralts[] = INCBIN_U32("graphics/pokemon/ralts/back.4bpp.lz"); + const u32 gMonShinyPalette_Ralts[] = INCBIN_U32("graphics/pokemon/ralts/shiny.gbapal.lz"); + const u8 gMonIcon_Ralts[] = INCBIN_U8("graphics/pokemon/ralts/icon.4bpp"); + const u8 gMonFootprint_Ralts[] = INCBIN_U8("graphics/pokemon/ralts/footprint.1bpp"); + + const u32 gMonFrontPic_Kirlia[] = INCBIN_U32("graphics/pokemon/kirlia/anim_front.4bpp.lz"); + const u32 gMonPalette_Kirlia[] = INCBIN_U32("graphics/pokemon/kirlia/normal.gbapal.lz"); + const u32 gMonBackPic_Kirlia[] = INCBIN_U32("graphics/pokemon/kirlia/back.4bpp.lz"); + const u32 gMonShinyPalette_Kirlia[] = INCBIN_U32("graphics/pokemon/kirlia/shiny.gbapal.lz"); + const u8 gMonIcon_Kirlia[] = INCBIN_U8("graphics/pokemon/kirlia/icon.4bpp"); + const u8 gMonFootprint_Kirlia[] = INCBIN_U8("graphics/pokemon/kirlia/footprint.1bpp"); + + const u32 gMonFrontPic_Gardevoir[] = INCBIN_U32("graphics/pokemon/gardevoir/anim_front.4bpp.lz"); + const u32 gMonPalette_Gardevoir[] = INCBIN_U32("graphics/pokemon/gardevoir/normal.gbapal.lz"); + const u32 gMonBackPic_Gardevoir[] = INCBIN_U32("graphics/pokemon/gardevoir/back.4bpp.lz"); + const u32 gMonShinyPalette_Gardevoir[] = INCBIN_U32("graphics/pokemon/gardevoir/shiny.gbapal.lz"); + const u8 gMonIcon_Gardevoir[] = INCBIN_U8("graphics/pokemon/gardevoir/icon.4bpp"); + const u8 gMonFootprint_Gardevoir[] = INCBIN_U8("graphics/pokemon/gardevoir/footprint.1bpp"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_GardevoirMega[] = INCBIN_U32("graphics/pokemon/gardevoir/mega/front.4bpp.lz"); + const u32 gMonPalette_GardevoirMega[] = INCBIN_U32("graphics/pokemon/gardevoir/mega/normal.gbapal.lz"); + const u32 gMonBackPic_GardevoirMega[] = INCBIN_U32("graphics/pokemon/gardevoir/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_GardevoirMega[] = INCBIN_U32("graphics/pokemon/gardevoir/mega/shiny.gbapal.lz"); + const u8 gMonIcon_GardevoirMega[] = INCBIN_U8("graphics/pokemon/gardevoir/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS + +#if P_GEN_4_CROSS_EVOS + const u32 gMonFrontPic_Gallade[] = INCBIN_U32("graphics/pokemon/gallade/anim_front.4bpp.lz"); + const u32 gMonPalette_Gallade[] = INCBIN_U32("graphics/pokemon/gallade/normal.gbapal.lz"); + const u32 gMonBackPic_Gallade[] = INCBIN_U32("graphics/pokemon/gallade/back.4bpp.lz"); + const u32 gMonShinyPalette_Gallade[] = INCBIN_U32("graphics/pokemon/gallade/shiny.gbapal.lz"); + const u8 gMonIcon_Gallade[] = INCBIN_U8("graphics/pokemon/gallade/icon.4bpp"); + const u8 gMonFootprint_Gallade[] = INCBIN_U8("graphics/pokemon/gallade/footprint.1bpp"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_GalladeMega[] = INCBIN_U32("graphics/pokemon/gallade/mega/front.4bpp.lz"); + const u32 gMonPalette_GalladeMega[] = INCBIN_U32("graphics/pokemon/gallade/mega/normal.gbapal.lz"); + const u32 gMonBackPic_GalladeMega[] = INCBIN_U32("graphics/pokemon/gallade/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_GalladeMega[] = INCBIN_U32("graphics/pokemon/gallade/mega/shiny.gbapal.lz"); + const u8 gMonIcon_GalladeMega[] = INCBIN_U8("graphics/pokemon/gallade/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_RALTS + +#if P_FAMILY_SURSKIT + const u32 gMonFrontPic_Surskit[] = INCBIN_U32("graphics/pokemon/surskit/anim_front.4bpp.lz"); + const u32 gMonPalette_Surskit[] = INCBIN_U32("graphics/pokemon/surskit/normal.gbapal.lz"); + const u32 gMonBackPic_Surskit[] = INCBIN_U32("graphics/pokemon/surskit/back.4bpp.lz"); + const u32 gMonShinyPalette_Surskit[] = INCBIN_U32("graphics/pokemon/surskit/shiny.gbapal.lz"); + const u8 gMonIcon_Surskit[] = INCBIN_U8("graphics/pokemon/surskit/icon.4bpp"); + const u8 gMonFootprint_Surskit[] = INCBIN_U8("graphics/pokemon/surskit/footprint.1bpp"); + + const u32 gMonFrontPic_Masquerain[] = INCBIN_U32("graphics/pokemon/masquerain/anim_front.4bpp.lz"); + const u32 gMonPalette_Masquerain[] = INCBIN_U32("graphics/pokemon/masquerain/normal.gbapal.lz"); + const u32 gMonBackPic_Masquerain[] = INCBIN_U32("graphics/pokemon/masquerain/back.4bpp.lz"); + const u32 gMonShinyPalette_Masquerain[] = INCBIN_U32("graphics/pokemon/masquerain/shiny.gbapal.lz"); + const u8 gMonIcon_Masquerain[] = INCBIN_U8("graphics/pokemon/masquerain/icon.4bpp"); + const u8 gMonFootprint_Masquerain[] = INCBIN_U8("graphics/pokemon/masquerain/footprint.1bpp"); +#endif //P_FAMILY_SURSKIT + +#if P_FAMILY_SHROOMISH + const u32 gMonFrontPic_Shroomish[] = INCBIN_U32("graphics/pokemon/shroomish/anim_front.4bpp.lz"); + const u32 gMonPalette_Shroomish[] = INCBIN_U32("graphics/pokemon/shroomish/normal.gbapal.lz"); + const u32 gMonBackPic_Shroomish[] = INCBIN_U32("graphics/pokemon/shroomish/back.4bpp.lz"); + const u32 gMonShinyPalette_Shroomish[] = INCBIN_U32("graphics/pokemon/shroomish/shiny.gbapal.lz"); + const u8 gMonIcon_Shroomish[] = INCBIN_U8("graphics/pokemon/shroomish/icon.4bpp"); + const u8 gMonFootprint_Shroomish[] = INCBIN_U8("graphics/pokemon/shroomish/footprint.1bpp"); + + const u32 gMonFrontPic_Breloom[] = INCBIN_U32("graphics/pokemon/breloom/anim_front.4bpp.lz"); + const u32 gMonPalette_Breloom[] = INCBIN_U32("graphics/pokemon/breloom/normal.gbapal.lz"); + const u32 gMonBackPic_Breloom[] = INCBIN_U32("graphics/pokemon/breloom/back.4bpp.lz"); + const u32 gMonShinyPalette_Breloom[] = INCBIN_U32("graphics/pokemon/breloom/shiny.gbapal.lz"); + const u8 gMonIcon_Breloom[] = INCBIN_U8("graphics/pokemon/breloom/icon.4bpp"); + const u8 gMonFootprint_Breloom[] = INCBIN_U8("graphics/pokemon/breloom/footprint.1bpp"); +#endif //P_FAMILY_SHROOMISH + +#if P_FAMILY_SLAKOTH + const u32 gMonFrontPic_Slakoth[] = INCBIN_U32("graphics/pokemon/slakoth/anim_front.4bpp.lz"); + const u32 gMonPalette_Slakoth[] = INCBIN_U32("graphics/pokemon/slakoth/normal.gbapal.lz"); + const u32 gMonBackPic_Slakoth[] = INCBIN_U32("graphics/pokemon/slakoth/back.4bpp.lz"); + const u32 gMonShinyPalette_Slakoth[] = INCBIN_U32("graphics/pokemon/slakoth/shiny.gbapal.lz"); + const u8 gMonIcon_Slakoth[] = INCBIN_U8("graphics/pokemon/slakoth/icon.4bpp"); + const u8 gMonFootprint_Slakoth[] = INCBIN_U8("graphics/pokemon/slakoth/footprint.1bpp"); + + const u32 gMonFrontPic_Vigoroth[] = INCBIN_U32("graphics/pokemon/vigoroth/anim_front.4bpp.lz"); + const u32 gMonPalette_Vigoroth[] = INCBIN_U32("graphics/pokemon/vigoroth/normal.gbapal.lz"); + const u32 gMonBackPic_Vigoroth[] = INCBIN_U32("graphics/pokemon/vigoroth/back.4bpp.lz"); + const u32 gMonShinyPalette_Vigoroth[] = INCBIN_U32("graphics/pokemon/vigoroth/shiny.gbapal.lz"); + const u8 gMonIcon_Vigoroth[] = INCBIN_U8("graphics/pokemon/vigoroth/icon.4bpp"); + const u8 gMonFootprint_Vigoroth[] = INCBIN_U8("graphics/pokemon/vigoroth/footprint.1bpp"); + + const u32 gMonFrontPic_Slaking[] = INCBIN_U32("graphics/pokemon/slaking/anim_front.4bpp.lz"); + const u32 gMonPalette_Slaking[] = INCBIN_U32("graphics/pokemon/slaking/normal.gbapal.lz"); + const u32 gMonBackPic_Slaking[] = INCBIN_U32("graphics/pokemon/slaking/back.4bpp.lz"); + const u32 gMonShinyPalette_Slaking[] = INCBIN_U32("graphics/pokemon/slaking/shiny.gbapal.lz"); + const u8 gMonIcon_Slaking[] = INCBIN_U8("graphics/pokemon/slaking/icon.4bpp"); + const u8 gMonFootprint_Slaking[] = INCBIN_U8("graphics/pokemon/slaking/footprint.1bpp"); +#endif //P_FAMILY_SLAKOTH + +#if P_FAMILY_NINCADA + const u32 gMonFrontPic_Nincada[] = INCBIN_U32("graphics/pokemon/nincada/anim_front.4bpp.lz"); + const u32 gMonPalette_Nincada[] = INCBIN_U32("graphics/pokemon/nincada/normal.gbapal.lz"); + const u32 gMonBackPic_Nincada[] = INCBIN_U32("graphics/pokemon/nincada/back.4bpp.lz"); + const u32 gMonShinyPalette_Nincada[] = INCBIN_U32("graphics/pokemon/nincada/shiny.gbapal.lz"); + const u8 gMonIcon_Nincada[] = INCBIN_U8("graphics/pokemon/nincada/icon.4bpp"); + const u8 gMonFootprint_Nincada[] = INCBIN_U8("graphics/pokemon/nincada/footprint.1bpp"); + + const u32 gMonFrontPic_Ninjask[] = INCBIN_U32("graphics/pokemon/ninjask/anim_front.4bpp.lz"); + const u32 gMonPalette_Ninjask[] = INCBIN_U32("graphics/pokemon/ninjask/normal.gbapal.lz"); + const u32 gMonBackPic_Ninjask[] = INCBIN_U32("graphics/pokemon/ninjask/back.4bpp.lz"); + const u32 gMonShinyPalette_Ninjask[] = INCBIN_U32("graphics/pokemon/ninjask/shiny.gbapal.lz"); + const u8 gMonIcon_Ninjask[] = INCBIN_U8("graphics/pokemon/ninjask/icon.4bpp"); + const u8 gMonFootprint_Ninjask[] = INCBIN_U8("graphics/pokemon/ninjask/footprint.1bpp"); + + const u32 gMonFrontPic_Shedinja[] = INCBIN_U32("graphics/pokemon/shedinja/anim_front.4bpp.lz"); + const u32 gMonPalette_Shedinja[] = INCBIN_U32("graphics/pokemon/shedinja/normal.gbapal.lz"); + const u32 gMonBackPic_Shedinja[] = INCBIN_U32("graphics/pokemon/shedinja/back.4bpp.lz"); + const u32 gMonShinyPalette_Shedinja[] = INCBIN_U32("graphics/pokemon/shedinja/shiny.gbapal.lz"); + const u8 gMonIcon_Shedinja[] = INCBIN_U8("graphics/pokemon/shedinja/icon.4bpp"); + const u8 gMonFootprint_Shedinja[] = INCBIN_U8("graphics/pokemon/shedinja/footprint.1bpp"); +#endif //P_FAMILY_NINCADA + +#if P_FAMILY_WHISMUR + const u32 gMonFrontPic_Whismur[] = INCBIN_U32("graphics/pokemon/whismur/anim_front.4bpp.lz"); + const u32 gMonPalette_Whismur[] = INCBIN_U32("graphics/pokemon/whismur/normal.gbapal.lz"); + const u32 gMonBackPic_Whismur[] = INCBIN_U32("graphics/pokemon/whismur/back.4bpp.lz"); + const u32 gMonShinyPalette_Whismur[] = INCBIN_U32("graphics/pokemon/whismur/shiny.gbapal.lz"); + const u8 gMonIcon_Whismur[] = INCBIN_U8("graphics/pokemon/whismur/icon.4bpp"); + const u8 gMonFootprint_Whismur[] = INCBIN_U8("graphics/pokemon/whismur/footprint.1bpp"); + + const u32 gMonFrontPic_Loudred[] = INCBIN_U32("graphics/pokemon/loudred/anim_front.4bpp.lz"); + const u32 gMonPalette_Loudred[] = INCBIN_U32("graphics/pokemon/loudred/normal.gbapal.lz"); + const u32 gMonBackPic_Loudred[] = INCBIN_U32("graphics/pokemon/loudred/back.4bpp.lz"); + const u32 gMonShinyPalette_Loudred[] = INCBIN_U32("graphics/pokemon/loudred/shiny.gbapal.lz"); + const u8 gMonIcon_Loudred[] = INCBIN_U8("graphics/pokemon/loudred/icon.4bpp"); + const u8 gMonFootprint_Loudred[] = INCBIN_U8("graphics/pokemon/loudred/footprint.1bpp"); + + const u32 gMonFrontPic_Exploud[] = INCBIN_U32("graphics/pokemon/exploud/anim_front.4bpp.lz"); + const u32 gMonPalette_Exploud[] = INCBIN_U32("graphics/pokemon/exploud/normal.gbapal.lz"); + const u32 gMonBackPic_Exploud[] = INCBIN_U32("graphics/pokemon/exploud/back.4bpp.lz"); + const u32 gMonShinyPalette_Exploud[] = INCBIN_U32("graphics/pokemon/exploud/shiny.gbapal.lz"); + const u8 gMonIcon_Exploud[] = INCBIN_U8("graphics/pokemon/exploud/icon.4bpp"); + const u8 gMonFootprint_Exploud[] = INCBIN_U8("graphics/pokemon/exploud/footprint.1bpp"); +#endif //P_FAMILY_WHISMUR + +#if P_FAMILY_MAKUHITA + const u32 gMonFrontPic_Makuhita[] = INCBIN_U32("graphics/pokemon/makuhita/anim_front.4bpp.lz"); + const u32 gMonPalette_Makuhita[] = INCBIN_U32("graphics/pokemon/makuhita/normal.gbapal.lz"); + const u32 gMonBackPic_Makuhita[] = INCBIN_U32("graphics/pokemon/makuhita/back.4bpp.lz"); + const u32 gMonShinyPalette_Makuhita[] = INCBIN_U32("graphics/pokemon/makuhita/shiny.gbapal.lz"); + const u8 gMonIcon_Makuhita[] = INCBIN_U8("graphics/pokemon/makuhita/icon.4bpp"); + const u8 gMonFootprint_Makuhita[] = INCBIN_U8("graphics/pokemon/makuhita/footprint.1bpp"); + + const u32 gMonFrontPic_Hariyama[] = INCBIN_U32("graphics/pokemon/hariyama/anim_front.4bpp.lz"); + const u32 gMonPalette_Hariyama[] = INCBIN_U32("graphics/pokemon/hariyama/normal.gbapal.lz"); + const u32 gMonBackPic_Hariyama[] = INCBIN_U32("graphics/pokemon/hariyama/back.4bpp.lz"); + const u32 gMonShinyPalette_Hariyama[] = INCBIN_U32("graphics/pokemon/hariyama/shiny.gbapal.lz"); + const u8 gMonIcon_Hariyama[] = INCBIN_U8("graphics/pokemon/hariyama/icon.4bpp"); + const u8 gMonFootprint_Hariyama[] = INCBIN_U8("graphics/pokemon/hariyama/footprint.1bpp"); +#endif //P_FAMILY_MAKUHITA + +#if P_FAMILY_NOSEPASS + const u32 gMonFrontPic_Nosepass[] = INCBIN_U32("graphics/pokemon/nosepass/anim_front.4bpp.lz"); + const u32 gMonPalette_Nosepass[] = INCBIN_U32("graphics/pokemon/nosepass/normal.gbapal.lz"); + const u32 gMonBackPic_Nosepass[] = INCBIN_U32("graphics/pokemon/nosepass/back.4bpp.lz"); + const u32 gMonShinyPalette_Nosepass[] = INCBIN_U32("graphics/pokemon/nosepass/shiny.gbapal.lz"); + const u8 gMonIcon_Nosepass[] = INCBIN_U8("graphics/pokemon/nosepass/icon.4bpp"); + const u8 gMonFootprint_Nosepass[] = INCBIN_U8("graphics/pokemon/nosepass/footprint.1bpp"); + +#if P_GEN_4_CROSS_EVOS + const u32 gMonFrontPic_Probopass[] = INCBIN_U32("graphics/pokemon/probopass/anim_front.4bpp.lz"); + const u32 gMonPalette_Probopass[] = INCBIN_U32("graphics/pokemon/probopass/normal.gbapal.lz"); + const u32 gMonBackPic_Probopass[] = INCBIN_U32("graphics/pokemon/probopass/back.4bpp.lz"); + const u32 gMonShinyPalette_Probopass[] = INCBIN_U32("graphics/pokemon/probopass/shiny.gbapal.lz"); + const u8 gMonIcon_Probopass[] = INCBIN_U8("graphics/pokemon/probopass/icon.4bpp"); + const u8 gMonFootprint_Probopass[] = INCBIN_U8("graphics/pokemon/probopass/footprint.1bpp"); +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_NOSEPASS + +#if P_FAMILY_SKITTY + const u32 gMonFrontPic_Skitty[] = INCBIN_U32("graphics/pokemon/skitty/anim_front.4bpp.lz"); + const u32 gMonPalette_Skitty[] = INCBIN_U32("graphics/pokemon/skitty/normal.gbapal.lz"); + const u32 gMonBackPic_Skitty[] = INCBIN_U32("graphics/pokemon/skitty/back.4bpp.lz"); + const u32 gMonShinyPalette_Skitty[] = INCBIN_U32("graphics/pokemon/skitty/shiny.gbapal.lz"); + const u8 gMonIcon_Skitty[] = INCBIN_U8("graphics/pokemon/skitty/icon.4bpp"); + const u8 gMonFootprint_Skitty[] = INCBIN_U8("graphics/pokemon/skitty/footprint.1bpp"); + + const u32 gMonFrontPic_Delcatty[] = INCBIN_U32("graphics/pokemon/delcatty/anim_front.4bpp.lz"); + const u32 gMonPalette_Delcatty[] = INCBIN_U32("graphics/pokemon/delcatty/normal.gbapal.lz"); + const u32 gMonBackPic_Delcatty[] = INCBIN_U32("graphics/pokemon/delcatty/back.4bpp.lz"); + const u32 gMonShinyPalette_Delcatty[] = INCBIN_U32("graphics/pokemon/delcatty/shiny.gbapal.lz"); + const u8 gMonIcon_Delcatty[] = INCBIN_U8("graphics/pokemon/delcatty/icon.4bpp"); + const u8 gMonFootprint_Delcatty[] = INCBIN_U8("graphics/pokemon/delcatty/footprint.1bpp"); +#endif //P_FAMILY_SKITTY + +#if P_FAMILY_SABLEYE + const u32 gMonFrontPic_Sableye[] = INCBIN_U32("graphics/pokemon/sableye/anim_front.4bpp.lz"); + const u32 gMonPalette_Sableye[] = INCBIN_U32("graphics/pokemon/sableye/normal.gbapal.lz"); + const u32 gMonBackPic_Sableye[] = INCBIN_U32("graphics/pokemon/sableye/back.4bpp.lz"); + const u32 gMonShinyPalette_Sableye[] = INCBIN_U32("graphics/pokemon/sableye/shiny.gbapal.lz"); + const u8 gMonIcon_Sableye[] = INCBIN_U8("graphics/pokemon/sableye/icon.4bpp"); + const u8 gMonFootprint_Sableye[] = INCBIN_U8("graphics/pokemon/sableye/footprint.1bpp"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_SableyeMega[] = INCBIN_U32("graphics/pokemon/sableye/mega/front.4bpp.lz"); + const u32 gMonPalette_SableyeMega[] = INCBIN_U32("graphics/pokemon/sableye/mega/normal.gbapal.lz"); + const u32 gMonBackPic_SableyeMega[] = INCBIN_U32("graphics/pokemon/sableye/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_SableyeMega[] = INCBIN_U32("graphics/pokemon/sableye/mega/shiny.gbapal.lz"); + const u8 gMonIcon_SableyeMega[] = INCBIN_U8("graphics/pokemon/sableye/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_SABLEYE + +#if P_FAMILY_MAWILE + const u32 gMonFrontPic_Mawile[] = INCBIN_U32("graphics/pokemon/mawile/anim_front.4bpp.lz"); + const u32 gMonPalette_Mawile[] = INCBIN_U32("graphics/pokemon/mawile/normal.gbapal.lz"); + const u32 gMonBackPic_Mawile[] = INCBIN_U32("graphics/pokemon/mawile/back.4bpp.lz"); + const u32 gMonShinyPalette_Mawile[] = INCBIN_U32("graphics/pokemon/mawile/shiny.gbapal.lz"); + const u8 gMonIcon_Mawile[] = INCBIN_U8("graphics/pokemon/mawile/icon.4bpp"); + const u8 gMonFootprint_Mawile[] = INCBIN_U8("graphics/pokemon/mawile/footprint.1bpp"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_MawileMega[] = INCBIN_U32("graphics/pokemon/mawile/mega/front.4bpp.lz"); + const u32 gMonPalette_MawileMega[] = INCBIN_U32("graphics/pokemon/mawile/mega/normal.gbapal.lz"); + const u32 gMonBackPic_MawileMega[] = INCBIN_U32("graphics/pokemon/mawile/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_MawileMega[] = INCBIN_U32("graphics/pokemon/mawile/mega/shiny.gbapal.lz"); + const u8 gMonIcon_MawileMega[] = INCBIN_U8("graphics/pokemon/mawile/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_MAWILE + +#if P_FAMILY_ARON + const u32 gMonFrontPic_Aron[] = INCBIN_U32("graphics/pokemon/aron/anim_front.4bpp.lz"); + const u32 gMonPalette_Aron[] = INCBIN_U32("graphics/pokemon/aron/normal.gbapal.lz"); + const u32 gMonBackPic_Aron[] = INCBIN_U32("graphics/pokemon/aron/back.4bpp.lz"); + const u32 gMonShinyPalette_Aron[] = INCBIN_U32("graphics/pokemon/aron/shiny.gbapal.lz"); + const u8 gMonIcon_Aron[] = INCBIN_U8("graphics/pokemon/aron/icon.4bpp"); + const u8 gMonFootprint_Aron[] = INCBIN_U8("graphics/pokemon/aron/footprint.1bpp"); + + const u32 gMonFrontPic_Lairon[] = INCBIN_U32("graphics/pokemon/lairon/anim_front.4bpp.lz"); + const u32 gMonPalette_Lairon[] = INCBIN_U32("graphics/pokemon/lairon/normal.gbapal.lz"); + const u32 gMonBackPic_Lairon[] = INCBIN_U32("graphics/pokemon/lairon/back.4bpp.lz"); + const u32 gMonShinyPalette_Lairon[] = INCBIN_U32("graphics/pokemon/lairon/shiny.gbapal.lz"); + const u8 gMonIcon_Lairon[] = INCBIN_U8("graphics/pokemon/lairon/icon.4bpp"); + const u8 gMonFootprint_Lairon[] = INCBIN_U8("graphics/pokemon/lairon/footprint.1bpp"); + + const u32 gMonFrontPic_Aggron[] = INCBIN_U32("graphics/pokemon/aggron/anim_front.4bpp.lz"); + const u32 gMonPalette_Aggron[] = INCBIN_U32("graphics/pokemon/aggron/normal.gbapal.lz"); + const u32 gMonBackPic_Aggron[] = INCBIN_U32("graphics/pokemon/aggron/back.4bpp.lz"); + const u32 gMonShinyPalette_Aggron[] = INCBIN_U32("graphics/pokemon/aggron/shiny.gbapal.lz"); + const u8 gMonIcon_Aggron[] = INCBIN_U8("graphics/pokemon/aggron/icon.4bpp"); + const u8 gMonFootprint_Aggron[] = INCBIN_U8("graphics/pokemon/aggron/footprint.1bpp"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_AggronMega[] = INCBIN_U32("graphics/pokemon/aggron/mega/front.4bpp.lz"); + const u32 gMonPalette_AggronMega[] = INCBIN_U32("graphics/pokemon/aggron/mega/normal.gbapal.lz"); + const u32 gMonBackPic_AggronMega[] = INCBIN_U32("graphics/pokemon/aggron/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_AggronMega[] = INCBIN_U32("graphics/pokemon/aggron/mega/shiny.gbapal.lz"); + const u8 gMonIcon_AggronMega[] = INCBIN_U8("graphics/pokemon/aggron/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_ARON + +#if P_FAMILY_MEDITITE + const u32 gMonFrontPic_Meditite[] = INCBIN_U32("graphics/pokemon/meditite/anim_front.4bpp.lz"); + const u32 gMonPalette_Meditite[] = INCBIN_U32("graphics/pokemon/meditite/normal.gbapal.lz"); + const u32 gMonBackPic_Meditite[] = INCBIN_U32("graphics/pokemon/meditite/back.4bpp.lz"); + const u32 gMonShinyPalette_Meditite[] = INCBIN_U32("graphics/pokemon/meditite/shiny.gbapal.lz"); + const u8 gMonIcon_Meditite[] = INCBIN_U8("graphics/pokemon/meditite/icon.4bpp"); + const u8 gMonFootprint_Meditite[] = INCBIN_U8("graphics/pokemon/meditite/footprint.1bpp"); + + const u32 gMonFrontPic_MedititeF[] = INCBIN_U32("graphics/pokemon/meditite/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_MedititeF[] = INCBIN_U32("graphics/pokemon/meditite/backf.4bpp.lz"); + + const u32 gMonFrontPic_Medicham[] = INCBIN_U32("graphics/pokemon/medicham/anim_front.4bpp.lz"); + const u32 gMonPalette_Medicham[] = INCBIN_U32("graphics/pokemon/medicham/normal.gbapal.lz"); + const u32 gMonBackPic_Medicham[] = INCBIN_U32("graphics/pokemon/medicham/back.4bpp.lz"); + const u32 gMonShinyPalette_Medicham[] = INCBIN_U32("graphics/pokemon/medicham/shiny.gbapal.lz"); + const u8 gMonIcon_Medicham[] = INCBIN_U8("graphics/pokemon/medicham/icon.4bpp"); + const u8 gMonFootprint_Medicham[] = INCBIN_U8("graphics/pokemon/medicham/footprint.1bpp"); + + const u32 gMonFrontPic_MedichamF[] = INCBIN_U32("graphics/pokemon/medicham/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_MedichamF[] = INCBIN_U32("graphics/pokemon/medicham/backf.4bpp.lz"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_MedichamMega[] = INCBIN_U32("graphics/pokemon/medicham/mega/front.4bpp.lz"); + const u32 gMonPalette_MedichamMega[] = INCBIN_U32("graphics/pokemon/medicham/mega/normal.gbapal.lz"); + const u32 gMonBackPic_MedichamMega[] = INCBIN_U32("graphics/pokemon/medicham/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_MedichamMega[] = INCBIN_U32("graphics/pokemon/medicham/mega/shiny.gbapal.lz"); + const u8 gMonIcon_MedichamMega[] = INCBIN_U8("graphics/pokemon/medicham/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_MEDITITE + +#if P_FAMILY_ELECTRIKE + const u32 gMonFrontPic_Electrike[] = INCBIN_U32("graphics/pokemon/electrike/anim_front.4bpp.lz"); + const u32 gMonPalette_Electrike[] = INCBIN_U32("graphics/pokemon/electrike/normal.gbapal.lz"); + const u32 gMonBackPic_Electrike[] = INCBIN_U32("graphics/pokemon/electrike/back.4bpp.lz"); + const u32 gMonShinyPalette_Electrike[] = INCBIN_U32("graphics/pokemon/electrike/shiny.gbapal.lz"); + const u8 gMonIcon_Electrike[] = INCBIN_U8("graphics/pokemon/electrike/icon.4bpp"); + const u8 gMonFootprint_Electrike[] = INCBIN_U8("graphics/pokemon/electrike/footprint.1bpp"); + + const u32 gMonFrontPic_Manectric[] = INCBIN_U32("graphics/pokemon/manectric/anim_front.4bpp.lz"); + const u32 gMonPalette_Manectric[] = INCBIN_U32("graphics/pokemon/manectric/normal.gbapal.lz"); + const u32 gMonBackPic_Manectric[] = INCBIN_U32("graphics/pokemon/manectric/back.4bpp.lz"); + const u32 gMonShinyPalette_Manectric[] = INCBIN_U32("graphics/pokemon/manectric/shiny.gbapal.lz"); + const u8 gMonIcon_Manectric[] = INCBIN_U8("graphics/pokemon/manectric/icon.4bpp"); + const u8 gMonFootprint_Manectric[] = INCBIN_U8("graphics/pokemon/manectric/footprint.1bpp"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_ManectricMega[] = INCBIN_U32("graphics/pokemon/manectric/mega/front.4bpp.lz"); + const u32 gMonPalette_ManectricMega[] = INCBIN_U32("graphics/pokemon/manectric/mega/normal.gbapal.lz"); + const u32 gMonBackPic_ManectricMega[] = INCBIN_U32("graphics/pokemon/manectric/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_ManectricMega[] = INCBIN_U32("graphics/pokemon/manectric/mega/shiny.gbapal.lz"); + const u8 gMonIcon_ManectricMega[] = INCBIN_U8("graphics/pokemon/manectric/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_ELECTRIKE + +#if P_FAMILY_PLUSLE + const u32 gMonFrontPic_Plusle[] = INCBIN_U32("graphics/pokemon/plusle/anim_front.4bpp.lz"); + const u32 gMonPalette_Plusle[] = INCBIN_U32("graphics/pokemon/plusle/normal.gbapal.lz"); + const u32 gMonBackPic_Plusle[] = INCBIN_U32("graphics/pokemon/plusle/back.4bpp.lz"); + const u32 gMonShinyPalette_Plusle[] = INCBIN_U32("graphics/pokemon/plusle/shiny.gbapal.lz"); + const u8 gMonIcon_Plusle[] = INCBIN_U8("graphics/pokemon/plusle/icon.4bpp"); + const u8 gMonFootprint_Plusle[] = INCBIN_U8("graphics/pokemon/plusle/footprint.1bpp"); +#endif //P_FAMILY_PLUSLE + +#if P_FAMILY_MINUN + const u32 gMonFrontPic_Minun[] = INCBIN_U32("graphics/pokemon/minun/anim_front.4bpp.lz"); + const u32 gMonPalette_Minun[] = INCBIN_U32("graphics/pokemon/minun/normal.gbapal.lz"); + const u32 gMonBackPic_Minun[] = INCBIN_U32("graphics/pokemon/minun/back.4bpp.lz"); + const u32 gMonShinyPalette_Minun[] = INCBIN_U32("graphics/pokemon/minun/shiny.gbapal.lz"); + const u8 gMonIcon_Minun[] = INCBIN_U8("graphics/pokemon/minun/icon.4bpp"); + const u8 gMonFootprint_Minun[] = INCBIN_U8("graphics/pokemon/minun/footprint.1bpp"); +#endif //P_FAMILY_MINUN + +#if P_FAMILY_VOLBEAT_ILLUMISE + const u32 gMonFrontPic_Volbeat[] = INCBIN_U32("graphics/pokemon/volbeat/anim_front.4bpp.lz"); + const u32 gMonPalette_Volbeat[] = INCBIN_U32("graphics/pokemon/volbeat/normal.gbapal.lz"); + const u32 gMonBackPic_Volbeat[] = INCBIN_U32("graphics/pokemon/volbeat/back.4bpp.lz"); + const u32 gMonShinyPalette_Volbeat[] = INCBIN_U32("graphics/pokemon/volbeat/shiny.gbapal.lz"); + const u8 gMonIcon_Volbeat[] = INCBIN_U8("graphics/pokemon/volbeat/icon.4bpp"); + const u8 gMonFootprint_Volbeat[] = INCBIN_U8("graphics/pokemon/volbeat/footprint.1bpp"); + + const u32 gMonFrontPic_Illumise[] = INCBIN_U32("graphics/pokemon/illumise/anim_front.4bpp.lz"); + const u32 gMonPalette_Illumise[] = INCBIN_U32("graphics/pokemon/illumise/normal.gbapal.lz"); + const u32 gMonBackPic_Illumise[] = INCBIN_U32("graphics/pokemon/illumise/back.4bpp.lz"); + const u32 gMonShinyPalette_Illumise[] = INCBIN_U32("graphics/pokemon/illumise/shiny.gbapal.lz"); + const u8 gMonIcon_Illumise[] = INCBIN_U8("graphics/pokemon/illumise/icon.4bpp"); + const u8 gMonFootprint_Illumise[] = INCBIN_U8("graphics/pokemon/illumise/footprint.1bpp"); +#endif //P_FAMILY_VOLBEAT_ILLUMISE + +#if P_FAMILY_ROSELIA +#if P_GEN_4_CROSS_EVOS + const u32 gMonFrontPic_Budew[] = INCBIN_U32("graphics/pokemon/budew/anim_front.4bpp.lz"); + const u32 gMonPalette_Budew[] = INCBIN_U32("graphics/pokemon/budew/normal.gbapal.lz"); + const u32 gMonBackPic_Budew[] = INCBIN_U32("graphics/pokemon/budew/back.4bpp.lz"); + const u32 gMonShinyPalette_Budew[] = INCBIN_U32("graphics/pokemon/budew/shiny.gbapal.lz"); + const u8 gMonIcon_Budew[] = INCBIN_U8("graphics/pokemon/budew/icon.4bpp"); + const u8 gMonFootprint_Budew[] = INCBIN_U8("graphics/pokemon/budew/footprint.1bpp"); +#endif //P_GEN_4_CROSS_EVOS + + const u32 gMonFrontPic_Roselia[] = INCBIN_U32("graphics/pokemon/roselia/anim_front.4bpp.lz"); + const u32 gMonPalette_Roselia[] = INCBIN_U32("graphics/pokemon/roselia/normal.gbapal.lz"); + const u32 gMonBackPic_Roselia[] = INCBIN_U32("graphics/pokemon/roselia/back.4bpp.lz"); + const u32 gMonShinyPalette_Roselia[] = INCBIN_U32("graphics/pokemon/roselia/shiny.gbapal.lz"); + const u8 gMonIcon_Roselia[] = INCBIN_U8("graphics/pokemon/roselia/icon.4bpp"); + const u8 gMonFootprint_Roselia[] = INCBIN_U8("graphics/pokemon/roselia/footprint.1bpp"); + + const u32 gMonFrontPic_RoseliaF[] = INCBIN_U32("graphics/pokemon/roselia/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_RoseliaF[] = INCBIN_U32("graphics/pokemon/roselia/backf.4bpp.lz"); + +#if P_GEN_4_CROSS_EVOS + const u32 gMonFrontPic_Roserade[] = INCBIN_U32("graphics/pokemon/roserade/anim_front.4bpp.lz"); + const u32 gMonPalette_Roserade[] = INCBIN_U32("graphics/pokemon/roserade/normal.gbapal.lz"); + const u32 gMonBackPic_Roserade[] = INCBIN_U32("graphics/pokemon/roserade/back.4bpp.lz"); + const u32 gMonShinyPalette_Roserade[] = INCBIN_U32("graphics/pokemon/roserade/shiny.gbapal.lz"); + const u8 gMonIcon_Roserade[] = INCBIN_U8("graphics/pokemon/roserade/icon.4bpp"); + const u8 gMonFootprint_Roserade[] = INCBIN_U8("graphics/pokemon/roserade/footprint.1bpp"); + + const u32 gMonFrontPic_RoseradeF[] = INCBIN_U32("graphics/pokemon/roserade/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_RoseradeF[] = INCBIN_U32("graphics/pokemon/roserade/backf.4bpp.lz"); +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_ROSELIA + +#if P_FAMILY_GULPIN + const u32 gMonFrontPic_Gulpin[] = INCBIN_U32("graphics/pokemon/gulpin/anim_front.4bpp.lz"); + const u32 gMonPalette_Gulpin[] = INCBIN_U32("graphics/pokemon/gulpin/normal.gbapal.lz"); + const u32 gMonBackPic_Gulpin[] = INCBIN_U32("graphics/pokemon/gulpin/back.4bpp.lz"); + const u32 gMonShinyPalette_Gulpin[] = INCBIN_U32("graphics/pokemon/gulpin/shiny.gbapal.lz"); + const u8 gMonIcon_Gulpin[] = INCBIN_U8("graphics/pokemon/gulpin/icon.4bpp"); + const u8 gMonFootprint_Gulpin[] = INCBIN_U8("graphics/pokemon/gulpin/footprint.1bpp"); + + const u32 gMonFrontPic_GulpinF[] = INCBIN_U32("graphics/pokemon/gulpin/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_GulpinF[] = INCBIN_U32("graphics/pokemon/gulpin/backf.4bpp.lz"); + + const u32 gMonFrontPic_Swalot[] = INCBIN_U32("graphics/pokemon/swalot/anim_front.4bpp.lz"); + const u32 gMonPalette_Swalot[] = INCBIN_U32("graphics/pokemon/swalot/normal.gbapal.lz"); + const u32 gMonBackPic_Swalot[] = INCBIN_U32("graphics/pokemon/swalot/back.4bpp.lz"); + const u32 gMonShinyPalette_Swalot[] = INCBIN_U32("graphics/pokemon/swalot/shiny.gbapal.lz"); + const u8 gMonIcon_Swalot[] = INCBIN_U8("graphics/pokemon/swalot/icon.4bpp"); + const u8 gMonFootprint_Swalot[] = INCBIN_U8("graphics/pokemon/swalot/footprint.1bpp"); + + const u32 gMonFrontPic_SwalotF[] = INCBIN_U32("graphics/pokemon/swalot/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_SwalotF[] = INCBIN_U32("graphics/pokemon/swalot/backf.4bpp.lz"); +#endif //P_FAMILY_GULPIN + +#if P_FAMILY_CARVANHA + const u32 gMonFrontPic_Carvanha[] = INCBIN_U32("graphics/pokemon/carvanha/anim_front.4bpp.lz"); + const u32 gMonPalette_Carvanha[] = INCBIN_U32("graphics/pokemon/carvanha/normal.gbapal.lz"); + const u32 gMonBackPic_Carvanha[] = INCBIN_U32("graphics/pokemon/carvanha/back.4bpp.lz"); + const u32 gMonShinyPalette_Carvanha[] = INCBIN_U32("graphics/pokemon/carvanha/shiny.gbapal.lz"); + const u8 gMonIcon_Carvanha[] = INCBIN_U8("graphics/pokemon/carvanha/icon.4bpp"); + const u8 gMonFootprint_Carvanha[] = INCBIN_U8("graphics/pokemon/carvanha/footprint.1bpp"); + + const u32 gMonFrontPic_Sharpedo[] = INCBIN_U32("graphics/pokemon/sharpedo/anim_front.4bpp.lz"); + const u32 gMonPalette_Sharpedo[] = INCBIN_U32("graphics/pokemon/sharpedo/normal.gbapal.lz"); + const u32 gMonBackPic_Sharpedo[] = INCBIN_U32("graphics/pokemon/sharpedo/back.4bpp.lz"); + const u32 gMonShinyPalette_Sharpedo[] = INCBIN_U32("graphics/pokemon/sharpedo/shiny.gbapal.lz"); + const u8 gMonIcon_Sharpedo[] = INCBIN_U8("graphics/pokemon/sharpedo/icon.4bpp"); + const u8 gMonFootprint_Sharpedo[] = INCBIN_U8("graphics/pokemon/sharpedo/footprint.1bpp"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_SharpedoMega[] = INCBIN_U32("graphics/pokemon/sharpedo/mega/front.4bpp.lz"); + const u32 gMonPalette_SharpedoMega[] = INCBIN_U32("graphics/pokemon/sharpedo/mega/normal.gbapal.lz"); + const u32 gMonBackPic_SharpedoMega[] = INCBIN_U32("graphics/pokemon/sharpedo/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_SharpedoMega[] = INCBIN_U32("graphics/pokemon/sharpedo/mega/shiny.gbapal.lz"); + const u8 gMonIcon_SharpedoMega[] = INCBIN_U8("graphics/pokemon/sharpedo/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_CARVANHA + +#if P_FAMILY_WAILMER + const u32 gMonFrontPic_Wailmer[] = INCBIN_U32("graphics/pokemon/wailmer/anim_front.4bpp.lz"); + const u32 gMonPalette_Wailmer[] = INCBIN_U32("graphics/pokemon/wailmer/normal.gbapal.lz"); + const u32 gMonBackPic_Wailmer[] = INCBIN_U32("graphics/pokemon/wailmer/back.4bpp.lz"); + const u32 gMonShinyPalette_Wailmer[] = INCBIN_U32("graphics/pokemon/wailmer/shiny.gbapal.lz"); + const u8 gMonIcon_Wailmer[] = INCBIN_U8("graphics/pokemon/wailmer/icon.4bpp"); + const u8 gMonFootprint_Wailmer[] = INCBIN_U8("graphics/pokemon/wailmer/footprint.1bpp"); + + const u32 gMonFrontPic_Wailord[] = INCBIN_U32("graphics/pokemon/wailord/anim_front.4bpp.lz"); + const u32 gMonPalette_Wailord[] = INCBIN_U32("graphics/pokemon/wailord/normal.gbapal.lz"); + const u32 gMonBackPic_Wailord[] = INCBIN_U32("graphics/pokemon/wailord/back.4bpp.lz"); + const u32 gMonShinyPalette_Wailord[] = INCBIN_U32("graphics/pokemon/wailord/shiny.gbapal.lz"); + const u8 gMonIcon_Wailord[] = INCBIN_U8("graphics/pokemon/wailord/icon.4bpp"); + const u8 gMonFootprint_Wailord[] = INCBIN_U8("graphics/pokemon/wailord/footprint.1bpp"); +#endif //P_FAMILY_WAILMER + +#if P_FAMILY_NUMEL + const u32 gMonFrontPic_Numel[] = INCBIN_U32("graphics/pokemon/numel/anim_front.4bpp.lz"); + const u32 gMonPalette_Numel[] = INCBIN_U32("graphics/pokemon/numel/normal.gbapal.lz"); + const u32 gMonBackPic_Numel[] = INCBIN_U32("graphics/pokemon/numel/back.4bpp.lz"); + const u32 gMonShinyPalette_Numel[] = INCBIN_U32("graphics/pokemon/numel/shiny.gbapal.lz"); + const u8 gMonIcon_Numel[] = INCBIN_U8("graphics/pokemon/numel/icon.4bpp"); + const u8 gMonFootprint_Numel[] = INCBIN_U8("graphics/pokemon/numel/footprint.1bpp"); + + const u32 gMonFrontPic_NumelF[] = INCBIN_U32("graphics/pokemon/numel/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_NumelF[] = INCBIN_U32("graphics/pokemon/numel/backf.4bpp.lz"); + + const u32 gMonFrontPic_Camerupt[] = INCBIN_U32("graphics/pokemon/camerupt/anim_front.4bpp.lz"); + const u32 gMonPalette_Camerupt[] = INCBIN_U32("graphics/pokemon/camerupt/normal.gbapal.lz"); + const u32 gMonBackPic_Camerupt[] = INCBIN_U32("graphics/pokemon/camerupt/back.4bpp.lz"); + const u32 gMonShinyPalette_Camerupt[] = INCBIN_U32("graphics/pokemon/camerupt/shiny.gbapal.lz"); + const u8 gMonIcon_Camerupt[] = INCBIN_U8("graphics/pokemon/camerupt/icon.4bpp"); + const u8 gMonFootprint_Camerupt[] = INCBIN_U8("graphics/pokemon/camerupt/footprint.1bpp"); + + const u32 gMonFrontPic_CameruptF[] = INCBIN_U32("graphics/pokemon/camerupt/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_CameruptF[] = INCBIN_U32("graphics/pokemon/camerupt/backf.4bpp.lz"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_CameruptMega[] = INCBIN_U32("graphics/pokemon/camerupt/mega/front.4bpp.lz"); + const u32 gMonPalette_CameruptMega[] = INCBIN_U32("graphics/pokemon/camerupt/mega/normal.gbapal.lz"); + const u32 gMonBackPic_CameruptMega[] = INCBIN_U32("graphics/pokemon/camerupt/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_CameruptMega[] = INCBIN_U32("graphics/pokemon/camerupt/mega/shiny.gbapal.lz"); + const u8 gMonIcon_CameruptMega[] = INCBIN_U8("graphics/pokemon/camerupt/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_NUMEL + +#if P_FAMILY_TORKOAL + const u32 gMonFrontPic_Torkoal[] = INCBIN_U32("graphics/pokemon/torkoal/anim_front.4bpp.lz"); + const u32 gMonPalette_Torkoal[] = INCBIN_U32("graphics/pokemon/torkoal/normal.gbapal.lz"); + const u32 gMonBackPic_Torkoal[] = INCBIN_U32("graphics/pokemon/torkoal/back.4bpp.lz"); + const u32 gMonShinyPalette_Torkoal[] = INCBIN_U32("graphics/pokemon/torkoal/shiny.gbapal.lz"); + const u8 gMonIcon_Torkoal[] = INCBIN_U8("graphics/pokemon/torkoal/icon.4bpp"); + const u8 gMonFootprint_Torkoal[] = INCBIN_U8("graphics/pokemon/torkoal/footprint.1bpp"); +#endif //P_FAMILY_TORKOAL + +#if P_FAMILY_SPOINK + const u32 gMonFrontPic_Spoink[] = INCBIN_U32("graphics/pokemon/spoink/anim_front.4bpp.lz"); + const u32 gMonPalette_Spoink[] = INCBIN_U32("graphics/pokemon/spoink/normal.gbapal.lz"); + const u32 gMonBackPic_Spoink[] = INCBIN_U32("graphics/pokemon/spoink/back.4bpp.lz"); + const u32 gMonShinyPalette_Spoink[] = INCBIN_U32("graphics/pokemon/spoink/shiny.gbapal.lz"); + const u8 gMonIcon_Spoink[] = INCBIN_U8("graphics/pokemon/spoink/icon.4bpp"); + const u8 gMonFootprint_Spoink[] = INCBIN_U8("graphics/pokemon/spoink/footprint.1bpp"); + + const u32 gMonFrontPic_Grumpig[] = INCBIN_U32("graphics/pokemon/grumpig/anim_front.4bpp.lz"); + const u32 gMonPalette_Grumpig[] = INCBIN_U32("graphics/pokemon/grumpig/normal.gbapal.lz"); + const u32 gMonBackPic_Grumpig[] = INCBIN_U32("graphics/pokemon/grumpig/back.4bpp.lz"); + const u32 gMonShinyPalette_Grumpig[] = INCBIN_U32("graphics/pokemon/grumpig/shiny.gbapal.lz"); + const u8 gMonIcon_Grumpig[] = INCBIN_U8("graphics/pokemon/grumpig/icon.4bpp"); + const u8 gMonFootprint_Grumpig[] = INCBIN_U8("graphics/pokemon/grumpig/footprint.1bpp"); +#endif //P_FAMILY_SPOINK + +#if P_FAMILY_SPINDA + const u32 gMonFrontPic_Spinda[] = INCBIN_U32("graphics/pokemon/spinda/anim_front.4bpp.lz"); + const u32 gMonPalette_Spinda[] = INCBIN_U32("graphics/pokemon/spinda/normal.gbapal.lz"); + const u32 gMonBackPic_Spinda[] = INCBIN_U32("graphics/pokemon/spinda/back.4bpp.lz"); + const u32 gMonShinyPalette_Spinda[] = INCBIN_U32("graphics/pokemon/spinda/shiny.gbapal.lz"); + const u8 gMonIcon_Spinda[] = INCBIN_U8("graphics/pokemon/spinda/icon.4bpp"); + const u8 gMonFootprint_Spinda[] = INCBIN_U8("graphics/pokemon/spinda/footprint.1bpp"); +#endif //P_FAMILY_SPINDA + +#if P_FAMILY_TRAPINCH + const u32 gMonFrontPic_Trapinch[] = INCBIN_U32("graphics/pokemon/trapinch/anim_front.4bpp.lz"); + const u32 gMonPalette_Trapinch[] = INCBIN_U32("graphics/pokemon/trapinch/normal.gbapal.lz"); + const u32 gMonBackPic_Trapinch[] = INCBIN_U32("graphics/pokemon/trapinch/back.4bpp.lz"); + const u32 gMonShinyPalette_Trapinch[] = INCBIN_U32("graphics/pokemon/trapinch/shiny.gbapal.lz"); + const u8 gMonIcon_Trapinch[] = INCBIN_U8("graphics/pokemon/trapinch/icon.4bpp"); + const u8 gMonFootprint_Trapinch[] = INCBIN_U8("graphics/pokemon/trapinch/footprint.1bpp"); + + const u32 gMonFrontPic_Vibrava[] = INCBIN_U32("graphics/pokemon/vibrava/anim_front.4bpp.lz"); + const u32 gMonPalette_Vibrava[] = INCBIN_U32("graphics/pokemon/vibrava/normal.gbapal.lz"); + const u32 gMonBackPic_Vibrava[] = INCBIN_U32("graphics/pokemon/vibrava/back.4bpp.lz"); + const u32 gMonShinyPalette_Vibrava[] = INCBIN_U32("graphics/pokemon/vibrava/shiny.gbapal.lz"); + const u8 gMonIcon_Vibrava[] = INCBIN_U8("graphics/pokemon/vibrava/icon.4bpp"); + const u8 gMonFootprint_Vibrava[] = INCBIN_U8("graphics/pokemon/vibrava/footprint.1bpp"); + + const u32 gMonFrontPic_Flygon[] = INCBIN_U32("graphics/pokemon/flygon/anim_front.4bpp.lz"); + const u32 gMonPalette_Flygon[] = INCBIN_U32("graphics/pokemon/flygon/normal.gbapal.lz"); + const u32 gMonBackPic_Flygon[] = INCBIN_U32("graphics/pokemon/flygon/back.4bpp.lz"); + const u32 gMonShinyPalette_Flygon[] = INCBIN_U32("graphics/pokemon/flygon/shiny.gbapal.lz"); + const u8 gMonIcon_Flygon[] = INCBIN_U8("graphics/pokemon/flygon/icon.4bpp"); + const u8 gMonFootprint_Flygon[] = INCBIN_U8("graphics/pokemon/flygon/footprint.1bpp"); +#endif //P_FAMILY_TRAPINCH + +#if P_FAMILY_CACNEA + const u32 gMonFrontPic_Cacnea[] = INCBIN_U32("graphics/pokemon/cacnea/anim_front.4bpp.lz"); + const u32 gMonPalette_Cacnea[] = INCBIN_U32("graphics/pokemon/cacnea/normal.gbapal.lz"); + const u32 gMonBackPic_Cacnea[] = INCBIN_U32("graphics/pokemon/cacnea/back.4bpp.lz"); + const u32 gMonShinyPalette_Cacnea[] = INCBIN_U32("graphics/pokemon/cacnea/shiny.gbapal.lz"); + const u8 gMonIcon_Cacnea[] = INCBIN_U8("graphics/pokemon/cacnea/icon.4bpp"); + const u8 gMonFootprint_Cacnea[] = INCBIN_U8("graphics/pokemon/cacnea/footprint.1bpp"); + + const u32 gMonFrontPic_Cacturne[] = INCBIN_U32("graphics/pokemon/cacturne/anim_front.4bpp.lz"); + const u32 gMonPalette_Cacturne[] = INCBIN_U32("graphics/pokemon/cacturne/normal.gbapal.lz"); + const u32 gMonBackPic_Cacturne[] = INCBIN_U32("graphics/pokemon/cacturne/back.4bpp.lz"); + const u32 gMonShinyPalette_Cacturne[] = INCBIN_U32("graphics/pokemon/cacturne/shiny.gbapal.lz"); + const u8 gMonIcon_Cacturne[] = INCBIN_U8("graphics/pokemon/cacturne/icon.4bpp"); + const u8 gMonFootprint_Cacturne[] = INCBIN_U8("graphics/pokemon/cacturne/footprint.1bpp"); + + const u32 gMonFrontPic_CacturneF[] = INCBIN_U32("graphics/pokemon/cacturne/anim_frontf.4bpp.lz"); +#endif //P_FAMILY_CACNEA + +#if P_FAMILY_SWABLU + const u32 gMonFrontPic_Swablu[] = INCBIN_U32("graphics/pokemon/swablu/anim_front.4bpp.lz"); + const u32 gMonPalette_Swablu[] = INCBIN_U32("graphics/pokemon/swablu/normal.gbapal.lz"); + const u32 gMonBackPic_Swablu[] = INCBIN_U32("graphics/pokemon/swablu/back.4bpp.lz"); + const u32 gMonShinyPalette_Swablu[] = INCBIN_U32("graphics/pokemon/swablu/shiny.gbapal.lz"); + const u8 gMonIcon_Swablu[] = INCBIN_U8("graphics/pokemon/swablu/icon.4bpp"); + const u8 gMonFootprint_Swablu[] = INCBIN_U8("graphics/pokemon/swablu/footprint.1bpp"); + + const u32 gMonFrontPic_Altaria[] = INCBIN_U32("graphics/pokemon/altaria/anim_front.4bpp.lz"); + const u32 gMonPalette_Altaria[] = INCBIN_U32("graphics/pokemon/altaria/normal.gbapal.lz"); + const u32 gMonBackPic_Altaria[] = INCBIN_U32("graphics/pokemon/altaria/back.4bpp.lz"); + const u32 gMonShinyPalette_Altaria[] = INCBIN_U32("graphics/pokemon/altaria/shiny.gbapal.lz"); + const u8 gMonIcon_Altaria[] = INCBIN_U8("graphics/pokemon/altaria/icon.4bpp"); + const u8 gMonFootprint_Altaria[] = INCBIN_U8("graphics/pokemon/altaria/footprint.1bpp"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_AltariaMega[] = INCBIN_U32("graphics/pokemon/altaria/mega/front.4bpp.lz"); + const u32 gMonPalette_AltariaMega[] = INCBIN_U32("graphics/pokemon/altaria/mega/normal.gbapal.lz"); + const u32 gMonBackPic_AltariaMega[] = INCBIN_U32("graphics/pokemon/altaria/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_AltariaMega[] = INCBIN_U32("graphics/pokemon/altaria/mega/shiny.gbapal.lz"); + const u8 gMonIcon_AltariaMega[] = INCBIN_U8("graphics/pokemon/altaria/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_SWABLU + +#if P_FAMILY_ZANGOOSE + const u32 gMonFrontPic_Zangoose[] = INCBIN_U32("graphics/pokemon/zangoose/anim_front.4bpp.lz"); + const u32 gMonPalette_Zangoose[] = INCBIN_U32("graphics/pokemon/zangoose/normal.gbapal.lz"); + const u32 gMonBackPic_Zangoose[] = INCBIN_U32("graphics/pokemon/zangoose/back.4bpp.lz"); + const u32 gMonShinyPalette_Zangoose[] = INCBIN_U32("graphics/pokemon/zangoose/shiny.gbapal.lz"); + const u8 gMonIcon_Zangoose[] = INCBIN_U8("graphics/pokemon/zangoose/icon.4bpp"); + const u8 gMonFootprint_Zangoose[] = INCBIN_U8("graphics/pokemon/zangoose/footprint.1bpp"); +#endif //P_FAMILY_ZANGOOSE + +#if P_FAMILY_SEVIPER + const u32 gMonFrontPic_Seviper[] = INCBIN_U32("graphics/pokemon/seviper/anim_front.4bpp.lz"); + const u32 gMonPalette_Seviper[] = INCBIN_U32("graphics/pokemon/seviper/normal.gbapal.lz"); + const u32 gMonBackPic_Seviper[] = INCBIN_U32("graphics/pokemon/seviper/back.4bpp.lz"); + const u32 gMonShinyPalette_Seviper[] = INCBIN_U32("graphics/pokemon/seviper/shiny.gbapal.lz"); + const u8 gMonIcon_Seviper[] = INCBIN_U8("graphics/pokemon/seviper/icon.4bpp"); + const u8 gMonFootprint_Seviper[] = INCBIN_U8("graphics/pokemon/seviper/footprint.1bpp"); +#endif //P_FAMILY_SEVIPER + +#if P_FAMILY_LUNATONE + const u32 gMonFrontPic_Lunatone[] = INCBIN_U32("graphics/pokemon/lunatone/anim_front.4bpp.lz"); + const u32 gMonPalette_Lunatone[] = INCBIN_U32("graphics/pokemon/lunatone/normal.gbapal.lz"); + const u32 gMonBackPic_Lunatone[] = INCBIN_U32("graphics/pokemon/lunatone/back.4bpp.lz"); + const u32 gMonShinyPalette_Lunatone[] = INCBIN_U32("graphics/pokemon/lunatone/shiny.gbapal.lz"); + const u8 gMonIcon_Lunatone[] = INCBIN_U8("graphics/pokemon/lunatone/icon.4bpp"); + const u8 gMonFootprint_Lunatone[] = INCBIN_U8("graphics/pokemon/lunatone/footprint.1bpp"); +#endif //P_FAMILY_LUNATONE + +#if P_FAMILY_SOLROCK + const u32 gMonFrontPic_Solrock[] = INCBIN_U32("graphics/pokemon/solrock/anim_front.4bpp.lz"); + const u32 gMonPalette_Solrock[] = INCBIN_U32("graphics/pokemon/solrock/normal.gbapal.lz"); + const u32 gMonBackPic_Solrock[] = INCBIN_U32("graphics/pokemon/solrock/back.4bpp.lz"); + const u32 gMonShinyPalette_Solrock[] = INCBIN_U32("graphics/pokemon/solrock/shiny.gbapal.lz"); + const u8 gMonIcon_Solrock[] = INCBIN_U8("graphics/pokemon/solrock/icon.4bpp"); + const u8 gMonFootprint_Solrock[] = INCBIN_U8("graphics/pokemon/solrock/footprint.1bpp"); +#endif //P_FAMILY_SOLROCK + +#if P_FAMILY_BARBOACH + const u32 gMonFrontPic_Barboach[] = INCBIN_U32("graphics/pokemon/barboach/anim_front.4bpp.lz"); + const u32 gMonPalette_Barboach[] = INCBIN_U32("graphics/pokemon/barboach/normal.gbapal.lz"); + const u32 gMonBackPic_Barboach[] = INCBIN_U32("graphics/pokemon/barboach/back.4bpp.lz"); + const u32 gMonShinyPalette_Barboach[] = INCBIN_U32("graphics/pokemon/barboach/shiny.gbapal.lz"); + const u8 gMonIcon_Barboach[] = INCBIN_U8("graphics/pokemon/barboach/icon.4bpp"); + const u8 gMonFootprint_Barboach[] = INCBIN_U8("graphics/pokemon/barboach/footprint.1bpp"); + + const u32 gMonFrontPic_Whiscash[] = INCBIN_U32("graphics/pokemon/whiscash/anim_front.4bpp.lz"); + const u32 gMonPalette_Whiscash[] = INCBIN_U32("graphics/pokemon/whiscash/normal.gbapal.lz"); + const u32 gMonBackPic_Whiscash[] = INCBIN_U32("graphics/pokemon/whiscash/back.4bpp.lz"); + const u32 gMonShinyPalette_Whiscash[] = INCBIN_U32("graphics/pokemon/whiscash/shiny.gbapal.lz"); + const u8 gMonIcon_Whiscash[] = INCBIN_U8("graphics/pokemon/whiscash/icon.4bpp"); + const u8 gMonFootprint_Whiscash[] = INCBIN_U8("graphics/pokemon/whiscash/footprint.1bpp"); +#endif //P_FAMILY_BARBOACH + +#if P_FAMILY_CORPHISH + const u32 gMonFrontPic_Corphish[] = INCBIN_U32("graphics/pokemon/corphish/anim_front.4bpp.lz"); + const u32 gMonPalette_Corphish[] = INCBIN_U32("graphics/pokemon/corphish/normal.gbapal.lz"); + const u32 gMonBackPic_Corphish[] = INCBIN_U32("graphics/pokemon/corphish/back.4bpp.lz"); + const u32 gMonShinyPalette_Corphish[] = INCBIN_U32("graphics/pokemon/corphish/shiny.gbapal.lz"); + const u8 gMonIcon_Corphish[] = INCBIN_U8("graphics/pokemon/corphish/icon.4bpp"); + const u8 gMonFootprint_Corphish[] = INCBIN_U8("graphics/pokemon/corphish/footprint.1bpp"); + + const u32 gMonFrontPic_Crawdaunt[] = INCBIN_U32("graphics/pokemon/crawdaunt/anim_front.4bpp.lz"); + const u32 gMonPalette_Crawdaunt[] = INCBIN_U32("graphics/pokemon/crawdaunt/normal.gbapal.lz"); + const u32 gMonBackPic_Crawdaunt[] = INCBIN_U32("graphics/pokemon/crawdaunt/back.4bpp.lz"); + const u32 gMonShinyPalette_Crawdaunt[] = INCBIN_U32("graphics/pokemon/crawdaunt/shiny.gbapal.lz"); + const u8 gMonIcon_Crawdaunt[] = INCBIN_U8("graphics/pokemon/crawdaunt/icon.4bpp"); + const u8 gMonFootprint_Crawdaunt[] = INCBIN_U8("graphics/pokemon/crawdaunt/footprint.1bpp"); +#endif //P_FAMILY_CORPHISH + +#if P_FAMILY_BALTOY + const u32 gMonFrontPic_Baltoy[] = INCBIN_U32("graphics/pokemon/baltoy/anim_front.4bpp.lz"); + const u32 gMonPalette_Baltoy[] = INCBIN_U32("graphics/pokemon/baltoy/normal.gbapal.lz"); + const u32 gMonBackPic_Baltoy[] = INCBIN_U32("graphics/pokemon/baltoy/back.4bpp.lz"); + const u32 gMonShinyPalette_Baltoy[] = INCBIN_U32("graphics/pokemon/baltoy/shiny.gbapal.lz"); + const u8 gMonIcon_Baltoy[] = INCBIN_U8("graphics/pokemon/baltoy/icon.4bpp"); + const u8 gMonFootprint_Baltoy[] = INCBIN_U8("graphics/pokemon/baltoy/footprint.1bpp"); + + const u32 gMonFrontPic_Claydol[] = INCBIN_U32("graphics/pokemon/claydol/anim_front.4bpp.lz"); + const u32 gMonPalette_Claydol[] = INCBIN_U32("graphics/pokemon/claydol/normal.gbapal.lz"); + const u32 gMonBackPic_Claydol[] = INCBIN_U32("graphics/pokemon/claydol/back.4bpp.lz"); + const u32 gMonShinyPalette_Claydol[] = INCBIN_U32("graphics/pokemon/claydol/shiny.gbapal.lz"); + const u8 gMonIcon_Claydol[] = INCBIN_U8("graphics/pokemon/claydol/icon.4bpp"); + const u8 gMonFootprint_Claydol[] = INCBIN_U8("graphics/pokemon/claydol/footprint.1bpp"); +#endif //P_FAMILY_BALTOY + +#if P_FAMILY_LILEEP + const u32 gMonFrontPic_Lileep[] = INCBIN_U32("graphics/pokemon/lileep/anim_front.4bpp.lz"); + const u32 gMonPalette_Lileep[] = INCBIN_U32("graphics/pokemon/lileep/normal.gbapal.lz"); + const u32 gMonBackPic_Lileep[] = INCBIN_U32("graphics/pokemon/lileep/back.4bpp.lz"); + const u32 gMonShinyPalette_Lileep[] = INCBIN_U32("graphics/pokemon/lileep/shiny.gbapal.lz"); + const u8 gMonIcon_Lileep[] = INCBIN_U8("graphics/pokemon/lileep/icon.4bpp"); + const u8 gMonFootprint_Lileep[] = INCBIN_U8("graphics/pokemon/lileep/footprint.1bpp"); + + const u32 gMonFrontPic_Cradily[] = INCBIN_U32("graphics/pokemon/cradily/anim_front.4bpp.lz"); + const u32 gMonPalette_Cradily[] = INCBIN_U32("graphics/pokemon/cradily/normal.gbapal.lz"); + const u32 gMonBackPic_Cradily[] = INCBIN_U32("graphics/pokemon/cradily/back.4bpp.lz"); + const u32 gMonShinyPalette_Cradily[] = INCBIN_U32("graphics/pokemon/cradily/shiny.gbapal.lz"); + const u8 gMonIcon_Cradily[] = INCBIN_U8("graphics/pokemon/cradily/icon.4bpp"); + const u8 gMonFootprint_Cradily[] = INCBIN_U8("graphics/pokemon/cradily/footprint.1bpp"); +#endif //P_FAMILY_LILEEP + +#if P_FAMILY_ANORITH + const u32 gMonFrontPic_Anorith[] = INCBIN_U32("graphics/pokemon/anorith/anim_front.4bpp.lz"); + const u32 gMonPalette_Anorith[] = INCBIN_U32("graphics/pokemon/anorith/normal.gbapal.lz"); + const u32 gMonBackPic_Anorith[] = INCBIN_U32("graphics/pokemon/anorith/back.4bpp.lz"); + const u32 gMonShinyPalette_Anorith[] = INCBIN_U32("graphics/pokemon/anorith/shiny.gbapal.lz"); + const u8 gMonIcon_Anorith[] = INCBIN_U8("graphics/pokemon/anorith/icon.4bpp"); + const u8 gMonFootprint_Anorith[] = INCBIN_U8("graphics/pokemon/anorith/footprint.1bpp"); + + const u32 gMonFrontPic_Armaldo[] = INCBIN_U32("graphics/pokemon/armaldo/anim_front.4bpp.lz"); + const u32 gMonPalette_Armaldo[] = INCBIN_U32("graphics/pokemon/armaldo/normal.gbapal.lz"); + const u32 gMonBackPic_Armaldo[] = INCBIN_U32("graphics/pokemon/armaldo/back.4bpp.lz"); + const u32 gMonShinyPalette_Armaldo[] = INCBIN_U32("graphics/pokemon/armaldo/shiny.gbapal.lz"); + const u8 gMonIcon_Armaldo[] = INCBIN_U8("graphics/pokemon/armaldo/icon.4bpp"); + const u8 gMonFootprint_Armaldo[] = INCBIN_U8("graphics/pokemon/armaldo/footprint.1bpp"); +#endif //P_FAMILY_ANORITH + +#if P_FAMILY_FEEBAS + const u32 gMonFrontPic_Feebas[] = INCBIN_U32("graphics/pokemon/feebas/anim_front.4bpp.lz"); + const u32 gMonPalette_Feebas[] = INCBIN_U32("graphics/pokemon/feebas/normal.gbapal.lz"); + const u32 gMonBackPic_Feebas[] = INCBIN_U32("graphics/pokemon/feebas/back.4bpp.lz"); + const u32 gMonShinyPalette_Feebas[] = INCBIN_U32("graphics/pokemon/feebas/shiny.gbapal.lz"); + const u8 gMonIcon_Feebas[] = INCBIN_U8("graphics/pokemon/feebas/icon.4bpp"); + const u8 gMonFootprint_Feebas[] = INCBIN_U8("graphics/pokemon/feebas/footprint.1bpp"); + + const u32 gMonFrontPic_Milotic[] = INCBIN_U32("graphics/pokemon/milotic/anim_front.4bpp.lz"); + const u32 gMonPalette_Milotic[] = INCBIN_U32("graphics/pokemon/milotic/normal.gbapal.lz"); + const u32 gMonBackPic_Milotic[] = INCBIN_U32("graphics/pokemon/milotic/back.4bpp.lz"); + const u32 gMonShinyPalette_Milotic[] = INCBIN_U32("graphics/pokemon/milotic/shiny.gbapal.lz"); + const u8 gMonIcon_Milotic[] = INCBIN_U8("graphics/pokemon/milotic/icon.4bpp"); + const u8 gMonFootprint_Milotic[] = INCBIN_U8("graphics/pokemon/milotic/footprint.1bpp"); + + const u32 gMonFrontPic_MiloticF[] = INCBIN_U32("graphics/pokemon/milotic/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_MiloticF[] = INCBIN_U32("graphics/pokemon/milotic/backf.4bpp.lz"); +#endif //P_FAMILY_FEEBAS + +#if P_FAMILY_CASTFORM + const u32 gMonFrontPic_CastformNormal[] = INCBIN_U32("graphics/pokemon/castform/anim_front.4bpp.lz"); + const u32 gMonPalette_CastformNormal[] = INCBIN_U32("graphics/pokemon/castform/normal.gbapal.lz"); + const u32 gMonBackPic_CastformNormal[] = INCBIN_U32("graphics/pokemon/castform/back.4bpp.lz"); + const u32 gMonShinyPalette_CastformNormal[] = INCBIN_U32("graphics/pokemon/castform/shiny.gbapal.lz"); + const u8 gMonIcon_CastformNormal[] = INCBIN_U8("graphics/pokemon/castform/icon.4bpp"); + const u8 gMonFootprint_Castform[] = INCBIN_U8("graphics/pokemon/castform/footprint.1bpp"); + + const u32 gMonFrontPic_CastformSunny[] = INCBIN_U32("graphics/pokemon/castform/sunny/anim_front.4bpp.lz"); + const u32 gMonPalette_CastformSunny[] = INCBIN_U32("graphics/pokemon/castform/sunny/normal.gbapal.lz"); + const u32 gMonBackPic_CastformSunny[] = INCBIN_U32("graphics/pokemon/castform/sunny/back.4bpp.lz"); + const u32 gMonShinyPalette_CastformSunny[] = INCBIN_U32("graphics/pokemon/castform/sunny/shiny.gbapal.lz"); + const u8 gMonIcon_CastformSunny[] = INCBIN_U8("graphics/pokemon/castform/sunny/icon.4bpp"); + + const u32 gMonFrontPic_CastformRainy[] = INCBIN_U32("graphics/pokemon/castform/rainy/anim_front.4bpp.lz"); + const u32 gMonPalette_CastformRainy[] = INCBIN_U32("graphics/pokemon/castform/rainy/normal.gbapal.lz"); + const u32 gMonBackPic_CastformRainy[] = INCBIN_U32("graphics/pokemon/castform/rainy/back.4bpp.lz"); + const u32 gMonShinyPalette_CastformRainy[] = INCBIN_U32("graphics/pokemon/castform/rainy/shiny.gbapal.lz"); + const u8 gMonIcon_CastformRainy[] = INCBIN_U8("graphics/pokemon/castform/rainy/icon.4bpp"); + + const u32 gMonFrontPic_CastformSnowy[] = INCBIN_U32("graphics/pokemon/castform/snowy/anim_front.4bpp.lz"); + const u32 gMonPalette_CastformSnowy[] = INCBIN_U32("graphics/pokemon/castform/snowy/normal.gbapal.lz"); + const u32 gMonBackPic_CastformSnowy[] = INCBIN_U32("graphics/pokemon/castform/snowy/back.4bpp.lz"); + const u32 gMonShinyPalette_CastformSnowy[] = INCBIN_U32("graphics/pokemon/castform/snowy/shiny.gbapal.lz"); + const u8 gMonIcon_CastformSnowy[] = INCBIN_U8("graphics/pokemon/castform/snowy/icon.4bpp"); +#endif //P_FAMILY_CASTFORM + +#if P_FAMILY_KECLEON + const u32 gMonFrontPic_Kecleon[] = INCBIN_U32("graphics/pokemon/kecleon/anim_front.4bpp.lz"); + const u32 gMonPalette_Kecleon[] = INCBIN_U32("graphics/pokemon/kecleon/normal.gbapal.lz"); + const u32 gMonBackPic_Kecleon[] = INCBIN_U32("graphics/pokemon/kecleon/back.4bpp.lz"); + const u32 gMonShinyPalette_Kecleon[] = INCBIN_U32("graphics/pokemon/kecleon/shiny.gbapal.lz"); + const u8 gMonIcon_Kecleon[] = INCBIN_U8("graphics/pokemon/kecleon/icon.4bpp"); + const u8 gMonFootprint_Kecleon[] = INCBIN_U8("graphics/pokemon/kecleon/footprint.1bpp"); +#endif //P_FAMILY_KECLEON + +#if P_FAMILY_SHUPPET + const u32 gMonFrontPic_Shuppet[] = INCBIN_U32("graphics/pokemon/shuppet/anim_front.4bpp.lz"); + const u32 gMonPalette_Shuppet[] = INCBIN_U32("graphics/pokemon/shuppet/normal.gbapal.lz"); + const u32 gMonBackPic_Shuppet[] = INCBIN_U32("graphics/pokemon/shuppet/back.4bpp.lz"); + const u32 gMonShinyPalette_Shuppet[] = INCBIN_U32("graphics/pokemon/shuppet/shiny.gbapal.lz"); + const u8 gMonIcon_Shuppet[] = INCBIN_U8("graphics/pokemon/shuppet/icon.4bpp"); + const u8 gMonFootprint_Shuppet[] = INCBIN_U8("graphics/pokemon/shuppet/footprint.1bpp"); + + const u32 gMonFrontPic_Banette[] = INCBIN_U32("graphics/pokemon/banette/anim_front.4bpp.lz"); + const u32 gMonPalette_Banette[] = INCBIN_U32("graphics/pokemon/banette/normal.gbapal.lz"); + const u32 gMonBackPic_Banette[] = INCBIN_U32("graphics/pokemon/banette/back.4bpp.lz"); + const u32 gMonShinyPalette_Banette[] = INCBIN_U32("graphics/pokemon/banette/shiny.gbapal.lz"); + const u8 gMonIcon_Banette[] = INCBIN_U8("graphics/pokemon/banette/icon.4bpp"); + const u8 gMonFootprint_Banette[] = INCBIN_U8("graphics/pokemon/banette/footprint.1bpp"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_BanetteMega[] = INCBIN_U32("graphics/pokemon/banette/mega/front.4bpp.lz"); + const u32 gMonPalette_BanetteMega[] = INCBIN_U32("graphics/pokemon/banette/mega/normal.gbapal.lz"); + const u32 gMonBackPic_BanetteMega[] = INCBIN_U32("graphics/pokemon/banette/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_BanetteMega[] = INCBIN_U32("graphics/pokemon/banette/mega/shiny.gbapal.lz"); + const u8 gMonIcon_BanetteMega[] = INCBIN_U8("graphics/pokemon/banette/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_SHUPPET + +#if P_FAMILY_DUSKULL + const u32 gMonFrontPic_Duskull[] = INCBIN_U32("graphics/pokemon/duskull/anim_front.4bpp.lz"); + const u32 gMonPalette_Duskull[] = INCBIN_U32("graphics/pokemon/duskull/normal.gbapal.lz"); + const u32 gMonBackPic_Duskull[] = INCBIN_U32("graphics/pokemon/duskull/back.4bpp.lz"); + const u32 gMonShinyPalette_Duskull[] = INCBIN_U32("graphics/pokemon/duskull/shiny.gbapal.lz"); + const u8 gMonIcon_Duskull[] = INCBIN_U8("graphics/pokemon/duskull/icon.4bpp"); + const u8 gMonFootprint_Duskull[] = INCBIN_U8("graphics/pokemon/duskull/footprint.1bpp"); + + const u32 gMonFrontPic_Dusclops[] = INCBIN_U32("graphics/pokemon/dusclops/anim_front.4bpp.lz"); + const u32 gMonPalette_Dusclops[] = INCBIN_U32("graphics/pokemon/dusclops/normal.gbapal.lz"); + const u32 gMonBackPic_Dusclops[] = INCBIN_U32("graphics/pokemon/dusclops/back.4bpp.lz"); + const u32 gMonShinyPalette_Dusclops[] = INCBIN_U32("graphics/pokemon/dusclops/shiny.gbapal.lz"); + const u8 gMonIcon_Dusclops[] = INCBIN_U8("graphics/pokemon/dusclops/icon.4bpp"); + const u8 gMonFootprint_Dusclops[] = INCBIN_U8("graphics/pokemon/dusclops/footprint.1bpp"); + +#if P_GEN_4_CROSS_EVOS + const u32 gMonFrontPic_Dusknoir[] = INCBIN_U32("graphics/pokemon/dusknoir/anim_front.4bpp.lz"); + const u32 gMonPalette_Dusknoir[] = INCBIN_U32("graphics/pokemon/dusknoir/normal.gbapal.lz"); + const u32 gMonBackPic_Dusknoir[] = INCBIN_U32("graphics/pokemon/dusknoir/back.4bpp.lz"); + const u32 gMonShinyPalette_Dusknoir[] = INCBIN_U32("graphics/pokemon/dusknoir/shiny.gbapal.lz"); + const u8 gMonIcon_Dusknoir[] = INCBIN_U8("graphics/pokemon/dusknoir/icon.4bpp"); + const u8 gMonFootprint_Dusknoir[] = INCBIN_U8("graphics/pokemon/dusknoir/footprint.1bpp"); +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_DUSKULL + +#if P_FAMILY_TROPIUS + const u32 gMonFrontPic_Tropius[] = INCBIN_U32("graphics/pokemon/tropius/anim_front.4bpp.lz"); + const u32 gMonPalette_Tropius[] = INCBIN_U32("graphics/pokemon/tropius/normal.gbapal.lz"); + const u32 gMonBackPic_Tropius[] = INCBIN_U32("graphics/pokemon/tropius/back.4bpp.lz"); + const u32 gMonShinyPalette_Tropius[] = INCBIN_U32("graphics/pokemon/tropius/shiny.gbapal.lz"); + const u8 gMonIcon_Tropius[] = INCBIN_U8("graphics/pokemon/tropius/icon.4bpp"); + const u8 gMonFootprint_Tropius[] = INCBIN_U8("graphics/pokemon/tropius/footprint.1bpp"); +#endif //P_FAMILY_TROPIUS + +#if P_FAMILY_CHIMECHO +#if P_GEN_4_CROSS_EVOS + const u32 gMonFrontPic_Chingling[] = INCBIN_U32("graphics/pokemon/chingling/anim_front.4bpp.lz"); + const u32 gMonPalette_Chingling[] = INCBIN_U32("graphics/pokemon/chingling/normal.gbapal.lz"); + const u32 gMonBackPic_Chingling[] = INCBIN_U32("graphics/pokemon/chingling/back.4bpp.lz"); + const u32 gMonShinyPalette_Chingling[] = INCBIN_U32("graphics/pokemon/chingling/shiny.gbapal.lz"); + const u8 gMonIcon_Chingling[] = INCBIN_U8("graphics/pokemon/chingling/icon.4bpp"); + const u8 gMonFootprint_Chingling[] = INCBIN_U8("graphics/pokemon/chingling/footprint.1bpp"); +#endif //P_GEN_4_CROSS_EVOS + + const u32 gMonFrontPic_Chimecho[] = INCBIN_U32("graphics/pokemon/chimecho/anim_front.4bpp.lz"); + const u32 gMonPalette_Chimecho[] = INCBIN_U32("graphics/pokemon/chimecho/normal.gbapal.lz"); + const u32 gMonBackPic_Chimecho[] = INCBIN_U32("graphics/pokemon/chimecho/back.4bpp.lz"); + const u32 gMonShinyPalette_Chimecho[] = INCBIN_U32("graphics/pokemon/chimecho/shiny.gbapal.lz"); + const u8 gMonIcon_Chimecho[] = INCBIN_U8("graphics/pokemon/chimecho/icon.4bpp"); + const u8 gMonFootprint_Chimecho[] = INCBIN_U8("graphics/pokemon/chimecho/footprint.1bpp"); +#endif //P_FAMILY_CHIMECHO + +#if P_FAMILY_ABSOL + const u32 gMonFrontPic_Absol[] = INCBIN_U32("graphics/pokemon/absol/anim_front.4bpp.lz"); + const u32 gMonPalette_Absol[] = INCBIN_U32("graphics/pokemon/absol/normal.gbapal.lz"); + const u32 gMonBackPic_Absol[] = INCBIN_U32("graphics/pokemon/absol/back.4bpp.lz"); + const u32 gMonShinyPalette_Absol[] = INCBIN_U32("graphics/pokemon/absol/shiny.gbapal.lz"); + const u8 gMonIcon_Absol[] = INCBIN_U8("graphics/pokemon/absol/icon.4bpp"); + const u8 gMonFootprint_Absol[] = INCBIN_U8("graphics/pokemon/absol/footprint.1bpp"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_AbsolMega[] = INCBIN_U32("graphics/pokemon/absol/mega/front.4bpp.lz"); + const u32 gMonPalette_AbsolMega[] = INCBIN_U32("graphics/pokemon/absol/mega/normal.gbapal.lz"); + const u32 gMonBackPic_AbsolMega[] = INCBIN_U32("graphics/pokemon/absol/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_AbsolMega[] = INCBIN_U32("graphics/pokemon/absol/mega/shiny.gbapal.lz"); + const u8 gMonIcon_AbsolMega[] = INCBIN_U8("graphics/pokemon/absol/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_ABSOL + +#if P_FAMILY_SNORUNT + const u32 gMonFrontPic_Snorunt[] = INCBIN_U32("graphics/pokemon/snorunt/anim_front.4bpp.lz"); + const u32 gMonPalette_Snorunt[] = INCBIN_U32("graphics/pokemon/snorunt/normal.gbapal.lz"); + const u32 gMonBackPic_Snorunt[] = INCBIN_U32("graphics/pokemon/snorunt/back.4bpp.lz"); + const u32 gMonShinyPalette_Snorunt[] = INCBIN_U32("graphics/pokemon/snorunt/shiny.gbapal.lz"); + const u8 gMonIcon_Snorunt[] = INCBIN_U8("graphics/pokemon/snorunt/icon.4bpp"); + const u8 gMonFootprint_Snorunt[] = INCBIN_U8("graphics/pokemon/snorunt/footprint.1bpp"); + + const u32 gMonFrontPic_Glalie[] = INCBIN_U32("graphics/pokemon/glalie/anim_front.4bpp.lz"); + const u32 gMonPalette_Glalie[] = INCBIN_U32("graphics/pokemon/glalie/normal.gbapal.lz"); + const u32 gMonBackPic_Glalie[] = INCBIN_U32("graphics/pokemon/glalie/back.4bpp.lz"); + const u32 gMonShinyPalette_Glalie[] = INCBIN_U32("graphics/pokemon/glalie/shiny.gbapal.lz"); + const u8 gMonIcon_Glalie[] = INCBIN_U8("graphics/pokemon/glalie/icon.4bpp"); + const u8 gMonFootprint_Glalie[] = INCBIN_U8("graphics/pokemon/glalie/footprint.1bpp"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_GlalieMega[] = INCBIN_U32("graphics/pokemon/glalie/mega/front.4bpp.lz"); + const u32 gMonPalette_GlalieMega[] = INCBIN_U32("graphics/pokemon/glalie/mega/normal.gbapal.lz"); + const u32 gMonBackPic_GlalieMega[] = INCBIN_U32("graphics/pokemon/glalie/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_GlalieMega[] = INCBIN_U32("graphics/pokemon/glalie/mega/shiny.gbapal.lz"); + const u8 gMonIcon_GlalieMega[] = INCBIN_U8("graphics/pokemon/glalie/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS + +#if P_GEN_4_CROSS_EVOS + const u32 gMonFrontPic_Froslass[] = INCBIN_U32("graphics/pokemon/froslass/anim_front.4bpp.lz"); + const u32 gMonPalette_Froslass[] = INCBIN_U32("graphics/pokemon/froslass/normal.gbapal.lz"); + const u32 gMonBackPic_Froslass[] = INCBIN_U32("graphics/pokemon/froslass/back.4bpp.lz"); + const u32 gMonShinyPalette_Froslass[] = INCBIN_U32("graphics/pokemon/froslass/shiny.gbapal.lz"); + const u8 gMonIcon_Froslass[] = INCBIN_U8("graphics/pokemon/froslass/icon.4bpp"); + const u8 gMonFootprint_Froslass[] = INCBIN_U8("graphics/pokemon/froslass/footprint.1bpp"); +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_SNORUNT + +#if P_FAMILY_SPHEAL + const u32 gMonFrontPic_Spheal[] = INCBIN_U32("graphics/pokemon/spheal/anim_front.4bpp.lz"); + const u32 gMonPalette_Spheal[] = INCBIN_U32("graphics/pokemon/spheal/normal.gbapal.lz"); + const u32 gMonBackPic_Spheal[] = INCBIN_U32("graphics/pokemon/spheal/back.4bpp.lz"); + const u32 gMonShinyPalette_Spheal[] = INCBIN_U32("graphics/pokemon/spheal/shiny.gbapal.lz"); + const u8 gMonIcon_Spheal[] = INCBIN_U8("graphics/pokemon/spheal/icon.4bpp"); + const u8 gMonFootprint_Spheal[] = INCBIN_U8("graphics/pokemon/spheal/footprint.1bpp"); + + const u32 gMonFrontPic_Sealeo[] = INCBIN_U32("graphics/pokemon/sealeo/anim_front.4bpp.lz"); + const u32 gMonPalette_Sealeo[] = INCBIN_U32("graphics/pokemon/sealeo/normal.gbapal.lz"); + const u32 gMonBackPic_Sealeo[] = INCBIN_U32("graphics/pokemon/sealeo/back.4bpp.lz"); + const u32 gMonShinyPalette_Sealeo[] = INCBIN_U32("graphics/pokemon/sealeo/shiny.gbapal.lz"); + const u8 gMonIcon_Sealeo[] = INCBIN_U8("graphics/pokemon/sealeo/icon.4bpp"); + const u8 gMonFootprint_Sealeo[] = INCBIN_U8("graphics/pokemon/sealeo/footprint.1bpp"); + + const u32 gMonFrontPic_Walrein[] = INCBIN_U32("graphics/pokemon/walrein/anim_front.4bpp.lz"); + const u32 gMonPalette_Walrein[] = INCBIN_U32("graphics/pokemon/walrein/normal.gbapal.lz"); + const u32 gMonBackPic_Walrein[] = INCBIN_U32("graphics/pokemon/walrein/back.4bpp.lz"); + const u32 gMonShinyPalette_Walrein[] = INCBIN_U32("graphics/pokemon/walrein/shiny.gbapal.lz"); + const u8 gMonIcon_Walrein[] = INCBIN_U8("graphics/pokemon/walrein/icon.4bpp"); + const u8 gMonFootprint_Walrein[] = INCBIN_U8("graphics/pokemon/walrein/footprint.1bpp"); +#endif //P_FAMILY_SPHEAL + +#if P_FAMILY_CLAMPERL + const u32 gMonFrontPic_Clamperl[] = INCBIN_U32("graphics/pokemon/clamperl/anim_front.4bpp.lz"); + const u32 gMonPalette_Clamperl[] = INCBIN_U32("graphics/pokemon/clamperl/normal.gbapal.lz"); + const u32 gMonBackPic_Clamperl[] = INCBIN_U32("graphics/pokemon/clamperl/back.4bpp.lz"); + const u32 gMonShinyPalette_Clamperl[] = INCBIN_U32("graphics/pokemon/clamperl/shiny.gbapal.lz"); + const u8 gMonIcon_Clamperl[] = INCBIN_U8("graphics/pokemon/clamperl/icon.4bpp"); + const u8 gMonFootprint_Clamperl[] = INCBIN_U8("graphics/pokemon/clamperl/footprint.1bpp"); + + const u32 gMonFrontPic_Huntail[] = INCBIN_U32("graphics/pokemon/huntail/anim_front.4bpp.lz"); + const u32 gMonPalette_Huntail[] = INCBIN_U32("graphics/pokemon/huntail/normal.gbapal.lz"); + const u32 gMonBackPic_Huntail[] = INCBIN_U32("graphics/pokemon/huntail/back.4bpp.lz"); + const u32 gMonShinyPalette_Huntail[] = INCBIN_U32("graphics/pokemon/huntail/shiny.gbapal.lz"); + const u8 gMonIcon_Huntail[] = INCBIN_U8("graphics/pokemon/huntail/icon.4bpp"); + const u8 gMonFootprint_Huntail[] = INCBIN_U8("graphics/pokemon/huntail/footprint.1bpp"); + + const u32 gMonFrontPic_Gorebyss[] = INCBIN_U32("graphics/pokemon/gorebyss/anim_front.4bpp.lz"); + const u32 gMonPalette_Gorebyss[] = INCBIN_U32("graphics/pokemon/gorebyss/normal.gbapal.lz"); + const u32 gMonBackPic_Gorebyss[] = INCBIN_U32("graphics/pokemon/gorebyss/back.4bpp.lz"); + const u32 gMonShinyPalette_Gorebyss[] = INCBIN_U32("graphics/pokemon/gorebyss/shiny.gbapal.lz"); + const u8 gMonIcon_Gorebyss[] = INCBIN_U8("graphics/pokemon/gorebyss/icon.4bpp"); + const u8 gMonFootprint_Gorebyss[] = INCBIN_U8("graphics/pokemon/gorebyss/footprint.1bpp"); +#endif //P_FAMILY_CLAMPERL + +#if P_FAMILY_RELICANTH + const u32 gMonFrontPic_Relicanth[] = INCBIN_U32("graphics/pokemon/relicanth/anim_front.4bpp.lz"); + const u32 gMonPalette_Relicanth[] = INCBIN_U32("graphics/pokemon/relicanth/normal.gbapal.lz"); + const u32 gMonBackPic_Relicanth[] = INCBIN_U32("graphics/pokemon/relicanth/back.4bpp.lz"); + const u32 gMonShinyPalette_Relicanth[] = INCBIN_U32("graphics/pokemon/relicanth/shiny.gbapal.lz"); + const u8 gMonIcon_Relicanth[] = INCBIN_U8("graphics/pokemon/relicanth/icon.4bpp"); + const u8 gMonFootprint_Relicanth[] = INCBIN_U8("graphics/pokemon/relicanth/footprint.1bpp"); + + const u32 gMonFrontPic_RelicanthF[] = INCBIN_U32("graphics/pokemon/relicanth/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_RelicanthF[] = INCBIN_U32("graphics/pokemon/relicanth/backf.4bpp.lz"); +#endif //P_FAMILY_RELICANTH + +#if P_FAMILY_LUVDISC + const u32 gMonFrontPic_Luvdisc[] = INCBIN_U32("graphics/pokemon/luvdisc/anim_front.4bpp.lz"); + const u32 gMonPalette_Luvdisc[] = INCBIN_U32("graphics/pokemon/luvdisc/normal.gbapal.lz"); + const u32 gMonBackPic_Luvdisc[] = INCBIN_U32("graphics/pokemon/luvdisc/back.4bpp.lz"); + const u32 gMonShinyPalette_Luvdisc[] = INCBIN_U32("graphics/pokemon/luvdisc/shiny.gbapal.lz"); + const u8 gMonIcon_Luvdisc[] = INCBIN_U8("graphics/pokemon/luvdisc/icon.4bpp"); + const u8 gMonFootprint_Luvdisc[] = INCBIN_U8("graphics/pokemon/luvdisc/footprint.1bpp"); +#endif //P_FAMILY_LUVDISC + +#if P_FAMILY_BAGON + const u32 gMonFrontPic_Bagon[] = INCBIN_U32("graphics/pokemon/bagon/anim_front.4bpp.lz"); + const u32 gMonPalette_Bagon[] = INCBIN_U32("graphics/pokemon/bagon/normal.gbapal.lz"); + const u32 gMonBackPic_Bagon[] = INCBIN_U32("graphics/pokemon/bagon/back.4bpp.lz"); + const u32 gMonShinyPalette_Bagon[] = INCBIN_U32("graphics/pokemon/bagon/shiny.gbapal.lz"); + const u8 gMonIcon_Bagon[] = INCBIN_U8("graphics/pokemon/bagon/icon.4bpp"); + const u8 gMonFootprint_Bagon[] = INCBIN_U8("graphics/pokemon/bagon/footprint.1bpp"); + + const u32 gMonFrontPic_Shelgon[] = INCBIN_U32("graphics/pokemon/shelgon/anim_front.4bpp.lz"); + const u32 gMonPalette_Shelgon[] = INCBIN_U32("graphics/pokemon/shelgon/normal.gbapal.lz"); + const u32 gMonBackPic_Shelgon[] = INCBIN_U32("graphics/pokemon/shelgon/back.4bpp.lz"); + const u32 gMonShinyPalette_Shelgon[] = INCBIN_U32("graphics/pokemon/shelgon/shiny.gbapal.lz"); + const u8 gMonIcon_Shelgon[] = INCBIN_U8("graphics/pokemon/shelgon/icon.4bpp"); + const u8 gMonFootprint_Shelgon[] = INCBIN_U8("graphics/pokemon/shelgon/footprint.1bpp"); + + const u32 gMonFrontPic_Salamence[] = INCBIN_U32("graphics/pokemon/salamence/anim_front.4bpp.lz"); + const u32 gMonPalette_Salamence[] = INCBIN_U32("graphics/pokemon/salamence/normal.gbapal.lz"); + const u32 gMonBackPic_Salamence[] = INCBIN_U32("graphics/pokemon/salamence/back.4bpp.lz"); + const u32 gMonShinyPalette_Salamence[] = INCBIN_U32("graphics/pokemon/salamence/shiny.gbapal.lz"); + const u8 gMonIcon_Salamence[] = INCBIN_U8("graphics/pokemon/salamence/icon.4bpp"); + const u8 gMonFootprint_Salamence[] = INCBIN_U8("graphics/pokemon/salamence/footprint.1bpp"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_SalamenceMega[] = INCBIN_U32("graphics/pokemon/salamence/mega/front.4bpp.lz"); + const u32 gMonPalette_SalamenceMega[] = INCBIN_U32("graphics/pokemon/salamence/mega/normal.gbapal.lz"); + const u32 gMonBackPic_SalamenceMega[] = INCBIN_U32("graphics/pokemon/salamence/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_SalamenceMega[] = INCBIN_U32("graphics/pokemon/salamence/mega/shiny.gbapal.lz"); + const u8 gMonIcon_SalamenceMega[] = INCBIN_U8("graphics/pokemon/salamence/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_BAGON + +#if P_FAMILY_BELDUM + const u32 gMonFrontPic_Beldum[] = INCBIN_U32("graphics/pokemon/beldum/anim_front.4bpp.lz"); + const u32 gMonPalette_Beldum[] = INCBIN_U32("graphics/pokemon/beldum/normal.gbapal.lz"); + const u32 gMonBackPic_Beldum[] = INCBIN_U32("graphics/pokemon/beldum/back.4bpp.lz"); + const u32 gMonShinyPalette_Beldum[] = INCBIN_U32("graphics/pokemon/beldum/shiny.gbapal.lz"); + const u8 gMonIcon_Beldum[] = INCBIN_U8("graphics/pokemon/beldum/icon.4bpp"); + const u8 gMonFootprint_Beldum[] = INCBIN_U8("graphics/pokemon/beldum/footprint.1bpp"); + + const u32 gMonFrontPic_Metang[] = INCBIN_U32("graphics/pokemon/metang/anim_front.4bpp.lz"); + const u32 gMonPalette_Metang[] = INCBIN_U32("graphics/pokemon/metang/normal.gbapal.lz"); + const u32 gMonBackPic_Metang[] = INCBIN_U32("graphics/pokemon/metang/back.4bpp.lz"); + const u32 gMonShinyPalette_Metang[] = INCBIN_U32("graphics/pokemon/metang/shiny.gbapal.lz"); + const u8 gMonIcon_Metang[] = INCBIN_U8("graphics/pokemon/metang/icon.4bpp"); + const u8 gMonFootprint_Metang[] = INCBIN_U8("graphics/pokemon/metang/footprint.1bpp"); + + const u32 gMonFrontPic_Metagross[] = INCBIN_U32("graphics/pokemon/metagross/anim_front.4bpp.lz"); + const u32 gMonPalette_Metagross[] = INCBIN_U32("graphics/pokemon/metagross/normal.gbapal.lz"); + const u32 gMonBackPic_Metagross[] = INCBIN_U32("graphics/pokemon/metagross/back.4bpp.lz"); + const u32 gMonShinyPalette_Metagross[] = INCBIN_U32("graphics/pokemon/metagross/shiny.gbapal.lz"); + const u8 gMonIcon_Metagross[] = INCBIN_U8("graphics/pokemon/metagross/icon.4bpp"); + const u8 gMonFootprint_Metagross[] = INCBIN_U8("graphics/pokemon/metagross/footprint.1bpp"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_MetagrossMega[] = INCBIN_U32("graphics/pokemon/metagross/mega/front.4bpp.lz"); + const u32 gMonPalette_MetagrossMega[] = INCBIN_U32("graphics/pokemon/metagross/mega/normal.gbapal.lz"); + const u32 gMonBackPic_MetagrossMega[] = INCBIN_U32("graphics/pokemon/metagross/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_MetagrossMega[] = INCBIN_U32("graphics/pokemon/metagross/mega/shiny.gbapal.lz"); + const u8 gMonIcon_MetagrossMega[] = INCBIN_U8("graphics/pokemon/metagross/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_BELDUM + +#if P_FAMILY_REGIROCK + const u32 gMonFrontPic_Regirock[] = INCBIN_U32("graphics/pokemon/regirock/anim_front.4bpp.lz"); + const u32 gMonPalette_Regirock[] = INCBIN_U32("graphics/pokemon/regirock/normal.gbapal.lz"); + const u32 gMonBackPic_Regirock[] = INCBIN_U32("graphics/pokemon/regirock/back.4bpp.lz"); + const u32 gMonShinyPalette_Regirock[] = INCBIN_U32("graphics/pokemon/regirock/shiny.gbapal.lz"); + const u8 gMonIcon_Regirock[] = INCBIN_U8("graphics/pokemon/regirock/icon.4bpp"); + const u8 gMonFootprint_Regirock[] = INCBIN_U8("graphics/pokemon/regirock/footprint.1bpp"); +#endif //P_FAMILY_REGIROCK + +#if P_FAMILY_REGICE + const u32 gMonFrontPic_Regice[] = INCBIN_U32("graphics/pokemon/regice/anim_front.4bpp.lz"); + const u32 gMonPalette_Regice[] = INCBIN_U32("graphics/pokemon/regice/normal.gbapal.lz"); + const u32 gMonBackPic_Regice[] = INCBIN_U32("graphics/pokemon/regice/back.4bpp.lz"); + const u32 gMonShinyPalette_Regice[] = INCBIN_U32("graphics/pokemon/regice/shiny.gbapal.lz"); + const u8 gMonIcon_Regice[] = INCBIN_U8("graphics/pokemon/regice/icon.4bpp"); + const u8 gMonFootprint_Regice[] = INCBIN_U8("graphics/pokemon/regice/footprint.1bpp"); +#endif //P_FAMILY_REGICE + +#if P_FAMILY_REGISTEEL + const u32 gMonFrontPic_Registeel[] = INCBIN_U32("graphics/pokemon/registeel/anim_front.4bpp.lz"); + const u32 gMonPalette_Registeel[] = INCBIN_U32("graphics/pokemon/registeel/normal.gbapal.lz"); + const u32 gMonBackPic_Registeel[] = INCBIN_U32("graphics/pokemon/registeel/back.4bpp.lz"); + const u32 gMonShinyPalette_Registeel[] = INCBIN_U32("graphics/pokemon/registeel/shiny.gbapal.lz"); + const u8 gMonIcon_Registeel[] = INCBIN_U8("graphics/pokemon/registeel/icon.4bpp"); + const u8 gMonFootprint_Registeel[] = INCBIN_U8("graphics/pokemon/registeel/footprint.1bpp"); +#endif //P_FAMILY_REGISTEEL + +#if P_FAMILY_LATIAS + const u32 gMonFrontPic_Latias[] = INCBIN_U32("graphics/pokemon/latias/anim_front.4bpp.lz"); + const u32 gMonPalette_Latias[] = INCBIN_U32("graphics/pokemon/latias/normal.gbapal.lz"); + const u32 gMonBackPic_Latias[] = INCBIN_U32("graphics/pokemon/latias/back.4bpp.lz"); + const u32 gMonShinyPalette_Latias[] = INCBIN_U32("graphics/pokemon/latias/shiny.gbapal.lz"); + const u8 gMonIcon_Latias[] = INCBIN_U8("graphics/pokemon/latias/icon.4bpp"); + const u8 gMonFootprint_Latias[] = INCBIN_U8("graphics/pokemon/latias/footprint.1bpp"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_LatiasMega[] = INCBIN_U32("graphics/pokemon/latias/mega/front.4bpp.lz"); + const u32 gMonPalette_LatiasMega[] = INCBIN_U32("graphics/pokemon/latias/mega/normal.gbapal.lz"); + const u32 gMonBackPic_LatiasMega[] = INCBIN_U32("graphics/pokemon/latias/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_LatiasMega[] = INCBIN_U32("graphics/pokemon/latias/mega/shiny.gbapal.lz"); + const u8 gMonIcon_LatiasMega[] = INCBIN_U8("graphics/pokemon/latias/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_LATIAS + +#if P_FAMILY_LATIOS + const u32 gMonFrontPic_Latios[] = INCBIN_U32("graphics/pokemon/latios/anim_front.4bpp.lz"); + const u32 gMonPalette_Latios[] = INCBIN_U32("graphics/pokemon/latios/normal.gbapal.lz"); + const u32 gMonBackPic_Latios[] = INCBIN_U32("graphics/pokemon/latios/back.4bpp.lz"); + const u32 gMonShinyPalette_Latios[] = INCBIN_U32("graphics/pokemon/latios/shiny.gbapal.lz"); + const u8 gMonIcon_Latios[] = INCBIN_U8("graphics/pokemon/latios/icon.4bpp"); + const u8 gMonFootprint_Latios[] = INCBIN_U8("graphics/pokemon/latios/footprint.1bpp"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_LatiosMega[] = INCBIN_U32("graphics/pokemon/latios/mega/front.4bpp.lz"); + const u32 gMonPalette_LatiosMega[] = INCBIN_U32("graphics/pokemon/latios/mega/normal.gbapal.lz"); + const u32 gMonBackPic_LatiosMega[] = INCBIN_U32("graphics/pokemon/latios/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_LatiosMega[] = INCBIN_U32("graphics/pokemon/latios/mega/shiny.gbapal.lz"); + const u8 gMonIcon_LatiosMega[] = INCBIN_U8("graphics/pokemon/latios/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_LATIOS + +#if P_FAMILY_KYOGRE + const u32 gMonFrontPic_Kyogre[] = INCBIN_U32("graphics/pokemon/kyogre/anim_front.4bpp.lz"); + const u32 gMonPalette_Kyogre[] = INCBIN_U32("graphics/pokemon/kyogre/normal.gbapal.lz"); + const u32 gMonBackPic_Kyogre[] = INCBIN_U32("graphics/pokemon/kyogre/back.4bpp.lz"); + const u32 gMonShinyPalette_Kyogre[] = INCBIN_U32("graphics/pokemon/kyogre/shiny.gbapal.lz"); + const u8 gMonIcon_Kyogre[] = INCBIN_U8("graphics/pokemon/kyogre/icon.4bpp"); + const u8 gMonFootprint_Kyogre[] = INCBIN_U8("graphics/pokemon/kyogre/footprint.1bpp"); + +#if P_PRIMAL_REVERSIONS + const u32 gMonFrontPic_KyogrePrimal[] = INCBIN_U32("graphics/pokemon/kyogre/primal/front.4bpp.lz"); + const u32 gMonPalette_KyogrePrimal[] = INCBIN_U32("graphics/pokemon/kyogre/primal/normal.gbapal.lz"); + const u32 gMonBackPic_KyogrePrimal[] = INCBIN_U32("graphics/pokemon/kyogre/primal/back.4bpp.lz"); + const u32 gMonShinyPalette_KyogrePrimal[] = INCBIN_U32("graphics/pokemon/kyogre/primal/shiny.gbapal.lz"); + const u8 gMonIcon_KyogrePrimal[] = INCBIN_U8("graphics/pokemon/kyogre/primal/icon.4bpp"); +#endif //P_PRIMAL_REVERSIONS +#endif //P_FAMILY_KYOGRE + +#if P_FAMILY_GROUDON + const u32 gMonFrontPic_Groudon[] = INCBIN_U32("graphics/pokemon/groudon/anim_front.4bpp.lz"); + const u32 gMonPalette_Groudon[] = INCBIN_U32("graphics/pokemon/groudon/normal.gbapal.lz"); + const u32 gMonBackPic_Groudon[] = INCBIN_U32("graphics/pokemon/groudon/back.4bpp.lz"); + const u32 gMonShinyPalette_Groudon[] = INCBIN_U32("graphics/pokemon/groudon/shiny.gbapal.lz"); + const u8 gMonIcon_Groudon[] = INCBIN_U8("graphics/pokemon/groudon/icon.4bpp"); + const u8 gMonFootprint_Groudon[] = INCBIN_U8("graphics/pokemon/groudon/footprint.1bpp"); + +#if P_PRIMAL_REVERSIONS + const u32 gMonFrontPic_GroudonPrimal[] = INCBIN_U32("graphics/pokemon/groudon/primal/front.4bpp.lz"); + const u32 gMonPalette_GroudonPrimal[] = INCBIN_U32("graphics/pokemon/groudon/primal/normal.gbapal.lz"); + const u32 gMonBackPic_GroudonPrimal[] = INCBIN_U32("graphics/pokemon/groudon/primal/back.4bpp.lz"); + const u32 gMonShinyPalette_GroudonPrimal[] = INCBIN_U32("graphics/pokemon/groudon/primal/shiny.gbapal.lz"); + const u8 gMonIcon_GroudonPrimal[] = INCBIN_U8("graphics/pokemon/groudon/primal/icon.4bpp"); +#endif //P_PRIMAL_REVERSIONS +#endif //P_FAMILY_GROUDON + +#if P_FAMILY_RAYQUAZA + const u32 gMonFrontPic_Rayquaza[] = INCBIN_U32("graphics/pokemon/rayquaza/anim_front.4bpp.lz"); + const u32 gMonPalette_Rayquaza[] = INCBIN_U32("graphics/pokemon/rayquaza/normal.gbapal.lz"); + const u32 gMonBackPic_Rayquaza[] = INCBIN_U32("graphics/pokemon/rayquaza/back.4bpp.lz"); + const u32 gMonShinyPalette_Rayquaza[] = INCBIN_U32("graphics/pokemon/rayquaza/shiny.gbapal.lz"); + const u8 gMonIcon_Rayquaza[] = INCBIN_U8("graphics/pokemon/rayquaza/icon.4bpp"); + const u8 gMonFootprint_Rayquaza[] = INCBIN_U8("graphics/pokemon/rayquaza/footprint.1bpp"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_RayquazaMega[] = INCBIN_U32("graphics/pokemon/rayquaza/mega/front.4bpp.lz"); + const u32 gMonPalette_RayquazaMega[] = INCBIN_U32("graphics/pokemon/rayquaza/mega/normal.gbapal.lz"); + const u32 gMonBackPic_RayquazaMega[] = INCBIN_U32("graphics/pokemon/rayquaza/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_RayquazaMega[] = INCBIN_U32("graphics/pokemon/rayquaza/mega/shiny.gbapal.lz"); + const u8 gMonIcon_RayquazaMega[] = INCBIN_U8("graphics/pokemon/rayquaza/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_RAYQUAZA + +#if P_FAMILY_JIRACHI + const u32 gMonFrontPic_Jirachi[] = INCBIN_U32("graphics/pokemon/jirachi/anim_front.4bpp.lz"); + const u32 gMonPalette_Jirachi[] = INCBIN_U32("graphics/pokemon/jirachi/normal.gbapal.lz"); + const u32 gMonBackPic_Jirachi[] = INCBIN_U32("graphics/pokemon/jirachi/back.4bpp.lz"); + const u32 gMonShinyPalette_Jirachi[] = INCBIN_U32("graphics/pokemon/jirachi/shiny.gbapal.lz"); + const u8 gMonIcon_Jirachi[] = INCBIN_U8("graphics/pokemon/jirachi/icon.4bpp"); + const u8 gMonFootprint_Jirachi[] = INCBIN_U8("graphics/pokemon/jirachi/footprint.1bpp"); +#endif //P_FAMILY_JIRACHI + +#if P_FAMILY_DEOXYS + const u32 gMonFrontPic_DeoxysNormal[] = INCBIN_U32("graphics/pokemon/deoxys/anim_front.4bpp.lz"); + const u32 gMonPalette_DeoxysNormal[] = INCBIN_U32("graphics/pokemon/deoxys/normal.gbapal.lz"); + const u32 gMonBackPic_DeoxysNormal[] = INCBIN_U32("graphics/pokemon/deoxys/back.4bpp.lz"); + const u32 gMonShinyPalette_DeoxysNormal[] = INCBIN_U32("graphics/pokemon/deoxys/shiny.gbapal.lz"); + const u8 gMonIcon_DeoxysNormal[] = INCBIN_U8("graphics/pokemon/deoxys/icon.4bpp"); + const u8 gMonFootprint_Deoxys[] = INCBIN_U8("graphics/pokemon/deoxys/footprint.1bpp"); + + const u32 gMonFrontPic_DeoxysAttack[] = INCBIN_U32("graphics/pokemon/deoxys/attack/anim_front.4bpp.lz"); + const u32 gMonPalette_DeoxysAttack[] = INCBIN_U32("graphics/pokemon/deoxys/attack/normal.gbapal.lz"); + const u32 gMonBackPic_DeoxysAttack[] = INCBIN_U32("graphics/pokemon/deoxys/attack/back.4bpp.lz"); + const u32 gMonShinyPalette_DeoxysAttack[] = INCBIN_U32("graphics/pokemon/deoxys/attack/shiny.gbapal.lz"); + const u8 gMonIcon_DeoxysAttack[] = INCBIN_U8("graphics/pokemon/deoxys/attack/icon.4bpp"); + + const u32 gMonFrontPic_DeoxysDefense[] = INCBIN_U32("graphics/pokemon/deoxys/defense/anim_front.4bpp.lz"); + const u32 gMonPalette_DeoxysDefense[] = INCBIN_U32("graphics/pokemon/deoxys/defense/normal.gbapal.lz"); + const u32 gMonBackPic_DeoxysDefense[] = INCBIN_U32("graphics/pokemon/deoxys/defense/back.4bpp.lz"); + const u32 gMonShinyPalette_DeoxysDefense[] = INCBIN_U32("graphics/pokemon/deoxys/defense/shiny.gbapal.lz"); + const u8 gMonIcon_DeoxysDefense[] = INCBIN_U8("graphics/pokemon/deoxys/defense/icon.4bpp"); + + const u32 gMonFrontPic_DeoxysSpeed[] = INCBIN_U32("graphics/pokemon/deoxys/speed/anim_front.4bpp.lz"); + const u32 gMonPalette_DeoxysSpeed[] = INCBIN_U32("graphics/pokemon/deoxys/speed/normal.gbapal.lz"); + const u32 gMonBackPic_DeoxysSpeed[] = INCBIN_U32("graphics/pokemon/deoxys/speed/back.4bpp.lz"); + const u32 gMonShinyPalette_DeoxysSpeed[] = INCBIN_U32("graphics/pokemon/deoxys/speed/shiny.gbapal.lz"); + const u8 gMonIcon_DeoxysSpeed[] = INCBIN_U8("graphics/pokemon/deoxys/speed/icon.4bpp"); +#endif //P_FAMILY_DEOXYS + +#if P_FAMILY_TURTWIG + const u32 gMonFrontPic_Turtwig[] = INCBIN_U32("graphics/pokemon/turtwig/anim_front.4bpp.lz"); + const u32 gMonPalette_Turtwig[] = INCBIN_U32("graphics/pokemon/turtwig/normal.gbapal.lz"); + const u32 gMonBackPic_Turtwig[] = INCBIN_U32("graphics/pokemon/turtwig/back.4bpp.lz"); + const u32 gMonShinyPalette_Turtwig[] = INCBIN_U32("graphics/pokemon/turtwig/shiny.gbapal.lz"); + const u8 gMonIcon_Turtwig[] = INCBIN_U8("graphics/pokemon/turtwig/icon.4bpp"); + const u8 gMonFootprint_Turtwig[] = INCBIN_U8("graphics/pokemon/turtwig/footprint.1bpp"); + + const u32 gMonFrontPic_Grotle[] = INCBIN_U32("graphics/pokemon/grotle/anim_front.4bpp.lz"); + const u32 gMonPalette_Grotle[] = INCBIN_U32("graphics/pokemon/grotle/normal.gbapal.lz"); + const u32 gMonBackPic_Grotle[] = INCBIN_U32("graphics/pokemon/grotle/back.4bpp.lz"); + const u32 gMonShinyPalette_Grotle[] = INCBIN_U32("graphics/pokemon/grotle/shiny.gbapal.lz"); + const u8 gMonIcon_Grotle[] = INCBIN_U8("graphics/pokemon/grotle/icon.4bpp"); + const u8 gMonFootprint_Grotle[] = INCBIN_U8("graphics/pokemon/grotle/footprint.1bpp"); + + const u32 gMonFrontPic_Torterra[] = INCBIN_U32("graphics/pokemon/torterra/anim_front.4bpp.lz"); + const u32 gMonPalette_Torterra[] = INCBIN_U32("graphics/pokemon/torterra/normal.gbapal.lz"); + const u32 gMonBackPic_Torterra[] = INCBIN_U32("graphics/pokemon/torterra/back.4bpp.lz"); + const u32 gMonShinyPalette_Torterra[] = INCBIN_U32("graphics/pokemon/torterra/shiny.gbapal.lz"); + const u8 gMonIcon_Torterra[] = INCBIN_U8("graphics/pokemon/torterra/icon.4bpp"); + const u8 gMonFootprint_Torterra[] = INCBIN_U8("graphics/pokemon/torterra/footprint.1bpp"); +#endif //P_FAMILY_TURTWIG + +#if P_FAMILY_CHIMCHAR + const u32 gMonFrontPic_Chimchar[] = INCBIN_U32("graphics/pokemon/chimchar/anim_front.4bpp.lz"); + const u32 gMonPalette_Chimchar[] = INCBIN_U32("graphics/pokemon/chimchar/normal.gbapal.lz"); + const u32 gMonBackPic_Chimchar[] = INCBIN_U32("graphics/pokemon/chimchar/back.4bpp.lz"); + const u32 gMonShinyPalette_Chimchar[] = INCBIN_U32("graphics/pokemon/chimchar/shiny.gbapal.lz"); + const u8 gMonIcon_Chimchar[] = INCBIN_U8("graphics/pokemon/chimchar/icon.4bpp"); + const u8 gMonFootprint_Chimchar[] = INCBIN_U8("graphics/pokemon/chimchar/footprint.1bpp"); + + const u32 gMonFrontPic_Monferno[] = INCBIN_U32("graphics/pokemon/monferno/anim_front.4bpp.lz"); + const u32 gMonPalette_Monferno[] = INCBIN_U32("graphics/pokemon/monferno/normal.gbapal.lz"); + const u32 gMonBackPic_Monferno[] = INCBIN_U32("graphics/pokemon/monferno/back.4bpp.lz"); + const u32 gMonShinyPalette_Monferno[] = INCBIN_U32("graphics/pokemon/monferno/shiny.gbapal.lz"); + const u8 gMonIcon_Monferno[] = INCBIN_U8("graphics/pokemon/monferno/icon.4bpp"); + const u8 gMonFootprint_Monferno[] = INCBIN_U8("graphics/pokemon/monferno/footprint.1bpp"); + + const u32 gMonFrontPic_Infernape[] = INCBIN_U32("graphics/pokemon/infernape/anim_front.4bpp.lz"); + const u32 gMonPalette_Infernape[] = INCBIN_U32("graphics/pokemon/infernape/normal.gbapal.lz"); + const u32 gMonBackPic_Infernape[] = INCBIN_U32("graphics/pokemon/infernape/back.4bpp.lz"); + const u32 gMonShinyPalette_Infernape[] = INCBIN_U32("graphics/pokemon/infernape/shiny.gbapal.lz"); + const u8 gMonIcon_Infernape[] = INCBIN_U8("graphics/pokemon/infernape/icon.4bpp"); + const u8 gMonFootprint_Infernape[] = INCBIN_U8("graphics/pokemon/infernape/footprint.1bpp"); +#endif //P_FAMILY_CHIMCHAR + +#if P_FAMILY_PIPLUP + const u32 gMonFrontPic_Piplup[] = INCBIN_U32("graphics/pokemon/piplup/anim_front.4bpp.lz"); + const u32 gMonPalette_Piplup[] = INCBIN_U32("graphics/pokemon/piplup/normal.gbapal.lz"); + const u32 gMonBackPic_Piplup[] = INCBIN_U32("graphics/pokemon/piplup/back.4bpp.lz"); + const u32 gMonShinyPalette_Piplup[] = INCBIN_U32("graphics/pokemon/piplup/shiny.gbapal.lz"); + const u8 gMonIcon_Piplup[] = INCBIN_U8("graphics/pokemon/piplup/icon.4bpp"); + const u8 gMonFootprint_Piplup[] = INCBIN_U8("graphics/pokemon/piplup/footprint.1bpp"); + + const u32 gMonFrontPic_Prinplup[] = INCBIN_U32("graphics/pokemon/prinplup/anim_front.4bpp.lz"); + const u32 gMonPalette_Prinplup[] = INCBIN_U32("graphics/pokemon/prinplup/normal.gbapal.lz"); + const u32 gMonBackPic_Prinplup[] = INCBIN_U32("graphics/pokemon/prinplup/back.4bpp.lz"); + const u32 gMonShinyPalette_Prinplup[] = INCBIN_U32("graphics/pokemon/prinplup/shiny.gbapal.lz"); + const u8 gMonIcon_Prinplup[] = INCBIN_U8("graphics/pokemon/prinplup/icon.4bpp"); + const u8 gMonFootprint_Prinplup[] = INCBIN_U8("graphics/pokemon/prinplup/footprint.1bpp"); + + const u32 gMonFrontPic_Empoleon[] = INCBIN_U32("graphics/pokemon/empoleon/anim_front.4bpp.lz"); + const u32 gMonPalette_Empoleon[] = INCBIN_U32("graphics/pokemon/empoleon/normal.gbapal.lz"); + const u32 gMonBackPic_Empoleon[] = INCBIN_U32("graphics/pokemon/empoleon/back.4bpp.lz"); + const u32 gMonShinyPalette_Empoleon[] = INCBIN_U32("graphics/pokemon/empoleon/shiny.gbapal.lz"); + const u8 gMonIcon_Empoleon[] = INCBIN_U8("graphics/pokemon/empoleon/icon.4bpp"); + const u8 gMonFootprint_Empoleon[] = INCBIN_U8("graphics/pokemon/empoleon/footprint.1bpp"); +#endif //P_FAMILY_PIPLUP + +#if P_FAMILY_STARLY + const u32 gMonFrontPic_Starly[] = INCBIN_U32("graphics/pokemon/starly/anim_front.4bpp.lz"); + const u32 gMonPalette_Starly[] = INCBIN_U32("graphics/pokemon/starly/normal.gbapal.lz"); + const u32 gMonBackPic_Starly[] = INCBIN_U32("graphics/pokemon/starly/back.4bpp.lz"); + const u32 gMonShinyPalette_Starly[] = INCBIN_U32("graphics/pokemon/starly/shiny.gbapal.lz"); + const u8 gMonIcon_Starly[] = INCBIN_U8("graphics/pokemon/starly/icon.4bpp"); + const u8 gMonFootprint_Starly[] = INCBIN_U8("graphics/pokemon/starly/footprint.1bpp"); + + const u32 gMonFrontPic_StarlyF[] = INCBIN_U32("graphics/pokemon/starly/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_StarlyF[] = INCBIN_U32("graphics/pokemon/starly/backf.4bpp.lz"); + + const u32 gMonFrontPic_Staravia[] = INCBIN_U32("graphics/pokemon/staravia/anim_front.4bpp.lz"); + const u32 gMonPalette_Staravia[] = INCBIN_U32("graphics/pokemon/staravia/normal.gbapal.lz"); + const u32 gMonBackPic_Staravia[] = INCBIN_U32("graphics/pokemon/staravia/back.4bpp.lz"); + const u32 gMonShinyPalette_Staravia[] = INCBIN_U32("graphics/pokemon/staravia/shiny.gbapal.lz"); + const u8 gMonIcon_Staravia[] = INCBIN_U8("graphics/pokemon/staravia/icon.4bpp"); + const u8 gMonFootprint_Staravia[] = INCBIN_U8("graphics/pokemon/staravia/footprint.1bpp"); + + const u32 gMonFrontPic_StaraviaF[] = INCBIN_U32("graphics/pokemon/staravia/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_StaraviaF[] = INCBIN_U32("graphics/pokemon/staravia/back.4bpp.lz"); + + const u32 gMonFrontPic_Staraptor[] = INCBIN_U32("graphics/pokemon/staraptor/anim_front.4bpp.lz"); + const u32 gMonPalette_Staraptor[] = INCBIN_U32("graphics/pokemon/staraptor/normal.gbapal.lz"); + const u32 gMonBackPic_Staraptor[] = INCBIN_U32("graphics/pokemon/staraptor/back.4bpp.lz"); + const u32 gMonShinyPalette_Staraptor[] = INCBIN_U32("graphics/pokemon/staraptor/shiny.gbapal.lz"); + const u8 gMonIcon_Staraptor[] = INCBIN_U8("graphics/pokemon/staraptor/icon.4bpp"); + const u8 gMonFootprint_Staraptor[] = INCBIN_U8("graphics/pokemon/staraptor/footprint.1bpp"); + + const u32 gMonFrontPic_StaraptorF[] = INCBIN_U32("graphics/pokemon/staraptor/anim_frontf.4bpp.lz"); +#endif //P_FAMILY_STARLY + +#if P_FAMILY_BIDOOF + const u32 gMonFrontPic_Bidoof[] = INCBIN_U32("graphics/pokemon/bidoof/anim_front.4bpp.lz"); + const u32 gMonPalette_Bidoof[] = INCBIN_U32("graphics/pokemon/bidoof/normal.gbapal.lz"); + const u32 gMonBackPic_Bidoof[] = INCBIN_U32("graphics/pokemon/bidoof/back.4bpp.lz"); + const u32 gMonShinyPalette_Bidoof[] = INCBIN_U32("graphics/pokemon/bidoof/shiny.gbapal.lz"); + const u8 gMonIcon_Bidoof[] = INCBIN_U8("graphics/pokemon/bidoof/icon.4bpp"); + const u8 gMonFootprint_Bidoof[] = INCBIN_U8("graphics/pokemon/bidoof/footprint.1bpp"); + + const u32 gMonFrontPic_BidoofF[] = INCBIN_U32("graphics/pokemon/bidoof/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_BidoofF[] = INCBIN_U32("graphics/pokemon/bidoof/backf.4bpp.lz"); + + const u32 gMonFrontPic_Bibarel[] = INCBIN_U32("graphics/pokemon/bibarel/anim_front.4bpp.lz"); + const u32 gMonPalette_Bibarel[] = INCBIN_U32("graphics/pokemon/bibarel/normal.gbapal.lz"); + const u32 gMonBackPic_Bibarel[] = INCBIN_U32("graphics/pokemon/bibarel/back.4bpp.lz"); + const u32 gMonShinyPalette_Bibarel[] = INCBIN_U32("graphics/pokemon/bibarel/shiny.gbapal.lz"); + const u8 gMonIcon_Bibarel[] = INCBIN_U8("graphics/pokemon/bibarel/icon.4bpp"); + const u8 gMonFootprint_Bibarel[] = INCBIN_U8("graphics/pokemon/bibarel/footprint.1bpp"); + + const u32 gMonFrontPic_BibarelF[] = INCBIN_U32("graphics/pokemon/bibarel/anim_frontf.4bpp.lz"); +#endif //P_FAMILY_BIDOOF + +#if P_FAMILY_KRICKETOT + const u32 gMonFrontPic_Kricketot[] = INCBIN_U32("graphics/pokemon/kricketot/anim_front.4bpp.lz"); + const u32 gMonPalette_Kricketot[] = INCBIN_U32("graphics/pokemon/kricketot/normal.gbapal.lz"); + const u32 gMonBackPic_Kricketot[] = INCBIN_U32("graphics/pokemon/kricketot/back.4bpp.lz"); + const u32 gMonShinyPalette_Kricketot[] = INCBIN_U32("graphics/pokemon/kricketot/shiny.gbapal.lz"); + const u8 gMonIcon_Kricketot[] = INCBIN_U8("graphics/pokemon/kricketot/icon.4bpp"); + const u8 gMonFootprint_Kricketot[] = INCBIN_U8("graphics/pokemon/kricketot/footprint.1bpp"); + + const u32 gMonFrontPic_KricketotF[] = INCBIN_U32("graphics/pokemon/kricketot/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_KricketotF[] = INCBIN_U32("graphics/pokemon/kricketot/backf.4bpp.lz"); + + const u32 gMonFrontPic_Kricketune[] = INCBIN_U32("graphics/pokemon/kricketune/anim_front.4bpp.lz"); + const u32 gMonPalette_Kricketune[] = INCBIN_U32("graphics/pokemon/kricketune/normal.gbapal.lz"); + const u32 gMonBackPic_Kricketune[] = INCBIN_U32("graphics/pokemon/kricketune/back.4bpp.lz"); + const u32 gMonShinyPalette_Kricketune[] = INCBIN_U32("graphics/pokemon/kricketune/shiny.gbapal.lz"); + const u8 gMonIcon_Kricketune[] = INCBIN_U8("graphics/pokemon/kricketune/icon.4bpp"); + const u8 gMonFootprint_Kricketune[] = INCBIN_U8("graphics/pokemon/kricketune/footprint.1bpp"); + + const u32 gMonFrontPic_KricketuneF[] = INCBIN_U32("graphics/pokemon/kricketune/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_KricketuneF[] = INCBIN_U32("graphics/pokemon/kricketune/backf.4bpp.lz"); +#endif //P_FAMILY_KRICKETOT + +#if P_FAMILY_SHINX + const u32 gMonFrontPic_Shinx[] = INCBIN_U32("graphics/pokemon/shinx/anim_front.4bpp.lz"); + const u32 gMonPalette_Shinx[] = INCBIN_U32("graphics/pokemon/shinx/normal.gbapal.lz"); + const u32 gMonBackPic_Shinx[] = INCBIN_U32("graphics/pokemon/shinx/back.4bpp.lz"); + const u32 gMonShinyPalette_Shinx[] = INCBIN_U32("graphics/pokemon/shinx/shiny.gbapal.lz"); + const u8 gMonIcon_Shinx[] = INCBIN_U8("graphics/pokemon/shinx/icon.4bpp"); + const u8 gMonFootprint_Shinx[] = INCBIN_U8("graphics/pokemon/shinx/footprint.1bpp"); + + const u32 gMonFrontPic_ShinxF[] = INCBIN_U32("graphics/pokemon/shinx/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_ShinxF[] = INCBIN_U32("graphics/pokemon/shinx/backf.4bpp.lz"); + + const u32 gMonFrontPic_Luxio[] = INCBIN_U32("graphics/pokemon/luxio/anim_front.4bpp.lz"); + const u32 gMonPalette_Luxio[] = INCBIN_U32("graphics/pokemon/luxio/normal.gbapal.lz"); + const u32 gMonBackPic_Luxio[] = INCBIN_U32("graphics/pokemon/luxio/back.4bpp.lz"); + const u32 gMonShinyPalette_Luxio[] = INCBIN_U32("graphics/pokemon/luxio/shiny.gbapal.lz"); + const u8 gMonIcon_Luxio[] = INCBIN_U8("graphics/pokemon/luxio/icon.4bpp"); + const u8 gMonFootprint_Luxio[] = INCBIN_U8("graphics/pokemon/luxio/footprint.1bpp"); + + const u32 gMonFrontPic_LuxioF[] = INCBIN_U32("graphics/pokemon/luxio/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_LuxioF[] = INCBIN_U32("graphics/pokemon/luxio/backf.4bpp.lz"); + + const u32 gMonFrontPic_Luxray[] = INCBIN_U32("graphics/pokemon/luxray/anim_front.4bpp.lz"); + const u32 gMonPalette_Luxray[] = INCBIN_U32("graphics/pokemon/luxray/normal.gbapal.lz"); + const u32 gMonBackPic_Luxray[] = INCBIN_U32("graphics/pokemon/luxray/back.4bpp.lz"); + const u32 gMonShinyPalette_Luxray[] = INCBIN_U32("graphics/pokemon/luxray/shiny.gbapal.lz"); + const u8 gMonIcon_Luxray[] = INCBIN_U8("graphics/pokemon/luxray/icon.4bpp"); + const u8 gMonFootprint_Luxray[] = INCBIN_U8("graphics/pokemon/luxray/footprint.1bpp"); + + const u32 gMonFrontPic_LuxrayF[] = INCBIN_U32("graphics/pokemon/luxray/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_LuxrayF[] = INCBIN_U32("graphics/pokemon/luxray/backf.4bpp.lz"); +#endif //P_FAMILY_SHINX + +#if P_FAMILY_CRANIDOS + const u32 gMonFrontPic_Cranidos[] = INCBIN_U32("graphics/pokemon/cranidos/anim_front.4bpp.lz"); + const u32 gMonPalette_Cranidos[] = INCBIN_U32("graphics/pokemon/cranidos/normal.gbapal.lz"); + const u32 gMonBackPic_Cranidos[] = INCBIN_U32("graphics/pokemon/cranidos/back.4bpp.lz"); + const u32 gMonShinyPalette_Cranidos[] = INCBIN_U32("graphics/pokemon/cranidos/shiny.gbapal.lz"); + const u8 gMonIcon_Cranidos[] = INCBIN_U8("graphics/pokemon/cranidos/icon.4bpp"); + const u8 gMonFootprint_Cranidos[] = INCBIN_U8("graphics/pokemon/cranidos/footprint.1bpp"); + + const u32 gMonFrontPic_Rampardos[] = INCBIN_U32("graphics/pokemon/rampardos/anim_front.4bpp.lz"); + const u32 gMonPalette_Rampardos[] = INCBIN_U32("graphics/pokemon/rampardos/normal.gbapal.lz"); + const u32 gMonBackPic_Rampardos[] = INCBIN_U32("graphics/pokemon/rampardos/back.4bpp.lz"); + const u32 gMonShinyPalette_Rampardos[] = INCBIN_U32("graphics/pokemon/rampardos/shiny.gbapal.lz"); + const u8 gMonIcon_Rampardos[] = INCBIN_U8("graphics/pokemon/rampardos/icon.4bpp"); + const u8 gMonFootprint_Rampardos[] = INCBIN_U8("graphics/pokemon/rampardos/footprint.1bpp"); +#endif //P_FAMILY_CRANIDOS + +#if P_FAMILY_SHIELDON + const u32 gMonFrontPic_Shieldon[] = INCBIN_U32("graphics/pokemon/shieldon/anim_front.4bpp.lz"); + const u32 gMonPalette_Shieldon[] = INCBIN_U32("graphics/pokemon/shieldon/normal.gbapal.lz"); + const u32 gMonBackPic_Shieldon[] = INCBIN_U32("graphics/pokemon/shieldon/back.4bpp.lz"); + const u32 gMonShinyPalette_Shieldon[] = INCBIN_U32("graphics/pokemon/shieldon/shiny.gbapal.lz"); + const u8 gMonIcon_Shieldon[] = INCBIN_U8("graphics/pokemon/shieldon/icon.4bpp"); + const u8 gMonFootprint_Shieldon[] = INCBIN_U8("graphics/pokemon/shieldon/footprint.1bpp"); + + const u32 gMonFrontPic_Bastiodon[] = INCBIN_U32("graphics/pokemon/bastiodon/anim_front.4bpp.lz"); + const u32 gMonPalette_Bastiodon[] = INCBIN_U32("graphics/pokemon/bastiodon/normal.gbapal.lz"); + const u32 gMonBackPic_Bastiodon[] = INCBIN_U32("graphics/pokemon/bastiodon/back.4bpp.lz"); + const u32 gMonShinyPalette_Bastiodon[] = INCBIN_U32("graphics/pokemon/bastiodon/shiny.gbapal.lz"); + const u8 gMonIcon_Bastiodon[] = INCBIN_U8("graphics/pokemon/bastiodon/icon.4bpp"); + const u8 gMonFootprint_Bastiodon[] = INCBIN_U8("graphics/pokemon/bastiodon/footprint.1bpp"); +#endif //P_FAMILY_SHIELDON + +#if P_FAMILY_BURMY + const u32 gMonFrontPic_BurmyPlantCloak[] = INCBIN_U32("graphics/pokemon/burmy/anim_front.4bpp.lz"); + const u32 gMonPalette_BurmyPlantCloak[] = INCBIN_U32("graphics/pokemon/burmy/normal.gbapal.lz"); + const u32 gMonBackPic_BurmyPlantCloak[] = INCBIN_U32("graphics/pokemon/burmy/back.4bpp.lz"); + const u32 gMonShinyPalette_BurmyPlantCloak[] = INCBIN_U32("graphics/pokemon/burmy/shiny.gbapal.lz"); + const u8 gMonIcon_BurmyPlantCloak[] = INCBIN_U8("graphics/pokemon/burmy/icon.4bpp"); + const u8 gMonFootprint_Burmy[] = INCBIN_U8("graphics/pokemon/burmy/plant/footprint.1bpp"); + + const u32 gMonFrontPic_BurmySandyCloak[] = INCBIN_U32("graphics/pokemon/burmy/sandy_cloak/anim_front.4bpp.lz"); + const u32 gMonPalette_BurmySandyCloak[] = INCBIN_U32("graphics/pokemon/burmy/sandy_cloak/normal.gbapal.lz"); + const u32 gMonBackPic_BurmySandyCloak[] = INCBIN_U32("graphics/pokemon/burmy/sandy_cloak/back.4bpp.lz"); + const u32 gMonShinyPalette_BurmySandyCloak[] = INCBIN_U32("graphics/pokemon/burmy/sandy_cloak/shiny.gbapal.lz"); + const u8 gMonIcon_BurmySandyCloak[] = INCBIN_U8("graphics/pokemon/burmy/sandy_cloak/icon.4bpp"); + + const u32 gMonFrontPic_BurmyTrashCloak[] = INCBIN_U32("graphics/pokemon/burmy/trash_cloak/anim_front.4bpp.lz"); + const u32 gMonPalette_BurmyTrashCloak[] = INCBIN_U32("graphics/pokemon/burmy/trash_cloak/normal.gbapal.lz"); + const u32 gMonBackPic_BurmyTrashCloak[] = INCBIN_U32("graphics/pokemon/burmy/trash_cloak/back.4bpp.lz"); + const u32 gMonShinyPalette_BurmyTrashCloak[] = INCBIN_U32("graphics/pokemon/burmy/trash_cloak/shiny.gbapal.lz"); + const u8 gMonIcon_BurmyTrashCloak[] = INCBIN_U8("graphics/pokemon/burmy/trash_cloak/icon.4bpp"); + + const u32 gMonFrontPic_WormadamPlantCloak[] = INCBIN_U32("graphics/pokemon/wormadam/anim_front.4bpp.lz"); + const u32 gMonPalette_WormadamPlantCloak[] = INCBIN_U32("graphics/pokemon/wormadam/normal.gbapal.lz"); + const u32 gMonBackPic_WormadamPlantCloak[] = INCBIN_U32("graphics/pokemon/wormadam/back.4bpp.lz"); + const u32 gMonShinyPalette_WormadamPlantCloak[] = INCBIN_U32("graphics/pokemon/wormadam/shiny.gbapal.lz"); + const u8 gMonIcon_WormadamPlantCloak[] = INCBIN_U8("graphics/pokemon/wormadam/icon.4bpp"); + const u8 gMonFootprint_Wormadam[] = INCBIN_U8("graphics/pokemon/wormadam/plant/footprint.1bpp"); + + const u32 gMonFrontPic_WormadamSandyCloak[] = INCBIN_U32("graphics/pokemon/wormadam/sandy_cloak/anim_front.4bpp.lz"); + const u32 gMonPalette_WormadamSandyCloak[] = INCBIN_U32("graphics/pokemon/wormadam/sandy_cloak/normal.gbapal.lz"); + const u32 gMonBackPic_WormadamSandyCloak[] = INCBIN_U32("graphics/pokemon/wormadam/sandy_cloak/back.4bpp.lz"); + const u32 gMonShinyPalette_WormadamSandyCloak[] = INCBIN_U32("graphics/pokemon/wormadam/sandy_cloak/shiny.gbapal.lz"); + const u8 gMonIcon_WormadamSandyCloak[] = INCBIN_U8("graphics/pokemon/wormadam/sandy_cloak/icon.4bpp"); + + const u32 gMonFrontPic_WormadamTrashCloak[] = INCBIN_U32("graphics/pokemon/wormadam/trash_cloak/anim_front.4bpp.lz"); + const u32 gMonPalette_WormadamTrashCloak[] = INCBIN_U32("graphics/pokemon/wormadam/trash_cloak/normal.gbapal.lz"); + const u32 gMonBackPic_WormadamTrashCloak[] = INCBIN_U32("graphics/pokemon/wormadam/trash_cloak/back.4bpp.lz"); + const u32 gMonShinyPalette_WormadamTrashCloak[] = INCBIN_U32("graphics/pokemon/wormadam/trash_cloak/shiny.gbapal.lz"); + const u8 gMonIcon_WormadamTrashCloak[] = INCBIN_U8("graphics/pokemon/wormadam/trash_cloak/icon.4bpp"); + + const u32 gMonFrontPic_Mothim[] = INCBIN_U32("graphics/pokemon/mothim/anim_front.4bpp.lz"); + const u32 gMonPalette_Mothim[] = INCBIN_U32("graphics/pokemon/mothim/normal.gbapal.lz"); + const u32 gMonBackPic_Mothim[] = INCBIN_U32("graphics/pokemon/mothim/back.4bpp.lz"); + const u32 gMonShinyPalette_Mothim[] = INCBIN_U32("graphics/pokemon/mothim/shiny.gbapal.lz"); + const u8 gMonIcon_Mothim[] = INCBIN_U8("graphics/pokemon/mothim/icon.4bpp"); + const u8 gMonFootprint_Mothim[] = INCBIN_U8("graphics/pokemon/mothim/footprint.1bpp"); +#endif //P_FAMILY_BURMY + +#if P_FAMILY_COMBEE + const u32 gMonFrontPic_Combee[] = INCBIN_U32("graphics/pokemon/combee/anim_front.4bpp.lz"); + const u32 gMonPalette_Combee[] = INCBIN_U32("graphics/pokemon/combee/normal.gbapal.lz"); + const u32 gMonBackPic_Combee[] = INCBIN_U32("graphics/pokemon/combee/back.4bpp.lz"); + const u32 gMonShinyPalette_Combee[] = INCBIN_U32("graphics/pokemon/combee/shiny.gbapal.lz"); + const u8 gMonIcon_Combee[] = INCBIN_U8("graphics/pokemon/combee/icon.4bpp"); + const u8 gMonFootprint_Combee[] = INCBIN_U8("graphics/pokemon/combee/footprint.1bpp"); + + const u32 gMonPalette_CombeeF[] = INCBIN_U32("graphics/pokemon/combee/normalf.gbapal.lz"); + const u32 gMonShinyPalette_CombeeF[] = INCBIN_U32("graphics/pokemon/combee/shinyf.gbapal.lz"); + + const u32 gMonFrontPic_Vespiquen[] = INCBIN_U32("graphics/pokemon/vespiquen/anim_front.4bpp.lz"); + const u32 gMonPalette_Vespiquen[] = INCBIN_U32("graphics/pokemon/vespiquen/normal.gbapal.lz"); + const u32 gMonBackPic_Vespiquen[] = INCBIN_U32("graphics/pokemon/vespiquen/back.4bpp.lz"); + const u32 gMonShinyPalette_Vespiquen[] = INCBIN_U32("graphics/pokemon/vespiquen/shiny.gbapal.lz"); + const u8 gMonIcon_Vespiquen[] = INCBIN_U8("graphics/pokemon/vespiquen/icon.4bpp"); + const u8 gMonFootprint_Vespiquen[] = INCBIN_U8("graphics/pokemon/vespiquen/footprint.1bpp"); +#endif //P_FAMILY_COMBEE + +#if P_FAMILY_PACHIRISU + const u32 gMonFrontPic_Pachirisu[] = INCBIN_U32("graphics/pokemon/pachirisu/anim_front.4bpp.lz"); + const u32 gMonPalette_Pachirisu[] = INCBIN_U32("graphics/pokemon/pachirisu/normal.gbapal.lz"); + const u32 gMonBackPic_Pachirisu[] = INCBIN_U32("graphics/pokemon/pachirisu/back.4bpp.lz"); + const u32 gMonShinyPalette_Pachirisu[] = INCBIN_U32("graphics/pokemon/pachirisu/shiny.gbapal.lz"); + const u8 gMonIcon_Pachirisu[] = INCBIN_U8("graphics/pokemon/pachirisu/icon.4bpp"); + const u8 gMonFootprint_Pachirisu[] = INCBIN_U8("graphics/pokemon/pachirisu/footprint.1bpp"); + + const u32 gMonFrontPic_PachirisuF[] = INCBIN_U32("graphics/pokemon/pachirisu/anim_frontf.4bpp.lz"); +#endif //P_FAMILY_PACHIRISU + +#if P_FAMILY_BUIZEL + const u32 gMonFrontPic_Buizel[] = INCBIN_U32("graphics/pokemon/buizel/anim_front.4bpp.lz"); + const u32 gMonPalette_Buizel[] = INCBIN_U32("graphics/pokemon/buizel/normal.gbapal.lz"); + const u32 gMonBackPic_Buizel[] = INCBIN_U32("graphics/pokemon/buizel/back.4bpp.lz"); + const u32 gMonShinyPalette_Buizel[] = INCBIN_U32("graphics/pokemon/buizel/shiny.gbapal.lz"); + const u8 gMonIcon_Buizel[] = INCBIN_U8("graphics/pokemon/buizel/icon.4bpp"); + const u8 gMonFootprint_Buizel[] = INCBIN_U8("graphics/pokemon/buizel/footprint.1bpp"); + + const u32 gMonBackPic_BuizelF[] = INCBIN_U32("graphics/pokemon/buizel/backf.4bpp.lz"); + + const u32 gMonFrontPic_Floatzel[] = INCBIN_U32("graphics/pokemon/floatzel/anim_front.4bpp.lz"); + const u32 gMonPalette_Floatzel[] = INCBIN_U32("graphics/pokemon/floatzel/normal.gbapal.lz"); + const u32 gMonBackPic_Floatzel[] = INCBIN_U32("graphics/pokemon/floatzel/back.4bpp.lz"); + const u32 gMonShinyPalette_Floatzel[] = INCBIN_U32("graphics/pokemon/floatzel/shiny.gbapal.lz"); + const u8 gMonIcon_Floatzel[] = INCBIN_U8("graphics/pokemon/floatzel/icon.4bpp"); + const u8 gMonFootprint_Floatzel[] = INCBIN_U8("graphics/pokemon/floatzel/footprint.1bpp"); + + const u32 gMonBackPic_FloatzelF[] = INCBIN_U32("graphics/pokemon/floatzel/backf.4bpp.lz"); +#endif //P_FAMILY_BUIZEL + +#if P_FAMILY_CHERUBI + const u32 gMonFrontPic_Cherubi[] = INCBIN_U32("graphics/pokemon/cherubi/anim_front.4bpp.lz"); + const u32 gMonPalette_Cherubi[] = INCBIN_U32("graphics/pokemon/cherubi/normal.gbapal.lz"); + const u32 gMonBackPic_Cherubi[] = INCBIN_U32("graphics/pokemon/cherubi/back.4bpp.lz"); + const u32 gMonShinyPalette_Cherubi[] = INCBIN_U32("graphics/pokemon/cherubi/shiny.gbapal.lz"); + const u8 gMonIcon_Cherubi[] = INCBIN_U8("graphics/pokemon/cherubi/icon.4bpp"); + const u8 gMonFootprint_Cherubi[] = INCBIN_U8("graphics/pokemon/cherubi/footprint.1bpp"); + + const u32 gMonFrontPic_CherrimOvercast[] = INCBIN_U32("graphics/pokemon/cherrim/anim_front.4bpp.lz"); + const u32 gMonPalette_CherrimOvercast[] = INCBIN_U32("graphics/pokemon/cherrim/normal.gbapal.lz"); + const u32 gMonBackPic_CherrimOvercast[] = INCBIN_U32("graphics/pokemon/cherrim/back.4bpp.lz"); + const u32 gMonShinyPalette_CherrimOvercast[] = INCBIN_U32("graphics/pokemon/cherrim/shiny.gbapal.lz"); + const u8 gMonIcon_CherrimOvercast[] = INCBIN_U8("graphics/pokemon/cherrim/icon.4bpp"); + const u8 gMonFootprint_Cherrim[] = INCBIN_U8("graphics/pokemon/cherrim/footprint.1bpp"); + + const u32 gMonFrontPic_CherrimSunshine[] = INCBIN_U32("graphics/pokemon/cherrim/sunshine/anim_front.4bpp.lz"); + const u32 gMonPalette_CherrimSunshine[] = INCBIN_U32("graphics/pokemon/cherrim/sunshine/normal.gbapal.lz"); + const u32 gMonBackPic_CherrimSunshine[] = INCBIN_U32("graphics/pokemon/cherrim/sunshine/back.4bpp.lz"); + const u32 gMonShinyPalette_CherrimSunshine[] = INCBIN_U32("graphics/pokemon/cherrim/sunshine/shiny.gbapal.lz"); + const u8 gMonIcon_CherrimSunshine[] = INCBIN_U8("graphics/pokemon/cherrim/sunshine/icon.4bpp"); +#endif //P_FAMILY_CHERUBI + +#if P_FAMILY_SHELLOS + const u32 gMonFrontPic_ShellosWestSea[] = INCBIN_U32("graphics/pokemon/shellos/anim_front.4bpp.lz"); + const u32 gMonPalette_ShellosWestSea[] = INCBIN_U32("graphics/pokemon/shellos/normal.gbapal.lz"); + const u32 gMonBackPic_ShellosWestSea[] = INCBIN_U32("graphics/pokemon/shellos/back.4bpp.lz"); + const u32 gMonShinyPalette_ShellosWestSea[] = INCBIN_U32("graphics/pokemon/shellos/shiny.gbapal.lz"); + const u8 gMonIcon_ShellosWestSea[] = INCBIN_U8("graphics/pokemon/shellos/icon.4bpp"); + const u8 gMonFootprint_Shellos[] = INCBIN_U8("graphics/pokemon/shellos/footprint.1bpp"); + + const u32 gMonFrontPic_ShellosEastSea[] = INCBIN_U32("graphics/pokemon/shellos/east_sea/anim_front.4bpp.lz"); + const u32 gMonPalette_ShellosEastSea[] = INCBIN_U32("graphics/pokemon/shellos/east_sea/normal.gbapal.lz"); + const u32 gMonBackPic_ShellosEastSea[] = INCBIN_U32("graphics/pokemon/shellos/east_sea/back.4bpp.lz"); + const u32 gMonShinyPalette_ShellosEastSea[] = INCBIN_U32("graphics/pokemon/shellos/east_sea/shiny.gbapal.lz"); + const u8 gMonIcon_ShellosEastSea[] = INCBIN_U8("graphics/pokemon/shellos/east_sea/icon.4bpp"); + + const u32 gMonFrontPic_GastrodonWestSea[] = INCBIN_U32("graphics/pokemon/gastrodon/anim_front.4bpp.lz"); + const u32 gMonPalette_GastrodonWestSea[] = INCBIN_U32("graphics/pokemon/gastrodon/normal.gbapal.lz"); + const u32 gMonBackPic_GastrodonWestSea[] = INCBIN_U32("graphics/pokemon/gastrodon/back.4bpp.lz"); + const u32 gMonShinyPalette_GastrodonWestSea[] = INCBIN_U32("graphics/pokemon/gastrodon/shiny.gbapal.lz"); + const u8 gMonIcon_GastrodonWestSea[] = INCBIN_U8("graphics/pokemon/gastrodon/icon.4bpp"); + const u8 gMonFootprint_Gastrodon[] = INCBIN_U8("graphics/pokemon/gastrodon/footprint.1bpp"); + + const u32 gMonFrontPic_GastrodonEastSea[] = INCBIN_U32("graphics/pokemon/gastrodon/east_sea/anim_front.4bpp.lz"); + const u32 gMonPalette_GastrodonEastSea[] = INCBIN_U32("graphics/pokemon/gastrodon/east_sea/normal.gbapal.lz"); + const u32 gMonBackPic_GastrodonEastSea[] = INCBIN_U32("graphics/pokemon/gastrodon/east_sea/back.4bpp.lz"); + const u32 gMonShinyPalette_GastrodonEastSea[] = INCBIN_U32("graphics/pokemon/gastrodon/east_sea/shiny.gbapal.lz"); + const u8 gMonIcon_GastrodonEastSea[] = INCBIN_U8("graphics/pokemon/gastrodon/east_sea/icon.4bpp"); +#endif //P_FAMILY_SHELLOS + +#if P_FAMILY_DRIFLOON + const u32 gMonFrontPic_Drifloon[] = INCBIN_U32("graphics/pokemon/drifloon/anim_front.4bpp.lz"); + const u32 gMonPalette_Drifloon[] = INCBIN_U32("graphics/pokemon/drifloon/normal.gbapal.lz"); + const u32 gMonBackPic_Drifloon[] = INCBIN_U32("graphics/pokemon/drifloon/back.4bpp.lz"); + const u32 gMonShinyPalette_Drifloon[] = INCBIN_U32("graphics/pokemon/drifloon/shiny.gbapal.lz"); + const u8 gMonIcon_Drifloon[] = INCBIN_U8("graphics/pokemon/drifloon/icon.4bpp"); + const u8 gMonFootprint_Drifloon[] = INCBIN_U8("graphics/pokemon/drifloon/footprint.1bpp"); + + const u32 gMonFrontPic_Drifblim[] = INCBIN_U32("graphics/pokemon/drifblim/anim_front.4bpp.lz"); + const u32 gMonPalette_Drifblim[] = INCBIN_U32("graphics/pokemon/drifblim/normal.gbapal.lz"); + const u32 gMonBackPic_Drifblim[] = INCBIN_U32("graphics/pokemon/drifblim/back.4bpp.lz"); + const u32 gMonShinyPalette_Drifblim[] = INCBIN_U32("graphics/pokemon/drifblim/shiny.gbapal.lz"); + const u8 gMonIcon_Drifblim[] = INCBIN_U8("graphics/pokemon/drifblim/icon.4bpp"); + const u8 gMonFootprint_Drifblim[] = INCBIN_U8("graphics/pokemon/drifblim/footprint.1bpp"); +#endif //P_FAMILY_DRIFLOON + +#if P_FAMILY_BUNEARY + const u32 gMonFrontPic_Buneary[] = INCBIN_U32("graphics/pokemon/buneary/anim_front.4bpp.lz"); + const u32 gMonPalette_Buneary[] = INCBIN_U32("graphics/pokemon/buneary/normal.gbapal.lz"); + const u32 gMonBackPic_Buneary[] = INCBIN_U32("graphics/pokemon/buneary/back.4bpp.lz"); + const u32 gMonShinyPalette_Buneary[] = INCBIN_U32("graphics/pokemon/buneary/shiny.gbapal.lz"); + const u8 gMonIcon_Buneary[] = INCBIN_U8("graphics/pokemon/buneary/icon.4bpp"); + const u8 gMonFootprint_Buneary[] = INCBIN_U8("graphics/pokemon/buneary/footprint.1bpp"); + + const u32 gMonFrontPic_Lopunny[] = INCBIN_U32("graphics/pokemon/lopunny/anim_front.4bpp.lz"); + const u32 gMonPalette_Lopunny[] = INCBIN_U32("graphics/pokemon/lopunny/normal.gbapal.lz"); + const u32 gMonBackPic_Lopunny[] = INCBIN_U32("graphics/pokemon/lopunny/back.4bpp.lz"); + const u32 gMonShinyPalette_Lopunny[] = INCBIN_U32("graphics/pokemon/lopunny/shiny.gbapal.lz"); + const u8 gMonIcon_Lopunny[] = INCBIN_U8("graphics/pokemon/lopunny/icon.4bpp"); + const u8 gMonFootprint_Lopunny[] = INCBIN_U8("graphics/pokemon/lopunny/footprint.1bpp"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_LopunnyMega[] = INCBIN_U32("graphics/pokemon/lopunny/mega/front.4bpp.lz"); + const u32 gMonPalette_LopunnyMega[] = INCBIN_U32("graphics/pokemon/lopunny/mega/normal.gbapal.lz"); + const u32 gMonBackPic_LopunnyMega[] = INCBIN_U32("graphics/pokemon/lopunny/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_LopunnyMega[] = INCBIN_U32("graphics/pokemon/lopunny/mega/shiny.gbapal.lz"); + const u8 gMonIcon_LopunnyMega[] = INCBIN_U8("graphics/pokemon/lopunny/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_BUNEARY + +#if P_FAMILY_GLAMEOW + const u32 gMonFrontPic_Glameow[] = INCBIN_U32("graphics/pokemon/glameow/anim_front.4bpp.lz"); + const u32 gMonPalette_Glameow[] = INCBIN_U32("graphics/pokemon/glameow/normal.gbapal.lz"); + const u32 gMonBackPic_Glameow[] = INCBIN_U32("graphics/pokemon/glameow/back.4bpp.lz"); + const u32 gMonShinyPalette_Glameow[] = INCBIN_U32("graphics/pokemon/glameow/shiny.gbapal.lz"); + const u8 gMonIcon_Glameow[] = INCBIN_U8("graphics/pokemon/glameow/icon.4bpp"); + const u8 gMonFootprint_Glameow[] = INCBIN_U8("graphics/pokemon/glameow/footprint.1bpp"); + + const u32 gMonFrontPic_Purugly[] = INCBIN_U32("graphics/pokemon/purugly/anim_front.4bpp.lz"); + const u32 gMonPalette_Purugly[] = INCBIN_U32("graphics/pokemon/purugly/normal.gbapal.lz"); + const u32 gMonBackPic_Purugly[] = INCBIN_U32("graphics/pokemon/purugly/back.4bpp.lz"); + const u32 gMonShinyPalette_Purugly[] = INCBIN_U32("graphics/pokemon/purugly/shiny.gbapal.lz"); + const u8 gMonIcon_Purugly[] = INCBIN_U8("graphics/pokemon/purugly/icon.4bpp"); + const u8 gMonFootprint_Purugly[] = INCBIN_U8("graphics/pokemon/purugly/footprint.1bpp"); +#endif //P_FAMILY_GLAMEOW + +#if P_FAMILY_STUNKY + const u32 gMonFrontPic_Stunky[] = INCBIN_U32("graphics/pokemon/stunky/anim_front.4bpp.lz"); + const u32 gMonPalette_Stunky[] = INCBIN_U32("graphics/pokemon/stunky/normal.gbapal.lz"); + const u32 gMonBackPic_Stunky[] = INCBIN_U32("graphics/pokemon/stunky/back.4bpp.lz"); + const u32 gMonShinyPalette_Stunky[] = INCBIN_U32("graphics/pokemon/stunky/shiny.gbapal.lz"); + const u8 gMonIcon_Stunky[] = INCBIN_U8("graphics/pokemon/stunky/icon.4bpp"); + const u8 gMonFootprint_Stunky[] = INCBIN_U8("graphics/pokemon/stunky/footprint.1bpp"); + + const u32 gMonFrontPic_Skuntank[] = INCBIN_U32("graphics/pokemon/skuntank/anim_front.4bpp.lz"); + const u32 gMonPalette_Skuntank[] = INCBIN_U32("graphics/pokemon/skuntank/normal.gbapal.lz"); + const u32 gMonBackPic_Skuntank[] = INCBIN_U32("graphics/pokemon/skuntank/back.4bpp.lz"); + const u32 gMonShinyPalette_Skuntank[] = INCBIN_U32("graphics/pokemon/skuntank/shiny.gbapal.lz"); + const u8 gMonIcon_Skuntank[] = INCBIN_U8("graphics/pokemon/skuntank/icon.4bpp"); + const u8 gMonFootprint_Skuntank[] = INCBIN_U8("graphics/pokemon/skuntank/footprint.1bpp"); +#endif //P_FAMILY_STUNKY + +#if P_FAMILY_BRONZOR + const u32 gMonFrontPic_Bronzor[] = INCBIN_U32("graphics/pokemon/bronzor/anim_front.4bpp.lz"); + const u32 gMonPalette_Bronzor[] = INCBIN_U32("graphics/pokemon/bronzor/normal.gbapal.lz"); + const u32 gMonBackPic_Bronzor[] = INCBIN_U32("graphics/pokemon/bronzor/back.4bpp.lz"); + const u32 gMonShinyPalette_Bronzor[] = INCBIN_U32("graphics/pokemon/bronzor/shiny.gbapal.lz"); + const u8 gMonIcon_Bronzor[] = INCBIN_U8("graphics/pokemon/bronzor/icon.4bpp"); + const u8 gMonFootprint_Bronzor[] = INCBIN_U8("graphics/pokemon/bronzor/footprint.1bpp"); + + const u32 gMonFrontPic_Bronzong[] = INCBIN_U32("graphics/pokemon/bronzong/anim_front.4bpp.lz"); + const u32 gMonPalette_Bronzong[] = INCBIN_U32("graphics/pokemon/bronzong/normal.gbapal.lz"); + const u32 gMonBackPic_Bronzong[] = INCBIN_U32("graphics/pokemon/bronzong/back.4bpp.lz"); + const u32 gMonShinyPalette_Bronzong[] = INCBIN_U32("graphics/pokemon/bronzong/shiny.gbapal.lz"); + const u8 gMonIcon_Bronzong[] = INCBIN_U8("graphics/pokemon/bronzong/icon.4bpp"); + const u8 gMonFootprint_Bronzong[] = INCBIN_U8("graphics/pokemon/bronzong/footprint.1bpp"); +#endif //P_FAMILY_BRONZOR + +#if P_FAMILY_CHATOT + const u32 gMonFrontPic_Chatot[] = INCBIN_U32("graphics/pokemon/chatot/anim_front.4bpp.lz"); + const u32 gMonPalette_Chatot[] = INCBIN_U32("graphics/pokemon/chatot/normal.gbapal.lz"); + const u32 gMonBackPic_Chatot[] = INCBIN_U32("graphics/pokemon/chatot/back.4bpp.lz"); + const u32 gMonShinyPalette_Chatot[] = INCBIN_U32("graphics/pokemon/chatot/shiny.gbapal.lz"); + const u8 gMonIcon_Chatot[] = INCBIN_U8("graphics/pokemon/chatot/icon.4bpp"); + const u8 gMonFootprint_Chatot[] = INCBIN_U8("graphics/pokemon/chatot/footprint.1bpp"); +#endif //P_FAMILY_CHATOT + +#if P_FAMILY_SPIRITOMB + const u32 gMonFrontPic_Spiritomb[] = INCBIN_U32("graphics/pokemon/spiritomb/anim_front.4bpp.lz"); + const u32 gMonPalette_Spiritomb[] = INCBIN_U32("graphics/pokemon/spiritomb/normal.gbapal.lz"); + const u32 gMonBackPic_Spiritomb[] = INCBIN_U32("graphics/pokemon/spiritomb/back.4bpp.lz"); + const u32 gMonShinyPalette_Spiritomb[] = INCBIN_U32("graphics/pokemon/spiritomb/shiny.gbapal.lz"); + const u8 gMonIcon_Spiritomb[] = INCBIN_U8("graphics/pokemon/spiritomb/icon.4bpp"); + const u8 gMonFootprint_Spiritomb[] = INCBIN_U8("graphics/pokemon/spiritomb/footprint.1bpp"); +#endif //P_FAMILY_SPIRITOMB + +#if P_FAMILY_GIBLE + const u32 gMonFrontPic_Gible[] = INCBIN_U32("graphics/pokemon/gible/anim_front.4bpp.lz"); + const u32 gMonPalette_Gible[] = INCBIN_U32("graphics/pokemon/gible/normal.gbapal.lz"); + const u32 gMonBackPic_Gible[] = INCBIN_U32("graphics/pokemon/gible/back.4bpp.lz"); + const u32 gMonShinyPalette_Gible[] = INCBIN_U32("graphics/pokemon/gible/shiny.gbapal.lz"); + const u8 gMonIcon_Gible[] = INCBIN_U8("graphics/pokemon/gible/icon.4bpp"); + const u8 gMonFootprint_Gible[] = INCBIN_U8("graphics/pokemon/gible/footprint.1bpp"); + + const u32 gMonFrontPic_GibleF[] = INCBIN_U32("graphics/pokemon/gible/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_GibleF[] = INCBIN_U32("graphics/pokemon/gible/backf.4bpp.lz"); + + const u32 gMonFrontPic_Gabite[] = INCBIN_U32("graphics/pokemon/gabite/anim_front.4bpp.lz"); + const u32 gMonPalette_Gabite[] = INCBIN_U32("graphics/pokemon/gabite/normal.gbapal.lz"); + const u32 gMonBackPic_Gabite[] = INCBIN_U32("graphics/pokemon/gabite/back.4bpp.lz"); + const u32 gMonShinyPalette_Gabite[] = INCBIN_U32("graphics/pokemon/gabite/shiny.gbapal.lz"); + const u8 gMonIcon_Gabite[] = INCBIN_U8("graphics/pokemon/gabite/icon.4bpp"); + const u8 gMonFootprint_Gabite[] = INCBIN_U8("graphics/pokemon/gabite/footprint.1bpp"); + + const u32 gMonFrontPic_GabiteF[] = INCBIN_U32("graphics/pokemon/gabite/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_GabiteF[] = INCBIN_U32("graphics/pokemon/gabite/backf.4bpp.lz"); + + const u32 gMonFrontPic_Garchomp[] = INCBIN_U32("graphics/pokemon/garchomp/anim_front.4bpp.lz"); + const u32 gMonPalette_Garchomp[] = INCBIN_U32("graphics/pokemon/garchomp/normal.gbapal.lz"); + const u32 gMonBackPic_Garchomp[] = INCBIN_U32("graphics/pokemon/garchomp/back.4bpp.lz"); + const u32 gMonShinyPalette_Garchomp[] = INCBIN_U32("graphics/pokemon/garchomp/shiny.gbapal.lz"); + const u8 gMonIcon_Garchomp[] = INCBIN_U8("graphics/pokemon/garchomp/icon.4bpp"); + const u8 gMonFootprint_Garchomp[] = INCBIN_U8("graphics/pokemon/garchomp/footprint.1bpp"); + + const u32 gMonFrontPic_GarchompF[] = INCBIN_U32("graphics/pokemon/garchomp/anim_frontf.4bpp.lz"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_GarchompMega[] = INCBIN_U32("graphics/pokemon/garchomp/mega/front.4bpp.lz"); + const u32 gMonPalette_GarchompMega[] = INCBIN_U32("graphics/pokemon/garchomp/mega/normal.gbapal.lz"); + const u32 gMonBackPic_GarchompMega[] = INCBIN_U32("graphics/pokemon/garchomp/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_GarchompMega[] = INCBIN_U32("graphics/pokemon/garchomp/mega/shiny.gbapal.lz"); + const u8 gMonIcon_GarchompMega[] = INCBIN_U8("graphics/pokemon/garchomp/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_GIBLE + +#if P_FAMILY_RIOLU + const u32 gMonFrontPic_Riolu[] = INCBIN_U32("graphics/pokemon/riolu/anim_front.4bpp.lz"); + const u32 gMonPalette_Riolu[] = INCBIN_U32("graphics/pokemon/riolu/normal.gbapal.lz"); + const u32 gMonBackPic_Riolu[] = INCBIN_U32("graphics/pokemon/riolu/back.4bpp.lz"); + const u32 gMonShinyPalette_Riolu[] = INCBIN_U32("graphics/pokemon/riolu/shiny.gbapal.lz"); + const u8 gMonIcon_Riolu[] = INCBIN_U8("graphics/pokemon/riolu/icon.4bpp"); + const u8 gMonFootprint_Riolu[] = INCBIN_U8("graphics/pokemon/riolu/footprint.1bpp"); + + const u32 gMonFrontPic_Lucario[] = INCBIN_U32("graphics/pokemon/lucario/anim_front.4bpp.lz"); + const u32 gMonPalette_Lucario[] = INCBIN_U32("graphics/pokemon/lucario/normal.gbapal.lz"); + const u32 gMonBackPic_Lucario[] = INCBIN_U32("graphics/pokemon/lucario/back.4bpp.lz"); + const u32 gMonShinyPalette_Lucario[] = INCBIN_U32("graphics/pokemon/lucario/shiny.gbapal.lz"); + const u8 gMonIcon_Lucario[] = INCBIN_U8("graphics/pokemon/lucario/icon.4bpp"); + const u8 gMonFootprint_Lucario[] = INCBIN_U8("graphics/pokemon/lucario/footprint.1bpp"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_LucarioMega[] = INCBIN_U32("graphics/pokemon/lucario/mega/front.4bpp.lz"); + const u32 gMonPalette_LucarioMega[] = INCBIN_U32("graphics/pokemon/lucario/mega/normal.gbapal.lz"); + const u32 gMonBackPic_LucarioMega[] = INCBIN_U32("graphics/pokemon/lucario/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_LucarioMega[] = INCBIN_U32("graphics/pokemon/lucario/mega/shiny.gbapal.lz"); + const u8 gMonIcon_LucarioMega[] = INCBIN_U8("graphics/pokemon/lucario/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_RIOLU + +#if P_FAMILY_HIPPOPOTAS + const u32 gMonFrontPic_Hippopotas[] = INCBIN_U32("graphics/pokemon/hippopotas/anim_front.4bpp.lz"); + const u32 gMonPalette_Hippopotas[] = INCBIN_U32("graphics/pokemon/hippopotas/normal.gbapal.lz"); + const u32 gMonBackPic_Hippopotas[] = INCBIN_U32("graphics/pokemon/hippopotas/back.4bpp.lz"); + const u32 gMonShinyPalette_Hippopotas[] = INCBIN_U32("graphics/pokemon/hippopotas/shiny.gbapal.lz"); + const u8 gMonIcon_Hippopotas[] = INCBIN_U8("graphics/pokemon/hippopotas/icon.4bpp"); + const u8 gMonFootprint_Hippopotas[] = INCBIN_U8("graphics/pokemon/hippopotas/footprint.1bpp"); + + const u32 gMonPalette_HippopotasF[] = INCBIN_U32("graphics/pokemon/hippopotas/normalf.gbapal.lz"); + const u32 gMonShinyPalette_HippopotasF[] = INCBIN_U32("graphics/pokemon/hippopotas/shinyf.gbapal.lz"); +#if P_CUSTOM_GENDER_DIFF_ICONS + const u8 gMonIcon_HippopotasF[] = INCBIN_U8("graphics/pokemon/hippopotas/iconf.4bpp"); +#endif + + const u32 gMonFrontPic_Hippowdon[] = INCBIN_U32("graphics/pokemon/hippowdon/anim_front.4bpp.lz"); + const u32 gMonPalette_Hippowdon[] = INCBIN_U32("graphics/pokemon/hippowdon/normal.gbapal.lz"); + const u32 gMonBackPic_Hippowdon[] = INCBIN_U32("graphics/pokemon/hippowdon/back.4bpp.lz"); + const u32 gMonShinyPalette_Hippowdon[] = INCBIN_U32("graphics/pokemon/hippowdon/shiny.gbapal.lz"); + const u8 gMonIcon_Hippowdon[] = INCBIN_U8("graphics/pokemon/hippowdon/icon.4bpp"); + const u8 gMonFootprint_Hippowdon[] = INCBIN_U8("graphics/pokemon/hippowdon/footprint.1bpp"); + + const u32 gMonPalette_HippowdonF[] = INCBIN_U32("graphics/pokemon/hippowdon/normalf.gbapal.lz"); + const u32 gMonShinyPalette_HippowdonF[] = INCBIN_U32("graphics/pokemon/hippowdon/shinyf.gbapal.lz"); +#if P_CUSTOM_GENDER_DIFF_ICONS + const u8 gMonIcon_HippowdonF[] = INCBIN_U8("graphics/pokemon/hippowdon/iconf.4bpp"); +#endif +#endif //P_FAMILY_HIPPOPOTAS + +#if P_FAMILY_SKORUPI + const u32 gMonFrontPic_Skorupi[] = INCBIN_U32("graphics/pokemon/skorupi/anim_front.4bpp.lz"); + const u32 gMonPalette_Skorupi[] = INCBIN_U32("graphics/pokemon/skorupi/normal.gbapal.lz"); + const u32 gMonBackPic_Skorupi[] = INCBIN_U32("graphics/pokemon/skorupi/back.4bpp.lz"); + const u32 gMonShinyPalette_Skorupi[] = INCBIN_U32("graphics/pokemon/skorupi/shiny.gbapal.lz"); + const u8 gMonIcon_Skorupi[] = INCBIN_U8("graphics/pokemon/skorupi/icon.4bpp"); + const u8 gMonFootprint_Skorupi[] = INCBIN_U8("graphics/pokemon/skorupi/footprint.1bpp"); + + const u32 gMonFrontPic_Drapion[] = INCBIN_U32("graphics/pokemon/drapion/anim_front.4bpp.lz"); + const u32 gMonPalette_Drapion[] = INCBIN_U32("graphics/pokemon/drapion/normal.gbapal.lz"); + const u32 gMonBackPic_Drapion[] = INCBIN_U32("graphics/pokemon/drapion/back.4bpp.lz"); + const u32 gMonShinyPalette_Drapion[] = INCBIN_U32("graphics/pokemon/drapion/shiny.gbapal.lz"); + const u8 gMonIcon_Drapion[] = INCBIN_U8("graphics/pokemon/drapion/icon.4bpp"); + const u8 gMonFootprint_Drapion[] = INCBIN_U8("graphics/pokemon/drapion/footprint.1bpp"); +#endif //P_FAMILY_SKORUPI + +#if P_FAMILY_CROAGUNK + const u32 gMonFrontPic_Croagunk[] = INCBIN_U32("graphics/pokemon/croagunk/anim_front.4bpp.lz"); + const u32 gMonPalette_Croagunk[] = INCBIN_U32("graphics/pokemon/croagunk/normal.gbapal.lz"); + const u32 gMonBackPic_Croagunk[] = INCBIN_U32("graphics/pokemon/croagunk/back.4bpp.lz"); + const u32 gMonShinyPalette_Croagunk[] = INCBIN_U32("graphics/pokemon/croagunk/shiny.gbapal.lz"); + const u8 gMonIcon_Croagunk[] = INCBIN_U8("graphics/pokemon/croagunk/icon.4bpp"); + const u8 gMonFootprint_Croagunk[] = INCBIN_U8("graphics/pokemon/croagunk/footprint.1bpp"); + + const u32 gMonFrontPic_CroagunkF[] = INCBIN_U32("graphics/pokemon/croagunk/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_CroagunkF[] = INCBIN_U32("graphics/pokemon/croagunk/backf.4bpp.lz"); + + const u32 gMonFrontPic_Toxicroak[] = INCBIN_U32("graphics/pokemon/toxicroak/anim_front.4bpp.lz"); + const u32 gMonPalette_Toxicroak[] = INCBIN_U32("graphics/pokemon/toxicroak/normal.gbapal.lz"); + const u32 gMonBackPic_Toxicroak[] = INCBIN_U32("graphics/pokemon/toxicroak/back.4bpp.lz"); + const u32 gMonShinyPalette_Toxicroak[] = INCBIN_U32("graphics/pokemon/toxicroak/shiny.gbapal.lz"); + const u8 gMonIcon_Toxicroak[] = INCBIN_U8("graphics/pokemon/toxicroak/icon.4bpp"); + const u8 gMonFootprint_Toxicroak[] = INCBIN_U8("graphics/pokemon/toxicroak/footprint.1bpp"); + + const u32 gMonFrontPic_ToxicroakF[] = INCBIN_U32("graphics/pokemon/toxicroak/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_ToxicroakF[] = INCBIN_U32("graphics/pokemon/toxicroak/backf.4bpp.lz"); +#endif //P_FAMILY_CROAGUNK + +#if P_FAMILY_CARNIVINE + const u32 gMonFrontPic_Carnivine[] = INCBIN_U32("graphics/pokemon/carnivine/anim_front.4bpp.lz"); + const u32 gMonPalette_Carnivine[] = INCBIN_U32("graphics/pokemon/carnivine/normal.gbapal.lz"); + const u32 gMonBackPic_Carnivine[] = INCBIN_U32("graphics/pokemon/carnivine/back.4bpp.lz"); + const u32 gMonShinyPalette_Carnivine[] = INCBIN_U32("graphics/pokemon/carnivine/shiny.gbapal.lz"); + const u8 gMonIcon_Carnivine[] = INCBIN_U8("graphics/pokemon/carnivine/icon.4bpp"); + const u8 gMonFootprint_Carnivine[] = INCBIN_U8("graphics/pokemon/carnivine/footprint.1bpp"); +#endif //P_FAMILY_CARNIVINE + +#if P_FAMILY_FINNEON + const u32 gMonFrontPic_Finneon[] = INCBIN_U32("graphics/pokemon/finneon/anim_front.4bpp.lz"); + const u32 gMonPalette_Finneon[] = INCBIN_U32("graphics/pokemon/finneon/normal.gbapal.lz"); + const u32 gMonBackPic_Finneon[] = INCBIN_U32("graphics/pokemon/finneon/back.4bpp.lz"); + const u32 gMonShinyPalette_Finneon[] = INCBIN_U32("graphics/pokemon/finneon/shiny.gbapal.lz"); + const u8 gMonIcon_Finneon[] = INCBIN_U8("graphics/pokemon/finneon/icon.4bpp"); + const u8 gMonFootprint_Finneon[] = INCBIN_U8("graphics/pokemon/finneon/footprint.1bpp"); + + const u32 gMonFrontPic_FinneonF[] = INCBIN_U32("graphics/pokemon/finneon/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_FinneonF[] = INCBIN_U32("graphics/pokemon/finneon/backf.4bpp.lz"); + + const u32 gMonFrontPic_Lumineon[] = INCBIN_U32("graphics/pokemon/lumineon/anim_front.4bpp.lz"); + const u32 gMonPalette_Lumineon[] = INCBIN_U32("graphics/pokemon/lumineon/normal.gbapal.lz"); + const u32 gMonBackPic_Lumineon[] = INCBIN_U32("graphics/pokemon/lumineon/back.4bpp.lz"); + const u32 gMonShinyPalette_Lumineon[] = INCBIN_U32("graphics/pokemon/lumineon/shiny.gbapal.lz"); + const u8 gMonIcon_Lumineon[] = INCBIN_U8("graphics/pokemon/lumineon/icon.4bpp"); + const u8 gMonFootprint_Lumineon[] = INCBIN_U8("graphics/pokemon/lumineon/footprint.1bpp"); + + const u32 gMonFrontPic_LumineonF[] = INCBIN_U32("graphics/pokemon/lumineon/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_LumineonF[] = INCBIN_U32("graphics/pokemon/lumineon/backf.4bpp.lz"); +#endif //P_FAMILY_FINNEON + +#if P_FAMILY_SNOVER + const u32 gMonFrontPic_Snover[] = INCBIN_U32("graphics/pokemon/snover/anim_front.4bpp.lz"); + const u32 gMonPalette_Snover[] = INCBIN_U32("graphics/pokemon/snover/normal.gbapal.lz"); + const u32 gMonBackPic_Snover[] = INCBIN_U32("graphics/pokemon/snover/back.4bpp.lz"); + const u32 gMonShinyPalette_Snover[] = INCBIN_U32("graphics/pokemon/snover/shiny.gbapal.lz"); + const u8 gMonIcon_Snover[] = INCBIN_U8("graphics/pokemon/snover/icon.4bpp"); + const u8 gMonFootprint_Snover[] = INCBIN_U8("graphics/pokemon/snover/footprint.1bpp"); + + const u32 gMonFrontPic_SnoverF[] = INCBIN_U32("graphics/pokemon/snover/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_SnoverF[] = INCBIN_U32("graphics/pokemon/snover/backf.4bpp.lz"); + + const u32 gMonFrontPic_Abomasnow[] = INCBIN_U32("graphics/pokemon/abomasnow/anim_front.4bpp.lz"); + const u32 gMonPalette_Abomasnow[] = INCBIN_U32("graphics/pokemon/abomasnow/normal.gbapal.lz"); + const u32 gMonBackPic_Abomasnow[] = INCBIN_U32("graphics/pokemon/abomasnow/back.4bpp.lz"); + const u32 gMonShinyPalette_Abomasnow[] = INCBIN_U32("graphics/pokemon/abomasnow/shiny.gbapal.lz"); + const u8 gMonIcon_Abomasnow[] = INCBIN_U8("graphics/pokemon/abomasnow/icon.4bpp"); + const u8 gMonFootprint_Abomasnow[] = INCBIN_U8("graphics/pokemon/abomasnow/footprint.1bpp"); + + const u32 gMonFrontPic_AbomasnowF[] = INCBIN_U32("graphics/pokemon/abomasnow/anim_frontf.4bpp.lz"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_AbomasnowMega[] = INCBIN_U32("graphics/pokemon/abomasnow/mega/front.4bpp.lz"); + const u32 gMonPalette_AbomasnowMega[] = INCBIN_U32("graphics/pokemon/abomasnow/mega/normal.gbapal.lz"); + const u32 gMonBackPic_AbomasnowMega[] = INCBIN_U32("graphics/pokemon/abomasnow/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_AbomasnowMega[] = INCBIN_U32("graphics/pokemon/abomasnow/mega/shiny.gbapal.lz"); + const u8 gMonIcon_AbomasnowMega[] = INCBIN_U8("graphics/pokemon/abomasnow/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_SNOVER + +#if P_FAMILY_ROTOM + const u32 gMonFrontPic_Rotom[] = INCBIN_U32("graphics/pokemon/rotom/anim_front.4bpp.lz"); + const u32 gMonPalette_Rotom[] = INCBIN_U32("graphics/pokemon/rotom/normal.gbapal.lz"); + const u32 gMonBackPic_Rotom[] = INCBIN_U32("graphics/pokemon/rotom/back.4bpp.lz"); + const u32 gMonShinyPalette_Rotom[] = INCBIN_U32("graphics/pokemon/rotom/shiny.gbapal.lz"); + const u8 gMonIcon_Rotom[] = INCBIN_U8("graphics/pokemon/rotom/icon.4bpp"); + const u8 gMonFootprint_Rotom[] = INCBIN_U8("graphics/pokemon/rotom/normal/footprint.1bpp"); + + const u32 gMonFrontPic_RotomHeat[] = INCBIN_U32("graphics/pokemon/rotom/heat/anim_front.4bpp.lz"); + const u32 gMonPalette_RotomHeat[] = INCBIN_U32("graphics/pokemon/rotom/heat/normal.gbapal.lz"); + const u32 gMonBackPic_RotomHeat[] = INCBIN_U32("graphics/pokemon/rotom/heat/back.4bpp.lz"); + const u32 gMonShinyPalette_RotomHeat[] = INCBIN_U32("graphics/pokemon/rotom/heat/shiny.gbapal.lz"); + const u8 gMonIcon_RotomHeat[] = INCBIN_U8("graphics/pokemon/rotom/heat/icon.4bpp"); + + const u32 gMonFrontPic_RotomWash[] = INCBIN_U32("graphics/pokemon/rotom/wash/anim_front.4bpp.lz"); + const u32 gMonPalette_RotomWash[] = INCBIN_U32("graphics/pokemon/rotom/wash/normal.gbapal.lz"); + const u32 gMonBackPic_RotomWash[] = INCBIN_U32("graphics/pokemon/rotom/wash/back.4bpp.lz"); + const u32 gMonShinyPalette_RotomWash[] = INCBIN_U32("graphics/pokemon/rotom/wash/shiny.gbapal.lz"); + const u8 gMonIcon_RotomWash[] = INCBIN_U8("graphics/pokemon/rotom/wash/icon.4bpp"); + + const u32 gMonFrontPic_RotomFrost[] = INCBIN_U32("graphics/pokemon/rotom/frost/anim_front.4bpp.lz"); + const u32 gMonPalette_RotomFrost[] = INCBIN_U32("graphics/pokemon/rotom/frost/normal.gbapal.lz"); + const u32 gMonBackPic_RotomFrost[] = INCBIN_U32("graphics/pokemon/rotom/frost/back.4bpp.lz"); + const u32 gMonShinyPalette_RotomFrost[] = INCBIN_U32("graphics/pokemon/rotom/frost/shiny.gbapal.lz"); + const u8 gMonIcon_RotomFrost[] = INCBIN_U8("graphics/pokemon/rotom/frost/icon.4bpp"); + + const u32 gMonFrontPic_RotomFan[] = INCBIN_U32("graphics/pokemon/rotom/fan/anim_front.4bpp.lz"); + const u32 gMonPalette_RotomFan[] = INCBIN_U32("graphics/pokemon/rotom/fan/normal.gbapal.lz"); + const u32 gMonBackPic_RotomFan[] = INCBIN_U32("graphics/pokemon/rotom/fan/back.4bpp.lz"); + const u32 gMonShinyPalette_RotomFan[] = INCBIN_U32("graphics/pokemon/rotom/fan/shiny.gbapal.lz"); + const u8 gMonIcon_RotomFan[] = INCBIN_U8("graphics/pokemon/rotom/fan/icon.4bpp"); + + const u32 gMonFrontPic_RotomMow[] = INCBIN_U32("graphics/pokemon/rotom/mow/anim_front.4bpp.lz"); + const u32 gMonPalette_RotomMow[] = INCBIN_U32("graphics/pokemon/rotom/mow/normal.gbapal.lz"); + const u32 gMonBackPic_RotomMow[] = INCBIN_U32("graphics/pokemon/rotom/mow/back.4bpp.lz"); + const u32 gMonShinyPalette_RotomMow[] = INCBIN_U32("graphics/pokemon/rotom/mow/shiny.gbapal.lz"); + const u8 gMonIcon_RotomMow[] = INCBIN_U8("graphics/pokemon/rotom/mow/icon.4bpp"); +#endif //P_FAMILY_ROTOM + +#if P_FAMILY_UXIE + const u32 gMonFrontPic_Uxie[] = INCBIN_U32("graphics/pokemon/uxie/anim_front.4bpp.lz"); + const u32 gMonPalette_Uxie[] = INCBIN_U32("graphics/pokemon/uxie/normal.gbapal.lz"); + const u32 gMonBackPic_Uxie[] = INCBIN_U32("graphics/pokemon/uxie/back.4bpp.lz"); + const u32 gMonShinyPalette_Uxie[] = INCBIN_U32("graphics/pokemon/uxie/shiny.gbapal.lz"); + const u8 gMonIcon_Uxie[] = INCBIN_U8("graphics/pokemon/uxie/icon.4bpp"); + const u8 gMonFootprint_Uxie[] = INCBIN_U8("graphics/pokemon/uxie/footprint.1bpp"); +#endif //P_FAMILY_UXIE + +#if P_FAMILY_MESPRIT + const u32 gMonFrontPic_Mesprit[] = INCBIN_U32("graphics/pokemon/mesprit/anim_front.4bpp.lz"); + const u32 gMonPalette_Mesprit[] = INCBIN_U32("graphics/pokemon/mesprit/normal.gbapal.lz"); + const u32 gMonBackPic_Mesprit[] = INCBIN_U32("graphics/pokemon/mesprit/back.4bpp.lz"); + const u32 gMonShinyPalette_Mesprit[] = INCBIN_U32("graphics/pokemon/mesprit/shiny.gbapal.lz"); + const u8 gMonIcon_Mesprit[] = INCBIN_U8("graphics/pokemon/mesprit/icon.4bpp"); + const u8 gMonFootprint_Mesprit[] = INCBIN_U8("graphics/pokemon/mesprit/footprint.1bpp"); +#endif //P_FAMILY_MESPRIT + +#if P_FAMILY_AZELF + const u32 gMonFrontPic_Azelf[] = INCBIN_U32("graphics/pokemon/azelf/anim_front.4bpp.lz"); + const u32 gMonPalette_Azelf[] = INCBIN_U32("graphics/pokemon/azelf/normal.gbapal.lz"); + const u32 gMonBackPic_Azelf[] = INCBIN_U32("graphics/pokemon/azelf/back.4bpp.lz"); + const u32 gMonShinyPalette_Azelf[] = INCBIN_U32("graphics/pokemon/azelf/shiny.gbapal.lz"); + const u8 gMonIcon_Azelf[] = INCBIN_U8("graphics/pokemon/azelf/icon.4bpp"); + const u8 gMonFootprint_Azelf[] = INCBIN_U8("graphics/pokemon/azelf/footprint.1bpp"); +#endif //P_FAMILY_AZELF + +#if P_FAMILY_DIALGA + const u32 gMonFrontPic_Dialga[] = INCBIN_U32("graphics/pokemon/dialga/anim_front.4bpp.lz"); + const u32 gMonPalette_Dialga[] = INCBIN_U32("graphics/pokemon/dialga/normal.gbapal.lz"); + const u32 gMonBackPic_Dialga[] = INCBIN_U32("graphics/pokemon/dialga/back.4bpp.lz"); + const u32 gMonShinyPalette_Dialga[] = INCBIN_U32("graphics/pokemon/dialga/shiny.gbapal.lz"); + const u8 gMonIcon_Dialga[] = INCBIN_U8("graphics/pokemon/dialga/icon.4bpp"); + const u8 gMonFootprint_Dialga[] = INCBIN_U8("graphics/pokemon/dialga/footprint.1bpp"); + + const u32 gMonFrontPic_DialgaOrigin[] = INCBIN_U32("graphics/pokemon/dialga/origin/front.4bpp.lz"); + const u32 gMonPalette_DialgaOrigin[] = INCBIN_U32("graphics/pokemon/dialga/origin/normal.gbapal.lz"); + const u32 gMonBackPic_DialgaOrigin[] = INCBIN_U32("graphics/pokemon/dialga/origin/back.4bpp.lz"); + const u32 gMonShinyPalette_DialgaOrigin[] = INCBIN_U32("graphics/pokemon/dialga/origin/shiny.gbapal.lz"); + const u8 gMonIcon_DialgaOrigin[] = INCBIN_U8("graphics/pokemon/dialga/origin/icon.4bpp"); +#endif //P_FAMILY_DIALGA + +#if P_FAMILY_PALKIA + const u32 gMonFrontPic_Palkia[] = INCBIN_U32("graphics/pokemon/palkia/anim_front.4bpp.lz"); + const u32 gMonPalette_Palkia[] = INCBIN_U32("graphics/pokemon/palkia/normal.gbapal.lz"); + const u32 gMonBackPic_Palkia[] = INCBIN_U32("graphics/pokemon/palkia/back.4bpp.lz"); + const u32 gMonShinyPalette_Palkia[] = INCBIN_U32("graphics/pokemon/palkia/shiny.gbapal.lz"); + const u8 gMonIcon_Palkia[] = INCBIN_U8("graphics/pokemon/palkia/icon.4bpp"); + const u8 gMonFootprint_Palkia[] = INCBIN_U8("graphics/pokemon/palkia/footprint.1bpp"); + + const u32 gMonFrontPic_PalkiaOrigin[] = INCBIN_U32("graphics/pokemon/palkia/origin/front.4bpp.lz"); + const u32 gMonPalette_PalkiaOrigin[] = INCBIN_U32("graphics/pokemon/palkia/origin/normal.gbapal.lz"); + const u32 gMonBackPic_PalkiaOrigin[] = INCBIN_U32("graphics/pokemon/palkia/origin/back.4bpp.lz"); + const u32 gMonShinyPalette_PalkiaOrigin[] = INCBIN_U32("graphics/pokemon/palkia/origin/shiny.gbapal.lz"); + const u8 gMonIcon_PalkiaOrigin[] = INCBIN_U8("graphics/pokemon/palkia/origin/icon.4bpp"); +#endif //P_FAMILY_PALKIA + +#if P_FAMILY_HEATRAN + const u32 gMonFrontPic_Heatran[] = INCBIN_U32("graphics/pokemon/heatran/anim_front.4bpp.lz"); + const u32 gMonPalette_Heatran[] = INCBIN_U32("graphics/pokemon/heatran/normal.gbapal.lz"); + const u32 gMonBackPic_Heatran[] = INCBIN_U32("graphics/pokemon/heatran/back.4bpp.lz"); + const u32 gMonShinyPalette_Heatran[] = INCBIN_U32("graphics/pokemon/heatran/shiny.gbapal.lz"); + const u8 gMonIcon_Heatran[] = INCBIN_U8("graphics/pokemon/heatran/icon.4bpp"); + const u8 gMonFootprint_Heatran[] = INCBIN_U8("graphics/pokemon/heatran/footprint.1bpp"); +#endif //P_FAMILY_HEATRAN + +#if P_FAMILY_REGIGIGAS + const u32 gMonFrontPic_Regigigas[] = INCBIN_U32("graphics/pokemon/regigigas/anim_front.4bpp.lz"); + const u32 gMonPalette_Regigigas[] = INCBIN_U32("graphics/pokemon/regigigas/normal.gbapal.lz"); + const u32 gMonBackPic_Regigigas[] = INCBIN_U32("graphics/pokemon/regigigas/back.4bpp.lz"); + const u32 gMonShinyPalette_Regigigas[] = INCBIN_U32("graphics/pokemon/regigigas/shiny.gbapal.lz"); + const u8 gMonIcon_Regigigas[] = INCBIN_U8("graphics/pokemon/regigigas/icon.4bpp"); + const u8 gMonFootprint_Regigigas[] = INCBIN_U8("graphics/pokemon/regigigas/footprint.1bpp"); +#endif //P_FAMILY_REGIGIGAS + +#if P_FAMILY_GIRATINA + const u32 gMonFrontPic_GiratinaAltered[] = INCBIN_U32("graphics/pokemon/giratina/anim_front.4bpp.lz"); + const u32 gMonPalette_GiratinaAltered[] = INCBIN_U32("graphics/pokemon/giratina/normal.gbapal.lz"); + const u32 gMonBackPic_GiratinaAltered[] = INCBIN_U32("graphics/pokemon/giratina/back.4bpp.lz"); + const u32 gMonShinyPalette_GiratinaAltered[] = INCBIN_U32("graphics/pokemon/giratina/shiny.gbapal.lz"); + const u8 gMonIcon_GiratinaAltered[] = INCBIN_U8("graphics/pokemon/giratina/icon.4bpp"); + const u8 gMonFootprint_Giratina[] = INCBIN_U8("graphics/pokemon/giratina/footprint.1bpp"); + + const u32 gMonFrontPic_GiratinaOrigin[] = INCBIN_U32("graphics/pokemon/giratina/origin/anim_front.4bpp.lz"); + const u32 gMonPalette_GiratinaOrigin[] = INCBIN_U32("graphics/pokemon/giratina/origin/normal.gbapal.lz"); + const u32 gMonBackPic_GiratinaOrigin[] = INCBIN_U32("graphics/pokemon/giratina/origin/back.4bpp.lz"); + const u32 gMonShinyPalette_GiratinaOrigin[] = INCBIN_U32("graphics/pokemon/giratina/origin/shiny.gbapal.lz"); + const u8 gMonIcon_GiratinaOrigin[] = INCBIN_U8("graphics/pokemon/giratina/origin/icon.4bpp"); +#endif //P_FAMILY_GIRATINA + +#if P_FAMILY_CRESSELIA + const u32 gMonFrontPic_Cresselia[] = INCBIN_U32("graphics/pokemon/cresselia/anim_front.4bpp.lz"); + const u32 gMonPalette_Cresselia[] = INCBIN_U32("graphics/pokemon/cresselia/normal.gbapal.lz"); + const u32 gMonBackPic_Cresselia[] = INCBIN_U32("graphics/pokemon/cresselia/back.4bpp.lz"); + const u32 gMonShinyPalette_Cresselia[] = INCBIN_U32("graphics/pokemon/cresselia/shiny.gbapal.lz"); + const u8 gMonIcon_Cresselia[] = INCBIN_U8("graphics/pokemon/cresselia/icon.4bpp"); + const u8 gMonFootprint_Cresselia[] = INCBIN_U8("graphics/pokemon/cresselia/footprint.1bpp"); + + const u32 gMonFrontPic_Phione[] = INCBIN_U32("graphics/pokemon/phione/anim_front.4bpp.lz"); + const u32 gMonPalette_Phione[] = INCBIN_U32("graphics/pokemon/phione/normal.gbapal.lz"); + const u32 gMonBackPic_Phione[] = INCBIN_U32("graphics/pokemon/phione/back.4bpp.lz"); + const u32 gMonShinyPalette_Phione[] = INCBIN_U32("graphics/pokemon/phione/shiny.gbapal.lz"); + const u8 gMonIcon_Phione[] = INCBIN_U8("graphics/pokemon/phione/icon.4bpp"); + const u8 gMonFootprint_Phione[] = INCBIN_U8("graphics/pokemon/phione/footprint.1bpp"); +#endif //P_FAMILY_CRESSELIA + +#if P_FAMILY_MANAPHY + const u32 gMonFrontPic_Manaphy[] = INCBIN_U32("graphics/pokemon/manaphy/anim_front.4bpp.lz"); + const u32 gMonPalette_Manaphy[] = INCBIN_U32("graphics/pokemon/manaphy/normal.gbapal.lz"); + const u32 gMonBackPic_Manaphy[] = INCBIN_U32("graphics/pokemon/manaphy/back.4bpp.lz"); + const u32 gMonShinyPalette_Manaphy[] = INCBIN_U32("graphics/pokemon/manaphy/shiny.gbapal.lz"); + const u8 gMonIcon_Manaphy[] = INCBIN_U8("graphics/pokemon/manaphy/icon.4bpp"); + const u8 gMonFootprint_Manaphy[] = INCBIN_U8("graphics/pokemon/manaphy/footprint.1bpp"); +#endif //P_FAMILY_MANAPHY + +#if P_FAMILY_DARKRAI + const u32 gMonFrontPic_Darkrai[] = INCBIN_U32("graphics/pokemon/darkrai/anim_front.4bpp.lz"); + const u32 gMonPalette_Darkrai[] = INCBIN_U32("graphics/pokemon/darkrai/normal.gbapal.lz"); + const u32 gMonBackPic_Darkrai[] = INCBIN_U32("graphics/pokemon/darkrai/back.4bpp.lz"); + const u32 gMonShinyPalette_Darkrai[] = INCBIN_U32("graphics/pokemon/darkrai/shiny.gbapal.lz"); + const u8 gMonIcon_Darkrai[] = INCBIN_U8("graphics/pokemon/darkrai/icon.4bpp"); + const u8 gMonFootprint_Darkrai[] = INCBIN_U8("graphics/pokemon/darkrai/footprint.1bpp"); +#endif //P_FAMILY_DARKRAI + +#if P_FAMILY_SHAYMIN + const u32 gMonFrontPic_ShayminLand[] = INCBIN_U32("graphics/pokemon/shaymin/anim_front.4bpp.lz"); + const u32 gMonPalette_ShayminLand[] = INCBIN_U32("graphics/pokemon/shaymin/normal.gbapal.lz"); + const u32 gMonBackPic_ShayminLand[] = INCBIN_U32("graphics/pokemon/shaymin/back.4bpp.lz"); + const u32 gMonShinyPalette_ShayminLand[] = INCBIN_U32("graphics/pokemon/shaymin/shiny.gbapal.lz"); + const u8 gMonIcon_ShayminLand[] = INCBIN_U8("graphics/pokemon/shaymin/icon.4bpp"); + const u8 gMonFootprint_Shaymin[] = INCBIN_U8("graphics/pokemon/shaymin/footprint.1bpp"); + + const u32 gMonFrontPic_ShayminSky[] = INCBIN_U32("graphics/pokemon/shaymin/sky/anim_front.4bpp.lz"); + const u32 gMonPalette_ShayminSky[] = INCBIN_U32("graphics/pokemon/shaymin/sky/normal.gbapal.lz"); + const u32 gMonBackPic_ShayminSky[] = INCBIN_U32("graphics/pokemon/shaymin/sky/back.4bpp.lz"); + const u32 gMonShinyPalette_ShayminSky[] = INCBIN_U32("graphics/pokemon/shaymin/sky/shiny.gbapal.lz"); + const u8 gMonIcon_ShayminSky[] = INCBIN_U8("graphics/pokemon/shaymin/sky/icon.4bpp"); +#endif //P_FAMILY_SHAYMIN + +#if P_FAMILY_ARCEUS + const u32 gMonFrontPic_Arceus[] = INCBIN_U32("graphics/pokemon/arceus/anim_front.4bpp.lz"); + const u32 gMonBackPic_Arceus[] = INCBIN_U32("graphics/pokemon/arceus/back.4bpp.lz"); + const u8 gMonIcon_Arceus[] = INCBIN_U8("graphics/pokemon/arceus/icon.4bpp"); + const u8 gMonFootprint_Arceus[] = INCBIN_U8("graphics/pokemon/arceus/footprint.1bpp"); + + const u32 gMonPalette_ArceusNormal[] = INCBIN_U32("graphics/pokemon/arceus/normal.gbapal.lz"); + const u32 gMonShinyPalette_ArceusNormal[] = INCBIN_U32("graphics/pokemon/arceus/shiny.gbapal.lz"); + + const u32 gMonPalette_ArceusFighting[] = INCBIN_U32("graphics/pokemon/arceus/fighting/normal.gbapal.lz"); + const u32 gMonShinyPalette_ArceusFighting[] = INCBIN_U32("graphics/pokemon/arceus/fighting/shiny.gbapal.lz"); + + const u32 gMonPalette_ArceusFlying[] = INCBIN_U32("graphics/pokemon/arceus/flying/normal.gbapal.lz"); + const u32 gMonShinyPalette_ArceusFlying[] = INCBIN_U32("graphics/pokemon/arceus/flying/shiny.gbapal.lz"); + + const u32 gMonPalette_ArceusPoison[] = INCBIN_U32("graphics/pokemon/arceus/poison/normal.gbapal.lz"); + const u32 gMonShinyPalette_ArceusPoison[] = INCBIN_U32("graphics/pokemon/arceus/poison/shiny.gbapal.lz"); + + const u32 gMonPalette_ArceusGround[] = INCBIN_U32("graphics/pokemon/arceus/ground/normal.gbapal.lz"); + const u32 gMonShinyPalette_ArceusGround[] = INCBIN_U32("graphics/pokemon/arceus/ground/shiny.gbapal.lz"); + + const u32 gMonPalette_ArceusRock[] = INCBIN_U32("graphics/pokemon/arceus/rock/normal.gbapal.lz"); + const u32 gMonShinyPalette_ArceusRock[] = INCBIN_U32("graphics/pokemon/arceus/rock/shiny.gbapal.lz"); + + const u32 gMonPalette_ArceusBug[] = INCBIN_U32("graphics/pokemon/arceus/bug/normal.gbapal.lz"); + const u32 gMonShinyPalette_ArceusBug[] = INCBIN_U32("graphics/pokemon/arceus/bug/shiny.gbapal.lz"); + + const u32 gMonPalette_ArceusGhost[] = INCBIN_U32("graphics/pokemon/arceus/ghost/normal.gbapal.lz"); + const u32 gMonShinyPalette_ArceusGhost[] = INCBIN_U32("graphics/pokemon/arceus/ghost/shiny.gbapal.lz"); + + const u32 gMonPalette_ArceusSteel[] = INCBIN_U32("graphics/pokemon/arceus/steel/normal.gbapal.lz"); + const u32 gMonShinyPalette_ArceusSteel[] = INCBIN_U32("graphics/pokemon/arceus/steel/shiny.gbapal.lz"); + + const u32 gMonPalette_ArceusFire[] = INCBIN_U32("graphics/pokemon/arceus/fire/normal.gbapal.lz"); + const u32 gMonShinyPalette_ArceusFire[] = INCBIN_U32("graphics/pokemon/arceus/fire/shiny.gbapal.lz"); + + const u32 gMonPalette_ArceusWater[] = INCBIN_U32("graphics/pokemon/arceus/water/normal.gbapal.lz"); + const u32 gMonShinyPalette_ArceusWater[] = INCBIN_U32("graphics/pokemon/arceus/water/shiny.gbapal.lz"); + + const u32 gMonPalette_ArceusGrass[] = INCBIN_U32("graphics/pokemon/arceus/grass/normal.gbapal.lz"); + const u32 gMonShinyPalette_ArceusGrass[] = INCBIN_U32("graphics/pokemon/arceus/grass/shiny.gbapal.lz"); + + const u32 gMonPalette_ArceusElectric[] = INCBIN_U32("graphics/pokemon/arceus/electric/normal.gbapal.lz"); + const u32 gMonShinyPalette_ArceusElectric[] = INCBIN_U32("graphics/pokemon/arceus/electric/shiny.gbapal.lz"); + + const u32 gMonPalette_ArceusPsychic[] = INCBIN_U32("graphics/pokemon/arceus/psychic/normal.gbapal.lz"); + const u32 gMonShinyPalette_ArceusPsychic[] = INCBIN_U32("graphics/pokemon/arceus/psychic/shiny.gbapal.lz"); + + const u32 gMonPalette_ArceusIce[] = INCBIN_U32("graphics/pokemon/arceus/ice/normal.gbapal.lz"); + const u32 gMonShinyPalette_ArceusIce[] = INCBIN_U32("graphics/pokemon/arceus/ice/shiny.gbapal.lz"); + + const u32 gMonPalette_ArceusDragon[] = INCBIN_U32("graphics/pokemon/arceus/dragon/normal.gbapal.lz"); + const u32 gMonShinyPalette_ArceusDragon[] = INCBIN_U32("graphics/pokemon/arceus/dragon/shiny.gbapal.lz"); + + const u32 gMonPalette_ArceusDark[] = INCBIN_U32("graphics/pokemon/arceus/dark/normal.gbapal.lz"); + const u32 gMonShinyPalette_ArceusDark[] = INCBIN_U32("graphics/pokemon/arceus/dark/shiny.gbapal.lz"); + + const u32 gMonPalette_ArceusFairy[] = INCBIN_U32("graphics/pokemon/arceus/fairy/normal.gbapal.lz"); + const u32 gMonShinyPalette_ArceusFairy[] = INCBIN_U32("graphics/pokemon/arceus/fairy/shiny.gbapal.lz"); +#endif //P_FAMILY_ARCEUS + +#if P_FAMILY_VICTINI + const u32 gMonFrontPic_Victini[] = INCBIN_U32("graphics/pokemon/victini/anim_front.4bpp.lz"); + const u32 gMonPalette_Victini[] = INCBIN_U32("graphics/pokemon/victini/normal.gbapal.lz"); + const u32 gMonBackPic_Victini[] = INCBIN_U32("graphics/pokemon/victini/back.4bpp.lz"); + const u32 gMonShinyPalette_Victini[] = INCBIN_U32("graphics/pokemon/victini/shiny.gbapal.lz"); + const u8 gMonIcon_Victini[] = INCBIN_U8("graphics/pokemon/victini/icon.4bpp"); + const u8 gMonFootprint_Victini[] = INCBIN_U8("graphics/pokemon/victini/footprint.1bpp"); +#endif //P_FAMILY_VICTINI + +#if P_FAMILY_SNIVY + const u32 gMonFrontPic_Snivy[] = INCBIN_U32("graphics/pokemon/snivy/anim_front.4bpp.lz"); + const u32 gMonPalette_Snivy[] = INCBIN_U32("graphics/pokemon/snivy/normal.gbapal.lz"); + const u32 gMonBackPic_Snivy[] = INCBIN_U32("graphics/pokemon/snivy/back.4bpp.lz"); + const u32 gMonShinyPalette_Snivy[] = INCBIN_U32("graphics/pokemon/snivy/shiny.gbapal.lz"); + const u8 gMonIcon_Snivy[] = INCBIN_U8("graphics/pokemon/snivy/icon.4bpp"); + const u8 gMonFootprint_Snivy[] = INCBIN_U8("graphics/pokemon/snivy/footprint.1bpp"); + + const u32 gMonFrontPic_Servine[] = INCBIN_U32("graphics/pokemon/servine/anim_front.4bpp.lz"); + const u32 gMonPalette_Servine[] = INCBIN_U32("graphics/pokemon/servine/normal.gbapal.lz"); + const u32 gMonBackPic_Servine[] = INCBIN_U32("graphics/pokemon/servine/back.4bpp.lz"); + const u32 gMonShinyPalette_Servine[] = INCBIN_U32("graphics/pokemon/servine/shiny.gbapal.lz"); + const u8 gMonIcon_Servine[] = INCBIN_U8("graphics/pokemon/servine/icon.4bpp"); + const u8 gMonFootprint_Servine[] = INCBIN_U8("graphics/pokemon/servine/footprint.1bpp"); + + const u32 gMonFrontPic_Serperior[] = INCBIN_U32("graphics/pokemon/serperior/anim_front.4bpp.lz"); + const u32 gMonPalette_Serperior[] = INCBIN_U32("graphics/pokemon/serperior/normal.gbapal.lz"); + const u32 gMonBackPic_Serperior[] = INCBIN_U32("graphics/pokemon/serperior/back.4bpp.lz"); + const u32 gMonShinyPalette_Serperior[] = INCBIN_U32("graphics/pokemon/serperior/shiny.gbapal.lz"); + const u8 gMonIcon_Serperior[] = INCBIN_U8("graphics/pokemon/serperior/icon.4bpp"); + const u8 gMonFootprint_Serperior[] = INCBIN_U8("graphics/pokemon/serperior/footprint.1bpp"); +#endif //P_FAMILY_SNIVY + +#if P_FAMILY_TEPIG + const u32 gMonFrontPic_Tepig[] = INCBIN_U32("graphics/pokemon/tepig/anim_front.4bpp.lz"); + const u32 gMonPalette_Tepig[] = INCBIN_U32("graphics/pokemon/tepig/normal.gbapal.lz"); + const u32 gMonBackPic_Tepig[] = INCBIN_U32("graphics/pokemon/tepig/back.4bpp.lz"); + const u32 gMonShinyPalette_Tepig[] = INCBIN_U32("graphics/pokemon/tepig/shiny.gbapal.lz"); + const u8 gMonIcon_Tepig[] = INCBIN_U8("graphics/pokemon/tepig/icon.4bpp"); + const u8 gMonFootprint_Tepig[] = INCBIN_U8("graphics/pokemon/tepig/footprint.1bpp"); + + const u32 gMonFrontPic_Pignite[] = INCBIN_U32("graphics/pokemon/pignite/anim_front.4bpp.lz"); + const u32 gMonPalette_Pignite[] = INCBIN_U32("graphics/pokemon/pignite/normal.gbapal.lz"); + const u32 gMonBackPic_Pignite[] = INCBIN_U32("graphics/pokemon/pignite/back.4bpp.lz"); + const u32 gMonShinyPalette_Pignite[] = INCBIN_U32("graphics/pokemon/pignite/shiny.gbapal.lz"); + const u8 gMonIcon_Pignite[] = INCBIN_U8("graphics/pokemon/pignite/icon.4bpp"); + const u8 gMonFootprint_Pignite[] = INCBIN_U8("graphics/pokemon/pignite/footprint.1bpp"); + + const u32 gMonFrontPic_Emboar[] = INCBIN_U32("graphics/pokemon/emboar/anim_front.4bpp.lz"); + const u32 gMonPalette_Emboar[] = INCBIN_U32("graphics/pokemon/emboar/normal.gbapal.lz"); + const u32 gMonBackPic_Emboar[] = INCBIN_U32("graphics/pokemon/emboar/back.4bpp.lz"); + const u32 gMonShinyPalette_Emboar[] = INCBIN_U32("graphics/pokemon/emboar/shiny.gbapal.lz"); + const u8 gMonIcon_Emboar[] = INCBIN_U8("graphics/pokemon/emboar/icon.4bpp"); + const u8 gMonFootprint_Emboar[] = INCBIN_U8("graphics/pokemon/emboar/footprint.1bpp"); +#endif //P_FAMILY_TEPIG + +#if P_FAMILY_OSHAWOTT + const u32 gMonFrontPic_Oshawott[] = INCBIN_U32("graphics/pokemon/oshawott/anim_front.4bpp.lz"); + const u32 gMonPalette_Oshawott[] = INCBIN_U32("graphics/pokemon/oshawott/normal.gbapal.lz"); + const u32 gMonBackPic_Oshawott[] = INCBIN_U32("graphics/pokemon/oshawott/back.4bpp.lz"); + const u32 gMonShinyPalette_Oshawott[] = INCBIN_U32("graphics/pokemon/oshawott/shiny.gbapal.lz"); + const u8 gMonIcon_Oshawott[] = INCBIN_U8("graphics/pokemon/oshawott/icon.4bpp"); + const u8 gMonFootprint_Oshawott[] = INCBIN_U8("graphics/pokemon/oshawott/footprint.1bpp"); + + const u32 gMonFrontPic_Dewott[] = INCBIN_U32("graphics/pokemon/dewott/anim_front.4bpp.lz"); + const u32 gMonPalette_Dewott[] = INCBIN_U32("graphics/pokemon/dewott/normal.gbapal.lz"); + const u32 gMonBackPic_Dewott[] = INCBIN_U32("graphics/pokemon/dewott/back.4bpp.lz"); + const u32 gMonShinyPalette_Dewott[] = INCBIN_U32("graphics/pokemon/dewott/shiny.gbapal.lz"); + const u8 gMonIcon_Dewott[] = INCBIN_U8("graphics/pokemon/dewott/icon.4bpp"); + const u8 gMonFootprint_Dewott[] = INCBIN_U8("graphics/pokemon/dewott/footprint.1bpp"); + + const u32 gMonFrontPic_Samurott[] = INCBIN_U32("graphics/pokemon/samurott/anim_front.4bpp.lz"); + const u32 gMonPalette_Samurott[] = INCBIN_U32("graphics/pokemon/samurott/normal.gbapal.lz"); + const u32 gMonBackPic_Samurott[] = INCBIN_U32("graphics/pokemon/samurott/back.4bpp.lz"); + const u32 gMonShinyPalette_Samurott[] = INCBIN_U32("graphics/pokemon/samurott/shiny.gbapal.lz"); + const u8 gMonIcon_Samurott[] = INCBIN_U8("graphics/pokemon/samurott/icon.4bpp"); + const u8 gMonFootprint_Samurott[] = INCBIN_U8("graphics/pokemon/samurott/footprint.1bpp"); + +#if P_HISUIAN_FORMS + const u32 gMonFrontPic_SamurottHisuian[] = INCBIN_U32("graphics/pokemon/samurott/hisuian/front.4bpp.lz"); + const u32 gMonPalette_SamurottHisuian[] = INCBIN_U32("graphics/pokemon/samurott/hisuian/normal.gbapal.lz"); + const u32 gMonBackPic_SamurottHisuian[] = INCBIN_U32("graphics/pokemon/samurott/hisuian/back.4bpp.lz"); + const u32 gMonShinyPalette_SamurottHisuian[] = INCBIN_U32("graphics/pokemon/samurott/hisuian/shiny.gbapal.lz"); + const u8 gMonIcon_SamurottHisuian[] = INCBIN_U8("graphics/pokemon/samurott/hisuian/icon.4bpp"); +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_OSHAWOTT + +#if P_FAMILY_PATRAT + const u32 gMonFrontPic_Patrat[] = INCBIN_U32("graphics/pokemon/patrat/anim_front.4bpp.lz"); + const u32 gMonPalette_Patrat[] = INCBIN_U32("graphics/pokemon/patrat/normal.gbapal.lz"); + const u32 gMonBackPic_Patrat[] = INCBIN_U32("graphics/pokemon/patrat/back.4bpp.lz"); + const u32 gMonShinyPalette_Patrat[] = INCBIN_U32("graphics/pokemon/patrat/shiny.gbapal.lz"); + const u8 gMonIcon_Patrat[] = INCBIN_U8("graphics/pokemon/patrat/icon.4bpp"); + const u8 gMonFootprint_Patrat[] = INCBIN_U8("graphics/pokemon/patrat/footprint.1bpp"); + + const u32 gMonFrontPic_Watchog[] = INCBIN_U32("graphics/pokemon/watchog/anim_front.4bpp.lz"); + const u32 gMonPalette_Watchog[] = INCBIN_U32("graphics/pokemon/watchog/normal.gbapal.lz"); + const u32 gMonBackPic_Watchog[] = INCBIN_U32("graphics/pokemon/watchog/back.4bpp.lz"); + const u32 gMonShinyPalette_Watchog[] = INCBIN_U32("graphics/pokemon/watchog/shiny.gbapal.lz"); + const u8 gMonIcon_Watchog[] = INCBIN_U8("graphics/pokemon/watchog/icon.4bpp"); + const u8 gMonFootprint_Watchog[] = INCBIN_U8("graphics/pokemon/watchog/footprint.1bpp"); +#endif //P_FAMILY_PATRAT + +#if P_FAMILY_LILLIPUP + const u32 gMonFrontPic_Lillipup[] = INCBIN_U32("graphics/pokemon/lillipup/anim_front.4bpp.lz"); + const u32 gMonPalette_Lillipup[] = INCBIN_U32("graphics/pokemon/lillipup/normal.gbapal.lz"); + const u32 gMonBackPic_Lillipup[] = INCBIN_U32("graphics/pokemon/lillipup/back.4bpp.lz"); + const u32 gMonShinyPalette_Lillipup[] = INCBIN_U32("graphics/pokemon/lillipup/shiny.gbapal.lz"); + const u8 gMonIcon_Lillipup[] = INCBIN_U8("graphics/pokemon/lillipup/icon.4bpp"); + const u8 gMonFootprint_Lillipup[] = INCBIN_U8("graphics/pokemon/lillipup/footprint.1bpp"); + + const u32 gMonFrontPic_Herdier[] = INCBIN_U32("graphics/pokemon/herdier/anim_front.4bpp.lz"); + const u32 gMonPalette_Herdier[] = INCBIN_U32("graphics/pokemon/herdier/normal.gbapal.lz"); + const u32 gMonBackPic_Herdier[] = INCBIN_U32("graphics/pokemon/herdier/back.4bpp.lz"); + const u32 gMonShinyPalette_Herdier[] = INCBIN_U32("graphics/pokemon/herdier/shiny.gbapal.lz"); + const u8 gMonIcon_Herdier[] = INCBIN_U8("graphics/pokemon/herdier/icon.4bpp"); + const u8 gMonFootprint_Herdier[] = INCBIN_U8("graphics/pokemon/herdier/footprint.1bpp"); + + const u32 gMonFrontPic_Stoutland[] = INCBIN_U32("graphics/pokemon/stoutland/anim_front.4bpp.lz"); + const u32 gMonPalette_Stoutland[] = INCBIN_U32("graphics/pokemon/stoutland/normal.gbapal.lz"); + const u32 gMonBackPic_Stoutland[] = INCBIN_U32("graphics/pokemon/stoutland/back.4bpp.lz"); + const u32 gMonShinyPalette_Stoutland[] = INCBIN_U32("graphics/pokemon/stoutland/shiny.gbapal.lz"); + const u8 gMonIcon_Stoutland[] = INCBIN_U8("graphics/pokemon/stoutland/icon.4bpp"); + const u8 gMonFootprint_Stoutland[] = INCBIN_U8("graphics/pokemon/stoutland/footprint.1bpp"); +#endif //P_FAMILY_LILLIPUP + +#if P_FAMILY_PURRLOIN + const u32 gMonFrontPic_Purrloin[] = INCBIN_U32("graphics/pokemon/purrloin/anim_front.4bpp.lz"); + const u32 gMonPalette_Purrloin[] = INCBIN_U32("graphics/pokemon/purrloin/normal.gbapal.lz"); + const u32 gMonBackPic_Purrloin[] = INCBIN_U32("graphics/pokemon/purrloin/back.4bpp.lz"); + const u32 gMonShinyPalette_Purrloin[] = INCBIN_U32("graphics/pokemon/purrloin/shiny.gbapal.lz"); + const u8 gMonIcon_Purrloin[] = INCBIN_U8("graphics/pokemon/purrloin/icon.4bpp"); + const u8 gMonFootprint_Purrloin[] = INCBIN_U8("graphics/pokemon/purrloin/footprint.1bpp"); + + const u32 gMonFrontPic_Liepard[] = INCBIN_U32("graphics/pokemon/liepard/anim_front.4bpp.lz"); + const u32 gMonPalette_Liepard[] = INCBIN_U32("graphics/pokemon/liepard/normal.gbapal.lz"); + const u32 gMonBackPic_Liepard[] = INCBIN_U32("graphics/pokemon/liepard/back.4bpp.lz"); + const u32 gMonShinyPalette_Liepard[] = INCBIN_U32("graphics/pokemon/liepard/shiny.gbapal.lz"); + const u8 gMonIcon_Liepard[] = INCBIN_U8("graphics/pokemon/liepard/icon.4bpp"); + const u8 gMonFootprint_Liepard[] = INCBIN_U8("graphics/pokemon/liepard/footprint.1bpp"); +#endif //P_FAMILY_PURRLOIN + +#if P_FAMILY_PANSAGE + const u32 gMonFrontPic_Pansage[] = INCBIN_U32("graphics/pokemon/pansage/anim_front.4bpp.lz"); + const u32 gMonPalette_Pansage[] = INCBIN_U32("graphics/pokemon/pansage/normal.gbapal.lz"); + const u32 gMonBackPic_Pansage[] = INCBIN_U32("graphics/pokemon/pansage/back.4bpp.lz"); + const u32 gMonShinyPalette_Pansage[] = INCBIN_U32("graphics/pokemon/pansage/shiny.gbapal.lz"); + const u8 gMonIcon_Pansage[] = INCBIN_U8("graphics/pokemon/pansage/icon.4bpp"); + const u8 gMonFootprint_Pansage[] = INCBIN_U8("graphics/pokemon/pansage/footprint.1bpp"); + + const u32 gMonFrontPic_Simisage[] = INCBIN_U32("graphics/pokemon/simisage/anim_front.4bpp.lz"); + const u32 gMonPalette_Simisage[] = INCBIN_U32("graphics/pokemon/simisage/normal.gbapal.lz"); + const u32 gMonBackPic_Simisage[] = INCBIN_U32("graphics/pokemon/simisage/back.4bpp.lz"); + const u32 gMonShinyPalette_Simisage[] = INCBIN_U32("graphics/pokemon/simisage/shiny.gbapal.lz"); + const u8 gMonIcon_Simisage[] = INCBIN_U8("graphics/pokemon/simisage/icon.4bpp"); + const u8 gMonFootprint_Simisage[] = INCBIN_U8("graphics/pokemon/simisage/footprint.1bpp"); +#endif //P_FAMILY_PANSAGE + +#if P_FAMILY_PANSEAR + const u32 gMonFrontPic_Pansear[] = INCBIN_U32("graphics/pokemon/pansear/anim_front.4bpp.lz"); + const u32 gMonPalette_Pansear[] = INCBIN_U32("graphics/pokemon/pansear/normal.gbapal.lz"); + const u32 gMonBackPic_Pansear[] = INCBIN_U32("graphics/pokemon/pansear/back.4bpp.lz"); + const u32 gMonShinyPalette_Pansear[] = INCBIN_U32("graphics/pokemon/pansear/shiny.gbapal.lz"); + const u8 gMonIcon_Pansear[] = INCBIN_U8("graphics/pokemon/pansear/icon.4bpp"); + const u8 gMonFootprint_Pansear[] = INCBIN_U8("graphics/pokemon/pansear/footprint.1bpp"); + + const u32 gMonFrontPic_Simisear[] = INCBIN_U32("graphics/pokemon/simisear/anim_front.4bpp.lz"); + const u32 gMonPalette_Simisear[] = INCBIN_U32("graphics/pokemon/simisear/normal.gbapal.lz"); + const u32 gMonBackPic_Simisear[] = INCBIN_U32("graphics/pokemon/simisear/back.4bpp.lz"); + const u32 gMonShinyPalette_Simisear[] = INCBIN_U32("graphics/pokemon/simisear/shiny.gbapal.lz"); + const u8 gMonIcon_Simisear[] = INCBIN_U8("graphics/pokemon/simisear/icon.4bpp"); + const u8 gMonFootprint_Simisear[] = INCBIN_U8("graphics/pokemon/simisear/footprint.1bpp"); +#endif //P_FAMILY_PANSEAR + +#if P_FAMILY_PANPOUR + const u32 gMonFrontPic_Panpour[] = INCBIN_U32("graphics/pokemon/panpour/anim_front.4bpp.lz"); + const u32 gMonPalette_Panpour[] = INCBIN_U32("graphics/pokemon/panpour/normal.gbapal.lz"); + const u32 gMonBackPic_Panpour[] = INCBIN_U32("graphics/pokemon/panpour/back.4bpp.lz"); + const u32 gMonShinyPalette_Panpour[] = INCBIN_U32("graphics/pokemon/panpour/shiny.gbapal.lz"); + const u8 gMonIcon_Panpour[] = INCBIN_U8("graphics/pokemon/panpour/icon.4bpp"); + const u8 gMonFootprint_Panpour[] = INCBIN_U8("graphics/pokemon/panpour/footprint.1bpp"); + + const u32 gMonFrontPic_Simipour[] = INCBIN_U32("graphics/pokemon/simipour/anim_front.4bpp.lz"); + const u32 gMonPalette_Simipour[] = INCBIN_U32("graphics/pokemon/simipour/normal.gbapal.lz"); + const u32 gMonBackPic_Simipour[] = INCBIN_U32("graphics/pokemon/simipour/back.4bpp.lz"); + const u32 gMonShinyPalette_Simipour[] = INCBIN_U32("graphics/pokemon/simipour/shiny.gbapal.lz"); + const u8 gMonIcon_Simipour[] = INCBIN_U8("graphics/pokemon/simipour/icon.4bpp"); + const u8 gMonFootprint_Simipour[] = INCBIN_U8("graphics/pokemon/simipour/footprint.1bpp"); +#endif //P_FAMILY_PANPOUR + +#if P_FAMILY_MUNNA + const u32 gMonFrontPic_Munna[] = INCBIN_U32("graphics/pokemon/munna/anim_front.4bpp.lz"); + const u32 gMonPalette_Munna[] = INCBIN_U32("graphics/pokemon/munna/normal.gbapal.lz"); + const u32 gMonBackPic_Munna[] = INCBIN_U32("graphics/pokemon/munna/back.4bpp.lz"); + const u32 gMonShinyPalette_Munna[] = INCBIN_U32("graphics/pokemon/munna/shiny.gbapal.lz"); + const u8 gMonIcon_Munna[] = INCBIN_U8("graphics/pokemon/munna/icon.4bpp"); + const u8 gMonFootprint_Munna[] = INCBIN_U8("graphics/pokemon/munna/footprint.1bpp"); + + const u32 gMonFrontPic_Musharna[] = INCBIN_U32("graphics/pokemon/musharna/anim_front.4bpp.lz"); + const u32 gMonPalette_Musharna[] = INCBIN_U32("graphics/pokemon/musharna/normal.gbapal.lz"); + const u32 gMonBackPic_Musharna[] = INCBIN_U32("graphics/pokemon/musharna/back.4bpp.lz"); + const u32 gMonShinyPalette_Musharna[] = INCBIN_U32("graphics/pokemon/musharna/shiny.gbapal.lz"); + const u8 gMonIcon_Musharna[] = INCBIN_U8("graphics/pokemon/musharna/icon.4bpp"); + const u8 gMonFootprint_Musharna[] = INCBIN_U8("graphics/pokemon/musharna/footprint.1bpp"); +#endif //P_FAMILY_MUNNA + +#if P_FAMILY_PIDOVE + const u32 gMonFrontPic_Pidove[] = INCBIN_U32("graphics/pokemon/pidove/anim_front.4bpp.lz"); + const u32 gMonPalette_Pidove[] = INCBIN_U32("graphics/pokemon/pidove/normal.gbapal.lz"); + const u32 gMonBackPic_Pidove[] = INCBIN_U32("graphics/pokemon/pidove/back.4bpp.lz"); + const u32 gMonShinyPalette_Pidove[] = INCBIN_U32("graphics/pokemon/pidove/shiny.gbapal.lz"); + const u8 gMonIcon_Pidove[] = INCBIN_U8("graphics/pokemon/pidove/icon.4bpp"); + const u8 gMonFootprint_Pidove[] = INCBIN_U8("graphics/pokemon/pidove/footprint.1bpp"); + + const u32 gMonFrontPic_Tranquill[] = INCBIN_U32("graphics/pokemon/tranquill/anim_front.4bpp.lz"); + const u32 gMonPalette_Tranquill[] = INCBIN_U32("graphics/pokemon/tranquill/normal.gbapal.lz"); + const u32 gMonBackPic_Tranquill[] = INCBIN_U32("graphics/pokemon/tranquill/back.4bpp.lz"); + const u32 gMonShinyPalette_Tranquill[] = INCBIN_U32("graphics/pokemon/tranquill/shiny.gbapal.lz"); + const u8 gMonIcon_Tranquill[] = INCBIN_U8("graphics/pokemon/tranquill/icon.4bpp"); + const u8 gMonFootprint_Tranquill[] = INCBIN_U8("graphics/pokemon/tranquill/footprint.1bpp"); + + const u32 gMonFrontPic_Unfezant[] = INCBIN_U32("graphics/pokemon/unfezant/anim_front.4bpp.lz"); + const u32 gMonPalette_Unfezant[] = INCBIN_U32("graphics/pokemon/unfezant/normal.gbapal.lz"); + const u32 gMonBackPic_Unfezant[] = INCBIN_U32("graphics/pokemon/unfezant/back.4bpp.lz"); + const u32 gMonShinyPalette_Unfezant[] = INCBIN_U32("graphics/pokemon/unfezant/shiny.gbapal.lz"); + const u8 gMonIcon_Unfezant[] = INCBIN_U8("graphics/pokemon/unfezant/icon.4bpp"); + const u8 gMonFootprint_Unfezant[] = INCBIN_U8("graphics/pokemon/unfezant/footprint.1bpp"); + + const u32 gMonFrontPic_UnfezantF[] = INCBIN_U32("graphics/pokemon/unfezant/anim_frontf.4bpp.lz"); + const u32 gMonPalette_UnfezantF[] = INCBIN_U32("graphics/pokemon/unfezant/normalf.gbapal.lz"); + const u32 gMonBackPic_UnfezantF[] = INCBIN_U32("graphics/pokemon/unfezant/backf.4bpp.lz"); + const u32 gMonShinyPalette_UnfezantF[] = INCBIN_U32("graphics/pokemon/unfezant/shinyf.gbapal.lz"); + const u8 gMonIcon_UnfezantF[] = INCBIN_U8("graphics/pokemon/unfezant/iconf.4bpp"); +#endif //P_FAMILY_PIDOVE + +#if P_FAMILY_BLITZLE + const u32 gMonFrontPic_Blitzle[] = INCBIN_U32("graphics/pokemon/blitzle/anim_front.4bpp.lz"); + const u32 gMonPalette_Blitzle[] = INCBIN_U32("graphics/pokemon/blitzle/normal.gbapal.lz"); + const u32 gMonBackPic_Blitzle[] = INCBIN_U32("graphics/pokemon/blitzle/back.4bpp.lz"); + const u32 gMonShinyPalette_Blitzle[] = INCBIN_U32("graphics/pokemon/blitzle/shiny.gbapal.lz"); + const u8 gMonIcon_Blitzle[] = INCBIN_U8("graphics/pokemon/blitzle/icon.4bpp"); + const u8 gMonFootprint_Blitzle[] = INCBIN_U8("graphics/pokemon/blitzle/footprint.1bpp"); + + const u32 gMonFrontPic_Zebstrika[] = INCBIN_U32("graphics/pokemon/zebstrika/anim_front.4bpp.lz"); + const u32 gMonPalette_Zebstrika[] = INCBIN_U32("graphics/pokemon/zebstrika/normal.gbapal.lz"); + const u32 gMonBackPic_Zebstrika[] = INCBIN_U32("graphics/pokemon/zebstrika/back.4bpp.lz"); + const u32 gMonShinyPalette_Zebstrika[] = INCBIN_U32("graphics/pokemon/zebstrika/shiny.gbapal.lz"); + const u8 gMonIcon_Zebstrika[] = INCBIN_U8("graphics/pokemon/zebstrika/icon.4bpp"); + const u8 gMonFootprint_Zebstrika[] = INCBIN_U8("graphics/pokemon/zebstrika/footprint.1bpp"); +#endif //P_FAMILY_BLITZLE + +#if P_FAMILY_ROGGENROLA + const u32 gMonFrontPic_Roggenrola[] = INCBIN_U32("graphics/pokemon/roggenrola/anim_front.4bpp.lz"); + const u32 gMonPalette_Roggenrola[] = INCBIN_U32("graphics/pokemon/roggenrola/normal.gbapal.lz"); + const u32 gMonBackPic_Roggenrola[] = INCBIN_U32("graphics/pokemon/roggenrola/back.4bpp.lz"); + const u32 gMonShinyPalette_Roggenrola[] = INCBIN_U32("graphics/pokemon/roggenrola/shiny.gbapal.lz"); + const u8 gMonIcon_Roggenrola[] = INCBIN_U8("graphics/pokemon/roggenrola/icon.4bpp"); + const u8 gMonFootprint_Roggenrola[] = INCBIN_U8("graphics/pokemon/roggenrola/footprint.1bpp"); + + const u32 gMonFrontPic_Boldore[] = INCBIN_U32("graphics/pokemon/boldore/anim_front.4bpp.lz"); + const u32 gMonPalette_Boldore[] = INCBIN_U32("graphics/pokemon/boldore/normal.gbapal.lz"); + const u32 gMonBackPic_Boldore[] = INCBIN_U32("graphics/pokemon/boldore/back.4bpp.lz"); + const u32 gMonShinyPalette_Boldore[] = INCBIN_U32("graphics/pokemon/boldore/shiny.gbapal.lz"); + const u8 gMonIcon_Boldore[] = INCBIN_U8("graphics/pokemon/boldore/icon.4bpp"); + const u8 gMonFootprint_Boldore[] = INCBIN_U8("graphics/pokemon/boldore/footprint.1bpp"); + + const u32 gMonFrontPic_Gigalith[] = INCBIN_U32("graphics/pokemon/gigalith/anim_front.4bpp.lz"); + const u32 gMonPalette_Gigalith[] = INCBIN_U32("graphics/pokemon/gigalith/normal.gbapal.lz"); + const u32 gMonBackPic_Gigalith[] = INCBIN_U32("graphics/pokemon/gigalith/back.4bpp.lz"); + const u32 gMonShinyPalette_Gigalith[] = INCBIN_U32("graphics/pokemon/gigalith/shiny.gbapal.lz"); + const u8 gMonIcon_Gigalith[] = INCBIN_U8("graphics/pokemon/gigalith/icon.4bpp"); + const u8 gMonFootprint_Gigalith[] = INCBIN_U8("graphics/pokemon/gigalith/footprint.1bpp"); +#endif //P_FAMILY_ROGGENROLA + +#if P_FAMILY_WOOBAT + const u32 gMonFrontPic_Woobat[] = INCBIN_U32("graphics/pokemon/woobat/anim_front.4bpp.lz"); + const u32 gMonPalette_Woobat[] = INCBIN_U32("graphics/pokemon/woobat/normal.gbapal.lz"); + const u32 gMonBackPic_Woobat[] = INCBIN_U32("graphics/pokemon/woobat/back.4bpp.lz"); + const u32 gMonShinyPalette_Woobat[] = INCBIN_U32("graphics/pokemon/woobat/shiny.gbapal.lz"); + const u8 gMonIcon_Woobat[] = INCBIN_U8("graphics/pokemon/woobat/icon.4bpp"); + const u8 gMonFootprint_Woobat[] = INCBIN_U8("graphics/pokemon/woobat/footprint.1bpp"); + + const u32 gMonFrontPic_Swoobat[] = INCBIN_U32("graphics/pokemon/swoobat/anim_front.4bpp.lz"); + const u32 gMonPalette_Swoobat[] = INCBIN_U32("graphics/pokemon/swoobat/normal.gbapal.lz"); + const u32 gMonBackPic_Swoobat[] = INCBIN_U32("graphics/pokemon/swoobat/back.4bpp.lz"); + const u32 gMonShinyPalette_Swoobat[] = INCBIN_U32("graphics/pokemon/swoobat/shiny.gbapal.lz"); + const u8 gMonIcon_Swoobat[] = INCBIN_U8("graphics/pokemon/swoobat/icon.4bpp"); + const u8 gMonFootprint_Swoobat[] = INCBIN_U8("graphics/pokemon/swoobat/footprint.1bpp"); +#endif //P_FAMILY_WOOBAT + +#if P_FAMILY_DRILBUR + const u32 gMonFrontPic_Drilbur[] = INCBIN_U32("graphics/pokemon/drilbur/anim_front.4bpp.lz"); + const u32 gMonPalette_Drilbur[] = INCBIN_U32("graphics/pokemon/drilbur/normal.gbapal.lz"); + const u32 gMonBackPic_Drilbur[] = INCBIN_U32("graphics/pokemon/drilbur/back.4bpp.lz"); + const u32 gMonShinyPalette_Drilbur[] = INCBIN_U32("graphics/pokemon/drilbur/shiny.gbapal.lz"); + const u8 gMonIcon_Drilbur[] = INCBIN_U8("graphics/pokemon/drilbur/icon.4bpp"); + const u8 gMonFootprint_Drilbur[] = INCBIN_U8("graphics/pokemon/drilbur/footprint.1bpp"); + + const u32 gMonFrontPic_Excadrill[] = INCBIN_U32("graphics/pokemon/excadrill/anim_front.4bpp.lz"); + const u32 gMonPalette_Excadrill[] = INCBIN_U32("graphics/pokemon/excadrill/normal.gbapal.lz"); + const u32 gMonBackPic_Excadrill[] = INCBIN_U32("graphics/pokemon/excadrill/back.4bpp.lz"); + const u32 gMonShinyPalette_Excadrill[] = INCBIN_U32("graphics/pokemon/excadrill/shiny.gbapal.lz"); + const u8 gMonIcon_Excadrill[] = INCBIN_U8("graphics/pokemon/excadrill/icon.4bpp"); + const u8 gMonFootprint_Excadrill[] = INCBIN_U8("graphics/pokemon/excadrill/footprint.1bpp"); +#endif //P_FAMILY_DRILBUR + +#if P_FAMILY_AUDINO + const u32 gMonFrontPic_Audino[] = INCBIN_U32("graphics/pokemon/audino/anim_front.4bpp.lz"); + const u32 gMonPalette_Audino[] = INCBIN_U32("graphics/pokemon/audino/normal.gbapal.lz"); + const u32 gMonBackPic_Audino[] = INCBIN_U32("graphics/pokemon/audino/back.4bpp.lz"); + const u32 gMonShinyPalette_Audino[] = INCBIN_U32("graphics/pokemon/audino/shiny.gbapal.lz"); + const u8 gMonIcon_Audino[] = INCBIN_U8("graphics/pokemon/audino/icon.4bpp"); + const u8 gMonFootprint_Audino[] = INCBIN_U8("graphics/pokemon/audino/footprint.1bpp"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_AudinoMega[] = INCBIN_U32("graphics/pokemon/audino/mega/front.4bpp.lz"); + const u32 gMonPalette_AudinoMega[] = INCBIN_U32("graphics/pokemon/audino/mega/normal.gbapal.lz"); + const u32 gMonBackPic_AudinoMega[] = INCBIN_U32("graphics/pokemon/audino/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_AudinoMega[] = INCBIN_U32("graphics/pokemon/audino/mega/shiny.gbapal.lz"); + const u8 gMonIcon_AudinoMega[] = INCBIN_U8("graphics/pokemon/audino/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_AUDINO + +#if P_FAMILY_TIMBURR + const u32 gMonFrontPic_Timburr[] = INCBIN_U32("graphics/pokemon/timburr/anim_front.4bpp.lz"); + const u32 gMonPalette_Timburr[] = INCBIN_U32("graphics/pokemon/timburr/normal.gbapal.lz"); + const u32 gMonBackPic_Timburr[] = INCBIN_U32("graphics/pokemon/timburr/back.4bpp.lz"); + const u32 gMonShinyPalette_Timburr[] = INCBIN_U32("graphics/pokemon/timburr/shiny.gbapal.lz"); + const u8 gMonIcon_Timburr[] = INCBIN_U8("graphics/pokemon/timburr/icon.4bpp"); + const u8 gMonFootprint_Timburr[] = INCBIN_U8("graphics/pokemon/timburr/footprint.1bpp"); + + const u32 gMonFrontPic_Gurdurr[] = INCBIN_U32("graphics/pokemon/gurdurr/anim_front.4bpp.lz"); + const u32 gMonPalette_Gurdurr[] = INCBIN_U32("graphics/pokemon/gurdurr/normal.gbapal.lz"); + const u32 gMonBackPic_Gurdurr[] = INCBIN_U32("graphics/pokemon/gurdurr/back.4bpp.lz"); + const u32 gMonShinyPalette_Gurdurr[] = INCBIN_U32("graphics/pokemon/gurdurr/shiny.gbapal.lz"); + const u8 gMonIcon_Gurdurr[] = INCBIN_U8("graphics/pokemon/gurdurr/icon.4bpp"); + const u8 gMonFootprint_Gurdurr[] = INCBIN_U8("graphics/pokemon/gurdurr/footprint.1bpp"); + + const u32 gMonFrontPic_Conkeldurr[] = INCBIN_U32("graphics/pokemon/conkeldurr/anim_front.4bpp.lz"); + const u32 gMonPalette_Conkeldurr[] = INCBIN_U32("graphics/pokemon/conkeldurr/normal.gbapal.lz"); + const u32 gMonBackPic_Conkeldurr[] = INCBIN_U32("graphics/pokemon/conkeldurr/back.4bpp.lz"); + const u32 gMonShinyPalette_Conkeldurr[] = INCBIN_U32("graphics/pokemon/conkeldurr/shiny.gbapal.lz"); + const u8 gMonIcon_Conkeldurr[] = INCBIN_U8("graphics/pokemon/conkeldurr/icon.4bpp"); + const u8 gMonFootprint_Conkeldurr[] = INCBIN_U8("graphics/pokemon/conkeldurr/footprint.1bpp"); +#endif //P_FAMILY_TIMBURR + +#if P_FAMILY_TYMPOLE + const u32 gMonFrontPic_Tympole[] = INCBIN_U32("graphics/pokemon/tympole/anim_front.4bpp.lz"); + const u32 gMonPalette_Tympole[] = INCBIN_U32("graphics/pokemon/tympole/normal.gbapal.lz"); + const u32 gMonBackPic_Tympole[] = INCBIN_U32("graphics/pokemon/tympole/back.4bpp.lz"); + const u32 gMonShinyPalette_Tympole[] = INCBIN_U32("graphics/pokemon/tympole/shiny.gbapal.lz"); + const u8 gMonIcon_Tympole[] = INCBIN_U8("graphics/pokemon/tympole/icon.4bpp"); + const u8 gMonFootprint_Tympole[] = INCBIN_U8("graphics/pokemon/tympole/footprint.1bpp"); + + const u32 gMonFrontPic_Palpitoad[] = INCBIN_U32("graphics/pokemon/palpitoad/anim_front.4bpp.lz"); + const u32 gMonPalette_Palpitoad[] = INCBIN_U32("graphics/pokemon/palpitoad/normal.gbapal.lz"); + const u32 gMonBackPic_Palpitoad[] = INCBIN_U32("graphics/pokemon/palpitoad/back.4bpp.lz"); + const u32 gMonShinyPalette_Palpitoad[] = INCBIN_U32("graphics/pokemon/palpitoad/shiny.gbapal.lz"); + const u8 gMonIcon_Palpitoad[] = INCBIN_U8("graphics/pokemon/palpitoad/icon.4bpp"); + const u8 gMonFootprint_Palpitoad[] = INCBIN_U8("graphics/pokemon/palpitoad/footprint.1bpp"); + + const u32 gMonFrontPic_Seismitoad[] = INCBIN_U32("graphics/pokemon/seismitoad/anim_front.4bpp.lz"); + const u32 gMonPalette_Seismitoad[] = INCBIN_U32("graphics/pokemon/seismitoad/normal.gbapal.lz"); + const u32 gMonBackPic_Seismitoad[] = INCBIN_U32("graphics/pokemon/seismitoad/back.4bpp.lz"); + const u32 gMonShinyPalette_Seismitoad[] = INCBIN_U32("graphics/pokemon/seismitoad/shiny.gbapal.lz"); + const u8 gMonIcon_Seismitoad[] = INCBIN_U8("graphics/pokemon/seismitoad/icon.4bpp"); + const u8 gMonFootprint_Seismitoad[] = INCBIN_U8("graphics/pokemon/seismitoad/footprint.1bpp"); +#endif //P_FAMILY_TYMPOLE + +#if P_FAMILY_THROH + const u32 gMonFrontPic_Throh[] = INCBIN_U32("graphics/pokemon/throh/anim_front.4bpp.lz"); + const u32 gMonPalette_Throh[] = INCBIN_U32("graphics/pokemon/throh/normal.gbapal.lz"); + const u32 gMonBackPic_Throh[] = INCBIN_U32("graphics/pokemon/throh/back.4bpp.lz"); + const u32 gMonShinyPalette_Throh[] = INCBIN_U32("graphics/pokemon/throh/shiny.gbapal.lz"); + const u8 gMonIcon_Throh[] = INCBIN_U8("graphics/pokemon/throh/icon.4bpp"); + const u8 gMonFootprint_Throh[] = INCBIN_U8("graphics/pokemon/throh/footprint.1bpp"); +#endif //P_FAMILY_THROH + +#if P_FAMILY_SAWK + const u32 gMonFrontPic_Sawk[] = INCBIN_U32("graphics/pokemon/sawk/anim_front.4bpp.lz"); + const u32 gMonPalette_Sawk[] = INCBIN_U32("graphics/pokemon/sawk/normal.gbapal.lz"); + const u32 gMonBackPic_Sawk[] = INCBIN_U32("graphics/pokemon/sawk/back.4bpp.lz"); + const u32 gMonShinyPalette_Sawk[] = INCBIN_U32("graphics/pokemon/sawk/shiny.gbapal.lz"); + const u8 gMonIcon_Sawk[] = INCBIN_U8("graphics/pokemon/sawk/icon.4bpp"); + const u8 gMonFootprint_Sawk[] = INCBIN_U8("graphics/pokemon/sawk/footprint.1bpp"); +#endif //P_FAMILY_SAWK + +#if P_FAMILY_SEWADDLE + const u32 gMonFrontPic_Sewaddle[] = INCBIN_U32("graphics/pokemon/sewaddle/anim_front.4bpp.lz"); + const u32 gMonPalette_Sewaddle[] = INCBIN_U32("graphics/pokemon/sewaddle/normal.gbapal.lz"); + const u32 gMonBackPic_Sewaddle[] = INCBIN_U32("graphics/pokemon/sewaddle/back.4bpp.lz"); + const u32 gMonShinyPalette_Sewaddle[] = INCBIN_U32("graphics/pokemon/sewaddle/shiny.gbapal.lz"); + const u8 gMonIcon_Sewaddle[] = INCBIN_U8("graphics/pokemon/sewaddle/icon.4bpp"); + const u8 gMonFootprint_Sewaddle[] = INCBIN_U8("graphics/pokemon/sewaddle/footprint.1bpp"); + + const u32 gMonFrontPic_Swadloon[] = INCBIN_U32("graphics/pokemon/swadloon/anim_front.4bpp.lz"); + const u32 gMonPalette_Swadloon[] = INCBIN_U32("graphics/pokemon/swadloon/normal.gbapal.lz"); + const u32 gMonBackPic_Swadloon[] = INCBIN_U32("graphics/pokemon/swadloon/back.4bpp.lz"); + const u32 gMonShinyPalette_Swadloon[] = INCBIN_U32("graphics/pokemon/swadloon/shiny.gbapal.lz"); + const u8 gMonIcon_Swadloon[] = INCBIN_U8("graphics/pokemon/swadloon/icon.4bpp"); + const u8 gMonFootprint_Swadloon[] = INCBIN_U8("graphics/pokemon/swadloon/footprint.1bpp"); + + const u32 gMonFrontPic_Leavanny[] = INCBIN_U32("graphics/pokemon/leavanny/anim_front.4bpp.lz"); + const u32 gMonPalette_Leavanny[] = INCBIN_U32("graphics/pokemon/leavanny/normal.gbapal.lz"); + const u32 gMonBackPic_Leavanny[] = INCBIN_U32("graphics/pokemon/leavanny/back.4bpp.lz"); + const u32 gMonShinyPalette_Leavanny[] = INCBIN_U32("graphics/pokemon/leavanny/shiny.gbapal.lz"); + const u8 gMonIcon_Leavanny[] = INCBIN_U8("graphics/pokemon/leavanny/icon.4bpp"); + const u8 gMonFootprint_Leavanny[] = INCBIN_U8("graphics/pokemon/leavanny/footprint.1bpp"); +#endif //P_FAMILY_SEWADDLE + +#if P_FAMILY_VENIPEDE + const u32 gMonFrontPic_Venipede[] = INCBIN_U32("graphics/pokemon/venipede/anim_front.4bpp.lz"); + const u32 gMonPalette_Venipede[] = INCBIN_U32("graphics/pokemon/venipede/normal.gbapal.lz"); + const u32 gMonBackPic_Venipede[] = INCBIN_U32("graphics/pokemon/venipede/back.4bpp.lz"); + const u32 gMonShinyPalette_Venipede[] = INCBIN_U32("graphics/pokemon/venipede/shiny.gbapal.lz"); + const u8 gMonIcon_Venipede[] = INCBIN_U8("graphics/pokemon/venipede/icon.4bpp"); + const u8 gMonFootprint_Venipede[] = INCBIN_U8("graphics/pokemon/venipede/footprint.1bpp"); + + const u32 gMonFrontPic_Whirlipede[] = INCBIN_U32("graphics/pokemon/whirlipede/anim_front.4bpp.lz"); + const u32 gMonPalette_Whirlipede[] = INCBIN_U32("graphics/pokemon/whirlipede/normal.gbapal.lz"); + const u32 gMonBackPic_Whirlipede[] = INCBIN_U32("graphics/pokemon/whirlipede/back.4bpp.lz"); + const u32 gMonShinyPalette_Whirlipede[] = INCBIN_U32("graphics/pokemon/whirlipede/shiny.gbapal.lz"); + const u8 gMonIcon_Whirlipede[] = INCBIN_U8("graphics/pokemon/whirlipede/icon.4bpp"); + const u8 gMonFootprint_Whirlipede[] = INCBIN_U8("graphics/pokemon/whirlipede/footprint.1bpp"); + + const u32 gMonFrontPic_Scolipede[] = INCBIN_U32("graphics/pokemon/scolipede/anim_front.4bpp.lz"); + const u32 gMonPalette_Scolipede[] = INCBIN_U32("graphics/pokemon/scolipede/normal.gbapal.lz"); + const u32 gMonBackPic_Scolipede[] = INCBIN_U32("graphics/pokemon/scolipede/back.4bpp.lz"); + const u32 gMonShinyPalette_Scolipede[] = INCBIN_U32("graphics/pokemon/scolipede/shiny.gbapal.lz"); + const u8 gMonIcon_Scolipede[] = INCBIN_U8("graphics/pokemon/scolipede/icon.4bpp"); + const u8 gMonFootprint_Scolipede[] = INCBIN_U8("graphics/pokemon/scolipede/footprint.1bpp"); +#endif //P_FAMILY_VENIPEDE + +#if P_FAMILY_COTTONEE + const u32 gMonFrontPic_Cottonee[] = INCBIN_U32("graphics/pokemon/cottonee/anim_front.4bpp.lz"); + const u32 gMonPalette_Cottonee[] = INCBIN_U32("graphics/pokemon/cottonee/normal.gbapal.lz"); + const u32 gMonBackPic_Cottonee[] = INCBIN_U32("graphics/pokemon/cottonee/back.4bpp.lz"); + const u32 gMonShinyPalette_Cottonee[] = INCBIN_U32("graphics/pokemon/cottonee/shiny.gbapal.lz"); + const u8 gMonIcon_Cottonee[] = INCBIN_U8("graphics/pokemon/cottonee/icon.4bpp"); + const u8 gMonFootprint_Cottonee[] = INCBIN_U8("graphics/pokemon/cottonee/footprint.1bpp"); + + const u32 gMonFrontPic_Whimsicott[] = INCBIN_U32("graphics/pokemon/whimsicott/anim_front.4bpp.lz"); + const u32 gMonPalette_Whimsicott[] = INCBIN_U32("graphics/pokemon/whimsicott/normal.gbapal.lz"); + const u32 gMonBackPic_Whimsicott[] = INCBIN_U32("graphics/pokemon/whimsicott/back.4bpp.lz"); + const u32 gMonShinyPalette_Whimsicott[] = INCBIN_U32("graphics/pokemon/whimsicott/shiny.gbapal.lz"); + const u8 gMonIcon_Whimsicott[] = INCBIN_U8("graphics/pokemon/whimsicott/icon.4bpp"); + const u8 gMonFootprint_Whimsicott[] = INCBIN_U8("graphics/pokemon/whimsicott/footprint.1bpp"); +#endif //P_FAMILY_COTTONEE + +#if P_FAMILY_PETILIL + const u32 gMonFrontPic_Petilil[] = INCBIN_U32("graphics/pokemon/petilil/anim_front.4bpp.lz"); + const u32 gMonPalette_Petilil[] = INCBIN_U32("graphics/pokemon/petilil/normal.gbapal.lz"); + const u32 gMonBackPic_Petilil[] = INCBIN_U32("graphics/pokemon/petilil/back.4bpp.lz"); + const u32 gMonShinyPalette_Petilil[] = INCBIN_U32("graphics/pokemon/petilil/shiny.gbapal.lz"); + const u8 gMonIcon_Petilil[] = INCBIN_U8("graphics/pokemon/petilil/icon.4bpp"); + const u8 gMonFootprint_Petilil[] = INCBIN_U8("graphics/pokemon/petilil/footprint.1bpp"); + + const u32 gMonFrontPic_Lilligant[] = INCBIN_U32("graphics/pokemon/lilligant/anim_front.4bpp.lz"); + const u32 gMonPalette_Lilligant[] = INCBIN_U32("graphics/pokemon/lilligant/normal.gbapal.lz"); + const u32 gMonBackPic_Lilligant[] = INCBIN_U32("graphics/pokemon/lilligant/back.4bpp.lz"); + const u32 gMonShinyPalette_Lilligant[] = INCBIN_U32("graphics/pokemon/lilligant/shiny.gbapal.lz"); + const u8 gMonIcon_Lilligant[] = INCBIN_U8("graphics/pokemon/lilligant/icon.4bpp"); + const u8 gMonFootprint_Lilligant[] = INCBIN_U8("graphics/pokemon/lilligant/footprint.1bpp"); + +#if P_HISUIAN_FORMS + const u32 gMonFrontPic_LilligantHisuian[] = INCBIN_U32("graphics/pokemon/lilligant/hisuian/front.4bpp.lz"); + const u32 gMonPalette_LilligantHisuian[] = INCBIN_U32("graphics/pokemon/lilligant/hisuian/normal.gbapal.lz"); + const u32 gMonBackPic_LilligantHisuian[] = INCBIN_U32("graphics/pokemon/lilligant/hisuian/back.4bpp.lz"); + const u32 gMonShinyPalette_LilligantHisuian[] = INCBIN_U32("graphics/pokemon/lilligant/hisuian/shiny.gbapal.lz"); + const u8 gMonIcon_LilligantHisuian[] = INCBIN_U8("graphics/pokemon/lilligant/hisuian/icon.4bpp"); +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_PETILIL + +#if P_FAMILY_BASCULIN + const u32 gMonFrontPic_BasculinRedStriped[] = INCBIN_U32("graphics/pokemon/basculin/anim_front.4bpp.lz"); + const u32 gMonPalette_BasculinRedStriped[] = INCBIN_U32("graphics/pokemon/basculin/normal.gbapal.lz"); + const u32 gMonBackPic_BasculinRedStriped[] = INCBIN_U32("graphics/pokemon/basculin/back.4bpp.lz"); + const u32 gMonShinyPalette_BasculinRedStriped[] = INCBIN_U32("graphics/pokemon/basculin/shiny.gbapal.lz"); + const u8 gMonIcon_BasculinRedStriped[] = INCBIN_U8("graphics/pokemon/basculin/icon.4bpp"); + const u8 gMonFootprint_Basculin[] = INCBIN_U8("graphics/pokemon/basculin/footprint.1bpp"); + + const u32 gMonFrontPic_BasculinBlueStriped[] = INCBIN_U32("graphics/pokemon/basculin/blue_striped/front.4bpp.lz"); + const u32 gMonPalette_BasculinBlueStriped[] = INCBIN_U32("graphics/pokemon/basculin/blue_striped/normal.gbapal.lz"); + const u32 gMonBackPic_BasculinBlueStriped[] = INCBIN_U32("graphics/pokemon/basculin/blue_striped/back.4bpp.lz"); + const u32 gMonShinyPalette_BasculinBlueStriped[] = INCBIN_U32("graphics/pokemon/basculin/blue_striped/shiny.gbapal.lz"); + const u8 gMonIcon_BasculinBlueStriped[] = INCBIN_U8("graphics/pokemon/basculin/blue_striped/icon.4bpp"); + +#if P_HISUIAN_FORMS + const u32 gMonFrontPic_BasculinWhiteStriped[] = INCBIN_U32("graphics/pokemon/basculin/white_striped/front.4bpp.lz"); + const u32 gMonPalette_BasculinWhiteStriped[] = INCBIN_U32("graphics/pokemon/basculin/white_striped/normal.gbapal.lz"); + const u32 gMonBackPic_BasculinWhiteStriped[] = INCBIN_U32("graphics/pokemon/basculin/white_striped/back.4bpp.lz"); + const u32 gMonShinyPalette_BasculinWhiteStriped[] = INCBIN_U32("graphics/pokemon/basculin/white_striped/shiny.gbapal.lz"); + const u8 gMonIcon_BasculinWhiteStriped[] = INCBIN_U8("graphics/pokemon/basculin/white_striped/icon.4bpp"); + + const u32 gMonFrontPic_BasculegionMale[] = INCBIN_U32("graphics/pokemon/basculegion/front.4bpp.lz"); + const u32 gMonPalette_BasculegionMale[] = INCBIN_U32("graphics/pokemon/basculegion/normal.gbapal.lz"); + const u32 gMonBackPic_BasculegionMale[] = INCBIN_U32("graphics/pokemon/basculegion/back.4bpp.lz"); + const u32 gMonShinyPalette_BasculegionMale[] = INCBIN_U32("graphics/pokemon/basculegion/shiny.gbapal.lz"); + const u8 gMonIcon_BasculegionMale[] = INCBIN_U8("graphics/pokemon/basculegion/icon.4bpp"); + //const u8 gMonFootprint_Basculegion[] = INCBIN_U8("graphics/pokemon/basculegion/footprint.1bpp"); + + const u32 gMonFrontPic_BasculegionFemale[] = INCBIN_U32("graphics/pokemon/basculegion/female/front.4bpp.lz"); + const u32 gMonPalette_BasculegionFemale[] = INCBIN_U32("graphics/pokemon/basculegion/female/normal.gbapal.lz"); + const u32 gMonBackPic_BasculegionFemale[] = INCBIN_U32("graphics/pokemon/basculegion/female/back.4bpp.lz"); + const u32 gMonShinyPalette_BasculegionFemale[] = INCBIN_U32("graphics/pokemon/basculegion/female/shiny.gbapal.lz"); + const u8 gMonIcon_BasculegionFemale[] = INCBIN_U8("graphics/pokemon/basculegion/female/icon.4bpp"); +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_BASCULIN + +#if P_FAMILY_SANDILE + const u32 gMonFrontPic_Sandile[] = INCBIN_U32("graphics/pokemon/sandile/anim_front.4bpp.lz"); + const u32 gMonPalette_Sandile[] = INCBIN_U32("graphics/pokemon/sandile/normal.gbapal.lz"); + const u32 gMonBackPic_Sandile[] = INCBIN_U32("graphics/pokemon/sandile/back.4bpp.lz"); + const u32 gMonShinyPalette_Sandile[] = INCBIN_U32("graphics/pokemon/sandile/shiny.gbapal.lz"); + const u8 gMonIcon_Sandile[] = INCBIN_U8("graphics/pokemon/sandile/icon.4bpp"); + const u8 gMonFootprint_Sandile[] = INCBIN_U8("graphics/pokemon/sandile/footprint.1bpp"); + + const u32 gMonFrontPic_Krokorok[] = INCBIN_U32("graphics/pokemon/krokorok/anim_front.4bpp.lz"); + const u32 gMonPalette_Krokorok[] = INCBIN_U32("graphics/pokemon/krokorok/normal.gbapal.lz"); + const u32 gMonBackPic_Krokorok[] = INCBIN_U32("graphics/pokemon/krokorok/back.4bpp.lz"); + const u32 gMonShinyPalette_Krokorok[] = INCBIN_U32("graphics/pokemon/krokorok/shiny.gbapal.lz"); + const u8 gMonIcon_Krokorok[] = INCBIN_U8("graphics/pokemon/krokorok/icon.4bpp"); + const u8 gMonFootprint_Krokorok[] = INCBIN_U8("graphics/pokemon/krokorok/footprint.1bpp"); + + const u32 gMonFrontPic_Krookodile[] = INCBIN_U32("graphics/pokemon/krookodile/anim_front.4bpp.lz"); + const u32 gMonPalette_Krookodile[] = INCBIN_U32("graphics/pokemon/krookodile/normal.gbapal.lz"); + const u32 gMonBackPic_Krookodile[] = INCBIN_U32("graphics/pokemon/krookodile/back.4bpp.lz"); + const u32 gMonShinyPalette_Krookodile[] = INCBIN_U32("graphics/pokemon/krookodile/shiny.gbapal.lz"); + const u8 gMonIcon_Krookodile[] = INCBIN_U8("graphics/pokemon/krookodile/icon.4bpp"); + const u8 gMonFootprint_Krookodile[] = INCBIN_U8("graphics/pokemon/krookodile/footprint.1bpp"); +#endif //P_FAMILY_SANDILE + +#if P_FAMILY_DARUMAKA + const u32 gMonFrontPic_Darumaka[] = INCBIN_U32("graphics/pokemon/darumaka/anim_front.4bpp.lz"); + const u32 gMonPalette_Darumaka[] = INCBIN_U32("graphics/pokemon/darumaka/normal.gbapal.lz"); + const u32 gMonBackPic_Darumaka[] = INCBIN_U32("graphics/pokemon/darumaka/back.4bpp.lz"); + const u32 gMonShinyPalette_Darumaka[] = INCBIN_U32("graphics/pokemon/darumaka/shiny.gbapal.lz"); + const u8 gMonIcon_Darumaka[] = INCBIN_U8("graphics/pokemon/darumaka/icon.4bpp"); + const u8 gMonFootprint_Darumaka[] = INCBIN_U8("graphics/pokemon/darumaka/footprint.1bpp"); + + const u32 gMonFrontPic_DarmanitanStandardMode[] = INCBIN_U32("graphics/pokemon/darmanitan/anim_front.4bpp.lz"); + const u32 gMonPalette_DarmanitanStandardMode[] = INCBIN_U32("graphics/pokemon/darmanitan/normal.gbapal.lz"); + const u32 gMonBackPic_DarmanitanStandardMode[] = INCBIN_U32("graphics/pokemon/darmanitan/back.4bpp.lz"); + const u32 gMonShinyPalette_DarmanitanStandardMode[] = INCBIN_U32("graphics/pokemon/darmanitan/shiny.gbapal.lz"); + const u8 gMonIcon_DarmanitanStandardMode[] = INCBIN_U8("graphics/pokemon/darmanitan/icon.4bpp"); + const u8 gMonFootprint_Darmanitan[] = INCBIN_U8("graphics/pokemon/darmanitan/footprint.1bpp"); + + const u32 gMonFrontPic_DarmanitanZenMode[] = INCBIN_U32("graphics/pokemon/darmanitan/zen_mode/anim_front.4bpp.lz"); + const u32 gMonPalette_DarmanitanZenMode[] = INCBIN_U32("graphics/pokemon/darmanitan/zen_mode/normal.gbapal.lz"); + const u32 gMonBackPic_DarmanitanZenMode[] = INCBIN_U32("graphics/pokemon/darmanitan/zen_mode/back.4bpp.lz"); + const u32 gMonShinyPalette_DarmanitanZenMode[] = INCBIN_U32("graphics/pokemon/darmanitan/zen_mode/shiny.gbapal.lz"); + const u8 gMonIcon_DarmanitanZenMode[] = INCBIN_U8("graphics/pokemon/darmanitan/zen_mode/icon.4bpp"); + +#if P_GALARIAN_FORMS + const u32 gMonFrontPic_DarumakaGalarian[] = INCBIN_U32("graphics/pokemon/darumaka/galarian/front.4bpp.lz"); + const u32 gMonPalette_DarumakaGalarian[] = INCBIN_U32("graphics/pokemon/darumaka/galarian/normal.gbapal.lz"); + const u32 gMonBackPic_DarumakaGalarian[] = INCBIN_U32("graphics/pokemon/darumaka/galarian/back.4bpp.lz"); + const u32 gMonShinyPalette_DarumakaGalarian[] = INCBIN_U32("graphics/pokemon/darumaka/galarian/shiny.gbapal.lz"); + const u8 gMonIcon_DarumakaGalarian[] = INCBIN_U8("graphics/pokemon/darumaka/galarian/icon.4bpp"); + + const u32 gMonFrontPic_DarmanitanGalarianStandardMode[] = INCBIN_U32("graphics/pokemon/darmanitan/galarian/front.4bpp.lz"); + const u32 gMonPalette_DarmanitanGalarianStandardMode[] = INCBIN_U32("graphics/pokemon/darmanitan/galarian/normal.gbapal.lz"); + const u32 gMonBackPic_DarmanitanGalarianStandardMode[] = INCBIN_U32("graphics/pokemon/darmanitan/galarian/back.4bpp.lz"); + const u32 gMonShinyPalette_DarmanitanGalarianStandardMode[] = INCBIN_U32("graphics/pokemon/darmanitan/galarian/shiny.gbapal.lz"); + const u8 gMonIcon_DarmanitanGalarianStandardMode[] = INCBIN_U8("graphics/pokemon/darmanitan/galarian/icon.4bpp"); + + const u32 gMonFrontPic_DarmanitanGalarianZenMode[] = INCBIN_U32("graphics/pokemon/darmanitan/zen_mode/galarian/front.4bpp.lz"); + const u32 gMonPalette_DarmanitanGalarianZenMode[] = INCBIN_U32("graphics/pokemon/darmanitan/zen_mode/galarian/normal.gbapal.lz"); + const u32 gMonBackPic_DarmanitanGalarianZenMode[] = INCBIN_U32("graphics/pokemon/darmanitan/zen_mode/galarian/back.4bpp.lz"); + const u32 gMonShinyPalette_DarmanitanGalarianZenMode[] = INCBIN_U32("graphics/pokemon/darmanitan/zen_mode/galarian/shiny.gbapal.lz"); + const u8 gMonIcon_DarmanitanGalarianZenMode[] = INCBIN_U8("graphics/pokemon/darmanitan/zen_mode/galarian/icon.4bpp"); +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_DARUMAKA + +#if P_FAMILY_MARACTUS + const u32 gMonFrontPic_Maractus[] = INCBIN_U32("graphics/pokemon/maractus/anim_front.4bpp.lz"); + const u32 gMonPalette_Maractus[] = INCBIN_U32("graphics/pokemon/maractus/normal.gbapal.lz"); + const u32 gMonBackPic_Maractus[] = INCBIN_U32("graphics/pokemon/maractus/back.4bpp.lz"); + const u32 gMonShinyPalette_Maractus[] = INCBIN_U32("graphics/pokemon/maractus/shiny.gbapal.lz"); + const u8 gMonIcon_Maractus[] = INCBIN_U8("graphics/pokemon/maractus/icon.4bpp"); + const u8 gMonFootprint_Maractus[] = INCBIN_U8("graphics/pokemon/maractus/footprint.1bpp"); +#endif //P_FAMILY_MARACTUS + +#if P_FAMILY_DWEBBLE + const u32 gMonFrontPic_Dwebble[] = INCBIN_U32("graphics/pokemon/dwebble/anim_front.4bpp.lz"); + const u32 gMonPalette_Dwebble[] = INCBIN_U32("graphics/pokemon/dwebble/normal.gbapal.lz"); + const u32 gMonBackPic_Dwebble[] = INCBIN_U32("graphics/pokemon/dwebble/back.4bpp.lz"); + const u32 gMonShinyPalette_Dwebble[] = INCBIN_U32("graphics/pokemon/dwebble/shiny.gbapal.lz"); + const u8 gMonIcon_Dwebble[] = INCBIN_U8("graphics/pokemon/dwebble/icon.4bpp"); + const u8 gMonFootprint_Dwebble[] = INCBIN_U8("graphics/pokemon/dwebble/footprint.1bpp"); + + const u32 gMonFrontPic_Crustle[] = INCBIN_U32("graphics/pokemon/crustle/anim_front.4bpp.lz"); + const u32 gMonPalette_Crustle[] = INCBIN_U32("graphics/pokemon/crustle/normal.gbapal.lz"); + const u32 gMonBackPic_Crustle[] = INCBIN_U32("graphics/pokemon/crustle/back.4bpp.lz"); + const u32 gMonShinyPalette_Crustle[] = INCBIN_U32("graphics/pokemon/crustle/shiny.gbapal.lz"); + const u8 gMonIcon_Crustle[] = INCBIN_U8("graphics/pokemon/crustle/icon.4bpp"); + const u8 gMonFootprint_Crustle[] = INCBIN_U8("graphics/pokemon/crustle/footprint.1bpp"); +#endif //P_FAMILY_DWEBBLE + +#if P_FAMILY_SCRAGGY + const u32 gMonFrontPic_Scraggy[] = INCBIN_U32("graphics/pokemon/scraggy/anim_front.4bpp.lz"); + const u32 gMonPalette_Scraggy[] = INCBIN_U32("graphics/pokemon/scraggy/normal.gbapal.lz"); + const u32 gMonBackPic_Scraggy[] = INCBIN_U32("graphics/pokemon/scraggy/back.4bpp.lz"); + const u32 gMonShinyPalette_Scraggy[] = INCBIN_U32("graphics/pokemon/scraggy/shiny.gbapal.lz"); + const u8 gMonIcon_Scraggy[] = INCBIN_U8("graphics/pokemon/scraggy/icon.4bpp"); + const u8 gMonFootprint_Scraggy[] = INCBIN_U8("graphics/pokemon/scraggy/footprint.1bpp"); + + const u32 gMonFrontPic_Scrafty[] = INCBIN_U32("graphics/pokemon/scrafty/anim_front.4bpp.lz"); + const u32 gMonPalette_Scrafty[] = INCBIN_U32("graphics/pokemon/scrafty/normal.gbapal.lz"); + const u32 gMonBackPic_Scrafty[] = INCBIN_U32("graphics/pokemon/scrafty/back.4bpp.lz"); + const u32 gMonShinyPalette_Scrafty[] = INCBIN_U32("graphics/pokemon/scrafty/shiny.gbapal.lz"); + const u8 gMonIcon_Scrafty[] = INCBIN_U8("graphics/pokemon/scrafty/icon.4bpp"); + const u8 gMonFootprint_Scrafty[] = INCBIN_U8("graphics/pokemon/scrafty/footprint.1bpp"); +#endif //P_FAMILY_SCRAGGY + +#if P_FAMILY_SIGILYPH + const u32 gMonFrontPic_Sigilyph[] = INCBIN_U32("graphics/pokemon/sigilyph/anim_front.4bpp.lz"); + const u32 gMonPalette_Sigilyph[] = INCBIN_U32("graphics/pokemon/sigilyph/normal.gbapal.lz"); + const u32 gMonBackPic_Sigilyph[] = INCBIN_U32("graphics/pokemon/sigilyph/back.4bpp.lz"); + const u32 gMonShinyPalette_Sigilyph[] = INCBIN_U32("graphics/pokemon/sigilyph/shiny.gbapal.lz"); + const u8 gMonIcon_Sigilyph[] = INCBIN_U8("graphics/pokemon/sigilyph/icon.4bpp"); + const u8 gMonFootprint_Sigilyph[] = INCBIN_U8("graphics/pokemon/sigilyph/footprint.1bpp"); +#endif //P_FAMILY_SIGILYPH + +#if P_FAMILY_YAMASK + const u32 gMonFrontPic_Yamask[] = INCBIN_U32("graphics/pokemon/yamask/anim_front.4bpp.lz"); + const u32 gMonPalette_Yamask[] = INCBIN_U32("graphics/pokemon/yamask/normal.gbapal.lz"); + const u32 gMonBackPic_Yamask[] = INCBIN_U32("graphics/pokemon/yamask/back.4bpp.lz"); + const u32 gMonShinyPalette_Yamask[] = INCBIN_U32("graphics/pokemon/yamask/shiny.gbapal.lz"); + const u8 gMonIcon_Yamask[] = INCBIN_U8("graphics/pokemon/yamask/icon.4bpp"); + const u8 gMonFootprint_Yamask[] = INCBIN_U8("graphics/pokemon/yamask/footprint.1bpp"); + + const u32 gMonFrontPic_Cofagrigus[] = INCBIN_U32("graphics/pokemon/cofagrigus/anim_front.4bpp.lz"); + const u32 gMonPalette_Cofagrigus[] = INCBIN_U32("graphics/pokemon/cofagrigus/normal.gbapal.lz"); + const u32 gMonBackPic_Cofagrigus[] = INCBIN_U32("graphics/pokemon/cofagrigus/back.4bpp.lz"); + const u32 gMonShinyPalette_Cofagrigus[] = INCBIN_U32("graphics/pokemon/cofagrigus/shiny.gbapal.lz"); + const u8 gMonIcon_Cofagrigus[] = INCBIN_U8("graphics/pokemon/cofagrigus/icon.4bpp"); + const u8 gMonFootprint_Cofagrigus[] = INCBIN_U8("graphics/pokemon/cofagrigus/footprint.1bpp"); + +#if P_GALARIAN_FORMS + const u32 gMonFrontPic_YamaskGalarian[] = INCBIN_U32("graphics/pokemon/yamask/galarian/front.4bpp.lz"); + const u32 gMonPalette_YamaskGalarian[] = INCBIN_U32("graphics/pokemon/yamask/galarian/normal.gbapal.lz"); + const u32 gMonBackPic_YamaskGalarian[] = INCBIN_U32("graphics/pokemon/yamask/galarian/back.4bpp.lz"); + const u32 gMonShinyPalette_YamaskGalarian[] = INCBIN_U32("graphics/pokemon/yamask/galarian/shiny.gbapal.lz"); + const u8 gMonIcon_YamaskGalarian[] = INCBIN_U8("graphics/pokemon/yamask/galarian/icon.4bpp"); + + const u32 gMonFrontPic_Runerigus[] = INCBIN_U32("graphics/pokemon/runerigus/front.4bpp.lz"); + const u32 gMonPalette_Runerigus[] = INCBIN_U32("graphics/pokemon/runerigus/normal.gbapal.lz"); + const u32 gMonBackPic_Runerigus[] = INCBIN_U32("graphics/pokemon/runerigus/back.4bpp.lz"); + const u32 gMonShinyPalette_Runerigus[] = INCBIN_U32("graphics/pokemon/runerigus/shiny.gbapal.lz"); + const u8 gMonIcon_Runerigus[] = INCBIN_U8("graphics/pokemon/runerigus/icon.4bpp"); + const u8 gMonFootprint_Runerigus[] = INCBIN_U8("graphics/pokemon/runerigus/footprint.1bpp"); +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_YAMASK + +#if P_FAMILY_TIRTOUGA + const u32 gMonFrontPic_Tirtouga[] = INCBIN_U32("graphics/pokemon/tirtouga/anim_front.4bpp.lz"); + const u32 gMonPalette_Tirtouga[] = INCBIN_U32("graphics/pokemon/tirtouga/normal.gbapal.lz"); + const u32 gMonBackPic_Tirtouga[] = INCBIN_U32("graphics/pokemon/tirtouga/back.4bpp.lz"); + const u32 gMonShinyPalette_Tirtouga[] = INCBIN_U32("graphics/pokemon/tirtouga/shiny.gbapal.lz"); + const u8 gMonIcon_Tirtouga[] = INCBIN_U8("graphics/pokemon/tirtouga/icon.4bpp"); + const u8 gMonFootprint_Tirtouga[] = INCBIN_U8("graphics/pokemon/tirtouga/footprint.1bpp"); + + const u32 gMonFrontPic_Carracosta[] = INCBIN_U32("graphics/pokemon/carracosta/anim_front.4bpp.lz"); + const u32 gMonPalette_Carracosta[] = INCBIN_U32("graphics/pokemon/carracosta/normal.gbapal.lz"); + const u32 gMonBackPic_Carracosta[] = INCBIN_U32("graphics/pokemon/carracosta/back.4bpp.lz"); + const u32 gMonShinyPalette_Carracosta[] = INCBIN_U32("graphics/pokemon/carracosta/shiny.gbapal.lz"); + const u8 gMonIcon_Carracosta[] = INCBIN_U8("graphics/pokemon/carracosta/icon.4bpp"); + const u8 gMonFootprint_Carracosta[] = INCBIN_U8("graphics/pokemon/carracosta/footprint.1bpp"); +#endif //P_FAMILY_TIRTOUGA + +#if P_FAMILY_ARCHEN + const u32 gMonFrontPic_Archen[] = INCBIN_U32("graphics/pokemon/archen/anim_front.4bpp.lz"); + const u32 gMonPalette_Archen[] = INCBIN_U32("graphics/pokemon/archen/normal.gbapal.lz"); + const u32 gMonBackPic_Archen[] = INCBIN_U32("graphics/pokemon/archen/back.4bpp.lz"); + const u32 gMonShinyPalette_Archen[] = INCBIN_U32("graphics/pokemon/archen/shiny.gbapal.lz"); + const u8 gMonIcon_Archen[] = INCBIN_U8("graphics/pokemon/archen/icon.4bpp"); + const u8 gMonFootprint_Archen[] = INCBIN_U8("graphics/pokemon/archen/footprint.1bpp"); + + const u32 gMonFrontPic_Archeops[] = INCBIN_U32("graphics/pokemon/archeops/anim_front.4bpp.lz"); + const u32 gMonPalette_Archeops[] = INCBIN_U32("graphics/pokemon/archeops/normal.gbapal.lz"); + const u32 gMonBackPic_Archeops[] = INCBIN_U32("graphics/pokemon/archeops/back.4bpp.lz"); + const u32 gMonShinyPalette_Archeops[] = INCBIN_U32("graphics/pokemon/archeops/shiny.gbapal.lz"); + const u8 gMonIcon_Archeops[] = INCBIN_U8("graphics/pokemon/archeops/icon.4bpp"); + const u8 gMonFootprint_Archeops[] = INCBIN_U8("graphics/pokemon/archeops/footprint.1bpp"); +#endif //P_FAMILY_ARCHEN + +#if P_FAMILY_TRUBBISH + const u32 gMonFrontPic_Trubbish[] = INCBIN_U32("graphics/pokemon/trubbish/anim_front.4bpp.lz"); + const u32 gMonPalette_Trubbish[] = INCBIN_U32("graphics/pokemon/trubbish/normal.gbapal.lz"); + const u32 gMonBackPic_Trubbish[] = INCBIN_U32("graphics/pokemon/trubbish/back.4bpp.lz"); + const u32 gMonShinyPalette_Trubbish[] = INCBIN_U32("graphics/pokemon/trubbish/shiny.gbapal.lz"); + const u8 gMonIcon_Trubbish[] = INCBIN_U8("graphics/pokemon/trubbish/icon.4bpp"); + const u8 gMonFootprint_Trubbish[] = INCBIN_U8("graphics/pokemon/trubbish/footprint.1bpp"); + + const u32 gMonFrontPic_Garbodor[] = INCBIN_U32("graphics/pokemon/garbodor/anim_front.4bpp.lz"); + const u32 gMonPalette_Garbodor[] = INCBIN_U32("graphics/pokemon/garbodor/normal.gbapal.lz"); + const u32 gMonBackPic_Garbodor[] = INCBIN_U32("graphics/pokemon/garbodor/back.4bpp.lz"); + const u32 gMonShinyPalette_Garbodor[] = INCBIN_U32("graphics/pokemon/garbodor/shiny.gbapal.lz"); + const u8 gMonIcon_Garbodor[] = INCBIN_U8("graphics/pokemon/garbodor/icon.4bpp"); + const u8 gMonFootprint_Garbodor[] = INCBIN_U8("graphics/pokemon/garbodor/footprint.1bpp"); + +#if P_GIGANTAMAX_FORMS + const u32 gMonFrontPic_GarbodorGigantamax[] = INCBIN_U32("graphics/pokemon/garbodor/gigantamax/front.4bpp.lz"); + const u32 gMonBackPic_GarbodorGigantamax[] = INCBIN_U32("graphics/pokemon/garbodor/gigantamax/back.4bpp.lz"); + const u32 gMonPalette_GarbodorGigantamax[] = INCBIN_U32("graphics/pokemon/garbodor/gigantamax/normal.gbapal.lz"); + const u32 gMonShinyPalette_GarbodorGigantamax[] = INCBIN_U32("graphics/pokemon/garbodor/gigantamax/shiny.gbapal.lz"); + const u8 gMonIcon_GarbodorGigantamax[] = INCBIN_U8("graphics/pokemon/garbodor/gigantamax/icon.4bpp"); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_TRUBBISH + +#if P_FAMILY_ZORUA + const u32 gMonFrontPic_Zorua[] = INCBIN_U32("graphics/pokemon/zorua/anim_front.4bpp.lz"); + const u32 gMonPalette_Zorua[] = INCBIN_U32("graphics/pokemon/zorua/normal.gbapal.lz"); + const u32 gMonBackPic_Zorua[] = INCBIN_U32("graphics/pokemon/zorua/back.4bpp.lz"); + const u32 gMonShinyPalette_Zorua[] = INCBIN_U32("graphics/pokemon/zorua/shiny.gbapal.lz"); + const u8 gMonIcon_Zorua[] = INCBIN_U8("graphics/pokemon/zorua/icon.4bpp"); + const u8 gMonFootprint_Zorua[] = INCBIN_U8("graphics/pokemon/zorua/footprint.1bpp"); + + const u32 gMonFrontPic_Zoroark[] = INCBIN_U32("graphics/pokemon/zoroark/anim_front.4bpp.lz"); + const u32 gMonPalette_Zoroark[] = INCBIN_U32("graphics/pokemon/zoroark/normal.gbapal.lz"); + const u32 gMonBackPic_Zoroark[] = INCBIN_U32("graphics/pokemon/zoroark/back.4bpp.lz"); + const u32 gMonShinyPalette_Zoroark[] = INCBIN_U32("graphics/pokemon/zoroark/shiny.gbapal.lz"); + const u8 gMonIcon_Zoroark[] = INCBIN_U8("graphics/pokemon/zoroark/icon.4bpp"); + const u8 gMonFootprint_Zoroark[] = INCBIN_U8("graphics/pokemon/zoroark/footprint.1bpp"); + +#if P_HISUIAN_FORMS + const u32 gMonFrontPic_ZoruaHisuian[] = INCBIN_U32("graphics/pokemon/zorua/hisuian/front.4bpp.lz"); + const u32 gMonPalette_ZoruaHisuian[] = INCBIN_U32("graphics/pokemon/zorua/hisuian/normal.gbapal.lz"); + const u32 gMonBackPic_ZoruaHisuian[] = INCBIN_U32("graphics/pokemon/zorua/hisuian/back.4bpp.lz"); + const u32 gMonShinyPalette_ZoruaHisuian[] = INCBIN_U32("graphics/pokemon/zorua/hisuian/shiny.gbapal.lz"); + const u8 gMonIcon_ZoruaHisuian[] = INCBIN_U8("graphics/pokemon/zorua/hisuian/icon.4bpp"); + + const u32 gMonFrontPic_ZoroarkHisuian[] = INCBIN_U32("graphics/pokemon/zoroark/hisuian/front.4bpp.lz"); + const u32 gMonPalette_ZoroarkHisuian[] = INCBIN_U32("graphics/pokemon/zoroark/hisuian/normal.gbapal.lz"); + const u32 gMonBackPic_ZoroarkHisuian[] = INCBIN_U32("graphics/pokemon/zoroark/hisuian/back.4bpp.lz"); + const u32 gMonShinyPalette_ZoroarkHisuian[] = INCBIN_U32("graphics/pokemon/zoroark/hisuian/shiny.gbapal.lz"); + const u8 gMonIcon_ZoroarkHisuian[] = INCBIN_U8("graphics/pokemon/zoroark/hisuian/icon.4bpp"); +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_ZORUA + +#if P_FAMILY_MINCCINO + const u32 gMonFrontPic_Minccino[] = INCBIN_U32("graphics/pokemon/minccino/anim_front.4bpp.lz"); + const u32 gMonPalette_Minccino[] = INCBIN_U32("graphics/pokemon/minccino/normal.gbapal.lz"); + const u32 gMonBackPic_Minccino[] = INCBIN_U32("graphics/pokemon/minccino/back.4bpp.lz"); + const u32 gMonShinyPalette_Minccino[] = INCBIN_U32("graphics/pokemon/minccino/shiny.gbapal.lz"); + const u8 gMonIcon_Minccino[] = INCBIN_U8("graphics/pokemon/minccino/icon.4bpp"); + const u8 gMonFootprint_Minccino[] = INCBIN_U8("graphics/pokemon/minccino/footprint.1bpp"); + + const u32 gMonFrontPic_Cinccino[] = INCBIN_U32("graphics/pokemon/cinccino/anim_front.4bpp.lz"); + const u32 gMonPalette_Cinccino[] = INCBIN_U32("graphics/pokemon/cinccino/normal.gbapal.lz"); + const u32 gMonBackPic_Cinccino[] = INCBIN_U32("graphics/pokemon/cinccino/back.4bpp.lz"); + const u32 gMonShinyPalette_Cinccino[] = INCBIN_U32("graphics/pokemon/cinccino/shiny.gbapal.lz"); + const u8 gMonIcon_Cinccino[] = INCBIN_U8("graphics/pokemon/cinccino/icon.4bpp"); + const u8 gMonFootprint_Cinccino[] = INCBIN_U8("graphics/pokemon/cinccino/footprint.1bpp"); +#endif //P_FAMILY_MINCCINO + +#if P_FAMILY_GOTHITA + const u32 gMonFrontPic_Gothita[] = INCBIN_U32("graphics/pokemon/gothita/anim_front.4bpp.lz"); + const u32 gMonPalette_Gothita[] = INCBIN_U32("graphics/pokemon/gothita/normal.gbapal.lz"); + const u32 gMonBackPic_Gothita[] = INCBIN_U32("graphics/pokemon/gothita/back.4bpp.lz"); + const u32 gMonShinyPalette_Gothita[] = INCBIN_U32("graphics/pokemon/gothita/shiny.gbapal.lz"); + const u8 gMonIcon_Gothita[] = INCBIN_U8("graphics/pokemon/gothita/icon.4bpp"); + const u8 gMonFootprint_Gothita[] = INCBIN_U8("graphics/pokemon/gothita/footprint.1bpp"); + + const u32 gMonFrontPic_Gothorita[] = INCBIN_U32("graphics/pokemon/gothorita/anim_front.4bpp.lz"); + const u32 gMonPalette_Gothorita[] = INCBIN_U32("graphics/pokemon/gothorita/normal.gbapal.lz"); + const u32 gMonBackPic_Gothorita[] = INCBIN_U32("graphics/pokemon/gothorita/back.4bpp.lz"); + const u32 gMonShinyPalette_Gothorita[] = INCBIN_U32("graphics/pokemon/gothorita/shiny.gbapal.lz"); + const u8 gMonIcon_Gothorita[] = INCBIN_U8("graphics/pokemon/gothorita/icon.4bpp"); + const u8 gMonFootprint_Gothorita[] = INCBIN_U8("graphics/pokemon/gothorita/footprint.1bpp"); + + const u32 gMonFrontPic_Gothitelle[] = INCBIN_U32("graphics/pokemon/gothitelle/anim_front.4bpp.lz"); + const u32 gMonPalette_Gothitelle[] = INCBIN_U32("graphics/pokemon/gothitelle/normal.gbapal.lz"); + const u32 gMonBackPic_Gothitelle[] = INCBIN_U32("graphics/pokemon/gothitelle/back.4bpp.lz"); + const u32 gMonShinyPalette_Gothitelle[] = INCBIN_U32("graphics/pokemon/gothitelle/shiny.gbapal.lz"); + const u8 gMonIcon_Gothitelle[] = INCBIN_U8("graphics/pokemon/gothitelle/icon.4bpp"); + const u8 gMonFootprint_Gothitelle[] = INCBIN_U8("graphics/pokemon/gothitelle/footprint.1bpp"); +#endif //P_FAMILY_GOTHITA + +#if P_FAMILY_SOLOSIS + const u32 gMonFrontPic_Solosis[] = INCBIN_U32("graphics/pokemon/solosis/anim_front.4bpp.lz"); + const u32 gMonPalette_Solosis[] = INCBIN_U32("graphics/pokemon/solosis/normal.gbapal.lz"); + const u32 gMonBackPic_Solosis[] = INCBIN_U32("graphics/pokemon/solosis/back.4bpp.lz"); + const u32 gMonShinyPalette_Solosis[] = INCBIN_U32("graphics/pokemon/solosis/shiny.gbapal.lz"); + const u8 gMonIcon_Solosis[] = INCBIN_U8("graphics/pokemon/solosis/icon.4bpp"); + const u8 gMonFootprint_Solosis[] = INCBIN_U8("graphics/pokemon/solosis/footprint.1bpp"); + + const u32 gMonFrontPic_Duosion[] = INCBIN_U32("graphics/pokemon/duosion/anim_front.4bpp.lz"); + const u32 gMonPalette_Duosion[] = INCBIN_U32("graphics/pokemon/duosion/normal.gbapal.lz"); + const u32 gMonBackPic_Duosion[] = INCBIN_U32("graphics/pokemon/duosion/back.4bpp.lz"); + const u32 gMonShinyPalette_Duosion[] = INCBIN_U32("graphics/pokemon/duosion/shiny.gbapal.lz"); + const u8 gMonIcon_Duosion[] = INCBIN_U8("graphics/pokemon/duosion/icon.4bpp"); + const u8 gMonFootprint_Duosion[] = INCBIN_U8("graphics/pokemon/duosion/footprint.1bpp"); + + const u32 gMonFrontPic_Reuniclus[] = INCBIN_U32("graphics/pokemon/reuniclus/anim_front.4bpp.lz"); + const u32 gMonPalette_Reuniclus[] = INCBIN_U32("graphics/pokemon/reuniclus/normal.gbapal.lz"); + const u32 gMonBackPic_Reuniclus[] = INCBIN_U32("graphics/pokemon/reuniclus/back.4bpp.lz"); + const u32 gMonShinyPalette_Reuniclus[] = INCBIN_U32("graphics/pokemon/reuniclus/shiny.gbapal.lz"); + const u8 gMonIcon_Reuniclus[] = INCBIN_U8("graphics/pokemon/reuniclus/icon.4bpp"); + const u8 gMonFootprint_Reuniclus[] = INCBIN_U8("graphics/pokemon/reuniclus/footprint.1bpp"); +#endif //P_FAMILY_SOLOSIS + +#if P_FAMILY_DUCKLETT + const u32 gMonFrontPic_Ducklett[] = INCBIN_U32("graphics/pokemon/ducklett/anim_front.4bpp.lz"); + const u32 gMonPalette_Ducklett[] = INCBIN_U32("graphics/pokemon/ducklett/normal.gbapal.lz"); + const u32 gMonBackPic_Ducklett[] = INCBIN_U32("graphics/pokemon/ducklett/back.4bpp.lz"); + const u32 gMonShinyPalette_Ducklett[] = INCBIN_U32("graphics/pokemon/ducklett/shiny.gbapal.lz"); + const u8 gMonIcon_Ducklett[] = INCBIN_U8("graphics/pokemon/ducklett/icon.4bpp"); + const u8 gMonFootprint_Ducklett[] = INCBIN_U8("graphics/pokemon/ducklett/footprint.1bpp"); + + const u32 gMonFrontPic_Swanna[] = INCBIN_U32("graphics/pokemon/swanna/anim_front.4bpp.lz"); + const u32 gMonPalette_Swanna[] = INCBIN_U32("graphics/pokemon/swanna/normal.gbapal.lz"); + const u32 gMonBackPic_Swanna[] = INCBIN_U32("graphics/pokemon/swanna/back.4bpp.lz"); + const u32 gMonShinyPalette_Swanna[] = INCBIN_U32("graphics/pokemon/swanna/shiny.gbapal.lz"); + const u8 gMonIcon_Swanna[] = INCBIN_U8("graphics/pokemon/swanna/icon.4bpp"); + const u8 gMonFootprint_Swanna[] = INCBIN_U8("graphics/pokemon/swanna/footprint.1bpp"); +#endif //P_FAMILY_DUCKLETT + +#if P_FAMILY_VANILLITE + const u32 gMonFrontPic_Vanillite[] = INCBIN_U32("graphics/pokemon/vanillite/anim_front.4bpp.lz"); + const u32 gMonPalette_Vanillite[] = INCBIN_U32("graphics/pokemon/vanillite/normal.gbapal.lz"); + const u32 gMonBackPic_Vanillite[] = INCBIN_U32("graphics/pokemon/vanillite/back.4bpp.lz"); + const u32 gMonShinyPalette_Vanillite[] = INCBIN_U32("graphics/pokemon/vanillite/shiny.gbapal.lz"); + const u8 gMonIcon_Vanillite[] = INCBIN_U8("graphics/pokemon/vanillite/icon.4bpp"); + const u8 gMonFootprint_Vanillite[] = INCBIN_U8("graphics/pokemon/vanillite/footprint.1bpp"); + + const u32 gMonFrontPic_Vanillish[] = INCBIN_U32("graphics/pokemon/vanillish/anim_front.4bpp.lz"); + const u32 gMonPalette_Vanillish[] = INCBIN_U32("graphics/pokemon/vanillish/normal.gbapal.lz"); + const u32 gMonBackPic_Vanillish[] = INCBIN_U32("graphics/pokemon/vanillish/back.4bpp.lz"); + const u32 gMonShinyPalette_Vanillish[] = INCBIN_U32("graphics/pokemon/vanillish/shiny.gbapal.lz"); + const u8 gMonIcon_Vanillish[] = INCBIN_U8("graphics/pokemon/vanillish/icon.4bpp"); + const u8 gMonFootprint_Vanillish[] = INCBIN_U8("graphics/pokemon/vanillish/footprint.1bpp"); + + const u32 gMonFrontPic_Vanilluxe[] = INCBIN_U32("graphics/pokemon/vanilluxe/anim_front.4bpp.lz"); + const u32 gMonPalette_Vanilluxe[] = INCBIN_U32("graphics/pokemon/vanilluxe/normal.gbapal.lz"); + const u32 gMonBackPic_Vanilluxe[] = INCBIN_U32("graphics/pokemon/vanilluxe/back.4bpp.lz"); + const u32 gMonShinyPalette_Vanilluxe[] = INCBIN_U32("graphics/pokemon/vanilluxe/shiny.gbapal.lz"); + const u8 gMonIcon_Vanilluxe[] = INCBIN_U8("graphics/pokemon/vanilluxe/icon.4bpp"); + const u8 gMonFootprint_Vanilluxe[] = INCBIN_U8("graphics/pokemon/vanilluxe/footprint.1bpp"); +#endif //P_FAMILY_VANILLITE + +#if P_FAMILY_DEERLING + const u32 gMonFrontPic_Deerling[] = INCBIN_U32("graphics/pokemon/deerling/anim_front.4bpp.lz"); + const u32 gMonBackPic_Deerling[] = INCBIN_U32("graphics/pokemon/deerling/back.4bpp.lz"); + const u8 gMonFootprint_Deerling[] = INCBIN_U8("graphics/pokemon/deerling/footprint.1bpp"); + + const u32 gMonPalette_DeerlingSpring[] = INCBIN_U32("graphics/pokemon/deerling/normal.gbapal.lz"); + const u32 gMonShinyPalette_DeerlingSpring[] = INCBIN_U32("graphics/pokemon/deerling/shiny.gbapal.lz"); + const u8 gMonIcon_DeerlingSpring[] = INCBIN_U8("graphics/pokemon/deerling/icon.4bpp"); + + const u32 gMonPalette_DeerlingSummer[] = INCBIN_U32("graphics/pokemon/deerling/summer/normal.gbapal.lz"); + const u32 gMonShinyPalette_DeerlingSummer[] = INCBIN_U32("graphics/pokemon/deerling/summer/shiny.gbapal.lz"); + const u8 gMonIcon_DeerlingSummer[] = INCBIN_U8("graphics/pokemon/deerling/summer/icon.4bpp"); + + const u32 gMonPalette_DeerlingAutumn[] = INCBIN_U32("graphics/pokemon/deerling/autumn/normal.gbapal.lz"); + const u32 gMonShinyPalette_DeerlingAutumn[] = INCBIN_U32("graphics/pokemon/deerling/autumn/shiny.gbapal.lz"); + const u8 gMonIcon_DeerlingAutumn[] = INCBIN_U8("graphics/pokemon/deerling/autumn/icon.4bpp"); + + const u32 gMonPalette_DeerlingWinter[] = INCBIN_U32("graphics/pokemon/deerling/winter/normal.gbapal.lz"); + const u32 gMonShinyPalette_DeerlingWinter[] = INCBIN_U32("graphics/pokemon/deerling/winter/shiny.gbapal.lz"); + const u8 gMonIcon_DeerlingWinter[] = INCBIN_U8("graphics/pokemon/deerling/winter/icon.4bpp"); + + const u32 gMonFrontPic_SawsbuckSpring[] = INCBIN_U32("graphics/pokemon/sawsbuck/anim_front.4bpp.lz"); + const u32 gMonPalette_SawsbuckSpring[] = INCBIN_U32("graphics/pokemon/sawsbuck/normal.gbapal.lz"); + const u32 gMonBackPic_SawsbuckSpring[] = INCBIN_U32("graphics/pokemon/sawsbuck/back.4bpp.lz"); + const u32 gMonShinyPalette_SawsbuckSpring[] = INCBIN_U32("graphics/pokemon/sawsbuck/shiny.gbapal.lz"); + const u8 gMonIcon_SawsbuckSpring[] = INCBIN_U8("graphics/pokemon/sawsbuck/icon.4bpp"); + const u8 gMonFootprint_Sawsbuck[] = INCBIN_U8("graphics/pokemon/sawsbuck/footprint.1bpp"); + + const u32 gMonFrontPic_SawsbuckSummer[] = INCBIN_U32("graphics/pokemon/sawsbuck/summer/front.4bpp.lz"); + const u32 gMonPalette_SawsbuckSummer[] = INCBIN_U32("graphics/pokemon/sawsbuck/summer/normal.gbapal.lz"); + const u32 gMonBackPic_SawsbuckSummer[] = INCBIN_U32("graphics/pokemon/sawsbuck/summer/back.4bpp.lz"); + const u32 gMonShinyPalette_SawsbuckSummer[] = INCBIN_U32("graphics/pokemon/sawsbuck/summer/shiny.gbapal.lz"); + const u8 gMonIcon_SawsbuckSummer[] = INCBIN_U8("graphics/pokemon/sawsbuck/summer/icon.4bpp"); + + const u32 gMonFrontPic_SawsbuckAutumn[] = INCBIN_U32("graphics/pokemon/sawsbuck/autumn/front.4bpp.lz"); + const u32 gMonPalette_SawsbuckAutumn[] = INCBIN_U32("graphics/pokemon/sawsbuck/autumn/normal.gbapal.lz"); + const u32 gMonBackPic_SawsbuckAutumn[] = INCBIN_U32("graphics/pokemon/sawsbuck/autumn/back.4bpp.lz"); + const u32 gMonShinyPalette_SawsbuckAutumn[] = INCBIN_U32("graphics/pokemon/sawsbuck/autumn/shiny.gbapal.lz"); + const u8 gMonIcon_SawsbuckAutumn[] = INCBIN_U8("graphics/pokemon/sawsbuck/autumn/icon.4bpp"); + + const u32 gMonFrontPic_SawsbuckWinter[] = INCBIN_U32("graphics/pokemon/sawsbuck/winter/front.4bpp.lz"); + const u32 gMonPalette_SawsbuckWinter[] = INCBIN_U32("graphics/pokemon/sawsbuck/winter/normal.gbapal.lz"); + const u32 gMonBackPic_SawsbuckWinter[] = INCBIN_U32("graphics/pokemon/sawsbuck/winter/back.4bpp.lz"); + const u32 gMonShinyPalette_SawsbuckWinter[] = INCBIN_U32("graphics/pokemon/sawsbuck/winter/shiny.gbapal.lz"); + const u8 gMonIcon_SawsbuckWinter[] = INCBIN_U8("graphics/pokemon/sawsbuck/winter/icon.4bpp"); +#endif //P_FAMILY_DEERLING + +#if P_FAMILY_EMOLGA + const u32 gMonFrontPic_Emolga[] = INCBIN_U32("graphics/pokemon/emolga/anim_front.4bpp.lz"); + const u32 gMonPalette_Emolga[] = INCBIN_U32("graphics/pokemon/emolga/normal.gbapal.lz"); + const u32 gMonBackPic_Emolga[] = INCBIN_U32("graphics/pokemon/emolga/back.4bpp.lz"); + const u32 gMonShinyPalette_Emolga[] = INCBIN_U32("graphics/pokemon/emolga/shiny.gbapal.lz"); + const u8 gMonIcon_Emolga[] = INCBIN_U8("graphics/pokemon/emolga/icon.4bpp"); + const u8 gMonFootprint_Emolga[] = INCBIN_U8("graphics/pokemon/emolga/footprint.1bpp"); +#endif //P_FAMILY_EMOLGA + +#if P_FAMILY_KARRABLAST + const u32 gMonFrontPic_Karrablast[] = INCBIN_U32("graphics/pokemon/karrablast/anim_front.4bpp.lz"); + const u32 gMonPalette_Karrablast[] = INCBIN_U32("graphics/pokemon/karrablast/normal.gbapal.lz"); + const u32 gMonBackPic_Karrablast[] = INCBIN_U32("graphics/pokemon/karrablast/back.4bpp.lz"); + const u32 gMonShinyPalette_Karrablast[] = INCBIN_U32("graphics/pokemon/karrablast/shiny.gbapal.lz"); + const u8 gMonIcon_Karrablast[] = INCBIN_U8("graphics/pokemon/karrablast/icon.4bpp"); + const u8 gMonFootprint_Karrablast[] = INCBIN_U8("graphics/pokemon/karrablast/footprint.1bpp"); + + const u32 gMonFrontPic_Escavalier[] = INCBIN_U32("graphics/pokemon/escavalier/anim_front.4bpp.lz"); + const u32 gMonPalette_Escavalier[] = INCBIN_U32("graphics/pokemon/escavalier/normal.gbapal.lz"); + const u32 gMonBackPic_Escavalier[] = INCBIN_U32("graphics/pokemon/escavalier/back.4bpp.lz"); + const u32 gMonShinyPalette_Escavalier[] = INCBIN_U32("graphics/pokemon/escavalier/shiny.gbapal.lz"); + const u8 gMonIcon_Escavalier[] = INCBIN_U8("graphics/pokemon/escavalier/icon.4bpp"); + const u8 gMonFootprint_Escavalier[] = INCBIN_U8("graphics/pokemon/escavalier/footprint.1bpp"); +#endif //P_FAMILY_KARRABLAST + +#if P_FAMILY_FOONGUS + const u32 gMonFrontPic_Foongus[] = INCBIN_U32("graphics/pokemon/foongus/anim_front.4bpp.lz"); + const u32 gMonPalette_Foongus[] = INCBIN_U32("graphics/pokemon/foongus/normal.gbapal.lz"); + const u32 gMonBackPic_Foongus[] = INCBIN_U32("graphics/pokemon/foongus/back.4bpp.lz"); + const u32 gMonShinyPalette_Foongus[] = INCBIN_U32("graphics/pokemon/foongus/shiny.gbapal.lz"); + const u8 gMonIcon_Foongus[] = INCBIN_U8("graphics/pokemon/foongus/icon.4bpp"); + const u8 gMonFootprint_Foongus[] = INCBIN_U8("graphics/pokemon/foongus/footprint.1bpp"); + + const u32 gMonFrontPic_Amoonguss[] = INCBIN_U32("graphics/pokemon/amoonguss/anim_front.4bpp.lz"); + const u32 gMonPalette_Amoonguss[] = INCBIN_U32("graphics/pokemon/amoonguss/normal.gbapal.lz"); + const u32 gMonBackPic_Amoonguss[] = INCBIN_U32("graphics/pokemon/amoonguss/back.4bpp.lz"); + const u32 gMonShinyPalette_Amoonguss[] = INCBIN_U32("graphics/pokemon/amoonguss/shiny.gbapal.lz"); + const u8 gMonIcon_Amoonguss[] = INCBIN_U8("graphics/pokemon/amoonguss/icon.4bpp"); + const u8 gMonFootprint_Amoonguss[] = INCBIN_U8("graphics/pokemon/amoonguss/footprint.1bpp"); +#endif //P_FAMILY_FOONGUS + +#if P_FAMILY_FRILLISH + const u32 gMonFrontPic_Frillish[] = INCBIN_U32("graphics/pokemon/frillish/anim_front.4bpp.lz"); + const u32 gMonPalette_Frillish[] = INCBIN_U32("graphics/pokemon/frillish/normal.gbapal.lz"); + const u32 gMonBackPic_Frillish[] = INCBIN_U32("graphics/pokemon/frillish/back.4bpp.lz"); + const u32 gMonShinyPalette_Frillish[] = INCBIN_U32("graphics/pokemon/frillish/shiny.gbapal.lz"); + const u8 gMonIcon_Frillish[] = INCBIN_U8("graphics/pokemon/frillish/icon.4bpp"); + const u8 gMonFootprint_Frillish[] = INCBIN_U8("graphics/pokemon/frillish/footprint.1bpp"); + + const u32 gMonFrontPic_FrillishF[] = INCBIN_U32("graphics/pokemon/frillish/anim_frontf.4bpp.lz"); + const u32 gMonPalette_FrillishF[] = INCBIN_U32("graphics/pokemon/frillish/normalf.gbapal.lz"); + const u32 gMonBackPic_FrillishF[] = INCBIN_U32("graphics/pokemon/frillish/backf.4bpp.lz"); + const u32 gMonShinyPalette_FrillishF[] = INCBIN_U32("graphics/pokemon/frillish/shinyf.gbapal.lz"); + const u8 gMonIcon_FrillishF[] = INCBIN_U8("graphics/pokemon/frillish/iconf.4bpp"); + + const u32 gMonFrontPic_Jellicent[] = INCBIN_U32("graphics/pokemon/jellicent/anim_front.4bpp.lz"); + const u32 gMonPalette_Jellicent[] = INCBIN_U32("graphics/pokemon/jellicent/normal.gbapal.lz"); + const u32 gMonBackPic_Jellicent[] = INCBIN_U32("graphics/pokemon/jellicent/back.4bpp.lz"); + const u32 gMonShinyPalette_Jellicent[] = INCBIN_U32("graphics/pokemon/jellicent/shiny.gbapal.lz"); + const u8 gMonIcon_Jellicent[] = INCBIN_U8("graphics/pokemon/jellicent/icon.4bpp"); + const u8 gMonFootprint_Jellicent[] = INCBIN_U8("graphics/pokemon/jellicent/footprint.1bpp"); + + const u32 gMonFrontPic_JellicentF[] = INCBIN_U32("graphics/pokemon/jellicent/anim_frontf.4bpp.lz"); + const u32 gMonPalette_JellicentF[] = INCBIN_U32("graphics/pokemon/jellicent/normalf.gbapal.lz"); + const u32 gMonBackPic_JellicentF[] = INCBIN_U32("graphics/pokemon/jellicent/backf.4bpp.lz"); + const u32 gMonShinyPalette_JellicentF[] = INCBIN_U32("graphics/pokemon/jellicent/shinyf.gbapal.lz"); + const u8 gMonIcon_JellicentF[] = INCBIN_U8("graphics/pokemon/jellicent/iconf.4bpp"); +#endif //P_FAMILY_FRILLISH + +#if P_FAMILY_ALOMOMOLA + const u32 gMonFrontPic_Alomomola[] = INCBIN_U32("graphics/pokemon/alomomola/anim_front.4bpp.lz"); + const u32 gMonPalette_Alomomola[] = INCBIN_U32("graphics/pokemon/alomomola/normal.gbapal.lz"); + const u32 gMonBackPic_Alomomola[] = INCBIN_U32("graphics/pokemon/alomomola/back.4bpp.lz"); + const u32 gMonShinyPalette_Alomomola[] = INCBIN_U32("graphics/pokemon/alomomola/shiny.gbapal.lz"); + const u8 gMonIcon_Alomomola[] = INCBIN_U8("graphics/pokemon/alomomola/icon.4bpp"); + const u8 gMonFootprint_Alomomola[] = INCBIN_U8("graphics/pokemon/alomomola/footprint.1bpp"); +#endif //P_FAMILY_ALOMOMOLA + +#if P_FAMILY_JOLTIK + const u32 gMonFrontPic_Joltik[] = INCBIN_U32("graphics/pokemon/joltik/anim_front.4bpp.lz"); + const u32 gMonPalette_Joltik[] = INCBIN_U32("graphics/pokemon/joltik/normal.gbapal.lz"); + const u32 gMonBackPic_Joltik[] = INCBIN_U32("graphics/pokemon/joltik/back.4bpp.lz"); + const u32 gMonShinyPalette_Joltik[] = INCBIN_U32("graphics/pokemon/joltik/shiny.gbapal.lz"); + const u8 gMonIcon_Joltik[] = INCBIN_U8("graphics/pokemon/joltik/icon.4bpp"); + const u8 gMonFootprint_Joltik[] = INCBIN_U8("graphics/pokemon/joltik/footprint.1bpp"); + + const u32 gMonFrontPic_Galvantula[] = INCBIN_U32("graphics/pokemon/galvantula/anim_front.4bpp.lz"); + const u32 gMonPalette_Galvantula[] = INCBIN_U32("graphics/pokemon/galvantula/normal.gbapal.lz"); + const u32 gMonBackPic_Galvantula[] = INCBIN_U32("graphics/pokemon/galvantula/back.4bpp.lz"); + const u32 gMonShinyPalette_Galvantula[] = INCBIN_U32("graphics/pokemon/galvantula/shiny.gbapal.lz"); + const u8 gMonIcon_Galvantula[] = INCBIN_U8("graphics/pokemon/galvantula/icon.4bpp"); + const u8 gMonFootprint_Galvantula[] = INCBIN_U8("graphics/pokemon/galvantula/footprint.1bpp"); +#endif //P_FAMILY_JOLTIK + +#if P_FAMILY_FERROSEED + const u32 gMonFrontPic_Ferroseed[] = INCBIN_U32("graphics/pokemon/ferroseed/anim_front.4bpp.lz"); + const u32 gMonPalette_Ferroseed[] = INCBIN_U32("graphics/pokemon/ferroseed/normal.gbapal.lz"); + const u32 gMonBackPic_Ferroseed[] = INCBIN_U32("graphics/pokemon/ferroseed/back.4bpp.lz"); + const u32 gMonShinyPalette_Ferroseed[] = INCBIN_U32("graphics/pokemon/ferroseed/shiny.gbapal.lz"); + const u8 gMonIcon_Ferroseed[] = INCBIN_U8("graphics/pokemon/ferroseed/icon.4bpp"); + const u8 gMonFootprint_Ferroseed[] = INCBIN_U8("graphics/pokemon/ferroseed/footprint.1bpp"); + + const u32 gMonFrontPic_Ferrothorn[] = INCBIN_U32("graphics/pokemon/ferrothorn/anim_front.4bpp.lz"); + const u32 gMonPalette_Ferrothorn[] = INCBIN_U32("graphics/pokemon/ferrothorn/normal.gbapal.lz"); + const u32 gMonBackPic_Ferrothorn[] = INCBIN_U32("graphics/pokemon/ferrothorn/back.4bpp.lz"); + const u32 gMonShinyPalette_Ferrothorn[] = INCBIN_U32("graphics/pokemon/ferrothorn/shiny.gbapal.lz"); + const u8 gMonIcon_Ferrothorn[] = INCBIN_U8("graphics/pokemon/ferrothorn/icon.4bpp"); + const u8 gMonFootprint_Ferrothorn[] = INCBIN_U8("graphics/pokemon/ferrothorn/footprint.1bpp"); +#endif //P_FAMILY_FERROSEED + +#if P_FAMILY_KLINK + const u32 gMonFrontPic_Klink[] = INCBIN_U32("graphics/pokemon/klink/anim_front.4bpp.lz"); + const u32 gMonPalette_Klink[] = INCBIN_U32("graphics/pokemon/klink/normal.gbapal.lz"); + const u32 gMonBackPic_Klink[] = INCBIN_U32("graphics/pokemon/klink/back.4bpp.lz"); + const u32 gMonShinyPalette_Klink[] = INCBIN_U32("graphics/pokemon/klink/shiny.gbapal.lz"); + const u8 gMonIcon_Klink[] = INCBIN_U8("graphics/pokemon/klink/icon.4bpp"); + const u8 gMonFootprint_Klink[] = INCBIN_U8("graphics/pokemon/klink/footprint.1bpp"); + + const u32 gMonFrontPic_Klang[] = INCBIN_U32("graphics/pokemon/klang/anim_front.4bpp.lz"); + const u32 gMonPalette_Klang[] = INCBIN_U32("graphics/pokemon/klang/normal.gbapal.lz"); + const u32 gMonBackPic_Klang[] = INCBIN_U32("graphics/pokemon/klang/back.4bpp.lz"); + const u32 gMonShinyPalette_Klang[] = INCBIN_U32("graphics/pokemon/klang/shiny.gbapal.lz"); + const u8 gMonIcon_Klang[] = INCBIN_U8("graphics/pokemon/klang/icon.4bpp"); + const u8 gMonFootprint_Klang[] = INCBIN_U8("graphics/pokemon/klang/footprint.1bpp"); + + const u32 gMonFrontPic_Klinklang[] = INCBIN_U32("graphics/pokemon/klinklang/anim_front.4bpp.lz"); + const u32 gMonPalette_Klinklang[] = INCBIN_U32("graphics/pokemon/klinklang/normal.gbapal.lz"); + const u32 gMonBackPic_Klinklang[] = INCBIN_U32("graphics/pokemon/klinklang/back.4bpp.lz"); + const u32 gMonShinyPalette_Klinklang[] = INCBIN_U32("graphics/pokemon/klinklang/shiny.gbapal.lz"); + const u8 gMonIcon_Klinklang[] = INCBIN_U8("graphics/pokemon/klinklang/icon.4bpp"); + const u8 gMonFootprint_Klinklang[] = INCBIN_U8("graphics/pokemon/klinklang/footprint.1bpp"); +#endif //P_FAMILY_KLINK + +#if P_FAMILY_TYNAMO + const u32 gMonFrontPic_Tynamo[] = INCBIN_U32("graphics/pokemon/tynamo/anim_front.4bpp.lz"); + const u32 gMonPalette_Tynamo[] = INCBIN_U32("graphics/pokemon/tynamo/normal.gbapal.lz"); + const u32 gMonBackPic_Tynamo[] = INCBIN_U32("graphics/pokemon/tynamo/back.4bpp.lz"); + const u32 gMonShinyPalette_Tynamo[] = INCBIN_U32("graphics/pokemon/tynamo/shiny.gbapal.lz"); + const u8 gMonIcon_Tynamo[] = INCBIN_U8("graphics/pokemon/tynamo/icon.4bpp"); + const u8 gMonFootprint_Tynamo[] = INCBIN_U8("graphics/pokemon/tynamo/footprint.1bpp"); + + const u32 gMonFrontPic_Eelektrik[] = INCBIN_U32("graphics/pokemon/eelektrik/anim_front.4bpp.lz"); + const u32 gMonPalette_Eelektrik[] = INCBIN_U32("graphics/pokemon/eelektrik/normal.gbapal.lz"); + const u32 gMonBackPic_Eelektrik[] = INCBIN_U32("graphics/pokemon/eelektrik/back.4bpp.lz"); + const u32 gMonShinyPalette_Eelektrik[] = INCBIN_U32("graphics/pokemon/eelektrik/shiny.gbapal.lz"); + const u8 gMonIcon_Eelektrik[] = INCBIN_U8("graphics/pokemon/eelektrik/icon.4bpp"); + const u8 gMonFootprint_Eelektrik[] = INCBIN_U8("graphics/pokemon/eelektrik/footprint.1bpp"); + + const u32 gMonFrontPic_Eelektross[] = INCBIN_U32("graphics/pokemon/eelektross/anim_front.4bpp.lz"); + const u32 gMonPalette_Eelektross[] = INCBIN_U32("graphics/pokemon/eelektross/normal.gbapal.lz"); + const u32 gMonBackPic_Eelektross[] = INCBIN_U32("graphics/pokemon/eelektross/back.4bpp.lz"); + const u32 gMonShinyPalette_Eelektross[] = INCBIN_U32("graphics/pokemon/eelektross/shiny.gbapal.lz"); + const u8 gMonIcon_Eelektross[] = INCBIN_U8("graphics/pokemon/eelektross/icon.4bpp"); + const u8 gMonFootprint_Eelektross[] = INCBIN_U8("graphics/pokemon/eelektross/footprint.1bpp"); +#endif //P_FAMILY_TYNAMO + +#if P_FAMILY_ELGYEM + const u32 gMonFrontPic_Elgyem[] = INCBIN_U32("graphics/pokemon/elgyem/anim_front.4bpp.lz"); + const u32 gMonPalette_Elgyem[] = INCBIN_U32("graphics/pokemon/elgyem/normal.gbapal.lz"); + const u32 gMonBackPic_Elgyem[] = INCBIN_U32("graphics/pokemon/elgyem/back.4bpp.lz"); + const u32 gMonShinyPalette_Elgyem[] = INCBIN_U32("graphics/pokemon/elgyem/shiny.gbapal.lz"); + const u8 gMonIcon_Elgyem[] = INCBIN_U8("graphics/pokemon/elgyem/icon.4bpp"); + const u8 gMonFootprint_Elgyem[] = INCBIN_U8("graphics/pokemon/elgyem/footprint.1bpp"); + + const u32 gMonFrontPic_Beheeyem[] = INCBIN_U32("graphics/pokemon/beheeyem/anim_front.4bpp.lz"); + const u32 gMonPalette_Beheeyem[] = INCBIN_U32("graphics/pokemon/beheeyem/normal.gbapal.lz"); + const u32 gMonBackPic_Beheeyem[] = INCBIN_U32("graphics/pokemon/beheeyem/back.4bpp.lz"); + const u32 gMonShinyPalette_Beheeyem[] = INCBIN_U32("graphics/pokemon/beheeyem/shiny.gbapal.lz"); + const u8 gMonIcon_Beheeyem[] = INCBIN_U8("graphics/pokemon/beheeyem/icon.4bpp"); + const u8 gMonFootprint_Beheeyem[] = INCBIN_U8("graphics/pokemon/beheeyem/footprint.1bpp"); +#endif //P_FAMILY_ELGYEM + +#if P_FAMILY_LITWICK + const u32 gMonFrontPic_Litwick[] = INCBIN_U32("graphics/pokemon/litwick/anim_front.4bpp.lz"); + const u32 gMonPalette_Litwick[] = INCBIN_U32("graphics/pokemon/litwick/normal.gbapal.lz"); + const u32 gMonBackPic_Litwick[] = INCBIN_U32("graphics/pokemon/litwick/back.4bpp.lz"); + const u32 gMonShinyPalette_Litwick[] = INCBIN_U32("graphics/pokemon/litwick/shiny.gbapal.lz"); + const u8 gMonIcon_Litwick[] = INCBIN_U8("graphics/pokemon/litwick/icon.4bpp"); + const u8 gMonFootprint_Litwick[] = INCBIN_U8("graphics/pokemon/litwick/footprint.1bpp"); + + const u32 gMonFrontPic_Lampent[] = INCBIN_U32("graphics/pokemon/lampent/anim_front.4bpp.lz"); + const u32 gMonPalette_Lampent[] = INCBIN_U32("graphics/pokemon/lampent/normal.gbapal.lz"); + const u32 gMonBackPic_Lampent[] = INCBIN_U32("graphics/pokemon/lampent/back.4bpp.lz"); + const u32 gMonShinyPalette_Lampent[] = INCBIN_U32("graphics/pokemon/lampent/shiny.gbapal.lz"); + const u8 gMonIcon_Lampent[] = INCBIN_U8("graphics/pokemon/lampent/icon.4bpp"); + const u8 gMonFootprint_Lampent[] = INCBIN_U8("graphics/pokemon/lampent/footprint.1bpp"); + + const u32 gMonFrontPic_Chandelure[] = INCBIN_U32("graphics/pokemon/chandelure/anim_front.4bpp.lz"); + const u32 gMonPalette_Chandelure[] = INCBIN_U32("graphics/pokemon/chandelure/normal.gbapal.lz"); + const u32 gMonBackPic_Chandelure[] = INCBIN_U32("graphics/pokemon/chandelure/back.4bpp.lz"); + const u32 gMonShinyPalette_Chandelure[] = INCBIN_U32("graphics/pokemon/chandelure/shiny.gbapal.lz"); + const u8 gMonIcon_Chandelure[] = INCBIN_U8("graphics/pokemon/chandelure/icon.4bpp"); + const u8 gMonFootprint_Chandelure[] = INCBIN_U8("graphics/pokemon/chandelure/footprint.1bpp"); +#endif //P_FAMILY_LITWICK + +#if P_FAMILY_AXEW + const u32 gMonFrontPic_Axew[] = INCBIN_U32("graphics/pokemon/axew/anim_front.4bpp.lz"); + const u32 gMonPalette_Axew[] = INCBIN_U32("graphics/pokemon/axew/normal.gbapal.lz"); + const u32 gMonBackPic_Axew[] = INCBIN_U32("graphics/pokemon/axew/back.4bpp.lz"); + const u32 gMonShinyPalette_Axew[] = INCBIN_U32("graphics/pokemon/axew/shiny.gbapal.lz"); + const u8 gMonIcon_Axew[] = INCBIN_U8("graphics/pokemon/axew/icon.4bpp"); + const u8 gMonFootprint_Axew[] = INCBIN_U8("graphics/pokemon/axew/footprint.1bpp"); + + const u32 gMonFrontPic_Fraxure[] = INCBIN_U32("graphics/pokemon/fraxure/anim_front.4bpp.lz"); + const u32 gMonPalette_Fraxure[] = INCBIN_U32("graphics/pokemon/fraxure/normal.gbapal.lz"); + const u32 gMonBackPic_Fraxure[] = INCBIN_U32("graphics/pokemon/fraxure/back.4bpp.lz"); + const u32 gMonShinyPalette_Fraxure[] = INCBIN_U32("graphics/pokemon/fraxure/shiny.gbapal.lz"); + const u8 gMonIcon_Fraxure[] = INCBIN_U8("graphics/pokemon/fraxure/icon.4bpp"); + const u8 gMonFootprint_Fraxure[] = INCBIN_U8("graphics/pokemon/fraxure/footprint.1bpp"); + + const u32 gMonFrontPic_Haxorus[] = INCBIN_U32("graphics/pokemon/haxorus/anim_front.4bpp.lz"); + const u32 gMonPalette_Haxorus[] = INCBIN_U32("graphics/pokemon/haxorus/normal.gbapal.lz"); + const u32 gMonBackPic_Haxorus[] = INCBIN_U32("graphics/pokemon/haxorus/back.4bpp.lz"); + const u32 gMonShinyPalette_Haxorus[] = INCBIN_U32("graphics/pokemon/haxorus/shiny.gbapal.lz"); + const u8 gMonIcon_Haxorus[] = INCBIN_U8("graphics/pokemon/haxorus/icon.4bpp"); + const u8 gMonFootprint_Haxorus[] = INCBIN_U8("graphics/pokemon/haxorus/footprint.1bpp"); +#endif //P_FAMILY_AXEW + +#if P_FAMILY_CUBCHOO + const u32 gMonFrontPic_Cubchoo[] = INCBIN_U32("graphics/pokemon/cubchoo/anim_front.4bpp.lz"); + const u32 gMonPalette_Cubchoo[] = INCBIN_U32("graphics/pokemon/cubchoo/normal.gbapal.lz"); + const u32 gMonBackPic_Cubchoo[] = INCBIN_U32("graphics/pokemon/cubchoo/back.4bpp.lz"); + const u32 gMonShinyPalette_Cubchoo[] = INCBIN_U32("graphics/pokemon/cubchoo/shiny.gbapal.lz"); + const u8 gMonIcon_Cubchoo[] = INCBIN_U8("graphics/pokemon/cubchoo/icon.4bpp"); + const u8 gMonFootprint_Cubchoo[] = INCBIN_U8("graphics/pokemon/cubchoo/footprint.1bpp"); + + const u32 gMonFrontPic_Beartic[] = INCBIN_U32("graphics/pokemon/beartic/anim_front.4bpp.lz"); + const u32 gMonPalette_Beartic[] = INCBIN_U32("graphics/pokemon/beartic/normal.gbapal.lz"); + const u32 gMonBackPic_Beartic[] = INCBIN_U32("graphics/pokemon/beartic/back.4bpp.lz"); + const u32 gMonShinyPalette_Beartic[] = INCBIN_U32("graphics/pokemon/beartic/shiny.gbapal.lz"); + const u8 gMonIcon_Beartic[] = INCBIN_U8("graphics/pokemon/beartic/icon.4bpp"); + const u8 gMonFootprint_Beartic[] = INCBIN_U8("graphics/pokemon/beartic/footprint.1bpp"); +#endif //P_FAMILY_CUBCHOO + +#if P_FAMILY_CRYOGONAL + const u32 gMonFrontPic_Cryogonal[] = INCBIN_U32("graphics/pokemon/cryogonal/anim_front.4bpp.lz"); + const u32 gMonPalette_Cryogonal[] = INCBIN_U32("graphics/pokemon/cryogonal/normal.gbapal.lz"); + const u32 gMonBackPic_Cryogonal[] = INCBIN_U32("graphics/pokemon/cryogonal/back.4bpp.lz"); + const u32 gMonShinyPalette_Cryogonal[] = INCBIN_U32("graphics/pokemon/cryogonal/shiny.gbapal.lz"); + const u8 gMonIcon_Cryogonal[] = INCBIN_U8("graphics/pokemon/cryogonal/icon.4bpp"); + const u8 gMonFootprint_Cryogonal[] = INCBIN_U8("graphics/pokemon/cryogonal/footprint.1bpp"); +#endif //P_FAMILY_CRYOGONAL + +#if P_FAMILY_SHELMET + const u32 gMonFrontPic_Shelmet[] = INCBIN_U32("graphics/pokemon/shelmet/anim_front.4bpp.lz"); + const u32 gMonPalette_Shelmet[] = INCBIN_U32("graphics/pokemon/shelmet/normal.gbapal.lz"); + const u32 gMonBackPic_Shelmet[] = INCBIN_U32("graphics/pokemon/shelmet/back.4bpp.lz"); + const u32 gMonShinyPalette_Shelmet[] = INCBIN_U32("graphics/pokemon/shelmet/shiny.gbapal.lz"); + const u8 gMonIcon_Shelmet[] = INCBIN_U8("graphics/pokemon/shelmet/icon.4bpp"); + const u8 gMonFootprint_Shelmet[] = INCBIN_U8("graphics/pokemon/shelmet/footprint.1bpp"); + + const u32 gMonFrontPic_Accelgor[] = INCBIN_U32("graphics/pokemon/accelgor/anim_front.4bpp.lz"); + const u32 gMonPalette_Accelgor[] = INCBIN_U32("graphics/pokemon/accelgor/normal.gbapal.lz"); + const u32 gMonBackPic_Accelgor[] = INCBIN_U32("graphics/pokemon/accelgor/back.4bpp.lz"); + const u32 gMonShinyPalette_Accelgor[] = INCBIN_U32("graphics/pokemon/accelgor/shiny.gbapal.lz"); + const u8 gMonIcon_Accelgor[] = INCBIN_U8("graphics/pokemon/accelgor/icon.4bpp"); + const u8 gMonFootprint_Accelgor[] = INCBIN_U8("graphics/pokemon/accelgor/footprint.1bpp"); +#endif //P_FAMILY_SHELMET + +#if P_FAMILY_STUNFISK + const u32 gMonFrontPic_Stunfisk[] = INCBIN_U32("graphics/pokemon/stunfisk/anim_front.4bpp.lz"); + const u32 gMonPalette_Stunfisk[] = INCBIN_U32("graphics/pokemon/stunfisk/normal.gbapal.lz"); + const u32 gMonBackPic_Stunfisk[] = INCBIN_U32("graphics/pokemon/stunfisk/back.4bpp.lz"); + const u32 gMonShinyPalette_Stunfisk[] = INCBIN_U32("graphics/pokemon/stunfisk/shiny.gbapal.lz"); + const u8 gMonIcon_Stunfisk[] = INCBIN_U8("graphics/pokemon/stunfisk/icon.4bpp"); + const u8 gMonFootprint_Stunfisk[] = INCBIN_U8("graphics/pokemon/stunfisk/footprint.1bpp"); + +#if P_GALARIAN_FORMS + const u32 gMonFrontPic_StunfiskGalarian[] = INCBIN_U32("graphics/pokemon/stunfisk/galarian/front.4bpp.lz"); + const u32 gMonPalette_StunfiskGalarian[] = INCBIN_U32("graphics/pokemon/stunfisk/galarian/normal.gbapal.lz"); + const u32 gMonBackPic_StunfiskGalarian[] = INCBIN_U32("graphics/pokemon/stunfisk/galarian/back.4bpp.lz"); + const u32 gMonShinyPalette_StunfiskGalarian[] = INCBIN_U32("graphics/pokemon/stunfisk/galarian/shiny.gbapal.lz"); + const u8 gMonIcon_StunfiskGalarian[] = INCBIN_U8("graphics/pokemon/stunfisk/galarian/icon.4bpp"); +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_STUNFISK + +#if P_FAMILY_MIENFOO + const u32 gMonFrontPic_Mienfoo[] = INCBIN_U32("graphics/pokemon/mienfoo/anim_front.4bpp.lz"); + const u32 gMonPalette_Mienfoo[] = INCBIN_U32("graphics/pokemon/mienfoo/normal.gbapal.lz"); + const u32 gMonBackPic_Mienfoo[] = INCBIN_U32("graphics/pokemon/mienfoo/back.4bpp.lz"); + const u32 gMonShinyPalette_Mienfoo[] = INCBIN_U32("graphics/pokemon/mienfoo/shiny.gbapal.lz"); + const u8 gMonIcon_Mienfoo[] = INCBIN_U8("graphics/pokemon/mienfoo/icon.4bpp"); + const u8 gMonFootprint_Mienfoo[] = INCBIN_U8("graphics/pokemon/mienfoo/footprint.1bpp"); + + const u32 gMonFrontPic_Mienshao[] = INCBIN_U32("graphics/pokemon/mienshao/anim_front.4bpp.lz"); + const u32 gMonPalette_Mienshao[] = INCBIN_U32("graphics/pokemon/mienshao/normal.gbapal.lz"); + const u32 gMonBackPic_Mienshao[] = INCBIN_U32("graphics/pokemon/mienshao/back.4bpp.lz"); + const u32 gMonShinyPalette_Mienshao[] = INCBIN_U32("graphics/pokemon/mienshao/shiny.gbapal.lz"); + const u8 gMonIcon_Mienshao[] = INCBIN_U8("graphics/pokemon/mienshao/icon.4bpp"); + const u8 gMonFootprint_Mienshao[] = INCBIN_U8("graphics/pokemon/mienshao/footprint.1bpp"); +#endif //P_FAMILY_MIENFOO + +#if P_FAMILY_DRUDDIGON + const u32 gMonFrontPic_Druddigon[] = INCBIN_U32("graphics/pokemon/druddigon/anim_front.4bpp.lz"); + const u32 gMonPalette_Druddigon[] = INCBIN_U32("graphics/pokemon/druddigon/normal.gbapal.lz"); + const u32 gMonBackPic_Druddigon[] = INCBIN_U32("graphics/pokemon/druddigon/back.4bpp.lz"); + const u32 gMonShinyPalette_Druddigon[] = INCBIN_U32("graphics/pokemon/druddigon/shiny.gbapal.lz"); + const u8 gMonIcon_Druddigon[] = INCBIN_U8("graphics/pokemon/druddigon/icon.4bpp"); + const u8 gMonFootprint_Druddigon[] = INCBIN_U8("graphics/pokemon/druddigon/footprint.1bpp"); +#endif //P_FAMILY_DRUDDIGON + +#if P_FAMILY_GOLETT + const u32 gMonFrontPic_Golett[] = INCBIN_U32("graphics/pokemon/golett/anim_front.4bpp.lz"); + const u32 gMonPalette_Golett[] = INCBIN_U32("graphics/pokemon/golett/normal.gbapal.lz"); + const u32 gMonBackPic_Golett[] = INCBIN_U32("graphics/pokemon/golett/back.4bpp.lz"); + const u32 gMonShinyPalette_Golett[] = INCBIN_U32("graphics/pokemon/golett/shiny.gbapal.lz"); + const u8 gMonIcon_Golett[] = INCBIN_U8("graphics/pokemon/golett/icon.4bpp"); + const u8 gMonFootprint_Golett[] = INCBIN_U8("graphics/pokemon/golett/footprint.1bpp"); + + const u32 gMonFrontPic_Golurk[] = INCBIN_U32("graphics/pokemon/golurk/anim_front.4bpp.lz"); + const u32 gMonPalette_Golurk[] = INCBIN_U32("graphics/pokemon/golurk/normal.gbapal.lz"); + const u32 gMonBackPic_Golurk[] = INCBIN_U32("graphics/pokemon/golurk/back.4bpp.lz"); + const u32 gMonShinyPalette_Golurk[] = INCBIN_U32("graphics/pokemon/golurk/shiny.gbapal.lz"); + const u8 gMonIcon_Golurk[] = INCBIN_U8("graphics/pokemon/golurk/icon.4bpp"); + const u8 gMonFootprint_Golurk[] = INCBIN_U8("graphics/pokemon/golurk/footprint.1bpp"); +#endif //P_FAMILY_GOLETT + +#if P_FAMILY_PAWNIARD + const u32 gMonFrontPic_Pawniard[] = INCBIN_U32("graphics/pokemon/pawniard/anim_front.4bpp.lz"); + const u32 gMonPalette_Pawniard[] = INCBIN_U32("graphics/pokemon/pawniard/normal.gbapal.lz"); + const u32 gMonBackPic_Pawniard[] = INCBIN_U32("graphics/pokemon/pawniard/back.4bpp.lz"); + const u32 gMonShinyPalette_Pawniard[] = INCBIN_U32("graphics/pokemon/pawniard/shiny.gbapal.lz"); + const u8 gMonIcon_Pawniard[] = INCBIN_U8("graphics/pokemon/pawniard/icon.4bpp"); + const u8 gMonFootprint_Pawniard[] = INCBIN_U8("graphics/pokemon/pawniard/footprint.1bpp"); + + const u32 gMonFrontPic_Bisharp[] = INCBIN_U32("graphics/pokemon/bisharp/anim_front.4bpp.lz"); + const u32 gMonPalette_Bisharp[] = INCBIN_U32("graphics/pokemon/bisharp/normal.gbapal.lz"); + const u32 gMonBackPic_Bisharp[] = INCBIN_U32("graphics/pokemon/bisharp/back.4bpp.lz"); + const u32 gMonShinyPalette_Bisharp[] = INCBIN_U32("graphics/pokemon/bisharp/shiny.gbapal.lz"); + const u8 gMonIcon_Bisharp[] = INCBIN_U8("graphics/pokemon/bisharp/icon.4bpp"); + const u8 gMonFootprint_Bisharp[] = INCBIN_U8("graphics/pokemon/bisharp/footprint.1bpp"); + +#if P_GEN_9_CROSS_EVOS + const u32 gMonFrontPic_Kingambit[] = INCBIN_U32("graphics/pokemon/kingambit/front.4bpp.lz"); + const u32 gMonPalette_Kingambit[] = INCBIN_U32("graphics/pokemon/kingambit/normal.gbapal.lz"); + const u32 gMonBackPic_Kingambit[] = INCBIN_U32("graphics/pokemon/kingambit/back.4bpp.lz"); + const u32 gMonShinyPalette_Kingambit[] = INCBIN_U32("graphics/pokemon/kingambit/shiny.gbapal.lz"); + const u8 gMonIcon_Kingambit[] = INCBIN_U8("graphics/pokemon/kingambit/icon.4bpp"); + // const u8 gMonFootprint_Kingambit[] = INCBIN_U8("graphics/pokemon/kingambit/footprint.1bpp"); +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_PAWNIARD + +#if P_FAMILY_BOUFFALANT + const u32 gMonFrontPic_Bouffalant[] = INCBIN_U32("graphics/pokemon/bouffalant/anim_front.4bpp.lz"); + const u32 gMonPalette_Bouffalant[] = INCBIN_U32("graphics/pokemon/bouffalant/normal.gbapal.lz"); + const u32 gMonBackPic_Bouffalant[] = INCBIN_U32("graphics/pokemon/bouffalant/back.4bpp.lz"); + const u32 gMonShinyPalette_Bouffalant[] = INCBIN_U32("graphics/pokemon/bouffalant/shiny.gbapal.lz"); + const u8 gMonIcon_Bouffalant[] = INCBIN_U8("graphics/pokemon/bouffalant/icon.4bpp"); + const u8 gMonFootprint_Bouffalant[] = INCBIN_U8("graphics/pokemon/bouffalant/footprint.1bpp"); +#endif //P_FAMILY_BOUFFALANT + +#if P_FAMILY_RUFFLET + const u32 gMonFrontPic_Rufflet[] = INCBIN_U32("graphics/pokemon/rufflet/anim_front.4bpp.lz"); + const u32 gMonPalette_Rufflet[] = INCBIN_U32("graphics/pokemon/rufflet/normal.gbapal.lz"); + const u32 gMonBackPic_Rufflet[] = INCBIN_U32("graphics/pokemon/rufflet/back.4bpp.lz"); + const u32 gMonShinyPalette_Rufflet[] = INCBIN_U32("graphics/pokemon/rufflet/shiny.gbapal.lz"); + const u8 gMonIcon_Rufflet[] = INCBIN_U8("graphics/pokemon/rufflet/icon.4bpp"); + const u8 gMonFootprint_Rufflet[] = INCBIN_U8("graphics/pokemon/rufflet/footprint.1bpp"); + + const u32 gMonFrontPic_Braviary[] = INCBIN_U32("graphics/pokemon/braviary/anim_front.4bpp.lz"); + const u32 gMonPalette_Braviary[] = INCBIN_U32("graphics/pokemon/braviary/normal.gbapal.lz"); + const u32 gMonBackPic_Braviary[] = INCBIN_U32("graphics/pokemon/braviary/back.4bpp.lz"); + const u32 gMonShinyPalette_Braviary[] = INCBIN_U32("graphics/pokemon/braviary/shiny.gbapal.lz"); + const u8 gMonIcon_Braviary[] = INCBIN_U8("graphics/pokemon/braviary/icon.4bpp"); + const u8 gMonFootprint_Braviary[] = INCBIN_U8("graphics/pokemon/braviary/footprint.1bpp"); + +#if P_HISUIAN_FORMS + const u32 gMonFrontPic_BraviaryHisuian[] = INCBIN_U32("graphics/pokemon/braviary/hisuian/front.4bpp.lz"); + const u32 gMonPalette_BraviaryHisuian[] = INCBIN_U32("graphics/pokemon/braviary/hisuian/normal.gbapal.lz"); + const u32 gMonBackPic_BraviaryHisuian[] = INCBIN_U32("graphics/pokemon/braviary/hisuian/back.4bpp.lz"); + const u32 gMonShinyPalette_BraviaryHisuian[] = INCBIN_U32("graphics/pokemon/braviary/hisuian/shiny.gbapal.lz"); + const u8 gMonIcon_BraviaryHisuian[] = INCBIN_U8("graphics/pokemon/braviary/hisuian/icon.4bpp"); +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_RUFFLET + +#if P_FAMILY_VULLABY + const u32 gMonFrontPic_Vullaby[] = INCBIN_U32("graphics/pokemon/vullaby/anim_front.4bpp.lz"); + const u32 gMonPalette_Vullaby[] = INCBIN_U32("graphics/pokemon/vullaby/normal.gbapal.lz"); + const u32 gMonBackPic_Vullaby[] = INCBIN_U32("graphics/pokemon/vullaby/back.4bpp.lz"); + const u32 gMonShinyPalette_Vullaby[] = INCBIN_U32("graphics/pokemon/vullaby/shiny.gbapal.lz"); + const u8 gMonIcon_Vullaby[] = INCBIN_U8("graphics/pokemon/vullaby/icon.4bpp"); + const u8 gMonFootprint_Vullaby[] = INCBIN_U8("graphics/pokemon/vullaby/footprint.1bpp"); + + const u32 gMonFrontPic_Mandibuzz[] = INCBIN_U32("graphics/pokemon/mandibuzz/anim_front.4bpp.lz"); + const u32 gMonPalette_Mandibuzz[] = INCBIN_U32("graphics/pokemon/mandibuzz/normal.gbapal.lz"); + const u32 gMonBackPic_Mandibuzz[] = INCBIN_U32("graphics/pokemon/mandibuzz/back.4bpp.lz"); + const u32 gMonShinyPalette_Mandibuzz[] = INCBIN_U32("graphics/pokemon/mandibuzz/shiny.gbapal.lz"); + const u8 gMonIcon_Mandibuzz[] = INCBIN_U8("graphics/pokemon/mandibuzz/icon.4bpp"); + const u8 gMonFootprint_Mandibuzz[] = INCBIN_U8("graphics/pokemon/mandibuzz/footprint.1bpp"); +#endif //P_FAMILY_VULLABY + +#if P_FAMILY_HEATMOR + const u32 gMonFrontPic_Heatmor[] = INCBIN_U32("graphics/pokemon/heatmor/anim_front.4bpp.lz"); + const u32 gMonPalette_Heatmor[] = INCBIN_U32("graphics/pokemon/heatmor/normal.gbapal.lz"); + const u32 gMonBackPic_Heatmor[] = INCBIN_U32("graphics/pokemon/heatmor/back.4bpp.lz"); + const u32 gMonShinyPalette_Heatmor[] = INCBIN_U32("graphics/pokemon/heatmor/shiny.gbapal.lz"); + const u8 gMonIcon_Heatmor[] = INCBIN_U8("graphics/pokemon/heatmor/icon.4bpp"); + const u8 gMonFootprint_Heatmor[] = INCBIN_U8("graphics/pokemon/heatmor/footprint.1bpp"); +#endif //P_FAMILY_HEATMOR + +#if P_FAMILY_DURANT + const u32 gMonFrontPic_Durant[] = INCBIN_U32("graphics/pokemon/durant/anim_front.4bpp.lz"); + const u32 gMonPalette_Durant[] = INCBIN_U32("graphics/pokemon/durant/normal.gbapal.lz"); + const u32 gMonBackPic_Durant[] = INCBIN_U32("graphics/pokemon/durant/back.4bpp.lz"); + const u32 gMonShinyPalette_Durant[] = INCBIN_U32("graphics/pokemon/durant/shiny.gbapal.lz"); + const u8 gMonIcon_Durant[] = INCBIN_U8("graphics/pokemon/durant/icon.4bpp"); + const u8 gMonFootprint_Durant[] = INCBIN_U8("graphics/pokemon/durant/footprint.1bpp"); +#endif //P_FAMILY_DURANT + +#if P_FAMILY_DEINO + const u32 gMonFrontPic_Deino[] = INCBIN_U32("graphics/pokemon/deino/anim_front.4bpp.lz"); + const u32 gMonPalette_Deino[] = INCBIN_U32("graphics/pokemon/deino/normal.gbapal.lz"); + const u32 gMonBackPic_Deino[] = INCBIN_U32("graphics/pokemon/deino/back.4bpp.lz"); + const u32 gMonShinyPalette_Deino[] = INCBIN_U32("graphics/pokemon/deino/shiny.gbapal.lz"); + const u8 gMonIcon_Deino[] = INCBIN_U8("graphics/pokemon/deino/icon.4bpp"); + const u8 gMonFootprint_Deino[] = INCBIN_U8("graphics/pokemon/deino/footprint.1bpp"); + + const u32 gMonFrontPic_Zweilous[] = INCBIN_U32("graphics/pokemon/zweilous/anim_front.4bpp.lz"); + const u32 gMonPalette_Zweilous[] = INCBIN_U32("graphics/pokemon/zweilous/normal.gbapal.lz"); + const u32 gMonBackPic_Zweilous[] = INCBIN_U32("graphics/pokemon/zweilous/back.4bpp.lz"); + const u32 gMonShinyPalette_Zweilous[] = INCBIN_U32("graphics/pokemon/zweilous/shiny.gbapal.lz"); + const u8 gMonIcon_Zweilous[] = INCBIN_U8("graphics/pokemon/zweilous/icon.4bpp"); + const u8 gMonFootprint_Zweilous[] = INCBIN_U8("graphics/pokemon/zweilous/footprint.1bpp"); + + const u32 gMonFrontPic_Hydreigon[] = INCBIN_U32("graphics/pokemon/hydreigon/anim_front.4bpp.lz"); + const u32 gMonPalette_Hydreigon[] = INCBIN_U32("graphics/pokemon/hydreigon/normal.gbapal.lz"); + const u32 gMonBackPic_Hydreigon[] = INCBIN_U32("graphics/pokemon/hydreigon/back.4bpp.lz"); + const u32 gMonShinyPalette_Hydreigon[] = INCBIN_U32("graphics/pokemon/hydreigon/shiny.gbapal.lz"); + const u8 gMonIcon_Hydreigon[] = INCBIN_U8("graphics/pokemon/hydreigon/icon.4bpp"); + const u8 gMonFootprint_Hydreigon[] = INCBIN_U8("graphics/pokemon/hydreigon/footprint.1bpp"); +#endif //P_FAMILY_DEINO + +#if P_FAMILY_LARVESTA + const u32 gMonFrontPic_Larvesta[] = INCBIN_U32("graphics/pokemon/larvesta/anim_front.4bpp.lz"); + const u32 gMonPalette_Larvesta[] = INCBIN_U32("graphics/pokemon/larvesta/normal.gbapal.lz"); + const u32 gMonBackPic_Larvesta[] = INCBIN_U32("graphics/pokemon/larvesta/back.4bpp.lz"); + const u32 gMonShinyPalette_Larvesta[] = INCBIN_U32("graphics/pokemon/larvesta/shiny.gbapal.lz"); + const u8 gMonIcon_Larvesta[] = INCBIN_U8("graphics/pokemon/larvesta/icon.4bpp"); + const u8 gMonFootprint_Larvesta[] = INCBIN_U8("graphics/pokemon/larvesta/footprint.1bpp"); + + const u32 gMonFrontPic_Volcarona[] = INCBIN_U32("graphics/pokemon/volcarona/anim_front.4bpp.lz"); + const u32 gMonPalette_Volcarona[] = INCBIN_U32("graphics/pokemon/volcarona/normal.gbapal.lz"); + const u32 gMonBackPic_Volcarona[] = INCBIN_U32("graphics/pokemon/volcarona/back.4bpp.lz"); + const u32 gMonShinyPalette_Volcarona[] = INCBIN_U32("graphics/pokemon/volcarona/shiny.gbapal.lz"); + const u8 gMonIcon_Volcarona[] = INCBIN_U8("graphics/pokemon/volcarona/icon.4bpp"); + const u8 gMonFootprint_Volcarona[] = INCBIN_U8("graphics/pokemon/volcarona/footprint.1bpp"); +#endif //P_FAMILY_LARVESTA + +#if P_FAMILY_COBALION + const u32 gMonFrontPic_Cobalion[] = INCBIN_U32("graphics/pokemon/cobalion/anim_front.4bpp.lz"); + const u32 gMonPalette_Cobalion[] = INCBIN_U32("graphics/pokemon/cobalion/normal.gbapal.lz"); + const u32 gMonBackPic_Cobalion[] = INCBIN_U32("graphics/pokemon/cobalion/back.4bpp.lz"); + const u32 gMonShinyPalette_Cobalion[] = INCBIN_U32("graphics/pokemon/cobalion/shiny.gbapal.lz"); + const u8 gMonIcon_Cobalion[] = INCBIN_U8("graphics/pokemon/cobalion/icon.4bpp"); + const u8 gMonFootprint_Cobalion[] = INCBIN_U8("graphics/pokemon/cobalion/footprint.1bpp"); +#endif //P_FAMILY_COBALION + +#if P_FAMILY_TERRAKION + const u32 gMonFrontPic_Terrakion[] = INCBIN_U32("graphics/pokemon/terrakion/anim_front.4bpp.lz"); + const u32 gMonPalette_Terrakion[] = INCBIN_U32("graphics/pokemon/terrakion/normal.gbapal.lz"); + const u32 gMonBackPic_Terrakion[] = INCBIN_U32("graphics/pokemon/terrakion/back.4bpp.lz"); + const u32 gMonShinyPalette_Terrakion[] = INCBIN_U32("graphics/pokemon/terrakion/shiny.gbapal.lz"); + const u8 gMonIcon_Terrakion[] = INCBIN_U8("graphics/pokemon/terrakion/icon.4bpp"); + const u8 gMonFootprint_Terrakion[] = INCBIN_U8("graphics/pokemon/terrakion/footprint.1bpp"); +#endif //P_FAMILY_TERRAKION + +#if P_FAMILY_VIRIZION + const u32 gMonFrontPic_Virizion[] = INCBIN_U32("graphics/pokemon/virizion/anim_front.4bpp.lz"); + const u32 gMonPalette_Virizion[] = INCBIN_U32("graphics/pokemon/virizion/normal.gbapal.lz"); + const u32 gMonBackPic_Virizion[] = INCBIN_U32("graphics/pokemon/virizion/back.4bpp.lz"); + const u32 gMonShinyPalette_Virizion[] = INCBIN_U32("graphics/pokemon/virizion/shiny.gbapal.lz"); + const u8 gMonIcon_Virizion[] = INCBIN_U8("graphics/pokemon/virizion/icon.4bpp"); + const u8 gMonFootprint_Virizion[] = INCBIN_U8("graphics/pokemon/virizion/footprint.1bpp"); +#endif //P_FAMILY_VIRIZION + +#if P_FAMILY_TORNADUS + const u32 gMonFrontPic_TornadusIncarnate[] = INCBIN_U32("graphics/pokemon/tornadus/anim_front.4bpp.lz"); + const u32 gMonPalette_TornadusIncarnate[] = INCBIN_U32("graphics/pokemon/tornadus/normal.gbapal.lz"); + const u32 gMonBackPic_TornadusIncarnate[] = INCBIN_U32("graphics/pokemon/tornadus/back.4bpp.lz"); + const u32 gMonShinyPalette_TornadusIncarnate[] = INCBIN_U32("graphics/pokemon/tornadus/shiny.gbapal.lz"); + const u8 gMonIcon_TornadusIncarnate[] = INCBIN_U8("graphics/pokemon/tornadus/icon.4bpp"); + const u8 gMonFootprint_Tornadus[] = INCBIN_U8("graphics/pokemon/tornadus/footprint.1bpp"); + + const u32 gMonFrontPic_TornadusTherian[] = INCBIN_U32("graphics/pokemon/tornadus/therian/anim_front.4bpp.lz"); + const u32 gMonPalette_TornadusTherian[] = INCBIN_U32("graphics/pokemon/tornadus/therian/normal.gbapal.lz"); + const u32 gMonBackPic_TornadusTherian[] = INCBIN_U32("graphics/pokemon/tornadus/therian/back.4bpp.lz"); + const u32 gMonShinyPalette_TornadusTherian[] = INCBIN_U32("graphics/pokemon/tornadus/therian/shiny.gbapal.lz"); + const u8 gMonIcon_TornadusTherian[] = INCBIN_U8("graphics/pokemon/tornadus/therian/icon.4bpp"); +#endif //P_FAMILY_TORNADUS + +#if P_FAMILY_THUNDURUS + const u32 gMonFrontPic_ThundurusIncarnate[] = INCBIN_U32("graphics/pokemon/thundurus/anim_front.4bpp.lz"); + const u32 gMonPalette_ThundurusIncarnate[] = INCBIN_U32("graphics/pokemon/thundurus/normal.gbapal.lz"); + const u32 gMonBackPic_ThundurusIncarnate[] = INCBIN_U32("graphics/pokemon/thundurus/back.4bpp.lz"); + const u32 gMonShinyPalette_ThundurusIncarnate[] = INCBIN_U32("graphics/pokemon/thundurus/shiny.gbapal.lz"); + const u8 gMonIcon_ThundurusIncarnate[] = INCBIN_U8("graphics/pokemon/thundurus/icon.4bpp"); + const u8 gMonFootprint_Thundurus[] = INCBIN_U8("graphics/pokemon/thundurus/footprint.1bpp"); + + const u32 gMonFrontPic_ThundurusTherian[] = INCBIN_U32("graphics/pokemon/thundurus/therian/anim_front.4bpp.lz"); + const u32 gMonPalette_ThundurusTherian[] = INCBIN_U32("graphics/pokemon/thundurus/therian/normal.gbapal.lz"); + const u32 gMonBackPic_ThundurusTherian[] = INCBIN_U32("graphics/pokemon/thundurus/therian/back.4bpp.lz"); + const u32 gMonShinyPalette_ThundurusTherian[] = INCBIN_U32("graphics/pokemon/thundurus/therian/shiny.gbapal.lz"); + const u8 gMonIcon_ThundurusTherian[] = INCBIN_U8("graphics/pokemon/thundurus/therian/icon.4bpp"); +#endif //P_FAMILY_THUNDURUS + +#if P_FAMILY_RESHIRAM + const u32 gMonFrontPic_Reshiram[] = INCBIN_U32("graphics/pokemon/reshiram/anim_front.4bpp.lz"); + const u32 gMonPalette_Reshiram[] = INCBIN_U32("graphics/pokemon/reshiram/normal.gbapal.lz"); + const u32 gMonBackPic_Reshiram[] = INCBIN_U32("graphics/pokemon/reshiram/back.4bpp.lz"); + const u32 gMonShinyPalette_Reshiram[] = INCBIN_U32("graphics/pokemon/reshiram/shiny.gbapal.lz"); + const u8 gMonIcon_Reshiram[] = INCBIN_U8("graphics/pokemon/reshiram/icon.4bpp"); + const u8 gMonFootprint_Reshiram[] = INCBIN_U8("graphics/pokemon/reshiram/footprint.1bpp"); +#endif //P_FAMILY_RESHIRAM + +#if P_FAMILY_ZEKROM + const u32 gMonFrontPic_Zekrom[] = INCBIN_U32("graphics/pokemon/zekrom/anim_front.4bpp.lz"); + const u32 gMonPalette_Zekrom[] = INCBIN_U32("graphics/pokemon/zekrom/normal.gbapal.lz"); + const u32 gMonBackPic_Zekrom[] = INCBIN_U32("graphics/pokemon/zekrom/back.4bpp.lz"); + const u32 gMonShinyPalette_Zekrom[] = INCBIN_U32("graphics/pokemon/zekrom/shiny.gbapal.lz"); + const u8 gMonIcon_Zekrom[] = INCBIN_U8("graphics/pokemon/zekrom/icon.4bpp"); + const u8 gMonFootprint_Zekrom[] = INCBIN_U8("graphics/pokemon/zekrom/footprint.1bpp"); +#endif //P_FAMILY_ZEKROM + +#if P_FAMILY_LANDORUS + const u32 gMonFrontPic_LandorusIncarnate[] = INCBIN_U32("graphics/pokemon/landorus/anim_front.4bpp.lz"); + const u32 gMonPalette_LandorusIncarnate[] = INCBIN_U32("graphics/pokemon/landorus/normal.gbapal.lz"); + const u32 gMonBackPic_LandorusIncarnate[] = INCBIN_U32("graphics/pokemon/landorus/back.4bpp.lz"); + const u32 gMonShinyPalette_LandorusIncarnate[] = INCBIN_U32("graphics/pokemon/landorus/shiny.gbapal.lz"); + const u8 gMonIcon_LandorusIncarnate[] = INCBIN_U8("graphics/pokemon/landorus/icon.4bpp"); + const u8 gMonFootprint_Landorus[] = INCBIN_U8("graphics/pokemon/landorus/footprint.1bpp"); + + const u32 gMonFrontPic_LandorusTherian[] = INCBIN_U32("graphics/pokemon/landorus/therian/anim_front.4bpp.lz"); + const u32 gMonPalette_LandorusTherian[] = INCBIN_U32("graphics/pokemon/landorus/therian/normal.gbapal.lz"); + const u32 gMonBackPic_LandorusTherian[] = INCBIN_U32("graphics/pokemon/landorus/therian/back.4bpp.lz"); + const u32 gMonShinyPalette_LandorusTherian[] = INCBIN_U32("graphics/pokemon/landorus/therian/shiny.gbapal.lz"); + const u8 gMonIcon_LandorusTherian[] = INCBIN_U8("graphics/pokemon/landorus/therian/icon.4bpp"); +#endif //P_FAMILY_LANDORUS + +#if P_FAMILY_ENAMORUS + const u32 gMonFrontPic_EnamorusIncarnate[] = INCBIN_U32("graphics/pokemon/enamorus/front.4bpp.lz"); + const u32 gMonPalette_EnamorusIncarnate[] = INCBIN_U32("graphics/pokemon/enamorus/normal.gbapal.lz"); + const u32 gMonBackPic_EnamorusIncarnate[] = INCBIN_U32("graphics/pokemon/enamorus/back.4bpp.lz"); + const u32 gMonShinyPalette_EnamorusIncarnate[] = INCBIN_U32("graphics/pokemon/enamorus/shiny.gbapal.lz"); + const u8 gMonIcon_EnamorusIncarnate[] = INCBIN_U8("graphics/pokemon/enamorus/icon.4bpp"); + //const u8 gMonFootprint_Enamorus[] = INCBIN_U8("graphics/pokemon/enamorus/footprint.1bpp"); + + const u32 gMonFrontPic_EnamorusTherian[] = INCBIN_U32("graphics/pokemon/enamorus/therian/front.4bpp.lz"); + const u32 gMonPalette_EnamorusTherian[] = INCBIN_U32("graphics/pokemon/enamorus/therian/normal.gbapal.lz"); + const u32 gMonBackPic_EnamorusTherian[] = INCBIN_U32("graphics/pokemon/enamorus/therian/back.4bpp.lz"); + const u32 gMonShinyPalette_EnamorusTherian[] = INCBIN_U32("graphics/pokemon/enamorus/therian/shiny.gbapal.lz"); + const u8 gMonIcon_EnamorusTherian[] = INCBIN_U8("graphics/pokemon/enamorus/therian/icon.4bpp"); +#endif //P_FAMILY_ENAMORUS + +#if P_FAMILY_KYUREM + const u32 gMonFrontPic_Kyurem[] = INCBIN_U32("graphics/pokemon/kyurem/anim_front.4bpp.lz"); + const u32 gMonPalette_Kyurem[] = INCBIN_U32("graphics/pokemon/kyurem/normal.gbapal.lz"); + const u32 gMonBackPic_Kyurem[] = INCBIN_U32("graphics/pokemon/kyurem/back.4bpp.lz"); + const u32 gMonShinyPalette_Kyurem[] = INCBIN_U32("graphics/pokemon/kyurem/shiny.gbapal.lz"); + const u8 gMonIcon_Kyurem[] = INCBIN_U8("graphics/pokemon/kyurem/icon.4bpp"); + const u8 gMonFootprint_Kyurem[] = INCBIN_U8("graphics/pokemon/kyurem/footprint.1bpp"); + +#if P_FUSION_FORMS + const u32 gMonFrontPic_KyuremWhite[] = INCBIN_U32("graphics/pokemon/kyurem/white/anim_front.4bpp.lz"); + const u32 gMonPalette_KyuremWhite[] = INCBIN_U32("graphics/pokemon/kyurem/white/normal.gbapal.lz"); + const u32 gMonBackPic_KyuremWhite[] = INCBIN_U32("graphics/pokemon/kyurem/white/back.4bpp.lz"); + const u32 gMonShinyPalette_KyuremWhite[] = INCBIN_U32("graphics/pokemon/kyurem/white/shiny.gbapal.lz"); + const u8 gMonIcon_KyuremWhite[] = INCBIN_U8("graphics/pokemon/kyurem/white/icon.4bpp"); + + const u32 gMonFrontPic_KyuremBlack[] = INCBIN_U32("graphics/pokemon/kyurem/black/anim_front.4bpp.lz"); + const u32 gMonPalette_KyuremBlack[] = INCBIN_U32("graphics/pokemon/kyurem/black/normal.gbapal.lz"); + const u32 gMonBackPic_KyuremBlack[] = INCBIN_U32("graphics/pokemon/kyurem/black/back.4bpp.lz"); + const u32 gMonShinyPalette_KyuremBlack[] = INCBIN_U32("graphics/pokemon/kyurem/black/shiny.gbapal.lz"); + const u8 gMonIcon_KyuremBlack[] = INCBIN_U8("graphics/pokemon/kyurem/black/icon.4bpp"); +#endif //P_FUSION_FORMS +#endif //P_FAMILY_KYUREM + +#if P_FAMILY_KELDEO + const u32 gMonFrontPic_KeldeoOrdinary[] = INCBIN_U32("graphics/pokemon/keldeo/anim_front.4bpp.lz"); + const u32 gMonPalette_KeldeoOrdinary[] = INCBIN_U32("graphics/pokemon/keldeo/normal.gbapal.lz"); + const u32 gMonBackPic_KeldeoOrdinary[] = INCBIN_U32("graphics/pokemon/keldeo/back.4bpp.lz"); + const u32 gMonShinyPalette_KeldeoOrdinary[] = INCBIN_U32("graphics/pokemon/keldeo/shiny.gbapal.lz"); + const u8 gMonIcon_KeldeoOrdinary[] = INCBIN_U8("graphics/pokemon/keldeo/icon.4bpp"); + const u8 gMonFootprint_Keldeo[] = INCBIN_U8("graphics/pokemon/keldeo/footprint.1bpp"); + + const u32 gMonFrontPic_KeldeoResolute[] = INCBIN_U32("graphics/pokemon/keldeo/resolute/front.4bpp.lz"); + const u32 gMonPalette_KeldeoResolute[] = INCBIN_U32("graphics/pokemon/keldeo/resolute/normal.gbapal.lz"); + const u32 gMonBackPic_KeldeoResolute[] = INCBIN_U32("graphics/pokemon/keldeo/resolute/back.4bpp.lz"); + const u32 gMonShinyPalette_KeldeoResolute[] = INCBIN_U32("graphics/pokemon/keldeo/resolute/shiny.gbapal.lz"); + const u8 gMonIcon_KeldeoResolute[] = INCBIN_U8("graphics/pokemon/keldeo/resolute/icon.4bpp"); +#endif //P_FAMILY_KELDEO + +#if P_FAMILY_MELOETTA + const u32 gMonFrontPic_MeloettaAria[] = INCBIN_U32("graphics/pokemon/meloetta/anim_front.4bpp.lz"); + const u32 gMonPalette_MeloettaAria[] = INCBIN_U32("graphics/pokemon/meloetta/normal.gbapal.lz"); + const u32 gMonBackPic_MeloettaAria[] = INCBIN_U32("graphics/pokemon/meloetta/back.4bpp.lz"); + const u32 gMonShinyPalette_MeloettaAria[] = INCBIN_U32("graphics/pokemon/meloetta/shiny.gbapal.lz"); + const u8 gMonIcon_MeloettaAria[] = INCBIN_U8("graphics/pokemon/meloetta/icon.4bpp"); + const u8 gMonFootprint_Meloetta[] = INCBIN_U8("graphics/pokemon/meloetta/footprint.1bpp"); + + const u32 gMonFrontPic_MeloettaPirouette[] = INCBIN_U32("graphics/pokemon/meloetta/pirouette/front.4bpp.lz"); + const u32 gMonPalette_MeloettaPirouette[] = INCBIN_U32("graphics/pokemon/meloetta/pirouette/normal.gbapal.lz"); + const u32 gMonBackPic_MeloettaPirouette[] = INCBIN_U32("graphics/pokemon/meloetta/pirouette/back.4bpp.lz"); + const u32 gMonShinyPalette_MeloettaPirouette[] = INCBIN_U32("graphics/pokemon/meloetta/pirouette/shiny.gbapal.lz"); + const u8 gMonIcon_MeloettaPirouette[] = INCBIN_U8("graphics/pokemon/meloetta/pirouette/icon.4bpp"); +#endif //P_FAMILY_MELOETTA + +#if P_FAMILY_GENESECT + const u32 gMonFrontPic_Genesect[] = INCBIN_U32("graphics/pokemon/genesect/anim_front.4bpp.lz"); + const u32 gMonPalette_Genesect[] = INCBIN_U32("graphics/pokemon/genesect/normal.gbapal.lz"); + const u32 gMonBackPic_Genesect[] = INCBIN_U32("graphics/pokemon/genesect/back.4bpp.lz"); + const u32 gMonShinyPalette_Genesect[] = INCBIN_U32("graphics/pokemon/genesect/shiny.gbapal.lz"); + const u8 gMonIcon_Genesect[] = INCBIN_U8("graphics/pokemon/genesect/icon.4bpp"); + const u8 gMonFootprint_Genesect[] = INCBIN_U8("graphics/pokemon/genesect/footprint.1bpp"); + + const u32 gMonPalette_GenesectDouseDrive[] = INCBIN_U32("graphics/pokemon/genesect/douse_drive/normal.gbapal.lz"); + const u32 gMonShinyPalette_GenesectDouseDrive[] = INCBIN_U32("graphics/pokemon/genesect/douse_drive/shiny.gbapal.lz"); + + const u32 gMonPalette_GenesectShockDrive[] = INCBIN_U32("graphics/pokemon/genesect/shock_drive/normal.gbapal.lz"); + const u32 gMonShinyPalette_GenesectShockDrive[] = INCBIN_U32("graphics/pokemon/genesect/shock_drive/shiny.gbapal.lz"); + + const u32 gMonPalette_GenesectBurnDrive[] = INCBIN_U32("graphics/pokemon/genesect/burn_drive/normal.gbapal.lz"); + const u32 gMonShinyPalette_GenesectBurnDrive[] = INCBIN_U32("graphics/pokemon/genesect/burn_drive/shiny.gbapal.lz"); + + const u32 gMonPalette_GenesectChillDrive[] = INCBIN_U32("graphics/pokemon/genesect/chill_drive/normal.gbapal.lz"); + const u32 gMonShinyPalette_GenesectChillDrive[] = INCBIN_U32("graphics/pokemon/genesect/chill_drive/shiny.gbapal.lz"); +#endif //P_FAMILY_GENESECT + +#if P_FAMILY_CHESPIN + const u32 gMonFrontPic_Chespin[] = INCBIN_U32("graphics/pokemon/chespin/anim_front.4bpp.lz"); + const u32 gMonPalette_Chespin[] = INCBIN_U32("graphics/pokemon/chespin/normal.gbapal.lz"); + const u32 gMonBackPic_Chespin[] = INCBIN_U32("graphics/pokemon/chespin/back.4bpp.lz"); + const u32 gMonShinyPalette_Chespin[] = INCBIN_U32("graphics/pokemon/chespin/shiny.gbapal.lz"); + const u8 gMonIcon_Chespin[] = INCBIN_U8("graphics/pokemon/chespin/icon.4bpp"); + const u8 gMonFootprint_Chespin[] = INCBIN_U8("graphics/pokemon/chespin/footprint.1bpp"); + + const u32 gMonFrontPic_Quilladin[] = INCBIN_U32("graphics/pokemon/quilladin/anim_front.4bpp.lz"); + const u32 gMonPalette_Quilladin[] = INCBIN_U32("graphics/pokemon/quilladin/normal.gbapal.lz"); + const u32 gMonBackPic_Quilladin[] = INCBIN_U32("graphics/pokemon/quilladin/back.4bpp.lz"); + const u32 gMonShinyPalette_Quilladin[] = INCBIN_U32("graphics/pokemon/quilladin/shiny.gbapal.lz"); + const u8 gMonIcon_Quilladin[] = INCBIN_U8("graphics/pokemon/quilladin/icon.4bpp"); + const u8 gMonFootprint_Quilladin[] = INCBIN_U8("graphics/pokemon/quilladin/footprint.1bpp"); + + const u32 gMonFrontPic_Chesnaught[] = INCBIN_U32("graphics/pokemon/chesnaught/anim_front.4bpp.lz"); + const u32 gMonPalette_Chesnaught[] = INCBIN_U32("graphics/pokemon/chesnaught/normal.gbapal.lz"); + const u32 gMonBackPic_Chesnaught[] = INCBIN_U32("graphics/pokemon/chesnaught/back.4bpp.lz"); + const u32 gMonShinyPalette_Chesnaught[] = INCBIN_U32("graphics/pokemon/chesnaught/shiny.gbapal.lz"); + const u8 gMonIcon_Chesnaught[] = INCBIN_U8("graphics/pokemon/chesnaught/icon.4bpp"); + const u8 gMonFootprint_Chesnaught[] = INCBIN_U8("graphics/pokemon/chesnaught/footprint.1bpp"); +#endif //P_FAMILY_CHESPIN + +#if P_FAMILY_FENNEKIN + const u32 gMonFrontPic_Fennekin[] = INCBIN_U32("graphics/pokemon/fennekin/anim_front.4bpp.lz"); + const u32 gMonPalette_Fennekin[] = INCBIN_U32("graphics/pokemon/fennekin/normal.gbapal.lz"); + const u32 gMonBackPic_Fennekin[] = INCBIN_U32("graphics/pokemon/fennekin/back.4bpp.lz"); + const u32 gMonShinyPalette_Fennekin[] = INCBIN_U32("graphics/pokemon/fennekin/shiny.gbapal.lz"); + const u8 gMonIcon_Fennekin[] = INCBIN_U8("graphics/pokemon/fennekin/icon.4bpp"); + const u8 gMonFootprint_Fennekin[] = INCBIN_U8("graphics/pokemon/fennekin/footprint.1bpp"); + + const u32 gMonFrontPic_Braixen[] = INCBIN_U32("graphics/pokemon/braixen/anim_front.4bpp.lz"); + const u32 gMonPalette_Braixen[] = INCBIN_U32("graphics/pokemon/braixen/normal.gbapal.lz"); + const u32 gMonBackPic_Braixen[] = INCBIN_U32("graphics/pokemon/braixen/back.4bpp.lz"); + const u32 gMonShinyPalette_Braixen[] = INCBIN_U32("graphics/pokemon/braixen/shiny.gbapal.lz"); + const u8 gMonIcon_Braixen[] = INCBIN_U8("graphics/pokemon/braixen/icon.4bpp"); + const u8 gMonFootprint_Braixen[] = INCBIN_U8("graphics/pokemon/braixen/footprint.1bpp"); + + const u32 gMonFrontPic_Delphox[] = INCBIN_U32("graphics/pokemon/delphox/anim_front.4bpp.lz"); + const u32 gMonPalette_Delphox[] = INCBIN_U32("graphics/pokemon/delphox/normal.gbapal.lz"); + const u32 gMonBackPic_Delphox[] = INCBIN_U32("graphics/pokemon/delphox/back.4bpp.lz"); + const u32 gMonShinyPalette_Delphox[] = INCBIN_U32("graphics/pokemon/delphox/shiny.gbapal.lz"); + const u8 gMonIcon_Delphox[] = INCBIN_U8("graphics/pokemon/delphox/icon.4bpp"); + const u8 gMonFootprint_Delphox[] = INCBIN_U8("graphics/pokemon/delphox/footprint.1bpp"); +#endif //P_FAMILY_FENNEKIN + +#if P_FAMILY_FROAKIE + const u32 gMonFrontPic_Froakie[] = INCBIN_U32("graphics/pokemon/froakie/anim_front.4bpp.lz"); + const u32 gMonPalette_Froakie[] = INCBIN_U32("graphics/pokemon/froakie/normal.gbapal.lz"); + const u32 gMonBackPic_Froakie[] = INCBIN_U32("graphics/pokemon/froakie/back.4bpp.lz"); + const u32 gMonShinyPalette_Froakie[] = INCBIN_U32("graphics/pokemon/froakie/shiny.gbapal.lz"); + const u8 gMonIcon_Froakie[] = INCBIN_U8("graphics/pokemon/froakie/icon.4bpp"); + const u8 gMonFootprint_Froakie[] = INCBIN_U8("graphics/pokemon/froakie/footprint.1bpp"); + + const u32 gMonFrontPic_Frogadier[] = INCBIN_U32("graphics/pokemon/frogadier/anim_front.4bpp.lz"); + const u32 gMonPalette_Frogadier[] = INCBIN_U32("graphics/pokemon/frogadier/normal.gbapal.lz"); + const u32 gMonBackPic_Frogadier[] = INCBIN_U32("graphics/pokemon/frogadier/back.4bpp.lz"); + const u32 gMonShinyPalette_Frogadier[] = INCBIN_U32("graphics/pokemon/frogadier/shiny.gbapal.lz"); + const u8 gMonIcon_Frogadier[] = INCBIN_U8("graphics/pokemon/frogadier/icon.4bpp"); + const u8 gMonFootprint_Frogadier[] = INCBIN_U8("graphics/pokemon/frogadier/footprint.1bpp"); + + const u32 gMonFrontPic_Greninja[] = INCBIN_U32("graphics/pokemon/greninja/anim_front.4bpp.lz"); + const u32 gMonPalette_Greninja[] = INCBIN_U32("graphics/pokemon/greninja/normal.gbapal.lz"); + const u32 gMonBackPic_Greninja[] = INCBIN_U32("graphics/pokemon/greninja/back.4bpp.lz"); + const u32 gMonShinyPalette_Greninja[] = INCBIN_U32("graphics/pokemon/greninja/shiny.gbapal.lz"); + const u8 gMonIcon_Greninja[] = INCBIN_U8("graphics/pokemon/greninja/icon.4bpp"); + const u8 gMonFootprint_Greninja[] = INCBIN_U8("graphics/pokemon/greninja/footprint.1bpp"); + + const u32 gMonFrontPic_GreninjaAsh[] = INCBIN_U32("graphics/pokemon/greninja/ash/anim_front.4bpp.lz"); + const u32 gMonPalette_GreninjaAsh[] = INCBIN_U32("graphics/pokemon/greninja/ash/normal.gbapal.lz"); + const u32 gMonBackPic_GreninjaAsh[] = INCBIN_U32("graphics/pokemon/greninja/ash/back.4bpp.lz"); + const u32 gMonShinyPalette_GreninjaAsh[] = INCBIN_U32("graphics/pokemon/greninja/ash/shiny.gbapal.lz"); + const u8 gMonIcon_GreninjaAsh[] = INCBIN_U8("graphics/pokemon/greninja/ash/icon.4bpp"); +#endif //P_FAMILY_FROAKIE + +#if P_FAMILY_BUNNELBY + const u32 gMonFrontPic_Bunnelby[] = INCBIN_U32("graphics/pokemon/bunnelby/anim_front.4bpp.lz"); + const u32 gMonPalette_Bunnelby[] = INCBIN_U32("graphics/pokemon/bunnelby/normal.gbapal.lz"); + const u32 gMonBackPic_Bunnelby[] = INCBIN_U32("graphics/pokemon/bunnelby/back.4bpp.lz"); + const u32 gMonShinyPalette_Bunnelby[] = INCBIN_U32("graphics/pokemon/bunnelby/shiny.gbapal.lz"); + const u8 gMonIcon_Bunnelby[] = INCBIN_U8("graphics/pokemon/bunnelby/icon.4bpp"); + const u8 gMonFootprint_Bunnelby[] = INCBIN_U8("graphics/pokemon/bunnelby/footprint.1bpp"); + + const u32 gMonFrontPic_Diggersby[] = INCBIN_U32("graphics/pokemon/diggersby/anim_front.4bpp.lz"); + const u32 gMonPalette_Diggersby[] = INCBIN_U32("graphics/pokemon/diggersby/normal.gbapal.lz"); + const u32 gMonBackPic_Diggersby[] = INCBIN_U32("graphics/pokemon/diggersby/back.4bpp.lz"); + const u32 gMonShinyPalette_Diggersby[] = INCBIN_U32("graphics/pokemon/diggersby/shiny.gbapal.lz"); + const u8 gMonIcon_Diggersby[] = INCBIN_U8("graphics/pokemon/diggersby/icon.4bpp"); + const u8 gMonFootprint_Diggersby[] = INCBIN_U8("graphics/pokemon/diggersby/footprint.1bpp"); +#endif //P_FAMILY_BUNNELBY + +#if P_FAMILY_FLETCHLING + const u32 gMonFrontPic_Fletchling[] = INCBIN_U32("graphics/pokemon/fletchling/anim_front.4bpp.lz"); + const u32 gMonPalette_Fletchling[] = INCBIN_U32("graphics/pokemon/fletchling/normal.gbapal.lz"); + const u32 gMonBackPic_Fletchling[] = INCBIN_U32("graphics/pokemon/fletchling/back.4bpp.lz"); + const u32 gMonShinyPalette_Fletchling[] = INCBIN_U32("graphics/pokemon/fletchling/shiny.gbapal.lz"); + const u8 gMonIcon_Fletchling[] = INCBIN_U8("graphics/pokemon/fletchling/icon.4bpp"); + const u8 gMonFootprint_Fletchling[] = INCBIN_U8("graphics/pokemon/fletchling/footprint.1bpp"); + + const u32 gMonFrontPic_Fletchinder[] = INCBIN_U32("graphics/pokemon/fletchinder/anim_front.4bpp.lz"); + const u32 gMonPalette_Fletchinder[] = INCBIN_U32("graphics/pokemon/fletchinder/normal.gbapal.lz"); + const u32 gMonBackPic_Fletchinder[] = INCBIN_U32("graphics/pokemon/fletchinder/back.4bpp.lz"); + const u32 gMonShinyPalette_Fletchinder[] = INCBIN_U32("graphics/pokemon/fletchinder/shiny.gbapal.lz"); + const u8 gMonIcon_Fletchinder[] = INCBIN_U8("graphics/pokemon/fletchinder/icon.4bpp"); + const u8 gMonFootprint_Fletchinder[] = INCBIN_U8("graphics/pokemon/fletchinder/footprint.1bpp"); + + const u32 gMonFrontPic_Talonflame[] = INCBIN_U32("graphics/pokemon/talonflame/anim_front.4bpp.lz"); + const u32 gMonPalette_Talonflame[] = INCBIN_U32("graphics/pokemon/talonflame/normal.gbapal.lz"); + const u32 gMonBackPic_Talonflame[] = INCBIN_U32("graphics/pokemon/talonflame/back.4bpp.lz"); + const u32 gMonShinyPalette_Talonflame[] = INCBIN_U32("graphics/pokemon/talonflame/shiny.gbapal.lz"); + const u8 gMonIcon_Talonflame[] = INCBIN_U8("graphics/pokemon/talonflame/icon.4bpp"); + const u8 gMonFootprint_Talonflame[] = INCBIN_U8("graphics/pokemon/talonflame/footprint.1bpp"); +#endif //P_FAMILY_FLETCHLING + +#if P_FAMILY_SCATTERBUG + const u32 gMonFrontPic_Scatterbug[] = INCBIN_U32("graphics/pokemon/scatterbug/anim_front.4bpp.lz"); + const u32 gMonPalette_Scatterbug[] = INCBIN_U32("graphics/pokemon/scatterbug/normal.gbapal.lz"); + const u32 gMonBackPic_Scatterbug[] = INCBIN_U32("graphics/pokemon/scatterbug/back.4bpp.lz"); + const u32 gMonShinyPalette_Scatterbug[] = INCBIN_U32("graphics/pokemon/scatterbug/shiny.gbapal.lz"); + const u8 gMonIcon_Scatterbug[] = INCBIN_U8("graphics/pokemon/scatterbug/icon.4bpp"); + const u8 gMonFootprint_Scatterbug[] = INCBIN_U8("graphics/pokemon/scatterbug/footprint.1bpp"); + + const u32 gMonFrontPic_Spewpa[] = INCBIN_U32("graphics/pokemon/spewpa/anim_front.4bpp.lz"); + const u32 gMonPalette_Spewpa[] = INCBIN_U32("graphics/pokemon/spewpa/normal.gbapal.lz"); + const u32 gMonBackPic_Spewpa[] = INCBIN_U32("graphics/pokemon/spewpa/back.4bpp.lz"); + const u32 gMonShinyPalette_Spewpa[] = INCBIN_U32("graphics/pokemon/spewpa/shiny.gbapal.lz"); + const u8 gMonIcon_Spewpa[] = INCBIN_U8("graphics/pokemon/spewpa/icon.4bpp"); + const u8 gMonFootprint_Spewpa[] = INCBIN_U8("graphics/pokemon/spewpa/footprint.1bpp"); + + const u32 gMonFrontPic_VivillonIcySnow[] = INCBIN_U32("graphics/pokemon/vivillon/anim_front.4bpp.lz"); + const u32 gMonPalette_VivillonIcySnow[] = INCBIN_U32("graphics/pokemon/vivillon/normal.gbapal.lz"); + const u32 gMonBackPic_VivillonIcySnow[] = INCBIN_U32("graphics/pokemon/vivillon/back.4bpp.lz"); + const u32 gMonShinyPalette_VivillonIcySnow[] = INCBIN_U32("graphics/pokemon/vivillon/shiny.gbapal.lz"); + const u8 gMonIcon_VivillonIcySnow[] = INCBIN_U8("graphics/pokemon/vivillon/meadow/icon.4bpp"); + const u8 gMonFootprint_Vivillon[] = INCBIN_U8("graphics/pokemon/vivillon/footprint.1bpp"); + + const u32 gMonFrontPic_VivillonPolar[] = INCBIN_U32("graphics/pokemon/vivillon/polar/anim_front.4bpp.lz"); + const u32 gMonPalette_VivillonPolar[] = INCBIN_U32("graphics/pokemon/vivillon/polar/normal.gbapal.lz"); + const u32 gMonBackPic_VivillonPolar[] = INCBIN_U32("graphics/pokemon/vivillon/polar/back.4bpp.lz"); + const u32 gMonShinyPalette_VivillonPolar[] = INCBIN_U32("graphics/pokemon/vivillon/polar/shiny.gbapal.lz"); + const u8 gMonIcon_VivillonPolar[] = INCBIN_U8("graphics/pokemon/vivillon/polar/icon.4bpp"); + + const u32 gMonFrontPic_VivillonTundra[] = INCBIN_U32("graphics/pokemon/vivillon/tundra/anim_front.4bpp.lz"); + const u32 gMonPalette_VivillonTundra[] = INCBIN_U32("graphics/pokemon/vivillon/tundra/normal.gbapal.lz"); + const u32 gMonBackPic_VivillonTundra[] = INCBIN_U32("graphics/pokemon/vivillon/tundra/back.4bpp.lz"); + const u32 gMonShinyPalette_VivillonTundra[] = INCBIN_U32("graphics/pokemon/vivillon/tundra/shiny.gbapal.lz"); + const u8 gMonIcon_VivillonTundra[] = INCBIN_U8("graphics/pokemon/vivillon/tundra/icon.4bpp"); + + const u32 gMonFrontPic_VivillonContinental[] = INCBIN_U32("graphics/pokemon/vivillon/continental/anim_front.4bpp.lz"); + const u32 gMonPalette_VivillonContinental[] = INCBIN_U32("graphics/pokemon/vivillon/continental/normal.gbapal.lz"); + const u32 gMonBackPic_VivillonContinental[] = INCBIN_U32("graphics/pokemon/vivillon/continental/back.4bpp.lz"); + const u32 gMonShinyPalette_VivillonContinental[] = INCBIN_U32("graphics/pokemon/vivillon/continental/shiny.gbapal.lz"); + const u8 gMonIcon_VivillonContinental[] = INCBIN_U8("graphics/pokemon/vivillon/continental/icon.4bpp"); + + const u32 gMonFrontPic_VivillonGarden[] = INCBIN_U32("graphics/pokemon/vivillon/garden/anim_front.4bpp.lz"); + const u32 gMonPalette_VivillonGarden[] = INCBIN_U32("graphics/pokemon/vivillon/garden/normal.gbapal.lz"); + const u32 gMonBackPic_VivillonGarden[] = INCBIN_U32("graphics/pokemon/vivillon/garden/back.4bpp.lz"); + const u32 gMonShinyPalette_VivillonGarden[] = INCBIN_U32("graphics/pokemon/vivillon/garden/shiny.gbapal.lz"); + const u8 gMonIcon_VivillonGarden[] = INCBIN_U8("graphics/pokemon/vivillon/garden/icon.4bpp"); + + const u32 gMonFrontPic_VivillonElegant[] = INCBIN_U32("graphics/pokemon/vivillon/elegant/anim_front.4bpp.lz"); + const u32 gMonPalette_VivillonElegant[] = INCBIN_U32("graphics/pokemon/vivillon/elegant/normal.gbapal.lz"); + const u32 gMonBackPic_VivillonElegant[] = INCBIN_U32("graphics/pokemon/vivillon/elegant/back.4bpp.lz"); + const u32 gMonShinyPalette_VivillonElegant[] = INCBIN_U32("graphics/pokemon/vivillon/elegant/shiny.gbapal.lz"); + const u8 gMonIcon_VivillonElegant[] = INCBIN_U8("graphics/pokemon/vivillon/elegant/icon.4bpp"); + + const u32 gMonFrontPic_VivillonMeadow[] = INCBIN_U32("graphics/pokemon/vivillon/meadow/anim_front.4bpp.lz"); + const u32 gMonPalette_VivillonMeadow[] = INCBIN_U32("graphics/pokemon/vivillon/meadow/normal.gbapal.lz"); + const u32 gMonBackPic_VivillonMeadow[] = INCBIN_U32("graphics/pokemon/vivillon/meadow/back.4bpp.lz"); + const u32 gMonShinyPalette_VivillonMeadow[] = INCBIN_U32("graphics/pokemon/vivillon/meadow/shiny.gbapal.lz"); + const u8 gMonIcon_VivillonMeadow[] = INCBIN_U8("graphics/pokemon/vivillon/meadow/icon.4bpp"); + + const u32 gMonFrontPic_VivillonModern[] = INCBIN_U32("graphics/pokemon/vivillon/modern/anim_front.4bpp.lz"); + const u32 gMonPalette_VivillonModern[] = INCBIN_U32("graphics/pokemon/vivillon/modern/normal.gbapal.lz"); + const u32 gMonBackPic_VivillonModern[] = INCBIN_U32("graphics/pokemon/vivillon/modern/back.4bpp.lz"); + const u32 gMonShinyPalette_VivillonModern[] = INCBIN_U32("graphics/pokemon/vivillon/modern/shiny.gbapal.lz"); + const u8 gMonIcon_VivillonModern[] = INCBIN_U8("graphics/pokemon/vivillon/modern/icon.4bpp"); + + const u32 gMonFrontPic_VivillonMarine[] = INCBIN_U32("graphics/pokemon/vivillon/marine/anim_front.4bpp.lz"); + const u32 gMonPalette_VivillonMarine[] = INCBIN_U32("graphics/pokemon/vivillon/marine/normal.gbapal.lz"); + const u32 gMonBackPic_VivillonMarine[] = INCBIN_U32("graphics/pokemon/vivillon/marine/back.4bpp.lz"); + const u32 gMonShinyPalette_VivillonMarine[] = INCBIN_U32("graphics/pokemon/vivillon/marine/shiny.gbapal.lz"); + const u8 gMonIcon_VivillonMarine[] = INCBIN_U8("graphics/pokemon/vivillon/marine/icon.4bpp"); + + const u32 gMonFrontPic_VivillonArchipelago[] = INCBIN_U32("graphics/pokemon/vivillon/archipelago/anim_front.4bpp.lz"); + const u32 gMonPalette_VivillonArchipelago[] = INCBIN_U32("graphics/pokemon/vivillon/archipelago/normal.gbapal.lz"); + const u32 gMonBackPic_VivillonArchipelago[] = INCBIN_U32("graphics/pokemon/vivillon/archipelago/back.4bpp.lz"); + const u32 gMonShinyPalette_VivillonArchipelago[] = INCBIN_U32("graphics/pokemon/vivillon/archipelago/shiny.gbapal.lz"); + const u8 gMonIcon_VivillonArchipelago[] = INCBIN_U8("graphics/pokemon/vivillon/archipelago/icon.4bpp"); + + const u32 gMonFrontPic_VivillonHighPlains[] = INCBIN_U32("graphics/pokemon/vivillon/high_plains/anim_front.4bpp.lz"); + const u32 gMonPalette_VivillonHighPlains[] = INCBIN_U32("graphics/pokemon/vivillon/high_plains/normal.gbapal.lz"); + const u32 gMonBackPic_VivillonHighPlains[] = INCBIN_U32("graphics/pokemon/vivillon/high_plains/back.4bpp.lz"); + const u32 gMonShinyPalette_VivillonHighPlains[] = INCBIN_U32("graphics/pokemon/vivillon/high_plains/shiny.gbapal.lz"); + const u8 gMonIcon_VivillonHighPlains[] = INCBIN_U8("graphics/pokemon/vivillon/high_plains/icon.4bpp"); + + const u32 gMonFrontPic_VivillonSandstorm[] = INCBIN_U32("graphics/pokemon/vivillon/sandstorm/anim_front.4bpp.lz"); + const u32 gMonPalette_VivillonSandstorm[] = INCBIN_U32("graphics/pokemon/vivillon/sandstorm/normal.gbapal.lz"); + const u32 gMonBackPic_VivillonSandstorm[] = INCBIN_U32("graphics/pokemon/vivillon/sandstorm/back.4bpp.lz"); + const u32 gMonShinyPalette_VivillonSandstorm[] = INCBIN_U32("graphics/pokemon/vivillon/sandstorm/shiny.gbapal.lz"); + const u8 gMonIcon_VivillonSandstorm[] = INCBIN_U8("graphics/pokemon/vivillon/sandstorm/icon.4bpp"); + + const u32 gMonFrontPic_VivillonRiver[] = INCBIN_U32("graphics/pokemon/vivillon/river/anim_front.4bpp.lz"); + const u32 gMonPalette_VivillonRiver[] = INCBIN_U32("graphics/pokemon/vivillon/river/normal.gbapal.lz"); + const u32 gMonBackPic_VivillonRiver[] = INCBIN_U32("graphics/pokemon/vivillon/river/back.4bpp.lz"); + const u32 gMonShinyPalette_VivillonRiver[] = INCBIN_U32("graphics/pokemon/vivillon/river/shiny.gbapal.lz"); + const u8 gMonIcon_VivillonRiver[] = INCBIN_U8("graphics/pokemon/vivillon/river/icon.4bpp"); + + const u32 gMonFrontPic_VivillonMonsoon[] = INCBIN_U32("graphics/pokemon/vivillon/monsoon/anim_front.4bpp.lz"); + const u32 gMonPalette_VivillonMonsoon[] = INCBIN_U32("graphics/pokemon/vivillon/monsoon/normal.gbapal.lz"); + const u32 gMonBackPic_VivillonMonsoon[] = INCBIN_U32("graphics/pokemon/vivillon/monsoon/back.4bpp.lz"); + const u32 gMonShinyPalette_VivillonMonsoon[] = INCBIN_U32("graphics/pokemon/vivillon/monsoon/shiny.gbapal.lz"); + const u8 gMonIcon_VivillonMonsoon[] = INCBIN_U8("graphics/pokemon/vivillon/monsoon/icon.4bpp"); + + const u32 gMonFrontPic_VivillonSavanna[] = INCBIN_U32("graphics/pokemon/vivillon/savanna/anim_front.4bpp.lz"); + const u32 gMonPalette_VivillonSavanna[] = INCBIN_U32("graphics/pokemon/vivillon/savanna/normal.gbapal.lz"); + const u32 gMonBackPic_VivillonSavanna[] = INCBIN_U32("graphics/pokemon/vivillon/savanna/back.4bpp.lz"); + const u32 gMonShinyPalette_VivillonSavanna[] = INCBIN_U32("graphics/pokemon/vivillon/savanna/shiny.gbapal.lz"); + const u8 gMonIcon_VivillonSavanna[] = INCBIN_U8("graphics/pokemon/vivillon/savanna/icon.4bpp"); + + const u32 gMonFrontPic_VivillonSun[] = INCBIN_U32("graphics/pokemon/vivillon/sun/anim_front.4bpp.lz"); + const u32 gMonPalette_VivillonSun[] = INCBIN_U32("graphics/pokemon/vivillon/sun/normal.gbapal.lz"); + const u32 gMonBackPic_VivillonSun[] = INCBIN_U32("graphics/pokemon/vivillon/sun/back.4bpp.lz"); + const u32 gMonShinyPalette_VivillonSun[] = INCBIN_U32("graphics/pokemon/vivillon/sun/shiny.gbapal.lz"); + const u8 gMonIcon_VivillonSun[] = INCBIN_U8("graphics/pokemon/vivillon/sun/icon.4bpp"); + + const u32 gMonFrontPic_VivillonOcean[] = INCBIN_U32("graphics/pokemon/vivillon/ocean/anim_front.4bpp.lz"); + const u32 gMonPalette_VivillonOcean[] = INCBIN_U32("graphics/pokemon/vivillon/ocean/normal.gbapal.lz"); + const u32 gMonBackPic_VivillonOcean[] = INCBIN_U32("graphics/pokemon/vivillon/ocean/back.4bpp.lz"); + const u32 gMonShinyPalette_VivillonOcean[] = INCBIN_U32("graphics/pokemon/vivillon/ocean/shiny.gbapal.lz"); + const u8 gMonIcon_VivillonOcean[] = INCBIN_U8("graphics/pokemon/vivillon/ocean/icon.4bpp"); + + const u32 gMonFrontPic_VivillonJungle[] = INCBIN_U32("graphics/pokemon/vivillon/jungle/anim_front.4bpp.lz"); + const u32 gMonPalette_VivillonJungle[] = INCBIN_U32("graphics/pokemon/vivillon/jungle/normal.gbapal.lz"); + const u32 gMonBackPic_VivillonJungle[] = INCBIN_U32("graphics/pokemon/vivillon/jungle/back.4bpp.lz"); + const u32 gMonShinyPalette_VivillonJungle[] = INCBIN_U32("graphics/pokemon/vivillon/jungle/shiny.gbapal.lz"); + const u8 gMonIcon_VivillonJungle[] = INCBIN_U8("graphics/pokemon/vivillon/jungle/icon.4bpp"); + + const u32 gMonFrontPic_VivillonFancy[] = INCBIN_U32("graphics/pokemon/vivillon/fancy/anim_front.4bpp.lz"); + const u32 gMonPalette_VivillonFancy[] = INCBIN_U32("graphics/pokemon/vivillon/fancy/normal.gbapal.lz"); + const u32 gMonBackPic_VivillonFancy[] = INCBIN_U32("graphics/pokemon/vivillon/fancy/back.4bpp.lz"); + const u32 gMonShinyPalette_VivillonFancy[] = INCBIN_U32("graphics/pokemon/vivillon/fancy/shiny.gbapal.lz"); + const u8 gMonIcon_VivillonFancy[] = INCBIN_U8("graphics/pokemon/vivillon/fancy/icon.4bpp"); + + const u32 gMonFrontPic_VivillonPokeBall[] = INCBIN_U32("graphics/pokemon/vivillon/poke_ball/anim_front.4bpp.lz"); + const u32 gMonPalette_VivillonPokeBall[] = INCBIN_U32("graphics/pokemon/vivillon/poke_ball/normal.gbapal.lz"); + const u32 gMonBackPic_VivillonPokeBall[] = INCBIN_U32("graphics/pokemon/vivillon/poke_ball/back.4bpp.lz"); + const u32 gMonShinyPalette_VivillonPokeBall[] = INCBIN_U32("graphics/pokemon/vivillon/poke_ball/shiny.gbapal.lz"); + const u8 gMonIcon_VivillonPokeBall[] = INCBIN_U8("graphics/pokemon/vivillon/poke_ball/icon.4bpp"); +#endif //P_FAMILY_SCATTERBUG + +#if P_FAMILY_LITLEO + const u32 gMonFrontPic_Litleo[] = INCBIN_U32("graphics/pokemon/litleo/anim_front.4bpp.lz"); + const u32 gMonPalette_Litleo[] = INCBIN_U32("graphics/pokemon/litleo/normal.gbapal.lz"); + const u32 gMonBackPic_Litleo[] = INCBIN_U32("graphics/pokemon/litleo/back.4bpp.lz"); + const u32 gMonShinyPalette_Litleo[] = INCBIN_U32("graphics/pokemon/litleo/shiny.gbapal.lz"); + const u8 gMonIcon_Litleo[] = INCBIN_U8("graphics/pokemon/litleo/icon.4bpp"); + const u8 gMonFootprint_Litleo[] = INCBIN_U8("graphics/pokemon/litleo/footprint.1bpp"); + + const u32 gMonFrontPic_Pyroar[] = INCBIN_U32("graphics/pokemon/pyroar/anim_front.4bpp.lz"); + const u32 gMonPalette_Pyroar[] = INCBIN_U32("graphics/pokemon/pyroar/normal.gbapal.lz"); + const u32 gMonBackPic_Pyroar[] = INCBIN_U32("graphics/pokemon/pyroar/back.4bpp.lz"); + const u32 gMonShinyPalette_Pyroar[] = INCBIN_U32("graphics/pokemon/pyroar/shiny.gbapal.lz"); + const u8 gMonIcon_Pyroar[] = INCBIN_U8("graphics/pokemon/pyroar/icon.4bpp"); + const u8 gMonFootprint_Pyroar[] = INCBIN_U8("graphics/pokemon/pyroar/footprint.1bpp"); + + const u32 gMonFrontPic_PyroarF[] = INCBIN_U32("graphics/pokemon/pyroar/anim_frontf.4bpp.lz"); + const u32 gMonBackPic_PyroarF[] = INCBIN_U32("graphics/pokemon/pyroar/backf.4bpp.lz"); + const u8 gMonIcon_PyroarF[] = INCBIN_U8("graphics/pokemon/pyroar/iconf.4bpp"); +#endif //P_FAMILY_LITLEO + +#if P_FAMILY_FLABEBE + const u32 gMonFrontPic_Flabebe[] = INCBIN_U32("graphics/pokemon/flabebe/anim_front.4bpp.lz"); + const u32 gMonBackPic_Flabebe[] = INCBIN_U32("graphics/pokemon/flabebe/back.4bpp.lz"); + const u8 gMonFootprint_Flabebe[] = INCBIN_U8("graphics/pokemon/flabebe/footprint.1bpp"); + + const u32 gMonPalette_FlabebeRedFlower[] = INCBIN_U32("graphics/pokemon/flabebe/normal.gbapal.lz"); + const u32 gMonShinyPalette_FlabebeRedFlower[] = INCBIN_U32("graphics/pokemon/flabebe/shiny.gbapal.lz"); + const u8 gMonIcon_FlabebeRedFlower[] = INCBIN_U8("graphics/pokemon/flabebe/icon.4bpp"); + + const u32 gMonPalette_FlabebeYellowFlower[] = INCBIN_U32("graphics/pokemon/flabebe/yellow_flower/normal.gbapal.lz"); + const u32 gMonShinyPalette_FlabebeYellowFlower[] = INCBIN_U32("graphics/pokemon/flabebe/yellow_flower/shiny.gbapal.lz"); + const u8 gMonIcon_FlabebeYellowFlower[] = INCBIN_U8("graphics/pokemon/flabebe/yellow_flower/icon.4bpp"); + + const u32 gMonPalette_FlabebeOrangeFlower[] = INCBIN_U32("graphics/pokemon/flabebe/orange_flower/normal.gbapal.lz"); + const u32 gMonShinyPalette_FlabebeOrangeFlower[] = INCBIN_U32("graphics/pokemon/flabebe/orange_flower/shiny.gbapal.lz"); + const u8 gMonIcon_FlabebeOrangeFlower[] = INCBIN_U8("graphics/pokemon/flabebe/orange_flower/icon.4bpp"); + + const u32 gMonPalette_FlabebeBlueFlower[] = INCBIN_U32("graphics/pokemon/flabebe/blue_flower/normal.gbapal.lz"); + const u32 gMonShinyPalette_FlabebeBlueFlower[] = INCBIN_U32("graphics/pokemon/flabebe/blue_flower/shiny.gbapal.lz"); + const u8 gMonIcon_FlabebeBlueFlower[] = INCBIN_U8("graphics/pokemon/flabebe/blue_flower/icon.4bpp"); + + const u32 gMonPalette_FlabebeWhiteFlower[] = INCBIN_U32("graphics/pokemon/flabebe/white_flower/normal.gbapal.lz"); + const u32 gMonShinyPalette_FlabebeWhiteFlower[] = INCBIN_U32("graphics/pokemon/flabebe/white_flower/shiny.gbapal.lz"); + const u8 gMonIcon_FlabebeWhiteFlower[] = INCBIN_U8("graphics/pokemon/flabebe/white_flower/icon.4bpp"); + + const u32 gMonFrontPic_Floette[] = INCBIN_U32("graphics/pokemon/floette/anim_front.4bpp.lz"); + const u32 gMonBackPic_Floette[] = INCBIN_U32("graphics/pokemon/floette/back.4bpp.lz"); + const u8 gMonFootprint_Floette[] = INCBIN_U8("graphics/pokemon/floette/footprint.1bpp"); + + const u32 gMonPalette_FloetteRedFlower[] = INCBIN_U32("graphics/pokemon/floette/normal.gbapal.lz"); + const u32 gMonShinyPalette_FloetteRedFlower[] = INCBIN_U32("graphics/pokemon/floette/shiny.gbapal.lz"); + const u8 gMonIcon_FloetteRedFlower[] = INCBIN_U8("graphics/pokemon/floette/icon.4bpp"); + + const u32 gMonPalette_FloetteYellowFlower[] = INCBIN_U32("graphics/pokemon/floette/yellow_flower/normal.gbapal.lz"); + const u32 gMonShinyPalette_FloetteYellowFlower[] = INCBIN_U32("graphics/pokemon/floette/yellow_flower/shiny.gbapal.lz"); + const u8 gMonIcon_FloetteYellowFlower[] = INCBIN_U8("graphics/pokemon/floette/yellow_flower/icon.4bpp"); + + const u32 gMonPalette_FloetteOrangeFlower[] = INCBIN_U32("graphics/pokemon/floette/orange_flower/normal.gbapal.lz"); + const u32 gMonShinyPalette_FloetteOrangeFlower[] = INCBIN_U32("graphics/pokemon/floette/orange_flower/shiny.gbapal.lz"); + const u8 gMonIcon_FloetteOrangeFlower[] = INCBIN_U8("graphics/pokemon/floette/orange_flower/icon.4bpp"); + + const u32 gMonPalette_FloetteBlueFlower[] = INCBIN_U32("graphics/pokemon/floette/blue_flower/normal.gbapal.lz"); + const u32 gMonShinyPalette_FloetteBlueFlower[] = INCBIN_U32("graphics/pokemon/floette/blue_flower/shiny.gbapal.lz"); + const u8 gMonIcon_FloetteBlueFlower[] = INCBIN_U8("graphics/pokemon/floette/blue_flower/icon.4bpp"); + + const u32 gMonPalette_FloetteWhiteFlower[] = INCBIN_U32("graphics/pokemon/floette/white_flower/normal.gbapal.lz"); + const u32 gMonShinyPalette_FloetteWhiteFlower[] = INCBIN_U32("graphics/pokemon/floette/white_flower/shiny.gbapal.lz"); + const u8 gMonIcon_FloetteWhiteFlower[] = INCBIN_U8("graphics/pokemon/floette/white_flower/icon.4bpp"); + + const u32 gMonFrontPic_FloetteEternalFlower[] = INCBIN_U32("graphics/pokemon/floette/eternal_flower/anim_front.4bpp.lz"); + const u32 gMonPalette_FloetteEternalFlower[] = INCBIN_U32("graphics/pokemon/floette/eternal_flower/normal.gbapal.lz"); + const u32 gMonBackPic_FloetteEternalFlower[] = INCBIN_U32("graphics/pokemon/floette/eternal_flower/back.4bpp.lz"); + const u32 gMonShinyPalette_FloetteEternalFlower[] = INCBIN_U32("graphics/pokemon/floette/eternal_flower/shiny.gbapal.lz"); + const u8 gMonIcon_FloetteEternalFlower[] = INCBIN_U8("graphics/pokemon/floette/eternal_flower/icon.4bpp"); + + const u32 gMonFrontPic_Florges[] = INCBIN_U32("graphics/pokemon/florges/anim_front.4bpp.lz"); + const u32 gMonBackPic_Florges[] = INCBIN_U32("graphics/pokemon/florges/back.4bpp.lz"); + const u8 gMonFootprint_Florges[] = INCBIN_U8("graphics/pokemon/florges/footprint.1bpp"); + + const u32 gMonPalette_FlorgesRedFlower[] = INCBIN_U32("graphics/pokemon/florges/normal.gbapal.lz"); + const u32 gMonShinyPalette_FlorgesRedFlower[] = INCBIN_U32("graphics/pokemon/florges/shiny.gbapal.lz"); + const u8 gMonIcon_FlorgesRedFlower[] = INCBIN_U8("graphics/pokemon/florges/icon.4bpp"); + + const u32 gMonPalette_FlorgesYellowFlower[] = INCBIN_U32("graphics/pokemon/florges/yellow_flower/normal.gbapal.lz"); + const u32 gMonShinyPalette_FlorgesYellowFlower[] = INCBIN_U32("graphics/pokemon/florges/yellow_flower/shiny.gbapal.lz"); + const u8 gMonIcon_FlorgesYellowFlower[] = INCBIN_U8("graphics/pokemon/florges/yellow_flower/icon.4bpp"); + + const u32 gMonPalette_FlorgesOrangeFlower[] = INCBIN_U32("graphics/pokemon/florges/orange_flower/normal.gbapal.lz"); + const u32 gMonShinyPalette_FlorgesOrangeFlower[] = INCBIN_U32("graphics/pokemon/florges/orange_flower/shiny.gbapal.lz"); + const u8 gMonIcon_FlorgesOrangeFlower[] = INCBIN_U8("graphics/pokemon/florges/orange_flower/icon.4bpp"); + + const u32 gMonPalette_FlorgesBlueFlower[] = INCBIN_U32("graphics/pokemon/florges/blue_flower/normal.gbapal.lz"); + const u32 gMonShinyPalette_FlorgesBlueFlower[] = INCBIN_U32("graphics/pokemon/florges/blue_flower/shiny.gbapal.lz"); + const u8 gMonIcon_FlorgesBlueFlower[] = INCBIN_U8("graphics/pokemon/florges/blue_flower/icon.4bpp"); + + const u32 gMonPalette_FlorgesWhiteFlower[] = INCBIN_U32("graphics/pokemon/florges/white_flower/normal.gbapal.lz"); + const u32 gMonShinyPalette_FlorgesWhiteFlower[] = INCBIN_U32("graphics/pokemon/florges/white_flower/shiny.gbapal.lz"); + const u8 gMonIcon_FlorgesWhiteFlower[] = INCBIN_U8("graphics/pokemon/florges/white_flower/icon.4bpp"); +#endif //P_FAMILY_FLABEBE + +#if P_FAMILY_SKIDDO + const u32 gMonFrontPic_Skiddo[] = INCBIN_U32("graphics/pokemon/skiddo/anim_front.4bpp.lz"); + const u32 gMonPalette_Skiddo[] = INCBIN_U32("graphics/pokemon/skiddo/normal.gbapal.lz"); + const u32 gMonBackPic_Skiddo[] = INCBIN_U32("graphics/pokemon/skiddo/back.4bpp.lz"); + const u32 gMonShinyPalette_Skiddo[] = INCBIN_U32("graphics/pokemon/skiddo/shiny.gbapal.lz"); + const u8 gMonIcon_Skiddo[] = INCBIN_U8("graphics/pokemon/skiddo/icon.4bpp"); + const u8 gMonFootprint_Skiddo[] = INCBIN_U8("graphics/pokemon/skiddo/footprint.1bpp"); + + const u32 gMonFrontPic_Gogoat[] = INCBIN_U32("graphics/pokemon/gogoat/anim_front.4bpp.lz"); + const u32 gMonPalette_Gogoat[] = INCBIN_U32("graphics/pokemon/gogoat/normal.gbapal.lz"); + const u32 gMonBackPic_Gogoat[] = INCBIN_U32("graphics/pokemon/gogoat/back.4bpp.lz"); + const u32 gMonShinyPalette_Gogoat[] = INCBIN_U32("graphics/pokemon/gogoat/shiny.gbapal.lz"); + const u8 gMonIcon_Gogoat[] = INCBIN_U8("graphics/pokemon/gogoat/icon.4bpp"); + const u8 gMonFootprint_Gogoat[] = INCBIN_U8("graphics/pokemon/gogoat/footprint.1bpp"); +#endif //P_FAMILY_SKIDDO + +#if P_FAMILY_PANCHAM + const u32 gMonFrontPic_Pancham[] = INCBIN_U32("graphics/pokemon/pancham/anim_front.4bpp.lz"); + const u32 gMonPalette_Pancham[] = INCBIN_U32("graphics/pokemon/pancham/normal.gbapal.lz"); + const u32 gMonBackPic_Pancham[] = INCBIN_U32("graphics/pokemon/pancham/back.4bpp.lz"); + const u32 gMonShinyPalette_Pancham[] = INCBIN_U32("graphics/pokemon/pancham/shiny.gbapal.lz"); + const u8 gMonIcon_Pancham[] = INCBIN_U8("graphics/pokemon/pancham/icon.4bpp"); + const u8 gMonFootprint_Pancham[] = INCBIN_U8("graphics/pokemon/pancham/footprint.1bpp"); + + const u32 gMonFrontPic_Pangoro[] = INCBIN_U32("graphics/pokemon/pangoro/anim_front.4bpp.lz"); + const u32 gMonPalette_Pangoro[] = INCBIN_U32("graphics/pokemon/pangoro/normal.gbapal.lz"); + const u32 gMonBackPic_Pangoro[] = INCBIN_U32("graphics/pokemon/pangoro/back.4bpp.lz"); + const u32 gMonShinyPalette_Pangoro[] = INCBIN_U32("graphics/pokemon/pangoro/shiny.gbapal.lz"); + const u8 gMonIcon_Pangoro[] = INCBIN_U8("graphics/pokemon/pangoro/icon.4bpp"); + const u8 gMonFootprint_Pangoro[] = INCBIN_U8("graphics/pokemon/pangoro/footprint.1bpp"); +#endif //P_FAMILY_PANCHAM + +#if P_FAMILY_FURFROU + const u32 gMonFrontPic_FurfrouNatural[] = INCBIN_U32("graphics/pokemon/furfrou/anim_front.4bpp.lz"); + const u32 gMonPalette_FurfrouNatural[] = INCBIN_U32("graphics/pokemon/furfrou/normal.gbapal.lz"); + const u32 gMonBackPic_FurfrouNatural[] = INCBIN_U32("graphics/pokemon/furfrou/back.4bpp.lz"); + const u32 gMonShinyPalette_FurfrouNatural[] = INCBIN_U32("graphics/pokemon/furfrou/shiny.gbapal.lz"); + const u8 gMonIcon_FurfrouNatural[] = INCBIN_U8("graphics/pokemon/furfrou/icon.4bpp"); + const u8 gMonFootprint_Furfrou[] = INCBIN_U8("graphics/pokemon/furfrou/footprint.1bpp"); + + const u32 gMonFrontPic_FurfrouHeartTrim[] = INCBIN_U32("graphics/pokemon/furfrou/heart_trim/anim_front.4bpp.lz"); + const u32 gMonPalette_FurfrouHeartTrim[] = INCBIN_U32("graphics/pokemon/furfrou/heart_trim/normal.gbapal.lz"); + const u32 gMonBackPic_FurfrouHeartTrim[] = INCBIN_U32("graphics/pokemon/furfrou/heart_trim/back.4bpp.lz"); + const u32 gMonShinyPalette_FurfrouHeartTrim[] = INCBIN_U32("graphics/pokemon/furfrou/heart_trim/shiny.gbapal.lz"); + const u8 gMonIcon_FurfrouHeartTrim[] = INCBIN_U8("graphics/pokemon/furfrou/heart_trim/icon.4bpp"); + + const u32 gMonFrontPic_FurfrouStarTrim[] = INCBIN_U32("graphics/pokemon/furfrou/star_trim/anim_front.4bpp.lz"); + const u32 gMonPalette_FurfrouStarTrim[] = INCBIN_U32("graphics/pokemon/furfrou/star_trim/normal.gbapal.lz"); + const u32 gMonBackPic_FurfrouStarTrim[] = INCBIN_U32("graphics/pokemon/furfrou/star_trim/back.4bpp.lz"); + const u32 gMonShinyPalette_FurfrouStarTrim[] = INCBIN_U32("graphics/pokemon/furfrou/star_trim/shiny.gbapal.lz"); + const u8 gMonIcon_FurfrouStarTrim[] = INCBIN_U8("graphics/pokemon/furfrou/star_trim/icon.4bpp"); + + const u32 gMonFrontPic_FurfrouDiamondTrim[] = INCBIN_U32("graphics/pokemon/furfrou/diamond_trim/anim_front.4bpp.lz"); + const u32 gMonPalette_FurfrouDiamondTrim[] = INCBIN_U32("graphics/pokemon/furfrou/diamond_trim/normal.gbapal.lz"); + const u32 gMonBackPic_FurfrouDiamondTrim[] = INCBIN_U32("graphics/pokemon/furfrou/diamond_trim/back.4bpp.lz"); + const u32 gMonShinyPalette_FurfrouDiamondTrim[] = INCBIN_U32("graphics/pokemon/furfrou/diamond_trim/shiny.gbapal.lz"); + const u8 gMonIcon_FurfrouDiamondTrim[] = INCBIN_U8("graphics/pokemon/furfrou/diamond_trim/icon.4bpp"); + + const u32 gMonFrontPic_FurfrouDebutanteTrim[] = INCBIN_U32("graphics/pokemon/furfrou/debutante_trim/anim_front.4bpp.lz"); + const u32 gMonPalette_FurfrouDebutanteTrim[] = INCBIN_U32("graphics/pokemon/furfrou/debutante_trim/normal.gbapal.lz"); + const u32 gMonBackPic_FurfrouDebutanteTrim[] = INCBIN_U32("graphics/pokemon/furfrou/debutante_trim/back.4bpp.lz"); + const u32 gMonShinyPalette_FurfrouDebutanteTrim[] = INCBIN_U32("graphics/pokemon/furfrou/debutante_trim/shiny.gbapal.lz"); + const u8 gMonIcon_FurfrouDebutanteTrim[] = INCBIN_U8("graphics/pokemon/furfrou/debutante_trim/icon.4bpp"); + + const u32 gMonFrontPic_FurfrouMatronTrim[] = INCBIN_U32("graphics/pokemon/furfrou/matron_trim/anim_front.4bpp.lz"); + const u32 gMonPalette_FurfrouMatronTrim[] = INCBIN_U32("graphics/pokemon/furfrou/matron_trim/normal.gbapal.lz"); + const u32 gMonBackPic_FurfrouMatronTrim[] = INCBIN_U32("graphics/pokemon/furfrou/matron_trim/back.4bpp.lz"); + const u32 gMonShinyPalette_FurfrouMatronTrim[] = INCBIN_U32("graphics/pokemon/furfrou/matron_trim/shiny.gbapal.lz"); + const u8 gMonIcon_FurfrouMatronTrim[] = INCBIN_U8("graphics/pokemon/furfrou/matron_trim/icon.4bpp"); + + const u32 gMonFrontPic_FurfrouDandyTrim[] = INCBIN_U32("graphics/pokemon/furfrou/dandy_trim/anim_front.4bpp.lz"); + const u32 gMonPalette_FurfrouDandyTrim[] = INCBIN_U32("graphics/pokemon/furfrou/dandy_trim/normal.gbapal.lz"); + const u32 gMonBackPic_FurfrouDandyTrim[] = INCBIN_U32("graphics/pokemon/furfrou/dandy_trim/back.4bpp.lz"); + const u32 gMonShinyPalette_FurfrouDandyTrim[] = INCBIN_U32("graphics/pokemon/furfrou/dandy_trim/shiny.gbapal.lz"); + const u8 gMonIcon_FurfrouDandyTrim[] = INCBIN_U8("graphics/pokemon/furfrou/dandy_trim/icon.4bpp"); + + const u32 gMonFrontPic_FurfrouLaReineTrim[] = INCBIN_U32("graphics/pokemon/furfrou/la_reine_trim/anim_front.4bpp.lz"); + const u32 gMonPalette_FurfrouLaReineTrim[] = INCBIN_U32("graphics/pokemon/furfrou/la_reine_trim/normal.gbapal.lz"); + const u32 gMonBackPic_FurfrouLaReineTrim[] = INCBIN_U32("graphics/pokemon/furfrou/la_reine_trim/back.4bpp.lz"); + const u32 gMonShinyPalette_FurfrouLaReineTrim[] = INCBIN_U32("graphics/pokemon/furfrou/la_reine_trim/shiny.gbapal.lz"); + const u8 gMonIcon_FurfrouLaReineTrim[] = INCBIN_U8("graphics/pokemon/furfrou/la_reine_trim/icon.4bpp"); + + const u32 gMonFrontPic_FurfrouKabukiTrim[] = INCBIN_U32("graphics/pokemon/furfrou/kabuki_trim/anim_front.4bpp.lz"); + const u32 gMonPalette_FurfrouKabukiTrim[] = INCBIN_U32("graphics/pokemon/furfrou/kabuki_trim/normal.gbapal.lz"); + const u32 gMonBackPic_FurfrouKabukiTrim[] = INCBIN_U32("graphics/pokemon/furfrou/kabuki_trim/back.4bpp.lz"); + const u32 gMonShinyPalette_FurfrouKabukiTrim[] = INCBIN_U32("graphics/pokemon/furfrou/kabuki_trim/shiny.gbapal.lz"); + const u8 gMonIcon_FurfrouKabukiTrim[] = INCBIN_U8("graphics/pokemon/furfrou/kabuki_trim/icon.4bpp"); + + const u32 gMonFrontPic_FurfrouPharaohTrim[] = INCBIN_U32("graphics/pokemon/furfrou/pharaoh_trim/anim_front.4bpp.lz"); + const u32 gMonPalette_FurfrouPharaohTrim[] = INCBIN_U32("graphics/pokemon/furfrou/pharaoh_trim/normal.gbapal.lz"); + const u32 gMonBackPic_FurfrouPharaohTrim[] = INCBIN_U32("graphics/pokemon/furfrou/pharaoh_trim/back.4bpp.lz"); + const u32 gMonShinyPalette_FurfrouPharaohTrim[] = INCBIN_U32("graphics/pokemon/furfrou/pharaoh_trim/shiny.gbapal.lz"); + const u8 gMonIcon_FurfrouPharaohTrim[] = INCBIN_U8("graphics/pokemon/furfrou/pharaoh_trim/icon.4bpp"); +#endif //P_FAMILY_FURFROU + +#if P_FAMILY_ESPURR + const u32 gMonFrontPic_Espurr[] = INCBIN_U32("graphics/pokemon/espurr/anim_front.4bpp.lz"); + const u32 gMonPalette_Espurr[] = INCBIN_U32("graphics/pokemon/espurr/normal.gbapal.lz"); + const u32 gMonBackPic_Espurr[] = INCBIN_U32("graphics/pokemon/espurr/back.4bpp.lz"); + const u32 gMonShinyPalette_Espurr[] = INCBIN_U32("graphics/pokemon/espurr/shiny.gbapal.lz"); + const u8 gMonIcon_Espurr[] = INCBIN_U8("graphics/pokemon/espurr/icon.4bpp"); + const u8 gMonFootprint_Espurr[] = INCBIN_U8("graphics/pokemon/espurr/footprint.1bpp"); + + const u32 gMonFrontPic_MeowsticMale[] = INCBIN_U32("graphics/pokemon/meowstic/anim_front.4bpp.lz"); + const u32 gMonPalette_MeowsticMale[] = INCBIN_U32("graphics/pokemon/meowstic/normal.gbapal.lz"); + const u32 gMonBackPic_MeowsticMale[] = INCBIN_U32("graphics/pokemon/meowstic/back.4bpp.lz"); + const u32 gMonShinyPalette_MeowsticMale[] = INCBIN_U32("graphics/pokemon/meowstic/shiny.gbapal.lz"); + const u8 gMonIcon_MeowsticMale[] = INCBIN_U8("graphics/pokemon/meowstic/icon.4bpp"); + const u8 gMonFootprint_Meowstic[] = INCBIN_U8("graphics/pokemon/meowstic/footprint.1bpp"); + + const u32 gMonFrontPic_MeowsticFemale[] = INCBIN_U32("graphics/pokemon/meowstic/female/anim_front.4bpp.lz"); + const u32 gMonPalette_MeowsticFemale[] = INCBIN_U32("graphics/pokemon/meowstic/female/normal.gbapal.lz"); + const u32 gMonBackPic_MeowsticFemale[] = INCBIN_U32("graphics/pokemon/meowstic/female/back.4bpp.lz"); + const u32 gMonShinyPalette_MeowsticFemale[] = INCBIN_U32("graphics/pokemon/meowstic/female/shiny.gbapal.lz"); + const u8 gMonIcon_MeowsticFemale[] = INCBIN_U8("graphics/pokemon/meowstic/female/icon.4bpp"); +#endif //P_FAMILY_ESPURR + +#if P_FAMILY_HONEDGE + const u32 gMonFrontPic_Honedge[] = INCBIN_U32("graphics/pokemon/honedge/anim_front.4bpp.lz"); + const u32 gMonPalette_Honedge[] = INCBIN_U32("graphics/pokemon/honedge/normal.gbapal.lz"); + const u32 gMonBackPic_Honedge[] = INCBIN_U32("graphics/pokemon/honedge/back.4bpp.lz"); + const u32 gMonShinyPalette_Honedge[] = INCBIN_U32("graphics/pokemon/honedge/shiny.gbapal.lz"); + const u8 gMonIcon_Honedge[] = INCBIN_U8("graphics/pokemon/honedge/icon.4bpp"); + const u8 gMonFootprint_Honedge[] = INCBIN_U8("graphics/pokemon/honedge/footprint.1bpp"); + + const u32 gMonFrontPic_Doublade[] = INCBIN_U32("graphics/pokemon/doublade/anim_front.4bpp.lz"); + const u32 gMonPalette_Doublade[] = INCBIN_U32("graphics/pokemon/doublade/normal.gbapal.lz"); + const u32 gMonBackPic_Doublade[] = INCBIN_U32("graphics/pokemon/doublade/back.4bpp.lz"); + const u32 gMonShinyPalette_Doublade[] = INCBIN_U32("graphics/pokemon/doublade/shiny.gbapal.lz"); + const u8 gMonIcon_Doublade[] = INCBIN_U8("graphics/pokemon/doublade/icon.4bpp"); + const u8 gMonFootprint_Doublade[] = INCBIN_U8("graphics/pokemon/doublade/footprint.1bpp"); + + const u32 gMonFrontPic_AegislashShield[] = INCBIN_U32("graphics/pokemon/aegislash/anim_front.4bpp.lz"); + const u32 gMonPalette_AegislashShield[] = INCBIN_U32("graphics/pokemon/aegislash/normal.gbapal.lz"); + const u32 gMonBackPic_AegislashShield[] = INCBIN_U32("graphics/pokemon/aegislash/back.4bpp.lz"); + const u32 gMonShinyPalette_AegislashShield[] = INCBIN_U32("graphics/pokemon/aegislash/shiny.gbapal.lz"); + const u8 gMonIcon_AegislashShield[] = INCBIN_U8("graphics/pokemon/aegislash/icon.4bpp"); + const u8 gMonFootprint_Aegislash[] = INCBIN_U8("graphics/pokemon/aegislash/footprint.1bpp"); + + const u32 gMonFrontPic_AegislashBlade[] = INCBIN_U32("graphics/pokemon/aegislash/blade/anim_front.4bpp.lz"); + const u32 gMonPalette_AegislashBlade[] = INCBIN_U32("graphics/pokemon/aegislash/blade/normal.gbapal.lz"); + const u32 gMonBackPic_AegislashBlade[] = INCBIN_U32("graphics/pokemon/aegislash/blade/back.4bpp.lz"); + const u32 gMonShinyPalette_AegislashBlade[] = INCBIN_U32("graphics/pokemon/aegislash/blade/shiny.gbapal.lz"); + const u8 gMonIcon_AegislashBlade[] = INCBIN_U8("graphics/pokemon/aegislash/blade/icon.4bpp"); +#endif //P_FAMILY_HONEDGE + +#if P_FAMILY_SPRITZEE + const u32 gMonFrontPic_Spritzee[] = INCBIN_U32("graphics/pokemon/spritzee/anim_front.4bpp.lz"); + const u32 gMonPalette_Spritzee[] = INCBIN_U32("graphics/pokemon/spritzee/normal.gbapal.lz"); + const u32 gMonBackPic_Spritzee[] = INCBIN_U32("graphics/pokemon/spritzee/back.4bpp.lz"); + const u32 gMonShinyPalette_Spritzee[] = INCBIN_U32("graphics/pokemon/spritzee/shiny.gbapal.lz"); + const u8 gMonIcon_Spritzee[] = INCBIN_U8("graphics/pokemon/spritzee/icon.4bpp"); + const u8 gMonFootprint_Spritzee[] = INCBIN_U8("graphics/pokemon/spritzee/footprint.1bpp"); + + const u32 gMonFrontPic_Aromatisse[] = INCBIN_U32("graphics/pokemon/aromatisse/anim_front.4bpp.lz"); + const u32 gMonPalette_Aromatisse[] = INCBIN_U32("graphics/pokemon/aromatisse/normal.gbapal.lz"); + const u32 gMonBackPic_Aromatisse[] = INCBIN_U32("graphics/pokemon/aromatisse/back.4bpp.lz"); + const u32 gMonShinyPalette_Aromatisse[] = INCBIN_U32("graphics/pokemon/aromatisse/shiny.gbapal.lz"); + const u8 gMonIcon_Aromatisse[] = INCBIN_U8("graphics/pokemon/aromatisse/icon.4bpp"); + const u8 gMonFootprint_Aromatisse[] = INCBIN_U8("graphics/pokemon/aromatisse/footprint.1bpp"); +#endif //P_FAMILY_SPRITZEE + +#if P_FAMILY_SWIRLIX + const u32 gMonFrontPic_Swirlix[] = INCBIN_U32("graphics/pokemon/swirlix/anim_front.4bpp.lz"); + const u32 gMonPalette_Swirlix[] = INCBIN_U32("graphics/pokemon/swirlix/normal.gbapal.lz"); + const u32 gMonBackPic_Swirlix[] = INCBIN_U32("graphics/pokemon/swirlix/back.4bpp.lz"); + const u32 gMonShinyPalette_Swirlix[] = INCBIN_U32("graphics/pokemon/swirlix/shiny.gbapal.lz"); + const u8 gMonIcon_Swirlix[] = INCBIN_U8("graphics/pokemon/swirlix/icon.4bpp"); + const u8 gMonFootprint_Swirlix[] = INCBIN_U8("graphics/pokemon/swirlix/footprint.1bpp"); + + const u32 gMonFrontPic_Slurpuff[] = INCBIN_U32("graphics/pokemon/slurpuff/anim_front.4bpp.lz"); + const u32 gMonPalette_Slurpuff[] = INCBIN_U32("graphics/pokemon/slurpuff/normal.gbapal.lz"); + const u32 gMonBackPic_Slurpuff[] = INCBIN_U32("graphics/pokemon/slurpuff/back.4bpp.lz"); + const u32 gMonShinyPalette_Slurpuff[] = INCBIN_U32("graphics/pokemon/slurpuff/shiny.gbapal.lz"); + const u8 gMonIcon_Slurpuff[] = INCBIN_U8("graphics/pokemon/slurpuff/icon.4bpp"); + const u8 gMonFootprint_Slurpuff[] = INCBIN_U8("graphics/pokemon/slurpuff/footprint.1bpp"); +#endif //P_FAMILY_SWIRLIX + +#if P_FAMILY_INKAY + const u32 gMonFrontPic_Inkay[] = INCBIN_U32("graphics/pokemon/inkay/anim_front.4bpp.lz"); + const u32 gMonPalette_Inkay[] = INCBIN_U32("graphics/pokemon/inkay/normal.gbapal.lz"); + const u32 gMonBackPic_Inkay[] = INCBIN_U32("graphics/pokemon/inkay/back.4bpp.lz"); + const u32 gMonShinyPalette_Inkay[] = INCBIN_U32("graphics/pokemon/inkay/shiny.gbapal.lz"); + const u8 gMonIcon_Inkay[] = INCBIN_U8("graphics/pokemon/inkay/icon.4bpp"); + const u8 gMonFootprint_Inkay[] = INCBIN_U8("graphics/pokemon/inkay/footprint.1bpp"); + + const u32 gMonFrontPic_Malamar[] = INCBIN_U32("graphics/pokemon/malamar/anim_front.4bpp.lz"); + const u32 gMonPalette_Malamar[] = INCBIN_U32("graphics/pokemon/malamar/normal.gbapal.lz"); + const u32 gMonBackPic_Malamar[] = INCBIN_U32("graphics/pokemon/malamar/back.4bpp.lz"); + const u32 gMonShinyPalette_Malamar[] = INCBIN_U32("graphics/pokemon/malamar/shiny.gbapal.lz"); + const u8 gMonIcon_Malamar[] = INCBIN_U8("graphics/pokemon/malamar/icon.4bpp"); + const u8 gMonFootprint_Malamar[] = INCBIN_U8("graphics/pokemon/malamar/footprint.1bpp"); +#endif //P_FAMILY_INKAY + +#if P_FAMILY_BINACLE + const u32 gMonFrontPic_Binacle[] = INCBIN_U32("graphics/pokemon/binacle/anim_front.4bpp.lz"); + const u32 gMonPalette_Binacle[] = INCBIN_U32("graphics/pokemon/binacle/normal.gbapal.lz"); + const u32 gMonBackPic_Binacle[] = INCBIN_U32("graphics/pokemon/binacle/back.4bpp.lz"); + const u32 gMonShinyPalette_Binacle[] = INCBIN_U32("graphics/pokemon/binacle/shiny.gbapal.lz"); + const u8 gMonIcon_Binacle[] = INCBIN_U8("graphics/pokemon/binacle/icon.4bpp"); + const u8 gMonFootprint_Binacle[] = INCBIN_U8("graphics/pokemon/binacle/footprint.1bpp"); + + const u32 gMonFrontPic_Barbaracle[] = INCBIN_U32("graphics/pokemon/barbaracle/anim_front.4bpp.lz"); + const u32 gMonPalette_Barbaracle[] = INCBIN_U32("graphics/pokemon/barbaracle/normal.gbapal.lz"); + const u32 gMonBackPic_Barbaracle[] = INCBIN_U32("graphics/pokemon/barbaracle/back.4bpp.lz"); + const u32 gMonShinyPalette_Barbaracle[] = INCBIN_U32("graphics/pokemon/barbaracle/shiny.gbapal.lz"); + const u8 gMonIcon_Barbaracle[] = INCBIN_U8("graphics/pokemon/barbaracle/icon.4bpp"); + const u8 gMonFootprint_Barbaracle[] = INCBIN_U8("graphics/pokemon/barbaracle/footprint.1bpp"); +#endif //P_FAMILY_BINACLE + +#if P_FAMILY_SKRELP + const u32 gMonFrontPic_Skrelp[] = INCBIN_U32("graphics/pokemon/skrelp/anim_front.4bpp.lz"); + const u32 gMonPalette_Skrelp[] = INCBIN_U32("graphics/pokemon/skrelp/normal.gbapal.lz"); + const u32 gMonBackPic_Skrelp[] = INCBIN_U32("graphics/pokemon/skrelp/back.4bpp.lz"); + const u32 gMonShinyPalette_Skrelp[] = INCBIN_U32("graphics/pokemon/skrelp/shiny.gbapal.lz"); + const u8 gMonIcon_Skrelp[] = INCBIN_U8("graphics/pokemon/skrelp/icon.4bpp"); + const u8 gMonFootprint_Skrelp[] = INCBIN_U8("graphics/pokemon/skrelp/footprint.1bpp"); + + const u32 gMonFrontPic_Dragalge[] = INCBIN_U32("graphics/pokemon/dragalge/anim_front.4bpp.lz"); + const u32 gMonPalette_Dragalge[] = INCBIN_U32("graphics/pokemon/dragalge/normal.gbapal.lz"); + const u32 gMonBackPic_Dragalge[] = INCBIN_U32("graphics/pokemon/dragalge/back.4bpp.lz"); + const u32 gMonShinyPalette_Dragalge[] = INCBIN_U32("graphics/pokemon/dragalge/shiny.gbapal.lz"); + const u8 gMonIcon_Dragalge[] = INCBIN_U8("graphics/pokemon/dragalge/icon.4bpp"); + const u8 gMonFootprint_Dragalge[] = INCBIN_U8("graphics/pokemon/dragalge/footprint.1bpp"); +#endif //P_FAMILY_SKRELP + +#if P_FAMILY_CLAUNCHER + const u32 gMonFrontPic_Clauncher[] = INCBIN_U32("graphics/pokemon/clauncher/anim_front.4bpp.lz"); + const u32 gMonPalette_Clauncher[] = INCBIN_U32("graphics/pokemon/clauncher/normal.gbapal.lz"); + const u32 gMonBackPic_Clauncher[] = INCBIN_U32("graphics/pokemon/clauncher/back.4bpp.lz"); + const u32 gMonShinyPalette_Clauncher[] = INCBIN_U32("graphics/pokemon/clauncher/shiny.gbapal.lz"); + const u8 gMonIcon_Clauncher[] = INCBIN_U8("graphics/pokemon/clauncher/icon.4bpp"); + const u8 gMonFootprint_Clauncher[] = INCBIN_U8("graphics/pokemon/clauncher/footprint.1bpp"); + + const u32 gMonFrontPic_Clawitzer[] = INCBIN_U32("graphics/pokemon/clawitzer/anim_front.4bpp.lz"); + const u32 gMonPalette_Clawitzer[] = INCBIN_U32("graphics/pokemon/clawitzer/normal.gbapal.lz"); + const u32 gMonBackPic_Clawitzer[] = INCBIN_U32("graphics/pokemon/clawitzer/back.4bpp.lz"); + const u32 gMonShinyPalette_Clawitzer[] = INCBIN_U32("graphics/pokemon/clawitzer/shiny.gbapal.lz"); + const u8 gMonIcon_Clawitzer[] = INCBIN_U8("graphics/pokemon/clawitzer/icon.4bpp"); + const u8 gMonFootprint_Clawitzer[] = INCBIN_U8("graphics/pokemon/clawitzer/footprint.1bpp"); +#endif //P_FAMILY_CLAUNCHER + +#if P_FAMILY_HELIOPTILE + const u32 gMonFrontPic_Helioptile[] = INCBIN_U32("graphics/pokemon/helioptile/anim_front.4bpp.lz"); + const u32 gMonPalette_Helioptile[] = INCBIN_U32("graphics/pokemon/helioptile/normal.gbapal.lz"); + const u32 gMonBackPic_Helioptile[] = INCBIN_U32("graphics/pokemon/helioptile/back.4bpp.lz"); + const u32 gMonShinyPalette_Helioptile[] = INCBIN_U32("graphics/pokemon/helioptile/shiny.gbapal.lz"); + const u8 gMonIcon_Helioptile[] = INCBIN_U8("graphics/pokemon/helioptile/icon.4bpp"); + const u8 gMonFootprint_Helioptile[] = INCBIN_U8("graphics/pokemon/helioptile/footprint.1bpp"); + + const u32 gMonFrontPic_Heliolisk[] = INCBIN_U32("graphics/pokemon/heliolisk/anim_front.4bpp.lz"); + const u32 gMonPalette_Heliolisk[] = INCBIN_U32("graphics/pokemon/heliolisk/normal.gbapal.lz"); + const u32 gMonBackPic_Heliolisk[] = INCBIN_U32("graphics/pokemon/heliolisk/back.4bpp.lz"); + const u32 gMonShinyPalette_Heliolisk[] = INCBIN_U32("graphics/pokemon/heliolisk/shiny.gbapal.lz"); + const u8 gMonIcon_Heliolisk[] = INCBIN_U8("graphics/pokemon/heliolisk/icon.4bpp"); + const u8 gMonFootprint_Heliolisk[] = INCBIN_U8("graphics/pokemon/heliolisk/footprint.1bpp"); +#endif //P_FAMILY_HELIOPTILE + +#if P_FAMILY_TYRUNT + const u32 gMonFrontPic_Tyrunt[] = INCBIN_U32("graphics/pokemon/tyrunt/anim_front.4bpp.lz"); + const u32 gMonPalette_Tyrunt[] = INCBIN_U32("graphics/pokemon/tyrunt/normal.gbapal.lz"); + const u32 gMonBackPic_Tyrunt[] = INCBIN_U32("graphics/pokemon/tyrunt/back.4bpp.lz"); + const u32 gMonShinyPalette_Tyrunt[] = INCBIN_U32("graphics/pokemon/tyrunt/shiny.gbapal.lz"); + const u8 gMonIcon_Tyrunt[] = INCBIN_U8("graphics/pokemon/tyrunt/icon.4bpp"); + const u8 gMonFootprint_Tyrunt[] = INCBIN_U8("graphics/pokemon/tyrunt/footprint.1bpp"); + + const u32 gMonFrontPic_Tyrantrum[] = INCBIN_U32("graphics/pokemon/tyrantrum/anim_front.4bpp.lz"); + const u32 gMonPalette_Tyrantrum[] = INCBIN_U32("graphics/pokemon/tyrantrum/normal.gbapal.lz"); + const u32 gMonBackPic_Tyrantrum[] = INCBIN_U32("graphics/pokemon/tyrantrum/back.4bpp.lz"); + const u32 gMonShinyPalette_Tyrantrum[] = INCBIN_U32("graphics/pokemon/tyrantrum/shiny.gbapal.lz"); + const u8 gMonIcon_Tyrantrum[] = INCBIN_U8("graphics/pokemon/tyrantrum/icon.4bpp"); + const u8 gMonFootprint_Tyrantrum[] = INCBIN_U8("graphics/pokemon/tyrantrum/footprint.1bpp"); +#endif //P_FAMILY_TYRUNT + +#if P_FAMILY_AMAURA + const u32 gMonFrontPic_Amaura[] = INCBIN_U32("graphics/pokemon/amaura/anim_front.4bpp.lz"); + const u32 gMonPalette_Amaura[] = INCBIN_U32("graphics/pokemon/amaura/normal.gbapal.lz"); + const u32 gMonBackPic_Amaura[] = INCBIN_U32("graphics/pokemon/amaura/back.4bpp.lz"); + const u32 gMonShinyPalette_Amaura[] = INCBIN_U32("graphics/pokemon/amaura/shiny.gbapal.lz"); + const u8 gMonIcon_Amaura[] = INCBIN_U8("graphics/pokemon/amaura/icon.4bpp"); + const u8 gMonFootprint_Amaura[] = INCBIN_U8("graphics/pokemon/amaura/footprint.1bpp"); + + const u32 gMonFrontPic_Aurorus[] = INCBIN_U32("graphics/pokemon/aurorus/anim_front.4bpp.lz"); + const u32 gMonPalette_Aurorus[] = INCBIN_U32("graphics/pokemon/aurorus/normal.gbapal.lz"); + const u32 gMonBackPic_Aurorus[] = INCBIN_U32("graphics/pokemon/aurorus/back.4bpp.lz"); + const u32 gMonShinyPalette_Aurorus[] = INCBIN_U32("graphics/pokemon/aurorus/shiny.gbapal.lz"); + const u8 gMonIcon_Aurorus[] = INCBIN_U8("graphics/pokemon/aurorus/icon.4bpp"); + const u8 gMonFootprint_Aurorus[] = INCBIN_U8("graphics/pokemon/aurorus/footprint.1bpp"); +#endif //P_FAMILY_AMAURA + +#if P_FAMILY_HAWLUCHA + const u32 gMonFrontPic_Hawlucha[] = INCBIN_U32("graphics/pokemon/hawlucha/anim_front.4bpp.lz"); + const u32 gMonPalette_Hawlucha[] = INCBIN_U32("graphics/pokemon/hawlucha/normal.gbapal.lz"); + const u32 gMonBackPic_Hawlucha[] = INCBIN_U32("graphics/pokemon/hawlucha/back.4bpp.lz"); + const u32 gMonShinyPalette_Hawlucha[] = INCBIN_U32("graphics/pokemon/hawlucha/shiny.gbapal.lz"); + const u8 gMonIcon_Hawlucha[] = INCBIN_U8("graphics/pokemon/hawlucha/icon.4bpp"); + const u8 gMonFootprint_Hawlucha[] = INCBIN_U8("graphics/pokemon/hawlucha/footprint.1bpp"); +#endif //P_FAMILY_HAWLUCHA + +#if P_FAMILY_DEDENNE + const u32 gMonFrontPic_Dedenne[] = INCBIN_U32("graphics/pokemon/dedenne/anim_front.4bpp.lz"); + const u32 gMonPalette_Dedenne[] = INCBIN_U32("graphics/pokemon/dedenne/normal.gbapal.lz"); + const u32 gMonBackPic_Dedenne[] = INCBIN_U32("graphics/pokemon/dedenne/back.4bpp.lz"); + const u32 gMonShinyPalette_Dedenne[] = INCBIN_U32("graphics/pokemon/dedenne/shiny.gbapal.lz"); + const u8 gMonIcon_Dedenne[] = INCBIN_U8("graphics/pokemon/dedenne/icon.4bpp"); + const u8 gMonFootprint_Dedenne[] = INCBIN_U8("graphics/pokemon/dedenne/footprint.1bpp"); +#endif //P_FAMILY_DEDENNE + +#if P_FAMILY_CARBINK + const u32 gMonFrontPic_Carbink[] = INCBIN_U32("graphics/pokemon/carbink/anim_front.4bpp.lz"); + const u32 gMonPalette_Carbink[] = INCBIN_U32("graphics/pokemon/carbink/normal.gbapal.lz"); + const u32 gMonBackPic_Carbink[] = INCBIN_U32("graphics/pokemon/carbink/back.4bpp.lz"); + const u32 gMonShinyPalette_Carbink[] = INCBIN_U32("graphics/pokemon/carbink/shiny.gbapal.lz"); + const u8 gMonIcon_Carbink[] = INCBIN_U8("graphics/pokemon/carbink/icon.4bpp"); + const u8 gMonFootprint_Carbink[] = INCBIN_U8("graphics/pokemon/carbink/footprint.1bpp"); +#endif //P_FAMILY_CARBINK + +#if P_FAMILY_GOOMY + const u32 gMonFrontPic_Goomy[] = INCBIN_U32("graphics/pokemon/goomy/anim_front.4bpp.lz"); + const u32 gMonPalette_Goomy[] = INCBIN_U32("graphics/pokemon/goomy/normal.gbapal.lz"); + const u32 gMonBackPic_Goomy[] = INCBIN_U32("graphics/pokemon/goomy/back.4bpp.lz"); + const u32 gMonShinyPalette_Goomy[] = INCBIN_U32("graphics/pokemon/goomy/shiny.gbapal.lz"); + const u8 gMonIcon_Goomy[] = INCBIN_U8("graphics/pokemon/goomy/icon.4bpp"); + const u8 gMonFootprint_Goomy[] = INCBIN_U8("graphics/pokemon/goomy/footprint.1bpp"); + + const u32 gMonFrontPic_Sliggoo[] = INCBIN_U32("graphics/pokemon/sliggoo/anim_front.4bpp.lz"); + const u32 gMonPalette_Sliggoo[] = INCBIN_U32("graphics/pokemon/sliggoo/normal.gbapal.lz"); + const u32 gMonBackPic_Sliggoo[] = INCBIN_U32("graphics/pokemon/sliggoo/back.4bpp.lz"); + const u32 gMonShinyPalette_Sliggoo[] = INCBIN_U32("graphics/pokemon/sliggoo/shiny.gbapal.lz"); + const u8 gMonIcon_Sliggoo[] = INCBIN_U8("graphics/pokemon/sliggoo/icon.4bpp"); + const u8 gMonFootprint_Sliggoo[] = INCBIN_U8("graphics/pokemon/sliggoo/footprint.1bpp"); + +#if P_HISUIAN_FORMS + const u32 gMonFrontPic_SliggooHisuian[] = INCBIN_U32("graphics/pokemon/sliggoo/hisuian/front.4bpp.lz"); + const u32 gMonPalette_SliggooHisuian[] = INCBIN_U32("graphics/pokemon/sliggoo/hisuian/normal.gbapal.lz"); + const u32 gMonBackPic_SliggooHisuian[] = INCBIN_U32("graphics/pokemon/sliggoo/hisuian/back.4bpp.lz"); + const u32 gMonShinyPalette_SliggooHisuian[] = INCBIN_U32("graphics/pokemon/sliggoo/hisuian/shiny.gbapal.lz"); + const u8 gMonIcon_SliggooHisuian[] = INCBIN_U8("graphics/pokemon/sliggoo/hisuian/icon.4bpp"); +#endif //P_HISUIAN_FORMS + + const u32 gMonFrontPic_Goodra[] = INCBIN_U32("graphics/pokemon/goodra/anim_front.4bpp.lz"); + const u32 gMonPalette_Goodra[] = INCBIN_U32("graphics/pokemon/goodra/normal.gbapal.lz"); + const u32 gMonBackPic_Goodra[] = INCBIN_U32("graphics/pokemon/goodra/back.4bpp.lz"); + const u32 gMonShinyPalette_Goodra[] = INCBIN_U32("graphics/pokemon/goodra/shiny.gbapal.lz"); + const u8 gMonIcon_Goodra[] = INCBIN_U8("graphics/pokemon/goodra/icon.4bpp"); + const u8 gMonFootprint_Goodra[] = INCBIN_U8("graphics/pokemon/goodra/footprint.1bpp"); + +#if P_HISUIAN_FORMS + const u32 gMonFrontPic_GoodraHisuian[] = INCBIN_U32("graphics/pokemon/goodra/hisuian/front.4bpp.lz"); + const u32 gMonPalette_GoodraHisuian[] = INCBIN_U32("graphics/pokemon/goodra/hisuian/normal.gbapal.lz"); + const u32 gMonBackPic_GoodraHisuian[] = INCBIN_U32("graphics/pokemon/goodra/hisuian/back.4bpp.lz"); + const u32 gMonShinyPalette_GoodraHisuian[] = INCBIN_U32("graphics/pokemon/goodra/hisuian/shiny.gbapal.lz"); + const u8 gMonIcon_GoodraHisuian[] = INCBIN_U8("graphics/pokemon/goodra/hisuian/icon.4bpp"); +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_GOOMY + +#if P_FAMILY_KLEFKI + const u32 gMonFrontPic_Klefki[] = INCBIN_U32("graphics/pokemon/klefki/anim_front.4bpp.lz"); + const u32 gMonPalette_Klefki[] = INCBIN_U32("graphics/pokemon/klefki/normal.gbapal.lz"); + const u32 gMonBackPic_Klefki[] = INCBIN_U32("graphics/pokemon/klefki/back.4bpp.lz"); + const u32 gMonShinyPalette_Klefki[] = INCBIN_U32("graphics/pokemon/klefki/shiny.gbapal.lz"); + const u8 gMonIcon_Klefki[] = INCBIN_U8("graphics/pokemon/klefki/icon.4bpp"); + const u8 gMonFootprint_Klefki[] = INCBIN_U8("graphics/pokemon/klefki/footprint.1bpp"); +#endif //P_FAMILY_KLEFKI + +#if P_FAMILY_PHANTUMP + const u32 gMonFrontPic_Phantump[] = INCBIN_U32("graphics/pokemon/phantump/anim_front.4bpp.lz"); + const u32 gMonPalette_Phantump[] = INCBIN_U32("graphics/pokemon/phantump/normal.gbapal.lz"); + const u32 gMonBackPic_Phantump[] = INCBIN_U32("graphics/pokemon/phantump/back.4bpp.lz"); + const u32 gMonShinyPalette_Phantump[] = INCBIN_U32("graphics/pokemon/phantump/shiny.gbapal.lz"); + const u8 gMonIcon_Phantump[] = INCBIN_U8("graphics/pokemon/phantump/icon.4bpp"); + const u8 gMonFootprint_Phantump[] = INCBIN_U8("graphics/pokemon/phantump/footprint.1bpp"); + + const u32 gMonFrontPic_Trevenant[] = INCBIN_U32("graphics/pokemon/trevenant/anim_front.4bpp.lz"); + const u32 gMonPalette_Trevenant[] = INCBIN_U32("graphics/pokemon/trevenant/normal.gbapal.lz"); + const u32 gMonBackPic_Trevenant[] = INCBIN_U32("graphics/pokemon/trevenant/back.4bpp.lz"); + const u32 gMonShinyPalette_Trevenant[] = INCBIN_U32("graphics/pokemon/trevenant/shiny.gbapal.lz"); + const u8 gMonIcon_Trevenant[] = INCBIN_U8("graphics/pokemon/trevenant/icon.4bpp"); + const u8 gMonFootprint_Trevenant[] = INCBIN_U8("graphics/pokemon/trevenant/footprint.1bpp"); +#endif //P_FAMILY_PHANTUMP + +#if P_FAMILY_PUMPKABOO + const u32 gMonPalette_Pumpkaboo[] = INCBIN_U32("graphics/pokemon/pumpkaboo/normal.gbapal.lz"); + const u32 gMonShinyPalette_Pumpkaboo[] = INCBIN_U32("graphics/pokemon/pumpkaboo/shiny.gbapal.lz"); + const u8 gMonIcon_Pumpkaboo[] = INCBIN_U8("graphics/pokemon/pumpkaboo/icon.4bpp"); + const u8 gMonFootprint_Pumpkaboo[] = INCBIN_U8("graphics/pokemon/pumpkaboo/footprint.1bpp"); + + const u32 gMonFrontPic_PumpkabooAverage[] = INCBIN_U32("graphics/pokemon/pumpkaboo/anim_front.4bpp.lz"); + const u32 gMonBackPic_PumpkabooAverage[] = INCBIN_U32("graphics/pokemon/pumpkaboo/back.4bpp.lz"); + + const u32 gMonFrontPic_PumpkabooSmall[] = INCBIN_U32("graphics/pokemon/pumpkaboo/small/anim_front.4bpp.lz"); + const u32 gMonBackPic_PumpkabooSmall[] = INCBIN_U32("graphics/pokemon/pumpkaboo/small/back.4bpp.lz"); + + const u32 gMonFrontPic_PumpkabooLarge[] = INCBIN_U32("graphics/pokemon/pumpkaboo/large/anim_front.4bpp.lz"); + const u32 gMonBackPic_PumpkabooLarge[] = INCBIN_U32("graphics/pokemon/pumpkaboo/large/back.4bpp.lz"); + + const u32 gMonFrontPic_PumpkabooSuper[] = INCBIN_U32("graphics/pokemon/pumpkaboo/super/anim_front.4bpp.lz"); + const u32 gMonBackPic_PumpkabooSuper[] = INCBIN_U32("graphics/pokemon/pumpkaboo/super/back.4bpp.lz"); + + const u32 gMonPalette_Gourgeist[] = INCBIN_U32("graphics/pokemon/gourgeist/normal.gbapal.lz"); + const u32 gMonShinyPalette_Gourgeist[] = INCBIN_U32("graphics/pokemon/gourgeist/shiny.gbapal.lz"); + const u8 gMonIcon_Gourgeist[] = INCBIN_U8("graphics/pokemon/gourgeist/icon.4bpp"); + const u8 gMonFootprint_Gourgeist[] = INCBIN_U8("graphics/pokemon/gourgeist/footprint.1bpp"); + + const u32 gMonFrontPic_GourgeistAverage[] = INCBIN_U32("graphics/pokemon/gourgeist/anim_front.4bpp.lz"); + const u32 gMonBackPic_GourgeistAverage[] = INCBIN_U32("graphics/pokemon/gourgeist/back.4bpp.lz"); + + const u32 gMonFrontPic_GourgeistSmall[] = INCBIN_U32("graphics/pokemon/gourgeist/small/anim_front.4bpp.lz"); + const u32 gMonBackPic_GourgeistSmall[] = INCBIN_U32("graphics/pokemon/gourgeist/small/back.4bpp.lz"); + + const u32 gMonFrontPic_GourgeistLarge[] = INCBIN_U32("graphics/pokemon/gourgeist/large/anim_front.4bpp.lz"); + const u32 gMonBackPic_GourgeistLarge[] = INCBIN_U32("graphics/pokemon/gourgeist/large/back.4bpp.lz"); + + const u32 gMonFrontPic_GourgeistSuper[] = INCBIN_U32("graphics/pokemon/gourgeist/super/anim_front.4bpp.lz"); + const u32 gMonBackPic_GourgeistSuper[] = INCBIN_U32("graphics/pokemon/gourgeist/super/back.4bpp.lz"); +#endif //P_FAMILY_PUMPKABOO + +#if P_FAMILY_BERGMITE + const u32 gMonFrontPic_Bergmite[] = INCBIN_U32("graphics/pokemon/bergmite/anim_front.4bpp.lz"); + const u32 gMonPalette_Bergmite[] = INCBIN_U32("graphics/pokemon/bergmite/normal.gbapal.lz"); + const u32 gMonBackPic_Bergmite[] = INCBIN_U32("graphics/pokemon/bergmite/back.4bpp.lz"); + const u32 gMonShinyPalette_Bergmite[] = INCBIN_U32("graphics/pokemon/bergmite/shiny.gbapal.lz"); + const u8 gMonIcon_Bergmite[] = INCBIN_U8("graphics/pokemon/bergmite/icon.4bpp"); + const u8 gMonFootprint_Bergmite[] = INCBIN_U8("graphics/pokemon/bergmite/footprint.1bpp"); + + const u32 gMonFrontPic_Avalugg[] = INCBIN_U32("graphics/pokemon/avalugg/anim_front.4bpp.lz"); + const u32 gMonPalette_Avalugg[] = INCBIN_U32("graphics/pokemon/avalugg/normal.gbapal.lz"); + const u32 gMonBackPic_Avalugg[] = INCBIN_U32("graphics/pokemon/avalugg/back.4bpp.lz"); + const u32 gMonShinyPalette_Avalugg[] = INCBIN_U32("graphics/pokemon/avalugg/shiny.gbapal.lz"); + const u8 gMonIcon_Avalugg[] = INCBIN_U8("graphics/pokemon/avalugg/icon.4bpp"); + const u8 gMonFootprint_Avalugg[] = INCBIN_U8("graphics/pokemon/avalugg/footprint.1bpp"); + +#if P_HISUIAN_FORMS + const u32 gMonFrontPic_AvaluggHisuian[] = INCBIN_U32("graphics/pokemon/avalugg/hisuian/front.4bpp.lz"); + const u32 gMonPalette_AvaluggHisuian[] = INCBIN_U32("graphics/pokemon/avalugg/hisuian/normal.gbapal.lz"); + const u32 gMonBackPic_AvaluggHisuian[] = INCBIN_U32("graphics/pokemon/avalugg/hisuian/back.4bpp.lz"); + const u32 gMonShinyPalette_AvaluggHisuian[] = INCBIN_U32("graphics/pokemon/avalugg/hisuian/shiny.gbapal.lz"); + const u8 gMonIcon_AvaluggHisuian[] = INCBIN_U8("graphics/pokemon/avalugg/hisuian/icon.4bpp"); +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_BERGMITE + +#if P_FAMILY_NOIBAT + const u32 gMonFrontPic_Noibat[] = INCBIN_U32("graphics/pokemon/noibat/anim_front.4bpp.lz"); + const u32 gMonPalette_Noibat[] = INCBIN_U32("graphics/pokemon/noibat/normal.gbapal.lz"); + const u32 gMonBackPic_Noibat[] = INCBIN_U32("graphics/pokemon/noibat/back.4bpp.lz"); + const u32 gMonShinyPalette_Noibat[] = INCBIN_U32("graphics/pokemon/noibat/shiny.gbapal.lz"); + const u8 gMonIcon_Noibat[] = INCBIN_U8("graphics/pokemon/noibat/icon.4bpp"); + const u8 gMonFootprint_Noibat[] = INCBIN_U8("graphics/pokemon/noibat/footprint.1bpp"); + + const u32 gMonFrontPic_Noivern[] = INCBIN_U32("graphics/pokemon/noivern/anim_front.4bpp.lz"); + const u32 gMonPalette_Noivern[] = INCBIN_U32("graphics/pokemon/noivern/normal.gbapal.lz"); + const u32 gMonBackPic_Noivern[] = INCBIN_U32("graphics/pokemon/noivern/back.4bpp.lz"); + const u32 gMonShinyPalette_Noivern[] = INCBIN_U32("graphics/pokemon/noivern/shiny.gbapal.lz"); + const u8 gMonIcon_Noivern[] = INCBIN_U8("graphics/pokemon/noivern/icon.4bpp"); + const u8 gMonFootprint_Noivern[] = INCBIN_U8("graphics/pokemon/noivern/footprint.1bpp"); +#endif //P_FAMILY_NOIBAT + +#if P_FAMILY_XERNEAS + const u32 gMonFrontPic_XerneasNeutral[] = INCBIN_U32("graphics/pokemon/xerneas/front.4bpp.lz"); + const u32 gMonPalette_XerneasNeutral[] = INCBIN_U32("graphics/pokemon/xerneas/normal.gbapal.lz"); + const u32 gMonBackPic_XerneasNeutral[] = INCBIN_U32("graphics/pokemon/xerneas/back.4bpp.lz"); + const u32 gMonShinyPalette_XerneasNeutral[] = INCBIN_U32("graphics/pokemon/xerneas/shiny.gbapal.lz"); + const u8 gMonIcon_XerneasNeutral[] = INCBIN_U8("graphics/pokemon/xerneas/icon.4bpp"); + const u8 gMonFootprint_Xerneas[] = INCBIN_U8("graphics/pokemon/xerneas/footprint.1bpp"); + + const u32 gMonFrontPic_XerneasActive[] = INCBIN_U32("graphics/pokemon/xerneas/active/anim_front.4bpp.lz"); + const u32 gMonPalette_XerneasActive[] = INCBIN_U32("graphics/pokemon/xerneas/active/normal.gbapal.lz"); + const u32 gMonBackPic_XerneasActive[] = INCBIN_U32("graphics/pokemon/xerneas/active/back.4bpp.lz"); + const u32 gMonShinyPalette_XerneasActive[] = INCBIN_U32("graphics/pokemon/xerneas/active/shiny.gbapal.lz"); + const u8 gMonIcon_XerneasActive[] = INCBIN_U8("graphics/pokemon/xerneas/active/icon.4bpp"); +#endif //P_FAMILY_XERNEAS + +#if P_FAMILY_YVELTAL + const u32 gMonFrontPic_Yveltal[] = INCBIN_U32("graphics/pokemon/yveltal/anim_front.4bpp.lz"); + const u32 gMonPalette_Yveltal[] = INCBIN_U32("graphics/pokemon/yveltal/normal.gbapal.lz"); + const u32 gMonBackPic_Yveltal[] = INCBIN_U32("graphics/pokemon/yveltal/back.4bpp.lz"); + const u32 gMonShinyPalette_Yveltal[] = INCBIN_U32("graphics/pokemon/yveltal/shiny.gbapal.lz"); + const u8 gMonIcon_Yveltal[] = INCBIN_U8("graphics/pokemon/yveltal/icon.4bpp"); + const u8 gMonFootprint_Yveltal[] = INCBIN_U8("graphics/pokemon/yveltal/footprint.1bpp"); +#endif //P_FAMILY_YVELTAL + +#if P_FAMILY_ZYGARDE + const u32 gMonFrontPic_Zygarde50[] = INCBIN_U32("graphics/pokemon/zygarde/anim_front.4bpp.lz"); + const u32 gMonPalette_Zygarde50[] = INCBIN_U32("graphics/pokemon/zygarde/normal.gbapal.lz"); + const u32 gMonBackPic_Zygarde50[] = INCBIN_U32("graphics/pokemon/zygarde/back.4bpp.lz"); + const u32 gMonShinyPalette_Zygarde50[] = INCBIN_U32("graphics/pokemon/zygarde/shiny.gbapal.lz"); + const u8 gMonIcon_Zygarde50[] = INCBIN_U8("graphics/pokemon/zygarde/icon.4bpp"); + const u8 gMonFootprint_Zygarde[] = INCBIN_U8("graphics/pokemon/zygarde/footprint.1bpp"); + + const u32 gMonFrontPic_Zygarde10[] = INCBIN_U32("graphics/pokemon/zygarde/10_percent/anim_front.4bpp.lz"); + const u32 gMonPalette_Zygarde10[] = INCBIN_U32("graphics/pokemon/zygarde/10_percent/normal.gbapal.lz"); + const u32 gMonBackPic_Zygarde10[] = INCBIN_U32("graphics/pokemon/zygarde/10_percent/back.4bpp.lz"); + const u32 gMonShinyPalette_Zygarde10[] = INCBIN_U32("graphics/pokemon/zygarde/10_percent/shiny.gbapal.lz"); + const u8 gMonIcon_Zygarde10[] = INCBIN_U8("graphics/pokemon/zygarde/10_percent/icon.4bpp"); + + const u32 gMonFrontPic_ZygardeComplete[] = INCBIN_U32("graphics/pokemon/zygarde/complete/anim_front.4bpp.lz"); + const u32 gMonPalette_ZygardeComplete[] = INCBIN_U32("graphics/pokemon/zygarde/complete/normal.gbapal.lz"); + const u32 gMonBackPic_ZygardeComplete[] = INCBIN_U32("graphics/pokemon/zygarde/complete/back.4bpp.lz"); + const u32 gMonShinyPalette_ZygardeComplete[] = INCBIN_U32("graphics/pokemon/zygarde/complete/shiny.gbapal.lz"); + const u8 gMonIcon_ZygardeComplete[] = INCBIN_U8("graphics/pokemon/zygarde/complete/icon.4bpp"); +#endif //P_FAMILY_ZYGARDE + +#if P_FAMILY_DIANCIE + const u32 gMonFrontPic_Diancie[] = INCBIN_U32("graphics/pokemon/diancie/anim_front.4bpp.lz"); + const u32 gMonPalette_Diancie[] = INCBIN_U32("graphics/pokemon/diancie/normal.gbapal.lz"); + const u32 gMonBackPic_Diancie[] = INCBIN_U32("graphics/pokemon/diancie/back.4bpp.lz"); + const u32 gMonShinyPalette_Diancie[] = INCBIN_U32("graphics/pokemon/diancie/shiny.gbapal.lz"); + const u8 gMonIcon_Diancie[] = INCBIN_U8("graphics/pokemon/diancie/icon.4bpp"); + const u8 gMonFootprint_Diancie[] = INCBIN_U8("graphics/pokemon/diancie/footprint.1bpp"); + +#if P_MEGA_EVOLUTIONS + const u32 gMonFrontPic_DiancieMega[] = INCBIN_U32("graphics/pokemon/diancie/mega/front.4bpp.lz"); + const u32 gMonPalette_DiancieMega[] = INCBIN_U32("graphics/pokemon/diancie/mega/normal.gbapal.lz"); + const u32 gMonBackPic_DiancieMega[] = INCBIN_U32("graphics/pokemon/diancie/mega/back.4bpp.lz"); + const u32 gMonShinyPalette_DiancieMega[] = INCBIN_U32("graphics/pokemon/diancie/mega/shiny.gbapal.lz"); + const u8 gMonIcon_DiancieMega[] = INCBIN_U8("graphics/pokemon/diancie/mega/icon.4bpp"); +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_DIANCIE + +#if P_FAMILY_HOOPA + const u32 gMonFrontPic_HoopaConfined[] = INCBIN_U32("graphics/pokemon/hoopa/anim_front.4bpp.lz"); + const u32 gMonPalette_HoopaConfined[] = INCBIN_U32("graphics/pokemon/hoopa/normal.gbapal.lz"); + const u32 gMonBackPic_HoopaConfined[] = INCBIN_U32("graphics/pokemon/hoopa/back.4bpp.lz"); + const u32 gMonShinyPalette_HoopaConfined[] = INCBIN_U32("graphics/pokemon/hoopa/shiny.gbapal.lz"); + const u8 gMonIcon_HoopaConfined[] = INCBIN_U8("graphics/pokemon/hoopa/icon.4bpp"); + const u8 gMonFootprint_Hoopa[] = INCBIN_U8("graphics/pokemon/hoopa/footprint.1bpp"); + + const u32 gMonFrontPic_HoopaUnbound[] = INCBIN_U32("graphics/pokemon/hoopa/unbound/anim_front.4bpp.lz"); + const u32 gMonPalette_HoopaUnbound[] = INCBIN_U32("graphics/pokemon/hoopa/unbound/normal.gbapal.lz"); + const u32 gMonBackPic_HoopaUnbound[] = INCBIN_U32("graphics/pokemon/hoopa/unbound/back.4bpp.lz"); + const u32 gMonShinyPalette_HoopaUnbound[] = INCBIN_U32("graphics/pokemon/hoopa/unbound/shiny.gbapal.lz"); + const u8 gMonIcon_HoopaUnbound[] = INCBIN_U8("graphics/pokemon/hoopa/unbound/icon.4bpp"); +#endif //P_FAMILY_HOOPA + +#if P_FAMILY_VOLCANION + const u32 gMonFrontPic_Volcanion[] = INCBIN_U32("graphics/pokemon/volcanion/anim_front.4bpp.lz"); + const u32 gMonPalette_Volcanion[] = INCBIN_U32("graphics/pokemon/volcanion/normal.gbapal.lz"); + const u32 gMonBackPic_Volcanion[] = INCBIN_U32("graphics/pokemon/volcanion/back.4bpp.lz"); + const u32 gMonShinyPalette_Volcanion[] = INCBIN_U32("graphics/pokemon/volcanion/shiny.gbapal.lz"); + const u8 gMonIcon_Volcanion[] = INCBIN_U8("graphics/pokemon/volcanion/icon.4bpp"); + const u8 gMonFootprint_Volcanion[] = INCBIN_U8("graphics/pokemon/volcanion/footprint.1bpp"); +#endif //P_FAMILY_VOLCANION + +#if P_FAMILY_ROWLET + const u32 gMonFrontPic_Rowlet[] = INCBIN_U32("graphics/pokemon/rowlet/anim_front.4bpp.lz"); + const u32 gMonPalette_Rowlet[] = INCBIN_U32("graphics/pokemon/rowlet/normal.gbapal.lz"); + const u32 gMonBackPic_Rowlet[] = INCBIN_U32("graphics/pokemon/rowlet/back.4bpp.lz"); + const u32 gMonShinyPalette_Rowlet[] = INCBIN_U32("graphics/pokemon/rowlet/shiny.gbapal.lz"); + const u8 gMonIcon_Rowlet[] = INCBIN_U8("graphics/pokemon/rowlet/icon.4bpp"); + const u8 gMonFootprint_Rowlet[] = INCBIN_U8("graphics/pokemon/rowlet/footprint.1bpp"); + + const u32 gMonFrontPic_Dartrix[] = INCBIN_U32("graphics/pokemon/dartrix/anim_front.4bpp.lz"); + const u32 gMonPalette_Dartrix[] = INCBIN_U32("graphics/pokemon/dartrix/normal.gbapal.lz"); + const u32 gMonBackPic_Dartrix[] = INCBIN_U32("graphics/pokemon/dartrix/back.4bpp.lz"); + const u32 gMonShinyPalette_Dartrix[] = INCBIN_U32("graphics/pokemon/dartrix/shiny.gbapal.lz"); + const u8 gMonIcon_Dartrix[] = INCBIN_U8("graphics/pokemon/dartrix/icon.4bpp"); + const u8 gMonFootprint_Dartrix[] = INCBIN_U8("graphics/pokemon/dartrix/footprint.1bpp"); + + const u32 gMonFrontPic_Decidueye[] = INCBIN_U32("graphics/pokemon/decidueye/anim_front.4bpp.lz"); + const u32 gMonPalette_Decidueye[] = INCBIN_U32("graphics/pokemon/decidueye/normal.gbapal.lz"); + const u32 gMonBackPic_Decidueye[] = INCBIN_U32("graphics/pokemon/decidueye/back.4bpp.lz"); + const u32 gMonShinyPalette_Decidueye[] = INCBIN_U32("graphics/pokemon/decidueye/shiny.gbapal.lz"); + const u8 gMonIcon_Decidueye[] = INCBIN_U8("graphics/pokemon/decidueye/icon.4bpp"); + const u8 gMonFootprint_Decidueye[] = INCBIN_U8("graphics/pokemon/decidueye/footprint.1bpp"); + +#if P_HISUIAN_FORMS + const u32 gMonFrontPic_DecidueyeHisuian[] = INCBIN_U32("graphics/pokemon/decidueye/hisuian/front.4bpp.lz"); + const u32 gMonPalette_DecidueyeHisuian[] = INCBIN_U32("graphics/pokemon/decidueye/hisuian/normal.gbapal.lz"); + const u32 gMonBackPic_DecidueyeHisuian[] = INCBIN_U32("graphics/pokemon/decidueye/hisuian/back.4bpp.lz"); + const u32 gMonShinyPalette_DecidueyeHisuian[] = INCBIN_U32("graphics/pokemon/decidueye/hisuian/shiny.gbapal.lz"); + const u8 gMonIcon_DecidueyeHisuian[] = INCBIN_U8("graphics/pokemon/decidueye/hisuian/icon.4bpp"); +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_ROWLET + +#if P_FAMILY_LITTEN + const u32 gMonFrontPic_Litten[] = INCBIN_U32("graphics/pokemon/litten/front.4bpp.lz"); + const u32 gMonPalette_Litten[] = INCBIN_U32("graphics/pokemon/litten/normal.gbapal.lz"); + const u32 gMonBackPic_Litten[] = INCBIN_U32("graphics/pokemon/litten/back.4bpp.lz"); + const u32 gMonShinyPalette_Litten[] = INCBIN_U32("graphics/pokemon/litten/shiny.gbapal.lz"); + const u8 gMonIcon_Litten[] = INCBIN_U8("graphics/pokemon/litten/icon.4bpp"); + const u8 gMonFootprint_Litten[] = INCBIN_U8("graphics/pokemon/litten/footprint.1bpp"); + + const u32 gMonFrontPic_Torracat[] = INCBIN_U32("graphics/pokemon/torracat/front.4bpp.lz"); + const u32 gMonPalette_Torracat[] = INCBIN_U32("graphics/pokemon/torracat/normal.gbapal.lz"); + const u32 gMonBackPic_Torracat[] = INCBIN_U32("graphics/pokemon/torracat/back.4bpp.lz"); + const u32 gMonShinyPalette_Torracat[] = INCBIN_U32("graphics/pokemon/torracat/shiny.gbapal.lz"); + const u8 gMonIcon_Torracat[] = INCBIN_U8("graphics/pokemon/torracat/icon.4bpp"); + const u8 gMonFootprint_Torracat[] = INCBIN_U8("graphics/pokemon/torracat/footprint.1bpp"); + + const u32 gMonFrontPic_Incineroar[] = INCBIN_U32("graphics/pokemon/incineroar/front.4bpp.lz"); + const u32 gMonPalette_Incineroar[] = INCBIN_U32("graphics/pokemon/incineroar/normal.gbapal.lz"); + const u32 gMonBackPic_Incineroar[] = INCBIN_U32("graphics/pokemon/incineroar/back.4bpp.lz"); + const u32 gMonShinyPalette_Incineroar[] = INCBIN_U32("graphics/pokemon/incineroar/shiny.gbapal.lz"); + const u8 gMonIcon_Incineroar[] = INCBIN_U8("graphics/pokemon/incineroar/icon.4bpp"); + const u8 gMonFootprint_Incineroar[] = INCBIN_U8("graphics/pokemon/incineroar/footprint.1bpp"); +#endif //P_FAMILY_LITTEN + +#if P_FAMILY_POPPLIO + const u32 gMonFrontPic_Popplio[] = INCBIN_U32("graphics/pokemon/popplio/front.4bpp.lz"); + const u32 gMonPalette_Popplio[] = INCBIN_U32("graphics/pokemon/popplio/normal.gbapal.lz"); + const u32 gMonBackPic_Popplio[] = INCBIN_U32("graphics/pokemon/popplio/back.4bpp.lz"); + const u32 gMonShinyPalette_Popplio[] = INCBIN_U32("graphics/pokemon/popplio/shiny.gbapal.lz"); + const u8 gMonIcon_Popplio[] = INCBIN_U8("graphics/pokemon/popplio/icon.4bpp"); + const u8 gMonFootprint_Popplio[] = INCBIN_U8("graphics/pokemon/popplio/footprint.1bpp"); + + const u32 gMonFrontPic_Brionne[] = INCBIN_U32("graphics/pokemon/brionne/front.4bpp.lz"); + const u32 gMonPalette_Brionne[] = INCBIN_U32("graphics/pokemon/brionne/normal.gbapal.lz"); + const u32 gMonBackPic_Brionne[] = INCBIN_U32("graphics/pokemon/brionne/back.4bpp.lz"); + const u32 gMonShinyPalette_Brionne[] = INCBIN_U32("graphics/pokemon/brionne/shiny.gbapal.lz"); + const u8 gMonIcon_Brionne[] = INCBIN_U8("graphics/pokemon/brionne/icon.4bpp"); + const u8 gMonFootprint_Brionne[] = INCBIN_U8("graphics/pokemon/brionne/footprint.1bpp"); + + const u32 gMonFrontPic_Primarina[] = INCBIN_U32("graphics/pokemon/primarina/front.4bpp.lz"); + const u32 gMonPalette_Primarina[] = INCBIN_U32("graphics/pokemon/primarina/normal.gbapal.lz"); + const u32 gMonBackPic_Primarina[] = INCBIN_U32("graphics/pokemon/primarina/back.4bpp.lz"); + const u32 gMonShinyPalette_Primarina[] = INCBIN_U32("graphics/pokemon/primarina/shiny.gbapal.lz"); + const u8 gMonIcon_Primarina[] = INCBIN_U8("graphics/pokemon/primarina/icon.4bpp"); + const u8 gMonFootprint_Primarina[] = INCBIN_U8("graphics/pokemon/primarina/footprint.1bpp"); +#endif //P_FAMILY_POPPLIO + +#if P_FAMILY_PIKIPEK + const u32 gMonFrontPic_Pikipek[] = INCBIN_U32("graphics/pokemon/pikipek/anim_front.4bpp.lz"); + const u32 gMonPalette_Pikipek[] = INCBIN_U32("graphics/pokemon/pikipek/normal.gbapal.lz"); + const u32 gMonBackPic_Pikipek[] = INCBIN_U32("graphics/pokemon/pikipek/back.4bpp.lz"); + const u32 gMonShinyPalette_Pikipek[] = INCBIN_U32("graphics/pokemon/pikipek/shiny.gbapal.lz"); + const u8 gMonIcon_Pikipek[] = INCBIN_U8("graphics/pokemon/pikipek/icon.4bpp"); + const u8 gMonFootprint_Pikipek[] = INCBIN_U8("graphics/pokemon/pikipek/footprint.1bpp"); + + const u32 gMonFrontPic_Trumbeak[] = INCBIN_U32("graphics/pokemon/trumbeak/anim_front.4bpp.lz"); + const u32 gMonPalette_Trumbeak[] = INCBIN_U32("graphics/pokemon/trumbeak/normal.gbapal.lz"); + const u32 gMonBackPic_Trumbeak[] = INCBIN_U32("graphics/pokemon/trumbeak/back.4bpp.lz"); + const u32 gMonShinyPalette_Trumbeak[] = INCBIN_U32("graphics/pokemon/trumbeak/shiny.gbapal.lz"); + const u8 gMonIcon_Trumbeak[] = INCBIN_U8("graphics/pokemon/trumbeak/icon.4bpp"); + const u8 gMonFootprint_Trumbeak[] = INCBIN_U8("graphics/pokemon/trumbeak/footprint.1bpp"); + + const u32 gMonFrontPic_Toucannon[] = INCBIN_U32("graphics/pokemon/toucannon/anim_front.4bpp.lz"); + const u32 gMonPalette_Toucannon[] = INCBIN_U32("graphics/pokemon/toucannon/normal.gbapal.lz"); + const u32 gMonBackPic_Toucannon[] = INCBIN_U32("graphics/pokemon/toucannon/back.4bpp.lz"); + const u32 gMonShinyPalette_Toucannon[] = INCBIN_U32("graphics/pokemon/toucannon/shiny.gbapal.lz"); + const u8 gMonIcon_Toucannon[] = INCBIN_U8("graphics/pokemon/toucannon/icon.4bpp"); + const u8 gMonFootprint_Toucannon[] = INCBIN_U8("graphics/pokemon/toucannon/footprint.1bpp"); +#endif //P_FAMILY_PIKIPEK + +#if P_FAMILY_YUNGOOS + const u32 gMonFrontPic_Yungoos[] = INCBIN_U32("graphics/pokemon/yungoos/front.4bpp.lz"); + const u32 gMonPalette_Yungoos[] = INCBIN_U32("graphics/pokemon/yungoos/normal.gbapal.lz"); + const u32 gMonBackPic_Yungoos[] = INCBIN_U32("graphics/pokemon/yungoos/back.4bpp.lz"); + const u32 gMonShinyPalette_Yungoos[] = INCBIN_U32("graphics/pokemon/yungoos/shiny.gbapal.lz"); + const u8 gMonIcon_Yungoos[] = INCBIN_U8("graphics/pokemon/yungoos/icon.4bpp"); + const u8 gMonFootprint_Yungoos[] = INCBIN_U8("graphics/pokemon/yungoos/footprint.1bpp"); + + const u32 gMonFrontPic_Gumshoos[] = INCBIN_U32("graphics/pokemon/gumshoos/front.4bpp.lz"); + const u32 gMonPalette_Gumshoos[] = INCBIN_U32("graphics/pokemon/gumshoos/normal.gbapal.lz"); + const u32 gMonBackPic_Gumshoos[] = INCBIN_U32("graphics/pokemon/gumshoos/back.4bpp.lz"); + const u32 gMonShinyPalette_Gumshoos[] = INCBIN_U32("graphics/pokemon/gumshoos/shiny.gbapal.lz"); + const u8 gMonIcon_Gumshoos[] = INCBIN_U8("graphics/pokemon/gumshoos/icon.4bpp"); + const u8 gMonFootprint_Gumshoos[] = INCBIN_U8("graphics/pokemon/gumshoos/footprint.1bpp"); +#endif //P_FAMILY_YUNGOOS + +#if P_FAMILY_GRUBBIN + const u32 gMonFrontPic_Grubbin[] = INCBIN_U32("graphics/pokemon/grubbin/anim_front.4bpp.lz"); + const u32 gMonPalette_Grubbin[] = INCBIN_U32("graphics/pokemon/grubbin/normal.gbapal.lz"); + const u32 gMonBackPic_Grubbin[] = INCBIN_U32("graphics/pokemon/grubbin/back.4bpp.lz"); + const u32 gMonShinyPalette_Grubbin[] = INCBIN_U32("graphics/pokemon/grubbin/shiny.gbapal.lz"); + const u8 gMonIcon_Grubbin[] = INCBIN_U8("graphics/pokemon/grubbin/icon.4bpp"); + const u8 gMonFootprint_Grubbin[] = INCBIN_U8("graphics/pokemon/grubbin/footprint.1bpp"); + + const u32 gMonFrontPic_Charjabug[] = INCBIN_U32("graphics/pokemon/charjabug/anim_front.4bpp.lz"); + const u32 gMonPalette_Charjabug[] = INCBIN_U32("graphics/pokemon/charjabug/normal.gbapal.lz"); + const u32 gMonBackPic_Charjabug[] = INCBIN_U32("graphics/pokemon/charjabug/back.4bpp.lz"); + const u32 gMonShinyPalette_Charjabug[] = INCBIN_U32("graphics/pokemon/charjabug/shiny.gbapal.lz"); + const u8 gMonIcon_Charjabug[] = INCBIN_U8("graphics/pokemon/charjabug/icon.4bpp"); + const u8 gMonFootprint_Charjabug[] = INCBIN_U8("graphics/pokemon/charjabug/footprint.1bpp"); + + const u32 gMonFrontPic_Vikavolt[] = INCBIN_U32("graphics/pokemon/vikavolt/anim_front.4bpp.lz"); + const u32 gMonPalette_Vikavolt[] = INCBIN_U32("graphics/pokemon/vikavolt/normal.gbapal.lz"); + const u32 gMonBackPic_Vikavolt[] = INCBIN_U32("graphics/pokemon/vikavolt/back.4bpp.lz"); + const u32 gMonShinyPalette_Vikavolt[] = INCBIN_U32("graphics/pokemon/vikavolt/shiny.gbapal.lz"); + const u8 gMonIcon_Vikavolt[] = INCBIN_U8("graphics/pokemon/vikavolt/icon.4bpp"); + const u8 gMonFootprint_Vikavolt[] = INCBIN_U8("graphics/pokemon/vikavolt/footprint.1bpp"); +#endif //P_FAMILY_GRUBBIN + +#if P_FAMILY_CRABRAWLER + const u32 gMonFrontPic_Crabrawler[] = INCBIN_U32("graphics/pokemon/crabrawler/front.4bpp.lz"); + const u32 gMonPalette_Crabrawler[] = INCBIN_U32("graphics/pokemon/crabrawler/normal.gbapal.lz"); + const u32 gMonBackPic_Crabrawler[] = INCBIN_U32("graphics/pokemon/crabrawler/back.4bpp.lz"); + const u32 gMonShinyPalette_Crabrawler[] = INCBIN_U32("graphics/pokemon/crabrawler/shiny.gbapal.lz"); + const u8 gMonIcon_Crabrawler[] = INCBIN_U8("graphics/pokemon/crabrawler/icon.4bpp"); + const u8 gMonFootprint_Crabrawler[] = INCBIN_U8("graphics/pokemon/crabrawler/footprint.1bpp"); + + const u32 gMonFrontPic_Crabominable[] = INCBIN_U32("graphics/pokemon/crabominable/front.4bpp.lz"); + const u32 gMonPalette_Crabominable[] = INCBIN_U32("graphics/pokemon/crabominable/normal.gbapal.lz"); + const u32 gMonBackPic_Crabominable[] = INCBIN_U32("graphics/pokemon/crabominable/back.4bpp.lz"); + const u32 gMonShinyPalette_Crabominable[] = INCBIN_U32("graphics/pokemon/crabominable/shiny.gbapal.lz"); + const u8 gMonIcon_Crabominable[] = INCBIN_U8("graphics/pokemon/crabominable/icon.4bpp"); + const u8 gMonFootprint_Crabominable[] = INCBIN_U8("graphics/pokemon/crabominable/footprint.1bpp"); +#endif //P_FAMILY_CRABRAWLER + +#if P_FAMILY_ORICORIO + const u32 gMonFrontPic_OricorioBaile[] = INCBIN_U32("graphics/pokemon/oricorio/front.4bpp.lz"); + const u32 gMonPalette_OricorioBaile[] = INCBIN_U32("graphics/pokemon/oricorio/normal.gbapal.lz"); + const u32 gMonBackPic_OricorioBaile[] = INCBIN_U32("graphics/pokemon/oricorio/back.4bpp.lz"); + const u32 gMonShinyPalette_OricorioBaile[] = INCBIN_U32("graphics/pokemon/oricorio/shiny.gbapal.lz"); + const u8 gMonIcon_OricorioBaile[] = INCBIN_U8("graphics/pokemon/oricorio/icon.4bpp"); + const u8 gMonFootprint_Oricorio[] = INCBIN_U8("graphics/pokemon/oricorio/footprint.1bpp"); + + const u32 gMonFrontPic_OricorioPomPom[] = INCBIN_U32("graphics/pokemon/oricorio/pom_pom/front.4bpp.lz"); + const u32 gMonPalette_OricorioPomPom[] = INCBIN_U32("graphics/pokemon/oricorio/pom_pom/normal.gbapal.lz"); + const u32 gMonBackPic_OricorioPomPom[] = INCBIN_U32("graphics/pokemon/oricorio/pom_pom/back.4bpp.lz"); + const u32 gMonShinyPalette_OricorioPomPom[] = INCBIN_U32("graphics/pokemon/oricorio/pom_pom/shiny.gbapal.lz"); + const u8 gMonIcon_OricorioPomPom[] = INCBIN_U8("graphics/pokemon/oricorio/pom_pom/icon.4bpp"); + + const u32 gMonFrontPic_OricorioPau[] = INCBIN_U32("graphics/pokemon/oricorio/pau/front.4bpp.lz"); + const u32 gMonPalette_OricorioPau[] = INCBIN_U32("graphics/pokemon/oricorio/pau/normal.gbapal.lz"); + const u32 gMonBackPic_OricorioPau[] = INCBIN_U32("graphics/pokemon/oricorio/pau/back.4bpp.lz"); + const u32 gMonShinyPalette_OricorioPau[] = INCBIN_U32("graphics/pokemon/oricorio/pau/shiny.gbapal.lz"); + const u8 gMonIcon_OricorioPau[] = INCBIN_U8("graphics/pokemon/oricorio/pau/icon.4bpp"); + + const u32 gMonFrontPic_OricorioSensu[] = INCBIN_U32("graphics/pokemon/oricorio/sensu/front.4bpp.lz"); + const u32 gMonPalette_OricorioSensu[] = INCBIN_U32("graphics/pokemon/oricorio/sensu/normal.gbapal.lz"); + const u32 gMonBackPic_OricorioSensu[] = INCBIN_U32("graphics/pokemon/oricorio/sensu/back.4bpp.lz"); + const u32 gMonShinyPalette_OricorioSensu[] = INCBIN_U32("graphics/pokemon/oricorio/sensu/shiny.gbapal.lz"); + const u8 gMonIcon_OricorioSensu[] = INCBIN_U8("graphics/pokemon/oricorio/sensu/icon.4bpp"); +#endif //P_FAMILY_ORICORIO + +#if P_FAMILY_CUTIEFLY + const u32 gMonFrontPic_Cutiefly[] = INCBIN_U32("graphics/pokemon/cutiefly/anim_front.4bpp.lz"); + const u32 gMonPalette_Cutiefly[] = INCBIN_U32("graphics/pokemon/cutiefly/normal.gbapal.lz"); + const u32 gMonBackPic_Cutiefly[] = INCBIN_U32("graphics/pokemon/cutiefly/back.4bpp.lz"); + const u32 gMonShinyPalette_Cutiefly[] = INCBIN_U32("graphics/pokemon/cutiefly/shiny.gbapal.lz"); + const u8 gMonIcon_Cutiefly[] = INCBIN_U8("graphics/pokemon/cutiefly/icon.4bpp"); + const u8 gMonFootprint_Cutiefly[] = INCBIN_U8("graphics/pokemon/cutiefly/footprint.1bpp"); + + const u32 gMonFrontPic_Ribombee[] = INCBIN_U32("graphics/pokemon/ribombee/anim_front.4bpp.lz"); + const u32 gMonPalette_Ribombee[] = INCBIN_U32("graphics/pokemon/ribombee/normal.gbapal.lz"); + const u32 gMonBackPic_Ribombee[] = INCBIN_U32("graphics/pokemon/ribombee/back.4bpp.lz"); + const u32 gMonShinyPalette_Ribombee[] = INCBIN_U32("graphics/pokemon/ribombee/shiny.gbapal.lz"); + const u8 gMonIcon_Ribombee[] = INCBIN_U8("graphics/pokemon/ribombee/icon.4bpp"); + const u8 gMonFootprint_Ribombee[] = INCBIN_U8("graphics/pokemon/ribombee/footprint.1bpp"); +#endif //P_FAMILY_CUTIEFLY + +#if P_FAMILY_ROCKRUFF + const u32 gMonFrontPic_Rockruff[] = INCBIN_U32("graphics/pokemon/rockruff/anim_front.4bpp.lz"); + const u32 gMonPalette_Rockruff[] = INCBIN_U32("graphics/pokemon/rockruff/normal.gbapal.lz"); + const u32 gMonBackPic_Rockruff[] = INCBIN_U32("graphics/pokemon/rockruff/back.4bpp.lz"); + const u32 gMonShinyPalette_Rockruff[] = INCBIN_U32("graphics/pokemon/rockruff/shiny.gbapal.lz"); + const u8 gMonIcon_Rockruff[] = INCBIN_U8("graphics/pokemon/rockruff/icon.4bpp"); + const u8 gMonFootprint_Rockruff[] = INCBIN_U8("graphics/pokemon/rockruff/footprint.1bpp"); + + const u32 gMonFrontPic_LycanrocMidday[] = INCBIN_U32("graphics/pokemon/lycanroc/anim_front.4bpp.lz"); + const u32 gMonPalette_LycanrocMidday[] = INCBIN_U32("graphics/pokemon/lycanroc/normal.gbapal.lz"); + const u32 gMonBackPic_LycanrocMidday[] = INCBIN_U32("graphics/pokemon/lycanroc/back.4bpp.lz"); + const u32 gMonShinyPalette_LycanrocMidday[] = INCBIN_U32("graphics/pokemon/lycanroc/shiny.gbapal.lz"); + const u8 gMonIcon_LycanrocMidday[] = INCBIN_U8("graphics/pokemon/lycanroc/icon.4bpp"); + const u8 gMonFootprint_Lycanroc[] = INCBIN_U8("graphics/pokemon/lycanroc/footprint.1bpp"); + + const u32 gMonFrontPic_LycanrocMidnight[] = INCBIN_U32("graphics/pokemon/lycanroc/midnight/anim_front.4bpp.lz"); + const u32 gMonPalette_LycanrocMidnight[] = INCBIN_U32("graphics/pokemon/lycanroc/midnight/normal.gbapal.lz"); + const u32 gMonBackPic_LycanrocMidnight[] = INCBIN_U32("graphics/pokemon/lycanroc/midnight/back.4bpp.lz"); + const u32 gMonShinyPalette_LycanrocMidnight[] = INCBIN_U32("graphics/pokemon/lycanroc/midnight/shiny.gbapal.lz"); + const u8 gMonIcon_LycanrocMidnight[] = INCBIN_U8("graphics/pokemon/lycanroc/midnight/icon.4bpp"); + + const u32 gMonFrontPic_LycanrocDusk[] = INCBIN_U32("graphics/pokemon/lycanroc/dusk/anim_front.4bpp.lz"); + const u32 gMonPalette_LycanrocDusk[] = INCBIN_U32("graphics/pokemon/lycanroc/dusk/normal.gbapal.lz"); + const u32 gMonBackPic_LycanrocDusk[] = INCBIN_U32("graphics/pokemon/lycanroc/dusk/back.4bpp.lz"); + const u32 gMonShinyPalette_LycanrocDusk[] = INCBIN_U32("graphics/pokemon/lycanroc/dusk/shiny.gbapal.lz"); + const u8 gMonIcon_LycanrocDusk[] = INCBIN_U8("graphics/pokemon/lycanroc/dusk/icon.4bpp"); +#endif //P_FAMILY_ROCKRUFF + +#if P_FAMILY_WISHIWASHI + const u32 gMonFrontPic_WishiwashiSolo[] = INCBIN_U32("graphics/pokemon/wishiwashi/front.4bpp.lz"); + const u32 gMonPalette_WishiwashiSolo[] = INCBIN_U32("graphics/pokemon/wishiwashi/normal.gbapal.lz"); + const u32 gMonBackPic_WishiwashiSolo[] = INCBIN_U32("graphics/pokemon/wishiwashi/back.4bpp.lz"); + const u32 gMonShinyPalette_WishiwashiSolo[] = INCBIN_U32("graphics/pokemon/wishiwashi/shiny.gbapal.lz"); + const u8 gMonIcon_WishiwashiSolo[] = INCBIN_U8("graphics/pokemon/wishiwashi/icon.4bpp"); + const u8 gMonFootprint_Wishiwashi[] = INCBIN_U8("graphics/pokemon/wishiwashi/footprint.1bpp"); + + const u32 gMonFrontPic_WishiwashiSchool[] = INCBIN_U32("graphics/pokemon/wishiwashi/school/front.4bpp.lz"); + const u32 gMonPalette_WishiwashiSchool[] = INCBIN_U32("graphics/pokemon/wishiwashi/school/normal.gbapal.lz"); + const u32 gMonBackPic_WishiwashiSchool[] = INCBIN_U32("graphics/pokemon/wishiwashi/school/back.4bpp.lz"); + const u32 gMonShinyPalette_WishiwashiSchool[] = INCBIN_U32("graphics/pokemon/wishiwashi/school/shiny.gbapal.lz"); + const u8 gMonIcon_WishiwashiSchool[] = INCBIN_U8("graphics/pokemon/wishiwashi/school/icon.4bpp"); +#endif //P_FAMILY_WISHIWASHI + +#if P_FAMILY_MAREANIE + const u32 gMonFrontPic_Mareanie[] = INCBIN_U32("graphics/pokemon/mareanie/front.4bpp.lz"); + const u32 gMonPalette_Mareanie[] = INCBIN_U32("graphics/pokemon/mareanie/normal.gbapal.lz"); + const u32 gMonBackPic_Mareanie[] = INCBIN_U32("graphics/pokemon/mareanie/back.4bpp.lz"); + const u32 gMonShinyPalette_Mareanie[] = INCBIN_U32("graphics/pokemon/mareanie/shiny.gbapal.lz"); + const u8 gMonIcon_Mareanie[] = INCBIN_U8("graphics/pokemon/mareanie/icon.4bpp"); + const u8 gMonFootprint_Mareanie[] = INCBIN_U8("graphics/pokemon/mareanie/footprint.1bpp"); + + const u32 gMonFrontPic_Toxapex[] = INCBIN_U32("graphics/pokemon/toxapex/front.4bpp.lz"); + const u32 gMonPalette_Toxapex[] = INCBIN_U32("graphics/pokemon/toxapex/normal.gbapal.lz"); + const u32 gMonBackPic_Toxapex[] = INCBIN_U32("graphics/pokemon/toxapex/back.4bpp.lz"); + const u32 gMonShinyPalette_Toxapex[] = INCBIN_U32("graphics/pokemon/toxapex/shiny.gbapal.lz"); + const u8 gMonIcon_Toxapex[] = INCBIN_U8("graphics/pokemon/toxapex/icon.4bpp"); + const u8 gMonFootprint_Toxapex[] = INCBIN_U8("graphics/pokemon/toxapex/footprint.1bpp"); +#endif //P_FAMILY_MAREANIE + +#if P_FAMILY_MUDBRAY + const u32 gMonFrontPic_Mudbray[] = INCBIN_U32("graphics/pokemon/mudbray/front.4bpp.lz"); + const u32 gMonPalette_Mudbray[] = INCBIN_U32("graphics/pokemon/mudbray/normal.gbapal.lz"); + const u32 gMonBackPic_Mudbray[] = INCBIN_U32("graphics/pokemon/mudbray/back.4bpp.lz"); + const u32 gMonShinyPalette_Mudbray[] = INCBIN_U32("graphics/pokemon/mudbray/shiny.gbapal.lz"); + const u8 gMonIcon_Mudbray[] = INCBIN_U8("graphics/pokemon/mudbray/icon.4bpp"); + const u8 gMonFootprint_Mudbray[] = INCBIN_U8("graphics/pokemon/mudbray/footprint.1bpp"); + + const u32 gMonFrontPic_Mudsdale[] = INCBIN_U32("graphics/pokemon/mudsdale/front.4bpp.lz"); + const u32 gMonPalette_Mudsdale[] = INCBIN_U32("graphics/pokemon/mudsdale/normal.gbapal.lz"); + const u32 gMonBackPic_Mudsdale[] = INCBIN_U32("graphics/pokemon/mudsdale/back.4bpp.lz"); + const u32 gMonShinyPalette_Mudsdale[] = INCBIN_U32("graphics/pokemon/mudsdale/shiny.gbapal.lz"); + const u8 gMonIcon_Mudsdale[] = INCBIN_U8("graphics/pokemon/mudsdale/icon.4bpp"); + const u8 gMonFootprint_Mudsdale[] = INCBIN_U8("graphics/pokemon/mudsdale/footprint.1bpp"); +#endif //P_FAMILY_MUDBRAY + +#if P_FAMILY_DEWPIDER + const u32 gMonFrontPic_Dewpider[] = INCBIN_U32("graphics/pokemon/dewpider/anim_front.4bpp.lz"); + const u32 gMonPalette_Dewpider[] = INCBIN_U32("graphics/pokemon/dewpider/normal.gbapal.lz"); + const u32 gMonBackPic_Dewpider[] = INCBIN_U32("graphics/pokemon/dewpider/back.4bpp.lz"); + const u32 gMonShinyPalette_Dewpider[] = INCBIN_U32("graphics/pokemon/dewpider/shiny.gbapal.lz"); + const u8 gMonIcon_Dewpider[] = INCBIN_U8("graphics/pokemon/dewpider/icon.4bpp"); + const u8 gMonFootprint_Dewpider[] = INCBIN_U8("graphics/pokemon/dewpider/footprint.1bpp"); + + const u32 gMonFrontPic_Araquanid[] = INCBIN_U32("graphics/pokemon/araquanid/anim_front.4bpp.lz"); + const u32 gMonPalette_Araquanid[] = INCBIN_U32("graphics/pokemon/araquanid/normal.gbapal.lz"); + const u32 gMonBackPic_Araquanid[] = INCBIN_U32("graphics/pokemon/araquanid/back.4bpp.lz"); + const u32 gMonShinyPalette_Araquanid[] = INCBIN_U32("graphics/pokemon/araquanid/shiny.gbapal.lz"); + const u8 gMonIcon_Araquanid[] = INCBIN_U8("graphics/pokemon/araquanid/icon.4bpp"); + const u8 gMonFootprint_Araquanid[] = INCBIN_U8("graphics/pokemon/araquanid/footprint.1bpp"); +#endif //P_FAMILY_DEWPIDER + +#if P_FAMILY_FOMANTIS + const u32 gMonFrontPic_Fomantis[] = INCBIN_U32("graphics/pokemon/fomantis/front.4bpp.lz"); + const u32 gMonPalette_Fomantis[] = INCBIN_U32("graphics/pokemon/fomantis/normal.gbapal.lz"); + const u32 gMonBackPic_Fomantis[] = INCBIN_U32("graphics/pokemon/fomantis/back.4bpp.lz"); + const u32 gMonShinyPalette_Fomantis[] = INCBIN_U32("graphics/pokemon/fomantis/shiny.gbapal.lz"); + const u8 gMonIcon_Fomantis[] = INCBIN_U8("graphics/pokemon/fomantis/icon.4bpp"); + const u8 gMonFootprint_Fomantis[] = INCBIN_U8("graphics/pokemon/fomantis/footprint.1bpp"); + + const u32 gMonFrontPic_Lurantis[] = INCBIN_U32("graphics/pokemon/lurantis/front.4bpp.lz"); + const u32 gMonPalette_Lurantis[] = INCBIN_U32("graphics/pokemon/lurantis/normal.gbapal.lz"); + const u32 gMonBackPic_Lurantis[] = INCBIN_U32("graphics/pokemon/lurantis/back.4bpp.lz"); + const u32 gMonShinyPalette_Lurantis[] = INCBIN_U32("graphics/pokemon/lurantis/shiny.gbapal.lz"); + const u8 gMonIcon_Lurantis[] = INCBIN_U8("graphics/pokemon/lurantis/icon.4bpp"); + const u8 gMonFootprint_Lurantis[] = INCBIN_U8("graphics/pokemon/lurantis/footprint.1bpp"); +#endif //P_FAMILY_FOMANTIS + +#if P_FAMILY_MORELULL + const u32 gMonFrontPic_Morelull[] = INCBIN_U32("graphics/pokemon/morelull/front.4bpp.lz"); + const u32 gMonPalette_Morelull[] = INCBIN_U32("graphics/pokemon/morelull/normal.gbapal.lz"); + const u32 gMonBackPic_Morelull[] = INCBIN_U32("graphics/pokemon/morelull/back.4bpp.lz"); + const u32 gMonShinyPalette_Morelull[] = INCBIN_U32("graphics/pokemon/morelull/shiny.gbapal.lz"); + const u8 gMonIcon_Morelull[] = INCBIN_U8("graphics/pokemon/morelull/icon.4bpp"); + const u8 gMonFootprint_Morelull[] = INCBIN_U8("graphics/pokemon/morelull/footprint.1bpp"); + + const u32 gMonFrontPic_Shiinotic[] = INCBIN_U32("graphics/pokemon/shiinotic/front.4bpp.lz"); + const u32 gMonPalette_Shiinotic[] = INCBIN_U32("graphics/pokemon/shiinotic/normal.gbapal.lz"); + const u32 gMonBackPic_Shiinotic[] = INCBIN_U32("graphics/pokemon/shiinotic/back.4bpp.lz"); + const u32 gMonShinyPalette_Shiinotic[] = INCBIN_U32("graphics/pokemon/shiinotic/shiny.gbapal.lz"); + const u8 gMonIcon_Shiinotic[] = INCBIN_U8("graphics/pokemon/shiinotic/icon.4bpp"); + const u8 gMonFootprint_Shiinotic[] = INCBIN_U8("graphics/pokemon/shiinotic/footprint.1bpp"); +#endif //P_FAMILY_MORELULL + +#if P_FAMILY_SALANDIT + const u32 gMonFrontPic_Salandit[] = INCBIN_U32("graphics/pokemon/salandit/anim_front.4bpp.lz"); + const u32 gMonPalette_Salandit[] = INCBIN_U32("graphics/pokemon/salandit/normal.gbapal.lz"); + const u32 gMonBackPic_Salandit[] = INCBIN_U32("graphics/pokemon/salandit/back.4bpp.lz"); + const u32 gMonShinyPalette_Salandit[] = INCBIN_U32("graphics/pokemon/salandit/shiny.gbapal.lz"); + const u8 gMonIcon_Salandit[] = INCBIN_U8("graphics/pokemon/salandit/icon.4bpp"); + const u8 gMonFootprint_Salandit[] = INCBIN_U8("graphics/pokemon/salandit/footprint.1bpp"); + + const u32 gMonFrontPic_Salazzle[] = INCBIN_U32("graphics/pokemon/salazzle/anim_front.4bpp.lz"); + const u32 gMonPalette_Salazzle[] = INCBIN_U32("graphics/pokemon/salazzle/normal.gbapal.lz"); + const u32 gMonBackPic_Salazzle[] = INCBIN_U32("graphics/pokemon/salazzle/back.4bpp.lz"); + const u32 gMonShinyPalette_Salazzle[] = INCBIN_U32("graphics/pokemon/salazzle/shiny.gbapal.lz"); + const u8 gMonIcon_Salazzle[] = INCBIN_U8("graphics/pokemon/salazzle/icon.4bpp"); + const u8 gMonFootprint_Salazzle[] = INCBIN_U8("graphics/pokemon/salazzle/footprint.1bpp"); +#endif //P_FAMILY_SALANDIT + +#if P_FAMILY_STUFFUL + const u32 gMonFrontPic_Stufful[] = INCBIN_U32("graphics/pokemon/stufful/anim_front.4bpp.lz"); + const u32 gMonPalette_Stufful[] = INCBIN_U32("graphics/pokemon/stufful/normal.gbapal.lz"); + const u32 gMonBackPic_Stufful[] = INCBIN_U32("graphics/pokemon/stufful/back.4bpp.lz"); + const u32 gMonShinyPalette_Stufful[] = INCBIN_U32("graphics/pokemon/stufful/shiny.gbapal.lz"); + const u8 gMonIcon_Stufful[] = INCBIN_U8("graphics/pokemon/stufful/icon.4bpp"); + const u8 gMonFootprint_Stufful[] = INCBIN_U8("graphics/pokemon/stufful/footprint.1bpp"); + + const u32 gMonFrontPic_Bewear[] = INCBIN_U32("graphics/pokemon/bewear/anim_front.4bpp.lz"); + const u32 gMonPalette_Bewear[] = INCBIN_U32("graphics/pokemon/bewear/normal.gbapal.lz"); + const u32 gMonBackPic_Bewear[] = INCBIN_U32("graphics/pokemon/bewear/back.4bpp.lz"); + const u32 gMonShinyPalette_Bewear[] = INCBIN_U32("graphics/pokemon/bewear/shiny.gbapal.lz"); + const u8 gMonIcon_Bewear[] = INCBIN_U8("graphics/pokemon/bewear/icon.4bpp"); + const u8 gMonFootprint_Bewear[] = INCBIN_U8("graphics/pokemon/bewear/footprint.1bpp"); +#endif //P_FAMILY_STUFFUL + +#if P_FAMILY_BOUNSWEET + const u32 gMonFrontPic_Bounsweet[] = INCBIN_U32("graphics/pokemon/bounsweet/front.4bpp.lz"); + const u32 gMonPalette_Bounsweet[] = INCBIN_U32("graphics/pokemon/bounsweet/normal.gbapal.lz"); + const u32 gMonBackPic_Bounsweet[] = INCBIN_U32("graphics/pokemon/bounsweet/back.4bpp.lz"); + const u32 gMonShinyPalette_Bounsweet[] = INCBIN_U32("graphics/pokemon/bounsweet/shiny.gbapal.lz"); + const u8 gMonIcon_Bounsweet[] = INCBIN_U8("graphics/pokemon/bounsweet/icon.4bpp"); + const u8 gMonFootprint_Bounsweet[] = INCBIN_U8("graphics/pokemon/bounsweet/footprint.1bpp"); + + const u32 gMonFrontPic_Steenee[] = INCBIN_U32("graphics/pokemon/steenee/front.4bpp.lz"); + const u32 gMonPalette_Steenee[] = INCBIN_U32("graphics/pokemon/steenee/normal.gbapal.lz"); + const u32 gMonBackPic_Steenee[] = INCBIN_U32("graphics/pokemon/steenee/back.4bpp.lz"); + const u32 gMonShinyPalette_Steenee[] = INCBIN_U32("graphics/pokemon/steenee/shiny.gbapal.lz"); + const u8 gMonIcon_Steenee[] = INCBIN_U8("graphics/pokemon/steenee/icon.4bpp"); + const u8 gMonFootprint_Steenee[] = INCBIN_U8("graphics/pokemon/steenee/footprint.1bpp"); + + const u32 gMonFrontPic_Tsareena[] = INCBIN_U32("graphics/pokemon/tsareena/front.4bpp.lz"); + const u32 gMonPalette_Tsareena[] = INCBIN_U32("graphics/pokemon/tsareena/normal.gbapal.lz"); + const u32 gMonBackPic_Tsareena[] = INCBIN_U32("graphics/pokemon/tsareena/back.4bpp.lz"); + const u32 gMonShinyPalette_Tsareena[] = INCBIN_U32("graphics/pokemon/tsareena/shiny.gbapal.lz"); + const u8 gMonIcon_Tsareena[] = INCBIN_U8("graphics/pokemon/tsareena/icon.4bpp"); + const u8 gMonFootprint_Tsareena[] = INCBIN_U8("graphics/pokemon/tsareena/footprint.1bpp"); +#endif //P_FAMILY_BOUNSWEET + +#if P_FAMILY_COMFEY + const u32 gMonFrontPic_Comfey[] = INCBIN_U32("graphics/pokemon/comfey/front.4bpp.lz"); + const u32 gMonPalette_Comfey[] = INCBIN_U32("graphics/pokemon/comfey/normal.gbapal.lz"); + const u32 gMonBackPic_Comfey[] = INCBIN_U32("graphics/pokemon/comfey/back.4bpp.lz"); + const u32 gMonShinyPalette_Comfey[] = INCBIN_U32("graphics/pokemon/comfey/shiny.gbapal.lz"); + const u8 gMonIcon_Comfey[] = INCBIN_U8("graphics/pokemon/comfey/icon.4bpp"); + const u8 gMonFootprint_Comfey[] = INCBIN_U8("graphics/pokemon/comfey/footprint.1bpp"); +#endif //P_FAMILY_COMFEY + +#if P_FAMILY_ORANGURU + const u32 gMonFrontPic_Oranguru[] = INCBIN_U32("graphics/pokemon/oranguru/anim_front.4bpp.lz"); + const u32 gMonPalette_Oranguru[] = INCBIN_U32("graphics/pokemon/oranguru/normal.gbapal.lz"); + const u32 gMonBackPic_Oranguru[] = INCBIN_U32("graphics/pokemon/oranguru/back.4bpp.lz"); + const u32 gMonShinyPalette_Oranguru[] = INCBIN_U32("graphics/pokemon/oranguru/shiny.gbapal.lz"); + const u8 gMonIcon_Oranguru[] = INCBIN_U8("graphics/pokemon/oranguru/icon.4bpp"); + const u8 gMonFootprint_Oranguru[] = INCBIN_U8("graphics/pokemon/oranguru/footprint.1bpp"); +#endif //P_FAMILY_ORANGURU + +#if P_FAMILY_PASSIMIAN + const u32 gMonFrontPic_Passimian[] = INCBIN_U32("graphics/pokemon/passimian/anim_front.4bpp.lz"); + const u32 gMonPalette_Passimian[] = INCBIN_U32("graphics/pokemon/passimian/normal.gbapal.lz"); + const u32 gMonBackPic_Passimian[] = INCBIN_U32("graphics/pokemon/passimian/back.4bpp.lz"); + const u32 gMonShinyPalette_Passimian[] = INCBIN_U32("graphics/pokemon/passimian/shiny.gbapal.lz"); + const u8 gMonIcon_Passimian[] = INCBIN_U8("graphics/pokemon/passimian/icon.4bpp"); + const u8 gMonFootprint_Passimian[] = INCBIN_U8("graphics/pokemon/passimian/footprint.1bpp"); +#endif //P_FAMILY_PASSIMIAN + +#if P_FAMILY_WIMPOD + const u32 gMonFrontPic_Wimpod[] = INCBIN_U32("graphics/pokemon/wimpod/anim_front.4bpp.lz"); + const u32 gMonPalette_Wimpod[] = INCBIN_U32("graphics/pokemon/wimpod/normal.gbapal.lz"); + const u32 gMonBackPic_Wimpod[] = INCBIN_U32("graphics/pokemon/wimpod/back.4bpp.lz"); + const u32 gMonShinyPalette_Wimpod[] = INCBIN_U32("graphics/pokemon/wimpod/shiny.gbapal.lz"); + const u8 gMonIcon_Wimpod[] = INCBIN_U8("graphics/pokemon/wimpod/icon.4bpp"); + const u8 gMonFootprint_Wimpod[] = INCBIN_U8("graphics/pokemon/wimpod/footprint.1bpp"); + + const u32 gMonFrontPic_Golisopod[] = INCBIN_U32("graphics/pokemon/golisopod/anim_front.4bpp.lz"); + const u32 gMonPalette_Golisopod[] = INCBIN_U32("graphics/pokemon/golisopod/normal.gbapal.lz"); + const u32 gMonBackPic_Golisopod[] = INCBIN_U32("graphics/pokemon/golisopod/back.4bpp.lz"); + const u32 gMonShinyPalette_Golisopod[] = INCBIN_U32("graphics/pokemon/golisopod/shiny.gbapal.lz"); + const u8 gMonIcon_Golisopod[] = INCBIN_U8("graphics/pokemon/golisopod/icon.4bpp"); + const u8 gMonFootprint_Golisopod[] = INCBIN_U8("graphics/pokemon/golisopod/footprint.1bpp"); +#endif //P_FAMILY_WIMPOD + +#if P_FAMILY_SANDYGAST + const u32 gMonFrontPic_Sandygast[] = INCBIN_U32("graphics/pokemon/sandygast/front.4bpp.lz"); + const u32 gMonPalette_Sandygast[] = INCBIN_U32("graphics/pokemon/sandygast/normal.gbapal.lz"); + const u32 gMonBackPic_Sandygast[] = INCBIN_U32("graphics/pokemon/sandygast/back.4bpp.lz"); + const u32 gMonShinyPalette_Sandygast[] = INCBIN_U32("graphics/pokemon/sandygast/shiny.gbapal.lz"); + const u8 gMonIcon_Sandygast[] = INCBIN_U8("graphics/pokemon/sandygast/icon.4bpp"); + const u8 gMonFootprint_Sandygast[] = INCBIN_U8("graphics/pokemon/sandygast/footprint.1bpp"); + + const u32 gMonFrontPic_Palossand[] = INCBIN_U32("graphics/pokemon/palossand/front.4bpp.lz"); + const u32 gMonPalette_Palossand[] = INCBIN_U32("graphics/pokemon/palossand/normal.gbapal.lz"); + const u32 gMonBackPic_Palossand[] = INCBIN_U32("graphics/pokemon/palossand/back.4bpp.lz"); + const u32 gMonShinyPalette_Palossand[] = INCBIN_U32("graphics/pokemon/palossand/shiny.gbapal.lz"); + const u8 gMonIcon_Palossand[] = INCBIN_U8("graphics/pokemon/palossand/icon.4bpp"); + const u8 gMonFootprint_Palossand[] = INCBIN_U8("graphics/pokemon/palossand/footprint.1bpp"); +#endif //P_FAMILY_SANDYGAST + +#if P_FAMILY_PYUKUMUKU + const u32 gMonFrontPic_Pyukumuku[] = INCBIN_U32("graphics/pokemon/pyukumuku/anim_front.4bpp.lz"); + const u32 gMonPalette_Pyukumuku[] = INCBIN_U32("graphics/pokemon/pyukumuku/normal.gbapal.lz"); + const u32 gMonBackPic_Pyukumuku[] = INCBIN_U32("graphics/pokemon/pyukumuku/back.4bpp.lz"); + const u32 gMonShinyPalette_Pyukumuku[] = INCBIN_U32("graphics/pokemon/pyukumuku/shiny.gbapal.lz"); + const u8 gMonIcon_Pyukumuku[] = INCBIN_U8("graphics/pokemon/pyukumuku/icon.4bpp"); + const u8 gMonFootprint_Pyukumuku[] = INCBIN_U8("graphics/pokemon/pyukumuku/footprint.1bpp"); +#endif //P_FAMILY_PYUKUMUKU + +#if P_FAMILY_TYPE_NULL + const u32 gMonFrontPic_TypeNull[] = INCBIN_U32("graphics/pokemon/type_null/front.4bpp.lz"); + const u32 gMonPalette_TypeNull[] = INCBIN_U32("graphics/pokemon/type_null/normal.gbapal.lz"); + const u32 gMonBackPic_TypeNull[] = INCBIN_U32("graphics/pokemon/type_null/back.4bpp.lz"); + const u32 gMonShinyPalette_TypeNull[] = INCBIN_U32("graphics/pokemon/type_null/shiny.gbapal.lz"); + const u8 gMonIcon_TypeNull[] = INCBIN_U8("graphics/pokemon/type_null/icon.4bpp"); + const u8 gMonFootprint_Type_Null[] = INCBIN_U8("graphics/pokemon/type_null/footprint.1bpp"); + + const u32 gMonFrontPic_Silvally[] = INCBIN_U32("graphics/pokemon/silvally/front.4bpp.lz"); + const u32 gMonBackPic_Silvally[] = INCBIN_U32("graphics/pokemon/silvally/back.4bpp.lz"); + const u8 gMonIcon_Silvally[] = INCBIN_U8("graphics/pokemon/silvally/icon.4bpp"); + const u8 gMonFootprint_Silvally[] = INCBIN_U8("graphics/pokemon/silvally/footprint.1bpp"); + + const u32 gMonPalette_SilvallyNormal[] = INCBIN_U32("graphics/pokemon/silvally/normal.gbapal.lz"); + const u32 gMonShinyPalette_SilvallyNormal[] = INCBIN_U32("graphics/pokemon/silvally/shiny.gbapal.lz"); + + const u32 gMonPalette_SilvallyFighting[] = INCBIN_U32("graphics/pokemon/silvally/fighting/normal.gbapal.lz"); + const u32 gMonShinyPalette_SilvallyFighting[] = INCBIN_U32("graphics/pokemon/silvally/fighting/shiny.gbapal.lz"); + + const u32 gMonPalette_SilvallyFlying[] = INCBIN_U32("graphics/pokemon/silvally/flying/normal.gbapal.lz"); + const u32 gMonShinyPalette_SilvallyFlying[] = INCBIN_U32("graphics/pokemon/silvally/flying/shiny.gbapal.lz"); + + const u32 gMonPalette_SilvallyPoison[] = INCBIN_U32("graphics/pokemon/silvally/poison/normal.gbapal.lz"); + const u32 gMonShinyPalette_SilvallyPoison[] = INCBIN_U32("graphics/pokemon/silvally/poison/shiny.gbapal.lz"); + + const u32 gMonPalette_SilvallyGround[] = INCBIN_U32("graphics/pokemon/silvally/ground/normal.gbapal.lz"); + const u32 gMonShinyPalette_SilvallyGround[] = INCBIN_U32("graphics/pokemon/silvally/ground/shiny.gbapal.lz"); + + const u32 gMonPalette_SilvallyRock[] = INCBIN_U32("graphics/pokemon/silvally/rock/normal.gbapal.lz"); + const u32 gMonShinyPalette_SilvallyRock[] = INCBIN_U32("graphics/pokemon/silvally/rock/shiny.gbapal.lz"); + + const u32 gMonPalette_SilvallyBug[] = INCBIN_U32("graphics/pokemon/silvally/bug/normal.gbapal.lz"); + const u32 gMonShinyPalette_SilvallyBug[] = INCBIN_U32("graphics/pokemon/silvally/bug/shiny.gbapal.lz"); + + const u32 gMonPalette_SilvallyGhost[] = INCBIN_U32("graphics/pokemon/silvally/ghost/normal.gbapal.lz"); + const u32 gMonShinyPalette_SilvallyGhost[] = INCBIN_U32("graphics/pokemon/silvally/ghost/shiny.gbapal.lz"); + + const u32 gMonPalette_SilvallySteel[] = INCBIN_U32("graphics/pokemon/silvally/steel/normal.gbapal.lz"); + const u32 gMonShinyPalette_SilvallySteel[] = INCBIN_U32("graphics/pokemon/silvally/steel/shiny.gbapal.lz"); + + const u32 gMonPalette_SilvallyFire[] = INCBIN_U32("graphics/pokemon/silvally/fire/normal.gbapal.lz"); + const u32 gMonShinyPalette_SilvallyFire[] = INCBIN_U32("graphics/pokemon/silvally/fire/shiny.gbapal.lz"); + + const u32 gMonPalette_SilvallyWater[] = INCBIN_U32("graphics/pokemon/silvally/water/normal.gbapal.lz"); + const u32 gMonShinyPalette_SilvallyWater[] = INCBIN_U32("graphics/pokemon/silvally/water/shiny.gbapal.lz"); + + const u32 gMonPalette_SilvallyGrass[] = INCBIN_U32("graphics/pokemon/silvally/grass/normal.gbapal.lz"); + const u32 gMonShinyPalette_SilvallyGrass[] = INCBIN_U32("graphics/pokemon/silvally/grass/shiny.gbapal.lz"); + + const u32 gMonPalette_SilvallyElectric[] = INCBIN_U32("graphics/pokemon/silvally/electric/normal.gbapal.lz"); + const u32 gMonShinyPalette_SilvallyElectric[] = INCBIN_U32("graphics/pokemon/silvally/electric/shiny.gbapal.lz"); + + const u32 gMonPalette_SilvallyPsychic[] = INCBIN_U32("graphics/pokemon/silvally/psychic/normal.gbapal.lz"); + const u32 gMonShinyPalette_SilvallyPsychic[] = INCBIN_U32("graphics/pokemon/silvally/psychic/shiny.gbapal.lz"); + + const u32 gMonPalette_SilvallyIce[] = INCBIN_U32("graphics/pokemon/silvally/ice/normal.gbapal.lz"); + const u32 gMonShinyPalette_SilvallyIce[] = INCBIN_U32("graphics/pokemon/silvally/ice/shiny.gbapal.lz"); + + const u32 gMonPalette_SilvallyDragon[] = INCBIN_U32("graphics/pokemon/silvally/dragon/normal.gbapal.lz"); + const u32 gMonShinyPalette_SilvallyDragon[] = INCBIN_U32("graphics/pokemon/silvally/dragon/shiny.gbapal.lz"); + + const u32 gMonPalette_SilvallyDark[] = INCBIN_U32("graphics/pokemon/silvally/dark/normal.gbapal.lz"); + const u32 gMonShinyPalette_SilvallyDark[] = INCBIN_U32("graphics/pokemon/silvally/dark/shiny.gbapal.lz"); + + const u32 gMonPalette_SilvallyFairy[] = INCBIN_U32("graphics/pokemon/silvally/fairy/normal.gbapal.lz"); + const u32 gMonShinyPalette_SilvallyFairy[] = INCBIN_U32("graphics/pokemon/silvally/fairy/shiny.gbapal.lz"); +#endif //P_FAMILY_TYPE_NULL + +#if P_FAMILY_MINIOR + const u32 gMonFrontPic_MiniorMeteor[] = INCBIN_U32("graphics/pokemon/minior/front.4bpp.lz"); + const u32 gMonPalette_MiniorMeteor[] = INCBIN_U32("graphics/pokemon/minior/normal.gbapal.lz"); + const u32 gMonBackPic_MiniorMeteor[] = INCBIN_U32("graphics/pokemon/minior/back.4bpp.lz"); + const u32 gMonShinyPalette_MiniorMeteor[] = INCBIN_U32("graphics/pokemon/minior/shiny.gbapal.lz"); + const u8 gMonIcon_MiniorMeteor[] = INCBIN_U8("graphics/pokemon/minior/icon.4bpp"); + const u8 gMonFootprint_Minior[] = INCBIN_U8("graphics/pokemon/minior/footprint.1bpp"); + + const u32 gMonFrontPic_MiniorCore[] = INCBIN_U32("graphics/pokemon/minior/core/front.4bpp.lz"); + const u32 gMonBackPic_MiniorCore[] = INCBIN_U32("graphics/pokemon/minior/core/back.4bpp.lz"); + const u32 gMonShinyPalette_MiniorCore[] = INCBIN_U32("graphics/pokemon/minior/core/shiny.gbapal.lz"); + + const u32 gMonPalette_MiniorCoreRed[] = INCBIN_U32("graphics/pokemon/minior/core/red/normal.gbapal.lz"); + const u8 gMonIcon_MiniorCoreRed[] = INCBIN_U8("graphics/pokemon/minior/core/red/icon.4bpp"); + + const u32 gMonPalette_MiniorCoreOrange[] = INCBIN_U32("graphics/pokemon/minior/core/orange/normal.gbapal.lz"); + const u8 gMonIcon_MiniorCoreOrange[] = INCBIN_U8("graphics/pokemon/minior/core/orange/icon.4bpp"); + + const u32 gMonPalette_MiniorCoreYellow[] = INCBIN_U32("graphics/pokemon/minior/core/yellow/normal.gbapal.lz"); + const u8 gMonIcon_MiniorCoreYellow[] = INCBIN_U8("graphics/pokemon/minior/core/yellow/icon.4bpp"); + + const u32 gMonPalette_MiniorCoreGreen[] = INCBIN_U32("graphics/pokemon/minior/core/green/normal.gbapal.lz"); + const u8 gMonIcon_MiniorCoreGreen[] = INCBIN_U8("graphics/pokemon/minior/core/green/icon.4bpp"); + + const u32 gMonPalette_MiniorCoreBlue[] = INCBIN_U32("graphics/pokemon/minior/core/blue/normal.gbapal.lz"); + const u8 gMonIcon_MiniorCoreBlue[] = INCBIN_U8("graphics/pokemon/minior/core/blue/icon.4bpp"); + + const u32 gMonPalette_MiniorCoreIndigo[] = INCBIN_U32("graphics/pokemon/minior/core/indigo/normal.gbapal.lz"); + const u8 gMonIcon_MiniorCoreIndigo[] = INCBIN_U8("graphics/pokemon/minior/core/indigo/icon.4bpp"); + + const u32 gMonPalette_MiniorCoreViolet[] = INCBIN_U32("graphics/pokemon/minior/core/violet/normal.gbapal.lz"); + const u8 gMonIcon_MiniorCoreViolet[] = INCBIN_U8("graphics/pokemon/minior/core/violet/icon.4bpp"); +#endif //P_FAMILY_MINIOR + +#if P_FAMILY_KOMALA + const u32 gMonFrontPic_Komala[] = INCBIN_U32("graphics/pokemon/komala/front.4bpp.lz"); + const u32 gMonPalette_Komala[] = INCBIN_U32("graphics/pokemon/komala/normal.gbapal.lz"); + const u32 gMonBackPic_Komala[] = INCBIN_U32("graphics/pokemon/komala/back.4bpp.lz"); + const u32 gMonShinyPalette_Komala[] = INCBIN_U32("graphics/pokemon/komala/shiny.gbapal.lz"); + const u8 gMonIcon_Komala[] = INCBIN_U8("graphics/pokemon/komala/icon.4bpp"); + const u8 gMonFootprint_Komala[] = INCBIN_U8("graphics/pokemon/komala/footprint.1bpp"); +#endif //P_FAMILY_KOMALA + +#if P_FAMILY_TURTONATOR + const u32 gMonFrontPic_Turtonator[] = INCBIN_U32("graphics/pokemon/turtonator/anim_front.4bpp.lz"); + const u32 gMonPalette_Turtonator[] = INCBIN_U32("graphics/pokemon/turtonator/normal.gbapal.lz"); + const u32 gMonBackPic_Turtonator[] = INCBIN_U32("graphics/pokemon/turtonator/back.4bpp.lz"); + const u32 gMonShinyPalette_Turtonator[] = INCBIN_U32("graphics/pokemon/turtonator/shiny.gbapal.lz"); + const u8 gMonIcon_Turtonator[] = INCBIN_U8("graphics/pokemon/turtonator/icon.4bpp"); + const u8 gMonFootprint_Turtonator[] = INCBIN_U8("graphics/pokemon/turtonator/footprint.1bpp"); +#endif //P_FAMILY_TURTONATOR + +#if P_FAMILY_TOGEDEMARU + const u32 gMonFrontPic_Togedemaru[] = INCBIN_U32("graphics/pokemon/togedemaru/anim_front.4bpp.lz"); + const u32 gMonPalette_Togedemaru[] = INCBIN_U32("graphics/pokemon/togedemaru/normal.gbapal.lz"); + const u32 gMonBackPic_Togedemaru[] = INCBIN_U32("graphics/pokemon/togedemaru/back.4bpp.lz"); + const u32 gMonShinyPalette_Togedemaru[] = INCBIN_U32("graphics/pokemon/togedemaru/shiny.gbapal.lz"); + const u8 gMonIcon_Togedemaru[] = INCBIN_U8("graphics/pokemon/togedemaru/icon.4bpp"); + const u8 gMonFootprint_Togedemaru[] = INCBIN_U8("graphics/pokemon/togedemaru/footprint.1bpp"); +#endif //P_FAMILY_TOGEDEMARU + +#if P_FAMILY_MIMIKYU + const u32 gMonFrontPic_MimikyuDisguised[] = INCBIN_U32("graphics/pokemon/mimikyu/front.4bpp.lz"); + const u32 gMonPalette_MimikyuDisguised[] = INCBIN_U32("graphics/pokemon/mimikyu/normal.gbapal.lz"); + const u32 gMonBackPic_MimikyuDisguised[] = INCBIN_U32("graphics/pokemon/mimikyu/back.4bpp.lz"); + const u32 gMonShinyPalette_MimikyuDisguised[] = INCBIN_U32("graphics/pokemon/mimikyu/shiny.gbapal.lz"); + const u8 gMonIcon_MimikyuDisguised[] = INCBIN_U8("graphics/pokemon/mimikyu/icon.4bpp"); + const u8 gMonFootprint_Mimikyu[] = INCBIN_U8("graphics/pokemon/mimikyu/footprint.1bpp"); + + const u32 gMonFrontPic_MimikyuBusted[] = INCBIN_U32("graphics/pokemon/mimikyu/busted/front.4bpp.lz"); + const u32 gMonPalette_MimikyuBusted[] = INCBIN_U32("graphics/pokemon/mimikyu/busted/normal.gbapal.lz"); + const u32 gMonBackPic_MimikyuBusted[] = INCBIN_U32("graphics/pokemon/mimikyu/busted/back.4bpp.lz"); + const u32 gMonShinyPalette_MimikyuBusted[] = INCBIN_U32("graphics/pokemon/mimikyu/busted/shiny.gbapal.lz"); + const u8 gMonIcon_MimikyuBusted[] = INCBIN_U8("graphics/pokemon/mimikyu/busted/icon.4bpp"); +#endif //P_FAMILY_MIMIKYU + +#if P_FAMILY_BRUXISH + const u32 gMonFrontPic_Bruxish[] = INCBIN_U32("graphics/pokemon/bruxish/front.4bpp.lz"); + const u32 gMonPalette_Bruxish[] = INCBIN_U32("graphics/pokemon/bruxish/normal.gbapal.lz"); + const u32 gMonBackPic_Bruxish[] = INCBIN_U32("graphics/pokemon/bruxish/back.4bpp.lz"); + const u32 gMonShinyPalette_Bruxish[] = INCBIN_U32("graphics/pokemon/bruxish/shiny.gbapal.lz"); + const u8 gMonIcon_Bruxish[] = INCBIN_U8("graphics/pokemon/bruxish/icon.4bpp"); + const u8 gMonFootprint_Bruxish[] = INCBIN_U8("graphics/pokemon/bruxish/footprint.1bpp"); +#endif //P_FAMILY_BRUXISH + +#if P_FAMILY_DRAMPA + const u32 gMonFrontPic_Drampa[] = INCBIN_U32("graphics/pokemon/drampa/anim_front.4bpp.lz"); + const u32 gMonPalette_Drampa[] = INCBIN_U32("graphics/pokemon/drampa/normal.gbapal.lz"); + const u32 gMonBackPic_Drampa[] = INCBIN_U32("graphics/pokemon/drampa/back.4bpp.lz"); + const u32 gMonShinyPalette_Drampa[] = INCBIN_U32("graphics/pokemon/drampa/shiny.gbapal.lz"); + const u8 gMonIcon_Drampa[] = INCBIN_U8("graphics/pokemon/drampa/icon.4bpp"); + const u8 gMonFootprint_Drampa[] = INCBIN_U8("graphics/pokemon/drampa/footprint.1bpp"); +#endif //P_FAMILY_DRAMPA + +#if P_FAMILY_DHELMISE + const u32 gMonFrontPic_Dhelmise[] = INCBIN_U32("graphics/pokemon/dhelmise/front.4bpp.lz"); + const u32 gMonPalette_Dhelmise[] = INCBIN_U32("graphics/pokemon/dhelmise/normal.gbapal.lz"); + const u32 gMonBackPic_Dhelmise[] = INCBIN_U32("graphics/pokemon/dhelmise/back.4bpp.lz"); + const u32 gMonShinyPalette_Dhelmise[] = INCBIN_U32("graphics/pokemon/dhelmise/shiny.gbapal.lz"); + const u8 gMonIcon_Dhelmise[] = INCBIN_U8("graphics/pokemon/dhelmise/icon.4bpp"); + const u8 gMonFootprint_Dhelmise[] = INCBIN_U8("graphics/pokemon/dhelmise/footprint.1bpp"); +#endif //P_FAMILY_DHELMISE + +#if P_FAMILY_JANGMO_O + const u32 gMonFrontPic_JangmoO[] = INCBIN_U32("graphics/pokemon/jangmo_o/anim_front.4bpp.lz"); + const u32 gMonPalette_JangmoO[] = INCBIN_U32("graphics/pokemon/jangmo_o/normal.gbapal.lz"); + const u32 gMonBackPic_JangmoO[] = INCBIN_U32("graphics/pokemon/jangmo_o/back.4bpp.lz"); + const u32 gMonShinyPalette_JangmoO[] = INCBIN_U32("graphics/pokemon/jangmo_o/shiny.gbapal.lz"); + const u8 gMonIcon_JangmoO[] = INCBIN_U8("graphics/pokemon/jangmo_o/icon.4bpp"); + const u8 gMonFootprint_JangmoO[] = INCBIN_U8("graphics/pokemon/jangmo_o/footprint.1bpp"); + + const u32 gMonFrontPic_HakamoO[] = INCBIN_U32("graphics/pokemon/hakamo_o/anim_front.4bpp.lz"); + const u32 gMonPalette_HakamoO[] = INCBIN_U32("graphics/pokemon/hakamo_o/normal.gbapal.lz"); + const u32 gMonBackPic_HakamoO[] = INCBIN_U32("graphics/pokemon/hakamo_o/back.4bpp.lz"); + const u32 gMonShinyPalette_HakamoO[] = INCBIN_U32("graphics/pokemon/hakamo_o/shiny.gbapal.lz"); + const u8 gMonIcon_HakamoO[] = INCBIN_U8("graphics/pokemon/hakamo_o/icon.4bpp"); + const u8 gMonFootprint_HakamoO[] = INCBIN_U8("graphics/pokemon/hakamo_o/footprint.1bpp"); + + const u32 gMonFrontPic_KommoO[] = INCBIN_U32("graphics/pokemon/kommo_o/anim_front.4bpp.lz"); + const u32 gMonPalette_KommoO[] = INCBIN_U32("graphics/pokemon/kommo_o/normal.gbapal.lz"); + const u32 gMonBackPic_KommoO[] = INCBIN_U32("graphics/pokemon/kommo_o/back.4bpp.lz"); + const u32 gMonShinyPalette_KommoO[] = INCBIN_U32("graphics/pokemon/kommo_o/shiny.gbapal.lz"); + const u8 gMonIcon_KommoO[] = INCBIN_U8("graphics/pokemon/kommo_o/icon.4bpp"); + const u8 gMonFootprint_KommoO[] = INCBIN_U8("graphics/pokemon/kommo_o/footprint.1bpp"); +#endif //P_FAMILY_JANGMO_O + +#if P_FAMILY_TAPU_KOKO + const u32 gMonFrontPic_TapuKoko[] = INCBIN_U32("graphics/pokemon/tapu_koko/anim_front.4bpp.lz"); + const u32 gMonPalette_TapuKoko[] = INCBIN_U32("graphics/pokemon/tapu_koko/normal.gbapal.lz"); + const u32 gMonBackPic_TapuKoko[] = INCBIN_U32("graphics/pokemon/tapu_koko/back.4bpp.lz"); + const u32 gMonShinyPalette_TapuKoko[] = INCBIN_U32("graphics/pokemon/tapu_koko/shiny.gbapal.lz"); + const u8 gMonIcon_TapuKoko[] = INCBIN_U8("graphics/pokemon/tapu_koko/icon.4bpp"); + const u8 gMonFootprint_Tapu_Koko[] = INCBIN_U8("graphics/pokemon/tapu_koko/footprint.1bpp"); +#endif //P_FAMILY_TAPU_KOKO + +#if P_FAMILY_TAPU_LELE + const u32 gMonFrontPic_TapuLele[] = INCBIN_U32("graphics/pokemon/tapu_lele/anim_front.4bpp.lz"); + const u32 gMonPalette_TapuLele[] = INCBIN_U32("graphics/pokemon/tapu_lele/normal.gbapal.lz"); + const u32 gMonBackPic_TapuLele[] = INCBIN_U32("graphics/pokemon/tapu_lele/back.4bpp.lz"); + const u32 gMonShinyPalette_TapuLele[] = INCBIN_U32("graphics/pokemon/tapu_lele/shiny.gbapal.lz"); + const u8 gMonIcon_TapuLele[] = INCBIN_U8("graphics/pokemon/tapu_lele/icon.4bpp"); + const u8 gMonFootprint_Tapu_Lele[] = INCBIN_U8("graphics/pokemon/tapu_lele/footprint.1bpp"); +#endif //P_FAMILY_TAPU_LELE + +#if P_FAMILY_TAPU_BULU + const u32 gMonFrontPic_TapuBulu[] = INCBIN_U32("graphics/pokemon/tapu_bulu/anim_front.4bpp.lz"); + const u32 gMonPalette_TapuBulu[] = INCBIN_U32("graphics/pokemon/tapu_bulu/normal.gbapal.lz"); + const u32 gMonBackPic_TapuBulu[] = INCBIN_U32("graphics/pokemon/tapu_bulu/back.4bpp.lz"); + const u32 gMonShinyPalette_TapuBulu[] = INCBIN_U32("graphics/pokemon/tapu_bulu/shiny.gbapal.lz"); + const u8 gMonIcon_TapuBulu[] = INCBIN_U8("graphics/pokemon/tapu_bulu/icon.4bpp"); + const u8 gMonFootprint_Tapu_Bulu[] = INCBIN_U8("graphics/pokemon/tapu_bulu/footprint.1bpp"); +#endif //P_FAMILY_TAPU_BULU + +#if P_FAMILY_TAPU_FINI + const u32 gMonFrontPic_TapuFini[] = INCBIN_U32("graphics/pokemon/tapu_fini/anim_front.4bpp.lz"); + const u32 gMonPalette_TapuFini[] = INCBIN_U32("graphics/pokemon/tapu_fini/normal.gbapal.lz"); + const u32 gMonBackPic_TapuFini[] = INCBIN_U32("graphics/pokemon/tapu_fini/back.4bpp.lz"); + const u32 gMonShinyPalette_TapuFini[] = INCBIN_U32("graphics/pokemon/tapu_fini/shiny.gbapal.lz"); + const u8 gMonIcon_TapuFini[] = INCBIN_U8("graphics/pokemon/tapu_fini/icon.4bpp"); + const u8 gMonFootprint_Tapu_Fini[] = INCBIN_U8("graphics/pokemon/tapu_fini/footprint.1bpp"); +#endif //P_FAMILY_TAPU_FINI + +#if P_FAMILY_COSMOG + const u32 gMonFrontPic_Cosmog[] = INCBIN_U32("graphics/pokemon/cosmog/front.4bpp.lz"); + const u32 gMonPalette_Cosmog[] = INCBIN_U32("graphics/pokemon/cosmog/normal.gbapal.lz"); + const u32 gMonBackPic_Cosmog[] = INCBIN_U32("graphics/pokemon/cosmog/back.4bpp.lz"); + const u32 gMonShinyPalette_Cosmog[] = INCBIN_U32("graphics/pokemon/cosmog/shiny.gbapal.lz"); + const u8 gMonIcon_Cosmog[] = INCBIN_U8("graphics/pokemon/cosmog/icon.4bpp"); + const u8 gMonFootprint_Cosmog[] = INCBIN_U8("graphics/pokemon/cosmog/footprint.1bpp"); + + const u32 gMonFrontPic_Cosmoem[] = INCBIN_U32("graphics/pokemon/cosmoem/front.4bpp.lz"); + const u32 gMonPalette_Cosmoem[] = INCBIN_U32("graphics/pokemon/cosmoem/normal.gbapal.lz"); + const u32 gMonBackPic_Cosmoem[] = INCBIN_U32("graphics/pokemon/cosmoem/back.4bpp.lz"); + const u32 gMonShinyPalette_Cosmoem[] = INCBIN_U32("graphics/pokemon/cosmoem/shiny.gbapal.lz"); + const u8 gMonIcon_Cosmoem[] = INCBIN_U8("graphics/pokemon/cosmoem/icon.4bpp"); + const u8 gMonFootprint_Cosmoem[] = INCBIN_U8("graphics/pokemon/cosmoem/footprint.1bpp"); + + const u32 gMonFrontPic_Solgaleo[] = INCBIN_U32("graphics/pokemon/solgaleo/front.4bpp.lz"); + const u32 gMonPalette_Solgaleo[] = INCBIN_U32("graphics/pokemon/solgaleo/normal.gbapal.lz"); + const u32 gMonBackPic_Solgaleo[] = INCBIN_U32("graphics/pokemon/solgaleo/back.4bpp.lz"); + const u32 gMonShinyPalette_Solgaleo[] = INCBIN_U32("graphics/pokemon/solgaleo/shiny.gbapal.lz"); + const u8 gMonIcon_Solgaleo[] = INCBIN_U8("graphics/pokemon/solgaleo/icon.4bpp"); + const u8 gMonFootprint_Solgaleo[] = INCBIN_U8("graphics/pokemon/solgaleo/footprint.1bpp"); + + const u32 gMonFrontPic_Lunala[] = INCBIN_U32("graphics/pokemon/lunala/front.4bpp.lz"); + const u32 gMonPalette_Lunala[] = INCBIN_U32("graphics/pokemon/lunala/normal.gbapal.lz"); + const u32 gMonBackPic_Lunala[] = INCBIN_U32("graphics/pokemon/lunala/back.4bpp.lz"); + const u32 gMonShinyPalette_Lunala[] = INCBIN_U32("graphics/pokemon/lunala/shiny.gbapal.lz"); + const u8 gMonIcon_Lunala[] = INCBIN_U8("graphics/pokemon/lunala/icon.4bpp"); + const u8 gMonFootprint_Lunala[] = INCBIN_U8("graphics/pokemon/lunala/footprint.1bpp"); +#endif //P_FAMILY_COSMOG + +#if P_FAMILY_NIHILEGO + const u32 gMonFrontPic_Nihilego[] = INCBIN_U32("graphics/pokemon/nihilego/front.4bpp.lz"); + const u32 gMonPalette_Nihilego[] = INCBIN_U32("graphics/pokemon/nihilego/normal.gbapal.lz"); + const u32 gMonBackPic_Nihilego[] = INCBIN_U32("graphics/pokemon/nihilego/back.4bpp.lz"); + const u32 gMonShinyPalette_Nihilego[] = INCBIN_U32("graphics/pokemon/nihilego/shiny.gbapal.lz"); + const u8 gMonIcon_Nihilego[] = INCBIN_U8("graphics/pokemon/nihilego/icon.4bpp"); + const u8 gMonFootprint_Nihilego[] = INCBIN_U8("graphics/pokemon/nihilego/footprint.1bpp"); +#endif //P_FAMILY_NIHILEGO + +#if P_FAMILY_BUZZWOLE + const u32 gMonFrontPic_Buzzwole[] = INCBIN_U32("graphics/pokemon/buzzwole/front.4bpp.lz"); + const u32 gMonPalette_Buzzwole[] = INCBIN_U32("graphics/pokemon/buzzwole/normal.gbapal.lz"); + const u32 gMonBackPic_Buzzwole[] = INCBIN_U32("graphics/pokemon/buzzwole/back.4bpp.lz"); + const u32 gMonShinyPalette_Buzzwole[] = INCBIN_U32("graphics/pokemon/buzzwole/shiny.gbapal.lz"); + const u8 gMonIcon_Buzzwole[] = INCBIN_U8("graphics/pokemon/buzzwole/icon.4bpp"); + const u8 gMonFootprint_Buzzwole[] = INCBIN_U8("graphics/pokemon/buzzwole/footprint.1bpp"); +#endif //P_FAMILY_BUZZWOLE + +#if P_FAMILY_PHEROMOSA + const u32 gMonFrontPic_Pheromosa[] = INCBIN_U32("graphics/pokemon/pheromosa/front.4bpp.lz"); + const u32 gMonPalette_Pheromosa[] = INCBIN_U32("graphics/pokemon/pheromosa/normal.gbapal.lz"); + const u32 gMonBackPic_Pheromosa[] = INCBIN_U32("graphics/pokemon/pheromosa/back.4bpp.lz"); + const u32 gMonShinyPalette_Pheromosa[] = INCBIN_U32("graphics/pokemon/pheromosa/shiny.gbapal.lz"); + const u8 gMonIcon_Pheromosa[] = INCBIN_U8("graphics/pokemon/pheromosa/icon.4bpp"); + const u8 gMonFootprint_Pheromosa[] = INCBIN_U8("graphics/pokemon/pheromosa/footprint.1bpp"); +#endif //P_FAMILY_PHEROMOSA + +#if P_FAMILY_XURKITREE + const u32 gMonFrontPic_Xurkitree[] = INCBIN_U32("graphics/pokemon/xurkitree/front.4bpp.lz"); + const u32 gMonPalette_Xurkitree[] = INCBIN_U32("graphics/pokemon/xurkitree/normal.gbapal.lz"); + const u32 gMonBackPic_Xurkitree[] = INCBIN_U32("graphics/pokemon/xurkitree/back.4bpp.lz"); + const u32 gMonShinyPalette_Xurkitree[] = INCBIN_U32("graphics/pokemon/xurkitree/shiny.gbapal.lz"); + const u8 gMonIcon_Xurkitree[] = INCBIN_U8("graphics/pokemon/xurkitree/icon.4bpp"); + const u8 gMonFootprint_Xurkitree[] = INCBIN_U8("graphics/pokemon/xurkitree/footprint.1bpp"); +#endif //P_FAMILY_XURKITREE + +#if P_FAMILY_CELESTEELA + const u32 gMonFrontPic_Celesteela[] = INCBIN_U32("graphics/pokemon/celesteela/front.4bpp.lz"); + const u32 gMonPalette_Celesteela[] = INCBIN_U32("graphics/pokemon/celesteela/normal.gbapal.lz"); + const u32 gMonBackPic_Celesteela[] = INCBIN_U32("graphics/pokemon/celesteela/back.4bpp.lz"); + const u32 gMonShinyPalette_Celesteela[] = INCBIN_U32("graphics/pokemon/celesteela/shiny.gbapal.lz"); + const u8 gMonIcon_Celesteela[] = INCBIN_U8("graphics/pokemon/celesteela/icon.4bpp"); + const u8 gMonFootprint_Celesteela[] = INCBIN_U8("graphics/pokemon/celesteela/footprint.1bpp"); +#endif //P_FAMILY_CELESTEELA + +#if P_FAMILY_KARTANA + const u32 gMonFrontPic_Kartana[] = INCBIN_U32("graphics/pokemon/kartana/front.4bpp.lz"); + const u32 gMonPalette_Kartana[] = INCBIN_U32("graphics/pokemon/kartana/normal.gbapal.lz"); + const u32 gMonBackPic_Kartana[] = INCBIN_U32("graphics/pokemon/kartana/back.4bpp.lz"); + const u32 gMonShinyPalette_Kartana[] = INCBIN_U32("graphics/pokemon/kartana/shiny.gbapal.lz"); + const u8 gMonIcon_Kartana[] = INCBIN_U8("graphics/pokemon/kartana/icon.4bpp"); + const u8 gMonFootprint_Kartana[] = INCBIN_U8("graphics/pokemon/kartana/footprint.1bpp"); +#endif //P_FAMILY_KARTANA + +#if P_FAMILY_GUZZLORD + const u32 gMonFrontPic_Guzzlord[] = INCBIN_U32("graphics/pokemon/guzzlord/front.4bpp.lz"); + const u32 gMonPalette_Guzzlord[] = INCBIN_U32("graphics/pokemon/guzzlord/normal.gbapal.lz"); + const u32 gMonBackPic_Guzzlord[] = INCBIN_U32("graphics/pokemon/guzzlord/back.4bpp.lz"); + const u32 gMonShinyPalette_Guzzlord[] = INCBIN_U32("graphics/pokemon/guzzlord/shiny.gbapal.lz"); + const u8 gMonIcon_Guzzlord[] = INCBIN_U8("graphics/pokemon/guzzlord/icon.4bpp"); + const u8 gMonFootprint_Guzzlord[] = INCBIN_U8("graphics/pokemon/guzzlord/footprint.1bpp"); +#endif //P_FAMILY_GUZZLORD + +#if P_FAMILY_NECROZMA + const u32 gMonFrontPic_Necrozma[] = INCBIN_U32("graphics/pokemon/necrozma/front.4bpp.lz"); + const u32 gMonPalette_Necrozma[] = INCBIN_U32("graphics/pokemon/necrozma/normal.gbapal.lz"); + const u32 gMonBackPic_Necrozma[] = INCBIN_U32("graphics/pokemon/necrozma/back.4bpp.lz"); + const u32 gMonShinyPalette_Necrozma[] = INCBIN_U32("graphics/pokemon/necrozma/shiny.gbapal.lz"); + const u8 gMonIcon_Necrozma[] = INCBIN_U8("graphics/pokemon/necrozma/icon.4bpp"); + const u8 gMonFootprint_Necrozma[] = INCBIN_U8("graphics/pokemon/necrozma/footprint.1bpp"); + +#if P_FUSION_FORMS + const u32 gMonFrontPic_NecrozmaDuskMane[] = INCBIN_U32("graphics/pokemon/necrozma/dusk_mane/front.4bpp.lz"); + const u32 gMonPalette_NecrozmaDuskMane[] = INCBIN_U32("graphics/pokemon/necrozma/dusk_mane/normal.gbapal.lz"); + const u32 gMonBackPic_NecrozmaDuskMane[] = INCBIN_U32("graphics/pokemon/necrozma/dusk_mane/back.4bpp.lz"); + const u32 gMonShinyPalette_NecrozmaDuskMane[] = INCBIN_U32("graphics/pokemon/necrozma/dusk_mane/shiny.gbapal.lz"); + const u8 gMonIcon_NecrozmaDuskMane[] = INCBIN_U8("graphics/pokemon/necrozma/dusk_mane/icon.4bpp"); + + const u32 gMonFrontPic_NecrozmaDawnWings[] = INCBIN_U32("graphics/pokemon/necrozma/dawn_wings/front.4bpp.lz"); + const u32 gMonPalette_NecrozmaDawnWings[] = INCBIN_U32("graphics/pokemon/necrozma/dawn_wings/normal.gbapal.lz"); + const u32 gMonBackPic_NecrozmaDawnWings[] = INCBIN_U32("graphics/pokemon/necrozma/dawn_wings/back.4bpp.lz"); + const u32 gMonShinyPalette_NecrozmaDawnWings[] = INCBIN_U32("graphics/pokemon/necrozma/dawn_wings/shiny.gbapal.lz"); + const u8 gMonIcon_NecrozmaDawnWings[] = INCBIN_U8("graphics/pokemon/necrozma/dawn_wings/icon.4bpp"); + +#if P_ULTRA_BURST_FORMS + const u32 gMonFrontPic_NecrozmaUltra[] = INCBIN_U32("graphics/pokemon/necrozma/ultra/front.4bpp.lz"); + const u32 gMonPalette_NecrozmaUltra[] = INCBIN_U32("graphics/pokemon/necrozma/ultra/normal.gbapal.lz"); + const u32 gMonBackPic_NecrozmaUltra[] = INCBIN_U32("graphics/pokemon/necrozma/ultra/back.4bpp.lz"); + const u32 gMonShinyPalette_NecrozmaUltra[] = INCBIN_U32("graphics/pokemon/necrozma/ultra/shiny.gbapal.lz"); + const u8 gMonIcon_NecrozmaUltra[] = INCBIN_U8("graphics/pokemon/necrozma/ultra/icon.4bpp"); +#endif //P_ULTRA_BURST_FORMS +#endif //P_FUSION_FORMS +#endif //P_FAMILY_NECROZMA + +#if P_FAMILY_MAGEARNA + const u32 gMonFrontPic_Magearna[] = INCBIN_U32("graphics/pokemon/magearna/front.4bpp.lz"); + const u32 gMonPalette_Magearna[] = INCBIN_U32("graphics/pokemon/magearna/normal.gbapal.lz"); + const u32 gMonBackPic_Magearna[] = INCBIN_U32("graphics/pokemon/magearna/back.4bpp.lz"); + const u32 gMonShinyPalette_Magearna[] = INCBIN_U32("graphics/pokemon/magearna/shiny.gbapal.lz"); + const u8 gMonIcon_Magearna[] = INCBIN_U8("graphics/pokemon/magearna/icon.4bpp"); + const u8 gMonFootprint_Magearna[] = INCBIN_U8("graphics/pokemon/magearna/footprint.1bpp"); + + const u32 gMonFrontPic_MagearnaOriginalColor[] = INCBIN_U32("graphics/pokemon/magearna/original_color/front.4bpp.lz"); + const u32 gMonPalette_MagearnaOriginalColor[] = INCBIN_U32("graphics/pokemon/magearna/original_color/normal.gbapal.lz"); + const u32 gMonBackPic_MagearnaOriginalColor[] = INCBIN_U32("graphics/pokemon/magearna/original_color/back.4bpp.lz"); + const u32 gMonShinyPalette_MagearnaOriginalColor[] = INCBIN_U32("graphics/pokemon/magearna/original_color/shiny.gbapal.lz"); + const u8 gMonIcon_MagearnaOriginalColor[] = INCBIN_U8("graphics/pokemon/magearna/original_color/icon.4bpp"); +#endif //P_FAMILY_MAGEARNA + +#if P_FAMILY_MARSHADOW + const u32 gMonFrontPic_Marshadow[] = INCBIN_U32("graphics/pokemon/marshadow/anim_front.4bpp.lz"); + const u32 gMonPalette_Marshadow[] = INCBIN_U32("graphics/pokemon/marshadow/normal.gbapal.lz"); + const u32 gMonBackPic_Marshadow[] = INCBIN_U32("graphics/pokemon/marshadow/back.4bpp.lz"); + const u32 gMonShinyPalette_Marshadow[] = INCBIN_U32("graphics/pokemon/marshadow/shiny.gbapal.lz"); + const u8 gMonIcon_Marshadow[] = INCBIN_U8("graphics/pokemon/marshadow/icon.4bpp"); + const u8 gMonFootprint_Marshadow[] = INCBIN_U8("graphics/pokemon/marshadow/footprint.1bpp"); +#endif //P_FAMILY_MARSHADOW + +#if P_FAMILY_POIPOLE + const u32 gMonFrontPic_Poipole[] = INCBIN_U32("graphics/pokemon/poipole/front.4bpp.lz"); + const u32 gMonPalette_Poipole[] = INCBIN_U32("graphics/pokemon/poipole/normal.gbapal.lz"); + const u32 gMonBackPic_Poipole[] = INCBIN_U32("graphics/pokemon/poipole/back.4bpp.lz"); + const u32 gMonShinyPalette_Poipole[] = INCBIN_U32("graphics/pokemon/poipole/shiny.gbapal.lz"); + const u8 gMonIcon_Poipole[] = INCBIN_U8("graphics/pokemon/poipole/icon.4bpp"); + const u8 gMonFootprint_Poipole[] = INCBIN_U8("graphics/pokemon/poipole/footprint.1bpp"); + + const u32 gMonFrontPic_Naganadel[] = INCBIN_U32("graphics/pokemon/naganadel/front.4bpp.lz"); + const u32 gMonPalette_Naganadel[] = INCBIN_U32("graphics/pokemon/naganadel/normal.gbapal.lz"); + const u32 gMonBackPic_Naganadel[] = INCBIN_U32("graphics/pokemon/naganadel/back.4bpp.lz"); + const u32 gMonShinyPalette_Naganadel[] = INCBIN_U32("graphics/pokemon/naganadel/shiny.gbapal.lz"); + const u8 gMonIcon_Naganadel[] = INCBIN_U8("graphics/pokemon/naganadel/icon.4bpp"); + const u8 gMonFootprint_Naganadel[] = INCBIN_U8("graphics/pokemon/naganadel/footprint.1bpp"); +#endif //P_FAMILY_POIPOLE + +#if P_FAMILY_STAKATAKA + const u32 gMonFrontPic_Stakataka[] = INCBIN_U32("graphics/pokemon/stakataka/front.4bpp.lz"); + const u32 gMonPalette_Stakataka[] = INCBIN_U32("graphics/pokemon/stakataka/normal.gbapal.lz"); + const u32 gMonBackPic_Stakataka[] = INCBIN_U32("graphics/pokemon/stakataka/back.4bpp.lz"); + const u32 gMonShinyPalette_Stakataka[] = INCBIN_U32("graphics/pokemon/stakataka/shiny.gbapal.lz"); + const u8 gMonIcon_Stakataka[] = INCBIN_U8("graphics/pokemon/stakataka/icon.4bpp"); + const u8 gMonFootprint_Stakataka[] = INCBIN_U8("graphics/pokemon/stakataka/footprint.1bpp"); +#endif //P_FAMILY_STAKATAKA + +#if P_FAMILY_BLACEPHALON + const u32 gMonFrontPic_Blacephalon[] = INCBIN_U32("graphics/pokemon/blacephalon/front.4bpp.lz"); + const u32 gMonPalette_Blacephalon[] = INCBIN_U32("graphics/pokemon/blacephalon/normal.gbapal.lz"); + const u32 gMonBackPic_Blacephalon[] = INCBIN_U32("graphics/pokemon/blacephalon/back.4bpp.lz"); + const u32 gMonShinyPalette_Blacephalon[] = INCBIN_U32("graphics/pokemon/blacephalon/shiny.gbapal.lz"); + const u8 gMonIcon_Blacephalon[] = INCBIN_U8("graphics/pokemon/blacephalon/icon.4bpp"); + const u8 gMonFootprint_Blacephalon[] = INCBIN_U8("graphics/pokemon/blacephalon/footprint.1bpp"); +#endif //P_FAMILY_BLACEPHALON + +#if P_FAMILY_ZERAORA + const u32 gMonFrontPic_Zeraora[] = INCBIN_U32("graphics/pokemon/zeraora/front.4bpp.lz"); + const u32 gMonPalette_Zeraora[] = INCBIN_U32("graphics/pokemon/zeraora/normal.gbapal.lz"); + const u32 gMonBackPic_Zeraora[] = INCBIN_U32("graphics/pokemon/zeraora/back.4bpp.lz"); + const u32 gMonShinyPalette_Zeraora[] = INCBIN_U32("graphics/pokemon/zeraora/shiny.gbapal.lz"); + const u8 gMonIcon_Zeraora[] = INCBIN_U8("graphics/pokemon/zeraora/icon.4bpp"); + const u8 gMonFootprint_Zeraora[] = INCBIN_U8("graphics/pokemon/zeraora/footprint.1bpp"); +#endif //P_FAMILY_ZERAORA + +#if P_FAMILY_MELTAN + const u32 gMonFrontPic_Meltan[] = INCBIN_U32("graphics/pokemon/meltan/front.4bpp.lz"); + const u32 gMonPalette_Meltan[] = INCBIN_U32("graphics/pokemon/meltan/normal.gbapal.lz"); + const u32 gMonBackPic_Meltan[] = INCBIN_U32("graphics/pokemon/meltan/back.4bpp.lz"); + const u32 gMonShinyPalette_Meltan[] = INCBIN_U32("graphics/pokemon/meltan/shiny.gbapal.lz"); + const u8 gMonIcon_Meltan[] = INCBIN_U8("graphics/pokemon/meltan/icon.4bpp"); + const u8 gMonFootprint_Meltan[] = INCBIN_U8("graphics/pokemon/meltan/footprint.1bpp"); + + const u32 gMonFrontPic_Melmetal[] = INCBIN_U32("graphics/pokemon/melmetal/front.4bpp.lz"); + const u32 gMonPalette_Melmetal[] = INCBIN_U32("graphics/pokemon/melmetal/normal.gbapal.lz"); + const u32 gMonBackPic_Melmetal[] = INCBIN_U32("graphics/pokemon/melmetal/back.4bpp.lz"); + const u32 gMonShinyPalette_Melmetal[] = INCBIN_U32("graphics/pokemon/melmetal/shiny.gbapal.lz"); + const u8 gMonIcon_Melmetal[] = INCBIN_U8("graphics/pokemon/melmetal/icon.4bpp"); + const u8 gMonFootprint_Melmetal[] = INCBIN_U8("graphics/pokemon/melmetal/footprint.1bpp"); + +#if P_GIGANTAMAX_FORMS + const u32 gMonFrontPic_MelmetalGigantamax[] = INCBIN_U32("graphics/pokemon/melmetal/gigantamax/front.4bpp.lz"); + const u32 gMonBackPic_MelmetalGigantamax[] = INCBIN_U32("graphics/pokemon/melmetal/gigantamax/back.4bpp.lz"); + const u32 gMonPalette_MelmetalGigantamax[] = INCBIN_U32("graphics/pokemon/melmetal/gigantamax/normal.gbapal.lz"); + const u32 gMonShinyPalette_MelmetalGigantamax[] = INCBIN_U32("graphics/pokemon/melmetal/gigantamax/shiny.gbapal.lz"); + const u8 gMonIcon_MelmetalGigantamax[] = INCBIN_U8("graphics/pokemon/melmetal/gigantamax/icon.4bpp"); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_MELTAN + +#if P_FAMILY_GROOKEY + const u32 gMonFrontPic_Grookey[] = INCBIN_U32("graphics/pokemon/grookey/front.4bpp.lz"); + const u32 gMonPalette_Grookey[] = INCBIN_U32("graphics/pokemon/grookey/normal.gbapal.lz"); + const u32 gMonBackPic_Grookey[] = INCBIN_U32("graphics/pokemon/grookey/back.4bpp.lz"); + const u32 gMonShinyPalette_Grookey[] = INCBIN_U32("graphics/pokemon/grookey/shiny.gbapal.lz"); + const u8 gMonIcon_Grookey[] = INCBIN_U8("graphics/pokemon/grookey/icon.4bpp"); + const u8 gMonFootprint_Grookey[] = INCBIN_U8("graphics/pokemon/grookey/footprint.1bpp"); + + const u32 gMonFrontPic_Thwackey[] = INCBIN_U32("graphics/pokemon/thwackey/front.4bpp.lz"); + const u32 gMonPalette_Thwackey[] = INCBIN_U32("graphics/pokemon/thwackey/normal.gbapal.lz"); + const u32 gMonBackPic_Thwackey[] = INCBIN_U32("graphics/pokemon/thwackey/back.4bpp.lz"); + const u32 gMonShinyPalette_Thwackey[] = INCBIN_U32("graphics/pokemon/thwackey/shiny.gbapal.lz"); + const u8 gMonIcon_Thwackey[] = INCBIN_U8("graphics/pokemon/thwackey/icon.4bpp"); + const u8 gMonFootprint_Thwackey[] = INCBIN_U8("graphics/pokemon/thwackey/footprint.1bpp"); + + const u32 gMonFrontPic_Rillaboom[] = INCBIN_U32("graphics/pokemon/rillaboom/front.4bpp.lz"); + const u32 gMonPalette_Rillaboom[] = INCBIN_U32("graphics/pokemon/rillaboom/normal.gbapal.lz"); + const u32 gMonBackPic_Rillaboom[] = INCBIN_U32("graphics/pokemon/rillaboom/back.4bpp.lz"); + const u32 gMonShinyPalette_Rillaboom[] = INCBIN_U32("graphics/pokemon/rillaboom/shiny.gbapal.lz"); + const u8 gMonIcon_Rillaboom[] = INCBIN_U8("graphics/pokemon/rillaboom/icon.4bpp"); + const u8 gMonFootprint_Rillaboom[] = INCBIN_U8("graphics/pokemon/rillaboom/footprint.1bpp"); + +#if P_GIGANTAMAX_FORMS + const u32 gMonFrontPic_RillaboomGigantamax[] = INCBIN_U32("graphics/pokemon/rillaboom/gigantamax/front.4bpp.lz"); + const u32 gMonBackPic_RillaboomGigantamax[] = INCBIN_U32("graphics/pokemon/rillaboom/gigantamax/back.4bpp.lz"); + const u32 gMonPalette_RillaboomGigantamax[] = INCBIN_U32("graphics/pokemon/rillaboom/gigantamax/normal.gbapal.lz"); + const u32 gMonShinyPalette_RillaboomGigantamax[] = INCBIN_U32("graphics/pokemon/rillaboom/gigantamax/shiny.gbapal.lz"); + const u8 gMonIcon_RillaboomGigantamax[] = INCBIN_U8("graphics/pokemon/rillaboom/gigantamax/icon.4bpp"); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_GROOKEY + +#if P_FAMILY_SCORBUNNY + const u32 gMonFrontPic_Scorbunny[] = INCBIN_U32("graphics/pokemon/scorbunny/front.4bpp.lz"); + const u32 gMonPalette_Scorbunny[] = INCBIN_U32("graphics/pokemon/scorbunny/normal.gbapal.lz"); + const u32 gMonBackPic_Scorbunny[] = INCBIN_U32("graphics/pokemon/scorbunny/back.4bpp.lz"); + const u32 gMonShinyPalette_Scorbunny[] = INCBIN_U32("graphics/pokemon/scorbunny/shiny.gbapal.lz"); + const u8 gMonIcon_Scorbunny[] = INCBIN_U8("graphics/pokemon/scorbunny/icon.4bpp"); + const u8 gMonFootprint_Scorbunny[] = INCBIN_U8("graphics/pokemon/scorbunny/footprint.1bpp"); + + const u32 gMonFrontPic_Raboot[] = INCBIN_U32("graphics/pokemon/raboot/front.4bpp.lz"); + const u32 gMonPalette_Raboot[] = INCBIN_U32("graphics/pokemon/raboot/normal.gbapal.lz"); + const u32 gMonBackPic_Raboot[] = INCBIN_U32("graphics/pokemon/raboot/back.4bpp.lz"); + const u32 gMonShinyPalette_Raboot[] = INCBIN_U32("graphics/pokemon/raboot/shiny.gbapal.lz"); + const u8 gMonIcon_Raboot[] = INCBIN_U8("graphics/pokemon/raboot/icon.4bpp"); + const u8 gMonFootprint_Raboot[] = INCBIN_U8("graphics/pokemon/raboot/footprint.1bpp"); + + const u32 gMonFrontPic_Cinderace[] = INCBIN_U32("graphics/pokemon/cinderace/front.4bpp.lz"); + const u32 gMonPalette_Cinderace[] = INCBIN_U32("graphics/pokemon/cinderace/normal.gbapal.lz"); + const u32 gMonBackPic_Cinderace[] = INCBIN_U32("graphics/pokemon/cinderace/back.4bpp.lz"); + const u32 gMonShinyPalette_Cinderace[] = INCBIN_U32("graphics/pokemon/cinderace/shiny.gbapal.lz"); + const u8 gMonIcon_Cinderace[] = INCBIN_U8("graphics/pokemon/cinderace/icon.4bpp"); + const u8 gMonFootprint_Cinderace[] = INCBIN_U8("graphics/pokemon/cinderace/footprint.1bpp"); + +#if P_GIGANTAMAX_FORMS + const u32 gMonFrontPic_CinderaceGigantamax[] = INCBIN_U32("graphics/pokemon/cinderace/gigantamax/front.4bpp.lz"); + const u32 gMonBackPic_CinderaceGigantamax[] = INCBIN_U32("graphics/pokemon/cinderace/gigantamax/back.4bpp.lz"); + const u32 gMonPalette_CinderaceGigantamax[] = INCBIN_U32("graphics/pokemon/cinderace/gigantamax/normal.gbapal.lz"); + const u32 gMonShinyPalette_CinderaceGigantamax[] = INCBIN_U32("graphics/pokemon/cinderace/gigantamax/shiny.gbapal.lz"); + const u8 gMonIcon_CinderaceGigantamax[] = INCBIN_U8("graphics/pokemon/cinderace/gigantamax/icon.4bpp"); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_SCORBUNNY + +#if P_FAMILY_SOBBLE + const u32 gMonFrontPic_Sobble[] = INCBIN_U32("graphics/pokemon/sobble/front.4bpp.lz"); + const u32 gMonPalette_Sobble[] = INCBIN_U32("graphics/pokemon/sobble/normal.gbapal.lz"); + const u32 gMonBackPic_Sobble[] = INCBIN_U32("graphics/pokemon/sobble/back.4bpp.lz"); + const u32 gMonShinyPalette_Sobble[] = INCBIN_U32("graphics/pokemon/sobble/shiny.gbapal.lz"); + const u8 gMonIcon_Sobble[] = INCBIN_U8("graphics/pokemon/sobble/icon.4bpp"); + const u8 gMonFootprint_Sobble[] = INCBIN_U8("graphics/pokemon/sobble/footprint.1bpp"); + + const u32 gMonFrontPic_Drizzile[] = INCBIN_U32("graphics/pokemon/drizzile/front.4bpp.lz"); + const u32 gMonPalette_Drizzile[] = INCBIN_U32("graphics/pokemon/drizzile/normal.gbapal.lz"); + const u32 gMonBackPic_Drizzile[] = INCBIN_U32("graphics/pokemon/drizzile/back.4bpp.lz"); + const u32 gMonShinyPalette_Drizzile[] = INCBIN_U32("graphics/pokemon/drizzile/shiny.gbapal.lz"); + const u8 gMonIcon_Drizzile[] = INCBIN_U8("graphics/pokemon/drizzile/icon.4bpp"); + const u8 gMonFootprint_Drizzile[] = INCBIN_U8("graphics/pokemon/drizzile/footprint.1bpp"); + + const u32 gMonFrontPic_Inteleon[] = INCBIN_U32("graphics/pokemon/inteleon/front.4bpp.lz"); + const u32 gMonPalette_Inteleon[] = INCBIN_U32("graphics/pokemon/inteleon/normal.gbapal.lz"); + const u32 gMonBackPic_Inteleon[] = INCBIN_U32("graphics/pokemon/inteleon/back.4bpp.lz"); + const u32 gMonShinyPalette_Inteleon[] = INCBIN_U32("graphics/pokemon/inteleon/shiny.gbapal.lz"); + const u8 gMonIcon_Inteleon[] = INCBIN_U8("graphics/pokemon/inteleon/icon.4bpp"); + const u8 gMonFootprint_Inteleon[] = INCBIN_U8("graphics/pokemon/inteleon/footprint.1bpp"); + +#if P_GIGANTAMAX_FORMS + const u32 gMonFrontPic_InteleonGigantamax[] = INCBIN_U32("graphics/pokemon/inteleon/gigantamax/front.4bpp.lz"); + const u32 gMonBackPic_InteleonGigantamax[] = INCBIN_U32("graphics/pokemon/inteleon/gigantamax/back.4bpp.lz"); + const u32 gMonPalette_InteleonGigantamax[] = INCBIN_U32("graphics/pokemon/inteleon/gigantamax/normal.gbapal.lz"); + const u32 gMonShinyPalette_InteleonGigantamax[] = INCBIN_U32("graphics/pokemon/inteleon/gigantamax/shiny.gbapal.lz"); + const u8 gMonIcon_InteleonGigantamax[] = INCBIN_U8("graphics/pokemon/inteleon/gigantamax/icon.4bpp"); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_SOBBLE + +#if P_FAMILY_SKWOVET + const u32 gMonFrontPic_Skwovet[] = INCBIN_U32("graphics/pokemon/skwovet/front.4bpp.lz"); + const u32 gMonPalette_Skwovet[] = INCBIN_U32("graphics/pokemon/skwovet/normal.gbapal.lz"); + const u32 gMonBackPic_Skwovet[] = INCBIN_U32("graphics/pokemon/skwovet/back.4bpp.lz"); + const u32 gMonShinyPalette_Skwovet[] = INCBIN_U32("graphics/pokemon/skwovet/shiny.gbapal.lz"); + const u8 gMonIcon_Skwovet[] = INCBIN_U8("graphics/pokemon/skwovet/icon.4bpp"); + const u8 gMonFootprint_Skwovet[] = INCBIN_U8("graphics/pokemon/skwovet/footprint.1bpp"); + + const u32 gMonFrontPic_Greedent[] = INCBIN_U32("graphics/pokemon/greedent/front.4bpp.lz"); + const u32 gMonPalette_Greedent[] = INCBIN_U32("graphics/pokemon/greedent/normal.gbapal.lz"); + const u32 gMonBackPic_Greedent[] = INCBIN_U32("graphics/pokemon/greedent/back.4bpp.lz"); + const u32 gMonShinyPalette_Greedent[] = INCBIN_U32("graphics/pokemon/greedent/shiny.gbapal.lz"); + const u8 gMonIcon_Greedent[] = INCBIN_U8("graphics/pokemon/greedent/icon.4bpp"); + const u8 gMonFootprint_Greedent[] = INCBIN_U8("graphics/pokemon/greedent/footprint.1bpp"); +#endif //P_FAMILY_SKWOVET + +#if P_FAMILY_ROOKIDEE + const u32 gMonFrontPic_Rookidee[] = INCBIN_U32("graphics/pokemon/rookidee/anim_front.4bpp.lz"); + const u32 gMonPalette_Rookidee[] = INCBIN_U32("graphics/pokemon/rookidee/normal.gbapal.lz"); + const u32 gMonBackPic_Rookidee[] = INCBIN_U32("graphics/pokemon/rookidee/back.4bpp.lz"); + const u32 gMonShinyPalette_Rookidee[] = INCBIN_U32("graphics/pokemon/rookidee/shiny.gbapal.lz"); + const u8 gMonIcon_Rookidee[] = INCBIN_U8("graphics/pokemon/rookidee/icon.4bpp"); + const u8 gMonFootprint_Rookidee[] = INCBIN_U8("graphics/pokemon/rookidee/footprint.1bpp"); + + const u32 gMonFrontPic_Corvisquire[] = INCBIN_U32("graphics/pokemon/corvisquire/anim_front.4bpp.lz"); + const u32 gMonPalette_Corvisquire[] = INCBIN_U32("graphics/pokemon/corvisquire/normal.gbapal.lz"); + const u32 gMonBackPic_Corvisquire[] = INCBIN_U32("graphics/pokemon/corvisquire/back.4bpp.lz"); + const u32 gMonShinyPalette_Corvisquire[] = INCBIN_U32("graphics/pokemon/corvisquire/shiny.gbapal.lz"); + const u8 gMonIcon_Corvisquire[] = INCBIN_U8("graphics/pokemon/corvisquire/icon.4bpp"); + const u8 gMonFootprint_Corvisquire[] = INCBIN_U8("graphics/pokemon/corvisquire/footprint.1bpp"); + + const u32 gMonFrontPic_Corviknight[] = INCBIN_U32("graphics/pokemon/corviknight/anim_front.4bpp.lz"); + const u32 gMonPalette_Corviknight[] = INCBIN_U32("graphics/pokemon/corviknight/normal.gbapal.lz"); + const u32 gMonBackPic_Corviknight[] = INCBIN_U32("graphics/pokemon/corviknight/back.4bpp.lz"); + const u32 gMonShinyPalette_Corviknight[] = INCBIN_U32("graphics/pokemon/corviknight/shiny.gbapal.lz"); + const u8 gMonIcon_Corviknight[] = INCBIN_U8("graphics/pokemon/corviknight/icon.4bpp"); + const u8 gMonFootprint_Corviknight[] = INCBIN_U8("graphics/pokemon/corviknight/footprint.1bpp"); + +#if P_GIGANTAMAX_FORMS + const u32 gMonFrontPic_CorviknightGigantamax[] = INCBIN_U32("graphics/pokemon/corviknight/gigantamax/front.4bpp.lz"); + const u32 gMonBackPic_CorviknightGigantamax[] = INCBIN_U32("graphics/pokemon/corviknight/gigantamax/back.4bpp.lz"); + const u32 gMonPalette_CorviknightGigantamax[] = INCBIN_U32("graphics/pokemon/corviknight/gigantamax/normal.gbapal.lz"); + const u32 gMonShinyPalette_CorviknightGigantamax[] = INCBIN_U32("graphics/pokemon/corviknight/gigantamax/shiny.gbapal.lz"); + const u8 gMonIcon_CorviknightGigantamax[] = INCBIN_U8("graphics/pokemon/corviknight/gigantamax/icon.4bpp"); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_ROOKIDEE + +#if P_FAMILY_BLIPBUG + const u32 gMonFrontPic_Blipbug[] = INCBIN_U32("graphics/pokemon/blipbug/front.4bpp.lz"); + const u32 gMonPalette_Blipbug[] = INCBIN_U32("graphics/pokemon/blipbug/normal.gbapal.lz"); + const u32 gMonBackPic_Blipbug[] = INCBIN_U32("graphics/pokemon/blipbug/back.4bpp.lz"); + const u32 gMonShinyPalette_Blipbug[] = INCBIN_U32("graphics/pokemon/blipbug/shiny.gbapal.lz"); + const u8 gMonIcon_Blipbug[] = INCBIN_U8("graphics/pokemon/blipbug/icon.4bpp"); + const u8 gMonFootprint_Blipbug[] = INCBIN_U8("graphics/pokemon/blipbug/footprint.1bpp"); + + const u32 gMonFrontPic_Dottler[] = INCBIN_U32("graphics/pokemon/dottler/front.4bpp.lz"); + const u32 gMonPalette_Dottler[] = INCBIN_U32("graphics/pokemon/dottler/normal.gbapal.lz"); + const u32 gMonBackPic_Dottler[] = INCBIN_U32("graphics/pokemon/dottler/back.4bpp.lz"); + const u32 gMonShinyPalette_Dottler[] = INCBIN_U32("graphics/pokemon/dottler/shiny.gbapal.lz"); + const u8 gMonIcon_Dottler[] = INCBIN_U8("graphics/pokemon/dottler/icon.4bpp"); + const u8 gMonFootprint_Dottler[] = INCBIN_U8("graphics/pokemon/dottler/footprint.1bpp"); + + const u32 gMonFrontPic_Orbeetle[] = INCBIN_U32("graphics/pokemon/orbeetle/front.4bpp.lz"); + const u32 gMonPalette_Orbeetle[] = INCBIN_U32("graphics/pokemon/orbeetle/normal.gbapal.lz"); + const u32 gMonBackPic_Orbeetle[] = INCBIN_U32("graphics/pokemon/orbeetle/back.4bpp.lz"); + const u32 gMonShinyPalette_Orbeetle[] = INCBIN_U32("graphics/pokemon/orbeetle/shiny.gbapal.lz"); + const u8 gMonIcon_Orbeetle[] = INCBIN_U8("graphics/pokemon/orbeetle/icon.4bpp"); + const u8 gMonFootprint_Orbeetle[] = INCBIN_U8("graphics/pokemon/orbeetle/footprint.1bpp"); + +#if P_GIGANTAMAX_FORMS + const u32 gMonFrontPic_OrbeetleGigantamax[] = INCBIN_U32("graphics/pokemon/orbeetle/gigantamax/front.4bpp.lz"); + const u32 gMonBackPic_OrbeetleGigantamax[] = INCBIN_U32("graphics/pokemon/orbeetle/gigantamax/back.4bpp.lz"); + const u32 gMonPalette_OrbeetleGigantamax[] = INCBIN_U32("graphics/pokemon/orbeetle/gigantamax/normal.gbapal.lz"); + const u32 gMonShinyPalette_OrbeetleGigantamax[] = INCBIN_U32("graphics/pokemon/orbeetle/gigantamax/shiny.gbapal.lz"); + const u8 gMonIcon_OrbeetleGigantamax[] = INCBIN_U8("graphics/pokemon/orbeetle/gigantamax/icon.4bpp"); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_BLIPBUG + +#if P_FAMILY_NICKIT + const u32 gMonFrontPic_Nickit[] = INCBIN_U32("graphics/pokemon/nickit/front.4bpp.lz"); + const u32 gMonPalette_Nickit[] = INCBIN_U32("graphics/pokemon/nickit/normal.gbapal.lz"); + const u32 gMonBackPic_Nickit[] = INCBIN_U32("graphics/pokemon/nickit/back.4bpp.lz"); + const u32 gMonShinyPalette_Nickit[] = INCBIN_U32("graphics/pokemon/nickit/shiny.gbapal.lz"); + const u8 gMonIcon_Nickit[] = INCBIN_U8("graphics/pokemon/nickit/icon.4bpp"); + const u8 gMonFootprint_Nickit[] = INCBIN_U8("graphics/pokemon/nickit/footprint.1bpp"); + + const u32 gMonFrontPic_Thievul[] = INCBIN_U32("graphics/pokemon/thievul/front.4bpp.lz"); + const u32 gMonPalette_Thievul[] = INCBIN_U32("graphics/pokemon/thievul/normal.gbapal.lz"); + const u32 gMonBackPic_Thievul[] = INCBIN_U32("graphics/pokemon/thievul/back.4bpp.lz"); + const u32 gMonShinyPalette_Thievul[] = INCBIN_U32("graphics/pokemon/thievul/shiny.gbapal.lz"); + const u8 gMonIcon_Thievul[] = INCBIN_U8("graphics/pokemon/thievul/icon.4bpp"); + const u8 gMonFootprint_Thievul[] = INCBIN_U8("graphics/pokemon/thievul/footprint.1bpp"); +#endif //P_FAMILY_NICKIT + +#if P_FAMILY_GOSSIFLEUR + const u32 gMonFrontPic_Gossifleur[] = INCBIN_U32("graphics/pokemon/gossifleur/front.4bpp.lz"); + const u32 gMonPalette_Gossifleur[] = INCBIN_U32("graphics/pokemon/gossifleur/normal.gbapal.lz"); + const u32 gMonBackPic_Gossifleur[] = INCBIN_U32("graphics/pokemon/gossifleur/back.4bpp.lz"); + const u32 gMonShinyPalette_Gossifleur[] = INCBIN_U32("graphics/pokemon/gossifleur/shiny.gbapal.lz"); + const u8 gMonIcon_Gossifleur[] = INCBIN_U8("graphics/pokemon/gossifleur/icon.4bpp"); + const u8 gMonFootprint_Gossifleur[] = INCBIN_U8("graphics/pokemon/gossifleur/footprint.1bpp"); + + const u32 gMonFrontPic_Eldegoss[] = INCBIN_U32("graphics/pokemon/eldegoss/front.4bpp.lz"); + const u32 gMonPalette_Eldegoss[] = INCBIN_U32("graphics/pokemon/eldegoss/normal.gbapal.lz"); + const u32 gMonBackPic_Eldegoss[] = INCBIN_U32("graphics/pokemon/eldegoss/back.4bpp.lz"); + const u32 gMonShinyPalette_Eldegoss[] = INCBIN_U32("graphics/pokemon/eldegoss/shiny.gbapal.lz"); + const u8 gMonIcon_Eldegoss[] = INCBIN_U8("graphics/pokemon/eldegoss/icon.4bpp"); + const u8 gMonFootprint_Eldegoss[] = INCBIN_U8("graphics/pokemon/eldegoss/footprint.1bpp"); +#endif //P_FAMILY_GOSSIFLEUR + +#if P_FAMILY_WOOLOO + const u32 gMonFrontPic_Wooloo[] = INCBIN_U32("graphics/pokemon/wooloo/front.4bpp.lz"); + const u32 gMonPalette_Wooloo[] = INCBIN_U32("graphics/pokemon/wooloo/normal.gbapal.lz"); + const u32 gMonBackPic_Wooloo[] = INCBIN_U32("graphics/pokemon/wooloo/back.4bpp.lz"); + const u32 gMonShinyPalette_Wooloo[] = INCBIN_U32("graphics/pokemon/wooloo/shiny.gbapal.lz"); + const u8 gMonIcon_Wooloo[] = INCBIN_U8("graphics/pokemon/wooloo/icon.4bpp"); + const u8 gMonFootprint_Wooloo[] = INCBIN_U8("graphics/pokemon/wooloo/footprint.1bpp"); + + const u32 gMonFrontPic_Dubwool[] = INCBIN_U32("graphics/pokemon/dubwool/front.4bpp.lz"); + const u32 gMonPalette_Dubwool[] = INCBIN_U32("graphics/pokemon/dubwool/normal.gbapal.lz"); + const u32 gMonBackPic_Dubwool[] = INCBIN_U32("graphics/pokemon/dubwool/back.4bpp.lz"); + const u32 gMonShinyPalette_Dubwool[] = INCBIN_U32("graphics/pokemon/dubwool/shiny.gbapal.lz"); + const u8 gMonIcon_Dubwool[] = INCBIN_U8("graphics/pokemon/dubwool/icon.4bpp"); + const u8 gMonFootprint_Dubwool[] = INCBIN_U8("graphics/pokemon/dubwool/footprint.1bpp"); +#endif //P_FAMILY_WOOLOO + +#if P_FAMILY_CHEWTLE + const u32 gMonFrontPic_Chewtle[] = INCBIN_U32("graphics/pokemon/chewtle/anim_front.4bpp.lz"); + const u32 gMonPalette_Chewtle[] = INCBIN_U32("graphics/pokemon/chewtle/normal.gbapal.lz"); + const u32 gMonBackPic_Chewtle[] = INCBIN_U32("graphics/pokemon/chewtle/back.4bpp.lz"); + const u32 gMonShinyPalette_Chewtle[] = INCBIN_U32("graphics/pokemon/chewtle/shiny.gbapal.lz"); + const u8 gMonIcon_Chewtle[] = INCBIN_U8("graphics/pokemon/chewtle/icon.4bpp"); + const u8 gMonFootprint_Chewtle[] = INCBIN_U8("graphics/pokemon/chewtle/footprint.1bpp"); + + const u32 gMonFrontPic_Drednaw[] = INCBIN_U32("graphics/pokemon/drednaw/anim_front.4bpp.lz"); + const u32 gMonPalette_Drednaw[] = INCBIN_U32("graphics/pokemon/drednaw/normal.gbapal.lz"); + const u32 gMonBackPic_Drednaw[] = INCBIN_U32("graphics/pokemon/drednaw/back.4bpp.lz"); + const u32 gMonShinyPalette_Drednaw[] = INCBIN_U32("graphics/pokemon/drednaw/shiny.gbapal.lz"); + const u8 gMonIcon_Drednaw[] = INCBIN_U8("graphics/pokemon/drednaw/icon.4bpp"); + const u8 gMonFootprint_Drednaw[] = INCBIN_U8("graphics/pokemon/drednaw/footprint.1bpp"); + +#if P_GIGANTAMAX_FORMS + const u32 gMonFrontPic_DrednawGigantamax[] = INCBIN_U32("graphics/pokemon/drednaw/gigantamax/front.4bpp.lz"); + const u32 gMonBackPic_DrednawGigantamax[] = INCBIN_U32("graphics/pokemon/drednaw/gigantamax/back.4bpp.lz"); + const u32 gMonPalette_DrednawGigantamax[] = INCBIN_U32("graphics/pokemon/drednaw/gigantamax/normal.gbapal.lz"); + const u32 gMonShinyPalette_DrednawGigantamax[] = INCBIN_U32("graphics/pokemon/drednaw/gigantamax/shiny.gbapal.lz"); + const u8 gMonIcon_DrednawGigantamax[] = INCBIN_U8("graphics/pokemon/drednaw/gigantamax/icon.4bpp"); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_CHEWTLE + +#if P_FAMILY_YAMPER + const u32 gMonFrontPic_Yamper[] = INCBIN_U32("graphics/pokemon/yamper/front.4bpp.lz"); + const u32 gMonPalette_Yamper[] = INCBIN_U32("graphics/pokemon/yamper/normal.gbapal.lz"); + const u32 gMonBackPic_Yamper[] = INCBIN_U32("graphics/pokemon/yamper/back.4bpp.lz"); + const u32 gMonShinyPalette_Yamper[] = INCBIN_U32("graphics/pokemon/yamper/shiny.gbapal.lz"); + const u8 gMonIcon_Yamper[] = INCBIN_U8("graphics/pokemon/yamper/icon.4bpp"); + const u8 gMonFootprint_Yamper[] = INCBIN_U8("graphics/pokemon/yamper/footprint.1bpp"); + + const u32 gMonFrontPic_Boltund[] = INCBIN_U32("graphics/pokemon/boltund/front.4bpp.lz"); + const u32 gMonPalette_Boltund[] = INCBIN_U32("graphics/pokemon/boltund/normal.gbapal.lz"); + const u32 gMonBackPic_Boltund[] = INCBIN_U32("graphics/pokemon/boltund/back.4bpp.lz"); + const u32 gMonShinyPalette_Boltund[] = INCBIN_U32("graphics/pokemon/boltund/shiny.gbapal.lz"); + const u8 gMonIcon_Boltund[] = INCBIN_U8("graphics/pokemon/boltund/icon.4bpp"); + const u8 gMonFootprint_Boltund[] = INCBIN_U8("graphics/pokemon/boltund/footprint.1bpp"); +#endif //P_FAMILY_YAMPER + +#if P_FAMILY_ROLYCOLY + const u32 gMonFrontPic_Rolycoly[] = INCBIN_U32("graphics/pokemon/rolycoly/anim_front.4bpp.lz"); + const u32 gMonPalette_Rolycoly[] = INCBIN_U32("graphics/pokemon/rolycoly/normal.gbapal.lz"); + const u32 gMonBackPic_Rolycoly[] = INCBIN_U32("graphics/pokemon/rolycoly/back.4bpp.lz"); + const u32 gMonShinyPalette_Rolycoly[] = INCBIN_U32("graphics/pokemon/rolycoly/shiny.gbapal.lz"); + const u8 gMonIcon_Rolycoly[] = INCBIN_U8("graphics/pokemon/rolycoly/icon.4bpp"); + const u8 gMonFootprint_Rolycoly[] = INCBIN_U8("graphics/pokemon/rolycoly/footprint.1bpp"); + + const u32 gMonFrontPic_Carkol[] = INCBIN_U32("graphics/pokemon/carkol/anim_front.4bpp.lz"); + const u32 gMonPalette_Carkol[] = INCBIN_U32("graphics/pokemon/carkol/normal.gbapal.lz"); + const u32 gMonBackPic_Carkol[] = INCBIN_U32("graphics/pokemon/carkol/back.4bpp.lz"); + const u32 gMonShinyPalette_Carkol[] = INCBIN_U32("graphics/pokemon/carkol/shiny.gbapal.lz"); + const u8 gMonIcon_Carkol[] = INCBIN_U8("graphics/pokemon/carkol/icon.4bpp"); + const u8 gMonFootprint_Carkol[] = INCBIN_U8("graphics/pokemon/carkol/footprint.1bpp"); + + const u32 gMonFrontPic_Coalossal[] = INCBIN_U32("graphics/pokemon/coalossal/anim_front.4bpp.lz"); + const u32 gMonPalette_Coalossal[] = INCBIN_U32("graphics/pokemon/coalossal/normal.gbapal.lz"); + const u32 gMonBackPic_Coalossal[] = INCBIN_U32("graphics/pokemon/coalossal/back.4bpp.lz"); + const u32 gMonShinyPalette_Coalossal[] = INCBIN_U32("graphics/pokemon/coalossal/shiny.gbapal.lz"); + const u8 gMonIcon_Coalossal[] = INCBIN_U8("graphics/pokemon/coalossal/icon.4bpp"); + const u8 gMonFootprint_Coalossal[] = INCBIN_U8("graphics/pokemon/coalossal/footprint.1bpp"); + +#if P_GIGANTAMAX_FORMS + const u32 gMonFrontPic_CoalossalGigantamax[] = INCBIN_U32("graphics/pokemon/coalossal/gigantamax/front.4bpp.lz"); + const u32 gMonBackPic_CoalossalGigantamax[] = INCBIN_U32("graphics/pokemon/coalossal/gigantamax/back.4bpp.lz"); + const u32 gMonPalette_CoalossalGigantamax[] = INCBIN_U32("graphics/pokemon/coalossal/gigantamax/normal.gbapal.lz"); + const u32 gMonShinyPalette_CoalossalGigantamax[] = INCBIN_U32("graphics/pokemon/coalossal/gigantamax/shiny.gbapal.lz"); + const u8 gMonIcon_CoalossalGigantamax[] = INCBIN_U8("graphics/pokemon/coalossal/gigantamax/icon.4bpp"); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_ROLYCOLY + +#if P_FAMILY_APPLIN + const u32 gMonFrontPic_Applin[] = INCBIN_U32("graphics/pokemon/applin/anim_front.4bpp.lz"); + const u32 gMonPalette_Applin[] = INCBIN_U32("graphics/pokemon/applin/normal.gbapal.lz"); + const u32 gMonBackPic_Applin[] = INCBIN_U32("graphics/pokemon/applin/back.4bpp.lz"); + const u32 gMonShinyPalette_Applin[] = INCBIN_U32("graphics/pokemon/applin/shiny.gbapal.lz"); + const u8 gMonIcon_Applin[] = INCBIN_U8("graphics/pokemon/applin/icon.4bpp"); + const u8 gMonFootprint_Applin[] = INCBIN_U8("graphics/pokemon/applin/footprint.1bpp"); + + const u32 gMonFrontPic_Flapple[] = INCBIN_U32("graphics/pokemon/flapple/anim_front.4bpp.lz"); + const u32 gMonPalette_Flapple[] = INCBIN_U32("graphics/pokemon/flapple/normal.gbapal.lz"); + const u32 gMonBackPic_Flapple[] = INCBIN_U32("graphics/pokemon/flapple/back.4bpp.lz"); + const u32 gMonShinyPalette_Flapple[] = INCBIN_U32("graphics/pokemon/flapple/shiny.gbapal.lz"); + const u8 gMonIcon_Flapple[] = INCBIN_U8("graphics/pokemon/flapple/icon.4bpp"); + const u8 gMonFootprint_Flapple[] = INCBIN_U8("graphics/pokemon/flapple/footprint.1bpp"); + +#if P_GIGANTAMAX_FORMS + const u32 gMonFrontPic_FlappleGigantamax[] = INCBIN_U32("graphics/pokemon/flapple/gigantamax/front.4bpp.lz"); + const u32 gMonBackPic_FlappleGigantamax[] = INCBIN_U32("graphics/pokemon/flapple/gigantamax/back.4bpp.lz"); + const u32 gMonPalette_FlappleGigantamax[] = INCBIN_U32("graphics/pokemon/flapple/gigantamax/normal.gbapal.lz"); + const u32 gMonShinyPalette_FlappleGigantamax[] = INCBIN_U32("graphics/pokemon/flapple/gigantamax/shiny.gbapal.lz"); + const u8 gMonIcon_FlappleGigantamax[] = INCBIN_U8("graphics/pokemon/flapple/gigantamax/icon.4bpp"); +#endif //P_GIGANTAMAX_FORMS + + const u32 gMonFrontPic_Appletun[] = INCBIN_U32("graphics/pokemon/appletun/anim_front.4bpp.lz"); + const u32 gMonPalette_Appletun[] = INCBIN_U32("graphics/pokemon/appletun/normal.gbapal.lz"); + const u32 gMonBackPic_Appletun[] = INCBIN_U32("graphics/pokemon/appletun/back.4bpp.lz"); + const u32 gMonShinyPalette_Appletun[] = INCBIN_U32("graphics/pokemon/appletun/shiny.gbapal.lz"); + const u8 gMonIcon_Appletun[] = INCBIN_U8("graphics/pokemon/appletun/icon.4bpp"); + const u8 gMonFootprint_Appletun[] = INCBIN_U8("graphics/pokemon/appletun/footprint.1bpp"); + +#if P_GIGANTAMAX_FORMS + const u32 gMonFrontPic_AppletunGigantamax[] = INCBIN_U32("graphics/pokemon/appletun/gigantamax/front.4bpp.lz"); + const u32 gMonBackPic_AppletunGigantamax[] = INCBIN_U32("graphics/pokemon/appletun/gigantamax/back.4bpp.lz"); + const u32 gMonPalette_AppletunGigantamax[] = INCBIN_U32("graphics/pokemon/appletun/gigantamax/normal.gbapal.lz"); + const u32 gMonShinyPalette_AppletunGigantamax[] = INCBIN_U32("graphics/pokemon/appletun/gigantamax/shiny.gbapal.lz"); + const u8 gMonIcon_AppletunGigantamax[] = INCBIN_U8("graphics/pokemon/appletun/gigantamax/icon.4bpp"); +#endif //P_GIGANTAMAX_FORMS + +#if P_GEN_9_CROSS_EVOS + const u32 gMonFrontPic_Dipplin[] = INCBIN_U32("graphics/pokemon/dipplin/front.4bpp.lz"); + const u32 gMonPalette_Dipplin[] = INCBIN_U32("graphics/pokemon/dipplin/normal.gbapal.lz"); + const u32 gMonBackPic_Dipplin[] = INCBIN_U32("graphics/pokemon/dipplin/back.4bpp.lz"); + const u32 gMonShinyPalette_Dipplin[] = INCBIN_U32("graphics/pokemon/dipplin/shiny.gbapal.lz"); + const u8 gMonIcon_Dipplin[] = INCBIN_U8("graphics/pokemon/dipplin/icon.4bpp"); + // const u8 gMonFootprint_Dipplin[] = INCBIN_U8("graphics/pokemon/dipplin/footprint.1bpp"); +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_APPLIN + +#if P_FAMILY_SILICOBRA + const u32 gMonFrontPic_Silicobra[] = INCBIN_U32("graphics/pokemon/silicobra/front.4bpp.lz"); + const u32 gMonPalette_Silicobra[] = INCBIN_U32("graphics/pokemon/silicobra/normal.gbapal.lz"); + const u32 gMonBackPic_Silicobra[] = INCBIN_U32("graphics/pokemon/silicobra/back.4bpp.lz"); + const u32 gMonShinyPalette_Silicobra[] = INCBIN_U32("graphics/pokemon/silicobra/shiny.gbapal.lz"); + const u8 gMonIcon_Silicobra[] = INCBIN_U8("graphics/pokemon/silicobra/icon.4bpp"); + const u8 gMonFootprint_Silicobra[] = INCBIN_U8("graphics/pokemon/silicobra/footprint.1bpp"); + + const u32 gMonFrontPic_Sandaconda[] = INCBIN_U32("graphics/pokemon/sandaconda/front.4bpp.lz"); + const u32 gMonPalette_Sandaconda[] = INCBIN_U32("graphics/pokemon/sandaconda/normal.gbapal.lz"); + const u32 gMonBackPic_Sandaconda[] = INCBIN_U32("graphics/pokemon/sandaconda/back.4bpp.lz"); + const u32 gMonShinyPalette_Sandaconda[] = INCBIN_U32("graphics/pokemon/sandaconda/shiny.gbapal.lz"); + const u8 gMonIcon_Sandaconda[] = INCBIN_U8("graphics/pokemon/sandaconda/icon.4bpp"); + const u8 gMonFootprint_Sandaconda[] = INCBIN_U8("graphics/pokemon/sandaconda/footprint.1bpp"); + +#if P_GIGANTAMAX_FORMS + const u32 gMonFrontPic_SandacondaGigantamax[] = INCBIN_U32("graphics/pokemon/sandaconda/gigantamax/front.4bpp.lz"); + const u32 gMonBackPic_SandacondaGigantamax[] = INCBIN_U32("graphics/pokemon/sandaconda/gigantamax/back.4bpp.lz"); + const u32 gMonPalette_SandacondaGigantamax[] = INCBIN_U32("graphics/pokemon/sandaconda/gigantamax/normal.gbapal.lz"); + const u32 gMonShinyPalette_SandacondaGigantamax[] = INCBIN_U32("graphics/pokemon/sandaconda/gigantamax/shiny.gbapal.lz"); + const u8 gMonIcon_SandacondaGigantamax[] = INCBIN_U8("graphics/pokemon/sandaconda/gigantamax/icon.4bpp"); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_SILICOBRA + +#if P_FAMILY_CRAMORANT + const u32 gMonFrontPic_Cramorant[] = INCBIN_U32("graphics/pokemon/cramorant/front.4bpp.lz"); + const u32 gMonPalette_Cramorant[] = INCBIN_U32("graphics/pokemon/cramorant/normal.gbapal.lz"); + const u32 gMonBackPic_Cramorant[] = INCBIN_U32("graphics/pokemon/cramorant/back.4bpp.lz"); + const u32 gMonShinyPalette_Cramorant[] = INCBIN_U32("graphics/pokemon/cramorant/shiny.gbapal.lz"); + const u8 gMonIcon_Cramorant[] = INCBIN_U8("graphics/pokemon/cramorant/icon.4bpp"); + const u8 gMonFootprint_Cramorant[] = INCBIN_U8("graphics/pokemon/cramorant/footprint.1bpp"); + + const u32 gMonFrontPic_CramorantGulping[] = INCBIN_U32("graphics/pokemon/cramorant/gulping/front.4bpp.lz"); + const u32 gMonPalette_CramorantGulping[] = INCBIN_U32("graphics/pokemon/cramorant/gulping/normal.gbapal.lz"); + const u32 gMonBackPic_CramorantGulping[] = INCBIN_U32("graphics/pokemon/cramorant/gulping/back.4bpp.lz"); + const u32 gMonShinyPalette_CramorantGulping[] = INCBIN_U32("graphics/pokemon/cramorant/gulping/shiny.gbapal.lz"); + const u8 gMonIcon_CramorantGulping[] = INCBIN_U8("graphics/pokemon/cramorant/gulping/icon.4bpp"); + + const u32 gMonFrontPic_CramorantGorging[] = INCBIN_U32("graphics/pokemon/cramorant/gorging/front.4bpp.lz"); + const u32 gMonPalette_CramorantGorging[] = INCBIN_U32("graphics/pokemon/cramorant/gorging/normal.gbapal.lz"); + const u32 gMonBackPic_CramorantGorging[] = INCBIN_U32("graphics/pokemon/cramorant/gorging/back.4bpp.lz"); + const u32 gMonShinyPalette_CramorantGorging[] = INCBIN_U32("graphics/pokemon/cramorant/gorging/shiny.gbapal.lz"); + const u8 gMonIcon_CramorantGorging[] = INCBIN_U8("graphics/pokemon/cramorant/gorging/icon.4bpp"); +#endif //P_FAMILY_CRAMORANT + +#if P_FAMILY_ARROKUDA + const u32 gMonFrontPic_Arrokuda[] = INCBIN_U32("graphics/pokemon/arrokuda/front.4bpp.lz"); + const u32 gMonPalette_Arrokuda[] = INCBIN_U32("graphics/pokemon/arrokuda/normal.gbapal.lz"); + const u32 gMonBackPic_Arrokuda[] = INCBIN_U32("graphics/pokemon/arrokuda/back.4bpp.lz"); + const u32 gMonShinyPalette_Arrokuda[] = INCBIN_U32("graphics/pokemon/arrokuda/shiny.gbapal.lz"); + const u8 gMonIcon_Arrokuda[] = INCBIN_U8("graphics/pokemon/arrokuda/icon.4bpp"); + const u8 gMonFootprint_Arrokuda[] = INCBIN_U8("graphics/pokemon/arrokuda/footprint.1bpp"); + + const u32 gMonFrontPic_Barraskewda[] = INCBIN_U32("graphics/pokemon/barraskewda/front.4bpp.lz"); + const u32 gMonPalette_Barraskewda[] = INCBIN_U32("graphics/pokemon/barraskewda/normal.gbapal.lz"); + const u32 gMonBackPic_Barraskewda[] = INCBIN_U32("graphics/pokemon/barraskewda/back.4bpp.lz"); + const u32 gMonShinyPalette_Barraskewda[] = INCBIN_U32("graphics/pokemon/barraskewda/shiny.gbapal.lz"); + const u8 gMonIcon_Barraskewda[] = INCBIN_U8("graphics/pokemon/barraskewda/icon.4bpp"); + const u8 gMonFootprint_Barraskewda[] = INCBIN_U8("graphics/pokemon/barraskewda/footprint.1bpp"); +#endif //P_FAMILY_ARROKUDA + +#if P_FAMILY_TOXEL + const u32 gMonFrontPic_Toxel[] = INCBIN_U32("graphics/pokemon/toxel/front.4bpp.lz"); + const u32 gMonPalette_Toxel[] = INCBIN_U32("graphics/pokemon/toxel/normal.gbapal.lz"); + const u32 gMonBackPic_Toxel[] = INCBIN_U32("graphics/pokemon/toxel/back.4bpp.lz"); + const u32 gMonShinyPalette_Toxel[] = INCBIN_U32("graphics/pokemon/toxel/shiny.gbapal.lz"); + const u8 gMonIcon_Toxel[] = INCBIN_U8("graphics/pokemon/toxel/icon.4bpp"); + const u8 gMonFootprint_Toxel[] = INCBIN_U8("graphics/pokemon/toxel/footprint.1bpp"); + + const u32 gMonFrontPic_ToxtricityAmped[] = INCBIN_U32("graphics/pokemon/toxtricity/front.4bpp.lz"); + const u32 gMonPalette_ToxtricityAmped[] = INCBIN_U32("graphics/pokemon/toxtricity/normal.gbapal.lz"); + const u32 gMonBackPic_ToxtricityAmped[] = INCBIN_U32("graphics/pokemon/toxtricity/back.4bpp.lz"); + const u32 gMonShinyPalette_ToxtricityAmped[] = INCBIN_U32("graphics/pokemon/toxtricity/shiny.gbapal.lz"); + const u8 gMonIcon_ToxtricityAmped[] = INCBIN_U8("graphics/pokemon/toxtricity/icon.4bpp"); + const u8 gMonFootprint_Toxtricity[] = INCBIN_U8("graphics/pokemon/toxtricity/footprint.1bpp"); + + const u32 gMonFrontPic_ToxtricityLowKey[] = INCBIN_U32("graphics/pokemon/toxtricity/low_key/front.4bpp.lz"); + const u32 gMonPalette_ToxtricityLowKey[] = INCBIN_U32("graphics/pokemon/toxtricity/low_key/normal.gbapal.lz"); + const u32 gMonBackPic_ToxtricityLowKey[] = INCBIN_U32("graphics/pokemon/toxtricity/low_key/back.4bpp.lz"); + const u32 gMonShinyPalette_ToxtricityLowKey[] = INCBIN_U32("graphics/pokemon/toxtricity/low_key/shiny.gbapal.lz"); + const u8 gMonIcon_ToxtricityLowKey[] = INCBIN_U8("graphics/pokemon/toxtricity/low_key/icon.4bpp"); + +#if P_GIGANTAMAX_FORMS + const u32 gMonFrontPic_ToxtricityGigantamax[] = INCBIN_U32("graphics/pokemon/toxtricity/gigantamax/front.4bpp.lz"); + const u32 gMonBackPic_ToxtricityGigantamax[] = INCBIN_U32("graphics/pokemon/toxtricity/gigantamax/back.4bpp.lz"); + const u32 gMonPalette_ToxtricityGigantamax[] = INCBIN_U32("graphics/pokemon/toxtricity/gigantamax/normal.gbapal.lz"); + const u32 gMonShinyPalette_ToxtricityGigantamax[] = INCBIN_U32("graphics/pokemon/toxtricity/gigantamax/shiny.gbapal.lz"); + const u8 gMonIcon_ToxtricityGigantamax[] = INCBIN_U8("graphics/pokemon/toxtricity/gigantamax/icon.4bpp"); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_TOXEL + +#if P_FAMILY_SIZZLIPEDE + const u32 gMonFrontPic_Sizzlipede[] = INCBIN_U32("graphics/pokemon/sizzlipede/anim_front.4bpp.lz"); + const u32 gMonPalette_Sizzlipede[] = INCBIN_U32("graphics/pokemon/sizzlipede/normal.gbapal.lz"); + const u32 gMonBackPic_Sizzlipede[] = INCBIN_U32("graphics/pokemon/sizzlipede/back.4bpp.lz"); + const u32 gMonShinyPalette_Sizzlipede[] = INCBIN_U32("graphics/pokemon/sizzlipede/shiny.gbapal.lz"); + const u8 gMonIcon_Sizzlipede[] = INCBIN_U8("graphics/pokemon/sizzlipede/icon.4bpp"); + const u8 gMonFootprint_Sizzlipede[] = INCBIN_U8("graphics/pokemon/sizzlipede/footprint.1bpp"); + + const u32 gMonFrontPic_Centiskorch[] = INCBIN_U32("graphics/pokemon/centiskorch/anim_front.4bpp.lz"); + const u32 gMonPalette_Centiskorch[] = INCBIN_U32("graphics/pokemon/centiskorch/normal.gbapal.lz"); + const u32 gMonBackPic_Centiskorch[] = INCBIN_U32("graphics/pokemon/centiskorch/back.4bpp.lz"); + const u32 gMonShinyPalette_Centiskorch[] = INCBIN_U32("graphics/pokemon/centiskorch/shiny.gbapal.lz"); + const u8 gMonIcon_Centiskorch[] = INCBIN_U8("graphics/pokemon/centiskorch/icon.4bpp"); + const u8 gMonFootprint_Centiskorch[] = INCBIN_U8("graphics/pokemon/centiskorch/footprint.1bpp"); + +#if P_GIGANTAMAX_FORMS + const u32 gMonFrontPic_CentiskorchGigantamax[] = INCBIN_U32("graphics/pokemon/centiskorch/gigantamax/front.4bpp.lz"); + const u32 gMonBackPic_CentiskorchGigantamax[] = INCBIN_U32("graphics/pokemon/centiskorch/gigantamax/back.4bpp.lz"); + const u32 gMonPalette_CentiskorchGigantamax[] = INCBIN_U32("graphics/pokemon/centiskorch/gigantamax/normal.gbapal.lz"); + const u32 gMonShinyPalette_CentiskorchGigantamax[] = INCBIN_U32("graphics/pokemon/centiskorch/gigantamax/shiny.gbapal.lz"); + const u8 gMonIcon_CentiskorchGigantamax[] = INCBIN_U8("graphics/pokemon/centiskorch/gigantamax/icon.4bpp"); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_SIZZLIPEDE + +#if P_FAMILY_CLOBBOPUS + const u32 gMonFrontPic_Clobbopus[] = INCBIN_U32("graphics/pokemon/clobbopus/front.4bpp.lz"); + const u32 gMonPalette_Clobbopus[] = INCBIN_U32("graphics/pokemon/clobbopus/normal.gbapal.lz"); + const u32 gMonBackPic_Clobbopus[] = INCBIN_U32("graphics/pokemon/clobbopus/back.4bpp.lz"); + const u32 gMonShinyPalette_Clobbopus[] = INCBIN_U32("graphics/pokemon/clobbopus/shiny.gbapal.lz"); + const u8 gMonIcon_Clobbopus[] = INCBIN_U8("graphics/pokemon/clobbopus/icon.4bpp"); + const u8 gMonFootprint_Clobbopus[] = INCBIN_U8("graphics/pokemon/clobbopus/footprint.1bpp"); + + const u32 gMonFrontPic_Grapploct[] = INCBIN_U32("graphics/pokemon/grapploct/front.4bpp.lz"); + const u32 gMonPalette_Grapploct[] = INCBIN_U32("graphics/pokemon/grapploct/normal.gbapal.lz"); + const u32 gMonBackPic_Grapploct[] = INCBIN_U32("graphics/pokemon/grapploct/back.4bpp.lz"); + const u32 gMonShinyPalette_Grapploct[] = INCBIN_U32("graphics/pokemon/grapploct/shiny.gbapal.lz"); + const u8 gMonIcon_Grapploct[] = INCBIN_U8("graphics/pokemon/grapploct/icon.4bpp"); + const u8 gMonFootprint_Grapploct[] = INCBIN_U8("graphics/pokemon/grapploct/footprint.1bpp"); +#endif //P_FAMILY_CLOBBOPUS + +#if P_FAMILY_SINISTEA + const u32 gMonFrontPic_Sinistea[] = INCBIN_U32("graphics/pokemon/sinistea/front.4bpp.lz"); + const u32 gMonPalette_Sinistea[] = INCBIN_U32("graphics/pokemon/sinistea/normal.gbapal.lz"); + const u32 gMonBackPic_Sinistea[] = INCBIN_U32("graphics/pokemon/sinistea/back.4bpp.lz"); + const u32 gMonShinyPalette_Sinistea[] = INCBIN_U32("graphics/pokemon/sinistea/shiny.gbapal.lz"); + const u8 gMonIcon_Sinistea[] = INCBIN_U8("graphics/pokemon/sinistea/icon.4bpp"); + const u8 gMonFootprint_Sinistea[] = INCBIN_U8("graphics/pokemon/sinistea/footprint.1bpp"); + + const u32 gMonFrontPic_Polteageist[] = INCBIN_U32("graphics/pokemon/polteageist/front.4bpp.lz"); + const u32 gMonPalette_Polteageist[] = INCBIN_U32("graphics/pokemon/polteageist/normal.gbapal.lz"); + const u32 gMonBackPic_Polteageist[] = INCBIN_U32("graphics/pokemon/polteageist/back.4bpp.lz"); + const u32 gMonShinyPalette_Polteageist[] = INCBIN_U32("graphics/pokemon/polteageist/shiny.gbapal.lz"); + const u8 gMonIcon_Polteageist[] = INCBIN_U8("graphics/pokemon/polteageist/icon.4bpp"); + const u8 gMonFootprint_Polteageist[] = INCBIN_U8("graphics/pokemon/polteageist/footprint.1bpp"); +#endif //P_FAMILY_SINISTEA + +#if P_FAMILY_HATENNA + const u32 gMonFrontPic_Hatenna[] = INCBIN_U32("graphics/pokemon/hatenna/front.4bpp.lz"); + const u32 gMonPalette_Hatenna[] = INCBIN_U32("graphics/pokemon/hatenna/normal.gbapal.lz"); + const u32 gMonBackPic_Hatenna[] = INCBIN_U32("graphics/pokemon/hatenna/back.4bpp.lz"); + const u32 gMonShinyPalette_Hatenna[] = INCBIN_U32("graphics/pokemon/hatenna/shiny.gbapal.lz"); + const u8 gMonIcon_Hatenna[] = INCBIN_U8("graphics/pokemon/hatenna/icon.4bpp"); + const u8 gMonFootprint_Hatenna[] = INCBIN_U8("graphics/pokemon/hatenna/footprint.1bpp"); + + const u32 gMonFrontPic_Hattrem[] = INCBIN_U32("graphics/pokemon/hattrem/front.4bpp.lz"); + const u32 gMonPalette_Hattrem[] = INCBIN_U32("graphics/pokemon/hattrem/normal.gbapal.lz"); + const u32 gMonBackPic_Hattrem[] = INCBIN_U32("graphics/pokemon/hattrem/back.4bpp.lz"); + const u32 gMonShinyPalette_Hattrem[] = INCBIN_U32("graphics/pokemon/hattrem/shiny.gbapal.lz"); + const u8 gMonIcon_Hattrem[] = INCBIN_U8("graphics/pokemon/hattrem/icon.4bpp"); + const u8 gMonFootprint_Hattrem[] = INCBIN_U8("graphics/pokemon/hattrem/footprint.1bpp"); + + const u32 gMonFrontPic_Hatterene[] = INCBIN_U32("graphics/pokemon/hatterene/front.4bpp.lz"); + const u32 gMonPalette_Hatterene[] = INCBIN_U32("graphics/pokemon/hatterene/normal.gbapal.lz"); + const u32 gMonBackPic_Hatterene[] = INCBIN_U32("graphics/pokemon/hatterene/back.4bpp.lz"); + const u32 gMonShinyPalette_Hatterene[] = INCBIN_U32("graphics/pokemon/hatterene/shiny.gbapal.lz"); + const u8 gMonIcon_Hatterene[] = INCBIN_U8("graphics/pokemon/hatterene/icon.4bpp"); + const u8 gMonFootprint_Hatterene[] = INCBIN_U8("graphics/pokemon/hatterene/footprint.1bpp"); + +#if P_GIGANTAMAX_FORMS + const u32 gMonFrontPic_HattereneGigantamax[] = INCBIN_U32("graphics/pokemon/hatterene/gigantamax/front.4bpp.lz"); + const u32 gMonBackPic_HattereneGigantamax[] = INCBIN_U32("graphics/pokemon/hatterene/gigantamax/back.4bpp.lz"); + const u32 gMonPalette_HattereneGigantamax[] = INCBIN_U32("graphics/pokemon/hatterene/gigantamax/normal.gbapal.lz"); + const u32 gMonShinyPalette_HattereneGigantamax[] = INCBIN_U32("graphics/pokemon/hatterene/gigantamax/shiny.gbapal.lz"); + const u8 gMonIcon_HattereneGigantamax[] = INCBIN_U8("graphics/pokemon/hatterene/gigantamax/icon.4bpp"); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_HATENNA + +#if P_FAMILY_IMPIDIMP + const u32 gMonFrontPic_Impidimp[] = INCBIN_U32("graphics/pokemon/impidimp/front.4bpp.lz"); + const u32 gMonPalette_Impidimp[] = INCBIN_U32("graphics/pokemon/impidimp/normal.gbapal.lz"); + const u32 gMonBackPic_Impidimp[] = INCBIN_U32("graphics/pokemon/impidimp/back.4bpp.lz"); + const u32 gMonShinyPalette_Impidimp[] = INCBIN_U32("graphics/pokemon/impidimp/shiny.gbapal.lz"); + const u8 gMonIcon_Impidimp[] = INCBIN_U8("graphics/pokemon/impidimp/icon.4bpp"); + const u8 gMonFootprint_Impidimp[] = INCBIN_U8("graphics/pokemon/impidimp/footprint.1bpp"); + + const u32 gMonFrontPic_Morgrem[] = INCBIN_U32("graphics/pokemon/morgrem/front.4bpp.lz"); + const u32 gMonPalette_Morgrem[] = INCBIN_U32("graphics/pokemon/morgrem/normal.gbapal.lz"); + const u32 gMonBackPic_Morgrem[] = INCBIN_U32("graphics/pokemon/morgrem/back.4bpp.lz"); + const u32 gMonShinyPalette_Morgrem[] = INCBIN_U32("graphics/pokemon/morgrem/shiny.gbapal.lz"); + const u8 gMonIcon_Morgrem[] = INCBIN_U8("graphics/pokemon/morgrem/icon.4bpp"); + const u8 gMonFootprint_Morgrem[] = INCBIN_U8("graphics/pokemon/morgrem/footprint.1bpp"); + + const u32 gMonFrontPic_Grimmsnarl[] = INCBIN_U32("graphics/pokemon/grimmsnarl/front.4bpp.lz"); + const u32 gMonPalette_Grimmsnarl[] = INCBIN_U32("graphics/pokemon/grimmsnarl/normal.gbapal.lz"); + const u32 gMonBackPic_Grimmsnarl[] = INCBIN_U32("graphics/pokemon/grimmsnarl/back.4bpp.lz"); + const u32 gMonShinyPalette_Grimmsnarl[] = INCBIN_U32("graphics/pokemon/grimmsnarl/shiny.gbapal.lz"); + const u8 gMonIcon_Grimmsnarl[] = INCBIN_U8("graphics/pokemon/grimmsnarl/icon.4bpp"); + const u8 gMonFootprint_Grimmsnarl[] = INCBIN_U8("graphics/pokemon/grimmsnarl/footprint.1bpp"); + +#if P_GIGANTAMAX_FORMS + const u32 gMonFrontPic_GrimmsnarlGigantamax[] = INCBIN_U32("graphics/pokemon/grimmsnarl/gigantamax/front.4bpp.lz"); + const u32 gMonBackPic_GrimmsnarlGigantamax[] = INCBIN_U32("graphics/pokemon/grimmsnarl/gigantamax/back.4bpp.lz"); + const u32 gMonPalette_GrimmsnarlGigantamax[] = INCBIN_U32("graphics/pokemon/grimmsnarl/gigantamax/normal.gbapal.lz"); + const u32 gMonShinyPalette_GrimmsnarlGigantamax[] = INCBIN_U32("graphics/pokemon/grimmsnarl/gigantamax/shiny.gbapal.lz"); + const u8 gMonIcon_GrimmsnarlGigantamax[] = INCBIN_U8("graphics/pokemon/grimmsnarl/gigantamax/icon.4bpp"); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_IMPIDIMP + +#if P_FAMILY_MILCERY + const u32 gMonFrontPic_Milcery[] = INCBIN_U32("graphics/pokemon/milcery/front.4bpp.lz"); + const u32 gMonPalette_Milcery[] = INCBIN_U32("graphics/pokemon/milcery/normal.gbapal.lz"); + const u32 gMonBackPic_Milcery[] = INCBIN_U32("graphics/pokemon/milcery/back.4bpp.lz"); + const u32 gMonShinyPalette_Milcery[] = INCBIN_U32("graphics/pokemon/milcery/shiny.gbapal.lz"); + const u8 gMonIcon_Milcery[] = INCBIN_U8("graphics/pokemon/milcery/icon.4bpp"); + const u8 gMonFootprint_Milcery[] = INCBIN_U8("graphics/pokemon/milcery/footprint.1bpp"); + const u32 gMonFrontPic_Alcremie[] = INCBIN_U32("graphics/pokemon/alcremie/front.4bpp.lz"); + const u32 gMonBackPic_Alcremie[] = INCBIN_U32("graphics/pokemon/alcremie/back.4bpp.lz"); + const u32 gMonPalette_Alcremie[] = INCBIN_U32("graphics/pokemon/alcremie/normal.gbapal.lz"); + const u32 gMonShinyPalette_Alcremie[] = INCBIN_U32("graphics/pokemon/alcremie/shiny.gbapal.lz"); + + const u8 gMonIcon_AlcremieStrawberryVanillaCream[] = INCBIN_U8("graphics/pokemon/alcremie/icon.4bpp"); + //const u8 gMonIcon_AlcremieStrawberryRubyCream[] = INCBIN_U8("graphics/pokemon/alcremie/ruby_cream/icon.4bpp"); + //const u8 gMonIcon_AlcremieStrawberryMatchaCream[] = INCBIN_U8("graphics/pokemon/alcremie/matcha_cream/icon.4bpp"); + //const u8 gMonIcon_AlcremieStrawberryMintCream[] = INCBIN_U8("graphics/pokemon/alcremie/mint_cream/icon.4bpp"); + //const u8 gMonIcon_AlcremieStrawberryLemonCream[] = INCBIN_U8("graphics/pokemon/alcremie/lemon_cream/icon.4bpp"); + //const u8 gMonIcon_AlcremieStrawberrySaltedCream[] = INCBIN_U8("graphics/pokemon/alcremie/salted_cream/icon.4bpp"); + //const u8 gMonIcon_AlcremieStrawberryRubySwirl[] = INCBIN_U8("graphics/pokemon/alcremie/ruby_swirl/icon.4bpp"); + //const u8 gMonIcon_AlcremieStrawberryCaramelSwirl[] = INCBIN_U8("graphics/pokemon/alcremie/caramel_swirl/icon.4bpp"); + //const u8 gMonIcon_AlcremieStrawberryRainbowSwirl[] = INCBIN_U8("graphics/pokemon/alcremie/rainbow_swirl/icon.4bpp"); + + const u32 gMonFrontPic_AlcremieStrawberry[] = INCBIN_U32("graphics/pokemon/alcremie/strawberry/front.4bpp.lz"); + const u32 gMonPalette_AlcremieStrawberryVanillaCream[] = INCBIN_U32("graphics/pokemon/alcremie/strawberry/strawberry_default.gbapal.lz"); + const u32 gMonPalette_AlcremieStrawberryRubyCream[] = INCBIN_U32("graphics/pokemon/alcremie/strawberry/strawberry_ruby_cream.gbapal.lz"); + const u32 gMonPalette_AlcremieStrawberryMatchaCream[] = INCBIN_U32("graphics/pokemon/alcremie/strawberry/strawberry_matcha_cream.gbapal.lz"); + const u32 gMonPalette_AlcremieStrawberryMintCream[] = INCBIN_U32("graphics/pokemon/alcremie/strawberry/strawberry_mint_cream.gbapal.lz"); + const u32 gMonPalette_AlcremieStrawberryLemonCream[] = INCBIN_U32("graphics/pokemon/alcremie/strawberry/strawberry_lemon_cream.gbapal.lz"); + const u32 gMonPalette_AlcremieStrawberrySaltedCream[] = INCBIN_U32("graphics/pokemon/alcremie/strawberry/strawberry_salted_cream.gbapal.lz"); + const u32 gMonPalette_AlcremieStrawberryRubySwirl[] = INCBIN_U32("graphics/pokemon/alcremie/strawberry/strawberry_ruby_swirl.gbapal.lz"); + const u32 gMonPalette_AlcremieStrawberryCaramelSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/strawberry/strawberry_caramel_swirl.gbapal.lz"); + const u32 gMonPalette_AlcremieStrawberryRainbowSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/strawberry/strawberry_rainbow_swirl.gbapal.lz"); + const u32 gMonBackPic_AlcremieStrawberry[] = INCBIN_U32("graphics/pokemon/alcremie/strawberry/back.4bpp.lz"); + const u32 gMonShinyPalette_AlcremieStrawberry[] = INCBIN_U32("graphics/pokemon/alcremie/strawberry/strawberry_shiny.gbapal.lz"); + const u8 gMonFootprint_Alcremie[] = INCBIN_U8("graphics/pokemon/alcremie/footprint.1bpp"); + + const u32 gMonFrontPic_AlcremieBerry[] = INCBIN_U32("graphics/pokemon/alcremie/berry/front.4bpp.lz"); + const u32 gMonPalette_AlcremieBerryVanillaCream[] = INCBIN_U32("graphics/pokemon/alcremie/berry/berry_default.gbapal.lz"); + const u32 gMonPalette_AlcremieBerryRubyCream[] = INCBIN_U32("graphics/pokemon/alcremie/berry/berry_ruby_cream.gbapal.lz"); + const u32 gMonPalette_AlcremieBerryMatchaCream[] = INCBIN_U32("graphics/pokemon/alcremie/berry/berry_matcha_cream.gbapal.lz"); + const u32 gMonPalette_AlcremieBerryMintCream[] = INCBIN_U32("graphics/pokemon/alcremie/berry/berry_mint_cream.gbapal.lz"); + const u32 gMonPalette_AlcremieBerryLemonCream[] = INCBIN_U32("graphics/pokemon/alcremie/berry/berry_lemon_cream.gbapal.lz"); + const u32 gMonPalette_AlcremieBerrySaltedCream[] = INCBIN_U32("graphics/pokemon/alcremie/berry/berry_salted_cream.gbapal.lz"); + const u32 gMonPalette_AlcremieBerryRubySwirl[] = INCBIN_U32("graphics/pokemon/alcremie/berry/berry_ruby_swirl.gbapal.lz"); + const u32 gMonPalette_AlcremieBerryCaramelSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/berry/berry_caramel_swirl.gbapal.lz"); + const u32 gMonPalette_AlcremieBerryRainbowSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/berry/berry_rainbow_swirl.gbapal.lz"); + const u32 gMonBackPic_AlcremieBerry[] = INCBIN_U32("graphics/pokemon/alcremie/berry/back.4bpp.lz"); + const u32 gMonShinyPalette_AlcremieBerry[] = INCBIN_U32("graphics/pokemon/alcremie/berry/berry_shiny.gbapal.lz"); + + const u32 gMonFrontPic_AlcremieLove[] = INCBIN_U32("graphics/pokemon/alcremie/love/front.4bpp.lz"); + const u32 gMonPalette_AlcremieLoveVanillaCream[] = INCBIN_U32("graphics/pokemon/alcremie/love/love_default.gbapal.lz"); + const u32 gMonPalette_AlcremieLoveRubyCream[] = INCBIN_U32("graphics/pokemon/alcremie/love/love_ruby_cream.gbapal.lz"); + const u32 gMonPalette_AlcremieLoveMatchaCream[] = INCBIN_U32("graphics/pokemon/alcremie/love/love_matcha_cream.gbapal.lz"); + const u32 gMonPalette_AlcremieLoveMintCream[] = INCBIN_U32("graphics/pokemon/alcremie/love/love_mint_cream.gbapal.lz"); + const u32 gMonPalette_AlcremieLoveLemonCream[] = INCBIN_U32("graphics/pokemon/alcremie/love/love_lemon_cream.gbapal.lz"); + const u32 gMonPalette_AlcremieLoveSaltedCream[] = INCBIN_U32("graphics/pokemon/alcremie/love/love_salted_cream.gbapal.lz"); + const u32 gMonPalette_AlcremieLoveRubySwirl[] = INCBIN_U32("graphics/pokemon/alcremie/love/love_ruby_swirl.gbapal.lz"); + const u32 gMonPalette_AlcremieLoveCaramelSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/love/love_caramel_swirl.gbapal.lz"); + const u32 gMonPalette_AlcremieLoveRainbowSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/love/love_rainbow_swirl.gbapal.lz"); + const u32 gMonBackPic_AlcremieLove[] = INCBIN_U32("graphics/pokemon/alcremie/love/back.4bpp.lz"); + const u32 gMonShinyPalette_AlcremieLove[] = INCBIN_U32("graphics/pokemon/alcremie/love/love_shiny.gbapal.lz"); + + const u32 gMonFrontPic_AlcremieStar[] = INCBIN_U32("graphics/pokemon/alcremie/star/front.4bpp.lz"); + const u32 gMonPalette_AlcremieStarVanillaCream[] = INCBIN_U32("graphics/pokemon/alcremie/star/star_default.gbapal.lz"); + const u32 gMonPalette_AlcremieStarRubyCream[] = INCBIN_U32("graphics/pokemon/alcremie/star/star_ruby_cream.gbapal.lz"); + const u32 gMonPalette_AlcremieStarMatchaCream[] = INCBIN_U32("graphics/pokemon/alcremie/star/star_matcha_cream.gbapal.lz"); + const u32 gMonPalette_AlcremieStarMintCream[] = INCBIN_U32("graphics/pokemon/alcremie/star/star_mint_cream.gbapal.lz"); + const u32 gMonPalette_AlcremieStarLemonCream[] = INCBIN_U32("graphics/pokemon/alcremie/star/star_lemon_cream.gbapal.lz"); + const u32 gMonPalette_AlcremieStarSaltedCream[] = INCBIN_U32("graphics/pokemon/alcremie/star/star_salted_cream.gbapal.lz"); + const u32 gMonPalette_AlcremieStarRubySwirl[] = INCBIN_U32("graphics/pokemon/alcremie/star/star_ruby_swirl.gbapal.lz"); + const u32 gMonPalette_AlcremieStarCaramelSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/star/star_caramel_swirl.gbapal.lz"); + const u32 gMonPalette_AlcremieStarRainbowSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/star/star_rainbow_swirl.gbapal.lz"); + const u32 gMonBackPic_AlcremieStar[] = INCBIN_U32("graphics/pokemon/alcremie/star/back.4bpp.lz"); + const u32 gMonShinyPalette_AlcremieStar[] = INCBIN_U32("graphics/pokemon/alcremie/star/star_shiny.gbapal.lz"); + + const u32 gMonFrontPic_AlcremieClover[] = INCBIN_U32("graphics/pokemon/alcremie/clover/front.4bpp.lz"); + const u32 gMonPalette_AlcremieCloverVanillaCream[] = INCBIN_U32("graphics/pokemon/alcremie/clover/clover_default.gbapal.lz"); + const u32 gMonPalette_AlcremieCloverRubyCream[] = INCBIN_U32("graphics/pokemon/alcremie/clover/clover_ruby_cream.gbapal.lz"); + const u32 gMonPalette_AlcremieCloverMatchaCream[] = INCBIN_U32("graphics/pokemon/alcremie/clover/clover_matcha_cream.gbapal.lz"); + const u32 gMonPalette_AlcremieCloverMintCream[] = INCBIN_U32("graphics/pokemon/alcremie/clover/clover_mint_cream.gbapal.lz"); + const u32 gMonPalette_AlcremieCloverLemonCream[] = INCBIN_U32("graphics/pokemon/alcremie/clover/clover_lemon_cream.gbapal.lz"); + const u32 gMonPalette_AlcremieCloverSaltedCream[] = INCBIN_U32("graphics/pokemon/alcremie/clover/clover_salted_cream.gbapal.lz"); + const u32 gMonPalette_AlcremieCloverRubySwirl[] = INCBIN_U32("graphics/pokemon/alcremie/clover/clover_ruby_swirl.gbapal.lz"); + const u32 gMonPalette_AlcremieCloverCaramelSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/clover/clover_caramel_swirl.gbapal.lz"); + const u32 gMonPalette_AlcremieCloverRainbowSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/clover/clover_rainbow_swirl.gbapal.lz"); + const u32 gMonBackPic_AlcremieClover[] = INCBIN_U32("graphics/pokemon/alcremie/clover/back.4bpp.lz"); + const u32 gMonShinyPalette_AlcremieClover[] = INCBIN_U32("graphics/pokemon/alcremie/clover/clover_shiny.gbapal.lz"); + + const u32 gMonFrontPic_AlcremieFlower[] = INCBIN_U32("graphics/pokemon/alcremie/flower/front.4bpp.lz"); + const u32 gMonPalette_AlcremieFlowerVanillaCream[] = INCBIN_U32("graphics/pokemon/alcremie/flower/flower_default.gbapal.lz"); + const u32 gMonPalette_AlcremieFlowerRubyCream[] = INCBIN_U32("graphics/pokemon/alcremie/flower/flower_ruby_cream.gbapal.lz"); + const u32 gMonPalette_AlcremieFlowerMatchaCream[] = INCBIN_U32("graphics/pokemon/alcremie/flower/flower_matcha_cream.gbapal.lz"); + const u32 gMonPalette_AlcremieFlowerMintCream[] = INCBIN_U32("graphics/pokemon/alcremie/flower/flower_mint_cream.gbapal.lz"); + const u32 gMonPalette_AlcremieFlowerLemonCream[] = INCBIN_U32("graphics/pokemon/alcremie/flower/flower_lemon_cream.gbapal.lz"); + const u32 gMonPalette_AlcremieFlowerSaltedCream[] = INCBIN_U32("graphics/pokemon/alcremie/flower/flower_salted_cream.gbapal.lz"); + const u32 gMonPalette_AlcremieFlowerRubySwirl[] = INCBIN_U32("graphics/pokemon/alcremie/flower/flower_ruby_swirl.gbapal.lz"); + const u32 gMonPalette_AlcremieFlowerCaramelSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/flower/flower_caramel_swirl.gbapal.lz"); + const u32 gMonPalette_AlcremieFlowerRainbowSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/flower/flower_rainbow_swirl.gbapal.lz"); + const u32 gMonBackPic_AlcremieFlower[] = INCBIN_U32("graphics/pokemon/alcremie/flower/back.4bpp.lz"); + const u32 gMonShinyPalette_AlcremieFlower[] = INCBIN_U32("graphics/pokemon/alcremie/flower/flower_shiny.gbapal.lz"); + + const u32 gMonFrontPic_AlcremieRibbon[] = INCBIN_U32("graphics/pokemon/alcremie/ribbon/front.4bpp.lz"); + const u32 gMonPalette_AlcremieRibbonVanillaCream[] = INCBIN_U32("graphics/pokemon/alcremie/ribbon/ribbon_default.gbapal.lz"); + const u32 gMonPalette_AlcremieRibbonRubyCream[] = INCBIN_U32("graphics/pokemon/alcremie/ribbon/ribbon_ruby_cream.gbapal.lz"); + const u32 gMonPalette_AlcremieRibbonMatchaCream[] = INCBIN_U32("graphics/pokemon/alcremie/ribbon/ribbon_matcha_cream.gbapal.lz"); + const u32 gMonPalette_AlcremieRibbonMintCream[] = INCBIN_U32("graphics/pokemon/alcremie/ribbon/ribbon_mint_cream.gbapal.lz"); + const u32 gMonPalette_AlcremieRibbonLemonCream[] = INCBIN_U32("graphics/pokemon/alcremie/ribbon/ribbon_lemon_cream.gbapal.lz"); + const u32 gMonPalette_AlcremieRibbonSaltedCream[] = INCBIN_U32("graphics/pokemon/alcremie/ribbon/ribbon_salted_cream.gbapal.lz"); + const u32 gMonPalette_AlcremieRibbonRubySwirl[] = INCBIN_U32("graphics/pokemon/alcremie/ribbon/ribbon_ruby_swirl.gbapal.lz"); + const u32 gMonPalette_AlcremieRibbonCaramelSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/ribbon/ribbon_caramel_swirl.gbapal.lz"); + const u32 gMonPalette_AlcremieRibbonRainbowSwirl[] = INCBIN_U32("graphics/pokemon/alcremie/ribbon/ribbon_rainbow_swirl.gbapal.lz"); + const u32 gMonBackPic_AlcremieRibbon[] = INCBIN_U32("graphics/pokemon/alcremie/ribbon/back.4bpp.lz"); + const u32 gMonShinyPalette_AlcremieRibbon[] = INCBIN_U32("graphics/pokemon/alcremie/ribbon/ribbon_shiny.gbapal.lz"); + +#if P_GIGANTAMAX_FORMS + const u32 gMonFrontPic_AlcremieGigantamax[] = INCBIN_U32("graphics/pokemon/alcremie/gigantamax/front.4bpp.lz"); + const u32 gMonBackPic_AlcremieGigantamax[] = INCBIN_U32("graphics/pokemon/alcremie/gigantamax/back.4bpp.lz"); + const u32 gMonPalette_AlcremieGigantamax[] = INCBIN_U32("graphics/pokemon/alcremie/gigantamax/normal.gbapal.lz"); + const u32 gMonShinyPalette_AlcremieGigantamax[] = INCBIN_U32("graphics/pokemon/alcremie/gigantamax/shiny.gbapal.lz"); + const u8 gMonIcon_AlcremieGigantamax[] = INCBIN_U8("graphics/pokemon/alcremie/gigantamax/icon.4bpp"); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_MILCERY + +#if P_FAMILY_FALINKS + const u32 gMonFrontPic_Falinks[] = INCBIN_U32("graphics/pokemon/falinks/front.4bpp.lz"); + const u32 gMonPalette_Falinks[] = INCBIN_U32("graphics/pokemon/falinks/normal.gbapal.lz"); + const u32 gMonBackPic_Falinks[] = INCBIN_U32("graphics/pokemon/falinks/back.4bpp.lz"); + const u32 gMonShinyPalette_Falinks[] = INCBIN_U32("graphics/pokemon/falinks/shiny.gbapal.lz"); + const u8 gMonIcon_Falinks[] = INCBIN_U8("graphics/pokemon/falinks/icon.4bpp"); + const u8 gMonFootprint_Falinks[] = INCBIN_U8("graphics/pokemon/falinks/footprint.1bpp"); +#endif //P_FAMILY_FALINKS + +#if P_FAMILY_PINCURCHIN + const u32 gMonFrontPic_Pincurchin[] = INCBIN_U32("graphics/pokemon/pincurchin/anim_front.4bpp.lz"); + const u32 gMonPalette_Pincurchin[] = INCBIN_U32("graphics/pokemon/pincurchin/normal.gbapal.lz"); + const u32 gMonBackPic_Pincurchin[] = INCBIN_U32("graphics/pokemon/pincurchin/back.4bpp.lz"); + const u32 gMonShinyPalette_Pincurchin[] = INCBIN_U32("graphics/pokemon/pincurchin/shiny.gbapal.lz"); + const u8 gMonIcon_Pincurchin[] = INCBIN_U8("graphics/pokemon/pincurchin/icon.4bpp"); + const u8 gMonFootprint_Pincurchin[] = INCBIN_U8("graphics/pokemon/pincurchin/footprint.1bpp"); +#endif //P_FAMILY_PINCURCHIN + +#if P_FAMILY_SNOM + const u32 gMonFrontPic_Snom[] = INCBIN_U32("graphics/pokemon/snom/front.4bpp.lz"); + const u32 gMonPalette_Snom[] = INCBIN_U32("graphics/pokemon/snom/normal.gbapal.lz"); + const u32 gMonBackPic_Snom[] = INCBIN_U32("graphics/pokemon/snom/back.4bpp.lz"); + const u32 gMonShinyPalette_Snom[] = INCBIN_U32("graphics/pokemon/snom/shiny.gbapal.lz"); + const u8 gMonIcon_Snom[] = INCBIN_U8("graphics/pokemon/snom/icon.4bpp"); + const u8 gMonFootprint_Snom[] = INCBIN_U8("graphics/pokemon/snom/footprint.1bpp"); + + const u32 gMonFrontPic_Frosmoth[] = INCBIN_U32("graphics/pokemon/frosmoth/front.4bpp.lz"); + const u32 gMonPalette_Frosmoth[] = INCBIN_U32("graphics/pokemon/frosmoth/normal.gbapal.lz"); + const u32 gMonBackPic_Frosmoth[] = INCBIN_U32("graphics/pokemon/frosmoth/back.4bpp.lz"); + const u32 gMonShinyPalette_Frosmoth[] = INCBIN_U32("graphics/pokemon/frosmoth/shiny.gbapal.lz"); + const u8 gMonIcon_Frosmoth[] = INCBIN_U8("graphics/pokemon/frosmoth/icon.4bpp"); + const u8 gMonFootprint_Frosmoth[] = INCBIN_U8("graphics/pokemon/frosmoth/footprint.1bpp"); +#endif //P_FAMILY_SNOM + +#if P_FAMILY_STONJOURNER + const u32 gMonFrontPic_Stonjourner[] = INCBIN_U32("graphics/pokemon/stonjourner/front.4bpp.lz"); + const u32 gMonPalette_Stonjourner[] = INCBIN_U32("graphics/pokemon/stonjourner/normal.gbapal.lz"); + const u32 gMonBackPic_Stonjourner[] = INCBIN_U32("graphics/pokemon/stonjourner/back.4bpp.lz"); + const u32 gMonShinyPalette_Stonjourner[] = INCBIN_U32("graphics/pokemon/stonjourner/shiny.gbapal.lz"); + const u8 gMonIcon_Stonjourner[] = INCBIN_U8("graphics/pokemon/stonjourner/icon.4bpp"); + const u8 gMonFootprint_Stonjourner[] = INCBIN_U8("graphics/pokemon/stonjourner/footprint.1bpp"); +#endif //P_FAMILY_STONJOURNER + +#if P_FAMILY_EISCUE + const u32 gMonFrontPic_EiscueIceFace[] = INCBIN_U32("graphics/pokemon/eiscue/front.4bpp.lz"); + const u32 gMonPalette_EiscueIceFace[] = INCBIN_U32("graphics/pokemon/eiscue/normal.gbapal.lz"); + const u32 gMonBackPic_EiscueIceFace[] = INCBIN_U32("graphics/pokemon/eiscue/back.4bpp.lz"); + const u32 gMonShinyPalette_EiscueIceFace[] = INCBIN_U32("graphics/pokemon/eiscue/shiny.gbapal.lz"); + const u8 gMonIcon_EiscueIceFace[] = INCBIN_U8("graphics/pokemon/eiscue/icon.4bpp"); + const u8 gMonFootprint_Eiscue[] = INCBIN_U8("graphics/pokemon/eiscue/footprint.1bpp"); + + const u32 gMonFrontPic_EiscueNoiceFace[] = INCBIN_U32("graphics/pokemon/eiscue/noice_face/front.4bpp.lz"); + const u32 gMonPalette_EiscueNoiceFace[] = INCBIN_U32("graphics/pokemon/eiscue/noice_face/normal.gbapal.lz"); + const u32 gMonBackPic_EiscueNoiceFace[] = INCBIN_U32("graphics/pokemon/eiscue/noice_face/back.4bpp.lz"); + const u32 gMonShinyPalette_EiscueNoiceFace[] = INCBIN_U32("graphics/pokemon/eiscue/noice_face/shiny.gbapal.lz"); + const u8 gMonIcon_EiscueNoiceFace[] = INCBIN_U8("graphics/pokemon/eiscue/noice_face/icon.4bpp"); +#endif //P_FAMILY_EISCUE + +#if P_FAMILY_INDEEDEE + const u32 gMonFrontPic_IndeedeeMale[] = INCBIN_U32("graphics/pokemon/indeedee/front.4bpp.lz"); + const u32 gMonPalette_IndeedeeMale[] = INCBIN_U32("graphics/pokemon/indeedee/normal.gbapal.lz"); + const u32 gMonBackPic_IndeedeeMale[] = INCBIN_U32("graphics/pokemon/indeedee/back.4bpp.lz"); + const u32 gMonShinyPalette_IndeedeeMale[] = INCBIN_U32("graphics/pokemon/indeedee/shiny.gbapal.lz"); + const u8 gMonIcon_IndeedeeMale[] = INCBIN_U8("graphics/pokemon/indeedee/icon.4bpp"); + const u8 gMonFootprint_Indeedee[] = INCBIN_U8("graphics/pokemon/indeedee/footprint.1bpp"); + + const u32 gMonFrontPic_IndeedeeFemale[] = INCBIN_U32("graphics/pokemon/indeedee/female/front.4bpp.lz"); + const u32 gMonPalette_IndeedeeFemale[] = INCBIN_U32("graphics/pokemon/indeedee/female/normal.gbapal.lz"); + const u32 gMonBackPic_IndeedeeFemale[] = INCBIN_U32("graphics/pokemon/indeedee/female/back.4bpp.lz"); + const u32 gMonShinyPalette_IndeedeeFemale[] = INCBIN_U32("graphics/pokemon/indeedee/female/shiny.gbapal.lz"); + const u8 gMonIcon_IndeedeeFemale[] = INCBIN_U8("graphics/pokemon/indeedee/female/icon.4bpp"); +#endif //P_FAMILY_INDEEDEE + +#if P_FAMILY_MORPEKO + const u32 gMonFrontPic_MorpekoFullBelly[] = INCBIN_U32("graphics/pokemon/morpeko/front.4bpp.lz"); + const u32 gMonPalette_MorpekoFullBelly[] = INCBIN_U32("graphics/pokemon/morpeko/normal.gbapal.lz"); + const u32 gMonBackPic_MorpekoFullBelly[] = INCBIN_U32("graphics/pokemon/morpeko/back.4bpp.lz"); + const u32 gMonShinyPalette_MorpekoFullBelly[] = INCBIN_U32("graphics/pokemon/morpeko/shiny.gbapal.lz"); + const u8 gMonIcon_MorpekoFullBelly[] = INCBIN_U8("graphics/pokemon/morpeko/icon.4bpp"); + const u8 gMonFootprint_Morpeko[] = INCBIN_U8("graphics/pokemon/morpeko/footprint.1bpp"); + + const u32 gMonFrontPic_MorpekoHangry[] = INCBIN_U32("graphics/pokemon/morpeko/hangry/front.4bpp.lz"); + const u32 gMonPalette_MorpekoHangry[] = INCBIN_U32("graphics/pokemon/morpeko/hangry/normal.gbapal.lz"); + const u32 gMonBackPic_MorpekoHangry[] = INCBIN_U32("graphics/pokemon/morpeko/hangry/back.4bpp.lz"); + const u32 gMonShinyPalette_MorpekoHangry[] = INCBIN_U32("graphics/pokemon/morpeko/hangry/shiny.gbapal.lz"); + const u8 gMonIcon_MorpekoHangry[] = INCBIN_U8("graphics/pokemon/morpeko/hangry/icon.4bpp"); +#endif //P_FAMILY_MORPEKO + +#if P_FAMILY_CUFANT + const u32 gMonFrontPic_Cufant[] = INCBIN_U32("graphics/pokemon/cufant/front.4bpp.lz"); + const u32 gMonPalette_Cufant[] = INCBIN_U32("graphics/pokemon/cufant/normal.gbapal.lz"); + const u32 gMonBackPic_Cufant[] = INCBIN_U32("graphics/pokemon/cufant/back.4bpp.lz"); + const u32 gMonShinyPalette_Cufant[] = INCBIN_U32("graphics/pokemon/cufant/shiny.gbapal.lz"); + const u8 gMonIcon_Cufant[] = INCBIN_U8("graphics/pokemon/cufant/icon.4bpp"); + const u8 gMonFootprint_Cufant[] = INCBIN_U8("graphics/pokemon/cufant/footprint.1bpp"); + + const u32 gMonFrontPic_Copperajah[] = INCBIN_U32("graphics/pokemon/copperajah/front.4bpp.lz"); + const u32 gMonPalette_Copperajah[] = INCBIN_U32("graphics/pokemon/copperajah/normal.gbapal.lz"); + const u32 gMonBackPic_Copperajah[] = INCBIN_U32("graphics/pokemon/copperajah/back.4bpp.lz"); + const u32 gMonShinyPalette_Copperajah[] = INCBIN_U32("graphics/pokemon/copperajah/shiny.gbapal.lz"); + const u8 gMonIcon_Copperajah[] = INCBIN_U8("graphics/pokemon/copperajah/icon.4bpp"); + const u8 gMonFootprint_Copperajah[] = INCBIN_U8("graphics/pokemon/copperajah/footprint.1bpp"); + +#if P_GIGANTAMAX_FORMS + const u32 gMonFrontPic_CopperajahGigantamax[] = INCBIN_U32("graphics/pokemon/copperajah/gigantamax/front.4bpp.lz"); + const u32 gMonBackPic_CopperajahGigantamax[] = INCBIN_U32("graphics/pokemon/copperajah/gigantamax/back.4bpp.lz"); + const u32 gMonPalette_CopperajahGigantamax[] = INCBIN_U32("graphics/pokemon/copperajah/gigantamax/normal.gbapal.lz"); + const u32 gMonShinyPalette_CopperajahGigantamax[] = INCBIN_U32("graphics/pokemon/copperajah/gigantamax/shiny.gbapal.lz"); + const u8 gMonIcon_CopperajahGigantamax[] = INCBIN_U8("graphics/pokemon/copperajah/gigantamax/icon.4bpp"); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_CUFANT + +#if P_FAMILY_DRACOZOLT + const u32 gMonFrontPic_Dracozolt[] = INCBIN_U32("graphics/pokemon/dracozolt/front.4bpp.lz"); + const u32 gMonPalette_Dracozolt[] = INCBIN_U32("graphics/pokemon/dracozolt/normal.gbapal.lz"); + const u32 gMonBackPic_Dracozolt[] = INCBIN_U32("graphics/pokemon/dracozolt/back.4bpp.lz"); + const u32 gMonShinyPalette_Dracozolt[] = INCBIN_U32("graphics/pokemon/dracozolt/shiny.gbapal.lz"); + const u8 gMonIcon_Dracozolt[] = INCBIN_U8("graphics/pokemon/dracozolt/icon.4bpp"); + const u8 gMonFootprint_Dracozolt[] = INCBIN_U8("graphics/pokemon/dracozolt/footprint.1bpp"); +#endif //P_FAMILY_DRACOZOLT + +#if P_FAMILY_ARCTOZOLT + const u32 gMonFrontPic_Arctozolt[] = INCBIN_U32("graphics/pokemon/arctozolt/front.4bpp.lz"); + const u32 gMonPalette_Arctozolt[] = INCBIN_U32("graphics/pokemon/arctozolt/normal.gbapal.lz"); + const u32 gMonBackPic_Arctozolt[] = INCBIN_U32("graphics/pokemon/arctozolt/back.4bpp.lz"); + const u32 gMonShinyPalette_Arctozolt[] = INCBIN_U32("graphics/pokemon/arctozolt/shiny.gbapal.lz"); + const u8 gMonIcon_Arctozolt[] = INCBIN_U8("graphics/pokemon/arctozolt/icon.4bpp"); + const u8 gMonFootprint_Arctozolt[] = INCBIN_U8("graphics/pokemon/arctozolt/footprint.1bpp"); +#endif //P_FAMILY_ARCTOZOLT + +#if P_FAMILY_DRACOVISH + const u32 gMonFrontPic_Dracovish[] = INCBIN_U32("graphics/pokemon/dracovish/front.4bpp.lz"); + const u32 gMonPalette_Dracovish[] = INCBIN_U32("graphics/pokemon/dracovish/normal.gbapal.lz"); + const u32 gMonBackPic_Dracovish[] = INCBIN_U32("graphics/pokemon/dracovish/back.4bpp.lz"); + const u32 gMonShinyPalette_Dracovish[] = INCBIN_U32("graphics/pokemon/dracovish/shiny.gbapal.lz"); + const u8 gMonIcon_Dracovish[] = INCBIN_U8("graphics/pokemon/dracovish/icon.4bpp"); + const u8 gMonFootprint_Dracovish[] = INCBIN_U8("graphics/pokemon/dracovish/footprint.1bpp"); +#endif //P_FAMILY_DRACOVISH + +#if P_FAMILY_ARCTOVISH + const u32 gMonFrontPic_Arctovish[] = INCBIN_U32("graphics/pokemon/arctovish/front.4bpp.lz"); + const u32 gMonPalette_Arctovish[] = INCBIN_U32("graphics/pokemon/arctovish/normal.gbapal.lz"); + const u32 gMonBackPic_Arctovish[] = INCBIN_U32("graphics/pokemon/arctovish/back.4bpp.lz"); + const u32 gMonShinyPalette_Arctovish[] = INCBIN_U32("graphics/pokemon/arctovish/shiny.gbapal.lz"); + const u8 gMonIcon_Arctovish[] = INCBIN_U8("graphics/pokemon/arctovish/icon.4bpp"); + const u8 gMonFootprint_Arctovish[] = INCBIN_U8("graphics/pokemon/arctovish/footprint.1bpp"); +#endif //P_FAMILY_ARCTOVISH + +#if P_FAMILY_DURALUDON + const u32 gMonFrontPic_Duraludon[] = INCBIN_U32("graphics/pokemon/duraludon/front.4bpp.lz"); + const u32 gMonPalette_Duraludon[] = INCBIN_U32("graphics/pokemon/duraludon/normal.gbapal.lz"); + const u32 gMonBackPic_Duraludon[] = INCBIN_U32("graphics/pokemon/duraludon/back.4bpp.lz"); + const u32 gMonShinyPalette_Duraludon[] = INCBIN_U32("graphics/pokemon/duraludon/shiny.gbapal.lz"); + const u8 gMonIcon_Duraludon[] = INCBIN_U8("graphics/pokemon/duraludon/icon.4bpp"); + const u8 gMonFootprint_Duraludon[] = INCBIN_U8("graphics/pokemon/duraludon/footprint.1bpp"); + +#if P_GIGANTAMAX_FORMS + const u32 gMonFrontPic_DuraludonGigantamax[] = INCBIN_U32("graphics/pokemon/duraludon/gigantamax/front.4bpp.lz"); + const u32 gMonBackPic_DuraludonGigantamax[] = INCBIN_U32("graphics/pokemon/duraludon/gigantamax/back.4bpp.lz"); + const u32 gMonPalette_DuraludonGigantamax[] = INCBIN_U32("graphics/pokemon/duraludon/gigantamax/normal.gbapal.lz"); + const u32 gMonShinyPalette_DuraludonGigantamax[] = INCBIN_U32("graphics/pokemon/duraludon/gigantamax/shiny.gbapal.lz"); + const u8 gMonIcon_DuraludonGigantamax[] = INCBIN_U8("graphics/pokemon/duraludon/gigantamax/icon.4bpp"); +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_DURALUDON + +#if P_FAMILY_DREEPY + const u32 gMonFrontPic_Dreepy[] = INCBIN_U32("graphics/pokemon/dreepy/front.4bpp.lz"); + const u32 gMonPalette_Dreepy[] = INCBIN_U32("graphics/pokemon/dreepy/normal.gbapal.lz"); + const u32 gMonBackPic_Dreepy[] = INCBIN_U32("graphics/pokemon/dreepy/back.4bpp.lz"); + const u32 gMonShinyPalette_Dreepy[] = INCBIN_U32("graphics/pokemon/dreepy/shiny.gbapal.lz"); + const u8 gMonIcon_Dreepy[] = INCBIN_U8("graphics/pokemon/dreepy/icon.4bpp"); + const u8 gMonFootprint_Dreepy[] = INCBIN_U8("graphics/pokemon/dreepy/footprint.1bpp"); + + const u32 gMonFrontPic_Drakloak[] = INCBIN_U32("graphics/pokemon/drakloak/front.4bpp.lz"); + const u32 gMonPalette_Drakloak[] = INCBIN_U32("graphics/pokemon/drakloak/normal.gbapal.lz"); + const u32 gMonBackPic_Drakloak[] = INCBIN_U32("graphics/pokemon/drakloak/back.4bpp.lz"); + const u32 gMonShinyPalette_Drakloak[] = INCBIN_U32("graphics/pokemon/drakloak/shiny.gbapal.lz"); + const u8 gMonIcon_Drakloak[] = INCBIN_U8("graphics/pokemon/drakloak/icon.4bpp"); + const u8 gMonFootprint_Drakloak[] = INCBIN_U8("graphics/pokemon/drakloak/footprint.1bpp"); + + const u32 gMonFrontPic_Dragapult[] = INCBIN_U32("graphics/pokemon/dragapult/front.4bpp.lz"); + const u32 gMonPalette_Dragapult[] = INCBIN_U32("graphics/pokemon/dragapult/normal.gbapal.lz"); + const u32 gMonBackPic_Dragapult[] = INCBIN_U32("graphics/pokemon/dragapult/back.4bpp.lz"); + const u32 gMonShinyPalette_Dragapult[] = INCBIN_U32("graphics/pokemon/dragapult/shiny.gbapal.lz"); + const u8 gMonIcon_Dragapult[] = INCBIN_U8("graphics/pokemon/dragapult/icon.4bpp"); + const u8 gMonFootprint_Dragapult[] = INCBIN_U8("graphics/pokemon/dragapult/footprint.1bpp"); +#endif //P_FAMILY_DREEPY + +#if P_FAMILY_ZACIAN + const u32 gMonFrontPic_ZacianHeroOfManyBattles[] = INCBIN_U32("graphics/pokemon/zacian/front.4bpp.lz"); + const u32 gMonPalette_ZacianHeroOfManyBattles[] = INCBIN_U32("graphics/pokemon/zacian/normal.gbapal.lz"); + const u32 gMonBackPic_ZacianHeroOfManyBattles[] = INCBIN_U32("graphics/pokemon/zacian/back.4bpp.lz"); + const u32 gMonShinyPalette_ZacianHeroOfManyBattles[] = INCBIN_U32("graphics/pokemon/zacian/shiny.gbapal.lz"); + const u8 gMonIcon_ZacianHeroOfManyBattles[] = INCBIN_U8("graphics/pokemon/zacian/icon.4bpp"); + const u8 gMonFootprint_Zacian[] = INCBIN_U8("graphics/pokemon/zacian/footprint.1bpp"); + + const u32 gMonFrontPic_ZacianCrownedSword[] = INCBIN_U32("graphics/pokemon/zacian/crowned_sword/front.4bpp.lz"); + const u32 gMonPalette_ZacianCrownedSword[] = INCBIN_U32("graphics/pokemon/zacian/crowned_sword/normal.gbapal.lz"); + const u32 gMonBackPic_ZacianCrownedSword[] = INCBIN_U32("graphics/pokemon/zacian/crowned_sword/back.4bpp.lz"); + const u32 gMonShinyPalette_ZacianCrownedSword[] = INCBIN_U32("graphics/pokemon/zacian/crowned_sword/shiny.gbapal.lz"); + const u8 gMonIcon_ZacianCrownedSword[] = INCBIN_U8("graphics/pokemon/zacian/crowned_sword/icon.4bpp"); +#endif //P_FAMILY_ZACIAN + +#if P_FAMILY_ZAMAZENTA + const u32 gMonFrontPic_ZamazentaHeroOfManyBattles[] = INCBIN_U32("graphics/pokemon/zamazenta/front.4bpp.lz"); + const u32 gMonPalette_ZamazentaHeroOfManyBattles[] = INCBIN_U32("graphics/pokemon/zamazenta/normal.gbapal.lz"); + const u32 gMonBackPic_ZamazentaHeroOfManyBattles[] = INCBIN_U32("graphics/pokemon/zamazenta/back.4bpp.lz"); + const u32 gMonShinyPalette_ZamazentaHeroOfManyBattles[] = INCBIN_U32("graphics/pokemon/zamazenta/shiny.gbapal.lz"); + const u8 gMonIcon_ZamazentaHeroOfManyBattles[] = INCBIN_U8("graphics/pokemon/zamazenta/icon.4bpp"); + const u8 gMonFootprint_Zamazenta[] = INCBIN_U8("graphics/pokemon/zamazenta/footprint.1bpp"); + + const u32 gMonFrontPic_ZamazentaCrownedShield[] = INCBIN_U32("graphics/pokemon/zamazenta/crowned_shield/front.4bpp.lz"); + const u32 gMonPalette_ZamazentaCrownedShield[] = INCBIN_U32("graphics/pokemon/zamazenta/crowned_shield/normal.gbapal.lz"); + const u32 gMonBackPic_ZamazentaCrownedShield[] = INCBIN_U32("graphics/pokemon/zamazenta/crowned_shield/back.4bpp.lz"); + const u32 gMonShinyPalette_ZamazentaCrownedShield[] = INCBIN_U32("graphics/pokemon/zamazenta/crowned_shield/shiny.gbapal.lz"); + const u8 gMonIcon_ZamazentaCrownedShield[] = INCBIN_U8("graphics/pokemon/zamazenta/crowned_shield/icon.4bpp"); +#endif //P_FAMILY_ZAMAZENTA + +#if P_FAMILY_ETERNATUS + const u32 gMonFrontPic_Eternatus[] = INCBIN_U32("graphics/pokemon/eternatus/front.4bpp.lz"); + const u32 gMonPalette_Eternatus[] = INCBIN_U32("graphics/pokemon/eternatus/normal.gbapal.lz"); + const u32 gMonBackPic_Eternatus[] = INCBIN_U32("graphics/pokemon/eternatus/back.4bpp.lz"); + const u32 gMonShinyPalette_Eternatus[] = INCBIN_U32("graphics/pokemon/eternatus/shiny.gbapal.lz"); + const u8 gMonIcon_Eternatus[] = INCBIN_U8("graphics/pokemon/eternatus/icon.4bpp"); + const u8 gMonFootprint_Eternatus[] = INCBIN_U8("graphics/pokemon/eternatus/footprint.1bpp"); + + const u32 gMonFrontPic_EternatusEternamax[] = INCBIN_U32("graphics/pokemon/eternatus/eternamax/front.4bpp.lz"); + const u32 gMonPalette_EternatusEternamax[] = INCBIN_U32("graphics/pokemon/eternatus/eternamax/normal.gbapal.lz"); + const u32 gMonBackPic_EternatusEternamax[] = INCBIN_U32("graphics/pokemon/eternatus/eternamax/back.4bpp.lz"); + const u32 gMonShinyPalette_EternatusEternamax[] = INCBIN_U32("graphics/pokemon/eternatus/eternamax/shiny.gbapal.lz"); + const u8 gMonIcon_EternatusEternamax[] = INCBIN_U8("graphics/pokemon/eternatus/eternamax/icon.4bpp"); +#endif //P_FAMILY_ETERNATUS + +#if P_FAMILY_KUBFU + const u32 gMonFrontPic_Kubfu[] = INCBIN_U32("graphics/pokemon/kubfu/front.4bpp.lz"); + const u32 gMonPalette_Kubfu[] = INCBIN_U32("graphics/pokemon/kubfu/normal.gbapal.lz"); + const u32 gMonBackPic_Kubfu[] = INCBIN_U32("graphics/pokemon/kubfu/back.4bpp.lz"); + const u32 gMonShinyPalette_Kubfu[] = INCBIN_U32("graphics/pokemon/kubfu/shiny.gbapal.lz"); + const u8 gMonIcon_Kubfu[] = INCBIN_U8("graphics/pokemon/kubfu/icon.4bpp"); + const u8 gMonFootprint_Kubfu[] = INCBIN_U8("graphics/pokemon/kubfu/footprint.1bpp"); + + const u32 gMonFrontPic_UrshifuSingleStrikeStyle[] = INCBIN_U32("graphics/pokemon/urshifu/front.4bpp.lz"); + const u32 gMonPalette_UrshifuSingleStrikeStyle[] = INCBIN_U32("graphics/pokemon/urshifu/normal.gbapal.lz"); + const u32 gMonBackPic_UrshifuSingleStrikeStyle[] = INCBIN_U32("graphics/pokemon/urshifu/back.4bpp.lz"); + const u32 gMonShinyPalette_UrshifuSingleStrikeStyle[] = INCBIN_U32("graphics/pokemon/urshifu/shiny.gbapal.lz"); + const u8 gMonIcon_Urshifu[] = INCBIN_U8("graphics/pokemon/urshifu/icon.4bpp"); + const u8 gMonFootprint_Urshifu[] = INCBIN_U8("graphics/pokemon/urshifu/footprint.1bpp"); + + const u32 gMonFrontPic_UrshifuRapidStrikeStyle[] = INCBIN_U32("graphics/pokemon/urshifu/rapid_strike_style/front.4bpp.lz"); + const u32 gMonPalette_UrshifuRapidStrikeStyle[] = INCBIN_U32("graphics/pokemon/urshifu/rapid_strike_style/normal.gbapal.lz"); + const u32 gMonBackPic_UrshifuRapidStrikeStyle[] = INCBIN_U32("graphics/pokemon/urshifu/rapid_strike_style/back.4bpp.lz"); + const u32 gMonShinyPalette_UrshifuRapidStrikeStyle[] = INCBIN_U32("graphics/pokemon/urshifu/rapid_strike_style/shiny.gbapal.lz"); + + const u32 gMonFrontPic_UrshifuSingleStrikeStyleGigantamax[] = INCBIN_U32("graphics/pokemon/urshifu/single_strike_style_gigantamax/front.4bpp.lz"); + const u32 gMonBackPic_UrshifuSingleStrikeStyleGigantamax[] = INCBIN_U32("graphics/pokemon/urshifu/single_strike_style_gigantamax/back.4bpp.lz"); + const u32 gMonPalette_UrshifuSingleStrikeStyleGigantamax[] = INCBIN_U32("graphics/pokemon/urshifu/single_strike_style_gigantamax/normal.gbapal.lz"); + const u32 gMonShinyPalette_UrshifuSingleStrikeStyleGigantamax[] = INCBIN_U32("graphics/pokemon/urshifu/single_strike_style_gigantamax/shiny.gbapal.lz"); + const u8 gMonIcon_UrshifuSingleStrikeStyleGigantamax[] = INCBIN_U8("graphics/pokemon/urshifu/single_strike_style_gigantamax/icon.4bpp"); + + const u32 gMonFrontPic_UrshifuRapidStrikeStyleGigantamax[] = INCBIN_U32("graphics/pokemon/urshifu/rapid_strike_style_gigantamax/front.4bpp.lz"); + const u32 gMonBackPic_UrshifuRapidStrikeStyleGigantamax[] = INCBIN_U32("graphics/pokemon/urshifu/rapid_strike_style_gigantamax/back.4bpp.lz"); + const u32 gMonPalette_UrshifuRapidStrikeStyleGigantamax[] = INCBIN_U32("graphics/pokemon/urshifu/rapid_strike_style_gigantamax/normal.gbapal.lz"); + const u32 gMonShinyPalette_UrshifuRapidStrikeStyleGigantamax[] = INCBIN_U32("graphics/pokemon/urshifu/rapid_strike_style_gigantamax/shiny.gbapal.lz"); + const u8 gMonIcon_UrshifuRapidStrikeStyleGigantamax[] = INCBIN_U8("graphics/pokemon/urshifu/rapid_strike_style_gigantamax/icon.4bpp"); +#endif //P_FAMILY_KUBFU + +#if P_FAMILY_ZARUDE + const u32 gMonFrontPic_Zarude[] = INCBIN_U32("graphics/pokemon/zarude/front.4bpp.lz"); + const u32 gMonPalette_Zarude[] = INCBIN_U32("graphics/pokemon/zarude/normal.gbapal.lz"); + const u32 gMonBackPic_Zarude[] = INCBIN_U32("graphics/pokemon/zarude/back.4bpp.lz"); + const u32 gMonShinyPalette_Zarude[] = INCBIN_U32("graphics/pokemon/zarude/shiny.gbapal.lz"); + const u8 gMonIcon_Zarude[] = INCBIN_U8("graphics/pokemon/zarude/icon.4bpp"); + const u8 gMonFootprint_Zarude[] = INCBIN_U8("graphics/pokemon/zarude/footprint.1bpp"); + + const u32 gMonFrontPic_ZarudeDada[] = INCBIN_U32("graphics/pokemon/zarude/dada/front.4bpp.lz"); + const u32 gMonPalette_ZarudeDada[] = INCBIN_U32("graphics/pokemon/zarude/dada/normal.gbapal.lz"); + const u32 gMonBackPic_ZarudeDada[] = INCBIN_U32("graphics/pokemon/zarude/dada/back.4bpp.lz"); + const u32 gMonShinyPalette_ZarudeDada[] = INCBIN_U32("graphics/pokemon/zarude/dada/shiny.gbapal.lz"); + const u8 gMonIcon_ZarudeDada[] = INCBIN_U8("graphics/pokemon/zarude/dada/icon.4bpp"); +#endif //P_FAMILY_ZARUDE + +#if P_FAMILY_REGIELEKI + const u32 gMonFrontPic_Regieleki[] = INCBIN_U32("graphics/pokemon/regieleki/front.4bpp.lz"); + const u32 gMonPalette_Regieleki[] = INCBIN_U32("graphics/pokemon/regieleki/normal.gbapal.lz"); + const u32 gMonBackPic_Regieleki[] = INCBIN_U32("graphics/pokemon/regieleki/back.4bpp.lz"); + const u32 gMonShinyPalette_Regieleki[] = INCBIN_U32("graphics/pokemon/regieleki/shiny.gbapal.lz"); + const u8 gMonIcon_Regieleki[] = INCBIN_U8("graphics/pokemon/regieleki/icon.4bpp"); + const u8 gMonFootprint_Regieleki[] = INCBIN_U8("graphics/pokemon/regieleki/footprint.1bpp"); +#endif //P_FAMILY_REGIELEKI + +#if P_FAMILY_REGIDRAGO + const u32 gMonFrontPic_Regidrago[] = INCBIN_U32("graphics/pokemon/regidrago/front.4bpp.lz"); + const u32 gMonPalette_Regidrago[] = INCBIN_U32("graphics/pokemon/regidrago/normal.gbapal.lz"); + const u32 gMonBackPic_Regidrago[] = INCBIN_U32("graphics/pokemon/regidrago/back.4bpp.lz"); + const u32 gMonShinyPalette_Regidrago[] = INCBIN_U32("graphics/pokemon/regidrago/shiny.gbapal.lz"); + const u8 gMonIcon_Regidrago[] = INCBIN_U8("graphics/pokemon/regidrago/icon.4bpp"); + const u8 gMonFootprint_Regidrago[] = INCBIN_U8("graphics/pokemon/regidrago/footprint.1bpp"); +#endif //P_FAMILY_REGIDRAGO + +#if P_FAMILY_GLASTRIER + const u32 gMonFrontPic_Glastrier[] = INCBIN_U32("graphics/pokemon/glastrier/front.4bpp.lz"); + const u32 gMonPalette_Glastrier[] = INCBIN_U32("graphics/pokemon/glastrier/normal.gbapal.lz"); + const u32 gMonBackPic_Glastrier[] = INCBIN_U32("graphics/pokemon/glastrier/back.4bpp.lz"); + const u32 gMonShinyPalette_Glastrier[] = INCBIN_U32("graphics/pokemon/glastrier/shiny.gbapal.lz"); + const u8 gMonIcon_Glastrier[] = INCBIN_U8("graphics/pokemon/glastrier/icon.4bpp"); + const u8 gMonFootprint_Glastrier[] = INCBIN_U8("graphics/pokemon/glastrier/footprint.1bpp"); +#endif //P_FAMILY_GLASTRIER + +#if P_FAMILY_SPECTRIER + const u32 gMonFrontPic_Spectrier[] = INCBIN_U32("graphics/pokemon/spectrier/front.4bpp.lz"); + const u32 gMonPalette_Spectrier[] = INCBIN_U32("graphics/pokemon/spectrier/normal.gbapal.lz"); + const u32 gMonBackPic_Spectrier[] = INCBIN_U32("graphics/pokemon/spectrier/back.4bpp.lz"); + const u32 gMonShinyPalette_Spectrier[] = INCBIN_U32("graphics/pokemon/spectrier/shiny.gbapal.lz"); + const u8 gMonIcon_Spectrier[] = INCBIN_U8("graphics/pokemon/spectrier/icon.4bpp"); + const u8 gMonFootprint_Spectrier[] = INCBIN_U8("graphics/pokemon/spectrier/footprint.1bpp"); +#endif //P_FAMILY_SPECTRIER + +#if P_FAMILY_CALYREX + const u32 gMonFrontPic_Calyrex[] = INCBIN_U32("graphics/pokemon/calyrex/front.4bpp.lz"); + const u32 gMonPalette_Calyrex[] = INCBIN_U32("graphics/pokemon/calyrex/normal.gbapal.lz"); + const u32 gMonBackPic_Calyrex[] = INCBIN_U32("graphics/pokemon/calyrex/back.4bpp.lz"); + const u32 gMonShinyPalette_Calyrex[] = INCBIN_U32("graphics/pokemon/calyrex/shiny.gbapal.lz"); + const u8 gMonIcon_Calyrex[] = INCBIN_U8("graphics/pokemon/calyrex/icon.4bpp"); + const u8 gMonFootprint_Calyrex[] = INCBIN_U8("graphics/pokemon/calyrex/footprint.1bpp"); + +#if P_FUSION_FORMS + const u32 gMonFrontPic_CalyrexIceRider[] = INCBIN_U32("graphics/pokemon/calyrex/ice_rider/front.4bpp.lz"); + const u32 gMonPalette_CalyrexIceRider[] = INCBIN_U32("graphics/pokemon/calyrex/ice_rider/normal.gbapal.lz"); + const u32 gMonBackPic_CalyrexIceRider[] = INCBIN_U32("graphics/pokemon/calyrex/ice_rider/back.4bpp.lz"); + const u32 gMonShinyPalette_CalyrexIceRider[] = INCBIN_U32("graphics/pokemon/calyrex/ice_rider/shiny.gbapal.lz"); + const u8 gMonIcon_CalyrexIceRider[] = INCBIN_U8("graphics/pokemon/calyrex/ice_rider/icon.4bpp"); +#endif //P_FUSION_FORMS + +#if P_FUSION_FORMS + const u32 gMonFrontPic_CalyrexShadowRider[] = INCBIN_U32("graphics/pokemon/calyrex/shadow_rider/front.4bpp.lz"); + const u32 gMonPalette_CalyrexShadowRider[] = INCBIN_U32("graphics/pokemon/calyrex/shadow_rider/normal.gbapal.lz"); + const u32 gMonBackPic_CalyrexShadowRider[] = INCBIN_U32("graphics/pokemon/calyrex/shadow_rider/back.4bpp.lz"); + const u32 gMonShinyPalette_CalyrexShadowRider[] = INCBIN_U32("graphics/pokemon/calyrex/shadow_rider/shiny.gbapal.lz"); + const u8 gMonIcon_CalyrexShadowRider[] = INCBIN_U8("graphics/pokemon/calyrex/shadow_rider/icon.4bpp"); +#endif //P_FUSION_FORMS +#endif //P_FAMILY_CALYREX + +#if P_FAMILY_SPRIGATITO + const u32 gMonFrontPic_Sprigatito[] = INCBIN_U32("graphics/pokemon/sprigatito/front.4bpp.lz"); + const u32 gMonPalette_Sprigatito[] = INCBIN_U32("graphics/pokemon/sprigatito/normal.gbapal.lz"); + const u32 gMonBackPic_Sprigatito[] = INCBIN_U32("graphics/pokemon/sprigatito/back.4bpp.lz"); + const u32 gMonShinyPalette_Sprigatito[] = INCBIN_U32("graphics/pokemon/sprigatito/shiny.gbapal.lz"); + const u8 gMonIcon_Sprigatito[] = INCBIN_U8("graphics/pokemon/sprigatito/icon.4bpp"); + // const u8 gMonFootprint_Sprigatito[] = INCBIN_U8("graphics/pokemon/sprigatito/footprint.1bpp"); + + const u32 gMonFrontPic_Floragato[] = INCBIN_U32("graphics/pokemon/floragato/front.4bpp.lz"); + const u32 gMonPalette_Floragato[] = INCBIN_U32("graphics/pokemon/floragato/normal.gbapal.lz"); + const u32 gMonBackPic_Floragato[] = INCBIN_U32("graphics/pokemon/floragato/back.4bpp.lz"); + const u32 gMonShinyPalette_Floragato[] = INCBIN_U32("graphics/pokemon/floragato/shiny.gbapal.lz"); + const u8 gMonIcon_Floragato[] = INCBIN_U8("graphics/pokemon/floragato/icon.4bpp"); + // const u8 gMonFootprint_Floragato[] = INCBIN_U8("graphics/pokemon/floragato/footprint.1bpp"); + + const u32 gMonFrontPic_Meowscarada[] = INCBIN_U32("graphics/pokemon/meowscarada/front.4bpp.lz"); + const u32 gMonPalette_Meowscarada[] = INCBIN_U32("graphics/pokemon/meowscarada/normal.gbapal.lz"); + const u32 gMonBackPic_Meowscarada[] = INCBIN_U32("graphics/pokemon/meowscarada/back.4bpp.lz"); + const u32 gMonShinyPalette_Meowscarada[] = INCBIN_U32("graphics/pokemon/meowscarada/shiny.gbapal.lz"); + const u8 gMonIcon_Meowscarada[] = INCBIN_U8("graphics/pokemon/meowscarada/icon.4bpp"); + // const u8 gMonFootprint_Meowscarada[] = INCBIN_U8("graphics/pokemon/meowscarada/footprint.1bpp"); +#endif //P_FAMILY_SPRIGATITO + +#if P_FAMILY_FUECOCO + const u32 gMonFrontPic_Fuecoco[] = INCBIN_U32("graphics/pokemon/fuecoco/front.4bpp.lz"); + const u32 gMonPalette_Fuecoco[] = INCBIN_U32("graphics/pokemon/fuecoco/normal.gbapal.lz"); + const u32 gMonBackPic_Fuecoco[] = INCBIN_U32("graphics/pokemon/fuecoco/back.4bpp.lz"); + const u32 gMonShinyPalette_Fuecoco[] = INCBIN_U32("graphics/pokemon/fuecoco/shiny.gbapal.lz"); + const u8 gMonIcon_Fuecoco[] = INCBIN_U8("graphics/pokemon/fuecoco/icon.4bpp"); + // const u8 gMonFootprint_Fuecoco[] = INCBIN_U8("graphics/pokemon/fuecoco/footprint.1bpp"); + + const u32 gMonFrontPic_Crocalor[] = INCBIN_U32("graphics/pokemon/crocalor/front.4bpp.lz"); + const u32 gMonPalette_Crocalor[] = INCBIN_U32("graphics/pokemon/crocalor/normal.gbapal.lz"); + const u32 gMonBackPic_Crocalor[] = INCBIN_U32("graphics/pokemon/crocalor/back.4bpp.lz"); + const u32 gMonShinyPalette_Crocalor[] = INCBIN_U32("graphics/pokemon/crocalor/shiny.gbapal.lz"); + const u8 gMonIcon_Crocalor[] = INCBIN_U8("graphics/pokemon/crocalor/icon.4bpp"); + // const u8 gMonFootprint_Crocalor[] = INCBIN_U8("graphics/pokemon/crocalor/footprint.1bpp"); + + const u32 gMonFrontPic_Skeledirge[] = INCBIN_U32("graphics/pokemon/skeledirge/front.4bpp.lz"); + const u32 gMonPalette_Skeledirge[] = INCBIN_U32("graphics/pokemon/skeledirge/normal.gbapal.lz"); + const u32 gMonBackPic_Skeledirge[] = INCBIN_U32("graphics/pokemon/skeledirge/back.4bpp.lz"); + const u32 gMonShinyPalette_Skeledirge[] = INCBIN_U32("graphics/pokemon/skeledirge/shiny.gbapal.lz"); + const u8 gMonIcon_Skeledirge[] = INCBIN_U8("graphics/pokemon/skeledirge/icon.4bpp"); + // const u8 gMonFootprint_Skeledirge[] = INCBIN_U8("graphics/pokemon/skeledirge/footprint.1bpp"); +#endif //P_FAMILY_FUECOCO + +#if P_FAMILY_QUAXLY + const u32 gMonFrontPic_Quaxly[] = INCBIN_U32("graphics/pokemon/quaxly/front.4bpp.lz"); + const u32 gMonPalette_Quaxly[] = INCBIN_U32("graphics/pokemon/quaxly/normal.gbapal.lz"); + const u32 gMonBackPic_Quaxly[] = INCBIN_U32("graphics/pokemon/quaxly/back.4bpp.lz"); + const u32 gMonShinyPalette_Quaxly[] = INCBIN_U32("graphics/pokemon/quaxly/shiny.gbapal.lz"); + const u8 gMonIcon_Quaxly[] = INCBIN_U8("graphics/pokemon/quaxly/icon.4bpp"); + // const u8 gMonFootprint_Quaxly[] = INCBIN_U8("graphics/pokemon/quaxly/footprint.1bpp"); + + const u32 gMonFrontPic_Quaxwell[] = INCBIN_U32("graphics/pokemon/quaxwell/front.4bpp.lz"); + const u32 gMonPalette_Quaxwell[] = INCBIN_U32("graphics/pokemon/quaxwell/normal.gbapal.lz"); + const u32 gMonBackPic_Quaxwell[] = INCBIN_U32("graphics/pokemon/quaxwell/back.4bpp.lz"); + const u32 gMonShinyPalette_Quaxwell[] = INCBIN_U32("graphics/pokemon/quaxwell/shiny.gbapal.lz"); + const u8 gMonIcon_Quaxwell[] = INCBIN_U8("graphics/pokemon/quaxwell/icon.4bpp"); + // const u8 gMonFootprint_Quaxwell[] = INCBIN_U8("graphics/pokemon/quaxwell/footprint.1bpp"); + + const u32 gMonFrontPic_Quaquaval[] = INCBIN_U32("graphics/pokemon/quaquaval/front.4bpp.lz"); + const u32 gMonPalette_Quaquaval[] = INCBIN_U32("graphics/pokemon/quaquaval/normal.gbapal.lz"); + const u32 gMonBackPic_Quaquaval[] = INCBIN_U32("graphics/pokemon/quaquaval/back.4bpp.lz"); + const u32 gMonShinyPalette_Quaquaval[] = INCBIN_U32("graphics/pokemon/quaquaval/shiny.gbapal.lz"); + const u8 gMonIcon_Quaquaval[] = INCBIN_U8("graphics/pokemon/quaquaval/icon.4bpp"); + // const u8 gMonFootprint_Quaquaval[] = INCBIN_U8("graphics/pokemon/quaquaval/footprint.1bpp"); +#endif //P_FAMILY_QUAXLY + +#if P_FAMILY_LECHONK + const u32 gMonFrontPic_Lechonk[] = INCBIN_U32("graphics/pokemon/lechonk/front.4bpp.lz"); + const u32 gMonPalette_Lechonk[] = INCBIN_U32("graphics/pokemon/lechonk/normal.gbapal.lz"); + const u32 gMonBackPic_Lechonk[] = INCBIN_U32("graphics/pokemon/lechonk/back.4bpp.lz"); + const u32 gMonShinyPalette_Lechonk[] = INCBIN_U32("graphics/pokemon/lechonk/shiny.gbapal.lz"); + const u8 gMonIcon_Lechonk[] = INCBIN_U8("graphics/pokemon/lechonk/icon.4bpp"); + // const u8 gMonFootprint_Lechonk[] = INCBIN_U8("graphics/pokemon/lechonk/footprint.1bpp"); + + const u32 gMonFrontPic_OinkologneMale[] = INCBIN_U32("graphics/pokemon/oinkologne/front.4bpp.lz"); + const u32 gMonPalette_OinkologneMale[] = INCBIN_U32("graphics/pokemon/oinkologne/normal.gbapal.lz"); + const u32 gMonBackPic_OinkologneMale[] = INCBIN_U32("graphics/pokemon/oinkologne/back.4bpp.lz"); + const u32 gMonShinyPalette_OinkologneMale[] = INCBIN_U32("graphics/pokemon/oinkologne/shiny.gbapal.lz"); + const u8 gMonIcon_OinkologneMale[] = INCBIN_U8("graphics/pokemon/oinkologne/icon.4bpp"); + // const u8 gMonFootprint_Oinkologne[] = INCBIN_U8("graphics/pokemon/oinkologne/footprint.1bpp"); + + const u32 gMonFrontPic_OinkologneFemale[] = INCBIN_U32("graphics/pokemon/oinkologne/female/front.4bpp.lz"); + const u32 gMonPalette_OinkologneFemale[] = INCBIN_U32("graphics/pokemon/oinkologne/female/normal.gbapal.lz"); + const u32 gMonBackPic_OinkologneFemale[] = INCBIN_U32("graphics/pokemon/oinkologne/female/back.4bpp.lz"); + const u32 gMonShinyPalette_OinkologneFemale[] = INCBIN_U32("graphics/pokemon/oinkologne/female/shiny.gbapal.lz"); + const u8 gMonIcon_OinkologneFemale[] = INCBIN_U8("graphics/pokemon/oinkologne/female/icon.4bpp"); +#endif //P_FAMILY_LECHONK + +#if P_FAMILY_TAROUNTULA + const u32 gMonFrontPic_Tarountula[] = INCBIN_U32("graphics/pokemon/tarountula/front.4bpp.lz"); + const u32 gMonPalette_Tarountula[] = INCBIN_U32("graphics/pokemon/tarountula/normal.gbapal.lz"); + const u32 gMonBackPic_Tarountula[] = INCBIN_U32("graphics/pokemon/tarountula/back.4bpp.lz"); + const u32 gMonShinyPalette_Tarountula[] = INCBIN_U32("graphics/pokemon/tarountula/shiny.gbapal.lz"); + const u8 gMonIcon_Tarountula[] = INCBIN_U8("graphics/pokemon/tarountula/icon.4bpp"); + // const u8 gMonFootprint_Tarountula[] = INCBIN_U8("graphics/pokemon/tarountula/footprint.1bpp"); + + const u32 gMonFrontPic_Spidops[] = INCBIN_U32("graphics/pokemon/spidops/front.4bpp.lz"); + const u32 gMonPalette_Spidops[] = INCBIN_U32("graphics/pokemon/spidops/normal.gbapal.lz"); + const u32 gMonBackPic_Spidops[] = INCBIN_U32("graphics/pokemon/spidops/back.4bpp.lz"); + const u32 gMonShinyPalette_Spidops[] = INCBIN_U32("graphics/pokemon/spidops/shiny.gbapal.lz"); + const u8 gMonIcon_Spidops[] = INCBIN_U8("graphics/pokemon/spidops/icon.4bpp"); + // const u8 gMonFootprint_Spidops[] = INCBIN_U8("graphics/pokemon/spidops/footprint.1bpp"); +#endif //P_FAMILY_TAROUNTULA + +#if P_FAMILY_NYMBLE + const u32 gMonFrontPic_Nymble[] = INCBIN_U32("graphics/pokemon/nymble/front.4bpp.lz"); + const u32 gMonPalette_Nymble[] = INCBIN_U32("graphics/pokemon/nymble/normal.gbapal.lz"); + const u32 gMonBackPic_Nymble[] = INCBIN_U32("graphics/pokemon/nymble/back.4bpp.lz"); + const u32 gMonShinyPalette_Nymble[] = INCBIN_U32("graphics/pokemon/nymble/shiny.gbapal.lz"); + const u8 gMonIcon_Nymble[] = INCBIN_U8("graphics/pokemon/nymble/icon.4bpp"); + // const u8 gMonFootprint_Nymble[] = INCBIN_U8("graphics/pokemon/nymble/footprint.1bpp"); + + const u32 gMonFrontPic_Lokix[] = INCBIN_U32("graphics/pokemon/lokix/front.4bpp.lz"); + const u32 gMonPalette_Lokix[] = INCBIN_U32("graphics/pokemon/lokix/normal.gbapal.lz"); + const u32 gMonBackPic_Lokix[] = INCBIN_U32("graphics/pokemon/lokix/back.4bpp.lz"); + const u32 gMonShinyPalette_Lokix[] = INCBIN_U32("graphics/pokemon/lokix/shiny.gbapal.lz"); + const u8 gMonIcon_Lokix[] = INCBIN_U8("graphics/pokemon/lokix/icon.4bpp"); + // const u8 gMonFootprint_Lokix[] = INCBIN_U8("graphics/pokemon/lokix/footprint.1bpp"); +#endif //P_FAMILY_NYMBLE + +#if P_FAMILY_PAWMI + const u32 gMonFrontPic_Pawmi[] = INCBIN_U32("graphics/pokemon/pawmi/front.4bpp.lz"); + const u32 gMonPalette_Pawmi[] = INCBIN_U32("graphics/pokemon/pawmi/normal.gbapal.lz"); + const u32 gMonBackPic_Pawmi[] = INCBIN_U32("graphics/pokemon/pawmi/back.4bpp.lz"); + const u32 gMonShinyPalette_Pawmi[] = INCBIN_U32("graphics/pokemon/pawmi/shiny.gbapal.lz"); + const u8 gMonIcon_Pawmi[] = INCBIN_U8("graphics/pokemon/pawmi/icon.4bpp"); + // const u8 gMonFootprint_Pawmi[] = INCBIN_U8("graphics/pokemon/pawmi/footprint.1bpp"); + + const u32 gMonFrontPic_Pawmo[] = INCBIN_U32("graphics/pokemon/pawmo/front.4bpp.lz"); + const u32 gMonPalette_Pawmo[] = INCBIN_U32("graphics/pokemon/pawmo/normal.gbapal.lz"); + const u32 gMonBackPic_Pawmo[] = INCBIN_U32("graphics/pokemon/pawmo/back.4bpp.lz"); + const u32 gMonShinyPalette_Pawmo[] = INCBIN_U32("graphics/pokemon/pawmo/shiny.gbapal.lz"); + const u8 gMonIcon_Pawmo[] = INCBIN_U8("graphics/pokemon/pawmo/icon.4bpp"); + // const u8 gMonFootprint_Pawmo[] = INCBIN_U8("graphics/pokemon/pawmo/footprint.1bpp"); + + const u32 gMonFrontPic_Pawmot[] = INCBIN_U32("graphics/pokemon/pawmot/front.4bpp.lz"); + const u32 gMonPalette_Pawmot[] = INCBIN_U32("graphics/pokemon/pawmot/normal.gbapal.lz"); + const u32 gMonBackPic_Pawmot[] = INCBIN_U32("graphics/pokemon/pawmot/back.4bpp.lz"); + const u32 gMonShinyPalette_Pawmot[] = INCBIN_U32("graphics/pokemon/pawmot/shiny.gbapal.lz"); + const u8 gMonIcon_Pawmot[] = INCBIN_U8("graphics/pokemon/pawmot/icon.4bpp"); + // const u8 gMonFootprint_Pawmot[] = INCBIN_U8("graphics/pokemon/pawmot/footprint.1bpp"); +#endif //P_FAMILY_PAWMI + +#if P_FAMILY_TANDEMAUS + const u32 gMonFrontPic_Tandemaus[] = INCBIN_U32("graphics/pokemon/tandemaus/front.4bpp.lz"); + const u32 gMonPalette_Tandemaus[] = INCBIN_U32("graphics/pokemon/tandemaus/normal.gbapal.lz"); + const u32 gMonBackPic_Tandemaus[] = INCBIN_U32("graphics/pokemon/tandemaus/back.4bpp.lz"); + const u32 gMonShinyPalette_Tandemaus[] = INCBIN_U32("graphics/pokemon/tandemaus/shiny.gbapal.lz"); + const u8 gMonIcon_Tandemaus[] = INCBIN_U8("graphics/pokemon/tandemaus/icon.4bpp"); + // const u8 gMonFootprint_Tandemaus[] = INCBIN_U8("graphics/pokemon/tandemaus/footprint.1bpp"); + + const u32 gMonPalette_Maushold[] = INCBIN_U32("graphics/pokemon/maushold/normal.gbapal.lz"); + const u32 gMonShinyPalette_Maushold[] = INCBIN_U32("graphics/pokemon/maushold/shiny.gbapal.lz"); + // const u8 gMonFootprint_Maushold[] = INCBIN_U8("graphics/pokemon/maushold/footprint.1bpp"); + + const u32 gMonFrontPic_MausholdFamilyOfThree[] = INCBIN_U32("graphics/pokemon/maushold/front.4bpp.lz"); + const u32 gMonBackPic_MausholdFamilyOfThree[] = INCBIN_U32("graphics/pokemon/maushold/back.4bpp.lz"); + const u8 gMonIcon_MausholdFamilyOfThree[] = INCBIN_U8("graphics/pokemon/maushold/icon.4bpp"); + + const u32 gMonFrontPic_MausholdFamilyOfFour[] = INCBIN_U32("graphics/pokemon/maushold/four/front.4bpp.lz"); + const u32 gMonBackPic_MausholdFamilyOfFour[] = INCBIN_U32("graphics/pokemon/maushold/four/back.4bpp.lz"); + const u8 gMonIcon_MausholdFamilyOfFour[] = INCBIN_U8("graphics/pokemon/maushold/four/icon.4bpp"); +#endif //P_FAMILY_TANDEMAUS + +#if P_FAMILY_FIDOUGH + const u32 gMonFrontPic_Fidough[] = INCBIN_U32("graphics/pokemon/fidough/front.4bpp.lz"); + const u32 gMonPalette_Fidough[] = INCBIN_U32("graphics/pokemon/fidough/normal.gbapal.lz"); + const u32 gMonBackPic_Fidough[] = INCBIN_U32("graphics/pokemon/fidough/back.4bpp.lz"); + const u32 gMonShinyPalette_Fidough[] = INCBIN_U32("graphics/pokemon/fidough/shiny.gbapal.lz"); + const u8 gMonIcon_Fidough[] = INCBIN_U8("graphics/pokemon/fidough/icon.4bpp"); + // const u8 gMonFootprint_Fidough[] = INCBIN_U8("graphics/pokemon/fidough/footprint.1bpp"); + + const u32 gMonFrontPic_Dachsbun[] = INCBIN_U32("graphics/pokemon/dachsbun/front.4bpp.lz"); + const u32 gMonPalette_Dachsbun[] = INCBIN_U32("graphics/pokemon/dachsbun/normal.gbapal.lz"); + const u32 gMonBackPic_Dachsbun[] = INCBIN_U32("graphics/pokemon/dachsbun/back.4bpp.lz"); + const u32 gMonShinyPalette_Dachsbun[] = INCBIN_U32("graphics/pokemon/dachsbun/shiny.gbapal.lz"); + const u8 gMonIcon_Dachsbun[] = INCBIN_U8("graphics/pokemon/dachsbun/icon.4bpp"); + // const u8 gMonFootprint_Dachsbun[] = INCBIN_U8("graphics/pokemon/dachsbun/footprint.1bpp"); +#endif //P_FAMILY_FIDOUGH + +#if P_FAMILY_SMOLIV + const u32 gMonFrontPic_Smoliv[] = INCBIN_U32("graphics/pokemon/smoliv/front.4bpp.lz"); + const u32 gMonPalette_Smoliv[] = INCBIN_U32("graphics/pokemon/smoliv/normal.gbapal.lz"); + const u32 gMonBackPic_Smoliv[] = INCBIN_U32("graphics/pokemon/smoliv/back.4bpp.lz"); + const u32 gMonShinyPalette_Smoliv[] = INCBIN_U32("graphics/pokemon/smoliv/shiny.gbapal.lz"); + const u8 gMonIcon_Smoliv[] = INCBIN_U8("graphics/pokemon/smoliv/icon.4bpp"); + // const u8 gMonFootprint_Smoliv[] = INCBIN_U8("graphics/pokemon/smoliv/footprint.1bpp"); + + const u32 gMonFrontPic_Dolliv[] = INCBIN_U32("graphics/pokemon/dolliv/front.4bpp.lz"); + const u32 gMonPalette_Dolliv[] = INCBIN_U32("graphics/pokemon/dolliv/normal.gbapal.lz"); + const u32 gMonBackPic_Dolliv[] = INCBIN_U32("graphics/pokemon/dolliv/back.4bpp.lz"); + const u32 gMonShinyPalette_Dolliv[] = INCBIN_U32("graphics/pokemon/dolliv/shiny.gbapal.lz"); + const u8 gMonIcon_Dolliv[] = INCBIN_U8("graphics/pokemon/dolliv/icon.4bpp"); + // const u8 gMonFootprint_Dolliv[] = INCBIN_U8("graphics/pokemon/dolliv/footprint.1bpp"); + + const u32 gMonFrontPic_Arboliva[] = INCBIN_U32("graphics/pokemon/arboliva/front.4bpp.lz"); + const u32 gMonPalette_Arboliva[] = INCBIN_U32("graphics/pokemon/arboliva/normal.gbapal.lz"); + const u32 gMonBackPic_Arboliva[] = INCBIN_U32("graphics/pokemon/arboliva/back.4bpp.lz"); + const u32 gMonShinyPalette_Arboliva[] = INCBIN_U32("graphics/pokemon/arboliva/shiny.gbapal.lz"); + const u8 gMonIcon_Arboliva[] = INCBIN_U8("graphics/pokemon/arboliva/icon.4bpp"); + // const u8 gMonFootprint_Arboliva[] = INCBIN_U8("graphics/pokemon/arboliva/footprint.1bpp"); +#endif //P_FAMILY_SMOLIV + +#if P_FAMILY_SQUAWKABILLY + const u32 gMonFrontPic_Squawkabilly[] = INCBIN_U32("graphics/pokemon/squawkabilly/front.4bpp.lz"); + const u32 gMonBackPic_Squawkabilly[] = INCBIN_U32("graphics/pokemon/squawkabilly/back.4bpp.lz"); + // const u8 gMonFootprint_Squawkabilly[] = INCBIN_U8("graphics/pokemon/squawkabilly/footprint.1bpp"); + + const u32 gMonPalette_SquawkabillyGreenPlumage[] = INCBIN_U32("graphics/pokemon/squawkabilly/green_plumage/normal.gbapal.lz"); + const u32 gMonShinyPalette_SquawkabillyGreenPlumage[] = INCBIN_U32("graphics/pokemon/squawkabilly/green_plumage/shiny.gbapal.lz"); + const u8 gMonIcon_SquawkabillyGreenPlumage[] = INCBIN_U8("graphics/pokemon/squawkabilly/green_plumage/icon.4bpp"); + + const u32 gMonPalette_SquawkabillyBluePlumage[] = INCBIN_U32("graphics/pokemon/squawkabilly/blue_plumage/normal.gbapal.lz"); + const u32 gMonShinyPalette_SquawkabillyBluePlumage[] = INCBIN_U32("graphics/pokemon/squawkabilly/blue_plumage/shiny.gbapal.lz"); + const u8 gMonIcon_SquawkabillyBluePlumage[] = INCBIN_U8("graphics/pokemon/squawkabilly/blue_plumage/icon.4bpp"); + + const u32 gMonPalette_SquawkabillyYellowPlumage[] = INCBIN_U32("graphics/pokemon/squawkabilly/yellow_plumage/normal.gbapal.lz"); + const u32 gMonShinyPalette_SquawkabillyYellowPlumage[] = INCBIN_U32("graphics/pokemon/squawkabilly/yellow_plumage/shiny.gbapal.lz"); + const u8 gMonIcon_SquawkabillyYellowPlumage[] = INCBIN_U8("graphics/pokemon/squawkabilly/yellow_plumage/icon.4bpp"); + + const u32 gMonPalette_SquawkabillyWhitePlumage[] = INCBIN_U32("graphics/pokemon/squawkabilly/white_plumage/normal.gbapal.lz"); + const u32 gMonShinyPalette_SquawkabillyWhitePlumage[] = INCBIN_U32("graphics/pokemon/squawkabilly/white_plumage/shiny.gbapal.lz"); + const u8 gMonIcon_SquawkabillyWhitePlumage[] = INCBIN_U8("graphics/pokemon/squawkabilly/white_plumage/icon.4bpp"); +#endif //P_FAMILY_SQUAWKABILLY + +#if P_FAMILY_NACLI + const u32 gMonFrontPic_Nacli[] = INCBIN_U32("graphics/pokemon/nacli/front.4bpp.lz"); + const u32 gMonPalette_Nacli[] = INCBIN_U32("graphics/pokemon/nacli/normal.gbapal.lz"); + const u32 gMonBackPic_Nacli[] = INCBIN_U32("graphics/pokemon/nacli/back.4bpp.lz"); + const u32 gMonShinyPalette_Nacli[] = INCBIN_U32("graphics/pokemon/nacli/shiny.gbapal.lz"); + const u8 gMonIcon_Nacli[] = INCBIN_U8("graphics/pokemon/nacli/icon.4bpp"); + // const u8 gMonFootprint_Nacli[] = INCBIN_U8("graphics/pokemon/nacli/footprint.1bpp"); + + const u32 gMonFrontPic_Naclstack[] = INCBIN_U32("graphics/pokemon/naclstack/front.4bpp.lz"); + const u32 gMonPalette_Naclstack[] = INCBIN_U32("graphics/pokemon/naclstack/normal.gbapal.lz"); + const u32 gMonBackPic_Naclstack[] = INCBIN_U32("graphics/pokemon/naclstack/back.4bpp.lz"); + const u32 gMonShinyPalette_Naclstack[] = INCBIN_U32("graphics/pokemon/naclstack/shiny.gbapal.lz"); + const u8 gMonIcon_Naclstack[] = INCBIN_U8("graphics/pokemon/naclstack/icon.4bpp"); + // const u8 gMonFootprint_Naclstack[] = INCBIN_U8("graphics/pokemon/naclstack/footprint.1bpp"); + + const u32 gMonFrontPic_Garganacl[] = INCBIN_U32("graphics/pokemon/garganacl/front.4bpp.lz"); + const u32 gMonPalette_Garganacl[] = INCBIN_U32("graphics/pokemon/garganacl/normal.gbapal.lz"); + const u32 gMonBackPic_Garganacl[] = INCBIN_U32("graphics/pokemon/garganacl/back.4bpp.lz"); + const u32 gMonShinyPalette_Garganacl[] = INCBIN_U32("graphics/pokemon/garganacl/shiny.gbapal.lz"); + const u8 gMonIcon_Garganacl[] = INCBIN_U8("graphics/pokemon/garganacl/icon.4bpp"); + // const u8 gMonFootprint_Garganacl[] = INCBIN_U8("graphics/pokemon/garganacl/footprint.1bpp"); +#endif //P_FAMILY_NACLI + +#if P_FAMILY_CHARCADET + const u32 gMonFrontPic_Charcadet[] = INCBIN_U32("graphics/pokemon/charcadet/front.4bpp.lz"); + const u32 gMonPalette_Charcadet[] = INCBIN_U32("graphics/pokemon/charcadet/normal.gbapal.lz"); + const u32 gMonBackPic_Charcadet[] = INCBIN_U32("graphics/pokemon/charcadet/back.4bpp.lz"); + const u32 gMonShinyPalette_Charcadet[] = INCBIN_U32("graphics/pokemon/charcadet/shiny.gbapal.lz"); + const u8 gMonIcon_Charcadet[] = INCBIN_U8("graphics/pokemon/charcadet/icon.4bpp"); + // const u8 gMonFootprint_Charcadet[] = INCBIN_U8("graphics/pokemon/charcadet/footprint.1bpp"); + + const u32 gMonFrontPic_Armarouge[] = INCBIN_U32("graphics/pokemon/armarouge/front.4bpp.lz"); + const u32 gMonPalette_Armarouge[] = INCBIN_U32("graphics/pokemon/armarouge/normal.gbapal.lz"); + const u32 gMonBackPic_Armarouge[] = INCBIN_U32("graphics/pokemon/armarouge/back.4bpp.lz"); + const u32 gMonShinyPalette_Armarouge[] = INCBIN_U32("graphics/pokemon/armarouge/shiny.gbapal.lz"); + const u8 gMonIcon_Armarouge[] = INCBIN_U8("graphics/pokemon/armarouge/icon.4bpp"); + // const u8 gMonFootprint_Armarouge[] = INCBIN_U8("graphics/pokemon/armarouge/footprint.1bpp"); + + const u32 gMonFrontPic_Ceruledge[] = INCBIN_U32("graphics/pokemon/ceruledge/front.4bpp.lz"); + const u32 gMonPalette_Ceruledge[] = INCBIN_U32("graphics/pokemon/ceruledge/normal.gbapal.lz"); + const u32 gMonBackPic_Ceruledge[] = INCBIN_U32("graphics/pokemon/ceruledge/back.4bpp.lz"); + const u32 gMonShinyPalette_Ceruledge[] = INCBIN_U32("graphics/pokemon/ceruledge/shiny.gbapal.lz"); + const u8 gMonIcon_Ceruledge[] = INCBIN_U8("graphics/pokemon/ceruledge/icon.4bpp"); + // const u8 gMonFootprint_Ceruledge[] = INCBIN_U8("graphics/pokemon/ceruledge/footprint.1bpp"); +#endif //P_FAMILY_CHARCADET + +#if P_FAMILY_TADBULB + const u32 gMonFrontPic_Tadbulb[] = INCBIN_U32("graphics/pokemon/tadbulb/front.4bpp.lz"); + const u32 gMonPalette_Tadbulb[] = INCBIN_U32("graphics/pokemon/tadbulb/normal.gbapal.lz"); + const u32 gMonBackPic_Tadbulb[] = INCBIN_U32("graphics/pokemon/tadbulb/back.4bpp.lz"); + const u32 gMonShinyPalette_Tadbulb[] = INCBIN_U32("graphics/pokemon/tadbulb/shiny.gbapal.lz"); + const u8 gMonIcon_Tadbulb[] = INCBIN_U8("graphics/pokemon/tadbulb/icon.4bpp"); + // const u8 gMonFootprint_Tadbulb[] = INCBIN_U8("graphics/pokemon/tadbulb/footprint.1bpp"); + + const u32 gMonFrontPic_Bellibolt[] = INCBIN_U32("graphics/pokemon/bellibolt/front.4bpp.lz"); + const u32 gMonPalette_Bellibolt[] = INCBIN_U32("graphics/pokemon/bellibolt/normal.gbapal.lz"); + const u32 gMonBackPic_Bellibolt[] = INCBIN_U32("graphics/pokemon/bellibolt/back.4bpp.lz"); + const u32 gMonShinyPalette_Bellibolt[] = INCBIN_U32("graphics/pokemon/bellibolt/shiny.gbapal.lz"); + const u8 gMonIcon_Bellibolt[] = INCBIN_U8("graphics/pokemon/bellibolt/icon.4bpp"); + // const u8 gMonFootprint_Bellibolt[] = INCBIN_U8("graphics/pokemon/bellibolt/footprint.1bpp"); +#endif //P_FAMILY_TADBULB + +#if P_FAMILY_WATTREL + const u32 gMonFrontPic_Wattrel[] = INCBIN_U32("graphics/pokemon/wattrel/front.4bpp.lz"); + const u32 gMonPalette_Wattrel[] = INCBIN_U32("graphics/pokemon/wattrel/normal.gbapal.lz"); + const u32 gMonBackPic_Wattrel[] = INCBIN_U32("graphics/pokemon/wattrel/back.4bpp.lz"); + const u32 gMonShinyPalette_Wattrel[] = INCBIN_U32("graphics/pokemon/wattrel/shiny.gbapal.lz"); + const u8 gMonIcon_Wattrel[] = INCBIN_U8("graphics/pokemon/wattrel/icon.4bpp"); + // const u8 gMonFootprint_Wattrel[] = INCBIN_U8("graphics/pokemon/wattrel/footprint.1bpp"); + + const u32 gMonFrontPic_Kilowattrel[] = INCBIN_U32("graphics/pokemon/kilowattrel/front.4bpp.lz"); + const u32 gMonPalette_Kilowattrel[] = INCBIN_U32("graphics/pokemon/kilowattrel/normal.gbapal.lz"); + const u32 gMonBackPic_Kilowattrel[] = INCBIN_U32("graphics/pokemon/kilowattrel/back.4bpp.lz"); + const u32 gMonShinyPalette_Kilowattrel[] = INCBIN_U32("graphics/pokemon/kilowattrel/shiny.gbapal.lz"); + const u8 gMonIcon_Kilowattrel[] = INCBIN_U8("graphics/pokemon/kilowattrel/icon.4bpp"); + // const u8 gMonFootprint_Kilowattrel[] = INCBIN_U8("graphics/pokemon/kilowattrel/footprint.1bpp"); +#endif //P_FAMILY_WATTREL + +#if P_FAMILY_MASCHIFF + const u32 gMonFrontPic_Maschiff[] = INCBIN_U32("graphics/pokemon/maschiff/front.4bpp.lz"); + const u32 gMonPalette_Maschiff[] = INCBIN_U32("graphics/pokemon/maschiff/normal.gbapal.lz"); + const u32 gMonBackPic_Maschiff[] = INCBIN_U32("graphics/pokemon/maschiff/back.4bpp.lz"); + const u32 gMonShinyPalette_Maschiff[] = INCBIN_U32("graphics/pokemon/maschiff/shiny.gbapal.lz"); + const u8 gMonIcon_Maschiff[] = INCBIN_U8("graphics/pokemon/maschiff/icon.4bpp"); + // const u8 gMonFootprint_Maschiff[] = INCBIN_U8("graphics/pokemon/maschiff/footprint.1bpp"); + + const u32 gMonFrontPic_Mabosstiff[] = INCBIN_U32("graphics/pokemon/mabosstiff/front.4bpp.lz"); + const u32 gMonPalette_Mabosstiff[] = INCBIN_U32("graphics/pokemon/mabosstiff/normal.gbapal.lz"); + const u32 gMonBackPic_Mabosstiff[] = INCBIN_U32("graphics/pokemon/mabosstiff/back.4bpp.lz"); + const u32 gMonShinyPalette_Mabosstiff[] = INCBIN_U32("graphics/pokemon/mabosstiff/shiny.gbapal.lz"); + const u8 gMonIcon_Mabosstiff[] = INCBIN_U8("graphics/pokemon/mabosstiff/icon.4bpp"); + // const u8 gMonFootprint_Mabosstiff[] = INCBIN_U8("graphics/pokemon/mabosstiff/footprint.1bpp"); +#endif //P_FAMILY_MASCHIFF + +#if P_FAMILY_SHROODLE + const u32 gMonFrontPic_Shroodle[] = INCBIN_U32("graphics/pokemon/shroodle/front.4bpp.lz"); + const u32 gMonPalette_Shroodle[] = INCBIN_U32("graphics/pokemon/shroodle/normal.gbapal.lz"); + const u32 gMonBackPic_Shroodle[] = INCBIN_U32("graphics/pokemon/shroodle/back.4bpp.lz"); + const u32 gMonShinyPalette_Shroodle[] = INCBIN_U32("graphics/pokemon/shroodle/shiny.gbapal.lz"); + const u8 gMonIcon_Shroodle[] = INCBIN_U8("graphics/pokemon/shroodle/icon.4bpp"); + // const u8 gMonFootprint_Shroodle[] = INCBIN_U8("graphics/pokemon/shroodle/footprint.1bpp"); + + const u32 gMonFrontPic_Grafaiai[] = INCBIN_U32("graphics/pokemon/grafaiai/front.4bpp.lz"); + const u32 gMonPalette_Grafaiai[] = INCBIN_U32("graphics/pokemon/grafaiai/normal.gbapal.lz"); + const u32 gMonBackPic_Grafaiai[] = INCBIN_U32("graphics/pokemon/grafaiai/back.4bpp.lz"); + const u32 gMonShinyPalette_Grafaiai[] = INCBIN_U32("graphics/pokemon/grafaiai/shiny.gbapal.lz"); + const u8 gMonIcon_Grafaiai[] = INCBIN_U8("graphics/pokemon/grafaiai/icon.4bpp"); + // const u8 gMonFootprint_Grafaiai[] = INCBIN_U8("graphics/pokemon/grafaiai/footprint.1bpp"); +#endif //P_FAMILY_SHROODLE + +#if P_FAMILY_BRAMBLIN + const u32 gMonFrontPic_Bramblin[] = INCBIN_U32("graphics/pokemon/bramblin/front.4bpp.lz"); + const u32 gMonPalette_Bramblin[] = INCBIN_U32("graphics/pokemon/bramblin/normal.gbapal.lz"); + const u32 gMonBackPic_Bramblin[] = INCBIN_U32("graphics/pokemon/bramblin/back.4bpp.lz"); + const u32 gMonShinyPalette_Bramblin[] = INCBIN_U32("graphics/pokemon/bramblin/shiny.gbapal.lz"); + const u8 gMonIcon_Bramblin[] = INCBIN_U8("graphics/pokemon/bramblin/icon.4bpp"); + // const u8 gMonFootprint_Bramblin[] = INCBIN_U8("graphics/pokemon/bramblin/footprint.1bpp"); + + const u32 gMonFrontPic_Brambleghast[] = INCBIN_U32("graphics/pokemon/brambleghast/front.4bpp.lz"); + const u32 gMonPalette_Brambleghast[] = INCBIN_U32("graphics/pokemon/brambleghast/normal.gbapal.lz"); + const u32 gMonBackPic_Brambleghast[] = INCBIN_U32("graphics/pokemon/brambleghast/back.4bpp.lz"); + const u32 gMonShinyPalette_Brambleghast[] = INCBIN_U32("graphics/pokemon/brambleghast/shiny.gbapal.lz"); + const u8 gMonIcon_Brambleghast[] = INCBIN_U8("graphics/pokemon/brambleghast/icon.4bpp"); + // const u8 gMonFootprint_Brambleghast[] = INCBIN_U8("graphics/pokemon/brambleghast/footprint.1bpp"); +#endif //P_FAMILY_BRAMBLIN + +#if P_FAMILY_TOEDSCOOL + const u32 gMonFrontPic_Toedscool[] = INCBIN_U32("graphics/pokemon/toedscool/front.4bpp.lz"); + const u32 gMonPalette_Toedscool[] = INCBIN_U32("graphics/pokemon/toedscool/normal.gbapal.lz"); + const u32 gMonBackPic_Toedscool[] = INCBIN_U32("graphics/pokemon/toedscool/back.4bpp.lz"); + const u32 gMonShinyPalette_Toedscool[] = INCBIN_U32("graphics/pokemon/toedscool/shiny.gbapal.lz"); + const u8 gMonIcon_Toedscool[] = INCBIN_U8("graphics/pokemon/toedscool/icon.4bpp"); + // const u8 gMonFootprint_Toedscool[] = INCBIN_U8("graphics/pokemon/toedscool/footprint.1bpp"); + + const u32 gMonFrontPic_Toedscruel[] = INCBIN_U32("graphics/pokemon/toedscruel/front.4bpp.lz"); + const u32 gMonPalette_Toedscruel[] = INCBIN_U32("graphics/pokemon/toedscruel/normal.gbapal.lz"); + const u32 gMonBackPic_Toedscruel[] = INCBIN_U32("graphics/pokemon/toedscruel/back.4bpp.lz"); + const u32 gMonShinyPalette_Toedscruel[] = INCBIN_U32("graphics/pokemon/toedscruel/shiny.gbapal.lz"); + const u8 gMonIcon_Toedscruel[] = INCBIN_U8("graphics/pokemon/toedscruel/icon.4bpp"); + // const u8 gMonFootprint_Toedscruel[] = INCBIN_U8("graphics/pokemon/toedscruel/footprint.1bpp"); +#endif //P_FAMILY_TOEDSCOOL + +#if P_FAMILY_KLAWF + const u32 gMonFrontPic_Klawf[] = INCBIN_U32("graphics/pokemon/klawf/front.4bpp.lz"); + const u32 gMonPalette_Klawf[] = INCBIN_U32("graphics/pokemon/klawf/normal.gbapal.lz"); + const u32 gMonBackPic_Klawf[] = INCBIN_U32("graphics/pokemon/klawf/back.4bpp.lz"); + const u32 gMonShinyPalette_Klawf[] = INCBIN_U32("graphics/pokemon/klawf/shiny.gbapal.lz"); + const u8 gMonIcon_Klawf[] = INCBIN_U8("graphics/pokemon/klawf/icon.4bpp"); + // const u8 gMonFootprint_Klawf[] = INCBIN_U8("graphics/pokemon/klawf/footprint.1bpp"); +#endif //P_FAMILY_KLAWF + +#if P_FAMILY_CAPSAKID + const u32 gMonFrontPic_Capsakid[] = INCBIN_U32("graphics/pokemon/capsakid/front.4bpp.lz"); + const u32 gMonPalette_Capsakid[] = INCBIN_U32("graphics/pokemon/capsakid/normal.gbapal.lz"); + const u32 gMonBackPic_Capsakid[] = INCBIN_U32("graphics/pokemon/capsakid/back.4bpp.lz"); + const u32 gMonShinyPalette_Capsakid[] = INCBIN_U32("graphics/pokemon/capsakid/shiny.gbapal.lz"); + const u8 gMonIcon_Capsakid[] = INCBIN_U8("graphics/pokemon/capsakid/icon.4bpp"); + // const u8 gMonFootprint_Capsakid[] = INCBIN_U8("graphics/pokemon/capsakid/footprint.1bpp"); + + const u32 gMonFrontPic_Scovillain[] = INCBIN_U32("graphics/pokemon/scovillain/front.4bpp.lz"); + const u32 gMonPalette_Scovillain[] = INCBIN_U32("graphics/pokemon/scovillain/normal.gbapal.lz"); + const u32 gMonBackPic_Scovillain[] = INCBIN_U32("graphics/pokemon/scovillain/back.4bpp.lz"); + const u32 gMonShinyPalette_Scovillain[] = INCBIN_U32("graphics/pokemon/scovillain/shiny.gbapal.lz"); + const u8 gMonIcon_Scovillain[] = INCBIN_U8("graphics/pokemon/scovillain/icon.4bpp"); + // const u8 gMonFootprint_Scovillain[] = INCBIN_U8("graphics/pokemon/scovillain/footprint.1bpp"); +#endif //P_FAMILY_CAPSAKID + +#if P_FAMILY_RELLOR + const u32 gMonFrontPic_Rellor[] = INCBIN_U32("graphics/pokemon/rellor/front.4bpp.lz"); + const u32 gMonPalette_Rellor[] = INCBIN_U32("graphics/pokemon/rellor/normal.gbapal.lz"); + const u32 gMonBackPic_Rellor[] = INCBIN_U32("graphics/pokemon/rellor/back.4bpp.lz"); + const u32 gMonShinyPalette_Rellor[] = INCBIN_U32("graphics/pokemon/rellor/shiny.gbapal.lz"); + const u8 gMonIcon_Rellor[] = INCBIN_U8("graphics/pokemon/rellor/icon.4bpp"); + // const u8 gMonFootprint_Rellor[] = INCBIN_U8("graphics/pokemon/rellor/footprint.1bpp"); + + const u32 gMonFrontPic_Rabsca[] = INCBIN_U32("graphics/pokemon/rabsca/front.4bpp.lz"); + const u32 gMonPalette_Rabsca[] = INCBIN_U32("graphics/pokemon/rabsca/normal.gbapal.lz"); + const u32 gMonBackPic_Rabsca[] = INCBIN_U32("graphics/pokemon/rabsca/back.4bpp.lz"); + const u32 gMonShinyPalette_Rabsca[] = INCBIN_U32("graphics/pokemon/rabsca/shiny.gbapal.lz"); + const u8 gMonIcon_Rabsca[] = INCBIN_U8("graphics/pokemon/rabsca/icon.4bpp"); + // const u8 gMonFootprint_Rabsca[] = INCBIN_U8("graphics/pokemon/rabsca/footprint.1bpp"); +#endif //P_FAMILY_RELLOR + +#if P_FAMILY_FLITTLE + const u32 gMonFrontPic_Flittle[] = INCBIN_U32("graphics/pokemon/flittle/front.4bpp.lz"); + const u32 gMonPalette_Flittle[] = INCBIN_U32("graphics/pokemon/flittle/normal.gbapal.lz"); + const u32 gMonBackPic_Flittle[] = INCBIN_U32("graphics/pokemon/flittle/back.4bpp.lz"); + const u32 gMonShinyPalette_Flittle[] = INCBIN_U32("graphics/pokemon/flittle/shiny.gbapal.lz"); + const u8 gMonIcon_Flittle[] = INCBIN_U8("graphics/pokemon/flittle/icon.4bpp"); + // const u8 gMonFootprint_Flittle[] = INCBIN_U8("graphics/pokemon/flittle/footprint.1bpp"); + + const u32 gMonFrontPic_Espathra[] = INCBIN_U32("graphics/pokemon/espathra/front.4bpp.lz"); + const u32 gMonPalette_Espathra[] = INCBIN_U32("graphics/pokemon/espathra/normal.gbapal.lz"); + const u32 gMonBackPic_Espathra[] = INCBIN_U32("graphics/pokemon/espathra/back.4bpp.lz"); + const u32 gMonShinyPalette_Espathra[] = INCBIN_U32("graphics/pokemon/espathra/shiny.gbapal.lz"); + const u8 gMonIcon_Espathra[] = INCBIN_U8("graphics/pokemon/espathra/icon.4bpp"); + // const u8 gMonFootprint_Espathra[] = INCBIN_U8("graphics/pokemon/espathra/footprint.1bpp"); +#endif //P_FAMILY_FLITTLE + +#if P_FAMILY_TINKATINK + const u32 gMonFrontPic_Tinkatink[] = INCBIN_U32("graphics/pokemon/tinkatink/front.4bpp.lz"); + const u32 gMonPalette_Tinkatink[] = INCBIN_U32("graphics/pokemon/tinkatink/normal.gbapal.lz"); + const u32 gMonBackPic_Tinkatink[] = INCBIN_U32("graphics/pokemon/tinkatink/back.4bpp.lz"); + const u32 gMonShinyPalette_Tinkatink[] = INCBIN_U32("graphics/pokemon/tinkatink/shiny.gbapal.lz"); + const u8 gMonIcon_Tinkatink[] = INCBIN_U8("graphics/pokemon/tinkatink/icon.4bpp"); + // const u8 gMonFootprint_Tinkatink[] = INCBIN_U8("graphics/pokemon/tinkatink/footprint.1bpp"); + + const u32 gMonFrontPic_Tinkatuff[] = INCBIN_U32("graphics/pokemon/tinkatuff/front.4bpp.lz"); + const u32 gMonPalette_Tinkatuff[] = INCBIN_U32("graphics/pokemon/tinkatuff/normal.gbapal.lz"); + const u32 gMonBackPic_Tinkatuff[] = INCBIN_U32("graphics/pokemon/tinkatuff/back.4bpp.lz"); + const u32 gMonShinyPalette_Tinkatuff[] = INCBIN_U32("graphics/pokemon/tinkatuff/shiny.gbapal.lz"); + const u8 gMonIcon_Tinkatuff[] = INCBIN_U8("graphics/pokemon/tinkatuff/icon.4bpp"); + // const u8 gMonFootprint_Tinkatuff[] = INCBIN_U8("graphics/pokemon/tinkatuff/footprint.1bpp"); + + const u32 gMonFrontPic_Tinkaton[] = INCBIN_U32("graphics/pokemon/tinkaton/front.4bpp.lz"); + const u32 gMonPalette_Tinkaton[] = INCBIN_U32("graphics/pokemon/tinkaton/normal.gbapal.lz"); + const u32 gMonBackPic_Tinkaton[] = INCBIN_U32("graphics/pokemon/tinkaton/back.4bpp.lz"); + const u32 gMonShinyPalette_Tinkaton[] = INCBIN_U32("graphics/pokemon/tinkaton/shiny.gbapal.lz"); + const u8 gMonIcon_Tinkaton[] = INCBIN_U8("graphics/pokemon/tinkaton/icon.4bpp"); + // const u8 gMonFootprint_Tinkaton[] = INCBIN_U8("graphics/pokemon/tinkaton/footprint.1bpp"); +#endif //P_FAMILY_TINKATINK + +#if P_FAMILY_WIGLETT + const u32 gMonFrontPic_Wiglett[] = INCBIN_U32("graphics/pokemon/wiglett/front.4bpp.lz"); + const u32 gMonPalette_Wiglett[] = INCBIN_U32("graphics/pokemon/wiglett/normal.gbapal.lz"); + const u32 gMonBackPic_Wiglett[] = INCBIN_U32("graphics/pokemon/wiglett/back.4bpp.lz"); + const u32 gMonShinyPalette_Wiglett[] = INCBIN_U32("graphics/pokemon/wiglett/shiny.gbapal.lz"); + const u8 gMonIcon_Wiglett[] = INCBIN_U8("graphics/pokemon/wiglett/icon.4bpp"); + // const u8 gMonFootprint_Wiglett[] = INCBIN_U8("graphics/pokemon/wiglett/footprint.1bpp"); + + const u32 gMonFrontPic_Wugtrio[] = INCBIN_U32("graphics/pokemon/wugtrio/front.4bpp.lz"); + const u32 gMonPalette_Wugtrio[] = INCBIN_U32("graphics/pokemon/wugtrio/normal.gbapal.lz"); + const u32 gMonBackPic_Wugtrio[] = INCBIN_U32("graphics/pokemon/wugtrio/back.4bpp.lz"); + const u32 gMonShinyPalette_Wugtrio[] = INCBIN_U32("graphics/pokemon/wugtrio/shiny.gbapal.lz"); + const u8 gMonIcon_Wugtrio[] = INCBIN_U8("graphics/pokemon/wugtrio/icon.4bpp"); + // const u8 gMonFootprint_Wugtrio[] = INCBIN_U8("graphics/pokemon/wugtrio/footprint.1bpp"); +#endif //P_FAMILY_WIGLETT + +#if P_FAMILY_BOMBIRDIER + const u32 gMonFrontPic_Bombirdier[] = INCBIN_U32("graphics/pokemon/bombirdier/front.4bpp.lz"); + const u32 gMonPalette_Bombirdier[] = INCBIN_U32("graphics/pokemon/bombirdier/normal.gbapal.lz"); + const u32 gMonBackPic_Bombirdier[] = INCBIN_U32("graphics/pokemon/bombirdier/back.4bpp.lz"); + const u32 gMonShinyPalette_Bombirdier[] = INCBIN_U32("graphics/pokemon/bombirdier/shiny.gbapal.lz"); + const u8 gMonIcon_Bombirdier[] = INCBIN_U8("graphics/pokemon/bombirdier/icon.4bpp"); + // const u8 gMonFootprint_Bombirdier[] = INCBIN_U8("graphics/pokemon/bombirdier/footprint.1bpp"); +#endif //P_FAMILY_BOMBIRDIER + +#if P_FAMILY_FINIZEN + const u32 gMonFrontPic_Finizen[] = INCBIN_U32("graphics/pokemon/finizen/front.4bpp.lz"); + const u32 gMonPalette_Finizen[] = INCBIN_U32("graphics/pokemon/finizen/normal.gbapal.lz"); + const u32 gMonBackPic_Finizen[] = INCBIN_U32("graphics/pokemon/finizen/back.4bpp.lz"); + const u32 gMonShinyPalette_Finizen[] = INCBIN_U32("graphics/pokemon/finizen/shiny.gbapal.lz"); + const u8 gMonIcon_Finizen[] = INCBIN_U8("graphics/pokemon/finizen/icon.4bpp"); + // const u8 gMonFootprint_Finizen[] = INCBIN_U8("graphics/pokemon/finizen/footprint.1bpp"); + + const u32 gMonFrontPic_PalafinZero[] = INCBIN_U32("graphics/pokemon/palafin/front.4bpp.lz"); + const u32 gMonPalette_PalafinZero[] = INCBIN_U32("graphics/pokemon/palafin/normal.gbapal.lz"); + const u32 gMonBackPic_PalafinZero[] = INCBIN_U32("graphics/pokemon/palafin/back.4bpp.lz"); + const u32 gMonShinyPalette_PalafinZero[] = INCBIN_U32("graphics/pokemon/palafin/shiny.gbapal.lz"); + const u8 gMonIcon_PalafinZero[] = INCBIN_U8("graphics/pokemon/palafin/icon.4bpp"); + // const u8 gMonFootprint_Palafin[] = INCBIN_U8("graphics/pokemon/palafin/footprint.1bpp"); + + const u32 gMonFrontPic_PalafinHero[] = INCBIN_U32("graphics/pokemon/palafin/hero/front.4bpp.lz"); + const u32 gMonPalette_PalafinHero[] = INCBIN_U32("graphics/pokemon/palafin/hero/normal.gbapal.lz"); + const u32 gMonBackPic_PalafinHero[] = INCBIN_U32("graphics/pokemon/palafin/hero/back.4bpp.lz"); + const u32 gMonShinyPalette_PalafinHero[] = INCBIN_U32("graphics/pokemon/palafin/hero/shiny.gbapal.lz"); + const u8 gMonIcon_PalafinHero[] = INCBIN_U8("graphics/pokemon/palafin/hero/icon.4bpp"); +#endif //P_FAMILY_FINIZEN + +#if P_FAMILY_VAROOM + const u32 gMonFrontPic_Varoom[] = INCBIN_U32("graphics/pokemon/varoom/front.4bpp.lz"); + const u32 gMonPalette_Varoom[] = INCBIN_U32("graphics/pokemon/varoom/normal.gbapal.lz"); + const u32 gMonBackPic_Varoom[] = INCBIN_U32("graphics/pokemon/varoom/back.4bpp.lz"); + const u32 gMonShinyPalette_Varoom[] = INCBIN_U32("graphics/pokemon/varoom/shiny.gbapal.lz"); + const u8 gMonIcon_Varoom[] = INCBIN_U8("graphics/pokemon/varoom/icon.4bpp"); + // const u8 gMonFootprint_Varoom[] = INCBIN_U8("graphics/pokemon/varoom/footprint.1bpp"); + + const u32 gMonFrontPic_Revavroom[] = INCBIN_U32("graphics/pokemon/revavroom/front.4bpp.lz"); + const u32 gMonPalette_Revavroom[] = INCBIN_U32("graphics/pokemon/revavroom/normal.gbapal.lz"); + const u32 gMonBackPic_Revavroom[] = INCBIN_U32("graphics/pokemon/revavroom/back.4bpp.lz"); + const u32 gMonShinyPalette_Revavroom[] = INCBIN_U32("graphics/pokemon/revavroom/shiny.gbapal.lz"); + const u8 gMonIcon_Revavroom[] = INCBIN_U8("graphics/pokemon/revavroom/icon.4bpp"); + // const u8 gMonFootprint_Revavroom[] = INCBIN_U8("graphics/pokemon/revavroom/footprint.1bpp"); +#endif //P_FAMILY_VAROOM + +#if P_FAMILY_CYCLIZAR + const u32 gMonFrontPic_Cyclizar[] = INCBIN_U32("graphics/pokemon/cyclizar/front.4bpp.lz"); + const u32 gMonPalette_Cyclizar[] = INCBIN_U32("graphics/pokemon/cyclizar/normal.gbapal.lz"); + const u32 gMonBackPic_Cyclizar[] = INCBIN_U32("graphics/pokemon/cyclizar/back.4bpp.lz"); + const u32 gMonShinyPalette_Cyclizar[] = INCBIN_U32("graphics/pokemon/cyclizar/shiny.gbapal.lz"); + const u8 gMonIcon_Cyclizar[] = INCBIN_U8("graphics/pokemon/cyclizar/icon.4bpp"); + // const u8 gMonFootprint_Cyclizar[] = INCBIN_U8("graphics/pokemon/cyclizar/footprint.1bpp"); +#endif //P_FAMILY_CYCLIZAR + +#if P_FAMILY_ORTHWORM + const u32 gMonFrontPic_Orthworm[] = INCBIN_U32("graphics/pokemon/orthworm/front.4bpp.lz"); + const u32 gMonPalette_Orthworm[] = INCBIN_U32("graphics/pokemon/orthworm/normal.gbapal.lz"); + const u32 gMonBackPic_Orthworm[] = INCBIN_U32("graphics/pokemon/orthworm/back.4bpp.lz"); + const u32 gMonShinyPalette_Orthworm[] = INCBIN_U32("graphics/pokemon/orthworm/shiny.gbapal.lz"); + const u8 gMonIcon_Orthworm[] = INCBIN_U8("graphics/pokemon/orthworm/icon.4bpp"); + // const u8 gMonFootprint_Orthworm[] = INCBIN_U8("graphics/pokemon/orthworm/footprint.1bpp"); +#endif //P_FAMILY_ORTHWORM + +#if P_FAMILY_GLIMMET + const u32 gMonFrontPic_Glimmet[] = INCBIN_U32("graphics/pokemon/glimmet/front.4bpp.lz"); + const u32 gMonPalette_Glimmet[] = INCBIN_U32("graphics/pokemon/glimmet/normal.gbapal.lz"); + const u32 gMonBackPic_Glimmet[] = INCBIN_U32("graphics/pokemon/glimmet/back.4bpp.lz"); + const u32 gMonShinyPalette_Glimmet[] = INCBIN_U32("graphics/pokemon/glimmet/shiny.gbapal.lz"); + const u8 gMonIcon_Glimmet[] = INCBIN_U8("graphics/pokemon/glimmet/icon.4bpp"); + // const u8 gMonFootprint_Glimmet[] = INCBIN_U8("graphics/pokemon/glimmet/footprint.1bpp"); + + const u32 gMonFrontPic_Glimmora[] = INCBIN_U32("graphics/pokemon/glimmora/front.4bpp.lz"); + const u32 gMonPalette_Glimmora[] = INCBIN_U32("graphics/pokemon/glimmora/normal.gbapal.lz"); + const u32 gMonBackPic_Glimmora[] = INCBIN_U32("graphics/pokemon/glimmora/back.4bpp.lz"); + const u32 gMonShinyPalette_Glimmora[] = INCBIN_U32("graphics/pokemon/glimmora/shiny.gbapal.lz"); + const u8 gMonIcon_Glimmora[] = INCBIN_U8("graphics/pokemon/glimmora/icon.4bpp"); + // const u8 gMonFootprint_Glimmora[] = INCBIN_U8("graphics/pokemon/glimmora/footprint.1bpp"); +#endif //P_FAMILY_GLIMMET + +#if P_FAMILY_GREAVARD + const u32 gMonFrontPic_Greavard[] = INCBIN_U32("graphics/pokemon/greavard/front.4bpp.lz"); + const u32 gMonPalette_Greavard[] = INCBIN_U32("graphics/pokemon/greavard/normal.gbapal.lz"); + const u32 gMonBackPic_Greavard[] = INCBIN_U32("graphics/pokemon/greavard/back.4bpp.lz"); + const u32 gMonShinyPalette_Greavard[] = INCBIN_U32("graphics/pokemon/greavard/shiny.gbapal.lz"); + const u8 gMonIcon_Greavard[] = INCBIN_U8("graphics/pokemon/greavard/icon.4bpp"); + // const u8 gMonFootprint_Greavard[] = INCBIN_U8("graphics/pokemon/greavard/footprint.1bpp"); + + const u32 gMonFrontPic_Houndstone[] = INCBIN_U32("graphics/pokemon/houndstone/front.4bpp.lz"); + const u32 gMonPalette_Houndstone[] = INCBIN_U32("graphics/pokemon/houndstone/normal.gbapal.lz"); + const u32 gMonBackPic_Houndstone[] = INCBIN_U32("graphics/pokemon/houndstone/back.4bpp.lz"); + const u32 gMonShinyPalette_Houndstone[] = INCBIN_U32("graphics/pokemon/houndstone/shiny.gbapal.lz"); + const u8 gMonIcon_Houndstone[] = INCBIN_U8("graphics/pokemon/houndstone/icon.4bpp"); + // const u8 gMonFootprint_Houndstone[] = INCBIN_U8("graphics/pokemon/houndstone/footprint.1bpp"); +#endif //P_FAMILY_GREAVARD + +#if P_FAMILY_FLAMIGO + const u32 gMonFrontPic_Flamigo[] = INCBIN_U32("graphics/pokemon/flamigo/front.4bpp.lz"); + const u32 gMonPalette_Flamigo[] = INCBIN_U32("graphics/pokemon/flamigo/normal.gbapal.lz"); + const u32 gMonBackPic_Flamigo[] = INCBIN_U32("graphics/pokemon/flamigo/back.4bpp.lz"); + const u32 gMonShinyPalette_Flamigo[] = INCBIN_U32("graphics/pokemon/flamigo/shiny.gbapal.lz"); + const u8 gMonIcon_Flamigo[] = INCBIN_U8("graphics/pokemon/flamigo/icon.4bpp"); + // const u8 gMonFootprint_Flamigo[] = INCBIN_U8("graphics/pokemon/flamigo/footprint.1bpp"); +#endif //P_FAMILY_FLAMIGO + +#if P_FAMILY_CETODDLE + const u32 gMonFrontPic_Cetoddle[] = INCBIN_U32("graphics/pokemon/cetoddle/front.4bpp.lz"); + const u32 gMonPalette_Cetoddle[] = INCBIN_U32("graphics/pokemon/cetoddle/normal.gbapal.lz"); + const u32 gMonBackPic_Cetoddle[] = INCBIN_U32("graphics/pokemon/cetoddle/back.4bpp.lz"); + const u32 gMonShinyPalette_Cetoddle[] = INCBIN_U32("graphics/pokemon/cetoddle/shiny.gbapal.lz"); + const u8 gMonIcon_Cetoddle[] = INCBIN_U8("graphics/pokemon/cetoddle/icon.4bpp"); + // const u8 gMonFootprint_Cetoddle[] = INCBIN_U8("graphics/pokemon/cetoddle/footprint.1bpp"); + + const u32 gMonFrontPic_Cetitan[] = INCBIN_U32("graphics/pokemon/cetitan/front.4bpp.lz"); + const u32 gMonPalette_Cetitan[] = INCBIN_U32("graphics/pokemon/cetitan/normal.gbapal.lz"); + const u32 gMonBackPic_Cetitan[] = INCBIN_U32("graphics/pokemon/cetitan/back.4bpp.lz"); + const u32 gMonShinyPalette_Cetitan[] = INCBIN_U32("graphics/pokemon/cetitan/shiny.gbapal.lz"); + const u8 gMonIcon_Cetitan[] = INCBIN_U8("graphics/pokemon/cetitan/icon.4bpp"); + // const u8 gMonFootprint_Cetitan[] = INCBIN_U8("graphics/pokemon/cetitan/footprint.1bpp"); +#endif //P_FAMILY_CETODDLE + +#if P_FAMILY_VELUZA + const u32 gMonFrontPic_Veluza[] = INCBIN_U32("graphics/pokemon/veluza/front.4bpp.lz"); + const u32 gMonPalette_Veluza[] = INCBIN_U32("graphics/pokemon/veluza/normal.gbapal.lz"); + const u32 gMonBackPic_Veluza[] = INCBIN_U32("graphics/pokemon/veluza/back.4bpp.lz"); + const u32 gMonShinyPalette_Veluza[] = INCBIN_U32("graphics/pokemon/veluza/shiny.gbapal.lz"); + const u8 gMonIcon_Veluza[] = INCBIN_U8("graphics/pokemon/veluza/icon.4bpp"); + // const u8 gMonFootprint_Veluza[] = INCBIN_U8("graphics/pokemon/veluza/footprint.1bpp"); +#endif //P_FAMILY_VELUZA + +#if P_FAMILY_DONDOZO + const u32 gMonFrontPic_Dondozo[] = INCBIN_U32("graphics/pokemon/dondozo/front.4bpp.lz"); + const u32 gMonPalette_Dondozo[] = INCBIN_U32("graphics/pokemon/dondozo/normal.gbapal.lz"); + const u32 gMonBackPic_Dondozo[] = INCBIN_U32("graphics/pokemon/dondozo/back.4bpp.lz"); + const u32 gMonShinyPalette_Dondozo[] = INCBIN_U32("graphics/pokemon/dondozo/shiny.gbapal.lz"); + const u8 gMonIcon_Dondozo[] = INCBIN_U8("graphics/pokemon/dondozo/icon.4bpp"); + // const u8 gMonFootprint_Dondozo[] = INCBIN_U8("graphics/pokemon/dondozo/footprint.1bpp"); +#endif //P_FAMILY_DONDOZO + +#if P_FAMILY_TATSUGIRI + const u32 gMonFrontPic_TatsugiriCurly[] = INCBIN_U32("graphics/pokemon/tatsugiri/curly/front.4bpp.lz"); + const u32 gMonPalette_TatsugiriCurly[] = INCBIN_U32("graphics/pokemon/tatsugiri/curly/normal.gbapal.lz"); + const u32 gMonBackPic_TatsugiriCurly[] = INCBIN_U32("graphics/pokemon/tatsugiri/curly/back.4bpp.lz"); + const u32 gMonShinyPalette_TatsugiriCurly[] = INCBIN_U32("graphics/pokemon/tatsugiri/curly/shiny.gbapal.lz"); + const u8 gMonIcon_TatsugiriCurly[] = INCBIN_U8("graphics/pokemon/tatsugiri/curly/icon.4bpp"); + // const u8 gMonFootprint_Tatsugiri[] = INCBIN_U8("graphics/pokemon/tatsugiri/footprint.1bpp"); + + const u32 gMonFrontPic_TatsugiriDroopy[] = INCBIN_U32("graphics/pokemon/tatsugiri/droopy/front.4bpp.lz"); + const u32 gMonPalette_TatsugiriDroopy[] = INCBIN_U32("graphics/pokemon/tatsugiri/droopy/normal.gbapal.lz"); + const u32 gMonBackPic_TatsugiriDroopy[] = INCBIN_U32("graphics/pokemon/tatsugiri/droopy/back.4bpp.lz"); + const u32 gMonShinyPalette_TatsugiriDroopy[] = INCBIN_U32("graphics/pokemon/tatsugiri/droopy/shiny.gbapal.lz"); + const u8 gMonIcon_TatsugiriDroopy[] = INCBIN_U8("graphics/pokemon/tatsugiri/droopy/icon.4bpp"); + + const u32 gMonFrontPic_TatsugiriStretchy[] = INCBIN_U32("graphics/pokemon/tatsugiri/stretchy/front.4bpp.lz"); + const u32 gMonPalette_TatsugiriStretchy[] = INCBIN_U32("graphics/pokemon/tatsugiri/stretchy/normal.gbapal.lz"); + const u32 gMonBackPic_TatsugiriStretchy[] = INCBIN_U32("graphics/pokemon/tatsugiri/stretchy/back.4bpp.lz"); + const u32 gMonShinyPalette_TatsugiriStretchy[] = INCBIN_U32("graphics/pokemon/tatsugiri/stretchy/shiny.gbapal.lz"); + const u8 gMonIcon_TatsugiriStretchy[] = INCBIN_U8("graphics/pokemon/tatsugiri/stretchy/icon.4bpp"); +#endif //P_FAMILY_DONDOZO + +#if P_FAMILY_GREAT_TUSK + const u32 gMonFrontPic_GreatTusk[] = INCBIN_U32("graphics/pokemon/great_tusk/anim_front.4bpp.lz"); + const u32 gMonPalette_GreatTusk[] = INCBIN_U32("graphics/pokemon/great_tusk/normal.gbapal.lz"); + const u32 gMonBackPic_GreatTusk[] = INCBIN_U32("graphics/pokemon/great_tusk/back.4bpp.lz"); + const u32 gMonShinyPalette_GreatTusk[] = INCBIN_U32("graphics/pokemon/great_tusk/shiny.gbapal.lz"); + const u8 gMonIcon_GreatTusk[] = INCBIN_U8("graphics/pokemon/great_tusk/icon.4bpp"); + // const u8 gMonFootprint_GreatTusk[] = INCBIN_U8("graphics/pokemon/great_tusk/footprint.1bpp"); +#endif //P_FAMILY_GREAT_TUSK + +#if P_FAMILY_SCREAM_TAIL + const u32 gMonFrontPic_ScreamTail[] = INCBIN_U32("graphics/pokemon/scream_tail/front.4bpp.lz"); + const u32 gMonPalette_ScreamTail[] = INCBIN_U32("graphics/pokemon/scream_tail/normal.gbapal.lz"); + const u32 gMonBackPic_ScreamTail[] = INCBIN_U32("graphics/pokemon/scream_tail/back.4bpp.lz"); + const u32 gMonShinyPalette_ScreamTail[] = INCBIN_U32("graphics/pokemon/scream_tail/shiny.gbapal.lz"); + const u8 gMonIcon_ScreamTail[] = INCBIN_U8("graphics/pokemon/scream_tail/icon.4bpp"); + // const u8 gMonFootprint_ScreamTail[] = INCBIN_U8("graphics/pokemon/scream_tail/footprint.1bpp"); +#endif //P_FAMILY_SCREAM_TAIL + +#if P_FAMILY_BRUTE_BONNET + const u32 gMonFrontPic_BruteBonnet[] = INCBIN_U32("graphics/pokemon/brute_bonnet/front.4bpp.lz"); + const u32 gMonPalette_BruteBonnet[] = INCBIN_U32("graphics/pokemon/brute_bonnet/normal.gbapal.lz"); + const u32 gMonBackPic_BruteBonnet[] = INCBIN_U32("graphics/pokemon/brute_bonnet/back.4bpp.lz"); + const u32 gMonShinyPalette_BruteBonnet[] = INCBIN_U32("graphics/pokemon/brute_bonnet/shiny.gbapal.lz"); + const u8 gMonIcon_BruteBonnet[] = INCBIN_U8("graphics/pokemon/brute_bonnet/icon.4bpp"); + // const u8 gMonFootprint_BruteBonnet[] = INCBIN_U8("graphics/pokemon/brute_bonnet/footprint.1bpp"); +#endif //P_FAMILY_BRUTE_BONNET + +#if P_FAMILY_FLUTTER_MANE + const u32 gMonFrontPic_FlutterMane[] = INCBIN_U32("graphics/pokemon/flutter_mane/front.4bpp.lz"); + const u32 gMonPalette_FlutterMane[] = INCBIN_U32("graphics/pokemon/flutter_mane/normal.gbapal.lz"); + const u32 gMonBackPic_FlutterMane[] = INCBIN_U32("graphics/pokemon/flutter_mane/back.4bpp.lz"); + const u32 gMonShinyPalette_FlutterMane[] = INCBIN_U32("graphics/pokemon/flutter_mane/shiny.gbapal.lz"); + const u8 gMonIcon_FlutterMane[] = INCBIN_U8("graphics/pokemon/flutter_mane/icon.4bpp"); + // const u8 gMonFootprint_FlutterMane[] = INCBIN_U8("graphics/pokemon/flutter_mane/footprint.1bpp"); +#endif //P_FAMILY_FLUTTER_MANE + +#if P_FAMILY_SLITHER_WING + const u32 gMonFrontPic_SlitherWing[] = INCBIN_U32("graphics/pokemon/slither_wing/front.4bpp.lz"); + const u32 gMonPalette_SlitherWing[] = INCBIN_U32("graphics/pokemon/slither_wing/normal.gbapal.lz"); + const u32 gMonBackPic_SlitherWing[] = INCBIN_U32("graphics/pokemon/slither_wing/back.4bpp.lz"); + const u32 gMonShinyPalette_SlitherWing[] = INCBIN_U32("graphics/pokemon/slither_wing/shiny.gbapal.lz"); + const u8 gMonIcon_SlitherWing[] = INCBIN_U8("graphics/pokemon/slither_wing/icon.4bpp"); + // const u8 gMonFootprint_SlitherWing[] = INCBIN_U8("graphics/pokemon/slither_wing/footprint.1bpp"); +#endif //P_FAMILY_SLITHER_WING + +#if P_FAMILY_SANDY_SHOCKS + const u32 gMonFrontPic_SandyShocks[] = INCBIN_U32("graphics/pokemon/sandy_shocks/front.4bpp.lz"); + const u32 gMonPalette_SandyShocks[] = INCBIN_U32("graphics/pokemon/sandy_shocks/normal.gbapal.lz"); + const u32 gMonBackPic_SandyShocks[] = INCBIN_U32("graphics/pokemon/sandy_shocks/back.4bpp.lz"); + const u32 gMonShinyPalette_SandyShocks[] = INCBIN_U32("graphics/pokemon/sandy_shocks/shiny.gbapal.lz"); + const u8 gMonIcon_SandyShocks[] = INCBIN_U8("graphics/pokemon/sandy_shocks/icon.4bpp"); + // const u8 gMonFootprint_SandyShocks[] = INCBIN_U8("graphics/pokemon/sandy_shocks/footprint.1bpp"); +#endif //P_FAMILY_SANDY_SHOCKS + +#if P_FAMILY_IRON_TREADS + const u32 gMonFrontPic_IronTreads[] = INCBIN_U32("graphics/pokemon/iron_treads/front.4bpp.lz"); + const u32 gMonPalette_IronTreads[] = INCBIN_U32("graphics/pokemon/iron_treads/normal.gbapal.lz"); + const u32 gMonBackPic_IronTreads[] = INCBIN_U32("graphics/pokemon/iron_treads/back.4bpp.lz"); + const u32 gMonShinyPalette_IronTreads[] = INCBIN_U32("graphics/pokemon/iron_treads/shiny.gbapal.lz"); + const u8 gMonIcon_IronTreads[] = INCBIN_U8("graphics/pokemon/iron_treads/icon.4bpp"); + // const u8 gMonFootprint_IronTreads[] = INCBIN_U8("graphics/pokemon/iron_treads/footprint.1bpp"); +#endif //P_FAMILY_IRON_TREADS + +#if P_FAMILY_IRON_BUNDLE + const u32 gMonFrontPic_IronBundle[] = INCBIN_U32("graphics/pokemon/iron_bundle/front.4bpp.lz"); + const u32 gMonPalette_IronBundle[] = INCBIN_U32("graphics/pokemon/iron_bundle/normal.gbapal.lz"); + const u32 gMonBackPic_IronBundle[] = INCBIN_U32("graphics/pokemon/iron_bundle/back.4bpp.lz"); + const u32 gMonShinyPalette_IronBundle[] = INCBIN_U32("graphics/pokemon/iron_bundle/shiny.gbapal.lz"); + const u8 gMonIcon_IronBundle[] = INCBIN_U8("graphics/pokemon/iron_bundle/icon.4bpp"); + // const u8 gMonFootprint_IronBundle[] = INCBIN_U8("graphics/pokemon/iron_bundle/footprint.1bpp"); +#endif //P_FAMILY_IRON_BUNDLE + +#if P_FAMILY_IRON_HANDS + const u32 gMonFrontPic_IronHands[] = INCBIN_U32("graphics/pokemon/iron_hands/front.4bpp.lz"); + const u32 gMonPalette_IronHands[] = INCBIN_U32("graphics/pokemon/iron_hands/normal.gbapal.lz"); + const u32 gMonBackPic_IronHands[] = INCBIN_U32("graphics/pokemon/iron_hands/back.4bpp.lz"); + const u32 gMonShinyPalette_IronHands[] = INCBIN_U32("graphics/pokemon/iron_hands/shiny.gbapal.lz"); + const u8 gMonIcon_IronHands[] = INCBIN_U8("graphics/pokemon/iron_hands/icon.4bpp"); + // const u8 gMonFootprint_IronHands[] = INCBIN_U8("graphics/pokemon/iron_hands/footprint.1bpp"); +#endif //P_FAMILY_IRON_HANDS + +#if P_FAMILY_IRON_JUGULIS + const u32 gMonFrontPic_IronJugulis[] = INCBIN_U32("graphics/pokemon/iron_jugulis/front.4bpp.lz"); + const u32 gMonPalette_IronJugulis[] = INCBIN_U32("graphics/pokemon/iron_jugulis/normal.gbapal.lz"); + const u32 gMonBackPic_IronJugulis[] = INCBIN_U32("graphics/pokemon/iron_jugulis/back.4bpp.lz"); + const u32 gMonShinyPalette_IronJugulis[] = INCBIN_U32("graphics/pokemon/iron_jugulis/shiny.gbapal.lz"); + const u8 gMonIcon_IronJugulis[] = INCBIN_U8("graphics/pokemon/iron_jugulis/icon.4bpp"); + // const u8 gMonFootprint_IronJugulis[] = INCBIN_U8("graphics/pokemon/iron_jugulis/footprint.1bpp"); +#endif //P_FAMILY_IRON_JUGULIS + +#if P_FAMILY_IRON_MOTH + const u32 gMonFrontPic_IronMoth[] = INCBIN_U32("graphics/pokemon/iron_moth/front.4bpp.lz"); + const u32 gMonPalette_IronMoth[] = INCBIN_U32("graphics/pokemon/iron_moth/normal.gbapal.lz"); + const u32 gMonBackPic_IronMoth[] = INCBIN_U32("graphics/pokemon/iron_moth/back.4bpp.lz"); + const u32 gMonShinyPalette_IronMoth[] = INCBIN_U32("graphics/pokemon/iron_moth/shiny.gbapal.lz"); + const u8 gMonIcon_IronMoth[] = INCBIN_U8("graphics/pokemon/iron_moth/icon.4bpp"); + // const u8 gMonFootprint_IronMoth[] = INCBIN_U8("graphics/pokemon/iron_moth/footprint.1bpp"); +#endif //P_FAMILY_IRON_MOTH + +#if P_FAMILY_IRON_THORNS + const u32 gMonFrontPic_IronThorns[] = INCBIN_U32("graphics/pokemon/iron_thorns/front.4bpp.lz"); + const u32 gMonPalette_IronThorns[] = INCBIN_U32("graphics/pokemon/iron_thorns/normal.gbapal.lz"); + const u32 gMonBackPic_IronThorns[] = INCBIN_U32("graphics/pokemon/iron_thorns/back.4bpp.lz"); + const u32 gMonShinyPalette_IronThorns[] = INCBIN_U32("graphics/pokemon/iron_thorns/shiny.gbapal.lz"); + const u8 gMonIcon_IronThorns[] = INCBIN_U8("graphics/pokemon/iron_thorns/icon.4bpp"); + // const u8 gMonFootprint_IronThorns[] = INCBIN_U8("graphics/pokemon/iron_thorns/footprint.1bpp"); +#endif //P_FAMILY_IRON_THORNS + +#if P_FAMILY_FRIGIBAX + const u32 gMonFrontPic_Frigibax[] = INCBIN_U32("graphics/pokemon/frigibax/anim_front.4bpp.lz"); + const u32 gMonPalette_Frigibax[] = INCBIN_U32("graphics/pokemon/frigibax/normal.gbapal.lz"); + const u32 gMonBackPic_Frigibax[] = INCBIN_U32("graphics/pokemon/frigibax/back.4bpp.lz"); + const u32 gMonShinyPalette_Frigibax[] = INCBIN_U32("graphics/pokemon/frigibax/shiny.gbapal.lz"); + const u8 gMonIcon_Frigibax[] = INCBIN_U8("graphics/pokemon/frigibax/icon.4bpp"); + // const u8 gMonFootprint_Frigibax[] = INCBIN_U8("graphics/pokemon/frigibax/footprint.1bpp"); + + const u32 gMonFrontPic_Arctibax[] = INCBIN_U32("graphics/pokemon/arctibax/front.4bpp.lz"); + const u32 gMonPalette_Arctibax[] = INCBIN_U32("graphics/pokemon/arctibax/normal.gbapal.lz"); + const u32 gMonBackPic_Arctibax[] = INCBIN_U32("graphics/pokemon/arctibax/back.4bpp.lz"); + const u32 gMonShinyPalette_Arctibax[] = INCBIN_U32("graphics/pokemon/arctibax/shiny.gbapal.lz"); + const u8 gMonIcon_Arctibax[] = INCBIN_U8("graphics/pokemon/arctibax/icon.4bpp"); + // const u8 gMonFootprint_Arctibax[] = INCBIN_U8("graphics/pokemon/arctibax/footprint.1bpp"); + + const u32 gMonFrontPic_Baxcalibur[] = INCBIN_U32("graphics/pokemon/baxcalibur/front.4bpp.lz"); + const u32 gMonPalette_Baxcalibur[] = INCBIN_U32("graphics/pokemon/baxcalibur/normal.gbapal.lz"); + const u32 gMonBackPic_Baxcalibur[] = INCBIN_U32("graphics/pokemon/baxcalibur/back.4bpp.lz"); + const u32 gMonShinyPalette_Baxcalibur[] = INCBIN_U32("graphics/pokemon/baxcalibur/shiny.gbapal.lz"); + const u8 gMonIcon_Baxcalibur[] = INCBIN_U8("graphics/pokemon/baxcalibur/icon.4bpp"); + // const u8 gMonFootprint_Baxcalibur[] = INCBIN_U8("graphics/pokemon/baxcalibur/footprint.1bpp"); +#endif //P_FAMILY_FRIGIBAX + +#if P_FAMILY_GIMMIGHOUL + const u32 gMonFrontPic_GimmighoulChest[] = INCBIN_U32("graphics/pokemon/gimmighoul/front.4bpp.lz"); + const u32 gMonPalette_GimmighoulChest[] = INCBIN_U32("graphics/pokemon/gimmighoul/normal.gbapal.lz"); + const u32 gMonBackPic_GimmighoulChest[] = INCBIN_U32("graphics/pokemon/gimmighoul/back.4bpp.lz"); + const u32 gMonShinyPalette_GimmighoulChest[] = INCBIN_U32("graphics/pokemon/gimmighoul/shiny.gbapal.lz"); + const u8 gMonIcon_GimmighoulChest[] = INCBIN_U8("graphics/pokemon/gimmighoul/icon.4bpp"); + // const u8 gMonFootprint_Gimmighoul[] = INCBIN_U8("graphics/pokemon/gimmighoul/footprint.1bpp"); + + const u32 gMonFrontPic_GimmighoulRoaming[] = INCBIN_U32("graphics/pokemon/gimmighoul/roaming/front.4bpp.lz"); + const u32 gMonPalette_GimmighoulRoaming[] = INCBIN_U32("graphics/pokemon/gimmighoul/roaming/normal.gbapal.lz"); + const u32 gMonBackPic_GimmighoulRoaming[] = INCBIN_U32("graphics/pokemon/gimmighoul/roaming/back.4bpp.lz"); + const u32 gMonShinyPalette_GimmighoulRoaming[] = INCBIN_U32("graphics/pokemon/gimmighoul/roaming/shiny.gbapal.lz"); + const u8 gMonIcon_GimmighoulRoaming[] = INCBIN_U8("graphics/pokemon/gimmighoul/roaming/icon.4bpp"); + + const u32 gMonFrontPic_Gholdengo[] = INCBIN_U32("graphics/pokemon/gholdengo/front.4bpp.lz"); + const u32 gMonPalette_Gholdengo[] = INCBIN_U32("graphics/pokemon/gholdengo/normal.gbapal.lz"); + const u32 gMonBackPic_Gholdengo[] = INCBIN_U32("graphics/pokemon/gholdengo/back.4bpp.lz"); + const u32 gMonShinyPalette_Gholdengo[] = INCBIN_U32("graphics/pokemon/gholdengo/shiny.gbapal.lz"); + const u8 gMonIcon_Gholdengo[] = INCBIN_U8("graphics/pokemon/gholdengo/icon.4bpp"); + // const u8 gMonFootprint_Gholdengo[] = INCBIN_U8("graphics/pokemon/gholdengo/footprint.1bpp"); +#endif //P_FAMILY_GIMMIGHOUL + +#if P_FAMILY_WO_CHIEN + const u32 gMonFrontPic_WoChien[] = INCBIN_U32("graphics/pokemon/wo_chien/front.4bpp.lz"); + const u32 gMonPalette_WoChien[] = INCBIN_U32("graphics/pokemon/wo_chien/normal.gbapal.lz"); + const u32 gMonBackPic_WoChien[] = INCBIN_U32("graphics/pokemon/wo_chien/back.4bpp.lz"); + const u32 gMonShinyPalette_WoChien[] = INCBIN_U32("graphics/pokemon/wo_chien/shiny.gbapal.lz"); + const u8 gMonIcon_WoChien[] = INCBIN_U8("graphics/pokemon/wo_chien/icon.4bpp"); + // const u8 gMonFootprint_WoChien[] = INCBIN_U8("graphics/pokemon/wo_chien/footprint.1bpp"); +#endif //P_FAMILY_WO_CHIEN + +#if P_FAMILY_CHIEN_PAO + const u32 gMonFrontPic_ChienPao[] = INCBIN_U32("graphics/pokemon/chien_pao/front.4bpp.lz"); + const u32 gMonPalette_ChienPao[] = INCBIN_U32("graphics/pokemon/chien_pao/normal.gbapal.lz"); + const u32 gMonBackPic_ChienPao[] = INCBIN_U32("graphics/pokemon/chien_pao/back.4bpp.lz"); + const u32 gMonShinyPalette_ChienPao[] = INCBIN_U32("graphics/pokemon/chien_pao/shiny.gbapal.lz"); + const u8 gMonIcon_ChienPao[] = INCBIN_U8("graphics/pokemon/chien_pao/icon.4bpp"); + // const u8 gMonFootprint_ChienPao[] = INCBIN_U8("graphics/pokemon/chien_pao/footprint.1bpp"); +#endif //P_FAMILY_CHIEN_PAO + +#if P_FAMILY_TING_LU + const u32 gMonFrontPic_TingLu[] = INCBIN_U32("graphics/pokemon/ting_lu/front.4bpp.lz"); + const u32 gMonPalette_TingLu[] = INCBIN_U32("graphics/pokemon/ting_lu/normal.gbapal.lz"); + const u32 gMonBackPic_TingLu[] = INCBIN_U32("graphics/pokemon/ting_lu/back.4bpp.lz"); + const u32 gMonShinyPalette_TingLu[] = INCBIN_U32("graphics/pokemon/ting_lu/shiny.gbapal.lz"); + const u8 gMonIcon_TingLu[] = INCBIN_U8("graphics/pokemon/ting_lu/icon.4bpp"); + // const u8 gMonFootprint_TingLu[] = INCBIN_U8("graphics/pokemon/ting_lu/footprint.1bpp"); +#endif //P_FAMILY_TING_LU + +#if P_FAMILY_CHI_YU + const u32 gMonFrontPic_ChiYu[] = INCBIN_U32("graphics/pokemon/chi_yu/front.4bpp.lz"); + const u32 gMonPalette_ChiYu[] = INCBIN_U32("graphics/pokemon/chi_yu/normal.gbapal.lz"); + const u32 gMonBackPic_ChiYu[] = INCBIN_U32("graphics/pokemon/chi_yu/back.4bpp.lz"); + const u32 gMonShinyPalette_ChiYu[] = INCBIN_U32("graphics/pokemon/chi_yu/shiny.gbapal.lz"); + const u8 gMonIcon_ChiYu[] = INCBIN_U8("graphics/pokemon/chi_yu/icon.4bpp"); + // const u8 gMonFootprint_ChiYu[] = INCBIN_U8("graphics/pokemon/chi_yu/footprint.1bpp"); +#endif //P_FAMILY_CHI_YU + +#if P_FAMILY_ROARING_MOON + const u32 gMonFrontPic_RoaringMoon[] = INCBIN_U32("graphics/pokemon/roaring_moon/front.4bpp.lz"); + const u32 gMonPalette_RoaringMoon[] = INCBIN_U32("graphics/pokemon/roaring_moon/normal.gbapal.lz"); + const u32 gMonBackPic_RoaringMoon[] = INCBIN_U32("graphics/pokemon/roaring_moon/back.4bpp.lz"); + const u32 gMonShinyPalette_RoaringMoon[] = INCBIN_U32("graphics/pokemon/roaring_moon/shiny.gbapal.lz"); + const u8 gMonIcon_RoaringMoon[] = INCBIN_U8("graphics/pokemon/roaring_moon/icon.4bpp"); + // const u8 gMonFootprint_RoaringMoon[] = INCBIN_U8("graphics/pokemon/roaring_moon/footprint.1bpp"); +#endif //P_FAMILY_ROARING_MOON + +#if P_FAMILY_IRON_VALIANT + const u32 gMonFrontPic_IronValiant[] = INCBIN_U32("graphics/pokemon/iron_valiant/front.4bpp.lz"); + const u32 gMonPalette_IronValiant[] = INCBIN_U32("graphics/pokemon/iron_valiant/normal.gbapal.lz"); + const u32 gMonBackPic_IronValiant[] = INCBIN_U32("graphics/pokemon/iron_valiant/back.4bpp.lz"); + const u32 gMonShinyPalette_IronValiant[] = INCBIN_U32("graphics/pokemon/iron_valiant/shiny.gbapal.lz"); + const u8 gMonIcon_IronValiant[] = INCBIN_U8("graphics/pokemon/iron_valiant/icon.4bpp"); + // const u8 gMonFootprint_IronValiant[] = INCBIN_U8("graphics/pokemon/iron_valiant/footprint.1bpp"); +#endif //P_FAMILY_IRON_VALIANT + +#if P_FAMILY_KORAIDON + const u32 gMonFrontPic_Koraidon[] = INCBIN_U32("graphics/pokemon/koraidon/front.4bpp.lz"); + const u32 gMonPalette_Koraidon[] = INCBIN_U32("graphics/pokemon/koraidon/normal.gbapal.lz"); + const u32 gMonBackPic_Koraidon[] = INCBIN_U32("graphics/pokemon/koraidon/back.4bpp.lz"); + const u32 gMonShinyPalette_Koraidon[] = INCBIN_U32("graphics/pokemon/koraidon/shiny.gbapal.lz"); + const u8 gMonIcon_Koraidon[] = INCBIN_U8("graphics/pokemon/koraidon/icon.4bpp"); + // const u8 gMonFootprint_Koraidon[] = INCBIN_U8("graphics/pokemon/koraidon/footprint.1bpp"); +#endif //P_FAMILY_KORAIDON + +#if P_FAMILY_MIRAIDON + const u32 gMonFrontPic_Miraidon[] = INCBIN_U32("graphics/pokemon/miraidon/front.4bpp.lz"); + const u32 gMonPalette_Miraidon[] = INCBIN_U32("graphics/pokemon/miraidon/normal.gbapal.lz"); + const u32 gMonBackPic_Miraidon[] = INCBIN_U32("graphics/pokemon/miraidon/back.4bpp.lz"); + const u32 gMonShinyPalette_Miraidon[] = INCBIN_U32("graphics/pokemon/miraidon/shiny.gbapal.lz"); + const u8 gMonIcon_Miraidon[] = INCBIN_U8("graphics/pokemon/miraidon/icon.4bpp"); + // const u8 gMonFootprint_Miraidon[] = INCBIN_U8("graphics/pokemon/miraidon/footprint.1bpp"); +#endif //P_FAMILY_MIRAIDON + +#if P_FAMILY_WALKING_WAKE + const u32 gMonFrontPic_WalkingWake[] = INCBIN_U32("graphics/pokemon/walking_wake/front.4bpp.lz"); + const u32 gMonPalette_WalkingWake[] = INCBIN_U32("graphics/pokemon/walking_wake/normal.gbapal.lz"); + const u32 gMonBackPic_WalkingWake[] = INCBIN_U32("graphics/pokemon/walking_wake/back.4bpp.lz"); + const u32 gMonShinyPalette_WalkingWake[] = INCBIN_U32("graphics/pokemon/walking_wake/shiny.gbapal.lz"); + const u8 gMonIcon_WalkingWake[] = INCBIN_U8("graphics/pokemon/walking_wake/icon.4bpp"); + // const u8 gMonFootprint_WalkingWake[] = INCBIN_U8("graphics/pokemon/walking_wake/footprint.1bpp"); +#endif //P_FAMILY_WALKING_WAKE + +#if P_FAMILY_IRON_LEAVES + const u32 gMonFrontPic_IronLeaves[] = INCBIN_U32("graphics/pokemon/iron_leaves/front.4bpp.lz"); + const u32 gMonPalette_IronLeaves[] = INCBIN_U32("graphics/pokemon/iron_leaves/normal.gbapal.lz"); + const u32 gMonBackPic_IronLeaves[] = INCBIN_U32("graphics/pokemon/iron_leaves/back.4bpp.lz"); + const u32 gMonShinyPalette_IronLeaves[] = INCBIN_U32("graphics/pokemon/iron_leaves/shiny.gbapal.lz"); + const u8 gMonIcon_IronLeaves[] = INCBIN_U8("graphics/pokemon/iron_leaves/icon.4bpp"); + // const u8 gMonFootprint_IronLeaves[] = INCBIN_U8("graphics/pokemon/iron_leaves/footprint.1bpp"); +#endif //P_FAMILY_IRON_LEAVES + +#if P_FAMILY_POLTCHAGEIST + const u32 gMonFrontPic_Poltchageist[] = INCBIN_U32("graphics/pokemon/poltchageist/front.4bpp.lz"); + const u32 gMonPalette_Poltchageist[] = INCBIN_U32("graphics/pokemon/poltchageist/normal.gbapal.lz"); + const u32 gMonBackPic_Poltchageist[] = INCBIN_U32("graphics/pokemon/poltchageist/back.4bpp.lz"); + const u32 gMonShinyPalette_Poltchageist[] = INCBIN_U32("graphics/pokemon/poltchageist/shiny.gbapal.lz"); + const u8 gMonIcon_Poltchageist[] = INCBIN_U8("graphics/pokemon/poltchageist/icon.4bpp"); + // const u8 gMonFootprint_Poltchageist[] = INCBIN_U8("graphics/pokemon/poltchageist/footprint.1bpp"); + + const u32 gMonFrontPic_Sinistcha[] = INCBIN_U32("graphics/pokemon/sinistcha/front.4bpp.lz"); + const u32 gMonPalette_Sinistcha[] = INCBIN_U32("graphics/pokemon/sinistcha/normal.gbapal.lz"); + const u32 gMonBackPic_Sinistcha[] = INCBIN_U32("graphics/pokemon/sinistcha/back.4bpp.lz"); + const u32 gMonShinyPalette_Sinistcha[] = INCBIN_U32("graphics/pokemon/sinistcha/shiny.gbapal.lz"); + const u8 gMonIcon_Sinistcha[] = INCBIN_U8("graphics/pokemon/sinistcha/icon.4bpp"); + // const u8 gMonFootprint_Sinistcha[] = INCBIN_U8("graphics/pokemon/sinistcha/footprint.1bpp"); +#endif //P_FAMILY_POLTCHAGEIST + +#if P_FAMILY_OKIDOGI + const u32 gMonFrontPic_Okidogi[] = INCBIN_U32("graphics/pokemon/okidogi/front.4bpp.lz"); + const u32 gMonPalette_Okidogi[] = INCBIN_U32("graphics/pokemon/okidogi/normal.gbapal.lz"); + const u32 gMonBackPic_Okidogi[] = INCBIN_U32("graphics/pokemon/okidogi/back.4bpp.lz"); + const u32 gMonShinyPalette_Okidogi[] = INCBIN_U32("graphics/pokemon/okidogi/shiny.gbapal.lz"); + const u8 gMonIcon_Okidogi[] = INCBIN_U8("graphics/pokemon/okidogi/icon.4bpp"); + // const u8 gMonFootprint_Okidogi[] = INCBIN_U8("graphics/pokemon/okidogi/footprint.1bpp"); +#endif //P_FAMILY_OKIDOGI + +#if P_FAMILY_MUNKIDORI + const u32 gMonFrontPic_Munkidori[] = INCBIN_U32("graphics/pokemon/munkidori/front.4bpp.lz"); + const u32 gMonPalette_Munkidori[] = INCBIN_U32("graphics/pokemon/munkidori/normal.gbapal.lz"); + const u32 gMonBackPic_Munkidori[] = INCBIN_U32("graphics/pokemon/munkidori/back.4bpp.lz"); + const u32 gMonShinyPalette_Munkidori[] = INCBIN_U32("graphics/pokemon/munkidori/shiny.gbapal.lz"); + const u8 gMonIcon_Munkidori[] = INCBIN_U8("graphics/pokemon/munkidori/icon.4bpp"); + // const u8 gMonFootprint_Munkidori[] = INCBIN_U8("graphics/pokemon/munkidori/footprint.1bpp"); +#endif //P_FAMILY_MUNKIDORI + +#if P_FAMILY_FEZANDIPITI + const u32 gMonFrontPic_Fezandipiti[] = INCBIN_U32("graphics/pokemon/fezandipiti/front.4bpp.lz"); + const u32 gMonPalette_Fezandipiti[] = INCBIN_U32("graphics/pokemon/fezandipiti/normal.gbapal.lz"); + const u32 gMonBackPic_Fezandipiti[] = INCBIN_U32("graphics/pokemon/fezandipiti/back.4bpp.lz"); + const u32 gMonShinyPalette_Fezandipiti[] = INCBIN_U32("graphics/pokemon/fezandipiti/shiny.gbapal.lz"); + const u8 gMonIcon_Fezandipiti[] = INCBIN_U8("graphics/pokemon/fezandipiti/icon.4bpp"); + // const u8 gMonFootprint_Fezandipiti[] = INCBIN_U8("graphics/pokemon/fezandipiti/footprint.1bpp"); +#endif //P_FAMILY_FEZANDIPITI + +#if P_FAMILY_OGERPON + const u32 gMonFrontPic_OgerponTealMask[] = INCBIN_U32("graphics/pokemon/ogerpon/front.4bpp.lz"); + const u32 gMonPalette_OgerponTealMask[] = INCBIN_U32("graphics/pokemon/ogerpon/normal.gbapal.lz"); + const u32 gMonBackPic_OgerponTealMask[] = INCBIN_U32("graphics/pokemon/ogerpon/back.4bpp.lz"); + // const u32 gMonShinyPalette_OgerponTealMask[] = INCBIN_U32("graphics/pokemon/ogerpon/shiny.gbapal.lz"); + const u8 gMonIcon_OgerponTealMask[] = INCBIN_U8("graphics/pokemon/ogerpon/icon.4bpp"); + // const u8 gMonFootprint_Ogerpon[] = INCBIN_U8("graphics/pokemon/ogerpon/footprint.1bpp"); + + const u32 gMonFrontPic_OgerponWellspringMask[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring/front.4bpp.lz"); + const u32 gMonPalette_OgerponWellspringMask[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring/normal.gbapal.lz"); + const u32 gMonBackPic_OgerponWellspringMask[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring/back.4bpp.lz"); + // const u32 gMonShinyPalette_OgerponWellspringMask[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring/shiny.gbapal.lz"); + // const u8 gMonIcon_OgerponWellspringMask[] = INCBIN_U8("graphics/pokemon/ogerpon/wellspring/icon.4bpp"); + + const u32 gMonFrontPic_OgerponHearthflameMask[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame/front.4bpp.lz"); + const u32 gMonPalette_OgerponHearthflameMask[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame/normal.gbapal.lz"); + const u32 gMonBackPic_OgerponHearthflameMask[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame/back.4bpp.lz"); + // const u32 gMonShinyPalette_OgerponHearthflameMask[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame/shiny.gbapal.lz"); + // const u8 gMonIcon_OgerponHearthflameMask[] = INCBIN_U8("graphics/pokemon/ogerpon/hearthflame/icon.4bpp"); + + const u32 gMonFrontPic_OgerponCornerstoneMask[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone/front.4bpp.lz"); + const u32 gMonPalette_OgerponCornerstoneMask[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone/normal.gbapal.lz"); + const u32 gMonBackPic_OgerponCornerstoneMask[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone/back.4bpp.lz"); + // const u32 gMonShinyPalette_OgerponCornerstoneMask[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone/shiny.gbapal.lz"); + // const u8 gMonIcon_OgerponCornerstoneMask[] = INCBIN_U8("graphics/pokemon/ogerpon/cornerstone/icon.4bpp"); + + // const u32 gMonFrontPic_OgerponTealMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/tera/front.4bpp.lz"); + // const u32 gMonPalette_OgerponTealMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/tera/normal.gbapal.lz"); + // const u32 gMonBackPic_OgerponTealMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/tera/back.4bpp.lz"); + // const u32 gMonShinyPalette_OgerponTealMaskTera[]] = INCBIN_U32("graphics/pokemon/ogerpon/tera/shiny.gbapal.lz"); + + // const u32 gMonFrontPic_OgerponWellspringMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring/tera/front.4bpp.lz"); + // const u32 gMonPalette_OgerponWellspringMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring/tera/normal.gbapal.lz"); + // const u32 gMonBackPic_OgerponWellspringMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring/tera/back.4bpp.lz"); + // const u32 gMonShinyPalette_OgerponWellspringMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring/tera/shiny.gbapal.lz"); + + // const u32 gMonFrontPic_OgerponHearthflameMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame/tera/front.4bpp.lz"); + // const u32 gMonPalette_OgerponHearthflameMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame/tera/normal.gbapal.lz"); + // const u32 gMonBackPic_OgerponHearthflameMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame/tera/back.4bpp.lz"); + // const u32 gMonShinyPalette_OgerponHearthflameMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame/tera/shiny.gbapal.lz"); + + // const u32 gMonFrontPic_OgerponCornerstoneMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone/tera/front.4bpp.lz"); + // const u32 gMonPalette_OgerponCornerstoneMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone/tera/normal.gbapal.lz"); + // const u32 gMonBackPic_OgerponCornerstoneMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone/tera/back.4bpp.lz"); + // const u32 gMonShinyPalette_OgerponCornerstoneMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone/tera/shiny.gbapal.lz"); +#endif //P_FAMILY_OGERPON + + const u32 gMonFrontPic_Egg[] = INCBIN_U32("graphics/pokemon/egg/anim_front.4bpp.lz"); + const u32 gMonPalette_Egg[] = INCBIN_U32("graphics/pokemon/egg/normal.gbapal.lz"); + const u8 gMonIcon_Egg[] = INCBIN_U8("graphics/pokemon/egg/icon.4bpp"); + diff --git a/src/data/item_icon_table.h b/src/data/item_icon_table.h index d531da87a7c3..12eada8a4356 100644 --- a/src/data/item_icon_table.h +++ b/src/data/item_icon_table.h @@ -792,7 +792,7 @@ const u32 *const gItemIconTable[ITEMS_COUNT + 1][2] = [ITEM_METEORITE] = {gItemIcon_Meteorite, gItemIconPalette_Meteorite}, [ITEM_MAGMA_EMBLEM] = {gItemIcon_MagmaEmblem, gItemIconPalette_MagmaEmblem}, [ITEM_CONTEST_PASS] = {gItemIcon_ContestPass, gItemIconPalette_ContestPass}, - [ITEM_OAKS_PARCEL] = {gItemIcon_OaksParcel, gItemIconPalette_OaksParcel}, + [ITEM_PARCEL] = {gItemIcon_Parcel, gItemIconPalette_Parcel}, [ITEM_SECRET_KEY] = {gItemIcon_SecretKey, gItemIconPalette_SecretKey}, [ITEM_BIKE_VOUCHER] = {gItemIcon_BikeVoucher, gItemIconPalette_BikeVoucher}, [ITEM_GOLD_TEETH] = {gItemIcon_GoldTeeth, gItemIconPalette_GoldTeeth}, @@ -845,21 +845,21 @@ const u32 *const gItemIconTable[ITEMS_COUNT + 1][2] = [ITEM_LINKING_CORD] = {gItemIcon_LinkingCord, gItemIconPalette_LinkingCord}, [ITEM_PEAT_BLOCK] = {gItemIcon_PeatBlock, gItemIconPalette_PeatBlock}, [ITEM_BERSERK_GENE] = {gItemIcon_BerserkGene, gItemIconPalette_BerserkGene}, - [ITEM_FAIRY_FEATHER] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, // {gItemIcon_FairyFeather, gItemIconPalette_FairyFeather}, - [ITEM_SYRUPY_APPLE] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, // {gItemIcon_SyrupyApple, gItemIconPalette_SyrupyApple}, - [ITEM_UNREMARKABLE_TEACUP] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, // {gItemIcon_UnremarkableTeacup, gItemIconPalette_UnremarkableTeacup}, - [ITEM_MASTERPIECE_TEACUP] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, // {gItemIcon_MasterpieceTeacup, gItemIconPalette_MasterpieceTeacup}, - [ITEM_CORNERSTONE_MASK] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, // {gItemIcon_CornerstoneMask, gItemIconPalette_CornerstoneMask}, - [ITEM_WELLSPRING_MASK] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, // {gItemIcon_WellspringMask, gItemIconPalette_WellspringMask}, - [ITEM_HEARTHFLAME_MASK] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, // {gItemIcon_HearthflameMask, gItemIconPalette_HearthflameMask}, - [ITEM_HEALTH_MOCHI] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, // {gItemIcon_Mochi, gItemIconPalette_HealthMochi}, - [ITEM_MUSCLE_MOCHI] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, // {gItemIcon_Mochi, gItemIconPalette_MuscleMochi}, - [ITEM_RESIST_MOCHI] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, // {gItemIcon_Mochi, gItemIconPalette_ResistMochi}, - [ITEM_GENIUS_MOCHI] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, // {gItemIcon_Mochi, gItemIconPalette_GeniusMochi}, - [ITEM_CLEVER_MOCHI] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, // {gItemIcon_Mochi, gItemIconPalette_CleverMochi}, - [ITEM_SWIFT_MOCHI] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, // {gItemIcon_Mochi, gItemIconPalette_SwiftMochi}, - [ITEM_FRESH_START_MOCHI] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, // {gItemIcon_Mochi, gItemIconPalette_FreshStartMochi}, - [ITEM_GLIMMERING_CHARM] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, // {gItemIcon_GlimmeringCharm, gItemIconPalette_GlimmeringCharm}, + [ITEM_FAIRY_FEATHER] = {gItemIcon_FairyFeather, gItemIconPalette_FairyFeather}, + [ITEM_SYRUPY_APPLE] = {gItemIcon_SyrupyApple, gItemIconPalette_SyrupyApple}, + [ITEM_UNREMARKABLE_TEACUP] = {gItemIcon_UnremarkableTeacup, gItemIconPalette_UnremarkableTeacup}, + [ITEM_MASTERPIECE_TEACUP] = {gItemIcon_MasterpieceTeacup, gItemIconPalette_MasterpieceTeacup}, + [ITEM_CORNERSTONE_MASK] = {gItemIcon_CornerstoneMask, gItemIconPalette_CornerstoneMask}, + [ITEM_WELLSPRING_MASK] = {gItemIcon_WellspringMask, gItemIconPalette_WellspringMask}, + [ITEM_HEARTHFLAME_MASK] = {gItemIcon_HearthflameMask, gItemIconPalette_HearthflameMask}, + [ITEM_HEALTH_MOCHI] = {gItemIcon_Mochi, gItemIconPalette_HealthMochi}, + [ITEM_MUSCLE_MOCHI] = {gItemIcon_Mochi, gItemIconPalette_MuscleMochi}, + [ITEM_RESIST_MOCHI] = {gItemIcon_Mochi, gItemIconPalette_ResistMochi}, + [ITEM_GENIUS_MOCHI] = {gItemIcon_Mochi, gItemIconPalette_GeniusMochi}, + [ITEM_CLEVER_MOCHI] = {gItemIcon_Mochi, gItemIconPalette_CleverMochi}, + [ITEM_SWIFT_MOCHI] = {gItemIcon_Mochi, gItemIconPalette_SwiftMochi}, + [ITEM_FRESH_START_MOCHI] = {gItemIcon_Mochi, gItemIconPalette_FreshStartMochi}, + [ITEM_GLIMMERING_CHARM] = {gItemIcon_GlimmeringCharm, gItemIconPalette_GlimmeringCharm}, // Return to field arrow [ITEMS_COUNT] = {gItemIcon_ReturnToFieldArrow, gItemIconPalette_ReturnToFieldArrow}, }; diff --git a/src/data/items.h b/src/data/items.h index d63cb6e7afe9..27e67bae9f58 100644 --- a/src/data/items.h +++ b/src/data/items.h @@ -5036,7 +5036,6 @@ const struct Item gItems[] = .name = _("Luck Incense"), .price = 11000, .holdEffect = HOLD_EFFECT_DOUBLE_PRIZE, - .holdEffectParam = 10, .description = sLuckIncenseDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -5750,7 +5749,6 @@ const struct Item gItems[] = .name = _("Amulet Coin"), .price = 10000, .holdEffect = HOLD_EFFECT_DOUBLE_PRIZE, - .holdEffectParam = 10, .description = sAmuletCoinDesc, .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -6481,14 +6479,6 @@ const struct Item gItems[] = .flingPower = 10, }, -#if B_CONFUSE_BERRIES_HEAL >= GEN_8 - #define CONFUSE_BERRY_HEAL_FRACTION 3 -#elif B_CONFUSE_BERRIES_HEAL == GEN_7 - #define CONFUSE_BERRY_HEAL_FRACTION 2 -#else - #define CONFUSE_BERRY_HEAL_FRACTION 8 -#endif - [ITEM_FIGY_BERRY] = { .name = _("Figy Berry"), @@ -6554,8 +6544,6 @@ const struct Item gItems[] = .flingPower = 10, }, -#undef CONFUSE_BERRY_HEAL_FRACTION - [ITEM_RAZZ_BERRY] = { .name = _("Razz Berry"), @@ -8554,14 +8542,15 @@ const struct Item gItems[] = .importance = 1, .description = sRotomCatalogDesc, .pocket = POCKET_KEY_ITEMS, - .type = ITEM_USE_BAG_MENU, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo + .type = ITEM_USE_PARTY_MENU, + .fieldUseFunc = ItemUseOutOfBattle_RotomCatalog, }, [ITEM_GRACIDEA] = { .name = _("Gracidea"), .price = 0, + .importance = 1, .description = sGracideaDesc, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_PARTY_MENU, @@ -8572,6 +8561,7 @@ const struct Item gItems[] = { .name = _("Reveal Glass"), .price = 0, + .importance = 1, .description = sRevealGlassDesc, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_PARTY_MENU, @@ -8582,10 +8572,11 @@ const struct Item gItems[] = { .name = _("DNA Splicers"), .price = 0, + .importance = 1, .description = sDNASplicersDesc, .pocket = POCKET_KEY_ITEMS, - .type = ITEM_USE_BAG_MENU, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo: ItemUseOutOfBattle_FormChange_Fusion + .type = ITEM_USE_PARTY_MENU, + .fieldUseFunc = ItemUseOutOfBattle_Fusion, }, [ITEM_ZYGARDE_CUBE] = @@ -8595,14 +8586,15 @@ const struct Item gItems[] = .importance = 1, .description = sZygardeCubeDesc, .pocket = POCKET_KEY_ITEMS, - .type = ITEM_USE_BAG_MENU, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo + .type = ITEM_USE_PARTY_MENU, + .fieldUseFunc = ItemUseOutOfBattle_ZygardeCube, }, [ITEM_PRISON_BOTTLE] = { .name = _("Prison Bottle"), .price = 0, + .importance = 1, .description = sPrisonBottleDesc, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_PARTY_MENU, @@ -8613,30 +8605,33 @@ const struct Item gItems[] = { .name = _("N-Solarizer"), .price = 0, + .importance = 1, .description = sNSolarizerDesc, .pocket = POCKET_KEY_ITEMS, - .type = ITEM_USE_BAG_MENU, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo: ItemUseOutOfBattle_FormChange_Fusion + .type = ITEM_USE_PARTY_MENU, + .fieldUseFunc = ItemUseOutOfBattle_Fusion, }, [ITEM_N_LUNARIZER] = { .name = _("N-Lunarizer"), .price = 0, + .importance = 1, .description = sNLunarizerDesc, .pocket = POCKET_KEY_ITEMS, - .type = ITEM_USE_BAG_MENU, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo: ItemUseOutOfBattle_FormChange_Fusion + .type = ITEM_USE_PARTY_MENU, + .fieldUseFunc = ItemUseOutOfBattle_Fusion, }, [ITEM_REINS_OF_UNITY] = { .name = _("ReinsOfUnity"), .price = 0, + .importance = 1, .description = sReinsOfUnityDesc, .pocket = POCKET_KEY_ITEMS, - .type = ITEM_USE_BAG_MENU, - .fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo: ItemUseOutOfBattle_FormChange_Fusion + .type = ITEM_USE_PARTY_MENU, + .fieldUseFunc = ItemUseOutOfBattle_Fusion, }, // Battle Mechanic Key Items @@ -8776,7 +8771,11 @@ const struct Item gItems[] = .importance = 1, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_FIELD, +#if I_VS_SEEKER_CHARGING != 0 + .fieldUseFunc = FieldUseFunc_VsSeeker, +#else .fieldUseFunc = ItemUseOutOfBattle_CannotUse, +#endif }, [ITEM_TM_CASE] = @@ -9123,11 +9122,11 @@ const struct Item gItems[] = .fieldUseFunc = ItemUseOutOfBattle_CannotUse, }, - [ITEM_OAKS_PARCEL] = + [ITEM_PARCEL] = { - .name = _("Oak's Parcel"), + .name = _("Parcel"), .price = 0, - .description = sOaksParcelDesc, + .description = sParcelDesc, .importance = 2, .pocket = POCKET_KEY_ITEMS, .type = ITEM_USE_BAG_MENU, diff --git a/src/data/object_events/movement_action_func_tables.h b/src/data/object_events/movement_action_func_tables.h index 5736cc2acf71..d5dcd65cff0f 100755 --- a/src/data/object_events/movement_action_func_tables.h +++ b/src/data/object_events/movement_action_func_tables.h @@ -427,6 +427,8 @@ u8 (*const gMovementActionFuncs_StopLevitateAtTop[])(struct ObjectEvent *, struc u8 (*const gMovementActionFuncs_Figure8[])(struct ObjectEvent *, struct Sprite *); u8 (*const gMovementActionFuncs_FlyUp[])(struct ObjectEvent *, struct Sprite *); u8 (*const gMovementActionFuncs_FlyDown[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_EmoteX[])(struct ObjectEvent *, struct Sprite *); +u8 (*const gMovementActionFuncs_EmoteDoubleExclMark[])(struct ObjectEvent *, struct Sprite *); u8 (*const *const gMovementActionFuncs[])(struct ObjectEvent *, struct Sprite *) = { [MOVEMENT_ACTION_FACE_DOWN] = gMovementActionFuncs_FaceDown, @@ -589,6 +591,8 @@ u8 (*const *const gMovementActionFuncs[])(struct ObjectEvent *, struct Sprite *) [MOVEMENT_ACTION_FLY_DOWN] = gMovementActionFuncs_FlyDown, [MOVEMENT_ACTION_EXIT_POKEBALL] = gMovementActionFuncs_ExitPokeball, [MOVEMENT_ACTION_ENTER_POKEBALL] = gMovementActionFuncs_EnterPokeball, + [MOVEMENT_ACTION_EMOTE_X] = gMovementActionFuncs_EmoteX, + [MOVEMENT_ACTION_EMOTE_DOUBLE_EXCL_MARK] = gMovementActionFuncs_EmoteDoubleExclMark, }; u8 (*const gMovementActionFuncs_FaceDown[])(struct ObjectEvent *, struct Sprite *) = { @@ -1540,3 +1544,13 @@ u8 (*const gMovementActionFuncs_StopLevitateAtTop[])(struct ObjectEvent *, struc MovementAction_StopLevitateAtTop_Step0, MovementAction_Finish, }; + +u8 (*const gMovementActionFuncs_EmoteX[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_EmoteX_Step0, + MovementAction_Finish, +}; + +u8 (*const gMovementActionFuncs_EmoteDoubleExclMark[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_EmoteDoubleExclamationMark_Step0, + MovementAction_Finish, +}; diff --git a/src/data/party_menu.h b/src/data/party_menu.h index 6890de324877..6b1a875a7b4f 100644 --- a/src/data/party_menu.h +++ b/src/data/party_menu.h @@ -482,6 +482,17 @@ static const struct WindowTemplate sAlreadyHoldingOneMsgWindowTemplate = .baseBlock = 0x299, }; +static const struct WindowTemplate sOrderWhichApplianceMsgWindowTemplate = +{ + .bg = 2, + .tilemapLeft = 1, + .tilemapTop = 15, + .width = 14, + .height = 4, + .paletteNum = 15, + .baseBlock = 0x299, +}; + static const struct WindowTemplate sItemGiveTakeWindowTemplate = { .bg = 2, @@ -515,6 +526,28 @@ static const struct WindowTemplate sMoveSelectWindowTemplate = .baseBlock = 0x2E9, }; +static const struct WindowTemplate sCatalogSelectWindowTemplate = +{ + .bg = 2, + .tilemapLeft = 17, + .tilemapTop = 5, + .width = 12, + .height = 14, + .paletteNum = 14, + .baseBlock = 0x2E9, +}; + +static const struct WindowTemplate sZygardeCubeSelectWindowTemplate = +{ + .bg = 2, + .tilemapLeft = 18, + .tilemapTop = 13, + .width = 11, + .height = 6, + .paletteNum = 14, + .baseBlock = 0x2E9, +}; + static const struct WindowTemplate sPartyMenuYesNoWindowTemplate = { .bg = 2, @@ -624,6 +657,8 @@ static const u8 *const sActionStringTable[] = [PARTY_MSG_DO_WHAT_WITH_ITEM] = gText_DoWhatWithItem, [PARTY_MSG_DO_WHAT_WITH_MAIL] = gText_DoWhatWithMail, [PARTY_MSG_ALREADY_HOLDING_ONE] = gText_AlreadyHoldingOne, + [PARTY_MSG_WHICH_APPLIANCE] = gText_WhichAppliance, + [PARTY_MSG_CHOOSE_SECOND_FUSION] = gText_NextFusionMon, }; static const u8 *const sDescriptionStringTable[] = @@ -676,6 +711,14 @@ struct [MENU_TRADE1] = {gText_Trade4, CursorCb_Trade1}, [MENU_TRADE2] = {gText_Trade4, CursorCb_Trade2}, [MENU_TOSS] = {gMenuText_Toss, CursorCb_Toss}, + [MENU_CATALOG_BULB] = {gText_LightBulb, CursorCb_CatalogBulb}, + [MENU_CATALOG_OVEN] = {gText_MicrowaveOven, CursorCb_CatalogOven}, + [MENU_CATALOG_WASHING] = {gText_WashingMachine, CursorCb_CatalogWashing}, + [MENU_CATALOG_FRIDGE] = {gText_Refrigerator, CursorCb_CatalogFridge}, + [MENU_CATALOG_FAN] = {gText_ElectricFan, CursorCb_CatalogFan}, + [MENU_CATALOG_MOWER] = {gText_LawnMower, CursorCb_CatalogMower}, + [MENU_CHANGE_FORM] = {gText_ChangeForm, CursorCb_ChangeForm}, + [MENU_CHANGE_ABILITY] = {gText_ChangeAbility, CursorCb_ChangeAbility}, [MENU_FIELD_MOVES + FIELD_MOVE_CUT] = {gMoveNames[MOVE_CUT], CursorCb_FieldMove}, [MENU_FIELD_MOVES + FIELD_MOVE_FLASH] = {gMoveNames[MOVE_FLASH], CursorCb_FieldMove}, [MENU_FIELD_MOVES + FIELD_MOVE_ROCK_SMASH] = {gMoveNames[MOVE_ROCK_SMASH], CursorCb_FieldMove}, @@ -705,6 +748,10 @@ static const u8 sPartyMenuAction_RegisterSummaryCancel[] = {MENU_REGISTER, MENU_ static const u8 sPartyMenuAction_TradeSummaryCancel1[] = {MENU_TRADE1, MENU_SUMMARY, MENU_CANCEL1}; static const u8 sPartyMenuAction_TradeSummaryCancel2[] = {MENU_TRADE2, MENU_SUMMARY, MENU_CANCEL1}; static const u8 sPartyMenuAction_TakeItemTossCancel[] = {MENU_TAKE_ITEM, MENU_TOSS, MENU_CANCEL1}; +static const u8 sPartyMenuAction_RotomCatalog[] = {MENU_CATALOG_BULB, MENU_CATALOG_OVEN, MENU_CATALOG_WASHING, MENU_CATALOG_FRIDGE, MENU_CATALOG_FAN, MENU_CATALOG_MOWER, MENU_CANCEL1}; +static const u8 sPartyMenuAction_ZygardeCube[] = {MENU_CHANGE_FORM, MENU_CHANGE_ABILITY, MENU_CANCEL1}; + + static const u8 *const sPartyMenuActions[] = { @@ -722,6 +769,8 @@ static const u8 *const sPartyMenuActions[] = [ACTIONS_TRADE] = sPartyMenuAction_TradeSummaryCancel1, [ACTIONS_SPIN_TRADE] = sPartyMenuAction_TradeSummaryCancel2, [ACTIONS_TAKEITEM_TOSS] = sPartyMenuAction_TakeItemTossCancel, + [ACTIONS_ROTOM_CATALOG] = sPartyMenuAction_RotomCatalog, + [ACTIONS_ZYGARDE_CUBE] = sPartyMenuAction_ZygardeCube, }; static const u8 sPartyMenuActionCounts[] = @@ -739,7 +788,9 @@ static const u8 sPartyMenuActionCounts[] = [ACTIONS_REGISTER] = ARRAY_COUNT(sPartyMenuAction_RegisterSummaryCancel), [ACTIONS_TRADE] = ARRAY_COUNT(sPartyMenuAction_TradeSummaryCancel1), [ACTIONS_SPIN_TRADE] = ARRAY_COUNT(sPartyMenuAction_TradeSummaryCancel2), - [ACTIONS_TAKEITEM_TOSS] = ARRAY_COUNT(sPartyMenuAction_TakeItemTossCancel) + [ACTIONS_TAKEITEM_TOSS] = ARRAY_COUNT(sPartyMenuAction_TakeItemTossCancel), + [ACTIONS_ROTOM_CATALOG] = ARRAY_COUNT(sPartyMenuAction_RotomCatalog), + [ACTIONS_ZYGARDE_CUBE] = ARRAY_COUNT(sPartyMenuAction_ZygardeCube), }; static const u16 sFieldMoves[FIELD_MOVES_COUNT + 1] = @@ -1102,3 +1153,12 @@ static const u8 *const sUnused_StatStrings[] = gText_SpDef4, gText_Speed2 }; + +static const u16 sRotomFormChangeMoves[5] = +{ + MOVE_HYDRO_PUMP, + MOVE_BLIZZARD, + MOVE_OVERHEAT, + MOVE_AIR_SLASH, + MOVE_LEAF_STORM, +}; diff --git a/src/data/pokemon/egg_moves.h b/src/data/pokemon/egg_moves.h index 1a71800e3afd..4db494e875c4 100644 --- a/src/data/pokemon/egg_moves.h +++ b/src/data/pokemon/egg_moves.h @@ -1,3 +1,5 @@ +#include "constants/moves.h" + #define EGG_MOVES_SPECIES_OFFSET 20000 #define EGG_MOVES_TERMINATOR 0xFFFF #define egg_moves(species, moves...) (SPECIES_##species + EGG_MOVES_SPECIES_OFFSET), moves @@ -4416,11 +4418,276 @@ const u16 gEggMoves[] = { MOVE_REFLECT_TYPE), #endif + egg_moves(WOOPER_PALDEAN, + MOVE_ACID_SPRAY, + MOVE_AFTER_YOU, + MOVE_ANCIENT_POWER, + MOVE_COUNTER, + MOVE_CURSE, + MOVE_DOUBLE_KICK, + MOVE_HAZE, + MOVE_MIST, + MOVE_RECOVER, + MOVE_SPIT_UP, + MOVE_STOCKPILE, + MOVE_SWALLOW), + + egg_moves(TAUROS_PALDEAN_COMBAT_BREED, + MOVE_CURSE, + MOVE_ENDEAVOR), + + egg_moves(TAUROS_PALDEAN_BLAZE_BREED, + MOVE_CURSE, + MOVE_ENDEAVOR), + + egg_moves(TAUROS_PALDEAN_AQUA_BREED, + MOVE_CURSE, + MOVE_ENDEAVOR), + egg_moves(INDEEDEE_FEMALE, MOVE_PSYCH_UP, MOVE_FAKE_OUT, MOVE_PSYCHO_SHIFT, MOVE_HEAL_PULSE), +#if P_GEN_9_POKEMON == TRUE + egg_moves(SPRIGATITO, + MOVE_ALLY_SWITCH, + MOVE_COPYCAT, + MOVE_LEECH_SEED, + MOVE_PETAL_BLIZZARD, + MOVE_SUCKER_PUNCH), + + egg_moves(FUECOCO, + MOVE_BELCH, + MOVE_CURSE, + MOVE_ENCORE, + MOVE_SLACK_OFF), + + egg_moves(QUAXLY, + MOVE_DETECT, + MOVE_LAST_RESORT, + MOVE_RAPID_SPIN, + MOVE_ROOST), + + egg_moves(LECHONK, + MOVE_ENDEAVOR, + MOVE_SPIT_UP, + MOVE_STOCKPILE, + MOVE_STUFF_CHEEKS, + MOVE_SWALLOW), + + egg_moves(TAROUNTULA, + MOVE_FIRST_IMPRESSION, + MOVE_LUNGE, + MOVE_MEMENTO, + MOVE_SUCKER_PUNCH), + + egg_moves(NYMBLE, + MOVE_COUNTER, + MOVE_SKITTER_SMACK), + + egg_moves(PAWMI, + MOVE_FAKE_OUT, + MOVE_MACH_PUNCH, + MOVE_SWEET_KISS, + MOVE_WISH), + + egg_moves(TANDEMAUS, + MOVE_AFTER_YOU, + MOVE_BATON_PASS, + MOVE_BITE, + MOVE_FEINT, + MOVE_SWITCHEROO, + MOVE_TICKLE), + + egg_moves(FIDOUGH, + MOVE_COPYCAT, + MOVE_HOWL, + MOVE_SWEET_SCENT, + MOVE_WISH, + MOVE_YAWN), + + egg_moves(SMOLIV, + MOVE_MEMENTO, + MOVE_STRENGTH_SAP, + MOVE_SYNTHESIS, + MOVE_WEATHER_BALL), + + egg_moves(SQUAWKABILLY, + MOVE_DOUBLE_EDGE, + MOVE_FINAL_GAMBIT, + MOVE_FLATTER, + MOVE_PARTING_SHOT), + + egg_moves(NACLI, + MOVE_ANCIENT_POWER, + MOVE_CURSE, + MOVE_FISSURE, + MOVE_POWER_GEM), + + egg_moves(CHARCADET, + MOVE_DESTINY_BOND, + MOVE_DISABLE, + MOVE_SPITE), + + egg_moves(TADBULB, + MOVE_MUDDY_WATER, + MOVE_PARABOLIC_CHARGE, + MOVE_SOAK), + + egg_moves(WATTREL, + MOVE_ENDEAVOR, + MOVE_FEATHER_DANCE, + MOVE_SPIT_UP, + MOVE_STOCKPILE, + MOVE_SWALLOW, + MOVE_WEATHER_BALL), + + egg_moves(MASCHIFF, + MOVE_DESTINY_BOND, + MOVE_ENDEAVOR, + MOVE_PLAY_ROUGH, + MOVE_RETALIATE), + + egg_moves(SHROODLE, + MOVE_COPYCAT, + MOVE_CROSS_POISON, + MOVE_PARTING_SHOT, + MOVE_SUPER_FANG, + MOVE_SWAGGER, + MOVE_TOXIC), + + egg_moves(BRAMBLIN, + MOVE_BEAT_UP, + MOVE_BLOCK, + MOVE_LEECH_SEED, + MOVE_SHADOW_SNEAK, + MOVE_STRENGTH_SAP), + + egg_moves(TOEDSCOOL, + MOVE_ACUPRESSURE, + MOVE_KNOCK_OFF, + MOVE_LEECH_SEED, + MOVE_MIRROR_COAT, + MOVE_RAGE_POWDER, + MOVE_RAPID_SPIN, + MOVE_TICKLE, + MOVE_TOXIC), + + egg_moves(KLAWF, + MOVE_ANCIENT_POWER, + MOVE_CRABHAMMER, + MOVE_ENDEAVOR, + MOVE_KNOCK_OFF), + + egg_moves(CAPSAKID, + MOVE_INGRAIN, + MOVE_LEECH_SEED, + MOVE_RAGE_POWDER, + MOVE_ROLLOUT, + MOVE_WORRY_SEED), + + egg_moves(RELLOR, + MOVE_COSMIC_POWER, + MOVE_MEMENTO, + MOVE_RECOVER, + MOVE_WEATHER_BALL), + + egg_moves(FLITTLE, + MOVE_ALLY_SWITCH, + MOVE_HYPNOSIS, + MOVE_ROOST), + + egg_moves(TINKATINK, + MOVE_FEINT, + MOVE_ICE_HAMMER, + MOVE_QUASH), + + egg_moves(WIGLETT, + MOVE_FINAL_GAMBIT, + MOVE_MEMENTO), + + egg_moves(BOMBIRDIER, + MOVE_FEATHER_DANCE, + MOVE_POWER_TRIP, + MOVE_ROOST, + MOVE_SKY_ATTACK, + MOVE_SUCKER_PUNCH), + + egg_moves(FINIZEN, + MOVE_BOOMBURST, + MOVE_BOUNCE, + MOVE_COUNTER, + MOVE_HAZE, + MOVE_TICKLE), + + egg_moves(VAROOM, + MOVE_HAZE, + MOVE_PARTING_SHOT, + MOVE_SELF_DESTRUCT, + MOVE_TORMENT, + MOVE_TOXIC), + + egg_moves(CYCLIZAR, + MOVE_AQUA_TAIL, + MOVE_IRON_TAIL, + MOVE_KNOCK_OFF, + MOVE_POWER_WHIP), + + egg_moves(ORTHWORM, + MOVE_COIL, + MOVE_CURSE, + MOVE_METAL_BURST), + + egg_moves(GLIMMET, + MOVE_EXPLOSION, + MOVE_MEMENTO, + MOVE_TOXIC), + + egg_moves(GREAVARD, + MOVE_ALLY_SWITCH, + MOVE_DESTINY_BOND, + MOVE_DISABLE, + MOVE_HOWL, + MOVE_MEMENTO, + MOVE_SHADOW_SNEAK, + MOVE_YAWN), + + egg_moves(FLAMIGO, + MOVE_DOUBLE_TEAM, + MOVE_QUICK_GUARD, + MOVE_SKY_ATTACK), + + egg_moves(CETODDLE, + MOVE_BELLY_DRUM, + MOVE_ENTRAINMENT, + MOVE_ICICLE_CRASH, + MOVE_SUPERPOWER, + MOVE_YAWN), + + egg_moves(VELUZA, + MOVE_RECOVER, + MOVE_THRASH), + + egg_moves(DONDOZO, + MOVE_CURSE, + MOVE_FISSURE, + MOVE_THRASH, + MOVE_YAWN), + + egg_moves(TATSUGIRI, + MOVE_BATON_PASS, + MOVE_COUNTER, + MOVE_RAPID_SPIN), + + egg_moves(FRIGIBAX, + MOVE_AQUA_TAIL, + MOVE_DRAGON_RUSH, + MOVE_FREEZE_DRY, + MOVE_ICICLE_SPEAR), + +#endif + EGG_MOVES_TERMINATOR }; diff --git a/src/data/pokemon/evolution.h b/src/data/pokemon/evolution.h deleted file mode 100644 index 8b3bc8023c72..000000000000 --- a/src/data/pokemon/evolution.h +++ /dev/null @@ -1,608 +0,0 @@ -const struct Evolution gEvolutionTable[NUM_SPECIES][EVOS_PER_MON] = -{ - [SPECIES_BULBASAUR] = {{EVO_LEVEL, 16, SPECIES_IVYSAUR}}, - [SPECIES_IVYSAUR] = {{EVO_LEVEL, 32, SPECIES_VENUSAUR}}, - [SPECIES_CHARMANDER] = {{EVO_LEVEL, 16, SPECIES_CHARMELEON}}, - [SPECIES_CHARMELEON] = {{EVO_LEVEL, 36, SPECIES_CHARIZARD}}, - [SPECIES_SQUIRTLE] = {{EVO_LEVEL, 16, SPECIES_WARTORTLE}}, - [SPECIES_WARTORTLE] = {{EVO_LEVEL, 36, SPECIES_BLASTOISE}}, - [SPECIES_CATERPIE] = {{EVO_LEVEL, 7, SPECIES_METAPOD}}, - [SPECIES_METAPOD] = {{EVO_LEVEL, 10, SPECIES_BUTTERFREE}}, - [SPECIES_WEEDLE] = {{EVO_LEVEL, 7, SPECIES_KAKUNA}}, - [SPECIES_KAKUNA] = {{EVO_LEVEL, 10, SPECIES_BEEDRILL}}, - [SPECIES_PIDGEY] = {{EVO_LEVEL, 18, SPECIES_PIDGEOTTO}}, - [SPECIES_PIDGEOTTO] = {{EVO_LEVEL, 36, SPECIES_PIDGEOT}}, - [SPECIES_RATTATA] = {{EVO_LEVEL, 20, SPECIES_RATICATE}}, - [SPECIES_SPEAROW] = {{EVO_LEVEL, 20, SPECIES_FEAROW}}, - [SPECIES_EKANS] = {{EVO_LEVEL, 22, SPECIES_ARBOK}}, - [SPECIES_PIKACHU] = {{EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_RAICHU}, - {EVO_NONE, 0, SPECIES_RAICHU_ALOLAN}}, - [SPECIES_SANDSHREW] = {{EVO_LEVEL, 22, SPECIES_SANDSLASH}}, - [SPECIES_NIDORAN_F] = {{EVO_LEVEL, 16, SPECIES_NIDORINA}}, - [SPECIES_NIDORINA] = {{EVO_ITEM, ITEM_MOON_STONE, SPECIES_NIDOQUEEN}}, - [SPECIES_NIDORAN_M] = {{EVO_LEVEL, 16, SPECIES_NIDORINO}}, - [SPECIES_NIDORINO] = {{EVO_ITEM, ITEM_MOON_STONE, SPECIES_NIDOKING}}, - [SPECIES_CLEFAIRY] = {{EVO_ITEM, ITEM_MOON_STONE, SPECIES_CLEFABLE}}, - [SPECIES_VULPIX] = {{EVO_ITEM, ITEM_FIRE_STONE, SPECIES_NINETALES}}, - [SPECIES_JIGGLYPUFF] = {{EVO_ITEM, ITEM_MOON_STONE, SPECIES_WIGGLYTUFF}}, - [SPECIES_ZUBAT] = {{EVO_LEVEL, 22, SPECIES_GOLBAT}}, - [SPECIES_GOLBAT] = {{EVO_FRIENDSHIP, 0, SPECIES_CROBAT}}, - [SPECIES_ODDISH] = {{EVO_LEVEL, 21, SPECIES_GLOOM}}, - [SPECIES_GLOOM] = {{EVO_ITEM, ITEM_LEAF_STONE, SPECIES_VILEPLUME}, - {EVO_ITEM, ITEM_SUN_STONE, SPECIES_BELLOSSOM}}, - [SPECIES_PARAS] = {{EVO_LEVEL, 24, SPECIES_PARASECT}}, - [SPECIES_VENONAT] = {{EVO_LEVEL, 31, SPECIES_VENOMOTH}}, - [SPECIES_DIGLETT] = {{EVO_LEVEL, 26, SPECIES_DUGTRIO}}, - [SPECIES_MEOWTH] = {{EVO_LEVEL, 28, SPECIES_PERSIAN}}, - [SPECIES_PSYDUCK] = {{EVO_LEVEL, 33, SPECIES_GOLDUCK}}, - [SPECIES_MANKEY] = {{EVO_LEVEL, 28, SPECIES_PRIMEAPE}}, - [SPECIES_GROWLITHE] = {{EVO_ITEM, ITEM_FIRE_STONE, SPECIES_ARCANINE}}, - [SPECIES_GROWLITHE_HISUIAN] = {{EVO_ITEM, ITEM_FIRE_STONE, SPECIES_ARCANINE_HISUIAN}}, - [SPECIES_POLIWAG] = {{EVO_LEVEL, 25, SPECIES_POLIWHIRL}}, - [SPECIES_POLIWHIRL] = {{EVO_ITEM, ITEM_WATER_STONE, SPECIES_POLIWRATH}, - {EVO_TRADE_ITEM, ITEM_KINGS_ROCK, SPECIES_POLITOED}, - {EVO_ITEM, ITEM_KINGS_ROCK, SPECIES_POLITOED}}, - [SPECIES_ABRA] = {{EVO_LEVEL, 16, SPECIES_KADABRA}}, - [SPECIES_KADABRA] = {{EVO_TRADE, 0, SPECIES_ALAKAZAM}, - {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_ALAKAZAM}}, - [SPECIES_MACHOP] = {{EVO_LEVEL, 28, SPECIES_MACHOKE}}, - [SPECIES_MACHOKE] = {{EVO_TRADE, 0, SPECIES_MACHAMP}, - {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_MACHAMP}}, - [SPECIES_BELLSPROUT] = {{EVO_LEVEL, 21, SPECIES_WEEPINBELL}}, - [SPECIES_WEEPINBELL] = {{EVO_ITEM, ITEM_LEAF_STONE, SPECIES_VICTREEBEL}}, - [SPECIES_TENTACOOL] = {{EVO_LEVEL, 30, SPECIES_TENTACRUEL}}, - [SPECIES_GEODUDE] = {{EVO_LEVEL, 25, SPECIES_GRAVELER}}, - [SPECIES_GRAVELER] = {{EVO_TRADE, 0, SPECIES_GOLEM}, - {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_GOLEM}}, - [SPECIES_PONYTA] = {{EVO_LEVEL, 40, SPECIES_RAPIDASH}}, - [SPECIES_SLOWPOKE] = {{EVO_LEVEL, 37, SPECIES_SLOWBRO}, - {EVO_TRADE_ITEM, ITEM_KINGS_ROCK, SPECIES_SLOWKING}, - {EVO_ITEM, ITEM_KINGS_ROCK, SPECIES_SLOWKING}}, - [SPECIES_MAGNEMITE] = {{EVO_LEVEL, 30, SPECIES_MAGNETON}}, -#if P_GEN_4_POKEMON == TRUE - [SPECIES_MAGNETON] = {{EVO_MAPSEC, MAPSEC_NEW_MAUVILLE, SPECIES_MAGNEZONE}, - {EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_MAGNEZONE}}, -#endif - [SPECIES_DODUO] = {{EVO_LEVEL, 31, SPECIES_DODRIO}}, - [SPECIES_SEEL] = {{EVO_LEVEL, 34, SPECIES_DEWGONG}}, - [SPECIES_GRIMER] = {{EVO_LEVEL, 38, SPECIES_MUK}}, - [SPECIES_SHELLDER] = {{EVO_ITEM, ITEM_WATER_STONE, SPECIES_CLOYSTER}}, - [SPECIES_GASTLY] = {{EVO_LEVEL, 25, SPECIES_HAUNTER}}, - [SPECIES_HAUNTER] = {{EVO_TRADE, 0, SPECIES_GENGAR}, - {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_GENGAR}}, - [SPECIES_ONIX] = {{EVO_TRADE_ITEM, ITEM_METAL_COAT, SPECIES_STEELIX}, - {EVO_ITEM, ITEM_METAL_COAT, SPECIES_STEELIX}}, - [SPECIES_DROWZEE] = {{EVO_LEVEL, 26, SPECIES_HYPNO}}, - [SPECIES_KRABBY] = {{EVO_LEVEL, 28, SPECIES_KINGLER}}, - [SPECIES_VOLTORB] = {{EVO_LEVEL, 30, SPECIES_ELECTRODE}}, - [SPECIES_VOLTORB_HISUIAN] = {{EVO_ITEM, ITEM_LEAF_STONE, SPECIES_ELECTRODE_HISUIAN}}, - [SPECIES_EXEGGCUTE] = {{EVO_ITEM, ITEM_LEAF_STONE, SPECIES_EXEGGUTOR}, - {EVO_NONE, 0, SPECIES_EXEGGUTOR_ALOLAN}}, - [SPECIES_CUBONE] = {{EVO_LEVEL, 28, SPECIES_MAROWAK}, - {EVO_NONE, 0, SPECIES_MAROWAK_ALOLAN}}, -#if P_GEN_4_POKEMON == TRUE - [SPECIES_LICKITUNG] = {{EVO_MOVE, MOVE_ROLLOUT, SPECIES_LICKILICKY}}, -#endif - [SPECIES_KOFFING] = {{EVO_LEVEL, 35, SPECIES_WEEZING}, - {EVO_NONE, 0, SPECIES_WEEZING_GALARIAN}}, - [SPECIES_RHYHORN] = {{EVO_LEVEL, 42, SPECIES_RHYDON}}, -#if P_GEN_4_POKEMON == TRUE - [SPECIES_RHYDON] = {{EVO_TRADE_ITEM, ITEM_PROTECTOR, SPECIES_RHYPERIOR}, - {EVO_ITEM, ITEM_PROTECTOR, SPECIES_RHYPERIOR}}, -#endif - [SPECIES_CHANSEY] = {{EVO_FRIENDSHIP, 0, SPECIES_BLISSEY}}, -#if P_GEN_4_POKEMON == TRUE - [SPECIES_TANGELA] = {{EVO_MOVE, MOVE_ANCIENT_POWER, SPECIES_TANGROWTH}}, -#endif - [SPECIES_HORSEA] = {{EVO_LEVEL, 32, SPECIES_SEADRA}}, - [SPECIES_SEADRA] = {{EVO_TRADE_ITEM, ITEM_DRAGON_SCALE, SPECIES_KINGDRA}, - {EVO_ITEM, ITEM_DRAGON_SCALE, SPECIES_KINGDRA}}, - [SPECIES_GOLDEEN] = {{EVO_LEVEL, 33, SPECIES_SEAKING}}, - [SPECIES_STARYU] = {{EVO_ITEM, ITEM_WATER_STONE, SPECIES_STARMIE}}, - [SPECIES_SCYTHER] = {{EVO_TRADE_ITEM, ITEM_METAL_COAT, SPECIES_SCIZOR}, - {EVO_ITEM, ITEM_BLACK_AUGURITE, SPECIES_KLEAVOR}, - {EVO_ITEM, ITEM_METAL_COAT, SPECIES_SCIZOR}}, -#if P_GEN_4_POKEMON == TRUE - [SPECIES_ELECTABUZZ] = {{EVO_TRADE_ITEM, ITEM_ELECTIRIZER, SPECIES_ELECTIVIRE}, - {EVO_ITEM, ITEM_ELECTIRIZER, SPECIES_ELECTIVIRE}}, - [SPECIES_MAGMAR] = {{EVO_TRADE_ITEM, ITEM_MAGMARIZER, SPECIES_MAGMORTAR}, - {EVO_ITEM, ITEM_MAGMARIZER, SPECIES_MAGMORTAR}}, -#endif - [SPECIES_MAGIKARP] = {{EVO_LEVEL, 20, SPECIES_GYARADOS}}, - [SPECIES_EEVEE] = {{EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_JOLTEON}, - {EVO_ITEM, ITEM_WATER_STONE, SPECIES_VAPOREON}, - {EVO_ITEM, ITEM_FIRE_STONE, SPECIES_FLAREON}, - {EVO_FRIENDSHIP_DAY, 0, SPECIES_ESPEON}, - {EVO_FRIENDSHIP_NIGHT, 0, SPECIES_UMBREON}, - #if P_GEN_4_POKEMON == TRUE - {EVO_SPECIFIC_MAP, MAP_PETALBURG_WOODS, SPECIES_LEAFEON}, - {EVO_ITEM, ITEM_LEAF_STONE, SPECIES_LEAFEON}, - {EVO_SPECIFIC_MAP, MAP_SHOAL_CAVE_LOW_TIDE_ICE_ROOM, SPECIES_GLACEON}, - {EVO_ITEM, ITEM_ICE_STONE, SPECIES_GLACEON}, - #endif - #if P_GEN_6_POKEMON == TRUE - {EVO_FRIENDSHIP_MOVE_TYPE, TYPE_FAIRY, SPECIES_SYLVEON} - #endif - }, - [SPECIES_PORYGON] = {{EVO_TRADE_ITEM, ITEM_UPGRADE, SPECIES_PORYGON2}, - {EVO_ITEM, ITEM_UPGRADE, SPECIES_PORYGON2}}, - [SPECIES_OMANYTE] = {{EVO_LEVEL, 40, SPECIES_OMASTAR}}, - [SPECIES_KABUTO] = {{EVO_LEVEL, 40, SPECIES_KABUTOPS}}, - [SPECIES_DRATINI] = {{EVO_LEVEL, 30, SPECIES_DRAGONAIR}}, - [SPECIES_DRAGONAIR] = {{EVO_LEVEL, 55, SPECIES_DRAGONITE}}, - [SPECIES_CHIKORITA] = {{EVO_LEVEL, 16, SPECIES_BAYLEEF}}, - [SPECIES_BAYLEEF] = {{EVO_LEVEL, 32, SPECIES_MEGANIUM}}, - [SPECIES_CYNDAQUIL] = {{EVO_LEVEL, 14, SPECIES_QUILAVA}}, - [SPECIES_QUILAVA] = {{EVO_LEVEL, 36, SPECIES_TYPHLOSION}, - {EVO_NONE, 0, SPECIES_TYPHLOSION_HISUIAN}}, - [SPECIES_TOTODILE] = {{EVO_LEVEL, 18, SPECIES_CROCONAW}}, - [SPECIES_CROCONAW] = {{EVO_LEVEL, 30, SPECIES_FERALIGATR}}, - [SPECIES_SENTRET] = {{EVO_LEVEL, 15, SPECIES_FURRET}}, - [SPECIES_HOOTHOOT] = {{EVO_LEVEL, 20, SPECIES_NOCTOWL}}, - [SPECIES_LEDYBA] = {{EVO_LEVEL, 18, SPECIES_LEDIAN}}, - [SPECIES_SPINARAK] = {{EVO_LEVEL, 22, SPECIES_ARIADOS}}, - [SPECIES_CHINCHOU] = {{EVO_LEVEL, 27, SPECIES_LANTURN}}, - [SPECIES_PICHU] = {{EVO_FRIENDSHIP, 0, SPECIES_PIKACHU}}, - [SPECIES_CLEFFA] = {{EVO_FRIENDSHIP, 0, SPECIES_CLEFAIRY}}, - [SPECIES_IGGLYBUFF] = {{EVO_FRIENDSHIP, 0, SPECIES_JIGGLYPUFF}}, - [SPECIES_TOGEPI] = {{EVO_FRIENDSHIP, 0, SPECIES_TOGETIC}}, -#if P_GEN_4_POKEMON == TRUE - [SPECIES_TOGETIC] = {{EVO_ITEM, ITEM_SHINY_STONE, SPECIES_TOGEKISS}}, -#endif - [SPECIES_NATU] = {{EVO_LEVEL, 25, SPECIES_XATU}}, - [SPECIES_MAREEP] = {{EVO_LEVEL, 15, SPECIES_FLAAFFY}}, - [SPECIES_FLAAFFY] = {{EVO_LEVEL, 30, SPECIES_AMPHAROS}}, - [SPECIES_MARILL] = {{EVO_LEVEL, 18, SPECIES_AZUMARILL}}, - [SPECIES_HOPPIP] = {{EVO_LEVEL, 18, SPECIES_SKIPLOOM}}, - [SPECIES_SKIPLOOM] = {{EVO_LEVEL, 27, SPECIES_JUMPLUFF}}, - [SPECIES_AIPOM] = {{EVO_MOVE, MOVE_DOUBLE_HIT, SPECIES_AMBIPOM}}, - [SPECIES_SUNKERN] = {{EVO_ITEM, ITEM_SUN_STONE, SPECIES_SUNFLORA}}, -#if P_GEN_4_POKEMON == TRUE - [SPECIES_YANMA] = {{EVO_MOVE, MOVE_ANCIENT_POWER, SPECIES_YANMEGA}}, -#endif - [SPECIES_WOOPER] = {{EVO_LEVEL, 20, SPECIES_QUAGSIRE}}, -#if P_GEN_4_POKEMON == TRUE - [SPECIES_MURKROW] = {{EVO_ITEM, ITEM_DUSK_STONE, SPECIES_HONCHKROW}}, - [SPECIES_MISDREAVUS] = {{EVO_ITEM, ITEM_DUSK_STONE, SPECIES_MISMAGIUS}}, -#endif - [SPECIES_PINECO] = {{EVO_LEVEL, 31, SPECIES_FORRETRESS}}, -#if P_GEN_4_POKEMON == TRUE - [SPECIES_GLIGAR] = {{EVO_ITEM_HOLD_NIGHT, ITEM_RAZOR_FANG, SPECIES_GLISCOR}, - {EVO_ITEM_NIGHT, ITEM_RAZOR_FANG, SPECIES_GLISCOR}}, -#endif - [SPECIES_SNUBBULL] = {{EVO_LEVEL, 23, SPECIES_GRANBULL}}, -#if P_GEN_4_POKEMON == TRUE - [SPECIES_SNEASEL] = {{EVO_ITEM_HOLD_NIGHT, ITEM_RAZOR_CLAW, SPECIES_WEAVILE}, - {EVO_ITEM_NIGHT, ITEM_RAZOR_CLAW, SPECIES_WEAVILE}}, -#endif - [SPECIES_TEDDIURSA] = {{EVO_LEVEL, 30, SPECIES_URSARING}}, - [SPECIES_SLUGMA] = {{EVO_LEVEL, 38, SPECIES_MAGCARGO}}, - [SPECIES_SWINUB] = {{EVO_LEVEL, 33, SPECIES_PILOSWINE}}, -#if P_GEN_4_POKEMON == TRUE - [SPECIES_PILOSWINE] = {{EVO_MOVE, MOVE_ANCIENT_POWER, SPECIES_MAMOSWINE}}, -#endif - [SPECIES_REMORAID] = {{EVO_LEVEL, 25, SPECIES_OCTILLERY}}, - [SPECIES_HOUNDOUR] = {{EVO_LEVEL, 24, SPECIES_HOUNDOOM}}, - [SPECIES_PHANPY] = {{EVO_LEVEL, 25, SPECIES_DONPHAN}}, -#if P_GEN_4_POKEMON == TRUE - [SPECIES_PORYGON2] = {{EVO_TRADE_ITEM, ITEM_DUBIOUS_DISC, SPECIES_PORYGON_Z}, - {EVO_ITEM, ITEM_DUBIOUS_DISC, SPECIES_PORYGON_Z}}, -#endif - [SPECIES_TYROGUE] = {{EVO_LEVEL_ATK_LT_DEF, 20, SPECIES_HITMONCHAN}, - {EVO_LEVEL_ATK_GT_DEF, 20, SPECIES_HITMONLEE}, - {EVO_LEVEL_ATK_EQ_DEF, 20, SPECIES_HITMONTOP}}, - [SPECIES_SMOOCHUM] = {{EVO_LEVEL, 30, SPECIES_JYNX}}, - [SPECIES_ELEKID] = {{EVO_LEVEL, 30, SPECIES_ELECTABUZZ}}, - [SPECIES_MAGBY] = {{EVO_LEVEL, 30, SPECIES_MAGMAR}}, - [SPECIES_LARVITAR] = {{EVO_LEVEL, 30, SPECIES_PUPITAR}}, - [SPECIES_PUPITAR] = {{EVO_LEVEL, 55, SPECIES_TYRANITAR}}, - [SPECIES_TREECKO] = {{EVO_LEVEL, 16, SPECIES_GROVYLE}}, - [SPECIES_GROVYLE] = {{EVO_LEVEL, 36, SPECIES_SCEPTILE}}, - [SPECIES_TORCHIC] = {{EVO_LEVEL, 16, SPECIES_COMBUSKEN}}, - [SPECIES_COMBUSKEN] = {{EVO_LEVEL, 36, SPECIES_BLAZIKEN}}, - [SPECIES_MUDKIP] = {{EVO_LEVEL, 16, SPECIES_MARSHTOMP}}, - [SPECIES_MARSHTOMP] = {{EVO_LEVEL, 36, SPECIES_SWAMPERT}}, - [SPECIES_POOCHYENA] = {{EVO_LEVEL, 18, SPECIES_MIGHTYENA}}, - [SPECIES_ZIGZAGOON] = {{EVO_LEVEL, 20, SPECIES_LINOONE}}, - [SPECIES_WURMPLE] = {{EVO_LEVEL_SILCOON, 7, SPECIES_SILCOON}, - {EVO_LEVEL_CASCOON, 7, SPECIES_CASCOON}}, - [SPECIES_SILCOON] = {{EVO_LEVEL, 10, SPECIES_BEAUTIFLY}}, - [SPECIES_CASCOON] = {{EVO_LEVEL, 10, SPECIES_DUSTOX}}, - [SPECIES_LOTAD] = {{EVO_LEVEL, 14, SPECIES_LOMBRE}}, - [SPECIES_LOMBRE] = {{EVO_ITEM, ITEM_WATER_STONE, SPECIES_LUDICOLO}}, - [SPECIES_SEEDOT] = {{EVO_LEVEL, 14, SPECIES_NUZLEAF}}, - [SPECIES_NUZLEAF] = {{EVO_ITEM, ITEM_LEAF_STONE, SPECIES_SHIFTRY}}, - [SPECIES_NINCADA] = {{EVO_LEVEL_NINJASK, 20, SPECIES_NINJASK}, - {EVO_LEVEL_SHEDINJA, 20, SPECIES_SHEDINJA}}, - [SPECIES_TAILLOW] = {{EVO_LEVEL, 22, SPECIES_SWELLOW}}, - [SPECIES_SHROOMISH] = {{EVO_LEVEL, 23, SPECIES_BRELOOM}}, - [SPECIES_WINGULL] = {{EVO_LEVEL, 25, SPECIES_PELIPPER}}, - [SPECIES_SURSKIT] = {{EVO_LEVEL, 22, SPECIES_MASQUERAIN}}, - [SPECIES_WAILMER] = {{EVO_LEVEL, 40, SPECIES_WAILORD}}, - [SPECIES_SKITTY] = {{EVO_ITEM, ITEM_MOON_STONE, SPECIES_DELCATTY}}, - [SPECIES_BALTOY] = {{EVO_LEVEL, 36, SPECIES_CLAYDOL}}, -#if P_GEN_4_POKEMON == TRUE - [SPECIES_NOSEPASS] = {{EVO_MAPSEC, MAPSEC_NEW_MAUVILLE, SPECIES_PROBOPASS}, - {EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_PROBOPASS}}, -#endif - [SPECIES_BARBOACH] = {{EVO_LEVEL, 30, SPECIES_WHISCASH}}, - [SPECIES_CORPHISH] = {{EVO_LEVEL, 30, SPECIES_CRAWDAUNT}}, - [SPECIES_FEEBAS] = {{EVO_BEAUTY, 170, SPECIES_MILOTIC}, - {EVO_TRADE_ITEM, ITEM_PRISM_SCALE, SPECIES_MILOTIC}, - {EVO_ITEM, ITEM_PRISM_SCALE, SPECIES_MILOTIC}}, - [SPECIES_CARVANHA] = {{EVO_LEVEL, 30, SPECIES_SHARPEDO}}, - [SPECIES_TRAPINCH] = {{EVO_LEVEL, 35, SPECIES_VIBRAVA}}, - [SPECIES_VIBRAVA] = {{EVO_LEVEL, 45, SPECIES_FLYGON}}, - [SPECIES_MAKUHITA] = {{EVO_LEVEL, 24, SPECIES_HARIYAMA}}, - [SPECIES_ELECTRIKE] = {{EVO_LEVEL, 26, SPECIES_MANECTRIC}}, - [SPECIES_NUMEL] = {{EVO_LEVEL, 33, SPECIES_CAMERUPT}}, - [SPECIES_SPHEAL] = {{EVO_LEVEL, 32, SPECIES_SEALEO}}, - [SPECIES_SEALEO] = {{EVO_LEVEL, 44, SPECIES_WALREIN}}, - [SPECIES_CACNEA] = {{EVO_LEVEL, 32, SPECIES_CACTURNE}}, - [SPECIES_SNORUNT] = {{EVO_LEVEL, 42, SPECIES_GLALIE}, - #if P_GEN_4_POKEMON == TRUE - {EVO_ITEM_FEMALE, ITEM_DAWN_STONE, SPECIES_FROSLASS} - #endif - }, - [SPECIES_AZURILL] = {{EVO_FRIENDSHIP, 0, SPECIES_MARILL}}, - [SPECIES_SPOINK] = {{EVO_LEVEL, 32, SPECIES_GRUMPIG}}, - [SPECIES_MEDITITE] = {{EVO_LEVEL, 37, SPECIES_MEDICHAM}}, - [SPECIES_SWABLU] = {{EVO_LEVEL, 35, SPECIES_ALTARIA}}, - [SPECIES_WYNAUT] = {{EVO_LEVEL, 15, SPECIES_WOBBUFFET}}, - [SPECIES_DUSKULL] = {{EVO_LEVEL, 37, SPECIES_DUSCLOPS}}, -#if P_GEN_4_POKEMON == TRUE - [SPECIES_DUSCLOPS] = {{EVO_TRADE_ITEM, ITEM_REAPER_CLOTH, SPECIES_DUSKNOIR}, - {EVO_ITEM, ITEM_REAPER_CLOTH, SPECIES_DUSKNOIR}}, - [SPECIES_ROSELIA] = {{EVO_ITEM, ITEM_SHINY_STONE, SPECIES_ROSERADE}}, -#endif - [SPECIES_SLAKOTH] = {{EVO_LEVEL, 18, SPECIES_VIGOROTH}}, - [SPECIES_VIGOROTH] = {{EVO_LEVEL, 36, SPECIES_SLAKING}}, - [SPECIES_GULPIN] = {{EVO_LEVEL, 26, SPECIES_SWALOT}}, - [SPECIES_WHISMUR] = {{EVO_LEVEL, 20, SPECIES_LOUDRED}}, - [SPECIES_LOUDRED] = {{EVO_LEVEL, 40, SPECIES_EXPLOUD}}, - [SPECIES_CLAMPERL] = {{EVO_TRADE_ITEM, ITEM_DEEP_SEA_TOOTH, SPECIES_HUNTAIL}, - {EVO_TRADE_ITEM, ITEM_DEEP_SEA_SCALE, SPECIES_GOREBYSS}, - {EVO_ITEM, ITEM_DEEP_SEA_TOOTH, SPECIES_HUNTAIL}, - {EVO_ITEM, ITEM_DEEP_SEA_SCALE, SPECIES_GOREBYSS}}, - [SPECIES_SHUPPET] = {{EVO_LEVEL, 37, SPECIES_BANETTE}}, - [SPECIES_ARON] = {{EVO_LEVEL, 32, SPECIES_LAIRON}}, - [SPECIES_LAIRON] = {{EVO_LEVEL, 42, SPECIES_AGGRON}}, - [SPECIES_LILEEP] = {{EVO_LEVEL, 40, SPECIES_CRADILY}}, - [SPECIES_ANORITH] = {{EVO_LEVEL, 40, SPECIES_ARMALDO}}, - [SPECIES_RALTS] = {{EVO_LEVEL, 20, SPECIES_KIRLIA}}, - [SPECIES_KIRLIA] = {{EVO_LEVEL, 30, SPECIES_GARDEVOIR}, - #if P_GEN_4_POKEMON == TRUE - {EVO_ITEM_MALE, ITEM_DAWN_STONE, SPECIES_GALLADE} - #endif - }, - [SPECIES_BAGON] = {{EVO_LEVEL, 30, SPECIES_SHELGON}}, - [SPECIES_SHELGON] = {{EVO_LEVEL, 50, SPECIES_SALAMENCE}}, - [SPECIES_BELDUM] = {{EVO_LEVEL, 20, SPECIES_METANG}}, - [SPECIES_METANG] = {{EVO_LEVEL, 45, SPECIES_METAGROSS}}, -#if P_GEN_4_POKEMON == TRUE - // Gens 4-7 - [SPECIES_TURTWIG] = {{EVO_LEVEL, 18, SPECIES_GROTLE}}, - [SPECIES_GROTLE] = {{EVO_LEVEL, 32, SPECIES_TORTERRA}}, - [SPECIES_CHIMCHAR] = {{EVO_LEVEL, 14, SPECIES_MONFERNO}}, - [SPECIES_MONFERNO] = {{EVO_LEVEL, 36, SPECIES_INFERNAPE}}, - [SPECIES_PIPLUP] = {{EVO_LEVEL, 16, SPECIES_PRINPLUP}}, - [SPECIES_PRINPLUP] = {{EVO_LEVEL, 36, SPECIES_EMPOLEON}}, - [SPECIES_STARLY] = {{EVO_LEVEL, 14, SPECIES_STARAVIA}}, - [SPECIES_STARAVIA] = {{EVO_LEVEL, 34, SPECIES_STARAPTOR}}, - [SPECIES_BIDOOF] = {{EVO_LEVEL, 15, SPECIES_BIBAREL}}, - [SPECIES_KRICKETOT] = {{EVO_LEVEL, 10, SPECIES_KRICKETUNE}}, - [SPECIES_SHINX] = {{EVO_LEVEL, 15, SPECIES_LUXIO}}, - [SPECIES_LUXIO] = {{EVO_LEVEL, 30, SPECIES_LUXRAY}}, - [SPECIES_BUDEW] = {{EVO_FRIENDSHIP_DAY, 0, SPECIES_ROSELIA}}, - [SPECIES_CRANIDOS] = {{EVO_LEVEL, 30, SPECIES_RAMPARDOS}}, - [SPECIES_SHIELDON] = {{EVO_LEVEL, 30, SPECIES_BASTIODON}}, - [SPECIES_BURMY_PLANT_CLOAK] = {{EVO_LEVEL_FEMALE, 20, SPECIES_WORMADAM_PLANT_CLOAK}, - {EVO_LEVEL_MALE, 20, SPECIES_MOTHIM}}, - [SPECIES_COMBEE] = {{EVO_LEVEL_FEMALE, 21, SPECIES_VESPIQUEN}}, - [SPECIES_BUIZEL] = {{EVO_LEVEL, 26, SPECIES_FLOATZEL}}, - [SPECIES_CHERUBI] = {{EVO_LEVEL, 25, SPECIES_CHERRIM_OVERCAST}}, - [SPECIES_SHELLOS_WEST_SEA] = {{EVO_LEVEL, 30, SPECIES_GASTRODON_WEST_SEA}}, - [SPECIES_DRIFLOON] = {{EVO_LEVEL, 28, SPECIES_DRIFBLIM}}, - [SPECIES_BUNEARY] = {{EVO_FRIENDSHIP, 0, SPECIES_LOPUNNY}}, - [SPECIES_GLAMEOW] = {{EVO_LEVEL, 38, SPECIES_PURUGLY}}, - [SPECIES_CHINGLING] = {{EVO_FRIENDSHIP_NIGHT, 0, SPECIES_CHIMECHO}}, - [SPECIES_STUNKY] = {{EVO_LEVEL, 34, SPECIES_SKUNTANK}}, - [SPECIES_BRONZOR] = {{EVO_LEVEL, 33, SPECIES_BRONZONG}}, - [SPECIES_BONSLY] = {{EVO_MOVE, MOVE_MIMIC, SPECIES_SUDOWOODO}}, - [SPECIES_MIME_JR] = {{EVO_MOVE, MOVE_MIMIC, SPECIES_MR_MIME}, - {EVO_NONE, 0, SPECIES_MR_MIME_GALARIAN}}, - [SPECIES_HAPPINY] = {{EVO_ITEM_HOLD_DAY, ITEM_OVAL_STONE, SPECIES_CHANSEY}, - {EVO_ITEM_DAY, ITEM_OVAL_STONE, SPECIES_CHANSEY}}, - [SPECIES_GIBLE] = {{EVO_LEVEL, 24, SPECIES_GABITE}}, - [SPECIES_GABITE] = {{EVO_LEVEL, 48, SPECIES_GARCHOMP}}, - [SPECIES_MUNCHLAX] = {{EVO_FRIENDSHIP, 0, SPECIES_SNORLAX}}, - [SPECIES_RIOLU] = {{EVO_FRIENDSHIP_DAY, 0, SPECIES_LUCARIO}}, - [SPECIES_HIPPOPOTAS] = {{EVO_LEVEL, 34, SPECIES_HIPPOWDON}}, - [SPECIES_SKORUPI] = {{EVO_LEVEL, 40, SPECIES_DRAPION}}, - [SPECIES_CROAGUNK] = {{EVO_LEVEL, 37, SPECIES_TOXICROAK}}, - [SPECIES_FINNEON] = {{EVO_LEVEL, 31, SPECIES_LUMINEON}}, - [SPECIES_MANTYKE] = {{EVO_SPECIFIC_MON_IN_PARTY, SPECIES_REMORAID, SPECIES_MANTINE}}, - [SPECIES_SNOVER] = {{EVO_LEVEL, 40, SPECIES_ABOMASNOW}}, -#endif -#if P_GEN_5_POKEMON == TRUE - [SPECIES_SNIVY] = {{EVO_LEVEL, 17, SPECIES_SERVINE}}, - [SPECIES_SERVINE] = {{EVO_LEVEL, 36, SPECIES_SERPERIOR}}, - [SPECIES_TEPIG] = {{EVO_LEVEL, 17, SPECIES_PIGNITE}}, - [SPECIES_PIGNITE] = {{EVO_LEVEL, 36, SPECIES_EMBOAR}}, - [SPECIES_OSHAWOTT] = {{EVO_LEVEL, 17, SPECIES_DEWOTT}}, - [SPECIES_DEWOTT] = {{EVO_LEVEL, 36, SPECIES_SAMUROTT}, - {EVO_NONE, 0, SPECIES_SAMUROTT_HISUIAN}}, - [SPECIES_PATRAT] = {{EVO_LEVEL, 20, SPECIES_WATCHOG}}, - [SPECIES_LILLIPUP] = {{EVO_LEVEL, 16, SPECIES_HERDIER}}, - [SPECIES_HERDIER] = {{EVO_LEVEL, 32, SPECIES_STOUTLAND}}, - [SPECIES_PURRLOIN] = {{EVO_LEVEL, 20, SPECIES_LIEPARD}}, - [SPECIES_PANSAGE] = {{EVO_ITEM, ITEM_LEAF_STONE, SPECIES_SIMISAGE}}, - [SPECIES_PANSEAR] = {{EVO_ITEM, ITEM_FIRE_STONE, SPECIES_SIMISEAR}}, - [SPECIES_PANPOUR] = {{EVO_ITEM, ITEM_WATER_STONE, SPECIES_SIMIPOUR}}, - [SPECIES_MUNNA] = {{EVO_ITEM, ITEM_MOON_STONE, SPECIES_MUSHARNA}}, - [SPECIES_PIDOVE] = {{EVO_LEVEL, 21, SPECIES_TRANQUILL}}, - [SPECIES_TRANQUILL] = {{EVO_LEVEL, 32, SPECIES_UNFEZANT}}, - [SPECIES_BLITZLE] = {{EVO_LEVEL, 27, SPECIES_ZEBSTRIKA}}, - [SPECIES_ROGGENROLA] = {{EVO_LEVEL, 25, SPECIES_BOLDORE}}, - [SPECIES_BOLDORE] = {{EVO_TRADE, 0, SPECIES_GIGALITH}, - {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_GIGALITH}}, - [SPECIES_WOOBAT] = {{EVO_FRIENDSHIP, 0, SPECIES_SWOOBAT}}, - [SPECIES_DRILBUR] = {{EVO_LEVEL, 31, SPECIES_EXCADRILL}}, - [SPECIES_TIMBURR] = {{EVO_LEVEL, 25, SPECIES_GURDURR}}, - [SPECIES_GURDURR] = {{EVO_TRADE, 0, SPECIES_CONKELDURR}, - {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_CONKELDURR}}, - [SPECIES_TYMPOLE] = {{EVO_LEVEL, 25, SPECIES_PALPITOAD}}, - [SPECIES_PALPITOAD] = {{EVO_LEVEL, 36, SPECIES_SEISMITOAD}}, - [SPECIES_SEWADDLE] = {{EVO_LEVEL, 20, SPECIES_SWADLOON}}, - [SPECIES_SWADLOON] = {{EVO_FRIENDSHIP, 0, SPECIES_LEAVANNY}}, - [SPECIES_VENIPEDE] = {{EVO_LEVEL, 22, SPECIES_WHIRLIPEDE}}, - [SPECIES_WHIRLIPEDE] = {{EVO_LEVEL, 30, SPECIES_SCOLIPEDE}}, - [SPECIES_COTTONEE] = {{EVO_ITEM, ITEM_SUN_STONE, SPECIES_WHIMSICOTT}}, - [SPECIES_PETILIL] = {{EVO_ITEM, ITEM_SUN_STONE, SPECIES_LILLIGANT}, - {EVO_NONE, 0, SPECIES_LILLIGANT_HISUIAN}}, - [SPECIES_SANDILE] = {{EVO_LEVEL, 29, SPECIES_KROKOROK}}, - [SPECIES_KROKOROK] = {{EVO_LEVEL, 40, SPECIES_KROOKODILE}}, - [SPECIES_DARUMAKA] = {{EVO_LEVEL, 35, SPECIES_DARMANITAN_STANDARD_MODE}}, - [SPECIES_DWEBBLE] = {{EVO_LEVEL, 34, SPECIES_CRUSTLE}}, - [SPECIES_SCRAGGY] = {{EVO_LEVEL, 39, SPECIES_SCRAFTY}}, - [SPECIES_YAMASK] = {{EVO_LEVEL, 34, SPECIES_COFAGRIGUS}}, - [SPECIES_TIRTOUGA] = {{EVO_LEVEL, 37, SPECIES_CARRACOSTA}}, - [SPECIES_ARCHEN] = {{EVO_LEVEL, 37, SPECIES_ARCHEOPS}}, - [SPECIES_TRUBBISH] = {{EVO_LEVEL, 36, SPECIES_GARBODOR}}, - [SPECIES_ZORUA] = {{EVO_LEVEL, 30, SPECIES_ZOROARK}}, - [SPECIES_ZORUA_HISUIAN] = {{EVO_LEVEL, 30, SPECIES_ZOROARK_HISUIAN}}, - [SPECIES_MINCCINO] = {{EVO_ITEM, ITEM_SHINY_STONE, SPECIES_CINCCINO}}, - [SPECIES_GOTHITA] = {{EVO_LEVEL, 32, SPECIES_GOTHORITA}}, - [SPECIES_GOTHORITA] = {{EVO_LEVEL, 41, SPECIES_GOTHITELLE}}, - [SPECIES_SOLOSIS] = {{EVO_LEVEL, 32, SPECIES_DUOSION}}, - [SPECIES_DUOSION] = {{EVO_LEVEL, 41, SPECIES_REUNICLUS}}, - [SPECIES_DUCKLETT] = {{EVO_LEVEL, 35, SPECIES_SWANNA}}, - [SPECIES_VANILLITE] = {{EVO_LEVEL, 35, SPECIES_VANILLISH}}, - [SPECIES_VANILLISH] = {{EVO_LEVEL, 47, SPECIES_VANILLUXE}}, - [SPECIES_DEERLING_SPRING] = {{EVO_LEVEL, 34, SPECIES_SAWSBUCK_SPRING}}, - [SPECIES_KARRABLAST] = {{EVO_TRADE_SPECIFIC_MON, SPECIES_SHELMET, SPECIES_ESCAVALIER}}, - [SPECIES_FOONGUS] = {{EVO_LEVEL, 39, SPECIES_AMOONGUSS}}, - [SPECIES_FRILLISH] = {{EVO_LEVEL, 40, SPECIES_JELLICENT}}, - [SPECIES_JOLTIK] = {{EVO_LEVEL, 36, SPECIES_GALVANTULA}}, - [SPECIES_FERROSEED] = {{EVO_LEVEL, 40, SPECIES_FERROTHORN}}, - [SPECIES_KLINK] = {{EVO_LEVEL, 38, SPECIES_KLANG}}, - [SPECIES_KLANG] = {{EVO_LEVEL, 49, SPECIES_KLINKLANG}}, - [SPECIES_TYNAMO] = {{EVO_LEVEL, 39, SPECIES_EELEKTRIK}}, - [SPECIES_EELEKTRIK] = {{EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_EELEKTROSS}}, - [SPECIES_ELGYEM] = {{EVO_LEVEL, 42, SPECIES_BEHEEYEM}}, - [SPECIES_LITWICK] = {{EVO_LEVEL, 41, SPECIES_LAMPENT}}, - [SPECIES_LAMPENT] = {{EVO_ITEM, ITEM_DUSK_STONE, SPECIES_CHANDELURE}}, - [SPECIES_AXEW] = {{EVO_LEVEL, 38, SPECIES_FRAXURE}}, - [SPECIES_FRAXURE] = {{EVO_LEVEL, 48, SPECIES_HAXORUS}}, - [SPECIES_CUBCHOO] = {{EVO_LEVEL, 37, SPECIES_BEARTIC}}, - [SPECIES_SHELMET] = {{EVO_TRADE_SPECIFIC_MON, SPECIES_KARRABLAST, SPECIES_ACCELGOR}}, - [SPECIES_MIENFOO] = {{EVO_LEVEL, 50, SPECIES_MIENSHAO}}, - [SPECIES_GOLETT] = {{EVO_LEVEL, 43, SPECIES_GOLURK}}, - [SPECIES_PAWNIARD] = {{EVO_LEVEL, 52, SPECIES_BISHARP}}, - [SPECIES_RUFFLET] = {{EVO_LEVEL, 54, SPECIES_BRAVIARY}, - {EVO_NONE, 0, SPECIES_BRAVIARY_HISUIAN}}, - [SPECIES_VULLABY] = {{EVO_LEVEL, 54, SPECIES_MANDIBUZZ}}, - [SPECIES_DEINO] = {{EVO_LEVEL, 50, SPECIES_ZWEILOUS}}, - [SPECIES_ZWEILOUS] = {{EVO_LEVEL, 64, SPECIES_HYDREIGON}}, - [SPECIES_LARVESTA] = {{EVO_LEVEL, 59, SPECIES_VOLCARONA}}, -#endif -#if P_GEN_6_POKEMON == TRUE - [SPECIES_CHESPIN] = {{EVO_LEVEL, 16, SPECIES_QUILLADIN}}, - [SPECIES_QUILLADIN] = {{EVO_LEVEL, 36, SPECIES_CHESNAUGHT}}, - [SPECIES_FENNEKIN] = {{EVO_LEVEL, 16, SPECIES_BRAIXEN}}, - [SPECIES_BRAIXEN] = {{EVO_LEVEL, 36, SPECIES_DELPHOX}}, - [SPECIES_FROAKIE] = {{EVO_LEVEL, 16, SPECIES_FROGADIER}}, - [SPECIES_FROGADIER] = {{EVO_LEVEL, 36, SPECIES_GRENINJA}}, - [SPECIES_BUNNELBY] = {{EVO_LEVEL, 20, SPECIES_DIGGERSBY}}, - [SPECIES_FLETCHLING] = {{EVO_LEVEL, 17, SPECIES_FLETCHINDER}}, - [SPECIES_FLETCHINDER] = {{EVO_LEVEL, 35, SPECIES_TALONFLAME}}, - [SPECIES_SCATTERBUG] = {{EVO_LEVEL, 9, SPECIES_SPEWPA}}, - [SPECIES_SPEWPA] = {{EVO_LEVEL, 12, SPECIES_VIVILLON_ICY_SNOW}}, - [SPECIES_LITLEO] = {{EVO_LEVEL, 35, SPECIES_PYROAR}}, - [SPECIES_FLABEBE_RED_FLOWER] = {{EVO_LEVEL, 19, SPECIES_FLOETTE_RED_FLOWER}}, - [SPECIES_FLOETTE_RED_FLOWER] = {{EVO_ITEM, ITEM_SHINY_STONE, SPECIES_FLORGES_RED_FLOWER}}, - [SPECIES_SKIDDO] = {{EVO_LEVEL, 32, SPECIES_GOGOAT}}, - [SPECIES_PANCHAM] = {{EVO_LEVEL_DARK_TYPE_MON_IN_PARTY, 32, SPECIES_PANGORO}}, - [SPECIES_ESPURR] = {{EVO_LEVEL_MALE, 25, SPECIES_MEOWSTIC_MALE}, - {EVO_LEVEL_FEMALE, 25, SPECIES_MEOWSTIC_FEMALE}}, - [SPECIES_HONEDGE] = {{EVO_LEVEL, 35, SPECIES_DOUBLADE}}, - [SPECIES_DOUBLADE] = {{EVO_ITEM, ITEM_DUSK_STONE, SPECIES_AEGISLASH_SHIELD}}, - [SPECIES_SPRITZEE] = {{EVO_TRADE_ITEM, ITEM_SACHET, SPECIES_AROMATISSE}, - {EVO_ITEM, ITEM_SACHET, SPECIES_AROMATISSE}}, - [SPECIES_SWIRLIX] = {{EVO_TRADE_ITEM, ITEM_WHIPPED_DREAM, SPECIES_SLURPUFF}, - {EVO_ITEM, ITEM_WHIPPED_DREAM, SPECIES_SLURPUFF}}, - [SPECIES_INKAY] = {{EVO_LEVEL, 30, SPECIES_MALAMAR}}, - [SPECIES_BINACLE] = {{EVO_LEVEL, 39, SPECIES_BARBARACLE}}, - [SPECIES_SKRELP] = {{EVO_LEVEL, 48, SPECIES_DRAGALGE}}, - [SPECIES_CLAUNCHER] = {{EVO_LEVEL, 37, SPECIES_CLAWITZER}}, - [SPECIES_HELIOPTILE] = {{EVO_ITEM, ITEM_SUN_STONE, SPECIES_HELIOLISK}}, - [SPECIES_TYRUNT] = {{EVO_LEVEL_DAY, 39, SPECIES_TYRANTRUM}}, - [SPECIES_AMAURA] = {{EVO_LEVEL_NIGHT, 39, SPECIES_AURORUS}}, - [SPECIES_GOOMY] = {{EVO_LEVEL, 40, SPECIES_SLIGGOO}, - {EVO_NONE, 0, SPECIES_SLIGGOO_HISUIAN}}, - [SPECIES_SLIGGOO] = {{EVO_LEVEL_RAIN, 50, SPECIES_GOODRA}, - {EVO_LEVEL_FOG, 50, SPECIES_GOODRA}}, - [SPECIES_SLIGGOO_HISUIAN] = {{EVO_LEVEL_RAIN, 50, SPECIES_GOODRA_HISUIAN}, - {EVO_LEVEL_FOG, 50, SPECIES_GOODRA_HISUIAN}}, - [SPECIES_PHANTUMP] = {{EVO_TRADE, 0, SPECIES_TREVENANT}, - {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_TREVENANT}}, - [SPECIES_PUMPKABOO_AVERAGE] = {{EVO_TRADE, 0, SPECIES_GOURGEIST_AVERAGE}, - {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_GOURGEIST_AVERAGE}}, - [SPECIES_BERGMITE] = {{EVO_LEVEL, 37, SPECIES_AVALUGG}, - {EVO_NONE, 0, SPECIES_AVALUGG_HISUIAN}}, - [SPECIES_NOIBAT] = {{EVO_LEVEL, 48, SPECIES_NOIVERN}}, -#endif -#if P_GEN_7_POKEMON == TRUE - [SPECIES_ROWLET] = {{EVO_LEVEL, 17, SPECIES_DARTRIX}}, - [SPECIES_DARTRIX] = {{EVO_LEVEL, 34, SPECIES_DECIDUEYE}, - {EVO_NONE, 0, SPECIES_DECIDUEYE_HISUIAN}}, - [SPECIES_LITTEN] = {{EVO_LEVEL, 17, SPECIES_TORRACAT}}, - [SPECIES_TORRACAT] = {{EVO_LEVEL, 34, SPECIES_INCINEROAR}}, - [SPECIES_POPPLIO] = {{EVO_LEVEL, 17, SPECIES_BRIONNE}}, - [SPECIES_BRIONNE] = {{EVO_LEVEL, 34, SPECIES_PRIMARINA}}, - [SPECIES_PIKIPEK] = {{EVO_LEVEL, 14, SPECIES_TRUMBEAK}}, - [SPECIES_TRUMBEAK] = {{EVO_LEVEL, 28, SPECIES_TOUCANNON}}, - [SPECIES_YUNGOOS] = {{EVO_LEVEL_DAY, 20, SPECIES_GUMSHOOS}}, - [SPECIES_GRUBBIN] = {{EVO_LEVEL, 20, SPECIES_CHARJABUG}}, - [SPECIES_CHARJABUG] = {{EVO_MAPSEC, MAPSEC_NEW_MAUVILLE, SPECIES_VIKAVOLT}, - {EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_VIKAVOLT}}, - [SPECIES_CRABRAWLER] = {{EVO_SPECIFIC_MAP, MAP_SHOAL_CAVE_LOW_TIDE_ICE_ROOM, SPECIES_CRABOMINABLE}, - {EVO_ITEM, ITEM_ICE_STONE, SPECIES_CRABOMINABLE}}, - [SPECIES_CUTIEFLY] = {{EVO_LEVEL, 25, SPECIES_RIBOMBEE}}, - [SPECIES_ROCKRUFF] = {{EVO_LEVEL_DAY, 25, SPECIES_LYCANROC_MIDDAY}, - {EVO_LEVEL_NIGHT, 25, SPECIES_LYCANROC_MIDNIGHT}}, - [SPECIES_MAREANIE] = {{EVO_LEVEL, 38, SPECIES_TOXAPEX}}, - [SPECIES_MUDBRAY] = {{EVO_LEVEL, 30, SPECIES_MUDSDALE}}, - [SPECIES_DEWPIDER] = {{EVO_LEVEL, 22, SPECIES_ARAQUANID}}, - [SPECIES_FOMANTIS] = {{EVO_LEVEL_DAY, 34, SPECIES_LURANTIS}}, - [SPECIES_MORELULL] = {{EVO_LEVEL, 24, SPECIES_SHIINOTIC}}, - [SPECIES_SALANDIT] = {{EVO_LEVEL_FEMALE, 33, SPECIES_SALAZZLE}}, - [SPECIES_STUFFUL] = {{EVO_LEVEL, 27, SPECIES_BEWEAR}}, - [SPECIES_BOUNSWEET] = {{EVO_LEVEL, 18, SPECIES_STEENEE}}, - [SPECIES_STEENEE] = {{EVO_MOVE, MOVE_STOMP, SPECIES_TSAREENA}}, - [SPECIES_WIMPOD] = {{EVO_LEVEL, 30, SPECIES_GOLISOPOD}}, - [SPECIES_SANDYGAST] = {{EVO_LEVEL, 42, SPECIES_PALOSSAND}}, - [SPECIES_TYPE_NULL] = {{EVO_FRIENDSHIP, 0, SPECIES_SILVALLY_NORMAL}}, - [SPECIES_JANGMO_O] = {{EVO_LEVEL, 35, SPECIES_HAKAMO_O}}, - [SPECIES_HAKAMO_O] = {{EVO_LEVEL, 45, SPECIES_KOMMO_O}}, - [SPECIES_COSMOG] = {{EVO_LEVEL, 43, SPECIES_COSMOEM}}, - [SPECIES_COSMOEM] = {{EVO_LEVEL_DAY, 53, SPECIES_SOLGALEO}, - {EVO_LEVEL_NIGHT, 53, SPECIES_LUNALA}}, - [SPECIES_POIPOLE] = {{EVO_MOVE, MOVE_DRAGON_PULSE, SPECIES_NAGANADEL}}, -#endif -#if P_GEN_8_POKEMON == TRUE - [SPECIES_GROOKEY] = {{EVO_LEVEL, 16, SPECIES_THWACKEY}}, - [SPECIES_THWACKEY] = {{EVO_LEVEL, 35, SPECIES_RILLABOOM}}, - [SPECIES_SCORBUNNY] = {{EVO_LEVEL, 16, SPECIES_RABOOT}}, - [SPECIES_RABOOT] = {{EVO_LEVEL, 35, SPECIES_CINDERACE}}, - [SPECIES_SOBBLE] = {{EVO_LEVEL, 16, SPECIES_DRIZZILE}}, - [SPECIES_DRIZZILE] = {{EVO_LEVEL, 35, SPECIES_INTELEON}}, - [SPECIES_SKWOVET] = {{EVO_LEVEL, 24, SPECIES_GREEDENT}}, - [SPECIES_ROOKIDEE] = {{EVO_LEVEL, 18, SPECIES_CORVISQUIRE}}, - [SPECIES_CORVISQUIRE] = {{EVO_LEVEL, 38, SPECIES_CORVIKNIGHT}}, - [SPECIES_BLIPBUG] = {{EVO_LEVEL, 10, SPECIES_DOTTLER}}, - [SPECIES_DOTTLER] = {{EVO_LEVEL, 30, SPECIES_ORBEETLE}}, - [SPECIES_NICKIT] = {{EVO_LEVEL, 18, SPECIES_THIEVUL}}, - [SPECIES_GOSSIFLEUR] = {{EVO_LEVEL, 20, SPECIES_ELDEGOSS}}, - [SPECIES_WOOLOO] = {{EVO_LEVEL, 24, SPECIES_DUBWOOL}}, - [SPECIES_CHEWTLE] = {{EVO_LEVEL, 22, SPECIES_DREDNAW}}, - [SPECIES_YAMPER] = {{EVO_LEVEL, 25, SPECIES_BOLTUND}}, - [SPECIES_ROLYCOLY] = {{EVO_LEVEL, 18, SPECIES_CARKOL}}, - [SPECIES_CARKOL] = {{EVO_LEVEL, 34, SPECIES_COALOSSAL}}, - [SPECIES_APPLIN] = {{EVO_ITEM, ITEM_TART_APPLE, SPECIES_FLAPPLE}, - {EVO_ITEM, ITEM_SWEET_APPLE, SPECIES_APPLETUN}}, - [SPECIES_SILICOBRA] = {{EVO_LEVEL, 36, SPECIES_SANDACONDA}}, - [SPECIES_ARROKUDA] = {{EVO_LEVEL, 26, SPECIES_BARRASKEWDA}}, - [SPECIES_TOXEL] = {{EVO_LEVEL_NATURE_AMPED, 30, SPECIES_TOXTRICITY_AMPED}, - {EVO_LEVEL_NATURE_LOW_KEY, 30, SPECIES_TOXTRICITY_LOW_KEY}}, - [SPECIES_SIZZLIPEDE] = {{EVO_LEVEL, 28, SPECIES_CENTISKORCH}}, - [SPECIES_CLOBBOPUS] = {{EVO_MOVE, MOVE_TAUNT, SPECIES_GRAPPLOCT}}, - [SPECIES_SINISTEA_PHONY] = {{EVO_ITEM, ITEM_CRACKED_POT, SPECIES_POLTEAGEIST_PHONY}}, - [SPECIES_HATENNA] = {{EVO_LEVEL, 32, SPECIES_HATTREM}}, - [SPECIES_HATTREM] = {{EVO_LEVEL, 42, SPECIES_HATTERENE}}, - [SPECIES_IMPIDIMP] = {{EVO_LEVEL, 32, SPECIES_MORGREM}}, - [SPECIES_MORGREM] = {{EVO_LEVEL, 42, SPECIES_GRIMMSNARL}}, - [SPECIES_MILCERY] = {{EVO_LEVEL, 0, SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM}, - {EVO_LEVEL, 0, SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM}, - {EVO_LEVEL, 0, SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM}, - {EVO_LEVEL, 0, SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM}, - {EVO_LEVEL, 0, SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM}, - {EVO_LEVEL, 0, SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM}, - {EVO_LEVEL, 0, SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL}, - {EVO_LEVEL, 0, SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL}, - {EVO_LEVEL, 0, SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL}}, - [SPECIES_SNOM] = {{EVO_FRIENDSHIP_NIGHT, 0, SPECIES_FROSMOTH}}, - [SPECIES_CUFANT] = {{EVO_LEVEL, 34, SPECIES_COPPERAJAH}}, - [SPECIES_DREEPY] = {{EVO_LEVEL, 50, SPECIES_DRAKLOAK}}, - [SPECIES_DRAKLOAK] = {{EVO_LEVEL, 60, SPECIES_DRAGAPULT}}, - [SPECIES_KUBFU] = {{EVO_DARK_SCROLL, 0, SPECIES_URSHIFU_SINGLE_STRIKE_STYLE}, - {EVO_ITEM, ITEM_SCROLL_OF_DARKNESS, SPECIES_URSHIFU_SINGLE_STRIKE_STYLE}, - {EVO_WATER_SCROLL, 0, SPECIES_URSHIFU_RAPID_STRIKE_STYLE}, - {EVO_ITEM, ITEM_SCROLL_OF_WATERS, SPECIES_URSHIFU_RAPID_STRIKE_STYLE}}, -#endif - [SPECIES_RATTATA_ALOLAN] = {{EVO_LEVEL_NIGHT, 20, SPECIES_RATICATE_ALOLAN}}, - [SPECIES_SANDSHREW_ALOLAN] = {{EVO_ITEM, ITEM_ICE_STONE, SPECIES_SANDSLASH_ALOLAN}}, - [SPECIES_VULPIX_ALOLAN] = {{EVO_ITEM, ITEM_ICE_STONE, SPECIES_NINETALES_ALOLAN}}, - [SPECIES_DIGLETT_ALOLAN] = {{EVO_LEVEL, 26, SPECIES_DUGTRIO_ALOLAN}}, - [SPECIES_MEOWTH_ALOLAN] = {{EVO_FRIENDSHIP, 28, SPECIES_PERSIAN_ALOLAN}}, - [SPECIES_GEODUDE_ALOLAN] = {{EVO_LEVEL, 25, SPECIES_GRAVELER_ALOLAN}}, - [SPECIES_GRAVELER_ALOLAN] = {{EVO_TRADE, 0, SPECIES_GOLEM_ALOLAN}, - {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_GOLEM_ALOLAN}}, - [SPECIES_GRIMER_ALOLAN] = {{EVO_LEVEL, 38, SPECIES_MUK_ALOLAN}}, -#if P_GEN_8_POKEMON == TRUE - [SPECIES_MEOWTH_GALARIAN] = {{EVO_LEVEL, 28, SPECIES_PERRSERKER}}, -#endif - [SPECIES_PONYTA_GALARIAN] = {{EVO_LEVEL, 40, SPECIES_RAPIDASH_GALARIAN}}, - [SPECIES_SLOWPOKE_GALARIAN] = {{EVO_ITEM, ITEM_GALARICA_CUFF, SPECIES_SLOWBRO_GALARIAN}, - {EVO_ITEM, ITEM_GALARICA_WREATH, SPECIES_SLOWKING_GALARIAN}}, -#if P_GEN_8_POKEMON == TRUE - [SPECIES_FARFETCHD_GALARIAN] = {{EVO_CRITICAL_HITS, 3, SPECIES_SIRFETCHD}}, - [SPECIES_MR_MIME_GALARIAN] = {{EVO_LEVEL, 42, SPECIES_MR_RIME}}, - [SPECIES_CORSOLA_GALARIAN] = {{EVO_LEVEL, 38, SPECIES_CURSOLA}}, - [SPECIES_ZIGZAGOON_GALARIAN] = {{EVO_LEVEL, 20, SPECIES_LINOONE_GALARIAN}}, - [SPECIES_LINOONE_GALARIAN] = {{EVO_LEVEL_NIGHT, 35, SPECIES_OBSTAGOON}}, - [SPECIES_DARUMAKA_GALARIAN] = {{EVO_ITEM, ITEM_ICE_STONE, SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE}}, - [SPECIES_YAMASK_GALARIAN] = {{EVO_SCRIPT_TRIGGER_DMG, 49, SPECIES_RUNERIGUS}}, -#else - [SPECIES_ZIGZAGOON_GALARIAN] = {{EVO_LEVEL, 20, SPECIES_LINOONE_GALARIAN}}, - [SPECIES_DARUMAKA_GALARIAN] = {{EVO_ITEM, ITEM_ICE_STONE, SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE}}, -#endif -#if P_GEN_4_POKEMON == TRUE - [SPECIES_BURMY_SANDY_CLOAK] = {{EVO_LEVEL_FEMALE, 20, SPECIES_WORMADAM_SANDY_CLOAK}, - {EVO_LEVEL_MALE, 20, SPECIES_MOTHIM}}, - [SPECIES_BURMY_TRASH_CLOAK] = {{EVO_LEVEL_FEMALE, 20, SPECIES_WORMADAM_TRASH_CLOAK}, - {EVO_LEVEL_MALE, 20, SPECIES_MOTHIM}}, - [SPECIES_SHELLOS_EAST_SEA] = {{EVO_LEVEL, 30, SPECIES_GASTRODON_EAST_SEA}}, -#endif -#if P_GEN_5_POKEMON == TRUE - [SPECIES_DEERLING_SUMMER] = {{EVO_LEVEL, 34, SPECIES_SAWSBUCK_SUMMER}}, - [SPECIES_DEERLING_AUTUMN] = {{EVO_LEVEL, 34, SPECIES_SAWSBUCK_AUTUMN}}, - [SPECIES_DEERLING_WINTER] = {{EVO_LEVEL, 34, SPECIES_SAWSBUCK_WINTER}}, -#endif -#if P_GEN_6_POKEMON == TRUE - [SPECIES_FLABEBE_YELLOW_FLOWER] = {{EVO_LEVEL, 19, SPECIES_FLOETTE_YELLOW_FLOWER}}, - [SPECIES_FLABEBE_ORANGE_FLOWER] = {{EVO_LEVEL, 19, SPECIES_FLOETTE_ORANGE_FLOWER}}, - [SPECIES_FLABEBE_BLUE_FLOWER] = {{EVO_LEVEL, 19, SPECIES_FLOETTE_BLUE_FLOWER}}, - [SPECIES_FLABEBE_WHITE_FLOWER] = {{EVO_LEVEL, 19, SPECIES_FLOETTE_WHITE_FLOWER}}, - [SPECIES_FLOETTE_YELLOW_FLOWER] = {{EVO_ITEM, ITEM_SHINY_STONE, SPECIES_FLORGES_YELLOW_FLOWER}}, - [SPECIES_FLOETTE_ORANGE_FLOWER] = {{EVO_ITEM, ITEM_SHINY_STONE, SPECIES_FLORGES_ORANGE_FLOWER}}, - [SPECIES_FLOETTE_BLUE_FLOWER] = {{EVO_ITEM, ITEM_SHINY_STONE, SPECIES_FLORGES_BLUE_FLOWER}}, - [SPECIES_FLOETTE_WHITE_FLOWER] = {{EVO_ITEM, ITEM_SHINY_STONE, SPECIES_FLORGES_WHITE_FLOWER}}, - [SPECIES_PUMPKABOO_SMALL] = {{EVO_TRADE, 0, SPECIES_GOURGEIST_SMALL}, - {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_GOURGEIST_SMALL}}, - [SPECIES_PUMPKABOO_LARGE] = {{EVO_TRADE, 0, SPECIES_GOURGEIST_LARGE}, - {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_GOURGEIST_LARGE}}, - [SPECIES_PUMPKABOO_SUPER] = {{EVO_TRADE, 0, SPECIES_GOURGEIST_SUPER}, - {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_GOURGEIST_SUPER}}, -#endif -#if P_GEN_7_POKEMON == TRUE - [SPECIES_ROCKRUFF_OWN_TEMPO] = {{EVO_LEVEL_DUSK, 25, SPECIES_LYCANROC_DUSK}}, -#endif -#if P_GEN_8_POKEMON == TRUE - [SPECIES_SINISTEA_ANTIQUE] = {{EVO_ITEM, ITEM_CHIPPED_POT, SPECIES_POLTEAGEIST_ANTIQUE}}, - [SPECIES_URSARING] = {{EVO_ITEM_NIGHT, ITEM_PEAT_BLOCK, SPECIES_URSALUNA}}, - [SPECIES_QWILFISH_HISUIAN] = {{EVO_MOVE, MOVE_BARB_BARRAGE, SPECIES_OVERQWIL}}, - [SPECIES_SNEASEL_HISUIAN] = {{EVO_ITEM_DAY, ITEM_RAZOR_CLAW, SPECIES_SNEASLER}, - {EVO_ITEM_HOLD_DAY, ITEM_RAZOR_CLAW, SPECIES_SNEASLER}}, -#endif -}; diff --git a/src/data/pokemon/form_change_table_pointers.h b/src/data/pokemon/form_change_table_pointers.h index bd8f42a3e21d..5c5fa686c3e4 100644 --- a/src/data/pokemon/form_change_table_pointers.h +++ b/src/data/pokemon/form_change_table_pointers.h @@ -1,295 +1,24 @@ -const struct FormChange *const gFormChangeTablePointers[NUM_SPECIES] = +const struct Fusion *const gFusionTablePointers[NUM_SPECIES] = { - [SPECIES_VENUSAUR] = sVenusaurFormChangeTable, - [SPECIES_VENUSAUR_MEGA] = sVenusaurFormChangeTable, - [SPECIES_VENUSAUR_GIGANTAMAX] = sVenusaurFormChangeTable, - [SPECIES_CHARIZARD] = sCharizardFormChangeTable, - [SPECIES_CHARIZARD_MEGA_X] = sCharizardFormChangeTable, - [SPECIES_CHARIZARD_MEGA_Y] = sCharizardFormChangeTable, - [SPECIES_CHARIZARD_GIGANTAMAX] = sCharizardFormChangeTable, - [SPECIES_BLASTOISE] = sBlastoiseFormChangeTable, - [SPECIES_BLASTOISE_MEGA] = sBlastoiseFormChangeTable, - [SPECIES_BLASTOISE_GIGANTAMAX] = sBlastoiseFormChangeTable, - [SPECIES_BUTTERFREE] = sButterfreeFormChangeTable, - [SPECIES_BUTTERFREE_GIGANTAMAX] = sButterfreeFormChangeTable, - [SPECIES_BEEDRILL] = sBeedrillFormChangeTable, - [SPECIES_BEEDRILL_MEGA] = sBeedrillFormChangeTable, - [SPECIES_PIDGEOT] = sPidgeotFormChangeTable, - [SPECIES_PIDGEOT_MEGA] = sPidgeotFormChangeTable, - [SPECIES_PIKACHU] = sPikachuFormChangeTable, - [SPECIES_PIKACHU_GIGANTAMAX] = sPikachuFormChangeTable, - [SPECIES_MEOWTH] = sMeowthFormChangeTable, - [SPECIES_MEOWTH_GIGANTAMAX] = sMeowthFormChangeTable, - [SPECIES_ALAKAZAM] = sAlakazamFormChangeTable, - [SPECIES_ALAKAZAM_MEGA] = sAlakazamFormChangeTable, - [SPECIES_MACHAMP] = sMachampFormChangeTable, - [SPECIES_MACHAMP_GIGANTAMAX] = sMachampFormChangeTable, - [SPECIES_SLOWBRO] = sSlowbroFormChangeTable, - [SPECIES_SLOWBRO_MEGA] = sSlowbroFormChangeTable, - [SPECIES_GENGAR] = sGengarFormChangeTable, - [SPECIES_GENGAR_MEGA] = sGengarFormChangeTable, - [SPECIES_GENGAR_GIGANTAMAX] = sGengarFormChangeTable, - [SPECIES_KINGLER] = sKinglerFormChangeTable, - [SPECIES_KINGLER_GIGANTAMAX] = sKinglerFormChangeTable, - [SPECIES_KANGASKHAN] = sKangaskhanFormChangeTable, - [SPECIES_KANGASKHAN_MEGA] = sKangaskhanFormChangeTable, - [SPECIES_PINSIR] = sPinsirFormChangeTable, - [SPECIES_PINSIR_MEGA] = sPinsirFormChangeTable, - [SPECIES_GYARADOS] = sGyaradosFormChangeTable, - [SPECIES_GYARADOS_MEGA] = sGyaradosFormChangeTable, - [SPECIES_LAPRAS] = sLaprasFormChangeTable, - [SPECIES_LAPRAS_GIGANTAMAX] = sLaprasFormChangeTable, - [SPECIES_EEVEE] = sEeveeFormChangeTable, - [SPECIES_EEVEE_GIGANTAMAX] = sEeveeFormChangeTable, - [SPECIES_AERODACTYL] = sAerodactylFormChangeTable, - [SPECIES_AERODACTYL_MEGA] = sAerodactylFormChangeTable, - [SPECIES_SNORLAX] = sSnorlaxFormChangeTable, - [SPECIES_SNORLAX_GIGANTAMAX] = sSnorlaxFormChangeTable, - [SPECIES_MEWTWO] = sMewtwoFormChangeTable, - [SPECIES_MEWTWO_MEGA_X] = sMewtwoFormChangeTable, - [SPECIES_MEWTWO_MEGA_Y] = sMewtwoFormChangeTable, - [SPECIES_AMPHAROS] = sAmpharosFormChangeTable, - [SPECIES_AMPHAROS_MEGA] = sAmpharosFormChangeTable, - [SPECIES_STEELIX] = sSteelixFormChangeTable, - [SPECIES_STEELIX_MEGA] = sSteelixFormChangeTable, - [SPECIES_SCIZOR] = sScizorFormChangeTable, - [SPECIES_SCIZOR_MEGA] = sScizorFormChangeTable, - [SPECIES_HERACROSS] = sHeracrossFormChangeTable, - [SPECIES_HERACROSS_MEGA] = sHeracrossFormChangeTable, - [SPECIES_HOUNDOOM] = sHoundoomFormChangeTable, - [SPECIES_HOUNDOOM_MEGA] = sHoundoomFormChangeTable, - [SPECIES_TYRANITAR] = sTyranitarFormChangeTable, - [SPECIES_TYRANITAR_MEGA] = sTyranitarFormChangeTable, - [SPECIES_SCEPTILE] = sSceptileFormChangeTable, - [SPECIES_SCEPTILE_MEGA] = sSceptileFormChangeTable, - [SPECIES_BLAZIKEN] = sBlazikenFormChangeTable, - [SPECIES_BLAZIKEN_MEGA] = sBlazikenFormChangeTable, - [SPECIES_SWAMPERT] = sSwampertFormChangeTable, - [SPECIES_SWAMPERT_MEGA] = sSwampertFormChangeTable, - [SPECIES_SABLEYE] = sSableyeFormChangeTable, - [SPECIES_SABLEYE_MEGA] = sSableyeFormChangeTable, - [SPECIES_SHARPEDO] = sSharpedoFormChangeTable, - [SPECIES_SHARPEDO_MEGA] = sSharpedoFormChangeTable, - [SPECIES_MANECTRIC] = sManectricFormChangeTable, - [SPECIES_MANECTRIC_MEGA] = sManectricFormChangeTable, - [SPECIES_CAMERUPT] = sCameruptFormChangeTable, - [SPECIES_CAMERUPT_MEGA] = sCameruptFormChangeTable, - [SPECIES_GLALIE] = sGlalieFormChangeTable, - [SPECIES_GLALIE_MEGA] = sGlalieFormChangeTable, - [SPECIES_MAWILE] = sMawileFormChangeTable, - [SPECIES_MAWILE_MEGA] = sMawileFormChangeTable, - [SPECIES_MEDICHAM] = sMedichamFormChangeTable, - [SPECIES_MEDICHAM_MEGA] = sMedichamFormChangeTable, - [SPECIES_ALTARIA] = sAltariaFormChangeTable, - [SPECIES_ALTARIA_MEGA] = sAltariaFormChangeTable, - [SPECIES_ABSOL] = sAbsolFormChangeTable, - [SPECIES_ABSOL_MEGA] = sAbsolFormChangeTable, - [SPECIES_CASTFORM_NORMAL] = sCastformFormChangeTable, - [SPECIES_CASTFORM_SUNNY] = sCastformFormChangeTable, - [SPECIES_CASTFORM_RAINY] = sCastformFormChangeTable, - [SPECIES_CASTFORM_SNOWY] = sCastformFormChangeTable, - [SPECIES_BANETTE] = sBanetteFormChangeTable, - [SPECIES_BANETTE_MEGA] = sBanetteFormChangeTable, - [SPECIES_AGGRON] = sAggronFormChangeTable, - [SPECIES_AGGRON_MEGA] = sAggronFormChangeTable, - [SPECIES_GARDEVOIR] = sGardevoirFormChangeTable, - [SPECIES_GARDEVOIR_MEGA] = sGardevoirFormChangeTable, - [SPECIES_SALAMENCE] = sSalamenceFormChangeTable, - [SPECIES_SALAMENCE_MEGA] = sSalamenceFormChangeTable, - [SPECIES_METAGROSS] = sMetagrossFormChangeTable, - [SPECIES_METAGROSS_MEGA] = sMetagrossFormChangeTable, - [SPECIES_LATIAS] = sLatiasFormChangeTable, - [SPECIES_LATIAS_MEGA] = sLatiasFormChangeTable, - [SPECIES_LATIOS] = sLatiosFormChangeTable, - [SPECIES_LATIOS_MEGA] = sLatiosFormChangeTable, - [SPECIES_KYOGRE] = sKyogreFormChangeTable, - [SPECIES_KYOGRE_PRIMAL] = sKyogreFormChangeTable, - [SPECIES_GROUDON] = sGroudonFormChangeTable, - [SPECIES_GROUDON_PRIMAL] = sGroudonFormChangeTable, - [SPECIES_RAYQUAZA] = sRayquazaFormChangeTable, - [SPECIES_RAYQUAZA_MEGA] = sRayquazaFormChangeTable, -#if P_GEN_4_POKEMON == TRUE - [SPECIES_BURMY_PLANT_CLOAK] = sBurmyFormChangeTable, - [SPECIES_BURMY_SANDY_CLOAK] = sBurmyFormChangeTable, - [SPECIES_BURMY_TRASH_CLOAK] = sBurmyFormChangeTable, - [SPECIES_CHERRIM_OVERCAST] = sCherrimFormChangeTable, - [SPECIES_CHERRIM_SUNSHINE] = sCherrimFormChangeTable, - [SPECIES_LOPUNNY] = sLopunnyFormChangeTable, - [SPECIES_LOPUNNY_MEGA] = sLopunnyFormChangeTable, - [SPECIES_GARCHOMP] = sGarchompFormChangeTable, - [SPECIES_GARCHOMP_MEGA] = sGarchompFormChangeTable, - [SPECIES_LUCARIO] = sLucarioFormChangeTable, - [SPECIES_LUCARIO_MEGA] = sLucarioFormChangeTable, - [SPECIES_ABOMASNOW] = sAbomasnowFormChangeTable, - [SPECIES_ABOMASNOW_MEGA] = sAbomasnowFormChangeTable, - [SPECIES_GALLADE] = sGalladeFormChangeTable, - [SPECIES_GALLADE_MEGA] = sGalladeFormChangeTable, - [SPECIES_DIALGA] = sDialgaFormChangeTable, - [SPECIES_DIALGA_ORIGIN] = sDialgaFormChangeTable, - [SPECIES_PALKIA] = sPalkiaFormChangeTable, - [SPECIES_PALKIA_ORIGIN] = sPalkiaFormChangeTable, - [SPECIES_GIRATINA_ALTERED] = sGiratinaFormChangeTable, - [SPECIES_GIRATINA_ORIGIN] = sGiratinaFormChangeTable, - [SPECIES_SHAYMIN_LAND] = sShayminFormChangeTable, - [SPECIES_SHAYMIN_SKY] = sShayminFormChangeTable, - [SPECIES_ARCEUS_NORMAL] = sArceusFormChangeTable, - [SPECIES_ARCEUS_FIGHTING] = sArceusFormChangeTable, - [SPECIES_ARCEUS_FLYING] = sArceusFormChangeTable, - [SPECIES_ARCEUS_POISON] = sArceusFormChangeTable, - [SPECIES_ARCEUS_ROCK] = sArceusFormChangeTable, - [SPECIES_ARCEUS_GROUND] = sArceusFormChangeTable, - [SPECIES_ARCEUS_BUG] = sArceusFormChangeTable, - [SPECIES_ARCEUS_GHOST] = sArceusFormChangeTable, - [SPECIES_ARCEUS_STEEL] = sArceusFormChangeTable, - [SPECIES_ARCEUS_FIRE] = sArceusFormChangeTable, - [SPECIES_ARCEUS_WATER] = sArceusFormChangeTable, - [SPECIES_ARCEUS_GRASS] = sArceusFormChangeTable, - [SPECIES_ARCEUS_ELECTRIC] = sArceusFormChangeTable, - [SPECIES_ARCEUS_PSYCHIC] = sArceusFormChangeTable, - [SPECIES_ARCEUS_ICE] = sArceusFormChangeTable, - [SPECIES_ARCEUS_DRAGON] = sArceusFormChangeTable, - [SPECIES_ARCEUS_DARK] = sArceusFormChangeTable, - [SPECIES_ARCEUS_FAIRY] = sArceusFormChangeTable, -#endif #if P_GEN_5_POKEMON == TRUE - [SPECIES_AUDINO] = sAudinoFormChangeTable, - [SPECIES_AUDINO_MEGA] = sAudinoFormChangeTable, - [SPECIES_DARMANITAN_STANDARD_MODE] = sDarmanitanFormChangeTable, - [SPECIES_DARMANITAN_ZEN_MODE] = sDarmanitanFormChangeTable, - [SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE] = sDarmanitanGalarianFormChangeTable, - [SPECIES_DARMANITAN_GALARIAN_ZEN_MODE] = sDarmanitanGalarianFormChangeTable, - [SPECIES_GARBODOR] = sGarbodorFormChangeTable, - [SPECIES_GARBODOR_GIGANTAMAX] = sGarbodorFormChangeTable, - [SPECIES_TORNADUS_INCARNATE] = sTornadusFormChangeTable, - [SPECIES_TORNADUS_THERIAN] = sTornadusFormChangeTable, - [SPECIES_THUNDURUS_INCARNATE] = sThundurusFormChangeTable, - [SPECIES_THUNDURUS_THERIAN] = sThundurusFormChangeTable, - [SPECIES_LANDORUS_INCARNATE] = sLandorusFormChangeTable, - [SPECIES_LANDORUS_THERIAN] = sLandorusFormChangeTable, - [SPECIES_KELDEO_ORDINARY] = sKeldeoFormChangeTable, - [SPECIES_KELDEO_RESOLUTE] = sKeldeoFormChangeTable, - [SPECIES_MELOETTA_ARIA] = sMeloettaFormChangeTable, - [SPECIES_MELOETTA_PIROUETTE] = sMeloettaFormChangeTable, - [SPECIES_GENESECT] = sGenesectFormChangeTable, - [SPECIES_GENESECT_DOUSE_DRIVE] = sGenesectFormChangeTable, - [SPECIES_GENESECT_SHOCK_DRIVE] = sGenesectFormChangeTable, - [SPECIES_GENESECT_BURN_DRIVE] = sGenesectFormChangeTable, - [SPECIES_GENESECT_CHILL_DRIVE] = sGenesectFormChangeTable, -#endif -#if P_GEN_6_POKEMON == TRUE - [SPECIES_GRENINJA_BATTLE_BOND] = sGreninjaBattleBondFormChangeTable, - [SPECIES_GRENINJA_ASH] = sGreninjaBattleBondFormChangeTable, - [SPECIES_AEGISLASH_SHIELD] = sAegislashFormChangeTable, - [SPECIES_AEGISLASH_BLADE] = sAegislashFormChangeTable, - [SPECIES_XERNEAS_NEUTRAL] = sXerneasFormChangeTable, - [SPECIES_XERNEAS_ACTIVE] = sXerneasFormChangeTable, - [SPECIES_ZYGARDE_10_POWER_CONSTRUCT] = sZygardePowerConstructFormChangeTable, - [SPECIES_ZYGARDE_50_POWER_CONSTRUCT] = sZygardePowerConstructFormChangeTable, - [SPECIES_ZYGARDE_COMPLETE] = sZygardePowerConstructFormChangeTable, - [SPECIES_DIANCIE] = sDiancieFormChangeTable, - [SPECIES_DIANCIE_MEGA] = sDiancieFormChangeTable, - [SPECIES_HOOPA_CONFINED] = sHoopaFormChangeTable, - [SPECIES_HOOPA_UNBOUND] = sHoopaFormChangeTable, + [SPECIES_KYUREM] = sKyuremFusionTable, + [SPECIES_KYUREM_BLACK] = sKyuremFusionTable, + [SPECIES_KYUREM_WHITE] = sKyuremFusionTable, + [SPECIES_RESHIRAM] = sKyuremFusionTable, + [SPECIES_ZEKROM] = sKyuremFusionTable, #endif #if P_GEN_7_POKEMON == TRUE - [SPECIES_ORICORIO_BAILE] = sOricorioFormChangeTable, - [SPECIES_ORICORIO_POM_POM] = sOricorioFormChangeTable, - [SPECIES_ORICORIO_PAU] = sOricorioFormChangeTable, - [SPECIES_ORICORIO_SENSU] = sOricorioFormChangeTable, - [SPECIES_WISHIWASHI_SOLO] = sWishiwashiFormChangeTable, - [SPECIES_WISHIWASHI_SCHOOL] = sWishiwashiFormChangeTable, - [SPECIES_SILVALLY_NORMAL] = sSilvallyFormChangeTable, - [SPECIES_SILVALLY_BUG] = sSilvallyFormChangeTable, - [SPECIES_SILVALLY_DARK] = sSilvallyFormChangeTable, - [SPECIES_SILVALLY_DRAGON] = sSilvallyFormChangeTable, - [SPECIES_SILVALLY_ELECTRIC] = sSilvallyFormChangeTable, - [SPECIES_SILVALLY_FAIRY] = sSilvallyFormChangeTable, - [SPECIES_SILVALLY_FIGHTING] = sSilvallyFormChangeTable, - [SPECIES_SILVALLY_FIRE] = sSilvallyFormChangeTable, - [SPECIES_SILVALLY_FLYING] = sSilvallyFormChangeTable, - [SPECIES_SILVALLY_GHOST] = sSilvallyFormChangeTable, - [SPECIES_SILVALLY_GRASS] = sSilvallyFormChangeTable, - [SPECIES_SILVALLY_GROUND] = sSilvallyFormChangeTable, - [SPECIES_SILVALLY_ICE] = sSilvallyFormChangeTable, - [SPECIES_SILVALLY_POISON] = sSilvallyFormChangeTable, - [SPECIES_SILVALLY_PSYCHIC] = sSilvallyFormChangeTable, - [SPECIES_SILVALLY_ROCK] = sSilvallyFormChangeTable, - [SPECIES_SILVALLY_STEEL] = sSilvallyFormChangeTable, - [SPECIES_SILVALLY_WATER] = sSilvallyFormChangeTable, - [SPECIES_MIMIKYU_DISGUISED] = sMimikyuFormChangeTable, - [SPECIES_MIMIKYU_BUSTED] = sMimikyuFormChangeTable, - [SPECIES_MINIOR_METEOR_RED] = sMiniorRedFormChangeTable, - [SPECIES_MINIOR_CORE_RED] = sMiniorRedFormChangeTable, - [SPECIES_MINIOR_METEOR_BLUE] = sMiniorBlueFormChangeTable, - [SPECIES_MINIOR_CORE_BLUE] = sMiniorBlueFormChangeTable, - [SPECIES_MINIOR_METEOR_GREEN] = sMiniorGreenFormChangeTable, - [SPECIES_MINIOR_CORE_GREEN] = sMiniorGreenFormChangeTable, - [SPECIES_MINIOR_METEOR_INDIGO] = sMiniorIndigoFormChangeTable, - [SPECIES_MINIOR_CORE_INDIGO] = sMiniorIndigoFormChangeTable, - [SPECIES_MINIOR_METEOR_ORANGE] = sMiniorOrangeFormChangeTable, - [SPECIES_MINIOR_CORE_ORANGE] = sMiniorOrangeFormChangeTable, - [SPECIES_MINIOR_METEOR_VIOLET] = sMiniorVioletFormChangeTable, - [SPECIES_MINIOR_CORE_VIOLET] = sMiniorVioletFormChangeTable, - [SPECIES_MINIOR_METEOR_YELLOW] = sMiniorYellowFormChangeTable, - [SPECIES_MINIOR_CORE_YELLOW] = sMiniorYellowFormChangeTable, - [SPECIES_NECROZMA_DUSK_MANE] = sNecrozmaDuskManeFormChangeTable, - [SPECIES_NECROZMA_DAWN_WINGS] = sNecrozmaDawnWingsFormChangeTable, - [SPECIES_MELMETAL] = sMelmetalFormChangeTable, - [SPECIES_MELMETAL_GIGANTAMAX] = sMelmetalFormChangeTable, + [SPECIES_NECROZMA] = sNecrozmaFusionTable, + [SPECIES_NECROZMA_DAWN_WINGS] = sNecrozmaFusionTable, + [SPECIES_NECROZMA_DUSK_MANE] = sNecrozmaFusionTable, + [SPECIES_SOLGALEO] = sNecrozmaFusionTable, + [SPECIES_LUNALA] = sNecrozmaFusionTable, #endif #if P_GEN_8_POKEMON == TRUE - [SPECIES_RILLABOOM] = sRillaboomFormChangeTable, - [SPECIES_RILLABOOM_GIGANTAMAX] = sRillaboomFormChangeTable, - [SPECIES_CINDERACE] = sCinderaceFormChangeTable, - [SPECIES_CINDERACE_GIGANTAMAX] = sCinderaceFormChangeTable, - [SPECIES_INTELEON] = sInteleonFormChangeTable, - [SPECIES_INTELEON_GIGANTAMAX] = sInteleonFormChangeTable, - [SPECIES_CORVIKNIGHT] = sCorviknightFormChangeTable, - [SPECIES_CORVIKNIGHT_GIGANTAMAX] = sCorviknightFormChangeTable, - [SPECIES_ORBEETLE] = sOrbeetleFormChangeTable, - [SPECIES_ORBEETLE_GIGANTAMAX] = sOrbeetleFormChangeTable, - [SPECIES_DREDNAW] = sDrednawFormChangeTable, - [SPECIES_DREDNAW_GIGANTAMAX] = sDrednawFormChangeTable, - [SPECIES_COALOSSAL] = sCoalossalFormChangeTable, - [SPECIES_COALOSSAL_GIGANTAMAX] = sCoalossalFormChangeTable, - [SPECIES_FLAPPLE] = sFlappleFormChangeTable, - [SPECIES_FLAPPLE_GIGANTAMAX] = sFlappleFormChangeTable, - [SPECIES_APPLETUN] = sAppletunFormChangeTable, - [SPECIES_APPLETUN_GIGANTAMAX] = sAppletunFormChangeTable, - [SPECIES_SANDACONDA] = sSandacondaFormChangeTable, - [SPECIES_SANDACONDA_GIGANTAMAX] = sSandacondaFormChangeTable, - [SPECIES_CRAMORANT] = sCramorantFormChangeTable, - [SPECIES_CRAMORANT_GULPING] = sCramorantFormChangeTable, - [SPECIES_CRAMORANT_GORGING] = sCramorantFormChangeTable, - [SPECIES_TOXTRICITY] = sToxtricityAmpedFormChangeTable, - [SPECIES_TOXTRICITY_LOW_KEY] = sToxtricityAmpedFormChangeTable, - [SPECIES_TOXTRICITY_AMPED_GIGANTAMAX] = sToxtricityLowKeyFormChangeTable, - [SPECIES_TOXTRICITY_LOW_KEY_GIGANTAMAX] = sToxtricityLowKeyFormChangeTable, - [SPECIES_CENTISKORCH] = sCentiskorchFormChangeTable, - [SPECIES_CENTISKORCH_GIGANTAMAX] = sCentiskorchFormChangeTable, - [SPECIES_HATTERENE] = sHattereneFormChangeTable, - [SPECIES_HATTERENE_GIGANTAMAX] = sHattereneFormChangeTable, - [SPECIES_GRIMMSNARL] = sGrimmsnarlFormChangeTable, - [SPECIES_GRIMMSNARL_GIGANTAMAX] = sGrimmsnarlFormChangeTable, - [SPECIES_ALCREMIE] = sAlcremieFormChangeTable, - [SPECIES_ALCREMIE_GIGANTAMAX] = sAlcremieFormChangeTable, - [SPECIES_EISCUE_ICE_FACE] = sEiscueFormChangeTable, - [SPECIES_EISCUE_NOICE_FACE] = sEiscueFormChangeTable, - [SPECIES_MORPEKO_FULL_BELLY] = sMorpekoFormChangeTable, - [SPECIES_MORPEKO_HANGRY] = sMorpekoFormChangeTable, - [SPECIES_COPPERAJAH] = sCopperajahFormChangeTable, - [SPECIES_COPPERAJAH_GIGANTAMAX] = sCopperajahFormChangeTable, - [SPECIES_DURALUDON] = sDuraludonFormChangeTable, - [SPECIES_DURALUDON_GIGANTAMAX] = sDuraludonFormChangeTable, - [SPECIES_ZACIAN_HERO_OF_MANY_BATTLES] = sZacianFormChangeTable, - [SPECIES_ZACIAN_CROWNED_SWORD] = sZacianFormChangeTable, - [SPECIES_ZAMAZENTA_HERO_OF_MANY_BATTLES] = sZamazentaFormChangeTable, - [SPECIES_ZAMAZENTA_CROWNED_SHIELD] = sZamazentaFormChangeTable, - [SPECIES_URSHIFU_SINGLE_STRIKE_STYLE] = sUrshifuSingleStrikeFormChangeTable, - [SPECIES_URSHIFU_SINGLE_STRIKE_STYLE_GIGANTAMAX] = sUrshifuSingleStrikeFormChangeTable, - [SPECIES_URSHIFU_RAPID_STRIKE_STYLE] = sUrshifuRapidStrikeFormChangeTable, - [SPECIES_URSHIFU_RAPID_STRIKE_STYLE_GIGANTAMAX] = sUrshifuRapidStrikeFormChangeTable, - [SPECIES_ENAMORUS_INCARNATE] = sEnamorusFormChangeTable, - [SPECIES_ENAMORUS_THERIAN] = sEnamorusFormChangeTable, + [SPECIES_CALYREX] = sCalyrexFusionTable, + [SPECIES_CALYREX_ICE_RIDER] = sCalyrexFusionTable, + [SPECIES_CALYREX_SHADOW_RIDER] = sCalyrexFusionTable, + [SPECIES_SPECTRIER] = sCalyrexFusionTable, + [SPECIES_GLASTRIER] = sCalyrexFusionTable, #endif }; diff --git a/src/data/pokemon/form_change_tables.h b/src/data/pokemon/form_change_tables.h index f339130fac84..d467b173163c 100644 --- a/src/data/pokemon/form_change_tables.h +++ b/src/data/pokemon/form_change_tables.h @@ -1,164 +1,320 @@ +#if P_FAMILY_BULBASAUR static const struct FormChange sVenusaurFormChangeTable[] = { {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_VENUSAUR_MEGA, ITEM_VENUSAURITE}, {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_VENUSAUR_GIGANTAMAX}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_BULBASAUR +#if P_FAMILY_CHARMANDER static const struct FormChange sCharizardFormChangeTable[] = { {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_CHARIZARD_MEGA_X, ITEM_CHARIZARDITE_X}, {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_CHARIZARD_MEGA_Y, ITEM_CHARIZARDITE_Y}, {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_CHARIZARD_GIGANTAMAX}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_CHARMANDER +#if P_FAMILY_SQUIRTLE static const struct FormChange sBlastoiseFormChangeTable[] = { {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_BLASTOISE_MEGA, ITEM_BLASTOISINITE}, {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_BLASTOISE_GIGANTAMAX}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_SQUIRTLE +#if P_FAMILY_CATERPIE +static const struct FormChange sButterfreeFormChangeTable[] = +{ + {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_BUTTERFREE_GIGANTAMAX}, + {FORM_CHANGE_TERMINATOR}, +}; +#endif //P_FAMILY_CATERPIE + +#if P_FAMILY_WEEDLE static const struct FormChange sBeedrillFormChangeTable[] = { {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_BEEDRILL_MEGA, ITEM_BEEDRILLITE}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_WEEDLE +#if P_FAMILY_PIDGEY static const struct FormChange sPidgeotFormChangeTable[] = { {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_PIDGEOT_MEGA, ITEM_PIDGEOTITE}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_PIDGEY + +#if P_FAMILY_PIKACHU +static const struct FormChange sPikachuFormChangeTable[] = +{ + {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_PIKACHU_GIGANTAMAX}, + {FORM_CHANGE_TERMINATOR}, +}; +#endif //P_FAMILY_PIKACHU + +#if P_FAMILY_MEOWTH +static const struct FormChange sMeowthFormChangeTable[] = +{ + {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_MEOWTH_GIGANTAMAX}, + {FORM_CHANGE_TERMINATOR}, +}; +#endif //P_FAMILY_MEOWTH +#if P_FAMILY_ABRA static const struct FormChange sAlakazamFormChangeTable[] = { {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_ALAKAZAM_MEGA, ITEM_ALAKAZITE}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_ABRA + +#if P_FAMILY_MACHOP +static const struct FormChange sMachampFormChangeTable[] = +{ + {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_MACHAMP_GIGANTAMAX}, + {FORM_CHANGE_TERMINATOR}, +}; +#endif //P_FAMILY_MACHOP +#if P_FAMILY_SLOWPOKE static const struct FormChange sSlowbroFormChangeTable[] = { {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_SLOWBRO_MEGA, ITEM_SLOWBRONITE}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_SLOWPOKE +#if P_FAMILY_GASTLY static const struct FormChange sGengarFormChangeTable[] = { {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_GENGAR_MEGA, ITEM_GENGARITE}, {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_GENGAR_GIGANTAMAX}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_GASTLY + +#if P_FAMILY_ONIX +#if P_GEN_2_CROSS_EVOS +static const struct FormChange sSteelixFormChangeTable[] = { + {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_STEELIX_MEGA, ITEM_STEELIXITE}, + {FORM_CHANGE_TERMINATOR}, +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ONIX + +#if P_FAMILY_KRABBY +static const struct FormChange sKinglerFormChangeTable[] = +{ + {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_KINGLER_GIGANTAMAX}, + {FORM_CHANGE_TERMINATOR}, +}; +#endif //P_FAMILY_KRABBY +#if P_FAMILY_KANGASKHAN static const struct FormChange sKangaskhanFormChangeTable[] = { {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_KANGASKHAN_MEGA, ITEM_KANGASKHANITE}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_KANGASKHAN + +#if P_FAMILY_SCYTHER +#if P_GEN_2_CROSS_EVOS +static const struct FormChange sScizorFormChangeTable[] = { + {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_SCIZOR_MEGA, ITEM_SCIZORITE}, + {FORM_CHANGE_TERMINATOR}, +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_SCYTHER +#if P_FAMILY_PINSIR static const struct FormChange sPinsirFormChangeTable[] = { {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_PINSIR_MEGA, ITEM_PINSIRITE}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_PINSIR +#if P_FAMILY_MAGIKARP static const struct FormChange sGyaradosFormChangeTable[] = { {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_GYARADOS_MEGA, ITEM_GYARADOSITE}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_MAGIKARP +#if P_FAMILY_LAPRAS +static const struct FormChange sLaprasFormChangeTable[] = { + {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_LAPRAS_GIGANTAMAX}, + {FORM_CHANGE_TERMINATOR}, +}; +#endif //P_FAMILY_LAPRAS + +#if P_FAMILY_EEVEE +static const struct FormChange sEeveeFormChangeTable[] = { + {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_EEVEE_GIGANTAMAX}, + {FORM_CHANGE_TERMINATOR}, +}; +#endif //P_FAMILY_EEVEE + +#if P_FAMILY_AERODACTYL static const struct FormChange sAerodactylFormChangeTable[] = { {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_AERODACTYL_MEGA, ITEM_AERODACTYLITE}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_AERODACTYL + +#if P_FAMILY_SNORLAX +static const struct FormChange sSnorlaxFormChangeTable[] = { + {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_SNORLAX_GIGANTAMAX}, + {FORM_CHANGE_TERMINATOR}, +}; +#endif //P_FAMILY_SNORLAX +#if P_FAMILY_MEWTWO static const struct FormChange sMewtwoFormChangeTable[] = { {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_MEWTWO_MEGA_X, ITEM_MEWTWONITE_X}, {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_MEWTWO_MEGA_Y, ITEM_MEWTWONITE_Y}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_MEWTWO +#if P_FAMILY_MAREEP static const struct FormChange sAmpharosFormChangeTable[] = { {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_AMPHAROS_MEGA, ITEM_AMPHAROSITE}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_MAREEP -static const struct FormChange sSteelixFormChangeTable[] = { - {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_STEELIX_MEGA, ITEM_STEELIXITE}, - {FORM_CHANGE_TERMINATOR}, -}; - -static const struct FormChange sScizorFormChangeTable[] = { - {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_SCIZOR_MEGA, ITEM_SCIZORITE}, - {FORM_CHANGE_TERMINATOR}, -}; - +#if P_FAMILY_HERACROSS static const struct FormChange sHeracrossFormChangeTable[] = { {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_HERACROSS_MEGA, ITEM_HERACRONITE}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_HERACROSS +#if P_FAMILY_HOUNDOUR static const struct FormChange sHoundoomFormChangeTable[] = { {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_HOUNDOOM_MEGA, ITEM_HOUNDOOMINITE}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_HOUNDOUR +#if P_FAMILY_LARVITAR static const struct FormChange sTyranitarFormChangeTable[] = { {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_TYRANITAR_MEGA, ITEM_TYRANITARITE}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_LARVITAR +#if P_FAMILY_TREECKO static const struct FormChange sSceptileFormChangeTable[] = { {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_SCEPTILE_MEGA, ITEM_SCEPTILITE}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_TREECKO +#if P_FAMILY_TORCHIC static const struct FormChange sBlazikenFormChangeTable[] = { {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_BLAZIKEN_MEGA, ITEM_BLAZIKENITE}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_TORCHIC +#if P_FAMILY_MUDKIP static const struct FormChange sSwampertFormChangeTable[] = { {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_SWAMPERT_MEGA, ITEM_SWAMPERTITE}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_MUDKIP + +#if P_FAMILY_RALTS +static const struct FormChange sGardevoirFormChangeTable[] = { + {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_GARDEVOIR_MEGA, ITEM_GARDEVOIRITE}, + {FORM_CHANGE_TERMINATOR}, +}; + +#if P_GEN_4_CROSS_EVOS +static const struct FormChange sGalladeFormChangeTable[] = { + {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_GALLADE_MEGA, ITEM_GALLADITE}, + {FORM_CHANGE_TERMINATOR}, +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_RALTS +#if P_FAMILY_SABLEYE static const struct FormChange sSableyeFormChangeTable[] = { {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_SABLEYE_MEGA, ITEM_SABLENITE}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_SABLEYE -static const struct FormChange sSharpedoFormChangeTable[] = { - {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_SHARPEDO_MEGA, ITEM_SHARPEDONITE}, +#if P_FAMILY_MAWILE +static const struct FormChange sMawileFormChangeTable[] = { + {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_MAWILE_MEGA, ITEM_MAWILITE}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_MAWILE -static const struct FormChange sManectricFormChangeTable[] = { - {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_MANECTRIC_MEGA, ITEM_MANECTITE}, +#if P_FAMILY_ARON +static const struct FormChange sAggronFormChangeTable[] = { + {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_AGGRON_MEGA, ITEM_AGGRONITE}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_ARON -static const struct FormChange sCameruptFormChangeTable[] = { - {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_CAMERUPT_MEGA, ITEM_CAMERUPTITE}, +#if P_FAMILY_MEDITITE +static const struct FormChange sMedichamFormChangeTable[] = { + {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_MEDICHAM_MEGA, ITEM_MEDICHAMITE}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_MEDITITE -static const struct FormChange sGlalieFormChangeTable[] = { - {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_GLALIE_MEGA, ITEM_GLALITITE}, +#if P_FAMILY_ELECTRIKE +static const struct FormChange sManectricFormChangeTable[] = { + {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_MANECTRIC_MEGA, ITEM_MANECTITE}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_ELECTRIKE -static const struct FormChange sMawileFormChangeTable[] = { - {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_MAWILE_MEGA, ITEM_MAWILITE}, +#if P_FAMILY_CARVANHA +static const struct FormChange sSharpedoFormChangeTable[] = { + {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_SHARPEDO_MEGA, ITEM_SHARPEDONITE}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_CARVANHA -static const struct FormChange sMedichamFormChangeTable[] = { - {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_MEDICHAM_MEGA, ITEM_MEDICHAMITE}, +#if P_FAMILY_NUMEL +static const struct FormChange sCameruptFormChangeTable[] = { + {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_CAMERUPT_MEGA, ITEM_CAMERUPTITE}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_NUMEL +#if P_FAMILY_SWABLU static const struct FormChange sAltariaFormChangeTable[] = { {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_ALTARIA_MEGA, ITEM_ALTARIANITE}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_SWABLU + +#if P_FAMILY_SHUPPET +static const struct FormChange sBanetteFormChangeTable[] = { + {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_BANETTE_MEGA, ITEM_BANETTITE}, + {FORM_CHANGE_TERMINATOR}, +}; +#endif //P_FAMILY_SHUPPET +#if P_FAMILY_ABSOL static const struct FormChange sAbsolFormChangeTable[] = { {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_ABSOL_MEGA, ITEM_ABSOLITE}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_ABSOL + +#if P_FAMILY_SNORUNT +static const struct FormChange sGlalieFormChangeTable[] = { + {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_GLALIE_MEGA, ITEM_GLALITITE}, + {FORM_CHANGE_TERMINATOR}, +}; +#endif //P_FAMILY_SNORUNT +#if P_FAMILY_CASTFORM static const struct FormChange sCastformFormChangeTable[] = { #if B_WEATHER_FORMS >= GEN_5 {FORM_CHANGE_BATTLE_WEATHER, SPECIES_CASTFORM_SUNNY, B_WEATHER_SUN, ABILITY_FORECAST}, @@ -178,58 +334,58 @@ static const struct FormChange sCastformFormChangeTable[] = { {FORM_CHANGE_END_BATTLE, SPECIES_CASTFORM_NORMAL}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_CASTFORM -static const struct FormChange sBanetteFormChangeTable[] = { - {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_BANETTE_MEGA, ITEM_BANETTITE}, - {FORM_CHANGE_TERMINATOR}, -}; - -static const struct FormChange sAggronFormChangeTable[] = { - {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_AGGRON_MEGA, ITEM_AGGRONITE}, - {FORM_CHANGE_TERMINATOR}, -}; - -static const struct FormChange sGardevoirFormChangeTable[] = { - {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_GARDEVOIR_MEGA, ITEM_GARDEVOIRITE}, - {FORM_CHANGE_TERMINATOR}, -}; - +#if P_FAMILY_BAGON static const struct FormChange sSalamenceFormChangeTable[] = { {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_SALAMENCE_MEGA, ITEM_SALAMENCITE}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_BAGON +#if P_FAMILY_BELDUM static const struct FormChange sMetagrossFormChangeTable[] = { {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_METAGROSS_MEGA, ITEM_METAGROSSITE}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_BELDUM +#if P_FAMILY_LATIAS static const struct FormChange sLatiasFormChangeTable[] = { {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_LATIAS_MEGA, ITEM_LATIASITE}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_LATIAS +#if P_FAMILY_LATIOS static const struct FormChange sLatiosFormChangeTable[] = { {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_LATIOS_MEGA, ITEM_LATIOSITE}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_LATIOS +#if P_FAMILY_KYOGRE static const struct FormChange sKyogreFormChangeTable[] = { {FORM_CHANGE_BATTLE_PRIMAL_REVERSION, SPECIES_KYOGRE_PRIMAL, ITEM_BLUE_ORB}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_KYOGRE +#if P_FAMILY_GROUDON static const struct FormChange sGroudonFormChangeTable[] = { {FORM_CHANGE_BATTLE_PRIMAL_REVERSION, SPECIES_GROUDON_PRIMAL, ITEM_RED_ORB}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_GROUDON +#if P_FAMILY_RAYQUAZA static const struct FormChange sRayquazaFormChangeTable[] = { {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_MOVE, SPECIES_RAYQUAZA_MEGA, MOVE_DRAGON_ASCENT}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_RAYQUAZA -#if P_GEN_4_POKEMON == TRUE +#if P_FAMILY_BURMY static const struct FormChange sBurmyFormChangeTable[] = { {FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_PLANT_CLOAK, BATTLE_TERRAIN_GRASS}, {FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_PLANT_CLOAK, BATTLE_TERRAIN_LONG_GRASS}, @@ -241,7 +397,9 @@ static const struct FormChange sBurmyFormChangeTable[] = { {FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_TRASH_CLOAK, BATTLE_TERRAIN_BUILDING}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_BURMY +#if P_FAMILY_CHERUBI static const struct FormChange sCherrimFormChangeTable[] = { #if B_WEATHER_FORMS >= GEN_5 {FORM_CHANGE_BATTLE_WEATHER, SPECIES_CHERRIM_SUNSHINE, B_WEATHER_SUN, ABILITY_FLOWER_GIFT}, @@ -257,44 +415,65 @@ static const struct FormChange sCherrimFormChangeTable[] = { {FORM_CHANGE_END_BATTLE, SPECIES_CHERRIM_OVERCAST}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_CHERUBI +#if P_FAMILY_BUNEARY static const struct FormChange sLopunnyFormChangeTable[] = { {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_LOPUNNY_MEGA, ITEM_LOPUNNITE}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_BUNEARY +#if P_FAMILY_GIBLE static const struct FormChange sGarchompFormChangeTable[] = { {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_GARCHOMP_MEGA, ITEM_GARCHOMPITE}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_GIBLE +#if P_FAMILY_RIOLU static const struct FormChange sLucarioFormChangeTable[] = { {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_LUCARIO_MEGA, ITEM_LUCARIONITE}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_RIOLU +#if P_FAMILY_SNOVER static const struct FormChange sAbomasnowFormChangeTable[] = { {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_ABOMASNOW_MEGA, ITEM_ABOMASITE}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_SNOVER -static const struct FormChange sGalladeFormChangeTable[] = { - {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_GALLADE_MEGA, ITEM_GALLADITE}, +#if P_FAMILY_ROTOM +static const struct FormChange sRotomFormChangeTable[] = { + {FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ROTOM, ITEM_ROTOM_CATALOG, 0}, + {FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ROTOM_HEAT, ITEM_ROTOM_CATALOG, 1}, + {FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ROTOM_WASH, ITEM_ROTOM_CATALOG, 2}, + {FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ROTOM_FROST, ITEM_ROTOM_CATALOG, 3}, + {FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ROTOM_FAN, ITEM_ROTOM_CATALOG, 4}, + {FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ROTOM_MOW, ITEM_ROTOM_CATALOG, 5}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_ROTOM +#if P_FAMILY_DIALGA static const struct FormChange sDialgaFormChangeTable[] = { {FORM_CHANGE_ITEM_HOLD, SPECIES_DIALGA, ITEM_NONE}, {FORM_CHANGE_ITEM_HOLD, SPECIES_DIALGA_ORIGIN, ITEM_ADAMANT_CRYSTAL}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_DIALGA +#if P_FAMILY_PALKIA static const struct FormChange sPalkiaFormChangeTable[] = { {FORM_CHANGE_ITEM_HOLD, SPECIES_PALKIA, ITEM_NONE}, {FORM_CHANGE_ITEM_HOLD, SPECIES_PALKIA_ORIGIN, ITEM_LUSTROUS_GLOBE}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_PALKIA +#if P_FAMILY_GIRATINA static const struct FormChange sGiratinaFormChangeTable[] = { {FORM_CHANGE_ITEM_HOLD, SPECIES_GIRATINA_ALTERED, ITEM_NONE}, #if I_GRISEOUS_ORB_FORM_CHANGE < GEN_9 @@ -303,13 +482,18 @@ static const struct FormChange sGiratinaFormChangeTable[] = { {FORM_CHANGE_ITEM_HOLD, SPECIES_GIRATINA_ORIGIN, ITEM_GRISEOUS_CORE}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_GIRATINA +#if P_FAMILY_SHAYMIN static const struct FormChange sShayminFormChangeTable[] = { - {FORM_CHANGE_ITEM_USE, SPECIES_SHAYMIN_SKY, ITEM_GRACIDEA, DAY}, - // {FORM_CHANGE_WITHDRAW, SPECIES_SHAYMIN_LAND}, + {FORM_CHANGE_ITEM_USE, SPECIES_SHAYMIN_SKY, ITEM_GRACIDEA, DAY}, + {FORM_CHANGE_WITHDRAW, SPECIES_SHAYMIN_LAND}, + {FORM_CHANGE_TIME_OF_DAY, SPECIES_SHAYMIN_LAND, NIGHT}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_SHAYMIN +#if P_FAMILY_ARCEUS static const struct FormChange sArceusFormChangeTable[] = { {FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_NORMAL, ITEM_NONE, ABILITY_MULTITYPE}, {FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_FIGHTING, ITEM_FIST_PLATE, ABILITY_MULTITYPE}, @@ -348,14 +532,16 @@ static const struct FormChange sArceusFormChangeTable[] = { {FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_FAIRY, ITEM_FAIRIUM_Z, ABILITY_MULTITYPE}, {FORM_CHANGE_TERMINATOR}, }; -#endif +#endif //P_FAMILY_ARCEUS -#if P_GEN_5_POKEMON == TRUE +#if P_FAMILY_AUDINO static const struct FormChange sAudinoFormChangeTable[] = { {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_AUDINO_MEGA, ITEM_AUDINITE}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_AUDINO +#if P_FAMILY_DARUMAKA static const struct FormChange sDarmanitanFormChangeTable[] = { {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_DARMANITAN_STANDARD_MODE, ABILITY_ZEN_MODE, HP_HIGHER_THAN, 50}, {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_DARMANITAN_ZEN_MODE, ABILITY_ZEN_MODE, HP_LOWER_EQ_THAN, 50}, @@ -364,6 +550,7 @@ static const struct FormChange sDarmanitanFormChangeTable[] = { {FORM_CHANGE_TERMINATOR}, }; +#if P_GALARIAN_FORMS static const struct FormChange sDarmanitanGalarianFormChangeTable[] = { {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE, ABILITY_ZEN_MODE, HP_HIGHER_THAN, 50}, {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_DARMANITAN_GALARIAN_ZEN_MODE, ABILITY_ZEN_MODE, HP_LOWER_EQ_THAN, 50}, @@ -371,37 +558,66 @@ static const struct FormChange sDarmanitanGalarianFormChangeTable[] = { {FORM_CHANGE_END_BATTLE, SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_DARUMAKA -static const struct FormChange sMeloettaFormChangeTable[] = { - {FORM_CHANGE_FAINT, SPECIES_MELOETTA_ARIA}, - {FORM_CHANGE_END_BATTLE, SPECIES_MELOETTA_ARIA}, +#if P_FAMILY_TRUBBISH +static const struct FormChange sGarbodorFormChangeTable[] = +{ + {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_GARBODOR_GIGANTAMAX}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_TRUBBISH +#if P_FAMILY_TORNADUS static const struct FormChange sTornadusFormChangeTable[] = { {FORM_CHANGE_ITEM_USE, SPECIES_TORNADUS_THERIAN, ITEM_REVEAL_GLASS}, {FORM_CHANGE_ITEM_USE, SPECIES_TORNADUS_INCARNATE, ITEM_REVEAL_GLASS}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_TORNADUS +#if P_FAMILY_THUNDURUS static const struct FormChange sThundurusFormChangeTable[] = { {FORM_CHANGE_ITEM_USE, SPECIES_THUNDURUS_THERIAN, ITEM_REVEAL_GLASS}, {FORM_CHANGE_ITEM_USE, SPECIES_THUNDURUS_INCARNATE, ITEM_REVEAL_GLASS}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_THUNDURUS +#if P_FAMILY_LANDORUS static const struct FormChange sLandorusFormChangeTable[] = { {FORM_CHANGE_ITEM_USE, SPECIES_LANDORUS_THERIAN, ITEM_REVEAL_GLASS}, {FORM_CHANGE_ITEM_USE, SPECIES_LANDORUS_INCARNATE, ITEM_REVEAL_GLASS}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_LANDORUS +#if P_FAMILY_KYUREM +static const struct Fusion sKyuremFusionTable[] = { + {0, ITEM_DNA_SPLICERS, SPECIES_KYUREM, SPECIES_RESHIRAM, SPECIES_KYUREM_WHITE}, + {0, ITEM_DNA_SPLICERS, SPECIES_KYUREM, SPECIES_ZEKROM, SPECIES_KYUREM_BLACK}, + {FUSION_TERMINATOR}, +}; +#endif //P_FAMILY_KYUREM + +#if P_FAMILY_KELDEO static const struct FormChange sKeldeoFormChangeTable[] = { - // {FORM_CHANGE_MOVE, SPECIES_KELDEO_RESOLUTE, MOVE_SECRET_SWORD, WHEN_LEARNED}, - // {FORM_CHANGE_MOVE, SPECIES_KELDEO_ORDINARY, MOVE_SECRET_SWORD, WHEN_FORGOTTEN}, + {FORM_CHANGE_MOVE, SPECIES_KELDEO_RESOLUTE, MOVE_SECRET_SWORD, WHEN_LEARNED}, + {FORM_CHANGE_MOVE, SPECIES_KELDEO_ORDINARY, MOVE_SECRET_SWORD, WHEN_FORGOTTEN}, + {FORM_CHANGE_TERMINATOR}, +}; +#endif //P_FAMILY_KELDEO + +#if P_FAMILY_MELOETTA +static const struct FormChange sMeloettaFormChangeTable[] = { + {FORM_CHANGE_FAINT, SPECIES_MELOETTA_ARIA}, + {FORM_CHANGE_END_BATTLE, SPECIES_MELOETTA_ARIA}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_MELOETTA +#if P_FAMILY_GENESECT static const struct FormChange sGenesectFormChangeTable[] = { {FORM_CHANGE_ITEM_HOLD, SPECIES_GENESECT, ITEM_NONE}, {FORM_CHANGE_ITEM_HOLD, SPECIES_GENESECT_DOUSE_DRIVE, ITEM_DOUSE_DRIVE}, @@ -410,48 +626,83 @@ static const struct FormChange sGenesectFormChangeTable[] = { {FORM_CHANGE_ITEM_HOLD, SPECIES_GENESECT_CHILL_DRIVE, ITEM_CHILL_DRIVE}, {FORM_CHANGE_TERMINATOR}, }; -#endif +#endif //P_FAMILY_GENESECT -#if P_GEN_6_POKEMON == TRUE +#if P_FAMILY_FROAKIE static const struct FormChange sGreninjaBattleBondFormChangeTable[] = { {FORM_CHANGE_FAINT, SPECIES_GRENINJA_BATTLE_BOND}, {FORM_CHANGE_END_BATTLE, SPECIES_GRENINJA_BATTLE_BOND}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_FROAKIE +#if P_FAMILY_HONEDGE static const struct FormChange sAegislashFormChangeTable[] = { {FORM_CHANGE_BATTLE_SWITCH, SPECIES_AEGISLASH_SHIELD}, {FORM_CHANGE_FAINT, SPECIES_AEGISLASH_SHIELD}, {FORM_CHANGE_END_BATTLE, SPECIES_AEGISLASH_SHIELD}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_HONEDGE +#if P_FAMILY_XERNEAS static const struct FormChange sXerneasFormChangeTable[] = { {FORM_CHANGE_BEGIN_BATTLE, SPECIES_XERNEAS_ACTIVE}, {FORM_CHANGE_END_BATTLE, SPECIES_XERNEAS_NEUTRAL}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_XERNEAS + +#if P_FAMILY_ZYGARDE +static const struct FormChange sZygarde50AuraBreakFormChangeTable[] = { + {FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ZYGARDE_10_AURA_BREAK, ITEM_ZYGARDE_CUBE, 0}, + {FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ZYGARDE_50_POWER_CONSTRUCT, ITEM_ZYGARDE_CUBE, 1}, + {FORM_CHANGE_TERMINATOR}, +}; + +static const struct FormChange sZygarde10AuraBreakFormChangeTable[] = { + {FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ZYGARDE_50_AURA_BREAK, ITEM_ZYGARDE_CUBE, 0}, + {FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ZYGARDE_10_POWER_CONSTRUCT, ITEM_ZYGARDE_CUBE, 1}, + {FORM_CHANGE_TERMINATOR}, +}; + +static const struct FormChange sZygarde50PowerConstructFormChangeTable[] = { + {FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ZYGARDE_10_POWER_CONSTRUCT, ITEM_ZYGARDE_CUBE, 0}, + {FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ZYGARDE_50_AURA_BREAK, ITEM_ZYGARDE_CUBE, 1}, + {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_ZYGARDE_COMPLETE, ABILITY_POWER_CONSTRUCT, HP_LOWER_EQ_THAN, 50}, + {FORM_CHANGE_TERMINATOR}, +}; + +static const struct FormChange sZygarde10PowerConstructFormChangeTable[] = { + {FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ZYGARDE_50_POWER_CONSTRUCT, ITEM_ZYGARDE_CUBE, 0}, + {FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ZYGARDE_10_AURA_BREAK, ITEM_ZYGARDE_CUBE, 1}, + {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_ZYGARDE_COMPLETE, ABILITY_POWER_CONSTRUCT, HP_LOWER_EQ_THAN, 50}, + {FORM_CHANGE_TERMINATOR}, +}; -static const struct FormChange sZygardePowerConstructFormChangeTable[] = { - {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_ZYGARDE_COMPLETE, ABILITY_POWER_CONSTRUCT, HP_LOWER_EQ_THAN, 50}, +static const struct FormChange sZygardeCompleteFormChangeTable[] = { {FORM_CHANGE_FAINT}, {FORM_CHANGE_END_BATTLE}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_ZYGARDE +#if P_FAMILY_DIANCIE static const struct FormChange sDiancieFormChangeTable[] = { {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_DIANCIE_MEGA, ITEM_DIANCITE}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_DIANCIE +#if P_FAMILY_HOOPA static const struct FormChange sHoopaFormChangeTable[] = { {FORM_CHANGE_ITEM_USE, SPECIES_HOOPA_UNBOUND, ITEM_PRISON_BOTTLE, SPECIES_HOOPA_CONFINED}, {FORM_CHANGE_WITHDRAW, SPECIES_HOOPA_CONFINED}, {FORM_CHANGE_TERMINATOR}, }; -#endif +#endif //P_FAMILY_HOOPA -#if P_GEN_7_POKEMON == TRUE +#if P_FAMILY_ORICORIO static const struct FormChange sOricorioFormChangeTable[] = { {FORM_CHANGE_ITEM_USE, SPECIES_ORICORIO_BAILE, ITEM_RED_NECTAR}, {FORM_CHANGE_ITEM_USE, SPECIES_ORICORIO_POM_POM, ITEM_YELLOW_NECTAR}, @@ -459,6 +710,9 @@ static const struct FormChange sOricorioFormChangeTable[] = { {FORM_CHANGE_ITEM_USE, SPECIES_ORICORIO_SENSU, ITEM_PURPLE_NECTAR}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_ORICORIO + +#if P_FAMILY_WISHIWASHI static const struct FormChange sWishiwashiFormChangeTable[] = { {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_WISHIWASHI_SCHOOL, ABILITY_SCHOOLING, HP_HIGHER_THAN, 25}, {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_WISHIWASHI_SOLO, ABILITY_SCHOOLING, HP_LOWER_EQ_THAN, 25}, @@ -467,7 +721,9 @@ static const struct FormChange sWishiwashiFormChangeTable[] = { {FORM_CHANGE_END_BATTLE, SPECIES_WISHIWASHI_SOLO}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_WISHIWASHI +#if P_FAMILY_TYPE_NULL static const struct FormChange sSilvallyFormChangeTable[] = { {FORM_CHANGE_ITEM_HOLD, SPECIES_SILVALLY_NORMAL, ITEM_NONE, ABILITY_RKS_SYSTEM}, {FORM_CHANGE_ITEM_HOLD, SPECIES_SILVALLY_FIGHTING, ITEM_FIGHTING_MEMORY, ABILITY_RKS_SYSTEM}, @@ -489,13 +745,9 @@ static const struct FormChange sSilvallyFormChangeTable[] = { {FORM_CHANGE_ITEM_HOLD, SPECIES_SILVALLY_FAIRY, ITEM_FAIRY_MEMORY, ABILITY_RKS_SYSTEM}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_TYPE_NULL -static const struct FormChange sMimikyuFormChangeTable[] = { - {FORM_CHANGE_FAINT, SPECIES_MIMIKYU_DISGUISED}, - {FORM_CHANGE_END_BATTLE, SPECIES_MIMIKYU_DISGUISED}, - {FORM_CHANGE_TERMINATOR}, -}; - +#if P_FAMILY_MINIOR static const struct FormChange sMiniorRedFormChangeTable[] = { {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_MINIOR_METEOR_RED, ABILITY_SHIELDS_DOWN, HP_HIGHER_THAN, 50}, {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_MINIOR_CORE_RED, ABILITY_SHIELDS_DOWN, HP_LOWER_EQ_THAN, 50}, @@ -552,168 +804,95 @@ static const struct FormChange sMiniorYellowFormChangeTable[] = { {FORM_CHANGE_END_BATTLE, SPECIES_MINIOR_CORE_YELLOW}, {FORM_CHANGE_TERMINATOR}, }; -static const struct FormChange sNecrozmaDuskManeFormChangeTable[] = { - {FORM_CHANGE_BATTLE_ULTRA_BURST, SPECIES_NECROZMA_ULTRA, ITEM_ULTRANECROZIUM_Z}, - {FORM_CHANGE_TERMINATOR}, -}; -static const struct FormChange sNecrozmaDawnWingsFormChangeTable[] = { - {FORM_CHANGE_BATTLE_ULTRA_BURST, SPECIES_NECROZMA_ULTRA, ITEM_ULTRANECROZIUM_Z}, - {FORM_CHANGE_TERMINATOR}, -}; -#endif - -#if P_GEN_8_POKEMON == TRUE -static const struct FormChange sCramorantFormChangeTable[] = { - {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_CRAMORANT_GULPING, ABILITY_GULP_MISSILE, HP_HIGHER_THAN, 50}, - {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_CRAMORANT_GORGING, ABILITY_GULP_MISSILE, HP_LOWER_EQ_THAN, 50}, - {FORM_CHANGE_BATTLE_SWITCH, SPECIES_CRAMORANT}, - {FORM_CHANGE_FAINT, SPECIES_CRAMORANT}, - {FORM_CHANGE_END_BATTLE, SPECIES_CRAMORANT}, - {FORM_CHANGE_TERMINATOR}, -}; - -static const struct FormChange sEiscueFormChangeTable[] = { - {FORM_CHANGE_FAINT, SPECIES_EISCUE_ICE_FACE}, - {FORM_CHANGE_END_BATTLE, SPECIES_EISCUE_ICE_FACE}, - {FORM_CHANGE_TERMINATOR}, -}; - -static const struct FormChange sMorpekoFormChangeTable[] = { - {FORM_CHANGE_BATTLE_TURN_END, SPECIES_MORPEKO_HANGRY, ABILITY_HUNGER_SWITCH}, - {FORM_CHANGE_BATTLE_TURN_END, SPECIES_MORPEKO_FULL_BELLY, ABILITY_HUNGER_SWITCH}, - {FORM_CHANGE_BATTLE_SWITCH, SPECIES_MORPEKO_FULL_BELLY}, - {FORM_CHANGE_FAINT, SPECIES_MORPEKO_FULL_BELLY}, - {FORM_CHANGE_END_BATTLE, SPECIES_MORPEKO_FULL_BELLY}, - {FORM_CHANGE_TERMINATOR}, -}; - -static const struct FormChange sZacianFormChangeTable[] = { - {FORM_CHANGE_BEGIN_BATTLE, SPECIES_ZACIAN_CROWNED_SWORD, ITEM_RUSTED_SWORD, MOVE_IRON_HEAD, MOVE_BEHEMOTH_BLADE}, - {FORM_CHANGE_END_BATTLE, SPECIES_ZACIAN_HERO_OF_MANY_BATTLES, ITEM_RUSTED_SWORD, MOVE_BEHEMOTH_BLADE, MOVE_IRON_HEAD}, - {FORM_CHANGE_TERMINATOR}, -}; - -static const struct FormChange sZamazentaFormChangeTable[] = { - {FORM_CHANGE_BEGIN_BATTLE, SPECIES_ZAMAZENTA_CROWNED_SHIELD, ITEM_RUSTED_SHIELD, MOVE_IRON_HEAD, MOVE_BEHEMOTH_BASH}, - {FORM_CHANGE_END_BATTLE, SPECIES_ZAMAZENTA_HERO_OF_MANY_BATTLES, ITEM_RUSTED_SHIELD, MOVE_BEHEMOTH_BASH, MOVE_IRON_HEAD}, - {FORM_CHANGE_TERMINATOR}, -}; - -static const struct FormChange sEnamorusFormChangeTable[] = { - {FORM_CHANGE_ITEM_USE, SPECIES_ENAMORUS_INCARNATE, ITEM_REVEAL_GLASS}, - {FORM_CHANGE_ITEM_USE, SPECIES_ENAMORUS_THERIAN, ITEM_REVEAL_GLASS}, - {FORM_CHANGE_TERMINATOR}, -}; - -#endif - -static const struct FormChange sButterfreeFormChangeTable[] = -{ - {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_BUTTERFREE_GIGANTAMAX}, - {FORM_CHANGE_TERMINATOR}, -}; - -static const struct FormChange sPikachuFormChangeTable[] = -{ - {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_PIKACHU_GIGANTAMAX}, - {FORM_CHANGE_TERMINATOR}, -}; - -static const struct FormChange sMeowthFormChangeTable[] = -{ - {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_MEOWTH_GIGANTAMAX}, - {FORM_CHANGE_TERMINATOR}, -}; - -static const struct FormChange sMachampFormChangeTable[] = -{ - {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_MACHAMP_GIGANTAMAX}, - {FORM_CHANGE_TERMINATOR}, -}; - -static const struct FormChange sKinglerFormChangeTable[] = -{ - {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_KINGLER_GIGANTAMAX}, - {FORM_CHANGE_TERMINATOR}, -}; +#endif //P_FAMILY_MINIOR -static const struct FormChange sLaprasFormChangeTable[] = -{ - {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_LAPRAS_GIGANTAMAX}, +#if P_FAMILY_MIMIKYU +static const struct FormChange sMimikyuFormChangeTable[] = { + {FORM_CHANGE_FAINT, SPECIES_MIMIKYU_DISGUISED}, + {FORM_CHANGE_END_BATTLE, SPECIES_MIMIKYU_DISGUISED}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_MIMIKYU -static const struct FormChange sEeveeFormChangeTable[] = -{ - {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_EEVEE_GIGANTAMAX}, - {FORM_CHANGE_TERMINATOR}, +#if P_FAMILY_NECROZMA +static const struct Fusion sNecrozmaFusionTable[] = { + {1, ITEM_N_SOLARIZER, SPECIES_NECROZMA, SPECIES_SOLGALEO, SPECIES_NECROZMA_DUSK_MANE, MOVE_SUNSTEEL_STRIKE, MOVE_CONFUSION}, + {2, ITEM_N_LUNARIZER, SPECIES_NECROZMA, SPECIES_LUNALA, SPECIES_NECROZMA_DAWN_WINGS, MOVE_MOONGEIST_BEAM, MOVE_CONFUSION}, + {FUSION_TERMINATOR}, }; -static const struct FormChange sSnorlaxFormChangeTable[] = -{ - {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_SNORLAX_GIGANTAMAX}, +static const struct FormChange sNecrozmaDuskManeFormChangeTable[] = { + {FORM_CHANGE_BATTLE_ULTRA_BURST, SPECIES_NECROZMA_ULTRA, ITEM_ULTRANECROZIUM_Z}, {FORM_CHANGE_TERMINATOR}, }; - -#if P_GEN_5_POKEMON == TRUE -static const struct FormChange sGarbodorFormChangeTable[] = -{ - {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_GARBODOR_GIGANTAMAX}, +static const struct FormChange sNecrozmaDawnWingsFormChangeTable[] = { + {FORM_CHANGE_BATTLE_ULTRA_BURST, SPECIES_NECROZMA_ULTRA, ITEM_ULTRANECROZIUM_Z}, {FORM_CHANGE_TERMINATOR}, }; - -#endif -#if P_GEN_7_POKEMON == TRUE static const struct FormChange sMelmetalFormChangeTable[] = { {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_MELMETAL_GIGANTAMAX}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_NECROZMA -#endif -#if P_GEN_8_POKEMON == TRUE +#if P_FAMILY_GROOKEY static const struct FormChange sRillaboomFormChangeTable[] = { {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_RILLABOOM_GIGANTAMAX}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_GROOKEY +#if P_FAMILY_SCORBUNNY static const struct FormChange sCinderaceFormChangeTable[] = { {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_CINDERACE_GIGANTAMAX}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_SCORBUNNY +#if P_FAMILY_SOBBLE static const struct FormChange sInteleonFormChangeTable[] = { {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_INTELEON_GIGANTAMAX}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_SOBBLE +#if P_FAMILY_ROOKIDEE static const struct FormChange sCorviknightFormChangeTable[] = { {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_CORVIKNIGHT_GIGANTAMAX}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_ROOKIDEE +#if P_FAMILY_BLIPBUG static const struct FormChange sOrbeetleFormChangeTable[] = { {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_ORBEETLE_GIGANTAMAX}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_BLIPBUG +#if P_FAMILY_CHEWTLE static const struct FormChange sDrednawFormChangeTable[] = { {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_DREDNAW_GIGANTAMAX}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_CHEWTLE +#if P_FAMILY_ROLYCOLY static const struct FormChange sCoalossalFormChangeTable[] = { {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_COALOSSAL_GIGANTAMAX}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_ROLYCOLY +#if P_FAMILY_APPLIN static const struct FormChange sFlappleFormChangeTable[] = { {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_FLAPPLE_GIGANTAMAX}, @@ -725,72 +904,167 @@ static const struct FormChange sAppletunFormChangeTable[] = {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_APPLETUN_GIGANTAMAX}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_APPLIN +#if P_FAMILY_SILICOBRA static const struct FormChange sSandacondaFormChangeTable[] = { {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_SANDACONDA_GIGANTAMAX}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_SILICOBRA + +#if P_FAMILY_CRAMORANT +static const struct FormChange sCramorantFormChangeTable[] = { + {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_CRAMORANT_GULPING, ABILITY_GULP_MISSILE, HP_HIGHER_THAN, 50}, + {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_CRAMORANT_GORGING, ABILITY_GULP_MISSILE, HP_LOWER_EQ_THAN, 50}, + {FORM_CHANGE_BATTLE_SWITCH, SPECIES_CRAMORANT}, + {FORM_CHANGE_FAINT, SPECIES_CRAMORANT}, + {FORM_CHANGE_END_BATTLE, SPECIES_CRAMORANT}, + {FORM_CHANGE_TERMINATOR}, +}; +#endif //P_FAMILY_CRAMORANT +#if P_FAMILY_TOXEL static const struct FormChange sToxtricityAmpedFormChangeTable[] = { {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_TOXTRICITY_AMPED_GIGANTAMAX}, {FORM_CHANGE_TERMINATOR}, }; + static const struct FormChange sToxtricityLowKeyFormChangeTable[] = { {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_TOXTRICITY_LOW_KEY_GIGANTAMAX}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_TOXEL + +#if P_FAMILY_SIZZLIPEDE static const struct FormChange sCentiskorchFormChangeTable[] = { {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_CENTISKORCH_GIGANTAMAX}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_SIZZLIPEDE +#if P_FAMILY_HATENNA static const struct FormChange sHattereneFormChangeTable[] = { {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_HATTERENE_GIGANTAMAX}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_HATENNA +#if P_FAMILY_IMPIDIMP static const struct FormChange sGrimmsnarlFormChangeTable[] = { {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_GRIMMSNARL_GIGANTAMAX}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_IMPIDIMP +#if P_FAMILY_MILCERY static const struct FormChange sAlcremieFormChangeTable[] = { {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_ALCREMIE_GIGANTAMAX}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_MILCERY -static const struct FormChange sCopperajahFormChangeTable[] = -{ +#if P_FAMILY_EISCUE +static const struct FormChange sEiscueFormChangeTable[] = { + {FORM_CHANGE_FAINT, SPECIES_EISCUE_ICE_FACE}, + {FORM_CHANGE_END_BATTLE, SPECIES_EISCUE_ICE_FACE}, + {FORM_CHANGE_TERMINATOR}, +}; +#endif //P_FAMILY_EISCUE + +#if P_FAMILY_MORPEKO +static const struct FormChange sMorpekoFormChangeTable[] = { + {FORM_CHANGE_BATTLE_TURN_END, SPECIES_MORPEKO_HANGRY, ABILITY_HUNGER_SWITCH}, + {FORM_CHANGE_BATTLE_TURN_END, SPECIES_MORPEKO_FULL_BELLY, ABILITY_HUNGER_SWITCH}, + {FORM_CHANGE_BATTLE_SWITCH, SPECIES_MORPEKO_FULL_BELLY}, + {FORM_CHANGE_FAINT, SPECIES_MORPEKO_FULL_BELLY}, + {FORM_CHANGE_END_BATTLE, SPECIES_MORPEKO_FULL_BELLY}, + {FORM_CHANGE_TERMINATOR}, +}; +#endif //P_FAMILY_MORPEKO + +#if P_FAMILY_CUFANT +static const struct FormChange sCopperajahFormChangeTable[] = { {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_COPPERAJAH_GIGANTAMAX}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_CUFANT -static const struct FormChange sDuraludonFormChangeTable[] = -{ +#if P_FAMILY_DURALUDON +static const struct FormChange sDuraludonFormChangeTable[] = { {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_DURALUDON_GIGANTAMAX}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_DURALUDON -static const struct FormChange sUrshifuSingleStrikeFormChangeTable[] = -{ +#if P_FAMILY_ZACIAN +static const struct FormChange sZacianFormChangeTable[] = { + {FORM_CHANGE_BEGIN_BATTLE, SPECIES_ZACIAN_CROWNED_SWORD, ITEM_RUSTED_SWORD, MOVE_IRON_HEAD, MOVE_BEHEMOTH_BLADE}, + {FORM_CHANGE_END_BATTLE, SPECIES_ZACIAN_HERO_OF_MANY_BATTLES, ITEM_RUSTED_SWORD, MOVE_BEHEMOTH_BLADE, MOVE_IRON_HEAD}, + {FORM_CHANGE_TERMINATOR}, +}; +#endif //P_FAMILY_ZACIAN + +#if P_FAMILY_ZAMAZENTA +static const struct FormChange sZamazentaFormChangeTable[] = { + {FORM_CHANGE_BEGIN_BATTLE, SPECIES_ZAMAZENTA_CROWNED_SHIELD, ITEM_RUSTED_SHIELD, MOVE_IRON_HEAD, MOVE_BEHEMOTH_BASH}, + {FORM_CHANGE_END_BATTLE, SPECIES_ZAMAZENTA_HERO_OF_MANY_BATTLES, ITEM_RUSTED_SHIELD, MOVE_BEHEMOTH_BASH, MOVE_IRON_HEAD}, + {FORM_CHANGE_TERMINATOR}, +}; +#endif //P_FAMILY_ZAMAZENTA + +#if P_FAMILY_KUBFU +static const struct FormChange sUrshifuSingleStrikeFormChangeTable[] = { {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_URSHIFU_SINGLE_STRIKE_STYLE_GIGANTAMAX}, {FORM_CHANGE_TERMINATOR}, }; -static const struct FormChange sUrshifuRapidStrikeFormChangeTable[] = -{ +static const struct FormChange sUrshifuRapidStrikeFormChangeTable[] = { {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_URSHIFU_RAPID_STRIKE_STYLE_GIGANTAMAX}, {FORM_CHANGE_TERMINATOR}, }; +#endif //P_FAMILY_KUBFU -#endif +#if P_FAMILY_CALYREX +static const struct Fusion sCalyrexFusionTable[] = { + {3, ITEM_REINS_OF_UNITY, SPECIES_CALYREX, SPECIES_GLASTRIER, SPECIES_CALYREX_ICE_RIDER, MOVE_GLACIAL_LANCE, MOVE_CONFUSION}, + {3, ITEM_REINS_OF_UNITY, SPECIES_CALYREX, SPECIES_SPECTRIER, SPECIES_CALYREX_SHADOW_RIDER, MOVE_ASTRAL_BARRAGE, MOVE_CONFUSION}, + {FUSION_TERMINATOR}, +}; +#endif //P_FAMILY_CALYREX + +#if P_FAMILY_ENAMORUS +static const struct FormChange sEnamorusFormChangeTable[] = { + {FORM_CHANGE_ITEM_USE, SPECIES_ENAMORUS_INCARNATE, ITEM_REVEAL_GLASS}, + {FORM_CHANGE_ITEM_USE, SPECIES_ENAMORUS_THERIAN, ITEM_REVEAL_GLASS}, + {FORM_CHANGE_TERMINATOR}, +}; +#endif //P_FAMILY_ENAMORUS + +#if P_FAMILY_FINIZEN +static const struct FormChange sPalafinZeroFormChangeTable[] = +{ + {FORM_CHANGE_BATTLE_SWITCH, SPECIES_PALAFIN_HERO}, + {FORM_CHANGE_TERMINATOR}, +}; +#endif //P_FAMILY_FINIZEN + +#if P_FAMILY_OGERPON +static const struct FormChange sOgerponFormChangeTable[] = { + {FORM_CHANGE_ITEM_HOLD, SPECIES_OGERPON_TEAL_MASK, ITEM_NONE}, + {FORM_CHANGE_ITEM_HOLD, SPECIES_OGERPON_WELLSPRING_MASK, ITEM_WELLSPRING_MASK}, + {FORM_CHANGE_ITEM_HOLD, SPECIES_OGERPON_HEARTHFLAME_MASK, ITEM_HEARTHFLAME_MASK}, + {FORM_CHANGE_ITEM_HOLD, SPECIES_OGERPON_CORNERSTONE_MASK, ITEM_CORNERSTONE_MASK}, + {FORM_CHANGE_TERMINATOR}, +}; +#endif //P_FAMILY_OGERPON #undef WHEN_LEARNED #undef WHEN_FORGOTTEN diff --git a/src/data/pokemon/form_species_table_pointers.h b/src/data/pokemon/form_species_table_pointers.h deleted file mode 100644 index e615fd1b1484..000000000000 --- a/src/data/pokemon/form_species_table_pointers.h +++ /dev/null @@ -1,632 +0,0 @@ -const u16 *const gFormSpeciesIdTables[NUM_SPECIES] = -{ - [SPECIES_VENUSAUR] = sVenusaurFormSpeciesIdTable, - [SPECIES_CHARIZARD] = sCharizardFormSpeciesIdTable, - [SPECIES_BLASTOISE] = sBlastoiseFormSpeciesIdTable, - [SPECIES_BEEDRILL] = sBeedrillFormSpeciesIdTable, - [SPECIES_PIDGEOT] = sPidgeotFormSpeciesIdTable, - [SPECIES_RATTATA] = sRattataFormSpeciesIdTable, - [SPECIES_RATICATE] = sRaticateFormSpeciesIdTable, - [SPECIES_PIKACHU] = sPikachuFormSpeciesIdTable, - [SPECIES_RAICHU] = sRaichuFormSpeciesIdTable, - [SPECIES_SANDSHREW] = sSandshrewFormSpeciesIdTable, - [SPECIES_SANDSLASH] = sSandslashFormSpeciesIdTable, - [SPECIES_VULPIX] = sVulpixFormSpeciesIdTable, - [SPECIES_NINETALES] = sNinetalesFormSpeciesIdTable, - [SPECIES_DIGLETT] = sDiglettFormSpeciesIdTable, - [SPECIES_DUGTRIO] = sDugtrioFormSpeciesIdTable, - [SPECIES_MEOWTH] = sMeowthFormSpeciesIdTable, - [SPECIES_PERSIAN] = sPersianFormSpeciesIdTable, - [SPECIES_ALAKAZAM] = sAlakazamFormSpeciesIdTable, - [SPECIES_GROWLITHE] = sGrowlitheFormSpeciesIdTable, - [SPECIES_ARCANINE] = sArcanineFormSpeciesIdTable, - [SPECIES_GEODUDE] = sGeodudeFormSpeciesIdTable, - [SPECIES_GRAVELER] = sGravelerFormSpeciesIdTable, - [SPECIES_GOLEM] = sGolemFormSpeciesIdTable, - [SPECIES_PONYTA] = sPonytaFormSpeciesIdTable, - [SPECIES_RAPIDASH] = sRapidashFormSpeciesIdTable, - [SPECIES_SLOWPOKE] = sSlowpokeFormSpeciesIdTable, - [SPECIES_SLOWBRO] = sSlowbroFormSpeciesIdTable, - [SPECIES_FARFETCHD] = sFarfetchdFormSpeciesIdTable, - [SPECIES_GRIMER] = sGrimerFormSpeciesIdTable, - [SPECIES_MUK] = sMukFormSpeciesIdTable, - [SPECIES_GENGAR] = sGengarFormSpeciesIdTable, - [SPECIES_VOLTORB] = sVoltorbFormSpeciesIdTable, - [SPECIES_ELECTRODE] = sElectrodeFormSpeciesIdTable, - [SPECIES_EXEGGUTOR] = sExeggutorFormSpeciesIdTable, - [SPECIES_MAROWAK] = sMarowakFormSpeciesIdTable, - [SPECIES_WEEZING] = sWeezingFormSpeciesIdTable, - [SPECIES_KANGASKHAN] = sKangaskhanFormSpeciesIdTable, - [SPECIES_MR_MIME] = sMrMimeFormSpeciesIdTable, - [SPECIES_PINSIR] = sPinsirFormSpeciesIdTable, - [SPECIES_GYARADOS] = sGyaradosFormSpeciesIdTable, - [SPECIES_AERODACTYL] = sAerodactylFormSpeciesIdTable, - [SPECIES_ARTICUNO] = sArticunoFormSpeciesIdTable, - [SPECIES_ZAPDOS] = sZapdosFormSpeciesIdTable, - [SPECIES_MOLTRES] = sMoltresFormSpeciesIdTable, - [SPECIES_MEWTWO] = sMewtwoFormSpeciesIdTable, - [SPECIES_TYPHLOSION] = sTyphlosionFormSpeciesIdTable, - [SPECIES_PICHU] = sPichuFormSpeciesIdTable, - [SPECIES_AMPHAROS] = sAmpharosFormSpeciesIdTable, - [SPECIES_SLOWKING] = sSlowkingFormSpeciesIdTable, - [SPECIES_QWILFISH] = sQwilfishFormSpeciesIdTable, - [SPECIES_SNEASEL] = sSneaselFormSpeciesIdTable, - [SPECIES_UNOWN] = sUnownFormSpeciesIdTable, - [SPECIES_STEELIX] = sSteelixFormSpeciesIdTable, - [SPECIES_SCIZOR] = sScizorFormSpeciesIdTable, - [SPECIES_HERACROSS] = sHeracrossFormSpeciesIdTable, - [SPECIES_CORSOLA] = sCorsolaFormSpeciesIdTable, - [SPECIES_HOUNDOOM] = sHoundoomFormSpeciesIdTable, - [SPECIES_TYRANITAR] = sTyranitarFormSpeciesIdTable, - [SPECIES_SCEPTILE] = sSceptileFormSpeciesIdTable, - [SPECIES_BLAZIKEN] = sBlazikenFormSpeciesIdTable, - [SPECIES_SWAMPERT] = sSwampertFormSpeciesIdTable, - [SPECIES_ZIGZAGOON] = sZigzagoonFormSpeciesIdTable, - [SPECIES_LINOONE] = sLinooneFormSpeciesIdTable, - [SPECIES_GARDEVOIR] = sGardevoirFormSpeciesIdTable, - [SPECIES_SABLEYE] = sSableyeFormSpeciesIdTable, - [SPECIES_MAWILE] = sMawileFormSpeciesIdTable, - [SPECIES_AGGRON] = sAggronFormSpeciesIdTable, - [SPECIES_MEDICHAM] = sMedichamFormSpeciesIdTable, - [SPECIES_MANECTRIC] = sManectricFormSpeciesIdTable, - [SPECIES_SHARPEDO] = sSharpedoFormSpeciesIdTable, - [SPECIES_CAMERUPT] = sCameruptFormSpeciesIdTable, - [SPECIES_ALTARIA] = sAltariaFormSpeciesIdTable, - [SPECIES_CASTFORM_NORMAL] = sCastformFormSpeciesIdTable, - [SPECIES_BANETTE] = sBanetteFormSpeciesIdTable, - [SPECIES_ABSOL] = sAbsolFormSpeciesIdTable, - [SPECIES_GLALIE] = sGlalieFormSpeciesIdTable, - [SPECIES_SALAMENCE] = sSalamenceFormSpeciesIdTable, - [SPECIES_METAGROSS] = sMetagrossFormSpeciesIdTable, - [SPECIES_LATIAS] = sLatiasFormSpeciesIdTable, - [SPECIES_LATIOS] = sLatiosFormSpeciesIdTable, - [SPECIES_KYOGRE] = sKyogreFormSpeciesIdTable, - [SPECIES_GROUDON] = sGroudonFormSpeciesIdTable, - [SPECIES_RAYQUAZA] = sRayquazaFormSpeciesIdTable, - [SPECIES_DEOXYS_NORMAL] = sDeoxysFormSpeciesIdTable, -#if P_GEN_4_POKEMON == TRUE - [SPECIES_BURMY_PLANT_CLOAK] = sBurmyFormSpeciesIdTable, - [SPECIES_WORMADAM_PLANT_CLOAK] = sWormadamFormSpeciesIdTable, - [SPECIES_CHERRIM_OVERCAST] = sCherrimFormSpeciesIdTable, - [SPECIES_SHELLOS_WEST_SEA] = sShellosFormSpeciesIdTable, - [SPECIES_GASTRODON_WEST_SEA] = sGastrodonFormSpeciesIdTable, - [SPECIES_LOPUNNY] = sLopunnyFormSpeciesIdTable, - [SPECIES_GARCHOMP] = sGarchompFormSpeciesIdTable, - [SPECIES_LUCARIO] = sLucarioFormSpeciesIdTable, - [SPECIES_ABOMASNOW] = sAbomasnowFormSpeciesIdTable, - [SPECIES_GALLADE] = sGalladeFormSpeciesIdTable, - [SPECIES_ROTOM] = sRotomFormSpeciesIdTable, - [SPECIES_DIALGA] = sDialgaFormSpeciesIdTable, - [SPECIES_PALKIA] = sPalkiaFormSpeciesIdTable, - [SPECIES_GIRATINA_ALTERED] = sGiratinaFormSpeciesIdTable, - [SPECIES_SHAYMIN_LAND] = sShayminFormSpeciesIdTable, - [SPECIES_ARCEUS_NORMAL] = sArceusFormSpeciesIdTable, -#endif -#if P_GEN_5_POKEMON == TRUE - [SPECIES_SAMUROTT] = sSamurottFormSpeciesIdTable, - [SPECIES_AUDINO] = sAudinoFormSpeciesIdTable, - [SPECIES_BASCULIN_RED_STRIPED] = sBasculinFormSpeciesIdTable, - [SPECIES_LILLIGANT] = sLilligantFormSpeciesIdTable, - [SPECIES_DARUMAKA] = sDarumakaFormSpeciesIdTable, - [SPECIES_DARMANITAN_STANDARD_MODE] = sDarmanitanFormSpeciesIdTable, - [SPECIES_YAMASK] = sYamaskFormSpeciesIdTable, - [SPECIES_ZORUA] = sZoruaFormSpeciesIdTable, - [SPECIES_ZOROARK] = sZoroarkFormSpeciesIdTable, - [SPECIES_DEERLING_SPRING] = sDeerlingFormSpeciesIdTable, - [SPECIES_SAWSBUCK_SPRING] = sSawsbuckFormSpeciesIdTable, - [SPECIES_STUNFISK] = sStunfiskFormSpeciesIdTable, - [SPECIES_BRAVIARY] = sBraviaryFormSpeciesIdTable, - [SPECIES_TORNADUS_INCARNATE] = sTornadusFormSpeciesIdTable, - [SPECIES_THUNDURUS_INCARNATE] = sThundurusFormSpeciesIdTable, - [SPECIES_LANDORUS_INCARNATE] = sLandorusFormSpeciesIdTable, - [SPECIES_KYUREM] = sKyuremFormSpeciesIdTable, - [SPECIES_KELDEO_ORDINARY] = sKeldeoFormSpeciesIdTable, - [SPECIES_MELOETTA_ARIA] = sMeloettaFormSpeciesIdTable, - [SPECIES_GENESECT] = sGenesectFormSpeciesIdTable, -#endif -#if P_GEN_6_POKEMON == TRUE - [SPECIES_GRENINJA] = sGreninjaFormSpeciesIdTable, - [SPECIES_VIVILLON_ICY_SNOW] = sVivillonFormSpeciesIdTable, - [SPECIES_FLABEBE_RED_FLOWER] = sFlabebeFormSpeciesIdTable, - [SPECIES_FLOETTE] = sFloetteFormSpeciesIdTable, - [SPECIES_FLORGES] = sFlorgesFormSpeciesIdTable, - [SPECIES_FURFROU_NATURAL] = sFurfrouFormSpeciesIdTable, - [SPECIES_MEOWSTIC_MALE] = sMeowsticFormSpeciesIdTable, - [SPECIES_AEGISLASH_SHIELD] = sAegislashFormSpeciesIdTable, - [SPECIES_SLIGGOO] = sSliggooFormSpeciesIdTable, - [SPECIES_GOODRA] = sGoodraFormSpeciesIdTable, - [SPECIES_PUMPKABOO_AVERAGE] = sPumpkabooFormSpeciesIdTable, - [SPECIES_GOURGEIST_AVERAGE] = sGourgeistFormSpeciesIdTable, - [SPECIES_AVALUGG] = sAvaluggFormSpeciesIdTable, - [SPECIES_XERNEAS_NEUTRAL] = sXerneasFormSpeciesIdTable, - [SPECIES_ZYGARDE_50_AURA_BREAK] = sZygardeFormSpeciesIdTable, - [SPECIES_DIANCIE] = sDiancieFormSpeciesIdTable, - [SPECIES_HOOPA_CONFINED] = sHoopaFormSpeciesIdTable, -#endif -#if P_GEN_7_POKEMON == TRUE - [SPECIES_DECIDUEYE] = sDecidueyeFormSpeciesIdTable, - [SPECIES_ORICORIO_BAILE] = sOricorioFormSpeciesIdTable, - [SPECIES_ROCKRUFF] = sRockruffFormSpeciesIdTable, - [SPECIES_LYCANROC_MIDDAY] = sLycanrocFormSpeciesIdTable, - [SPECIES_WISHIWASHI_SOLO] = sWishiwashiFormSpeciesIdTable, - [SPECIES_SILVALLY_NORMAL] = sSilvallyFormSpeciesIdTable, - [SPECIES_MINIOR_METEOR_RED] = sMiniorFormSpeciesIdTable, - [SPECIES_MIMIKYU_DISGUISED] = sMimikyuFormSpeciesIdTable, - [SPECIES_NECROZMA] = sNecrozmaFormSpeciesIdTable, - [SPECIES_MAGEARNA] = sMagearnaFormSpeciesIdTable, -#endif -#if P_GEN_8_POKEMON == TRUE - [SPECIES_CRAMORANT] = sCramorantFormSpeciesIdTable, - [SPECIES_TOXTRICITY_AMPED] = sToxtricityFormSpeciesIdTable, - [SPECIES_SINISTEA_PHONY] = sSinisteaFormSpeciesIdTable, - [SPECIES_POLTEAGEIST_PHONY] = sPolteageistFormSpeciesIdTable, - [SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_EISCUE_ICE_FACE] = sEiscueFormSpeciesIdTable, - [SPECIES_INDEEDEE_MALE] = sIndeedeeFormSpeciesIdTable, - [SPECIES_MORPEKO_FULL_BELLY] = sMorpekoFormSpeciesIdTable, - [SPECIES_ZACIAN_HERO_OF_MANY_BATTLES] = sZacianFormSpeciesIdTable, - [SPECIES_ZAMAZENTA_HERO_OF_MANY_BATTLES] = sZamazentaFormSpeciesIdTable, - [SPECIES_ETERNATUS] = sEternatusFormSpeciesIdTable, - [SPECIES_URSHIFU_SINGLE_STRIKE_STYLE] = sUrshifuFormSpeciesIdTable, - [SPECIES_ZARUDE] = sZarudeFormSpeciesIdTable, - [SPECIES_CALYREX] = sCalyrexFormSpeciesIdTable, - [SPECIES_ENAMORUS_INCARNATE] = sEnamorusFormSpeciesIdTable, - [SPECIES_BASCULEGION_MALE] = sBasculegionFormSpeciesIdTable, -#endif - // Megas - [SPECIES_VENUSAUR_MEGA] = sVenusaurFormSpeciesIdTable, - [SPECIES_CHARIZARD_MEGA_X] = sCharizardFormSpeciesIdTable, - [SPECIES_CHARIZARD_MEGA_Y] = sCharizardFormSpeciesIdTable, - [SPECIES_BLASTOISE_MEGA] = sBlastoiseFormSpeciesIdTable, - [SPECIES_BEEDRILL_MEGA] = sBeedrillFormSpeciesIdTable, - [SPECIES_PIDGEOT_MEGA] = sPidgeotFormSpeciesIdTable, - [SPECIES_ALAKAZAM_MEGA] = sAlakazamFormSpeciesIdTable, - [SPECIES_SLOWBRO_MEGA] = sSlowbroFormSpeciesIdTable, - [SPECIES_GENGAR_MEGA] = sGengarFormSpeciesIdTable, - [SPECIES_KANGASKHAN_MEGA] = sKangaskhanFormSpeciesIdTable, - [SPECIES_PINSIR_MEGA] = sPinsirFormSpeciesIdTable, - [SPECIES_GYARADOS_MEGA] = sGyaradosFormSpeciesIdTable, - [SPECIES_AERODACTYL_MEGA] = sAerodactylFormSpeciesIdTable, - [SPECIES_MEWTWO_MEGA_X] = sMewtwoFormSpeciesIdTable, - [SPECIES_MEWTWO_MEGA_Y] = sMewtwoFormSpeciesIdTable, - [SPECIES_AMPHAROS_MEGA] = sAmpharosFormSpeciesIdTable, - [SPECIES_STEELIX_MEGA] = sSteelixFormSpeciesIdTable, - [SPECIES_SCIZOR_MEGA] = sScizorFormSpeciesIdTable, - [SPECIES_HERACROSS_MEGA] = sHeracrossFormSpeciesIdTable, - [SPECIES_HOUNDOOM_MEGA] = sHoundoomFormSpeciesIdTable, - [SPECIES_TYRANITAR_MEGA] = sTyranitarFormSpeciesIdTable, - [SPECIES_SCEPTILE_MEGA] = sSceptileFormSpeciesIdTable, - [SPECIES_BLAZIKEN_MEGA] = sBlazikenFormSpeciesIdTable, - [SPECIES_SWAMPERT_MEGA] = sSwampertFormSpeciesIdTable, - [SPECIES_GARDEVOIR_MEGA] = sGardevoirFormSpeciesIdTable, - [SPECIES_SABLEYE_MEGA] = sSableyeFormSpeciesIdTable, - [SPECIES_MAWILE_MEGA] = sMawileFormSpeciesIdTable, - [SPECIES_AGGRON_MEGA] = sAggronFormSpeciesIdTable, - [SPECIES_MEDICHAM_MEGA] = sMedichamFormSpeciesIdTable, - [SPECIES_MANECTRIC_MEGA] = sManectricFormSpeciesIdTable, - [SPECIES_SHARPEDO_MEGA] = sSharpedoFormSpeciesIdTable, - [SPECIES_CAMERUPT_MEGA] = sCameruptFormSpeciesIdTable, - [SPECIES_ALTARIA_MEGA] = sAltariaFormSpeciesIdTable, - [SPECIES_BANETTE_MEGA] = sBanetteFormSpeciesIdTable, - [SPECIES_ABSOL_MEGA] = sAbsolFormSpeciesIdTable, - [SPECIES_GLALIE_MEGA] = sGlalieFormSpeciesIdTable, - [SPECIES_SALAMENCE_MEGA] = sSalamenceFormSpeciesIdTable, - [SPECIES_METAGROSS_MEGA] = sMetagrossFormSpeciesIdTable, - [SPECIES_LATIAS_MEGA] = sLatiasFormSpeciesIdTable, - [SPECIES_LATIOS_MEGA] = sLatiosFormSpeciesIdTable, -#if P_GEN_4_POKEMON == TRUE - [SPECIES_LOPUNNY_MEGA] = sLopunnyFormSpeciesIdTable, - [SPECIES_GARCHOMP_MEGA] = sGarchompFormSpeciesIdTable, - [SPECIES_LUCARIO_MEGA] = sLucarioFormSpeciesIdTable, - [SPECIES_ABOMASNOW_MEGA] = sAbomasnowFormSpeciesIdTable, - [SPECIES_GALLADE_MEGA] = sGalladeFormSpeciesIdTable, -#endif -#if P_GEN_5_POKEMON == TRUE - [SPECIES_AUDINO_MEGA] = sAudinoFormSpeciesIdTable, -#endif -#if P_GEN_6_POKEMON == TRUE - [SPECIES_DIANCIE_MEGA] = sDiancieFormSpeciesIdTable, -#endif - // Special Mega + Primals - [SPECIES_RAYQUAZA_MEGA] = sRayquazaFormSpeciesIdTable, - [SPECIES_KYOGRE_PRIMAL] = sKyogreFormSpeciesIdTable, - [SPECIES_GROUDON_PRIMAL] = sGroudonFormSpeciesIdTable, - // Alolan Forms - [SPECIES_RATTATA_ALOLAN] = sRattataFormSpeciesIdTable, - [SPECIES_RATICATE_ALOLAN] = sRaticateFormSpeciesIdTable, - [SPECIES_RAICHU_ALOLAN] = sRaichuFormSpeciesIdTable, - [SPECIES_SANDSHREW_ALOLAN] = sSandshrewFormSpeciesIdTable, - [SPECIES_SANDSLASH_ALOLAN] = sSandslashFormSpeciesIdTable, - [SPECIES_VULPIX_ALOLAN] = sVulpixFormSpeciesIdTable, - [SPECIES_NINETALES_ALOLAN] = sNinetalesFormSpeciesIdTable, - [SPECIES_DIGLETT_ALOLAN] = sDiglettFormSpeciesIdTable, - [SPECIES_DUGTRIO_ALOLAN] = sDugtrioFormSpeciesIdTable, - [SPECIES_MEOWTH_ALOLAN] = sMeowthFormSpeciesIdTable, - [SPECIES_PERSIAN_ALOLAN] = sPersianFormSpeciesIdTable, - [SPECIES_GEODUDE_ALOLAN] = sGeodudeFormSpeciesIdTable, - [SPECIES_GRAVELER_ALOLAN] = sGravelerFormSpeciesIdTable, - [SPECIES_GOLEM_ALOLAN] = sGolemFormSpeciesIdTable, - [SPECIES_GRIMER_ALOLAN] = sGrimerFormSpeciesIdTable, - [SPECIES_MUK_ALOLAN] = sMukFormSpeciesIdTable, - [SPECIES_EXEGGUTOR_ALOLAN] = sExeggutorFormSpeciesIdTable, - [SPECIES_MAROWAK_ALOLAN] = sMarowakFormSpeciesIdTable, - // Galarian Forms - [SPECIES_MEOWTH_GALARIAN] = sMeowthFormSpeciesIdTable, - [SPECIES_PONYTA_GALARIAN] = sPonytaFormSpeciesIdTable, - [SPECIES_RAPIDASH_GALARIAN] = sRapidashFormSpeciesIdTable, - [SPECIES_SLOWPOKE_GALARIAN] = sSlowpokeFormSpeciesIdTable, - [SPECIES_SLOWBRO_GALARIAN] = sSlowbroFormSpeciesIdTable, - [SPECIES_FARFETCHD_GALARIAN] = sFarfetchdFormSpeciesIdTable, - [SPECIES_WEEZING_GALARIAN] = sWeezingFormSpeciesIdTable, - [SPECIES_MR_MIME_GALARIAN] = sMrMimeFormSpeciesIdTable, - [SPECIES_ARTICUNO_GALARIAN] = sArticunoFormSpeciesIdTable, - [SPECIES_ZAPDOS_GALARIAN] = sZapdosFormSpeciesIdTable, - [SPECIES_MOLTRES_GALARIAN] = sMoltresFormSpeciesIdTable, - [SPECIES_SLOWKING_GALARIAN] = sSlowkingFormSpeciesIdTable, - [SPECIES_CORSOLA_GALARIAN] = sCorsolaFormSpeciesIdTable, - [SPECIES_ZIGZAGOON_GALARIAN] = sZigzagoonFormSpeciesIdTable, - [SPECIES_LINOONE_GALARIAN] = sLinooneFormSpeciesIdTable, -#if P_GEN_5_POKEMON == TRUE - [SPECIES_DARUMAKA_GALARIAN] = sDarumakaFormSpeciesIdTable, - [SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE] = sDarmanitanFormSpeciesIdTable, - [SPECIES_YAMASK_GALARIAN] = sYamaskFormSpeciesIdTable, - [SPECIES_STUNFISK_GALARIAN] = sStunfiskFormSpeciesIdTable, -#endif - //Hisuian Forms - [SPECIES_GROWLITHE_HISUIAN] = sGrowlitheFormSpeciesIdTable, - [SPECIES_ARCANINE_HISUIAN] = sArcanineFormSpeciesIdTable, - [SPECIES_VOLTORB_HISUIAN] = sVoltorbFormSpeciesIdTable, - [SPECIES_ELECTRODE_HISUIAN] = sElectrodeFormSpeciesIdTable, - [SPECIES_TYPHLOSION_HISUIAN] = sTyphlosionFormSpeciesIdTable, - [SPECIES_QWILFISH_HISUIAN] = sQwilfishFormSpeciesIdTable, - [SPECIES_SNEASEL_HISUIAN] = sSneaselFormSpeciesIdTable, -#if P_GEN_5_POKEMON == TRUE - [SPECIES_SAMUROTT_HISUIAN] = sSamurottFormSpeciesIdTable, - [SPECIES_LILLIGANT_HISUIAN] = sLilligantFormSpeciesIdTable, - [SPECIES_ZORUA_HISUIAN] = sZoruaFormSpeciesIdTable, - [SPECIES_ZOROARK_HISUIAN] = sZoroarkFormSpeciesIdTable, - [SPECIES_BRAVIARY_HISUIAN] = sBraviaryFormSpeciesIdTable, -#endif -#if P_GEN_6_POKEMON == TRUE - [SPECIES_SLIGGOO_HISUIAN] = sSliggooFormSpeciesIdTable, - [SPECIES_GOODRA_HISUIAN] = sGoodraFormSpeciesIdTable, - [SPECIES_AVALUGG_HISUIAN] = sAvaluggFormSpeciesIdTable, -#endif -#if P_GEN_7_POKEMON == TRUE - [SPECIES_DECIDUEYE_HISUIAN] = sDecidueyeFormSpeciesIdTable, -#endif - // Misc Forms - // Cosplay Pikachu - [SPECIES_PIKACHU_COSPLAY] = sPikachuFormSpeciesIdTable, - [SPECIES_PIKACHU_ROCK_STAR] = sPikachuFormSpeciesIdTable, - [SPECIES_PIKACHU_BELLE] = sPikachuFormSpeciesIdTable, - [SPECIES_PIKACHU_POP_STAR] = sPikachuFormSpeciesIdTable, - [SPECIES_PIKACHU_PH_D] = sPikachuFormSpeciesIdTable, - [SPECIES_PIKACHU_LIBRE] = sPikachuFormSpeciesIdTable, - // Cap Pikachu - [SPECIES_PIKACHU_ORIGINAL_CAP] = sPikachuFormSpeciesIdTable, - [SPECIES_PIKACHU_HOENN_CAP] = sPikachuFormSpeciesIdTable, - [SPECIES_PIKACHU_SINNOH_CAP] = sPikachuFormSpeciesIdTable, - [SPECIES_PIKACHU_UNOVA_CAP] = sPikachuFormSpeciesIdTable, - [SPECIES_PIKACHU_KALOS_CAP] = sPikachuFormSpeciesIdTable, - [SPECIES_PIKACHU_ALOLA_CAP] = sPikachuFormSpeciesIdTable, - [SPECIES_PIKACHU_PARTNER_CAP] = sPikachuFormSpeciesIdTable, - [SPECIES_PIKACHU_WORLD_CAP] = sPikachuFormSpeciesIdTable, - // Pichu - [SPECIES_PICHU_SPIKY_EARED] = sPichuFormSpeciesIdTable, - // Unown - [SPECIES_UNOWN_B] = sUnownFormSpeciesIdTable, - [SPECIES_UNOWN_C] = sUnownFormSpeciesIdTable, - [SPECIES_UNOWN_D] = sUnownFormSpeciesIdTable, - [SPECIES_UNOWN_E] = sUnownFormSpeciesIdTable, - [SPECIES_UNOWN_F] = sUnownFormSpeciesIdTable, - [SPECIES_UNOWN_G] = sUnownFormSpeciesIdTable, - [SPECIES_UNOWN_H] = sUnownFormSpeciesIdTable, - [SPECIES_UNOWN_I] = sUnownFormSpeciesIdTable, - [SPECIES_UNOWN_J] = sUnownFormSpeciesIdTable, - [SPECIES_UNOWN_K] = sUnownFormSpeciesIdTable, - [SPECIES_UNOWN_L] = sUnownFormSpeciesIdTable, - [SPECIES_UNOWN_M] = sUnownFormSpeciesIdTable, - [SPECIES_UNOWN_N] = sUnownFormSpeciesIdTable, - [SPECIES_UNOWN_O] = sUnownFormSpeciesIdTable, - [SPECIES_UNOWN_P] = sUnownFormSpeciesIdTable, - [SPECIES_UNOWN_Q] = sUnownFormSpeciesIdTable, - [SPECIES_UNOWN_R] = sUnownFormSpeciesIdTable, - [SPECIES_UNOWN_S] = sUnownFormSpeciesIdTable, - [SPECIES_UNOWN_T] = sUnownFormSpeciesIdTable, - [SPECIES_UNOWN_U] = sUnownFormSpeciesIdTable, - [SPECIES_UNOWN_V] = sUnownFormSpeciesIdTable, - [SPECIES_UNOWN_W] = sUnownFormSpeciesIdTable, - [SPECIES_UNOWN_X] = sUnownFormSpeciesIdTable, - [SPECIES_UNOWN_Y] = sUnownFormSpeciesIdTable, - [SPECIES_UNOWN_Z] = sUnownFormSpeciesIdTable, - [SPECIES_UNOWN_EMARK] = sUnownFormSpeciesIdTable, - [SPECIES_UNOWN_QMARK] = sUnownFormSpeciesIdTable, - // Castform - [SPECIES_CASTFORM_SUNNY] = sCastformFormSpeciesIdTable, - [SPECIES_CASTFORM_RAINY] = sCastformFormSpeciesIdTable, - [SPECIES_CASTFORM_SNOWY] = sCastformFormSpeciesIdTable, - // Deoxys - [SPECIES_DEOXYS_ATTACK] = sDeoxysFormSpeciesIdTable, - [SPECIES_DEOXYS_DEFENSE] = sDeoxysFormSpeciesIdTable, - [SPECIES_DEOXYS_SPEED] = sDeoxysFormSpeciesIdTable, -#if P_GEN_4_POKEMON == TRUE - // Burmy - [SPECIES_BURMY_SANDY_CLOAK] = sBurmyFormSpeciesIdTable, - [SPECIES_BURMY_TRASH_CLOAK] = sBurmyFormSpeciesIdTable, - // Wormadam - [SPECIES_WORMADAM_SANDY_CLOAK] = sWormadamFormSpeciesIdTable, - [SPECIES_WORMADAM_TRASH_CLOAK] = sWormadamFormSpeciesIdTable, - // Cherrim - [SPECIES_CHERRIM_SUNSHINE] = sCherrimFormSpeciesIdTable, - // Shellos - [SPECIES_SHELLOS_EAST_SEA] = sShellosFormSpeciesIdTable, - // Gastrodon - [SPECIES_GASTRODON_EAST_SEA] = sGastrodonFormSpeciesIdTable, - // Rotom - [SPECIES_ROTOM_HEAT] = sRotomFormSpeciesIdTable, - [SPECIES_ROTOM_WASH] = sRotomFormSpeciesIdTable, - [SPECIES_ROTOM_FROST] = sRotomFormSpeciesIdTable, - [SPECIES_ROTOM_FAN] = sRotomFormSpeciesIdTable, - [SPECIES_ROTOM_MOW] = sRotomFormSpeciesIdTable, - // Origin Forme - [SPECIES_DIALGA_ORIGIN] = sDialgaFormSpeciesIdTable, - [SPECIES_PALKIA_ORIGIN] = sPalkiaFormSpeciesIdTable, - [SPECIES_GIRATINA_ORIGIN] = sGiratinaFormSpeciesIdTable, - // Shaymin - [SPECIES_SHAYMIN_SKY] = sShayminFormSpeciesIdTable, - // Arceus - [SPECIES_ARCEUS_FIGHTING] = sArceusFormSpeciesIdTable, - [SPECIES_ARCEUS_FLYING] = sArceusFormSpeciesIdTable, - [SPECIES_ARCEUS_POISON] = sArceusFormSpeciesIdTable, - [SPECIES_ARCEUS_GROUND] = sArceusFormSpeciesIdTable, - [SPECIES_ARCEUS_ROCK] = sArceusFormSpeciesIdTable, - [SPECIES_ARCEUS_BUG] = sArceusFormSpeciesIdTable, - [SPECIES_ARCEUS_GHOST] = sArceusFormSpeciesIdTable, - [SPECIES_ARCEUS_STEEL] = sArceusFormSpeciesIdTable, - [SPECIES_ARCEUS_FIRE] = sArceusFormSpeciesIdTable, - [SPECIES_ARCEUS_WATER] = sArceusFormSpeciesIdTable, - [SPECIES_ARCEUS_GRASS] = sArceusFormSpeciesIdTable, - [SPECIES_ARCEUS_ELECTRIC] = sArceusFormSpeciesIdTable, - [SPECIES_ARCEUS_PSYCHIC] = sArceusFormSpeciesIdTable, - [SPECIES_ARCEUS_ICE] = sArceusFormSpeciesIdTable, - [SPECIES_ARCEUS_DRAGON] = sArceusFormSpeciesIdTable, - [SPECIES_ARCEUS_DARK] = sArceusFormSpeciesIdTable, - [SPECIES_ARCEUS_FAIRY] = sArceusFormSpeciesIdTable, -#endif -#if P_GEN_5_POKEMON == TRUE - // Basculin - [SPECIES_BASCULIN_BLUE_STRIPED] = sBasculinFormSpeciesIdTable, - [SPECIES_BASCULIN_WHITE_STRIPED] = sBasculinFormSpeciesIdTable, - // Darmanitan - [SPECIES_DARMANITAN_ZEN_MODE] = sDarmanitanFormSpeciesIdTable, - [SPECIES_DARMANITAN_GALARIAN_ZEN_MODE] = sDarmanitanFormSpeciesIdTable, - // Deerling - [SPECIES_DEERLING_SUMMER] = sDeerlingFormSpeciesIdTable, - [SPECIES_DEERLING_AUTUMN] = sDeerlingFormSpeciesIdTable, - [SPECIES_DEERLING_WINTER] = sDeerlingFormSpeciesIdTable, - // Sawsbuck - [SPECIES_SAWSBUCK_SUMMER] = sSawsbuckFormSpeciesIdTable, - [SPECIES_SAWSBUCK_AUTUMN] = sSawsbuckFormSpeciesIdTable, - [SPECIES_SAWSBUCK_WINTER] = sSawsbuckFormSpeciesIdTable, - // Therian Forms - [SPECIES_TORNADUS_THERIAN] = sTornadusFormSpeciesIdTable, - [SPECIES_THUNDURUS_THERIAN] = sThundurusFormSpeciesIdTable, - [SPECIES_LANDORUS_THERIAN] = sLandorusFormSpeciesIdTable, - // Kyurem - [SPECIES_KYUREM_WHITE] = sKyuremFormSpeciesIdTable, - [SPECIES_KYUREM_BLACK] = sKyuremFormSpeciesIdTable, - // Keldeo - [SPECIES_KELDEO_RESOLUTE] = sKeldeoFormSpeciesIdTable, - // Meloetta - [SPECIES_MELOETTA_PIROUETTE] = sMeloettaFormSpeciesIdTable, - // Genesect - [SPECIES_GENESECT_DOUSE_DRIVE] = sGenesectFormSpeciesIdTable, - [SPECIES_GENESECT_SHOCK_DRIVE] = sGenesectFormSpeciesIdTable, - [SPECIES_GENESECT_BURN_DRIVE] = sGenesectFormSpeciesIdTable, - [SPECIES_GENESECT_CHILL_DRIVE] = sGenesectFormSpeciesIdTable, -#endif -#if P_GEN_6_POKEMON == TRUE - // Greninja - [SPECIES_GRENINJA_BATTLE_BOND] = sGreninjaFormSpeciesIdTable, - [SPECIES_GRENINJA_ASH] = sGreninjaFormSpeciesIdTable, - // Vivillon - [SPECIES_VIVILLON_POLAR] = sVivillonFormSpeciesIdTable, - [SPECIES_VIVILLON_TUNDRA] = sVivillonFormSpeciesIdTable, - [SPECIES_VIVILLON_CONTINENTAL] = sVivillonFormSpeciesIdTable, - [SPECIES_VIVILLON_GARDEN] = sVivillonFormSpeciesIdTable, - [SPECIES_VIVILLON_ELEGANT] = sVivillonFormSpeciesIdTable, - [SPECIES_VIVILLON_MEADOW] = sVivillonFormSpeciesIdTable, - [SPECIES_VIVILLON_MODERN] = sVivillonFormSpeciesIdTable, - [SPECIES_VIVILLON_MARINE] = sVivillonFormSpeciesIdTable, - [SPECIES_VIVILLON_ARCHIPELAGO] = sVivillonFormSpeciesIdTable, - [SPECIES_VIVILLON_HIGH_PLAINS] = sVivillonFormSpeciesIdTable, - [SPECIES_VIVILLON_SANDSTORM] = sVivillonFormSpeciesIdTable, - [SPECIES_VIVILLON_RIVER] = sVivillonFormSpeciesIdTable, - [SPECIES_VIVILLON_MONSOON] = sVivillonFormSpeciesIdTable, - [SPECIES_VIVILLON_SAVANNA] = sVivillonFormSpeciesIdTable, - [SPECIES_VIVILLON_SUN] = sVivillonFormSpeciesIdTable, - [SPECIES_VIVILLON_OCEAN] = sVivillonFormSpeciesIdTable, - [SPECIES_VIVILLON_JUNGLE] = sVivillonFormSpeciesIdTable, - [SPECIES_VIVILLON_FANCY] = sVivillonFormSpeciesIdTable, - [SPECIES_VIVILLON_POKE_BALL] = sVivillonFormSpeciesIdTable, - // Flabébé - [SPECIES_FLABEBE_YELLOW_FLOWER] = sFlabebeFormSpeciesIdTable, - [SPECIES_FLABEBE_ORANGE_FLOWER] = sFlabebeFormSpeciesIdTable, - [SPECIES_FLABEBE_BLUE_FLOWER] = sFlabebeFormSpeciesIdTable, - [SPECIES_FLABEBE_WHITE_FLOWER] = sFlabebeFormSpeciesIdTable, - // Floette - [SPECIES_FLOETTE_YELLOW_FLOWER] = sFloetteFormSpeciesIdTable, - [SPECIES_FLOETTE_ORANGE_FLOWER] = sFloetteFormSpeciesIdTable, - [SPECIES_FLOETTE_BLUE_FLOWER] = sFloetteFormSpeciesIdTable, - [SPECIES_FLOETTE_WHITE_FLOWER] = sFloetteFormSpeciesIdTable, - [SPECIES_FLOETTE_ETERNAL_FLOWER] = sFloetteFormSpeciesIdTable, - // Florges - [SPECIES_FLORGES_YELLOW_FLOWER] = sFlorgesFormSpeciesIdTable, - [SPECIES_FLORGES_ORANGE_FLOWER] = sFlorgesFormSpeciesIdTable, - [SPECIES_FLORGES_BLUE_FLOWER] = sFlorgesFormSpeciesIdTable, - [SPECIES_FLORGES_WHITE_FLOWER] = sFlorgesFormSpeciesIdTable, - //Furfrou - [SPECIES_FURFROU_HEART_TRIM] = sFurfrouFormSpeciesIdTable, - [SPECIES_FURFROU_STAR_TRIM] = sFurfrouFormSpeciesIdTable, - [SPECIES_FURFROU_DIAMOND_TRIM] = sFurfrouFormSpeciesIdTable, - [SPECIES_FURFROU_DEBUTANTE_TRIM] = sFurfrouFormSpeciesIdTable, - [SPECIES_FURFROU_MATRON_TRIM] = sFurfrouFormSpeciesIdTable, - [SPECIES_FURFROU_DANDY_TRIM] = sFurfrouFormSpeciesIdTable, - [SPECIES_FURFROU_LA_REINE_TRIM] = sFurfrouFormSpeciesIdTable, - [SPECIES_FURFROU_KABUKI_TRIM] = sFurfrouFormSpeciesIdTable, - [SPECIES_FURFROU_PHARAOH_TRIM] = sFurfrouFormSpeciesIdTable, - // Meowstic - [SPECIES_MEOWSTIC_FEMALE] = sMeowsticFormSpeciesIdTable, - // Aegislash - [SPECIES_AEGISLASH_BLADE] = sAegislashFormSpeciesIdTable, - // Pumpkaboo - [SPECIES_PUMPKABOO_SMALL] = sPumpkabooFormSpeciesIdTable, - [SPECIES_PUMPKABOO_LARGE] = sPumpkabooFormSpeciesIdTable, - [SPECIES_PUMPKABOO_SUPER] = sPumpkabooFormSpeciesIdTable, - // Gourgeist - [SPECIES_GOURGEIST_SMALL] = sGourgeistFormSpeciesIdTable, - [SPECIES_GOURGEIST_LARGE] = sGourgeistFormSpeciesIdTable, - [SPECIES_GOURGEIST_SUPER] = sGourgeistFormSpeciesIdTable, - // Xerneas - [SPECIES_XERNEAS_ACTIVE] = sXerneasFormSpeciesIdTable, - // Zygarde - [SPECIES_ZYGARDE_10_AURA_BREAK] = sZygardeFormSpeciesIdTable, - [SPECIES_ZYGARDE_10_POWER_CONSTRUCT] = sZygardeFormSpeciesIdTable, - [SPECIES_ZYGARDE_50_POWER_CONSTRUCT] = sZygardeFormSpeciesIdTable, - [SPECIES_ZYGARDE_COMPLETE] = sZygardeFormSpeciesIdTable, - // Hoopa - [SPECIES_HOOPA_UNBOUND] = sHoopaFormSpeciesIdTable, -#endif -#if P_GEN_7_POKEMON == TRUE - // Oricorio - [SPECIES_ORICORIO_POM_POM] = sOricorioFormSpeciesIdTable, - [SPECIES_ORICORIO_PAU] = sOricorioFormSpeciesIdTable, - [SPECIES_ORICORIO_SENSU] = sOricorioFormSpeciesIdTable, - // Rockruff - [SPECIES_ROCKRUFF_OWN_TEMPO] = sRockruffFormSpeciesIdTable, - // Lycanroc - [SPECIES_LYCANROC_MIDNIGHT] = sLycanrocFormSpeciesIdTable, - [SPECIES_LYCANROC_DUSK] = sLycanrocFormSpeciesIdTable, - // Wishiwashi - [SPECIES_WISHIWASHI_SCHOOL] = sWishiwashiFormSpeciesIdTable, - // Silvally - [SPECIES_SILVALLY_FIGHTING] = sSilvallyFormSpeciesIdTable, - [SPECIES_SILVALLY_FLYING] = sSilvallyFormSpeciesIdTable, - [SPECIES_SILVALLY_POISON] = sSilvallyFormSpeciesIdTable, - [SPECIES_SILVALLY_GROUND] = sSilvallyFormSpeciesIdTable, - [SPECIES_SILVALLY_ROCK] = sSilvallyFormSpeciesIdTable, - [SPECIES_SILVALLY_BUG] = sSilvallyFormSpeciesIdTable, - [SPECIES_SILVALLY_GHOST] = sSilvallyFormSpeciesIdTable, - [SPECIES_SILVALLY_STEEL] = sSilvallyFormSpeciesIdTable, - [SPECIES_SILVALLY_FIRE] = sSilvallyFormSpeciesIdTable, - [SPECIES_SILVALLY_WATER] = sSilvallyFormSpeciesIdTable, - [SPECIES_SILVALLY_GRASS] = sSilvallyFormSpeciesIdTable, - [SPECIES_SILVALLY_ELECTRIC] = sSilvallyFormSpeciesIdTable, - [SPECIES_SILVALLY_PSYCHIC] = sSilvallyFormSpeciesIdTable, - [SPECIES_SILVALLY_ICE] = sSilvallyFormSpeciesIdTable, - [SPECIES_SILVALLY_DRAGON] = sSilvallyFormSpeciesIdTable, - [SPECIES_SILVALLY_DARK] = sSilvallyFormSpeciesIdTable, - [SPECIES_SILVALLY_FAIRY] = sSilvallyFormSpeciesIdTable, - // Minior - [SPECIES_MINIOR_METEOR_ORANGE] = sMiniorFormSpeciesIdTable, - [SPECIES_MINIOR_METEOR_YELLOW] = sMiniorFormSpeciesIdTable, - [SPECIES_MINIOR_METEOR_GREEN] = sMiniorFormSpeciesIdTable, - [SPECIES_MINIOR_METEOR_BLUE] = sMiniorFormSpeciesIdTable, - [SPECIES_MINIOR_METEOR_INDIGO] = sMiniorFormSpeciesIdTable, - [SPECIES_MINIOR_METEOR_VIOLET] = sMiniorFormSpeciesIdTable, - [SPECIES_MINIOR_CORE_RED] = sMiniorFormSpeciesIdTable, - [SPECIES_MINIOR_CORE_ORANGE] = sMiniorFormSpeciesIdTable, - [SPECIES_MINIOR_CORE_YELLOW] = sMiniorFormSpeciesIdTable, - [SPECIES_MINIOR_CORE_GREEN] = sMiniorFormSpeciesIdTable, - [SPECIES_MINIOR_CORE_BLUE] = sMiniorFormSpeciesIdTable, - [SPECIES_MINIOR_CORE_INDIGO] = sMiniorFormSpeciesIdTable, - [SPECIES_MINIOR_CORE_VIOLET] = sMiniorFormSpeciesIdTable, - // Mimikyu - [SPECIES_MIMIKYU_BUSTED] = sMimikyuFormSpeciesIdTable, - // Necrozma - [SPECIES_NECROZMA_DUSK_MANE] = sNecrozmaFormSpeciesIdTable, - [SPECIES_NECROZMA_DAWN_WINGS] = sNecrozmaFormSpeciesIdTable, - [SPECIES_NECROZMA_ULTRA] = sNecrozmaFormSpeciesIdTable, - // Magearna - [SPECIES_MAGEARNA_ORIGINAL_COLOR] = sMagearnaFormSpeciesIdTable, -#endif -#if P_GEN_8_POKEMON == TRUE - // Cramorant - [SPECIES_CRAMORANT_GULPING] = sCramorantFormSpeciesIdTable, - [SPECIES_CRAMORANT_GORGING] = sCramorantFormSpeciesIdTable, - // Toxtricity - [SPECIES_TOXTRICITY_LOW_KEY] = sToxtricityFormSpeciesIdTable, - // Sinistea - [SPECIES_SINISTEA_ANTIQUE] = sSinisteaFormSpeciesIdTable, - // Polteageist - [SPECIES_POLTEAGEIST_ANTIQUE] = sPolteageistFormSpeciesIdTable, - // Alcremie - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL] = sAlcremieFormSpeciesIdTable, - [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL] = sAlcremieFormSpeciesIdTable, - // Eiscue - [SPECIES_EISCUE_NOICE_FACE] = sEiscueFormSpeciesIdTable, - // Indeedee - [SPECIES_INDEEDEE_FEMALE] = sIndeedeeFormSpeciesIdTable, - // Morpeko - [SPECIES_MORPEKO_HANGRY] = sMorpekoFormSpeciesIdTable, - // Zacian - [SPECIES_ZACIAN_CROWNED_SWORD] = sZacianFormSpeciesIdTable, - // Zamazenta - [SPECIES_ZAMAZENTA_CROWNED_SHIELD] = sZamazentaFormSpeciesIdTable, - // Eternatus - [SPECIES_ETERNATUS_ETERNAMAX] = sEternatusFormSpeciesIdTable, - // Urshifu - [SPECIES_URSHIFU_RAPID_STRIKE_STYLE] = sUrshifuFormSpeciesIdTable, - // Zarude - [SPECIES_ZARUDE_DADA] = sZarudeFormSpeciesIdTable, - // Calyrex - [SPECIES_CALYREX_ICE_RIDER] = sCalyrexFormSpeciesIdTable, - [SPECIES_CALYREX_SHADOW_RIDER] = sCalyrexFormSpeciesIdTable, - // Enamorus - [SPECIES_ENAMORUS_THERIAN] = sEnamorusFormSpeciesIdTable, - // Basculegion - [SPECIES_BASCULEGION_FEMALE] = sBasculegionFormSpeciesIdTable, - // Gigantamax Forms - [SPECIES_VENUSAUR_GIGANTAMAX] = sVenusaurFormSpeciesIdTable, - [SPECIES_CHARIZARD_GIGANTAMAX] = sCharizardFormSpeciesIdTable, - [SPECIES_BLASTOISE_GIGANTAMAX] = sBlastoiseFormSpeciesIdTable, - [SPECIES_BUTTERFREE_GIGANTAMAX] = sButterfreeFormSpeciesIdTable, - [SPECIES_PIKACHU_GIGANTAMAX] = sPikachuFormSpeciesIdTable, - [SPECIES_MEOWTH_GIGANTAMAX] = sMeowthFormSpeciesIdTable, - [SPECIES_MACHAMP_GIGANTAMAX] = sMachampFormSpeciesIdTable, - [SPECIES_GENGAR_GIGANTAMAX] = sGengarFormSpeciesIdTable, - [SPECIES_KINGLER_GIGANTAMAX] = sKinglerFormSpeciesIdTable, - [SPECIES_LAPRAS_GIGANTAMAX] = sLaprasFormSpeciesIdTable, - [SPECIES_EEVEE_GIGANTAMAX] = sEeveeFormSpeciesIdTable, - [SPECIES_SNORLAX_GIGANTAMAX] = sSnorlaxFormSpeciesIdTable, - [SPECIES_GARBODOR_GIGANTAMAX] = sGarbodorFormSpeciesIdTable, - [SPECIES_MELMETAL_GIGANTAMAX] = sMelmetalFormSpeciesIdTable, - [SPECIES_RILLABOOM_GIGANTAMAX] = sRillaboomFormSpeciesIdTable, - [SPECIES_CINDERACE_GIGANTAMAX] = sCinderaceFormSpeciesIdTable, - [SPECIES_INTELEON_GIGANTAMAX] = sInteleonFormSpeciesIdTable, - [SPECIES_CORVIKNIGHT_GIGANTAMAX] = sCorviknightFormSpeciesIdTable, - [SPECIES_ORBEETLE_GIGANTAMAX] = sOrbeetleFormSpeciesIdTable, - [SPECIES_DREDNAW_GIGANTAMAX] = sDrednawFormSpeciesIdTable, - [SPECIES_COALOSSAL_GIGANTAMAX] = sCoalossalFormSpeciesIdTable, - [SPECIES_FLAPPLE_GIGANTAMAX] = sFlappleFormSpeciesIdTable, - [SPECIES_APPLETUN_GIGANTAMAX] = sAppletunFormSpeciesIdTable, - [SPECIES_SANDACONDA_GIGANTAMAX] = sSandacondaFormSpeciesIdTable, - [SPECIES_TOXTRICITY_AMPED_GIGANTAMAX] = sToxtricityFormSpeciesIdTable, - [SPECIES_TOXTRICITY_LOW_KEY_GIGANTAMAX] = sToxtricityFormSpeciesIdTable, - [SPECIES_CENTISKORCH_GIGANTAMAX] = sCentiskorchFormSpeciesIdTable, - [SPECIES_HATTERENE_GIGANTAMAX] = sHattereneFormSpeciesIdTable, - [SPECIES_GRIMMSNARL_GIGANTAMAX] = sGrimmsnarlFormSpeciesIdTable, - [SPECIES_ALCREMIE_GIGANTAMAX] = sAlcremieFormSpeciesIdTable, - [SPECIES_COPPERAJAH_GIGANTAMAX] = sCopperajahFormSpeciesIdTable, - [SPECIES_DURALUDON_GIGANTAMAX] = sDuraludonFormSpeciesIdTable, - [SPECIES_URSHIFU_SINGLE_STRIKE_STYLE_GIGANTAMAX] = sUrshifuFormSpeciesIdTable, - [SPECIES_URSHIFU_RAPID_STRIKE_STYLE_GIGANTAMAX] = sUrshifuFormSpeciesIdTable, -#endif -}; diff --git a/src/data/pokemon/form_species_tables.h b/src/data/pokemon/form_species_tables.h index a1d531488453..94fa38c1bb8b 100644 --- a/src/data/pokemon/form_species_tables.h +++ b/src/data/pokemon/form_species_tables.h @@ -1,10 +1,13 @@ +#if P_FAMILY_BULBASAUR static const u16 sVenusaurFormSpeciesIdTable[] = { SPECIES_VENUSAUR, SPECIES_VENUSAUR_MEGA, SPECIES_VENUSAUR_GIGANTAMAX, FORM_SPECIES_END, }; +#endif //P_FAMILY_BULBASAUR +#if P_FAMILY_CHARMANDER static const u16 sCharizardFormSpeciesIdTable[] = { SPECIES_CHARIZARD, SPECIES_CHARIZARD_MEGA_X, @@ -12,32 +15,42 @@ static const u16 sCharizardFormSpeciesIdTable[] = { SPECIES_CHARIZARD_GIGANTAMAX, FORM_SPECIES_END, }; +#endif //P_FAMILY_CHARMANDER +#if P_FAMILY_SQUIRTLE static const u16 sBlastoiseFormSpeciesIdTable[] = { SPECIES_BLASTOISE, SPECIES_BLASTOISE_MEGA, SPECIES_BLASTOISE_GIGANTAMAX, FORM_SPECIES_END, }; +#endif //P_FAMILY_SQUIRTLE +#if P_FAMILY_CATERPIE static const u16 sButterfreeFormSpeciesIdTable[] = { SPECIES_BUTTERFREE, SPECIES_BUTTERFREE_GIGANTAMAX, FORM_SPECIES_END, }; +#endif //P_FAMILY_CATERPIE +#if P_FAMILY_WEEDLE static const u16 sBeedrillFormSpeciesIdTable[] = { SPECIES_BEEDRILL, SPECIES_BEEDRILL_MEGA, FORM_SPECIES_END, }; +#endif //P_FAMILY_WEEDLE +#if P_FAMILY_PIDGEY static const u16 sPidgeotFormSpeciesIdTable[] = { SPECIES_PIDGEOT, SPECIES_PIDGEOT_MEGA, FORM_SPECIES_END, }; +#endif //P_FAMILY_PIDGEY +#if P_FAMILY_RATTATA static const u16 sRattataFormSpeciesIdTable[] = { SPECIES_RATTATA, SPECIES_RATTATA_ALOLAN, @@ -49,6 +62,16 @@ static const u16 sRaticateFormSpeciesIdTable[] = { SPECIES_RATICATE_ALOLAN, FORM_SPECIES_END, }; +#endif //P_FAMILY_RATTATA + +#if P_FAMILY_PIKACHU +#if P_GEN_2_CROSS_EVOS +static const u16 sPichuFormSpeciesIdTable[] = { + SPECIES_PICHU, + SPECIES_PICHU_SPIKY_EARED, + FORM_SPECIES_END, +}; +#endif //P_GEN_2_CROSS_EVOS static const u16 sPikachuFormSpeciesIdTable[] = { SPECIES_PIKACHU, @@ -75,7 +98,9 @@ static const u16 sRaichuFormSpeciesIdTable[] = { SPECIES_RAICHU_ALOLAN, FORM_SPECIES_END, }; +#endif //P_FAMILY_PIKACHU +#if P_FAMILY_SANDSHREW static const u16 sSandshrewFormSpeciesIdTable[] = { SPECIES_SANDSHREW, SPECIES_SANDSHREW_ALOLAN, @@ -87,7 +112,9 @@ static const u16 sSandslashFormSpeciesIdTable[] = { SPECIES_SANDSLASH_ALOLAN, FORM_SPECIES_END, }; +#endif //P_FAMILY_SANDSHREW +#if P_FAMILY_VULPIX static const u16 sVulpixFormSpeciesIdTable[] = { SPECIES_VULPIX, SPECIES_VULPIX_ALOLAN, @@ -99,7 +126,9 @@ static const u16 sNinetalesFormSpeciesIdTable[] = { SPECIES_NINETALES_ALOLAN, FORM_SPECIES_END, }; +#endif //P_FAMILY_VULPIX +#if P_FAMILY_DIGLETT static const u16 sDiglettFormSpeciesIdTable[] = { SPECIES_DIGLETT, SPECIES_DIGLETT_ALOLAN, @@ -111,7 +140,9 @@ static const u16 sDugtrioFormSpeciesIdTable[] = { SPECIES_DUGTRIO_ALOLAN, FORM_SPECIES_END, }; +#endif //P_FAMILY_DIGLETT +#if P_FAMILY_MEOWTH static const u16 sMeowthFormSpeciesIdTable[] = { SPECIES_MEOWTH, SPECIES_MEOWTH_ALOLAN, @@ -125,13 +156,9 @@ static const u16 sPersianFormSpeciesIdTable[] = { SPECIES_PERSIAN_ALOLAN, FORM_SPECIES_END, }; +#endif //P_FAMILY_MEOWTH -static const u16 sAlakazamFormSpeciesIdTable[] = { - SPECIES_ALAKAZAM, - SPECIES_ALAKAZAM_MEGA, - FORM_SPECIES_END, -}; - +#if P_FAMILY_GROWLITHE static const u16 sGrowlitheFormSpeciesIdTable[] = { SPECIES_GROWLITHE, SPECIES_GROWLITHE_HISUIAN, @@ -143,13 +170,25 @@ static const u16 sArcanineFormSpeciesIdTable[] = { SPECIES_ARCANINE_HISUIAN, FORM_SPECIES_END, }; +#endif //P_FAMILY_GROWLITHE + +#if P_FAMILY_ABRA +static const u16 sAlakazamFormSpeciesIdTable[] = { + SPECIES_ALAKAZAM, + SPECIES_ALAKAZAM_MEGA, + FORM_SPECIES_END, +}; +#endif //P_FAMILY_ABRA +#if P_FAMILY_MACHOP static const u16 sMachampFormSpeciesIdTable[] = { SPECIES_MACHAMP, SPECIES_MACHAMP_GIGANTAMAX, FORM_SPECIES_END, }; +#endif //P_FAMILY_MACHOP +#if P_FAMILY_GEODUDE static const u16 sGeodudeFormSpeciesIdTable[] = { SPECIES_GEODUDE, SPECIES_GEODUDE_ALOLAN, @@ -167,7 +206,9 @@ static const u16 sGolemFormSpeciesIdTable[] = { SPECIES_GOLEM_ALOLAN, FORM_SPECIES_END, }; +#endif //P_FAMILY_GEODUDE +#if P_FAMILY_PONYTA static const u16 sPonytaFormSpeciesIdTable[] = { SPECIES_PONYTA, SPECIES_PONYTA_GALARIAN, @@ -179,7 +220,9 @@ static const u16 sRapidashFormSpeciesIdTable[] = { SPECIES_RAPIDASH_GALARIAN, FORM_SPECIES_END, }; +#endif //P_FAMILY_PONYTA +#if P_FAMILY_SLOWPOKE static const u16 sSlowpokeFormSpeciesIdTable[] = { SPECIES_SLOWPOKE, SPECIES_SLOWPOKE_GALARIAN, @@ -193,12 +236,24 @@ static const u16 sSlowbroFormSpeciesIdTable[] = { FORM_SPECIES_END, }; +#if P_GEN_2_CROSS_EVOS +static const u16 sSlowkingFormSpeciesIdTable[] = { + SPECIES_SLOWKING, + SPECIES_SLOWKING_GALARIAN, + FORM_SPECIES_END, +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_SLOWPOKE + +#if P_FAMILY_FARFETCHD static const u16 sFarfetchdFormSpeciesIdTable[] = { SPECIES_FARFETCHD, SPECIES_FARFETCHD_GALARIAN, FORM_SPECIES_END, }; +#endif //P_FAMILY_FARFETCHD +#if P_FAMILY_GRIMER static const u16 sGrimerFormSpeciesIdTable[] = { SPECIES_GRIMER, SPECIES_GRIMER_ALOLAN, @@ -210,20 +265,36 @@ static const u16 sMukFormSpeciesIdTable[] = { SPECIES_MUK_ALOLAN, FORM_SPECIES_END, }; +#endif //P_FAMILY_GRIMER -static const u16 sKinglerFormSpeciesIdTable[] = { - SPECIES_KINGLER, - SPECIES_KINGLER_GIGANTAMAX, - FORM_SPECIES_END, -}; - +#if P_FAMILY_GASTLY static const u16 sGengarFormSpeciesIdTable[] = { SPECIES_GENGAR, SPECIES_GENGAR_MEGA, SPECIES_GENGAR_GIGANTAMAX, FORM_SPECIES_END, }; +#endif //P_FAMILY_GASTLY + +#if P_FAMILY_ONIX +#if P_GEN_2_CROSS_EVOS +static const u16 sSteelixFormSpeciesIdTable[] = { + SPECIES_STEELIX, + SPECIES_STEELIX_MEGA, + FORM_SPECIES_END, +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ONIX + +#if P_FAMILY_KRABBY +static const u16 sKinglerFormSpeciesIdTable[] = { + SPECIES_KINGLER, + SPECIES_KINGLER_GIGANTAMAX, + FORM_SPECIES_END, +}; +#endif //P_FAMILY_KRABBY +#if P_FAMILY_VOLTORB static const u16 sVoltorbFormSpeciesIdTable[] = { SPECIES_VOLTORB, SPECIES_VOLTORB_HISUIAN, @@ -235,134 +306,174 @@ static const u16 sElectrodeFormSpeciesIdTable[] = { SPECIES_ELECTRODE_HISUIAN, FORM_SPECIES_END, }; +#endif //P_FAMILY_VOLTORB +#if P_FAMILY_EXEGGCUTE static const u16 sExeggutorFormSpeciesIdTable[] = { SPECIES_EXEGGUTOR, SPECIES_EXEGGUTOR_ALOLAN, FORM_SPECIES_END, }; +#endif //P_FAMILY_EXEGGCUTE +#if P_FAMILY_CUBONE static const u16 sMarowakFormSpeciesIdTable[] = { SPECIES_MAROWAK, SPECIES_MAROWAK_ALOLAN, FORM_SPECIES_END, }; +#endif //P_FAMILY_CUBONE +#if P_FAMILY_KOFFING static const u16 sWeezingFormSpeciesIdTable[] = { SPECIES_WEEZING, SPECIES_WEEZING_GALARIAN, FORM_SPECIES_END, }; +#endif //P_FAMILY_KOFFING +#if P_FAMILY_KANGASKHAN static const u16 sKangaskhanFormSpeciesIdTable[] = { SPECIES_KANGASKHAN, SPECIES_KANGASKHAN_MEGA, FORM_SPECIES_END, }; +#endif //P_FAMILY_KANGASKHAN +#if P_FAMILY_MR_MIME static const u16 sMrMimeFormSpeciesIdTable[] = { SPECIES_MR_MIME, SPECIES_MR_MIME_GALARIAN, FORM_SPECIES_END, }; +#endif //P_FAMILY_MR_MIME +#if P_FAMILY_SCYTHER +#if P_GEN_2_CROSS_EVOS +static const u16 sScizorFormSpeciesIdTable[] = { + SPECIES_SCIZOR, + SPECIES_SCIZOR_MEGA, + FORM_SPECIES_END, +}; +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_SCYTHER + +#if P_FAMILY_PINSIR static const u16 sPinsirFormSpeciesIdTable[] = { SPECIES_PINSIR, SPECIES_PINSIR_MEGA, FORM_SPECIES_END, }; +#endif //P_FAMILY_PINSIR +#if P_FAMILY_TAUROS +static const u16 sTaurosFormSpeciesIdTable[] = { + SPECIES_TAUROS, + SPECIES_TAUROS_PALDEAN_COMBAT_BREED, + SPECIES_TAUROS_PALDEAN_BLAZE_BREED, + SPECIES_TAUROS_PALDEAN_AQUA_BREED, + FORM_SPECIES_END, +}; +#endif //P_FAMILY_TAUROS + +#if P_FAMILY_MAGIKARP static const u16 sGyaradosFormSpeciesIdTable[] = { SPECIES_GYARADOS, SPECIES_GYARADOS_MEGA, FORM_SPECIES_END, }; +#endif //P_FAMILY_MAGIKARP +#if P_FAMILY_LAPRAS static const u16 sLaprasFormSpeciesIdTable[] = { SPECIES_LAPRAS, SPECIES_LAPRAS_GIGANTAMAX, FORM_SPECIES_END, }; +#endif //P_FAMILY_LAPRAS +#if P_FAMILY_EEVEE static const u16 sEeveeFormSpeciesIdTable[] = { SPECIES_EEVEE, SPECIES_EEVEE_GIGANTAMAX, FORM_SPECIES_END, }; +#endif //P_FAMILY_EEVEE +#if P_FAMILY_AERODACTYL static const u16 sAerodactylFormSpeciesIdTable[] = { SPECIES_AERODACTYL, SPECIES_AERODACTYL_MEGA, FORM_SPECIES_END, }; +#endif //P_FAMILY_AERODACTYL +#if P_FAMILY_SNORLAX static const u16 sSnorlaxFormSpeciesIdTable[] = { SPECIES_SNORLAX, SPECIES_SNORLAX_GIGANTAMAX, FORM_SPECIES_END, }; +#endif //P_FAMILY_SNORLAX +#if P_FAMILY_ARTICUNO static const u16 sArticunoFormSpeciesIdTable[] = { SPECIES_ARTICUNO, SPECIES_ARTICUNO_GALARIAN, FORM_SPECIES_END, }; +#endif //P_FAMILY_ARTICUNO +#if P_FAMILY_ZAPDOS static const u16 sZapdosFormSpeciesIdTable[] = { SPECIES_ZAPDOS, SPECIES_ZAPDOS_GALARIAN, FORM_SPECIES_END, }; +#endif //P_FAMILY_ZAPDOS +#if P_FAMILY_MOLTRES static const u16 sMoltresFormSpeciesIdTable[] = { SPECIES_MOLTRES, SPECIES_MOLTRES_GALARIAN, FORM_SPECIES_END, }; +#endif //P_FAMILY_MOLTRES -static const u16 sTyphlosionFormSpeciesIdTable[] = { - SPECIES_TYPHLOSION, - SPECIES_TYPHLOSION_HISUIAN, - FORM_SPECIES_END, -}; - +#if P_FAMILY_MEWTWO static const u16 sMewtwoFormSpeciesIdTable[] = { SPECIES_MEWTWO, SPECIES_MEWTWO_MEGA_X, SPECIES_MEWTWO_MEGA_Y, FORM_SPECIES_END, }; +#endif //P_FAMILY_MEWTWO -static const u16 sPichuFormSpeciesIdTable[] = { - SPECIES_PICHU, - SPECIES_PICHU_SPIKY_EARED, +#if P_FAMILY_CYNDAQUIL +static const u16 sTyphlosionFormSpeciesIdTable[] = { + SPECIES_TYPHLOSION, + SPECIES_TYPHLOSION_HISUIAN, FORM_SPECIES_END, }; +#endif //P_FAMILY_CYNDAQUIL +#if P_FAMILY_MAREEP static const u16 sAmpharosFormSpeciesIdTable[] = { SPECIES_AMPHAROS, SPECIES_AMPHAROS_MEGA, FORM_SPECIES_END, }; +#endif //P_FAMILY_MAREEP -static const u16 sSlowkingFormSpeciesIdTable[] = { - SPECIES_SLOWKING, - SPECIES_SLOWKING_GALARIAN, - FORM_SPECIES_END, -}; - -static const u16 sQwilfishFormSpeciesIdTable[] = { - SPECIES_QWILFISH, - SPECIES_QWILFISH_HISUIAN, - FORM_SPECIES_END, -}; - -static const u16 sSneaselFormSpeciesIdTable[] = { - SPECIES_SNEASEL, - SPECIES_SNEASEL_HISUIAN, +#if P_FAMILY_WOOPER +static const u16 sWooperFormSpeciesIdTable[] = { + SPECIES_WOOPER, + SPECIES_WOOPER_PALDEAN, FORM_SPECIES_END, }; +#endif //P_FAMILY_WOOPER +#if P_FAMILY_UNOWN static const u16 sUnownFormSpeciesIdTable[] = { SPECIES_UNOWN, SPECIES_UNOWN_B, @@ -394,61 +505,97 @@ static const u16 sUnownFormSpeciesIdTable[] = { SPECIES_UNOWN_QMARK, FORM_SPECIES_END, }; +#endif //P_FAMILY_UNOWN -static const u16 sSteelixFormSpeciesIdTable[] = { - SPECIES_STEELIX, - SPECIES_STEELIX_MEGA, +#if P_FAMILY_DUNSPARCE +static const u16 sDudunsparceFormSpeciesIdTable[] = { + SPECIES_DUDUNSPARCE_TWO_SEGMENT, + SPECIES_DUDUNSPARCE_THREE_SEGMENT, FORM_SPECIES_END, }; +#endif //P_FAMILY_DUNSPARCE -static const u16 sScizorFormSpeciesIdTable[] = { - SPECIES_SCIZOR, - SPECIES_SCIZOR_MEGA, +#if P_FAMILY_QWILFISH +static const u16 sQwilfishFormSpeciesIdTable[] = { + SPECIES_QWILFISH, + SPECIES_QWILFISH_HISUIAN, FORM_SPECIES_END, }; +#endif //P_FAMILY_QWILFISH +#if P_FAMILY_HERACROSS static const u16 sHeracrossFormSpeciesIdTable[] = { SPECIES_HERACROSS, SPECIES_HERACROSS_MEGA, FORM_SPECIES_END, }; +#endif //P_FAMILY_HERACROSS +#if P_FAMILY_SNEASEL +static const u16 sSneaselFormSpeciesIdTable[] = { + SPECIES_SNEASEL, + SPECIES_SNEASEL_HISUIAN, + FORM_SPECIES_END, +}; +#endif //P_FAMILY_SNEASEL + +#if P_FAMILY_TEDDIURSA +static const u16 sUrsalunaFormSpeciesIdTable[] = { + SPECIES_URSALUNA, + SPECIES_URSALUNA_BLOODMOON, + FORM_SPECIES_END, +}; +#endif //P_FAMILY_TEDDIURSA + +#if P_FAMILY_CORSOLA static const u16 sCorsolaFormSpeciesIdTable[] = { SPECIES_CORSOLA, SPECIES_CORSOLA_GALARIAN, FORM_SPECIES_END, }; +#endif //P_FAMILY_CORSOLA +#if P_FAMILY_HOUNDOUR static const u16 sHoundoomFormSpeciesIdTable[] = { SPECIES_HOUNDOOM, SPECIES_HOUNDOOM_MEGA, FORM_SPECIES_END, }; +#endif //P_FAMILY_HOUNDOUR +#if P_FAMILY_LARVITAR static const u16 sTyranitarFormSpeciesIdTable[] = { SPECIES_TYRANITAR, SPECIES_TYRANITAR_MEGA, FORM_SPECIES_END, }; +#endif //P_FAMILY_LARVITAR +#if P_FAMILY_TREECKO static const u16 sSceptileFormSpeciesIdTable[] = { SPECIES_SCEPTILE, SPECIES_SCEPTILE_MEGA, FORM_SPECIES_END, }; +#endif //P_FAMILY_TREECKO +#if P_FAMILY_TORCHIC static const u16 sBlazikenFormSpeciesIdTable[] = { SPECIES_BLAZIKEN, SPECIES_BLAZIKEN_MEGA, FORM_SPECIES_END, }; +#endif //P_FAMILY_TORCHIC +#if P_FAMILY_MUDKIP static const u16 sSwampertFormSpeciesIdTable[] = { SPECIES_SWAMPERT, SPECIES_SWAMPERT_MEGA, FORM_SPECIES_END, }; +#endif //P_FAMILY_MUDKIP +#if P_FAMILY_ZIGZAGOON static const u16 sZigzagoonFormSpeciesIdTable[] = { SPECIES_ZIGZAGOON, SPECIES_ZIGZAGOON_GALARIAN, @@ -460,61 +607,89 @@ static const u16 sLinooneFormSpeciesIdTable[] = { SPECIES_LINOONE_GALARIAN, FORM_SPECIES_END, }; +#endif //P_FAMILY_ZIGZAGOON +#if P_FAMILY_RALTS static const u16 sGardevoirFormSpeciesIdTable[] = { SPECIES_GARDEVOIR, SPECIES_GARDEVOIR_MEGA, FORM_SPECIES_END, }; +#if P_GEN_4_CROSS_EVOS +static const u16 sGalladeFormSpeciesIdTable[] = { + SPECIES_GALLADE, + SPECIES_GALLADE_MEGA, + FORM_SPECIES_END, +}; +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_RALTS + +#if P_FAMILY_SABLEYE static const u16 sSableyeFormSpeciesIdTable[] = { SPECIES_SABLEYE, SPECIES_SABLEYE_MEGA, FORM_SPECIES_END, }; +#endif //P_FAMILY_SABLEYE +#if P_FAMILY_MAWILE static const u16 sMawileFormSpeciesIdTable[] = { SPECIES_MAWILE, SPECIES_MAWILE_MEGA, FORM_SPECIES_END, }; +#endif //P_FAMILY_MAWILE +#if P_FAMILY_ARON static const u16 sAggronFormSpeciesIdTable[] = { SPECIES_AGGRON, SPECIES_AGGRON_MEGA, FORM_SPECIES_END, }; +#endif //P_FAMILY_ARON +#if P_FAMILY_MEDITITE static const u16 sMedichamFormSpeciesIdTable[] = { SPECIES_MEDICHAM, SPECIES_MEDICHAM_MEGA, FORM_SPECIES_END, }; +#endif //P_FAMILY_MEDITITE +#if P_FAMILY_ELECTRIKE static const u16 sManectricFormSpeciesIdTable[] = { SPECIES_MANECTRIC, SPECIES_MANECTRIC_MEGA, FORM_SPECIES_END, }; +#endif //P_FAMILY_ELECTRIKE +#if P_FAMILY_CARVANHA static const u16 sSharpedoFormSpeciesIdTable[] = { SPECIES_SHARPEDO, SPECIES_SHARPEDO_MEGA, FORM_SPECIES_END, }; +#endif //P_FAMILY_CARVANHA +#if P_FAMILY_NUMEL static const u16 sCameruptFormSpeciesIdTable[] = { SPECIES_CAMERUPT, SPECIES_CAMERUPT_MEGA, FORM_SPECIES_END, }; +#endif //P_FAMILY_NUMEL +#if P_FAMILY_SWABLU static const u16 sAltariaFormSpeciesIdTable[] = { SPECIES_ALTARIA, SPECIES_ALTARIA_MEGA, FORM_SPECIES_END, }; +#endif //P_FAMILY_SWABLU +#if P_FAMILY_CASTFORM static const u16 sCastformFormSpeciesIdTable[] = { SPECIES_CASTFORM_NORMAL, SPECIES_CASTFORM_SUNNY, @@ -522,67 +697,89 @@ static const u16 sCastformFormSpeciesIdTable[] = { SPECIES_CASTFORM_SNOWY, FORM_SPECIES_END, }; +#endif //P_FAMILY_CASTFORM +#if P_FAMILY_SHUPPET static const u16 sBanetteFormSpeciesIdTable[] = { SPECIES_BANETTE, SPECIES_BANETTE_MEGA, FORM_SPECIES_END, }; +#endif //P_FAMILY_SHUPPET +#if P_FAMILY_ABSOL static const u16 sAbsolFormSpeciesIdTable[] = { SPECIES_ABSOL, SPECIES_ABSOL_MEGA, FORM_SPECIES_END, }; +#endif //P_FAMILY_ABSOL +#if P_FAMILY_SNORUNT static const u16 sGlalieFormSpeciesIdTable[] = { SPECIES_GLALIE, SPECIES_GLALIE_MEGA, FORM_SPECIES_END, }; +#endif //P_FAMILY_SNORUNT +#if P_FAMILY_BAGON static const u16 sSalamenceFormSpeciesIdTable[] = { SPECIES_SALAMENCE, SPECIES_SALAMENCE_MEGA, FORM_SPECIES_END, }; +#endif //P_FAMILY_BAGON +#if P_FAMILY_BELDUM static const u16 sMetagrossFormSpeciesIdTable[] = { SPECIES_METAGROSS, SPECIES_METAGROSS_MEGA, FORM_SPECIES_END, }; +#endif //P_FAMILY_BELDUM +#if P_FAMILY_LATIAS static const u16 sLatiasFormSpeciesIdTable[] = { SPECIES_LATIAS, SPECIES_LATIAS_MEGA, FORM_SPECIES_END, }; +#endif //P_FAMILY_LATIAS +#if P_FAMILY_LATIOS static const u16 sLatiosFormSpeciesIdTable[] = { SPECIES_LATIOS, SPECIES_LATIOS_MEGA, FORM_SPECIES_END, }; +#endif //P_FAMILY_LATIOS +#if P_FAMILY_KYOGRE static const u16 sKyogreFormSpeciesIdTable[] = { SPECIES_KYOGRE, SPECIES_KYOGRE_PRIMAL, FORM_SPECIES_END, }; +#endif //P_FAMILY_KYOGRE +#if P_FAMILY_GROUDON static const u16 sGroudonFormSpeciesIdTable[] = { SPECIES_GROUDON, SPECIES_GROUDON_PRIMAL, FORM_SPECIES_END, }; +#endif //P_FAMILY_GROUDON +#if P_FAMILY_RAYQUAZA static const u16 sRayquazaFormSpeciesIdTable[] = { SPECIES_RAYQUAZA, SPECIES_RAYQUAZA_MEGA, FORM_SPECIES_END, }; +#endif //P_FAMILY_RAYQUAZA +#if P_FAMILY_DEOXYS static const u16 sDeoxysFormSpeciesIdTable[] = { SPECIES_DEOXYS_NORMAL, SPECIES_DEOXYS_ATTACK, @@ -590,8 +787,9 @@ static const u16 sDeoxysFormSpeciesIdTable[] = { SPECIES_DEOXYS_SPEED, FORM_SPECIES_END, }; +#endif //P_FAMILY_DEOXYS -#if P_GEN_4_POKEMON == TRUE +#if P_FAMILY_BURMY static const u16 sBurmyFormSpeciesIdTable[] = { SPECIES_BURMY_PLANT_CLOAK, SPECIES_BURMY_SANDY_CLOAK, @@ -605,13 +803,17 @@ static const u16 sWormadamFormSpeciesIdTable[] = { SPECIES_WORMADAM_TRASH_CLOAK, FORM_SPECIES_END, }; +#endif //P_FAMILY_BURMY +#if P_FAMILY_CHERUBI static const u16 sCherrimFormSpeciesIdTable[] = { SPECIES_CHERRIM_OVERCAST, SPECIES_CHERRIM_SUNSHINE, FORM_SPECIES_END, }; +#endif //P_FAMILY_CHERUBI +#if P_FAMILY_SHELLOS static const u16 sShellosFormSpeciesIdTable[] = { SPECIES_SHELLOS_WEST_SEA, SPECIES_SHELLOS_EAST_SEA, @@ -623,37 +825,41 @@ static const u16 sGastrodonFormSpeciesIdTable[] = { SPECIES_GASTRODON_EAST_SEA, FORM_SPECIES_END, }; +#endif //P_FAMILY_SHELLOS +#if P_FAMILY_BUNEARY static const u16 sLopunnyFormSpeciesIdTable[] = { SPECIES_LOPUNNY, SPECIES_LOPUNNY_MEGA, FORM_SPECIES_END, }; +#endif //P_FAMILY_BUNEARY +#if P_FAMILY_GIBLE static const u16 sGarchompFormSpeciesIdTable[] = { SPECIES_GARCHOMP, SPECIES_GARCHOMP_MEGA, FORM_SPECIES_END, }; +#endif //P_FAMILY_GIBLE +#if P_FAMILY_RIOLU static const u16 sLucarioFormSpeciesIdTable[] = { SPECIES_LUCARIO, SPECIES_LUCARIO_MEGA, FORM_SPECIES_END, }; +#endif //P_FAMILY_RIOLU +#if P_FAMILY_SNOVER static const u16 sAbomasnowFormSpeciesIdTable[] = { SPECIES_ABOMASNOW, SPECIES_ABOMASNOW_MEGA, FORM_SPECIES_END, }; +#endif //P_FAMILY_SNOVER -static const u16 sGalladeFormSpeciesIdTable[] = { - SPECIES_GALLADE, - SPECIES_GALLADE_MEGA, - FORM_SPECIES_END, -}; - +#if P_FAMILY_ROTOM static const u16 sRotomFormSpeciesIdTable[] = { SPECIES_ROTOM, SPECIES_ROTOM_HEAT, @@ -663,31 +869,41 @@ static const u16 sRotomFormSpeciesIdTable[] = { SPECIES_ROTOM_MOW, FORM_SPECIES_END, }; +#endif //P_FAMILY_ROTOM +#if P_FAMILY_DIALGA static const u16 sDialgaFormSpeciesIdTable[] = { SPECIES_DIALGA, SPECIES_DIALGA_ORIGIN, FORM_SPECIES_END, }; +#endif //P_FAMILY_DIALGA +#if P_FAMILY_PALKIA static const u16 sPalkiaFormSpeciesIdTable[] = { SPECIES_PALKIA, SPECIES_PALKIA_ORIGIN, FORM_SPECIES_END, }; +#endif //P_FAMILY_PALKIA +#if P_FAMILY_GIRATINA static const u16 sGiratinaFormSpeciesIdTable[] = { SPECIES_GIRATINA_ALTERED, SPECIES_GIRATINA_ORIGIN, FORM_SPECIES_END, }; +#endif //P_FAMILY_GIRATINA +#if P_FAMILY_SHAYMIN static const u16 sShayminFormSpeciesIdTable[] = { SPECIES_SHAYMIN_LAND, SPECIES_SHAYMIN_SKY, FORM_SPECIES_END, }; +#endif //P_FAMILY_SHAYMIN +#if P_FAMILY_ARCEUS static const u16 sArceusFormSpeciesIdTable[] = { SPECIES_ARCEUS_NORMAL, SPECIES_ARCEUS_FIGHTING, @@ -709,21 +925,33 @@ static const u16 sArceusFormSpeciesIdTable[] = { SPECIES_ARCEUS_FAIRY, FORM_SPECIES_END, }; -#endif +#endif //P_FAMILY_ARCEUS -#if P_GEN_5_POKEMON == TRUE +#if P_FAMILY_OSHAWOTT static const u16 sSamurottFormSpeciesIdTable[] = { SPECIES_SAMUROTT, SPECIES_SAMUROTT_HISUIAN, FORM_SPECIES_END, }; +#endif //P_FAMILY_OSHAWOTT +#if P_FAMILY_AUDINO static const u16 sAudinoFormSpeciesIdTable[] = { SPECIES_AUDINO, SPECIES_AUDINO_MEGA, FORM_SPECIES_END, }; +#endif //P_FAMILY_AUDINO + +#if P_FAMILY_PETILIL +static const u16 sLilligantFormSpeciesIdTable[] = { + SPECIES_LILLIGANT, + SPECIES_LILLIGANT_HISUIAN, + FORM_SPECIES_END, +}; +#endif //P_FAMILY_PETILIL +#if P_FAMILY_BASCULIN static const u16 sBasculinFormSpeciesIdTable[] = { SPECIES_BASCULIN_RED_STRIPED, SPECIES_BASCULIN_BLUE_STRIPED, @@ -731,12 +959,14 @@ static const u16 sBasculinFormSpeciesIdTable[] = { FORM_SPECIES_END, }; -static const u16 sLilligantFormSpeciesIdTable[] = { - SPECIES_LILLIGANT, - SPECIES_LILLIGANT_HISUIAN, +static const u16 sBasculegionFormSpeciesIdTable[] = { + SPECIES_BASCULEGION_MALE, + SPECIES_BASCULEGION_FEMALE, FORM_SPECIES_END, }; +#endif //P_FAMILY_BASCULIN +#if P_FAMILY_DARUMAKA static const u16 sDarumakaFormSpeciesIdTable[] = { SPECIES_DARUMAKA, SPECIES_DARUMAKA_GALARIAN, @@ -750,13 +980,25 @@ static const u16 sDarmanitanFormSpeciesIdTable[] = { SPECIES_DARMANITAN_GALARIAN_ZEN_MODE, FORM_SPECIES_END, }; +#endif //P_FAMILY_DARUMAKA +#if P_FAMILY_YAMASK static const u16 sYamaskFormSpeciesIdTable[] = { SPECIES_YAMASK, SPECIES_YAMASK_GALARIAN, FORM_SPECIES_END, }; +#endif //P_FAMILY_YAMASK + +#if P_FAMILY_TRUBBISH +static const u16 sGarbodorFormSpeciesIdTable[] = { + SPECIES_GARBODOR, + SPECIES_GARBODOR_GIGANTAMAX, + FORM_SPECIES_END, +}; +#endif //P_FAMILY_TRUBBISH +#if P_FAMILY_ZORUA static const u16 sZoruaFormSpeciesIdTable[] = { SPECIES_ZORUA, SPECIES_ZORUA_HISUIAN, @@ -768,13 +1010,9 @@ static const u16 sZoroarkFormSpeciesIdTable[] = { SPECIES_ZOROARK_HISUIAN, FORM_SPECIES_END, }; +#endif //P_FAMILY_ZORUA -static const u16 sGarbodorFormSpeciesIdTable[] = { - SPECIES_GARBODOR, - SPECIES_GARBODOR_GIGANTAMAX, - FORM_SPECIES_END, -}; - +#if P_FAMILY_DEERLING static const u16 sDeerlingFormSpeciesIdTable[] = { SPECIES_DEERLING_SPRING, SPECIES_DEERLING_SUMMER, @@ -790,56 +1028,74 @@ static const u16 sSawsbuckFormSpeciesIdTable[] = { SPECIES_SAWSBUCK_WINTER, FORM_SPECIES_END, }; +#endif //P_FAMILY_DEERLING +#if P_FAMILY_STUNFISK static const u16 sStunfiskFormSpeciesIdTable[] = { SPECIES_STUNFISK, SPECIES_STUNFISK_GALARIAN, FORM_SPECIES_END, }; +#endif //P_FAMILY_STUNFISK +#if P_FAMILY_RUFFLET static const u16 sBraviaryFormSpeciesIdTable[] = { SPECIES_BRAVIARY, SPECIES_BRAVIARY_HISUIAN, FORM_SPECIES_END, }; +#endif //P_FAMILY_RUFFLET +#if P_FAMILY_TORNADUS static const u16 sTornadusFormSpeciesIdTable[] = { SPECIES_TORNADUS_INCARNATE, SPECIES_TORNADUS_THERIAN, FORM_SPECIES_END, }; +#endif //P_FAMILY_TORNADUS +#if P_FAMILY_THUNDURUS static const u16 sThundurusFormSpeciesIdTable[] = { SPECIES_THUNDURUS_INCARNATE, SPECIES_THUNDURUS_THERIAN, FORM_SPECIES_END, }; +#endif //P_FAMILY_THUNDURUS +#if P_FAMILY_LANDORUS static const u16 sLandorusFormSpeciesIdTable[] = { SPECIES_LANDORUS_INCARNATE, SPECIES_LANDORUS_THERIAN, FORM_SPECIES_END, }; +#endif //P_FAMILY_LANDORUS +#if P_FAMILY_KYUREM static const u16 sKyuremFormSpeciesIdTable[] = { SPECIES_KYUREM, SPECIES_KYUREM_WHITE, SPECIES_KYUREM_BLACK, FORM_SPECIES_END, }; +#endif //P_FAMILY_KYUREM +#if P_FAMILY_KELDEO static const u16 sKeldeoFormSpeciesIdTable[] = { SPECIES_KELDEO_ORDINARY, SPECIES_KELDEO_RESOLUTE, FORM_SPECIES_END, }; +#endif //P_FAMILY_KELDEO +#if P_FAMILY_MELOETTA static const u16 sMeloettaFormSpeciesIdTable[] = { SPECIES_MELOETTA_ARIA, SPECIES_MELOETTA_PIROUETTE, FORM_SPECIES_END, }; +#endif //P_FAMILY_MELOETTA +#if P_FAMILY_GENESECT static const u16 sGenesectFormSpeciesIdTable[] = { SPECIES_GENESECT, SPECIES_GENESECT_DOUSE_DRIVE, @@ -848,16 +1104,18 @@ static const u16 sGenesectFormSpeciesIdTable[] = { SPECIES_GENESECT_CHILL_DRIVE, FORM_SPECIES_END, }; -#endif +#endif //P_FAMILY_GENESECT -#if P_GEN_6_POKEMON == TRUE +#if P_FAMILY_FROAKIE static const u16 sGreninjaFormSpeciesIdTable[] = { SPECIES_GRENINJA, SPECIES_GRENINJA_BATTLE_BOND, SPECIES_GRENINJA_ASH, FORM_SPECIES_END, }; +#endif //P_FAMILY_FROAKIE +#if P_FAMILY_SCATTERBUG static const u16 sVivillonFormSpeciesIdTable[] = { SPECIES_VIVILLON_ICY_SNOW, SPECIES_VIVILLON_POLAR, @@ -881,7 +1139,9 @@ static const u16 sVivillonFormSpeciesIdTable[] = { SPECIES_VIVILLON_POKE_BALL, FORM_SPECIES_END, }; +#endif //P_FAMILY_SCATTERBUG +#if P_FAMILY_FLABEBE static const u16 sFlabebeFormSpeciesIdTable[] = { SPECIES_FLABEBE_RED_FLOWER, SPECIES_FLABEBE_YELLOW_FLOWER, @@ -909,7 +1169,9 @@ static const u16 sFlorgesFormSpeciesIdTable[] = { SPECIES_FLORGES_WHITE_FLOWER, FORM_SPECIES_END, }; +#endif //P_FAMILY_FLABEBE +#if P_FAMILY_FURFROU static const u16 sFurfrouFormSpeciesIdTable[] = { SPECIES_FURFROU_NATURAL, SPECIES_FURFROU_HEART_TRIM, @@ -923,19 +1185,25 @@ static const u16 sFurfrouFormSpeciesIdTable[] = { SPECIES_FURFROU_PHARAOH_TRIM, FORM_SPECIES_END, }; +#endif //P_FAMILY_FURFROU +#if P_FAMILY_ESPURR static const u16 sMeowsticFormSpeciesIdTable[] = { SPECIES_MEOWSTIC_MALE, SPECIES_MEOWSTIC_FEMALE, FORM_SPECIES_END, }; +#endif //P_FAMILY_ESPURR +#if P_FAMILY_HONEDGE static const u16 sAegislashFormSpeciesIdTable[] = { SPECIES_AEGISLASH_SHIELD, SPECIES_AEGISLASH_BLADE, FORM_SPECIES_END, }; +#endif //P_FAMILY_HONEDGE +#if P_FAMILY_GOOMY static const u16 sSliggooFormSpeciesIdTable[] = { SPECIES_SLIGGOO, SPECIES_SLIGGOO_HISUIAN, @@ -947,7 +1215,9 @@ static const u16 sGoodraFormSpeciesIdTable[] = { SPECIES_GOODRA_HISUIAN, FORM_SPECIES_END, }; +#endif //P_FAMILY_GOOMY +#if P_FAMILY_PUMPKABOO static const u16 sPumpkabooFormSpeciesIdTable[] = { SPECIES_PUMPKABOO_AVERAGE, SPECIES_PUMPKABOO_SMALL, @@ -963,19 +1233,25 @@ static const u16 sGourgeistFormSpeciesIdTable[] = { SPECIES_GOURGEIST_SUPER, FORM_SPECIES_END, }; +#endif //P_FAMILY_PUMPKABOO +#if P_FAMILY_BERGMITE static const u16 sAvaluggFormSpeciesIdTable[] = { SPECIES_AVALUGG, SPECIES_AVALUGG_HISUIAN, FORM_SPECIES_END, }; +#endif //P_FAMILY_BERGMITE +#if P_FAMILY_XERNEAS static const u16 sXerneasFormSpeciesIdTable[] = { SPECIES_XERNEAS_NEUTRAL, SPECIES_XERNEAS_ACTIVE, FORM_SPECIES_END, }; +#endif //P_FAMILY_XERNEAS +#if P_FAMILY_ZYGARDE static const u16 sZygardeFormSpeciesIdTable[] = { SPECIES_ZYGARDE_50_AURA_BREAK, SPECIES_ZYGARDE_10_AURA_BREAK, @@ -984,27 +1260,33 @@ static const u16 sZygardeFormSpeciesIdTable[] = { SPECIES_ZYGARDE_COMPLETE, FORM_SPECIES_END, }; +#endif //P_FAMILY_ZYGARDE +#if P_FAMILY_DIANCIE static const u16 sDiancieFormSpeciesIdTable[] = { SPECIES_DIANCIE, SPECIES_DIANCIE_MEGA, FORM_SPECIES_END, }; +#endif //P_FAMILY_DIANCIE +#if P_FAMILY_HOOPA static const u16 sHoopaFormSpeciesIdTable[] = { SPECIES_HOOPA_CONFINED, SPECIES_HOOPA_UNBOUND, FORM_SPECIES_END, }; -#endif +#endif //P_FAMILY_HOOPA -#if P_GEN_7_POKEMON == TRUE +#if P_FAMILY_ROWLET static const u16 sDecidueyeFormSpeciesIdTable[] = { SPECIES_DECIDUEYE, SPECIES_DECIDUEYE_HISUIAN, FORM_SPECIES_END, }; +#endif //P_FAMILY_ROWLET +#if P_FAMILY_ORICORIO static const u16 sOricorioFormSpeciesIdTable[] = { SPECIES_ORICORIO_BAILE, SPECIES_ORICORIO_POM_POM, @@ -1012,7 +1294,9 @@ static const u16 sOricorioFormSpeciesIdTable[] = { SPECIES_ORICORIO_SENSU, FORM_SPECIES_END, }; +#endif //P_FAMILY_ORICORIO +#if P_FAMILY_ROCKRUFF static const u16 sRockruffFormSpeciesIdTable[] = { SPECIES_ROCKRUFF, SPECIES_ROCKRUFF_OWN_TEMPO, @@ -1025,13 +1309,17 @@ static const u16 sLycanrocFormSpeciesIdTable[] = { SPECIES_LYCANROC_DUSK, FORM_SPECIES_END, }; +#endif //P_FAMILY_ROCKRUFF +#if P_FAMILY_WISHIWASHI static const u16 sWishiwashiFormSpeciesIdTable[] = { SPECIES_WISHIWASHI_SOLO, SPECIES_WISHIWASHI_SCHOOL, FORM_SPECIES_END, }; +#endif //P_FAMILY_WISHIWASHI +#if P_FAMILY_TYPE_NULL static const u16 sSilvallyFormSpeciesIdTable[] = { SPECIES_SILVALLY_NORMAL, SPECIES_SILVALLY_FIGHTING, @@ -1053,7 +1341,9 @@ static const u16 sSilvallyFormSpeciesIdTable[] = { SPECIES_SILVALLY_FAIRY, FORM_SPECIES_END, }; +#endif //P_FAMILY_TYPE_NULL +#if P_FAMILY_MINIOR static const u16 sMiniorFormSpeciesIdTable[] = { SPECIES_MINIOR_METEOR_RED, SPECIES_MINIOR_METEOR_ORANGE, @@ -1071,13 +1361,17 @@ static const u16 sMiniorFormSpeciesIdTable[] = { SPECIES_MINIOR_CORE_VIOLET, FORM_SPECIES_END, }; +#endif //P_FAMILY_MINIOR +#if P_FAMILY_MIMIKYU static const u16 sMimikyuFormSpeciesIdTable[] = { SPECIES_MIMIKYU_DISGUISED, SPECIES_MIMIKYU_BUSTED, FORM_SPECIES_END, }; +#endif //P_FAMILY_MIMIKYU +#if P_FAMILY_NECROZMA static const u16 sNecrozmaFormSpeciesIdTable[] = { SPECIES_NECROZMA, SPECIES_NECROZMA_DUSK_MANE, @@ -1085,63 +1379,81 @@ static const u16 sNecrozmaFormSpeciesIdTable[] = { SPECIES_NECROZMA_ULTRA, FORM_SPECIES_END, }; +#endif //P_FAMILY_NECROZMA +#if P_FAMILY_MAGEARNA static const u16 sMagearnaFormSpeciesIdTable[] = { SPECIES_MAGEARNA, SPECIES_MAGEARNA_ORIGINAL_COLOR, FORM_SPECIES_END, }; -#endif +#endif //P_FAMILY_MAGEARNA -#if P_GEN_8_POKEMON == TRUE +#if P_FAMILY_MELTAN static const u16 sMelmetalFormSpeciesIdTable[] = { SPECIES_MELMETAL, SPECIES_MELMETAL_GIGANTAMAX, FORM_SPECIES_END, }; +#endif //P_FAMILY_MELTAN +#if P_FAMILY_GROOKEY static const u16 sRillaboomFormSpeciesIdTable[] = { SPECIES_RILLABOOM, SPECIES_RILLABOOM_GIGANTAMAX, FORM_SPECIES_END, }; +#endif //P_FAMILY_GROOKEY +#if P_FAMILY_SCORBUNNY static const u16 sCinderaceFormSpeciesIdTable[] = { SPECIES_CINDERACE, SPECIES_CINDERACE_GIGANTAMAX, FORM_SPECIES_END, }; +#endif //P_FAMILY_SCORBUNNY +#if P_FAMILY_SOBBLE static const u16 sInteleonFormSpeciesIdTable[] = { SPECIES_INTELEON, SPECIES_INTELEON_GIGANTAMAX, FORM_SPECIES_END, }; +#endif //P_FAMILY_SOBBLE +#if P_FAMILY_ROOKIDEE static const u16 sCorviknightFormSpeciesIdTable[] = { SPECIES_CORVIKNIGHT, SPECIES_CORVIKNIGHT_GIGANTAMAX, FORM_SPECIES_END, }; +#endif //P_FAMILY_ROOKIDEE +#if P_FAMILY_BLIPBUG static const u16 sOrbeetleFormSpeciesIdTable[] = { SPECIES_ORBEETLE, SPECIES_ORBEETLE_GIGANTAMAX, FORM_SPECIES_END, }; +#endif //P_FAMILY_BLIPBUG +#if P_FAMILY_CHEWTLE static const u16 sDrednawFormSpeciesIdTable[] = { SPECIES_DREDNAW, SPECIES_DREDNAW_GIGANTAMAX, FORM_SPECIES_END, }; +#endif //P_FAMILY_CHEWTLE +#if P_FAMILY_ROLYCOLY static const u16 sCoalossalFormSpeciesIdTable[] = { SPECIES_COALOSSAL, SPECIES_COALOSSAL_GIGANTAMAX, FORM_SPECIES_END, }; +#endif //P_FAMILY_ROLYCOLY +#if P_FAMILY_APPLIN static const u16 sFlappleFormSpeciesIdTable[] = { SPECIES_FLAPPLE, SPECIES_FLAPPLE_GIGANTAMAX, @@ -1153,21 +1465,26 @@ static const u16 sAppletunFormSpeciesIdTable[] = { SPECIES_APPLETUN_GIGANTAMAX, FORM_SPECIES_END, }; +#endif //P_FAMILY_APPLIN - +#if P_FAMILY_SILICOBRA static const u16 sSandacondaFormSpeciesIdTable[] = { SPECIES_SANDACONDA, SPECIES_SANDACONDA_GIGANTAMAX, FORM_SPECIES_END, }; +#endif //P_FAMILY_SILICOBRA +#if P_FAMILY_CRAMORANT static const u16 sCramorantFormSpeciesIdTable[] = { SPECIES_CRAMORANT, SPECIES_CRAMORANT_GULPING, SPECIES_CRAMORANT_GORGING, FORM_SPECIES_END, }; +#endif //P_FAMILY_CRAMORANT +#if P_FAMILY_TOXEL static const u16 sToxtricityFormSpeciesIdTable[] = { SPECIES_TOXTRICITY_AMPED, SPECIES_TOXTRICITY_LOW_KEY, @@ -1175,19 +1492,17 @@ static const u16 sToxtricityFormSpeciesIdTable[] = { SPECIES_TOXTRICITY_LOW_KEY_GIGANTAMAX, FORM_SPECIES_END, }; +#endif //P_FAMILY_TOXEL +#if P_FAMILY_SIZZLIPEDE static const u16 sCentiskorchFormSpeciesIdTable[] = { SPECIES_CENTISKORCH, SPECIES_CENTISKORCH_GIGANTAMAX, FORM_SPECIES_END, }; +#endif //P_FAMILY_SIZZLIPEDE -static const u16 sHattereneFormSpeciesIdTable[] = { - SPECIES_HATTERENE, - SPECIES_HATTERENE_GIGANTAMAX, - FORM_SPECIES_END, -}; - +#if P_FAMILY_SINISTEA static const u16 sSinisteaFormSpeciesIdTable[] = { SPECIES_SINISTEA_PHONY, SPECIES_SINISTEA_ANTIQUE, @@ -1199,13 +1514,25 @@ static const u16 sPolteageistFormSpeciesIdTable[] = { SPECIES_POLTEAGEIST_ANTIQUE, FORM_SPECIES_END, }; +#endif //P_FAMILY_SINISTEA + +#if P_FAMILY_HATENNA +static const u16 sHattereneFormSpeciesIdTable[] = { + SPECIES_HATTERENE, + SPECIES_HATTERENE_GIGANTAMAX, + FORM_SPECIES_END, +}; +#endif //P_FAMILY_HATENNA +#if P_FAMILY_IMPIDIMP static const u16 sGrimmsnarlFormSpeciesIdTable[] = { SPECIES_GRIMMSNARL, SPECIES_GRIMMSNARL_GIGANTAMAX, FORM_SPECIES_END, }; +#endif //P_FAMILY_IMPIDIMP +#if P_FAMILY_MILCERY static const u16 sAlcremieFormSpeciesIdTable[] = { SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM, SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM, @@ -1216,57 +1543,130 @@ static const u16 sAlcremieFormSpeciesIdTable[] = { SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL, SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL, SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL, - FORM_SPECIES_END, -}; - + SPECIES_ALCREMIE_BERRY_VANILLA_CREAM, + SPECIES_ALCREMIE_BERRY_RUBY_CREAM, + SPECIES_ALCREMIE_BERRY_MATCHA_CREAM, + SPECIES_ALCREMIE_BERRY_MINT_CREAM, + SPECIES_ALCREMIE_BERRY_LEMON_CREAM, + SPECIES_ALCREMIE_BERRY_SALTED_CREAM, + SPECIES_ALCREMIE_BERRY_RUBY_SWIRL, + SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL, + SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL, + SPECIES_ALCREMIE_LOVE_VANILLA_CREAM, + SPECIES_ALCREMIE_LOVE_RUBY_CREAM, + SPECIES_ALCREMIE_LOVE_MATCHA_CREAM, + SPECIES_ALCREMIE_LOVE_MINT_CREAM, + SPECIES_ALCREMIE_LOVE_LEMON_CREAM, + SPECIES_ALCREMIE_LOVE_SALTED_CREAM, + SPECIES_ALCREMIE_LOVE_RUBY_SWIRL, + SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL, + SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL, + SPECIES_ALCREMIE_STAR_VANILLA_CREAM, + SPECIES_ALCREMIE_STAR_RUBY_CREAM, + SPECIES_ALCREMIE_STAR_MATCHA_CREAM, + SPECIES_ALCREMIE_STAR_MINT_CREAM, + SPECIES_ALCREMIE_STAR_LEMON_CREAM, + SPECIES_ALCREMIE_STAR_SALTED_CREAM, + SPECIES_ALCREMIE_STAR_RUBY_SWIRL, + SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL, + SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL, + SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM, + SPECIES_ALCREMIE_CLOVER_RUBY_CREAM, + SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM, + SPECIES_ALCREMIE_CLOVER_MINT_CREAM, + SPECIES_ALCREMIE_CLOVER_LEMON_CREAM, + SPECIES_ALCREMIE_CLOVER_SALTED_CREAM, + SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL, + SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL, + SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL, + SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM, + SPECIES_ALCREMIE_FLOWER_RUBY_CREAM, + SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM, + SPECIES_ALCREMIE_FLOWER_MINT_CREAM, + SPECIES_ALCREMIE_FLOWER_LEMON_CREAM, + SPECIES_ALCREMIE_FLOWER_SALTED_CREAM, + SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL, + SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL, + SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL, + SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM, + SPECIES_ALCREMIE_RIBBON_RUBY_CREAM, + SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM, + SPECIES_ALCREMIE_RIBBON_MINT_CREAM, + SPECIES_ALCREMIE_RIBBON_LEMON_CREAM, + SPECIES_ALCREMIE_RIBBON_SALTED_CREAM, + SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL, + SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL, + SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL, + SPECIES_ALCREMIE_GIGANTAMAX, + FORM_SPECIES_END, +}; +#endif //P_FAMILY_MILCERY + +#if P_FAMILY_EISCUE static const u16 sEiscueFormSpeciesIdTable[] = { SPECIES_EISCUE_ICE_FACE, SPECIES_EISCUE_NOICE_FACE, FORM_SPECIES_END, }; +#endif //P_FAMILY_EISCUE +#if P_FAMILY_INDEEDEE static const u16 sIndeedeeFormSpeciesIdTable[] = { SPECIES_INDEEDEE_MALE, SPECIES_INDEEDEE_FEMALE, FORM_SPECIES_END, }; +#endif //P_FAMILY_INDEEDEE +#if P_FAMILY_MORPEKO static const u16 sMorpekoFormSpeciesIdTable[] = { SPECIES_MORPEKO_FULL_BELLY, SPECIES_MORPEKO_HANGRY, FORM_SPECIES_END, }; +#endif //P_FAMILY_MORPEKO +#if P_FAMILY_CUFANT static const u16 sCopperajahFormSpeciesIdTable[] = { SPECIES_COPPERAJAH, SPECIES_COPPERAJAH_GIGANTAMAX, FORM_SPECIES_END, }; +#endif //P_FAMILY_CUFANT +#if P_FAMILY_DURALUDON static const u16 sDuraludonFormSpeciesIdTable[] = { SPECIES_DURALUDON, SPECIES_DURALUDON_GIGANTAMAX, FORM_SPECIES_END, }; +#endif //P_FAMILY_DURALUDON +#if P_FAMILY_ZACIAN static const u16 sZacianFormSpeciesIdTable[] = { SPECIES_ZACIAN_HERO_OF_MANY_BATTLES, SPECIES_ZACIAN_CROWNED_SWORD, FORM_SPECIES_END, }; +#endif //P_FAMILY_ZACIAN +#if P_FAMILY_ZAMAZENTA static const u16 sZamazentaFormSpeciesIdTable[] = { SPECIES_ZAMAZENTA_HERO_OF_MANY_BATTLES, SPECIES_ZAMAZENTA_CROWNED_SHIELD, FORM_SPECIES_END, }; +#endif //P_FAMILY_ZAMAZENTA +#if P_FAMILY_ETERNATUS static const u16 sEternatusFormSpeciesIdTable[] = { SPECIES_ETERNATUS, SPECIES_ETERNATUS_ETERNAMAX, FORM_SPECIES_END, }; +#endif //P_FAMILY_ETERNATUS +#if P_FAMILY_KUBFU static const u16 sUrshifuFormSpeciesIdTable[] = { SPECIES_URSHIFU_SINGLE_STRIKE_STYLE, SPECIES_URSHIFU_RAPID_STRIKE_STYLE, @@ -1274,30 +1674,80 @@ static const u16 sUrshifuFormSpeciesIdTable[] = { SPECIES_URSHIFU_RAPID_STRIKE_STYLE_GIGANTAMAX, FORM_SPECIES_END, }; +#endif //P_FAMILY_KUBFU +#if P_FAMILY_ZARUDE static const u16 sZarudeFormSpeciesIdTable[] = { SPECIES_ZARUDE, SPECIES_ZARUDE_DADA, FORM_SPECIES_END, }; +#endif //P_FAMILY_ZARUDE +#if P_FAMILY_CALYREX static const u16 sCalyrexFormSpeciesIdTable[] = { SPECIES_CALYREX, SPECIES_CALYREX_ICE_RIDER, SPECIES_CALYREX_SHADOW_RIDER, FORM_SPECIES_END, }; +#endif //P_FAMILY_CALYREX +#if P_FAMILY_ENAMORUS static const u16 sEnamorusFormSpeciesIdTable[] = { SPECIES_ENAMORUS_INCARNATE, SPECIES_ENAMORUS_THERIAN, FORM_SPECIES_END, }; +#endif //P_FAMILY_ENAMORUS -static const u16 sBasculegionFormSpeciesIdTable[] = { - SPECIES_BASCULEGION_MALE, - SPECIES_BASCULEGION_FEMALE, +#if P_FAMILY_LECHONK +static const u16 sOinkologneFormSpeciesIdTable[] = { + SPECIES_OINKOLOGNE_MALE, + SPECIES_OINKOLOGNE_FEMALE, + FORM_SPECIES_END, +}; +#endif //P_FAMILY_LECHONK + +#if P_FAMILY_TANDEMAUS +static const u16 sMausholdFormSpeciesIdTable[] = { + SPECIES_MAUSHOLD_FAMILY_OF_THREE, + SPECIES_MAUSHOLD_FAMILY_OF_FOUR, + FORM_SPECIES_END, +}; +#endif //P_FAMILY_TANDEMAUS + +#if P_FAMILY_SQUAWKABILLY +static const u16 sSquawkabillyFormSpeciesIdTable[] = { + SPECIES_SQUAWKABILLY_GREEN_PLUMAGE, + SPECIES_SQUAWKABILLY_BLUE_PLUMAGE, + SPECIES_SQUAWKABILLY_YELLOW_PLUMAGE, + SPECIES_SQUAWKABILLY_WHITE_PLUMAGE, + FORM_SPECIES_END, +}; +#endif //P_FAMILY_SQUAWKABILLY + +#if P_FAMILY_FINIZEN +static const u16 sPalafinFormSpeciesIdTable[] = { + SPECIES_PALAFIN_ZERO, + SPECIES_PALAFIN_HERO, FORM_SPECIES_END, }; +#endif //P_FAMILY_FINIZEN -#endif +#if P_FAMILY_TATSUGIRI +static const u16 sTatsugiriFormSpeciesIdTable[] = { + SPECIES_TATSUGIRI_CURLY, + SPECIES_TATSUGIRI_DROOPY, + SPECIES_TATSUGIRI_STRETCHY, + FORM_SPECIES_END, +}; +#endif //P_FAMILY_TATSUGIRI + +#if P_FAMILY_GIMMIGHOUL +static const u16 sGimmighoulFormSpeciesIdTable[] = { + SPECIES_GIMMIGHOUL_CHEST, + SPECIES_GIMMIGHOUL_ROAMING, + FORM_SPECIES_END, +}; +#endif //P_FAMILY_GIMMIGHOUL diff --git a/src/data/pokemon/level_up_learnset_pointers.h b/src/data/pokemon/level_up_learnset_pointers.h deleted file mode 100644 index 3a6dc86cc876..000000000000 --- a/src/data/pokemon/level_up_learnset_pointers.h +++ /dev/null @@ -1,1375 +0,0 @@ -const struct LevelUpMove *const gLevelUpLearnsets[NUM_SPECIES] = -{ - [SPECIES_NONE] = sBulbasaurLevelUpLearnset, - [SPECIES_BULBASAUR] = sBulbasaurLevelUpLearnset, - [SPECIES_IVYSAUR] = sIvysaurLevelUpLearnset, - [SPECIES_VENUSAUR] = sVenusaurLevelUpLearnset, - [SPECIES_CHARMANDER] = sCharmanderLevelUpLearnset, - [SPECIES_CHARMELEON] = sCharmeleonLevelUpLearnset, - [SPECIES_CHARIZARD] = sCharizardLevelUpLearnset, - [SPECIES_SQUIRTLE] = sSquirtleLevelUpLearnset, - [SPECIES_WARTORTLE] = sWartortleLevelUpLearnset, - [SPECIES_BLASTOISE] = sBlastoiseLevelUpLearnset, - [SPECIES_CATERPIE] = sCaterpieLevelUpLearnset, - [SPECIES_METAPOD] = sMetapodLevelUpLearnset, - [SPECIES_BUTTERFREE] = sButterfreeLevelUpLearnset, - [SPECIES_WEEDLE] = sWeedleLevelUpLearnset, - [SPECIES_KAKUNA] = sKakunaLevelUpLearnset, - [SPECIES_BEEDRILL] = sBeedrillLevelUpLearnset, - [SPECIES_PIDGEY] = sPidgeyLevelUpLearnset, - [SPECIES_PIDGEOTTO] = sPidgeottoLevelUpLearnset, - [SPECIES_PIDGEOT] = sPidgeotLevelUpLearnset, - [SPECIES_RATTATA] = sRattataLevelUpLearnset, - [SPECIES_RATICATE] = sRaticateLevelUpLearnset, - [SPECIES_SPEAROW] = sSpearowLevelUpLearnset, - [SPECIES_FEAROW] = sFearowLevelUpLearnset, - [SPECIES_EKANS] = sEkansLevelUpLearnset, - [SPECIES_ARBOK] = sArbokLevelUpLearnset, - [SPECIES_PIKACHU] = sPikachuLevelUpLearnset, - [SPECIES_RAICHU] = sRaichuLevelUpLearnset, - [SPECIES_SANDSHREW] = sSandshrewLevelUpLearnset, - [SPECIES_SANDSLASH] = sSandslashLevelUpLearnset, - [SPECIES_NIDORAN_F] = sNidoranFLevelUpLearnset, - [SPECIES_NIDORINA] = sNidorinaLevelUpLearnset, - [SPECIES_NIDOQUEEN] = sNidoqueenLevelUpLearnset, - [SPECIES_NIDORAN_M] = sNidoranMLevelUpLearnset, - [SPECIES_NIDORINO] = sNidorinoLevelUpLearnset, - [SPECIES_NIDOKING] = sNidokingLevelUpLearnset, - [SPECIES_CLEFAIRY] = sClefairyLevelUpLearnset, - [SPECIES_CLEFABLE] = sClefableLevelUpLearnset, - [SPECIES_VULPIX] = sVulpixLevelUpLearnset, - [SPECIES_NINETALES] = sNinetalesLevelUpLearnset, - [SPECIES_JIGGLYPUFF] = sJigglypuffLevelUpLearnset, - [SPECIES_WIGGLYTUFF] = sWigglytuffLevelUpLearnset, - [SPECIES_ZUBAT] = sZubatLevelUpLearnset, - [SPECIES_GOLBAT] = sGolbatLevelUpLearnset, - [SPECIES_ODDISH] = sOddishLevelUpLearnset, - [SPECIES_GLOOM] = sGloomLevelUpLearnset, - [SPECIES_VILEPLUME] = sVileplumeLevelUpLearnset, - [SPECIES_PARAS] = sParasLevelUpLearnset, - [SPECIES_PARASECT] = sParasectLevelUpLearnset, - [SPECIES_VENONAT] = sVenonatLevelUpLearnset, - [SPECIES_VENOMOTH] = sVenomothLevelUpLearnset, - [SPECIES_DIGLETT] = sDiglettLevelUpLearnset, - [SPECIES_DUGTRIO] = sDugtrioLevelUpLearnset, - [SPECIES_MEOWTH] = sMeowthLevelUpLearnset, - [SPECIES_PERSIAN] = sPersianLevelUpLearnset, - [SPECIES_PSYDUCK] = sPsyduckLevelUpLearnset, - [SPECIES_GOLDUCK] = sGolduckLevelUpLearnset, - [SPECIES_MANKEY] = sMankeyLevelUpLearnset, - [SPECIES_PRIMEAPE] = sPrimeapeLevelUpLearnset, - [SPECIES_GROWLITHE] = sGrowlitheLevelUpLearnset, - [SPECIES_ARCANINE] = sArcanineLevelUpLearnset, - [SPECIES_POLIWAG] = sPoliwagLevelUpLearnset, - [SPECIES_POLIWHIRL] = sPoliwhirlLevelUpLearnset, - [SPECIES_POLIWRATH] = sPoliwrathLevelUpLearnset, - [SPECIES_ABRA] = sAbraLevelUpLearnset, - [SPECIES_KADABRA] = sKadabraLevelUpLearnset, - [SPECIES_ALAKAZAM] = sAlakazamLevelUpLearnset, - [SPECIES_MACHOP] = sMachopLevelUpLearnset, - [SPECIES_MACHOKE] = sMachokeLevelUpLearnset, - [SPECIES_MACHAMP] = sMachampLevelUpLearnset, - [SPECIES_BELLSPROUT] = sBellsproutLevelUpLearnset, - [SPECIES_WEEPINBELL] = sWeepinbellLevelUpLearnset, - [SPECIES_VICTREEBEL] = sVictreebelLevelUpLearnset, - [SPECIES_TENTACOOL] = sTentacoolLevelUpLearnset, - [SPECIES_TENTACRUEL] = sTentacruelLevelUpLearnset, - [SPECIES_GEODUDE] = sGeodudeLevelUpLearnset, - [SPECIES_GRAVELER] = sGravelerLevelUpLearnset, - [SPECIES_GOLEM] = sGolemLevelUpLearnset, - [SPECIES_PONYTA] = sPonytaLevelUpLearnset, - [SPECIES_RAPIDASH] = sRapidashLevelUpLearnset, - [SPECIES_SLOWPOKE] = sSlowpokeLevelUpLearnset, - [SPECIES_SLOWBRO] = sSlowbroLevelUpLearnset, - [SPECIES_MAGNEMITE] = sMagnemiteLevelUpLearnset, - [SPECIES_MAGNETON] = sMagnetonLevelUpLearnset, - [SPECIES_FARFETCHD] = sFarfetchdLevelUpLearnset, - [SPECIES_DODUO] = sDoduoLevelUpLearnset, - [SPECIES_DODRIO] = sDodrioLevelUpLearnset, - [SPECIES_SEEL] = sSeelLevelUpLearnset, - [SPECIES_DEWGONG] = sDewgongLevelUpLearnset, - [SPECIES_GRIMER] = sGrimerLevelUpLearnset, - [SPECIES_MUK] = sMukLevelUpLearnset, - [SPECIES_SHELLDER] = sShellderLevelUpLearnset, - [SPECIES_CLOYSTER] = sCloysterLevelUpLearnset, - [SPECIES_GASTLY] = sGastlyLevelUpLearnset, - [SPECIES_HAUNTER] = sHaunterLevelUpLearnset, - [SPECIES_GENGAR] = sGengarLevelUpLearnset, - [SPECIES_ONIX] = sOnixLevelUpLearnset, - [SPECIES_DROWZEE] = sDrowzeeLevelUpLearnset, - [SPECIES_HYPNO] = sHypnoLevelUpLearnset, - [SPECIES_KRABBY] = sKrabbyLevelUpLearnset, - [SPECIES_KINGLER] = sKinglerLevelUpLearnset, - [SPECIES_VOLTORB] = sVoltorbLevelUpLearnset, - [SPECIES_ELECTRODE] = sElectrodeLevelUpLearnset, - [SPECIES_EXEGGCUTE] = sExeggcuteLevelUpLearnset, - [SPECIES_EXEGGUTOR] = sExeggutorLevelUpLearnset, - [SPECIES_CUBONE] = sCuboneLevelUpLearnset, - [SPECIES_MAROWAK] = sMarowakLevelUpLearnset, - [SPECIES_HITMONLEE] = sHitmonleeLevelUpLearnset, - [SPECIES_HITMONCHAN] = sHitmonchanLevelUpLearnset, - [SPECIES_LICKITUNG] = sLickitungLevelUpLearnset, - [SPECIES_KOFFING] = sKoffingLevelUpLearnset, - [SPECIES_WEEZING] = sWeezingLevelUpLearnset, - [SPECIES_RHYHORN] = sRhyhornLevelUpLearnset, - [SPECIES_RHYDON] = sRhydonLevelUpLearnset, - [SPECIES_CHANSEY] = sChanseyLevelUpLearnset, - [SPECIES_TANGELA] = sTangelaLevelUpLearnset, - [SPECIES_KANGASKHAN] = sKangaskhanLevelUpLearnset, - [SPECIES_HORSEA] = sHorseaLevelUpLearnset, - [SPECIES_SEADRA] = sSeadraLevelUpLearnset, - [SPECIES_GOLDEEN] = sGoldeenLevelUpLearnset, - [SPECIES_SEAKING] = sSeakingLevelUpLearnset, - [SPECIES_STARYU] = sStaryuLevelUpLearnset, - [SPECIES_STARMIE] = sStarmieLevelUpLearnset, - [SPECIES_MR_MIME] = sMrMimeLevelUpLearnset, - [SPECIES_SCYTHER] = sScytherLevelUpLearnset, - [SPECIES_JYNX] = sJynxLevelUpLearnset, - [SPECIES_ELECTABUZZ] = sElectabuzzLevelUpLearnset, - [SPECIES_MAGMAR] = sMagmarLevelUpLearnset, - [SPECIES_PINSIR] = sPinsirLevelUpLearnset, - [SPECIES_TAUROS] = sTaurosLevelUpLearnset, - [SPECIES_MAGIKARP] = sMagikarpLevelUpLearnset, - [SPECIES_GYARADOS] = sGyaradosLevelUpLearnset, - [SPECIES_LAPRAS] = sLaprasLevelUpLearnset, - [SPECIES_DITTO] = sDittoLevelUpLearnset, - [SPECIES_EEVEE] = sEeveeLevelUpLearnset, - [SPECIES_VAPOREON] = sVaporeonLevelUpLearnset, - [SPECIES_JOLTEON] = sJolteonLevelUpLearnset, - [SPECIES_FLAREON] = sFlareonLevelUpLearnset, - [SPECIES_PORYGON] = sPorygonLevelUpLearnset, - [SPECIES_OMANYTE] = sOmanyteLevelUpLearnset, - [SPECIES_OMASTAR] = sOmastarLevelUpLearnset, - [SPECIES_KABUTO] = sKabutoLevelUpLearnset, - [SPECIES_KABUTOPS] = sKabutopsLevelUpLearnset, - [SPECIES_AERODACTYL] = sAerodactylLevelUpLearnset, - [SPECIES_SNORLAX] = sSnorlaxLevelUpLearnset, - [SPECIES_ARTICUNO] = sArticunoLevelUpLearnset, - [SPECIES_ZAPDOS] = sZapdosLevelUpLearnset, - [SPECIES_MOLTRES] = sMoltresLevelUpLearnset, - [SPECIES_DRATINI] = sDratiniLevelUpLearnset, - [SPECIES_DRAGONAIR] = sDragonairLevelUpLearnset, - [SPECIES_DRAGONITE] = sDragoniteLevelUpLearnset, - [SPECIES_MEWTWO] = sMewtwoLevelUpLearnset, - [SPECIES_MEW] = sMewLevelUpLearnset, - [SPECIES_CHIKORITA] = sChikoritaLevelUpLearnset, - [SPECIES_BAYLEEF] = sBayleefLevelUpLearnset, - [SPECIES_MEGANIUM] = sMeganiumLevelUpLearnset, - [SPECIES_CYNDAQUIL] = sCyndaquilLevelUpLearnset, - [SPECIES_QUILAVA] = sQuilavaLevelUpLearnset, - [SPECIES_TYPHLOSION] = sTyphlosionLevelUpLearnset, - [SPECIES_TOTODILE] = sTotodileLevelUpLearnset, - [SPECIES_CROCONAW] = sCroconawLevelUpLearnset, - [SPECIES_FERALIGATR] = sFeraligatrLevelUpLearnset, - [SPECIES_SENTRET] = sSentretLevelUpLearnset, - [SPECIES_FURRET] = sFurretLevelUpLearnset, - [SPECIES_HOOTHOOT] = sHoothootLevelUpLearnset, - [SPECIES_NOCTOWL] = sNoctowlLevelUpLearnset, - [SPECIES_LEDYBA] = sLedybaLevelUpLearnset, - [SPECIES_LEDIAN] = sLedianLevelUpLearnset, - [SPECIES_SPINARAK] = sSpinarakLevelUpLearnset, - [SPECIES_ARIADOS] = sAriadosLevelUpLearnset, - [SPECIES_CROBAT] = sCrobatLevelUpLearnset, - [SPECIES_CHINCHOU] = sChinchouLevelUpLearnset, - [SPECIES_LANTURN] = sLanturnLevelUpLearnset, - [SPECIES_PICHU] = sPichuLevelUpLearnset, - [SPECIES_CLEFFA] = sCleffaLevelUpLearnset, - [SPECIES_IGGLYBUFF] = sIgglybuffLevelUpLearnset, - [SPECIES_TOGEPI] = sTogepiLevelUpLearnset, - [SPECIES_TOGETIC] = sTogeticLevelUpLearnset, - [SPECIES_NATU] = sNatuLevelUpLearnset, - [SPECIES_XATU] = sXatuLevelUpLearnset, - [SPECIES_MAREEP] = sMareepLevelUpLearnset, - [SPECIES_FLAAFFY] = sFlaaffyLevelUpLearnset, - [SPECIES_AMPHAROS] = sAmpharosLevelUpLearnset, - [SPECIES_BELLOSSOM] = sBellossomLevelUpLearnset, - [SPECIES_MARILL] = sMarillLevelUpLearnset, - [SPECIES_AZUMARILL] = sAzumarillLevelUpLearnset, - [SPECIES_SUDOWOODO] = sSudowoodoLevelUpLearnset, - [SPECIES_POLITOED] = sPolitoedLevelUpLearnset, - [SPECIES_HOPPIP] = sHoppipLevelUpLearnset, - [SPECIES_SKIPLOOM] = sSkiploomLevelUpLearnset, - [SPECIES_JUMPLUFF] = sJumpluffLevelUpLearnset, - [SPECIES_AIPOM] = sAipomLevelUpLearnset, - [SPECIES_SUNKERN] = sSunkernLevelUpLearnset, - [SPECIES_SUNFLORA] = sSunfloraLevelUpLearnset, - [SPECIES_YANMA] = sYanmaLevelUpLearnset, - [SPECIES_WOOPER] = sWooperLevelUpLearnset, - [SPECIES_QUAGSIRE] = sQuagsireLevelUpLearnset, - [SPECIES_ESPEON] = sEspeonLevelUpLearnset, - [SPECIES_UMBREON] = sUmbreonLevelUpLearnset, - [SPECIES_MURKROW] = sMurkrowLevelUpLearnset, - [SPECIES_SLOWKING] = sSlowkingLevelUpLearnset, - [SPECIES_MISDREAVUS] = sMisdreavusLevelUpLearnset, - [SPECIES_UNOWN] = sUnownLevelUpLearnset, - [SPECIES_WOBBUFFET] = sWobbuffetLevelUpLearnset, - [SPECIES_GIRAFARIG] = sGirafarigLevelUpLearnset, - [SPECIES_PINECO] = sPinecoLevelUpLearnset, - [SPECIES_FORRETRESS] = sForretressLevelUpLearnset, - [SPECIES_DUNSPARCE] = sDunsparceLevelUpLearnset, - [SPECIES_GLIGAR] = sGligarLevelUpLearnset, - [SPECIES_STEELIX] = sSteelixLevelUpLearnset, - [SPECIES_SNUBBULL] = sSnubbullLevelUpLearnset, - [SPECIES_GRANBULL] = sGranbullLevelUpLearnset, - [SPECIES_QWILFISH] = sQwilfishLevelUpLearnset, - [SPECIES_SCIZOR] = sScizorLevelUpLearnset, - [SPECIES_SHUCKLE] = sShuckleLevelUpLearnset, - [SPECIES_HERACROSS] = sHeracrossLevelUpLearnset, - [SPECIES_SNEASEL] = sSneaselLevelUpLearnset, - [SPECIES_TEDDIURSA] = sTeddiursaLevelUpLearnset, - [SPECIES_URSARING] = sUrsaringLevelUpLearnset, - [SPECIES_SLUGMA] = sSlugmaLevelUpLearnset, - [SPECIES_MAGCARGO] = sMagcargoLevelUpLearnset, - [SPECIES_SWINUB] = sSwinubLevelUpLearnset, - [SPECIES_PILOSWINE] = sPiloswineLevelUpLearnset, - [SPECIES_CORSOLA] = sCorsolaLevelUpLearnset, - [SPECIES_REMORAID] = sRemoraidLevelUpLearnset, - [SPECIES_OCTILLERY] = sOctilleryLevelUpLearnset, - [SPECIES_DELIBIRD] = sDelibirdLevelUpLearnset, - [SPECIES_MANTINE] = sMantineLevelUpLearnset, - [SPECIES_SKARMORY] = sSkarmoryLevelUpLearnset, - [SPECIES_HOUNDOUR] = sHoundourLevelUpLearnset, - [SPECIES_HOUNDOOM] = sHoundoomLevelUpLearnset, - [SPECIES_KINGDRA] = sKingdraLevelUpLearnset, - [SPECIES_PHANPY] = sPhanpyLevelUpLearnset, - [SPECIES_DONPHAN] = sDonphanLevelUpLearnset, - [SPECIES_PORYGON2] = sPorygon2LevelUpLearnset, - [SPECIES_STANTLER] = sStantlerLevelUpLearnset, - [SPECIES_SMEARGLE] = sSmeargleLevelUpLearnset, - [SPECIES_TYROGUE] = sTyrogueLevelUpLearnset, - [SPECIES_HITMONTOP] = sHitmontopLevelUpLearnset, - [SPECIES_SMOOCHUM] = sSmoochumLevelUpLearnset, - [SPECIES_ELEKID] = sElekidLevelUpLearnset, - [SPECIES_MAGBY] = sMagbyLevelUpLearnset, - [SPECIES_MILTANK] = sMiltankLevelUpLearnset, - [SPECIES_BLISSEY] = sBlisseyLevelUpLearnset, - [SPECIES_RAIKOU] = sRaikouLevelUpLearnset, - [SPECIES_ENTEI] = sEnteiLevelUpLearnset, - [SPECIES_SUICUNE] = sSuicuneLevelUpLearnset, - [SPECIES_LARVITAR] = sLarvitarLevelUpLearnset, - [SPECIES_PUPITAR] = sPupitarLevelUpLearnset, - [SPECIES_TYRANITAR] = sTyranitarLevelUpLearnset, - [SPECIES_LUGIA] = sLugiaLevelUpLearnset, - [SPECIES_HO_OH] = sHoOhLevelUpLearnset, - [SPECIES_CELEBI] = sCelebiLevelUpLearnset, - [SPECIES_TREECKO] = sTreeckoLevelUpLearnset, - [SPECIES_GROVYLE] = sGrovyleLevelUpLearnset, - [SPECIES_SCEPTILE] = sSceptileLevelUpLearnset, - [SPECIES_TORCHIC] = sTorchicLevelUpLearnset, - [SPECIES_COMBUSKEN] = sCombuskenLevelUpLearnset, - [SPECIES_BLAZIKEN] = sBlazikenLevelUpLearnset, - [SPECIES_MUDKIP] = sMudkipLevelUpLearnset, - [SPECIES_MARSHTOMP] = sMarshtompLevelUpLearnset, - [SPECIES_SWAMPERT] = sSwampertLevelUpLearnset, - [SPECIES_POOCHYENA] = sPoochyenaLevelUpLearnset, - [SPECIES_MIGHTYENA] = sMightyenaLevelUpLearnset, - [SPECIES_ZIGZAGOON] = sZigzagoonLevelUpLearnset, - [SPECIES_LINOONE] = sLinooneLevelUpLearnset, - [SPECIES_WURMPLE] = sWurmpleLevelUpLearnset, - [SPECIES_SILCOON] = sSilcoonLevelUpLearnset, - [SPECIES_BEAUTIFLY] = sBeautiflyLevelUpLearnset, - [SPECIES_CASCOON] = sCascoonLevelUpLearnset, - [SPECIES_DUSTOX] = sDustoxLevelUpLearnset, - [SPECIES_LOTAD] = sLotadLevelUpLearnset, - [SPECIES_LOMBRE] = sLombreLevelUpLearnset, - [SPECIES_LUDICOLO] = sLudicoloLevelUpLearnset, - [SPECIES_SEEDOT] = sSeedotLevelUpLearnset, - [SPECIES_NUZLEAF] = sNuzleafLevelUpLearnset, - [SPECIES_SHIFTRY] = sShiftryLevelUpLearnset, - [SPECIES_NINCADA] = sNincadaLevelUpLearnset, - [SPECIES_NINJASK] = sNinjaskLevelUpLearnset, - [SPECIES_SHEDINJA] = sShedinjaLevelUpLearnset, - [SPECIES_TAILLOW] = sTaillowLevelUpLearnset, - [SPECIES_SWELLOW] = sSwellowLevelUpLearnset, - [SPECIES_SHROOMISH] = sShroomishLevelUpLearnset, - [SPECIES_BRELOOM] = sBreloomLevelUpLearnset, - [SPECIES_SPINDA] = sSpindaLevelUpLearnset, - [SPECIES_WINGULL] = sWingullLevelUpLearnset, - [SPECIES_PELIPPER] = sPelipperLevelUpLearnset, - [SPECIES_SURSKIT] = sSurskitLevelUpLearnset, - [SPECIES_MASQUERAIN] = sMasquerainLevelUpLearnset, - [SPECIES_WAILMER] = sWailmerLevelUpLearnset, - [SPECIES_WAILORD] = sWailordLevelUpLearnset, - [SPECIES_SKITTY] = sSkittyLevelUpLearnset, - [SPECIES_DELCATTY] = sDelcattyLevelUpLearnset, - [SPECIES_KECLEON] = sKecleonLevelUpLearnset, - [SPECIES_BALTOY] = sBaltoyLevelUpLearnset, - [SPECIES_CLAYDOL] = sClaydolLevelUpLearnset, - [SPECIES_NOSEPASS] = sNosepassLevelUpLearnset, - [SPECIES_TORKOAL] = sTorkoalLevelUpLearnset, - [SPECIES_SABLEYE] = sSableyeLevelUpLearnset, - [SPECIES_BARBOACH] = sBarboachLevelUpLearnset, - [SPECIES_WHISCASH] = sWhiscashLevelUpLearnset, - [SPECIES_LUVDISC] = sLuvdiscLevelUpLearnset, - [SPECIES_CORPHISH] = sCorphishLevelUpLearnset, - [SPECIES_CRAWDAUNT] = sCrawdauntLevelUpLearnset, - [SPECIES_FEEBAS] = sFeebasLevelUpLearnset, - [SPECIES_MILOTIC] = sMiloticLevelUpLearnset, - [SPECIES_CARVANHA] = sCarvanhaLevelUpLearnset, - [SPECIES_SHARPEDO] = sSharpedoLevelUpLearnset, - [SPECIES_TRAPINCH] = sTrapinchLevelUpLearnset, - [SPECIES_VIBRAVA] = sVibravaLevelUpLearnset, - [SPECIES_FLYGON] = sFlygonLevelUpLearnset, - [SPECIES_MAKUHITA] = sMakuhitaLevelUpLearnset, - [SPECIES_HARIYAMA] = sHariyamaLevelUpLearnset, - [SPECIES_ELECTRIKE] = sElectrikeLevelUpLearnset, - [SPECIES_MANECTRIC] = sManectricLevelUpLearnset, - [SPECIES_NUMEL] = sNumelLevelUpLearnset, - [SPECIES_CAMERUPT] = sCameruptLevelUpLearnset, - [SPECIES_SPHEAL] = sSphealLevelUpLearnset, - [SPECIES_SEALEO] = sSealeoLevelUpLearnset, - [SPECIES_WALREIN] = sWalreinLevelUpLearnset, - [SPECIES_CACNEA] = sCacneaLevelUpLearnset, - [SPECIES_CACTURNE] = sCacturneLevelUpLearnset, - [SPECIES_SNORUNT] = sSnoruntLevelUpLearnset, - [SPECIES_GLALIE] = sGlalieLevelUpLearnset, - [SPECIES_LUNATONE] = sLunatoneLevelUpLearnset, - [SPECIES_SOLROCK] = sSolrockLevelUpLearnset, - [SPECIES_AZURILL] = sAzurillLevelUpLearnset, - [SPECIES_SPOINK] = sSpoinkLevelUpLearnset, - [SPECIES_GRUMPIG] = sGrumpigLevelUpLearnset, - [SPECIES_PLUSLE] = sPlusleLevelUpLearnset, - [SPECIES_MINUN] = sMinunLevelUpLearnset, - [SPECIES_MAWILE] = sMawileLevelUpLearnset, - [SPECIES_MEDITITE] = sMedititeLevelUpLearnset, - [SPECIES_MEDICHAM] = sMedichamLevelUpLearnset, - [SPECIES_SWABLU] = sSwabluLevelUpLearnset, - [SPECIES_ALTARIA] = sAltariaLevelUpLearnset, - [SPECIES_WYNAUT] = sWynautLevelUpLearnset, - [SPECIES_DUSKULL] = sDuskullLevelUpLearnset, - [SPECIES_DUSCLOPS] = sDusclopsLevelUpLearnset, - [SPECIES_ROSELIA] = sRoseliaLevelUpLearnset, - [SPECIES_SLAKOTH] = sSlakothLevelUpLearnset, - [SPECIES_VIGOROTH] = sVigorothLevelUpLearnset, - [SPECIES_SLAKING] = sSlakingLevelUpLearnset, - [SPECIES_GULPIN] = sGulpinLevelUpLearnset, - [SPECIES_SWALOT] = sSwalotLevelUpLearnset, - [SPECIES_TROPIUS] = sTropiusLevelUpLearnset, - [SPECIES_WHISMUR] = sWhismurLevelUpLearnset, - [SPECIES_LOUDRED] = sLoudredLevelUpLearnset, - [SPECIES_EXPLOUD] = sExploudLevelUpLearnset, - [SPECIES_CLAMPERL] = sClamperlLevelUpLearnset, - [SPECIES_HUNTAIL] = sHuntailLevelUpLearnset, - [SPECIES_GOREBYSS] = sGorebyssLevelUpLearnset, - [SPECIES_ABSOL] = sAbsolLevelUpLearnset, - [SPECIES_SHUPPET] = sShuppetLevelUpLearnset, - [SPECIES_BANETTE] = sBanetteLevelUpLearnset, - [SPECIES_SEVIPER] = sSeviperLevelUpLearnset, - [SPECIES_ZANGOOSE] = sZangooseLevelUpLearnset, - [SPECIES_RELICANTH] = sRelicanthLevelUpLearnset, - [SPECIES_ARON] = sAronLevelUpLearnset, - [SPECIES_LAIRON] = sLaironLevelUpLearnset, - [SPECIES_AGGRON] = sAggronLevelUpLearnset, - [SPECIES_CASTFORM_NORMAL] = sCastformLevelUpLearnset, - [SPECIES_VOLBEAT] = sVolbeatLevelUpLearnset, - [SPECIES_ILLUMISE] = sIllumiseLevelUpLearnset, - [SPECIES_LILEEP] = sLileepLevelUpLearnset, - [SPECIES_CRADILY] = sCradilyLevelUpLearnset, - [SPECIES_ANORITH] = sAnorithLevelUpLearnset, - [SPECIES_ARMALDO] = sArmaldoLevelUpLearnset, - [SPECIES_RALTS] = sRaltsLevelUpLearnset, - [SPECIES_KIRLIA] = sKirliaLevelUpLearnset, - [SPECIES_GARDEVOIR] = sGardevoirLevelUpLearnset, - [SPECIES_BAGON] = sBagonLevelUpLearnset, - [SPECIES_SHELGON] = sShelgonLevelUpLearnset, - [SPECIES_SALAMENCE] = sSalamenceLevelUpLearnset, - [SPECIES_BELDUM] = sBeldumLevelUpLearnset, - [SPECIES_METANG] = sMetangLevelUpLearnset, - [SPECIES_METAGROSS] = sMetagrossLevelUpLearnset, - [SPECIES_REGIROCK] = sRegirockLevelUpLearnset, - [SPECIES_REGICE] = sRegiceLevelUpLearnset, - [SPECIES_REGISTEEL] = sRegisteelLevelUpLearnset, - [SPECIES_KYOGRE] = sKyogreLevelUpLearnset, - [SPECIES_GROUDON] = sGroudonLevelUpLearnset, - [SPECIES_RAYQUAZA] = sRayquazaLevelUpLearnset, - [SPECIES_LATIAS] = sLatiasLevelUpLearnset, - [SPECIES_LATIOS] = sLatiosLevelUpLearnset, - [SPECIES_JIRACHI] = sJirachiLevelUpLearnset, - [SPECIES_DEOXYS_NORMAL] = sDeoxysNormalLevelUpLearnset, - [SPECIES_CHIMECHO] = sChimechoLevelUpLearnset, -#if P_GEN_4_POKEMON == TRUE - [SPECIES_TURTWIG] = sTurtwigLevelUpLearnset, - [SPECIES_GROTLE] = sGrotleLevelUpLearnset, - [SPECIES_TORTERRA] = sTorterraLevelUpLearnset, - [SPECIES_CHIMCHAR] = sChimcharLevelUpLearnset, - [SPECIES_MONFERNO] = sMonfernoLevelUpLearnset, - [SPECIES_INFERNAPE] = sInfernapeLevelUpLearnset, - [SPECIES_PIPLUP] = sPiplupLevelUpLearnset, - [SPECIES_PRINPLUP] = sPrinplupLevelUpLearnset, - [SPECIES_EMPOLEON] = sEmpoleonLevelUpLearnset, - [SPECIES_STARLY] = sStarlyLevelUpLearnset, - [SPECIES_STARAVIA] = sStaraviaLevelUpLearnset, - [SPECIES_STARAPTOR] = sStaraptorLevelUpLearnset, - [SPECIES_BIDOOF] = sBidoofLevelUpLearnset, - [SPECIES_BIBAREL] = sBibarelLevelUpLearnset, - [SPECIES_KRICKETOT] = sKricketotLevelUpLearnset, - [SPECIES_KRICKETUNE] = sKricketuneLevelUpLearnset, - [SPECIES_SHINX] = sShinxLevelUpLearnset, - [SPECIES_LUXIO] = sLuxioLevelUpLearnset, - [SPECIES_LUXRAY] = sLuxrayLevelUpLearnset, - [SPECIES_BUDEW] = sBudewLevelUpLearnset, - [SPECIES_ROSERADE] = sRoseradeLevelUpLearnset, - [SPECIES_CRANIDOS] = sCranidosLevelUpLearnset, - [SPECIES_RAMPARDOS] = sRampardosLevelUpLearnset, - [SPECIES_SHIELDON] = sShieldonLevelUpLearnset, - [SPECIES_BASTIODON] = sBastiodonLevelUpLearnset, - [SPECIES_BURMY_PLANT_CLOAK] = sBurmyLevelUpLearnset, - [SPECIES_WORMADAM_PLANT_CLOAK] = sWormadamPlantCloakLevelUpLearnset, - [SPECIES_MOTHIM] = sMothimLevelUpLearnset, - [SPECIES_COMBEE] = sCombeeLevelUpLearnset, - [SPECIES_VESPIQUEN] = sVespiquenLevelUpLearnset, - [SPECIES_PACHIRISU] = sPachirisuLevelUpLearnset, - [SPECIES_BUIZEL] = sBuizelLevelUpLearnset, - [SPECIES_FLOATZEL] = sFloatzelLevelUpLearnset, - [SPECIES_CHERUBI] = sCherubiLevelUpLearnset, - [SPECIES_CHERRIM_OVERCAST] = sCherrimLevelUpLearnset, - [SPECIES_SHELLOS_WEST_SEA] = sShellosLevelUpLearnset, - [SPECIES_GASTRODON_WEST_SEA] = sGastrodonLevelUpLearnset, - [SPECIES_AMBIPOM] = sAmbipomLevelUpLearnset, - [SPECIES_DRIFLOON] = sDrifloonLevelUpLearnset, - [SPECIES_DRIFBLIM] = sDrifblimLevelUpLearnset, - [SPECIES_BUNEARY] = sBunearyLevelUpLearnset, - [SPECIES_LOPUNNY] = sLopunnyLevelUpLearnset, - [SPECIES_MISMAGIUS] = sMismagiusLevelUpLearnset, - [SPECIES_HONCHKROW] = sHonchkrowLevelUpLearnset, - [SPECIES_GLAMEOW] = sGlameowLevelUpLearnset, - [SPECIES_PURUGLY] = sPuruglyLevelUpLearnset, - [SPECIES_CHINGLING] = sChinglingLevelUpLearnset, - [SPECIES_STUNKY] = sStunkyLevelUpLearnset, - [SPECIES_SKUNTANK] = sSkuntankLevelUpLearnset, - [SPECIES_BRONZOR] = sBronzorLevelUpLearnset, - [SPECIES_BRONZONG] = sBronzongLevelUpLearnset, - [SPECIES_BONSLY] = sBonslyLevelUpLearnset, - [SPECIES_MIME_JR] = sMimeJrLevelUpLearnset, - [SPECIES_HAPPINY] = sHappinyLevelUpLearnset, - [SPECIES_CHATOT] = sChatotLevelUpLearnset, - [SPECIES_SPIRITOMB] = sSpiritombLevelUpLearnset, - [SPECIES_GIBLE] = sGibleLevelUpLearnset, - [SPECIES_GABITE] = sGabiteLevelUpLearnset, - [SPECIES_GARCHOMP] = sGarchompLevelUpLearnset, - [SPECIES_MUNCHLAX] = sMunchlaxLevelUpLearnset, - [SPECIES_RIOLU] = sRioluLevelUpLearnset, - [SPECIES_LUCARIO] = sLucarioLevelUpLearnset, - [SPECIES_HIPPOPOTAS] = sHippopotasLevelUpLearnset, - [SPECIES_HIPPOWDON] = sHippowdonLevelUpLearnset, - [SPECIES_SKORUPI] = sSkorupiLevelUpLearnset, - [SPECIES_DRAPION] = sDrapionLevelUpLearnset, - [SPECIES_CROAGUNK] = sCroagunkLevelUpLearnset, - [SPECIES_TOXICROAK] = sToxicroakLevelUpLearnset, - [SPECIES_CARNIVINE] = sCarnivineLevelUpLearnset, - [SPECIES_FINNEON] = sFinneonLevelUpLearnset, - [SPECIES_LUMINEON] = sLumineonLevelUpLearnset, - [SPECIES_MANTYKE] = sMantykeLevelUpLearnset, - [SPECIES_SNOVER] = sSnoverLevelUpLearnset, - [SPECIES_ABOMASNOW] = sAbomasnowLevelUpLearnset, - [SPECIES_WEAVILE] = sWeavileLevelUpLearnset, - [SPECIES_MAGNEZONE] = sMagnezoneLevelUpLearnset, - [SPECIES_LICKILICKY] = sLickilickyLevelUpLearnset, - [SPECIES_RHYPERIOR] = sRhyperiorLevelUpLearnset, - [SPECIES_TANGROWTH] = sTangrowthLevelUpLearnset, - [SPECIES_ELECTIVIRE] = sElectivireLevelUpLearnset, - [SPECIES_MAGMORTAR] = sMagmortarLevelUpLearnset, - [SPECIES_TOGEKISS] = sTogekissLevelUpLearnset, - [SPECIES_YANMEGA] = sYanmegaLevelUpLearnset, - [SPECIES_LEAFEON] = sLeafeonLevelUpLearnset, - [SPECIES_GLACEON] = sGlaceonLevelUpLearnset, - [SPECIES_GLISCOR] = sGliscorLevelUpLearnset, - [SPECIES_MAMOSWINE] = sMamoswineLevelUpLearnset, - [SPECIES_PORYGON_Z] = sPorygonZLevelUpLearnset, - [SPECIES_GALLADE] = sGalladeLevelUpLearnset, - [SPECIES_PROBOPASS] = sProbopassLevelUpLearnset, - [SPECIES_DUSKNOIR] = sDusknoirLevelUpLearnset, - [SPECIES_FROSLASS] = sFroslassLevelUpLearnset, - [SPECIES_ROTOM] = sRotomLevelUpLearnset, - [SPECIES_UXIE] = sUxieLevelUpLearnset, - [SPECIES_MESPRIT] = sMespritLevelUpLearnset, - [SPECIES_AZELF] = sAzelfLevelUpLearnset, - [SPECIES_DIALGA] = sDialgaLevelUpLearnset, - [SPECIES_PALKIA] = sPalkiaLevelUpLearnset, - [SPECIES_HEATRAN] = sHeatranLevelUpLearnset, - [SPECIES_REGIGIGAS] = sRegigigasLevelUpLearnset, - [SPECIES_GIRATINA_ALTERED] = sGiratinaLevelUpLearnset, - [SPECIES_CRESSELIA] = sCresseliaLevelUpLearnset, - [SPECIES_PHIONE] = sPhioneLevelUpLearnset, - [SPECIES_MANAPHY] = sManaphyLevelUpLearnset, - [SPECIES_DARKRAI] = sDarkraiLevelUpLearnset, - [SPECIES_SHAYMIN_LAND] = sShayminLandLevelUpLearnset, - [SPECIES_ARCEUS_NORMAL] = sArceusLevelUpLearnset, -#endif -#if P_GEN_5_POKEMON == TRUE - [SPECIES_VICTINI] = sVictiniLevelUpLearnset, - [SPECIES_SNIVY] = sSnivyLevelUpLearnset, - [SPECIES_SERVINE] = sServineLevelUpLearnset, - [SPECIES_SERPERIOR] = sSerperiorLevelUpLearnset, - [SPECIES_TEPIG] = sTepigLevelUpLearnset, - [SPECIES_PIGNITE] = sPigniteLevelUpLearnset, - [SPECIES_EMBOAR] = sEmboarLevelUpLearnset, - [SPECIES_OSHAWOTT] = sOshawottLevelUpLearnset, - [SPECIES_DEWOTT] = sDewottLevelUpLearnset, - [SPECIES_SAMUROTT] = sSamurottLevelUpLearnset, - [SPECIES_PATRAT] = sPatratLevelUpLearnset, - [SPECIES_WATCHOG] = sWatchogLevelUpLearnset, - [SPECIES_LILLIPUP] = sLillipupLevelUpLearnset, - [SPECIES_HERDIER] = sHerdierLevelUpLearnset, - [SPECIES_STOUTLAND] = sStoutlandLevelUpLearnset, - [SPECIES_PURRLOIN] = sPurrloinLevelUpLearnset, - [SPECIES_LIEPARD] = sLiepardLevelUpLearnset, - [SPECIES_PANSAGE] = sPansageLevelUpLearnset, - [SPECIES_SIMISAGE] = sSimisageLevelUpLearnset, - [SPECIES_PANSEAR] = sPansearLevelUpLearnset, - [SPECIES_SIMISEAR] = sSimisearLevelUpLearnset, - [SPECIES_PANPOUR] = sPanpourLevelUpLearnset, - [SPECIES_SIMIPOUR] = sSimipourLevelUpLearnset, - [SPECIES_MUNNA] = sMunnaLevelUpLearnset, - [SPECIES_MUSHARNA] = sMusharnaLevelUpLearnset, - [SPECIES_PIDOVE] = sPidoveLevelUpLearnset, - [SPECIES_TRANQUILL] = sTranquillLevelUpLearnset, - [SPECIES_UNFEZANT] = sUnfezantLevelUpLearnset, - [SPECIES_BLITZLE] = sBlitzleLevelUpLearnset, - [SPECIES_ZEBSTRIKA] = sZebstrikaLevelUpLearnset, - [SPECIES_ROGGENROLA] = sRoggenrolaLevelUpLearnset, - [SPECIES_BOLDORE] = sBoldoreLevelUpLearnset, - [SPECIES_GIGALITH] = sGigalithLevelUpLearnset, - [SPECIES_WOOBAT] = sWoobatLevelUpLearnset, - [SPECIES_SWOOBAT] = sSwoobatLevelUpLearnset, - [SPECIES_DRILBUR] = sDrilburLevelUpLearnset, - [SPECIES_EXCADRILL] = sExcadrillLevelUpLearnset, - [SPECIES_AUDINO] = sAudinoLevelUpLearnset, - [SPECIES_TIMBURR] = sTimburrLevelUpLearnset, - [SPECIES_GURDURR] = sGurdurrLevelUpLearnset, - [SPECIES_CONKELDURR] = sConkeldurrLevelUpLearnset, - [SPECIES_TYMPOLE] = sTympoleLevelUpLearnset, - [SPECIES_PALPITOAD] = sPalpitoadLevelUpLearnset, - [SPECIES_SEISMITOAD] = sSeismitoadLevelUpLearnset, - [SPECIES_THROH] = sThrohLevelUpLearnset, - [SPECIES_SAWK] = sSawkLevelUpLearnset, - [SPECIES_SEWADDLE] = sSewaddleLevelUpLearnset, - [SPECIES_SWADLOON] = sSwadloonLevelUpLearnset, - [SPECIES_LEAVANNY] = sLeavannyLevelUpLearnset, - [SPECIES_VENIPEDE] = sVenipedeLevelUpLearnset, - [SPECIES_WHIRLIPEDE] = sWhirlipedeLevelUpLearnset, - [SPECIES_SCOLIPEDE] = sScolipedeLevelUpLearnset, - [SPECIES_COTTONEE] = sCottoneeLevelUpLearnset, - [SPECIES_WHIMSICOTT] = sWhimsicottLevelUpLearnset, - [SPECIES_PETILIL] = sPetililLevelUpLearnset, - [SPECIES_LILLIGANT] = sLilligantLevelUpLearnset, - [SPECIES_BASCULIN_RED_STRIPED] = sBasculinLevelUpLearnset, - [SPECIES_SANDILE] = sSandileLevelUpLearnset, - [SPECIES_KROKOROK] = sKrokorokLevelUpLearnset, - [SPECIES_KROOKODILE] = sKrookodileLevelUpLearnset, - [SPECIES_DARUMAKA] = sDarumakaLevelUpLearnset, - [SPECIES_DARMANITAN_STANDARD_MODE] = sDarmanitanLevelUpLearnset, - [SPECIES_MARACTUS] = sMaractusLevelUpLearnset, - [SPECIES_DWEBBLE] = sDwebbleLevelUpLearnset, - [SPECIES_CRUSTLE] = sCrustleLevelUpLearnset, - [SPECIES_SCRAGGY] = sScraggyLevelUpLearnset, - [SPECIES_SCRAFTY] = sScraftyLevelUpLearnset, - [SPECIES_SIGILYPH] = sSigilyphLevelUpLearnset, - [SPECIES_YAMASK] = sYamaskLevelUpLearnset, - [SPECIES_COFAGRIGUS] = sCofagrigusLevelUpLearnset, - [SPECIES_TIRTOUGA] = sTirtougaLevelUpLearnset, - [SPECIES_CARRACOSTA] = sCarracostaLevelUpLearnset, - [SPECIES_ARCHEN] = sArchenLevelUpLearnset, - [SPECIES_ARCHEOPS] = sArcheopsLevelUpLearnset, - [SPECIES_TRUBBISH] = sTrubbishLevelUpLearnset, - [SPECIES_GARBODOR] = sGarbodorLevelUpLearnset, - [SPECIES_ZORUA] = sZoruaLevelUpLearnset, - [SPECIES_ZOROARK] = sZoroarkLevelUpLearnset, - [SPECIES_MINCCINO] = sMinccinoLevelUpLearnset, - [SPECIES_CINCCINO] = sCinccinoLevelUpLearnset, - [SPECIES_GOTHITA] = sGothitaLevelUpLearnset, - [SPECIES_GOTHORITA] = sGothoritaLevelUpLearnset, - [SPECIES_GOTHITELLE] = sGothitelleLevelUpLearnset, - [SPECIES_SOLOSIS] = sSolosisLevelUpLearnset, - [SPECIES_DUOSION] = sDuosionLevelUpLearnset, - [SPECIES_REUNICLUS] = sReuniclusLevelUpLearnset, - [SPECIES_DUCKLETT] = sDucklettLevelUpLearnset, - [SPECIES_SWANNA] = sSwannaLevelUpLearnset, - [SPECIES_VANILLITE] = sVanilliteLevelUpLearnset, - [SPECIES_VANILLISH] = sVanillishLevelUpLearnset, - [SPECIES_VANILLUXE] = sVanilluxeLevelUpLearnset, - [SPECIES_DEERLING_SPRING] = sDeerlingLevelUpLearnset, - [SPECIES_SAWSBUCK_SPRING] = sSawsbuckLevelUpLearnset, - [SPECIES_EMOLGA] = sEmolgaLevelUpLearnset, - [SPECIES_KARRABLAST] = sKarrablastLevelUpLearnset, - [SPECIES_ESCAVALIER] = sEscavalierLevelUpLearnset, - [SPECIES_FOONGUS] = sFoongusLevelUpLearnset, - [SPECIES_AMOONGUSS] = sAmoongussLevelUpLearnset, - [SPECIES_FRILLISH] = sFrillishLevelUpLearnset, - [SPECIES_JELLICENT] = sJellicentLevelUpLearnset, - [SPECIES_ALOMOMOLA] = sAlomomolaLevelUpLearnset, - [SPECIES_JOLTIK] = sJoltikLevelUpLearnset, - [SPECIES_GALVANTULA] = sGalvantulaLevelUpLearnset, - [SPECIES_FERROSEED] = sFerroseedLevelUpLearnset, - [SPECIES_FERROTHORN] = sFerrothornLevelUpLearnset, - [SPECIES_KLINK] = sKlinkLevelUpLearnset, - [SPECIES_KLANG] = sKlangLevelUpLearnset, - [SPECIES_KLINKLANG] = sKlinklangLevelUpLearnset, - [SPECIES_TYNAMO] = sTynamoLevelUpLearnset, - [SPECIES_EELEKTRIK] = sEelektrikLevelUpLearnset, - [SPECIES_EELEKTROSS] = sEelektrossLevelUpLearnset, - [SPECIES_ELGYEM] = sElgyemLevelUpLearnset, - [SPECIES_BEHEEYEM] = sBeheeyemLevelUpLearnset, - [SPECIES_LITWICK] = sLitwickLevelUpLearnset, - [SPECIES_LAMPENT] = sLampentLevelUpLearnset, - [SPECIES_CHANDELURE] = sChandelureLevelUpLearnset, - [SPECIES_AXEW] = sAxewLevelUpLearnset, - [SPECIES_FRAXURE] = sFraxureLevelUpLearnset, - [SPECIES_HAXORUS] = sHaxorusLevelUpLearnset, - [SPECIES_CUBCHOO] = sCubchooLevelUpLearnset, - [SPECIES_BEARTIC] = sBearticLevelUpLearnset, - [SPECIES_CRYOGONAL] = sCryogonalLevelUpLearnset, - [SPECIES_SHELMET] = sShelmetLevelUpLearnset, - [SPECIES_ACCELGOR] = sAccelgorLevelUpLearnset, - [SPECIES_STUNFISK] = sStunfiskLevelUpLearnset, - [SPECIES_MIENFOO] = sMienfooLevelUpLearnset, - [SPECIES_MIENSHAO] = sMienshaoLevelUpLearnset, - [SPECIES_DRUDDIGON] = sDruddigonLevelUpLearnset, - [SPECIES_GOLETT] = sGolettLevelUpLearnset, - [SPECIES_GOLURK] = sGolurkLevelUpLearnset, - [SPECIES_PAWNIARD] = sPawniardLevelUpLearnset, - [SPECIES_BISHARP] = sBisharpLevelUpLearnset, - [SPECIES_BOUFFALANT] = sBouffalantLevelUpLearnset, - [SPECIES_RUFFLET] = sRuffletLevelUpLearnset, - [SPECIES_BRAVIARY] = sBraviaryLevelUpLearnset, - [SPECIES_VULLABY] = sVullabyLevelUpLearnset, - [SPECIES_MANDIBUZZ] = sMandibuzzLevelUpLearnset, - [SPECIES_HEATMOR] = sHeatmorLevelUpLearnset, - [SPECIES_DURANT] = sDurantLevelUpLearnset, - [SPECIES_DEINO] = sDeinoLevelUpLearnset, - [SPECIES_ZWEILOUS] = sZweilousLevelUpLearnset, - [SPECIES_HYDREIGON] = sHydreigonLevelUpLearnset, - [SPECIES_LARVESTA] = sLarvestaLevelUpLearnset, - [SPECIES_VOLCARONA] = sVolcaronaLevelUpLearnset, - [SPECIES_COBALION] = sCobalionLevelUpLearnset, - [SPECIES_TERRAKION] = sTerrakionLevelUpLearnset, - [SPECIES_VIRIZION] = sVirizionLevelUpLearnset, - [SPECIES_TORNADUS_INCARNATE] = sTornadusLevelUpLearnset, - [SPECIES_THUNDURUS_INCARNATE] = sThundurusLevelUpLearnset, - [SPECIES_RESHIRAM] = sReshiramLevelUpLearnset, - [SPECIES_ZEKROM] = sZekromLevelUpLearnset, - [SPECIES_LANDORUS_INCARNATE] = sLandorusLevelUpLearnset, - [SPECIES_KYUREM] = sKyuremLevelUpLearnset, - [SPECIES_KELDEO_ORDINARY] = sKeldeoLevelUpLearnset, - [SPECIES_MELOETTA_ARIA] = sMeloettaLevelUpLearnset, - [SPECIES_GENESECT] = sGenesectLevelUpLearnset, -#endif -#if P_GEN_6_POKEMON == TRUE - [SPECIES_CHESPIN] = sChespinLevelUpLearnset, - [SPECIES_QUILLADIN] = sQuilladinLevelUpLearnset, - [SPECIES_CHESNAUGHT] = sChesnaughtLevelUpLearnset, - [SPECIES_FENNEKIN] = sFennekinLevelUpLearnset, - [SPECIES_BRAIXEN] = sBraixenLevelUpLearnset, - [SPECIES_DELPHOX] = sDelphoxLevelUpLearnset, - [SPECIES_FROAKIE] = sFroakieLevelUpLearnset, - [SPECIES_FROGADIER] = sFrogadierLevelUpLearnset, - [SPECIES_GRENINJA] = sGreninjaLevelUpLearnset, - [SPECIES_BUNNELBY] = sBunnelbyLevelUpLearnset, - [SPECIES_DIGGERSBY] = sDiggersbyLevelUpLearnset, - [SPECIES_FLETCHLING] = sFletchlingLevelUpLearnset, - [SPECIES_FLETCHINDER] = sFletchinderLevelUpLearnset, - [SPECIES_TALONFLAME] = sTalonflameLevelUpLearnset, - [SPECIES_SCATTERBUG] = sScatterbugLevelUpLearnset, - [SPECIES_SPEWPA] = sSpewpaLevelUpLearnset, - [SPECIES_VIVILLON_ICY_SNOW] = sVivillonLevelUpLearnset, - [SPECIES_LITLEO] = sLitleoLevelUpLearnset, - [SPECIES_PYROAR] = sPyroarLevelUpLearnset, - [SPECIES_FLABEBE_RED_FLOWER] = sFlabebeLevelUpLearnset, - [SPECIES_FLOETTE_RED_FLOWER] = sFloetteLevelUpLearnset, - [SPECIES_FLORGES_RED_FLOWER] = sFlorgesLevelUpLearnset, - [SPECIES_SKIDDO] = sSkiddoLevelUpLearnset, - [SPECIES_GOGOAT] = sGogoatLevelUpLearnset, - [SPECIES_PANCHAM] = sPanchamLevelUpLearnset, - [SPECIES_PANGORO] = sPangoroLevelUpLearnset, - [SPECIES_FURFROU_NATURAL] = sFurfrouLevelUpLearnset, - [SPECIES_ESPURR] = sEspurrLevelUpLearnset, - [SPECIES_MEOWSTIC_MALE] = sMeowsticMaleLevelUpLearnset, - [SPECIES_HONEDGE] = sHonedgeLevelUpLearnset, - [SPECIES_DOUBLADE] = sDoubladeLevelUpLearnset, - [SPECIES_AEGISLASH_SHIELD] = sAegislashLevelUpLearnset, - [SPECIES_SPRITZEE] = sSpritzeeLevelUpLearnset, - [SPECIES_AROMATISSE] = sAromatisseLevelUpLearnset, - [SPECIES_SWIRLIX] = sSwirlixLevelUpLearnset, - [SPECIES_SLURPUFF] = sSlurpuffLevelUpLearnset, - [SPECIES_INKAY] = sInkayLevelUpLearnset, - [SPECIES_MALAMAR] = sMalamarLevelUpLearnset, - [SPECIES_BINACLE] = sBinacleLevelUpLearnset, - [SPECIES_BARBARACLE] = sBarbaracleLevelUpLearnset, - [SPECIES_SKRELP] = sSkrelpLevelUpLearnset, - [SPECIES_DRAGALGE] = sDragalgeLevelUpLearnset, - [SPECIES_CLAUNCHER] = sClauncherLevelUpLearnset, - [SPECIES_CLAWITZER] = sClawitzerLevelUpLearnset, - [SPECIES_HELIOPTILE] = sHelioptileLevelUpLearnset, - [SPECIES_HELIOLISK] = sHelioliskLevelUpLearnset, - [SPECIES_TYRUNT] = sTyruntLevelUpLearnset, - [SPECIES_TYRANTRUM] = sTyrantrumLevelUpLearnset, - [SPECIES_AMAURA] = sAmauraLevelUpLearnset, - [SPECIES_AURORUS] = sAurorusLevelUpLearnset, - [SPECIES_SYLVEON] = sSylveonLevelUpLearnset, - [SPECIES_HAWLUCHA] = sHawluchaLevelUpLearnset, - [SPECIES_DEDENNE] = sDedenneLevelUpLearnset, - [SPECIES_CARBINK] = sCarbinkLevelUpLearnset, - [SPECIES_GOOMY] = sGoomyLevelUpLearnset, - [SPECIES_SLIGGOO] = sSliggooLevelUpLearnset, - [SPECIES_GOODRA] = sGoodraLevelUpLearnset, - [SPECIES_KLEFKI] = sKlefkiLevelUpLearnset, - [SPECIES_PHANTUMP] = sPhantumpLevelUpLearnset, - [SPECIES_TREVENANT] = sTrevenantLevelUpLearnset, - [SPECIES_PUMPKABOO_AVERAGE] = sPumpkabooLevelUpLearnset, - [SPECIES_GOURGEIST_AVERAGE] = sGourgeistLevelUpLearnset, - [SPECIES_BERGMITE] = sBergmiteLevelUpLearnset, - [SPECIES_AVALUGG] = sAvaluggLevelUpLearnset, - [SPECIES_NOIBAT] = sNoibatLevelUpLearnset, - [SPECIES_NOIVERN] = sNoivernLevelUpLearnset, - [SPECIES_XERNEAS_NEUTRAL] = sXerneasLevelUpLearnset, - [SPECIES_YVELTAL] = sYveltalLevelUpLearnset, - [SPECIES_ZYGARDE_50_AURA_BREAK] = sZygardeLevelUpLearnset, - [SPECIES_DIANCIE] = sDiancieLevelUpLearnset, - [SPECIES_HOOPA_CONFINED] = sHoopaConfinedLevelUpLearnset, - [SPECIES_VOLCANION] = sVolcanionLevelUpLearnset, -#endif -#if P_GEN_7_POKEMON == TRUE - [SPECIES_ROWLET] = sRowletLevelUpLearnset, - [SPECIES_DARTRIX] = sDartrixLevelUpLearnset, - [SPECIES_DECIDUEYE] = sDecidueyeLevelUpLearnset, - [SPECIES_LITTEN] = sLittenLevelUpLearnset, - [SPECIES_TORRACAT] = sTorracatLevelUpLearnset, - [SPECIES_INCINEROAR] = sIncineroarLevelUpLearnset, - [SPECIES_POPPLIO] = sPopplioLevelUpLearnset, - [SPECIES_BRIONNE] = sBrionneLevelUpLearnset, - [SPECIES_PRIMARINA] = sPrimarinaLevelUpLearnset, - [SPECIES_PIKIPEK] = sPikipekLevelUpLearnset, - [SPECIES_TRUMBEAK] = sTrumbeakLevelUpLearnset, - [SPECIES_TOUCANNON] = sToucannonLevelUpLearnset, - [SPECIES_YUNGOOS] = sYungoosLevelUpLearnset, - [SPECIES_GUMSHOOS] = sGumshoosLevelUpLearnset, - [SPECIES_GRUBBIN] = sGrubbinLevelUpLearnset, - [SPECIES_CHARJABUG] = sCharjabugLevelUpLearnset, - [SPECIES_VIKAVOLT] = sVikavoltLevelUpLearnset, - [SPECIES_CRABRAWLER] = sCrabrawlerLevelUpLearnset, - [SPECIES_CRABOMINABLE] = sCrabominableLevelUpLearnset, - [SPECIES_ORICORIO_BAILE] = sOricorioLevelUpLearnset, - [SPECIES_CUTIEFLY] = sCutieflyLevelUpLearnset, - [SPECIES_RIBOMBEE] = sRibombeeLevelUpLearnset, - [SPECIES_ROCKRUFF] = sRockruffLevelUpLearnset, - [SPECIES_LYCANROC_MIDDAY] = sLycanrocMiddayLevelUpLearnset, - [SPECIES_WISHIWASHI_SOLO] = sWishiwashiLevelUpLearnset, - [SPECIES_MAREANIE] = sMareanieLevelUpLearnset, - [SPECIES_TOXAPEX] = sToxapexLevelUpLearnset, - [SPECIES_MUDBRAY] = sMudbrayLevelUpLearnset, - [SPECIES_MUDSDALE] = sMudsdaleLevelUpLearnset, - [SPECIES_DEWPIDER] = sDewpiderLevelUpLearnset, - [SPECIES_ARAQUANID] = sAraquanidLevelUpLearnset, - [SPECIES_FOMANTIS] = sFomantisLevelUpLearnset, - [SPECIES_LURANTIS] = sLurantisLevelUpLearnset, - [SPECIES_MORELULL] = sMorelullLevelUpLearnset, - [SPECIES_SHIINOTIC] = sShiinoticLevelUpLearnset, - [SPECIES_SALANDIT] = sSalanditLevelUpLearnset, - [SPECIES_SALAZZLE] = sSalazzleLevelUpLearnset, - [SPECIES_STUFFUL] = sStuffulLevelUpLearnset, - [SPECIES_BEWEAR] = sBewearLevelUpLearnset, - [SPECIES_BOUNSWEET] = sBounsweetLevelUpLearnset, - [SPECIES_STEENEE] = sSteeneeLevelUpLearnset, - [SPECIES_TSAREENA] = sTsareenaLevelUpLearnset, - [SPECIES_COMFEY] = sComfeyLevelUpLearnset, - [SPECIES_ORANGURU] = sOranguruLevelUpLearnset, - [SPECIES_PASSIMIAN] = sPassimianLevelUpLearnset, - [SPECIES_WIMPOD] = sWimpodLevelUpLearnset, - [SPECIES_GOLISOPOD] = sGolisopodLevelUpLearnset, - [SPECIES_SANDYGAST] = sSandygastLevelUpLearnset, - [SPECIES_PALOSSAND] = sPalossandLevelUpLearnset, - [SPECIES_PYUKUMUKU] = sPyukumukuLevelUpLearnset, - [SPECIES_TYPE_NULL] = sTypeNullLevelUpLearnset, - [SPECIES_SILVALLY_NORMAL] = sSilvallyLevelUpLearnset, - [SPECIES_MINIOR_METEOR_RED] = sMiniorLevelUpLearnset, - [SPECIES_KOMALA] = sKomalaLevelUpLearnset, - [SPECIES_TURTONATOR] = sTurtonatorLevelUpLearnset, - [SPECIES_TOGEDEMARU] = sTogedemaruLevelUpLearnset, - [SPECIES_MIMIKYU_DISGUISED] = sMimikyuLevelUpLearnset, - [SPECIES_BRUXISH] = sBruxishLevelUpLearnset, - [SPECIES_DRAMPA] = sDrampaLevelUpLearnset, - [SPECIES_DHELMISE] = sDhelmiseLevelUpLearnset, - [SPECIES_JANGMO_O] = sJangmoOLevelUpLearnset, - [SPECIES_HAKAMO_O] = sHakamoOLevelUpLearnset, - [SPECIES_KOMMO_O] = sKommoOLevelUpLearnset, - [SPECIES_TAPU_KOKO] = sTapuKokoLevelUpLearnset, - [SPECIES_TAPU_LELE] = sTapuLeleLevelUpLearnset, - [SPECIES_TAPU_BULU] = sTapuBuluLevelUpLearnset, - [SPECIES_TAPU_FINI] = sTapuFiniLevelUpLearnset, - [SPECIES_COSMOG] = sCosmogLevelUpLearnset, - [SPECIES_COSMOEM] = sCosmoemLevelUpLearnset, - [SPECIES_SOLGALEO] = sSolgaleoLevelUpLearnset, - [SPECIES_LUNALA] = sLunalaLevelUpLearnset, - [SPECIES_NIHILEGO] = sNihilegoLevelUpLearnset, - [SPECIES_BUZZWOLE] = sBuzzwoleLevelUpLearnset, - [SPECIES_PHEROMOSA] = sPheromosaLevelUpLearnset, - [SPECIES_XURKITREE] = sXurkitreeLevelUpLearnset, - [SPECIES_CELESTEELA] = sCelesteelaLevelUpLearnset, - [SPECIES_KARTANA] = sKartanaLevelUpLearnset, - [SPECIES_GUZZLORD] = sGuzzlordLevelUpLearnset, - [SPECIES_NECROZMA] = sNecrozmaLevelUpLearnset, - [SPECIES_MAGEARNA] = sMagearnaLevelUpLearnset, - [SPECIES_MARSHADOW] = sMarshadowLevelUpLearnset, - [SPECIES_POIPOLE] = sPoipoleLevelUpLearnset, - [SPECIES_NAGANADEL] = sNaganadelLevelUpLearnset, - [SPECIES_STAKATAKA] = sStakatakaLevelUpLearnset, - [SPECIES_BLACEPHALON] = sBlacephalonLevelUpLearnset, - [SPECIES_ZERAORA] = sZeraoraLevelUpLearnset, - [SPECIES_MELTAN] = sMeltanLevelUpLearnset, - [SPECIES_MELMETAL] = sMelmetalLevelUpLearnset, -#endif -#if P_GEN_8_POKEMON == TRUE - [SPECIES_GROOKEY] = sGrookeyLevelUpLearnset, - [SPECIES_THWACKEY] = sThwackeyLevelUpLearnset, - [SPECIES_RILLABOOM] = sRillaboomLevelUpLearnset, - [SPECIES_SCORBUNNY] = sScorbunnyLevelUpLearnset, - [SPECIES_RABOOT] = sRabootLevelUpLearnset, - [SPECIES_CINDERACE] = sCinderaceLevelUpLearnset, - [SPECIES_SOBBLE] = sSobbleLevelUpLearnset, - [SPECIES_DRIZZILE] = sDrizzileLevelUpLearnset, - [SPECIES_INTELEON] = sInteleonLevelUpLearnset, - [SPECIES_SKWOVET] = sSkwovetLevelUpLearnset, - [SPECIES_GREEDENT] = sGreedentLevelUpLearnset, - [SPECIES_ROOKIDEE] = sRookideeLevelUpLearnset, - [SPECIES_CORVISQUIRE] = sCorvisquireLevelUpLearnset, - [SPECIES_CORVIKNIGHT] = sCorviknightLevelUpLearnset, - [SPECIES_BLIPBUG] = sBlipbugLevelUpLearnset, - [SPECIES_DOTTLER] = sDottlerLevelUpLearnset, - [SPECIES_ORBEETLE] = sOrbeetleLevelUpLearnset, - [SPECIES_NICKIT] = sNickitLevelUpLearnset, - [SPECIES_THIEVUL] = sThievulLevelUpLearnset, - [SPECIES_GOSSIFLEUR] = sGossifleurLevelUpLearnset, - [SPECIES_ELDEGOSS] = sEldegossLevelUpLearnset, - [SPECIES_WOOLOO] = sWoolooLevelUpLearnset, - [SPECIES_DUBWOOL] = sDubwoolLevelUpLearnset, - [SPECIES_CHEWTLE] = sChewtleLevelUpLearnset, - [SPECIES_DREDNAW] = sDrednawLevelUpLearnset, - [SPECIES_YAMPER] = sYamperLevelUpLearnset, - [SPECIES_BOLTUND] = sBoltundLevelUpLearnset, - [SPECIES_ROLYCOLY] = sRolycolyLevelUpLearnset, - [SPECIES_CARKOL] = sCarkolLevelUpLearnset, - [SPECIES_COALOSSAL] = sCoalossalLevelUpLearnset, - [SPECIES_APPLIN] = sApplinLevelUpLearnset, - [SPECIES_FLAPPLE] = sFlappleLevelUpLearnset, - [SPECIES_APPLETUN] = sAppletunLevelUpLearnset, - [SPECIES_SILICOBRA] = sSilicobraLevelUpLearnset, - [SPECIES_SANDACONDA] = sSandacondaLevelUpLearnset, - [SPECIES_CRAMORANT] = sCramorantLevelUpLearnset, - [SPECIES_ARROKUDA] = sArrokudaLevelUpLearnset, - [SPECIES_BARRASKEWDA] = sBarraskewdaLevelUpLearnset, - [SPECIES_TOXEL] = sToxelLevelUpLearnset, - [SPECIES_TOXTRICITY_AMPED] = sToxtricityAmpedLevelUpLearnset, - [SPECIES_SIZZLIPEDE] = sSizzlipedeLevelUpLearnset, - [SPECIES_CENTISKORCH] = sCentiskorchLevelUpLearnset, - [SPECIES_CLOBBOPUS] = sClobbopusLevelUpLearnset, - [SPECIES_GRAPPLOCT] = sGrapploctLevelUpLearnset, - [SPECIES_SINISTEA_PHONY] = sSinisteaLevelUpLearnset, - [SPECIES_POLTEAGEIST_PHONY] = sPolteageistLevelUpLearnset, - [SPECIES_HATENNA] = sHatennaLevelUpLearnset, - [SPECIES_HATTREM] = sHattremLevelUpLearnset, - [SPECIES_HATTERENE] = sHattereneLevelUpLearnset, - [SPECIES_IMPIDIMP] = sImpidimpLevelUpLearnset, - [SPECIES_MORGREM] = sMorgremLevelUpLearnset, - [SPECIES_GRIMMSNARL] = sGrimmsnarlLevelUpLearnset, - [SPECIES_OBSTAGOON] = sObstagoonLevelUpLearnset, - [SPECIES_PERRSERKER] = sPerrserkerLevelUpLearnset, - [SPECIES_CURSOLA] = sCursolaLevelUpLearnset, - [SPECIES_SIRFETCHD] = sSirfetchdLevelUpLearnset, - [SPECIES_MR_RIME] = sMrRimeLevelUpLearnset, - [SPECIES_RUNERIGUS] = sRunerigusLevelUpLearnset, - [SPECIES_MILCERY] = sMilceryLevelUpLearnset, - [SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_FALINKS] = sFalinksLevelUpLearnset, - [SPECIES_PINCURCHIN] = sPincurchinLevelUpLearnset, - [SPECIES_SNOM] = sSnomLevelUpLearnset, - [SPECIES_FROSMOTH] = sFrosmothLevelUpLearnset, - [SPECIES_STONJOURNER] = sStonjournerLevelUpLearnset, - [SPECIES_EISCUE_ICE_FACE] = sEiscueLevelUpLearnset, - [SPECIES_INDEEDEE_MALE] = sIndeedeeMaleLevelUpLearnset, - [SPECIES_MORPEKO_FULL_BELLY] = sMorpekoLevelUpLearnset, - [SPECIES_CUFANT] = sCufantLevelUpLearnset, - [SPECIES_COPPERAJAH] = sCopperajahLevelUpLearnset, - [SPECIES_DRACOZOLT] = sDracozoltLevelUpLearnset, - [SPECIES_ARCTOZOLT] = sArctozoltLevelUpLearnset, - [SPECIES_DRACOVISH] = sDracovishLevelUpLearnset, - [SPECIES_ARCTOVISH] = sArctovishLevelUpLearnset, - [SPECIES_DURALUDON] = sDuraludonLevelUpLearnset, - [SPECIES_DREEPY] = sDreepyLevelUpLearnset, - [SPECIES_DRAKLOAK] = sDrakloakLevelUpLearnset, - [SPECIES_DRAGAPULT] = sDragapultLevelUpLearnset, - [SPECIES_ZACIAN_HERO_OF_MANY_BATTLES] = sZacianLevelUpLearnset, - [SPECIES_ZAMAZENTA_HERO_OF_MANY_BATTLES] = sZamazentaLevelUpLearnset, - [SPECIES_ETERNATUS] = sEternatusLevelUpLearnset, - [SPECIES_KUBFU] = sKubfuLevelUpLearnset, - [SPECIES_URSHIFU_SINGLE_STRIKE_STYLE] = sUrshifuSingleStrikeStyleLevelUpLearnset, - [SPECIES_ZARUDE] = sZarudeLevelUpLearnset, - [SPECIES_REGIELEKI] = sRegielekiLevelUpLearnset, - [SPECIES_REGIDRAGO] = sRegidragoLevelUpLearnset, - [SPECIES_GLASTRIER] = sGlastrierLevelUpLearnset, - [SPECIES_SPECTRIER] = sSpectrierLevelUpLearnset, - [SPECIES_CALYREX] = sCalyrexLevelUpLearnset, - [SPECIES_WYRDEER] = sWyrdeerLevelUpLearnset, - [SPECIES_KLEAVOR] = sKleavorLevelUpLearnset, - [SPECIES_URSALUNA] = sUrsalunaLevelUpLearnset, - [SPECIES_BASCULEGION_MALE] = sBasculegionLevelUpLearnset, - [SPECIES_SNEASLER] = sSneaslerLevelUpLearnset, - [SPECIES_OVERQWIL] = sOverqwilLevelUpLearnset, - [SPECIES_ENAMORUS_INCARNATE] = sEnamorusLevelUpLearnset, -#endif - // Megas - [SPECIES_VENUSAUR_MEGA] = sVenusaurLevelUpLearnset, - [SPECIES_CHARIZARD_MEGA_X] = sCharizardLevelUpLearnset, - [SPECIES_CHARIZARD_MEGA_Y] = sCharizardLevelUpLearnset, - [SPECIES_BLASTOISE_MEGA] = sBlastoiseLevelUpLearnset, - [SPECIES_BEEDRILL_MEGA] = sBeedrillLevelUpLearnset, - [SPECIES_PIDGEOT_MEGA] = sPidgeotLevelUpLearnset, - [SPECIES_ALAKAZAM_MEGA] = sAlakazamLevelUpLearnset, - [SPECIES_SLOWBRO_MEGA] = sSlowbroLevelUpLearnset, - [SPECIES_GENGAR_MEGA] = sGengarLevelUpLearnset, - [SPECIES_KANGASKHAN_MEGA] = sKangaskhanLevelUpLearnset, - [SPECIES_PINSIR_MEGA] = sPinsirLevelUpLearnset, - [SPECIES_GYARADOS_MEGA] = sGyaradosLevelUpLearnset, - [SPECIES_AERODACTYL_MEGA] = sAerodactylLevelUpLearnset, - [SPECIES_MEWTWO_MEGA_X] = sMewtwoLevelUpLearnset, - [SPECIES_MEWTWO_MEGA_Y] = sMewtwoLevelUpLearnset, - [SPECIES_AMPHAROS_MEGA] = sAmpharosLevelUpLearnset, - [SPECIES_STEELIX_MEGA] = sSteelixLevelUpLearnset, - [SPECIES_SCIZOR_MEGA] = sScizorLevelUpLearnset, - [SPECIES_HERACROSS_MEGA] = sHeracrossLevelUpLearnset, - [SPECIES_HOUNDOOM_MEGA] = sHoundoomLevelUpLearnset, - [SPECIES_TYRANITAR_MEGA] = sTyranitarLevelUpLearnset, - [SPECIES_SCEPTILE_MEGA] = sSceptileLevelUpLearnset, - [SPECIES_BLAZIKEN_MEGA] = sBlazikenLevelUpLearnset, - [SPECIES_SWAMPERT_MEGA] = sSwampertLevelUpLearnset, - [SPECIES_GARDEVOIR_MEGA] = sGardevoirLevelUpLearnset, - [SPECIES_SABLEYE_MEGA] = sSableyeLevelUpLearnset, - [SPECIES_MAWILE_MEGA] = sMawileLevelUpLearnset, - [SPECIES_AGGRON_MEGA] = sAggronLevelUpLearnset, - [SPECIES_MEDICHAM_MEGA] = sMedichamLevelUpLearnset, - [SPECIES_MANECTRIC_MEGA] = sManectricLevelUpLearnset, - [SPECIES_SHARPEDO_MEGA] = sSharpedoLevelUpLearnset, - [SPECIES_CAMERUPT_MEGA] = sCameruptLevelUpLearnset, - [SPECIES_ALTARIA_MEGA] = sAltariaLevelUpLearnset, - [SPECIES_BANETTE_MEGA] = sBanetteLevelUpLearnset, - [SPECIES_ABSOL_MEGA] = sAbsolLevelUpLearnset, - [SPECIES_GLALIE_MEGA] = sGlalieLevelUpLearnset, - [SPECIES_SALAMENCE_MEGA] = sSalamenceLevelUpLearnset, - [SPECIES_METAGROSS_MEGA] = sMetagrossLevelUpLearnset, - [SPECIES_LATIAS_MEGA] = sLatiasLevelUpLearnset, - [SPECIES_LATIOS_MEGA] = sLatiosLevelUpLearnset, -#if P_GEN_4_POKEMON == TRUE - [SPECIES_LOPUNNY_MEGA] = sLopunnyLevelUpLearnset, - [SPECIES_GARCHOMP_MEGA] = sGarchompLevelUpLearnset, - [SPECIES_LUCARIO_MEGA] = sLucarioLevelUpLearnset, - [SPECIES_ABOMASNOW_MEGA] = sAbomasnowLevelUpLearnset, - [SPECIES_GALLADE_MEGA] = sGalladeLevelUpLearnset, -#endif -#if P_GEN_5_POKEMON == TRUE - [SPECIES_AUDINO_MEGA] = sAudinoLevelUpLearnset, -#endif -#if P_GEN_6_POKEMON == TRUE - [SPECIES_DIANCIE_MEGA] = sDiancieLevelUpLearnset, -#endif - // Special Mega + Primals - [SPECIES_RAYQUAZA_MEGA] = sRayquazaLevelUpLearnset, - [SPECIES_KYOGRE_PRIMAL] = sKyogreLevelUpLearnset, - [SPECIES_GROUDON_PRIMAL] = sGroudonLevelUpLearnset, - // Alolan Forms - [SPECIES_RATTATA_ALOLAN] = sRattataAlolanLevelUpLearnset, - [SPECIES_RATICATE_ALOLAN] = sRaticateAlolanLevelUpLearnset, - [SPECIES_RAICHU_ALOLAN] = sRaichuAlolanLevelUpLearnset, - [SPECIES_SANDSHREW_ALOLAN] = sSandshrewAlolanLevelUpLearnset, - [SPECIES_SANDSLASH_ALOLAN] = sSandslashAlolanLevelUpLearnset, - [SPECIES_VULPIX_ALOLAN] = sVulpixAlolanLevelUpLearnset, - [SPECIES_NINETALES_ALOLAN] = sNinetalesAlolanLevelUpLearnset, - [SPECIES_DIGLETT_ALOLAN] = sDiglettAlolanLevelUpLearnset, - [SPECIES_DUGTRIO_ALOLAN] = sDugtrioAlolanLevelUpLearnset, - [SPECIES_MEOWTH_ALOLAN] = sMeowthAlolanLevelUpLearnset, - [SPECIES_PERSIAN_ALOLAN] = sPersianAlolanLevelUpLearnset, - [SPECIES_GEODUDE_ALOLAN] = sGeodudeAlolanLevelUpLearnset, - [SPECIES_GRAVELER_ALOLAN] = sGravelerAlolanLevelUpLearnset, - [SPECIES_GOLEM_ALOLAN] = sGolemAlolanLevelUpLearnset, - [SPECIES_GRIMER_ALOLAN] = sGrimerAlolanLevelUpLearnset, - [SPECIES_MUK_ALOLAN] = sMukAlolanLevelUpLearnset, - [SPECIES_EXEGGUTOR_ALOLAN] = sExeggutorAlolanLevelUpLearnset, - [SPECIES_MAROWAK_ALOLAN] = sMarowakAlolanLevelUpLearnset, - // Galarian Forms - [SPECIES_MEOWTH_GALARIAN] = sMeowthGalarianLevelUpLearnset, - [SPECIES_PONYTA_GALARIAN] = sPonytaGalarianLevelUpLearnset, - [SPECIES_RAPIDASH_GALARIAN] = sRapidashGalarianLevelUpLearnset, - [SPECIES_SLOWPOKE_GALARIAN] = sSlowpokeGalarianLevelUpLearnset, - [SPECIES_SLOWBRO_GALARIAN] = sSlowbroGalarianLevelUpLearnset, - [SPECIES_FARFETCHD_GALARIAN] = sFarfetchdGalarianLevelUpLearnset, - [SPECIES_WEEZING_GALARIAN] = sWeezingGalarianLevelUpLearnset, - [SPECIES_MR_MIME_GALARIAN] = sMrMimeGalarianLevelUpLearnset, - [SPECIES_ARTICUNO_GALARIAN] = sArticunoGalarianLevelUpLearnset, - [SPECIES_ZAPDOS_GALARIAN] = sZapdosGalarianLevelUpLearnset, - [SPECIES_MOLTRES_GALARIAN] = sMoltresGalarianLevelUpLearnset, - [SPECIES_SLOWKING_GALARIAN] = sSlowkingGalarianLevelUpLearnset, - [SPECIES_CORSOLA_GALARIAN] = sCorsolaGalarianLevelUpLearnset, - [SPECIES_ZIGZAGOON_GALARIAN] = sZigzagoonGalarianLevelUpLearnset, - [SPECIES_LINOONE_GALARIAN] = sLinooneGalarianLevelUpLearnset, -#if P_GEN_5_POKEMON == TRUE - [SPECIES_DARUMAKA_GALARIAN] = sDarumakaGalarianLevelUpLearnset, - [SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE] = sDarmanitanGalarianLevelUpLearnset, - [SPECIES_YAMASK_GALARIAN] = sYamaskGalarianLevelUpLearnset, - [SPECIES_STUNFISK_GALARIAN] = sStunfiskGalarianLevelUpLearnset, -#endif - // Hisuian Forms - [SPECIES_GROWLITHE_HISUIAN] = sGrowlitheHisuianLevelUpLearnset, - [SPECIES_ARCANINE_HISUIAN] = sArcanineHisuianLevelUpLearnset, - [SPECIES_VOLTORB_HISUIAN] = sVoltorbHisuianLevelUpLearnset, - [SPECIES_ELECTRODE_HISUIAN] = sElectrodeHisuianLevelUpLearnset, - [SPECIES_TYPHLOSION_HISUIAN] = sTyphlosionHisuianLevelUpLearnset, - [SPECIES_QWILFISH_HISUIAN] = sQwilfishHisuianLevelUpLearnset, - [SPECIES_SNEASEL_HISUIAN] = sSneaselHisuianLevelUpLearnset, -#if P_GEN_5_POKEMON == TRUE - [SPECIES_SAMUROTT_HISUIAN] = sSamurottHisuianLevelUpLearnset, - [SPECIES_LILLIGANT_HISUIAN] = sLilligantHisuianLevelUpLearnset, - [SPECIES_ZORUA_HISUIAN] = sZoruaHisuianLevelUpLearnset, - [SPECIES_ZOROARK_HISUIAN] = sZoroarkHisuianLevelUpLearnset, - [SPECIES_BRAVIARY_HISUIAN] = sBraviaryHisuianLevelUpLearnset, -#endif -#if P_GEN_6_POKEMON == TRUE - [SPECIES_SLIGGOO_HISUIAN] = sSliggooHisuianLevelUpLearnset, - [SPECIES_GOODRA_HISUIAN] = sGoodraHisuianLevelUpLearnset, - [SPECIES_AVALUGG_HISUIAN] = sAvaluggHisuianLevelUpLearnset, -#endif -#if P_GEN_7_POKEMON == TRUE - [SPECIES_DECIDUEYE_HISUIAN] = sDecidueyeHisuianLevelUpLearnset, -#endif - // Misc Forms - // Cosplay Pikachu - [SPECIES_PIKACHU_COSPLAY] = sPikachuLevelUpLearnset, - [SPECIES_PIKACHU_ROCK_STAR] = sPikachuLevelUpLearnset, - [SPECIES_PIKACHU_BELLE] = sPikachuLevelUpLearnset, - [SPECIES_PIKACHU_POP_STAR] = sPikachuLevelUpLearnset, - [SPECIES_PIKACHU_PH_D] = sPikachuLevelUpLearnset, - [SPECIES_PIKACHU_LIBRE] = sPikachuLevelUpLearnset, - // Cap Pikachu - [SPECIES_PIKACHU_ORIGINAL_CAP] = sPikachuLevelUpLearnset, - [SPECIES_PIKACHU_HOENN_CAP] = sPikachuLevelUpLearnset, - [SPECIES_PIKACHU_SINNOH_CAP] = sPikachuLevelUpLearnset, - [SPECIES_PIKACHU_UNOVA_CAP] = sPikachuLevelUpLearnset, - [SPECIES_PIKACHU_KALOS_CAP] = sPikachuLevelUpLearnset, - [SPECIES_PIKACHU_ALOLA_CAP] = sPikachuLevelUpLearnset, - [SPECIES_PIKACHU_PARTNER_CAP] = sPikachuLevelUpLearnset, - [SPECIES_PIKACHU_WORLD_CAP] = sPikachuLevelUpLearnset, - // Pichu - [SPECIES_PICHU_SPIKY_EARED] = sPichuLevelUpLearnset, - // Unown - [SPECIES_UNOWN_B] = sUnownLevelUpLearnset, - [SPECIES_UNOWN_C] = sUnownLevelUpLearnset, - [SPECIES_UNOWN_D] = sUnownLevelUpLearnset, - [SPECIES_UNOWN_E] = sUnownLevelUpLearnset, - [SPECIES_UNOWN_F] = sUnownLevelUpLearnset, - [SPECIES_UNOWN_G] = sUnownLevelUpLearnset, - [SPECIES_UNOWN_H] = sUnownLevelUpLearnset, - [SPECIES_UNOWN_I] = sUnownLevelUpLearnset, - [SPECIES_UNOWN_J] = sUnownLevelUpLearnset, - [SPECIES_UNOWN_K] = sUnownLevelUpLearnset, - [SPECIES_UNOWN_L] = sUnownLevelUpLearnset, - [SPECIES_UNOWN_M] = sUnownLevelUpLearnset, - [SPECIES_UNOWN_N] = sUnownLevelUpLearnset, - [SPECIES_UNOWN_O] = sUnownLevelUpLearnset, - [SPECIES_UNOWN_P] = sUnownLevelUpLearnset, - [SPECIES_UNOWN_Q] = sUnownLevelUpLearnset, - [SPECIES_UNOWN_R] = sUnownLevelUpLearnset, - [SPECIES_UNOWN_S] = sUnownLevelUpLearnset, - [SPECIES_UNOWN_T] = sUnownLevelUpLearnset, - [SPECIES_UNOWN_U] = sUnownLevelUpLearnset, - [SPECIES_UNOWN_V] = sUnownLevelUpLearnset, - [SPECIES_UNOWN_W] = sUnownLevelUpLearnset, - [SPECIES_UNOWN_X] = sUnownLevelUpLearnset, - [SPECIES_UNOWN_Y] = sUnownLevelUpLearnset, - [SPECIES_UNOWN_Z] = sUnownLevelUpLearnset, - [SPECIES_UNOWN_EMARK] = sUnownLevelUpLearnset, - [SPECIES_UNOWN_QMARK] = sUnownLevelUpLearnset, - // Castform - [SPECIES_CASTFORM_SUNNY] = sCastformLevelUpLearnset, - [SPECIES_CASTFORM_RAINY] = sCastformLevelUpLearnset, - [SPECIES_CASTFORM_SNOWY] = sCastformLevelUpLearnset, - // Deoxys - [SPECIES_DEOXYS_ATTACK] = sDeoxysAttackLevelUpLearnset, - [SPECIES_DEOXYS_DEFENSE] = sDeoxysDefenseLevelUpLearnset, - [SPECIES_DEOXYS_SPEED] = sDeoxysSpeedLevelUpLearnset, -#if P_GEN_4_POKEMON == TRUE - // Burmy - [SPECIES_BURMY_SANDY_CLOAK] = sBurmyLevelUpLearnset, - [SPECIES_BURMY_TRASH_CLOAK] = sBurmyLevelUpLearnset, - // Wormadam - [SPECIES_WORMADAM_SANDY_CLOAK] = sWormadamSandyCloakLevelUpLearnset, - [SPECIES_WORMADAM_TRASH_CLOAK] = sWormadamTrashCloakLevelUpLearnset, - // Cherrim - [SPECIES_CHERRIM_SUNSHINE] = sCherrimLevelUpLearnset, - // Shellos - [SPECIES_SHELLOS_EAST_SEA] = sShellosLevelUpLearnset, - // Gastrodon - [SPECIES_GASTRODON_EAST_SEA] = sGastrodonLevelUpLearnset, - // Rotom - [SPECIES_ROTOM_HEAT] = sRotomLevelUpLearnset, - [SPECIES_ROTOM_WASH] = sRotomLevelUpLearnset, - [SPECIES_ROTOM_FROST] = sRotomLevelUpLearnset, - [SPECIES_ROTOM_FAN] = sRotomLevelUpLearnset, - [SPECIES_ROTOM_MOW] = sRotomLevelUpLearnset, - // Origin Forme - [SPECIES_DIALGA_ORIGIN] = sDialgaLevelUpLearnset, - [SPECIES_PALKIA_ORIGIN] = sPalkiaLevelUpLearnset, - [SPECIES_GIRATINA_ORIGIN] = sGiratinaLevelUpLearnset, - // Shaymin - [SPECIES_SHAYMIN_SKY] = sShayminSkyLevelUpLearnset, - // Arceus - [SPECIES_ARCEUS_FIGHTING] = sArceusLevelUpLearnset, - [SPECIES_ARCEUS_FLYING] = sArceusLevelUpLearnset, - [SPECIES_ARCEUS_POISON] = sArceusLevelUpLearnset, - [SPECIES_ARCEUS_GROUND] = sArceusLevelUpLearnset, - [SPECIES_ARCEUS_ROCK] = sArceusLevelUpLearnset, - [SPECIES_ARCEUS_BUG] = sArceusLevelUpLearnset, - [SPECIES_ARCEUS_GHOST] = sArceusLevelUpLearnset, - [SPECIES_ARCEUS_STEEL] = sArceusLevelUpLearnset, - [SPECIES_ARCEUS_FIRE] = sArceusLevelUpLearnset, - [SPECIES_ARCEUS_WATER] = sArceusLevelUpLearnset, - [SPECIES_ARCEUS_GRASS] = sArceusLevelUpLearnset, - [SPECIES_ARCEUS_ELECTRIC] = sArceusLevelUpLearnset, - [SPECIES_ARCEUS_PSYCHIC] = sArceusLevelUpLearnset, - [SPECIES_ARCEUS_ICE] = sArceusLevelUpLearnset, - [SPECIES_ARCEUS_DRAGON] = sArceusLevelUpLearnset, - [SPECIES_ARCEUS_DARK] = sArceusLevelUpLearnset, - [SPECIES_ARCEUS_FAIRY] = sArceusLevelUpLearnset, -#endif -#if P_GEN_5_POKEMON == TRUE - // Basculin - [SPECIES_BASCULIN_BLUE_STRIPED] = sBasculinLevelUpLearnset, - [SPECIES_BASCULIN_WHITE_STRIPED] = sBasculinLevelUpLearnset, - // Darmanitan - [SPECIES_DARMANITAN_ZEN_MODE] = sDarmanitanLevelUpLearnset, - [SPECIES_DARMANITAN_GALARIAN_ZEN_MODE] = sDarmanitanGalarianLevelUpLearnset, - // Deerling - [SPECIES_DEERLING_SUMMER] = sDeerlingLevelUpLearnset, - [SPECIES_DEERLING_AUTUMN] = sDeerlingLevelUpLearnset, - [SPECIES_DEERLING_WINTER] = sDeerlingLevelUpLearnset, - // Sawsbuck - [SPECIES_SAWSBUCK_SUMMER] = sSawsbuckLevelUpLearnset, - [SPECIES_SAWSBUCK_AUTUMN] = sSawsbuckLevelUpLearnset, - [SPECIES_SAWSBUCK_WINTER] = sSawsbuckLevelUpLearnset, - // Therian Forms - [SPECIES_TORNADUS_THERIAN] = sTornadusLevelUpLearnset, - [SPECIES_THUNDURUS_THERIAN] = sThundurusLevelUpLearnset, - [SPECIES_LANDORUS_THERIAN] = sLandorusLevelUpLearnset, - // Kyurem - [SPECIES_KYUREM_WHITE] = sKyuremWhiteLevelUpLearnset, - [SPECIES_KYUREM_BLACK] = sKyuremBlackLevelUpLearnset, - // Keldeo - [SPECIES_KELDEO_RESOLUTE] = sKeldeoLevelUpLearnset, - // Meloetta - [SPECIES_MELOETTA_PIROUETTE] = sMeloettaLevelUpLearnset, - // Genesect - [SPECIES_GENESECT_DOUSE_DRIVE] = sGenesectLevelUpLearnset, - [SPECIES_GENESECT_SHOCK_DRIVE] = sGenesectLevelUpLearnset, - [SPECIES_GENESECT_BURN_DRIVE] = sGenesectLevelUpLearnset, - [SPECIES_GENESECT_CHILL_DRIVE] = sGenesectLevelUpLearnset, -#endif -#if P_GEN_6_POKEMON == TRUE - // Greninja - [SPECIES_GRENINJA_BATTLE_BOND] = sGreninjaLevelUpLearnset, - [SPECIES_GRENINJA_ASH] = sGreninjaLevelUpLearnset, - // Vivillon - [SPECIES_VIVILLON_POLAR] = sVivillonLevelUpLearnset, - [SPECIES_VIVILLON_TUNDRA] = sVivillonLevelUpLearnset, - [SPECIES_VIVILLON_CONTINENTAL] = sVivillonLevelUpLearnset, - [SPECIES_VIVILLON_GARDEN] = sVivillonLevelUpLearnset, - [SPECIES_VIVILLON_ELEGANT] = sVivillonLevelUpLearnset, - [SPECIES_VIVILLON_MEADOW] = sVivillonLevelUpLearnset, - [SPECIES_VIVILLON_MODERN] = sVivillonLevelUpLearnset, - [SPECIES_VIVILLON_MARINE] = sVivillonLevelUpLearnset, - [SPECIES_VIVILLON_ARCHIPELAGO] = sVivillonLevelUpLearnset, - [SPECIES_VIVILLON_HIGH_PLAINS] = sVivillonLevelUpLearnset, - [SPECIES_VIVILLON_SANDSTORM] = sVivillonLevelUpLearnset, - [SPECIES_VIVILLON_RIVER] = sVivillonLevelUpLearnset, - [SPECIES_VIVILLON_MONSOON] = sVivillonLevelUpLearnset, - [SPECIES_VIVILLON_SAVANNA] = sVivillonLevelUpLearnset, - [SPECIES_VIVILLON_SUN] = sVivillonLevelUpLearnset, - [SPECIES_VIVILLON_OCEAN] = sVivillonLevelUpLearnset, - [SPECIES_VIVILLON_JUNGLE] = sVivillonLevelUpLearnset, - [SPECIES_VIVILLON_FANCY] = sVivillonLevelUpLearnset, - [SPECIES_VIVILLON_POKE_BALL] = sVivillonLevelUpLearnset, - // Flabébé - [SPECIES_FLABEBE_YELLOW_FLOWER] = sFlabebeLevelUpLearnset, - [SPECIES_FLABEBE_ORANGE_FLOWER] = sFlabebeLevelUpLearnset, - [SPECIES_FLABEBE_BLUE_FLOWER] = sFlabebeLevelUpLearnset, - [SPECIES_FLABEBE_WHITE_FLOWER] = sFlabebeLevelUpLearnset, - // Floette - [SPECIES_FLOETTE_YELLOW_FLOWER] = sFloetteLevelUpLearnset, - [SPECIES_FLOETTE_ORANGE_FLOWER] = sFloetteLevelUpLearnset, - [SPECIES_FLOETTE_BLUE_FLOWER] = sFloetteLevelUpLearnset, - [SPECIES_FLOETTE_WHITE_FLOWER] = sFloetteLevelUpLearnset, - [SPECIES_FLOETTE_ETERNAL_FLOWER] = sFloetteEternalFlowerLevelUpLearnset, - // Florges - [SPECIES_FLORGES_YELLOW_FLOWER] = sFlorgesLevelUpLearnset, - [SPECIES_FLORGES_ORANGE_FLOWER] = sFlorgesLevelUpLearnset, - [SPECIES_FLORGES_BLUE_FLOWER] = sFlorgesLevelUpLearnset, - [SPECIES_FLORGES_WHITE_FLOWER] = sFlorgesLevelUpLearnset, - //Furfrou - [SPECIES_FURFROU_HEART_TRIM] = sFurfrouLevelUpLearnset, - [SPECIES_FURFROU_STAR_TRIM] = sFurfrouLevelUpLearnset, - [SPECIES_FURFROU_DIAMOND_TRIM] = sFurfrouLevelUpLearnset, - [SPECIES_FURFROU_DEBUTANTE_TRIM] = sFurfrouLevelUpLearnset, - [SPECIES_FURFROU_MATRON_TRIM] = sFurfrouLevelUpLearnset, - [SPECIES_FURFROU_DANDY_TRIM] = sFurfrouLevelUpLearnset, - [SPECIES_FURFROU_LA_REINE_TRIM] = sFurfrouLevelUpLearnset, - [SPECIES_FURFROU_KABUKI_TRIM] = sFurfrouLevelUpLearnset, - [SPECIES_FURFROU_PHARAOH_TRIM] = sFurfrouLevelUpLearnset, - // Meowstic - [SPECIES_MEOWSTIC_FEMALE] = sMeowsticFemaleLevelUpLearnset, - // Aegislash - [SPECIES_AEGISLASH_BLADE] = sAegislashLevelUpLearnset, - // Pumpkaboo - [SPECIES_PUMPKABOO_SMALL] = sPumpkabooLevelUpLearnset, - [SPECIES_PUMPKABOO_LARGE] = sPumpkabooLevelUpLearnset, - [SPECIES_PUMPKABOO_SUPER] = sPumpkabooLevelUpLearnset, - // Gourgeist - [SPECIES_GOURGEIST_SMALL] = sGourgeistLevelUpLearnset, - [SPECIES_GOURGEIST_LARGE] = sGourgeistLevelUpLearnset, - [SPECIES_GOURGEIST_SUPER] = sGourgeistLevelUpLearnset, - // Xerneas - [SPECIES_XERNEAS_ACTIVE] = sXerneasLevelUpLearnset, - // Zygarde - [SPECIES_ZYGARDE_10_AURA_BREAK] = sZygardeLevelUpLearnset, - [SPECIES_ZYGARDE_10_POWER_CONSTRUCT] = sZygardeLevelUpLearnset, - [SPECIES_ZYGARDE_50_POWER_CONSTRUCT] = sZygardeLevelUpLearnset, - [SPECIES_ZYGARDE_COMPLETE] = sZygardeLevelUpLearnset, - // Hoopa - [SPECIES_HOOPA_UNBOUND] = sHoopaUnboundLevelUpLearnset, -#endif -#if P_GEN_7_POKEMON == TRUE - // Oricorio - [SPECIES_ORICORIO_POM_POM] = sOricorioLevelUpLearnset, - [SPECIES_ORICORIO_PAU] = sOricorioLevelUpLearnset, - [SPECIES_ORICORIO_SENSU] = sOricorioLevelUpLearnset, - // Rockruff - [SPECIES_ROCKRUFF_OWN_TEMPO] = sRockruffLevelUpLearnset, - // Lycanroc - [SPECIES_LYCANROC_MIDNIGHT] = sLycanrocMidnightLevelUpLearnset, - [SPECIES_LYCANROC_DUSK] = sLycanrocDuskLevelUpLearnset, - // Wishiwashi - [SPECIES_WISHIWASHI_SCHOOL] = sWishiwashiLevelUpLearnset, - // Silvally - [SPECIES_SILVALLY_FIGHTING] = sSilvallyLevelUpLearnset, - [SPECIES_SILVALLY_FLYING] = sSilvallyLevelUpLearnset, - [SPECIES_SILVALLY_POISON] = sSilvallyLevelUpLearnset, - [SPECIES_SILVALLY_GROUND] = sSilvallyLevelUpLearnset, - [SPECIES_SILVALLY_ROCK] = sSilvallyLevelUpLearnset, - [SPECIES_SILVALLY_BUG] = sSilvallyLevelUpLearnset, - [SPECIES_SILVALLY_GHOST] = sSilvallyLevelUpLearnset, - [SPECIES_SILVALLY_STEEL] = sSilvallyLevelUpLearnset, - [SPECIES_SILVALLY_FIRE] = sSilvallyLevelUpLearnset, - [SPECIES_SILVALLY_WATER] = sSilvallyLevelUpLearnset, - [SPECIES_SILVALLY_GRASS] = sSilvallyLevelUpLearnset, - [SPECIES_SILVALLY_ELECTRIC] = sSilvallyLevelUpLearnset, - [SPECIES_SILVALLY_PSYCHIC] = sSilvallyLevelUpLearnset, - [SPECIES_SILVALLY_ICE] = sSilvallyLevelUpLearnset, - [SPECIES_SILVALLY_DRAGON] = sSilvallyLevelUpLearnset, - [SPECIES_SILVALLY_DARK] = sSilvallyLevelUpLearnset, - [SPECIES_SILVALLY_FAIRY] = sSilvallyLevelUpLearnset, - // Minior - [SPECIES_MINIOR_METEOR_ORANGE] = sMiniorLevelUpLearnset, - [SPECIES_MINIOR_METEOR_YELLOW] = sMiniorLevelUpLearnset, - [SPECIES_MINIOR_METEOR_GREEN] = sMiniorLevelUpLearnset, - [SPECIES_MINIOR_METEOR_BLUE] = sMiniorLevelUpLearnset, - [SPECIES_MINIOR_METEOR_INDIGO] = sMiniorLevelUpLearnset, - [SPECIES_MINIOR_METEOR_VIOLET] = sMiniorLevelUpLearnset, - [SPECIES_MINIOR_CORE_RED] = sMiniorLevelUpLearnset, - [SPECIES_MINIOR_CORE_ORANGE] = sMiniorLevelUpLearnset, - [SPECIES_MINIOR_CORE_YELLOW] = sMiniorLevelUpLearnset, - [SPECIES_MINIOR_CORE_GREEN] = sMiniorLevelUpLearnset, - [SPECIES_MINIOR_CORE_BLUE] = sMiniorLevelUpLearnset, - [SPECIES_MINIOR_CORE_INDIGO] = sMiniorLevelUpLearnset, - [SPECIES_MINIOR_CORE_VIOLET] = sMiniorLevelUpLearnset, - // Mimikyu - [SPECIES_MIMIKYU_BUSTED] = sMimikyuLevelUpLearnset, - // Necrozma - [SPECIES_NECROZMA_DUSK_MANE] = sNecrozmaLevelUpLearnset, - [SPECIES_NECROZMA_DAWN_WINGS] = sNecrozmaLevelUpLearnset, - [SPECIES_NECROZMA_ULTRA] = sNecrozmaLevelUpLearnset, - // Magearna - [SPECIES_MAGEARNA_ORIGINAL_COLOR] = sMagearnaLevelUpLearnset, -#endif -#if P_GEN_8_POKEMON == TRUE - // Cramorant - [SPECIES_CRAMORANT_GULPING] = sCramorantLevelUpLearnset, - [SPECIES_CRAMORANT_GORGING] = sCramorantLevelUpLearnset, - // Toxtricity - [SPECIES_TOXTRICITY_LOW_KEY] = sToxtricityLowKeyLevelUpLearnset, - // Sinistea - [SPECIES_SINISTEA_ANTIQUE] = sSinisteaLevelUpLearnset, - // Polteageist - [SPECIES_POLTEAGEIST_ANTIQUE] = sPolteageistLevelUpLearnset, - // Alcremie - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL] = sAlcremieLevelUpLearnset, - [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL] = sAlcremieLevelUpLearnset, - // Eiscue - [SPECIES_EISCUE_NOICE_FACE] = sEiscueLevelUpLearnset, - // Indeedee - [SPECIES_INDEEDEE_FEMALE] = sIndeedeeFemaleLevelUpLearnset, - // Morpeko - [SPECIES_MORPEKO_HANGRY] = sMorpekoLevelUpLearnset, - // Zacian - [SPECIES_ZACIAN_CROWNED_SWORD] = sZacianLevelUpLearnset, - // Zamazenta - [SPECIES_ZAMAZENTA_CROWNED_SHIELD] = sZamazentaLevelUpLearnset, - // Eternatus - [SPECIES_ETERNATUS_ETERNAMAX] = sEternatusLevelUpLearnset, - // Urshifu - [SPECIES_URSHIFU_RAPID_STRIKE_STYLE] = sUrshifuRapidStrikeStyleLevelUpLearnset, - // Zarude - [SPECIES_ZARUDE_DADA] = sZarudeLevelUpLearnset, - // Calyrex - [SPECIES_CALYREX_ICE_RIDER] = sCalyrexIceRiderLevelUpLearnset, - [SPECIES_CALYREX_SHADOW_RIDER] = sCalyrexShadowRiderLevelUpLearnset, - // Enamorus - [SPECIES_ENAMORUS_THERIAN] = sEnamorusLevelUpLearnset, - // Basculegion - [SPECIES_BASCULEGION_FEMALE] = sBasculegionLevelUpLearnset, - // Gigantamax Forms - [SPECIES_VENUSAUR_GIGANTAMAX] = sVenusaurLevelUpLearnset, - [SPECIES_CHARIZARD_GIGANTAMAX] = sCharizardLevelUpLearnset, - [SPECIES_BLASTOISE_GIGANTAMAX] = sBlastoiseLevelUpLearnset, - [SPECIES_BUTTERFREE_GIGANTAMAX] = sButterfreeLevelUpLearnset, - [SPECIES_PIKACHU_GIGANTAMAX] = sPikachuLevelUpLearnset, - [SPECIES_MEOWTH_GIGANTAMAX] = sMeowthLevelUpLearnset, - [SPECIES_MACHAMP_GIGANTAMAX] = sMachampLevelUpLearnset, - [SPECIES_GENGAR_GIGANTAMAX] = sGengarLevelUpLearnset, - [SPECIES_KINGLER_GIGANTAMAX] = sKinglerLevelUpLearnset, - [SPECIES_LAPRAS_GIGANTAMAX] = sLaprasLevelUpLearnset, - [SPECIES_EEVEE_GIGANTAMAX] = sEeveeLevelUpLearnset, - [SPECIES_SNORLAX_GIGANTAMAX] = sSnorlaxLevelUpLearnset, - [SPECIES_GARBODOR_GIGANTAMAX] = sGarbodorLevelUpLearnset, - [SPECIES_MELMETAL_GIGANTAMAX] = sMelmetalLevelUpLearnset, - [SPECIES_RILLABOOM_GIGANTAMAX] = sRillaboomLevelUpLearnset, - [SPECIES_CINDERACE_GIGANTAMAX] = sCinderaceLevelUpLearnset, - [SPECIES_INTELEON_GIGANTAMAX] = sInteleonLevelUpLearnset, - [SPECIES_CORVIKNIGHT_GIGANTAMAX] = sCorviknightLevelUpLearnset, - [SPECIES_ORBEETLE_GIGANTAMAX] = sOrbeetleLevelUpLearnset, - [SPECIES_DREDNAW_GIGANTAMAX] = sDrednawLevelUpLearnset, - [SPECIES_COALOSSAL_GIGANTAMAX] = sCoalossalLevelUpLearnset, - [SPECIES_FLAPPLE_GIGANTAMAX] = sFlappleLevelUpLearnset, - [SPECIES_APPLETUN_GIGANTAMAX] = sAppletunLevelUpLearnset, - [SPECIES_SANDACONDA_GIGANTAMAX] = sSandacondaLevelUpLearnset, - [SPECIES_TOXTRICITY_AMPED_GIGANTAMAX] = sToxtricityAmpedLevelUpLearnset, - [SPECIES_TOXTRICITY_LOW_KEY_GIGANTAMAX] = sToxtricityLowKeyLevelUpLearnset, - [SPECIES_CENTISKORCH_GIGANTAMAX] = sCentiskorchLevelUpLearnset, - [SPECIES_HATTERENE_GIGANTAMAX] = sHattereneLevelUpLearnset, - [SPECIES_GRIMMSNARL_GIGANTAMAX] = sGrimmsnarlLevelUpLearnset, - [SPECIES_ALCREMIE_GIGANTAMAX] = sAlcremieLevelUpLearnset, - [SPECIES_COPPERAJAH_GIGANTAMAX] = sCopperajahLevelUpLearnset, - [SPECIES_DURALUDON_GIGANTAMAX] = sDuraludonLevelUpLearnset, - [SPECIES_URSHIFU_SINGLE_STRIKE_STYLE_GIGANTAMAX] = sUrshifuSingleStrikeStyleLevelUpLearnset, - [SPECIES_URSHIFU_RAPID_STRIKE_STYLE_GIGANTAMAX] = sUrshifuRapidStrikeStyleLevelUpLearnset, -#endif -}; diff --git a/src/data/pokemon/level_up_learnsets.h b/src/data/pokemon/level_up_learnsets.h index 092a71191867..1cfa0157d9d4 100644 --- a/src/data/pokemon/level_up_learnsets.h +++ b/src/data/pokemon/level_up_learnsets.h @@ -18099,92 +18099,164 @@ static const struct LevelUpMove sCalyrexLevelUpLearnset[] = { }; static const struct LevelUpMove sWyrdeerLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PSYSHIELD_BASH), LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 5, MOVE_CONFUSION), - LEVEL_UP_MOVE( 9, MOVE_HYPNOSIS), - LEVEL_UP_MOVE(15, MOVE_CALM_MIND), - LEVEL_UP_MOVE(21, MOVE_PSYSHIELD_BASH), - LEVEL_UP_MOVE(29, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE( 3, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(13, MOVE_STOMP), + LEVEL_UP_MOVE(16, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE(21, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(23, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(27, MOVE_CALM_MIND), + LEVEL_UP_MOVE(32, MOVE_ROLE_PLAY), LEVEL_UP_MOVE(37, MOVE_ZEN_HEADBUTT), - LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(49, MOVE_IMPRISON), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(62, MOVE_MEGAHORN), LEVEL_UP_END }; static const struct LevelUpMove sKleavorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_STONE_AXE), + LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 6, MOVE_SILVER_WIND), - LEVEL_UP_MOVE(11, MOVE_AERIAL_ACE), - LEVEL_UP_MOVE(14, MOVE_DOUBLE_HIT), - LEVEL_UP_MOVE(14, MOVE_STEALTH_ROCK), - LEVEL_UP_MOVE(18, MOVE_AIR_SLASH), - LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE(29, MOVE_STONE_AXE), - LEVEL_UP_MOVE(34, MOVE_X_SCISSOR), - LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE( 4, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 8, MOVE_FALSE_SWIPE), + LEVEL_UP_MOVE(12, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(16, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE(20, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(24, MOVE_SLASH), + LEVEL_UP_MOVE(28, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(40, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(44, MOVE_SWORDS_DANCE), LEVEL_UP_END }; static const struct LevelUpMove sUrsalunaLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 6, MOVE_BABY_DOLL_EYES), - LEVEL_UP_MOVE(11, MOVE_BULLDOZE), - LEVEL_UP_MOVE(18, MOVE_SLASH), - LEVEL_UP_MOVE(25, MOVE_PLAY_ROUGH), - LEVEL_UP_MOVE(34, MOVE_HIGH_HORSEPOWER), - LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE(47, MOVE_HEADLONG_RUSH), + LEVEL_UP_MOVE( 0, MOVE_HEADLONG_RUSH), + LEVEL_UP_MOVE( 1, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE( 1, MOVE_COVET), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(13, MOVE_PAYBACK), + LEVEL_UP_MOVE(17, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE(22, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(29, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(35, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(41, MOVE_REST), + LEVEL_UP_MOVE(41, MOVE_SNORE), + LEVEL_UP_MOVE(48, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(56, MOVE_THRASH), + LEVEL_UP_MOVE(64, MOVE_HAMMER_ARM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sUrsalunaBloodmoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_HEADLONG_RUSH), + LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(13, MOVE_PAYBACK), + LEVEL_UP_MOVE(17, MOVE_HARDEN), + LEVEL_UP_MOVE(22, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_PLAY_NICE), + LEVEL_UP_MOVE(35, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(41, MOVE_REST), + LEVEL_UP_MOVE(41, MOVE_SNORE), + LEVEL_UP_MOVE(48, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(56, MOVE_MOONBLAST), + LEVEL_UP_MOVE(64, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE(70, MOVE_BLOOD_MOON), LEVEL_UP_END }; static const struct LevelUpMove sBasculegionLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 6, MOVE_AQUA_JET), - LEVEL_UP_MOVE(11, MOVE_BITE), - LEVEL_UP_MOVE(11, MOVE_HEX), - LEVEL_UP_MOVE(18, MOVE_ZEN_HEADBUTT), - LEVEL_UP_MOVE(25, MOVE_CRUNCH), - LEVEL_UP_MOVE(25, MOVE_SHADOW_BALL), - LEVEL_UP_MOVE(34, MOVE_WAVE_CRASH), - LEVEL_UP_MOVE(43, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE( 4, MOVE_TACKLE), + LEVEL_UP_MOVE( 8, MOVE_FLAIL), + LEVEL_UP_MOVE(12, MOVE_AQUA_JET), + LEVEL_UP_MOVE(16, MOVE_BITE), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_SOAK), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(40, MOVE_UPROAR), + LEVEL_UP_MOVE(44, MOVE_WAVE_CRASH), + LEVEL_UP_MOVE(48, MOVE_THRASH), + LEVEL_UP_MOVE(52, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(56, MOVE_HEAD_SMASH), LEVEL_UP_END }; static const struct LevelUpMove sSneaslerLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), - LEVEL_UP_MOVE(11, MOVE_DIRE_CLAW), - LEVEL_UP_MOVE(11, MOVE_SWIFT), - LEVEL_UP_MOVE(18, MOVE_SLASH), - LEVEL_UP_MOVE(25, MOVE_POISON_JAB), - LEVEL_UP_MOVE(34, MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE( 0, MOVE_DIRE_CLAW), + LEVEL_UP_MOVE( 1, MOVE_FLING), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 6, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(18, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(24, MOVE_POISON_JAB), + LEVEL_UP_MOVE(30, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(36, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(42, MOVE_SLASH), + LEVEL_UP_MOVE(48, MOVE_AGILITY), + LEVEL_UP_MOVE(54, MOVE_SCREECH), + LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT), LEVEL_UP_END }; static const struct LevelUpMove sOverqwilLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_POISON_STING), - LEVEL_UP_MOVE( 5, MOVE_SPIKES), - LEVEL_UP_MOVE( 9, MOVE_PIN_MISSILE), - LEVEL_UP_MOVE(15, MOVE_BARB_BARRAGE), - LEVEL_UP_MOVE(21, MOVE_WATER_PULSE), - LEVEL_UP_MOVE(26, MOVE_DARK_PULSE), - LEVEL_UP_MOVE(29, MOVE_POISON_JAB), - LEVEL_UP_MOVE(37, MOVE_AQUA_TAIL), - LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE(57, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_FELL_STINGER), + LEVEL_UP_MOVE(16, MOVE_MINIMIZE), + LEVEL_UP_MOVE(20, MOVE_SPIKES), + LEVEL_UP_MOVE(24, MOVE_BRINE), + LEVEL_UP_MOVE(28, MOVE_BARB_BARRAGE), + LEVEL_UP_MOVE(32, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(36, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(40, MOVE_STOCKPILE), + LEVEL_UP_MOVE(40, MOVE_SPIT_UP), + LEVEL_UP_MOVE(44, MOVE_TOXIC), + LEVEL_UP_MOVE(48, MOVE_CRUNCH), + LEVEL_UP_MOVE(52, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(56, MOVE_DESTINY_BOND), LEVEL_UP_END }; static const struct LevelUpMove sEnamorusLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 7, MOVE_BITE), - LEVEL_UP_MOVE(11, MOVE_TWISTER), - LEVEL_UP_MOVE(14, MOVE_DRAINING_KISS), - LEVEL_UP_MOVE(22, MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE(31, MOVE_EXTRASENSORY), - LEVEL_UP_MOVE(41, MOVE_CRUNCH), - LEVEL_UP_MOVE(47, MOVE_MOONBLAST), - LEVEL_UP_MOVE( 1, MOVE_SPRINGTIDE_STORM), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 5, MOVE_TORMENT), + LEVEL_UP_MOVE(10, MOVE_FLATTER), + LEVEL_UP_MOVE(15, MOVE_TWISTER), + LEVEL_UP_MOVE(20, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(25, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_IMPRISON), + LEVEL_UP_MOVE(35, MOVE_MYSTICAL_FIRE), + LEVEL_UP_MOVE(40, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(45, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(50, MOVE_UPROAR), + LEVEL_UP_MOVE(55, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(60, MOVE_HEALING_WISH), + LEVEL_UP_MOVE(65, MOVE_MOONBLAST), + LEVEL_UP_MOVE(70, MOVE_OUTRAGE), + LEVEL_UP_MOVE(75, MOVE_SPRINGTIDE_STORM), LEVEL_UP_END }; #endif @@ -18946,225 +19018,420 @@ static const struct LevelUpMove sStunfiskGalarianLevelUpLearnset[] = { #endif static const struct LevelUpMove sGrowlitheHisuianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 5, MOVE_EMBER), - LEVEL_UP_MOVE( 9, MOVE_BITE), - LEVEL_UP_MOVE(15, MOVE_FIRE_FANG), - LEVEL_UP_MOVE(21, MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE(29, MOVE_CRUNCH), - LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE(47, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 4, MOVE_HOWL), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(16, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(24, MOVE_FIRE_FANG), + LEVEL_UP_MOVE(28, MOVE_RETALIATE), + LEVEL_UP_MOVE(32, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(40, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(44, MOVE_ROAR), + LEVEL_UP_MOVE(48, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(52, MOVE_REVERSAL), + LEVEL_UP_MOVE(56, MOVE_FLARE_BLITZ), LEVEL_UP_END }; static const struct LevelUpMove sArcanineHisuianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 5, MOVE_EMBER), - LEVEL_UP_MOVE( 9, MOVE_BITE), - LEVEL_UP_MOVE(15, MOVE_FIRE_FANG), - LEVEL_UP_MOVE(21, MOVE_ROCK_SLIDE), - LEVEL_UP_MOVE(29, MOVE_CRUNCH), - LEVEL_UP_MOVE(29, MOVE_RAGING_FURY), - LEVEL_UP_MOVE(37, MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE(47, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE( 0, MOVE_EXTREME_SPEED), + LEVEL_UP_MOVE( 1, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE( 1, MOVE_HOWL), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_CRUNCH), + LEVEL_UP_MOVE( 1, MOVE_REVERSAL), + LEVEL_UP_MOVE( 1, MOVE_RETALIATE), + LEVEL_UP_MOVE( 1, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE( 1, MOVE_AGILITY), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE( 5, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(64, MOVE_RAGING_FURY), LEVEL_UP_END }; static const struct LevelUpMove sVoltorbHisuianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), - LEVEL_UP_MOVE( 5, MOVE_TACKLE), - LEVEL_UP_MOVE( 9, MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE(15, MOVE_SPARK), - LEVEL_UP_MOVE(21, MOVE_ENERGY_BALL), - LEVEL_UP_MOVE(29, MOVE_THUNDERBOLT), - LEVEL_UP_MOVE(37, MOVE_THUNDER), - LEVEL_UP_MOVE(47, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 6, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 9, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(11, MOVE_ROLLOUT), + LEVEL_UP_MOVE(13, MOVE_SCREECH), + LEVEL_UP_MOVE(16, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(20, MOVE_SWIFT), + LEVEL_UP_MOVE(22, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(26, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(29, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(34, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(34, MOVE_DISCHARGE), + LEVEL_UP_MOVE(41, MOVE_EXPLOSION), + LEVEL_UP_MOVE(46, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(50, MOVE_GRASSY_TERRAIN), LEVEL_UP_END }; static const struct LevelUpMove sElectrodeHisuianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), - LEVEL_UP_MOVE( 5, MOVE_TACKLE), - LEVEL_UP_MOVE( 9, MOVE_THUNDER_WAVE), - LEVEL_UP_MOVE(15, MOVE_SPARK), - LEVEL_UP_MOVE(21, MOVE_ENERGY_BALL), - LEVEL_UP_MOVE(29, MOVE_THUNDERBOLT), - LEVEL_UP_MOVE(37, MOVE_THUNDER), - LEVEL_UP_MOVE(47, MOVE_CHLOROBLAST), - LEVEL_UP_MOVE(47, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE( 0, MOVE_CHLOROBLAST), + LEVEL_UP_MOVE( 1, MOVE_CHARGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 6, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 9, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(11, MOVE_ROLLOUT), + LEVEL_UP_MOVE(13, MOVE_SCREECH), + LEVEL_UP_MOVE(16, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(20, MOVE_SWIFT), + LEVEL_UP_MOVE(22, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE(26, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(29, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(34, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(34, MOVE_DISCHARGE), + LEVEL_UP_MOVE(41, MOVE_EXPLOSION), + LEVEL_UP_MOVE(46, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(50, MOVE_GRASSY_TERRAIN), LEVEL_UP_END }; static const struct LevelUpMove sTyphlosionHisuianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_HEX), - LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 6, MOVE_EMBER), - LEVEL_UP_MOVE(11, MOVE_ROLLOUT), - LEVEL_UP_MOVE(18, MOVE_FLAME_WHEEL), - LEVEL_UP_MOVE(25, MOVE_SWIFT), - LEVEL_UP_MOVE(34, MOVE_FLAMETHROWER), - LEVEL_UP_MOVE(40, MOVE_INFERNAL_PARADE), - LEVEL_UP_MOVE(43, MOVE_OVERHEAT), - LEVEL_UP_MOVE(43, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE( 0, MOVE_INFERNAL_PARADE), + LEVEL_UP_MOVE( 1, MOVE_GYRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_ERUPTION), + LEVEL_UP_MOVE( 1, MOVE_SMOKESCREEN), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(13, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(24, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE(31, MOVE_SWIFT), + LEVEL_UP_MOVE(35, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(43, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(48, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_INFERNO), + LEVEL_UP_MOVE(61, MOVE_ROLLOUT), + LEVEL_UP_MOVE(74, MOVE_OVERHEAT), LEVEL_UP_END }; static const struct LevelUpMove sQwilfishHisuianLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_POISON_STING), - LEVEL_UP_MOVE( 5, MOVE_SPIKES), - LEVEL_UP_MOVE( 9, MOVE_PIN_MISSILE), - LEVEL_UP_MOVE(15, MOVE_BARB_BARRAGE), - LEVEL_UP_MOVE(21, MOVE_WATER_PULSE), - LEVEL_UP_MOVE(26, MOVE_DARK_PULSE), - LEVEL_UP_MOVE(29, MOVE_POISON_JAB), - LEVEL_UP_MOVE(37, MOVE_AQUA_TAIL), - LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE(57, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE( 4, MOVE_HARDEN), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE(12, MOVE_FELL_STINGER), + LEVEL_UP_MOVE(16, MOVE_MINIMIZE), + LEVEL_UP_MOVE(20, MOVE_SPIKES), + LEVEL_UP_MOVE(24, MOVE_BRINE), + LEVEL_UP_MOVE(28, MOVE_BARB_BARRAGE), + LEVEL_UP_MOVE(32, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(36, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(40, MOVE_STOCKPILE), + LEVEL_UP_MOVE(40, MOVE_SPIT_UP), + LEVEL_UP_MOVE(44, MOVE_TOXIC), + LEVEL_UP_MOVE(48, MOVE_CRUNCH), + LEVEL_UP_MOVE(52, MOVE_ACUPRESSURE), + LEVEL_UP_MOVE(56, MOVE_DESTINY_BOND), LEVEL_UP_END }; static const struct LevelUpMove sSneaselHisuianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), - LEVEL_UP_MOVE(11, MOVE_SWIFT), - LEVEL_UP_MOVE(18, MOVE_SLASH), - LEVEL_UP_MOVE(25, MOVE_POISON_JAB), - LEVEL_UP_MOVE(34, MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE(43, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 6, MOVE_TAUNT), + LEVEL_UP_MOVE(12, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(18, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(24, MOVE_POISON_JAB), + LEVEL_UP_MOVE(30, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(36, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(42, MOVE_SLASH), + LEVEL_UP_MOVE(48, MOVE_AGILITY), + LEVEL_UP_MOVE(54, MOVE_SCREECH), + LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT), LEVEL_UP_END }; #if P_GEN_5_POKEMON == TRUE static const struct LevelUpMove sSamurottHisuianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE( 0, MOVE_CEASELESS_EDGE), + LEVEL_UP_MOVE( 1, MOVE_SLASH), + LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 6, MOVE_AQUA_JET), - LEVEL_UP_MOVE(11, MOVE_SWORDS_DANCE), - LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), - LEVEL_UP_MOVE(21, MOVE_CEASELESS_EDGE), - LEVEL_UP_MOVE(25, MOVE_SLASH), - LEVEL_UP_MOVE(34, MOVE_AQUA_TAIL), - LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), - LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE(13, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(18, MOVE_RAZOR_SHELL), + LEVEL_UP_MOVE(21, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(29, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(34, MOVE_AQUA_JET), + LEVEL_UP_MOVE(39, MOVE_ENCORE), + LEVEL_UP_MOVE(46, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(51, MOVE_RETALIATE), + LEVEL_UP_MOVE(58, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(63, MOVE_HYDRO_PUMP), LEVEL_UP_END }; static const struct LevelUpMove sLilligantHisuianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE( 0, MOVE_VICTORY_DANCE), + LEVEL_UP_MOVE( 1, MOVE_TEETER_DANCE), + LEVEL_UP_MOVE( 1, MOVE_SOLAR_BLADE), + LEVEL_UP_MOVE( 1, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE( 1, MOVE_AFTER_YOU), + LEVEL_UP_MOVE( 1, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE( 1, MOVE_LEAF_STORM), + LEVEL_UP_MOVE( 1, MOVE_DEFOG), + LEVEL_UP_MOVE( 1, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE( 1, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE( 1, MOVE_MEGA_KICK), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 1, MOVE_SYNTHESIS), + LEVEL_UP_MOVE( 1, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE( 1, MOVE_SLEEP_POWDER), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_MEGA_DRAIN), LEVEL_UP_MOVE( 1, MOVE_ABSORB), - LEVEL_UP_MOVE( 5, MOVE_LEAFAGE), - LEVEL_UP_MOVE( 9, MOVE_STUN_SPORE), - LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), - LEVEL_UP_MOVE(21, MOVE_ENERGY_BALL), - LEVEL_UP_MOVE(29, MOVE_SLEEP_POWDER), - LEVEL_UP_MOVE(34, MOVE_DRAIN_PUNCH), - LEVEL_UP_MOVE(37, MOVE_LEAF_BLADE), - LEVEL_UP_MOVE(37, MOVE_RECOVER), - LEVEL_UP_MOVE(42, MOVE_VICTORY_DANCE), - LEVEL_UP_MOVE(47, MOVE_LEAF_STORM), - LEVEL_UP_MOVE(53, MOVE_PETAL_DANCE), - LEVEL_UP_MOVE(57, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 5, MOVE_AXE_KICK), LEVEL_UP_END }; static const struct LevelUpMove sZoruaHisuianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), - LEVEL_UP_MOVE( 6, MOVE_SNARL), - LEVEL_UP_MOVE(11, MOVE_SWIFT), - LEVEL_UP_MOVE(18, MOVE_BITTER_MALICE), - LEVEL_UP_MOVE(25, MOVE_SLASH), - LEVEL_UP_MOVE(34, MOVE_SHADOW_CLAW), - LEVEL_UP_MOVE(43, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_TORMENT), + LEVEL_UP_MOVE( 8, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(16, MOVE_CURSE), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(28, MOVE_SPITE), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(40, MOVE_BITTER_MALICE), + LEVEL_UP_MOVE(44, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(48, MOVE_FOUL_PLAY), LEVEL_UP_END }; static const struct LevelUpMove sZoroarkHisuianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), - LEVEL_UP_MOVE( 6, MOVE_SNARL), - LEVEL_UP_MOVE(11, MOVE_SWIFT), - LEVEL_UP_MOVE(18, MOVE_BITTER_MALICE), - LEVEL_UP_MOVE(25, MOVE_SLASH), - LEVEL_UP_MOVE(34, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 0, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_TORMENT), + LEVEL_UP_MOVE( 1, MOVE_U_TURN), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(12, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(16, MOVE_CURSE), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(28, MOVE_SPITE), + LEVEL_UP_MOVE(34, MOVE_AGILITY), LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL), - LEVEL_UP_MOVE(43, MOVE_NASTY_PLOT), - LEVEL_UP_MOVE(52, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(46, MOVE_BITTER_MALICE), + LEVEL_UP_MOVE(52, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(58, MOVE_FOUL_PLAY), LEVEL_UP_END }; static const struct LevelUpMove sBraviaryHisuianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), - LEVEL_UP_MOVE( 6, MOVE_AERIAL_ACE), - LEVEL_UP_MOVE(11, MOVE_TWISTER), - LEVEL_UP_MOVE(18, MOVE_SLASH), - LEVEL_UP_MOVE(20, MOVE_AIR_SLASH), - LEVEL_UP_MOVE(25, MOVE_ESPER_WING), - LEVEL_UP_MOVE(25, MOVE_ROOST), - LEVEL_UP_MOVE(34, MOVE_DOUBLE_EDGE), - LEVEL_UP_MOVE(43, MOVE_BRAVE_BIRD), - LEVEL_UP_MOVE(52, MOVE_HURRICANE), + LEVEL_UP_MOVE( 0, MOVE_ESPER_WING), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 1, MOVE_SKY_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_SUPERPOWER), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(18, MOVE_TAILWIND), + LEVEL_UP_MOVE(24, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(36, MOVE_SLASH), + LEVEL_UP_MOVE(42, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(48, MOVE_CRUSH_CLAW), + LEVEL_UP_MOVE(57, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(64, MOVE_DEFOG), + LEVEL_UP_MOVE(72, MOVE_THRASH), + LEVEL_UP_MOVE(80, MOVE_HURRICANE), LEVEL_UP_END }; #endif #if P_GEN_6_POKEMON == TRUE static const struct LevelUpMove sSliggooHisuianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_BUBBLE), - LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY), - LEVEL_UP_MOVE(11, MOVE_ACID_ARMOR), - LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), - LEVEL_UP_MOVE(25, MOVE_DRAGON_PULSE), - LEVEL_UP_MOVE(25, MOVE_IRON_HEAD), - LEVEL_UP_MOVE(34, MOVE_SHELTER), - LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE( 0, MOVE_SHELTER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(15, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_FLAIL), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(30, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(35, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(43, MOVE_CURSE), + LEVEL_UP_MOVE(49, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(56, MOVE_MUDDY_WATER), LEVEL_UP_END }; static const struct LevelUpMove sGoodraHisuianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 1, MOVE_BUBBLE), - LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY), - LEVEL_UP_MOVE(11, MOVE_ACID_ARMOR), - LEVEL_UP_MOVE(18, MOVE_WATER_PULSE), - LEVEL_UP_MOVE(25, MOVE_DRAGON_PULSE), - LEVEL_UP_MOVE(25, MOVE_IRON_HEAD), - LEVEL_UP_MOVE(34, MOVE_SHELTER), - LEVEL_UP_MOVE(43, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE( 0, MOVE_IRON_TAIL), + LEVEL_UP_MOVE( 1, MOVE_SHELTER), + LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 1, MOVE_FEINT), + LEVEL_UP_MOVE( 1, MOVE_TEARFUL_LOOK), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE(15, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_FLAIL), + LEVEL_UP_MOVE(25, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(30, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(35, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(43, MOVE_CURSE), + LEVEL_UP_MOVE(49, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(49, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(58, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(67, MOVE_HEAVY_SLAM), LEVEL_UP_END }; static const struct LevelUpMove sAvaluggHisuianLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), LEVEL_UP_MOVE( 1, MOVE_TACKLE), - LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), - LEVEL_UP_MOVE( 9, MOVE_ICE_SHARD), - LEVEL_UP_MOVE(15, MOVE_BITE), - LEVEL_UP_MOVE(21, MOVE_IRON_DEFENSE), - LEVEL_UP_MOVE(29, MOVE_CRUNCH), - LEVEL_UP_MOVE(29, MOVE_EARTH_POWER), - LEVEL_UP_MOVE(37, MOVE_BLIZZARD), - LEVEL_UP_MOVE(37, MOVE_MOUNTAIN_GALE), - LEVEL_UP_MOVE(47, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE( 9, MOVE_CURSE), + LEVEL_UP_MOVE(12, MOVE_ICY_WIND), + LEVEL_UP_MOVE(15, MOVE_PROTECT), + LEVEL_UP_MOVE(18, MOVE_AVALANCHE), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(24, MOVE_ICE_FANG), + LEVEL_UP_MOVE(27, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_RECOVER), + LEVEL_UP_MOVE(33, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(41, MOVE_BLIZZARD), + LEVEL_UP_MOVE(46, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(51, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(61, MOVE_MOUNTAIN_GALE), LEVEL_UP_END }; #endif #if P_GEN_7_POKEMON == TRUE static const struct LevelUpMove sDecidueyeHisuianLevelUpLearnset[] = { - LEVEL_UP_MOVE( 0, MOVE_ROCK_SMASH), - LEVEL_UP_MOVE( 1, MOVE_GUST), - LEVEL_UP_MOVE( 6, MOVE_LEAFAGE), - LEVEL_UP_MOVE(11, MOVE_ROOST), - LEVEL_UP_MOVE(18, MOVE_AERIAL_ACE), - LEVEL_UP_MOVE(21, MOVE_MAGICAL_LEAF), - LEVEL_UP_MOVE(25, MOVE_AIR_SLASH), - LEVEL_UP_MOVE(30, MOVE_AURA_SPHERE), - LEVEL_UP_MOVE(34, MOVE_LEAF_BLADE), - LEVEL_UP_MOVE(34, MOVE_TRIPLE_ARROWS), - LEVEL_UP_MOVE(40, MOVE_BRAVE_BIRD), - LEVEL_UP_MOVE(43, MOVE_LEAF_STORM), + LEVEL_UP_MOVE( 0, MOVE_TRIPLE_ARROWS), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_U_TURN), + LEVEL_UP_MOVE( 1, MOVE_LEAF_STORM), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 9, MOVE_PECK), + LEVEL_UP_MOVE(12, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE(15, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(20, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(25, MOVE_PLUCK), + LEVEL_UP_MOVE(30, MOVE_BULK_UP), + LEVEL_UP_MOVE(37, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(51, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(58, MOVE_BRAVE_BIRD), LEVEL_UP_END }; #endif +static const struct LevelUpMove sWooperPaldeanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), + LEVEL_UP_MOVE( 4, MOVE_TACKLE), + LEVEL_UP_MOVE( 8, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(12, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE(16, MOVE_SLAM), + LEVEL_UP_MOVE(21, MOVE_YAWN), + LEVEL_UP_MOVE(24, MOVE_POISON_JAB), + LEVEL_UP_MOVE(28, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(32, MOVE_AMNESIA), + LEVEL_UP_MOVE(36, MOVE_TOXIC), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTaurosPaldeanCombatBreedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(15, MOVE_ASSURANCE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(35, MOVE_RAGING_BULL), + LEVEL_UP_MOVE(40, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTaurosPaldeanBlazeBreedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(15, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(35, MOVE_RAGING_BULL), + LEVEL_UP_MOVE(40, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(55, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTaurosPaldeanAquaBreedLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(15, MOVE_AQUA_JET), + LEVEL_UP_MOVE(20, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(30, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(35, MOVE_RAGING_BULL), + LEVEL_UP_MOVE(40, MOVE_REST), + LEVEL_UP_MOVE(45, MOVE_SWAGGER), + LEVEL_UP_MOVE(50, MOVE_THRASH), + LEVEL_UP_MOVE(55, MOVE_WAVE_CRASH), + LEVEL_UP_MOVE(60, MOVE_CLOSE_COMBAT), + LEVEL_UP_END +}; + + static const struct LevelUpMove sDeoxysAttackLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_WRAP), @@ -19581,3 +19848,2167 @@ static const struct LevelUpMove sCalyrexShadowRiderLevelUpLearnset[] = { LEVEL_UP_END }; #endif + +#if P_GEN_9_POKEMON == TRUE +static const struct LevelUpMove sSprigatitoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(13, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(17, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(21, MOVE_U_TURN), + LEVEL_UP_MOVE(25, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(28, MOVE_SLASH), + LEVEL_UP_MOVE(32, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(36, MOVE_PLAY_ROUGH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFloragatoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(13, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(24, MOVE_U_TURN), + LEVEL_UP_MOVE(28, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(42, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(46, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMeowscaradaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FLOWER_TRICK), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(13, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(20, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(24, MOVE_U_TURN), + LEVEL_UP_MOVE(29, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(33, MOVE_SLASH), + LEVEL_UP_MOVE(38, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(42, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(47, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(58, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(64, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFuecocoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_INCINERATE), + LEVEL_UP_MOVE(17, MOVE_YAWN), + LEVEL_UP_MOVE(21, MOVE_SNARL), + LEVEL_UP_MOVE(25, MOVE_ROAR), + LEVEL_UP_MOVE(28, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(32, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(36, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCrocalorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_YAWN), + LEVEL_UP_MOVE(17, MOVE_INCINERATE), + LEVEL_UP_MOVE(24, MOVE_SNARL), + LEVEL_UP_MOVE(28, MOVE_ROAR), + LEVEL_UP_MOVE(32, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(38, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(42, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(47, MOVE_FIRE_BLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSkeledirgeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_TORCH_SONG), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 7, MOVE_LICK), + LEVEL_UP_MOVE(10, MOVE_ROUND), + LEVEL_UP_MOVE(12, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(15, MOVE_BITE), + LEVEL_UP_MOVE(17, MOVE_INCINERATE), + LEVEL_UP_MOVE(24, MOVE_SNARL), + LEVEL_UP_MOVE(28, MOVE_ROAR), + LEVEL_UP_MOVE(32, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(38, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(42, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(47, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(47, MOVE_HEX), + LEVEL_UP_MOVE(58, MOVE_FIRE_BLAST), + LEVEL_UP_MOVE(64, MOVE_OVERHEAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuaxlyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(21, MOVE_AQUA_CUTTER), + LEVEL_UP_MOVE(24, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(28, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(31, MOVE_ACROBATICS), + LEVEL_UP_MOVE(35, MOVE_LIQUIDATION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuaxwellLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 7, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(19, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(23, MOVE_AQUA_CUTTER), + LEVEL_UP_MOVE(27, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(32, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(38, MOVE_ACROBATICS), + LEVEL_UP_MOVE(43, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(48, MOVE_FEATHER_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sQuaquavalLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AQUA_STEP), + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 7, MOVE_WORK_UP), + LEVEL_UP_MOVE(10, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_AQUA_CUTTER), + LEVEL_UP_MOVE(27, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(32, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(38, MOVE_MEGA_KICK), + LEVEL_UP_MOVE(43, MOVE_ACROBATICS), + LEVEL_UP_MOVE(47, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(52, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE(58, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(64, MOVE_WAVE_CRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLechonkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 8, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(15, MOVE_COVET), + LEVEL_UP_MOVE(17, MOVE_DIG), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_YAWN), + LEVEL_UP_MOVE(27, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_WORK_UP), + LEVEL_UP_MOVE(32, MOVE_UPROAR), + LEVEL_UP_MOVE(35, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOinkologneMaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 5, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 8, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(15, MOVE_COVET), + LEVEL_UP_MOVE(17, MOVE_DIG), + LEVEL_UP_MOVE(23, MOVE_HEADBUTT), + LEVEL_UP_MOVE(26, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(27, MOVE_YAWN), + LEVEL_UP_MOVE(34, MOVE_WORK_UP), + LEVEL_UP_MOVE(38, MOVE_UPROAR), + LEVEL_UP_MOVE(42, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(48, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(54, MOVE_BELCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOinkologneFemaleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 3, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 6, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 9, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(12, MOVE_COVET), + LEVEL_UP_MOVE(15, MOVE_DIG), + LEVEL_UP_MOVE(17, MOVE_HEADBUTT), + LEVEL_UP_MOVE(23, MOVE_YAWN), + LEVEL_UP_MOVE(28, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_WORK_UP), + LEVEL_UP_MOVE(34, MOVE_UPROAR), + LEVEL_UP_MOVE(39, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(45, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(51, MOVE_BELCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTarountulaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 5, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 8, MOVE_ASSURANCE), + LEVEL_UP_MOVE(11, MOVE_FEINT), + LEVEL_UP_MOVE(14, MOVE_BUG_BITE), + LEVEL_UP_MOVE(18, MOVE_BLOCK), + LEVEL_UP_MOVE(22, MOVE_COUNTER), + LEVEL_UP_MOVE(25, MOVE_HEADBUTT), + LEVEL_UP_MOVE(29, MOVE_STICKY_WEB), + LEVEL_UP_MOVE(33, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(36, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(40, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(44, MOVE_SKITTER_SMACK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSpidopsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SILK_TRAP), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_STRING_SHOT), + LEVEL_UP_MOVE( 5, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 8, MOVE_ASSURANCE), + LEVEL_UP_MOVE(11, MOVE_FEINT), + LEVEL_UP_MOVE(14, MOVE_BUG_BITE), + LEVEL_UP_MOVE(19, MOVE_BLOCK), + LEVEL_UP_MOVE(24, MOVE_COUNTER), + LEVEL_UP_MOVE(28, MOVE_HEADBUTT), + LEVEL_UP_MOVE(33, MOVE_STICKY_WEB), + LEVEL_UP_MOVE(37, MOVE_GASTRO_ACID), + LEVEL_UP_MOVE(41, MOVE_CIRCLE_THROW), + LEVEL_UP_MOVE(45, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(49, MOVE_SKITTER_SMACK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNymbleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 4, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_ASSURANCE), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(14, MOVE_SCREECH), + LEVEL_UP_MOVE(18, MOVE_ENDURE), + LEVEL_UP_MOVE(22, MOVE_BUG_BITE), + LEVEL_UP_MOVE(26, MOVE_FEINT), + LEVEL_UP_MOVE(30, MOVE_AGILITY), + LEVEL_UP_MOVE(38, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(41, MOVE_FIRST_IMPRESSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sLokixLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_LUNGE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_DETECT), + LEVEL_UP_MOVE( 4, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE( 6, MOVE_ASTONISH), + LEVEL_UP_MOVE( 9, MOVE_ASSURANCE), + LEVEL_UP_MOVE(11, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE(14, MOVE_SCREECH), + LEVEL_UP_MOVE(18, MOVE_ENDURE), + LEVEL_UP_MOVE(22, MOVE_BUG_BITE), + LEVEL_UP_MOVE(28, MOVE_FEINT), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(36, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(40, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(44, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE(48, MOVE_BOUNCE), + LEVEL_UP_MOVE(53, MOVE_AXE_KICK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPawmiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_NUZZLE), + LEVEL_UP_MOVE(15, MOVE_DIG), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_SPARK), + LEVEL_UP_MOVE(27, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(31, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(35, MOVE_SLAM), + LEVEL_UP_MOVE(38, MOVE_DISCHARGE), + LEVEL_UP_MOVE(40, MOVE_AGILITY), + LEVEL_UP_MOVE(44, MOVE_WILD_CHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPawmoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ARM_THRUST), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_NUZZLE), + LEVEL_UP_MOVE(15, MOVE_DIG), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_SPARK), + LEVEL_UP_MOVE(27, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(32, MOVE_SLAM), + LEVEL_UP_MOVE(38, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(42, MOVE_DISCHARGE), + LEVEL_UP_MOVE(46, MOVE_AGILITY), + LEVEL_UP_MOVE(52, MOVE_WILD_CHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPawmotLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_REVIVAL_BLESSING), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE( 3, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 8, MOVE_CHARGE), + LEVEL_UP_MOVE(12, MOVE_NUZZLE), + LEVEL_UP_MOVE(15, MOVE_DIG), + LEVEL_UP_MOVE(19, MOVE_BITE), + LEVEL_UP_MOVE(23, MOVE_SPARK), + LEVEL_UP_MOVE(25, MOVE_ARM_THRUST), + LEVEL_UP_MOVE(29, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE(33, MOVE_SLAM), + LEVEL_UP_MOVE(39, MOVE_ENTRAINMENT), + LEVEL_UP_MOVE(44, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(49, MOVE_DISCHARGE), + LEVEL_UP_MOVE(54, MOVE_AGILITY), + LEVEL_UP_MOVE(60, MOVE_DOUBLE_SHOCK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTandemausLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 5, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 8, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(11, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(18, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(22, MOVE_ENCORE), + LEVEL_UP_MOVE(26, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(30, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(33, MOVE_CHARM), + LEVEL_UP_MOVE(37, MOVE_BEAT_UP), + LEVEL_UP_MOVE(41, MOVE_COPYCAT), + LEVEL_UP_MOVE(46, MOVE_POPULATION_BOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMausholdLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE( 1, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 1, MOVE_TIDY_UP), + LEVEL_UP_MOVE( 5, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE( 8, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(11, MOVE_SUPER_FANG), + LEVEL_UP_MOVE(14, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(18, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(22, MOVE_ENCORE), + LEVEL_UP_MOVE(29, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(33, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(37, MOVE_CHARM), + LEVEL_UP_MOVE(41, MOVE_BEAT_UP), + LEVEL_UP_MOVE(46, MOVE_COPYCAT), + LEVEL_UP_MOVE(53, MOVE_POPULATION_BOMB), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFidoughLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_COVET), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(18, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(22, MOVE_WORK_UP), + LEVEL_UP_MOVE(26, MOVE_BATON_PASS), + LEVEL_UP_MOVE(30, MOVE_ROAR), + LEVEL_UP_MOVE(33, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(36, MOVE_CHARM), + LEVEL_UP_MOVE(40, MOVE_CRUNCH), + LEVEL_UP_MOVE(45, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDachsbunLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 8, MOVE_COVET), + LEVEL_UP_MOVE(11, MOVE_BITE), + LEVEL_UP_MOVE(15, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(18, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(22, MOVE_WORK_UP), + LEVEL_UP_MOVE(29, MOVE_BATON_PASS), + LEVEL_UP_MOVE(33, MOVE_ROAR), + LEVEL_UP_MOVE(38, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(42, MOVE_CHARM), + LEVEL_UP_MOVE(47, MOVE_CRUNCH), + LEVEL_UP_MOVE(53, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSmolivLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(23, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(27, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(30, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(34, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(38, MOVE_TERRAIN_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDollivLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(23, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(29, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(34, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(37, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(42, MOVE_TERRAIN_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArbolivaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE( 1, MOVE_SAFEGUARD), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 7, MOVE_GROWTH), + LEVEL_UP_MOVE(10, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(13, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(16, MOVE_FLAIL), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(23, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(29, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(34, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(39, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(46, MOVE_TERRAIN_PULSE), + LEVEL_UP_MOVE(52, MOVE_PETAL_BLIZZARD), + LEVEL_UP_MOVE(58, MOVE_PETAL_DANCE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSquawkabillyLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_MIMIC), + LEVEL_UP_MOVE( 6, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(10, MOVE_TORMENT), + LEVEL_UP_MOVE(13, MOVE_AERIAL_ACE), + LEVEL_UP_MOVE(17, MOVE_FURY_ATTACK), + LEVEL_UP_MOVE(20, MOVE_TAUNT), + LEVEL_UP_MOVE(24, MOVE_UPROAR), + LEVEL_UP_MOVE(27, MOVE_COPYCAT), + LEVEL_UP_MOVE(30, MOVE_FLY), + LEVEL_UP_MOVE(34, MOVE_FACADE), + LEVEL_UP_MOVE(38, MOVE_SWAGGER), + LEVEL_UP_MOVE(42, MOVE_BRAVE_BIRD), + LEVEL_UP_MOVE(47, MOVE_ROOST), + LEVEL_UP_MOVE(52, MOVE_REVERSAL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNacliLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 7, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(10, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(13, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(25, MOVE_RECOVER), + LEVEL_UP_MOVE(30, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(33, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(35, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(40, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(45, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sNaclstackLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SALT_CURE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 7, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(10, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(13, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(20, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(30, MOVE_RECOVER), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(38, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(41, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(45, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(51, MOVE_STONE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGarganaclLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_HAMMER_ARM), + LEVEL_UP_MOVE( 1, MOVE_BLOCK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE( 5, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 7, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(10, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(13, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(16, MOVE_HEADBUTT), + LEVEL_UP_MOVE(24, MOVE_SALT_CURE), + LEVEL_UP_MOVE(30, MOVE_RECOVER), + LEVEL_UP_MOVE(34, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(40, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(44, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(54, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(60, MOVE_EXPLOSION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCharcadetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(12, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(24, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(28, MOVE_INCINERATE), + LEVEL_UP_MOVE(32, MOVE_LAVA_PLUME), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArmarougeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_PSYSHOCK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_MYSTICAL_FIRE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE( 8, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(12, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(24, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(28, MOVE_INCINERATE), + LEVEL_UP_MOVE(32, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(37, MOVE_CALM_MIND), + LEVEL_UP_MOVE(42, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(48, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_EXPANDING_FORCE), + LEVEL_UP_MOVE(62, MOVE_ARMOR_CANNON), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCeruledgeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHADOW_CLAW), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(12, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(16, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(24, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(28, MOVE_INCINERATE), + LEVEL_UP_MOVE(32, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(37, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(42, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(48, MOVE_BITTER_BLADE), + LEVEL_UP_MOVE(56, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(62, MOVE_FLARE_BLITZ), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTadbulbLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_WATER_GUN), + LEVEL_UP_MOVE(17, MOVE_CHARGE), + LEVEL_UP_MOVE(21, MOVE_SPARK), + LEVEL_UP_MOVE(24, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(25, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE(40, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(45, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(50, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBelliboltLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 1, MOVE_SLACK_OFF), + LEVEL_UP_MOVE( 7, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE(11, MOVE_WATER_GUN), + LEVEL_UP_MOVE(17, MOVE_CHARGE), + LEVEL_UP_MOVE(21, MOVE_SPARK), + LEVEL_UP_MOVE(24, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(25, MOVE_FLAIL), + LEVEL_UP_MOVE(32, MOVE_DISCHARGE), + LEVEL_UP_MOVE(36, MOVE_WEATHER_BALL), + LEVEL_UP_MOVE(40, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE(45, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(50, MOVE_ZAP_CANNON), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWattrelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(11, MOVE_PLUCK), + LEVEL_UP_MOVE(15, MOVE_SPARK), + LEVEL_UP_MOVE(19, MOVE_UPROAR), + LEVEL_UP_MOVE(23, MOVE_ROOST), + LEVEL_UP_MOVE(27, MOVE_DUAL_WINGBEAT), + LEVEL_UP_MOVE(32, MOVE_AGILITY), + LEVEL_UP_MOVE(37, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(43, MOVE_DISCHARGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKilowattrelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_ELECTRO_BALL), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 4, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(11, MOVE_PLUCK), + LEVEL_UP_MOVE(15, MOVE_SPARK), + LEVEL_UP_MOVE(19, MOVE_UPROAR), + LEVEL_UP_MOVE(24, MOVE_ROOST), + LEVEL_UP_MOVE(30, MOVE_DUAL_WINGBEAT), + LEVEL_UP_MOVE(36, MOVE_AGILITY), + LEVEL_UP_MOVE(43, MOVE_VOLT_SWITCH), + LEVEL_UP_MOVE(48, MOVE_DISCHARGE), + LEVEL_UP_MOVE(55, MOVE_HURRICANE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMaschiffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 4, MOVE_LICK), + LEVEL_UP_MOVE( 7, MOVE_SNARL), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(14, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_ROAR), + LEVEL_UP_MOVE(22, MOVE_HEADBUTT), + LEVEL_UP_MOVE(26, MOVE_PAYBACK), + LEVEL_UP_MOVE(31, MOVE_CRUNCH), + LEVEL_UP_MOVE(35, MOVE_SWAGGER), + LEVEL_UP_MOVE(39, MOVE_REVERSAL), + LEVEL_UP_MOVE(43, MOVE_JAW_LOCK), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMabosstiffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_COMEUPPANCE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 4, MOVE_LICK), + LEVEL_UP_MOVE( 7, MOVE_SNARL), + LEVEL_UP_MOVE(10, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE(14, MOVE_BITE), + LEVEL_UP_MOVE(18, MOVE_ROAR), + LEVEL_UP_MOVE(22, MOVE_HEADBUTT), + LEVEL_UP_MOVE(26, MOVE_PAYBACK), + LEVEL_UP_MOVE(34, MOVE_CRUNCH), + LEVEL_UP_MOVE(39, MOVE_SWAGGER), + LEVEL_UP_MOVE(43, MOVE_REVERSAL), + LEVEL_UP_MOVE(48, MOVE_JAW_LOCK), + LEVEL_UP_MOVE(55, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(60, MOVE_OUTRAGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sShroodleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 8, MOVE_BITE), + LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(11, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(14, MOVE_POISON_FANG), + LEVEL_UP_MOVE(18, MOVE_FLATTER), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_U_TURN), + LEVEL_UP_MOVE(29, MOVE_POISON_JAB), + LEVEL_UP_MOVE(33, MOVE_TAUNT), + LEVEL_UP_MOVE(36, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(40, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(45, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGrafaiaiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOODLE), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 5, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 8, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE(11, MOVE_SWITCHEROO), + LEVEL_UP_MOVE(14, MOVE_POISON_FANG), + LEVEL_UP_MOVE(18, MOVE_FLATTER), + LEVEL_UP_MOVE(21, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_U_TURN), + LEVEL_UP_MOVE(33, MOVE_POISON_JAB), + LEVEL_UP_MOVE(37, MOVE_TAUNT), + LEVEL_UP_MOVE(40, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(45, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(51, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBramblinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(13, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(17, MOVE_INFESTATION), + LEVEL_UP_MOVE(21, MOVE_HEX), + LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_DISABLE), + LEVEL_UP_MOVE(35, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(40, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(45, MOVE_CURSE), + LEVEL_UP_MOVE(50, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(55, MOVE_POWER_WHIP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBrambleghastLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_ABSORB), + LEVEL_UP_MOVE( 9, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(13, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(17, MOVE_INFESTATION), + LEVEL_UP_MOVE(21, MOVE_HEX), + LEVEL_UP_MOVE(25, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(29, MOVE_DISABLE), + LEVEL_UP_MOVE(35, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(40, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(45, MOVE_CURSE), + LEVEL_UP_MOVE(50, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(55, MOVE_POWER_WHIP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToedscoolLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 4, MOVE_ABSORB), + LEVEL_UP_MOVE( 8, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 8, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(12, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_TACKLE), + LEVEL_UP_MOVE(16, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(28, MOVE_HEX), + LEVEL_UP_MOVE(32, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(36, MOVE_SPORE), + LEVEL_UP_MOVE(40, MOVE_GROWTH), + LEVEL_UP_MOVE(44, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(48, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(52, MOVE_POWER_WHIP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sToedscruelLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_REFLECT_TYPE), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 4, MOVE_ABSORB), + LEVEL_UP_MOVE( 8, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 8, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(12, MOVE_SUPERSONIC), + LEVEL_UP_MOVE(15, MOVE_TACKLE), + LEVEL_UP_MOVE(16, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(20, MOVE_SCREECH), + LEVEL_UP_MOVE(24, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(28, MOVE_HEX), + LEVEL_UP_MOVE(34, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(40, MOVE_SPORE), + LEVEL_UP_MOVE(44, MOVE_GROWTH), + LEVEL_UP_MOVE(48, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(54, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(58, MOVE_POWER_WHIP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKlawfLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VISE_GRIP), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 6, MOVE_HARDEN), + LEVEL_UP_MOVE( 9, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(13, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(17, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(21, MOVE_PROTECT), + LEVEL_UP_MOVE(24, MOVE_ROCK_BLAST), + LEVEL_UP_MOVE(29, MOVE_X_SCISSOR), + LEVEL_UP_MOVE(33, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(37, MOVE_FLAIL), + LEVEL_UP_MOVE(42, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(47, MOVE_HIGH_HORSEPOWER), + LEVEL_UP_MOVE(51, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(56, MOVE_GUILLOTINE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCapsakidLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(21, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(44, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sScovillainLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SPICY_EXTRACT), + LEVEL_UP_MOVE( 0, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_LEAFAGE), + LEVEL_UP_MOVE( 4, MOVE_BITE), + LEVEL_UP_MOVE(10, MOVE_GROWTH), + LEVEL_UP_MOVE(13, MOVE_RAZOR_LEAF), + LEVEL_UP_MOVE(17, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE(21, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(33, MOVE_WORRY_SEED), + LEVEL_UP_MOVE(38, MOVE_CRUNCH), + LEVEL_UP_MOVE(44, MOVE_SEED_BOMB), + LEVEL_UP_MOVE(48, MOVE_SOLAR_BEAM), + LEVEL_UP_MOVE(48, MOVE_OVERHEAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRellorLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(11, MOVE_ROLLOUT), + LEVEL_UP_MOVE(15, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_DIG), + LEVEL_UP_MOVE(35, MOVE_LUNGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRabscaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_REVIVAL_BLESSING), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 4, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 7, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(11, MOVE_ROLLOUT), + LEVEL_UP_MOVE(15, MOVE_PSYBEAM), + LEVEL_UP_MOVE(20, MOVE_BUG_BITE), + LEVEL_UP_MOVE(24, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(29, MOVE_EXTRASENSORY), + LEVEL_UP_MOVE(35, MOVE_LUNGE), + LEVEL_UP_MOVE(40, MOVE_SPEED_SWAP), + LEVEL_UP_MOVE(40, MOVE_POWER_SWAP), + LEVEL_UP_MOVE(40, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE(45, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFlittleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE( 8, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(24, MOVE_PLUCK), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(34, MOVE_UPROAR), + LEVEL_UP_END +}; + +static const struct LevelUpMove sEspathraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_LUMINA_CRASH), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_DRILL_PECK), + LEVEL_UP_MOVE( 1, MOVE_FEATHER_DANCE), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE( 8, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE(11, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE(15, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(24, MOVE_PLUCK), + LEVEL_UP_MOVE(29, MOVE_AGILITY), + LEVEL_UP_MOVE(34, MOVE_UPROAR), + LEVEL_UP_MOVE(43, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(49, MOVE_PSYCHIC), + LEVEL_UP_MOVE(54, MOVE_LAST_RESORT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTinkatinkLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 5, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(11, MOVE_COVET), + LEVEL_UP_MOVE(14, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(17, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(21, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(24, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(27, MOVE_SLAM), + LEVEL_UP_MOVE(31, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(35, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(39, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(43, MOVE_FLATTER), + LEVEL_UP_MOVE(47, MOVE_SKITTER_SMACK), + LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTinkatuffLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 5, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(11, MOVE_COVET), + LEVEL_UP_MOVE(14, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(17, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(21, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(24, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(27, MOVE_SLAM), + LEVEL_UP_MOVE(31, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(35, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(39, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(43, MOVE_FLATTER), + LEVEL_UP_MOVE(47, MOVE_SKITTER_SMACK), + LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTinkatonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_GIGATON_HAMMER), + LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 5, MOVE_BABY_DOLL_EYES), + LEVEL_UP_MOVE( 8, MOVE_METAL_CLAW), + LEVEL_UP_MOVE(11, MOVE_COVET), + LEVEL_UP_MOVE(14, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(17, MOVE_DRAINING_KISS), + LEVEL_UP_MOVE(21, MOVE_SWEET_KISS), + LEVEL_UP_MOVE(24, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(27, MOVE_SLAM), + LEVEL_UP_MOVE(31, MOVE_FLASH_CANNON), + LEVEL_UP_MOVE(35, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(39, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(43, MOVE_FLATTER), + LEVEL_UP_MOVE(47, MOVE_SKITTER_SMACK), + LEVEL_UP_MOVE(52, MOVE_KNOCK_OFF), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWiglettLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 4, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 8, MOVE_WRAP), + LEVEL_UP_MOVE(12, MOVE_AQUA_JET), + LEVEL_UP_MOVE(20, MOVE_SLAM), + LEVEL_UP_MOVE(20, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(28, MOVE_DIG), + LEVEL_UP_MOVE(32, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(36, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(40, MOVE_LIQUIDATION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWugtrioLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_AQUA_JET), + LEVEL_UP_MOVE(16, MOVE_SLAM), + LEVEL_UP_MOVE(20, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(24, MOVE_HEADBUTT), + LEVEL_UP_MOVE(30, MOVE_TRIPLE_DIVE), + LEVEL_UP_MOVE(36, MOVE_DIG), + LEVEL_UP_MOVE(42, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(48, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(54, MOVE_LIQUIDATION), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBombirdierLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WING_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_MEMENTO), + LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), + LEVEL_UP_MOVE( 7, MOVE_THIEF), + LEVEL_UP_MOVE(11, MOVE_ROCK_THROW), + LEVEL_UP_MOVE(16, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(20, MOVE_PLUCK), + LEVEL_UP_MOVE(24, MOVE_TORMENT), + LEVEL_UP_MOVE(29, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(36, MOVE_PAYBACK), + LEVEL_UP_MOVE(42, MOVE_DUAL_WINGBEAT), + LEVEL_UP_MOVE(47, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(53, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(60, MOVE_PARTING_SHOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFinizenLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(21, MOVE_DIVE), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(29, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_ENCORE), + LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(44, MOVE_MIST), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPalafinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_FLIP_TURN), + LEVEL_UP_MOVE( 1, MOVE_JET_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 7, MOVE_ASTONISH), + LEVEL_UP_MOVE(10, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(13, MOVE_AQUA_JET), + LEVEL_UP_MOVE(17, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(21, MOVE_DIVE), + LEVEL_UP_MOVE(25, MOVE_CHARM), + LEVEL_UP_MOVE(29, MOVE_ACROBATICS), + LEVEL_UP_MOVE(34, MOVE_ENCORE), + LEVEL_UP_MOVE(39, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(44, MOVE_MIST), + LEVEL_UP_MOVE(50, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(55, MOVE_FOCUS_PUNCH), + LEVEL_UP_MOVE(61, MOVE_WAVE_CRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVaroomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 4, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_TAUNT), + LEVEL_UP_MOVE(10, MOVE_ASSURANCE), + LEVEL_UP_MOVE(13, MOVE_SLUDGE), + LEVEL_UP_MOVE(17, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(32, MOVE_SWAGGER), + LEVEL_UP_MOVE(36, MOVE_POISON_JAB), + LEVEL_UP_MOVE(41, MOVE_UPROAR), + LEVEL_UP_MOVE(46, MOVE_SPIN_OUT), + LEVEL_UP_MOVE(50, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRevavroomLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE( 1, MOVE_MAGNET_RISE), + LEVEL_UP_MOVE( 1, MOVE_LICK), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 4, MOVE_SMOG), + LEVEL_UP_MOVE( 7, MOVE_TAUNT), + LEVEL_UP_MOVE(10, MOVE_ASSURANCE), + LEVEL_UP_MOVE(13, MOVE_SLUDGE), + LEVEL_UP_MOVE(17, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(21, MOVE_HEADBUTT), + LEVEL_UP_MOVE(25, MOVE_SCREECH), + LEVEL_UP_MOVE(28, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(32, MOVE_SWAGGER), + LEVEL_UP_MOVE(36, MOVE_POISON_JAB), + LEVEL_UP_MOVE(46, MOVE_UPROAR), + LEVEL_UP_MOVE(52, MOVE_SPIN_OUT), + LEVEL_UP_MOVE(58, MOVE_GUNK_SHOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCyclizarLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 7, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(11, MOVE_TAUNT), + LEVEL_UP_MOVE(14, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE(18, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(23, MOVE_BITE), + LEVEL_UP_MOVE(27, MOVE_U_TURN), + LEVEL_UP_MOVE(31, MOVE_SHED_TAIL), + LEVEL_UP_MOVE(36, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(40, MOVE_SHIFT_GEAR), + LEVEL_UP_MOVE(45, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(51, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(57, MOVE_DRAGON_RUSH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOrthwormLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_WRAP), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_MUD_SLAP), + LEVEL_UP_MOVE(12, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE(16, MOVE_BULLDOZE), + LEVEL_UP_MOVE(21, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(26, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(30, MOVE_DIG), + LEVEL_UP_MOVE(34, MOVE_SANDSTORM), + LEVEL_UP_MOVE(38, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(43, MOVE_IRON_TAIL), + LEVEL_UP_MOVE(47, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(52, MOVE_SHED_TAIL), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGlimmetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE( 7, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(11, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(18, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(22, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(26, MOVE_SANDSTORM), + LEVEL_UP_MOVE(29, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(37, MOVE_POWER_GEM), + LEVEL_UP_MOVE(41, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(46, MOVE_SLUDGE_WAVE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGlimmoraLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MORTAL_SPIN), + LEVEL_UP_MOVE( 1, MOVE_SMACK_DOWN), + LEVEL_UP_MOVE( 1, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE( 1, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_HARDEN), + LEVEL_UP_MOVE( 7, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE(11, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(15, MOVE_ROCK_POLISH), + LEVEL_UP_MOVE(18, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(22, MOVE_VENOSHOCK), + LEVEL_UP_MOVE(26, MOVE_SANDSTORM), + LEVEL_UP_MOVE(29, MOVE_SELF_DESTRUCT), + LEVEL_UP_MOVE(33, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(39, MOVE_POWER_GEM), + LEVEL_UP_MOVE(44, MOVE_ACID_ARMOR), + LEVEL_UP_MOVE(50, MOVE_SLUDGE_WAVE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGreavardLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_ROAR), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(16, MOVE_DIG), + LEVEL_UP_MOVE(24, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(32, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(37, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(41, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(46, MOVE_CHARM), + LEVEL_UP_MOVE(52, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sHoundstoneLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_LAST_RESPECTS), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 3, MOVE_LICK), + LEVEL_UP_MOVE( 6, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 6, MOVE_BITE), + LEVEL_UP_MOVE( 9, MOVE_ROAR), + LEVEL_UP_MOVE(12, MOVE_HEADBUTT), + LEVEL_UP_MOVE(16, MOVE_DIG), + LEVEL_UP_MOVE(24, MOVE_REST), + LEVEL_UP_MOVE(28, MOVE_CRUNCH), + LEVEL_UP_MOVE(36, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(41, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(46, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(51, MOVE_CHARM), + LEVEL_UP_MOVE(58, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFlamigoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_COPYCAT), + LEVEL_UP_MOVE( 5, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 9, MOVE_DETECT), + LEVEL_UP_MOVE(12, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(18, MOVE_LOW_KICK), + LEVEL_UP_MOVE(21, MOVE_FEINT), + LEVEL_UP_MOVE(27, MOVE_PAYBACK), + LEVEL_UP_MOVE(31, MOVE_ROOST), + LEVEL_UP_MOVE(35, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(39, MOVE_MEGA_KICK), + LEVEL_UP_MOVE(44, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(48, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(54, MOVE_BRAVE_BIRD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCetoddleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(15, MOVE_REST), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_FLAIL), + LEVEL_UP_MOVE(27, MOVE_AVALANCHE), + LEVEL_UP_MOVE(31, MOVE_BOUNCE), + LEVEL_UP_MOVE(36, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(40, MOVE_AMNESIA), + LEVEL_UP_MOVE(44, MOVE_ICE_SPINNER), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(53, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sCetitanLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 6, MOVE_GROWL), + LEVEL_UP_MOVE( 9, MOVE_ECHOED_VOICE), + LEVEL_UP_MOVE(12, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(15, MOVE_REST), + LEVEL_UP_MOVE(19, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(25, MOVE_FLAIL), + LEVEL_UP_MOVE(27, MOVE_AVALANCHE), + LEVEL_UP_MOVE(31, MOVE_BOUNCE), + LEVEL_UP_MOVE(36, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(40, MOVE_AMNESIA), + LEVEL_UP_MOVE(44, MOVE_ICE_SPINNER), + LEVEL_UP_MOVE(49, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(53, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sVeluzaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 7, MOVE_PLUCK), + LEVEL_UP_MOVE(11, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(15, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(20, MOVE_SLASH), + LEVEL_UP_MOVE(25, MOVE_AQUA_CUTTER), + LEVEL_UP_MOVE(30, MOVE_FILLET_AWAY), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(40, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(45, MOVE_LIQUIDATION), + LEVEL_UP_MOVE(50, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDondozoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 5, MOVE_TICKLE), + LEVEL_UP_MOVE(10, MOVE_FLAIL), + LEVEL_UP_MOVE(15, MOVE_REST), + LEVEL_UP_MOVE(15, MOVE_SLEEP_TALK), + LEVEL_UP_MOVE(20, MOVE_DIVE), + LEVEL_UP_MOVE(25, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(30, MOVE_SOAK), + LEVEL_UP_MOVE(35, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(40, MOVE_AQUA_TAIL), + LEVEL_UP_MOVE(45, MOVE_RAIN_DANCE), + LEVEL_UP_MOVE(50, MOVE_ORDER_UP), + LEVEL_UP_MOVE(55, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(60, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(65, MOVE_WAVE_CRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTatsugiriLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), + LEVEL_UP_MOVE( 1, MOVE_SPLASH), + LEVEL_UP_MOVE( 6, MOVE_HARDEN), + LEVEL_UP_MOVE(12, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(17, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(23, MOVE_SOAK), + LEVEL_UP_MOVE(28, MOVE_TAUNT), + LEVEL_UP_MOVE(34, MOVE_MEMENTO), + LEVEL_UP_MOVE(39, MOVE_MUDDY_WATER), + LEVEL_UP_MOVE(43, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(47, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(52, MOVE_DRAGON_PULSE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sAnnihilapeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_SHADOW_PUNCH), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_COUNTER), + LEVEL_UP_MOVE( 1, MOVE_FLING), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 5, MOVE_FURY_SWIPES), + LEVEL_UP_MOVE( 8, MOVE_LOW_KICK), + LEVEL_UP_MOVE(12, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(17, MOVE_SWAGGER), + LEVEL_UP_MOVE(22, MOVE_CROSS_CHOP), + LEVEL_UP_MOVE(26, MOVE_ASSURANCE), + LEVEL_UP_MOVE(30, MOVE_THRASH), + LEVEL_UP_MOVE(35, MOVE_RAGE_FIST), + LEVEL_UP_MOVE(39, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(44, MOVE_SCREECH), + LEVEL_UP_MOVE(48, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(53, MOVE_OUTRAGE), + LEVEL_UP_MOVE(57, MOVE_FINAL_GAMBIT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sClodsireLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_AMNESIA), + LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), + LEVEL_UP_MOVE( 1, MOVE_POISON_STING), + LEVEL_UP_MOVE( 4, MOVE_TOXIC_SPIKES), + LEVEL_UP_MOVE( 8, MOVE_MUD_SHOT), + LEVEL_UP_MOVE(12, MOVE_POISON_TAIL), + LEVEL_UP_MOVE(16, MOVE_SLAM), + LEVEL_UP_MOVE(21, MOVE_YAWN), + LEVEL_UP_MOVE(24, MOVE_POISON_JAB), + LEVEL_UP_MOVE(30, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(36, MOVE_MEGAHORN), + LEVEL_UP_MOVE(40, MOVE_TOXIC), + LEVEL_UP_MOVE(48, MOVE_EARTHQUAKE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFarigirafLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_GROWL), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_POWER_SWAP), + LEVEL_UP_MOVE( 1, MOVE_GUARD_SWAP), + LEVEL_UP_MOVE( 5, MOVE_CONFUSION), + LEVEL_UP_MOVE(10, MOVE_ASSURANCE), + LEVEL_UP_MOVE(14, MOVE_STOMP), + LEVEL_UP_MOVE(19, MOVE_PSYBEAM), + LEVEL_UP_MOVE(23, MOVE_AGILITY), + LEVEL_UP_MOVE(28, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE(32, MOVE_TWIN_BEAM), + LEVEL_UP_MOVE(37, MOVE_CRUNCH), + LEVEL_UP_MOVE(41, MOVE_BATON_PASS), + LEVEL_UP_MOVE(46, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(50, MOVE_PSYCHIC), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDudunsparceLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_FLAIL), + LEVEL_UP_MOVE( 4, MOVE_MUD_SLAP), + LEVEL_UP_MOVE( 8, MOVE_ROLLOUT), + LEVEL_UP_MOVE(12, MOVE_GLARE), + LEVEL_UP_MOVE(16, MOVE_SCREECH), + LEVEL_UP_MOVE(20, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(24, MOVE_DRILL_RUN), + LEVEL_UP_MOVE(28, MOVE_YAWN), + LEVEL_UP_MOVE(32, MOVE_HYPER_DRILL), + LEVEL_UP_MOVE(36, MOVE_ROOST), + LEVEL_UP_MOVE(40, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(44, MOVE_COIL), + LEVEL_UP_MOVE(48, MOVE_DOUBLE_EDGE), + LEVEL_UP_MOVE(52, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(56, MOVE_HURRICANE), + LEVEL_UP_MOVE(62, MOVE_BOOMBURST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKingambitLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_KOWTOW_CLEAVE), + LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), + LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE(15, MOVE_TORMENT), + LEVEL_UP_MOVE(20, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(25, MOVE_ASSURANCE), + LEVEL_UP_MOVE(30, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(35, MOVE_SLASH), + LEVEL_UP_MOVE(40, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(45, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE(50, MOVE_RETALIATE), + LEVEL_UP_MOVE(57, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(64, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(71, MOVE_GUILLOTINE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGreatTuskLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 7, MOVE_BULLDOZE), + LEVEL_UP_MOVE(14, MOVE_TAUNT), + LEVEL_UP_MOVE(21, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(28, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(35, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(42, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(56, MOVE_GIGA_IMPACT), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(77, MOVE_MEGAHORN), + LEVEL_UP_MOVE(84, MOVE_HEAD_SMASH), + LEVEL_UP_MOVE(91, MOVE_HEADLONG_RUSH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sScreamTailLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_POUND), + LEVEL_UP_MOVE( 1, MOVE_SING), + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 7, MOVE_HOWL), + LEVEL_UP_MOVE(14, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(21, MOVE_BITE), + LEVEL_UP_MOVE(28, MOVE_BODY_SLAM), + LEVEL_UP_MOVE(35, MOVE_REST), + LEVEL_UP_MOVE(42, MOVE_PLAY_ROUGH), + LEVEL_UP_MOVE(49, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(56, MOVE_PSYCHIC_FANGS), + LEVEL_UP_MOVE(63, MOVE_CRUNCH), + LEVEL_UP_MOVE(70, MOVE_WISH), + LEVEL_UP_MOVE(77, MOVE_GYRO_BALL), + LEVEL_UP_MOVE(84, MOVE_PERISH_SONG), + LEVEL_UP_MOVE(91, MOVE_BOOMBURST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBruteBonnetLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_GROWTH), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(14, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(21, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(28, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(35, MOVE_PAYBACK), + LEVEL_UP_MOVE(42, MOVE_THRASH), + LEVEL_UP_MOVE(49, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(56, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(63, MOVE_SPORE), + LEVEL_UP_MOVE(70, MOVE_INGRAIN), + LEVEL_UP_MOVE(77, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(91, MOVE_SOLAR_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFlutterManeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 7, MOVE_PSYBEAM), + LEVEL_UP_MOVE(14, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE(21, MOVE_MEMENTO), + LEVEL_UP_MOVE(28, MOVE_WISH), + LEVEL_UP_MOVE(35, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(42, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(49, MOVE_MYSTICAL_FIRE), + LEVEL_UP_MOVE(56, MOVE_POWER_GEM), + LEVEL_UP_MOVE(63, MOVE_PSYSHOCK), + LEVEL_UP_MOVE(70, MOVE_PHANTOM_FORCE), + LEVEL_UP_MOVE(77, MOVE_PAIN_SPLIT), + LEVEL_UP_MOVE(84, MOVE_MOONBLAST), + LEVEL_UP_MOVE(91, MOVE_PERISH_SONG), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSlitherWingLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_BUG_BITE), + LEVEL_UP_MOVE( 7, MOVE_POISON_POWDER), + LEVEL_UP_MOVE( 7, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(14, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(21, MOVE_STOMP), + LEVEL_UP_MOVE(28, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(35, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(42, MOVE_LUNGE), + LEVEL_UP_MOVE(49, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(56, MOVE_BULK_UP), + LEVEL_UP_MOVE(63, MOVE_DUAL_WINGBEAT), + LEVEL_UP_MOVE(70, MOVE_FIRST_IMPRESSION), + LEVEL_UP_MOVE(77, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(84, MOVE_LEECH_LIFE), + LEVEL_UP_MOVE(91, MOVE_THRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSandyShocksLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_WAVE), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_SUPERSONIC), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 7, MOVE_SPARK), + LEVEL_UP_MOVE(14, MOVE_BULLDOZE), + LEVEL_UP_MOVE(21, MOVE_CHARGE_BEAM), + LEVEL_UP_MOVE(28, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE(35, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(49, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(56, MOVE_DISCHARGE), + LEVEL_UP_MOVE(63, MOVE_EARTH_POWER), + LEVEL_UP_MOVE(70, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(77, MOVE_GRAVITY), + LEVEL_UP_MOVE(84, MOVE_ZAP_CANNON), + LEVEL_UP_MOVE(91, MOVE_MAGNETIC_FLUX), + LEVEL_UP_END +}; + +static const struct LevelUpMove sIronTreadsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_HORN_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), + LEVEL_UP_MOVE( 1, MOVE_ROLLOUT), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 7, MOVE_BULLDOZE), + LEVEL_UP_MOVE(21, MOVE_RAPID_SPIN), + LEVEL_UP_MOVE(28, MOVE_IRON_HEAD), + LEVEL_UP_MOVE(35, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(42, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(49, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(56, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(63, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(70, MOVE_ENDEAVOR), + LEVEL_UP_MOVE(77, MOVE_MEGAHORN), + LEVEL_UP_MOVE(84, MOVE_GIGA_IMPACT), + LEVEL_UP_MOVE(91, MOVE_STEEL_ROLLER), + LEVEL_UP_END +}; + +static const struct LevelUpMove sIronBundleLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_PRESENT), + LEVEL_UP_MOVE( 7, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE(14, MOVE_WHIRLPOOL), + LEVEL_UP_MOVE(21, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(28, MOVE_DRILL_PECK), + LEVEL_UP_MOVE(35, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(42, MOVE_FREEZE_DRY), + LEVEL_UP_MOVE(49, MOVE_FLIP_TURN), + LEVEL_UP_MOVE(56, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(63, MOVE_AGILITY), + LEVEL_UP_MOVE(70, MOVE_SNOWSCAPE), + LEVEL_UP_MOVE(77, MOVE_HYDRO_PUMP), + LEVEL_UP_MOVE(84, MOVE_AURORA_VEIL), + LEVEL_UP_MOVE(91, MOVE_BLIZZARD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sIronHandsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_ARM_THRUST), + LEVEL_UP_MOVE( 7, MOVE_FAKE_OUT), + LEVEL_UP_MOVE(14, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(21, MOVE_THUNDER_PUNCH), + LEVEL_UP_MOVE(28, MOVE_SLAM), + LEVEL_UP_MOVE(35, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(42, MOVE_SEISMIC_TOSS), + LEVEL_UP_MOVE(49, MOVE_CHARGE), + LEVEL_UP_MOVE(56, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_DETECT), + LEVEL_UP_MOVE(77, MOVE_HEAVY_SLAM), + LEVEL_UP_MOVE(84, MOVE_BELLY_DRUM), + LEVEL_UP_MOVE(91, MOVE_FOCUS_PUNCH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sIronJugulisLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 1, MOVE_WORK_UP), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 1, MOVE_TRI_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_AIR_CUTTER), + LEVEL_UP_MOVE( 7, MOVE_ROAR), + LEVEL_UP_MOVE(14, MOVE_ASSURANCE), + LEVEL_UP_MOVE(21, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(28, MOVE_SNARL), + LEVEL_UP_MOVE(35, MOVE_CRUNCH), + LEVEL_UP_MOVE(42, MOVE_HYPER_VOICE), + LEVEL_UP_MOVE(56, MOVE_AIR_SLASH), + LEVEL_UP_MOVE(63, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(70, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(77, MOVE_OUTRAGE), + LEVEL_UP_MOVE(84, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(91, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sIronMothLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_GUST), + LEVEL_UP_MOVE( 1, MOVE_WHIRLWIND), + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), + LEVEL_UP_MOVE( 7, MOVE_STRUGGLE_BUG), + LEVEL_UP_MOVE(14, MOVE_FIRE_SPIN), + LEVEL_UP_MOVE(21, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(28, MOVE_LUNGE), + LEVEL_UP_MOVE(35, MOVE_SCREECH), + LEVEL_UP_MOVE(42, MOVE_DISCHARGE), + LEVEL_UP_MOVE(49, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(56, MOVE_FIERY_DANCE), + LEVEL_UP_MOVE(63, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(70, MOVE_MORNING_SUN), + LEVEL_UP_MOVE(77, MOVE_HURRICANE), + LEVEL_UP_MOVE(84, MOVE_BUG_BUZZ), + LEVEL_UP_MOVE(91, MOVE_OVERHEAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sIronThornsLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ROCK_THROW), + LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), + LEVEL_UP_MOVE( 1, MOVE_ICE_FANG), + LEVEL_UP_MOVE( 1, MOVE_THUNDER_FANG), + LEVEL_UP_MOVE( 1, MOVE_IRON_DEFENSE), + LEVEL_UP_MOVE( 7, MOVE_SCREECH), + LEVEL_UP_MOVE(21, MOVE_ROCK_TOMB), + LEVEL_UP_MOVE(28, MOVE_BITE), + LEVEL_UP_MOVE(35, MOVE_CHARGE), + LEVEL_UP_MOVE(42, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(49, MOVE_SANDSTORM), + LEVEL_UP_MOVE(56, MOVE_WILD_CHARGE), + LEVEL_UP_MOVE(63, MOVE_PIN_MISSILE), + LEVEL_UP_MOVE(70, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(77, MOVE_STEALTH_ROCK), + LEVEL_UP_MOVE(84, MOVE_STONE_EDGE), + LEVEL_UP_MOVE(91, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFrigibaxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 6, MOVE_ICY_WIND), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(18, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(29, MOVE_ICE_FANG), + LEVEL_UP_MOVE(32, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(36, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(40, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(44, MOVE_CRUNCH), + LEVEL_UP_MOVE(48, MOVE_ICICLE_CRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sArctibaxLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 6, MOVE_ICY_WIND), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(18, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(29, MOVE_ICE_FANG), + LEVEL_UP_MOVE(40, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(45, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(50, MOVE_CRUNCH), + LEVEL_UP_MOVE(55, MOVE_ICICLE_CRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sBaxcaliburLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_GLAIVE_RUSH), + LEVEL_UP_MOVE( 1, MOVE_SNOWSCAPE), + LEVEL_UP_MOVE( 1, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 1, MOVE_ICE_SHARD), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 6, MOVE_ICY_WIND), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(18, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(24, MOVE_BITE), + LEVEL_UP_MOVE(29, MOVE_ICE_FANG), + LEVEL_UP_MOVE(35, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(42, MOVE_TAKE_DOWN), + LEVEL_UP_MOVE(48, MOVE_ICE_BEAM), + LEVEL_UP_MOVE(55, MOVE_CRUNCH), + LEVEL_UP_MOVE(62, MOVE_ICICLE_CRASH), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGimmighoulLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sGholdengoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_TACKLE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 7, MOVE_NIGHT_SHADE), + LEVEL_UP_MOVE(14, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(21, MOVE_SUBSTITUTE), + LEVEL_UP_MOVE(28, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(35, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(42, MOVE_RECOVER), + LEVEL_UP_MOVE(49, MOVE_POWER_GEM), + LEVEL_UP_MOVE(56, MOVE_MAKE_IT_RAIN), + LEVEL_UP_MOVE(63, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(70, MOVE_MEMENTO), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWoChienLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_ABSORB), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 5, MOVE_TICKLE), + LEVEL_UP_MOVE(10, MOVE_PAYBACK), + LEVEL_UP_MOVE(15, MOVE_POISON_POWDER), + LEVEL_UP_MOVE(15, MOVE_STUN_SPORE), + LEVEL_UP_MOVE(20, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(25, MOVE_LEECH_SEED), + LEVEL_UP_MOVE(30, MOVE_GROWTH), + LEVEL_UP_MOVE(35, MOVE_INGRAIN), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(45, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(50, MOVE_RUINATION), + LEVEL_UP_MOVE(55, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(60, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(65, MOVE_GRASSY_TERRAIN), + LEVEL_UP_MOVE(70, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(75, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sChienPaoLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 5, MOVE_ICY_WIND), + LEVEL_UP_MOVE(10, MOVE_PAYBACK), + LEVEL_UP_MOVE(15, MOVE_MIST), + LEVEL_UP_MOVE(15, MOVE_HAZE), + LEVEL_UP_MOVE(20, MOVE_ICE_SHARD), + LEVEL_UP_MOVE(25, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(30, MOVE_SNOWSCAPE), + LEVEL_UP_MOVE(35, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(45, MOVE_ICICLE_CRASH), + LEVEL_UP_MOVE(50, MOVE_RUINATION), + LEVEL_UP_MOVE(55, MOVE_SUCKER_PUNCH), + LEVEL_UP_MOVE(60, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(65, MOVE_RECOVER), + LEVEL_UP_MOVE(70, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(75, MOVE_SHEER_COLD), + LEVEL_UP_END +}; + +static const struct LevelUpMove sTingLuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 5, MOVE_SPIKES), + LEVEL_UP_MOVE(10, MOVE_PAYBACK), + LEVEL_UP_MOVE(15, MOVE_STOMP), + LEVEL_UP_MOVE(20, MOVE_BULLDOZE), + LEVEL_UP_MOVE(25, MOVE_WHIRLWIND), + LEVEL_UP_MOVE(30, MOVE_TAUNT), + LEVEL_UP_MOVE(35, MOVE_THRASH), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(45, MOVE_STOMPING_TANTRUM), + LEVEL_UP_MOVE(50, MOVE_RUINATION), + LEVEL_UP_MOVE(55, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(60, MOVE_ROCK_SLIDE), + LEVEL_UP_MOVE(65, MOVE_MEMENTO), + LEVEL_UP_MOVE(70, MOVE_EARTHQUAKE), + LEVEL_UP_MOVE(75, MOVE_FISSURE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sChiYuLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_EMBER), + LEVEL_UP_MOVE( 1, MOVE_SPITE), + LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), + LEVEL_UP_MOVE( 5, MOVE_FLAME_WHEEL), + LEVEL_UP_MOVE(10, MOVE_PAYBACK), + LEVEL_UP_MOVE(15, MOVE_WILL_O_WISP), + LEVEL_UP_MOVE(20, MOVE_FLAME_CHARGE), + LEVEL_UP_MOVE(25, MOVE_INCINERATE), + LEVEL_UP_MOVE(30, MOVE_CONFUSE_RAY), + LEVEL_UP_MOVE(35, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(40, MOVE_DARK_PULSE), + LEVEL_UP_MOVE(45, MOVE_LAVA_PLUME), + LEVEL_UP_MOVE(50, MOVE_RUINATION), + LEVEL_UP_MOVE(55, MOVE_BOUNCE), + LEVEL_UP_MOVE(60, MOVE_SWAGGER), + LEVEL_UP_MOVE(65, MOVE_INFERNO), + LEVEL_UP_MOVE(70, MOVE_MEMENTO), + LEVEL_UP_MOVE(75, MOVE_OVERHEAT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sRoaringMoonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE( 7, MOVE_INCINERATE), + LEVEL_UP_MOVE(14, MOVE_HEADBUTT), + LEVEL_UP_MOVE(21, MOVE_SCARY_FACE), + LEVEL_UP_MOVE(28, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(35, MOVE_ZEN_HEADBUTT), + LEVEL_UP_MOVE(42, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(49, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(56, MOVE_DRAGON_DANCE), + LEVEL_UP_MOVE(63, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(70, MOVE_FLY), + LEVEL_UP_MOVE(77, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(84, MOVE_ROOST), + LEVEL_UP_MOVE(91, MOVE_DOUBLE_EDGE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sIronValiantLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DISABLE), + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_TEAM), + LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), + LEVEL_UP_MOVE( 1, MOVE_FURY_CUTTER), + LEVEL_UP_MOVE( 7, MOVE_HYPNOSIS), + LEVEL_UP_MOVE(14, MOVE_FEINT), + LEVEL_UP_MOVE(21, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(28, MOVE_DAZZLING_GLEAM), + LEVEL_UP_MOVE(35, MOVE_PSYCHO_CUT), + LEVEL_UP_MOVE(42, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(49, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(56, MOVE_MOONBLAST), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_KNOCK_OFF), + LEVEL_UP_MOVE(77, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(84, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(84, MOVE_WIDE_GUARD), + LEVEL_UP_MOVE(91, MOVE_SPIRIT_BREAK), + LEVEL_UP_END +}; + +static const struct LevelUpMove sKoraidonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SUNNY_DAY), + LEVEL_UP_MOVE( 1, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE( 7, MOVE_ROCK_SMASH), + LEVEL_UP_MOVE(14, MOVE_ANCIENT_POWER), + LEVEL_UP_MOVE(21, MOVE_DRAIN_PUNCH), + LEVEL_UP_MOVE(28, MOVE_BRICK_BREAK), + LEVEL_UP_MOVE(35, MOVE_AGILITY), + LEVEL_UP_MOVE(42, MOVE_DRAGON_CLAW), + LEVEL_UP_MOVE(49, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(56, MOVE_COLLISION_COURSE), + LEVEL_UP_MOVE(63, MOVE_SCREECH), + LEVEL_UP_MOVE(70, MOVE_COUNTER), + LEVEL_UP_MOVE(77, MOVE_OUTRAGE), + LEVEL_UP_MOVE(84, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(91, MOVE_FLARE_BLITZ), + LEVEL_UP_MOVE(98, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMiraidonLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), + LEVEL_UP_MOVE( 1, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE( 1, MOVE_ELECTRIC_TERRAIN), + LEVEL_UP_MOVE( 7, MOVE_SHOCK_WAVE), + LEVEL_UP_MOVE(14, MOVE_CHARGE), + LEVEL_UP_MOVE(21, MOVE_PARABOLIC_CHARGE), + LEVEL_UP_MOVE(28, MOVE_DISCHARGE), + LEVEL_UP_MOVE(35, MOVE_AGILITY), + LEVEL_UP_MOVE(42, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(56, MOVE_ELECTRO_DRIFT), + LEVEL_UP_MOVE(63, MOVE_METAL_SOUND), + LEVEL_UP_MOVE(70, MOVE_MIRROR_COAT), + LEVEL_UP_MOVE(77, MOVE_OUTRAGE), + LEVEL_UP_MOVE(84, MOVE_THUNDER), + LEVEL_UP_MOVE(91, MOVE_OVERHEAT), + LEVEL_UP_MOVE(98, MOVE_HYPER_BEAM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sWalkingWakeLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_ROAR), + LEVEL_UP_MOVE( 1, MOVE_TWISTER), + LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), + LEVEL_UP_MOVE( 7, MOVE_BITE), + LEVEL_UP_MOVE(14, MOVE_WATER_PULSE), + LEVEL_UP_MOVE(21, MOVE_NOBLE_ROAR), + LEVEL_UP_MOVE(28, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(35, MOVE_BREAKING_SWIPE), + LEVEL_UP_MOVE(42, MOVE_DRAGON_RUSH), + LEVEL_UP_MOVE(56, MOVE_HYDRO_STEAM), + LEVEL_UP_MOVE(63, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(70, MOVE_OUTRAGE), + LEVEL_UP_MOVE(77, MOVE_FLAMETHROWER), + LEVEL_UP_MOVE(84, MOVE_HYDRO_PUMP), + LEVEL_UP_END +}; + +static const struct LevelUpMove sIronLeavesLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_LEER), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), + LEVEL_UP_MOVE( 1, MOVE_WORK_UP), + LEVEL_UP_MOVE( 7, MOVE_MAGICAL_LEAF), + LEVEL_UP_MOVE(14, MOVE_RETALIATE), + LEVEL_UP_MOVE(21, MOVE_QUICK_GUARD), + LEVEL_UP_MOVE(28, MOVE_NIGHT_SLASH), + LEVEL_UP_MOVE(35, MOVE_SWORDS_DANCE), + LEVEL_UP_MOVE(42, MOVE_SACRED_SWORD), + LEVEL_UP_MOVE(49, MOVE_LEAF_BLADE), + LEVEL_UP_MOVE(56, MOVE_PSYBLADE), + LEVEL_UP_MOVE(63, MOVE_CLOSE_COMBAT), + LEVEL_UP_MOVE(70, MOVE_IMPRISON), + LEVEL_UP_MOVE(77, MOVE_MEGAHORN), + LEVEL_UP_MOVE(84, MOVE_ALLY_SWITCH), + LEVEL_UP_MOVE(91, MOVE_SOLAR_BLADE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sDipplinLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_SWEET_SCENT), + LEVEL_UP_MOVE( 1, MOVE_RECYCLE), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 4, MOVE_DRAGON_TAIL), + LEVEL_UP_MOVE( 8, MOVE_GROWTH), + LEVEL_UP_MOVE(12, MOVE_DRAGON_BREATH), + LEVEL_UP_MOVE(16, MOVE_PROTECT), + LEVEL_UP_MOVE(20, MOVE_BULLET_SEED), + LEVEL_UP_MOVE(28, MOVE_SYRUP_BOMB), + LEVEL_UP_MOVE(32, MOVE_DRAGON_PULSE), + LEVEL_UP_MOVE(36, MOVE_RECOVER), + LEVEL_UP_MOVE(40, MOVE_ENERGY_BALL), + LEVEL_UP_MOVE(44, MOVE_SUBSTITUTE), + LEVEL_UP_END +}; + +static const struct LevelUpMove sPoltchageistLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(12, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(18, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(30, MOVE_HEX), + LEVEL_UP_MOVE(36, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(42, MOVE_GIGA_DRAIN), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_MEMENTO), + LEVEL_UP_MOVE(60, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sSinistchaLevelUpLearnset[] = { + LEVEL_UP_MOVE( 0, MOVE_MATCHA_GOTCHA), + LEVEL_UP_MOVE( 1, MOVE_STUN_SPORE), + LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 6, MOVE_ABSORB), + LEVEL_UP_MOVE(12, MOVE_LIFE_DEW), + LEVEL_UP_MOVE(18, MOVE_FOUL_PLAY), + LEVEL_UP_MOVE(24, MOVE_MEGA_DRAIN), + LEVEL_UP_MOVE(30, MOVE_HEX), + LEVEL_UP_MOVE(36, MOVE_RAGE_POWDER), + LEVEL_UP_MOVE(42, MOVE_STRENGTH_SAP), + LEVEL_UP_MOVE(48, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(54, MOVE_MEMENTO), + LEVEL_UP_MOVE(60, MOVE_LEAF_STORM), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOkidogiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_BITE), + LEVEL_UP_MOVE( 1, MOVE_LOW_KICK), + LEVEL_UP_MOVE( 1, MOVE_BULK_UP), + LEVEL_UP_MOVE( 8, MOVE_HOWL), + LEVEL_UP_MOVE(16, MOVE_POISON_FANG), + LEVEL_UP_MOVE(24, MOVE_FORCE_PALM), + LEVEL_UP_MOVE(32, MOVE_COUNTER), + LEVEL_UP_MOVE(40, MOVE_POISON_JAB), + LEVEL_UP_MOVE(48, MOVE_BRUTAL_SWING), + LEVEL_UP_MOVE(56, MOVE_CRUNCH), + LEVEL_UP_MOVE(64, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(72, MOVE_GIGA_IMPACT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sMunkidoriLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SCRATCH), + LEVEL_UP_MOVE( 1, MOVE_CONFUSION), + LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), + LEVEL_UP_MOVE( 1, MOVE_FLATTER), + LEVEL_UP_MOVE( 8, MOVE_HELPING_HAND), + LEVEL_UP_MOVE(16, MOVE_PSYBEAM), + LEVEL_UP_MOVE(24, MOVE_CLEAR_SMOG), + LEVEL_UP_MOVE(32, MOVE_POISON_JAB), + LEVEL_UP_MOVE(40, MOVE_PSYCHIC), + LEVEL_UP_MOVE(48, MOVE_SLUDGE_WAVE), + LEVEL_UP_MOVE(56, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(64, MOVE_FUTURE_SIGHT), + LEVEL_UP_MOVE(72, MOVE_PARTING_SHOT), + LEVEL_UP_END +}; + +static const struct LevelUpMove sFezandipitiLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_DOUBLE_KICK), + LEVEL_UP_MOVE( 1, MOVE_PECK), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), + LEVEL_UP_MOVE( 8, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE(16, MOVE_ATTRACT), + LEVEL_UP_MOVE(24, MOVE_WING_ATTACK), + LEVEL_UP_MOVE(32, MOVE_CROSS_POISON), + LEVEL_UP_MOVE(40, MOVE_TAIL_SLAP), + LEVEL_UP_MOVE(48, MOVE_BEAT_UP), + LEVEL_UP_MOVE(56, MOVE_FLATTER), + LEVEL_UP_MOVE(56, MOVE_SWAGGER), + LEVEL_UP_MOVE(64, MOVE_ROOST), + LEVEL_UP_MOVE(72, MOVE_MOONBLAST), + LEVEL_UP_END +}; + +static const struct LevelUpMove sOgerponLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), + LEVEL_UP_MOVE( 1, MOVE_LEECH_SEED), + LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), + LEVEL_UP_MOVE( 1, MOVE_FOLLOW_ME), + LEVEL_UP_MOVE( 6, MOVE_FOCUS_ENERGY), + LEVEL_UP_MOVE(12, MOVE_GROWTH), + LEVEL_UP_MOVE(18, MOVE_SLAM), + LEVEL_UP_MOVE(24, MOVE_LOW_SWEEP), + LEVEL_UP_MOVE(30, MOVE_IVY_CUDGEL), + LEVEL_UP_MOVE(36, MOVE_THROAT_CHOP), + LEVEL_UP_MOVE(42, MOVE_SYNTHESIS), + LEVEL_UP_MOVE(48, MOVE_SPIKY_SHIELD), + LEVEL_UP_MOVE(54, MOVE_POWER_WHIP), + LEVEL_UP_MOVE(60, MOVE_SUPERPOWER), + LEVEL_UP_MOVE(66, MOVE_WOOD_HAMMER), + LEVEL_UP_END +}; + +#endif diff --git a/src/data/pokemon/pokedex_entries.h b/src/data/pokemon/pokedex_entries.h deleted file mode 100644 index 56af95f1b711..000000000000 --- a/src/data/pokemon/pokedex_entries.h +++ /dev/null @@ -1,10884 +0,0 @@ -const struct PokedexEntry gPokedexEntries[] = -{ - [NATIONAL_DEX_NONE] = - { - .categoryName = _("Unknown"), - .height = 0, - .weight = 0, - .description = gDummyPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BULBASAUR] = - { - .categoryName = _("Seed"), - .height = 7, - .weight = 69, - .description = gBulbasaurPokedexText, - .pokemonScale = 356, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_IVYSAUR] = - { - .categoryName = _("Seed"), - .height = 10, - .weight = 130, - .description = gIvysaurPokedexText, - .pokemonScale = 335, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_VENUSAUR] = - { - .categoryName = _("Seed"), - .height = 20, - .weight = 1000, - .description = gVenusaurPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 388, - .trainerOffset = 6, - }, - - [NATIONAL_DEX_CHARMANDER] = - { - .categoryName = _("Lizard"), - .height = 6, - .weight = 85, - .description = gCharmanderPokedexText, - .pokemonScale = 444, - .pokemonOffset = 18, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CHARMELEON] = - { - .categoryName = _("Flame"), - .height = 11, - .weight = 190, - .description = gCharmeleonPokedexText, - .pokemonScale = 302, - .pokemonOffset = 9, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CHARIZARD] = - { - .categoryName = _("Flame"), - .height = 17, - .weight = 905, - .description = gCharizardPokedexText, - .pokemonScale = 256, - .pokemonOffset = 1, - .trainerScale = 302, - .trainerOffset = 3, - }, - - [NATIONAL_DEX_SQUIRTLE] = - { - .categoryName = _("Tiny Turtle"), - .height = 5, - .weight = 90, - .description = gSquirtlePokedexText, - .pokemonScale = 412, - .pokemonOffset = 18, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_WARTORTLE] = - { - .categoryName = _("Turtle"), - .height = 10, - .weight = 225, - .description = gWartortlePokedexText, - .pokemonScale = 332, - .pokemonOffset = 10, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BLASTOISE] = - { - .categoryName = _("Shellfish"), - .height = 16, - .weight = 855, - .description = gBlastoisePokedexText, - .pokemonScale = 256, - .pokemonOffset = -1, - .trainerScale = 293, - .trainerOffset = 2, - }, - - [NATIONAL_DEX_CATERPIE] = - { - .categoryName = _("Worm"), - .height = 3, - .weight = 29, - .description = gCaterpiePokedexText, - .pokemonScale = 549, - .pokemonOffset = 22, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_METAPOD] = - { - .categoryName = _("Cocoon"), - .height = 7, - .weight = 99, - .description = gMetapodPokedexText, - .pokemonScale = 350, - .pokemonOffset = 18, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BUTTERFREE] = - { - .categoryName = _("Butterfly"), - .height = 11, - .weight = 320, - .description = gButterfreePokedexText, - .pokemonScale = 312, - .pokemonOffset = 2, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_WEEDLE] = - { - .categoryName = _("Hairy Bug"), - .height = 3, - .weight = 32, - .description = gWeedlePokedexText, - .pokemonScale = 455, - .pokemonOffset = 22, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_KAKUNA] = - { - .categoryName = _("Cocoon"), - .height = 6, - .weight = 100, - .description = gKakunaPokedexText, - .pokemonScale = 424, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BEEDRILL] = - { - .categoryName = _("Poison Bee"), - .height = 10, - .weight = 295, - .description = gBeedrillPokedexText, - .pokemonScale = 366, - .pokemonOffset = 2, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PIDGEY] = - { - .categoryName = _("Tiny Bird"), - .height = 3, - .weight = 18, - .description = gPidgeyPokedexText, - .pokemonScale = 508, - .pokemonOffset = -3, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PIDGEOTTO] = - { - .categoryName = _("Bird"), - .height = 11, - .weight = 300, - .description = gPidgeottoPokedexText, - .pokemonScale = 331, - .pokemonOffset = 10, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PIDGEOT] = - { - .categoryName = _("Bird"), - .height = 15, - .weight = 395, - .description = gPidgeotPokedexText, - .pokemonScale = 269, - .pokemonOffset = 0, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_RATTATA] = - { - .categoryName = _("Mouse"), - .height = 3, - .weight = 35, - .description = gRattataPokedexText, - .pokemonScale = 481, - .pokemonOffset = 21, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_RATICATE] = - { - .categoryName = _("Mouse"), - .height = 7, - .weight = 185, - .description = gRaticatePokedexText, - .pokemonScale = 459, - .pokemonOffset = 18, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SPEAROW] = - { - .categoryName = _("Tiny Bird"), - .height = 3, - .weight = 20, - .description = gSpearowPokedexText, - .pokemonScale = 571, - .pokemonOffset = 22, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_FEAROW] = - { - .categoryName = _("Beak"), - .height = 12, - .weight = 380, - .description = gFearowPokedexText, - .pokemonScale = 278, - .pokemonOffset = 1, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_EKANS] = - { - .categoryName = _("Snake"), - .height = 20, - .weight = 69, - .description = gEkansPokedexText, - .pokemonScale = 298, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ARBOK] = - { - .categoryName = _("Cobra"), - .height = 35, - .weight = 650, - .description = gArbokPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 296, - .trainerOffset = 2, - }, - - [NATIONAL_DEX_PIKACHU] = - { - .categoryName = _("Mouse"), - .height = 4, - .weight = 60, - .description = gPikachuPokedexText, - .pokemonScale = 479, - .pokemonOffset = 19, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_RAICHU] = - { - .categoryName = _("Mouse"), - .height = 8, - .weight = 300, - .description = gRaichuPokedexText, - .pokemonScale = 426, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SANDSHREW] = - { - .categoryName = _("Mouse"), - .height = 6, - .weight = 120, - .description = gSandshrewPokedexText, - .pokemonScale = 365, - .pokemonOffset = 18, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SANDSLASH] = - { - .categoryName = _("Mouse"), - .height = 10, - .weight = 295, - .description = gSandslashPokedexText, - .pokemonScale = 341, - .pokemonOffset = 11, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_NIDORAN_F] = - { - .categoryName = _("Poison Pin"), - .height = 4, - .weight = 70, - .description = gNidoranFPokedexText, - .pokemonScale = 488, - .pokemonOffset = 21, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_NIDORINA] = - { - .categoryName = _("Poison Pin"), - .height = 8, - .weight = 200, - .description = gNidorinaPokedexText, - .pokemonScale = 381, - .pokemonOffset = 15, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_NIDOQUEEN] = - { - .categoryName = _("Drill"), - .height = 13, - .weight = 600, - .description = gNidoqueenPokedexText, - .pokemonScale = 293, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_NIDORAN_M] = - { - .categoryName = _("Poison Pin"), - .height = 5, - .weight = 90, - .description = gNidoranMPokedexText, - .pokemonScale = 511, - .pokemonOffset = 20, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_NIDORINO] = - { - .categoryName = _("Poison Pin"), - .height = 9, - .weight = 195, - .description = gNidorinoPokedexText, - .pokemonScale = 408, - .pokemonOffset = 15, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_NIDOKING] = - { - .categoryName = _("Drill"), - .height = 14, - .weight = 620, - .description = gNidokingPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CLEFAIRY] = - { - .categoryName = _("Fairy"), - .height = 6, - .weight = 75, - .description = gClefairyPokedexText, - .pokemonScale = 441, - .pokemonOffset = 20, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CLEFABLE] = - { - .categoryName = _("Fairy"), - .height = 13, - .weight = 400, - .description = gClefablePokedexText, - .pokemonScale = 256, - .pokemonOffset = 5, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_VULPIX] = - { - .categoryName = _("Fox"), - .height = 6, - .weight = 99, - .description = gVulpixPokedexText, - .pokemonScale = 542, - .pokemonOffset = 19, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_NINETALES] = - { - .categoryName = _("Fox"), - .height = 11, - .weight = 199, - .description = gNinetalesPokedexText, - .pokemonScale = 339, - .pokemonOffset = 10, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_JIGGLYPUFF] = - { - .categoryName = _("Balloon"), - .height = 5, - .weight = 55, - .description = gJigglypuffPokedexText, - .pokemonScale = 433, - .pokemonOffset = 2, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_WIGGLYTUFF] = - { - .categoryName = _("Balloon"), - .height = 10, - .weight = 120, - .description = gWigglytuffPokedexText, - .pokemonScale = 328, - .pokemonOffset = 11, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ZUBAT] = - { - .categoryName = _("Bat"), - .height = 8, - .weight = 75, - .description = gZubatPokedexText, - .pokemonScale = 362, - .pokemonOffset = -5, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GOLBAT] = - { - .categoryName = _("Bat"), - .height = 16, - .weight = 550, - .description = gGolbatPokedexText, - .pokemonScale = 256, - .pokemonOffset = 1, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ODDISH] = - { - .categoryName = _("Weed"), - .height = 5, - .weight = 54, - .description = gOddishPokedexText, - .pokemonScale = 423, - .pokemonOffset = 19, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GLOOM] = - { - .categoryName = _("Weed"), - .height = 8, - .weight = 86, - .description = gGloomPokedexText, - .pokemonScale = 329, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_VILEPLUME] = - { - .categoryName = _("Flower"), - .height = 12, - .weight = 186, - .description = gVileplumePokedexText, - .pokemonScale = 256, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PARAS] = - { - .categoryName = _("Mushroom"), - .height = 3, - .weight = 54, - .description = gParasPokedexText, - .pokemonScale = 593, - .pokemonOffset = 22, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PARASECT] = - { - .categoryName = _("Mushroom"), - .height = 10, - .weight = 295, - .description = gParasectPokedexText, - .pokemonScale = 307, - .pokemonOffset = 8, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_VENONAT] = - { - .categoryName = _("Insect"), - .height = 10, - .weight = 300, - .description = gVenonatPokedexText, - .pokemonScale = 360, - .pokemonOffset = 0, - .trainerScale = 256, - .trainerOffset = -1, - }, - - [NATIONAL_DEX_VENOMOTH] = - { - .categoryName = _("Poison Moth"), - .height = 15, - .weight = 125, - .description = gVenomothPokedexText, - .pokemonScale = 285, - .pokemonOffset = 2, - .trainerScale = 256, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_DIGLETT] = - { - .categoryName = _("Mole"), - .height = 2, - .weight = 8, - .description = gDiglettPokedexText, - .pokemonScale = 833, - .pokemonOffset = 25, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DUGTRIO] = - { - .categoryName = _("Mole"), - .height = 7, - .weight = 333, - .description = gDugtrioPokedexText, - .pokemonScale = 406, - .pokemonOffset = 18, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MEOWTH] = - { - .categoryName = _("Scratch Cat"), - .height = 4, - .weight = 42, - .description = gMeowthPokedexText, - .pokemonScale = 480, - .pokemonOffset = 19, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PERSIAN] = - { - .categoryName = _("Classy Cat"), - .height = 10, - .weight = 320, - .description = gPersianPokedexText, - .pokemonScale = 320, - .pokemonOffset = 10, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PSYDUCK] = - { - .categoryName = _("Duck"), - .height = 8, - .weight = 196, - .description = gPsyduckPokedexText, - .pokemonScale = 369, - .pokemonOffset = 15, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GOLDUCK] = - { - .categoryName = _("Duck"), - .height = 17, - .weight = 766, - .description = gGolduckPokedexText, - .pokemonScale = 256, - .pokemonOffset = 1, - .trainerScale = 273, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_MANKEY] = - { - .categoryName = _("Pig Monkey"), - .height = 5, - .weight = 280, - .description = gMankeyPokedexText, - .pokemonScale = 404, - .pokemonOffset = 19, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PRIMEAPE] = - { - .categoryName = _("Pig Monkey"), - .height = 10, - .weight = 320, - .description = gPrimeapePokedexText, - .pokemonScale = 326, - .pokemonOffset = 10, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GROWLITHE] = - { - .categoryName = _("Puppy"), - .height = 7, - .weight = 190, - .description = gGrowlithePokedexText, - .pokemonScale = 346, - .pokemonOffset = 14, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ARCANINE] = - { - .categoryName = _("Legendary"), - .height = 19, - .weight = 1550, - .description = gArcaninePokedexText, - .pokemonScale = 256, - .pokemonOffset = 1, - .trainerScale = 312, - .trainerOffset = 4, - }, - - [NATIONAL_DEX_POLIWAG] = - { - .categoryName = _("Tadpole"), - .height = 6, - .weight = 124, - .description = gPoliwagPokedexText, - .pokemonScale = 369, - .pokemonOffset = 20, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_POLIWHIRL] = - { - .categoryName = _("Tadpole"), - .height = 10, - .weight = 200, - .description = gPoliwhirlPokedexText, - .pokemonScale = 288, - .pokemonOffset = 11, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_POLIWRATH] = - { - .categoryName = _("Tadpole"), - .height = 13, - .weight = 540, - .description = gPoliwrathPokedexText, - .pokemonScale = 256, - .pokemonOffset = 6, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ABRA] = - { - .categoryName = _("Psi"), - .height = 9, - .weight = 195, - .description = gAbraPokedexText, - .pokemonScale = 363, - .pokemonOffset = 14, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_KADABRA] = - { - .categoryName = _("Psi"), - .height = 13, - .weight = 565, - .description = gKadabraPokedexText, - .pokemonScale = 256, - .pokemonOffset = 3, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ALAKAZAM] = - { - .categoryName = _("Psi"), - .height = 15, - .weight = 480, - .description = gAlakazamPokedexText, - .pokemonScale = 256, - .pokemonOffset = 3, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MACHOP] = - { - .categoryName = _("Superpower"), - .height = 8, - .weight = 195, - .description = gMachopPokedexText, - .pokemonScale = 342, - .pokemonOffset = 14, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MACHOKE] = - { - .categoryName = _("Superpower"), - .height = 15, - .weight = 705, - .description = gMachokePokedexText, - .pokemonScale = 323, - .pokemonOffset = 9, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MACHAMP] = - { - .categoryName = _("Superpower"), - .height = 16, - .weight = 1300, - .description = gMachampPokedexText, - .pokemonScale = 280, - .pokemonOffset = 1, - .trainerScale = 269, - .trainerOffset = -1, - }, - - [NATIONAL_DEX_BELLSPROUT] = - { - .categoryName = _("Flower"), - .height = 7, - .weight = 40, - .description = gBellsproutPokedexText, - .pokemonScale = 354, - .pokemonOffset = 16, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_WEEPINBELL] = - { - .categoryName = _("Flycatcher"), - .height = 10, - .weight = 64, - .description = gWeepinbellPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_VICTREEBEL] = - { - .categoryName = _("Flycatcher"), - .height = 17, - .weight = 155, - .description = gVictreebelPokedexText, - .pokemonScale = 256, - .pokemonOffset = 1, - .trainerScale = 312, - .trainerOffset = 3, - }, - - [NATIONAL_DEX_TENTACOOL] = - { - .categoryName = _("Jellyfish"), - .height = 9, - .weight = 455, - .description = gTentacoolPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_TENTACRUEL] = - { - .categoryName = _("Jellyfish"), - .height = 16, - .weight = 550, - .description = gTentacruelPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 312, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_GEODUDE] = - { - .categoryName = _("Rock"), - .height = 4, - .weight = 200, - .description = gGeodudePokedexText, - .pokemonScale = 347, - .pokemonOffset = 18, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GRAVELER] = - { - .categoryName = _("Rock"), - .height = 10, - .weight = 1050, - .description = gGravelerPokedexText, - .pokemonScale = 256, - .pokemonOffset = 2, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GOLEM] = - { - .categoryName = _("Megaton"), - .height = 14, - .weight = 3000, - .description = gGolemPokedexText, - .pokemonScale = 256, - .pokemonOffset = 3, - .trainerScale = 296, - .trainerOffset = 2, - }, - - [NATIONAL_DEX_PONYTA] = - { - .categoryName = _("Fire Horse"), - .height = 10, - .weight = 300, - .description = gPonytaPokedexText, - .pokemonScale = 283, - .pokemonOffset = 8, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_RAPIDASH] = - { - .categoryName = _("Fire Horse"), - .height = 17, - .weight = 950, - .description = gRapidashPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 289, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_SLOWPOKE] = - { - .categoryName = _("Dopey"), - .height = 12, - .weight = 360, - .description = gSlowpokePokedexText, - .pokemonScale = 256, - .pokemonOffset = 10, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SLOWBRO] = - { - .categoryName = _("Hermit Crab"), - .height = 16, - .weight = 785, - .description = gSlowbroPokedexText, - .pokemonScale = 256, - .pokemonOffset = 6, - .trainerScale = 296, - .trainerOffset = 2, - }, - - [NATIONAL_DEX_MAGNEMITE] = - { - .categoryName = _("Magnet"), - .height = 3, - .weight = 60, - .description = gMagnemitePokedexText, - .pokemonScale = 288, - .pokemonOffset = -9, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MAGNETON] = - { - .categoryName = _("Magnet"), - .height = 10, - .weight = 600, - .description = gMagnetonPokedexText, - .pokemonScale = 292, - .pokemonOffset = 1, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_FARFETCHD] = - { - .categoryName = _("Wild Duck"), - .height = 8, - .weight = 150, - .description = gFarfetchdPokedexText, - .pokemonScale = 330, - .pokemonOffset = 2, - .trainerScale = 293, - .trainerOffset = 2, - }, - - [NATIONAL_DEX_DODUO] = - { - .categoryName = _("Twin Bird"), - .height = 14, - .weight = 392, - .description = gDoduoPokedexText, - .pokemonScale = 256, - .pokemonOffset = 3, - .trainerScale = 257, - .trainerOffset = -1, - }, - - [NATIONAL_DEX_DODRIO] = - { - .categoryName = _("Triple Bird"), - .height = 18, - .weight = 852, - .description = gDodrioPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 268, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SEEL] = - { - .categoryName = _("Sea Lion"), - .height = 11, - .weight = 900, - .description = gSeelPokedexText, - .pokemonScale = 297, - .pokemonOffset = 8, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DEWGONG] = - { - .categoryName = _("Sea Lion"), - .height = 17, - .weight = 1200, - .description = gDewgongPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 275, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GRIMER] = - { - .categoryName = _("Sludge"), - .height = 9, - .weight = 300, - .description = gGrimerPokedexText, - .pokemonScale = 258, - .pokemonOffset = 10, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MUK] = - { - .categoryName = _("Sludge"), - .height = 12, - .weight = 300, - .description = gMukPokedexText, - .pokemonScale = 256, - .pokemonOffset = 2, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SHELLDER] = - { - .categoryName = _("Bivalve"), - .height = 3, - .weight = 40, - .description = gShellderPokedexText, - .pokemonScale = 675, - .pokemonOffset = 24, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CLOYSTER] = - { - .categoryName = _("Bivalve"), - .height = 15, - .weight = 1325, - .description = gCloysterPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 269, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_GASTLY] = - { - .categoryName = _("Gas"), - .height = 13, - .weight = 1, - .description = gGastlyPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_HAUNTER] = - { - .categoryName = _("Gas"), - .height = 16, - .weight = 1, - .description = gHaunterPokedexText, - .pokemonScale = 256, - .pokemonOffset = 2, - .trainerScale = 293, - .trainerOffset = 2, - }, - - [NATIONAL_DEX_GENGAR] = - { - .categoryName = _("Shadow"), - .height = 15, - .weight = 405, - .description = gGengarPokedexText, - .pokemonScale = 256, - .pokemonOffset = 2, - .trainerScale = 302, - .trainerOffset = 2, - }, - - [NATIONAL_DEX_ONIX] = - { - .categoryName = _("Rock Snake"), - .height = 88, - .weight = 2100, - .description = gOnixPokedexText, - .pokemonScale = 256, - .pokemonOffset = 1, - .trainerScale = 515, - .trainerOffset = 14, - }, - - [NATIONAL_DEX_DROWZEE] = - { - .categoryName = _("Hypnosis"), - .height = 10, - .weight = 324, - .description = gDrowzeePokedexText, - .pokemonScale = 274, - .pokemonOffset = 6, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_HYPNO] = - { - .categoryName = _("Hypnosis"), - .height = 16, - .weight = 756, - .description = gHypnoPokedexText, - .pokemonScale = 256, - .pokemonOffset = 3, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_KRABBY] = - { - .categoryName = _("River Crab"), - .height = 4, - .weight = 65, - .description = gKrabbyPokedexText, - .pokemonScale = 469, - .pokemonOffset = 20, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_KINGLER] = - { - .categoryName = _("Pincer"), - .height = 13, - .weight = 600, - .description = gKinglerPokedexText, - .pokemonScale = 256, - .pokemonOffset = 2, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_VOLTORB] = - { - .categoryName = _("Ball"), - .height = 5, - .weight = 104, - .description = gVoltorbPokedexText, - .pokemonScale = 364, - .pokemonOffset = -8, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ELECTRODE] = - { - .categoryName = _("Ball"), - .height = 12, - .weight = 666, - .description = gElectrodePokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_EXEGGCUTE] = - { - .categoryName = _("Egg"), - .height = 4, - .weight = 25, - .description = gExeggcutePokedexText, - .pokemonScale = 489, - .pokemonOffset = -4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_EXEGGUTOR] = - { - .categoryName = _("Coconut"), - .height = 20, - .weight = 1200, - .description = gExeggutorPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 309, - .trainerOffset = 5, - }, - - [NATIONAL_DEX_CUBONE] = - { - .categoryName = _("Lonely"), - .height = 4, - .weight = 65, - .description = gCubonePokedexText, - .pokemonScale = 545, - .pokemonOffset = 21, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MAROWAK] = - { - .categoryName = _("Bone Keeper"), - .height = 10, - .weight = 450, - .description = gMarowakPokedexText, - .pokemonScale = 293, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_HITMONLEE] = - { - .categoryName = _("Kicking"), - .height = 15, - .weight = 498, - .description = gHitmonleePokedexText, - .pokemonScale = 256, - .pokemonOffset = 3, - .trainerScale = 259, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_HITMONCHAN] = - { - .categoryName = _("Punching"), - .height = 14, - .weight = 502, - .description = gHitmonchanPokedexText, - .pokemonScale = 256, - .pokemonOffset = 2, - .trainerScale = 277, - .trainerOffset = 2, - }, - - [NATIONAL_DEX_LICKITUNG] = - { - .categoryName = _("Licking"), - .height = 12, - .weight = 655, - .description = gLickitungPokedexText, - .pokemonScale = 256, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_KOFFING] = - { - .categoryName = _("Poison Gas"), - .height = 6, - .weight = 10, - .description = gKoffingPokedexText, - .pokemonScale = 369, - .pokemonOffset = -1, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_WEEZING] = - { - .categoryName = _("Poison Gas"), - .height = 12, - .weight = 95, - .description = gWeezingPokedexText, - .pokemonScale = 305, - .pokemonOffset = 3, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_RHYHORN] = - { - .categoryName = _("Spikes"), - .height = 10, - .weight = 1150, - .description = gRhyhornPokedexText, - .pokemonScale = 267, - .pokemonOffset = 6, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_RHYDON] = - { - .categoryName = _("Drill"), - .height = 19, - .weight = 1200, - .description = gRhydonPokedexText, - .pokemonScale = 256, - .pokemonOffset = 1, - .trainerScale = 299, - .trainerOffset = 2, - }, - - [NATIONAL_DEX_CHANSEY] = - { - .categoryName = _("Egg"), - .height = 11, - .weight = 346, - .description = gChanseyPokedexText, - .pokemonScale = 257, - .pokemonOffset = 7, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_TANGELA] = - { - .categoryName = _("Vine"), - .height = 10, - .weight = 350, - .description = gTangelaPokedexText, - .pokemonScale = 304, - .pokemonOffset = 1, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_KANGASKHAN] = - { - .categoryName = _("Parent"), - .height = 22, - .weight = 800, - .description = gKangaskhanPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 387, - .trainerOffset = 8, - }, - - [NATIONAL_DEX_HORSEA] = - { - .categoryName = _("Dragon"), - .height = 4, - .weight = 80, - .description = gHorseaPokedexText, - .pokemonScale = 399, - .pokemonOffset = -1, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SEADRA] = - { - .categoryName = _("Dragon"), - .height = 12, - .weight = 250, - .description = gSeadraPokedexText, - .pokemonScale = 299, - .pokemonOffset = 3, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GOLDEEN] = - { - .categoryName = _("Goldfish"), - .height = 6, - .weight = 150, - .description = gGoldeenPokedexText, - .pokemonScale = 379, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SEAKING] = - { - .categoryName = _("Goldfish"), - .height = 13, - .weight = 390, - .description = gSeakingPokedexText, - .pokemonScale = 256, - .pokemonOffset = 3, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_STARYU] = - { - .categoryName = _("Star Shape"), - .height = 8, - .weight = 345, - .description = gStaryuPokedexText, - .pokemonScale = 326, - .pokemonOffset = 1, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_STARMIE] = - { - .categoryName = _("Mysterious"), - .height = 11, - .weight = 800, - .description = gStarmiePokedexText, - .pokemonScale = 301, - .pokemonOffset = 3, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MR_MIME] = - { - .categoryName = _("Barrier"), - .height = 13, - .weight = 545, - .description = gMrMimePokedexText, - .pokemonScale = 258, - .pokemonOffset = 6, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SCYTHER] = - { - .categoryName = _("Mantis"), - .height = 15, - .weight = 560, - .description = gScytherPokedexText, - .pokemonScale = 256, - .pokemonOffset = 1, - .trainerScale = 293, - .trainerOffset = 2, - }, - - [NATIONAL_DEX_JYNX] = - { - .categoryName = _("Human Shape"), - .height = 14, - .weight = 406, - .description = gJynxPokedexText, - .pokemonScale = 256, - .pokemonOffset = 3, - .trainerScale = 300, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_ELECTABUZZ] = - { - .categoryName = _("Electric"), - .height = 11, - .weight = 300, - .description = gElectabuzzPokedexText, - .pokemonScale = 351, - .pokemonOffset = 8, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MAGMAR] = - { - .categoryName = _("Spitfire"), - .height = 13, - .weight = 445, - .description = gMagmarPokedexText, - .pokemonScale = 277, - .pokemonOffset = 5, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PINSIR] = - { - .categoryName = _("Stag Beetle"), - .height = 15, - .weight = 550, - .description = gPinsirPokedexText, - .pokemonScale = 256, - .pokemonOffset = 2, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_TAUROS] = - { - .categoryName = _("Wild Bull"), - .height = 14, - .weight = 884, - .description = gTaurosPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MAGIKARP] = - { - .categoryName = _("Fish"), - .height = 9, - .weight = 100, - .description = gMagikarpPokedexText, - .pokemonScale = 310, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GYARADOS] = - { - .categoryName = _("Atrocious"), - .height = 65, - .weight = 2350, - .description = gGyaradosPokedexText, - .pokemonScale = 256, - .pokemonOffset = 6, - .trainerScale = 481, - .trainerOffset = 13, - }, - - [NATIONAL_DEX_LAPRAS] = - { - .categoryName = _("Transport"), - .height = 25, - .weight = 2200, - .description = gLaprasPokedexText, - .pokemonScale = 257, - .pokemonOffset = 10, - .trainerScale = 423, - .trainerOffset = 8, - }, - - [NATIONAL_DEX_DITTO] = - { - .categoryName = _("Transform"), - .height = 3, - .weight = 40, - .description = gDittoPokedexText, - .pokemonScale = 633, - .pokemonOffset = 23, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_EEVEE] = - { - .categoryName = _("Evolution"), - .height = 3, - .weight = 65, - .description = gEeveePokedexText, - .pokemonScale = 476, - .pokemonOffset = 18, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_VAPOREON] = - { - .categoryName = _("Bubble Jet"), - .height = 10, - .weight = 290, - .description = gVaporeonPokedexText, - .pokemonScale = 316, - .pokemonOffset = 8, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_JOLTEON] = - { - .categoryName = _("Lightning"), - .height = 8, - .weight = 245, - .description = gJolteonPokedexText, - .pokemonScale = 283, - .pokemonOffset = 8, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_FLAREON] = - { - .categoryName = _("Flame"), - .height = 9, - .weight = 250, - .description = gFlareonPokedexText, - .pokemonScale = 306, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PORYGON] = - { - .categoryName = _("Virtual"), - .height = 8, - .weight = 365, - .description = gPorygonPokedexText, - .pokemonScale = 328, - .pokemonOffset = 15, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_OMANYTE] = - { - .categoryName = _("Spiral"), - .height = 4, - .weight = 75, - .description = gOmanytePokedexText, - .pokemonScale = 521, - .pokemonOffset = 22, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_OMASTAR] = - { - .categoryName = _("Spiral"), - .height = 10, - .weight = 350, - .description = gOmastarPokedexText, - .pokemonScale = 307, - .pokemonOffset = 7, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_KABUTO] = - { - .categoryName = _("Shellfish"), - .height = 5, - .weight = 115, - .description = gKabutoPokedexText, - .pokemonScale = 454, - .pokemonOffset = 21, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_KABUTOPS] = - { - .categoryName = _("Shellfish"), - .height = 13, - .weight = 405, - .description = gKabutopsPokedexText, - .pokemonScale = 271, - .pokemonOffset = 3, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_AERODACTYL] = - { - .categoryName = _("Fossil"), - .height = 18, - .weight = 590, - .description = gAerodactylPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 302, - .trainerOffset = 4, - }, - - [NATIONAL_DEX_SNORLAX] = - { - .categoryName = _("Sleeping"), - .height = 21, - .weight = 4600, - .description = gSnorlaxPokedexText, - .pokemonScale = 256, - .pokemonOffset = 4, - .trainerScale = 423, - .trainerOffset = 11, - }, - - [NATIONAL_DEX_ARTICUNO] = - { - .categoryName = _("Freeze"), - .height = 17, - .weight = 554, - .description = gArticunoPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 309, - .trainerOffset = 2, - }, - - [NATIONAL_DEX_ZAPDOS] = - { - .categoryName = _("Electric"), - .height = 16, - .weight = 526, - .description = gZapdosPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 318, - .trainerOffset = 3, - }, - - [NATIONAL_DEX_MOLTRES] = - { - .categoryName = _("Flame"), - .height = 20, - .weight = 600, - .description = gMoltresPokedexText, - .pokemonScale = 270, - .pokemonOffset = 0, - .trainerScale = 387, - .trainerOffset = 8, - }, - - [NATIONAL_DEX_DRATINI] = - { - .categoryName = _("Dragon"), - .height = 18, - .weight = 33, - .description = gDratiniPokedexText, - .pokemonScale = 256, - .pokemonOffset = 8, - .trainerScale = 386, - .trainerOffset = 6, - }, - - [NATIONAL_DEX_DRAGONAIR] = - { - .categoryName = _("Dragon"), - .height = 40, - .weight = 165, - .description = gDragonairPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 411, - .trainerOffset = 5, - }, - - [NATIONAL_DEX_DRAGONITE] = - { - .categoryName = _("Dragon"), - .height = 22, - .weight = 2100, - .description = gDragonitePokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 309, - .trainerOffset = 4, - }, - - [NATIONAL_DEX_MEWTWO] = - { - .categoryName = _("Genetic"), - .height = 20, - .weight = 1220, - .description = gMewtwoPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 309, - .trainerOffset = 4, - }, - - [NATIONAL_DEX_MEW] = - { - .categoryName = _("New Species"), - .height = 4, - .weight = 40, - .description = gMewPokedexText, - .pokemonScale = 457, - .pokemonOffset = -2, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CHIKORITA] = - { - .categoryName = _("Leaf"), - .height = 9, - .weight = 64, - .description = gChikoritaPokedexText, - .pokemonScale = 512, - .pokemonOffset = 20, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BAYLEEF] = - { - .categoryName = _("Leaf"), - .height = 12, - .weight = 158, - .description = gBayleefPokedexText, - .pokemonScale = 296, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MEGANIUM] = - { - .categoryName = _("Herb"), - .height = 18, - .weight = 1005, - .description = gMeganiumPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 277, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_CYNDAQUIL] = - { - .categoryName = _("Fire Mouse"), - .height = 5, - .weight = 79, - .description = gCyndaquilPokedexText, - .pokemonScale = 539, - .pokemonOffset = 21, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_QUILAVA] = - { - .categoryName = _("Volcano"), - .height = 9, - .weight = 190, - .description = gQuilavaPokedexText, - .pokemonScale = 329, - .pokemonOffset = 11, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_TYPHLOSION] = - { - .categoryName = _("Volcano"), - .height = 17, - .weight = 795, - .description = gTyphlosionPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 268, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_TOTODILE] = - { - .categoryName = _("Big Jaw"), - .height = 6, - .weight = 95, - .description = gTotodilePokedexText, - .pokemonScale = 487, - .pokemonOffset = 20, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CROCONAW] = - { - .categoryName = _("Big Jaw"), - .height = 11, - .weight = 250, - .description = gCroconawPokedexText, - .pokemonScale = 378, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_FERALIGATR] = - { - .categoryName = _("Big Jaw"), - .height = 23, - .weight = 888, - .description = gFeraligatrPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 342, - .trainerOffset = 7, - }, - - [NATIONAL_DEX_SENTRET] = - { - .categoryName = _("Scout"), - .height = 8, - .weight = 60, - .description = gSentretPokedexText, - .pokemonScale = 439, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_FURRET] = - { - .categoryName = _("Long Body"), - .height = 18, - .weight = 325, - .description = gFurretPokedexText, - .pokemonScale = 346, - .pokemonOffset = 11, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_HOOTHOOT] = - { - .categoryName = _("Owl"), - .height = 7, - .weight = 212, - .description = gHoothootPokedexText, - .pokemonScale = 380, - .pokemonOffset = -2, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_NOCTOWL] = - { - .categoryName = _("Owl"), - .height = 16, - .weight = 408, - .description = gNoctowlPokedexText, - .pokemonScale = 278, - .pokemonOffset = 3, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_LEDYBA] = - { - .categoryName = _("Five Star"), - .height = 10, - .weight = 108, - .description = gLedybaPokedexText, - .pokemonScale = 256, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_LEDIAN] = - { - .categoryName = _("Five Star"), - .height = 14, - .weight = 356, - .description = gLedianPokedexText, - .pokemonScale = 256, - .pokemonOffset = 2, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SPINARAK] = - { - .categoryName = _("String Spit"), - .height = 5, - .weight = 85, - .description = gSpinarakPokedexText, - .pokemonScale = 414, - .pokemonOffset = 21, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ARIADOS] = - { - .categoryName = _("Long Leg"), - .height = 11, - .weight = 335, - .description = gAriadosPokedexText, - .pokemonScale = 316, - .pokemonOffset = 8, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CROBAT] = - { - .categoryName = _("Bat"), - .height = 18, - .weight = 750, - .description = gCrobatPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 281, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_CHINCHOU] = - { - .categoryName = _("Angler"), - .height = 5, - .weight = 120, - .description = gChinchouPokedexText, - .pokemonScale = 424, - .pokemonOffset = -2, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_LANTURN] = - { - .categoryName = _("Light"), - .height = 12, - .weight = 225, - .description = gLanturnPokedexText, - .pokemonScale = 269, - .pokemonOffset = 6, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PICHU] = - { - .categoryName = _("Tiny Mouse"), - .height = 3, - .weight = 20, - .description = gPichuPokedexText, - .pokemonScale = 508, - .pokemonOffset = 20, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CLEFFA] = - { - .categoryName = _("Star Shape"), - .height = 3, - .weight = 30, - .description = gCleffaPokedexText, - .pokemonScale = 462, - .pokemonOffset = 23, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_IGGLYBUFF] = - { - .categoryName = _("Balloon"), - .height = 3, - .weight = 10, - .description = gIgglybuffPokedexText, - .pokemonScale = 457, - .pokemonOffset = -1, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_TOGEPI] = - { - .categoryName = _("Spike Ball"), - .height = 3, - .weight = 15, - .description = gTogepiPokedexText, - .pokemonScale = 507, - .pokemonOffset = 23, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_TOGETIC] = - { - .categoryName = _("Happiness"), - .height = 6, - .weight = 32, - .description = gTogeticPokedexText, - .pokemonScale = 424, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_NATU] = - { - .categoryName = _("Tiny Bird"), - .height = 2, - .weight = 20, - .description = gNatuPokedexText, - .pokemonScale = 610, - .pokemonOffset = 25, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_XATU] = - { - .categoryName = _("Mystic"), - .height = 15, - .weight = 150, - .description = gXatuPokedexText, - .pokemonScale = 256, - .pokemonOffset = 6, - .trainerScale = 318, - .trainerOffset = 4, - }, - - [NATIONAL_DEX_MAREEP] = - { - .categoryName = _("Wool"), - .height = 6, - .weight = 78, - .description = gMareepPokedexText, - .pokemonScale = 379, - .pokemonOffset = 18, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_FLAAFFY] = - { - .categoryName = _("Wool"), - .height = 8, - .weight = 133, - .description = gFlaaffyPokedexText, - .pokemonScale = 372, - .pokemonOffset = 15, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_AMPHAROS] = - { - .categoryName = _("Light"), - .height = 14, - .weight = 615, - .description = gAmpharosPokedexText, - .pokemonScale = 256, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BELLOSSOM] = - { - .categoryName = _("Flower"), - .height = 4, - .weight = 58, - .description = gBellossomPokedexText, - .pokemonScale = 472, - .pokemonOffset = 21, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MARILL] = - { - .categoryName = _("Aqua Mouse"), - .height = 4, - .weight = 85, - .description = gMarillPokedexText, - .pokemonScale = 476, - .pokemonOffset = 20, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_AZUMARILL] = - { - .categoryName = _("Aqua Rabbit"), - .height = 8, - .weight = 285, - .description = gAzumarillPokedexText, - .pokemonScale = 448, - .pokemonOffset = 16, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SUDOWOODO] = - { - .categoryName = _("Imitation"), - .height = 12, - .weight = 380, - .description = gSudowoodoPokedexText, - .pokemonScale = 305, - .pokemonOffset = 8, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_POLITOED] = - { - .categoryName = _("Frog"), - .height = 11, - .weight = 339, - .description = gPolitoedPokedexText, - .pokemonScale = 289, - .pokemonOffset = 6, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_HOPPIP] = - { - .categoryName = _("Cottonweed"), - .height = 4, - .weight = 5, - .description = gHoppipPokedexText, - .pokemonScale = 562, - .pokemonOffset = -7, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SKIPLOOM] = - { - .categoryName = _("Cottonweed"), - .height = 6, - .weight = 10, - .description = gSkiploomPokedexText, - .pokemonScale = 387, - .pokemonOffset = 0, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_JUMPLUFF] = - { - .categoryName = _("Cottonweed"), - .height = 8, - .weight = 30, - .description = gJumpluffPokedexText, - .pokemonScale = 418, - .pokemonOffset = -4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_AIPOM] = - { - .categoryName = _("Long Tail"), - .height = 8, - .weight = 115, - .description = gAipomPokedexText, - .pokemonScale = 363, - .pokemonOffset = 6, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SUNKERN] = - { - .categoryName = _("Seed"), - .height = 3, - .weight = 18, - .description = gSunkernPokedexText, - .pokemonScale = 541, - .pokemonOffset = 0, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SUNFLORA] = - { - .categoryName = _("Sun"), - .height = 8, - .weight = 85, - .description = gSunfloraPokedexText, - .pokemonScale = 444, - .pokemonOffset = 15, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_YANMA] = - { - .categoryName = _("Clear Wing"), - .height = 12, - .weight = 380, - .description = gYanmaPokedexText, - .pokemonScale = 274, - .pokemonOffset = -1, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_WOOPER] = - { - .categoryName = _("Water Fish"), - .height = 4, - .weight = 85, - .description = gWooperPokedexText, - .pokemonScale = 479, - .pokemonOffset = 21, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_QUAGSIRE] = - { - .categoryName = _("Water Fish"), - .height = 14, - .weight = 750, - .description = gQuagsirePokedexText, - .pokemonScale = 256, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ESPEON] = - { - .categoryName = _("Sun"), - .height = 9, - .weight = 265, - .description = gEspeonPokedexText, - .pokemonScale = 363, - .pokemonOffset = 14, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_UMBREON] = - { - .categoryName = _("Moonlight"), - .height = 10, - .weight = 270, - .description = gUmbreonPokedexText, - .pokemonScale = 317, - .pokemonOffset = 11, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MURKROW] = - { - .categoryName = _("Darkness"), - .height = 5, - .weight = 21, - .description = gMurkrowPokedexText, - .pokemonScale = 401, - .pokemonOffset = -8, - .trainerScale = 256, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_SLOWKING] = - { - .categoryName = _("Royal"), - .height = 20, - .weight = 795, - .description = gSlowkingPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 309, - .trainerOffset = 5, - }, - - [NATIONAL_DEX_MISDREAVUS] = - { - .categoryName = _("Screech"), - .height = 7, - .weight = 10, - .description = gMisdreavusPokedexText, - .pokemonScale = 407, - .pokemonOffset = -8, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_UNOWN] = - { - .categoryName = _("Symbol"), - .height = 5, - .weight = 50, - .description = gUnownPokedexText, - .pokemonScale = 411, - .pokemonOffset = 2, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_WOBBUFFET] = - { - .categoryName = _("Patient"), - .height = 13, - .weight = 285, - .description = gWobbuffetPokedexText, - .pokemonScale = 274, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GIRAFARIG] = - { - .categoryName = _("Long Neck"), - .height = 15, - .weight = 415, - .description = gGirafarigPokedexText, - .pokemonScale = 281, - .pokemonOffset = 1, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PINECO] = - { - .categoryName = _("Bagworm"), - .height = 6, - .weight = 72, - .description = gPinecoPokedexText, - .pokemonScale = 445, - .pokemonOffset = 2, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_FORRETRESS] = - { - .categoryName = _("Bagworm"), - .height = 12, - .weight = 1258, - .description = gForretressPokedexText, - .pokemonScale = 293, - .pokemonOffset = 5, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DUNSPARCE] = - { - .categoryName = _("Land Snake"), - .height = 15, - .weight = 140, - .description = gDunsparcePokedexText, - .pokemonScale = 316, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GLIGAR] = - { - .categoryName = _("Fly Scorpion"), - .height = 11, - .weight = 648, - .description = gGligarPokedexText, - .pokemonScale = 350, - .pokemonOffset = -1, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_STEELIX] = - { - .categoryName = _("Iron Snake"), - .height = 92, - .weight = 4000, - .description = gSteelixPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 516, - .trainerOffset = 13, - }, - - [NATIONAL_DEX_SNUBBULL] = - { - .categoryName = _("Fairy"), - .height = 6, - .weight = 78, - .description = gSnubbullPokedexText, - .pokemonScale = 465, - .pokemonOffset = 19, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GRANBULL] = - { - .categoryName = _("Fairy"), - .height = 14, - .weight = 487, - .description = gGranbullPokedexText, - .pokemonScale = 256, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_QWILFISH] = - { - .categoryName = _("Balloon"), - .height = 5, - .weight = 39, - .description = gQwilfishPokedexText, - .pokemonScale = 430, - .pokemonOffset = 0, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SCIZOR] = - { - .categoryName = _("Pincer"), - .height = 18, - .weight = 1180, - .description = gScizorPokedexText, - .pokemonScale = 278, - .pokemonOffset = 1, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SHUCKLE] = - { - .categoryName = _("Mold"), - .height = 6, - .weight = 205, - .description = gShucklePokedexText, - .pokemonScale = 485, - .pokemonOffset = 18, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_HERACROSS] = - { - .categoryName = _("Single Horn"), - .height = 15, - .weight = 540, - .description = gHeracrossPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SNEASEL] = - { - .categoryName = _("Sharp Claw"), - .height = 9, - .weight = 280, - .description = gSneaselPokedexText, - .pokemonScale = 413, - .pokemonOffset = -3, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_TEDDIURSA] = - { - .categoryName = _("Little Bear"), - .height = 6, - .weight = 88, - .description = gTeddiursaPokedexText, - .pokemonScale = 455, - .pokemonOffset = 19, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_URSARING] = - { - .categoryName = _("Hibernator"), - .height = 18, - .weight = 1258, - .description = gUrsaringPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SLUGMA] = - { - .categoryName = _("Lava"), - .height = 7, - .weight = 350, - .description = gSlugmaPokedexText, - .pokemonScale = 329, - .pokemonOffset = 15, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MAGCARGO] = - { - .categoryName = _("Lava"), - .height = 8, - .weight = 550, - .description = gMagcargoPokedexText, - .pokemonScale = 332, - .pokemonOffset = 15, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SWINUB] = - { - .categoryName = _("Pig"), - .height = 4, - .weight = 65, - .description = gSwinubPokedexText, - .pokemonScale = 324, - .pokemonOffset = 20, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PILOSWINE] = - { - .categoryName = _("Swine"), - .height = 11, - .weight = 558, - .description = gPiloswinePokedexText, - .pokemonScale = 306, - .pokemonOffset = 10, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CORSOLA] = - { - .categoryName = _("Coral"), - .height = 6, - .weight = 50, - .description = gCorsolaPokedexText, - .pokemonScale = 410, - .pokemonOffset = 15, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_REMORAID] = - { - .categoryName = _("Jet"), - .height = 6, - .weight = 120, - .description = gRemoraidPokedexText, - .pokemonScale = 316, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_OCTILLERY] = - { - .categoryName = _("Jet"), - .height = 9, - .weight = 285, - .description = gOctilleryPokedexText, - .pokemonScale = 296, - .pokemonOffset = 3, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DELIBIRD] = - { - .categoryName = _("Delivery"), - .height = 9, - .weight = 160, - .description = gDelibirdPokedexText, - .pokemonScale = 293, - .pokemonOffset = 11, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MANTINE] = - { - .categoryName = _("Kite"), - .height = 21, - .weight = 2200, - .description = gMantinePokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 342, - .trainerOffset = 7, - }, - - [NATIONAL_DEX_SKARMORY] = - { - .categoryName = _("Armor Bird"), - .height = 17, - .weight = 505, - .description = gSkarmoryPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 271, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_HOUNDOUR] = - { - .categoryName = _("Dark"), - .height = 6, - .weight = 108, - .description = gHoundourPokedexText, - .pokemonScale = 393, - .pokemonOffset = 16, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_HOUNDOOM] = - { - .categoryName = _("Dark"), - .height = 14, - .weight = 350, - .description = gHoundoomPokedexText, - .pokemonScale = 256, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_KINGDRA] = - { - .categoryName = _("Dragon"), - .height = 18, - .weight = 1520, - .description = gKingdraPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 287, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PHANPY] = - { - .categoryName = _("Long Nose"), - .height = 5, - .weight = 335, - .description = gPhanpyPokedexText, - .pokemonScale = 465, - .pokemonOffset = 21, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DONPHAN] = - { - .categoryName = _("Armor"), - .height = 11, - .weight = 1200, - .description = gDonphanPokedexText, - .pokemonScale = 313, - .pokemonOffset = 9, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PORYGON2] = - { - .categoryName = _("Virtual"), - .height = 6, - .weight = 325, - .description = gPorygon2PokedexText, - .pokemonScale = 320, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_STANTLER] = - { - .categoryName = _("Big Horn"), - .height = 14, - .weight = 712, - .description = gStantlerPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SMEARGLE] = - { - .categoryName = _("Painter"), - .height = 12, - .weight = 580, - .description = gSmearglePokedexText, - .pokemonScale = 287, - .pokemonOffset = 5, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_TYROGUE] = - { - .categoryName = _("Scuffle"), - .height = 7, - .weight = 210, - .description = gTyroguePokedexText, - .pokemonScale = 292, - .pokemonOffset = 9, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_HITMONTOP] = - { - .categoryName = _("Handstand"), - .height = 14, - .weight = 480, - .description = gHitmontopPokedexText, - .pokemonScale = 256, - .pokemonOffset = 2, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SMOOCHUM] = - { - .categoryName = _("Kiss"), - .height = 4, - .weight = 60, - .description = gSmoochumPokedexText, - .pokemonScale = 440, - .pokemonOffset = 20, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ELEKID] = - { - .categoryName = _("Electric"), - .height = 6, - .weight = 235, - .description = gElekidPokedexText, - .pokemonScale = 363, - .pokemonOffset = 14, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MAGBY] = - { - .categoryName = _("Live Coal"), - .height = 7, - .weight = 214, - .description = gMagbyPokedexText, - .pokemonScale = 284, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MILTANK] = - { - .categoryName = _("Milk Cow"), - .height = 12, - .weight = 755, - .description = gMiltankPokedexText, - .pokemonScale = 280, - .pokemonOffset = 5, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BLISSEY] = - { - .categoryName = _("Happiness"), - .height = 15, - .weight = 468, - .description = gBlisseyPokedexText, - .pokemonScale = 256, - .pokemonOffset = 4, - .trainerScale = 310, - .trainerOffset = 3, - }, - - [NATIONAL_DEX_RAIKOU] = - { - .categoryName = _("Thunder"), - .height = 19, - .weight = 1780, - .description = gRaikouPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 345, - .trainerOffset = 7, - }, - - [NATIONAL_DEX_ENTEI] = - { - .categoryName = _("Volcano"), - .height = 21, - .weight = 1980, - .description = gEnteiPokedexText, - .pokemonScale = 259, - .pokemonOffset = 0, - .trainerScale = 345, - .trainerOffset = 7, - }, - - [NATIONAL_DEX_SUICUNE] = - { - .categoryName = _("Aurora"), - .height = 20, - .weight = 1870, - .description = gSuicunePokedexText, - .pokemonScale = 269, - .pokemonOffset = 0, - .trainerScale = 345, - .trainerOffset = 7, - }, - - [NATIONAL_DEX_LARVITAR] = - { - .categoryName = _("Rock Skin"), - .height = 6, - .weight = 720, - .description = gLarvitarPokedexText, - .pokemonScale = 472, - .pokemonOffset = 18, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PUPITAR] = - { - .categoryName = _("Hard Shell"), - .height = 12, - .weight = 1520, - .description = gPupitarPokedexText, - .pokemonScale = 292, - .pokemonOffset = 8, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_TYRANITAR] = - { - .categoryName = _("Armor"), - .height = 20, - .weight = 2020, - .description = gTyranitarPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 345, - .trainerOffset = 7, - }, - - [NATIONAL_DEX_LUGIA] = - { - .categoryName = _("Diving"), - .height = 52, - .weight = 2160, - .description = gLugiaPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 721, - .trainerOffset = 19, - }, - - [NATIONAL_DEX_HO_OH] = - { - .categoryName = _("Rainbow"), - .height = 38, - .weight = 1990, - .description = gHoOhPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 610, - .trainerOffset = 17, - }, - - [NATIONAL_DEX_CELEBI] = - { - .categoryName = _("Time Travel"), - .height = 6, - .weight = 50, - .description = gCelebiPokedexText, - .pokemonScale = 393, - .pokemonOffset = -10, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_TREECKO] = - { - .categoryName = _("Wood Gecko"), - .height = 5, - .weight = 50, - .description = gTreeckoPokedexText, - .pokemonScale = 541, - .pokemonOffset = 19, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GROVYLE] = - { - .categoryName = _("Wood Gecko"), - .height = 9, - .weight = 216, - .description = gGrovylePokedexText, - .pokemonScale = 360, - .pokemonOffset = 5, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SCEPTILE] = - { - .categoryName = _("Forest"), - .height = 17, - .weight = 522, - .description = gSceptilePokedexText, - .pokemonScale = 256, - .pokemonOffset = -1, - .trainerScale = 275, - .trainerOffset = 2, - }, - - [NATIONAL_DEX_TORCHIC] = - { - .categoryName = _("Chick"), - .height = 4, - .weight = 25, - .description = gTorchicPokedexText, - .pokemonScale = 566, - .pokemonOffset = 19, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_COMBUSKEN] = - { - .categoryName = _("Young Fowl"), - .height = 9, - .weight = 195, - .description = gCombuskenPokedexText, - .pokemonScale = 343, - .pokemonOffset = 5, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BLAZIKEN] = - { - .categoryName = _("Blaze"), - .height = 19, - .weight = 520, - .description = gBlazikenPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 301, - .trainerOffset = 4, - }, - - [NATIONAL_DEX_MUDKIP] = - { - .categoryName = _("Mud Fish"), - .height = 4, - .weight = 76, - .description = gMudkipPokedexText, - .pokemonScale = 535, - .pokemonOffset = 20, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MARSHTOMP] = - { - .categoryName = _("Mud Fish"), - .height = 7, - .weight = 280, - .description = gMarshtompPokedexText, - .pokemonScale = 340, - .pokemonOffset = 7, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SWAMPERT] = - { - .categoryName = _("Mud Fish"), - .height = 15, - .weight = 819, - .description = gSwampertPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_POOCHYENA] = - { - .categoryName = _("Bite"), - .height = 5, - .weight = 136, - .description = gPoochyenaPokedexText, - .pokemonScale = 481, - .pokemonOffset = 19, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MIGHTYENA] = - { - .categoryName = _("Bite"), - .height = 10, - .weight = 370, - .description = gMightyenaPokedexText, - .pokemonScale = 362, - .pokemonOffset = 9, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ZIGZAGOON] = - { - .categoryName = _("Tiny Raccoon"), - .height = 4, - .weight = 175, - .description = gZigzagoonPokedexText, - .pokemonScale = 560, - .pokemonOffset = 22, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_LINOONE] = - { - .categoryName = _("Rushing"), - .height = 5, - .weight = 325, - .description = gLinoonePokedexText, - .pokemonScale = 321, - .pokemonOffset = 7, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_WURMPLE] = - { - .categoryName = _("Worm"), - .height = 3, - .weight = 36, - .description = gWurmplePokedexText, - .pokemonScale = 711, - .pokemonOffset = 24, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SILCOON] = - { - .categoryName = _("Cocoon"), - .height = 6, - .weight = 100, - .description = gSilcoonPokedexText, - .pokemonScale = 431, - .pokemonOffset = 19, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BEAUTIFLY] = - { - .categoryName = _("Butterfly"), - .height = 10, - .weight = 284, - .description = gBeautiflyPokedexText, - .pokemonScale = 298, - .pokemonOffset = -1, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CASCOON] = - { - .categoryName = _("Cocoon"), - .height = 7, - .weight = 115, - .description = gCascoonPokedexText, - .pokemonScale = 391, - .pokemonOffset = 20, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DUSTOX] = - { - .categoryName = _("Poison Moth"), - .height = 12, - .weight = 316, - .description = gDustoxPokedexText, - .pokemonScale = 269, - .pokemonOffset = 1, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_LOTAD] = - { - .categoryName = _("Water Weed"), - .height = 5, - .weight = 26, - .description = gLotadPokedexText, - .pokemonScale = 406, - .pokemonOffset = 19, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_LOMBRE] = - { - .categoryName = _("Jolly"), - .height = 12, - .weight = 325, - .description = gLombrePokedexText, - .pokemonScale = 277, - .pokemonOffset = 9, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_LUDICOLO] = - { - .categoryName = _("Carefree"), - .height = 15, - .weight = 550, - .description = gLudicoloPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 268, - .trainerOffset = -1, - }, - - [NATIONAL_DEX_SEEDOT] = - { - .categoryName = _("Acorn"), - .height = 5, - .weight = 40, - .description = gSeedotPokedexText, - .pokemonScale = 472, - .pokemonOffset = 20, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_NUZLEAF] = - { - .categoryName = _("Wily"), - .height = 10, - .weight = 280, - .description = gNuzleafPokedexText, - .pokemonScale = 299, - .pokemonOffset = 10, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SHIFTRY] = - { - .categoryName = _("Wicked"), - .height = 13, - .weight = 596, - .description = gShiftryPokedexText, - .pokemonScale = 290, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_TAILLOW] = - { - .categoryName = _("Tiny Swallow"), - .height = 3, - .weight = 23, - .description = gTaillowPokedexText, - .pokemonScale = 465, - .pokemonOffset = 21, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SWELLOW] = - { - .categoryName = _("Swallow"), - .height = 7, - .weight = 198, - .description = gSwellowPokedexText, - .pokemonScale = 428, - .pokemonOffset = 15, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_WINGULL] = - { - .categoryName = _("Seagull"), - .height = 6, - .weight = 95, - .description = gWingullPokedexText, - .pokemonScale = 295, - .pokemonOffset = -2, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PELIPPER] = - { - .categoryName = _("Water Bird"), - .height = 12, - .weight = 280, - .description = gPelipperPokedexText, - .pokemonScale = 288, - .pokemonOffset = 1, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_RALTS] = - { - .categoryName = _("Feeling"), - .height = 4, - .weight = 66, - .description = gRaltsPokedexText, - .pokemonScale = 457, - .pokemonOffset = -3, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_KIRLIA] = - { - .categoryName = _("Emotion"), - .height = 8, - .weight = 202, - .description = gKirliaPokedexText, - .pokemonScale = 354, - .pokemonOffset = 0, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GARDEVOIR] = - { - .categoryName = _("Embrace"), - .height = 16, - .weight = 484, - .description = gGardevoirPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SURSKIT] = - { - .categoryName = _("Pond Skater"), - .height = 5, - .weight = 17, - .description = gSurskitPokedexText, - .pokemonScale = 375, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MASQUERAIN] = - { - .categoryName = _("Eyeball"), - .height = 8, - .weight = 36, - .description = gMasquerainPokedexText, - .pokemonScale = 378, - .pokemonOffset = 8, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SHROOMISH] = - { - .categoryName = _("Mushroom"), - .height = 4, - .weight = 45, - .description = gShroomishPokedexText, - .pokemonScale = 513, - .pokemonOffset = 22, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BRELOOM] = - { - .categoryName = _("Mushroom"), - .height = 12, - .weight = 392, - .description = gBreloomPokedexText, - .pokemonScale = 324, - .pokemonOffset = 6, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SLAKOTH] = - { - .categoryName = _("Slacker"), - .height = 8, - .weight = 240, - .description = gSlakothPokedexText, - .pokemonScale = 291, - .pokemonOffset = 16, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_VIGOROTH] = - { - .categoryName = _("Wild Monkey"), - .height = 14, - .weight = 465, - .description = gVigorothPokedexText, - .pokemonScale = 301, - .pokemonOffset = 2, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SLAKING] = - { - .categoryName = _("Lazy"), - .height = 20, - .weight = 1305, - .description = gSlakingPokedexText, - .pokemonScale = 256, - .pokemonOffset = 2, - .trainerScale = 300, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_NINCADA] = - { - .categoryName = _("Trainee"), - .height = 5, - .weight = 55, - .description = gNincadaPokedexText, - .pokemonScale = 405, - .pokemonOffset = 21, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_NINJASK] = - { - .categoryName = _("Ninja"), - .height = 8, - .weight = 120, - .description = gNinjaskPokedexText, - .pokemonScale = 383, - .pokemonOffset = -9, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SHEDINJA] = - { - .categoryName = _("Shed"), - .height = 8, - .weight = 12, - .description = gShedinjaPokedexText, - .pokemonScale = 372, - .pokemonOffset = -8, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_WHISMUR] = - { - .categoryName = _("Whisper"), - .height = 6, - .weight = 163, - .description = gWhismurPokedexText, - .pokemonScale = 373, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_LOUDRED] = - { - .categoryName = _("Big Voice"), - .height = 10, - .weight = 405, - .description = gLoudredPokedexText, - .pokemonScale = 356, - .pokemonOffset = 10, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_EXPLOUD] = - { - .categoryName = _("Loud Noise"), - .height = 15, - .weight = 840, - .description = gExploudPokedexText, - .pokemonScale = 284, - .pokemonOffset = 1, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MAKUHITA] = - { - .categoryName = _("Guts"), - .height = 10, - .weight = 864, - .description = gMakuhitaPokedexText, - .pokemonScale = 256, - .pokemonOffset = 10, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_HARIYAMA] = - { - .categoryName = _("Arm Thrust"), - .height = 23, - .weight = 2538, - .description = gHariyamaPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 343, - .trainerOffset = 7, - }, - - [NATIONAL_DEX_AZURILL] = - { - .categoryName = _("Polka Dot"), - .height = 2, - .weight = 20, - .description = gAzurillPokedexText, - .pokemonScale = 603, - .pokemonOffset = 23, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_NOSEPASS] = - { - .categoryName = _("Compass"), - .height = 10, - .weight = 970, - .description = gNosepassPokedexText, - .pokemonScale = 256, - .pokemonOffset = 9, - .trainerScale = 289, - .trainerOffset = 3, - }, - - [NATIONAL_DEX_SKITTY] = - { - .categoryName = _("Kitten"), - .height = 6, - .weight = 110, - .description = gSkittyPokedexText, - .pokemonScale = 492, - .pokemonOffset = 19, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DELCATTY] = - { - .categoryName = _("Prim"), - .height = 11, - .weight = 326, - .description = gDelcattyPokedexText, - .pokemonScale = 322, - .pokemonOffset = 10, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SABLEYE] = - { - .categoryName = _("Darkness"), - .height = 5, - .weight = 110, - .description = gSableyePokedexText, - .pokemonScale = 451, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MAWILE] = - { - .categoryName = _("Deceiver"), - .height = 6, - .weight = 115, - .description = gMawilePokedexText, - .pokemonScale = 466, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ARON] = - { - .categoryName = _("Iron Armor"), - .height = 4, - .weight = 600, - .description = gAronPokedexText, - .pokemonScale = 419, - .pokemonOffset = 23, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_LAIRON] = - { - .categoryName = _("Iron Armor"), - .height = 9, - .weight = 1200, - .description = gLaironPokedexText, - .pokemonScale = 275, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_AGGRON] = - { - .categoryName = _("Iron Armor"), - .height = 21, - .weight = 3600, - .description = gAggronPokedexText, - .pokemonScale = 256, - .pokemonOffset = -1, - .trainerScale = 350, - .trainerOffset = 6, - }, - - [NATIONAL_DEX_MEDITITE] = - { - .categoryName = _("Meditate"), - .height = 6, - .weight = 112, - .description = gMedititePokedexText, - .pokemonScale = 465, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MEDICHAM] = - { - .categoryName = _("Meditate"), - .height = 13, - .weight = 315, - .description = gMedichamPokedexText, - .pokemonScale = 298, - .pokemonOffset = 5, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ELECTRIKE] = - { - .categoryName = _("Lightning"), - .height = 6, - .weight = 152, - .description = gElectrikePokedexText, - .pokemonScale = 290, - .pokemonOffset = 15, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MANECTRIC] = - { - .categoryName = _("Discharge"), - .height = 15, - .weight = 402, - .description = gManectricPokedexText, - .pokemonScale = 256, - .pokemonOffset = 3, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PLUSLE] = - { - .categoryName = _("Cheering"), - .height = 4, - .weight = 42, - .description = gPluslePokedexText, - .pokemonScale = 515, - .pokemonOffset = -9, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MINUN] = - { - .categoryName = _("Cheering"), - .height = 4, - .weight = 42, - .description = gMinunPokedexText, - .pokemonScale = 512, - .pokemonOffset = -7, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_VOLBEAT] = - { - .categoryName = _("Firefly"), - .height = 7, - .weight = 177, - .description = gVolbeatPokedexText, - .pokemonScale = 442, - .pokemonOffset = 16, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ILLUMISE] = - { - .categoryName = _("Firefly"), - .height = 6, - .weight = 177, - .description = gIllumisePokedexText, - .pokemonScale = 572, - .pokemonOffset = 19, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ROSELIA] = - { - .categoryName = _("Thorn"), - .height = 3, - .weight = 20, - .description = gRoseliaPokedexText, - .pokemonScale = 677, - .pokemonOffset = 20, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GULPIN] = - { - .categoryName = _("Stomach"), - .height = 4, - .weight = 103, - .description = gGulpinPokedexText, - .pokemonScale = 593, - .pokemonOffset = 23, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SWALOT] = - { - .categoryName = _("Poison Bag"), - .height = 17, - .weight = 800, - .description = gSwalotPokedexText, - .pokemonScale = 256, - .pokemonOffset = 6, - .trainerScale = 345, - .trainerOffset = 3, - }, - - [NATIONAL_DEX_CARVANHA] = - { - .categoryName = _("Savage"), - .height = 8, - .weight = 208, - .description = gCarvanhaPokedexText, - .pokemonScale = 362, - .pokemonOffset = 0, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SHARPEDO] = - { - .categoryName = _("Brutal"), - .height = 18, - .weight = 888, - .description = gSharpedoPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 317, - .trainerOffset = 3, - }, - - [NATIONAL_DEX_WAILMER] = - { - .categoryName = _("Ball Whale"), - .height = 20, - .weight = 1300, - .description = gWailmerPokedexText, - .pokemonScale = 256, - .pokemonOffset = 2, - .trainerScale = 493, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_WAILORD] = - { - .categoryName = _("Float Whale"), - .height = 145, - .weight = 3980, - .description = gWailordPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 1352, - .trainerOffset = 18, - }, - - [NATIONAL_DEX_NUMEL] = - { - .categoryName = _("Numb"), - .height = 7, - .weight = 240, - .description = gNumelPokedexText, - .pokemonScale = 342, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CAMERUPT] = - { - .categoryName = _("Eruption"), - .height = 19, - .weight = 2200, - .description = gCameruptPokedexText, - .pokemonScale = 256, - .pokemonOffset = 7, - .trainerScale = 345, - .trainerOffset = 6, - }, - - [NATIONAL_DEX_TORKOAL] = - { - .categoryName = _("Coal"), - .height = 5, - .weight = 804, - .description = gTorkoalPokedexText, - .pokemonScale = 390, - .pokemonOffset = 9, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SPOINK] = - { - .categoryName = _("Bounce"), - .height = 7, - .weight = 306, - .description = gSpoinkPokedexText, - .pokemonScale = 423, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GRUMPIG] = - { - .categoryName = _("Manipulate"), - .height = 9, - .weight = 715, - .description = gGrumpigPokedexText, - .pokemonScale = 358, - .pokemonOffset = 10, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SPINDA] = - { - .categoryName = _("Spot Panda"), - .height = 11, - .weight = 50, - .description = gSpindaPokedexText, - .pokemonScale = 321, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_TRAPINCH] = - { - .categoryName = _("Ant Pit"), - .height = 7, - .weight = 150, - .description = gTrapinchPokedexText, - .pokemonScale = 298, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_VIBRAVA] = - { - .categoryName = _("Vibration"), - .height = 11, - .weight = 153, - .description = gVibravaPokedexText, - .pokemonScale = 370, - .pokemonOffset = 11, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_FLYGON] = - { - .categoryName = _("Mystic"), - .height = 20, - .weight = 820, - .description = gFlygonPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 268, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_CACNEA] = - { - .categoryName = _("Cactus"), - .height = 4, - .weight = 513, - .description = gCacneaPokedexText, - .pokemonScale = 455, - .pokemonOffset = 20, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CACTURNE] = - { - .categoryName = _("Scarecrow"), - .height = 13, - .weight = 774, - .description = gCacturnePokedexText, - .pokemonScale = 327, - .pokemonOffset = 5, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SWABLU] = - { - .categoryName = _("Cotton Bird"), - .height = 4, - .weight = 12, - .description = gSwabluPokedexText, - .pokemonScale = 422, - .pokemonOffset = -8, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ALTARIA] = - { - .categoryName = _("Humming"), - .height = 11, - .weight = 206, - .description = gAltariaPokedexText, - .pokemonScale = 327, - .pokemonOffset = 0, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ZANGOOSE] = - { - .categoryName = _("Cat Ferret"), - .height = 13, - .weight = 403, - .description = gZangoosePokedexText, - .pokemonScale = 256, - .pokemonOffset = 3, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SEVIPER] = - { - .categoryName = _("Fang Snake"), - .height = 27, - .weight = 525, - .description = gSeviperPokedexText, - .pokemonScale = 275, - .pokemonOffset = 7, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_LUNATONE] = - { - .categoryName = _("Meteorite"), - .height = 10, - .weight = 1680, - .description = gLunatonePokedexText, - .pokemonScale = 300, - .pokemonOffset = 3, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SOLROCK] = - { - .categoryName = _("Meteorite"), - .height = 12, - .weight = 1540, - .description = gSolrockPokedexText, - .pokemonScale = 328, - .pokemonOffset = 0, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BARBOACH] = - { - .categoryName = _("Whiskers"), - .height = 4, - .weight = 19, - .description = gBarboachPokedexText, - .pokemonScale = 581, - .pokemonOffset = -3, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_WHISCASH] = - { - .categoryName = _("Whiskers"), - .height = 9, - .weight = 236, - .description = gWhiscashPokedexText, - .pokemonScale = 317, - .pokemonOffset = 1, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CORPHISH] = - { - .categoryName = _("Ruffian"), - .height = 6, - .weight = 115, - .description = gCorphishPokedexText, - .pokemonScale = 484, - .pokemonOffset = 19, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CRAWDAUNT] = - { - .categoryName = _("Rogue"), - .height = 11, - .weight = 328, - .description = gCrawdauntPokedexText, - .pokemonScale = 365, - .pokemonOffset = 9, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BALTOY] = - { - .categoryName = _("Clay Doll"), - .height = 5, - .weight = 215, - .description = gBaltoyPokedexText, - .pokemonScale = 457, - .pokemonOffset = 21, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CLAYDOL] = - { - .categoryName = _("Clay Doll"), - .height = 15, - .weight = 1080, - .description = gClaydolPokedexText, - .pokemonScale = 256, - .pokemonOffset = 3, - .trainerScale = 280, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_LILEEP] = - { - .categoryName = _("Sea Lily"), - .height = 10, - .weight = 238, - .description = gLileepPokedexText, - .pokemonScale = 305, - .pokemonOffset = 8, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CRADILY] = - { - .categoryName = _("Barnacle"), - .height = 15, - .weight = 604, - .description = gCradilyPokedexText, - .pokemonScale = 267, - .pokemonOffset = 0, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ANORITH] = - { - .categoryName = _("Old Shrimp"), - .height = 7, - .weight = 125, - .description = gAnorithPokedexText, - .pokemonScale = 296, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ARMALDO] = - { - .categoryName = _("Plate"), - .height = 15, - .weight = 682, - .description = gArmaldoPokedexText, - .pokemonScale = 312, - .pokemonOffset = 3, - .trainerScale = 271, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_FEEBAS] = - { - .categoryName = _("Fish"), - .height = 6, - .weight = 74, - .description = gFeebasPokedexText, - .pokemonScale = 423, - .pokemonOffset = -4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MILOTIC] = - { - .categoryName = _("Tender"), - .height = 62, - .weight = 1620, - .description = gMiloticPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 360, - .trainerOffset = 7, - }, - - [NATIONAL_DEX_CASTFORM] = - { - .categoryName = _("Weather"), - .height = 3, - .weight = 8, - .description = gCastformPokedexText, - .pokemonScale = 435, - .pokemonOffset = -5, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_KECLEON] = - { - .categoryName = _("Color Swap"), - .height = 10, - .weight = 220, - .description = gKecleonPokedexText, - .pokemonScale = 316, - .pokemonOffset = 10, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SHUPPET] = - { - .categoryName = _("Puppet"), - .height = 6, - .weight = 23, - .description = gShuppetPokedexText, - .pokemonScale = 440, - .pokemonOffset = 20, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BANETTE] = - { - .categoryName = _("Marionette"), - .height = 11, - .weight = 125, - .description = gBanettePokedexText, - .pokemonScale = 262, - .pokemonOffset = 9, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DUSKULL] = - { - .categoryName = _("Requiem"), - .height = 8, - .weight = 150, - .description = gDuskullPokedexText, - .pokemonScale = 406, - .pokemonOffset = -4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DUSCLOPS] = - { - .categoryName = _("Beckon"), - .height = 16, - .weight = 306, - .description = gDusclopsPokedexText, - .pokemonScale = 256, - .pokemonOffset = 3, - .trainerScale = 299, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_TROPIUS] = - { - .categoryName = _("Fruit"), - .height = 20, - .weight = 1000, - .description = gTropiusPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 344, - .trainerOffset = 7, - }, - - [NATIONAL_DEX_CHIMECHO] = - { - .categoryName = _("Wind Chime"), - .height = 6, - .weight = 10, - .description = gChimechoPokedexText, - .pokemonScale = 505, - .pokemonOffset = 0, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ABSOL] = - { - .categoryName = _("Disaster"), - .height = 12, - .weight = 470, - .description = gAbsolPokedexText, - .pokemonScale = 301, - .pokemonOffset = 3, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_WYNAUT] = - { - .categoryName = _("Bright"), - .height = 6, - .weight = 140, - .description = gWynautPokedexText, - .pokemonScale = 484, - .pokemonOffset = 19, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SNORUNT] = - { - .categoryName = _("Snow Hat"), - .height = 7, - .weight = 168, - .description = gSnoruntPokedexText, - .pokemonScale = 380, - .pokemonOffset = 15, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GLALIE] = - { - .categoryName = _("Face"), - .height = 15, - .weight = 2565, - .description = gGlaliePokedexText, - .pokemonScale = 256, - .pokemonOffset = 3, - .trainerScale = 344, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SPHEAL] = - { - .categoryName = _("Clap"), - .height = 8, - .weight = 395, - .description = gSphealPokedexText, - .pokemonScale = 315, - .pokemonOffset = 16, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SEALEO] = - { - .categoryName = _("Ball Roll"), - .height = 11, - .weight = 876, - .description = gSealeoPokedexText, - .pokemonScale = 338, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_WALREIN] = - { - .categoryName = _("Ice Break"), - .height = 14, - .weight = 1506, - .description = gWalreinPokedexText, - .pokemonScale = 316, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CLAMPERL] = - { - .categoryName = _("Bivalve"), - .height = 4, - .weight = 525, - .description = gClamperlPokedexText, - .pokemonScale = 691, - .pokemonOffset = 22, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_HUNTAIL] = - { - .categoryName = _("Deep Sea"), - .height = 17, - .weight = 270, - .description = gHuntailPokedexText, - .pokemonScale = 307, - .pokemonOffset = 1, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GOREBYSS] = - { - .categoryName = _("South Sea"), - .height = 18, - .weight = 226, - .description = gGorebyssPokedexText, - .pokemonScale = 278, - .pokemonOffset = 5, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_RELICANTH] = - { - .categoryName = _("Longevity"), - .height = 10, - .weight = 234, - .description = gRelicanthPokedexText, - .pokemonScale = 316, - .pokemonOffset = 7, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_LUVDISC] = - { - .categoryName = _("Rendezvous"), - .height = 6, - .weight = 87, - .description = gLuvdiscPokedexText, - .pokemonScale = 371, - .pokemonOffset = 2, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BAGON] = - { - .categoryName = _("Rock Head"), - .height = 6, - .weight = 421, - .description = gBagonPokedexText, - .pokemonScale = 448, - .pokemonOffset = 18, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SHELGON] = - { - .categoryName = _("Endurance"), - .height = 11, - .weight = 1105, - .description = gShelgonPokedexText, - .pokemonScale = 311, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SALAMENCE] = - { - .categoryName = _("Dragon"), - .height = 15, - .weight = 1026, - .description = gSalamencePokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BELDUM] = - { - .categoryName = _("Iron Ball"), - .height = 6, - .weight = 952, - .description = gBeldumPokedexText, - .pokemonScale = 414, - .pokemonOffset = -1, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_METANG] = - { - .categoryName = _("Iron Claw"), - .height = 12, - .weight = 2025, - .description = gMetangPokedexText, - .pokemonScale = 256, - .pokemonOffset = 6, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_METAGROSS] = - { - .categoryName = _("Iron Leg"), - .height = 16, - .weight = 5500, - .description = gMetagrossPokedexText, - .pokemonScale = 256, - .pokemonOffset = 4, - .trainerScale = 447, - .trainerOffset = 9, - }, - - [NATIONAL_DEX_REGIROCK] = - { - .categoryName = _("Rock Peak"), - .height = 17, - .weight = 2300, - .description = gRegirockPokedexText, - .pokemonScale = 256, - .pokemonOffset = 2, - .trainerScale = 309, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_REGICE] = - { - .categoryName = _("Iceberg"), - .height = 18, - .weight = 1750, - .description = gRegicePokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 301, - .trainerOffset = 2, - }, - - [NATIONAL_DEX_REGISTEEL] = - { - .categoryName = _("Iron"), - .height = 19, - .weight = 2050, - .description = gRegisteelPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 359, - .trainerOffset = 6, - }, - - [NATIONAL_DEX_LATIAS] = - { - .categoryName = _("Eon"), - .height = 14, - .weight = 400, - .description = gLatiasPokedexText, - .pokemonScale = 304, - .pokemonOffset = 3, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_LATIOS] = - { - .categoryName = _("Eon"), - .height = 20, - .weight = 600, - .description = gLatiosPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 294, - .trainerOffset = 3, - }, - - [NATIONAL_DEX_KYOGRE] = - { - .categoryName = _("Sea Basin"), - .height = 45, - .weight = 3520, - .description = gKyogrePokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 614, - .trainerOffset = 13, - }, - - [NATIONAL_DEX_GROUDON] = - { - .categoryName = _("Continent"), - .height = 35, - .weight = 9500, - .description = gGroudonPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 515, - .trainerOffset = 14, - }, - - [NATIONAL_DEX_RAYQUAZA] = - { - .categoryName = _("Sky High"), - .height = 70, - .weight = 2065, - .description = gRayquazaPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 448, - .trainerOffset = 12, - }, - - [NATIONAL_DEX_JIRACHI] = - { - .categoryName = _("Wish"), - .height = 3, - .weight = 11, - .description = gJirachiPokedexText, - .pokemonScale = 608, - .pokemonOffset = -8, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DEOXYS] = - { - .categoryName = _("DNA"), - .height = 17, - .weight = 608, - .description = gDeoxysPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 290, - .trainerOffset = 2, - }, - -#if P_GEN_4_POKEMON == TRUE - [NATIONAL_DEX_TURTWIG] = - { - .categoryName = _("Tiny Leaf"), - .height = 4, - .weight = 102, - .description = gTurtwigPokedexText, - .pokemonScale = 491, - .pokemonOffset = 20, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GROTLE] = - { - .categoryName = _("Grove"), - .height = 11, - .weight = 970, - .description = gGrotlePokedexText, - .pokemonScale = 320, - .pokemonOffset = 9, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_TORTERRA] = - { - .categoryName = _("Continent"), - .height = 22, - .weight = 3100, - .description = gTorterraPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 348, - .trainerOffset = 6, - }, - - [NATIONAL_DEX_CHIMCHAR] = - { - .categoryName = _("Chimp"), - .height = 5, - .weight = 62, - .description = gChimcharPokedexText, - .pokemonScale = 432, - .pokemonOffset = 15, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MONFERNO] = - { - .categoryName = _("Playful"), - .height = 9, - .weight = 220, - .description = gMonfernoPokedexText, - .pokemonScale = 338, - .pokemonOffset = 9, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_INFERNAPE] = - { - .categoryName = _("Flame"), - .height = 12, - .weight = 550, - .description = gInfernapePokedexText, - .pokemonScale = 282, - .pokemonOffset = 3, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PIPLUP] = - { - .categoryName = _("Penguin"), - .height = 4, - .weight = 52, - .description = gPiplupPokedexText, - .pokemonScale = 491, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PRINPLUP] = - { - .categoryName = _("Penguin"), - .height = 8, - .weight = 230, - .description = gPrinplupPokedexText, - .pokemonScale = 366, - .pokemonOffset = 10, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_EMPOLEON] = - { - .categoryName = _("Emperor"), - .height = 17, - .weight = 845, - .description = gEmpoleonPokedexText, - .pokemonScale = 259, - .pokemonOffset = 0, - .trainerScale = 290, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_STARLY] = - { - .categoryName = _("Starling"), - .height = 3, - .weight = 20, - .description = gStarlyPokedexText, - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_STARAVIA] = - { - .categoryName = _("Starling"), - .height = 6, - .weight = 155, - .description = gStaraviaPokedexText, - .pokemonScale = 422, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_STARAPTOR] = - { - .categoryName = _("Predator"), - .height = 12, - .weight = 249, - .description = gStaraptorPokedexText, - .pokemonScale = 282, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BIDOOF] = - { - .categoryName = _("Plump Mouse"), - .height = 5, - .weight = 200, - .description = gBidoofPokedexText, - .pokemonScale = 432, - .pokemonOffset = 16, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BIBAREL] = - { - .categoryName = _("Beaver"), - .height = 10, - .weight = 315, - .description = gBibarelPokedexText, - .pokemonScale = 305, - .pokemonOffset = 8, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_KRICKETOT] = - { - .categoryName = _("Cricket"), - .height = 3, - .weight = 22, - .description = gKricketotPokedexText, - .pokemonScale = 530, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_KRICKETUNE] = - { - .categoryName = _("Cricket"), - .height = 10, - .weight = 255, - .description = gKricketunePokedexText, - .pokemonScale = 305, - .pokemonOffset = 8, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SHINX] = - { - .categoryName = _("Flash"), - .height = 5, - .weight = 95, - .description = gShinxPokedexText, - .pokemonScale = 432, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_LUXIO] = - { - .categoryName = _("Spark"), - .height = 9, - .weight = 305, - .description = gLuxioPokedexText, - .pokemonScale = 338, - .pokemonOffset = 10, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_LUXRAY] = - { - .categoryName = _("Gleam Eyes"), - .height = 14, - .weight = 420, - .description = gLuxrayPokedexText, - .pokemonScale = 265, - .pokemonOffset = 2, - .trainerScale = 262, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BUDEW] = - { - .categoryName = _("Bud"), - .height = 2, - .weight = 12, - .description = gBudewPokedexText, - .pokemonScale = 682, - .pokemonOffset = 24, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ROSERADE] = - { - .categoryName = _("Bouquet"), - .height = 9, - .weight = 145, - .description = gRoseradePokedexText, - .pokemonScale = 338, - .pokemonOffset = 10, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CRANIDOS] = - { - .categoryName = _("Head Butt"), - .height = 9, - .weight = 315, - .description = gCranidosPokedexText, - .pokemonScale = 338, - .pokemonOffset = 10, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_RAMPARDOS] = - { - .categoryName = _("Head Butt"), - .height = 16, - .weight = 1025, - .description = gRampardosPokedexText, - .pokemonScale = 259, - .pokemonOffset = 1, - .trainerScale = 296, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_SHIELDON] = - { - .categoryName = _("Shield"), - .height = 5, - .weight = 570, - .description = gShieldonPokedexText, - .pokemonScale = 432, - .pokemonOffset = 16, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BASTIODON] = - { - .categoryName = _("Shield"), - .height = 13, - .weight = 1495, - .description = gBastiodonPokedexText, - .pokemonScale = 272, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BURMY] = - { - .categoryName = _("Bagworm"), - .height = 2, - .weight = 34, - .description = gBurmyPokedexText, - .pokemonScale = 682, - .pokemonOffset = 24, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_WORMADAM] = - { - .categoryName = _("Bagworm"), - .height = 5, - .weight = 65, - .description = gWormadamPokedexText, - .pokemonScale = 432, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MOTHIM] = - { - .categoryName = _("Moth"), - .height = 9, - .weight = 233, - .description = gMothimPokedexText, - .pokemonScale = 338, - .pokemonOffset = 8, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_COMBEE] = - { - .categoryName = _("Tiny Bee"), - .height = 3, - .weight = 55, - .description = gCombeePokedexText, - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_VESPIQUEN] = - { - .categoryName = _("Beehive"), - .height = 12, - .weight = 385, - .description = gVespiquenPokedexText, - .pokemonScale = 282, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PACHIRISU] = - { - .categoryName = _("EleSquirrel"), - .height = 4, - .weight = 39, - .description = gPachirisuPokedexText, - .pokemonScale = 491, - .pokemonOffset = 16, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BUIZEL] = - { - .categoryName = _("Sea Weasel"), - .height = 7, - .weight = 295, - .description = gBuizelPokedexText, - .pokemonScale = 365, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_FLOATZEL] = - { - .categoryName = _("Sea Weasel"), - .height = 11, - .weight = 335, - .description = gFloatzelPokedexText, - .pokemonScale = 320, - .pokemonOffset = 7, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CHERUBI] = - { - .categoryName = _("Cherry"), - .height = 4, - .weight = 33, - .description = gCherubiPokedexText, - .pokemonScale = 491, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CHERRIM] = - { - .categoryName = _("Blossom"), - .height = 5, - .weight = 93, - .description = gCherrimPokedexText, - .pokemonScale = 432, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SHELLOS] = - { - .categoryName = _("Sea Slug"), - .height = 3, - .weight = 63, - .description = gShellosPokedexText, - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GASTRODON] = - { - .categoryName = _("Sea Slug"), - .height = 9, - .weight = 299, - .description = gGastrodonPokedexText, - .pokemonScale = 338, - .pokemonOffset = 8, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_AMBIPOM] = - { - .categoryName = _("Long Tail"), - .height = 12, - .weight = 203, - .description = gAmbipomPokedexText, - .pokemonScale = 282, - .pokemonOffset = 3, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DRIFLOON] = - { - .categoryName = _("Balloon"), - .height = 4, - .weight = 12, - .description = gDrifloonPokedexText, - .pokemonScale = 491, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DRIFBLIM] = - { - .categoryName = _("Blimp"), - .height = 12, - .weight = 150, - .description = gDrifblimPokedexText, - .pokemonScale = 282, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BUNEARY] = - { - .categoryName = _("Rabbit"), - .height = 4, - .weight = 55, - .description = gBunearyPokedexText, - .pokemonScale = 491, - .pokemonOffset = 16, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_LOPUNNY] = - { - .categoryName = _("Rabbit"), - .height = 12, - .weight = 333, - .description = gLopunnyPokedexText, - .pokemonScale = 282, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MISMAGIUS] = - { - .categoryName = _("Magical"), - .height = 9, - .weight = 44, - .description = gMismagiusPokedexText, - .pokemonScale = 338, - .pokemonOffset = 8, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_HONCHKROW] = - { - .categoryName = _("Big Boss"), - .height = 9, - .weight = 273, - .description = gHonchkrowPokedexText, - .pokemonScale = 338, - .pokemonOffset = 8, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GLAMEOW] = - { - .categoryName = _("Catty"), - .height = 5, - .weight = 39, - .description = gGlameowPokedexText, - .pokemonScale = 432, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PURUGLY] = - { - .categoryName = _("Tiger Cat"), - .height = 10, - .weight = 438, - .description = gPuruglyPokedexText, - .pokemonScale = 305, - .pokemonOffset = 7, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CHINGLING] = - { - .categoryName = _("Bell"), - .height = 2, - .weight = 6, - .description = gChinglingPokedexText, - .pokemonScale = 682, - .pokemonOffset = 24, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_STUNKY] = - { - .categoryName = _("Skunk"), - .height = 4, - .weight = 192, - .description = gStunkyPokedexText, - .pokemonScale = 491, - .pokemonOffset = 17, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SKUNTANK] = - { - .categoryName = _("Skunk"), - .height = 10, - .weight = 380, - .description = gSkuntankPokedexText, - .pokemonScale = 305, - .pokemonOffset = 9, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BRONZOR] = - { - .categoryName = _("Bronze"), - .height = 5, - .weight = 605, - .description = gBronzorPokedexText, - .pokemonScale = 432, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BRONZONG] = - { - .categoryName = _("Bronze Bell"), - .height = 13, - .weight = 1870, - .description = gBronzongPokedexText, - .pokemonScale = 272, - .pokemonOffset = 3, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BONSLY] = - { - .categoryName = _("Bonsai"), - .height = 5, - .weight = 150, - .description = gBonslyPokedexText, - .pokemonScale = 432, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MIME_JR] = - { - .categoryName = _("Mime"), - .height = 6, - .weight = 130, - .description = gMimeJrPokedexText, - .pokemonScale = 422, - .pokemonOffset = 14, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_HAPPINY] = - { - .categoryName = _("Playhouse"), - .height = 6, - .weight = 244, - .description = gHappinyPokedexText, - .pokemonScale = 422, - .pokemonOffset = 15, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CHATOT] = - { - .categoryName = _("Music Note"), - .height = 5, - .weight = 19, - .description = gChatotPokedexText, - .pokemonScale = 432, - .pokemonOffset = 15, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SPIRITOMB] = - { - .categoryName = _("Forbidden"), - .height = 10, - .weight = 1080, - .description = gSpiritombPokedexText, - .pokemonScale = 305, - .pokemonOffset = 7, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GIBLE] = - { - .categoryName = _("Land Shark"), - .height = 7, - .weight = 205, - .description = gGiblePokedexText, - .pokemonScale = 365, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GABITE] = - { - .categoryName = _("Cave"), - .height = 14, - .weight = 560, - .description = gGabitePokedexText, - .pokemonScale = 265, - .pokemonOffset = 2, - .trainerScale = 262, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GARCHOMP] = - { - .categoryName = _("Mach"), - .height = 19, - .weight = 950, - .description = gGarchompPokedexText, - .pokemonScale = 256, - .pokemonOffset = 1, - .trainerScale = 326, - .trainerOffset = 4, - }, - - [NATIONAL_DEX_MUNCHLAX] = - { - .categoryName = _("Big Eater"), - .height = 6, - .weight = 1050, - .description = gMunchlaxPokedexText, - .pokemonScale = 422, - .pokemonOffset = 14, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_RIOLU] = - { - .categoryName = _("Emanation"), - .height = 7, - .weight = 202, - .description = gRioluPokedexText, - .pokemonScale = 365, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_LUCARIO] = - { - .categoryName = _("Aura"), - .height = 12, - .weight = 540, - .description = gLucarioPokedexText, - .pokemonScale = 282, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_HIPPOPOTAS] = - { - .categoryName = _("Hippo"), - .height = 8, - .weight = 495, - .description = gHippopotasPokedexText, - .pokemonScale = 366, - .pokemonOffset = 11, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_HIPPOWDON] = - { - .categoryName = _("Heavyweight"), - .height = 20, - .weight = 3000, - .description = gHippowdonPokedexText, - .pokemonScale = 261, - .pokemonOffset = 2, - .trainerScale = 334, - .trainerOffset = 4, - }, - - [NATIONAL_DEX_SKORUPI] = - { - .categoryName = _("Scorpion"), - .height = 8, - .weight = 120, - .description = gSkorupiPokedexText, - .pokemonScale = 366, - .pokemonOffset = 12, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DRAPION] = - { - .categoryName = _("Ogre Scorp"), - .height = 13, - .weight = 615, - .description = gDrapionPokedexText, - .pokemonScale = 272, - .pokemonOffset = 5, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CROAGUNK] = - { - .categoryName = _("Toxic Mouth"), - .height = 7, - .weight = 230, - .description = gCroagunkPokedexText, - .pokemonScale = 365, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_TOXICROAK] = - { - .categoryName = _("Toxic Mouth"), - .height = 13, - .weight = 444, - .description = gToxicroakPokedexText, - .pokemonScale = 272, - .pokemonOffset = 3, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CARNIVINE] = - { - .categoryName = _("Bug Catcher"), - .height = 14, - .weight = 270, - .description = gCarnivinePokedexText, - .pokemonScale = 265, - .pokemonOffset = 2, - .trainerScale = 262, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_FINNEON] = - { - .categoryName = _("Wing Fish"), - .height = 4, - .weight = 70, - .description = gFinneonPokedexText, - .pokemonScale = 491, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_LUMINEON] = - { - .categoryName = _("Neon"), - .height = 12, - .weight = 240, - .description = gLumineonPokedexText, - .pokemonScale = 282, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MANTYKE] = - { - .categoryName = _("Kite"), - .height = 10, - .weight = 650, - .description = gMantykePokedexText, - .pokemonScale = 305, - .pokemonOffset = 7, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SNOVER] = - { - .categoryName = _("Frost Tree"), - .height = 10, - .weight = 505, - .description = gSnoverPokedexText, - .pokemonScale = 305, - .pokemonOffset = 7, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ABOMASNOW] = - { - .categoryName = _("Frost Tree"), - .height = 22, - .weight = 1355, - .description = gAbomasnowPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 348, - .trainerOffset = 6, - }, - - [NATIONAL_DEX_WEAVILE] = - { - .categoryName = _("Sharp Claw"), - .height = 11, - .weight = 340, - .description = gWeavilePokedexText, - .pokemonScale = 320, - .pokemonOffset = 7, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MAGNEZONE] = - { - .categoryName = _("Magnet Area"), - .height = 12, - .weight = 1800, - .description = gMagnezonePokedexText, - .pokemonScale = 282, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_LICKILICKY] = - { - .categoryName = _("Licking"), - .height = 17, - .weight = 1400, - .description = gLickilickyPokedexText, - .pokemonScale = 259, - .pokemonOffset = 0, - .trainerScale = 290, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_RHYPERIOR] = - { - .categoryName = _("Drill"), - .height = 24, - .weight = 2828, - .description = gRhyperiorPokedexText, - .pokemonScale = 256, - .pokemonOffset = 3, - .trainerScale = 369, - .trainerOffset = 7, - }, - - [NATIONAL_DEX_TANGROWTH] = - { - .categoryName = _("Vine"), - .height = 20, - .weight = 1286, - .description = gTangrowthPokedexText, - .pokemonScale = 261, - .pokemonOffset = 1, - .trainerScale = 334, - .trainerOffset = 4, - }, - - [NATIONAL_DEX_ELECTIVIRE] = - { - .categoryName = _("Thunderbolt"), - .height = 18, - .weight = 1386, - .description = gElectivirePokedexText, - .pokemonScale = 267, - .pokemonOffset = 2, - .trainerScale = 286, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_MAGMORTAR] = - { - .categoryName = _("Blast"), - .height = 16, - .weight = 680, - .description = gMagmortarPokedexText, - .pokemonScale = 259, - .pokemonOffset = 1, - .trainerScale = 296, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_TOGEKISS] = - { - .categoryName = _("Jubilee"), - .height = 15, - .weight = 380, - .description = gTogekissPokedexText, - .pokemonScale = 268, - .pokemonOffset = 2, - .trainerScale = 271, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_YANMEGA] = - { - .categoryName = _("Ogre Darner"), - .height = 19, - .weight = 515, - .description = gYanmegaPokedexText, - .pokemonScale = 256, - .pokemonOffset = 1, - .trainerScale = 326, - .trainerOffset = 4, - }, - - [NATIONAL_DEX_LEAFEON] = - { - .categoryName = _("Verdant"), - .height = 10, - .weight = 255, - .description = gLeafeonPokedexText, - .pokemonScale = 305, - .pokemonOffset = 8, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GLACEON] = - { - .categoryName = _("Fresh Snow"), - .height = 8, - .weight = 259, - .description = gGlaceonPokedexText, - .pokemonScale = 366, - .pokemonOffset = 10, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GLISCOR] = - { - .categoryName = _("Fang Scorp"), - .height = 20, - .weight = 425, - .description = gGliscorPokedexText, - .pokemonScale = 261, - .pokemonOffset = 1, - .trainerScale = 334, - .trainerOffset = 4, - }, - - [NATIONAL_DEX_MAMOSWINE] = - { - .categoryName = _("Twin Tusk"), - .height = 25, - .weight = 2910, - .description = gMamoswinePokedexText, - .pokemonScale = 257, - .pokemonOffset = 6, - .trainerScale = 423, - .trainerOffset = 8, - }, - - [NATIONAL_DEX_PORYGON_Z] = - { - .categoryName = _("Virtual"), - .height = 9, - .weight = 340, - .description = gPorygonZPokedexText, - .pokemonScale = 338, - .pokemonOffset = 8, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GALLADE] = - { - .categoryName = _("Blade"), - .height = 16, - .weight = 520, - .description = gGalladePokedexText, - .pokemonScale = 259, - .pokemonOffset = 1, - .trainerScale = 296, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_PROBOPASS] = - { - .categoryName = _("Compass"), - .height = 14, - .weight = 3400, - .description = gProbopassPokedexText, - .pokemonScale = 265, - .pokemonOffset = 2, - .trainerScale = 262, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DUSKNOIR] = - { - .categoryName = _("Gripper"), - .height = 22, - .weight = 1066, - .description = gDusknoirPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 348, - .trainerOffset = 6, - }, - - [NATIONAL_DEX_FROSLASS] = - { - .categoryName = _("Snow Land"), - .height = 13, - .weight = 266, - .description = gFroslassPokedexText, - .pokemonScale = 272, - .pokemonOffset = 3, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ROTOM] = - { - .categoryName = _("Plasma"), - .height = 3, - .weight = 3, - .description = gRotomPokedexText, - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_UXIE] = - { - .categoryName = _("Knowledge"), - .height = 3, - .weight = 3, - .description = gUxiePokedexText, - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MESPRIT] = - { - .categoryName = _("Emotion"), - .height = 3, - .weight = 3, - .description = gMespritPokedexText, - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_AZELF] = - { - .categoryName = _("Willpower"), - .height = 3, - .weight = 3, - .description = gAzelfPokedexText, - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DIALGA] = - { - .categoryName = _("Temporal"), - .height = 54, - .weight = 6830, - .description = gDialgaPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 721, - .trainerOffset = 19, - }, - - [NATIONAL_DEX_PALKIA] = - { - .categoryName = _("Spatial"), - .height = 42, - .weight = 3360, - .description = gPalkiaPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 650, - .trainerOffset = 16, - }, - - [NATIONAL_DEX_HEATRAN] = - { - .categoryName = _("Lava Dome"), - .height = 17, - .weight = 4300, - .description = gHeatranPokedexText, - .pokemonScale = 259, - .pokemonOffset = 1, - .trainerScale = 290, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_REGIGIGAS] = - { - .categoryName = _("Colossal"), - .height = 37, - .weight = 4200, - .description = gRegigigasPokedexText, - .pokemonScale = 256, - .pokemonOffset = 2, - .trainerScale = 610, - .trainerOffset = 17, - }, - - [NATIONAL_DEX_GIRATINA] = - { - .categoryName = _("Renegade"), - .height = 45, - .weight = 7500, - .description = gGiratinaPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 614, - .trainerOffset = 13, - }, - - [NATIONAL_DEX_CRESSELIA] = - { - .categoryName = _("Lunar"), - .height = 15, - .weight = 856, - .description = gCresseliaPokedexText, - .pokemonScale = 268, - .pokemonOffset = 2, - .trainerScale = 271, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PHIONE] = - { - .categoryName = _("Sea Drifter"), - .height = 4, - .weight = 31, - .description = gPhionePokedexText, - .pokemonScale = 491, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MANAPHY] = - { - .categoryName = _("Seafaring"), - .height = 3, - .weight = 14, - .description = gManaphyPokedexText, - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DARKRAI] = - { - .categoryName = _("Pitch-Black"), - .height = 15, - .weight = 505, - .description = gDarkraiPokedexText, - .pokemonScale = 268, - .pokemonOffset = 2, - .trainerScale = 271, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SHAYMIN] = - { - .categoryName = _("Gratitude"), - .height = 2, - .weight = 21, - .description = gShayminPokedexText, - .pokemonScale = 682, - .pokemonOffset = 24, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ARCEUS] = - { - .categoryName = _("Alpha"), - .height = 32, - .weight = 3200, - .description = gArceusPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 495, - .trainerOffset = 10, - }, -#endif - -#if P_GEN_5_POKEMON == TRUE - [NATIONAL_DEX_VICTINI] = - { - .categoryName = _("Victory"), - .height = 4, - .weight = 40, - .description = gVictiniPokedexText, - .pokemonScale = 491, - .pokemonOffset = 16, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SNIVY] = - { - .categoryName = _("Grass Snake"), - .height = 6, - .weight = 81, - .description = gSnivyPokedexText, - .pokemonScale = 422, - .pokemonOffset = 15, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SERVINE] = - { - .categoryName = _("Grass Snake"), - .height = 8, - .weight = 160, - .description = gServinePokedexText, - .pokemonScale = 366, - .pokemonOffset = 9, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SERPERIOR] = - { - .categoryName = _("Regal"), - .height = 33, - .weight = 630, - .description = gSerperiorPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 405, - .trainerOffset = 8, - }, - - [NATIONAL_DEX_TEPIG] = - { - .categoryName = _("Fire Pig"), - .height = 5, - .weight = 99, - .description = gTepigPokedexText, - .pokemonScale = 432, - .pokemonOffset = 15, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PIGNITE] = - { - .categoryName = _("Fire Pig"), - .height = 10, - .weight = 555, - .description = gPignitePokedexText, - .pokemonScale = 305, - .pokemonOffset = 8, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_EMBOAR] = - { - .categoryName = _("Fire Pig"), - .height = 16, - .weight = 1500, - .description = gEmboarPokedexText, - .pokemonScale = 259, - .pokemonOffset = 1, - .trainerScale = 296, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_OSHAWOTT] = - { - .categoryName = _("Sea Otter"), - .height = 5, - .weight = 59, - .description = gOshawottPokedexText, - .pokemonScale = 432, - .pokemonOffset = 15, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DEWOTT] = - { - .categoryName = _("Discipline"), - .height = 8, - .weight = 245, - .description = gDewottPokedexText, - .pokemonScale = 366, - .pokemonOffset = 9, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SAMUROTT] = - { - .categoryName = _("Formidable"), - .height = 15, - .weight = 946, - .description = gSamurottPokedexText, - .pokemonScale = 268, - .pokemonOffset = 2, - .trainerScale = 271, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PATRAT] = - { - .categoryName = _("Scout"), - .height = 5, - .weight = 116, - .description = gPatratPokedexText, - .pokemonScale = 432, - .pokemonOffset = 14, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_WATCHOG] = - { - .categoryName = _("Lookout"), - .height = 11, - .weight = 270, - .description = gWatchogPokedexText, - .pokemonScale = 320, - .pokemonOffset = 7, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_LILLIPUP] = - { - .categoryName = _("Puppy"), - .height = 4, - .weight = 41, - .description = gLillipupPokedexText, - .pokemonScale = 491, - .pokemonOffset = 15, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_HERDIER] = - { - .categoryName = _("Loyal Dog"), - .height = 9, - .weight = 147, - .description = gHerdierPokedexText, - .pokemonScale = 338, - .pokemonOffset = 9, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_STOUTLAND] = - { - .categoryName = _("Big-Hearted"), - .height = 12, - .weight = 610, - .description = gStoutlandPokedexText, - .pokemonScale = 282, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PURRLOIN] = - { - .categoryName = _("Devious"), - .height = 4, - .weight = 101, - .description = gPurrloinPokedexText, - .pokemonScale = 491, - .pokemonOffset = 15, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_LIEPARD] = - { - .categoryName = _("Cruel"), - .height = 11, - .weight = 375, - .description = gLiepardPokedexText, - .pokemonScale = 320, - .pokemonOffset = 7, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PANSAGE] = - { - .categoryName = _("Grass Monkey"), - .height = 6, - .weight = 105, - .description = gPansagePokedexText, - .pokemonScale = 422, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SIMISAGE] = - { - .categoryName = _("Thorn Monkey"), - .height = 11, - .weight = 305, - .description = gSimisagePokedexText, - .pokemonScale = 320, - .pokemonOffset = 7, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PANSEAR] = - { - .categoryName = _("High Temp"), - .height = 6, - .weight = 110, - .description = gPansearPokedexText, - .pokemonScale = 422, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SIMISEAR] = - { - .categoryName = _("Ember"), - .height = 10, - .weight = 280, - .description = gSimisearPokedexText, - .pokemonScale = 305, - .pokemonOffset = 7, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PANPOUR] = - { - .categoryName = _("Spray"), - .height = 6, - .weight = 135, - .description = gPanpourPokedexText, - .pokemonScale = 422, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SIMIPOUR] = - { - .categoryName = _("Geyser"), - .height = 10, - .weight = 290, - .description = gSimipourPokedexText, - .pokemonScale = 305, - .pokemonOffset = 7, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MUNNA] = - { - .categoryName = _("Dream Eater"), - .height = 6, - .weight = 233, - .description = gMunnaPokedexText, - .pokemonScale = 422, - .pokemonOffset = 15, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MUSHARNA] = - { - .categoryName = _("Drowsing"), - .height = 11, - .weight = 605, - .description = gMusharnaPokedexText, - .pokemonScale = 320, - .pokemonOffset = 7, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PIDOVE] = - { - .categoryName = _("Tiny Pigeon"), - .height = 3, - .weight = 21, - .description = gPidovePokedexText, - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_TRANQUILL] = - { - .categoryName = _("Wild Pigeon"), - .height = 6, - .weight = 150, - .description = gTranquillPokedexText, - .pokemonScale = 422, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_UNFEZANT] = - { - .categoryName = _("Proud"), - .height = 12, - .weight = 290, - .description = gUnfezantPokedexText, - .pokemonScale = 282, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BLITZLE] = - { - .categoryName = _("Electrified"), - .height = 8, - .weight = 298, - .description = gBlitzlePokedexText, - .pokemonScale = 366, - .pokemonOffset = 8, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ZEBSTRIKA] = - { - .categoryName = _("Thunderbolt"), - .height = 16, - .weight = 795, - .description = gZebstrikaPokedexText, - .pokemonScale = 259, - .pokemonOffset = 1, - .trainerScale = 296, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_ROGGENROLA] = - { - .categoryName = _("Mantle"), - .height = 4, - .weight = 180, - .description = gRoggenrolaPokedexText, - .pokemonScale = 491, - .pokemonOffset = 16, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BOLDORE] = - { - .categoryName = _("Ore"), - .height = 9, - .weight = 1020, - .description = gBoldorePokedexText, - .pokemonScale = 338, - .pokemonOffset = 8, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GIGALITH] = - { - .categoryName = _("Compressed"), - .height = 17, - .weight = 2600, - .description = gGigalithPokedexText, - .pokemonScale = 259, - .pokemonOffset = 0, - .trainerScale = 290, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_WOOBAT] = - { - .categoryName = _("Bat"), - .height = 4, - .weight = 21, - .description = gWoobatPokedexText, - .pokemonScale = 491, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SWOOBAT] = - { - .categoryName = _("Courting"), - .height = 9, - .weight = 105, - .description = gSwoobatPokedexText, - .pokemonScale = 338, - .pokemonOffset = 8, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DRILBUR] = - { - .categoryName = _("Mole"), - .height = 3, - .weight = 85, - .description = gDrilburPokedexText, - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_EXCADRILL] = - { - .categoryName = _("Subterrene"), - .height = 7, - .weight = 404, - .description = gExcadrillPokedexText, - .pokemonScale = 365, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_AUDINO] = - { - .categoryName = _("Hearing"), - .height = 11, - .weight = 310, - .description = gAudinoPokedexText, - .pokemonScale = 320, - .pokemonOffset = 7, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_TIMBURR] = - { - .categoryName = _("Muscular"), - .height = 6, - .weight = 125, - .description = gTimburrPokedexText, - .pokemonScale = 422, - .pokemonOffset = 14, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GURDURR] = - { - .categoryName = _("Muscular"), - .height = 12, - .weight = 400, - .description = gGurdurrPokedexText, - .pokemonScale = 282, - .pokemonOffset = 3, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CONKELDURR] = - { - .categoryName = _("Muscular"), - .height = 14, - .weight = 870, - .description = gConkeldurrPokedexText, - .pokemonScale = 265, - .pokemonOffset = 3, - .trainerScale = 262, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_TYMPOLE] = - { - .categoryName = _("Tadpole"), - .height = 5, - .weight = 45, - .description = gTympolePokedexText, - .pokemonScale = 432, - .pokemonOffset = 15, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PALPITOAD] = - { - .categoryName = _("Vibration"), - .height = 8, - .weight = 170, - .description = gPalpitoadPokedexText, - .pokemonScale = 366, - .pokemonOffset = 10, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SEISMITOAD] = - { - .categoryName = _("Vibration"), - .height = 15, - .weight = 620, - .description = gSeismitoadPokedexText, - .pokemonScale = 268, - .pokemonOffset = 2, - .trainerScale = 271, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_THROH] = - { - .categoryName = _("Judo"), - .height = 13, - .weight = 555, - .description = gThrohPokedexText, - .pokemonScale = 272, - .pokemonOffset = 7, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SAWK] = - { - .categoryName = _("Karate"), - .height = 14, - .weight = 510, - .description = gSawkPokedexText, - .pokemonScale = 265, - .pokemonOffset = 4, - .trainerScale = 262, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SEWADDLE] = - { - .categoryName = _("Sewing"), - .height = 3, - .weight = 25, - .description = gSewaddlePokedexText, - .pokemonScale = 530, - .pokemonOffset = 15, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SWADLOON] = - { - .categoryName = _("Leaf-Wrapped"), - .height = 5, - .weight = 73, - .description = gSwadloonPokedexText, - .pokemonScale = 432, - .pokemonOffset = 15, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_LEAVANNY] = - { - .categoryName = _("Nurturing"), - .height = 12, - .weight = 205, - .description = gLeavannyPokedexText, - .pokemonScale = 282, - .pokemonOffset = 3, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_VENIPEDE] = - { - .categoryName = _("Centipede"), - .height = 4, - .weight = 53, - .description = gVenipedePokedexText, - .pokemonScale = 491, - .pokemonOffset = 16, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_WHIRLIPEDE] = - { - .categoryName = _("Curlipede"), - .height = 12, - .weight = 585, - .description = gWhirlipedePokedexText, - .pokemonScale = 282, - .pokemonOffset = 7, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SCOLIPEDE] = - { - .categoryName = _("Megapede"), - .height = 25, - .weight = 2005, - .description = gScolipedePokedexText, - .pokemonScale = 257, - .pokemonOffset = 2, - .trainerScale = 423, - .trainerOffset = 8, - }, - - [NATIONAL_DEX_COTTONEE] = - { - .categoryName = _("Cotton Puff"), - .height = 3, - .weight = 6, - .description = gCottoneePokedexText, - .pokemonScale = 530, - .pokemonOffset = 15, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_WHIMSICOTT] = - { - .categoryName = _("Windveiled"), - .height = 7, - .weight = 66, - .description = gWhimsicottPokedexText, - .pokemonScale = 365, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PETILIL] = - { - .categoryName = _("Bulb"), - .height = 5, - .weight = 66, - .description = gPetililPokedexText, - .pokemonScale = 432, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_LILLIGANT] = - { - .categoryName = _("Flowering"), - .height = 11, - .weight = 163, - .description = gLilligantPokedexText, - .pokemonScale = 320, - .pokemonOffset = 7, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BASCULIN] = - { - .categoryName = _("Hostile"), - .height = 10, - .weight = 180, - .description = gBasculinPokedexText, - .pokemonScale = 316, - .pokemonOffset = 7, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SANDILE] = - { - .categoryName = _("Desert Croc"), - .height = 7, - .weight = 152, - .description = gSandilePokedexText, - .pokemonScale = 365, - .pokemonOffset = 14, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_KROKOROK] = - { - .categoryName = _("Desert Croc"), - .height = 10, - .weight = 334, - .description = gKrokorokPokedexText, - .pokemonScale = 305, - .pokemonOffset = 7, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_KROOKODILE] = - { - .categoryName = _("Intimidate"), - .height = 15, - .weight = 963, - .description = gKrookodilePokedexText, - .pokemonScale = 268, - .pokemonOffset = 2, - .trainerScale = 271, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DARUMAKA] = - { - .categoryName = _("Zen Charm"), - .height = 6, - .weight = 375, - .description = gDarumakaPokedexText, - .pokemonScale = 422, - .pokemonOffset = 14, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DARMANITAN] = - { - .categoryName = _("Blazing"), - .height = 13, - .weight = 929, - .description = gDarmanitanPokedexText, - .pokemonScale = 272, - .pokemonOffset = 3, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MARACTUS] = - { - .categoryName = _("Cactus"), - .height = 10, - .weight = 280, - .description = gMaractusPokedexText, - .pokemonScale = 305, - .pokemonOffset = 6, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DWEBBLE] = - { - .categoryName = _("Rock Inn"), - .height = 3, - .weight = 145, - .description = gDwebblePokedexText, - .pokemonScale = 530, - .pokemonOffset = 15, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CRUSTLE] = - { - .categoryName = _("Stone Home"), - .height = 14, - .weight = 2000, - .description = gCrustlePokedexText, - .pokemonScale = 265, - .pokemonOffset = 2, - .trainerScale = 262, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SCRAGGY] = - { - .categoryName = _("Shedding"), - .height = 6, - .weight = 118, - .description = gScraggyPokedexText, - .pokemonScale = 422, - .pokemonOffset = 14, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SCRAFTY] = - { - .categoryName = _("Hoodlum"), - .height = 11, - .weight = 300, - .description = gScraftyPokedexText, - .pokemonScale = 320, - .pokemonOffset = 7, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SIGILYPH] = - { - .categoryName = _("Avianoid"), - .height = 14, - .weight = 140, - .description = gSigilyphPokedexText, - .pokemonScale = 265, - .pokemonOffset = 2, - .trainerScale = 262, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_YAMASK] = - { - .categoryName = _("Spirit"), - .height = 5, - .weight = 15, - .description = gYamaskPokedexText, - .pokemonScale = 432, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_COFAGRIGUS] = - { - .categoryName = _("Coffin"), - .height = 17, - .weight = 765, - .description = gCofagrigusPokedexText, - .pokemonScale = 259, - .pokemonOffset = 0, - .trainerScale = 290, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_TIRTOUGA] = - { - .categoryName = _("Prototurtle"), - .height = 7, - .weight = 165, - .description = gTirtougaPokedexText, - .pokemonScale = 365, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CARRACOSTA] = - { - .categoryName = _("Prototurtle"), - .height = 12, - .weight = 810, - .description = gCarracostaPokedexText, - .pokemonScale = 282, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ARCHEN] = - { - .categoryName = _("First Bird"), - .height = 5, - .weight = 95, - .description = gArchenPokedexText, - .pokemonScale = 432, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ARCHEOPS] = - { - .categoryName = _("First Bird"), - .height = 14, - .weight = 320, - .description = gArcheopsPokedexText, - .pokemonScale = 265, - .pokemonOffset = 2, - .trainerScale = 262, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_TRUBBISH] = - { - .categoryName = _("Trash Bag"), - .height = 6, - .weight = 310, - .description = gTrubbishPokedexText, - .pokemonScale = 422, - .pokemonOffset = 14, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GARBODOR] = - { - .categoryName = _("Trash Heap"), - .height = 19, - .weight = 1073, - .description = gGarbodorPokedexText, - .pokemonScale = 256, - .pokemonOffset = 1, - .trainerScale = 326, - .trainerOffset = 4, - }, - - [NATIONAL_DEX_ZORUA] = - { - .categoryName = _("Tricky Fox"), - .height = 7, - .weight = 125, - .description = gZoruaPokedexText, - .pokemonScale = 365, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ZOROARK] = - { - .categoryName = _("Illusion Fox"), - .height = 16, - .weight = 811, - .description = gZoroarkPokedexText, - .pokemonScale = 259, - .pokemonOffset = 1, - .trainerScale = 296, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_MINCCINO] = - { - .categoryName = _("Chinchilla"), - .height = 4, - .weight = 58, - .description = gMinccinoPokedexText, - .pokemonScale = 491, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CINCCINO] = - { - .categoryName = _("Scarf"), - .height = 5, - .weight = 75, - .description = gCinccinoPokedexText, - .pokemonScale = 432, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GOTHITA] = - { - .categoryName = _("Fixation"), - .height = 4, - .weight = 58, - .description = gGothitaPokedexText, - .pokemonScale = 491, - .pokemonOffset = 14, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GOTHORITA] = - { - .categoryName = _("Manipulate"), - .height = 7, - .weight = 180, - .description = gGothoritaPokedexText, - .pokemonScale = 365, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GOTHITELLE] = - { - .categoryName = _("Astral Body"), - .height = 15, - .weight = 440, - .description = gGothitellePokedexText, - .pokemonScale = 268, - .pokemonOffset = 2, - .trainerScale = 271, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SOLOSIS] = - { - .categoryName = _("Cell"), - .height = 3, - .weight = 10, - .description = gSolosisPokedexText, - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DUOSION] = - { - .categoryName = _("Mitosis"), - .height = 6, - .weight = 80, - .description = gDuosionPokedexText, - .pokemonScale = 422, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_REUNICLUS] = - { - .categoryName = _("Multiplying"), - .height = 10, - .weight = 201, - .description = gReuniclusPokedexText, - .pokemonScale = 305, - .pokemonOffset = 7, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DUCKLETT] = - { - .categoryName = _("Water Bird"), - .height = 5, - .weight = 55, - .description = gDucklettPokedexText, - .pokemonScale = 432, - .pokemonOffset = 14, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SWANNA] = - { - .categoryName = _("White Bird"), - .height = 13, - .weight = 242, - .description = gSwannaPokedexText, - .pokemonScale = 272, - .pokemonOffset = 3, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_VANILLITE] = - { - .categoryName = _("Fresh Snow"), - .height = 4, - .weight = 57, - .description = gVanillitePokedexText, - .pokemonScale = 491, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_VANILLISH] = - { - .categoryName = _("Icy Snow"), - .height = 11, - .weight = 410, - .description = gVanillishPokedexText, - .pokemonScale = 320, - .pokemonOffset = 7, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_VANILLUXE] = - { - .categoryName = _("Snowstorm"), - .height = 13, - .weight = 575, - .description = gVanilluxePokedexText, - .pokemonScale = 272, - .pokemonOffset = 3, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DEERLING] = - { - .categoryName = _("Season"), - .height = 6, - .weight = 195, - .description = gDeerlingPokedexText, - .pokemonScale = 422, - .pokemonOffset = 14, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SAWSBUCK] = - { - .categoryName = _("Season"), - .height = 19, - .weight = 925, - .description = gSawsbuckPokedexText, - .pokemonScale = 256, - .pokemonOffset = 1, - .trainerScale = 326, - .trainerOffset = 4, - }, - - [NATIONAL_DEX_EMOLGA] = - { - .categoryName = _("Sky Squirrel"), - .height = 4, - .weight = 50, - .description = gEmolgaPokedexText, - .pokemonScale = 491, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_KARRABLAST] = - { - .categoryName = _("Clamping"), - .height = 5, - .weight = 59, - .description = gKarrablastPokedexText, - .pokemonScale = 432, - .pokemonOffset = 15, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ESCAVALIER] = - { - .categoryName = _("Cavalry"), - .height = 10, - .weight = 330, - .description = gEscavalierPokedexText, - .pokemonScale = 305, - .pokemonOffset = 7, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_FOONGUS] = - { - .categoryName = _("Mushroom"), - .height = 2, - .weight = 10, - .description = gFoongusPokedexText, - .pokemonScale = 682, - .pokemonOffset = 24, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_AMOONGUSS] = - { - .categoryName = _("Mushroom"), - .height = 6, - .weight = 105, - .description = gAmoongussPokedexText, - .pokemonScale = 422, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_FRILLISH] = - { - .categoryName = _("Floating"), - .height = 12, - .weight = 330, - .description = gFrillishPokedexText, - .pokemonScale = 282, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_JELLICENT] = - { - .categoryName = _("Floating"), - .height = 22, - .weight = 1350, - .description = gJellicentPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 348, - .trainerOffset = 6, - }, - - [NATIONAL_DEX_ALOMOMOLA] = - { - .categoryName = _("Caring"), - .height = 12, - .weight = 316, - .description = gAlomomolaPokedexText, - .pokemonScale = 282, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_JOLTIK] = - { - .categoryName = _("Attaching"), - .height = 1, - .weight = 6, - .description = gJoltikPokedexText, - .pokemonScale = 682, - .pokemonOffset = 24, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GALVANTULA] = - { - .categoryName = _("EleSpider"), - .height = 8, - .weight = 143, - .description = gGalvantulaPokedexText, - .pokemonScale = 366, - .pokemonOffset = 10, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_FERROSEED] = - { - .categoryName = _("Thorn Seed"), - .height = 6, - .weight = 188, - .description = gFerroseedPokedexText, - .pokemonScale = 422, - .pokemonOffset = 14, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_FERROTHORN] = - { - .categoryName = _("Thorn Pod"), - .height = 10, - .weight = 1100, - .description = gFerrothornPokedexText, - .pokemonScale = 305, - .pokemonOffset = 7, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_KLINK] = - { - .categoryName = _("Gear"), - .height = 3, - .weight = 210, - .description = gKlinkPokedexText, - .pokemonScale = 530, - .pokemonOffset = 15, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_KLANG] = - { - .categoryName = _("Gear"), - .height = 6, - .weight = 510, - .description = gKlangPokedexText, - .pokemonScale = 422, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_KLINKLANG] = - { - .categoryName = _("Gear"), - .height = 6, - .weight = 810, - .description = gKlinklangPokedexText, - .pokemonScale = 422, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_TYNAMO] = - { - .categoryName = _("EleFish"), - .height = 2, - .weight = 3, - .description = gTynamoPokedexText, - .pokemonScale = 682, - .pokemonOffset = 24, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_EELEKTRIK] = - { - .categoryName = _("EleFish"), - .height = 12, - .weight = 220, - .description = gEelektrikPokedexText, - .pokemonScale = 282, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_EELEKTROSS] = - { - .categoryName = _("EleFish"), - .height = 21, - .weight = 805, - .description = gEelektrossPokedexText, - .pokemonScale = 256, - .pokemonOffset = 1, - .trainerScale = 365, - .trainerOffset = 7, - }, - - [NATIONAL_DEX_ELGYEM] = - { - .categoryName = _("Cerebral"), - .height = 5, - .weight = 90, - .description = gElgyemPokedexText, - .pokemonScale = 432, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BEHEEYEM] = - { - .categoryName = _("Cerebral"), - .height = 10, - .weight = 345, - .description = gBeheeyemPokedexText, - .pokemonScale = 305, - .pokemonOffset = 7, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_LITWICK] = - { - .categoryName = _("Candle"), - .height = 3, - .weight = 31, - .description = gLitwickPokedexText, - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_LAMPENT] = - { - .categoryName = _("Lamp"), - .height = 6, - .weight = 130, - .description = gLampentPokedexText, - .pokemonScale = 422, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CHANDELURE] = - { - .categoryName = _("Luring"), - .height = 10, - .weight = 343, - .description = gChandelurePokedexText, - .pokemonScale = 305, - .pokemonOffset = 7, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_AXEW] = - { - .categoryName = _("Tusk"), - .height = 6, - .weight = 180, - .description = gAxewPokedexText, - .pokemonScale = 422, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_FRAXURE] = - { - .categoryName = _("Axe Jaw"), - .height = 10, - .weight = 360, - .description = gFraxurePokedexText, - .pokemonScale = 305, - .pokemonOffset = 7, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_HAXORUS] = - { - .categoryName = _("Axe Jaw"), - .height = 18, - .weight = 1055, - .description = gHaxorusPokedexText, - .pokemonScale = 267, - .pokemonOffset = 2, - .trainerScale = 286, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_CUBCHOO] = - { - .categoryName = _("Chill"), - .height = 5, - .weight = 85, - .description = gCubchooPokedexText, - .pokemonScale = 432, - .pokemonOffset = 15, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BEARTIC] = - { - .categoryName = _("Freezing"), - .height = 26, - .weight = 2600, - .description = gBearticPokedexText, - .pokemonScale = 266, - .pokemonOffset = 3, - .trainerScale = 399, - .trainerOffset = 4, - }, - - [NATIONAL_DEX_CRYOGONAL] = - { - .categoryName = _("Crystallize"), - .height = 11, - .weight = 1480, - .description = gCryogonalPokedexText, - .pokemonScale = 320, - .pokemonOffset = 7, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SHELMET] = - { - .categoryName = _("Snail"), - .height = 4, - .weight = 77, - .description = gShelmetPokedexText, - .pokemonScale = 491, - .pokemonOffset = 15, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ACCELGOR] = - { - .categoryName = _("Shell Out"), - .height = 8, - .weight = 253, - .description = gAccelgorPokedexText, - .pokemonScale = 366, - .pokemonOffset = 9, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_STUNFISK] = - { - .categoryName = _("Trap"), - .height = 7, - .weight = 110, - .description = gStunfiskPokedexText, - .pokemonScale = 365, - .pokemonOffset = 14, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MIENFOO] = - { - .categoryName = _("Martial Arts"), - .height = 9, - .weight = 200, - .description = gMienfooPokedexText, - .pokemonScale = 338, - .pokemonOffset = 10, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MIENSHAO] = - { - .categoryName = _("Martial Arts"), - .height = 14, - .weight = 355, - .description = gMienshaoPokedexText, - .pokemonScale = 265, - .pokemonOffset = 2, - .trainerScale = 262, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DRUDDIGON] = - { - .categoryName = _("Cave"), - .height = 16, - .weight = 1390, - .description = gDruddigonPokedexText, - .pokemonScale = 259, - .pokemonOffset = 1, - .trainerScale = 296, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_GOLETT] = - { - .categoryName = _("Automaton"), - .height = 10, - .weight = 920, - .description = gGolettPokedexText, - .pokemonScale = 305, - .pokemonOffset = 7, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GOLURK] = - { - .categoryName = _("Automaton"), - .height = 28, - .weight = 3300, - .description = gGolurkPokedexText, - .pokemonScale = 275, - .pokemonOffset = 3, - .trainerScale = 300, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PAWNIARD] = - { - .categoryName = _("Sharp Blade"), - .height = 5, - .weight = 102, - .description = gPawniardPokedexText, - .pokemonScale = 432, - .pokemonOffset = 15, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BISHARP] = - { - .categoryName = _("Sword Blade"), - .height = 16, - .weight = 700, - .description = gBisharpPokedexText, - .pokemonScale = 259, - .pokemonOffset = 1, - .trainerScale = 296, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_BOUFFALANT] = - { - .categoryName = _("Bash Buffalo"), - .height = 16, - .weight = 946, - .description = gBouffalantPokedexText, - .pokemonScale = 259, - .pokemonOffset = 1, - .trainerScale = 296, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_RUFFLET] = - { - .categoryName = _("Eaglet"), - .height = 5, - .weight = 105, - .description = gRuffletPokedexText, - .pokemonScale = 432, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BRAVIARY] = - { - .categoryName = _("Valiant"), - .height = 15, - .weight = 410, - .description = gBraviaryPokedexText, - .pokemonScale = 268, - .pokemonOffset = 2, - .trainerScale = 271, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_VULLABY] = - { - .categoryName = _("Diapered"), - .height = 5, - .weight = 90, - .description = gVullabyPokedexText, - .pokemonScale = 432, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MANDIBUZZ] = - { - .categoryName = _("Bone Vulture"), - .height = 12, - .weight = 395, - .description = gMandibuzzPokedexText, - .pokemonScale = 282, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_HEATMOR] = - { - .categoryName = _("Anteater"), - .height = 14, - .weight = 580, - .description = gHeatmorPokedexText, - .pokemonScale = 265, - .pokemonOffset = 2, - .trainerScale = 262, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DURANT] = - { - .categoryName = _("Iron Ant"), - .height = 3, - .weight = 330, - .description = gDurantPokedexText, - .pokemonScale = 530, - .pokemonOffset = 19, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DEINO] = - { - .categoryName = _("Irate"), - .height = 8, - .weight = 173, - .description = gDeinoPokedexText, - .pokemonScale = 366, - .pokemonOffset = 12, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ZWEILOUS] = - { - .categoryName = _("Hostile"), - .height = 14, - .weight = 500, - .description = gZweilousPokedexText, - .pokemonScale = 265, - .pokemonOffset = 3, - .trainerScale = 262, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_HYDREIGON] = - { - .categoryName = _("Brutal"), - .height = 18, - .weight = 1600, - .description = gHydreigonPokedexText, - .pokemonScale = 267, - .pokemonOffset = 2, - .trainerScale = 286, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_LARVESTA] = - { - .categoryName = _("Torch"), - .height = 11, - .weight = 288, - .description = gLarvestaPokedexText, - .pokemonScale = 320, - .pokemonOffset = 10, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_VOLCARONA] = - { - .categoryName = _("Sun"), - .height = 16, - .weight = 460, - .description = gVolcaronaPokedexText, - .pokemonScale = 259, - .pokemonOffset = 1, - .trainerScale = 296, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_COBALION] = - { - .categoryName = _("Iron Will"), - .height = 21, - .weight = 2500, - .description = gCobalionPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 365, - .trainerOffset = 7, - }, - - [NATIONAL_DEX_TERRAKION] = - { - .categoryName = _("Cavern"), - .height = 19, - .weight = 2600, - .description = gTerrakionPokedexText, - .pokemonScale = 256, - .pokemonOffset = 1, - .trainerScale = 336, - .trainerOffset = 4, - }, - - [NATIONAL_DEX_VIRIZION] = - { - .categoryName = _("Grassland"), - .height = 20, - .weight = 2000, - .description = gVirizionPokedexText, - .pokemonScale = 261, - .pokemonOffset = 1, - .trainerScale = 344, - .trainerOffset = 4, - }, - - [NATIONAL_DEX_TORNADUS] = - { - .categoryName = _("Cyclone"), - .height = 15, - .weight = 630, - .description = gTornadusPokedexText, - .pokemonScale = 268, - .pokemonOffset = 2, - .trainerScale = 271, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_THUNDURUS] = - { - .categoryName = _("Bolt Strike"), - .height = 15, - .weight = 610, - .description = gThundurusPokedexText, - .pokemonScale = 268, - .pokemonOffset = 2, - .trainerScale = 271, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_RESHIRAM] = - { - .categoryName = _("Vast White"), - .height = 32, - .weight = 3300, - .description = gReshiramPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 445, - .trainerOffset = 8, - }, - - [NATIONAL_DEX_ZEKROM] = - { - .categoryName = _("Deep Black"), - .height = 29, - .weight = 3450, - .description = gZekromPokedexText, - .pokemonScale = 275, - .pokemonOffset = 2, - .trainerScale = 412, - .trainerOffset = 10, - }, - - [NATIONAL_DEX_LANDORUS] = - { - .categoryName = _("Abundance"), - .height = 15, - .weight = 680, - .description = gLandorusPokedexText, - .pokemonScale = 268, - .pokemonOffset = 2, - .trainerScale = 271, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_KYUREM] = - { - .categoryName = _("Boundary"), - .height = 30, - .weight = 3250, - .description = gKyuremPokedexText, - .pokemonScale = 275, - .pokemonOffset = 7, - .trainerScale = 356, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_KELDEO] = - { - .categoryName = _("Colt"), - .height = 14, - .weight = 485, - .description = gKeldeoPokedexText, - .pokemonScale = 265, - .pokemonOffset = 2, - .trainerScale = 262, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MELOETTA] = - { - .categoryName = _("Melody"), - .height = 6, - .weight = 65, - .description = gMeloettaPokedexText, - .pokemonScale = 422, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GENESECT] = - { - .categoryName = _("Paleozoic"), - .height = 15, - .weight = 825, - .description = gGenesectPokedexText, - .pokemonScale = 268, - .pokemonOffset = 2, - .trainerScale = 271, - .trainerOffset = 0, - }, -#endif - -#if P_GEN_6_POKEMON == TRUE - [NATIONAL_DEX_CHESPIN] = - { - .categoryName = _("Spiny Nut"), - .height = 4, - .weight = 90, - .description = gChespinPokedexText, - .pokemonScale = 491, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_QUILLADIN] = - { - .categoryName = _("Spiny Armor"), - .height = 7, - .weight = 290, - .description = gQuilladinPokedexText, - .pokemonScale = 365, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CHESNAUGHT] = - { - .categoryName = _("Spiny Armor"), - .height = 16, - .weight = 900, - .description = gChesnaughtPokedexText, - .pokemonScale = 259, - .pokemonOffset = 1, - .trainerScale = 296, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_FENNEKIN] = - { - .categoryName = _("Fox"), - .height = 4, - .weight = 94, - .description = gFennekinPokedexText, - .pokemonScale = 491, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BRAIXEN] = - { - .categoryName = _("Fox"), - .height = 10, - .weight = 145, - .description = gBraixenPokedexText, - .pokemonScale = 305, - .pokemonOffset = 7, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DELPHOX] = - { - .categoryName = _("Fox"), - .height = 15, - .weight = 390, - .description = gDelphoxPokedexText, - .pokemonScale = 268, - .pokemonOffset = 2, - .trainerScale = 271, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_FROAKIE] = - { - .categoryName = _("Bubble Frog"), - .height = 3, - .weight = 70, - .description = gFroakiePokedexText, - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_FROGADIER] = - { - .categoryName = _("Bubble Frog"), - .height = 6, - .weight = 109, - .description = gFrogadierPokedexText, - .pokemonScale = 422, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GRENINJA] = - { - .categoryName = _("Ninja"), - .height = 15, - .weight = 400, - .description = gGreninjaPokedexText, - .pokemonScale = 268, - .pokemonOffset = 2, - .trainerScale = 271, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BUNNELBY] = - { - .categoryName = _("Digging"), - .height = 4, - .weight = 50, - .description = gBunnelbyPokedexText, - .pokemonScale = 491, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DIGGERSBY] = - { - .categoryName = _("Digging"), - .height = 10, - .weight = 424, - .description = gDiggersbyPokedexText, - .pokemonScale = 305, - .pokemonOffset = 7, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_FLETCHLING] = - { - .categoryName = _("Tiny Robin"), - .height = 3, - .weight = 17, - .description = gFletchlingPokedexText, - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_FLETCHINDER] = - { - .categoryName = _("Ember"), - .height = 7, - .weight = 160, - .description = gFletchinderPokedexText, - .pokemonScale = 365, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_TALONFLAME] = - { - .categoryName = _("Scorching"), - .height = 12, - .weight = 245, - .description = gTalonflamePokedexText, - .pokemonScale = 282, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SCATTERBUG] = - { - .categoryName = _("Scatterdust"), - .height = 3, - .weight = 25, - .description = gScatterbugPokedexText, - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SPEWPA] = - { - .categoryName = _("Scatterdust"), - .height = 3, - .weight = 84, - .description = gSpewpaPokedexText, - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_VIVILLON] = - { - .categoryName = _("Scale"), - .height = 12, - .weight = 170, - .description = gVivillonPokedexText, - .pokemonScale = 282, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_LITLEO] = - { - .categoryName = _("Lion Cub"), - .height = 6, - .weight = 135, - .description = gLitleoPokedexText, - .pokemonScale = 422, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PYROAR] = - { - .categoryName = _("Royal"), - .height = 15, - .weight = 815, - .description = gPyroarPokedexText, - .pokemonScale = 268, - .pokemonOffset = 2, - .trainerScale = 271, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_FLABEBE] = - { - .categoryName = _("Single Bloom"), - .height = 1, - .weight = 1, - .description = gFlabebePokedexText, - .pokemonScale = 682, - .pokemonOffset = 24, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_FLOETTE] = - { - .categoryName = _("Single Bloom"), - .height = 2, - .weight = 9, - .description = gFloettePokedexText, - .pokemonScale = 682, - .pokemonOffset = 24, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_FLORGES] = - { - .categoryName = _("Garden"), - .height = 11, - .weight = 100, - .description = gFlorgesPokedexText, - .pokemonScale = 320, - .pokemonOffset = 7, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SKIDDO] = - { - .categoryName = _("Mount"), - .height = 9, - .weight = 310, - .description = gSkiddoPokedexText, - .pokemonScale = 338, - .pokemonOffset = 8, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GOGOAT] = - { - .categoryName = _("Mount"), - .height = 17, - .weight = 910, - .description = gGogoatPokedexText, - .pokemonScale = 259, - .pokemonOffset = 0, - .trainerScale = 290, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_PANCHAM] = - { - .categoryName = _("Playful"), - .height = 6, - .weight = 80, - .description = gPanchamPokedexText, - .pokemonScale = 422, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PANGORO] = - { - .categoryName = _("Daunting"), - .height = 21, - .weight = 1360, - .description = gPangoroPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 365, - .trainerOffset = 7, - }, - - [NATIONAL_DEX_FURFROU] = - { - .categoryName = _("Poodle"), - .height = 12, - .weight = 280, - .description = gFurfrouPokedexText, - .pokemonScale = 282, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ESPURR] = - { - .categoryName = _("Restraint"), - .height = 3, - .weight = 35, - .description = gEspurrPokedexText, - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MEOWSTIC] = - { - .categoryName = _("Constraint"), - .height = 6, - .weight = 85, - .description = gMeowsticPokedexText, - .pokemonScale = 422, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_HONEDGE] = - { - .categoryName = _("Sword"), - .height = 8, - .weight = 20, - .description = gHonedgePokedexText, - .pokemonScale = 366, - .pokemonOffset = 7, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DOUBLADE] = - { - .categoryName = _("Sword"), - .height = 8, - .weight = 45, - .description = gDoubladePokedexText, - .pokemonScale = 366, - .pokemonOffset = 7, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_AEGISLASH] = - { - .categoryName = _("Royal Sword"), - .height = 17, - .weight = 530, - .description = gAegislashPokedexText, - .pokemonScale = 259, - .pokemonOffset = 0, - .trainerScale = 290, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_SPRITZEE] = - { - .categoryName = _("Perfume"), - .height = 2, - .weight = 5, - .description = gSpritzeePokedexText, - .pokemonScale = 682, - .pokemonOffset = 24, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_AROMATISSE] = - { - .categoryName = _("Fragrance"), - .height = 8, - .weight = 155, - .description = gAromatissePokedexText, - .pokemonScale = 366, - .pokemonOffset = 7, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SWIRLIX] = - { - .categoryName = _("Cotton Candy"), - .height = 4, - .weight = 35, - .description = gSwirlixPokedexText, - .pokemonScale = 491, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SLURPUFF] = - { - .categoryName = _("Meringue"), - .height = 8, - .weight = 50, - .description = gSlurpuffPokedexText, - .pokemonScale = 366, - .pokemonOffset = 7, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_INKAY] = - { - .categoryName = _("Revolving"), - .height = 4, - .weight = 35, - .description = gInkayPokedexText, - .pokemonScale = 491, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MALAMAR] = - { - .categoryName = _("Overturning"), - .height = 15, - .weight = 470, - .description = gMalamarPokedexText, - .pokemonScale = 268, - .pokemonOffset = 2, - .trainerScale = 271, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BINACLE] = - { - .categoryName = _("Two-Handed"), - .height = 5, - .weight = 310, - .description = gBinaclePokedexText, - .pokemonScale = 432, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BARBARACLE] = - { - .categoryName = _("Collective"), - .height = 13, - .weight = 960, - .description = gBarbaraclePokedexText, - .pokemonScale = 272, - .pokemonOffset = 3, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SKRELP] = - { - .categoryName = _("Mock Kelp"), - .height = 5, - .weight = 73, - .description = gSkrelpPokedexText, - .pokemonScale = 432, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DRAGALGE] = - { - .categoryName = _("Mock Kelp"), - .height = 18, - .weight = 815, - .description = gDragalgePokedexText, - .pokemonScale = 267, - .pokemonOffset = 2, - .trainerScale = 286, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_CLAUNCHER] = - { - .categoryName = _("Water Gun"), - .height = 5, - .weight = 83, - .description = gClauncherPokedexText, - .pokemonScale = 432, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CLAWITZER] = - { - .categoryName = _("Howitzer"), - .height = 13, - .weight = 353, - .description = gClawitzerPokedexText, - .pokemonScale = 272, - .pokemonOffset = 3, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_HELIOPTILE] = - { - .categoryName = _("Generator"), - .height = 5, - .weight = 60, - .description = gHelioptilePokedexText, - .pokemonScale = 432, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_HELIOLISK] = - { - .categoryName = _("Generator"), - .height = 10, - .weight = 210, - .description = gHelioliskPokedexText, - .pokemonScale = 305, - .pokemonOffset = 7, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_TYRUNT] = - { - .categoryName = _("Royal Heir"), - .height = 8, - .weight = 260, - .description = gTyruntPokedexText, - .pokemonScale = 366, - .pokemonOffset = 7, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_TYRANTRUM] = - { - .categoryName = _("Despot"), - .height = 25, - .weight = 2700, - .description = gTyrantrumPokedexText, - .pokemonScale = 257, - .pokemonOffset = 10, - .trainerScale = 423, - .trainerOffset = 8, - }, - - [NATIONAL_DEX_AMAURA] = - { - .categoryName = _("Tundra"), - .height = 13, - .weight = 252, - .description = gAmauraPokedexText, - .pokemonScale = 272, - .pokemonOffset = 3, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_AURORUS] = - { - .categoryName = _("Tundra"), - .height = 27, - .weight = 2250, - .description = gAurorusPokedexText, - .pokemonScale = 275, - .pokemonOffset = 7, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SYLVEON] = - { - .categoryName = _("Intertwine"), - .height = 10, - .weight = 235, - .description = gSylveonPokedexText, - .pokemonScale = 305, - .pokemonOffset = 7, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_HAWLUCHA] = - { - .categoryName = _("Wrestling"), - .height = 8, - .weight = 215, - .description = gHawluchaPokedexText, - .pokemonScale = 366, - .pokemonOffset = 7, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DEDENNE] = - { - .categoryName = _("Antenna"), - .height = 2, - .weight = 22, - .description = gDedennePokedexText, - .pokemonScale = 682, - .pokemonOffset = 24, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CARBINK] = - { - .categoryName = _("Jewel"), - .height = 3, - .weight = 57, - .description = gCarbinkPokedexText, - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GOOMY] = - { - .categoryName = _("Soft Tissue"), - .height = 3, - .weight = 28, - .description = gGoomyPokedexText, - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SLIGGOO] = - { - .categoryName = _("Soft Tissue"), - .height = 8, - .weight = 175, - .description = gSliggooPokedexText, - .pokemonScale = 366, - .pokemonOffset = 7, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GOODRA] = - { - .categoryName = _("Dragon"), - .height = 20, - .weight = 1505, - .description = gGoodraPokedexText, - .pokemonScale = 261, - .pokemonOffset = 1, - .trainerScale = 334, - .trainerOffset = 4, - }, - - [NATIONAL_DEX_KLEFKI] = - { - .categoryName = _("Key Ring"), - .height = 2, - .weight = 30, - .description = gKlefkiPokedexText, - .pokemonScale = 682, - .pokemonOffset = 24, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PHANTUMP] = - { - .categoryName = _("Stump"), - .height = 4, - .weight = 70, - .description = gPhantumpPokedexText, - .pokemonScale = 491, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_TREVENANT] = - { - .categoryName = _("Elder Tree"), - .height = 15, - .weight = 710, - .description = gTrevenantPokedexText, - .pokemonScale = 268, - .pokemonOffset = 2, - .trainerScale = 271, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PUMPKABOO] = - { - .categoryName = _("Pumpkin"), - .height = 4, - .weight = 50, - .description = gPumpkabooPokedexText, - .pokemonScale = 491, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GOURGEIST] = - { - .categoryName = _("Pumpkin"), - .height = 9, - .weight = 125, - .description = gGourgeistPokedexText, - .pokemonScale = 338, - .pokemonOffset = 8, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BERGMITE] = - { - .categoryName = _("Ice Chunk"), - .height = 10, - .weight = 995, - .description = gBergmitePokedexText, - .pokemonScale = 305, - .pokemonOffset = 7, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_AVALUGG] = - { - .categoryName = _("Iceberg"), - .height = 20, - .weight = 5050, - .description = gAvaluggPokedexText, - .pokemonScale = 261, - .pokemonOffset = 1, - .trainerScale = 334, - .trainerOffset = 4, - }, - - [NATIONAL_DEX_NOIBAT] = - { - .categoryName = _("Sound Wave"), - .height = 5, - .weight = 80, - .description = gNoibatPokedexText, - .pokemonScale = 432, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_NOIVERN] = - { - .categoryName = _("Sound Wave"), - .height = 15, - .weight = 850, - .description = gNoivernPokedexText, - .pokemonScale = 268, - .pokemonOffset = 2, - .trainerScale = 271, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_XERNEAS] = - { - .categoryName = _("Life"), - .height = 30, - .weight = 2150, - .description = gXerneasPokedexText, - .pokemonScale = 275, - .pokemonOffset = 7, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_YVELTAL] = - { - .categoryName = _("Destruction"), - .height = 58, - .weight = 2030, - .description = gYveltalPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 360, - .trainerOffset = 7, - }, - - [NATIONAL_DEX_ZYGARDE] = - { - .categoryName = _("Order"), - .height = 50, - .weight = 3050, - .description = gZygardePokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 721, - .trainerOffset = 19, - }, - - [NATIONAL_DEX_DIANCIE] = - { - .categoryName = _("Jewel"), - .height = 7, - .weight = 88, - .description = gDianciePokedexText, - .pokemonScale = 365, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_HOOPA] = - { - .categoryName = _("Mischief"), - .height = 5, - .weight = 90, - .description = gHoopaPokedexText, - .pokemonScale = 432, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_VOLCANION] = - { - .categoryName = _("Steam"), - .height = 17, - .weight = 1950, - .description = gVolcanionPokedexText, - .pokemonScale = 259, - .pokemonOffset = 0, - .trainerScale = 290, - .trainerOffset = 1, - }, -#endif - -#if P_GEN_7_POKEMON == TRUE - [NATIONAL_DEX_ROWLET] = - { - .categoryName = _("Grass Quill"), - .height = 3, - .weight = 15, - .description = gRowletPokedexText, - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DARTRIX] = - { - .categoryName = _("Blade Quill"), - .height = 7, - .weight = 160, - .description = gDartrixPokedexText, - .pokemonScale = 365, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DECIDUEYE] = - { - .categoryName = _("Arrow Quill"), - .height = 16, - .weight = 366, - .description = gDecidueyePokedexText, - .pokemonScale = 259, - .pokemonOffset = 1, - .trainerScale = 296, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_LITTEN] = - { - .categoryName = _("Fire Cat"), - .height = 4, - .weight = 43, - .description = gLittenPokedexText, - .pokemonScale = 491, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_TORRACAT] = - { - .categoryName = _("Fire Cat"), - .height = 7, - .weight = 250, - .description = gTorracatPokedexText, - .pokemonScale = 365, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_INCINEROAR] = - { - .categoryName = _("Heel"), - .height = 18, - .weight = 830, - .description = gIncineroarPokedexText, - .pokemonScale = 267, - .pokemonOffset = 2, - .trainerScale = 286, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_POPPLIO] = - { - .categoryName = _("Sea Lion"), - .height = 4, - .weight = 75, - .description = gPopplioPokedexText, - .pokemonScale = 491, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BRIONNE] = - { - .categoryName = _("Pop Star"), - .height = 6, - .weight = 175, - .description = gBrionnePokedexText, - .pokemonScale = 422, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PRIMARINA] = - { - .categoryName = _("Soloist"), - .height = 18, - .weight = 440, - .description = gPrimarinaPokedexText, - .pokemonScale = 267, - .pokemonOffset = 2, - .trainerScale = 286, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_PIKIPEK] = - { - .categoryName = _("Woodpecker"), - .height = 3, - .weight = 12, - .description = gPikipekPokedexText, - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_TRUMBEAK] = - { - .categoryName = _("Bugle Beak"), - .height = 6, - .weight = 148, - .description = gTrumbeakPokedexText, - .pokemonScale = 422, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_TOUCANNON] = - { - .categoryName = _("Cannon"), - .height = 11, - .weight = 260, - .description = gToucannonPokedexText, - .pokemonScale = 320, - .pokemonOffset = 7, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_YUNGOOS] = - { - .categoryName = _("Loitering"), - .height = 4, - .weight = 60, - .description = gYungoosPokedexText, - .pokemonScale = 491, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GUMSHOOS] = - { - .categoryName = _("Stakeout"), - .height = 7, - .weight = 142, - .description = gGumshoosPokedexText, - .pokemonScale = 365, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GRUBBIN] = - { - .categoryName = _("Larva"), - .height = 4, - .weight = 44, - .description = gGrubbinPokedexText, - .pokemonScale = 491, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CHARJABUG] = - { - .categoryName = _("Battery"), - .height = 5, - .weight = 105, - .description = gCharjabugPokedexText, - .pokemonScale = 432, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_VIKAVOLT] = - { - .categoryName = _("Stag Beetle"), - .height = 15, - .weight = 450, - .description = gVikavoltPokedexText, - .pokemonScale = 268, - .pokemonOffset = 2, - .trainerScale = 271, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CRABRAWLER] = - { - .categoryName = _("Boxing"), - .height = 6, - .weight = 70, - .description = gCrabrawlerPokedexText, - .pokemonScale = 422, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CRABOMINABLE] = - { - .categoryName = _("Woolly Crab"), - .height = 17, - .weight = 1800, - .description = gCrabominablePokedexText, - .pokemonScale = 259, - .pokemonOffset = 0, - .trainerScale = 290, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_ORICORIO] = - { - .categoryName = _("Dancing"), - .height = 6, - .weight = 34, - .description = gOricorioPokedexText, - .pokemonScale = 422, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CUTIEFLY] = - { - .categoryName = _("Bee Fly"), - .height = 1, - .weight = 2, - .description = gCutieflyPokedexText, - .pokemonScale = 682, - .pokemonOffset = 24, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_RIBOMBEE] = - { - .categoryName = _("Bee Fly"), - .height = 2, - .weight = 5, - .description = gRibombeePokedexText, - .pokemonScale = 682, - .pokemonOffset = 24, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ROCKRUFF] = - { - .categoryName = _("Puppy"), - .height = 5, - .weight = 92, - .description = gRockruffPokedexText, - .pokemonScale = 432, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_LYCANROC] = - { - .categoryName = _("Wolf"), - .height = 8, - .weight = 250, - .description = gLycanrocPokedexText, - .pokemonScale = 366, - .pokemonOffset = 7, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_WISHIWASHI] = - { - .categoryName = _("Small Fry"), - .height = 2, - .weight = 3, - .description = gWishiwashiPokedexText, - .pokemonScale = 682, - .pokemonOffset = 24, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MAREANIE] = - { - .categoryName = _("Brutal Star"), - .height = 4, - .weight = 80, - .description = gMareaniePokedexText, - .pokemonScale = 491, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_TOXAPEX] = - { - .categoryName = _("Brutal Star"), - .height = 7, - .weight = 145, - .description = gToxapexPokedexText, - .pokemonScale = 365, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MUDBRAY] = - { - .categoryName = _("Donkey"), - .height = 10, - .weight = 1100, - .description = gMudbrayPokedexText, - .pokemonScale = 305, - .pokemonOffset = 7, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MUDSDALE] = - { - .categoryName = _("Draft Horse"), - .height = 25, - .weight = 9200, - .description = gMudsdalePokedexText, - .pokemonScale = 257, - .pokemonOffset = 10, - .trainerScale = 423, - .trainerOffset = 8, - }, - - [NATIONAL_DEX_DEWPIDER] = - { - .categoryName = _("Water Bubble"), - .height = 3, - .weight = 40, - .description = gDewpiderPokedexText, - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ARAQUANID] = - { - .categoryName = _("Water Bubble"), - .height = 18, - .weight = 820, - .description = gAraquanidPokedexText, - .pokemonScale = 267, - .pokemonOffset = 2, - .trainerScale = 286, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_FOMANTIS] = - { - .categoryName = _("Sickle Grass"), - .height = 3, - .weight = 15, - .description = gFomantisPokedexText, - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_LURANTIS] = - { - .categoryName = _("Bloom Sickle"), - .height = 9, - .weight = 185, - .description = gLurantisPokedexText, - .pokemonScale = 338, - .pokemonOffset = 8, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MORELULL] = - { - .categoryName = _("Illuminate"), - .height = 2, - .weight = 15, - .description = gMorelullPokedexText, - .pokemonScale = 682, - .pokemonOffset = 24, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SHIINOTIC] = - { - .categoryName = _("Illuminate"), - .height = 10, - .weight = 115, - .description = gShiinoticPokedexText, - .pokemonScale = 305, - .pokemonOffset = 7, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SALANDIT] = - { - .categoryName = _("Toxic Lizard"), - .height = 6, - .weight = 48, - .description = gSalanditPokedexText, - .pokemonScale = 422, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SALAZZLE] = - { - .categoryName = _("Toxic Lizard"), - .height = 12, - .weight = 222, - .description = gSalazzlePokedexText, - .pokemonScale = 282, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_STUFFUL] = - { - .categoryName = _("Flailing"), - .height = 5, - .weight = 68, - .description = gStuffulPokedexText, - .pokemonScale = 432, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BEWEAR] = - { - .categoryName = _("Strong Arm"), - .height = 21, - .weight = 1350, - .description = gBewearPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 365, - .trainerOffset = 7, - }, - - [NATIONAL_DEX_BOUNSWEET] = - { - .categoryName = _("Fruit"), - .height = 3, - .weight = 32, - .description = gBounsweetPokedexText, - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_STEENEE] = - { - .categoryName = _("Fruit"), - .height = 7, - .weight = 82, - .description = gSteeneePokedexText, - .pokemonScale = 365, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_TSAREENA] = - { - .categoryName = _("Fruit"), - .height = 12, - .weight = 214, - .description = gTsareenaPokedexText, - .pokemonScale = 282, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_COMFEY] = - { - .categoryName = _("Posy Picker"), - .height = 1, - .weight = 3, - .description = gComfeyPokedexText, - .pokemonScale = 682, - .pokemonOffset = 24, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ORANGURU] = - { - .categoryName = _("Sage"), - .height = 15, - .weight = 760, - .description = gOranguruPokedexText, - .pokemonScale = 268, - .pokemonOffset = 2, - .trainerScale = 271, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PASSIMIAN] = - { - .categoryName = _("Teamwork"), - .height = 20, - .weight = 828, - .description = gPassimianPokedexText, - .pokemonScale = 261, - .pokemonOffset = 1, - .trainerScale = 334, - .trainerOffset = 4, - }, - - [NATIONAL_DEX_WIMPOD] = - { - .categoryName = _("Turn Tail"), - .height = 5, - .weight = 120, - .description = gWimpodPokedexText, - .pokemonScale = 432, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GOLISOPOD] = - { - .categoryName = _("Hard Scale"), - .height = 20, - .weight = 1080, - .description = gGolisopodPokedexText, - .pokemonScale = 261, - .pokemonOffset = 1, - .trainerScale = 334, - .trainerOffset = 4, - }, - - [NATIONAL_DEX_SANDYGAST] = - { - .categoryName = _("Sand Heap"), - .height = 5, - .weight = 700, - .description = gSandygastPokedexText, - .pokemonScale = 432, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PALOSSAND] = - { - .categoryName = _("Sand Castle"), - .height = 13, - .weight = 2500, - .description = gPalossandPokedexText, - .pokemonScale = 272, - .pokemonOffset = 3, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PYUKUMUKU] = - { - .categoryName = _("Sea Cucumber"), - .height = 3, - .weight = 12, - .description = gPyukumukuPokedexText, - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_TYPE_NULL] = - { - .categoryName = _("Synthetic"), - .height = 19, - .weight = 1205, - .description = gTypeNullPokedexText, - .pokemonScale = 256, - .pokemonOffset = 1, - .trainerScale = 326, - .trainerOffset = 4, - }, - - [NATIONAL_DEX_SILVALLY] = - { - .categoryName = _("Synthetic"), - .height = 23, - .weight = 1005, - .description = gSilvallyPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 342, - .trainerOffset = 7, - }, - - [NATIONAL_DEX_MINIOR] = - { - .categoryName = _("Meteor"), - .height = 3, - .weight = 400, - .description = gMiniorPokedexText, - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_KOMALA] = - { - .categoryName = _("Drowsing"), - .height = 4, - .weight = 199, - .description = gKomalaPokedexText, - .pokemonScale = 491, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_TURTONATOR] = - { - .categoryName = _("Blast Turtle"), - .height = 20, - .weight = 2120, - .description = gTurtonatorPokedexText, - .pokemonScale = 261, - .pokemonOffset = 1, - .trainerScale = 334, - .trainerOffset = 4, - }, - - [NATIONAL_DEX_TOGEDEMARU] = - { - .categoryName = _("Roly-Poly"), - .height = 3, - .weight = 33, - .description = gTogedemaruPokedexText, - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MIMIKYU] = - { - .categoryName = _("Disguise"), - .height = 2, - .weight = 7, - .description = gMimikyuPokedexText, - .pokemonScale = 682, - .pokemonOffset = 24, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BRUXISH] = - { - .categoryName = _("Gnash Teeth"), - .height = 9, - .weight = 190, - .description = gBruxishPokedexText, - .pokemonScale = 338, - .pokemonOffset = 8, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DRAMPA] = - { - .categoryName = _("Placid"), - .height = 30, - .weight = 1850, - .description = gDrampaPokedexText, - .pokemonScale = 275, - .pokemonOffset = 7, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DHELMISE] = - { - .categoryName = _("Sea Creeper"), - .height = 39, - .weight = 2100, - .description = gDhelmisePokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 510, - .trainerOffset = 11, - }, - - [NATIONAL_DEX_JANGMO_O] = - { - .categoryName = _("Scaly"), - .height = 6, - .weight = 297, - .description = gJangmoOPokedexText, - .pokemonScale = 422, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_HAKAMO_O] = - { - .categoryName = _("Scaly"), - .height = 12, - .weight = 470, - .description = gHakamoOPokedexText, - .pokemonScale = 282, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_KOMMO_O] = - { - .categoryName = _("Scaly"), - .height = 16, - .weight = 782, - .description = gKommoOPokedexText, - .pokemonScale = 259, - .pokemonOffset = 1, - .trainerScale = 296, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_TAPU_KOKO] = - { - .categoryName = _("Land Spirit"), - .height = 18, - .weight = 205, - .description = gTapuKokoPokedexText, - .pokemonScale = 267, - .pokemonOffset = 2, - .trainerScale = 286, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_TAPU_LELE] = - { - .categoryName = _("Land Spirit"), - .height = 12, - .weight = 186, - .description = gTapuLelePokedexText, - .pokemonScale = 282, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_TAPU_BULU] = - { - .categoryName = _("Land Spirit"), - .height = 19, - .weight = 455, - .description = gTapuBuluPokedexText, - .pokemonScale = 256, - .pokemonOffset = 1, - .trainerScale = 326, - .trainerOffset = 4, - }, - - [NATIONAL_DEX_TAPU_FINI] = - { - .categoryName = _("Land Spirit"), - .height = 13, - .weight = 212, - .description = gTapuFiniPokedexText, - .pokemonScale = 272, - .pokemonOffset = 3, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_COSMOG] = - { - .categoryName = _("Nebula"), - .height = 2, - .weight = 1, - .description = gCosmogPokedexText, - .pokemonScale = 682, - .pokemonOffset = 24, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_COSMOEM] = - { - .categoryName = _("Protostar"), - .height = 1, - .weight = 9999, - .description = gCosmoemPokedexText, - .pokemonScale = 682, - .pokemonOffset = 24, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SOLGALEO] = - { - .categoryName = _("Sunne"), - .height = 34, - .weight = 2300, - .description = gSolgaleoPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 405, - .trainerOffset = 8, - }, - - [NATIONAL_DEX_LUNALA] = - { - .categoryName = _("Moone"), - .height = 40, - .weight = 1200, - .description = gLunalaPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 411, - .trainerOffset = 5, - }, - - [NATIONAL_DEX_NIHILEGO] = - { - .categoryName = _("Parasite"), - .height = 12, - .weight = 555, - .description = gNihilegoPokedexText, - .pokemonScale = 282, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BUZZWOLE] = - { - .categoryName = _("Swollen"), - .height = 24, - .weight = 3336, - .description = gBuzzwolePokedexText, - .pokemonScale = 256, - .pokemonOffset = 3, - .trainerScale = 369, - .trainerOffset = 7, - }, - - [NATIONAL_DEX_PHEROMOSA] = - { - .categoryName = _("Lissome"), - .height = 18, - .weight = 250, - .description = gPheromosaPokedexText, - .pokemonScale = 267, - .pokemonOffset = 2, - .trainerScale = 286, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_XURKITREE] = - { - .categoryName = _("Glowing"), - .height = 38, - .weight = 1000, - .description = gXurkitreePokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 610, - .trainerOffset = 17, - }, - - [NATIONAL_DEX_CELESTEELA] = - { - .categoryName = _("Launch"), - .height = 92, - .weight = 9999, - .description = gCelesteelaPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 516, - .trainerOffset = 13, - }, - - [NATIONAL_DEX_KARTANA] = - { - .categoryName = _("Drawn Sword"), - .height = 3, - .weight = 1, - .description = gKartanaPokedexText, - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GUZZLORD] = - { - .categoryName = _("Junkivore"), - .height = 55, - .weight = 8880, - .description = gGuzzlordPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 721, - .trainerOffset = 19, - }, - - [NATIONAL_DEX_NECROZMA] = - { - .categoryName = _("Prism"), - .height = 24, - .weight = 2300, - .description = gNecrozmaPokedexText, - .pokemonScale = 256, - .pokemonOffset = 3, - .trainerScale = 369, - .trainerOffset = 7, - }, - - [NATIONAL_DEX_MAGEARNA] = - { - .categoryName = _("Artificial"), - .height = 10, - .weight = 805, - .description = gMagearnaPokedexText, - .pokemonScale = 305, - .pokemonOffset = 7, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MARSHADOW] = - { - .categoryName = _("Gloomdwellr"), - .height = 7, - .weight = 222, - .description = gMarshadowPokedexText, - .pokemonScale = 365, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_POIPOLE] = - { - .categoryName = _("Poison Pin"), - .height = 6, - .weight = 18, - .description = gPoipolePokedexText, - .pokemonScale = 422, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_NAGANADEL] = - { - .categoryName = _("Poison Pin"), - .height = 36, - .weight = 1500, - .description = gNaganadelPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 405, - .trainerOffset = 8, - }, - - [NATIONAL_DEX_STAKATAKA] = - { - .categoryName = _("Rampart"), - .height = 55, - .weight = 8200, - .description = gStakatakaPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 721, - .trainerOffset = 19, - }, - - [NATIONAL_DEX_BLACEPHALON] = - { - .categoryName = _("Fireworks"), - .height = 18, - .weight = 130, - .description = gBlacephalonPokedexText, - .pokemonScale = 267, - .pokemonOffset = 2, - .trainerScale = 286, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_ZERAORA] = - { - .categoryName = _("Thunderclap"), - .height = 15, - .weight = 445, - .description = gZeraoraPokedexText, - .pokemonScale = 268, - .pokemonOffset = 2, - .trainerScale = 271, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MELTAN] = - { - .categoryName = _("Hex Nut"), - .height = 2, - .weight = 80, - .description = gMeltanPokedexText, - .pokemonScale = 682, - .pokemonOffset = 24, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MELMETAL] = - { - .categoryName = _("Hex Nut"), - .height = 25, - .weight = 800, - .description = gMelmetalPokedexText, - .pokemonScale = 257, - .pokemonOffset = 10, - .trainerScale = 423, - .trainerOffset = 8, - }, -#endif - -#if P_GEN_8_POKEMON == TRUE - [NATIONAL_DEX_GROOKEY] = - { - .categoryName = _("Chimp"), - .height = 3, - .weight = 50, - .description = gGrookeyPokedexText, - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_THWACKEY] = - { - .categoryName = _("Beat"), - .height = 7, - .weight = 140, - .description = gThwackeyPokedexText, - .pokemonScale = 365, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_RILLABOOM] = - { - .categoryName = _("Drummer"), - .height = 21, - .weight = 900, - .description = gRillaboomPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 365, - .trainerOffset = 7, - }, - - [NATIONAL_DEX_SCORBUNNY] = - { - .categoryName = _("Rabbit"), - .height = 3, - .weight = 45, - .description = gScorbunnyPokedexText, - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_RABOOT] = - { - .categoryName = _("Rabbit"), - .height = 6, - .weight = 90, - .description = gRabootPokedexText, - .pokemonScale = 422, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CINDERACE] = - { - .categoryName = _("Striker"), - .height = 14, - .weight = 330, - .description = gCinderacePokedexText, - .pokemonScale = 265, - .pokemonOffset = 2, - .trainerScale = 262, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SOBBLE] = - { - .categoryName = _("Water Lizard"), - .height = 3, - .weight = 40, - .description = gSobblePokedexText, - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DRIZZILE] = - { - .categoryName = _("Water Lizard"), - .height = 7, - .weight = 115, - .description = gDrizzilePokedexText, - .pokemonScale = 365, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_INTELEON] = - { - .categoryName = _("Secret Agent"), - .height = 19, - .weight = 452, - .description = gInteleonPokedexText, - .pokemonScale = 256, - .pokemonOffset = 1, - .trainerScale = 326, - .trainerOffset = 4, - }, - - [NATIONAL_DEX_SKWOVET] = - { - .categoryName = _("Cheeky"), - .height = 3, - .weight = 25, - .description = gSkwovetPokedexText, - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GREEDENT] = - { - .categoryName = _("Greedy"), - .height = 6, - .weight = 60, - .description = gGreedentPokedexText, - .pokemonScale = 422, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ROOKIDEE] = - { - .categoryName = _("Tiny Bird"), - .height = 2, - .weight = 18, - .description = gRookideePokedexText, - .pokemonScale = 682, - .pokemonOffset = 24, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CORVISQUIRE] = - { - .categoryName = _("Raven"), - .height = 8, - .weight = 160, - .description = gCorvisquirePokedexText, - .pokemonScale = 366, - .pokemonOffset = 7, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CORVIKNIGHT] = - { - .categoryName = _("Raven"), - .height = 22, - .weight = 750, - .description = gCorviknightPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 348, - .trainerOffset = 6, - }, - - [NATIONAL_DEX_BLIPBUG] = - { - .categoryName = _("Larva"), - .height = 4, - .weight = 80, - .description = gBlipbugPokedexText, - .pokemonScale = 491, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DOTTLER] = - { - .categoryName = _("Radome"), - .height = 4, - .weight = 195, - .description = gDottlerPokedexText, - .pokemonScale = 491, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ORBEETLE] = - { - .categoryName = _("Seven Spot"), - .height = 4, - .weight = 408, - .description = gOrbeetlePokedexText, - .pokemonScale = 491, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_NICKIT] = - { - .categoryName = _("Fox"), - .height = 6, - .weight = 89, - .description = gNickitPokedexText, - .pokemonScale = 422, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_THIEVUL] = - { - .categoryName = _("Fox"), - .height = 12, - .weight = 199, - .description = gThievulPokedexText, - .pokemonScale = 282, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GOSSIFLEUR] = - { - .categoryName = _("Flowering"), - .height = 4, - .weight = 22, - .description = gGossifleurPokedexText, - .pokemonScale = 491, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ELDEGOSS] = - { - .categoryName = _("Cotton Bloom"), - .height = 5, - .weight = 25, - .description = gEldegossPokedexText, - .pokemonScale = 432, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_WOOLOO] = - { - .categoryName = _("Sheep"), - .height = 6, - .weight = 60, - .description = gWoolooPokedexText, - .pokemonScale = 422, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DUBWOOL] = - { - .categoryName = _("Sheep"), - .height = 13, - .weight = 430, - .description = gDubwoolPokedexText, - .pokemonScale = 272, - .pokemonOffset = 3, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CHEWTLE] = - { - .categoryName = _("Snapping"), - .height = 3, - .weight = 85, - .description = gChewtlePokedexText, - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DREDNAW] = - { - .categoryName = _("Bite"), - .height = 10, - .weight = 1155, - .description = gDrednawPokedexText, - .pokemonScale = 305, - .pokemonOffset = 7, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_YAMPER] = - { - .categoryName = _("Puppy"), - .height = 3, - .weight = 135, - .description = gYamperPokedexText, - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BOLTUND] = - { - .categoryName = _("Dog"), - .height = 10, - .weight = 340, - .description = gBoltundPokedexText, - .pokemonScale = 305, - .pokemonOffset = 7, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ROLYCOLY] = - { - .categoryName = _("Coal"), - .height = 3, - .weight = 120, - .description = gRolycolyPokedexText, - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CARKOL] = - { - .categoryName = _("Coal"), - .height = 11, - .weight = 780, - .description = gCarkolPokedexText, - .pokemonScale = 320, - .pokemonOffset = 7, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_COALOSSAL] = - { - .categoryName = _("Coal"), - .height = 28, - .weight = 3105, - .description = gCoalossalPokedexText, - .pokemonScale = 275, - .pokemonOffset = 7, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_APPLIN] = - { - .categoryName = _("Apple Core"), - .height = 2, - .weight = 5, - .description = gApplinPokedexText, - .pokemonScale = 682, - .pokemonOffset = 24, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_FLAPPLE] = - { - .categoryName = _("Apple Wing"), - .height = 3, - .weight = 10, - .description = gFlapplePokedexText, - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_APPLETUN] = - { - .categoryName = _("Apple Nectar"), - .height = 4, - .weight = 130, - .description = gAppletunPokedexText, - .pokemonScale = 491, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SILICOBRA] = - { - .categoryName = _("Sand Snake"), - .height = 22, - .weight = 76, - .description = gSilicobraPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 348, - .trainerOffset = 6, - }, - - [NATIONAL_DEX_SANDACONDA] = - { - .categoryName = _("Sand Snake"), - .height = 38, - .weight = 655, - .description = gSandacondaPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 610, - .trainerOffset = 17, - }, - - [NATIONAL_DEX_CRAMORANT] = - { - .categoryName = _("Gulp"), - .height = 8, - .weight = 180, - .description = gCramorantPokedexText, - .pokemonScale = 366, - .pokemonOffset = 7, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ARROKUDA] = - { - .categoryName = _("Rush"), - .height = 5, - .weight = 10, - .description = gArrokudaPokedexText, - .pokemonScale = 432, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_BARRASKEWDA] = - { - .categoryName = _("Skewer"), - .height = 13, - .weight = 300, - .description = gBarraskewdaPokedexText, - .pokemonScale = 272, - .pokemonOffset = 3, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_TOXEL] = - { - .categoryName = _("Baby"), - .height = 4, - .weight = 110, - .description = gToxelPokedexText, - .pokemonScale = 491, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_TOXTRICITY] = - { - .categoryName = _("Punk"), - .height = 16, - .weight = 400, - .description = gToxtricityPokedexText, - .pokemonScale = 259, - .pokemonOffset = 1, - .trainerScale = 296, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_SIZZLIPEDE] = - { - .categoryName = _("Radiator"), - .height = 7, - .weight = 10, - .description = gSizzlipedePokedexText, - .pokemonScale = 365, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CENTISKORCH] = - { - .categoryName = _("Radiator"), - .height = 30, - .weight = 1200, - .description = gCentiskorchPokedexText, - .pokemonScale = 275, - .pokemonOffset = 7, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CLOBBOPUS] = - { - .categoryName = _("Tantrum"), - .height = 6, - .weight = 40, - .description = gClobbopusPokedexText, - .pokemonScale = 422, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GRAPPLOCT] = - { - .categoryName = _("Jujitsu"), - .height = 16, - .weight = 390, - .description = gGrapploctPokedexText, - .pokemonScale = 259, - .pokemonOffset = 1, - .trainerScale = 296, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_SINISTEA] = - { - .categoryName = _("Black Tea"), - .height = 1, - .weight = 2, - .description = gSinisteaPokedexText, - .pokemonScale = 682, - .pokemonOffset = 24, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_POLTEAGEIST] = - { - .categoryName = _("Black Tea"), - .height = 2, - .weight = 4, - .description = gPolteageistPokedexText, - .pokemonScale = 682, - .pokemonOffset = 24, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_HATENNA] = - { - .categoryName = _("Calm"), - .height = 4, - .weight = 34, - .description = gHatennaPokedexText, - .pokemonScale = 491, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_HATTREM] = - { - .categoryName = _("Serene"), - .height = 6, - .weight = 48, - .description = gHattremPokedexText, - .pokemonScale = 422, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_HATTERENE] = - { - .categoryName = _("Silent"), - .height = 21, - .weight = 51, - .description = gHatterenePokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 365, - .trainerOffset = 7, - }, - - [NATIONAL_DEX_IMPIDIMP] = - { - .categoryName = _("Wily"), - .height = 4, - .weight = 55, - .description = gImpidimpPokedexText, - .pokemonScale = 491, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MORGREM] = - { - .categoryName = _("Devious"), - .height = 8, - .weight = 125, - .description = gMorgremPokedexText, - .pokemonScale = 366, - .pokemonOffset = 7, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_GRIMMSNARL] = - { - .categoryName = _("Bulk Up"), - .height = 15, - .weight = 610, - .description = gGrimmsnarlPokedexText, - .pokemonScale = 268, - .pokemonOffset = 2, - .trainerScale = 271, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_OBSTAGOON] = - { - .categoryName = _("Blocking"), - .height = 16, - .weight = 460, - .description = gObstagoonPokedexText, - .pokemonScale = 259, - .pokemonOffset = 1, - .trainerScale = 296, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_PERRSERKER] = - { - .categoryName = _("Viking"), - .height = 8, - .weight = 280, - .description = gPerrserkerPokedexText, - .pokemonScale = 366, - .pokemonOffset = 7, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CURSOLA] = - { - .categoryName = _("Coral"), - .height = 10, - .weight = 4, - .description = gCursolaPokedexText, - .pokemonScale = 305, - .pokemonOffset = 7, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SIRFETCHD] = - { - .categoryName = _("Wild Duck"), - .height = 8, - .weight = 1170, - .description = gSirfetchdPokedexText, - .pokemonScale = 366, - .pokemonOffset = 7, - .trainerScale = 257, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MR_RIME] = - { - .categoryName = _("Comedian"), - .height = 15, - .weight = 582, - .description = gMrRimePokedexText, - .pokemonScale = 268, - .pokemonOffset = 2, - .trainerScale = 271, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_RUNERIGUS] = - { - .categoryName = _("Grudge"), - .height = 16, - .weight = 666, - .description = gRunerigusPokedexText, - .pokemonScale = 259, - .pokemonOffset = 1, - .trainerScale = 296, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_MILCERY] = - { - .categoryName = _("Cream"), - .height = 2, - .weight = 3, - .description = gMilceryPokedexText, - .pokemonScale = 682, - .pokemonOffset = 24, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ALCREMIE] = - { - .categoryName = _("Cream"), - .height = 3, - .weight = 5, - .description = gAlcremiePokedexText, - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_FALINKS] = - { - .categoryName = _("Formation"), - .height = 30, - .weight = 620, - .description = gFalinksPokedexText, - .pokemonScale = 275, - .pokemonOffset = 7, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_PINCURCHIN] = - { - .categoryName = _("Sea Urchin"), - .height = 3, - .weight = 10, - .description = gPincurchinPokedexText, - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SNOM] = - { - .categoryName = _("Worm"), - .height = 3, - .weight = 38, - .description = gSnomPokedexText, - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_FROSMOTH] = - { - .categoryName = _("Frost Moth"), - .height = 13, - .weight = 420, - .description = gFrosmothPokedexText, - .pokemonScale = 272, - .pokemonOffset = 3, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_STONJOURNER] = - { - .categoryName = _("Big Rock"), - .height = 25, - .weight = 5200, - .description = gStonjournerPokedexText, - .pokemonScale = 257, - .pokemonOffset = 10, - .trainerScale = 423, - .trainerOffset = 8, - }, - - [NATIONAL_DEX_EISCUE] = - { - .categoryName = _("Penguin"), - .height = 14, - .weight = 890, - .description = gEiscuePokedexText, - .pokemonScale = 265, - .pokemonOffset = 2, - .trainerScale = 262, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_INDEEDEE] = - { - .categoryName = _("Emotion"), - .height = 9, - .weight = 280, - .description = gIndeedeePokedexText, - .pokemonScale = 338, - .pokemonOffset = 8, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_MORPEKO] = - { - .categoryName = _("Two-Sided"), - .height = 3, - .weight = 30, - .description = gMorpekoPokedexText, - .pokemonScale = 530, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_CUFANT] = - { - .categoryName = _("Copperderm"), - .height = 12, - .weight = 1000, - .description = gCufantPokedexText, - .pokemonScale = 282, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_COPPERAJAH] = - { - .categoryName = _("Copperderm"), - .height = 30, - .weight = 6500, - .description = gCopperajahPokedexText, - .pokemonScale = 275, - .pokemonOffset = 7, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DRACOZOLT] = - { - .categoryName = _("Fossil"), - .height = 18, - .weight = 1900, - .description = gDracozoltPokedexText, - .pokemonScale = 267, - .pokemonOffset = 2, - .trainerScale = 286, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_ARCTOZOLT] = - { - .categoryName = _("Fossil"), - .height = 23, - .weight = 1500, - .description = gArctozoltPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 342, - .trainerOffset = 7, - }, - - [NATIONAL_DEX_DRACOVISH] = - { - .categoryName = _("Fossil"), - .height = 23, - .weight = 2150, - .description = gDracovishPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 342, - .trainerOffset = 7, - }, - - [NATIONAL_DEX_ARCTOVISH] = - { - .categoryName = _("Fossil"), - .height = 20, - .weight = 1750, - .description = gArctovishPokedexText, - .pokemonScale = 261, - .pokemonOffset = 1, - .trainerScale = 334, - .trainerOffset = 4, - }, - - [NATIONAL_DEX_DURALUDON] = - { - .categoryName = _("Alloy"), - .height = 18, - .weight = 400, - .description = gDuraludonPokedexText, - .pokemonScale = 267, - .pokemonOffset = 2, - .trainerScale = 286, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_DREEPY] = - { - .categoryName = _("Lingering"), - .height = 5, - .weight = 20, - .description = gDreepyPokedexText, - .pokemonScale = 432, - .pokemonOffset = 13, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DRAKLOAK] = - { - .categoryName = _("Caretaker"), - .height = 14, - .weight = 110, - .description = gDrakloakPokedexText, - .pokemonScale = 265, - .pokemonOffset = 2, - .trainerScale = 262, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_DRAGAPULT] = - { - .categoryName = _("Stealth"), - .height = 30, - .weight = 500, - .description = gDragapultPokedexText, - .pokemonScale = 275, - .pokemonOffset = 7, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ZACIAN] = - { - .categoryName = _("Warrior"), - .height = 28, - .weight = 1100, - .description = gZacianPokedexText, - .pokemonScale = 275, - .pokemonOffset = 7, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ZAMAZENTA] = - { - .categoryName = _("Warrior"), - .height = 29, - .weight = 2100, - .description = gZamazentaPokedexText, - .pokemonScale = 275, - .pokemonOffset = 7, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_ETERNATUS] = - { - .categoryName = _("Gigantic"), - .height = 200, - .weight = 9500, - .description = gEternatusPokedexText, - .pokemonScale = 230, - .pokemonOffset = 0, - .trainerScale = 4852, - .trainerOffset = 20, - }, - - [NATIONAL_DEX_KUBFU] = - { - .categoryName = _("Wushu"), - .height = 6, - .weight = 120, - .description = gKubfuPokedexText, - .pokemonScale = 422, - .pokemonOffset = 12, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_URSHIFU] = - { - .categoryName = _("Wushu"), - .height = 19, - .weight = 1050, - .description = gUrshifuPokedexText, - .pokemonScale = 256, - .pokemonOffset = 1, - .trainerScale = 326, - .trainerOffset = 4, - }, - - [NATIONAL_DEX_ZARUDE] = - { - .categoryName = _("Rogue Monkey"), - .height = 18, - .weight = 700, - .description = gZarudePokedexText, - .pokemonScale = 267, - .pokemonOffset = 2, - .trainerScale = 286, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_REGIELEKI] = - { - .categoryName = _("Electron"), - .height = 12, - .weight = 1450, - .description = gRegielekiPokedexText, - .pokemonScale = 282, - .pokemonOffset = 4, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_REGIDRAGO] = - { - .categoryName = _("Dragon Orb"), - .height = 21, - .weight = 2000, - .description = gRegidragoPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 365, - .trainerOffset = 7, - }, - - [NATIONAL_DEX_GLASTRIER] = - { - .categoryName = _("Wild Horse"), - .height = 22, - .weight = 8000, - .description = gGlastrierPokedexText, - .pokemonScale = 256, - .pokemonOffset = 0, - .trainerScale = 348, - .trainerOffset = 6, - }, - - [NATIONAL_DEX_SPECTRIER] = - { - .categoryName = _("Swift Horse"), - .height = 20, - .weight = 445, - .description = gSpectrierPokedexText, - .pokemonScale = 261, - .pokemonOffset = 1, - .trainerScale = 334, - .trainerOffset = 4, - }, - - [NATIONAL_DEX_CALYREX] = - { - .categoryName = _("King"), - .height = 11, - .weight = 77, - .description = gCalyrexPokedexText, - .pokemonScale = 320, - .pokemonOffset = 7, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_WYRDEER] = - { - .categoryName = _("Big Horn"), - .height = 18, - .weight = 951, - .description = gWyrdeerPokedexText, - .pokemonScale = 267, - .pokemonOffset = 2, - .trainerScale = 286, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_KLEAVOR] = - { - .categoryName = _("Axe"), - .height = 18, - .weight = 890, - .description = gKleavorPokedexText, - .pokemonScale = 267, - .pokemonOffset = 2, - .trainerScale = 286, - .trainerOffset = 1, - }, - - [NATIONAL_DEX_URSALUNA] = - { - .categoryName = _("Peat"), - .height = 24, - .weight = 2900, - .description = gUrsalunaPokedexText, - .pokemonScale = 256, - .pokemonOffset = 3, - .trainerScale = 369, - .trainerOffset = 7, - }, - - [NATIONAL_DEX_BASCULEGION] = - { - .categoryName = _("Big Fish"), - .height = 30, - .weight = 1100, - .description = gBasculegionPokedexText, - .pokemonScale = 275, - .pokemonOffset = 7, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_SNEASLER] = - { - .categoryName = _("Free Climb"), - .height = 13, - .weight = 430, - .description = gSneaslerPokedexText, - .pokemonScale = 272, - .pokemonOffset = 3, - .trainerScale = 256, - .trainerOffset = 0, - }, - - [NATIONAL_DEX_OVERQWIL] = - { - .categoryName = _("Pin Cluster"), - .height = 25, - .weight = 605, - .description = gOverqwilPokedexText, - .pokemonScale = 257, - .pokemonOffset = 10, - .trainerScale = 423, - .trainerOffset = 8, - }, - - [NATIONAL_DEX_ENAMORUS] = - { - .categoryName = _("Love-Hate"), - .height = 16, - .weight = 480, - .description = gEnamorusPokedexText, - .pokemonScale = 259, - .pokemonOffset = 1, - .trainerScale = 296, - .trainerOffset = 1, - }, -#endif -}; diff --git a/src/data/pokemon/pokedex_orders.h b/src/data/pokemon/pokedex_orders.h index e1d8cc4792b8..e877bbb17f94 100644 --- a/src/data/pokemon/pokedex_orders.h +++ b/src/data/pokemon/pokedex_orders.h @@ -1,3 +1,4 @@ +// Only list base species here. const u16 gPokedexOrder_Alphabetical[] = { NATIONAL_DEX_ABOMASNOW, @@ -16,19 +17,23 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_AMBIPOM, NATIONAL_DEX_AMOONGUSS, NATIONAL_DEX_AMPHAROS, + NATIONAL_DEX_ANNIHILAPE, NATIONAL_DEX_ANORITH, NATIONAL_DEX_APPLETUN, NATIONAL_DEX_APPLIN, NATIONAL_DEX_ARAQUANID, NATIONAL_DEX_ARBOK, + NATIONAL_DEX_ARBOLIVA, NATIONAL_DEX_ARCANINE, NATIONAL_DEX_ARCEUS, NATIONAL_DEX_ARCHEN, NATIONAL_DEX_ARCHEOPS, + NATIONAL_DEX_ARCTIBAX, NATIONAL_DEX_ARCTOVISH, NATIONAL_DEX_ARCTOZOLT, NATIONAL_DEX_ARIADOS, NATIONAL_DEX_ARMALDO, + NATIONAL_DEX_ARMAROUGE, NATIONAL_DEX_AROMATISSE, NATIONAL_DEX_ARON, NATIONAL_DEX_ARROKUDA, @@ -50,12 +55,14 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_BASCULEGION, NATIONAL_DEX_BASCULIN, NATIONAL_DEX_BASTIODON, + NATIONAL_DEX_BAXCALIBUR, NATIONAL_DEX_BAYLEEF, NATIONAL_DEX_BEARTIC, NATIONAL_DEX_BEAUTIFLY, NATIONAL_DEX_BEEDRILL, NATIONAL_DEX_BEHEEYEM, NATIONAL_DEX_BELDUM, + NATIONAL_DEX_BELLIBOLT, NATIONAL_DEX_BELLOSSOM, NATIONAL_DEX_BELLSPROUT, NATIONAL_DEX_BERGMITE, @@ -72,15 +79,19 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_BLITZLE, NATIONAL_DEX_BOLDORE, NATIONAL_DEX_BOLTUND, + NATIONAL_DEX_BOMBIRDIER, NATIONAL_DEX_BONSLY, NATIONAL_DEX_BOUFFALANT, NATIONAL_DEX_BOUNSWEET, NATIONAL_DEX_BRAIXEN, + NATIONAL_DEX_BRAMBLEGHAST, + NATIONAL_DEX_BRAMBLIN, NATIONAL_DEX_BRAVIARY, NATIONAL_DEX_BRELOOM, NATIONAL_DEX_BRIONNE, NATIONAL_DEX_BRONZONG, NATIONAL_DEX_BRONZOR, + NATIONAL_DEX_BRUTE_BONNET, NATIONAL_DEX_BRUXISH, NATIONAL_DEX_BUDEW, NATIONAL_DEX_BUIZEL, @@ -95,6 +106,7 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_CACTURNE, NATIONAL_DEX_CALYREX, NATIONAL_DEX_CAMERUPT, + NATIONAL_DEX_CAPSAKID, NATIONAL_DEX_CARBINK, NATIONAL_DEX_CARKOL, NATIONAL_DEX_CARNIVINE, @@ -106,8 +118,12 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_CELEBI, NATIONAL_DEX_CELESTEELA, NATIONAL_DEX_CENTISKORCH, + NATIONAL_DEX_CERULEDGE, + NATIONAL_DEX_CETITAN, + NATIONAL_DEX_CETODDLE, NATIONAL_DEX_CHANDELURE, NATIONAL_DEX_CHANSEY, + NATIONAL_DEX_CHARCADET, NATIONAL_DEX_CHARIZARD, NATIONAL_DEX_CHARJABUG, NATIONAL_DEX_CHARMANDER, @@ -118,6 +134,8 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_CHESNAUGHT, NATIONAL_DEX_CHESPIN, NATIONAL_DEX_CHEWTLE, + NATIONAL_DEX_CHI_YU, + NATIONAL_DEX_CHIEN_PAO, NATIONAL_DEX_CHIKORITA, NATIONAL_DEX_CHIMCHAR, NATIONAL_DEX_CHIMECHO, @@ -133,6 +151,7 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_CLEFAIRY, NATIONAL_DEX_CLEFFA, NATIONAL_DEX_CLOBBOPUS, + NATIONAL_DEX_CLODSIRE, NATIONAL_DEX_CLOYSTER, NATIONAL_DEX_COALOSSAL, NATIONAL_DEX_COBALION, @@ -158,6 +177,7 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_CRESSELIA, NATIONAL_DEX_CROAGUNK, NATIONAL_DEX_CROBAT, + NATIONAL_DEX_CROCALOR, NATIONAL_DEX_CROCONAW, NATIONAL_DEX_CRUSTLE, NATIONAL_DEX_CRYOGONAL, @@ -166,8 +186,10 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_CUFANT, NATIONAL_DEX_CURSOLA, NATIONAL_DEX_CUTIEFLY, + NATIONAL_DEX_CYCLIZAR, NATIONAL_DEX_CYNDAQUIL, + NATIONAL_DEX_DACHSBUN, NATIONAL_DEX_DARKRAI, NATIONAL_DEX_DARMANITAN, NATIONAL_DEX_DARTRIX, @@ -188,9 +210,12 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_DIANCIE, NATIONAL_DEX_DIGGERSBY, NATIONAL_DEX_DIGLETT, + NATIONAL_DEX_DIPPLIN, NATIONAL_DEX_DITTO, NATIONAL_DEX_DODRIO, NATIONAL_DEX_DODUO, + NATIONAL_DEX_DOLLIV, + NATIONAL_DEX_DONDOZO, NATIONAL_DEX_DONPHAN, NATIONAL_DEX_DOTTLER, NATIONAL_DEX_DOUBLADE, @@ -214,6 +239,7 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_DRUDDIGON, NATIONAL_DEX_DUBWOOL, NATIONAL_DEX_DUCKLETT, + NATIONAL_DEX_DUDUNSPARCE, NATIONAL_DEX_DUGTRIO, NATIONAL_DEX_DUNSPARCE, NATIONAL_DEX_DUOSION, @@ -243,6 +269,7 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_ENAMORUS, NATIONAL_DEX_ENTEI, NATIONAL_DEX_ESCAVALIER, + NATIONAL_DEX_ESPATHRA, NATIONAL_DEX_ESPEON, NATIONAL_DEX_ESPURR, NATIONAL_DEX_ETERNATUS, @@ -253,32 +280,42 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_FALINKS, NATIONAL_DEX_FARFETCHD, + NATIONAL_DEX_FARIGIRAF, NATIONAL_DEX_FEAROW, NATIONAL_DEX_FEEBAS, NATIONAL_DEX_FENNEKIN, NATIONAL_DEX_FERALIGATR, NATIONAL_DEX_FERROSEED, NATIONAL_DEX_FERROTHORN, + NATIONAL_DEX_FEZANDIPITI, + NATIONAL_DEX_FIDOUGH, + NATIONAL_DEX_FINIZEN, NATIONAL_DEX_FINNEON, NATIONAL_DEX_FLAAFFY, NATIONAL_DEX_FLABEBE, + NATIONAL_DEX_FLAMIGO, NATIONAL_DEX_FLAPPLE, NATIONAL_DEX_FLAREON, NATIONAL_DEX_FLETCHINDER, NATIONAL_DEX_FLETCHLING, + NATIONAL_DEX_FLITTLE, NATIONAL_DEX_FLOATZEL, NATIONAL_DEX_FLOETTE, + NATIONAL_DEX_FLORAGATO, NATIONAL_DEX_FLORGES, + NATIONAL_DEX_FLUTTER_MANE, NATIONAL_DEX_FLYGON, NATIONAL_DEX_FOMANTIS, NATIONAL_DEX_FOONGUS, NATIONAL_DEX_FORRETRESS, NATIONAL_DEX_FRAXURE, + NATIONAL_DEX_FRIGIBAX, NATIONAL_DEX_FRILLISH, NATIONAL_DEX_FROAKIE, NATIONAL_DEX_FROGADIER, NATIONAL_DEX_FROSLASS, NATIONAL_DEX_FROSMOTH, + NATIONAL_DEX_FUECOCO, NATIONAL_DEX_FURFROU, NATIONAL_DEX_FURRET, @@ -288,13 +325,16 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_GARBODOR, NATIONAL_DEX_GARCHOMP, NATIONAL_DEX_GARDEVOIR, + NATIONAL_DEX_GARGANACL, NATIONAL_DEX_GASTLY, NATIONAL_DEX_GASTRODON, NATIONAL_DEX_GENESECT, NATIONAL_DEX_GENGAR, NATIONAL_DEX_GEODUDE, + NATIONAL_DEX_GHOLDENGO, NATIONAL_DEX_GIBLE, NATIONAL_DEX_GIGALITH, + NATIONAL_DEX_GIMMIGHOUL, NATIONAL_DEX_GIRAFARIG, NATIONAL_DEX_GIRATINA, NATIONAL_DEX_GLACEON, @@ -302,6 +342,8 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_GLAMEOW, NATIONAL_DEX_GLASTRIER, NATIONAL_DEX_GLIGAR, + NATIONAL_DEX_GLIMMET, + NATIONAL_DEX_GLIMMORA, NATIONAL_DEX_GLISCOR, NATIONAL_DEX_GLOOM, NATIONAL_DEX_GOGOAT, @@ -320,9 +362,12 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_GOTHITELLE, NATIONAL_DEX_GOTHORITA, NATIONAL_DEX_GOURGEIST, + NATIONAL_DEX_GRAFAIAI, NATIONAL_DEX_GRANBULL, NATIONAL_DEX_GRAPPLOCT, NATIONAL_DEX_GRAVELER, + NATIONAL_DEX_GREAT_TUSK, + NATIONAL_DEX_GREAVARD, NATIONAL_DEX_GREEDENT, NATIONAL_DEX_GRENINJA, NATIONAL_DEX_GRIMER, @@ -369,6 +414,7 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_HORSEA, NATIONAL_DEX_HOUNDOOM, NATIONAL_DEX_HOUNDOUR, + NATIONAL_DEX_HOUNDSTONE, NATIONAL_DEX_HUNTAIL, NATIONAL_DEX_HYDREIGON, NATIONAL_DEX_HYPNO, @@ -381,6 +427,14 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_INFERNAPE, NATIONAL_DEX_INKAY, NATIONAL_DEX_INTELEON, + NATIONAL_DEX_IRON_BUNDLE, + NATIONAL_DEX_IRON_HANDS, + NATIONAL_DEX_IRON_JUGULIS, + NATIONAL_DEX_IRON_LEAVES, + NATIONAL_DEX_IRON_MOTH, + NATIONAL_DEX_IRON_THORNS, + NATIONAL_DEX_IRON_TREADS, + NATIONAL_DEX_IRON_VALIANT, NATIONAL_DEX_IVYSAUR, NATIONAL_DEX_JANGMO_O, @@ -401,10 +455,13 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_KARTANA, NATIONAL_DEX_KECLEON, NATIONAL_DEX_KELDEO, + NATIONAL_DEX_KILOWATTREL, + NATIONAL_DEX_KINGAMBIT, NATIONAL_DEX_KINGDRA, NATIONAL_DEX_KINGLER, NATIONAL_DEX_KIRLIA, NATIONAL_DEX_KLANG, + NATIONAL_DEX_KLAWF, NATIONAL_DEX_KLEAVOR, NATIONAL_DEX_KLEFKI, NATIONAL_DEX_KLINK, @@ -412,6 +469,7 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_KOFFING, NATIONAL_DEX_KOMALA, NATIONAL_DEX_KOMMO_O, + NATIONAL_DEX_KORAIDON, NATIONAL_DEX_KRABBY, NATIONAL_DEX_KRICKETOT, NATIONAL_DEX_KRICKETUNE, @@ -432,6 +490,7 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_LATIOS, NATIONAL_DEX_LEAFEON, NATIONAL_DEX_LEAVANNY, + NATIONAL_DEX_LECHONK, NATIONAL_DEX_LEDIAN, NATIONAL_DEX_LEDYBA, NATIONAL_DEX_LICKILICKY, @@ -444,6 +503,7 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_LITLEO, NATIONAL_DEX_LITTEN, NATIONAL_DEX_LITWICK, + NATIONAL_DEX_LOKIX, NATIONAL_DEX_LOMBRE, NATIONAL_DEX_LOPUNNY, NATIONAL_DEX_LOTAD, @@ -460,6 +520,7 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_LUXRAY, NATIONAL_DEX_LYCANROC, + NATIONAL_DEX_MABOSSTIFF, NATIONAL_DEX_MACHAMP, NATIONAL_DEX_MACHOKE, NATIONAL_DEX_MACHOP, @@ -488,7 +549,9 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_MAROWAK, NATIONAL_DEX_MARSHADOW, NATIONAL_DEX_MARSHTOMP, + NATIONAL_DEX_MASCHIFF, NATIONAL_DEX_MASQUERAIN, + NATIONAL_DEX_MAUSHOLD, NATIONAL_DEX_MAWILE, NATIONAL_DEX_MEDICHAM, NATIONAL_DEX_MEDITITE, @@ -496,6 +559,7 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_MELMETAL, NATIONAL_DEX_MELOETTA, NATIONAL_DEX_MELTAN, + NATIONAL_DEX_MEOWSCARADA, NATIONAL_DEX_MEOWSTIC, NATIONAL_DEX_MEOWTH, NATIONAL_DEX_MESPRIT, @@ -515,6 +579,7 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_MINCCINO, NATIONAL_DEX_MINIOR, NATIONAL_DEX_MINUN, + NATIONAL_DEX_MIRAIDON, NATIONAL_DEX_MISDREAVUS, NATIONAL_DEX_MISMAGIUS, NATIONAL_DEX_MOLTRES, @@ -530,10 +595,13 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_MUDSDALE, NATIONAL_DEX_MUK, NATIONAL_DEX_MUNCHLAX, + NATIONAL_DEX_MUNKIDORI, NATIONAL_DEX_MUNNA, NATIONAL_DEX_MURKROW, NATIONAL_DEX_MUSHARNA, + NATIONAL_DEX_NACLI, + NATIONAL_DEX_NACLSTACK, NATIONAL_DEX_NAGANADEL, NATIONAL_DEX_NATU, NATIONAL_DEX_NECROZMA, @@ -554,20 +622,26 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_NOSEPASS, NATIONAL_DEX_NUMEL, NATIONAL_DEX_NUZLEAF, + NATIONAL_DEX_NYMBLE, NATIONAL_DEX_OBSTAGOON, NATIONAL_DEX_OCTILLERY, NATIONAL_DEX_ODDISH, + NATIONAL_DEX_OGERPON, + NATIONAL_DEX_OINKOLOGNE, + NATIONAL_DEX_OKIDOGI, NATIONAL_DEX_OMANYTE, NATIONAL_DEX_OMASTAR, NATIONAL_DEX_ONIX, NATIONAL_DEX_ORANGURU, NATIONAL_DEX_ORBEETLE, NATIONAL_DEX_ORICORIO, + NATIONAL_DEX_ORTHWORM, NATIONAL_DEX_OSHAWOTT, NATIONAL_DEX_OVERQWIL, NATIONAL_DEX_PACHIRISU, + NATIONAL_DEX_PALAFIN, NATIONAL_DEX_PALKIA, NATIONAL_DEX_PALOSSAND, NATIONAL_DEX_PALPITOAD, @@ -580,6 +654,9 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_PARASECT, NATIONAL_DEX_PASSIMIAN, NATIONAL_DEX_PATRAT, + NATIONAL_DEX_PAWMI, + NATIONAL_DEX_PAWMO, + NATIONAL_DEX_PAWMOT, NATIONAL_DEX_PAWNIARD, NATIONAL_DEX_PELIPPER, NATIONAL_DEX_PERRSERKER, @@ -608,6 +685,7 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_POLIWAG, NATIONAL_DEX_POLIWHIRL, NATIONAL_DEX_POLIWRATH, + NATIONAL_DEX_POLTCHAGEIST, NATIONAL_DEX_POLTEAGEIST, NATIONAL_DEX_PONYTA, NATIONAL_DEX_POOCHYENA, @@ -628,11 +706,15 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_PYUKUMUKU, NATIONAL_DEX_QUAGSIRE, + NATIONAL_DEX_QUAQUAVAL, + NATIONAL_DEX_QUAXLY, + NATIONAL_DEX_QUAXWELL, NATIONAL_DEX_QUILAVA, NATIONAL_DEX_QUILLADIN, NATIONAL_DEX_QWILFISH, NATIONAL_DEX_RABOOT, + NATIONAL_DEX_RABSCA, NATIONAL_DEX_RAICHU, NATIONAL_DEX_RAIKOU, NATIONAL_DEX_RALTS, @@ -648,15 +730,18 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_REGIROCK, NATIONAL_DEX_REGISTEEL, NATIONAL_DEX_RELICANTH, + NATIONAL_DEX_RELLOR, NATIONAL_DEX_REMORAID, NATIONAL_DEX_RESHIRAM, NATIONAL_DEX_REUNICLUS, + NATIONAL_DEX_REVAVROOM, NATIONAL_DEX_RHYDON, NATIONAL_DEX_RHYHORN, NATIONAL_DEX_RHYPERIOR, NATIONAL_DEX_RIBOMBEE, NATIONAL_DEX_RILLABOOM, NATIONAL_DEX_RIOLU, + NATIONAL_DEX_ROARING_MOON, NATIONAL_DEX_ROCKRUFF, NATIONAL_DEX_ROGGENROLA, NATIONAL_DEX_ROLYCOLY, @@ -677,6 +762,7 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_SANDILE, NATIONAL_DEX_SANDSHREW, NATIONAL_DEX_SANDSLASH, + NATIONAL_DEX_SANDY_SHOCKS, NATIONAL_DEX_SANDYGAST, NATIONAL_DEX_SAWK, NATIONAL_DEX_SAWSBUCK, @@ -685,8 +771,10 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_SCIZOR, NATIONAL_DEX_SCOLIPEDE, NATIONAL_DEX_SCORBUNNY, + NATIONAL_DEX_SCOVILLAIN, NATIONAL_DEX_SCRAFTY, NATIONAL_DEX_SCRAGGY, + NATIONAL_DEX_SCREAM_TAIL, NATIONAL_DEX_SCYTHER, NATIONAL_DEX_SEADRA, NATIONAL_DEX_SEAKING, @@ -710,6 +798,7 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_SHIFTRY, NATIONAL_DEX_SHIINOTIC, NATIONAL_DEX_SHINX, + NATIONAL_DEX_SHROODLE, NATIONAL_DEX_SHROOMISH, NATIONAL_DEX_SHUCKLE, NATIONAL_DEX_SHUPPET, @@ -720,10 +809,12 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_SIMIPOUR, NATIONAL_DEX_SIMISAGE, NATIONAL_DEX_SIMISEAR, + NATIONAL_DEX_SINISTCHA, NATIONAL_DEX_SINISTEA, NATIONAL_DEX_SIRFETCHD, NATIONAL_DEX_SIZZLIPEDE, NATIONAL_DEX_SKARMORY, + NATIONAL_DEX_SKELEDIRGE, NATIONAL_DEX_SKIDDO, NATIONAL_DEX_SKIPLOOM, NATIONAL_DEX_SKITTY, @@ -734,12 +825,14 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_SLAKING, NATIONAL_DEX_SLAKOTH, NATIONAL_DEX_SLIGGOO, + NATIONAL_DEX_SLITHER_WING, NATIONAL_DEX_SLOWBRO, NATIONAL_DEX_SLOWKING, NATIONAL_DEX_SLOWPOKE, NATIONAL_DEX_SLUGMA, NATIONAL_DEX_SLURPUFF, NATIONAL_DEX_SMEARGLE, + NATIONAL_DEX_SMOLIV, NATIONAL_DEX_SMOOCHUM, NATIONAL_DEX_SNEASEL, NATIONAL_DEX_SNEASLER, @@ -757,11 +850,14 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_SPECTRIER, NATIONAL_DEX_SPEWPA, NATIONAL_DEX_SPHEAL, + NATIONAL_DEX_SPIDOPS, NATIONAL_DEX_SPINARAK, NATIONAL_DEX_SPINDA, NATIONAL_DEX_SPIRITOMB, NATIONAL_DEX_SPOINK, + NATIONAL_DEX_SPRIGATITO, NATIONAL_DEX_SPRITZEE, + NATIONAL_DEX_SQUAWKABILLY, NATIONAL_DEX_SQUIRTLE, NATIONAL_DEX_STAKATAKA, NATIONAL_DEX_STANTLER, @@ -793,14 +889,18 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_SWOOBAT, NATIONAL_DEX_SYLVEON, + NATIONAL_DEX_TADBULB, NATIONAL_DEX_TAILLOW, NATIONAL_DEX_TALONFLAME, + NATIONAL_DEX_TANDEMAUS, NATIONAL_DEX_TANGELA, NATIONAL_DEX_TANGROWTH, NATIONAL_DEX_TAPU_BULU, NATIONAL_DEX_TAPU_FINI, NATIONAL_DEX_TAPU_KOKO, NATIONAL_DEX_TAPU_LELE, + NATIONAL_DEX_TAROUNTULA, + NATIONAL_DEX_TATSUGIRI, NATIONAL_DEX_TAUROS, NATIONAL_DEX_TEDDIURSA, NATIONAL_DEX_TENTACOOL, @@ -812,7 +912,13 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_THUNDURUS, NATIONAL_DEX_THWACKEY, NATIONAL_DEX_TIMBURR, + NATIONAL_DEX_TING_LU, + NATIONAL_DEX_TINKATINK, + NATIONAL_DEX_TINKATON, + NATIONAL_DEX_TINKATUFF, NATIONAL_DEX_TIRTOUGA, + NATIONAL_DEX_TOEDSCOOL, + NATIONAL_DEX_TOEDSCRUEL, NATIONAL_DEX_TOGEDEMARU, NATIONAL_DEX_TOGEKISS, NATIONAL_DEX_TOGEPI, @@ -859,6 +965,8 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_VANILLITE, NATIONAL_DEX_VANILLUXE, NATIONAL_DEX_VAPOREON, + NATIONAL_DEX_VAROOM, + NATIONAL_DEX_VELUZA, NATIONAL_DEX_VENIPEDE, NATIONAL_DEX_VENOMOTH, NATIONAL_DEX_VENONAT, @@ -881,9 +989,11 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_WAILMER, NATIONAL_DEX_WAILORD, + NATIONAL_DEX_WALKING_WAKE, NATIONAL_DEX_WALREIN, NATIONAL_DEX_WARTORTLE, NATIONAL_DEX_WATCHOG, + NATIONAL_DEX_WATTREL, NATIONAL_DEX_WEAVILE, NATIONAL_DEX_WEEDLE, NATIONAL_DEX_WEEPINBELL, @@ -893,14 +1003,17 @@ const u16 gPokedexOrder_Alphabetical[] = NATIONAL_DEX_WHISCASH, NATIONAL_DEX_WHISMUR, NATIONAL_DEX_WIGGLYTUFF, + NATIONAL_DEX_WIGLETT, NATIONAL_DEX_WIMPOD, NATIONAL_DEX_WINGULL, NATIONAL_DEX_WISHIWASHI, + NATIONAL_DEX_WO_CHIEN, NATIONAL_DEX_WOBBUFFET, NATIONAL_DEX_WOOBAT, NATIONAL_DEX_WOOLOO, NATIONAL_DEX_WOOPER, NATIONAL_DEX_WORMADAM, + NATIONAL_DEX_WUGTRIO, NATIONAL_DEX_WURMPLE, NATIONAL_DEX_WYNAUT, NATIONAL_DEX_WYRDEER, @@ -937,36 +1050,69 @@ const u16 gPokedexOrder_Weight[] = // 0.0 - 21.8 lbs / 0.0 - 9.9 kg NATIONAL_DEX_GASTLY, NATIONAL_DEX_HAUNTER, - NATIONAL_DEX_FLABEBE, + NATIONAL_DEX_FLABEBE,//_RED_FLOWER, + //NATIONAL_DEX_FLABEBE_YELLOW_FLOWER, + //NATIONAL_DEX_FLABEBE_ORANGE_FLOWER, + //NATIONAL_DEX_FLABEBE_BLUE_FLOWER, + //NATIONAL_DEX_FLABEBE_WHITE_FLOWER, NATIONAL_DEX_COSMOG, NATIONAL_DEX_KARTANA, + //NATIONAL_DEX_GIMMIGHOUL_ROAMING, + // 0.4 lbs / 0.2 kg NATIONAL_DEX_CUTIEFLY, - NATIONAL_DEX_SINISTEA, + NATIONAL_DEX_SINISTEA,//_PHONY, + //NATIONAL_DEX_SINISTEA_ANTIQUE, + // 0.7 lbs / 0.3 kg NATIONAL_DEX_ROTOM, NATIONAL_DEX_UXIE, NATIONAL_DEX_MESPRIT, NATIONAL_DEX_AZELF, NATIONAL_DEX_TYNAMO, - NATIONAL_DEX_WISHIWASHI, // Solo Form + NATIONAL_DEX_WISHIWASHI,//_SOLO, NATIONAL_DEX_COMFEY, - //NATIONAL_DEX_MINIOR, // Core Form + NATIONAL_DEX_MINIOR,//_CORE_RED, + //NATIONAL_DEX_MINIOR_CORE_ORANGE, + //NATIONAL_DEX_MINIOR_CORE_YELLOW, + //NATIONAL_DEX_MINIOR_CORE_GREEN, + //NATIONAL_DEX_MINIOR_CORE_BLUE, + //NATIONAL_DEX_MINIOR_CORE_INDIGO, + //NATIONAL_DEX_MINIOR_CORE_VIOLET, NATIONAL_DEX_MILCERY, + // 0.9 lbs / 0.4 kg NATIONAL_DEX_POLTEAGEIST, NATIONAL_DEX_CURSOLA, + NATIONAL_DEX_TADBULB, + // 1.1 lbs / 0.5 kg NATIONAL_DEX_HOPPIP, NATIONAL_DEX_SPRITZEE, NATIONAL_DEX_RIBOMBEE, NATIONAL_DEX_APPLIN, NATIONAL_DEX_ALCREMIE, - //NATIONAL_DEX_CORSOLA, // Galarian Form + //NATIONAL_DEX_CORSOLA_GALARIAN, + // 1.3 lbs / 0.6 kg NATIONAL_DEX_CHINGLING, NATIONAL_DEX_COTTONEE, NATIONAL_DEX_JOLTIK, - NATIONAL_DEX_MIMIKYU, + NATIONAL_DEX_BRAMBLIN, + // 1.5 lbs / 0.7 kg + NATIONAL_DEX_MIMIKYU,//_DISGUISED, + //NATIONAL_DEX_MIMIKYU_BUSTED, + NATIONAL_DEX_SHROODLE, + // 1.8 lbs / 0.8 kg NATIONAL_DEX_DIGLETT, - NATIONAL_DEX_CASTFORM, - NATIONAL_DEX_FLOETTE, - //NATIONAL_DEX_DIGLETT, // Alolan Form + NATIONAL_DEX_CASTFORM,//_NORMAL, + //NATIONAL_DEX_CASTFORM_SUNNY, + //NATIONAL_DEX_CASTFORM_RAINY, + //NATIONAL_DEX_CASTFORM_SNOWY, + // 2.0 lbs / 0.9 kg + NATIONAL_DEX_FLOETTE,//_RED_FLOWER, + //NATIONAL_DEX_FLOETTE_YELLOW_FLOWER, + //NATIONAL_DEX_FLOETTE_ORANGE_FLOWER, + //NATIONAL_DEX_FLOETTE_BLUE_FLOWER, + //NATIONAL_DEX_FLOETTE_WHITE_FLOWER, + //NATIONAL_DEX_FLOETTE_ETERNAL_FLOWER, + // 2.2 lbs / 1.0 kg + //NATIONAL_DEX_DIGLETT_ALOLAN, NATIONAL_DEX_KOFFING, NATIONAL_DEX_IGGLYBUFF, NATIONAL_DEX_SKIPLOOM, @@ -978,28 +1124,42 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_ARROKUDA, NATIONAL_DEX_SIZZLIPEDE, NATIONAL_DEX_PINCURCHIN, + NATIONAL_DEX_NYMBLE, + NATIONAL_DEX_RELLOR, + // 2.4 lbs / 1.1 kg NATIONAL_DEX_JIRACHI, + NATIONAL_DEX_POLTCHAGEIST, + // 2.6 lbs / 1.2 kg NATIONAL_DEX_SHEDINJA, NATIONAL_DEX_SWABLU, NATIONAL_DEX_BUDEW, NATIONAL_DEX_DRIFLOON, NATIONAL_DEX_PIKIPEK, NATIONAL_DEX_PYUKUMUKU, + // 3.1 lbs / 1.4 kg NATIONAL_DEX_MANAPHY, + // 3.3 lbs / 1.5 kg NATIONAL_DEX_TOGEPI, NATIONAL_DEX_YAMASK, - //NATIONAL_DEX_YAMASK, // Galarian Form + //NATIONAL_DEX_YAMASK_GALARIAN, NATIONAL_DEX_ROWLET, NATIONAL_DEX_FOMANTIS, NATIONAL_DEX_MORELULL, + NATIONAL_DEX_FLITTLE, + // 3.7 lbs / 1.7 kg NATIONAL_DEX_SURSKIT, NATIONAL_DEX_FLETCHLING, + // 4.0 lbs / 1.8 kg NATIONAL_DEX_PIDGEY, NATIONAL_DEX_SUNKERN, NATIONAL_DEX_POIPOLE, NATIONAL_DEX_ROOKIDEE, + NATIONAL_DEX_TANDEMAUS, + NATIONAL_DEX_WIGLETT, + // 4.2 lbs / 1.9 kg NATIONAL_DEX_BARBOACH, NATIONAL_DEX_CHATOT, + // 4.4 lbs / 2.0 kg NATIONAL_DEX_SPEAROW, NATIONAL_DEX_PICHU, NATIONAL_DEX_NATU, @@ -1007,54 +1167,89 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_ROSELIA, NATIONAL_DEX_STARLY, NATIONAL_DEX_HONEDGE, - //NATIONAL_DEX_RIBOMBEE, // Totem-sized + //NATIONAL_DEX_RIBOMBEE_TOTEM_SIZED, NATIONAL_DEX_DREEPY, + // 4.6 lbs / 2.1 kg NATIONAL_DEX_MURKROW, - NATIONAL_DEX_SHAYMIN, // Land Form + NATIONAL_DEX_SHAYMIN,//_LAND, NATIONAL_DEX_PIDOVE, NATIONAL_DEX_WOOBAT, + // 4.9 lbs / 2.2 kg NATIONAL_DEX_KRICKETOT, NATIONAL_DEX_DEDENNE, NATIONAL_DEX_GOSSIFLEUR, + NATIONAL_DEX_SINISTCHA, + // 5.1 lbs / 2.3 kg NATIONAL_DEX_TAILLOW, NATIONAL_DEX_SHUPPET, + NATIONAL_DEX_MAUSHOLD,//_FAMILY_OF_THREE, + // 5.3 lbs / 2.4 kg + NATIONAL_DEX_SQUAWKABILLY,//_GREEN_PLUMAGE, + //NATIONAL_DEX_SQUAWKABILLY_BLUE_PLUMAGE, + //NATIONAL_DEX_SQUAWKABILLY_YELLOW_PLUMAGE, + //NATIONAL_DEX_SQUAWKABILLY_WHITE_PLUMAGE, + // 5.5 lbs / 2.5 kg NATIONAL_DEX_EXEGGCUTE, NATIONAL_DEX_TORCHIC, NATIONAL_DEX_SEWADDLE, NATIONAL_DEX_SCATTERBUG, NATIONAL_DEX_SKWOVET, NATIONAL_DEX_ELDEGOSS, + NATIONAL_DEX_PAWMI, + // 5.7 lbs / 2.6 kg NATIONAL_DEX_LOTAD, + // 6.2 lbs / 2.8 kg NATIONAL_DEX_GOOMY, - //NATIONAL_DEX_MIMIKYU, // Totem-sized + //NATIONAL_DEX_MIMIKYU_TOTEM_SIZED, + //NATIONAL_DEX_MAUSHOLD_FAMILY_OF_FOUR, + // 6.4 lbs / 2.9 kg NATIONAL_DEX_CATERPIE, + // 6.6 lbs / 3.0 kg NATIONAL_DEX_CLEFFA, NATIONAL_DEX_JUMPLUFF, NATIONAL_DEX_KLEFKI, - NATIONAL_DEX_MORPEKO, + NATIONAL_DEX_MORPEKO,//_FULL_BELLY, + //NATIONAL_DEX_MORPEKO_HANGRY, + NATIONAL_DEX_CAPSAKID, + // 6.8 lbs / 3.1 kg NATIONAL_DEX_PHIONE, NATIONAL_DEX_LITWICK, + // 7.1 lbs / 3.2 kg NATIONAL_DEX_WEEDLE, NATIONAL_DEX_TOGETIC, NATIONAL_DEX_BOUNSWEET, + // 7.3 lbs / 3.3 kg NATIONAL_DEX_DRATINI, NATIONAL_DEX_CHERUBI, NATIONAL_DEX_TOGEDEMARU, - NATIONAL_DEX_BURMY, - NATIONAL_DEX_ORICORIO, + // 7.5 lbs / 3.4 kg + NATIONAL_DEX_BURMY,//_PLANT_CLOAK, + //NATIONAL_DEX_BURMY_SANDY_CLOAK, + //NATIONAL_DEX_BURMY_TRASH_CLOAK, + NATIONAL_DEX_ORICORIO,//_BAILE, + //NATIONAL_DEX_ORICORIO_POM_POM, + //NATIONAL_DEX_ORICORIO_PAU, + //NATIONAL_DEX_ORICORIO_SENSU, NATIONAL_DEX_HATENNA, + // 7.7 lbs / 3.5 kg NATIONAL_DEX_RATTATA, NATIONAL_DEX_ESPURR, NATIONAL_DEX_SWIRLIX, NATIONAL_DEX_INKAY, - //NATIONAL_DEX_PUMPKABOO, // Small Size + //NATIONAL_DEX_PUMPKABOO_SMALL, + NATIONAL_DEX_RABSCA, + // 7.9 lbs / 3.6 kg NATIONAL_DEX_WURMPLE, NATIONAL_DEX_MASQUERAIN, - //NATIONAL_DEX_RATTATA, // Alolan Form + NATIONAL_DEX_WATTREL, + // 8.4 lbs / 3.8 kg + //NATIONAL_DEX_RATTATA_ALOLAN, NATIONAL_DEX_SNOM, + // 8.6 lbs / 3.9 kg NATIONAL_DEX_QWILFISH, NATIONAL_DEX_PACHIRISU, NATIONAL_DEX_GLAMEOW, + // 8.8 lbs / 4.0 kg NATIONAL_DEX_BELLSPROUT, NATIONAL_DEX_SHELLDER, NATIONAL_DEX_DITTO, @@ -1064,21 +1259,60 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_DEWPIDER, NATIONAL_DEX_SOBBLE, NATIONAL_DEX_CLOBBOPUS, + NATIONAL_DEX_TAROUNTULA, + NATIONAL_DEX_FLUTTER_MANE, + // 9.0 lbs / 4.1 kg NATIONAL_DEX_LILLIPUP, + NATIONAL_DEX_SPRIGATITO, + // 9.3 lbs / 4.2 kg NATIONAL_DEX_MEOWTH, - //NATIONAL_DEX_MEOWTH, // Alolan Form + //NATIONAL_DEX_MEOWTH_ALOLAN, NATIONAL_DEX_PLUSLE, NATIONAL_DEX_MINUN, + // 9.5 lbs / 4.3 kg NATIONAL_DEX_LITTEN, + // 9.7 lbs / 4.4 kg NATIONAL_DEX_MISMAGIUS, NATIONAL_DEX_GRUBBIN, + // 9.9 lbs / 4.5 kg NATIONAL_DEX_SHROOMISH, NATIONAL_DEX_TYMPOLE, NATIONAL_DEX_DOUBLADE, NATIONAL_DEX_SCORBUNNY, + // 10.6 lbs / 4.8 kg NATIONAL_DEX_SALANDIT, NATIONAL_DEX_HATTREM, - NATIONAL_DEX_UNOWN, + // 10.8 lbs / 4.9 kg + NATIONAL_DEX_CHI_YU, + // 11.0 lbs / 5.0 kg + NATIONAL_DEX_UNOWN,//_A, + //NATIONAL_DEX_UNOWN_B, + //NATIONAL_DEX_UNOWN_C, + //NATIONAL_DEX_UNOWN_D, + //NATIONAL_DEX_UNOWN_E, + //NATIONAL_DEX_UNOWN_F, + //NATIONAL_DEX_UNOWN_G, + //NATIONAL_DEX_UNOWN_H, + //NATIONAL_DEX_UNOWN_I, + //NATIONAL_DEX_UNOWN_J, + //NATIONAL_DEX_UNOWN_K, + //NATIONAL_DEX_UNOWN_L, + //NATIONAL_DEX_UNOWN_M, + //NATIONAL_DEX_UNOWN_N, + //NATIONAL_DEX_UNOWN_O, + //NATIONAL_DEX_UNOWN_P, + //NATIONAL_DEX_UNOWN_Q, + //NATIONAL_DEX_UNOWN_R, + //NATIONAL_DEX_UNOWN_S, + //NATIONAL_DEX_UNOWN_T, + //NATIONAL_DEX_UNOWN_U, + //NATIONAL_DEX_UNOWN_V, + //NATIONAL_DEX_UNOWN_W, + //NATIONAL_DEX_UNOWN_X, + //NATIONAL_DEX_UNOWN_Y, + //NATIONAL_DEX_UNOWN_Z, + //NATIONAL_DEX_UNOWN_EMARK, + //NATIONAL_DEX_UNOWN_QMARK, NATIONAL_DEX_CORSOLA, NATIONAL_DEX_CELEBI, NATIONAL_DEX_TREECKO, @@ -1086,28 +1320,53 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_EMOLGA, NATIONAL_DEX_BUNNELBY, NATIONAL_DEX_SLURPUFF, - NATIONAL_DEX_PUMPKABOO, // Average Size + NATIONAL_DEX_PUMPKABOO,//_AVERAGE, NATIONAL_DEX_GROOKEY, + NATIONAL_DEX_GIMMIGHOUL,//_CHEST, + // 11.2 lbs / 5.1 kg NATIONAL_DEX_HATTERENE, + // 11.5 lbs / 5.2 kg NATIONAL_DEX_PIPLUP, - //NATIONAL_DEX_SHAYMIN, // Sky Form + //NATIONAL_DEX_SHAYMIN_SKY, + // 11.7 lbs / 5.3 kg NATIONAL_DEX_VENIPEDE, + // 11.9 lbs / 5.4 kg NATIONAL_DEX_ODDISH, NATIONAL_DEX_PARAS, + NATIONAL_DEX_WUGTRIO, + // 12.1 lbs / 5.5 kg NATIONAL_DEX_JIGGLYPUFF, NATIONAL_DEX_NINCADA, NATIONAL_DEX_COMBEE, NATIONAL_DEX_BUNEARY, NATIONAL_DEX_DUCKLETT, NATIONAL_DEX_IMPIDIMP, + // 12.6 lbs / 5.7 kg NATIONAL_DEX_VANILLITE, NATIONAL_DEX_CARBINK, + // 12.8 lbs / 5.8 kg NATIONAL_DEX_BELLOSSOM, NATIONAL_DEX_MINCCINO, NATIONAL_DEX_GOTHITA, + // 13.0 lbs / 5.9 kg NATIONAL_DEX_OSHAWOTT, NATIONAL_DEX_KARRABLAST, + // 13.2 lbs / 6.0 kg NATIONAL_DEX_PIKACHU, + //NATIONAL_DEX_PIKACHU_COSPLAY, + //NATIONAL_DEX_PIKACHU_ROCK_STAR, + //NATIONAL_DEX_PIKACHU_BELLE, + //NATIONAL_DEX_PIKACHU_POP_STAR, + //NATIONAL_DEX_PIKACHU_PH_D, + //NATIONAL_DEX_PIKACHU_LIBRE, + //NATIONAL_DEX_PIKACHU_ORIGINAL_CAP, + //NATIONAL_DEX_PIKACHU_HOENN_CAP, + //NATIONAL_DEX_PIKACHU_SINNOH_CAP, + //NATIONAL_DEX_PIKACHU_UNOVA_CAP, + //NATIONAL_DEX_PIKACHU_KALOS_CAP, + //NATIONAL_DEX_PIKACHU_ALOLA_CAP, + //NATIONAL_DEX_PIKACHU_PARTNER_CAP, + //NATIONAL_DEX_PIKACHU_WORLD_CAP, NATIONAL_DEX_MAGNEMITE, NATIONAL_DEX_SENTRET, NATIONAL_DEX_SMOOCHUM, @@ -1115,49 +1374,71 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_YUNGOOS, NATIONAL_DEX_GREEDENT, NATIONAL_DEX_WOOLOO, + NATIONAL_DEX_BRAMBLEGHAST, + // 13.4 lbs / 6.1 kg + NATIONAL_DEX_QUAXLY, + // 13.7 lbs / 6.2 kg NATIONAL_DEX_CHIMCHAR, - NATIONAL_DEX_SHELLOS, // West Sea - //NATIONAL_DEX_SHELLOS, // East Sea + // 13.9 lbs / 6.3 kg + NATIONAL_DEX_SHELLOS,//_WEST_SEA, + //NATIONAL_DEX_SHELLOS_EAST_SEA, + // 14.1 lbs / 6.4 kg NATIONAL_DEX_WEEPINBELL, NATIONAL_DEX_CHIKORITA, + // 14.3 lbs / 6.5 kg NATIONAL_DEX_KRABBY, NATIONAL_DEX_CUBONE, NATIONAL_DEX_EEVEE, NATIONAL_DEX_SWINUB, - NATIONAL_DEX_WORMADAM, // Plant Cloak - //NATIONAL_DEX_WORMADAM, // Sandy Cloak - //NATIONAL_DEX_WORMADAM, // Trash Cloak - NATIONAL_DEX_MELOETTA, // Aria Forme - //NATIONAL_DEX_MELOETTA, // Pirouette Forme + NATIONAL_DEX_WORMADAM,//_PLANT_CLOAK, + //NATIONAL_DEX_WORMADAM_SANDY_CLOAK, + //NATIONAL_DEX_WORMADAM_TRASH_CLOAK, + NATIONAL_DEX_MELOETTA,//_ARIA, + //NATIONAL_DEX_MELOETTA_PIROUETTE, + NATIONAL_DEX_PAWMO, + NATIONAL_DEX_SMOLIV, + // 14.6 lbs / 6.6 kg NATIONAL_DEX_RALTS, NATIONAL_DEX_WHIMSICOTT, NATIONAL_DEX_PETILIL, + // 15.0 lbs / 6.8 kg NATIONAL_DEX_STUFFUL, + // 15.2 lbs / 6.9 kg NATIONAL_DEX_BULBASAUR, NATIONAL_DEX_EKANS, + // 15.4 lbs / 7.0 kg NATIONAL_DEX_NIDORAN_F, NATIONAL_DEX_FINNEON, NATIONAL_DEX_FROAKIE, NATIONAL_DEX_PHANTUMP, NATIONAL_DEX_CRABRAWLER, + // 15.9 lbs / 7.2 kg NATIONAL_DEX_PINECO, + // 16.1 lbs / 7.3 kg NATIONAL_DEX_SWADLOON, NATIONAL_DEX_SKRELP, + // 16.3 lbs / 7.4 kg NATIONAL_DEX_FEEBAS, + // 16.5 lbs / 7.5 kg NATIONAL_DEX_CLEFAIRY, NATIONAL_DEX_ZUBAT, - //NATIONAL_DEX_MEOWTH, // Galarian Form + //NATIONAL_DEX_MEOWTH_GALARIAN, NATIONAL_DEX_OMANYTE, NATIONAL_DEX_CINCCINO, - //NATIONAL_DEX_PUMPKABOO, // Large Size + //NATIONAL_DEX_PUMPKABOO_LARGE, NATIONAL_DEX_POPPLIO, + // 16.8 lbs / 7.6 kg NATIONAL_DEX_MUDKIP, NATIONAL_DEX_SILICOBRA, + // 17.0 lbs / 7.7 kg NATIONAL_DEX_SHELMET, NATIONAL_DEX_CALYREX, + // 17.2 lbs / 7.8 kg NATIONAL_DEX_MAREEP, NATIONAL_DEX_SNUBBULL, + // 17.4 lbs / 7.9 kg NATIONAL_DEX_CYNDAQUIL, + // 17.6 lbs / 8.0 kg NATIONAL_DEX_HORSEA, NATIONAL_DEX_DUOSION, NATIONAL_DEX_PANCHAM, @@ -1165,10 +1446,20 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_MAREANIE, NATIONAL_DEX_MELTAN, NATIONAL_DEX_BLIPBUG, + NATIONAL_DEX_GLIMMET, + NATIONAL_DEX_TATSUGIRI,//_CURLY, + //NATIONAL_DEX_TATSUGIRI_DROOPY, + //NATIONAL_DEX_TATSUGIRI_STRETCHY, + NATIONAL_DEX_SCREAM_TAIL, + // 17.9 lbs / 8.1 kg NATIONAL_DEX_SNIVY, + // 18.1 lbs / 8.2 kg NATIONAL_DEX_STEENEE, + // 18.3 lbs / 8.3 kg NATIONAL_DEX_CLAUNCHER, + // 18.5 lbs / 8.4 kg NATIONAL_DEX_SPEWPA, + // 18.7 lbs / 8.5 kg NATIONAL_DEX_CHARMANDER, NATIONAL_DEX_SPINARAK, NATIONAL_DEX_MARILL, @@ -1176,58 +1467,94 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_WOOPER, NATIONAL_DEX_DRILBUR, NATIONAL_DEX_CUBCHOO, - NATIONAL_DEX_MEOWSTIC, + NATIONAL_DEX_MEOWSTIC,//_MALE, + //NATIONAL_DEX_MEOWSTIC_FEMALE, NATIONAL_DEX_CHEWTLE, + // 19.0 lbs / 8.6 kg NATIONAL_DEX_GLOOM, + // 19.2 lbs / 8.7 kg NATIONAL_DEX_LUVDISC, + // 19.4 lbs / 8.8 kg NATIONAL_DEX_TEDDIURSA, NATIONAL_DEX_DIANCIE, + // 19.6 lbs / 8.9 kg NATIONAL_DEX_NICKIT, + NATIONAL_DEX_TINKATINK, + // 19.8 lbs / 9.0 kg NATIONAL_DEX_SQUIRTLE, NATIONAL_DEX_NIDORAN_M, NATIONAL_DEX_ELGYEM, NATIONAL_DEX_VULLABY, NATIONAL_DEX_CHESPIN, - NATIONAL_DEX_HOOPA, // Confined + NATIONAL_DEX_HOOPA,//_CONFINED, NATIONAL_DEX_RABOOT, + // 20.3 lbs / 9.2 kg NATIONAL_DEX_ROCKRUFF, - NATIONAL_DEX_CHERRIM, + // 20.5 lbs / 9.3 kg + NATIONAL_DEX_CHERRIM,//_OVERCAST, + //NATIONAL_DEX_CHERRIM_SUNSHINE, + // 20.7 lbs / 9.4 kg NATIONAL_DEX_FENNEKIN, + // 20.9 lbs / 9.5 kg NATIONAL_DEX_WEEZING, NATIONAL_DEX_TOTODILE, NATIONAL_DEX_WINGULL, NATIONAL_DEX_SHINX, NATIONAL_DEX_ARCHEN, - //NATIONAL_DEX_GOURGEIST, // Small Size + //NATIONAL_DEX_GOURGEIST_SMALL, + // 21.6 lbs / 9.7 kg + NATIONAL_DEX_DIPPLIN, + // 21.6 lbs / 9.8 kg + NATIONAL_DEX_FUECOCO, + // 21.8 lbs / 9.9 kg NATIONAL_DEX_METAPOD, NATIONAL_DEX_VULPIX, - //NATIONAL_DEX_VULPIX, // Alolan Form + //NATIONAL_DEX_VULPIX_ALOLAN, NATIONAL_DEX_TEPIG, - // 22.0 - 44.1 lbs / 10.0 - 20.0 kg + // 22.0 lbs / 10.0 kg NATIONAL_DEX_KAKUNA, NATIONAL_DEX_MAGIKARP, NATIONAL_DEX_SILCOON, - NATIONAL_DEX_FLORGES, + NATIONAL_DEX_FLORGES,//_RED_FLOWER, + //NATIONAL_DEX_FLORGES_YELLOW_FLOWER, + //NATIONAL_DEX_FLORGES_ORANGE_FLOWER, + //NATIONAL_DEX_FLORGES_BLUE_FLOWER, + //NATIONAL_DEX_FLORGES_WHITE_FLOWER, + // 22.3 lbs / 10.1 kg NATIONAL_DEX_PURRLOIN, + // 22.5 lbs / 10.2 kg NATIONAL_DEX_TURTWIG, NATIONAL_DEX_PAWNIARD, + NATIONAL_DEX_LECHONK, + // 22.7 lbs / 10.3 kg NATIONAL_DEX_GULPIN, + // 22.9 lbs / 10.4 kg NATIONAL_DEX_VOLTORB, + // 23.1 lbs / 10.5 kg NATIONAL_DEX_PANSAGE, NATIONAL_DEX_SWOOBAT, NATIONAL_DEX_AMOONGUSS, NATIONAL_DEX_RUFFLET, NATIONAL_DEX_CHARJABUG, + NATIONAL_DEX_CHARCADET, + // 23.8 lbs / 10.8 kg NATIONAL_DEX_LEDYBA, NATIONAL_DEX_HOUNDOUR, + // 24.0 lbs / 10.9 kg NATIONAL_DEX_FROGADIER, + NATIONAL_DEX_FIDOUGH, + //NATIONAL_DEX_WOOPER_PALDEAN, + // 24.3 lbs / 11.0 kg NATIONAL_DEX_SKITTY, NATIONAL_DEX_SABLEYE, NATIONAL_DEX_PANSEAR, NATIONAL_DEX_STUNFISK, NATIONAL_DEX_TOXEL, NATIONAL_DEX_DRAKLOAK, + NATIONAL_DEX_IRON_BUNDLE, + // 24.7 lbs / 11.2 kg NATIONAL_DEX_MEDITITE, + // 25.4 lbs / 11.5 kg NATIONAL_DEX_KABUTO, NATIONAL_DEX_AIPOM, NATIONAL_DEX_CASCOON, @@ -1235,8 +1562,13 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_CORPHISH, NATIONAL_DEX_SHIINOTIC, NATIONAL_DEX_DRIZZILE, + // 25.6 lbs / 11.6 kg NATIONAL_DEX_PATRAT, + // 26.0 lbs / 11.8 kg NATIONAL_DEX_SCRAGGY, + // 26.2 lbs / 11.9 kg + NATIONAL_DEX_DOLLIV, + // 26.5 lbs / 12.0 kg NATIONAL_DEX_SANDSHREW, NATIONAL_DEX_WIGGLYTUFF, NATIONAL_DEX_CHINCHOU, @@ -1246,40 +1578,59 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_WIMPOD, NATIONAL_DEX_ROLYCOLY, NATIONAL_DEX_KUBFU, + // 26.9 lbs / 12.2 kg + NATIONAL_DEX_FLORAGATO, + NATIONAL_DEX_MUNKIDORI, + // 27.3 lbs / 12.4 kg NATIONAL_DEX_POLIWAG, + // 27.6 lbs / 12.5 kg NATIONAL_DEX_VENOMOTH, NATIONAL_DEX_ANORITH, NATIONAL_DEX_BANETTE, NATIONAL_DEX_TIMBURR, NATIONAL_DEX_ZORUA, - NATIONAL_DEX_GOURGEIST, // Average Size + //NATIONAL_DEX_ZORUA_HISUIAN, + NATIONAL_DEX_GOURGEIST,//_AVERAGE, NATIONAL_DEX_MORGREM, + // 28.7 lbs / 13.0 kg NATIONAL_DEX_IVYSAUR, - //NATIONAL_DEX_VOLTORB, //Hisuian Form - //NATIONAL_DEX_BANETTE, // Mega + //NATIONAL_DEX_VOLTORB_HISUIAN, + //NATIONAL_DEX_BANETTE_MEGA, NATIONAL_DEX_MIME_JR, NATIONAL_DEX_LAMPENT, - //NATIONAL_DEX_TOGEDEMARU, // Totem-sized + //NATIONAL_DEX_TOGEDEMARU_TOTEM_SIZED, NATIONAL_DEX_BLACEPHALON, NATIONAL_DEX_APPLETUN, + // 29.3 lbs / 13.3 kg NATIONAL_DEX_FLAAFFY, + // 29.8 lbs / 13.5 kg NATIONAL_DEX_PANPOUR, NATIONAL_DEX_LITLEO, NATIONAL_DEX_YAMPER, + // 30.0 lbs / 13.6 kg NATIONAL_DEX_POOCHYENA, + // 30.9 lbs / 14.0 kg NATIONAL_DEX_DUNSPARCE, NATIONAL_DEX_WYNAUT, NATIONAL_DEX_SIGILYPH, - //NATIONAL_DEX_GOURGEIST, // Large Size + //NATIONAL_DEX_GOURGEIST_LARGE, NATIONAL_DEX_THWACKEY, + // 31.3 lbs / 14.2 kg NATIONAL_DEX_GUMSHOOS, + // 31.5 lbs / 14.3 kg NATIONAL_DEX_GALVANTULA, + // 32.0 lbs / 14.5 kg NATIONAL_DEX_ROSERADE, NATIONAL_DEX_DWEBBLE, NATIONAL_DEX_BRAIXEN, NATIONAL_DEX_TOXAPEX, + // 32.4 lbs / 14.7 kg NATIONAL_DEX_HERDIER, + // 32.6 lbs / 14.8 kg NATIONAL_DEX_TRUMBEAK, + // 32.8 lbs / 14.9 kg + NATIONAL_DEX_DACHSBUN, + // 33.1 lbs / 15.0 kg NATIONAL_DEX_FARFETCHD, NATIONAL_DEX_GOLDEEN, NATIONAL_DEX_XATU, @@ -1288,147 +1639,242 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_DRIFBLIM, NATIONAL_DEX_BONSLY, NATIONAL_DEX_TRANQUILL, - //NATIONAL_DEX_PUMPKABOO, // Super Size + //NATIONAL_DEX_PUMPKABOO_SUPER, + NATIONAL_DEX_SCOVILLAIN, + NATIONAL_DEX_HOUNDSTONE, + // 33.5 lbs / 15.2 kg NATIONAL_DEX_ELECTRIKE, NATIONAL_DEX_SANDILE, + // 33.7 lbs / 15.3 kg NATIONAL_DEX_VIBRAVA, + // 34.2 lbs / 15.5 kg NATIONAL_DEX_VICTREEBEL, NATIONAL_DEX_STARAVIA, NATIONAL_DEX_AROMATISSE, + // 34.8 lbs / 15.8 kg NATIONAL_DEX_BAYLEEF, - //NATIONAL_DEX_WEEZING, // Galarian Form + // 35.3 lbs / 16.0 kg + //NATIONAL_DEX_WEEZING_GALARIAN, NATIONAL_DEX_DELIBIRD, NATIONAL_DEX_SERVINE, NATIONAL_DEX_FLETCHINDER, NATIONAL_DEX_DARTRIX, NATIONAL_DEX_CORVISQUIRE, + NATIONAL_DEX_NACLI, + NATIONAL_DEX_MASCHIFF, + // 35.9 lbs / 16.3 kg NATIONAL_DEX_WHISMUR, NATIONAL_DEX_LILLIGANT, + // 36.4 lbs / 16.5 kg NATIONAL_DEX_DRAGONAIR, NATIONAL_DEX_TIRTOUGA, + NATIONAL_DEX_SPIDOPS, + // 37.0 lbs / 16.8 kg NATIONAL_DEX_SNORUNT, + // 37.5 lbs / 17.0 kg NATIONAL_DEX_PALPITOAD, - NATIONAL_DEX_VIVILLON, + NATIONAL_DEX_VIVILLON,//_ICY_SNOW, + //NATIONAL_DEX_VIVILLON_POLAR, + //NATIONAL_DEX_VIVILLON_TUNDRA, + //NATIONAL_DEX_VIVILLON_CONTINENTAL, + //NATIONAL_DEX_VIVILLON_GARDEN, + //NATIONAL_DEX_VIVILLON_ELEGANT, + //NATIONAL_DEX_VIVILLON_MEADOW, + //NATIONAL_DEX_VIVILLON_MODERN, + //NATIONAL_DEX_VIVILLON_MARINE, + //NATIONAL_DEX_VIVILLON_ARCHIPELAGO, + //NATIONAL_DEX_VIVILLON_HIGH_PLAINS, + //NATIONAL_DEX_VIVILLON_SANDSTORM, + //NATIONAL_DEX_VIVILLON_RIVER, + //NATIONAL_DEX_VIVILLON_MONSOON, + //NATIONAL_DEX_VIVILLON_SAVANNA, + //NATIONAL_DEX_VIVILLON_SUN, + //NATIONAL_DEX_VIVILLON_OCEAN, + //NATIONAL_DEX_VIVILLON_JUNGLE, + //NATIONAL_DEX_VIVILLON_FANCY, + //NATIONAL_DEX_VIVILLON_POKE_BALL, + NATIONAL_DEX_FRIGIBAX, + // 38.1 lbs / 17.3 kg NATIONAL_DEX_DEINO, + // 38.6 lbs / 17.5 kg NATIONAL_DEX_ZIGZAGOON, - //NATIONAL_DEX_ZIGZAGOON, // Galarian Form + //NATIONAL_DEX_ZIGZAGOON_GALARIAN, NATIONAL_DEX_SLIGGOO, NATIONAL_DEX_BRIONNE, + NATIONAL_DEX_LOKIX, + // 39.0 lbs / 17.7 kg NATIONAL_DEX_VOLBEAT, NATIONAL_DEX_ILLUMISE, + // 39.7 lbs / 18.0 kg NATIONAL_DEX_ROGGENROLA, - NATIONAL_DEX_BASCULIN, // Red-Striped Form - //NATIONAL_DEX_BASCULIN, // Blue-Striped Form + NATIONAL_DEX_BASCULIN,//_RED_STRIPED, + //NATIONAL_DEX_BASCULIN_BLUE_STRIPED, + //NATIONAL_DEX_BASCULIN_WHITE_STRIPED, NATIONAL_DEX_GOTHORITA, NATIONAL_DEX_AXEW, NATIONAL_DEX_CRAMORANT, + // 40.8 lbs / 18.5 kg NATIONAL_DEX_RATICATE, NATIONAL_DEX_LURANTIS, + // 41.0 lbs / 18.6 kg NATIONAL_DEX_VILEPLUME, NATIONAL_DEX_TAPU_LELE, + // 41.4 lbs / 18.8 kg NATIONAL_DEX_FERROSEED, + // 41.9 lbs / 19.0 kg NATIONAL_DEX_CHARMELEON, NATIONAL_DEX_GROWLITHE, NATIONAL_DEX_QUILAVA, NATIONAL_DEX_BRUXISH, + // 42.3 lbs / 19.2 kg NATIONAL_DEX_STUNKY, - //NATIONAL_DEX_LILLIGANT, // Hisuian Form + //NATIONAL_DEX_LILLIGANT_HISUIAN, + // 43.0 lbs / 19.5 kg NATIONAL_DEX_NIDORINO, NATIONAL_DEX_ABRA, NATIONAL_DEX_MACHOP, NATIONAL_DEX_COMBUSKEN, - NATIONAL_DEX_DEERLING, + NATIONAL_DEX_DEERLING,//_SPRING, + //NATIONAL_DEX_DEERLING_SUMMER, + //NATIONAL_DEX_DEERLING_AUTUMN, + //NATIONAL_DEX_DEERLING_WINTER, NATIONAL_DEX_DOTTLER, + // 43.2 lbs / 19.6 kg NATIONAL_DEX_PSYDUCK, + // 43.7 lbs / 19.8 kg NATIONAL_DEX_SWELLOW, + // 43.9 lbs / 19.9 kg NATIONAL_DEX_NINETALES, - //NATIONAL_DEX_NINETALES, // Alolan Form + //NATIONAL_DEX_NINETALES_ALOLAN, NATIONAL_DEX_KOMALA, + NATIONAL_DEX_THIEVUL, + // 44.1 lbs / 20.0 kg NATIONAL_DEX_NIDORINA, NATIONAL_DEX_POLIWHIRL, NATIONAL_DEX_GEODUDE, NATIONAL_DEX_BIDOOF, NATIONAL_DEX_MIENFOO, - // 44.3 - 54.9 lbs / 20.1 - 24.9 kg + // 44.3 lbs / 20.1 kg NATIONAL_DEX_REUNICLUS, + // 44.5 lbs / 20.2 kg NATIONAL_DEX_KIRLIA, NATIONAL_DEX_RIOLU, - //NATIONAL_DEX_GEODUDE, // Alolan Form + // 44.8 lbs / 20.3 kg + //NATIONAL_DEX_GEODUDE_ALOLAN, NATIONAL_DEX_AMBIPOM, + // 45.2 lbs / 20.5 kg NATIONAL_DEX_SHUCKLE, NATIONAL_DEX_GIBLE, NATIONAL_DEX_LEAVANNY, NATIONAL_DEX_TAPU_KOKO, - //NATIONAL_DEX_STUNFISK, // Galarian Form + //NATIONAL_DEX_STUNFISK_GALARIAN, + // 45.4 lbs / 20.6 kg NATIONAL_DEX_ALTARIA, - //NATIONAL_DEX_ALTARIA, // Mega + //NATIONAL_DEX_ALTARIA_MEGA, + // 45.9 lbs / 20.8 kg NATIONAL_DEX_CARVANHA, + // 46.3 lbs / 21.0 kg NATIONAL_DEX_TYROGUE, NATIONAL_DEX_KLINK, NATIONAL_DEX_HELIOLISK, - //NATIONAL_DEX_RAICHU, // Alolan Form + //NATIONAL_DEX_RAICHU_ALOLAN, + NATIONAL_DEX_BRUTE_BONNET, + // 46.7 lbs / 21.2 kg NATIONAL_DEX_HOOTHOOT, NATIONAL_DEX_TAPU_FINI, + // 47.2 lbs / 21.4 kg NATIONAL_DEX_MAGBY, NATIONAL_DEX_TSAREENA, + // 47.4 lbs / 21.5 kg NATIONAL_DEX_BALTOY, NATIONAL_DEX_HAWLUCHA, + NATIONAL_DEX_QUAXWELL, + // 47.6 lbs / 21.6 kg NATIONAL_DEX_GROVYLE, + // 48.5 lbs / 22.0 kg NATIONAL_DEX_KECLEON, NATIONAL_DEX_MONFERNO, NATIONAL_DEX_EELEKTRIK, + // 48.9 lbs / 22.2 kg NATIONAL_DEX_SALAZZLE, NATIONAL_DEX_MARSHADOW, + // 49.6 lbs / 22.5 kg NATIONAL_DEX_WARTORTLE, NATIONAL_DEX_LANTURN, + // 49.8 lbs / 22.6 kg NATIONAL_DEX_GOREBYSS, - //NATIONAL_DEX_GROWLITHE, //Hisuian Form + // 50.0 lbs / 22.7 kg + //NATIONAL_DEX_GROWLITHE_HISUIAN, + // 50.7 lbs / 23.0 kg NATIONAL_DEX_PRINPLUP, NATIONAL_DEX_CROAGUNK, + // 51.4 lbs / 23.3 kg NATIONAL_DEX_MOTHIM, NATIONAL_DEX_MUNNA, + // 51.6 lbs / 23.4 kg NATIONAL_DEX_RELICANTH, + // 51.8 lbs / 23.5 kg NATIONAL_DEX_ELEKID, - //NATIONAL_DEX_MAWILE, // Mega + //NATIONAL_DEX_MAWILE_MEGA, NATIONAL_DEX_SYLVEON, + // 52.0 lbs / 23.6 kg NATIONAL_DEX_WHISCASH, + // 52.5 lbs / 23.8 kg NATIONAL_DEX_LILEEP, - //NATIONAL_DEX_PONYTA, // Galarian Form + // 52.9 lbs / 24.0 kg + //NATIONAL_DEX_PONYTA_GALARIAN, NATIONAL_DEX_SLAKOTH, NATIONAL_DEX_NUMEL, NATIONAL_DEX_LUMINEON, + // 53.4 lbs / 24.2 kg NATIONAL_DEX_SWANNA, + // 53.8 lbs / 24.4 kg NATIONAL_DEX_HAPPINY, + // 54.0 lbs / 24.5 kg NATIONAL_DEX_JOLTEON, NATIONAL_DEX_DEWOTT, NATIONAL_DEX_TALONFLAME, + // 54.9 lbs / 24.9 kg NATIONAL_DEX_STARAPTOR, - // 55.1 - 110.0 lbs / 25.0 - 49.9 kg + // 55.1 lbs / 25.0 kg NATIONAL_DEX_SEADRA, NATIONAL_DEX_FLAREON, NATIONAL_DEX_CROCONAW, NATIONAL_DEX_TORRACAT, - NATIONAL_DEX_LYCANROC, // Midday Form - //NATIONAL_DEX_LYCANROC, // Midnight Form - //NATIONAL_DEX_LYCANROC, // Dusk Form + NATIONAL_DEX_LYCANROC,//_MIDDAY, + //NATIONAL_DEX_LYCANROC_MIDNIGHT, + //NATIONAL_DEX_LYCANROC_DUSK, NATIONAL_DEX_PHEROMOSA, + // 55.6 lbs / 25.2 kg NATIONAL_DEX_AMAURA, + // 55.8 lbs / 25.3 kg NATIONAL_DEX_ACCELGOR, + // 56.2 lbs / 25.5 kg NATIONAL_DEX_KRICKETUNE, NATIONAL_DEX_LEAFEON, - //NATIONAL_DEX_RATICATE, // Alolan Form + //NATIONAL_DEX_RATICATE_ALOLAN, + // 57.1 lbs / 25.5 kg NATIONAL_DEX_GLACEON, + // 57.3 lbs / 26.0 kg NATIONAL_DEX_TYRUNT, NATIONAL_DEX_TOUCANNON, + // 58.4 lbs / 26.5 kg NATIONAL_DEX_ESPEON, + // 58.6 lbs / 26.6 kg NATIONAL_DEX_FROSLASS, + // 59.5 lbs / 27.0 kg NATIONAL_DEX_UMBREON, - //NATIONAL_DEX_SNEASEL, //Hisuian Form + //NATIONAL_DEX_SNEASEL_HISUIAN, NATIONAL_DEX_HUNTAIL, NATIONAL_DEX_CARNIVINE, NATIONAL_DEX_WATCHOG, + // 60.0 lbs / 27.2 kg + NATIONAL_DEX_GRAFAIAI, + // 60.2 lbs / 27.3 kg NATIONAL_DEX_HONCHKROW, - //NATIONAL_DEX_DIANCIE, // Mega + // 61.3 lbs / 27.8 kg + //NATIONAL_DEX_DIANCIE_MEGA, + // 61.7 lbs / 28.0 kg NATIONAL_DEX_MANKEY, NATIONAL_DEX_SNEASEL, NATIONAL_DEX_MARSHTOMP, @@ -1436,27 +1882,47 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_PELIPPER, NATIONAL_DEX_SIMISEAR, NATIONAL_DEX_MARACTUS, - NATIONAL_DEX_FURFROU, + NATIONAL_DEX_FURFROU,//_NATURAL, + //NATIONAL_DEX_FURFROU_HEART_TRIM, + //NATIONAL_DEX_FURFROU_STAR_TRIM, + //NATIONAL_DEX_FURFROU_DIAMOND_TRIM, + //NATIONAL_DEX_FURFROU_DEBUTANTE_TRIM, + //NATIONAL_DEX_FURFROU_MATRON_TRIM, + //NATIONAL_DEX_FURFROU_DANDY_TRIM, + //NATIONAL_DEX_FURFROU_LA_REINE_TRIM, + //NATIONAL_DEX_FURFROU_KABUKI_TRIM, + //NATIONAL_DEX_FURFROU_PHARAOH_TRIM, NATIONAL_DEX_PERRSERKER, - NATIONAL_DEX_INDEEDEE, - //NATIONAL_DEX_LOPUNNY, // Mega + NATIONAL_DEX_INDEEDEE,//_MALE, + //NATIONAL_DEX_INDEEDEE_FEMALE, + // 62.4 lbs / 28.3 kg + //NATIONAL_DEX_LOPUNNY_MEGA, + // 62.6 lbs / 28.4 kg NATIONAL_DEX_BEAUTIFLY, + // 62.8 lbs / 28.5 kg NATIONAL_DEX_AZUMARILL, NATIONAL_DEX_WOBBUFFET, NATIONAL_DEX_OCTILLERY, + // 63.5 lbs / 28.8 kg NATIONAL_DEX_LARVESTA, + // 63.9 lbs / 29.0 kg NATIONAL_DEX_VAPOREON, NATIONAL_DEX_SIMIPOUR, NATIONAL_DEX_UNFEZANT, NATIONAL_DEX_QUILLADIN, + // 65.0 lbs / 29.5 kg NATIONAL_DEX_BEEDRILL, NATIONAL_DEX_SANDSLASH, NATIONAL_DEX_PARASECT, NATIONAL_DEX_BUIZEL, + // 65.5 lbs / 29.7 kg NATIONAL_DEX_JANGMO_O, + // 65.7 lbs / 29.8 kg NATIONAL_DEX_BLITZLE, - NATIONAL_DEX_GASTRODON, // West Sea - //NATIONAL_DEX_GASTRODON, // East Sea + // 65.9 lbs / 29.9 kg + NATIONAL_DEX_GASTRODON,//_WEST_SEA, + //NATIONAL_DEX_GASTRODON_EAST_SEA, + // 66.1 lbs / 30.0 kg NATIONAL_DEX_PIDGEOTTO, NATIONAL_DEX_RAICHU, NATIONAL_DEX_VENONAT, @@ -1466,533 +1932,981 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_ELECTABUZZ, NATIONAL_DEX_SCRAFTY, NATIONAL_DEX_BARRASKEWDA, + NATIONAL_DEX_ARCTIBAX, + NATIONAL_DEX_GHOLDENGO, + // 66.4 lbs / 30.1 kg + NATIONAL_DEX_FEZANDIPITI, + // 67.2 lbs / 30.5 kg NATIONAL_DEX_LUXIO, NATIONAL_DEX_SIMISAGE, + // 67.5 lbs / 30.6 kg NATIONAL_DEX_SPOINK, NATIONAL_DEX_DUSCLOPS, + // 67.7 lbs / 30.7 kg + NATIONAL_DEX_CROCALOR, + // 68.3 lbs / 31.0 kg NATIONAL_DEX_AUDINO, NATIONAL_DEX_TRUBBISH, NATIONAL_DEX_SKIDDO, NATIONAL_DEX_BINACLE, + // 68.8 lbs / 31.2 kg + NATIONAL_DEX_MEOWSCARADA, + // 69.4 lbs / 31.5 kg NATIONAL_DEX_MEDICHAM, NATIONAL_DEX_BIBAREL, NATIONAL_DEX_CRANIDOS, + // 69.7 lbs / 31.6 kg NATIONAL_DEX_DUSTOX, NATIONAL_DEX_ALOMOMOLA, + // 70.5 lbs / 32.0 kg NATIONAL_DEX_BUTTERFREE, NATIONAL_DEX_PERSIAN, NATIONAL_DEX_PRIMEAPE, - //NATIONAL_DEX_AUDINO, // Mega + //NATIONAL_DEX_AUDINO_MEGA, NATIONAL_DEX_ARCHEOPS, + // 71.4 lbs / 32.4 kg NATIONAL_DEX_DROWZEE, + // 71.7 lbs / 32.5 kg NATIONAL_DEX_FURRET, NATIONAL_DEX_PORYGON2, NATIONAL_DEX_LINOONE, - //NATIONAL_DEX_LINOONE, // Galarian Form + //NATIONAL_DEX_LINOONE_GALARIAN, NATIONAL_DEX_LOMBRE, + // 71.9 lbs / 32.6 kg NATIONAL_DEX_DELCATTY, + // 72.3 lbs / 32.8 kg NATIONAL_DEX_CRAWDAUNT, - //NATIONAL_DEX_MEWTWO, // Mega Y + // 72.8 lbs / 33.0 kg + //NATIONAL_DEX_MEWTWO_MEGA_Y, NATIONAL_DEX_ESCAVALIER, NATIONAL_DEX_FRILLISH, NATIONAL_DEX_DURANT, NATIONAL_DEX_CINDERACE, - //NATIONAL_DEX_PERSIAN, // Alolan Form + //NATIONAL_DEX_PERSIAN_ALOLAN, + NATIONAL_DEX_TOEDSCOOL, + // 73.4 lbs / 33.3 kg NATIONAL_DEX_DUGTRIO, NATIONAL_DEX_LOPUNNY, + // 73.6 lbs / 33.4 kg NATIONAL_DEX_KROKOROK, + // 73.9 lbs / 33.5 kg NATIONAL_DEX_ARIADOS, NATIONAL_DEX_PHANPY, NATIONAL_DEX_FLOATZEL, - //NATIONAL_DEX_ZYGARDE, // 10% Forme + //NATIONAL_DEX_ZYGARDE_10, + //NATIONAL_DEX_ZYGARDE_10_POWER_CONSTRUCT, + // 74.7 lbs / 33.9 kg NATIONAL_DEX_POLITOED, - //NATIONAL_DEX_MAROWAK, // Alolan Form + // 75.0 lbs / 34.0 kg + //NATIONAL_DEX_MAROWAK_ALOLAN, NATIONAL_DEX_WEAVILE, NATIONAL_DEX_PORYGON_Z, NATIONAL_DEX_BOLTUND, + // 75.6 lbs / 34.3 kg NATIONAL_DEX_CHANDELURE, + // 76.1 lbs / 34.5 kg NATIONAL_DEX_STARYU, NATIONAL_DEX_BEHEEYEM, + // 76.3 lbs / 34.6 kg NATIONAL_DEX_CHANSEY, + // 77.2 lbs / 35.0 kg NATIONAL_DEX_TANGELA, NATIONAL_DEX_OMASTAR, NATIONAL_DEX_SLUGMA, NATIONAL_DEX_HOUNDOOM, + NATIONAL_DEX_VAROOM, + NATIONAL_DEX_GREAVARD, + NATIONAL_DEX_IRON_VALIANT, + // 77.8 lbs / 35.3 kg NATIONAL_DEX_CLAWITZER, + // 78.3 lbs / 35.5 kg NATIONAL_DEX_MIENSHAO, + // 78.5 lbs / 35.6 kg NATIONAL_DEX_LEDIAN, + // 79.4 lbs / 36.0 kg NATIONAL_DEX_SLOWPOKE, - //NATIONAL_DEX_SLOWPOKE, // Galarian Form + //NATIONAL_DEX_SLOWPOKE_GALARIAN, NATIONAL_DEX_FRAXURE, + NATIONAL_DEX_IRON_MOTH, + // 80.5 lbs / 36.5 kg NATIONAL_DEX_PORYGON, + // 80.7 lbs / 36.6 kg NATIONAL_DEX_DECIDUEYE, + // 81.6 lbs / 37.0 kg NATIONAL_DEX_MIGHTYENA, - //NATIONAL_DEX_DECIDUEYE, //Hisuian Form + //NATIONAL_DEX_DECIDUEYE_HISUIAN, + NATIONAL_DEX_FLAMIGO, + // 82.7 lbs / 37.5 kg NATIONAL_DEX_LIEPARD, NATIONAL_DEX_DARUMAKA, + // 83.8 lbs / 38.0 kg NATIONAL_DEX_FEAROW, NATIONAL_DEX_SUDOWOODO, NATIONAL_DEX_YANMA, NATIONAL_DEX_SKUNTANK, NATIONAL_DEX_TOGEKISS, + // 84.9 lbs / 38.5 kg NATIONAL_DEX_VESPIQUEN, + // 85.1 lbs / 38.6 kg + NATIONAL_DEX_KILOWATTREL, + // 86.0 lbs / 39.0 kg NATIONAL_DEX_SEAKING, NATIONAL_DEX_DELPHOX, - //NATIONAL_DEX_GOURGEIST, // Super Size + //NATIONAL_DEX_GOURGEIST_SUPER, NATIONAL_DEX_GRAPPLOCT, + // 86.4 lbs / 39.2 kg NATIONAL_DEX_DODUO, NATIONAL_DEX_BRELOOM, + NATIONAL_DEX_DUDUNSPARCE,//_TWO_SEGMENT, + // 87.1 lbs / 39.5 kg NATIONAL_DEX_PIDGEOT, NATIONAL_DEX_SPHEAL, NATIONAL_DEX_MANDIBUZZ, - //NATIONAL_DEX_SANDSHREW, // Alolan Form + // 87.7 lbs / 39.8 kg + NATIONAL_DEX_OGERPON, + // 88.2 lbs / 40.0 kg + //NATIONAL_DEX_SANDSHREW_ALOLAN, NATIONAL_DEX_CLEFABLE, NATIONAL_DEX_LATIAS, NATIONAL_DEX_GURDURR, - //NATIONAL_DEX_DARUMAKA, // Galarian Form + //NATIONAL_DEX_DARUMAKA_GALARIAN, NATIONAL_DEX_GRENINJA, - //NATIONAL_DEX_GRENINJA, // Ash-Greninja - NATIONAL_DEX_MINIOR, // Meteor Form - NATIONAL_DEX_TOXTRICITY, + //NATIONAL_DEX_GRENINJA_ASH, + //NATIONAL_DEX_MINIOR_METEOR, + //NATIONAL_DEX_MINIOR_METEOR_RED, + //NATIONAL_DEX_MINIOR_METEOR_ORANGE, + //NATIONAL_DEX_MINIOR_METEOR_YELLOW, + //NATIONAL_DEX_MINIOR_METEOR_GREEN, + //NATIONAL_DEX_MINIOR_METEOR_BLUE, + //NATIONAL_DEX_MINIOR_METEOR_INDIGO, + //NATIONAL_DEX_MINIOR_METEOR_VIOLET, + NATIONAL_DEX_TOXTRICITY,//_AMPED, + //NATIONAL_DEX_TOXTRICITY_LOW_KEY, NATIONAL_DEX_DURALUDON, + // 88.6 lbs / 40.2 kg NATIONAL_DEX_MANECTRIC, + // 88.8 lbs / 40.3 kg NATIONAL_DEX_ZANGOOSE, + // 89.1 lbs / 40.4 kg NATIONAL_DEX_EXCADRILL, - //NATIONAL_DEX_BEEDRILL, // Mega + // 89.3 lbs / 40.5 kg + //NATIONAL_DEX_BEEDRILL_MEGA, NATIONAL_DEX_GENGAR, NATIONAL_DEX_KABUTOPS, NATIONAL_DEX_LOUDRED, + // 89.5 lbs / 40.6 kg NATIONAL_DEX_JYNX, + // 89.9 lbs / 40.8 kg NATIONAL_DEX_NOCTOWL, NATIONAL_DEX_ORBEETLE, + // 90.4 lbs / 41.0 kg NATIONAL_DEX_VANILLISH, NATIONAL_DEX_BRAVIARY, + NATIONAL_DEX_PAWMOT, + // 91.5 lbs / 41.5 kg NATIONAL_DEX_GIRAFARIG, - //NATIONAL_DEX_FARFETCHD, // Galarian Form - //NATIONAL_DEX_GRIMER, // Alolan Form + // 92.6 lbs / 42.0 kg + //NATIONAL_DEX_FARFETCHD_GALARIAN, + //NATIONAL_DEX_GRIMER_ALOLAN, NATIONAL_DEX_LUXRAY, NATIONAL_DEX_FROSMOTH, + // 92.8 lbs / 42.1 kg NATIONAL_DEX_BAGON, + // 93.5 lbs / 42.4 kg NATIONAL_DEX_DIGGERSBY, + // 93.7 lbs / 42.5 kg NATIONAL_DEX_GLISCOR, + // 94.6 lbs / 42.9 kg + NATIONAL_DEX_BOMBIRDIER, + // 94.8 lbs / 43.0 kg NATIONAL_DEX_DUBWOOL, NATIONAL_DEX_SNEASLER, - //NATIONAL_DEX_BRAVIARY, //Hisuian Form + // 95.7 lbs / 43.4 kg + //NATIONAL_DEX_BRAVIARY_HISUIAN, + // 96.6 lbs / 43.8 kg NATIONAL_DEX_PURUGLY, - //NATIONAL_DEX_MANECTRIC, // Mega + // 97.0 lbs / 44.0 kg + //NATIONAL_DEX_MANECTRIC_MEGA, NATIONAL_DEX_GOTHITELLE, NATIONAL_DEX_PRIMARINA, + // 97.9 lbs / 44.4 kg NATIONAL_DEX_TOXICROAK, + // 98.1 lbs / 44.5 kg NATIONAL_DEX_MAGMAR, NATIONAL_DEX_ZERAORA, NATIONAL_DEX_SPECTRIER, + // 99.2 lbs / 45.0 kg NATIONAL_DEX_MAROWAK, NATIONAL_DEX_VIKAVOLT, + NATIONAL_DEX_GLIMMORA, + NATIONAL_DEX_CETODDLE, + // 99.6 lbs / 45.2 kg NATIONAL_DEX_INTELEON, + // 100.3 lbs / 45.5 kg NATIONAL_DEX_TENTACOOL, NATIONAL_DEX_TAPU_BULU, + // 101.4 lbs / 46.0 kg NATIONAL_DEX_VOLCARONA, NATIONAL_DEX_OBSTAGOON, + // 102.5 lbs / 46.5 kg NATIONAL_DEX_VIGOROTH, + // 103.2 lbs / 46.8 kg NATIONAL_DEX_BLISSEY, + // 103.2 lbs / 46.8 kg NATIONAL_DEX_ABSOL, NATIONAL_DEX_MALAMAR, NATIONAL_DEX_HAKAMO_O, + // 104.5 lbs / 47.4 kg + //NATIONAL_DEX_DUDUNSPARCE_THREE_SEGMENT, + // 105.8 lbs / 48.0 kg NATIONAL_DEX_ALAKAZAM, NATIONAL_DEX_HITMONTOP, - NATIONAL_DEX_ENAMORUS, + NATIONAL_DEX_ENAMORUS,//_INCARNATE, + //NATIONAL_DEX_ENAMORUS_THERIAN, + // 106.3 lbs / 48.2 kg + NATIONAL_DEX_ARBOLIVA, + // 106.7 lbs / 48.4 kg NATIONAL_DEX_GARDEVOIR, - NATIONAL_DEX_KELDEO, + // 106.9 lbs / 48.5 kg + NATIONAL_DEX_KELDEO,//_ORDINARY, + //NATIONAL_DEX_KELDEO_RESOLUTE, + // 107.4 lbs / 48.7 kg NATIONAL_DEX_GRANBULL, - //NATIONAL_DEX_ABSOL, // Mega - //NATIONAL_DEX_HOUNDOOM, // Mega + // 108.0 lbs / 49.0 kg + //NATIONAL_DEX_ABSOL_MEGA, + // 109.1 lbs / 49.5 kg + //NATIONAL_DEX_HOUNDOOM_MEGA, NATIONAL_DEX_HIPPOPOTAS, + // 109.8 lbs / 49.8 kg NATIONAL_DEX_HITMONLEE, - // 110.2 - 132.1 lbs / 50.0 - 59.9 kg + // 110.2 lbs / 50.0 kg NATIONAL_DEX_ZWEILOUS, NATIONAL_DEX_DRAGAPULT, + // 110.7 lbs / 50.2 kg NATIONAL_DEX_HITMONCHAN, - //NATIONAL_DEX_PIDGEOT, // Mega + // 111.3 lbs / 50.5 kg + //NATIONAL_DEX_PIDGEOT_MEGA, NATIONAL_DEX_SKARMORY, NATIONAL_DEX_SNOVER, NATIONAL_DEX_DARKRAI, - //NATIONAL_DEX_ARTICUNO, // Galarian Form + // 112.2 lbs / 50.9 kg + //NATIONAL_DEX_ARTICUNO_GALARIAN, + // 112.4 lbs / 51.0 kg NATIONAL_DEX_SAWK, NATIONAL_DEX_KLANG, + // 113.1 lbs / 51.3 kg NATIONAL_DEX_CACNEA, + // 113.5 lbs / 51.5 kg NATIONAL_DEX_YANMEGA, - //NATIONAL_DEX_MUK, // Alolan Form + // 114.6 lbs / 52.0 kg + //NATIONAL_DEX_MUK_ALOLAN, NATIONAL_DEX_BLAZIKEN, - //NATIONAL_DEX_LATIAS, // Mega + //NATIONAL_DEX_LATIAS_MEGA, NATIONAL_DEX_GALLADE, + // 115.1 lbs / 52.2 kg NATIONAL_DEX_SCEPTILE, + // 115.7 lbs / 52.5 kg NATIONAL_DEX_SEVIPER, NATIONAL_DEX_CLAMPERL, + // 116.0 lbs / 52.6 kg NATIONAL_DEX_ZAPDOS, - NATIONAL_DEX_AEGISLASH, - //NATIONAL_DEX_CALYREX, // Shadow Rider + // 116.8 lbs / 53.0 kg + NATIONAL_DEX_AEGISLASH,//_SHIELD, + //NATIONAL_DEX_AEGISLASH_BLADE, + // 118.2 lbs / 53.6 kg + //NATIONAL_DEX_CALYREX_SHADOW_RIDER, + // 119.0 lbs / 54.0 kg NATIONAL_DEX_POLIWRATH, NATIONAL_DEX_HERACROSS, NATIONAL_DEX_LUCARIO, + // 120.2 lbs / 54.5 kg NATIONAL_DEX_MR_MIME, - //NATIONAL_DEX_SANDSLASH, // Alolan Form + // 121.3 lbs / 55.0 kg + //NATIONAL_DEX_SANDSLASH_ALOLAN, NATIONAL_DEX_GOLBAT, NATIONAL_DEX_TENTACRUEL, NATIONAL_DEX_PINSIR, NATIONAL_DEX_MAGCARGO, NATIONAL_DEX_LUDICOLO, NATIONAL_DEX_INFERNAPE, - //NATIONAL_DEX_SCEPTILE, // Mega + // 121.7 lbs / 55.2 kg + //NATIONAL_DEX_SCEPTILE_MEGA, + // 122.1 lbs / 55.4 kg NATIONAL_DEX_ARTICUNO, + // 122.4 lbs / 55.5 kg NATIONAL_DEX_PIGNITE, NATIONAL_DEX_THROH, NATIONAL_DEX_NIHILEGO, + // 123.0 lbs / 55.8 kg NATIONAL_DEX_PILOSWINE, + // 123.5 lbs / 56.0 kg NATIONAL_DEX_SCYTHER, NATIONAL_DEX_GABITE, - //NATIONAL_DEX_GALLADE, // Mega + NATIONAL_DEX_ANNIHILAPE, + // 124.3 lbs / 56.4 kg + //NATIONAL_DEX_GALLADE_MEGA, + // 124.6 lbs / 56.5 kg NATIONAL_DEX_KADABRA, - //NATIONAL_DEX_MR_MIME, // Galarian Form + // 125.2 lbs / 56.8 kg + //NATIONAL_DEX_MR_MIME_GALARIAN, + // 125.7 lbs / 57.0 kg NATIONAL_DEX_SHIELDON, - //NATIONAL_DEX_LUCARIO, // Mega + // 126.8 lbs / 57.5 kg + //NATIONAL_DEX_LUCARIO_MEGA, NATIONAL_DEX_VANILLUXE, + // 127.9 lbs / 58.0 kg NATIONAL_DEX_SMEARGLE, NATIONAL_DEX_HEATMOR, - //NATIONAL_DEX_LURANTIS, // Totem-sized - //NATIONAL_DEX_ZAPDOS, // Galarian Form - //NATIONAL_DEX_SAMUROTT, // Hisuian Form + //NATIONAL_DEX_LURANTIS_TOTEM_SIZED, + NATIONAL_DEX_TOEDSCRUEL, + // 128.3 lbs / 58.2 kg + //NATIONAL_DEX_ZAPDOS_GALARIAN, + //NATIONAL_DEX_SAMUROTT_HISUIAN, NATIONAL_DEX_MR_RIME, + // 129.0 lbs / 58.5 kg NATIONAL_DEX_WHIRLIPEDE, - //NATIONAL_DEX_PINSIR, // Mega + // 130.1 lbs / 59.0 kg + //NATIONAL_DEX_PINSIR_MEGA, NATIONAL_DEX_AERODACTYL, + // 130.3 lbs / 59.1 kg + NATIONAL_DEX_TINKATUFF, + // 131.4 lbs / 59.6 kg NATIONAL_DEX_SHIFTRY, - // 132.3 - 218.0 lbs / 60.0 - 98.9 kg + // 132.3 lbs / 60.0 kg NATIONAL_DEX_NIDOQUEEN, NATIONAL_DEX_MAGNETON, NATIONAL_DEX_KINGLER, NATIONAL_DEX_MOLTRES, NATIONAL_DEX_ARON, NATIONAL_DEX_LATIOS, - //NATIONAL_DEX_GUMSHOOS, // Totem-sized + //NATIONAL_DEX_GUMSHOOS_TOTEM_SIZED, + NATIONAL_DEX_SANDY_SHOCKS, + // 132.7 lbs / 60.2 kg + NATIONAL_DEX_FINIZEN, + NATIONAL_DEX_PALAFIN,//_ZERO, + // 133.2 lbs / 60.4 kg NATIONAL_DEX_CRADILY, + // 133.4 lbs / 60.5 kg NATIONAL_DEX_BRONZOR, NATIONAL_DEX_MUSHARNA, NATIONAL_DEX_OVERQWIL, - NATIONAL_DEX_DEOXYS, // Normal Forme - //NATIONAL_DEX_DEOXYS, // Attack Forme - //NATIONAL_DEX_DEOXYS, // Defense Forme - //NATIONAL_DEX_DEOXYS, // Speed Forme + // 134.0 lbs / 60.8 kg + NATIONAL_DEX_DEOXYS,//_NORMAL, + //NATIONAL_DEX_DEOXYS_ATTACK, + //NATIONAL_DEX_DEOXYS_DEFENSE, + //NATIONAL_DEX_DEOXYS_SPEED, + // 134.5 lbs / 61.0 kg NATIONAL_DEX_STOUTLAND, - NATIONAL_DEX_THUNDURUS, + NATIONAL_DEX_THUNDURUS,//_INCARNATE, + //NATIONAL_DEX_THUNDURUS_THERIAN, NATIONAL_DEX_GRIMMSNARL, + NATIONAL_DEX_MABOSSTIFF, + // 135.6 lbs / 61.5 kg NATIONAL_DEX_AMPHAROS, NATIONAL_DEX_DRAPION, + // 136.5 lbs / 61.9 kg + NATIONAL_DEX_QUAQUAVAL, + // 136.7 lbs / 62.0 kg NATIONAL_DEX_NIDOKING, NATIONAL_DEX_SEISMITOAD, NATIONAL_DEX_FALINKS, - //NATIONAL_DEX_HERACROSS, // Mega + NATIONAL_DEX_CERULEDGE, + // 137.8 lbs / 62.5 kg + //NATIONAL_DEX_HERACROSS_MEGA, + // 138.9 lbs / 63.0 kg NATIONAL_DEX_SERPERIOR, - NATIONAL_DEX_TORNADUS, + NATIONAL_DEX_TORNADUS,//_INCARNATE, + //NATIONAL_DEX_TORNADUS_THERIAN, + NATIONAL_DEX_CYCLIZAR, + // 142.9 lbs / 64.8 kg NATIONAL_DEX_GLIGAR, + // 143.3 lbs / 65.0 kg NATIONAL_DEX_ARBOK, NATIONAL_DEX_MANTYKE, + // 144.4 lbs / 65.5 kg NATIONAL_DEX_LICKITUNG, NATIONAL_DEX_SANDACONDA, - //NATIONAL_DEX_MOLTRES, // Galarian Form + // 145.5 lbs / 66.0 kg + //NATIONAL_DEX_MOLTRES_GALARIAN, + // 146.8 lbs / 66.6 kg NATIONAL_DEX_ELECTRODE, NATIONAL_DEX_RUNERIGUS, - //NATIONAL_DEX_DUGTRIO, // Alolan Form + //NATIONAL_DEX_DUGTRIO_ALOLAN, + // 149.9 lbs / 68.0 kg NATIONAL_DEX_MAGMORTAR, - NATIONAL_DEX_LANDORUS, + NATIONAL_DEX_LANDORUS,//_INCARNATE, + //NATIONAL_DEX_LANDORUS_THERIAN, + // 150.4 lbs / 68.2 kg NATIONAL_DEX_ARMALDO, - //NATIONAL_DEX_SLIGGOO, //Hisuian Form - //NATIONAL_DEX_TYPHLOSION, //Hisuian Form - //NATIONAL_DEX_LATIOS, // Mega + // 151.0 lbs / 68.5 kg + //NATIONAL_DEX_SLIGGOO_HISUIAN, + // 153.9 lbs / 69.8 kg + //NATIONAL_DEX_TYPHLOSION_HISUIAN, + // 154.3 lbs / 70.0 kg + //NATIONAL_DEX_LATIOS_MEGA, NATIONAL_DEX_BISHARP, NATIONAL_DEX_SANDYGAST, NATIONAL_DEX_ZARUDE, + // 155.4 lbs / 70.5 kg NATIONAL_DEX_MACHOKE, - //NATIONAL_DEX_SLOWBRO, // Galarian Form - //NATIONAL_DEX_ELECTRODE //Hisuian Form + //NATIONAL_DEX_SLOWBRO_GALARIAN, + // 156.5 lbs / 71.0 kg + //NATIONAL_DEX_ELECTRODE_HISUIAN, NATIONAL_DEX_TREVENANT, + // 157.0 lbs / 71.2 kg NATIONAL_DEX_STANTLER, + // 157.6 lbs / 71.5 kg NATIONAL_DEX_GRUMPIG, + // 158.7 lbs / 72.0 kg NATIONAL_DEX_LARVITAR, - //NATIONAL_DEX_ZOROARK, //Hisuian Form + // 160.9 lbs / 73.0 kg + //NATIONAL_DEX_ZOROARK_HISUIAN, + // 163.6 lbs / 74.2 kg + NATIONAL_DEX_WO_CHIEN, + // 165.3 lbs / 75.0 kg NATIONAL_DEX_CROBAT, NATIONAL_DEX_QUAGSIRE, NATIONAL_DEX_CORVIKNIGHT, + // 166.4 lbs / 75.5 kg NATIONAL_DEX_MILTANK, + // 166.7 lbs / 75.6 kg NATIONAL_DEX_HYPNO, + // 167.6 lbs / 76.0 kg NATIONAL_DEX_ORANGURU, + // 168.7 lbs / 76.5 kg NATIONAL_DEX_COFAGRIGUS, + // 168.9 lbs / 76.6 kg NATIONAL_DEX_GOLDUCK, + // 170.6 lbs / 77.4 kg NATIONAL_DEX_CACTURNE, + // 172.0 lbs / 78.0 kg NATIONAL_DEX_CARKOL, + // 172.4 lbs / 78.2 kg NATIONAL_DEX_KOMMO_O, + // 173.1 lbs / 78.5 kg NATIONAL_DEX_SLOWBRO, - //NATIONAL_DEX_WISHIWASHI, // School Form - //NATIONAL_DEX_AERODACTYL, // Mega + // 173.3 lbs / 78.6 kg + //NATIONAL_DEX_WISHIWASHI_SCHOOL, + // 174.2 lbs / 79.0 kg + //NATIONAL_DEX_AERODACTYL_MEGA, + NATIONAL_DEX_KLAWF, + // 175.3 lbs / 79.5 kg NATIONAL_DEX_TYPHLOSION, NATIONAL_DEX_SLOWKING, - //NATIONAL_DEX_SLOWKING, // Galarian Form + //NATIONAL_DEX_SLOWKING_GALARIAN, NATIONAL_DEX_ZEBSTRIKA, + // 176.4 lbs / 80.0 kg NATIONAL_DEX_KANGASKHAN, NATIONAL_DEX_STARMIE, NATIONAL_DEX_SWALOT, - //NATIONAL_DEX_RAPIDASH, // Galarian Form + //NATIONAL_DEX_RAPIDASH_GALARIAN, NATIONAL_DEX_TORKOAL, + // 177.5 lbs / 80.5 kg NATIONAL_DEX_EELEKTROSS, NATIONAL_DEX_MAGEARNA, - //NATIONAL_DEX_MAGEARNA, // Original Color + //NATIONAL_DEX_MAGEARNA_ORIGINAL_COLOR, + // 178.6 lbs / 81.0 kg NATIONAL_DEX_CARRACOSTA, NATIONAL_DEX_KLINKLANG, + // 178.8 lbs / 81.1 kg NATIONAL_DEX_ZOROARK, - //NATIONAL_DEX_SALAZZLE, // Totem-sized + //NATIONAL_DEX_SALAZZLE_TOTEM_SIZED, + // 179.7 lbs / 81.5 kg NATIONAL_DEX_PYROAR, NATIONAL_DEX_DRAGALGE, + // 180.6 lbs / 81.9 kg NATIONAL_DEX_SWAMPERT, + // 180.8 lbs / 82.0 kg NATIONAL_DEX_FLYGON, NATIONAL_DEX_ARAQUANID, + // 181.9 lbs / 82.5 kg NATIONAL_DEX_GENESECT, + // 182.5 lbs / 82.8 kg NATIONAL_DEX_PASSIMIAN, + // 183.0 lbs / 83.0 kg NATIONAL_DEX_INCINEROAR, + // 185.2 lbs / 84.0 kg NATIONAL_DEX_EXPLOUD, + // 186.3 lbs / 84.5 kg NATIONAL_DEX_EMPOLEON, + // 187.4 lbs / 85.0 kg + //NATIONAL_DEX_TAUROS_PALDEAN_BLAZE_BREED, NATIONAL_DEX_NOIVERN, + NATIONAL_DEX_ARMAROUGE, + // 187.8 lbs / 85.2 kg NATIONAL_DEX_DODRIO, + // 188.5 lbs / 85.5 kg NATIONAL_DEX_BLASTOISE, + // 188.7 lbs / 85.6 kg NATIONAL_DEX_CRESSELIA, + // 190.5 lbs / 86.4 kg NATIONAL_DEX_MAKUHITA, + // 191.8 lbs / 87.0 kg NATIONAL_DEX_CONKELDURR, + // 193.1 lbs / 87.6 kg NATIONAL_DEX_SEALEO, + // 194.9 lbs / 88.4 kg NATIONAL_DEX_TAUROS, + // 195.8 lbs / 88.8 kg NATIONAL_DEX_FERALIGATR, NATIONAL_DEX_SHARPEDO, - NATIONAL_DEX_EISCUE, + // 196.2 lbs / 89.0 kg + NATIONAL_DEX_EISCUE,//_ICE_FACE, + //NATIONAL_DEX_EISCUE_NOICE_FACE, NATIONAL_DEX_KLEAVOR, + // 198.4 lbs / 90.0 kg NATIONAL_DEX_SEEL, NATIONAL_DEX_CHESNAUGHT, NATIONAL_DEX_RILLABOOM, + NATIONAL_DEX_ESPATHRA, + NATIONAL_DEX_VELUZA, + // 199.5 lbs / 90.5 kg NATIONAL_DEX_CHARIZARD, - NATIONAL_DEX_RAPIDASH, + // 200.6 lbs / 91.0 kg NATIONAL_DEX_GOGOAT, + // 202.8 lbs / 92.0 kg NATIONAL_DEX_GOLETT, - NATIONAL_DEX_SAWSBUCK, - NATIONAL_DEX_DARMANITAN, + NATIONAL_DEX_SLITHER_WING, + // 203.3 lbs / 92.2 kg + NATIONAL_DEX_OKIDOGI, + // 203.9 lbs / 92.5 kg + NATIONAL_DEX_SAWSBUCK,//_SPRING, + //NATIONAL_DEX_SAWSBUCK_SUMMER, + //NATIONAL_DEX_SAWSBUCK_AUTUMN, + //NATIONAL_DEX_SAWSBUCK_WINTER, + // 204.8 lbs / 92.9 kg + NATIONAL_DEX_DARMANITAN,//_STANDARD_MODE, + //NATIONAL_DEX_DARMANITAN_ZEN_MODE, + // 208.6 lbs / 94.6 kg NATIONAL_DEX_BOUFFALANT, NATIONAL_DEX_SAMUROTT, + // 209.4 lbs / 95.0 kg NATIONAL_DEX_RAPIDASH, NATIONAL_DEX_GARCHOMP, + // 209.7 lbs / 95.1 kg NATIONAL_DEX_WYRDEER, + // 209.9 lbs / 95.2 kg NATIONAL_DEX_BELDUM, + // 211.6 lbs / 96.0 kg NATIONAL_DEX_BARBARACLE, + // 212.3 lbs / 96.3 kg NATIONAL_DEX_KROOKODILE, + // 212.8 lbs / 97.0 kg NATIONAL_DEX_NOSEPASS, NATIONAL_DEX_GROTLE, - //NATIONAL_DEX_MAROWAK, // Alolan Form, Totem-sized - // 218.3 - 220.2 lbs / 99.0 - 99.9 kg + // 214.7 lbs / 97.4 kg + //NATIONAL_DEX_PALAFIN_HERO, + // 216.1 lbs / 98.0 kg + //NATIONAL_DEX_MAROWAK_ALOLAN_TOTEM_SIZED, + // 219.4 lbs / 99.5 kg NATIONAL_DEX_BERGMITE, - // 220.5 - 225.5 lbs / 100.0 - 102.3 kg + // 220.5 lbs / 100.0 kg NATIONAL_DEX_VENUSAUR, - //NATIONAL_DEX_KANGASKHAN, // Mega + //NATIONAL_DEX_KANGASKHAN_MEGA, NATIONAL_DEX_TROPIUS, NATIONAL_DEX_XURKITREE, NATIONAL_DEX_CUFANT, - //NATIONAL_DEX_CHARIZARD, // Mega Y + // 221.6 lbs / 100.5 kg + //NATIONAL_DEX_CHARIZARD_MEGA_Y, NATIONAL_DEX_MEGANIUM, - NATIONAL_DEX_SILVALLY, - //NATIONAL_DEX_BLASTOISE, // Mega - //NATIONAL_DEX_SWAMPERT, // Mega + NATIONAL_DEX_SILVALLY,//_NORMAL, + //NATIONAL_DEX_SILVALLY_FIGHTING, + //NATIONAL_DEX_SILVALLY_FLYING, + //NATIONAL_DEX_SILVALLY_POISON, + //NATIONAL_DEX_SILVALLY_GROUND, + //NATIONAL_DEX_SILVALLY_ROCK, + //NATIONAL_DEX_SILVALLY_BUG, + //NATIONAL_DEX_SILVALLY_GHOST, + //NATIONAL_DEX_SILVALLY_STEEL, + //NATIONAL_DEX_SILVALLY_FIRE, + //NATIONAL_DEX_SILVALLY_WATER, + //NATIONAL_DEX_SILVALLY_GRASS, + //NATIONAL_DEX_SILVALLY_ELECTRIC, + //NATIONAL_DEX_SILVALLY_PSYCHIC, + //NATIONAL_DEX_SILVALLY_ICE, + //NATIONAL_DEX_SILVALLY_DRAGON, + //NATIONAL_DEX_SILVALLY_DARK, + //NATIONAL_DEX_SILVALLY_FAIRY, + // 222.9 lbs / 101.1 kg + //NATIONAL_DEX_BLASTOISE_MEGA, + // 224.9 lbs / 102.0 kg + //NATIONAL_DEX_SWAMPERT_MEGA, NATIONAL_DEX_BOLDORE, - // 225.8 - 330.5 lbs / 102.4 - 149.9 kg + // 226.0 lbs / 102.5 kg NATIONAL_DEX_RAMPARDOS, + // 226.2 lbs / 102.6 kg NATIONAL_DEX_SALAMENCE, + // 231.5 lbs / 105.0 kg NATIONAL_DEX_GRAVELER, NATIONAL_DEX_MUNCHLAX, - //NATIONAL_DEX_RATICATE, // Alolan Form, Totem-sized - NATIONAL_DEX_URSHIFU, // Single Strike Style - //NATIONAL_DEX_URSHIFU, // Rapid Strike Style + //NATIONAL_DEX_RATICATE_ALOLAN_TOTEM_SIZED, + NATIONAL_DEX_URSHIFU,//_SINGLE_STRIKE_STYLE, + //NATIONAL_DEX_URSHIFU_RAPID_STRIKE_STYLE, + NATIONAL_DEX_NACLSTACK, + // 232.6 lbs / 105.5 kg NATIONAL_DEX_HAXORUS, + // 235.0 lbs / 106.6 kg NATIONAL_DEX_DUSKNOIR, + // 236.6 lbs / 107.3 kg NATIONAL_DEX_GARBODOR, + // 238.1 lbs / 108.0 kg NATIONAL_DEX_CLAYDOL, NATIONAL_DEX_SPIRITOMB, NATIONAL_DEX_GOLISOPOD, - //NATIONAL_DEX_GRAVELER, // Alolan Form + // 242.5 lbs / 110.0 kg + //NATIONAL_DEX_GRAVELER_ALOLAN, + //NATIONAL_DEX_TAUROS_PALDEAN_AQUA_BREED, NATIONAL_DEX_FERROTHORN, NATIONAL_DEX_MUDBRAY, - NATIONAL_DEX_ZACIAN, // Hero of Many Battles - NATIONAL_DEX_BASCULEGION, - //NATIONAL_DEX_CHARIZARD, // Mega X + NATIONAL_DEX_ZACIAN,//_HERO_OF_MANY_BATTLES, + NATIONAL_DEX_BASCULEGION,//_MALE, + //NATIONAL_DEX_BASCULEGION_FEMALE, + // 243.6 lbs / 110.5 kg + //NATIONAL_DEX_CHARIZARD_MEGA_X, NATIONAL_DEX_SHELGON, - //NATIONAL_DEX_SALAMENCE, // Mega + // 244.7 lbs / 111.0 kg + NATIONAL_DEX_IRON_JUGULIS, + // 248.2 lbs / 112.6 kg + //NATIONAL_DEX_SALAMENCE_MEGA, + // 248.7 lbs / 112.8 kg + NATIONAL_DEX_TINKATON, + // 249.1 lbs / 113.0 kg + NATIONAL_DEX_BELLIBOLT, + // 253.5 lbs / 115.0 kg NATIONAL_DEX_RHYHORN, + //NATIONAL_DEX_TAUROS_PALDEAN_COMBAT_BREED, + // 254.6 lbs / 115.5 kg NATIONAL_DEX_DREDNAW, + // 257.9 lbs / 117.0 kg NATIONAL_DEX_SIRFETCHD, + // 260.1 lbs / 118.0 kg NATIONAL_DEX_SCIZOR, + // 264.6 lbs / 120.0 kg NATIONAL_DEX_DEWGONG, - //NATIONAL_DEX_SLOWBRO, // Mega + //NATIONAL_DEX_SLOWBRO_MEGA, NATIONAL_DEX_EXEGGUTOR, NATIONAL_DEX_RHYDON, NATIONAL_DEX_DONPHAN, NATIONAL_DEX_LAIRON, NATIONAL_DEX_LUNALA, NATIONAL_DEX_CENTISKORCH, - //NATIONAL_DEX_DARMANITAN, // Galarian Form + //NATIONAL_DEX_DARMANITAN_GALARIAN_STANDARD_MODE, + //NATIONAL_DEX_DARMANITAN_GALARIAN_ZEN_MODE, + NATIONAL_DEX_OINKOLOGNE,//_MALE, + //NATIONAL_DEX_OINKOLOGNE_FEMALE, + NATIONAL_DEX_REVAVROOM, + NATIONAL_DEX_KINGAMBIT, + // 265.7 lbs / 120.5 kg NATIONAL_DEX_TYPE_NULL, + // 269.0 lbs / 122.0 kg NATIONAL_DEX_MEWTWO, - //NATIONAL_DEX_SCIZOR, // Mega + // 275.6 lbs / 125.0 kg + //NATIONAL_DEX_SCIZOR_MEGA, + NATIONAL_DEX_IRON_LEAVES, + // 277.3 lbs / 125.8 kg NATIONAL_DEX_FORRETRESS, NATIONAL_DEX_URSARING, - //NATIONAL_DEX_MEWTWO, // Mega X + // 280.0 lbs / 127.0 kg + //NATIONAL_DEX_MEWTWO_MEGA_X, + // 283.5 lbs / 128.6 kg NATIONAL_DEX_TANGROWTH, + // 286.6 lbs / 130.0 kg NATIONAL_DEX_MACHAMP, NATIONAL_DEX_WAILMER, - //NATIONAL_DEX_SHARPEDO, // Mega + // 287.3 lbs / 130.3 kg + //NATIONAL_DEX_SHARPEDO_MEGA, + // 287.7 lbs / 130.5 kg NATIONAL_DEX_SLAKING, + // 292.1 lbs / 132.5 kg NATIONAL_DEX_CLOYSTER, + // 297.6 lbs / 135.0 kg NATIONAL_DEX_JELLICENT, NATIONAL_DEX_BEWEAR, + // 298.7 lbs / 135.5 kg NATIONAL_DEX_ABOMASNOW, + // 299.8 lbs / 136.0 kg NATIONAL_DEX_PANGORO, + // 305.6 lbs / 138.6 kg NATIONAL_DEX_ELECTIVIRE, + // 306.4 lbs / 139.0 kg NATIONAL_DEX_DRUDDIGON, + // 308.6 lbs / 140.0 kg NATIONAL_DEX_LICKILICKY, + // 319.7 lbs / 145.0 kg NATIONAL_DEX_REGIELEKI, - //NATIONAL_DEX_VIKAVOLT, // Totem-sized + // 325.2 lbs / 147.5 kg + //NATIONAL_DEX_VIKAVOLT_TOTEM_SIZED, + // 326.3 lbs / 148.0 kg NATIONAL_DEX_CRYOGONAL, + // 329.6 lbs / 149.5 kg NATIONAL_DEX_BASTIODON, - // 330.7 - 440.7 lbs / 150.0 - 199.9 kg + // 330.7 lbs / 150.0 kg NATIONAL_DEX_EMBOAR, NATIONAL_DEX_NAGANADEL, NATIONAL_DEX_ARCTOZOLT, + // 331.8 lbs / 150.5 kg NATIONAL_DEX_GOODRA, + // 332.0 lbs / 150.6 kg NATIONAL_DEX_WALREIN, + // 335.1 lbs / 152.0 kg NATIONAL_DEX_KINGDRA, NATIONAL_DEX_PUPITAR, + // 335.5 lbs / 152.2 kg + NATIONAL_DEX_CHIEN_PAO, + // 339.5 lbs / 154.0 kg NATIONAL_DEX_SOLROCK, + // 341.7 lbs / 155.0 kg NATIONAL_DEX_ARCANINE, - //NATIONAL_DEX_VENUSAUR, // Mega + // 342.8 lbs / 155.5 kg + //NATIONAL_DEX_VENUSAUR_MEGA, + // 352.7 lbs / 160.0 kg NATIONAL_DEX_HYDREIGON, - //NATIONAL_DEX_SABLEYE, // Mega + NATIONAL_DEX_FARIGIRAF, + // 354.9 lbs / 161.0 kg + //NATIONAL_DEX_SABLEYE_MEGA, + // 357.1 lbs / 162.0 kg NATIONAL_DEX_MILOTIC, - //NATIONAL_DEX_ARCANINE, //Hisuian Form + // 370.4 lbs / 168.0 kg + //NATIONAL_DEX_ARCANINE_HISUIAN, NATIONAL_DEX_LUNATONE, + // 385.8 lbs / 175.0 kg NATIONAL_DEX_REGICE, NATIONAL_DEX_ARCTOVISH, + // 392.4 lbs / 178.0 kg NATIONAL_DEX_RAIKOU, + // 396.8 lbs / 180.0 kg NATIONAL_DEX_MAGNEZONE, NATIONAL_DEX_CRABOMINABLE, - //NATIONAL_DEX_ABOMASNOW, // Mega + // 407.9 lbs / 185.0 kg + //NATIONAL_DEX_ABOMASNOW_MEGA, NATIONAL_DEX_DRAMPA, + // 412.3 lbs / 187.0 kg NATIONAL_DEX_SUICUNE, NATIONAL_DEX_BRONZONG, + // 418.9 lbs / 190.0 kg NATIONAL_DEX_DRACOZOLT, + // 429.9 lbs / 195.0 kg NATIONAL_DEX_VOLCANION, + // 436.5 lbs / 198.0 kg NATIONAL_DEX_ENTEI, + // 438.7 lbs / 199.0 kg NATIONAL_DEX_HO_OH, - // 440.9 - 451.3 lbs / 200.0 - 204.7 kg + // 440.9 lbs / 200.0 kg NATIONAL_DEX_CRUSTLE, NATIONAL_DEX_VIRIZION, NATIONAL_DEX_REGIDRAGO, + // 442.0 lbs / 200.5 kg NATIONAL_DEX_SCOLIPEDE, + // 445.3 lbs / 202.0 kg NATIONAL_DEX_TYRANITAR, + // 446.4 lbs / 202.5 kg NATIONAL_DEX_METANG, + // 447.5 lbs / 203.0 kg NATIONAL_DEX_YVELTAL, - // 451.5 - 661.2 lbs / 204.8 - 299.9 kg + // 451.9 lbs / 205.0 kg NATIONAL_DEX_REGISTEEL, + // 455.3 lbs / 206.5 kg NATIONAL_DEX_RAYQUAZA, - //NATIONAL_DEX_KOMMO_O, // Totem-sized + // 457.5 lbs / 207.5 kg + //NATIONAL_DEX_KOMMO_O_TOTEM_SIZED, + // 463.0 lbs / 210.0 kg NATIONAL_DEX_ONIX, NATIONAL_DEX_DRAGONITE, NATIONAL_DEX_DHELMISE, - NATIONAL_DEX_ZAMAZENTA, // Hero of Many Battles + NATIONAL_DEX_ZAMAZENTA,//_HERO_OF_MANY_BATTLES, + NATIONAL_DEX_BAXCALIBUR, + // 467.4 lbs / 212.0 kg NATIONAL_DEX_TURTONATOR, - NATIONAL_DEX_XERNEAS, + // 474.0 lbs / 215.0 kg + NATIONAL_DEX_XERNEAS,//_NEUTRAL, + //NATIONAL_DEX_XERNEAS_ACTIVE, NATIONAL_DEX_DRACOVISH, + // 476.2 lbs / 216.0 kg NATIONAL_DEX_LUGIA, - //NATIONAL_DEX_ARAQUANID, // Totem-sized + // 479.5 lbs / 217.5 kg + //NATIONAL_DEX_ARAQUANID_TOTEM_SIZED, + // 485.0 lbs / 220.0 kg NATIONAL_DEX_LAPRAS, NATIONAL_DEX_MANTINE, NATIONAL_DEX_CAMERUPT, + NATIONAL_DEX_DONDOZO, + // 491.6 lbs / 223.0 kg + NATIONAL_DEX_CLODSIRE, + // 496.0 lbs / 225.0 kg NATIONAL_DEX_AURORUS, + // 507.1 lbs / 230.0 kg NATIONAL_DEX_REGIROCK, NATIONAL_DEX_SOLGALEO, NATIONAL_DEX_NECROZMA, - //NATIONAL_DEX_NECROZMA, // Ultra + //NATIONAL_DEX_NECROZMA_ULTRA, + // 518.1 lbs / 235.0 kg NATIONAL_DEX_GYARADOS, + // 529.1 lbs / 240.0 kg + NATIONAL_DEX_GARGANACL, + NATIONAL_DEX_IRON_TREADS, + NATIONAL_DEX_MIRAIDON, + // 551.2 lbs / 250.0 kg NATIONAL_DEX_COBALION, NATIONAL_DEX_PALOSSAND, + // 559.5 lbs / 253.8 kg NATIONAL_DEX_HARIYAMA, - //NATIONAL_DEX_TYRANITAR, // Mega + // 562.2 lbs / 255.0 kg + //NATIONAL_DEX_TYRANITAR_MEGA, + // 565.5 lbs / 256.5 kg NATIONAL_DEX_GLALIE, + // 573.2 lbs / 260.0 kg NATIONAL_DEX_GIGALITH, NATIONAL_DEX_BEARTIC, NATIONAL_DEX_TERRAKION, - //NATIONAL_DEX_AVALUGG, //Hisuian Form + // 578.5 lbs / 262.4 kg + //NATIONAL_DEX_AVALUGG_HISUIAN, + // 595.2 lbs / 270.0 kg NATIONAL_DEX_TYRANTRUM, + // 617.3 lbs / 280.0 kg + NATIONAL_DEX_WALKING_WAKE, + // 623.5 lbs / 282.8 kg NATIONAL_DEX_RHYPERIOR, + // 639.3 lbs / 290.0 kg NATIONAL_DEX_URSALUNA, + // 641.5 lbs / 291.0 kg NATIONAL_DEX_MAMOSWINE, - // 661.4 - 667.0 lbs / 300.0 - 307.1 kg + // 661.4 lbs / 300.0 kg NATIONAL_DEX_GOLEM, NATIONAL_DEX_HIPPOWDON, - //NATIONAL_DEX_GYARADOS, // Mega - NATIONAL_DEX_ZYGARDE, // 50% Forme - // 677.3 - 667.0 lbs / 307.2 - 359.9 kg + // 668.0 lbs / 303.0 kg + NATIONAL_DEX_IRON_THORNS, + NATIONAL_DEX_KORAIDON, + // 672.4 lbs / 305.0 kg + //NATIONAL_DEX_GYARADOS_MEGA, + NATIONAL_DEX_ZYGARDE,//_50, + //NATIONAL_DEX_ZYGARDE_50_POWER_CONSTRUCT, + // 683.4 lbs / 310.0 kg NATIONAL_DEX_TORTERRA, + NATIONAL_DEX_ORTHWORM, + // 684.5 lbs / 310.5 kg NATIONAL_DEX_COALOSSAL, - //NATIONAL_DEX_GOLEM, // Alolan Form - NATIONAL_DEX_ARCEUS, - //NATIONAL_DEX_CAMERUPT, // Mega + // 696.7 lbs / 316.0 kg + //NATIONAL_DEX_GOLEM_ALOLAN, + // 705.4 lbs / 320.0 kg + NATIONAL_DEX_ARCEUS,//_NORMAL, + //NATIONAL_DEX_ARCEUS_FIGHTING, + //NATIONAL_DEX_ARCEUS_FLYING, + //NATIONAL_DEX_ARCEUS_POISON, + //NATIONAL_DEX_ARCEUS_GROUND, + //NATIONAL_DEX_ARCEUS_ROCK, + //NATIONAL_DEX_ARCEUS_BUG, + //NATIONAL_DEX_ARCEUS_GHOST, + //NATIONAL_DEX_ARCEUS_STEEL, + //NATIONAL_DEX_ARCEUS_FIRE, + //NATIONAL_DEX_ARCEUS_WATER, + //NATIONAL_DEX_ARCEUS_GRASS, + //NATIONAL_DEX_ARCEUS_ELECTRIC, + //NATIONAL_DEX_ARCEUS_PSYCHIC, + //NATIONAL_DEX_ARCEUS_ICE, + //NATIONAL_DEX_ARCEUS_DRAGON, + //NATIONAL_DEX_ARCEUS_DARK, + NATIONAL_DEX_GREAT_TUSK, + // 705.4 lbs / 320.5 kg + //NATIONAL_DEX_CAMERUPT_MEGA, + // 716.5 lbs / 325.0 kg NATIONAL_DEX_KYUREM, + //NATIONAL_DEX_KYUREM_WHITE, + //NATIONAL_DEX_KYUREM_BLACK, + // 719.8 lbs / 326.5 kg + NATIONAL_DEX_SKELEDIRGE, + // 727.5 lbs / 330.0 kg NATIONAL_DEX_GOLURK, NATIONAL_DEX_RESHIRAM, + // 735.5 lbs / 333.6 kg NATIONAL_DEX_BUZZWOLE, - //NATIONAL_DEX_GOODRA, //Hisuian Form + // 736.6 lbs / 334.1 kg + //NATIONAL_DEX_GOODRA_HISUIAN, + // 740.8 lbs / 336.0 kg NATIONAL_DEX_PALKIA, + // 749.6 lbs / 340.0 kg NATIONAL_DEX_PROBOPASS, + // 760.6 lbs / 345.0 kg NATIONAL_DEX_ZEKROM, - //NATIONAL_DEX_NECROZMA, // Dawn Wings - //NATIONAL_DEX_GLALIE, // Mega + // 771.6 lbs / 350.0 kg + //NATIONAL_DEX_NECROZMA_DAWN_WINGS, + // 772.1 lbs / 350.2 kg + //NATIONAL_DEX_GLALIE_MEGA, + // 776.0 lbs / 352.0 kg NATIONAL_DEX_KYOGRE, - //NATIONAL_DEX_ZACIAN, // Crowned Sword - // 793.7 - 902.8 lbs / 360.0 - 409.5 kg + // 782.6 lbs / 355.0 kg + //NATIONAL_DEX_ZACIAN_CROWNED_SWORD, + // 793.7 lbs / 360.0 kg NATIONAL_DEX_AGGRON, - //NATIONAL_DEX_RAYQUAZA, // Mega - //NATIONAL_DEX_AGGRON, // Mega + // 837.8 lbs / 380.0 kg + NATIONAL_DEX_ROARING_MOON, + // 839.3 lbs / 380.7 kg + NATIONAL_DEX_IRON_HANDS, + // 864.2 lbs / 392.0 kg + //NATIONAL_DEX_RAYQUAZA_MEGA, + // 870.8 lbs / 395.0 kg + //NATIONAL_DEX_AGGRON_MEGA, + // 877.4 lbs / 398.0 kg NATIONAL_DEX_WAILORD, + // 881.8 lbs / 400.0 kg NATIONAL_DEX_STEELIX, - // 903.0 - 2204.4 lbs / 409.6 - 999.9 kg - //NATIONAL_DEX_EXEGGUTOR, // Alolan Form + // 916.2 lbs / 415.6 kg + //NATIONAL_DEX_EXEGGUTOR_ALOLAN, + // 925.9 lbs / 420.0 kg NATIONAL_DEX_REGIGIGAS, - //NATIONAL_DEX_KYOGRE, // Primal + // 948.0 lbs / 430.0 kg + //NATIONAL_DEX_KYOGRE_PRIMAL, NATIONAL_DEX_HEATRAN, + // 1014.1 lbs / 460.0 kg NATIONAL_DEX_SNORLAX, - //NATIONAL_DEX_NECROZMA, // Dusk Mane - //NATIONAL_DEX_HOOPA, // Unbound + //NATIONAL_DEX_NECROZMA_DUSK_MANE, + // 1080.3 lbs / 490.0 kg + //NATIONAL_DEX_HOOPA_UNBOUND, + // 1113.3 lbs / 505.0 kg NATIONAL_DEX_AVALUGG, + // 1146.4 lbs / 520.0 kg NATIONAL_DEX_STONJOURNER, + // 1212.5 lbs / 550.0 kg NATIONAL_DEX_METAGROSS, - //NATIONAL_DEX_ZYGARDE, // Complete Forme - //NATIONAL_DEX_GIRATINA, // Origin Forme - //NATIONAL_DEX_PALKIA, // Origin Form + // 1344.8 lbs / 610.0 kg + //NATIONAL_DEX_ZYGARDE_COMPLETE, + // 1433.8 lbs / 650.0 kg + //NATIONAL_DEX_GIRATINA_ORIGIN, + NATIONAL_DEX_COPPERAJAH, + // 1452.8 lbs / 659.0 kg + //NATIONAL_DEX_PALKIA_ORIGIN, + // 1505.8 lbs / 683.0 kg NATIONAL_DEX_DIALGA, - //NATIONAL_DEX_STEELIX, // Mega - NATIONAL_DEX_GIRATINA, // Altered Forme - //NATIONAL_DEX_ZAMAZENTA, // Crowned Shield + // 1542.6 lbs / 699.7 kg + NATIONAL_DEX_TING_LU, + // 1543.2 lbs / 700.0 kg + NATIONAL_DEX_CETITAN, + // 1631.4 lbs / 740.0 kg + //NATIONAL_DEX_STEELIX_MEGA, + // 1653.5 lbs / 750.0 kg + NATIONAL_DEX_GIRATINA,//_ALTERED, + // 1730.6 lbs / 785.0 kg + //NATIONAL_DEX_ZAMAZENTA_CROWNED_SHIELD, + // 1763.7 lbs / 800.0 kg NATIONAL_DEX_MELMETAL, NATIONAL_DEX_GLASTRIER, - //NATIONAL_DEX_CALYREX, // Ice Rider + // 1783.8 lbs / 809.1 kg + //NATIONAL_DEX_CALYREX_ICE_RIDER, + // 1807.8 lbs / 820.0 kg NATIONAL_DEX_STAKATAKA, - //NATIONAL_DEX_DIALGA, // Origin Form + // 1871.0 lbs / 848.7 kg + //NATIONAL_DEX_DIALGA_ORIGIN, + // 1957.7 lbs / 888.0 kg NATIONAL_DEX_GUZZLORD, + // 2028.3 lbs / 920.0 kg NATIONAL_DEX_MUDSDALE, - //NATIONAL_DEX_METAGROSS, // Mega + // 2078.7 lbs / 942.9 kg + //NATIONAL_DEX_METAGROSS_MEGA, + // 2094.4 lbs / 950.0 kg NATIONAL_DEX_GROUDON, NATIONAL_DEX_ETERNATUS, - //NATIONAL_DEX_GROUDON, // Primal + // 2204.0 lbs / 999.7 kg + //NATIONAL_DEX_GROUDON_PRIMAL, + // 2204.4 lbs / 999.9 kg NATIONAL_DEX_COSMOEM, NATIONAL_DEX_CELESTEELA, }; @@ -2001,42 +2915,62 @@ const u16 gPokedexOrder_Height[] = { // 0'04" / 0.1m NATIONAL_DEX_JOLTIK, - NATIONAL_DEX_FLABEBE, + NATIONAL_DEX_FLABEBE,//_RED_FLOWER, + //NATIONAL_DEX_FLABEBE_YELLOW_FLOWER, + //NATIONAL_DEX_FLABEBE_ORANGE_FLOWER, + //NATIONAL_DEX_FLABEBE_BLUE_FLOWER, + //NATIONAL_DEX_FLABEBE_WHITE_FLOWER, NATIONAL_DEX_CUTIEFLY, NATIONAL_DEX_COMFEY, NATIONAL_DEX_COSMOEM, - NATIONAL_DEX_SINISTEA, + NATIONAL_DEX_SINISTEA,//_PHONY, + //NATIONAL_DEX_SINISTEA_ANTIQUE, + //NATIONAL_DEX_GIMMIGHOUL_ROAMING, + NATIONAL_DEX_POLTCHAGEIST, // 0'08" / 0.2m NATIONAL_DEX_DIGLETT, - //NATIONAL_DEX_DIGLETT, // Alolan Form + //NATIONAL_DEX_DIGLETT_ALOLAN, NATIONAL_DEX_NATU, NATIONAL_DEX_AZURILL, NATIONAL_DEX_BUDEW, - NATIONAL_DEX_BURMY, + NATIONAL_DEX_BURMY,//_PLANT_CLOAK, + //NATIONAL_DEX_BURMY_SANDY_CLOAK, + //NATIONAL_DEX_BURMY_TRASH_CLOAK, NATIONAL_DEX_CHINGLING, - NATIONAL_DEX_SHAYMIN, // Land Forme + NATIONAL_DEX_SHAYMIN,//_LAND, NATIONAL_DEX_FOONGUS, NATIONAL_DEX_TYNAMO, - NATIONAL_DEX_FLOETTE, + NATIONAL_DEX_FLOETTE,//_RED_FLOWER, + //NATIONAL_DEX_FLOETTE_YELLOW_FLOWER, + //NATIONAL_DEX_FLOETTE_ORANGE_FLOWER, + //NATIONAL_DEX_FLOETTE_BLUE_FLOWER, + //NATIONAL_DEX_FLOETTE_WHITE_FLOWER, + //NATIONAL_DEX_FLOETTE_ETERNAL_FLOWER, NATIONAL_DEX_SPRITZEE, NATIONAL_DEX_DEDENNE, NATIONAL_DEX_KLEFKI, NATIONAL_DEX_RIBOMBEE, - NATIONAL_DEX_WISHIWASHI, // Solo Form + NATIONAL_DEX_WISHIWASHI,//_SOLO, NATIONAL_DEX_MORELULL, - NATIONAL_DEX_MIMIKYU, + NATIONAL_DEX_MIMIKYU,//_DISGUISED, + //NATIONAL_DEX_MIMIKYU_BUSTED, NATIONAL_DEX_COSMOG, NATIONAL_DEX_MELTAN, NATIONAL_DEX_ROOKIDEE, NATIONAL_DEX_APPLIN, NATIONAL_DEX_POLTEAGEIST, NATIONAL_DEX_MILCERY, + NATIONAL_DEX_NYMBLE, + NATIONAL_DEX_SHROODLE, + NATIONAL_DEX_RELLOR, + NATIONAL_DEX_FLITTLE, + NATIONAL_DEX_SINISTCHA, // 1'00" / 0.3m NATIONAL_DEX_CATERPIE, NATIONAL_DEX_WEEDLE, NATIONAL_DEX_PIDGEY, NATIONAL_DEX_RATTATA, - //NATIONAL_DEX_RATTATA, // Alolan Form + //NATIONAL_DEX_RATTATA_ALOLAN, NATIONAL_DEX_SPEAROW, NATIONAL_DEX_PARAS, NATIONAL_DEX_MAGNEMITE, @@ -2051,13 +2985,16 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_WURMPLE, NATIONAL_DEX_TAILLOW, NATIONAL_DEX_ROSELIA, - NATIONAL_DEX_CASTFORM, + NATIONAL_DEX_CASTFORM,//_NORMAL, + //NATIONAL_DEX_CASTFORM_SUNNY, + //NATIONAL_DEX_CASTFORM_RAINY, + //NATIONAL_DEX_CASTFORM_SNOWY, NATIONAL_DEX_JIRACHI, NATIONAL_DEX_STARLY, NATIONAL_DEX_KRICKETOT, NATIONAL_DEX_COMBEE, - NATIONAL_DEX_SHELLOS, // West Sea - //NATIONAL_DEX_SHELLOS, // East Sea + NATIONAL_DEX_SHELLOS,//_WEST_SEA, + //NATIONAL_DEX_SHELLOS_EAST_SEA, NATIONAL_DEX_ROTOM, NATIONAL_DEX_UXIE, NATIONAL_DEX_MESPRIT, @@ -2079,7 +3016,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_ESPURR, NATIONAL_DEX_CARBINK, NATIONAL_DEX_GOOMY, - //NATIONAL_DEX_PUMPKABOO, // Small Size + //NATIONAL_DEX_PUMPKABOO_SMALL, NATIONAL_DEX_ROWLET, NATIONAL_DEX_PIKIPEK, NATIONAL_DEX_DEWPIDER, @@ -2100,14 +3037,15 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_ALCREMIE, NATIONAL_DEX_PINCURCHIN, NATIONAL_DEX_SNOM, - NATIONAL_DEX_MORPEKO, + NATIONAL_DEX_MORPEKO,//_FULL_BELLY, + //NATIONAL_DEX_MORPEKO_HANGRY, NATIONAL_DEX_PIKACHU, NATIONAL_DEX_NIDORAN_F, NATIONAL_DEX_MEOWTH, - //NATIONAL_DEX_MEOWTH, // Alolan Form - //NATIONAL_DEX_MEOWTH, // Galarian Form + //NATIONAL_DEX_MEOWTH_ALOLAN, + //NATIONAL_DEX_MEOWTH_GALARIAN, NATIONAL_DEX_GEODUDE, - //NATIONAL_DEX_GEODUDE, // Alolan Form + //NATIONAL_DEX_GEODUDE_ALOLAN, NATIONAL_DEX_KRABBY, NATIONAL_DEX_EXEGGCUTE, NATIONAL_DEX_CUBONE, @@ -2123,7 +3061,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_TORCHIC, NATIONAL_DEX_MUDKIP, NATIONAL_DEX_ZIGZAGOON, - //NATIONAL_DEX_ZIGZAGOON, // Galarian Form + //NATIONAL_DEX_ZIGZAGOON_GALARIAN, NATIONAL_DEX_RALTS, NATIONAL_DEX_SHROOMISH, NATIONAL_DEX_ARON, @@ -2143,7 +3081,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_STUNKY, NATIONAL_DEX_FINNEON, NATIONAL_DEX_PHIONE, - //NATIONAL_DEX_SHAYMIN, // Sky Forme + //NATIONAL_DEX_SHAYMIN_SKY, NATIONAL_DEX_VICTINI, NATIONAL_DEX_LILLIPUP, NATIONAL_DEX_PURRLOIN, @@ -2161,15 +3099,15 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_SWIRLIX, NATIONAL_DEX_INKAY, NATIONAL_DEX_PHANTUMP, - NATIONAL_DEX_PUMPKABOO, // Average Size + NATIONAL_DEX_PUMPKABOO,//_AVERAGE, NATIONAL_DEX_LITTEN, NATIONAL_DEX_POPPLIO, NATIONAL_DEX_YUNGOOS, NATIONAL_DEX_GRUBBIN, - //NATIONAL_DEX_RIBOMBEE, // Totem-sized + //NATIONAL_DEX_RIBOMBEE_TOTEM_SIZED, NATIONAL_DEX_MAREANIE, NATIONAL_DEX_KOMALA, - //NATIONAL_DEX_MIMIKYU, // Totem-sized + //NATIONAL_DEX_MIMIKYU_TOTEM_SIZED, NATIONAL_DEX_BLIPBUG, NATIONAL_DEX_DOTTLER, NATIONAL_DEX_ORBEETLE, @@ -2178,6 +3116,28 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_TOXEL, NATIONAL_DEX_HATENNA, NATIONAL_DEX_IMPIDIMP, + NATIONAL_DEX_TAROUNTULA, + NATIONAL_DEX_PAWMI, + NATIONAL_DEX_TANDEMAUS, + NATIONAL_DEX_MAUSHOLD, + NATIONAL_DEX_FIDOUGH, + NATIONAL_DEX_SMOLIV, + NATIONAL_DEX_TADBULB, + NATIONAL_DEX_CAPSAKID, + NATIONAL_DEX_RABSCA, + NATIONAL_DEX_TATSUGIRI,//_CURLY, + //NATIONAL_DEX_TATSUGIRI_DROOPY, + //NATIONAL_DEX_TATSUGIRI_STRETCHY, + NATIONAL_DEX_GIMMIGHOUL,//_CHEST, + // 0.4m + NATIONAL_DEX_SPRIGATITO, + NATIONAL_DEX_FUECOCO, + NATIONAL_DEX_PAWMO, + NATIONAL_DEX_NACLI, + NATIONAL_DEX_WATTREL, + NATIONAL_DEX_TINKATINK, + NATIONAL_DEX_CHI_YU, + NATIONAL_DEX_DIPPLIN, // 1'08" / 0.5m NATIONAL_DEX_SQUIRTLE, NATIONAL_DEX_NIDORAN_M, @@ -2185,36 +3145,64 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_ODDISH, NATIONAL_DEX_MANKEY, NATIONAL_DEX_VOLTORB, - //NATIONAL_DEX_VOLTORB, //Hisuian Form + //NATIONAL_DEX_VOLTORB_HISUIAN, NATIONAL_DEX_KABUTO, NATIONAL_DEX_CYNDAQUIL, NATIONAL_DEX_SPINARAK, NATIONAL_DEX_CHINCHOU, NATIONAL_DEX_MURKROW, - NATIONAL_DEX_UNOWN, + NATIONAL_DEX_UNOWN,//_A, + //NATIONAL_DEX_UNOWN_B, + //NATIONAL_DEX_UNOWN_C, + //NATIONAL_DEX_UNOWN_D, + //NATIONAL_DEX_UNOWN_E, + //NATIONAL_DEX_UNOWN_F, + //NATIONAL_DEX_UNOWN_G, + //NATIONAL_DEX_UNOWN_H, + //NATIONAL_DEX_UNOWN_I, + //NATIONAL_DEX_UNOWN_J, + //NATIONAL_DEX_UNOWN_K, + //NATIONAL_DEX_UNOWN_L, + //NATIONAL_DEX_UNOWN_M, + //NATIONAL_DEX_UNOWN_N, + //NATIONAL_DEX_UNOWN_O, + //NATIONAL_DEX_UNOWN_P, + //NATIONAL_DEX_UNOWN_Q, + //NATIONAL_DEX_UNOWN_R, + //NATIONAL_DEX_UNOWN_S, + //NATIONAL_DEX_UNOWN_T, + //NATIONAL_DEX_UNOWN_U, + //NATIONAL_DEX_UNOWN_V, + //NATIONAL_DEX_UNOWN_W, + //NATIONAL_DEX_UNOWN_X, + //NATIONAL_DEX_UNOWN_Y, + //NATIONAL_DEX_UNOWN_Z, + //NATIONAL_DEX_UNOWN_EMARK, + //NATIONAL_DEX_UNOWN_QMARK, NATIONAL_DEX_QWILFISH, - //NATIONAL_DEX_QWILFISH, //Hisuian Form + //NATIONAL_DEX_QWILFISH_HISUIAN, NATIONAL_DEX_PHANPY, NATIONAL_DEX_TREECKO, NATIONAL_DEX_POOCHYENA, NATIONAL_DEX_LINOONE, - //NATIONAL_DEX_LINOONE, // Galarian Form + //NATIONAL_DEX_LINOONE_GALARIAN, NATIONAL_DEX_LOTAD, NATIONAL_DEX_SEEDOT, NATIONAL_DEX_SURSKIT, NATIONAL_DEX_NINCADA, NATIONAL_DEX_SABLEYE, - //NATIONAL_DEX_SABLEYE, // Mega + //NATIONAL_DEX_SABLEYE_MEGA, NATIONAL_DEX_TORKOAL, NATIONAL_DEX_BALTOY, NATIONAL_DEX_CHIMCHAR, NATIONAL_DEX_BIDOOF, NATIONAL_DEX_SHINX, NATIONAL_DEX_SHIELDON, - NATIONAL_DEX_WORMADAM, // Plant Cloak - //NATIONAL_DEX_WORMADAM, // Sandy Cloak - //NATIONAL_DEX_WORMADAM, // Trash Cloak - NATIONAL_DEX_CHERRIM, + NATIONAL_DEX_WORMADAM,//_PLANT_CLOAK, + //NATIONAL_DEX_WORMADAM_SANDY_CLOAK, + //NATIONAL_DEX_WORMADAM_TRASH_CLOAK, + NATIONAL_DEX_CHERRIM,//_OVERCAST, + //NATIONAL_DEX_CHERRIM_SUNSHINE, NATIONAL_DEX_GLAMEOW, NATIONAL_DEX_BRONZOR, NATIONAL_DEX_BONSLY, @@ -2226,7 +3214,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_SWADLOON, NATIONAL_DEX_PETILIL, NATIONAL_DEX_YAMASK, - //NATIONAL_DEX_YAMASK, Galarian Form + //NATIONAL_DEX_YAMASK_GALARIAN, NATIONAL_DEX_CINCCINO, NATIONAL_DEX_DUCKLETT, NATIONAL_DEX_KARRABLAST, @@ -2239,9 +3227,9 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_SKRELP, NATIONAL_DEX_CLAUNCHER, NATIONAL_DEX_HELIOPTILE, - //NATIONAL_DEX_PUMPKABOO, // Large Size + //NATIONAL_DEX_PUMPKABOO_LARGE, NATIONAL_DEX_NOIBAT, - NATIONAL_DEX_HOOPA, // Confined + NATIONAL_DEX_HOOPA,//_CONFINED, NATIONAL_DEX_CHARJABUG, NATIONAL_DEX_ROCKRUFF, NATIONAL_DEX_STUFFUL, @@ -2250,13 +3238,18 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_ELDEGOSS, NATIONAL_DEX_ARROKUDA, NATIONAL_DEX_DREEPY, + NATIONAL_DEX_QUAXLY, + NATIONAL_DEX_LECHONK, + NATIONAL_DEX_DACHSBUN, + NATIONAL_DEX_MASCHIFF, + NATIONAL_DEX_FRIGIBAX, // 2'00" / 0.6m NATIONAL_DEX_CHARMANDER, NATIONAL_DEX_KAKUNA, NATIONAL_DEX_SANDSHREW, NATIONAL_DEX_CLEFAIRY, NATIONAL_DEX_VULPIX, - //NATIONAL_DEX_VULPIX, // Alolan Form + //NATIONAL_DEX_VULPIX_ALOLAN, NATIONAL_DEX_POLIWAG, NATIONAL_DEX_KOFFING, NATIONAL_DEX_GOLDEEN, @@ -2269,7 +3262,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_SHUCKLE, NATIONAL_DEX_TEDDIURSA, NATIONAL_DEX_CORSOLA, - //NATIONAL_DEX_CORSOLA, // Galarian Form + //NATIONAL_DEX_CORSOLA_GALARIAN, NATIONAL_DEX_REMORAID, NATIONAL_DEX_HOUNDOUR, NATIONAL_DEX_PORYGON2, @@ -2308,25 +3301,32 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_ARCHEN, NATIONAL_DEX_TRUBBISH, NATIONAL_DEX_DUOSION, - NATIONAL_DEX_DEERLING, + NATIONAL_DEX_DEERLING,//_SPRING, + //NATIONAL_DEX_DEERLING_SUMMER, + //NATIONAL_DEX_DEERLING_AUTUMN, + //NATIONAL_DEX_DEERLING_WINTER, NATIONAL_DEX_AMOONGUSS, NATIONAL_DEX_FERROSEED, NATIONAL_DEX_KLANG, NATIONAL_DEX_KLINKLANG, NATIONAL_DEX_LAMPENT, NATIONAL_DEX_AXEW, - NATIONAL_DEX_MELOETTA, // Aria Forme - //NATIONAL_DEX_MELOETTA, // Pirouette Forme + NATIONAL_DEX_MELOETTA,//_ARIA, + //NATIONAL_DEX_MELOETTA_PIROUETTE, NATIONAL_DEX_FROGADIER, NATIONAL_DEX_LITLEO, NATIONAL_DEX_PANCHAM, - NATIONAL_DEX_MEOWSTIC, + NATIONAL_DEX_MEOWSTIC,//_MALE, + //NATIONAL_DEX_MEOWSTIC_FEMALE, NATIONAL_DEX_BRIONNE, NATIONAL_DEX_TRUMBEAK, NATIONAL_DEX_CRABRAWLER, - NATIONAL_DEX_ORICORIO, + NATIONAL_DEX_ORICORIO,//_BAILE, + //NATIONAL_DEX_ORICORIO_POM_POM, + //NATIONAL_DEX_ORICORIO_PAU, + //NATIONAL_DEX_ORICORIO_SENSU, NATIONAL_DEX_SALANDIT, - //NATIONAL_DEX_TOGEDEMARU, // Totem-sized + //NATIONAL_DEX_TOGEDEMARU_TOTEM_SIZED, NATIONAL_DEX_JANGMO_O, NATIONAL_DEX_POIPOLE, NATIONAL_DEX_RABOOT, @@ -2336,18 +3336,28 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_CLOBBOPUS, NATIONAL_DEX_HATTREM, NATIONAL_DEX_KUBFU, + NATIONAL_DEX_DOLLIV, + NATIONAL_DEX_SQUAWKABILLY,//_GREEN_PLUMAGE, + //NATIONAL_DEX_SQUAWKABILLY_BLUE_PLUMAGE, + //NATIONAL_DEX_SQUAWKABILLY_YELLOW_PLUMAGE, + //NATIONAL_DEX_SQUAWKABILLY_WHITE_PLUMAGE, + NATIONAL_DEX_NACLSTACK, + NATIONAL_DEX_CHARCADET, + NATIONAL_DEX_BRAMBLIN, + NATIONAL_DEX_GREAVARD, + NATIONAL_DEX_IRON_BUNDLE, // 2'04" / 0.7m NATIONAL_DEX_BULBASAUR, NATIONAL_DEX_METAPOD, NATIONAL_DEX_RATICATE, - //NATIONAL_DEX_RATICATE, // Alolan Form - //NATIONAL_DEX_RAICHU, // Alolan Form - //NATIONAL_DEX_SANDSHREW, // Alolan Form + //NATIONAL_DEX_RATICATE_ALOLAN, + //NATIONAL_DEX_RAICHU_ALOLAN, + //NATIONAL_DEX_SANDSHREW_ALOLAN, NATIONAL_DEX_DUGTRIO, - //NATIONAL_DEX_DUGTRIO, // Alolan Form + //NATIONAL_DEX_DUGTRIO_ALOLAN, NATIONAL_DEX_GROWLITHE, NATIONAL_DEX_BELLSPROUT, - //NATIONAL_DEX_GRIMER, // Alolan Form + //NATIONAL_DEX_GRIMER_ALOLAN, NATIONAL_DEX_HOOTHOOT, NATIONAL_DEX_MISDREAVUS, NATIONAL_DEX_SLUGMA, @@ -2369,17 +3379,17 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_EXCADRILL, NATIONAL_DEX_WHIMSICOTT, NATIONAL_DEX_SANDILE, - //NATIONAL_DEX_DARUMAKA, // Galarian Form + //NATIONAL_DEX_DARUMAKA_GALARIAN, NATIONAL_DEX_TIRTOUGA, NATIONAL_DEX_ZORUA, - //NATIONAL_DEX_ZORUA, // Hisuian Form + //NATIONAL_DEX_ZORUA_HISUIAN, NATIONAL_DEX_GOTHORITA, NATIONAL_DEX_STUNFISK, - //NATIONAL_DEX_STUNFISK, // Galarian Form + //NATIONAL_DEX_STUNFISK_GALARIAN, NATIONAL_DEX_QUILLADIN, NATIONAL_DEX_FLETCHINDER, - //NATIONAL_DEX_SLIGGOO, // Hisuian Form - //NATIONAL_DEX_GOURGEIST, // Small Size + //NATIONAL_DEX_SLIGGOO_HISUIAN, + //NATIONAL_DEX_GOURGEIST_SMALL, NATIONAL_DEX_DIANCIE, NATIONAL_DEX_DARTRIX, NATIONAL_DEX_TORRACAT, @@ -2390,6 +3400,10 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_THWACKEY, NATIONAL_DEX_DRIZZILE, NATIONAL_DEX_SIZZLIPEDE, + NATIONAL_DEX_GRAFAIAI, + NATIONAL_DEX_TINKATUFF, + NATIONAL_DEX_TINKATON, + NATIONAL_DEX_GLIMMET, // 2'07" / 0.8m NATIONAL_DEX_RAICHU, NATIONAL_DEX_NIDORINA, @@ -2397,9 +3411,9 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_GLOOM, NATIONAL_DEX_PSYDUCK, NATIONAL_DEX_MACHOP, - //NATIONAL_DEX_PONYTA, // Galarian Form + //NATIONAL_DEX_PONYTA_GALARIAN, NATIONAL_DEX_FARFETCHD, - //NATIONAL_DEX_FARFETCHD, // Galarian Form + //NATIONAL_DEX_FARFETCHD_GALARIAN, NATIONAL_DEX_STARYU, NATIONAL_DEX_JOLTEON, NATIONAL_DEX_PORYGON, @@ -2436,14 +3450,15 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_TYRUNT, NATIONAL_DEX_HAWLUCHA, NATIONAL_DEX_SLIGGOO, - //NATIONAL_DEX_PUMPKABOO, // Super Size - NATIONAL_DEX_LYCANROC, // Midday Form - //NATIONAL_DEX_LYCANROC, // Dusk Form + //NATIONAL_DEX_PUMPKABOO_SUPER, + NATIONAL_DEX_LYCANROC,//_MIDDAY, + //NATIONAL_DEX_LYCANROC_DUSK, NATIONAL_DEX_CORVISQUIRE, NATIONAL_DEX_CRAMORANT, NATIONAL_DEX_MORGREM, NATIONAL_DEX_PERRSERKER, NATIONAL_DEX_SIRFETCHD, + NATIONAL_DEX_ARCTIBAX, // 2'11" / 0.9m NATIONAL_DEX_NIDORINO, NATIONAL_DEX_ABRA, @@ -2455,7 +3470,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_QUILAVA, NATIONAL_DEX_ESPEON, NATIONAL_DEX_SNEASEL, - //NATIONAL_DEX_SNEASEL, //Hisuian Form + //NATIONAL_DEX_SNEASEL_HISUIAN, NATIONAL_DEX_OCTILLERY, NATIONAL_DEX_DELIBIRD, NATIONAL_DEX_GROVYLE, @@ -2468,8 +3483,8 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_ROSERADE, NATIONAL_DEX_CRANIDOS, NATIONAL_DEX_MOTHIM, - NATIONAL_DEX_GASTRODON, // West Sea - //NATIONAL_DEX_GASTRODON, // East Sea + NATIONAL_DEX_GASTRODON,//_WEST_SEA, + //NATIONAL_DEX_GASTRODON_EAST_SEA, NATIONAL_DEX_MISMAGIUS, NATIONAL_DEX_HONCHKROW, NATIONAL_DEX_PORYGON_Z, @@ -2478,10 +3493,16 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_SWOOBAT, NATIONAL_DEX_MIENFOO, NATIONAL_DEX_SKIDDO, - NATIONAL_DEX_GOURGEIST, // Average Size + NATIONAL_DEX_GOURGEIST,//_AVERAGE, NATIONAL_DEX_LURANTIS, NATIONAL_DEX_BRUXISH, - NATIONAL_DEX_INDEEDEE, + NATIONAL_DEX_INDEEDEE,//_MALE, + //NATIONAL_DEX_INDEEDEE_FEMALE, + NATIONAL_DEX_FLORAGATO, + NATIONAL_DEX_PAWMOT, + NATIONAL_DEX_TOEDSCOOL, + NATIONAL_DEX_SCOVILLAIN, + NATIONAL_DEX_IRON_TREADS, // 3'03" / 1.0m NATIONAL_DEX_IVYSAUR, NATIONAL_DEX_WARTORTLE, @@ -2495,13 +3516,13 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_POLIWHIRL, NATIONAL_DEX_WEEPINBELL, NATIONAL_DEX_GRAVELER, - //NATIONAL_DEX_GRAVELER, // Alolan Form + //NATIONAL_DEX_GRAVELER_ALOLAN, NATIONAL_DEX_PONYTA, NATIONAL_DEX_MAGNETON, - //NATIONAL_DEX_MUK, // Alolan Form + //NATIONAL_DEX_MUK_ALOLAN, NATIONAL_DEX_DROWZEE, NATIONAL_DEX_MAROWAK, - //NATIONAL_DEX_MAROWAK, // Alolan Form + //NATIONAL_DEX_MAROWAK_ALOLAN, NATIONAL_DEX_RHYHORN, NATIONAL_DEX_TANGELA, NATIONAL_DEX_VAPOREON, @@ -2514,7 +3535,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_LOUDRED, NATIONAL_DEX_MAKUHITA, NATIONAL_DEX_NOSEPASS, - //NATIONAL_DEX_MAWILE, // Mega + //NATIONAL_DEX_MAWILE_MEGA, NATIONAL_DEX_LUNATONE, NATIONAL_DEX_LILEEP, NATIONAL_DEX_KECLEON, @@ -2530,8 +3551,9 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_PIGNITE, NATIONAL_DEX_SIMISEAR, NATIONAL_DEX_SIMIPOUR, - NATIONAL_DEX_BASCULIN, // Red-Striped Form - //NATIONAL_DEX_BASCULIN, // Blue-Striped Form + NATIONAL_DEX_BASCULIN,//_RED_STRIPED, + //NATIONAL_DEX_BASCULIN_BLUE_STRIPED, + //NATIONAL_DEX_BASCULIN_WHITE_STRIPED, NATIONAL_DEX_KROKOROK, NATIONAL_DEX_MARACTUS, NATIONAL_DEX_REUNICLUS, @@ -2549,17 +3571,24 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_MUDBRAY, NATIONAL_DEX_SHIINOTIC, NATIONAL_DEX_MAGEARNA, - //NATIONAL_DEX_MAGEARNA, // Original Color + //NATIONAL_DEX_MAGEARNA_ORIGINAL_COLOR, NATIONAL_DEX_DREDNAW, NATIONAL_DEX_BOLTUND, NATIONAL_DEX_CURSOLA, + NATIONAL_DEX_CROCALOR, + NATIONAL_DEX_OINKOLOGNE,//_MALE, + //NATIONAL_DEX_OINKOLOGNE_FEMALE, + NATIONAL_DEX_SPIDOPS, + NATIONAL_DEX_LOKIX, + NATIONAL_DEX_VAROOM, + NATIONAL_DEX_MUNKIDORI, // 3'07" / 1.1m NATIONAL_DEX_CHARMELEON, NATIONAL_DEX_BUTTERFREE, NATIONAL_DEX_PIDGEOTTO, NATIONAL_DEX_NINETALES, - //NATIONAL_DEX_NINETALES, // Alolan Form - //NATIONAL_DEX_PERSIAN, // Alolan Form + //NATIONAL_DEX_NINETALES_ALOLAN, + //NATIONAL_DEX_PERSIAN_ALOLAN, NATIONAL_DEX_SEEL, NATIONAL_DEX_CHANSEY, NATIONAL_DEX_STARMIE, @@ -2591,23 +3620,28 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_VANILLISH, NATIONAL_DEX_CRYOGONAL, NATIONAL_DEX_LARVESTA, - NATIONAL_DEX_FLORGES, - //NATIONAL_DEX_GOURGEIST, // Large Size - //NATIONAL_DEX_DIANCIE, // Mega + NATIONAL_DEX_FLORGES,//_RED_FLOWER, + //NATIONAL_DEX_FLORGES_YELLOW_FLOWER, + //NATIONAL_DEX_FLORGES_ORANGE_FLOWER, + //NATIONAL_DEX_FLORGES_BLUE_FLOWER, + //NATIONAL_DEX_FLORGES_WHITE_FLOWER, + //NATIONAL_DEX_GOURGEIST_LARGE, + //NATIONAL_DEX_DIANCIE_MEGA, NATIONAL_DEX_TOUCANNON, - //NATIONAL_DEX_LYCANROC, // Midnight Form + //NATIONAL_DEX_LYCANROC_MIDNIGHT, NATIONAL_DEX_CARKOL, NATIONAL_DEX_CALYREX, + NATIONAL_DEX_MABOSSTIFF, // 3'11" / 1.2m NATIONAL_DEX_FEAROW, - //NATIONAL_DEX_SANDSLASH, // Alolan Form + //NATIONAL_DEX_SANDSLASH_ALOLAN, NATIONAL_DEX_VILEPLUME, - //NATIONAL_DEX_ALAKAZAM, // Mega + //NATIONAL_DEX_ALAKAZAM_MEGA, NATIONAL_DEX_SLOWPOKE, - //NATIONAL_DEX_SLOWPOKE, // Galarian Form + //NATIONAL_DEX_SLOWPOKE_GALARIAN, NATIONAL_DEX_MUK, NATIONAL_DEX_ELECTRODE, - //NATIONAL_DEX_ELECTRODE, //Hisuian Form + //NATIONAL_DEX_ELECTRODE_HISUIAN, NATIONAL_DEX_LICKITUNG, NATIONAL_DEX_WEEZING, NATIONAL_DEX_SEADRA, @@ -2624,9 +3658,9 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_PELIPPER, NATIONAL_DEX_BRELOOM, NATIONAL_DEX_SOLROCK, - //NATIONAL_DEX_BANETTE, // Mega + //NATIONAL_DEX_BANETTE_MEGA, NATIONAL_DEX_ABSOL, - //NATIONAL_DEX_ABSOL, // Mega + //NATIONAL_DEX_ABSOL_MEGA, NATIONAL_DEX_METANG, NATIONAL_DEX_INFERNAPE, NATIONAL_DEX_STARAPTOR, @@ -2642,7 +3676,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_GURDURR, NATIONAL_DEX_LEAVANNY, NATIONAL_DEX_WHIRLIPEDE, - //NATIONAL_DEX_LILLIGANT, //Hisuian Form + //NATIONAL_DEX_LILLIGANT_HISUIAN, NATIONAL_DEX_CARRACOSTA, NATIONAL_DEX_FRILLISH, NATIONAL_DEX_ALOMOMOLA, @@ -2650,8 +3684,18 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_MANDIBUZZ, NATIONAL_DEX_TALONFLAME, NATIONAL_DEX_VIVILLON, - NATIONAL_DEX_FURFROU, - //NATIONAL_DEX_ZYGARDE, // 10% Forme + NATIONAL_DEX_FURFROU,//_NATURAL, + //NATIONAL_DEX_FURFROU_HEART_TRIM, + //NATIONAL_DEX_FURFROU_STAR_TRIM, + //NATIONAL_DEX_FURFROU_DIAMOND_TRIM, + //NATIONAL_DEX_FURFROU_DEBUTANTE_TRIM, + //NATIONAL_DEX_FURFROU_MATRON_TRIM, + //NATIONAL_DEX_FURFROU_DANDY_TRIM, + //NATIONAL_DEX_FURFROU_LA_REINE_TRIM, + //NATIONAL_DEX_FURFROU_KABUKI_TRIM, + //NATIONAL_DEX_FURFROU_PHARAOH_TRIM, + //NATIONAL_DEX_ZYGARDE_10, + //NATIONAL_DEX_ZYGARDE_10_POWER_CONSTRUCT, NATIONAL_DEX_SALAZZLE, NATIONAL_DEX_TSAREENA, NATIONAL_DEX_HAKAMO_O, @@ -2660,6 +3704,18 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_THIEVUL, NATIONAL_DEX_CUFANT, NATIONAL_DEX_REGIELEKI, + NATIONAL_DEX_QUAXWELL, + NATIONAL_DEX_BELLIBOLT, + NATIONAL_DEX_BRAMBLEGHAST, + NATIONAL_DEX_WIGLETT, + NATIONAL_DEX_WUGTRIO, + NATIONAL_DEX_CETODDLE, + NATIONAL_DEX_ANNIHILAPE, + NATIONAL_DEX_SCREAM_TAIL, + NATIONAL_DEX_BRUTE_BONNET, + NATIONAL_DEX_IRON_MOTH, + NATIONAL_DEX_GHOLDENGO, + NATIONAL_DEX_OGERPON, // 4'03" / 1.3m NATIONAL_DEX_NIDOQUEEN, NATIONAL_DEX_CLEFABLE, @@ -2674,21 +3730,22 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_WOBBUFFET, NATIONAL_DEX_SHIFTRY, NATIONAL_DEX_MEDICHAM, - //NATIONAL_DEX_MEDICHAM, // Mega + //NATIONAL_DEX_MEDICHAM_MEGA, NATIONAL_DEX_CACTURNE, NATIONAL_DEX_ZANGOOSE, NATIONAL_DEX_BASTIODON, - //NATIONAL_DEX_LOPUNNY, // Mega + //NATIONAL_DEX_LOPUNNY_MEGA, NATIONAL_DEX_BRONZONG, - //NATIONAL_DEX_LUCARIO, // Mega + //NATIONAL_DEX_LUCARIO_MEGA, NATIONAL_DEX_DRAPION, NATIONAL_DEX_TOXICROAK, NATIONAL_DEX_FROSLASS, NATIONAL_DEX_THROH, - NATIONAL_DEX_DARMANITAN, + NATIONAL_DEX_DARMANITAN,//_STANDARD_MODE, + //NATIONAL_DEX_DARMANITAN_ZEN_MODE, NATIONAL_DEX_SWANNA, NATIONAL_DEX_VANILLUXE, - //NATIONAL_DEX_LANDORUS, // Therian Forme + //NATIONAL_DEX_LANDORUS_THERIAN, NATIONAL_DEX_BARBARACLE, NATIONAL_DEX_CLAWITZER, NATIONAL_DEX_AMAURA, @@ -2698,20 +3755,27 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_BARRASKEWDA, NATIONAL_DEX_FROSMOTH, NATIONAL_DEX_SNEASLER, + NATIONAL_DEX_KLAWF, + NATIONAL_DEX_FINIZEN, + NATIONAL_DEX_PALAFIN,//_ZERO, + NATIONAL_DEX_IRON_JUGULIS, // 4'07" / 1.4m - //NATIONAL_DEX_BEEDRILL, // Mega - //NATIONAL_DEX_RATICATE, // Alolan Form, Totem-sized + //NATIONAL_DEX_BEEDRILL_MEGA, + //NATIONAL_DEX_RATICATE_ALOLAN_TOTEM_SIZED, NATIONAL_DEX_NIDOKING, NATIONAL_DEX_GOLEM, NATIONAL_DEX_DODUO, - //NATIONAL_DEX_GENGAR, // Mega + //NATIONAL_DEX_GENGAR_MEGA, NATIONAL_DEX_HITMONCHAN, - //NATIONAL_DEX_MR_MIME, // Galarian Form + //NATIONAL_DEX_MR_MIME_GALARIAN, NATIONAL_DEX_JYNX, NATIONAL_DEX_TAUROS, + //NATIONAL_DEX_TAUROS_PALDEAN_COMBAT_BREED, + //NATIONAL_DEX_TAUROS_PALDEAN_BLAZE_BREED, + //NATIONAL_DEX_TAUROS_PALDEAN_AQUA_BREED, NATIONAL_DEX_LEDIAN, NATIONAL_DEX_AMPHAROS, - //NATIONAL_DEX_AMPHAROS, // Mega + //NATIONAL_DEX_AMPHAROS_MEGA, NATIONAL_DEX_QUAGSIRE, NATIONAL_DEX_GRANBULL, NATIONAL_DEX_HOUNDOOM, @@ -2725,20 +3789,28 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_CARNIVINE, NATIONAL_DEX_PROBOPASS, NATIONAL_DEX_SAWK, - //NATIONAL_DEX_DARMANITAN, // Galarian Form + //NATIONAL_DEX_DARMANITAN_GALARIAN_STANDARD_MODE, + //NATIONAL_DEX_DARMANITAN_GALARIAN_ZEN_MODE, NATIONAL_DEX_CRUSTLE, NATIONAL_DEX_SIGILYPH, NATIONAL_DEX_ARCHEOPS, NATIONAL_DEX_MIENSHAO, NATIONAL_DEX_HEATMOR, NATIONAL_DEX_ZWEILOUS, - //NATIONAL_DEX_TORNADUS, // Therian Forme - NATIONAL_DEX_KELDEO, - //NATIONAL_DEX_AVALUGG, // Hisuian Form - //NATIONAL_DEX_GUMSHOOS, // Totem-sized + //NATIONAL_DEX_TORNADUS_THERIAN, + NATIONAL_DEX_KELDEO,//_ORDINARY, + //NATIONAL_DEX_KELDEO_RESOLUTE, + //NATIONAL_DEX_AVALUGG_HISUIAN, + //NATIONAL_DEX_GUMSHOOS_TOTEM_SIZED, NATIONAL_DEX_CINDERACE, - NATIONAL_DEX_EISCUE, + NATIONAL_DEX_EISCUE,//_ICE_FACE, + //NATIONAL_DEX_EISCUE_NOICE_FACE, NATIONAL_DEX_DRAKLOAK, + NATIONAL_DEX_ARBOLIVA, + NATIONAL_DEX_KILOWATTREL, + NATIONAL_DEX_FLUTTER_MANE, + NATIONAL_DEX_IRON_VALIANT, + NATIONAL_DEX_FEZANDIPITI, // 4'11" / 1.5m NATIONAL_DEX_PIDGEOT, NATIONAL_DEX_VENOMOTH, @@ -2749,7 +3821,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_HITMONLEE, NATIONAL_DEX_SCYTHER, NATIONAL_DEX_PINSIR, - //NATIONAL_DEX_MEWTWO, // Mega Y + //NATIONAL_DEX_MEWTWO_MEGA_Y, NATIONAL_DEX_XATU, NATIONAL_DEX_GIRAFARIG, NATIONAL_DEX_DUNSPARCE, @@ -2759,7 +3831,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_LUDICOLO, NATIONAL_DEX_EXPLOUD, NATIONAL_DEX_MANECTRIC, - //NATIONAL_DEX_ALTARIA, // Mega + //NATIONAL_DEX_ALTARIA_MEGA, NATIONAL_DEX_CLAYDOL, NATIONAL_DEX_CRADILY, NATIONAL_DEX_ARMALDO, @@ -2769,105 +3841,118 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_CRESSELIA, NATIONAL_DEX_DARKRAI, NATIONAL_DEX_SAMUROTT, - //NATIONAL_DEX_SAMUROTT, // Hisuian Form - //NATIONAL_DEX_AUDINO, // Mega + //NATIONAL_DEX_SAMUROTT_HISUIAN, + //NATIONAL_DEX_AUDINO_MEGA, NATIONAL_DEX_CONKELDURR, NATIONAL_DEX_SEISMITOAD, NATIONAL_DEX_KROOKODILE, NATIONAL_DEX_GOTHITELLE, NATIONAL_DEX_BRAVIARY, - NATIONAL_DEX_TORNADUS, // Incarnate Forme - NATIONAL_DEX_THUNDURUS, // Incarnate Forme - NATIONAL_DEX_LANDORUS, // Incarnate Forme + NATIONAL_DEX_TORNADUS,//_INCARNATE, + NATIONAL_DEX_THUNDURUS,//_INCARNATE, + NATIONAL_DEX_LANDORUS,//_INCARNATE, NATIONAL_DEX_GENESECT, NATIONAL_DEX_DELPHOX, NATIONAL_DEX_GRENINJA, - //NATIONAL_DEX_GRENINJA, // Ash-Greninja + //NATIONAL_DEX_GRENINJA_ASH, NATIONAL_DEX_PYROAR, NATIONAL_DEX_MALAMAR, NATIONAL_DEX_TREVENANT, NATIONAL_DEX_NOIVERN, NATIONAL_DEX_VIKAVOLT, - //NATIONAL_DEX_LURANTIS, // Totem-sized + //NATIONAL_DEX_LURANTIS_TOTEM_SIZED, NATIONAL_DEX_ORANGURU, NATIONAL_DEX_ZERAORA, NATIONAL_DEX_GRIMMSNARL, NATIONAL_DEX_MR_RIME, + NATIONAL_DEX_MEOWSCARADA, + NATIONAL_DEX_ARMAROUGE, + NATIONAL_DEX_BOMBIRDIER, + NATIONAL_DEX_GLIMMORA, + NATIONAL_DEX_WO_CHIEN, + NATIONAL_DEX_IRON_LEAVES, // 5'03" / 1.6m NATIONAL_DEX_BLASTOISE, - //NATIONAL_DEX_BLASTOISE, // Mega + //NATIONAL_DEX_BLASTOISE_MEGA, NATIONAL_DEX_GOLBAT, NATIONAL_DEX_MACHAMP, NATIONAL_DEX_TENTACRUEL, NATIONAL_DEX_SLOWBRO, - //NATIONAL_DEX_SLOWBRO, // Galarian Form + //NATIONAL_DEX_SLOWBRO_GALARIAN, NATIONAL_DEX_HAUNTER, NATIONAL_DEX_HYPNO, NATIONAL_DEX_ZAPDOS, - //NATIONAL_DEX_ZAPDOS, // Galarian Form - //NATIONAL_DEX_TYPHLOSION, // Hisuian Form + //NATIONAL_DEX_ZAPDOS_GALARIAN, + //NATIONAL_DEX_TYPHLOSION_HISUIAN, NATIONAL_DEX_NOCTOWL, NATIONAL_DEX_GARDEVOIR, - //NATIONAL_DEX_GARDEVOIR, // Mega + //NATIONAL_DEX_GARDEVOIR_MEGA, NATIONAL_DEX_DUSCLOPS, NATIONAL_DEX_METAGROSS, NATIONAL_DEX_RAMPARDOS, NATIONAL_DEX_MAGMORTAR, NATIONAL_DEX_GALLADE, - //NATIONAL_DEX_GALLADE, // Mega + //NATIONAL_DEX_GALLADE_MEGA, NATIONAL_DEX_EMBOAR, NATIONAL_DEX_ZEBSTRIKA, NATIONAL_DEX_ZOROARK, - //NATIONAL_DEX_ZOROARK, // Hisuian Form + //NATIONAL_DEX_ZOROARK_HISUIAN, NATIONAL_DEX_DRUDDIGON, NATIONAL_DEX_BISHARP, NATIONAL_DEX_BOUFFALANT, - //NATIONAL_DEX_BRAVIARY, // Hisuian Form + //NATIONAL_DEX_BRAVIARY_HISUIAN, NATIONAL_DEX_VOLCARONA, NATIONAL_DEX_CHESNAUGHT, NATIONAL_DEX_DECIDUEYE, - //NATIONAL_DEX_DECIDUEYE, // Hisuian Form + //NATIONAL_DEX_DECIDUEYE_HISUIAN, NATIONAL_DEX_KOMMO_O, - NATIONAL_DEX_TOXTRICITY, + NATIONAL_DEX_TOXTRICITY,//_AMPED, + //NATIONAL_DEX_TOXTRICITY_LOW_KEY, NATIONAL_DEX_GRAPPLOCT, NATIONAL_DEX_OBSTAGOON, NATIONAL_DEX_RUNERIGUS, - NATIONAL_DEX_ENAMORUS, - //NATIONAL_DEX_ENAMORUS, //Therian Form + NATIONAL_DEX_ENAMORUS,//_INCARNATE, + //NATIONAL_DEX_ENAMORUS_THERIAN, + NATIONAL_DEX_SKELEDIRGE, + NATIONAL_DEX_CERULEDGE, + NATIONAL_DEX_CYCLIZAR, + NATIONAL_DEX_FLAMIGO, + NATIONAL_DEX_IRON_THORNS, // 5'07" / 1.7m NATIONAL_DEX_CHARIZARD, - //NATIONAL_DEX_CHARIZARD, // Mega X - //NATIONAL_DEX_CHARIZARD, // Mega Y + //NATIONAL_DEX_CHARIZARD_MEGA_X, + //NATIONAL_DEX_CHARIZARD_MEGA_Y, NATIONAL_DEX_GOLDUCK, NATIONAL_DEX_VICTREEBEL, - //NATIONAL_DEX_GOLEM, // Alolan Form + //NATIONAL_DEX_GOLEM_ALOLAN, NATIONAL_DEX_RAPIDASH, - //NATIONAL_DEX_RAPIDASH, // Galarian Form + //NATIONAL_DEX_RAPIDASH_GALARIAN, NATIONAL_DEX_DEWGONG, - //NATIONAL_DEX_MAROWAK, // Alolan Form, Totem-sized - //NATIONAL_DEX_PINSIR, // Mega + //NATIONAL_DEX_MAROWAK_ALOLAN_TOTEM_SIZED, + //NATIONAL_DEX_PINSIR_MEGA, NATIONAL_DEX_ARTICUNO, - //NATIONAL_DEX_ARTICUNO, // Galarian Form + //NATIONAL_DEX_ARTICUNO_GALARIAN, NATIONAL_DEX_TYPHLOSION, - //NATIONAL_DEX_HERACROSS, // Mega + //NATIONAL_DEX_HERACROSS_MEGA, NATIONAL_DEX_SKARMORY, NATIONAL_DEX_SCEPTILE, NATIONAL_DEX_SWALOT, NATIONAL_DEX_HUNTAIL, NATIONAL_DEX_REGIROCK, - NATIONAL_DEX_DEOXYS, // Normal Forme - //NATIONAL_DEX_DEOXYS, // Attack Forme - //NATIONAL_DEX_DEOXYS, // Defense Forme - //NATIONAL_DEX_DEOXYS, // Speed Forme + NATIONAL_DEX_DEOXYS,//_NORMAL, + //NATIONAL_DEX_DEOXYS_ATTACK, + //NATIONAL_DEX_DEOXYS_DEFENSE, + //NATIONAL_DEX_DEOXYS_SPEED, NATIONAL_DEX_EMPOLEON, NATIONAL_DEX_LICKILICKY, NATIONAL_DEX_HEATRAN, NATIONAL_DEX_GIGALITH, NATIONAL_DEX_COFAGRIGUS, NATIONAL_DEX_GOGOAT, - NATIONAL_DEX_AEGISLASH, - //NATIONAL_DEX_GOODRA, //Hisuian Form - //NATIONAL_DEX_GOURGEIST, // Super Size + NATIONAL_DEX_AEGISLASH,//_SHIELD, + //NATIONAL_DEX_AEGISLASH_BLADE, + //NATIONAL_DEX_GOODRA_HISUIAN, + //NATIONAL_DEX_GOURGEIST_SUPER, NATIONAL_DEX_VOLCANION, NATIONAL_DEX_CRABOMINABLE, // 5'11" / 1.8m @@ -2877,16 +3962,16 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_MEGANIUM, NATIONAL_DEX_FURRET, NATIONAL_DEX_CROBAT, - //NATIONAL_DEX_SLOWKING, // Galarian Form + //NATIONAL_DEX_SLOWKING_GALARIAN, NATIONAL_DEX_SCIZOR, NATIONAL_DEX_URSARING, NATIONAL_DEX_KINGDRA, - //NATIONAL_DEX_MANECTRIC, // Mega + //NATIONAL_DEX_MANECTRIC_MEGA, NATIONAL_DEX_SHARPEDO, NATIONAL_DEX_GOREBYSS, - //NATIONAL_DEX_SALAMENCE, // Mega + //NATIONAL_DEX_SALAMENCE_MEGA, NATIONAL_DEX_REGICE, - //NATIONAL_DEX_LATIAS, // Mega + //NATIONAL_DEX_LATIAS_MEGA, NATIONAL_DEX_ELECTIVIRE, NATIONAL_DEX_HAXORUS, NATIONAL_DEX_HYDREIGON, @@ -2902,39 +3987,51 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_ZARUDE, NATIONAL_DEX_WYRDEER, NATIONAL_DEX_KLEAVOR, + NATIONAL_DEX_QUAQUAVAL, + //NATIONAL_DEX_PALAFIN_HERO, + NATIONAL_DEX_REVAVROOM, + NATIONAL_DEX_CLODSIRE, + NATIONAL_DEX_IRON_HANDS, + NATIONAL_DEX_OKIDOGI, // 6'03" / 1.9m NATIONAL_DEX_ARCANINE, NATIONAL_DEX_RHYDON, - //NATIONAL_DEX_HOUNDOOM, // Mega + //NATIONAL_DEX_HOUNDOOM_MEGA, NATIONAL_DEX_RAIKOU, - //NATIONAL_DEX_SCEPTILE, // Mega + //NATIONAL_DEX_SCEPTILE_MEGA, NATIONAL_DEX_BLAZIKEN, - //NATIONAL_DEX_BLAZIKEN, // Mega - //NATIONAL_DEX_SWAMPERT, // Mega + //NATIONAL_DEX_BLAZIKEN_MEGA, + //NATIONAL_DEX_SWAMPERT_MEGA, NATIONAL_DEX_CAMERUPT, NATIONAL_DEX_REGISTEEL, NATIONAL_DEX_GARCHOMP, - //NATIONAL_DEX_GARCHOMP, // Mega + //NATIONAL_DEX_GARCHOMP_MEGA, NATIONAL_DEX_YANMEGA, NATIONAL_DEX_GARBODOR, - NATIONAL_DEX_SAWSBUCK, + NATIONAL_DEX_SAWSBUCK,//_SPRING, + //NATIONAL_DEX_SAWSBUCK_SUMMER, + //NATIONAL_DEX_SAWSBUCK_AUTUMN, + //NATIONAL_DEX_SAWSBUCK_WINTER, NATIONAL_DEX_TERRAKION, NATIONAL_DEX_TYPE_NULL, NATIONAL_DEX_TAPU_BULU, NATIONAL_DEX_INTELEON, - NATIONAL_DEX_URSHIFU, // Single Strike Style - //NATIONAL_DEX_URSHIFU, // Rapid Strike Style + NATIONAL_DEX_URSHIFU,//_SINGLE_STRIKE_STYLE, + //NATIONAL_DEX_URSHIFU_RAPID_STRIKE_STYLE, + NATIONAL_DEX_TOEDSCRUEL, + NATIONAL_DEX_ESPATHRA, + NATIONAL_DEX_CHIEN_PAO, // 6'07" / 2.0m NATIONAL_DEX_VENUSAUR, NATIONAL_DEX_EKANS, - //NATIONAL_DEX_ARCANINE, //Hisuian Form - //NATIONAL_DEX_SLOWBRO, // Mega + //NATIONAL_DEX_ARCANINE_HISUIAN, + //NATIONAL_DEX_SLOWBRO_MEGA, NATIONAL_DEX_EXEGGUTOR, NATIONAL_DEX_MOLTRES, - //NATIONAL_DEX_MOLTRES, // Galarian Form + //NATIONAL_DEX_MOLTRES_GALARIAN, NATIONAL_DEX_MEWTWO, NATIONAL_DEX_SLOWKING, - //NATIONAL_DEX_SCIZOR, // Mega + //NATIONAL_DEX_SCIZOR_MEGA, NATIONAL_DEX_SUICUNE, NATIONAL_DEX_TYRANITAR, NATIONAL_DEX_SLAKING, @@ -2953,57 +4050,81 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_TURTONATOR, NATIONAL_DEX_ARCTOVISH, NATIONAL_DEX_SPECTRIER, + NATIONAL_DEX_HOUNDSTONE, + NATIONAL_DEX_KINGAMBIT, + NATIONAL_DEX_ROARING_MOON, // 6'11" / 2.1m - //NATIONAL_DEX_AERODACTYL, // Mega + //NATIONAL_DEX_AERODACTYL_MEGA, NATIONAL_DEX_SNORLAX, NATIONAL_DEX_MANTINE, NATIONAL_DEX_ENTEI, NATIONAL_DEX_AGGRON, - //NATIONAL_DEX_GLALIE, // Mega + //NATIONAL_DEX_GLALIE_MEGA, NATIONAL_DEX_EELEKTROSS, NATIONAL_DEX_COBALION, NATIONAL_DEX_PANGORO, - //NATIONAL_DEX_SALAZZLE, // Totem-sized + //NATIONAL_DEX_SALAZZLE_TOTEM_SIZED, NATIONAL_DEX_BEWEAR, NATIONAL_DEX_RILLABOOM, NATIONAL_DEX_HATTERENE, NATIONAL_DEX_REGIDRAGO, + NATIONAL_DEX_BAXCALIBUR, // 7'03" / 2.2m - //NATIONAL_DEX_PIDGEOT, // Mega + //NATIONAL_DEX_PIDGEOT_MEGA, NATIONAL_DEX_KANGASKHAN, - //NATIONAL_DEX_KANGASKHAN, // Mega + //NATIONAL_DEX_KANGASKHAN_MEGA, NATIONAL_DEX_DRAGONITE, - //NATIONAL_DEX_AGGRON, // Mega + //NATIONAL_DEX_AGGRON_MEGA, NATIONAL_DEX_TORTERRA, NATIONAL_DEX_ABOMASNOW, NATIONAL_DEX_DUSKNOIR, NATIONAL_DEX_JELLICENT, - //NATIONAL_DEX_KOMMO_O, // Totem-sized + //NATIONAL_DEX_KOMMO_O_TOTEM_SIZED, NATIONAL_DEX_CORVIKNIGHT, NATIONAL_DEX_SILICOBRA, NATIONAL_DEX_GLASTRIER, + NATIONAL_DEX_GREAT_TUSK, // 7'07" / 2.3m - //NATIONAL_DEX_MEWTWO, // Mega X + //NATIONAL_DEX_MEWTWO_MEGA_X, NATIONAL_DEX_FERALIGATR, NATIONAL_DEX_HARIYAMA, - //NATIONAL_DEX_LATIOS, // Mega - NATIONAL_DEX_SILVALLY, + //NATIONAL_DEX_LATIOS_MEGA, + NATIONAL_DEX_SILVALLY,//_NORMAL, + //NATIONAL_DEX_SILVALLY_FIGHTING, + //NATIONAL_DEX_SILVALLY_FLYING, + //NATIONAL_DEX_SILVALLY_POISON, + //NATIONAL_DEX_SILVALLY_GROUND, + //NATIONAL_DEX_SILVALLY_ROCK, + //NATIONAL_DEX_SILVALLY_BUG, + //NATIONAL_DEX_SILVALLY_GHOST, + //NATIONAL_DEX_SILVALLY_STEEL, + //NATIONAL_DEX_SILVALLY_FIRE, + //NATIONAL_DEX_SILVALLY_WATER, + //NATIONAL_DEX_SILVALLY_GRASS, + //NATIONAL_DEX_SILVALLY_ELECTRIC, + //NATIONAL_DEX_SILVALLY_PSYCHIC, + //NATIONAL_DEX_SILVALLY_ICE, + //NATIONAL_DEX_SILVALLY_DRAGON, + //NATIONAL_DEX_SILVALLY_DARK, + //NATIONAL_DEX_SILVALLY_FAIRY, NATIONAL_DEX_ARCTOZOLT, NATIONAL_DEX_DRACOVISH, + NATIONAL_DEX_GARGANACL, + NATIONAL_DEX_SANDY_SHOCKS, // 7'10" / 2.4m - //NATIONAL_DEX_VENUSAUR, // Mega + //NATIONAL_DEX_VENUSAUR_MEGA, NATIONAL_DEX_RHYPERIOR, NATIONAL_DEX_BUZZWOLE, NATIONAL_DEX_NECROZMA, - //NATIONAL_DEX_CALYREX, // Ice Rider - //NATIONAL_DEX_CALYREX, // Shadow Rider + //NATIONAL_DEX_CALYREX_ICE_RIDER, + //NATIONAL_DEX_CALYREX_SHADOW_RIDER, NATIONAL_DEX_URSALUNA, // 8'02" / 2.5m NATIONAL_DEX_LAPRAS, - //NATIONAL_DEX_TYRANITAR, // Mega - //NATIONAL_DEX_SHARPEDO, // Mega - //NATIONAL_DEX_CAMERUPT, // Mega - //NATIONAL_DEX_METAGROSS, // Mega + //NATIONAL_DEX_TYRANITAR_MEGA, + //NATIONAL_DEX_SHARPEDO_MEGA, + //NATIONAL_DEX_CAMERUPT_MEGA, + //NATIONAL_DEX_METAGROSS_MEGA, NATIONAL_DEX_MAMOSWINE, NATIONAL_DEX_SCOLIPEDE, NATIONAL_DEX_TYRANTRUM, @@ -3011,55 +4132,82 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_MELMETAL, NATIONAL_DEX_STONJOURNER, NATIONAL_DEX_OVERQWIL, + NATIONAL_DEX_ORTHWORM, + NATIONAL_DEX_VELUZA, + NATIONAL_DEX_KORAIDON, // 8'06" / 2.6m NATIONAL_DEX_BEARTIC, - //NATIONAL_DEX_VIKAVOLT, // Totem-sized + //NATIONAL_DEX_VIKAVOLT_TOTEM_SIZED, // 8'10" / 2.7m NATIONAL_DEX_SEVIPER, - //NATIONAL_DEX_ABOMASNOW, // Mega + //NATIONAL_DEX_ABOMASNOW_MEGA, NATIONAL_DEX_AURORUS, + NATIONAL_DEX_TING_LU, // 9'02" / 2.8m NATIONAL_DEX_GOLURK, NATIONAL_DEX_COALOSSAL, - NATIONAL_DEX_ZACIAN, // Hero of Many Battles - //NATIONAL_DEX_ZACIAN, // Crowned Sword + NATIONAL_DEX_ZACIAN,//_HERO_OF_MANY_BATTLES, + //NATIONAL_DEX_ZACIAN_CROWNED_SWORD, // 9'06" / 2.9m NATIONAL_DEX_ZEKROM, - NATIONAL_DEX_ZAMAZENTA, // Hero of Many Battles - //NATIONAL_DEX_ZAMAZENTA, // Crowned Shield + NATIONAL_DEX_ZAMAZENTA,//_HERO_OF_MANY_BATTLES, + //NATIONAL_DEX_ZAMAZENTA_CROWNED_SHIELD, // 9'10" / 3.0m - //NATIONAL_DEX_WEEZING, // Galarian Form - //NATIONAL_DEX_THUNDURUS, // Therian Form + //NATIONAL_DEX_WEEZING_GALARIAN, + //NATIONAL_DEX_THUNDURUS_THERIAN, NATIONAL_DEX_KYUREM, - NATIONAL_DEX_XERNEAS, + NATIONAL_DEX_XERNEAS,//_NEUTRAL, + //NATIONAL_DEX_XERNEAS_ACTIVE, NATIONAL_DEX_DRAMPA, NATIONAL_DEX_CENTISKORCH, NATIONAL_DEX_FALINKS, NATIONAL_DEX_COPPERAJAH, NATIONAL_DEX_DRAGAPULT, - NATIONAL_DEX_BASCULEGION, + NATIONAL_DEX_BASCULEGION,//_MALE, + //NATIONAL_DEX_BASCULEGION_FEMALE, // 10'02" / 3.1m - //NATIONAL_DEX_ARAQUANID, // Totem-sized + //NATIONAL_DEX_ARAQUANID_TOTEM_SIZED, // 10'06" / 3.2m - NATIONAL_DEX_ARCEUS, + NATIONAL_DEX_ARCEUS,//_NORMAL, + //NATIONAL_DEX_ARCEUS_FIGHTING, + //NATIONAL_DEX_ARCEUS_FLYING, + //NATIONAL_DEX_ARCEUS_POISON, + //NATIONAL_DEX_ARCEUS_GROUND, + //NATIONAL_DEX_ARCEUS_ROCK, + //NATIONAL_DEX_ARCEUS_BUG, + //NATIONAL_DEX_ARCEUS_GHOST, + //NATIONAL_DEX_ARCEUS_STEEL, + //NATIONAL_DEX_ARCEUS_FIRE, + //NATIONAL_DEX_ARCEUS_WATER, + //NATIONAL_DEX_ARCEUS_GRASS, + //NATIONAL_DEX_ARCEUS_ELECTRIC, + //NATIONAL_DEX_ARCEUS_PSYCHIC, + //NATIONAL_DEX_ARCEUS_ICE, + //NATIONAL_DEX_ARCEUS_DRAGON, + //NATIONAL_DEX_ARCEUS_DARK, NATIONAL_DEX_RESHIRAM, + NATIONAL_DEX_FARIGIRAF, + NATIONAL_DEX_SLITHER_WING, // 10'10" / 3.3m NATIONAL_DEX_SERPERIOR, - //NATIONAL_DEX_KYUREM, // Black + //NATIONAL_DEX_KYUREM_BLACK, // 11'02" / 3.4m NATIONAL_DEX_SOLGALEO, // 11'06" / 3.5m NATIONAL_DEX_ARBOK, NATIONAL_DEX_GROUDON, + NATIONAL_DEX_MIRAIDON, + NATIONAL_DEX_WALKING_WAKE, // 11'10" / 3.6m - //NATIONAL_DEX_KYUREM, // White + //NATIONAL_DEX_KYUREM_WHITE, NATIONAL_DEX_NAGANADEL, + NATIONAL_DEX_DUDUNSPARCE,//_TWO_SEGMENT, // 12'02" / 3.7m NATIONAL_DEX_REGIGIGAS, // 12'06" / 3.8m NATIONAL_DEX_HO_OH, NATIONAL_DEX_XURKITREE, - //NATIONAL_DEX_NECROZMA, // Dusk Mane + //NATIONAL_DEX_NECROZMA_DUSK_MANE, NATIONAL_DEX_SANDACONDA, // 12'10" / 3.9m NATIONAL_DEX_DHELMISE, @@ -3068,14 +4216,17 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_LUNALA, // 13'09" / 4.2m NATIONAL_DEX_PALKIA, - //NATIONAL_DEX_NECROZMA, // Dawn Wings + //NATIONAL_DEX_NECROZMA_DAWN_WINGS, // 14'09" / 4.5m NATIONAL_DEX_KYOGRE, - NATIONAL_DEX_GIRATINA, // Altered Forme - //NATIONAL_DEX_ZYGARDE, // Complete Forme + NATIONAL_DEX_GIRATINA,//_ALTERED, + //NATIONAL_DEX_ZYGARDE_COMPLETE, + NATIONAL_DEX_CETITAN, + //NATIONAL_DEX_DUDUNSPARCE_THREE_SEGMENT, // 16'05" / 5.0m - //NATIONAL_DEX_GROUDON, // Primal - NATIONAL_DEX_ZYGARDE, // 50% Forme + //NATIONAL_DEX_GROUDON_PRIMAL, + NATIONAL_DEX_ZYGARDE,//_50, + //NATIONAL_DEX_ZYGARDE_50_POWER_CONSTRUCT, // 17'01" / 5.2m NATIONAL_DEX_LUGIA, // 17'09" / 5.4m @@ -3087,37 +4238,39 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_YVELTAL, // 20'04" / 6.2m NATIONAL_DEX_MILOTIC, - //NATIONAL_DEX_PALKIA, //Origin Forme + //NATIONAL_DEX_PALKIA_ORIGIN, // 21'04" / 6.5m NATIONAL_DEX_GYARADOS, - //NATIONAL_DEX_GYARADOS, // Mega - //NATIONAL_DEX_HOOPA, // Unbound + //NATIONAL_DEX_GYARADOS_MEGA, + //NATIONAL_DEX_HOOPA_UNBOUND, // 22'08" / 6.9m - //NATIONAL_DEX_GIRATINA, // Origin Forme + //NATIONAL_DEX_GIRATINA_ORIGIN, // 23'00" / 7.0m NATIONAL_DEX_RAYQUAZA, - //NATIONAL_DEX_DIALGA, //Origin Forme + //NATIONAL_DEX_DIALGA_ORIGIN, // 24'07" / 7.5m - //NATIONAL_DEX_NECROZMA, // Ultra + //NATIONAL_DEX_NECROZMA_ULTRA, // 26'11" / 8.2m - //NATIONAL_DEX_WISHIWASHI, // School Form + //NATIONAL_DEX_WISHIWASHI_SCHOOL, // 28'10" / 8.8m NATIONAL_DEX_ONIX, // 30'02" / 9.2m NATIONAL_DEX_STEELIX, NATIONAL_DEX_CELESTEELA, // 32'02" / 9.8m - //NATIONAL_DEX_KYOGRE, // Primal + //NATIONAL_DEX_KYOGRE_PRIMAL, // 34'05" / 10.5m - //NATIONAL_DEX_STEELIX, // Mega + //NATIONAL_DEX_STEELIX_MEGA, // 35'05" / 10.8m - //NATIONAL_DEX_RAYQUAZA, // Mega + //NATIONAL_DEX_RAYQUAZA_MEGA, // 35'09" / 10.9m - //NATIONAL_DEX_EXEGGUTOR, // Alolan Form + //NATIONAL_DEX_EXEGGUTOR_ALOLAN, + // 12m + NATIONAL_DEX_DONDOZO, // 47'07" / 14.5m NATIONAL_DEX_WAILORD, // 65'07" / 20m NATIONAL_DEX_ETERNATUS, // 328'01" / 100m - //NATIONAL_DEX_ETERNATUS, // Eternamax + //NATIONAL_DEX_ETERNATUS_ETERNAMAX, }; diff --git a/src/data/pokemon/pokedex_text.h b/src/data/pokemon/pokedex_text.h index 5e28a204bea5..8b137891791f 100644 --- a/src/data/pokemon/pokedex_text.h +++ b/src/data/pokemon/pokedex_text.h @@ -1,5401 +1 @@ -const u8 gDummyPokedexText[] = _( - "This is a newly discovered Pokémon.\n" - "It is currently under investigation.\n" - "No detailed information is available\n" - "at this time."); -const u8 gBulbasaurPokedexText[] = _( - "Bulbasaur can be seen napping in bright\n" - "sunlight. There is a seed on its back.\n" - "By soaking up the sun's rays, the seed\n" - "grows progressively larger."); - -const u8 gIvysaurPokedexText[] = _( - "To support its bulb, Ivysaur's legs\n" - "grow sturdy. If it spends more time lying in\n" - "the sunlight, the bud will soon bloom into\n" - "a large flower."); - -const u8 gVenusaurPokedexText[] = _( - "Venusaur's flower is said to take on vivid\n" - "colors if it gets plenty of nutrition and\n" - "sunlight. The flower's aroma soothes the\n" - "emotions of people."); - -const u8 gCharmanderPokedexText[] = _( - "The flame that burns at the tip of its\n" - "tail is an indication of its emotions.\n" - "The flame wavers when Charmander is\n" - "happy, and blazes when it is enraged."); - -const u8 gCharmeleonPokedexText[] = _( - "Without pity, its sharp claws destroy foes.\n" - "If it encounters a strong enemy, it\n" - "becomes agitated, and the flame on its\n" - "tail flares with a bluish white color."); - -const u8 gCharizardPokedexText[] = _( - "A Charizard flies about in search of\n" - "strong opponents. It breathes intense\n" - "flames that can melt any material. However,\n" - "it will never torch a weaker foe."); - -const u8 gSquirtlePokedexText[] = _( - "Its shell is not just for protection.\n" - "Its rounded shape and the grooves on its\n" - "surface minimize resistance in water,\n" - "enabling Squirtle to swim at high speeds."); - -const u8 gWartortlePokedexText[] = _( - "Its large tail is covered with rich, thick\n" - "fur that deepens in color with age.\n" - "The scratches on its shell are evidence\n" - "of this Pokémon's toughness in battle."); - -const u8 gBlastoisePokedexText[] = _( - "The waterspouts that protrude from its\n" - "shell are highly accurate. Their bullets of\n" - "water can precisely nail tin cans from\n" - "a distance of over 160 feet."); - -const u8 gCaterpiePokedexText[] = _( - "Its voracious appetite compels it to\n" - "devour leaves bigger than itself without\n" - "hesitation. It releases a terribly strong\n" - "odor from its antennae."); - -const u8 gMetapodPokedexText[] = _( - "Its shell is as hard as an iron slab.\n" - "A Metapod does not move very much\n" - "because it is preparing its soft innards\n" - "for evolution inside the shell."); - -const u8 gButterfreePokedexText[] = _( - "It has a superior ability to search for\n" - "delicious honey from flowers. It can seek,\n" - "extract, and carry honey from flowers\n" - "blooming over six miles away."); - -const u8 gWeedlePokedexText[] = _( - "A Weedle has an extremely acute sense\n" - "of smell. It distinguishes its favorite\n" - "kinds of leaves from those it dislikes by\n" - "sniffing with its big red nose."); - -const u8 gKakunaPokedexText[] = _( - "It remains virtually immobile while it\n" - "clings to a tree. However, on the inside,\n" - "it busily prepares for evolution. This is\n" - "evident from how hot its shell becomes."); - -const u8 gBeedrillPokedexText[] = _( - "A Beedrill is extremely territorial.\n" - "For safety reasons, no one should ever\n" - "approach its nest. If angered, they will\n" - "attack in a swarm."); - -const u8 gPidgeyPokedexText[] = _( - "It has an extremely sharp sense of\n" - "direction. It can unerringly return home to\n" - "its nest, however far it may be removed\n" - "from its familiar surroundings."); - -const u8 gPidgeottoPokedexText[] = _( - "This Pokémon flies around, patrolling its\n" - "large territory. If its living space is\n" - "violated, it shows no mercy in thoroughly\n" - "punishing the foe with its sharp claws."); - -const u8 gPidgeotPokedexText[] = _( - "This Pokémon has gorgeous, glossy\n" - "feathers. Many Trainers are so captivated\n" - "by the beautiful feathers on its head that\n" - "they choose Pidgeot as their Pokémon."); - -const u8 gRattataPokedexText[] = _( - "A Rattata is cautious in the extreme.\n" - "Even while it is asleep, it constantly\n" - "moves its ears and listens for danger.\n" - "It will make its nest anywhere."); - -const u8 gRaticatePokedexText[] = _( - "A Raticate's sturdy fangs grow steadily.\n" - "To keep them ground down, it gnaws on\n" - "rocks and logs. It may even chew on the\n" - "walls of houses."); - -const u8 gSpearowPokedexText[] = _( - "Its loud cry can be heard over half a mile\n" - "away. If its high, keening cry is heard\n" - "echoing all around, it is a sign that they\n" - "are warning each other of danger."); - -const u8 gFearowPokedexText[] = _( - "Its long neck and elongated beak are\n" - "ideal for catching prey in soil or water.\n" - "It deftly moves this extended and skinny\n" - "beak to pluck prey."); - -const u8 gEkansPokedexText[] = _( - "An Ekans curls itself up in a spiral while\n" - "it rests. This position allows it to quickly\n" - "respond to an enemy from any direction\n" - "with a threat from its upraised head."); - -const u8 gArbokPokedexText[] = _( - "This Pokémon has a terrifically strong\n" - "constricting power. It can even flatten\n" - "steel oil drums. Once it wraps its body\n" - "around its foe, escaping is impossible."); - -const u8 gPikachuPokedexText[] = _( - "It stores electricity in the electric sacs\n" - "on its cheeks. When it releases pent-up\n" - "energy in a burst, the electric power is\n" - "equal to a lightning bolt."); - -const u8 gRaichuPokedexText[] = _( - "If it stores too much electricity, its\n" - "behavior turns aggressive. To avoid this,\n" - "it occasionally discharges excess energy\n" - "and calms itself down."); - -const u8 gSandshrewPokedexText[] = _( - "When it curls up in a ball, it can make any\n" - "attack bounce off harmlessly. Its hide has\n" - "turned tough and solid as a result of\n" - "living in the desert."); - -const u8 gSandslashPokedexText[] = _( - "It curls up in a ball to protect itself from\n" - "enemy attacks. It also curls up to prevent\n" - "heatstroke during the daytime when\n" - "temperatures rise sharply."); - -const u8 gNidoranFPokedexText[] = _( - "Its highly toxic barbs are thought to have\n" - "developed as protection for this small-\n" - "bodied Pokémon. When enraged, it releases\n" - "a horrible toxin from its horn."); - -const u8 gNidorinaPokedexText[] = _( - "When it is with its friends or\n" - "family, its barbs are tucked away to\n" - "prevent injury. It appears to become\n" - "nervous if separated from the others."); - -const u8 gNidoqueenPokedexText[] = _( - "It is adept at sending foes flying with\n" - "harsh tackles using its tough, scaly body.\n" - "This Pokémon is at its strongest when\n" - "it is defending its young."); - -const u8 gNidoranMPokedexText[] = _( - "The male Nidoran has developed muscles\n" - "that freely move its ears in any direction.\n" - "Even the slightest sound does not escape\n" - "this Pokémon's notice."); - -const u8 gNidorinoPokedexText[] = _( - "Its horn is harder than a diamond.\n" - "If it senses a hostile presence, all the\n" - "barbs on its back bristle up at once, and it\n" - "challenges the foe with all its might."); - -const u8 gNidokingPokedexText[] = _( - "A Nidoking's thick tail packs enormously\n" - "destructive power capable of toppling\n" - "a metal transmission tower. Once it goes\n" - "on a rampage, there is no stopping it."); - -const u8 gClefairyPokedexText[] = _( - "On every night of a full moon, they come\n" - "out to play. When dawn arrives, the tired\n" - "Clefairy go to sleep nestled up against\n" - "each other in deep and quiet mountains."); - -const u8 gClefablePokedexText[] = _( - "A Clefable uses its wings to skip lightly \n" - "as if it were flying. Its bouncy step\n" - "lets it even walk on water. On quiet,\n" - "moonlit nights, it strolls on lakes."); - -const u8 gVulpixPokedexText[] = _( - "It can freely control fire, making fiery\n" - "orbs fly like will-o'-the-wisps. Just\n" - "before evolution, its six tails grow hot \n" - "as if on fire."); - -const u8 gNinetalesPokedexText[] = _( - "It has long been said that each of the\n" - "nine tails embody an enchanted power.\n" - "A long-lived Ninetales will have fur that\n" - "shines like gold."); - -const u8 gJigglypuffPokedexText[] = _( - "Nothing can avoid falling asleep hearing a\n" - "Jigglypuff's song. The sound waves of its\n" - "singing voice match the brain waves of\n" - "someone in a deep sleep."); - -const u8 gWigglytuffPokedexText[] = _( - "Its fur is the ultimate in luxuriousness.\n" - "Sleeping alongside a Wigglytuff is simply\n" - "divine. Its body expands seemingly without\n" - "end when it inhales."); - -const u8 gZubatPokedexText[] = _( - "While living in pitch-black caverns, their\n" - "eyes gradually grew shut and deprived\n" - "them of vision. They use ultrasonic waves\n" - "to detect obstacles."); - -const u8 gGolbatPokedexText[] = _( - "Its fangs easily puncture even thick\n" - "animal hide. It loves to feast on the blood\n" - "of people and Pokémon. It flits about in\n" - "darkness and strikes from behind."); - -const u8 gOddishPokedexText[] = _( - "This Pokémon grows by absorbing moonlight.\n" - "During the daytime, it buries itself in the\n" - "ground, leaving only its leaves exposed to\n" - "avoid detection by its enemies."); - -const u8 gGloomPokedexText[] = _( - "A horribly noxious honey drools from its\n" - "mouth. One whiff of the honey can result\n" - "in memory loss. Some fans are said to\n" - "enjoy this overwhelming stink, however."); - -const u8 gVileplumePokedexText[] = _( - "In seasons when it produces more pollen,\n" - "the air around a Vileplume turns yellow\n" - "with the powder as it walks. The pollen is\n" - "highly toxic and causes paralysis."); - -const u8 gParasPokedexText[] = _( - "A Paras has parasitic tochukaso\n" - "mushrooms growing on its back. They grow\n" - "by drawing nutrients from the host. They\n" - "are valued as a medicine for long life."); - -const u8 gParasectPokedexText[] = _( - "Parasect are known to infest the roots of\n" - "large trees en masse and drain nutrients.\n" - "When an infested tree dies, they move\n" - "onto another tree all at once."); - -const u8 gVenonatPokedexText[] = _( - "Its coat of thin, stiff hair that covers\n" - "its entire body is said to have evolved\n" - "for protection. Its large eyes never fail\n" - "to spot even miniscule prey."); - -const u8 gVenomothPokedexText[] = _( - "Venomoth are nocturnal--they are only\n" - "active at night. Their favorite prey are\n" - "insects that gather around streetlights,\n" - "attracted by the light in the darkness."); - -const u8 gDiglettPokedexText[] = _( - "Diglett are raised in most farms.\n" - "The reason is simple--wherever they\n" - "burrow, the soil is left perfectly tilled\n" - "for growing delicious crops."); - -const u8 gDugtrioPokedexText[] = _( - "Because the triplets originally split from\n" - "one body, they think exactly alike.\n" - "They work cooperatively to burrow\n" - "endlessly through the ground."); - -const u8 gMeowthPokedexText[] = _( - "Meowth withdraw their sharp claws into\n" - "their paws to silently sneak about.\n" - "For some reason, this Pokémon loves\n" - "shiny coins that glitter with light."); - -const u8 gPersianPokedexText[] = _( - "A Persian's six bold whiskers sense air\n" - "movements to determine what is in its\n" - "vicinity. It becomes docile if grabbed\n" - "by the whiskers."); - -const u8 gPsyduckPokedexText[] = _( - "When its headache intensifies, it starts\n" - "using strange powers. However, it has no\n" - "recollection of its powers, so it always\n" - "looks befuddled and bewildered."); - -const u8 gGolduckPokedexText[] = _( - "A Golduck is an adept swimmer.\n" - "It sometimes joins competitive swimmers\n" - "in training. It uses psychic powers when\n" - "its forehead shimmers with light."); - -const u8 gMankeyPokedexText[] = _( - "When it starts shaking and its nasal\n" - "breathing turns rough, it's a sure sign\n" - "of anger. However, since this happens\n" - "instantly, there is no time to flee."); - -const u8 gPrimeapePokedexText[] = _( - "When it becomes furious, its blood\n" - "circulation becomes more robust, and\n" - "its muscles are made stronger. But it\n" - "also becomes much less intelligent."); - -const u8 gGrowlithePokedexText[] = _( - "Its superb sense of smell ensures that\n" - "this Pokémon won't forget any scent,\n" - "no matter what. It uses its sense of smell\n" - "to detect the emotions of others."); - -const u8 gArcaninePokedexText[] = _( - "This fleet-footed Pokémon is said to run\n" - "over 6,200 miles in a single day and night.\n" - "The fire that blazes wildly within its body\n" - "is its source of power."); - -const u8 gPoliwagPokedexText[] = _( - "It is possible to see this Pokémon's spiral\n" - "innards right through its thin skin.\n" - "However, the skin is also very flexible.\n" - "Even sharp fangs bounce right off it."); - -const u8 gPoliwhirlPokedexText[] = _( - "Its body surface is always wet and slick\n" - "with an oily fluid. Because of this greasy\n" - "covering, it can easily slip and slide out\n" - "of the clutches of any enemy in battle."); - -const u8 gPoliwrathPokedexText[] = _( - "Its highly developed muscles never grow\n" - "fatigued, however much it exercises.\n" - "This Pokémon can swim back and forth\n" - "across the Pacific Ocean without effort."); - -const u8 gAbraPokedexText[] = _( - "A Pokémon that sleeps 18 hours a day.\n" - "Observation revealed that it uses\n" - "Teleport to change its location once\n" - "every hour."); - -const u8 gKadabraPokedexText[] = _( - "It is rumored that a boy with psychic\n" - "abilities suddenly transformed into\n" - "Kadabra while he was assisting research\n" - "into extrasensory powers."); - -const u8 gAlakazamPokedexText[] = _( - "While it has strong psychic abilities and\n" - "high intelligence, an Alakazam's muscles\n" - "are very weak. It uses psychic power to\n" - "move its body."); - -const u8 gMachopPokedexText[] = _( - "It continually undertakes strenuous\n" - "training to master all forms of martial\n" - "arts. Its strength lets it easily hoist\n" - "a sumo wrestler onto its shoulders."); - -const u8 gMachokePokedexText[] = _( - "A belt is worn by a Machoke to keep its\n" - "overwhelming power under control.\n" - "Because it is so dangerous, no one has\n" - "ever removed the belt."); - -const u8 gMachampPokedexText[] = _( - "It is impossible to defend against punches\n" - "and chops doled out by its four arms.\n" - "Its fighting spirit flares up when it faces\n" - "a tough opponent."); - -const u8 gBellsproutPokedexText[] = _( - "A Bellsprout's thin and flexible body lets\n" - "it bend and sway to avoid any attack,\n" - "however strong it may be. From its mouth,\n" - "it leaks a fluid that melts even iron."); - -const u8 gWeepinbellPokedexText[] = _( - "At night, a Weepinbell hangs on to a tree\n" - "branch with its hooked rear and sleeps.\n" - "If it moves around in its sleep, it may\n" - "wake up to find itself on the ground."); - -const u8 gVictreebelPokedexText[] = _( - "The long vine extending from its head is\n" - "waved about as if it were a living thing to\n" - "attract prey. When an unsuspecting victim\n" - "approaches, it is swallowed whole."); - -const u8 gTentacoolPokedexText[] = _( - "Its body is almost entirely composed of\n" - "water. It ensnares its foe with its two\n" - "long tentacles, then stabs with the poison\n" - "stingers at their tips."); - -const u8 gTentacruelPokedexText[] = _( - "It lives in complex rock formations on\n" - "the ocean floor and traps prey using its\n" - "80 tentacles. Its red orbs glow when it\n" - "grows excited or agitated."); - -const u8 gGeodudePokedexText[] = _( - "It climbs mountain paths using only the\n" - "power of its arms. Because they look just\n" - "like boulders lining paths, hikers may step\n" - "on them without noticing."); - -const u8 gGravelerPokedexText[] = _( - "They descend from mountains by tumbling\n" - "down steep slopes. They are so brutal,\n" - "they smash aside obstructing trees and\n" - "massive boulders with thunderous tackles."); - -const u8 gGolemPokedexText[] = _( - "It is said to live in volcanic craters\n" - "on mountain peaks. Once a year, it sheds\n" - "its hide and grows larger. The shed hide\n" - "crumbles and returns to the soil."); - -const u8 gPonytaPokedexText[] = _( - "A Ponyta is very weak at birth. It can\n" - "barely stand up. Its legs become stronger\n" - "as it stumbles and falls while trying to\n" - "keep up with its parent."); - -const u8 gRapidashPokedexText[] = _( - "It usually canters casually in the fields\n" - "and plains. But once a Rapidash turns\n" - "serious, its fiery manes flare and blaze\n" - "as it gallops its way up to 150 mph."); - -const u8 gSlowpokePokedexText[] = _( - "It catches prey by dipping its tail in\n" - "water at the side of a river. But it often\n" - "forgets what it is doing and spends entire\n" - "days just loafing at water's edge."); - -const u8 gSlowbroPokedexText[] = _( - "Its tail has a Shellder firmly attached\n" - "with a bite. As a result, the tail can't be\n" - "used for fishing anymore. This forces it\n" - "to reluctantly swim and catch prey."); - -const u8 gMagnemitePokedexText[] = _( - "The units at its sides are extremely\n" - "powerful magnets. They generate enough\n" - "magnetism to draw in iron objects from\n" - "over 300 feet away."); - -const u8 gMagnetonPokedexText[] = _( - "It is actually three Magnemite linked\n" - "by magnetism. It generates powerful radio\n" - "waves that raise temperatures by 3.6\n" - "degrees F within a 3,300-foot radius."); - -const u8 gFarfetchdPokedexText[] = _( - "It is always seen with a stick from a plant.\n" - "Apparently, there are good sticks and bad\n" - "sticks. This Pokémon occasionally fights\n" - "with others over choice sticks."); - -const u8 gDoduoPokedexText[] = _( - "Even while eating or sleeping, one of the\n" - "heads remains always vigilant for any sign\n" - "of danger. When threatened, it flees at\n" - "over 60 miles per hour."); - -const u8 gDodrioPokedexText[] = _( - "A peculiar Pokémon species with three\n" - "heads. It vigorously races across grassy\n" - "plains even in arid seasons with little\n" - "rainfall."); - -const u8 gSeelPokedexText[] = _( - "Seel hunt for prey in frigid, ice-covered\n" - "seas. When it needs to breathe, it punches\n" - "a hole through the ice with the sharply\n" - "protruding section of its head."); - -const u8 gDewgongPokedexText[] = _( - "It loves to snooze on bitterly cold ice.\n" - "The sight of this Pokémon sleeping on\n" - "a glacier was mistakenly thought to be\n" - "a mermaid by a mariner long ago."); - -const u8 gGrimerPokedexText[] = _( - "Born from polluted sludge in the sea,\n" - "Grimer's favorite food is anything filthy.\n" - "They feed on wastewater pumped out from\n" - "factories."); - -const u8 gMukPokedexText[] = _( - "It prefers warm and humid habitats.\n" - "In the summertime, the toxic substances\n" - "in its body intensify, making Muk reek like\n" - "putrid kitchen garbage."); - -const u8 gShellderPokedexText[] = _( - "At night, it burrows a hole in the seafloor\n" - "with its broad tongue to make a place to\n" - "sleep. While asleep, it closes its shell,\n" - "but leaves its tongue hanging out."); - -const u8 gCloysterPokedexText[] = _( - "It swims in the sea by swallowing water,\n" - "then jetting it out toward the rear.\n" - "The Cloyster shoots spikes from its\n" - "shell using the same system."); - -const u8 gGastlyPokedexText[] = _( - "When exposed to a strong wind, a Gastly's\n" - "gaseous body quickly dwindles away.\n" - "They cluster under the eaves of houses\n" - "to escape the ravages of wind."); - -const u8 gHaunterPokedexText[] = _( - "If a Haunter beckons you while it is\n" - "floating in darkness, don't approach it.\n" - "This Pokémon will try to lick you with its\n" - "tongue and steal your life away."); - -const u8 gGengarPokedexText[] = _( - "Deep in the night, your shadow cast by\n" - "a streetlight may suddenly overtake you.\n" - "It is actually a Gengar running past\n" - "you, pretending to be your shadow."); - -const u8 gOnixPokedexText[] = _( - "There is a magnet in its brain that\n" - "prevents an Onix from losing direction\n" - "while tunneling. As it grows older, its body\n" - "becomes steadily rounder and smoother."); - -const u8 gDrowzeePokedexText[] = _( - "If your nose becomes itchy while you are\n" - "sleeping, it's a sure sign that a Drowzee is\n" - "standing above your pillow and trying to\n" - "eat your dream through your nostrils."); - -const u8 gHypnoPokedexText[] = _( - "The arcing movement and glitter of the\n" - "pendulum in a Hypno's hand lull the foe\n" - "into deep hypnosis. While searching for\n" - "prey, it polishes the pendulum."); - -const u8 gKrabbyPokedexText[] = _( - "Krabby live in holes dug into beaches.\n" - "On sandy shores with little in the way\n" - "of food, they can be seen squabbling with\n" - "each other over territory."); - -const u8 gKinglerPokedexText[] = _( - "It waves its huge, oversized claw in the\n" - "air to communicate with others.\n" - "But since the claw is so heavy, this\n" - "Pokémon quickly tires."); - -const u8 gVoltorbPokedexText[] = _( - "It bears an uncanny and unexplained\n" - "resemblance to a Poké Ball. Because it\n" - "explodes at the slightest shock, even\n" - "veteran Trainers treat it with caution."); - -const u8 gElectrodePokedexText[] = _( - "They appear in great numbers at electric\n" - "power plants. Because they feed on\n" - "electricity, they cause massive and\n" - "chaotic blackouts in nearby cities."); - -const u8 gExeggcutePokedexText[] = _( - "It consists of six eggs that care for each\n" - "other. The eggs attract each other and\n" - "spin around. When cracks increasingly\n" - "appear, it is close to evolution."); - -const u8 gExeggutorPokedexText[] = _( - "Originally from the tropics, Exeggutor's\n" - "heads grow larger from exposure to strong\n" - "sunlight. It is said that when the heads\n" - "fall, they group to form an Exeggcute."); - -const u8 gCubonePokedexText[] = _( - "It pines for the mother it will never see\n" - "again. Seeing a likeness of its mother in\n" - "the full moon, it cries. The stains on the\n" - "skull it wears are from its tears."); - -const u8 gMarowakPokedexText[] = _( - "A Marowak is the evolved form of a Cubone\n" - "that has grown tough by overcoming the\n" - "grief of losing its mother. Its tempered\n" - "and hardened spirit is not easily broken."); - -const u8 gHitmonleePokedexText[] = _( - "Its legs freely stretch and contract.\n" - "Using these springlike limbs, it bowls over\n" - "foes with devastating kicks. After battle,\n" - "it rubs down its tired legs."); - -const u8 gHitmonchanPokedexText[] = _( - "A Hitmonchan is said to possess the\n" - "spirit of a boxer who aimed to become the\n" - "world champion. Having an indomitable\n" - "spirit means that it will never give up."); - -const u8 gLickitungPokedexText[] = _( - "Whenever it sees something unfamiliar,\n" - "it always licks the object because it\n" - "memorizes things by texture and taste.\n" - "It is somewhat put off by sour things."); - -const u8 gKoffingPokedexText[] = _( - "Getting up close to a Koffing will give\n" - "you a chance to observe, through its thin\n" - "skin, the toxic gases swirling inside. It\n" - "blows up at the slightest stimulation."); - -const u8 gWeezingPokedexText[] = _( - "By diluting its toxic gases with a special\n" - "process, the highest grade of perfume can\n" - "be extracted. To Weezing, gases emanating\n" - "from garbage are the ultimate feast."); - -const u8 gRhyhornPokedexText[] = _( - "Once it starts running, it doesn't stop.\n" - "Its tiny brain makes it so stupid that it\n" - "can't remember why it started running in\n" - "the first place."); - -const u8 gRhydonPokedexText[] = _( - "Its horn, which rotates like a drill,\n" - "destroys tall buildings with one strike.\n" - "It stands on its hind legs, and its brain\n" - "is well developed."); - -const u8 gChanseyPokedexText[] = _( - "Chansey lay nutritionally excellent eggs\n" - "every day. The eggs are so delicious, they\n" - "are eagerly devoured by even those people\n" - "who have lost their appetite."); - -const u8 gTangelaPokedexText[] = _( - "Its vines snap off easily and painlessly\n" - "if they are grabbed, allowing it to make a\n" - "quick getaway. The lost vines are replaced\n" - "by new growth the very next day."); - -const u8 gKangaskhanPokedexText[] = _( - "If you come across a young Kangaskhan\n" - "playing by itself, never try to catch it.\n" - "The baby's parent is sure to be in the area,\n" - "and it will become violently enraged."); - -const u8 gHorseaPokedexText[] = _( - "By cleverly flicking the fins on its back\n" - "side to side, it moves in any direction\n" - "while facing forward. It spits ink to\n" - "escape if it senses danger."); - -const u8 gSeadraPokedexText[] = _( - "The poisonous barbs all over its body are\n" - "highly valued as ingredients for making\n" - "traditional herbal medicine. It shows no\n" - "mercy to anything approaching its nest."); - -const u8 gGoldeenPokedexText[] = _( - "In the springtime, schools of Goldeen\n" - "can be seen swimming up falls and rivers.\n" - "It metes out staggering damage with its\n" - "single horn."); - -const u8 gSeakingPokedexText[] = _( - "It punches holes in boulders on stream-\n" - "beds. This is a clever innovation that\n" - "prevents its eggs from being attacked or\n" - "washed away by the current."); - -const u8 gStaryuPokedexText[] = _( - "It gathers with others in the night and\n" - "makes its red core glow on and off with\n" - "the twinkling stars. It can regenerate\n" - "limbs if they are severed from its body."); - -const u8 gStarmiePokedexText[] = _( - "People in ancient times imagined that\n" - "Starmie were transformed from the\n" - "reflections of stars that twinkled on\n" - "gentle waves at night."); - -const u8 gMrMimePokedexText[] = _( - "A Mr. Mime is a master of pantomime. It can\n" - "convince others that something unseeable\n" - "actually exists. Once believed, the\n" - "imaginary object does become real."); - -const u8 gScytherPokedexText[] = _( - "Its blindingly fast speed adds to the\n" - "sharpness of its twin forearm scythes.\n" - "The scythes can slice through thick logs\n" - "in one wicked stroke."); - -const u8 gJynxPokedexText[] = _( - "A Jynx sashays rhythmically as if it were\n" - "dancing. Its motions are so bouncingly\n" - "alluring, people seeing it are compelled to\n" - "shake their hips without noticing."); - -const u8 gElectabuzzPokedexText[] = _( - "When a storm approaches, it competes with\n" - "others to scale heights that are likely to\n" - "be stricken by lightning. Some towns use\n" - "Electabuzz in place of lightning rods."); - -const u8 gMagmarPokedexText[] = _( - "In battle, it blows out intense flames from\n" - "all over its body to intimidate its foe.\n" - "These fiery bursts create heat waves that\n" - "ignite grass and trees in the area."); - -const u8 gPinsirPokedexText[] = _( - "Their pincers are strong enough to\n" - "shatter thick logs. Because they dislike\n" - "cold, Pinsir burrow and sleep under\n" - "the ground on chilly nights."); - -const u8 gTaurosPokedexText[] = _( - "It is not satisfied unless it is rampaging\n" - "at all times. If there is no opponent for\n" - "Tauros to battle, it will charge at thick\n" - "trees and knock them down to calm itself."); - -const u8 gMagikarpPokedexText[] = _( - "Its swimming muscles are weak, so it is\n" - "easily washed away by currents. In places\n" - "where water pools, you can see many\n" - "Magikarp deposited there by the flow."); - -const u8 gGyaradosPokedexText[] = _( - "It is an extremely vicious and violent\n" - "Pokémon. When humans begin to fight,\n" - "it will appear and burn everything to the\n" - "ground with intensely hot flames."); - -const u8 gLaprasPokedexText[] = _( - "People have driven Lapras almost to the\n" - "point of extinction. In the evenings,\n" - "it is said to sing plaintively as it seeks\n" - "what few others of its kind still remain."); - -const u8 gDittoPokedexText[] = _( - "A Ditto rearranges its cell structure to\n" - "transform itself. However, if it tries to\n" - "change based on its memory, it will get\n" - "details wrong."); - -const u8 gEeveePokedexText[] = _( - "An Eevee has an unstable genetic makeup\n" - "that suddenly mutates due to its\n" - "environment. Radiation from various\n" - "Stones causes this Pokémon to evolve."); - -const u8 gVaporeonPokedexText[] = _( - "Vaporeon underwent a spontaneous\n" - "mutation and grew fins and gills that\n" - "allow them to live underwater. They have\n" - "the ability to freely control water."); - -const u8 gJolteonPokedexText[] = _( - "Its cells generate weak power that is\n" - "amplified by its fur's static electricity\n" - "to drop thunderbolts. The bristling fur is\n" - "made of electrically charged needles."); - -const u8 gFlareonPokedexText[] = _( - "Flareon's fluffy fur releases heat into\n" - "the air so that its body does not get\n" - "excessively hot. Its body temperature can\n" - "rise to a maximum of 1,650 degrees F."); - -const u8 gPorygonPokedexText[] = _( - "It is capable of reverting itself entirely\n" - "back to program data in order to enter\n" - "cyberspace. A Porygon is copy-\n" - "protected so it cannot be duplicated."); - -const u8 gOmanytePokedexText[] = _( - "One of the ancient and long-since-extinct\n" - "Pokémon that have been regenerated\n" - "from fossils by humans. If attacked,\n" - "it withdraws into its hard shell."); - -const u8 gOmastarPokedexText[] = _( - "An Omastar uses its tentacles to capture\n" - "its prey. It is believed to have become\n" - "extinct because its shell grew too large,\n" - "making its movements slow and ponderous."); - -const u8 gKabutoPokedexText[] = _( - "It is a Pokémon that has been regenerated\n" - "from a fossil. However, in rare cases, living\n" - "examples have been discovered. Kabuto\n" - "have not changed for 300 million years."); - -const u8 gKabutopsPokedexText[] = _( - "Kabutops once swam underwater to hunt \n" - "for prey. It was apparently evolving from\n" - "being a water dweller to living on land as\n" - "evident from changes in its gills and legs."); - -const u8 gAerodactylPokedexText[] = _( - "Aerodactyl is a Pokémon from the age\n" - "of dinosaurs. It was regenerated from DNA\n" - "extracted from amber. It is imagined to\n" - "have been the king of the skies."); - -const u8 gSnorlaxPokedexText[] = _( - "Snorlax's typical day consists of nothing\n" - "more than eating and sleeping. It is such\n" - "a docile Pokémon that there are children\n" - "who use its big belly as a place to play."); - -const u8 gArticunoPokedexText[] = _( - "Articuno is a legendary bird Pokémon that\n" - "can control ice. The flapping of its wings\n" - "chills the air. As a result, it is said that\n" - "when this Pokémon flies, snow will fall."); - -const u8 gZapdosPokedexText[] = _( - "Zapdos is a legendary bird Pokémon that\n" - "has the ability to control electricity.\n" - "It usually lives in thunderclouds. It gains\n" - "power if it is stricken by lightning bolts."); - -const u8 gMoltresPokedexText[] = _( - "Moltres is a legendary bird Pokémon\n" - "that can control fire. If injured, it is said\n" - "to dip its body in the molten magma of\n" - "a volcano to burn and heal itself."); - -const u8 gDratiniPokedexText[] = _( - "A Dratini continually molts and sloughs\n" - "off its old skin. It does so because the\n" - "life energy within its body steadily builds\n" - "to reach uncontrollable levels."); - -const u8 gDragonairPokedexText[] = _( - "A Dragonair stores an enormous amount of\n" - "energy inside its body. It is said to alter\n" - "the weather around it by loosing energy\n" - "from the crystals on its neck and tail."); - -const u8 gDragonitePokedexText[] = _( - "It can circle the globe in just 16 hours.\n" - "It is a kindhearted Pokémon that leads\n" - "lost and foundering ships in a storm\n" - "to the safety of land."); - -const u8 gMewtwoPokedexText[] = _( - "A Pokémon that was created by genetic\n" - "manipulation. However, even though the\n" - "scientific power of humans made its body,\n" - "they failed to give it a warm heart."); - -const u8 gMewPokedexText[] = _( - "A Mew is said to possess the genes of all\n" - "Pokémon. It is capable of making itself\n" - "invisible at will, so it entirely avoids\n" - "notice even if it approaches people."); - -const u8 gChikoritaPokedexText[] = _( - "It waves its leaf around to keep foes\n" - "at bay. However, a sweet fragrance also\n" - "wafts from the leaf, creating a friendly\n" - "atmosphere that becalms the battlers."); - -const u8 gBayleefPokedexText[] = _( - "A Bayleef's neck is ringed by curled-up\n" - "leaves. Inside each leaf is a small tree\n" - "shoot. The fragrance of this shoot\n" - "makes people peppy."); - -const u8 gMeganiumPokedexText[] = _( - "The fragrance of a Meganium's flower\n" - "soothes and calms emotions. In battle,\n" - "it gives off more of its becalming scent\n" - "to blunt the foe's fighting spirit."); - -const u8 gCyndaquilPokedexText[] = _( - "It flares flames from its back to protect\n" - "itself. The fire burns vigorously if the\n" - "Pokémon is angry. When it is tired,\n" - "it sputters with incomplete combustion."); - -const u8 gQuilavaPokedexText[] = _( - "It intimidates foes with intense gusts of\n" - "flames and superheated air. Its quick\n" - "nimbleness lets it dodge attacks even\n" - "while scorching an enemy."); - -const u8 gTyphlosionPokedexText[] = _( - "It can hide behind a shimmering heat haze\n" - "that it creates using its intense flames.\n" - "Typhlosion create blazing explosive\n" - "blasts that burn everything to cinders."); - -const u8 gTotodilePokedexText[] = _( - "Despite its small body, Totodile's jaws\n" - "are very powerful. While it may think it is\n" - "just playfully nipping, its bite has enough\n" - "strength to cause serious injury."); - -const u8 gCroconawPokedexText[] = _( - "Once its jaws clamp down on its foe, it will\n" - "absolutely not let go. Because the tips of\n" - "its fangs are forked back like fishhooks,\n" - "they become irremovably embedded."); - -const u8 gFeraligatrPokedexText[] = _( - "It opens its huge mouth to intimidate\n" - "enemies. In battle, it runs using its thick\n" - "and powerful hind legs to charge the\n" - "foe with incredible speed."); - -const u8 gSentretPokedexText[] = _( - "They take turns standing guard when it\n" - "is time to sleep. The sentry awakens the\n" - "others if it senses danger. If one becomes\n" - "separated, it turns sleepless with fear."); - -const u8 gFurretPokedexText[] = _( - "A Furret has a very slim build. When under\n" - "attack, it can squirm through narrow\n" - "spaces and get away. In spite of its short\n" - "limbs, it is very nimble and fleet."); - -const u8 gHoothootPokedexText[] = _( - "It has an internal organ that senses\n" - "the earth's rotation. Using this special\n" - "organ, a Hoothoot begins hooting at\n" - "precisely the same time every day."); - -const u8 gNoctowlPokedexText[] = _( - "It unfailingly catches prey in darkness.\n" - "Noctowl owe their success to superior\n" - "vision that allows them to see in minimal\n" - "light, and to their supple and silent wings."); - -const u8 gLedybaPokedexText[] = _( - "Ledyba communicate using a fluid that\n" - "they secrete from where the legs join the\n" - "body. They are said to convey feelings to\n" - "others by altering the fluid's scent."); - -const u8 gLedianPokedexText[] = _( - "It is said that in lands with clean air,\n" - "where the stars fill the sky, there live\n" - "many Ledian. For good reason, they use\n" - "the light of the stars as energy."); - -const u8 gSpinarakPokedexText[] = _( - "The web it spins can be considered its\n" - "second nervous system. It is said that a\n" - "Spinarak determines its prey by the tiny\n" - "vibrations it feels through the web."); - -const u8 gAriadosPokedexText[] = _( - "Its feet are tipped with tiny hooked claws\n" - "that enable it to scuttle on ceilings and\n" - "vertical walls. It constricts its foe with\n" - "thin and strong silk webbing."); - -const u8 gCrobatPokedexText[] = _( - "Over the course of evolution, its hind legs\n" - "turned into wings. By alternately resting\n" - "its front and rear wings, it can fly all day\n" - "without having to stop."); - -const u8 gChinchouPokedexText[] = _( - "When it senses danger, it discharges\n" - "positive and negative electricity from its\n" - "two antennae. It lives in depths beyond\n" - "sunlight's reach."); - -const u8 gLanturnPokedexText[] = _( - "The light-emitting orbs on its back are\n" - "very bright. They are formed from a part of\n" - "its dorsal fin. This Pokémon illuminates\n" - "the inky darkness of deep seas."); - -const u8 gPichuPokedexText[] = _( - "It is still inept at retaining electricity.\n" - "When it is startled, it discharges power\n" - "accidentally. It gets better at holding\n" - "power as it grows older."); - -const u8 gCleffaPokedexText[] = _( - "On nights with many shooting stars,\n" - "Cleffa can be seen dancing in a ring.\n" - "They dance until daybreak, when they\n" - "quench their thirst with the morning dew."); - -const u8 gIgglybuffPokedexText[] = _( - "Its soft and pliable body is very bouncy.\n" - "When it sings continuously with all its\n" - "might, its body steadily turns a deepening\n" - "pink color."); - -const u8 gTogepiPokedexText[] = _( - "As its energy, it uses the feelings of\n" - "compassion and pleasure exuded by\n" - "people and Pokémon. It stores up happy\n" - "feelings in its shell, then shares them out."); - -const u8 gTogeticPokedexText[] = _( - "It is said to be a Pokémon that brings good\n" - "fortune. When it spots someone who is pure\n" - "of heart, a Togetic appears and shares its\n" - "happiness with that person."); - -const u8 gNatuPokedexText[] = _( - "It runs up short trees that grow on the\n" - "savanna to peck at new shoots.\n" - "A Natu's eyes look as if they are\n" - "always observing something."); - -const u8 gXatuPokedexText[] = _( - "It has the enigmatic power of foreseeing\n" - "the future. Some people in different lands\n" - "have long believed that Xatu are\n" - "emissaries from another world."); - -const u8 gMareepPokedexText[] = _( - "Its fluffy wool rubs together and builds\n" - "a static charge. The more energy is\n" - "charged, the more brightly the lightbulb\n" - "at the tip of its tail glows."); - -const u8 gFlaaffyPokedexText[] = _( - "Its fleece quality changes to generate\n" - "strong static electricity with a small\n" - "amount of wool. The bare, slick parts of its\n" - "hide are shielded against electricity."); - -const u8 gAmpharosPokedexText[] = _( - "It gives off so much light that it can be\n" - "seen even from space. People in the old\n" - "days used its light to send signals back\n" - "and forth with others far away."); - -const u8 gBellossomPokedexText[] = _( - "Its flower petals deepen in color through\n" - "exposure to sunlight. When cloudy weather\n" - "persists, it does a dance that is thought\n" - "to be a ritual for summoning the sun."); - -const u8 gMarillPokedexText[] = _( - "Its body is covered with water-repellent\n" - "fur. Because of the fur, it can swim\n" - "through water at high speed without being\n" - "slowed by the water's resistance."); - -const u8 gAzumarillPokedexText[] = _( - "It lives in water virtually all day long.\n" - "Its body color and pattern act as\n" - "camouflage that makes it tough for\n" - "enemies to spot in water."); - -const u8 gSudowoodoPokedexText[] = _( - "It mimics a tree to avoid being attacked\n" - "by enemies. But since its forelegs\n" - "remain green throughout the year, it is\n" - "easily identified as a fake in the winter."); - -const u8 gPolitoedPokedexText[] = _( - "The curled hair on its head proves its\n" - "status as a king. It is said that the\n" - "longer and curlier the hair, the more\n" - "respect it earns from its peers."); - -const u8 gHoppipPokedexText[] = _( - "This Pokémon drifts and floats with the\n" - "wind. If it senses the approach of strong\n" - "winds, a Hoppip links leaves with others\n" - "to prepare against being blown away."); - -const u8 gSkiploomPokedexText[] = _( - "It blossoms when the temperature rises\n" - "above 64 degrees F. Because its flower's\n" - "blooming changes with the temperature,\n" - "it is sometimes used as a thermometer."); - -const u8 gJumpluffPokedexText[] = _( - "Jumpluff ride warm southern winds to\n" - "cross the sea and fly to foreign lands.\n" - "This Pokémon lands when it encounters\n" - "cold air while it is floating."); - -const u8 gAipomPokedexText[] = _( - "Its tail ends with a dexterous, handlike\n" - "appendage. However, because it uses the\n" - "tail so much, Aipom's real hands have\n" - "become rather clumsy."); - -const u8 gSunkernPokedexText[] = _( - "Sunkern try to minimize movement to\n" - "conserve the nutrients they have stored\n" - "in their bodies for evolution. They will\n" - "not eat, subsisting only on morning dew."); - -const u8 gSunfloraPokedexText[] = _( - "Sunflora convert solar energy into\n" - "nutrition. They are highly active in the\n" - "warm daytime but suddenly stop moving as\n" - "soon as the sun sets."); - -const u8 gYanmaPokedexText[] = _( - "It can see 360 degrees without moving\n" - "its eyes. It is a great flier capable of\n" - "making sudden stops and turning midair to\n" - "quickly chase down targeted prey."); - -const u8 gWooperPokedexText[] = _( - "Wooper usually live in water but come\n" - "out onto land seeking food occasionally.\n" - "On land, they coat their bodies with a\n" - "gooey, toxic film."); - -const u8 gQuagsirePokedexText[] = _( - "A Quagsire hunts by leaving its mouth wide\n" - "open in water and waiting for its prey to\n" - "blunder in. Because it doesn't move, it\n" - "does not get very hungry."); - -const u8 gEspeonPokedexText[] = _( - "An Espeon is extremely loyal to any\n" - "Trainer it considers to be worthy. It is\n" - "said to have developed precognitive\n" - "powers to protect its Trainer from harm."); - -const u8 gUmbreonPokedexText[] = _( - "Umbreon evolved from exposure to the\n" - "moon's energy pulses. It lurks in darkness\n" - "and waits for its foes to move. The rings\n" - "on its body glow when it leaps to attack."); - -const u8 gMurkrowPokedexText[] = _( - "Murkrow were feared as the alleged\n" - "bearers of ill fortune. It shows strong\n" - "interest in anything that sparkles. It will\n" - "even try to steal rings from women."); - -const u8 gSlowkingPokedexText[] = _( - "It undertakes research every day to\n" - "solve the mysteries of the world.\n" - "However, it apparently forgets everything\n" - "if the Shellder on its head comes off."); - -const u8 gMisdreavusPokedexText[] = _( - "A Misdreavus frightens people with a\n" - "creepy, sobbing cry. It apparently uses\n" - "its red spheres to absorb the fear of foes\n" - "as its nutrition."); - -const u8 gUnownPokedexText[] = _( - "This Pokémon is shaped like ancient text\n" - "characters. Although research is ongoing,\n" - "it is a mystery as to which came first,\n" - "the ancient writings or the various Unown."); - -const u8 gWobbuffetPokedexText[] = _( - "Usually docile, a Wobbuffet strikes back\n" - "ferociously if its black tail is attacked.\n" - "It makes its lair in caves where it waits\n" - "for nightfall."); - -const u8 gGirafarigPokedexText[] = _( - "A Girafarig is an herbivore--it eats\n" - "grass and tree shoots. While it is eating,\n" - "its tail makes chewing and swallowing\n" - "motions as if it were also eating."); - -const u8 gPinecoPokedexText[] = _( - "A Pineco hangs from a tree branch and\n" - "waits for prey. While eating, if it is\n" - "disturbed by someone shaking its tree, it\n" - "falls on the ground and suddenly explodes."); - -const u8 gForretressPokedexText[] = _( - "It keeps itself inside its steel shell.\n" - "The shell is opened when it is catching\n" - "prey, but it is so quick that the shell's\n" - "inside cannot be seen."); - -const u8 gDunsparcePokedexText[] = _( - "Its drill-tipped tail is used to burrow into\n" - "the ground backwards. This Pokémon is\n" - "known to make its nest in complex shapes\n" - "deep under the ground."); - -const u8 gGligarPokedexText[] = _( - "It glides without making a single sound.\n" - "It grasps the face of its foe using its\n" - "hind and large front claws, then stabs\n" - "with its poison barb."); - -const u8 gSteelixPokedexText[] = _( - "Steelix live even further underground\n" - "than Onix. This Pokémon is known to dig\n" - "toward the earth's core, reaching a depth\n" - "of over six-tenths of a mile underground."); - -const u8 gSnubbullPokedexText[] = _( - "By baring its fangs and making a scary\n" - "face, it sends smaller Pokémon scurrying\n" - "in terror. The Snubbull does seem a\n" - "little sad at making its foes flee."); - -const u8 gGranbullPokedexText[] = _( - "It has a particularly well-developed lower\n" - "jaw. The huge fangs are heavy, causing\n" - "it to tilt its head. Unless it is startled,\n" - "it will not try to bite."); - -const u8 gQwilfishPokedexText[] = _( - "A Qwilfish uses the pressure of water\n" - "it swallows to shoot toxic quills all at\n" - "once from all over its body. It finds\n" - "swimming to be somewhat challenging."); - -const u8 gScizorPokedexText[] = _( - "A Scizor has a body with the hardness of\n" - "steel. It is not easily fazed by ordinary\n" - "sorts of attacks. It flaps its wings to\n" - "regulate its body temperature."); - -const u8 gShucklePokedexText[] = _( - "A Shuckle hides under rocks, keeping its\n" - "body concealed inside its shell while\n" - "eating stored berries. The berries mix with\n" - "its body fluids to become a juice."); - -const u8 gHeracrossPokedexText[] = _( - "They gather in forests seeking the sweet\n" - "sap of trees. It is completely clad in a\n" - "steel-hard shell. It is proud of its horn,\n" - "which it uses to fling foes."); - -const u8 gSneaselPokedexText[] = _( - "A Sneasel scales trees by punching its\n" - "hooked claws into the bark. It seeks out\n" - "unguarded nests and steals eggs for food\n" - "while the parents are away."); - -const u8 gTeddiursaPokedexText[] = _( - "It licks its palms that are sweetened by\n" - "being soaked in honey. A Teddiursa makes\n" - "its own honey by blending fruits and pollen\n" - "collected by Beedrill."); - -const u8 gUrsaringPokedexText[] = _( - "In forests, it is said that there are many\n" - "streams and towering trees where an\n" - "Ursaring gathers food. It walks through\n" - "its forest collecting food every day."); - -const u8 gSlugmaPokedexText[] = _( - "It is a species of Pokémon that lives in\n" - "volcanic areas. If its body cools, its skin\n" - "hardens and immobilizes it. To avoid that,\n" - "it sleeps near magma."); - -const u8 gMagcargoPokedexText[] = _( - "The shell on its back is made of hardened\n" - "magma. Tens of thousands of years spent\n" - "living in volcanic craters have turned\n" - "Magcargo's bodies into magma."); - -const u8 gSwinubPokedexText[] = _( - "It roots for food by rubbing its snout\n" - "against the ground. Its favorite food is a\n" - "mushroom that grows under dried grass.\n" - "It occasionally roots out hot springs."); - -const u8 gPiloswinePokedexText[] = _( - "A Piloswine is covered by a thick coat\n" - "of long hair for enduring freezing cold.\n" - "It uses its tusks to dig up food that has\n" - "been buried under ice."); - -const u8 gCorsolaPokedexText[] = _( - "Corsola live in warm southern seas.\n" - "If the sea becomes polluted, the beautiful\n" - "coral stalks become discolored and crumble\n" - "away in tatters."); - -const u8 gRemoraidPokedexText[] = _( - "A Remoraid uses its abdominal muscles\n" - "to forcefully expel swallowed water, then\n" - "shoot down flying prey. When evolution\n" - "approaches, it travels down rivers."); - -const u8 gOctilleryPokedexText[] = _( - "It ensnares its foe with its suction-\n" - "cupped tentacles before delivering the\n" - "finishing blow. If the foe turns out to be\n" - "too strong, it spews ink to escape."); - -const u8 gDelibirdPokedexText[] = _( - "It carries food bundled up in its tail.\n" - "There was a famous explorer who\n" - "managed to scale Mt. Everest thanks\n" - "to a Delibird sharing its food."); - -const u8 gMantinePokedexText[] = _( - "On sunny days, schools of Mantine can be\n" - "seen elegantly leaping over the waves.\n" - "It is not bothered by the Remoraid that\n" - "hitches rides."); - -const u8 gSkarmoryPokedexText[] = _( - "A Pokémon that has a body and wings of\n" - "steel. People in the past used feathers\n" - "fallen from Skarmory to make swords and\n" - "knives."); - -const u8 gHoundourPokedexText[] = _( - "Houndour communicate with each other\n" - "using a variety of cries to corner their\n" - "prey. This Pokémon's remarkable teamwork\n" - "is simply unparalleled."); - -const u8 gHoundoomPokedexText[] = _( - "In a Houndoom pack, the one with its horns\n" - "raked sharply back serves a leadership\n" - "role. They choose their leader by fighting\n" - "among themselves."); - -const u8 gKingdraPokedexText[] = _( - "It sleeps quietly, deep on the seafloor.\n" - "When it comes up to the surface, it\n" - "creates a huge whirlpool that can swallow\n" - "even ships."); - -const u8 gPhanpyPokedexText[] = _( - "Phanpy's big ears serve as broad fans.\n" - "When it becomes hot, it flaps the ears\n" - "busily to cool down. Even the young are\n" - "very strong."); - -const u8 gDonphanPokedexText[] = _( - "A Donphan is so strong it can easily haul\n" - "a dump truck. Its hide has toughened to a\n" - "rock-hard state. An ordinary sort of\n" - "attack won't even leave a scratch."); - -const u8 gPorygon2PokedexText[] = _( - "It was created by humans using the power\n" - "of science. It has been given artificial\n" - "intelligence that enables it to learn new\n" - "gestures and emotions on its own."); - -const u8 gStantlerPokedexText[] = _( - "Stantler's magnificent antlers were\n" - "once traded at high prices as works of art.\n" - "As a result, this Pokémon was hunted\n" - "close to extinction."); - -const u8 gSmearglePokedexText[] = _( - "A Smeargle marks its territory using a\n" - "fluid that leaks out from the tip of its\n" - "tail. About 5,000 different marks left by\n" - "this Pokémon have been found."); - -const u8 gTyroguePokedexText[] = _( - "Tyrogue become stressed out if they do\n" - "not get to train every day. When raising\n" - "this Pokémon, the Trainer must establish\n" - "a regular training schedule."); - -const u8 gHitmontopPokedexText[] = _( - "Its technique of kicking while spinning is\n" - "a remarkable mix of both offense and\n" - "defense. Hitmontop travel faster\n" - "spinning than they do walking."); - -const u8 gSmoochumPokedexText[] = _( - "It actively runs about, but also falls\n" - "often. Whenever it falls, it will check its\n" - "reflection on a lake's surface to make\n" - "sure its face hasn't become dirty."); - -const u8 gElekidPokedexText[] = _( - "If it touches metal and discharges the\n" - "electricity it has stored in its body, an\n" - "Elekid begins swinging its arms in circles\n" - "to recharge itself."); - -const u8 gMagbyPokedexText[] = _( - "If a Magby is spouting yellow flames from\n" - "its mouth, it is in good health. When it is\n" - "fatigued, black smoke will be mixed in with\n" - "the flames."); - -const u8 gMiltankPokedexText[] = _( - "It gives over five gallons of milk daily.\n" - "Its sweet milk is enjoyed by children and\n" - "grown-ups alike. People who can't drink\n" - "milk turn it into yogurt and eat it instead."); - -const u8 gBlisseyPokedexText[] = _( - "If it senses sadness with its fluffy fur,\n" - "a Blissey will rush over to the sad person,\n" - "however far away, to share an egg of\n" - "happiness that brings a smile to any face."); - -const u8 gRaikouPokedexText[] = _( - "Raikou embodies the speed of lightning.\n" - "Its roars send shock waves shuddering\n" - "through the air and ground as if\n" - "lightning bolts were crashing down."); - -const u8 gEnteiPokedexText[] = _( - "Entei embodies the passion of magma.\n" - "It is thought to have been born in the\n" - "eruption of a volcano. It blasts fire that\n" - "consumes all that it touches."); - -const u8 gSuicunePokedexText[] = _( - "Suicune embodies the compassion of\n" - "a pure spring of water. It runs across\n" - "the land with gliding elegance. It has the\n" - "power to purify dirty water."); - -const u8 gLarvitarPokedexText[] = _( - "A Larvitar is born deep under the ground.\n" - "It must eat its way through the soil above\n" - "and reach the surface for it to see its\n" - "parents' faces."); - -const u8 gPupitarPokedexText[] = _( - "A Pupitar creates a gas inside its body\n" - "that it ejects under compression to propel\n" - "itself like a jet. Its body can withstand\n" - "a collision with solid steel."); - -const u8 gTyranitarPokedexText[] = _( - "A Tyranitar is so overwhelmingly powerful,\n" - "it can bring down a whole mountain to make\n" - "its nest. It roams in mountains seeking\n" - "new opponents to fight."); - -const u8 gLugiaPokedexText[] = _( - "Lugia is so powerful even a light\n" - "fluttering of its wings can blow apart\n" - "houses. As a result, it chooses to live out\n" - "of sight deep under the sea."); - -const u8 gHoOhPokedexText[] = _( - "Its feathers--which glow in seven colors\n" - "depending on the angle at which they are\n" - "struck by light--are thought to bring joy.\n" - "It is said to live at the foot of a rainbow."); - -const u8 gCelebiPokedexText[] = _( - "This Pokémon came from the future by\n" - "crossing over time. It is thought that so\n" - "long as Celebi appears, a bright and\n" - "shining future awaits us."); - -const u8 gTreeckoPokedexText[] = _( - "It makes its nest in a giant tree in the\n" - "forest. It ferociously guards against\n" - "anything nearing its territory. It is said\n" - "to be the protector of the forest's trees."); - -const u8 gGrovylePokedexText[] = _( - "Leaves grow out of this Pokémon's body.\n" - "They help obscure a Grovyle from the eyes\n" - "of its enemies while it is in a thickly\n" - "overgrown forest."); - -const u8 gSceptilePokedexText[] = _( - "In the jungle, its power is without equal.\n" - "This Pokémon carefully grows trees and\n" - "plants. It regulates its body temperature\n" - "by basking in sunlight."); - -const u8 gTorchicPokedexText[] = _( - "If attacked, it strikes back by spitting\n" - "balls of fire it forms in its stomach.\n" - "A Torchic dislikes darkness because it\n" - "can't see its surroundings."); - -const u8 gCombuskenPokedexText[] = _( - "It lashes out with 10 kicks per second.\n" - "Its strong fighting instinct compels it\n" - "to keep up its offensive until the\n" - "opponent gives up."); - -const u8 gBlazikenPokedexText[] = _( - "It learns martial arts that use punches\n" - "and kicks. Every several years, its old\n" - "feathers burn off, and new, supple\n" - "feathers grow back in their place."); - -const u8 gMudkipPokedexText[] = _( - "On land, it can powerfully lift large\n" - "boulders by planting its four feet and\n" - "heaving. It sleeps by burying itself in soil\n" - "at the water's edge."); - -const u8 gMarshtompPokedexText[] = _( - "Its toughened hind legs enable it to stand\n" - "upright. Because it weakens if its skin\n" - "dries out, it replenishes fluids by playing\n" - "in mud."); - -const u8 gSwampertPokedexText[] = _( - "If it senses the approach of a storm and\n" - "a tidal wave, it protects its seaside nest\n" - "by piling up boulders. It swims as fast as\n" - "a jet ski."); - -const u8 gPoochyenaPokedexText[] = _( - "It savagely threatens foes with bared\n" - "fangs. It chases after fleeing targets\n" - "tenaciously. It turns tail and runs,\n" - "however, if the foe strikes back."); - -const u8 gMightyenaPokedexText[] = _( - "In the wild, Mightyena live in a pack.\n" - "They never defy their leader's orders.\n" - "They defeat foes with perfectly\n" - "coordinated teamwork."); - -const u8 gZigzagoonPokedexText[] = _( - "Rubbing its nose against the ground, it\n" - "always wanders about back and forth in\n" - "search of something. It is distinguished\n" - "by the zigzag footprints it leaves."); - -const u8 gLinoonePokedexText[] = _( - "It is exceedingly fast if it only has to run\n" - "in a straight line. When it spots pond-\n" - "dwelling prey underwater, it quickly leaps\n" - "in and catches it with its sharp claws."); - -const u8 gWurmplePokedexText[] = _( - "It sticks to tree branches and eats\n" - "leaves. The thread it spits from its mouth,\n" - "which becomes gooey when it touches\n" - "air, slows the movement of its foes."); - -const u8 gSilcoonPokedexText[] = _( - "It prepares for evolution using the\n" - "energy it stored while it was a Wurmple.\n" - "It keeps watch over the surroundings with\n" - "its two eyes."); - -const u8 gBeautiflyPokedexText[] = _( - "Its colorfully patterned wings are its\n" - "most prominent feature. It flies through\n" - "flower-covered fields collecting pollen.\n" - "It attacks ferociously when angered."); - -const u8 gCascoonPokedexText[] = _( - "To avoid detection by its enemies, it hides\n" - "motionlessly beneath large leaves and in\n" - "the gaps of branches. It also attaches\n" - "dead leaves to its body for camouflage."); - -const u8 gDustoxPokedexText[] = _( - "It is a nocturnal Pokémon that flies from\n" - "fields and mountains to the attraction of\n" - "streetlights at night. It looses highly\n" - "toxic powder from its wings."); - -const u8 gLotadPokedexText[] = _( - "This Pokémon lives in ponds with clean\n" - "water. It is known to ferry small Pokémon\n" - "across ponds by carrying them on the\n" - "broad leaf on its head."); - -const u8 gLombrePokedexText[] = _( - "In the evening, it takes great delight in\n" - "popping out of rivers and startling people.\n" - "It feeds on aquatic moss that grows on\n" - "rocks in the riverbed."); - -const u8 gLudicoloPokedexText[] = _( - "When it hears festive music, all the cells\n" - "in its body become stimulated, and it\n" - "begins moving in rhythm. It does not\n" - "quail even when it faces a tough opponent."); - -const u8 gSeedotPokedexText[] = _( - "It hangs off branches and absorbs\n" - "nutrients. When it finishes eating, its\n" - "body becomes so heavy that it drops to\n" - "the ground with a thump."); - -const u8 gNuzleafPokedexText[] = _( - "A forest-dwelling Pokémon that is skilled\n" - "at climbing trees. Its long and pointed\n" - "nose is its weak point. It loses power if\n" - "the nose is gripped."); - -const u8 gShiftryPokedexText[] = _( - "It is said to arrive on chilly, wintry winds.\n" - "Feared from long ago as the guardian of\n" - "forests, this Pokémon lives in a deep\n" - "forest where people do not venture."); - -const u8 gNincadaPokedexText[] = _( - "It makes its nest at the roots of a mighty\n" - "tree. Using its whiskerlike antennae, it\n" - "probes its surroundings in the\n" - "pitch-black darkness of soil."); - -const u8 gNinjaskPokedexText[] = _( - "Because it darts about vigorously at high\n" - "speed, it is very difficult to see. Hearing\n" - "its distinctive cries for too long induces\n" - "a headache."); - -const u8 gShedinjaPokedexText[] = _( - "A peculiar Pokémon that floats in air even\n" - "though its wings remain completely still.\n" - "The inside of its body is hollow and\n" - "utterly dark."); - -const u8 gTaillowPokedexText[] = _( - "Although it is small, it is very courageous.\n" - "It will take on a larger Skarmory on an\n" - "equal footing. However, its will weakens if\n" - "it becomes hungry."); - -const u8 gSwellowPokedexText[] = _( - "A Swellow dives upon prey from far above.\n" - "It never misses its targets. It takes to\n" - "the skies in search of lands with a warm\n" - "climate."); - -const u8 gShroomishPokedexText[] = _( - "It loves to eat damp, composted soil in\n" - "forests. If you enter a forest after a\n" - "long rain, you can see many Shroomish\n" - "feasting on composted soil."); - -const u8 gBreloomPokedexText[] = _( - "It scatters spores from holes in the cap\n" - "on its head. It loves warm and humid\n" - "climates. It feeds on trees and plants in\n" - "fields and forests."); - -const u8 gSpindaPokedexText[] = _( - "It is distinguished by a pattern of\n" - "spots that is always different. Its\n" - "unsteady, tottering walk has the\n" - "effect of fouling its foe's aim."); - -const u8 gWingullPokedexText[] = _( - "It makes its nest on a sheer cliff at the\n" - "edge of the sea. It has trouble keeping\n" - "its wings flapping in flight. Instead, it\n" - "soars on updrafts."); - -const u8 gPelipperPokedexText[] = _( - "It skims the tops of waves as it flies.\n" - "When it spots prey, it uses its large beak\n" - "to scoop up the victim with water.\n" - "It protects its eggs in its beak."); - -const u8 gSurskitPokedexText[] = _( - "They gather on puddles after evening\n" - "downpours, gliding across the surface\n" - "of water as if sliding. It secretes honey\n" - "with a sweet aroma from its head."); - -const u8 gMasquerainPokedexText[] = _( - "It intimidates foes with the large eyelike\n" - "patterns on its antennae. Because it can't\n" - "fly if its wings get wet, it shelters itself\n" - "from rain under large trees and eaves."); - -const u8 gWailmerPokedexText[] = _( - "While this Pokémon usually lives in the sea,\n" - "it can survive on land, although not too\n" - "long. It loses vitality if its body becomes\n" - "dried out."); - -const u8 gWailordPokedexText[] = _( - "It breathes through nostrils that it\n" - "raises above the sea. By inhaling to its\n" - "maximum capacity, a Wailord can dive close\n" - "to 10,000 feet beneath the waves."); - -const u8 gSkittyPokedexText[] = _( - "A Skitty's adorably cute behavior makes it\n" - "highly popular. In battle, it makes its tail\n" - "puff out. It threatens foes with a sharp\n" - "growl."); - -const u8 gDelcattyPokedexText[] = _( - "Rather than keeping a permanent lair,\n" - "it habitually seeks comfortable spots and\n" - "sleeps there. It is nocturnal and becomes\n" - "active at dusk."); - -const u8 gKecleonPokedexText[] = _( - "A Pokémon that has the ability to alter its\n" - "body colors to match its surroundings.\n" - "A Kecleon reverts to its original colors if\n" - "it is startled."); - -const u8 gBaltoyPokedexText[] = _( - "A Baltoy moves by spinning on its single\n" - "foot. It has been depicted in murals \n" - "adorning the walls of a once-bustling city\n" - "in an ancient age."); - -const u8 gClaydolPokedexText[] = _( - "A Claydol sleeps while hovering in midair.\n" - "Its arms are separate from its body.\n" - "They are kept floating by the Pokémon's\n" - "manipulation of psychic power."); - -const u8 gNosepassPokedexText[] = _( - "Its body emits a powerful magnetism.\n" - "It feeds on prey that is pulled in by the\n" - "force. Its magnetism is stronger in cold\n" - "seasons."); - -const u8 gTorkoalPokedexText[] = _( - "It battles using energy it gets from\n" - "burning coal. When loosing smoke from its\n" - "nostrils, it lets off a sound that is\n" - "similar to a locomotive's horn."); - -const u8 gSableyePokedexText[] = _( - "It digs branching holes in caves using its\n" - "sharp claws in search of food--raw gems.\n" - "A Sableye lurks in darkness and is seen\n" - "only rarely."); - -const u8 gBarboachPokedexText[] = _( - "Its body is covered with a slimy film.\n" - "The film acts as a barrier to prevent germs\n" - "in muddy water from entering the\n" - "Barboach's body."); - -const u8 gWhiscashPokedexText[] = _( - "Mysteriously, it can foretell earthquakes.\n" - "In the daytime, it sleeps in mud at the\n" - "bottom of a pond. When it awakens, it\n" - "continually feeds throughout the night."); - -const u8 gLuvdiscPokedexText[] = _( - "Luvdisc make the branches of Corsola\n" - "their nests. There is a custom from long\n" - "ago of giving a Luvdisc as a gift to\n" - "express one's feelings of love."); - -const u8 gCorphishPokedexText[] = _( - "Once it grips prey with its large pincers,\n" - "it will never let go, no matter what.\n" - "It is a hardy Pokémon that can thrive\n" - "in any environment."); - -const u8 gCrawdauntPokedexText[] = _( - "A brutish Pokémon that loves to battle.\n" - "A veteran Crawdaunt that has prevailed in\n" - "hundreds of battles has giant pincers\n" - "marked with countless scars."); - -const u8 gFeebasPokedexText[] = _( - "Feebas live in ponds that are heavily\n" - "infested with weeds. Because of its\n" - "hopelessly shabby appearance, it\n" - "seems as if few Trainers raise it."); - -const u8 gMiloticPokedexText[] = _( - "It is said to live at the bottom of\n" - "large lakes. Considered to be the most\n" - "beautiful of all Pokémon, it has been\n" - "depicted in paintings and statues."); - -const u8 gCarvanhaPokedexText[] = _( - "Carvanha attack ships in swarms, making\n" - "them sink. Although it is said to be a very\n" - "vicious Pokémon, it timidly flees as soon\n" - "as it finds itself alone."); - -const u8 gSharpedoPokedexText[] = _( - "The vicious and sly gangster of the sea.\n" - "Its skin is specially textured to minimize\n" - "drag in water. Its speed tops out at over\n" - "75 miles per hour."); - -const u8 gTrapinchPokedexText[] = _( - "Its big jaws crunch through boulders.\n" - "Because its head is so big, it has a hard\n" - "time getting back upright if it tips over\n" - "onto its back."); - -const u8 gVibravaPokedexText[] = _( - "It looses ultrasonic waves by rubbing its\n" - "wings together. Since a Vibrava's wings\n" - "are still in the process of growing, it can\n" - "only fly short distances."); - -const u8 gFlygonPokedexText[] = _( - "The flapping of its wings sounds like\n" - "singing. To prevent detection by enemies,\n" - "it hides itself by flapping up a cloud of\n" - "desert sand."); - -const u8 gMakuhitaPokedexText[] = _( - "It loves to toughen up its body above all\n" - "else. If you hear quaking rumbles in a cave,\n" - "it is the sound of Makuhita undertaking\n" - "strenuous training."); - -const u8 gHariyamaPokedexText[] = _( - "It has the habit of challenging others\n" - "without hesitation to tests of strength.\n" - "It's been known to stand on train tracks\n" - "and stop trains using forearm thrusts."); - -const u8 gElectrikePokedexText[] = _( - "It generates electricity using friction\n" - "from the atmosphere. In seasons with\n" - "especially arid air, its entire body blazes\n" - "with violent showers of sparks."); - -const u8 gManectricPokedexText[] = _( - "Because lightning falls in their vicinities,\n" - "Manectric were thought to have been born\n" - "from lightning. In battle, they create\n" - "thunderclouds."); - -const u8 gNumelPokedexText[] = _( - "A Numel stores boiling magma in the hump\n" - "on its back. It is a hardy Pokémon that can\n" - "transport a 220-pound load. It has served\n" - "humans at work since long ago."); - -const u8 gCameruptPokedexText[] = _( - "A Pokémon that lives in the crater of\n" - "a volcano. Every 10 years, the volcanoes\n" - "on its back erupt violently. Research is\n" - "under way on the cause of eruption."); - -const u8 gSphealPokedexText[] = _( - "It is completely covered with plushy fur.\n" - "As a result, it never feels the cold even\n" - "when it is rolling about on ice floes or\n" - "diving in the sea."); - -const u8 gSealeoPokedexText[] = _( - "Sealeo live in herds on ice floes. Using its\n" - "powerful flippers, it shatters ice.\n" - "It dives into the sea to hunt prey five\n" - "times a day."); - -const u8 gWalreinPokedexText[] = _( - "To protect its herd, the leader battles\n" - "anything that invades its territory, even\n" - "at the cost of its life. Its tusks may snap\n" - "off in battle."); - -const u8 gCacneaPokedexText[] = _( - "Cacnea live in deserts with virtually no\n" - "rainfall. It battles by swinging its thick,\n" - "spiked arms. Once a year, a yellow flower\n" - "blooms."); - -const u8 gCacturnePokedexText[] = _( - "After spending thousands of years in\n" - "harsh deserts, its blood transformed into\n" - "the same substances as sand. It is\n" - "nocturnal, so it hunts at night."); - -const u8 gSnoruntPokedexText[] = _( - "They tend to move about in groups of\n" - "around five Snorunt. In snowy regions,\n" - "it is said that when they are seen late at\n" - "night, snowfall will arrive by morning."); - -const u8 gGlaliePokedexText[] = _( - "A Glalie has the power to instantaneously\n" - "freeze moisture in the atmosphere.\n" - "A dazzling cloud of diamondlike ice\n" - "crystals forms around its body."); - -const u8 gLunatonePokedexText[] = _( - "It becomes very active on the night of\n" - "a full moon. This Pokémon was first\n" - "discovered 40 years ago at the site of\n" - "a meteor strike."); - -const u8 gSolrockPokedexText[] = _( - "Solar energy is the source of this \n" - "Pokémon's power. On sunny days, groups of\n" - "Solrock line up facing the sun and absorb\n" - "its light."); - -const u8 gAzurillPokedexText[] = _( - "Its tail, which is packed with nutrition,\n" - "is very bouncy like a rubber ball. On sunny\n" - "days they gather at the edge of water and\n" - "splash about for fun."); - -const u8 gSpoinkPokedexText[] = _( - "A Pokémon that manipulates psychic power\n" - "at will. It doesn't stop bouncing even when\n" - "it is asleep. It loves eating mushrooms\n" - "that grow underground."); - -const u8 gGrumpigPokedexText[] = _( - "It stores power in the black pearls on its\n" - "forehead. When it uses psychic power, it\n" - "performs an odd dance step. Its style of\n" - "dancing became hugely popular overseas."); - -const u8 gPluslePokedexText[] = _( - "It has the trait of cheering on its fellow\n" - "Pokémon. By shorting out the electricity\n" - "it releases from its paws, it creates\n" - "pom-poms for cheering."); - -const u8 gMinunPokedexText[] = _( - "At a meeting of Pokémon academics, it was\n" - "announced that simultaneous exposure to\n" - "electricity from a Plusle and Minun will\n" - "promote circulation and boost vitality."); - -const u8 gMawilePokedexText[] = _( - "Its giant jaws are actually steel horns\n" - "that transformed. It fools foes into\n" - "complacency with its adorable gestures,\n" - "then chomps them with its huge jaws."); - -const u8 gMedititePokedexText[] = _( - "It continually meditates for hours every\n" - "day. As a result of rigorous and dedicated\n" - "yoga training, it has tempered its\n" - "spiritual power so much it can fly."); - -const u8 gMedichamPokedexText[] = _( - "Through crushingly harsh yoga training, it\n" - "gained the power to foretell its foe's\n" - "actions. It battles with elegant, dance-\n" - "like movement."); - -const u8 gSwabluPokedexText[] = _( - "A Pokémon that has wings like cottony\n" - "clouds. After enduring winter, in which\n" - "little food is available, Swablu flocks\n" - "move closer to towns in the spring."); - -const u8 gAltariaPokedexText[] = _( - "It hums in a beautiful soprano voice.\n" - "It flies among white clouds in the blue\n" - "sky. It launches intensely hot fireballs\n" - "from its mouth."); - -const u8 gWynautPokedexText[] = _( - "A Wynaut loves to eat sweet fruits.\n" - "It cleverly picks fruits using its earlike\n" - "arms. They gather in fruit gardens, drawn\n" - "by the fragrance."); - -const u8 gDuskullPokedexText[] = _( - "A glare from its single scarlet eye makes\n" - "even burly grown-ups freeze in utter fear.\n" - "It is a nocturnal Pokémon that roams\n" - "about under the cloak of darkness."); - -const u8 gDusclopsPokedexText[] = _( - "It is thought that its body is hollow with\n" - "only a spectral ball of fire burning inside.\n" - "However, no one has been able to\n" - "confirm this theory as fact."); - -const u8 gRoseliaPokedexText[] = _( - "A Roselia that drinks nutritionally rich\n" - "springwater blooms with lovely flowers.\n" - "The fragrance of its flowers has the\n" - "effect of making its foes careless."); - -const u8 gSlakothPokedexText[] = _( - "It sleeps virtually all day and night long.\n" - "It doesn't change its nest its entire life,\n" - "but it sometimes travels great distances\n" - "by swimming in rivers."); - -const u8 gVigorothPokedexText[] = _( - "It can't keep still because its blood boils\n" - "with energy. It runs through the fields\n" - "and mountains all day to calm itself. If it\n" - "doesn't, it can't sleep at night."); - -const u8 gSlakingPokedexText[] = _( - "Hordes of Slaking gather around trees\n" - "when fruits come into season. They wait\n" - "around patiently for ripened fruits to fall\n" - "out of the trees."); - -const u8 gGulpinPokedexText[] = _( - "This Pokémon's stomach fluid can even\n" - "digest scrap iron. In one gulp, it can\n" - "swallow something that is as large as\n" - "itself."); - -const u8 gSwalotPokedexText[] = _( - "Its powerful stomach acid is capable of\n" - "digesting almost anything. The one thing\n" - "in the whole world a Swalot can't digest is\n" - "its own stomach."); - -const u8 gTropiusPokedexText[] = _( - "It flies by flapping its broad leaves.\n" - "The bunch of fruit that grows around its\n" - "neck is deliciously sweet. In the spring,\n" - "it scatters pollen from its neck."); - -const u8 gWhismurPokedexText[] = _( - "Its cries equal a jet plane in volume.\n" - "It inhales through its ear canals. Because\n" - "of this system, it can cry continually\n" - "without having to catch its breath."); - -const u8 gLoudredPokedexText[] = _( - "It positions the round speakers on its\n" - "head to assail foes with ultrasonic waves\n" - "at massive volume. It builds power by\n" - "stomping the ground."); - -const u8 gExploudPokedexText[] = _( - "It has sound-generating organs all over\n" - "its body. It communicates with others by\n" - "adjusting the tone and volume of the cries\n" - "it emits."); - -const u8 gClamperlPokedexText[] = _( - "A Clamperl slams its shell closed on prey\n" - "to prevent escape. The pearl it creates\n" - "upon evolution is said to be infused with\n" - "a mysterious energy."); - -const u8 gHuntailPokedexText[] = _( - "To withstand the crushing pressure of\n" - "water deep under the sea, its spine is very\n" - "thick and sturdy. Its tail, which is shaped\n" - "like a small fish, has eyes that light up."); - -const u8 gGorebyssPokedexText[] = _( - "A Gorebyss siphons the body fluids of prey\n" - "through its thin, tubular mouth. Its light\n" - "pink body color turns vivid when it\n" - "finishes feeding."); - -const u8 gAbsolPokedexText[] = _( - "It sharply senses even subtle changes in\n" - "the sky and the land to predict natural\n" - "disasters. It is a long-lived Pokémon that\n" - "has a life-span of 100 years."); - -const u8 gShuppetPokedexText[] = _( - "This Pokémon roams about deep in the\n" - "night seeking such negative emotions as\n" - "grudges and envy. It retreats to its nest\n" - "when the sun begins to rise."); - -const u8 gBanettePokedexText[] = _( - "An abandoned plush doll became this\n" - "Pokémon. They are said to live in garbage\n" - "dumps and wander about in search of the\n" - "children that threw them away."); - -const u8 gSeviperPokedexText[] = _( - "Seviper and Zangoose are eternal rivals.\n" - "It counters a Zangoose's dazzling agility\n" - "with its swordlike tail, which also oozes\n" - "a horrible poison."); - -const u8 gZangoosePokedexText[] = _( - "When it battles, it stands on its hind legs\n" - "and attacks with its sharply clawed\n" - "forelegs. Its fur bristles if it encounters\n" - "any Seviper."); - -const u8 gRelicanthPokedexText[] = _( - "A Pokémon that was once believed to have\n" - "been extinct. The species has not changed\n" - "its form for 100 million years. It walks on\n" - "the seafloor using its pectoral fins."); - -const u8 gAronPokedexText[] = _( - "A Pokémon that is clad in steel armor.\n" - "A new suit of armor is made when it evolves.\n" - "The old, discarded armor is salvaged as\n" - "metal for making iron products."); - -const u8 gLaironPokedexText[] = _( - "When two Lairon meet in the wild, they\n" - "fight for territory by bashing into each\n" - "other with their steel bodies. The sound\n" - "of their collision carries for miles."); - -const u8 gAggronPokedexText[] = _( - "Its iron horns grow longer a little at\n" - "a time. They are used to determine the\n" - "Aggron's age. The gouges in its armor are\n" - "worn with pride as mementos from battles."); - -const u8 gCastformPokedexText[] = _( - "It alters its form depending on the\n" - "weather. Changes in the climate such as\n" - "the temperature and humidity appear to\n" - "affect its cellular structure."); - -const u8 gVolbeatPokedexText[] = _( - "With their taillights lit, Volbeat fly in\n" - "a swarm, drawing geometric designs in the\n" - "night sky. They move their nests if their\n" - "pond water becomes dirty."); - -const u8 gIllumisePokedexText[] = _( - "A nocturnal Pokémon that becomes active\n" - "upon nightfall. It leads a Volbeat swarm\n" - "to draw patterns in the night sky. Over 200\n" - "different patterns have been confirmed."); - -const u8 gLileepPokedexText[] = _( - "It disguises itself as seaweed by making\n" - "its tentacles sway. Unsuspecting prey\n" - "that come too close are swallowed whole.\n" - "It became extinct 100 million years ago."); - -const u8 gCradilyPokedexText[] = _( - "It drags its heavy body along the\n" - "seafloor. It makes its nest in the shallows\n" - "of warm seas. Cradily can be seen on\n" - "beaches when the tide goes out."); - -const u8 gAnorithPokedexText[] = _( - "It was resurrected from a fossil using the\n" - "power of science. It swims by undulating\n" - "the eight wings at its sides. They were\n" - "feet that adapted to life in the sea."); - -const u8 gArmaldoPokedexText[] = _( - "Armaldo usually lives on land. However,\n" - "when it hunts for prey, it dives beneath\n" - "the ocean. It swims around using its two\n" - "large wings."); - -const u8 gRaltsPokedexText[] = _( - "A Ralts has the power to sense the\n" - "emotions of people and Pokémon with the\n" - "horns on its head. It takes cover if it\n" - "senses any hostility."); - -const u8 gKirliaPokedexText[] = _( - "A Kirlia has the psychic power to create \n" - "a rip in the dimensions and see into the\n" - "future. It is said to dance with pleasure\n" - "on sunny mornings."); - -const u8 gGardevoirPokedexText[] = _( - "It apparently does not feel the pull of\n" - "gravity because it supports itself with\n" - "psychic power. It will give its life to\n" - "protect its Trainer."); - -const u8 gBagonPokedexText[] = _( - "Although it is small, this Pokémon is very\n" - "powerful because its body is a bundle of\n" - "muscles. It launches head-butts with its\n" - "ironlike skull."); - -const u8 gShelgonPokedexText[] = _( - "It hardly eats while it awaits evolution.\n" - "It becomes hardier by enduring hunger.\n" - "Its shell peels off the instant it begins\n" - "to evolve."); - -const u8 gSalamencePokedexText[] = _( - "After many long years, its cellular\n" - "structure underwent a sudden mutation to\n" - "grow wings. When angered, it loses all\n" - "thought and rampages out of control."); - -const u8 gBeldumPokedexText[] = _( - "When Beldum gather in a swarm, they move\n" - "in perfect unison as if they were but one\n" - "Pokémon. They communicate with each other\n" - "using brain waves."); - -const u8 gMetangPokedexText[] = _( - "The claws tipping its arms pack the\n" - "destructive power to tear through thick\n" - "iron sheets as if they were silk. It flies\n" - "at over 60 miles per hour."); - -const u8 gMetagrossPokedexText[] = _( - "Metagross has four brains that are joined\n" - "by a complex neural network. As a result of\n" - "integration, this Pokémon is smarter than\n" - "a supercomputer."); - -const u8 gRegirockPokedexText[] = _( - "A Pokémon that is made entirely of rocks\n" - "and boulders. If parts of its body chip off\n" - "in battle, Regirock repairs itself by\n" - "adding new rocks."); - -const u8 gRegicePokedexText[] = _( - "Its entire body is made of Antarctic ice.\n" - "After extensive studies, researchers\n" - "believe the ice was formed during an\n" - "ice age."); - -const u8 gRegisteelPokedexText[] = _( - "Its body is harder than any other kind of\n" - "metal. The body metal is composed of a\n" - "mysterious substance. Not only is it hard,\n" - "it shrinks and stretches flexibly."); - -const u8 gKyogrePokedexText[] = _( - "Kyogre has appeared in mythology as the\n" - "creator of the sea. After long years of\n" - "feuding with Groudon, it took to sleep at\n" - "the bottom of the sea."); - -const u8 gGroudonPokedexText[] = _( - "Groudon has appeared in mythology as the\n" - "creator of the land. It sleeps in magma\n" - "underground and is said to make volcanoes\n" - "erupt on awakening."); - -const u8 gRayquazaPokedexText[] = _( - "A Pokémon that flies endlessly in the\n" - "ozone layer. It is said it would descend\n" - "to the ground if Kyogre and Groudon\n" - "were to fight."); - -const u8 gLatiasPokedexText[] = _( - "They make a small herd of only several\n" - "members. They rarely make contact with\n" - "people or other Pokémon. They disappear\n" - "if they sense enemies."); - -const u8 gLatiosPokedexText[] = _( - "Even in hiding, it can detect the locations\n" - "of others and sense their emotions since\n" - "it has telepathy. Its intelligence allows\n" - "it to understand human languages."); - -const u8 gJirachiPokedexText[] = _( - "Jirachi is said to make wishes come true.\n" - "While it sleeps, a tough crystalline shell\n" - "envelops the body to protect it from\n" - "enemies."); - -const u8 gDeoxysPokedexText[] = _( - "Deoxys emerged from a virus that came\n" - "from space. It is highly intelligent and\n" - "can shoot lasers from the crystalline\n" - "organ on its chest."); - -const u8 gChimechoPokedexText[] = _( - "They fly about very actively when the hot\n" - "season arrives. They communicate among\n" - "themselves using seven different and\n" - "distinguishing cries."); - -#if P_GEN_4_POKEMON == TRUE -const u8 gTurtwigPokedexText[] = _( - "The shell on its back is made of soil. \n" - "On a very healthy Turtwig, the shell \n" - "should feel moist. The leaf on its head\n" - "wilts if it is thirsty."); - -const u8 gGrotlePokedexText[] = _( - "A Grotle that lives in the forest is said\n" - "to have its own secret springwater well. \n" - "It carries fellow Pokémon there on \n" - "its back."); - -const u8 gTorterraPokedexText[] = _( - "Some Pokémon are born on a Torterra's\n" - "back and spend their entire life there.\n" - "Ancient people imagined that beneath \n" - "the ground, a gigantic Torterra dwelled."); - -const u8 gChimcharPokedexText[] = _( - "Its fiery rear end is fueled by gas made\n" - "in its belly. Before going to sleep,\n" - "Chimchar extinguish the flame on their\n" - "tails to prevent fires."); - -const u8 gMonfernoPokedexText[] = _( - "It carefully controls the intensity of\n" - "the flame on its tail, so as to keep its\n" - "foes at an adequate distance.\n" - "Its fiery tail is but one weapon."); - -const u8 gInfernapePokedexText[] = _( - "Its crown of fire is indicative of its\n" - "fiery nature. It uses a special kind of\n" - "martial arts involving all of its limbs to\n" - "take on any opponent."); - -const u8 gPiplupPokedexText[] = _( - "A poor walker, it often falls down. However,\n" - "its strong pride makes it puff up its chest\n" - "without a care. It's difficult to bond with\n" - "since it won't listen to its Trainer."); - -const u8 gPrinplupPokedexText[] = _( - "Because every Prinplup considers itself\n" - "to be the most important, they can never\n" - "form a group. It searches for prey in\n" - "icy seas."); - -const u8 gEmpoleonPokedexText[] = _( - "The three horns that extend from its beak\n" - "attest to its power. It avoids unnecessary\n" - "disputes, but it will decimate anything\n" - "that threatens its pride."); - -const u8 gStarlyPokedexText[] = _( - "They flock around mountains and fields,\n" - "chasing after bug Pokémon. However,\n" - "they bicker if the group grows too big.\n" - "Their singing is noisy and annoying."); - -const u8 gStaraviaPokedexText[] = _( - "Recognizing their own weakness, they\n" - "maintain huge flocks. Fierce scuffles\n" - "break out between various flocks.\n" - "When alone, a Staravia cries noisily."); - -const u8 gStaraptorPokedexText[] = _( - "When Staravia evolve into Staraptor,\n" - "they leave the flock to live alone. It has\n" - "a savage nature. It will courageously\n" - "challenge foes that are much larger."); - -const u8 gBidoofPokedexText[] = _( - "A comparison revealed that Bidoof's front\n" - "teeth grow at the same rate as Rattata's.\n" - "It constantly gnaws on logs and rocks to\n" - "whittle down its front teeth."); - -const u8 gBibarelPokedexText[] = _( - "It makes its nest by damming streams\n" - "with bark and mud. A river dammed by\n" - "Bibarel will never overflow its banks,\n" - "which is appreciated by people nearby."); - -const u8 gKricketotPokedexText[] = _( - "It shakes its head back to front,\n" - "causing its antennae to hit each other\n" - "and sound like a xylophone.\n" - "These sounds are fall hallmarks."); - -const u8 gKricketunePokedexText[] = _( - "It signals its emotions with its melodies.\n" - "There is a village that hosts a contest\n" - "based on the amazingly variable cries\n" - "of this Pokémon."); - -const u8 gShinxPokedexText[] = _( - "It rapidly contracts and relaxes its\n" - "muscles to generate electricity. Its\n" - "body shines if endangered. It flees\n" - "while the foe is momentarily blinded."); - -const u8 gLuxioPokedexText[] = _( - "Strong electricity courses through the\n" - "tips of its sharp claws. A light scratch\n" - "has enough amperage to cause fainting\n" - "in foes."); - -const u8 gLuxrayPokedexText[] = _( - "It has eyes which can see through\n" - "anything. Luxray's ability to see\n" - "through objects comes in handy when\n" - "it's scouting for danger."); - -const u8 gBudewPokedexText[] = _( - "Over the winter, it closes its bud and\n" - "endures the cold. Sensitive to changing\n" - "temperature, the bud is said to bloom\n" - "when it feels the sun's warm touch."); - -const u8 gRoseradePokedexText[] = _( - "Its sweet aroma attracts prey.\n" - "With the movements of a dancer,\n" - "it strikes with whips that are densely\n" - "lined with poison thorns."); - -const u8 gCranidosPokedexText[] = _( - "A lifelong jungle dweller from 100 million\n" - "years ago, its skull is as hard as iron. \n" - "It would snap obstructing trees with\n" - "headbutts."); - -const u8 gRampardosPokedexText[] = _( - "The result of repeated headbutts\n" - "is a skull grown thick and hard.\n" - "However, its brain has shrunk in size\n" - "compared with Cranidos's."); - -const u8 gShieldonPokedexText[] = _( - "This Pokémon lived in primeval jungles.\n" - "Few enemies would have been willing to\n" - "square off against its heavily armored\n" - "face, so it's thought."); - -const u8 gBastiodonPokedexText[] = _( - "Their rock-hard faces serve to protect\n" - "them from any frontral attacks.\n" - "When attacked, they form a wall.\n" - "They shielded their young in that way."); - -const u8 gBurmyPokedexText[] = _( - "It is covered with a cloak that shelters\n" - "it from the cold. If its cloak is broken\n" - "in battle, it quickly remakes the cloak\n" - "with materials nearby."); - -const u8 gWormadamPokedexText[] = _( - "Its appearance changes depending\n" - "on where Burmy evolved. The materials\n" - "on hand become a part of its body.\n" - "The cloak is never shed."); - -const u8 gMothimPokedexText[] = _( - "It does not keep a nest. While it\n" - "loves floral honey, it won't gather\n" - "any itself. Instead, it plots to steal\n" - "honey collected by Combee."); - -const u8 gCombeePokedexText[] = _( - "A Pokémon formed by three others.\n" - "It constantly gathers honey from flowers\n" - "to please Vespiquen. At night, they\n" - "cluster to form a beehive and sleep."); - -const u8 gVespiquenPokedexText[] = _( - "It houses its colony in cells in its body\n" - "and releases various pheromones to\n" - "make those grubs do its bidding.\n" - "There is only one in a colony."); - -const u8 gPachirisuPokedexText[] = _( - "A pair may be seen rubbing their cheek\n" - "pouches together in an effort to share\n" - "stored electricity. It stores them with\n" - "berries in tree holes."); - -const u8 gBuizelPokedexText[] = _( - "It inflates its flotation sac, keeping its\n" - "face above water in order to watch for\n" - "prey movement. It swims by rotating its\n" - "two tails like a screw."); - -const u8 gFloatzelPokedexText[] = _( - "Its flotation sac developed as a result\n" - "of pursuing aquatic prey. It can double\n" - "as a rubber raft. It assists in the rescues\n" - "of drowning people."); - -const u8 gCherubiPokedexText[] = _( - "The small ball holds the nutrients needed\n" - "for evolution. Apparently, it is also very\n" - "sweet and tasty. Pokémon like Starly and\n" - "Taillow try to peck it off."); - -const u8 gCherrimPokedexText[] = _( - "During times of strong sunlight, its bud\n" - "blooms, its petals open fully, and it\n" - "becomes very active. It folds back into\n" - "a bud if sunlight wanes."); - -const u8 gShellosPokedexText[] = _( - "Its shape and coloration vary, depending\n" - "on its habitat. Beware of pushing strongly\n" - "on its squishy body, as it makes a\n" - "mysterious purple fluid ooze out."); - -const u8 gGastrodonPokedexText[] = _( - "It lives in shallow tidal pools.\n" - "Gastrodon once had a huge shell for\n" - "protection in ancient times. There are\n" - "traces of it left in its cells."); - -const u8 gAmbipomPokedexText[] = _( - "They live on large trees. Split into two,\n" - "the tails are so adept at handling and\n" - "doing things, Ambipom rarely uses\n" - "its hands now."); - -const u8 gDrifloonPokedexText[] = _( - "Because of the way it floats aimlessly,\n" - "an old folktale calls it a “Signpost for\n" - "Wandering Spirits.” Children holding\n" - "them sometimes vanish."); - -const u8 gDrifblimPokedexText[] = _( - "Even while under careful observation,\n" - "large flocks of Drifblim flying at dusk\n" - "will inexplicably disappear from view.\n" - "No one knows where they go."); - -const u8 gBunearyPokedexText[] = _( - "You can tell how it feels by the way\n" - "it rolls its ears. When it's scared,\n" - "both ears are rolled up. When it senses\n" - "danger, it perks them up."); - -const u8 gLopunnyPokedexText[] = _( - "An extremely cautious Pokémon.\n" - "It is very conscious of its looks and\n" - "never fails to groom its ears.\n" - "It runs with sprightly jumps."); - -const u8 gMismagiusPokedexText[] = _( - "Its cries sound like incantations.\n" - "Those hearing it are tormented by\n" - "headaches and hallucinations.\n" - "It appears where you least expect it."); - -const u8 gHonchkrowPokedexText[] = _( - "Becoming active at night, it is known\n" - "to swarm with numerous Murkrow in tow.\n" - "It is said that it never forgives the\n" - "mistakes of its cronies."); - -const u8 gGlameowPokedexText[] = _( - "It is a very fickle Pokémon, which is \n" - "very popular among some. It claws its\n" - "Trainer's nose if it isn't fed and\n" - "purrs when affectionate."); - -const u8 gPuruglyPokedexText[] = _( - "It is a brazen brute that barges its way\n" - "into another Pokémon's nest and claims\n" - "it as its own. It binds its body with its\n" - "tails to make itself look bigger."); - -const u8 gChinglingPokedexText[] = _( - "There is an orb inside its mouth.\n" - "When it hops, the orb bounces all\n" - "over and makes a ringing sound.\n" - "It can cry for an awfully long time."); - -const u8 gStunkyPokedexText[] = _( - "It protects itself by spraying a\n" - "nose-curling, stinky fluid from its rear\n" - "to repel attackers. The stench lingers\n" - "for 24 hours."); - -const u8 gSkuntankPokedexText[] = _( - "It attacks by spraying a horribly smelly\n" - "fluid from the tip of its tail. The fluid\n" - "smells worse the longer it is allowed\n" - "to fester."); - -const u8 gBronzorPokedexText[] = _( - "Implements shaped like it were discovered\n" - "in ancient tombs. There are researchers\n" - "who believe this Pokémon reflected like a\n" - "mirror in the distant past."); - -const u8 gBronzongPokedexText[] = _( - "In ages past, this Pokémon was revered as\n" - "a bringer of rain. One caused a news stir\n" - "when it was dug up at a construction site\n" - "after a 2000-year sleep."); - -const u8 gBonslyPokedexText[] = _( - "Bonsly prefers an arid atmosphere.\n" - "In order to adjust the level of fluids\n" - "in its body, it exudes water from its eyes.\n" - "This makes it appear to be crying."); - -const u8 gMimeJrPokedexText[] = _( - "In an attempt to confuse its enemy,\n" - "it mimics the enemy's movements.\n" - "Once mimicked, the foe cannot take\n" - "its eyes off this Pokémon."); - -const u8 gHappinyPokedexText[] = _( - "It carries a round white rock in its\n" - "belly pouch. If it gets along well with\n" - "someone, it will sometimes give that\n" - "person the rock."); - -const u8 gChatotPokedexText[] = _( - "It mimics the cries of other Pokémon to\n" - "trick them into thinking it's one of them.\n" - "This way they won't attack it. It can\n" - "also learn and speak human words."); - -const u8 gSpiritombPokedexText[] = _( - "A Pokémon that was formed by 108 spirits.\n" - "Its constant mischief and misdeeds\n" - "resulted in it being bound to an\n" - "Odd Keystone by a mysterious spell."); - -const u8 gGiblePokedexText[] = _( - "It nests in horizontal holes warmed by\n" - "geothermal heat. Foes who stray too\n" - "close can expect to be pounced on\n" - "and bitten."); - -const u8 gGabitePokedexText[] = _( - "Shiny objects are its passion. It can be\n" - "found in its cave, scarcely moving,\n" - "its gaze fixed on the jewels it's amassed\n" - "or Carbink it has caught."); - -const u8 gGarchompPokedexText[] = _( - "When it folds up its body and extends its\n" - "wings, it looks like a jet plane. It is\n" - "covered in fine scales that reduce drag,\n" - "enabling it to fly at high speeds."); - -const u8 gMunchlaxPokedexText[] = _( - "When it finds something that looks like\n" - "it might be edible, it goes right ahead\n" - "and swallows it whole. That's why it gets\n" - "fatter day by day."); - -const u8 gRioluPokedexText[] = _( - "It can discern the physical and emotional\n" - "states of people, Pokémon, and other\n" - "natural things from the shape of their\n" - "aura waves."); - -const u8 gLucarioPokedexText[] = _( - "It understands human speech.\n" - "It is said that no foe can remain invisible\n" - "to Lucario, since it can detect Auras.\n" - "Even foes it could not otherwise see."); - -const u8 gHippopotasPokedexText[] = _( - "Hippopotas shuts its nostrils tight when\n" - "travelling through sand. Instead of\n" - "perspiration, it expels grains of sand\n" - "from its body."); - -const u8 gHippowdonPokedexText[] = _( - "It is surprisingly quick to anger.\n" - "It brandishes its gaping mouth in a\n" - "display of fearsome strength and raises\n" - "vast quantities of sand while attacking."); - -const u8 gSkorupiPokedexText[] = _( - "It grips prey with its tail claws and\n" - "injects poison. It tenaciously hangs\n" - "on until the poison takes.\n" - "It can survive a year without food."); - -const u8 gDrapionPokedexText[] = _( - "Possessing a sturdy build, it takes\n" - "pride in its strength. It has the power\n" - "in its clawed arms to make scrap\n" - "out of a car."); - -const u8 gCroagunkPokedexText[] = _( - "Croagunk rarely fights fairly. Inflating\n" - "its poison sacs, it fills the area with\n" - "an odd sound and hits flinching\n" - "opponents with a poison jab."); - -const u8 gToxicroakPokedexText[] = _( - "Swaying and dodging the attacks\n" - "of its foes, it weaves its flexible body\n" - "in close, then lunges out with its\n" - "poisonous claws."); - -const u8 gCarnivinePokedexText[] = _( - "Hanging from branches using its\n" - "tentacles, it looks like a plant.\n" - "It attracts prey with its sweet-smelling\n" - "saliva, then chomps down."); - -const u8 gFinneonPokedexText[] = _( - "Its double tail fins propel its energetic\n" - "jumps. When it breaks the surface of the\n" - "sea, Wingull swoop down to grab it on\n" - "the fly."); - -const u8 gLumineonPokedexText[] = _( - "Lumineon swimming in the darkness\n" - "of the deep sea look like stars shining\n" - "in the night sky. It competes for food\n" - "with Lanturn."); - -const u8 gMantykePokedexText[] = _( - "When it swims close to the surface\n" - "of the ocean, people aboard ships are\n" - "able to observe the pattern on its back.\n" - "It often swims in a school of Remoraid."); - -const u8 gSnoverPokedexText[] = _( - "During cold seasons, it migrates to the\n" - "mountain's lower reaches. Seemingly\n" - "curious about people, they gather around\n" - "footsteps they find on snowy mountains."); - -const u8 gAbomasnowPokedexText[] = _( - "It lives a quiet life on mountains that\n" - "are perpetually covered in snow. It hides\n" - "itself by whipping up blizzards.\n" - "It is also known as “The Ice Monster.”"); - -const u8 gWeavilePokedexText[] = _( - "They travel in groups of four or five,\n" - "leaving signs for one another on trees\n" - "and rocks. They bring down their prey\n" - "with coordinated attacks."); - -const u8 gMagnezonePokedexText[] = _( - "As it zooms through the sky, this\n" - "Pokémon seems to be receiving signals\n" - "of unknown origin, while transmitting its\n" - "own signals of unknown purpose."); - -const u8 gLickilickyPokedexText[] = _( - "The long tongue is always soggy with\n" - "slobber. The saliva contains a solvent\n" - "that causes numbness. Getting too close\n" - "to it will leave you soaked with drool."); - -const u8 gRhyperiorPokedexText[] = _( - "It can launch a rock held in its hand\n" - "like a missile by tightening and then\n" - "expanding its muscles instantaneously.\n" - "Geodude are shot at rare times."); - -const u8 gTangrowthPokedexText[] = _( - "It ensnares prey by extending arms made\n" - "of vines. Even if one of its arms is eaten,\n" - "it's fine. The Pokémon regenerates quickly\n" - "and will go right back to normal."); - -const u8 gElectivirePokedexText[] = _( - "When it gets excited, it thumps its chest.\n" - "With every thud, thunder roars, electric\n" - "sparks shower all around and blue sparks\n" - "begin to crackle between its horns."); - -const u8 gMagmortarPokedexText[] = _( - "According to what is known, a single pair\n" - "of male and female Magmortar lives in\n" - "one volcano. From its arm, it launches\n" - "fireballs hotter than 3,600ºF."); - -const u8 gTogekissPokedexText[] = _( - "As everyone knows, it visits peaceful\n" - "regions, bringing them gifts of kindness\n" - "and sweet blessings. It will never appear\n" - "where there is strife."); - -const u8 gYanmegaPokedexText[] = _( - "This six-legged Pokémon is easily capable\n" - "of transporting an adult in flight. It is\n" - "adept at biting apart foes while flying\n" - "by at high speed."); - -const u8 gLeafeonPokedexText[] = _( - "Its cellular composition is closer to\n" - "that of a plant than an animal. It uses\n" - "photosynthesis to produce its energy\n" - "supply without eating food."); - -const u8 gGlaceonPokedexText[] = _( - "It can control its body temperature\n" - "at will. This enables it to freeze the\n" - "moisture in the atmosphere, creating\n" - "flurries of diamond dust."); - -const u8 gGliscorPokedexText[] = _( - "Gliscor observes prey while hanging\n" - "upside down from branches. Its flight is\n" - "soundless. When the chance presents\n" - "itself, it swoops!"); - -const u8 gMamoswinePokedexText[] = _( - "A frozen Mamoswine was dug from ice\n" - "dating back 10,000 years. It woke up to\n" - "much amazement. This Pokémon has been\n" - "around for a long, long, long time."); - -const u8 gPorygonZPokedexText[] = _( - "In order to create a more advanced\n" - "Pokémon, an additional program was\n" - "installed, but apparently it contained a\n" - "defect that made it move oddly."); - -const u8 gGalladePokedexText[] = _( - "A master of courtesy and swordsmanship,\n" - "it fights using extending swords on its\n" - "elbows when trying to protect someone.\n" - "It can sense what its foe is thinking."); - -const u8 gProbopassPokedexText[] = _( - "It freely controls three units called\n" - "Mini-Noses using magnetic force.\n" - "With them, it can attack its foes from\n" - "three directions."); - -const u8 gDusknoirPokedexText[] = _( - "This feared Pokémon is said to travel to\n" - "worlds unknown. Some even believe that\n" - "it takes lost spirits into its pliant body\n" - "and guides them home."); - -const u8 gFroslassPokedexText[] = _( - "When it finds people or Pokémon it likes,\n" - "it freezes them and takes them to its\n" - "chilly den, where they become its\n" - "decorations."); - -const u8 gRotomPokedexText[] = _( - "Research continues on this Pokémon.\n" - "Its electric-like body can enter some\n" - "kinds of machines and take control,\n" - "in order to make mischief."); - -const u8 gUxiePokedexText[] = _( - "Known as ”The Being of Knowledge,”\n" - "according to some sources, this Pokémon\n" - "provided people with the intelligence\n" - "necessary to solve various problems."); - -const u8 gMespritPokedexText[] = _( - "Although it slumbers at the bottom of a\n" - "lake, its spirit is said to leave its body\n" - "and flitter on the water surface. It\n" - "taught humans of sorrow, pain, and joy."); - -const u8 gAzelfPokedexText[] = _( - "This Pokémon is said to have endowed\n" - "humans with the determination needed to\n" - "do things. It is thought that Uxie, Mesprit\n" - "and Azelf all came from the same egg."); - -const u8 gDialgaPokedexText[] = _( - "A Pokémon spoken of in legend.\n" - "It completely controls the flow of time.\n" - "It uses its power to travel at will\n" - "through the past and future."); - -const u8 gPalkiaPokedexText[] = _( - "Palkia has the ability to distort space.\n" - "Its total control over the boundaries of\n" - "space enable it to transport itself to\n" - "faraway places and other dimensions."); - -const u8 gHeatranPokedexText[] = _( - "Boiling blood, like magma, circulates\n" - "through its body. It dwells in volcanic\n" - "caves, using its cross-shaped feet\n" - "to crawl on ceilings and walls."); - -const u8 gRegigigasPokedexText[] = _( - "There is an enduring legend that\n" - "states this Pokémon shaped Regirock,\n" - "Regice, and Registeel out of clay, ice,\n" - "and magma."); - -const u8 gGiratinaPokedexText[] = _( - "This Pokémon is said to live in a world\n" - "on the reverse side of ours, where common\n" - "knowledge is distorted and strange.\n" - "It was banished for its violence."); - -const u8 gCresseliaPokedexText[] = _( - "Those who sleep holding one of\n" - "Cresselia's feathers are assured of\n" - "joyful dreams. It is said to represent\n" - "the crescent moon."); - -const u8 gPhionePokedexText[] = _( - "When the water warms, they inflate the\n" - "flotation sac on their heads and drift\n" - "languidly on the sea in packs.\n" - "It always returns to where it was born."); - -const u8 gManaphyPokedexText[] = _( - "Water makes up 80% of its body.\n" - "It starts its life with a wondrous power\n" - "that permits it to bond with any kind\n" - "of Pokémon."); - -const u8 gDarkraiPokedexText[] = _( - "It chases people and Pokémon from its\n" - "territory by causing them to experience\n" - "deep, nightmarish slumbers. However,\n" - "it means no harm."); - -const u8 gShayminPokedexText[] = _( - "The flowers all over its body burst into\n" - "bloom if it is lovingly hugged and senses\n" - "gratitude. The blooming of Gracideas\n" - "confers the power of flight upon it."); - -const u8 gArceusPokedexText[] = _( - "It is told in mythology that this Pokémon\n" - "emerged from an egg and shaped all there\n" - "is in this world, before the universe\n" - "even existed."); -#endif - -#if P_GEN_5_POKEMON == TRUE -const u8 gVictiniPokedexText[] = _( - "This Pokémon brings victory.\n" - "It is said that Trainers with Victini\n" - "always win, regardless of the type\n" - "of encounter."); - -const u8 gSnivyPokedexText[] = _( - "It is very intelligent and calm.\n" - "Being exposed to lots of sunlight makes\n" - "its movements swifter. When they are\n" - "not feeling well, their tails droop."); - -const u8 gServinePokedexText[] = _( - "When it gets dirty, its leaves can't be\n" - "used in photosynthesis, so it always keeps\n" - "clean. They avoid attacks by sinking into\n" - "the shadows of thick foliage."); - -const u8 gSerperiorPokedexText[] = _( - "They raise their heads to intimidate foes,\n" - "but only give it their all when fighting\n" - "powerful opponents who are not fazed\n" - "by the glare from its noble eyes."); - -const u8 gTepigPokedexText[] = _( - "It loves to eat roasted berries, but\n" - "sometimes it gets too excited and burns\n" - "them to a crisp. It blows fire through\n" - "its nose."); - -const u8 gPignitePokedexText[] = _( - "The more it eats, the more fuel it has\n" - "to make the fire in its stomach stronger.\n" - "When it is angered, the intensity of the\n" - "flame increases."); - -const u8 gEmboarPokedexText[] = _( - "It is adept at using many different moves.\n" - "It can throw a fire punch by setting its\n" - "fists on fire with its fiery chin.\n" - "It cares deeply about its friends."); - -const u8 gOshawottPokedexText[] = _( - "The scalchop on its stomach isn't just\n" - "used for battle, it can be used to break\n" - "open hard berries as well. It is made\n" - "from the same element as its claws."); - -const u8 gDewottPokedexText[] = _( - "Strict training and disclipine leads it\n" - "to master its flowing double-scalchop\n" - "technique. Scalchop techniques differ\n" - "from one Dewott to another."); - -const u8 gSamurottPokedexText[] = _( - "One swing of the seamitars attached\n" - "to its armor can fell an opponent.\n" - "A simple glare from one of them is\n" - "enough to intimidate most enemies."); - -const u8 gPatratPokedexText[] = _( - "Extremely cautious, they take shifts to\n" - "maintain a constant watch of their nest.\n" - "Using food stored in cheek pouches,\n" - "they can keep watch for days."); - -const u8 gWatchogPokedexText[] = _( - "Using luminescent matter, it makes its\n" - "eyes and body glow and stuns attacking\n" - "opponents. Keen eyesight lets them see\n" - "in the dark."); - -const u8 gLillipupPokedexText[] = _( - "It faces strong opponents with great\n" - "courage. Because it doesn't yelp, it's\n" - "extremely popular with Trainers who live\n" - "in apartment buildings."); - -const u8 gHerdierPokedexText[] = _( - "Its dense black fur grows continuously.\n" - "The high cost of keeping its hard fur\n" - "properly groomed makes this a\n" - "troublesome Pokémon to train."); - -const u8 gStoutlandPokedexText[] = _( - "Intelligent, good-natured, and valiant,\n" - "there could be no concern that it would\n" - "ever attack people. Some parents even\n" - "trust it to babysit."); - -const u8 gPurrloinPokedexText[] = _( - "Their deceptively cute act is the\n" - "perfect ruse. They steal from people for\n" - "fun, but their victims can't help but\n" - "forgive them."); - -const u8 gLiepardPokedexText[] = _( - "Many Trainers are drawn to their\n" - "beautiful form and fur. These Pokémon\n" - "vanish and appear unexpectedly.\n" - "They run silently in the night."); - -const u8 gPansagePokedexText[] = _( - "This Pokémon dwells deep in the forest.\n" - "It's good at finding berries and gathers\n" - "them from all over. It's kind enough to\n" - "share them with friends."); - -const u8 gSimisagePokedexText[] = _( - "Ill tempered, it attacks enemies by\n" - "swinging its barbed tail around wildly.\n" - "The leaf growing on its head is\n" - "very bitter."); - -const u8 gPansearPokedexText[] = _( - "The fire within the tuft on its head can\n" - "reach up to 600ºF. Very intelligent,\n" - "it roasts berries before eating them.\n" - "It likes to help people."); - -const u8 gSimisearPokedexText[] = _( - "It loves sweets because they become\n" - "energy for the fire burning inside its\n" - "body. It scatters embers from its head\n" - "and tail to sear its opponents."); - -const u8 gPanpourPokedexText[] = _( - "The water stored inside the tuft of its\n" - "head is rich in nutrients. It waters\n" - "plants using its tail, plants that\n" - "receive its water grow large."); - -const u8 gSimipourPokedexText[] = _( - "It can shoot highly-pressurised water\n" - "from its tail with enough power to\n" - "break through a solid concrete wall.\n" - "It prefers places with clean water."); - -const u8 gMunnaPokedexText[] = _( - "This Pokémon appears before people\n" - "and Pokémon who are having nightmares\n" - "and eats those dreams. Munna always\n" - "float in the air. "); - -const u8 gMusharnaPokedexText[] = _( - "The mist emanating from their foreheads\n" - "is packed with the dreams of people and\n" - "Pokémon. It changes into different colors\n" - "depending on the dream that was eaten."); - -const u8 gPidovePokedexText[] = _( - "This very forgetful Pokémon will wait for\n" - "a new order from its Trainer even though\n" - "it already has one. Flocks often gather\n" - "in parks and plazas."); - -const u8 gTranquillPokedexText[] = _( - "No matter where in the world it goes,\n" - "it knows where its nest is, so it can\n" - "always return to its Trainer's location\n" - "regardless of the distance."); - -const u8 gUnfezantPokedexText[] = _( - "Males have plumage on their heads.\n" - "The females' flying abilities surpass\n" - "those of the males. They will only let\n" - "themselves feel close to their Trainers."); - -const u8 gBlitzlePokedexText[] = _( - "Its mane shines when it discharges\n" - "electricity. They use the frequency and\n" - "rhythm of these flashes to communicate\n" - "with one another."); - -const u8 gZebstrikaPokedexText[] = _( - "When Zebstrika run at full speed, the\n" - "sound of thunder reverberates. It is\n" - "dangerous when it's angry as it shoots\n" - "lightning from its mane in all directions."); - -const u8 gRoggenrolaPokedexText[] = _( - "The hexagonal cavity is its ear.\n" - "It walks in the direction of sounds it\n" - "hears, but if the sounds cease, it panics\n" - "and topples over."); - -const u8 gBoldorePokedexText[] = _( - "Its orange crystal is a mass of energy.\n" - "Just one crystal fragment would provide\n" - "enough fuel for a hundred dump trucks.\n" - "When it is healthy, its core sticks out."); - -const u8 gGigalithPokedexText[] = _( - "The blasts of energy it makes from\n" - "sunbeams have terrifying power.\n" - "However, it's not able to fire its blasts\n" - "at night or on rainy days."); - -const u8 gWoobatPokedexText[] = _( - "Its habitat is dark forests and caves.\n" - "Suction from its nostrils enables it\n" - "to stick to cave walls during sleep.\n" - "It leaves a heart-shaped mark behind."); - -const u8 gSwoobatPokedexText[] = _( - "Anyone who comes into contact with\n" - "the ultrasonic waves emitted by a\n" - "courting male experiences a positive\n" - "mood shift."); - -const u8 gDrilburPokedexText[] = _( - "It can dig through the ground at a\n" - "speed of 30 mph by spinning its body.\n" - "It could give a car running aboveground\n" - "a good race."); - -const u8 gExcadrillPokedexText[] = _( - "More than 300 feet below the surface,\n" - "they build mazelike nests. Their activity\n" - "can be destructive to subway tunnels,\n" - "but it can also help with construction."); - -const u8 gAudinoPokedexText[] = _( - "Its auditory sense is astounding.\n" - "Using the feelers on its ears, it can tell\n" - "how someone is feeling or when an egg\n" - "might hatch."); - -const u8 gTimburrPokedexText[] = _( - "These Pokémon appear at building\n" - "sites and help out with construction.\n" - "They always carry squared logs.\n" - "As they grow, they carry bigger logs."); - -const u8 gGurdurrPokedexText[] = _( - "They strengthen their bodies by carrying\n" - "steel beams. This Pokémon is so muscular\n" - "and strongly built that even a group of\n" - "wrestlers could not make it budge an inch."); - -const u8 gConkeldurrPokedexText[] = _( - "They use concrete pillars as walking\n" - "canes. Rather than rely solely on force,\n" - "they master moves that utilize the\n" - "centrifugal force of spinning concrete."); - -const u8 gTympolePokedexText[] = _( - "By vibrating its cheeks, it emits sound\n" - "waves imperceptible to humans. It uses\n" - "the rhythm of these sounds to talk and\n" - "warns others of danger."); - -const u8 gPalpitoadPokedexText[] = _( - "It lives in the water and on land.\n" - "When they vibrate the bumps on their\n" - "heads, they can make waves in water\n" - "or earthquake-like vibrations on land."); - -const u8 gSeismitoadPokedexText[] = _( - "It increases the power of its punches\n" - "by vibrating the bumps on its fists.\n" - "They can also shoot paralyzing liquid\n" - "from their head bumps."); - -const u8 gThrohPokedexText[] = _( - "When it tightens its belt, it becomes\n" - "stronger. Wild Throh use vines to weave\n" - "their own belts. It changes belts as it\n" - "gets more powerful."); - -const u8 gSawkPokedexText[] = _( - "The sound of Sawk punching boulders\n" - "and trees can be heard all the way from\n" - "the mountains where they train.\n" - "Disturbing their training angers them."); - -const u8 gSewaddlePokedexText[] = _( - "It chews up leaves and sews them with\n" - "sticky thread extruded from its mouth.\n" - "Since this Pokémon makes its own clothes,\n" - "it is a mascot for fashion designers."); - -const u8 gSwadloonPokedexText[] = _( - "Forests where Swadloon live have\n" - "superb foliage because the nutrients\n" - "they make from fallen leaves nourish\n" - "the plant life."); - -const u8 gLeavannyPokedexText[] = _( - "It keeps its eggs warm with heat from\n" - "fermenting leaves. It also uses leaves to\n" - "weave warm wrappings for Sewaddle by\n" - "using the silk secreted from its mouth."); - -const u8 gVenipedePokedexText[] = _( - "Using the feelers on its head and tail,\n" - "it picks up vibrations in the air to\n" - "determine its prey's location and state.\n" - "It is brutally aggressive."); - -const u8 gWhirlipedePokedexText[] = _( - "Storing energy for evolution, it sits.\n" - "But when attacked, it spins its body at\n" - "high speed like a wheel and then\n" - "crashes furiously into its opponent."); - -const u8 gScolipedePokedexText[] = _( - "With quick movements, it chases down\n" - "its foes, attacking relentlessly with its\n" - "horns until it prevails. Then it finishes\n" - "them off with deadly poison."); - -const u8 gCottoneePokedexText[] = _( - "When it finds others of its kind, they all\n" - "stick together. When enough of them\n" - "have collected, the mass resembles a\n" - "cumulonimbus cloud."); - -const u8 gWhimsicottPokedexText[] = _( - "It rides on the wind and slips into\n" - "people's homes. After it has turned a\n" - "room into a cotton-filled mess, it giggles\n" - "to itself and takes off."); - -const u8 gPetililPokedexText[] = _( - "By pruning the leaves on its head with\n" - "regularity, this Pokémon can be grown\n" - "into a fine plump shape. These bitter\n" - "leaves refresh those who eat them."); - -const u8 gLilligantPokedexText[] = _( - "Even veteran Trainers face a challenge\n" - "in getting its beautiful flower to bloom.\n" - "It withers away if a trainer does not\n" - "take good care of it."); - -const u8 gBasculinPokedexText[] = _( - "Red and blue Basculin usually do not\n" - "get along, but sometimes members of\n" - "one school mingle with the other's school.\n" - "These Pokémon are very hostile."); - -const u8 gSandilePokedexText[] = _( - "It conceals itself in the sand and\n" - "chomps down on the legs of any prey\n" - "that unwarily walk over it. Its favorite\n" - "food is Trapinch."); - -const u8 gKrokorokPokedexText[] = _( - "They move in groups of a few individuals.\n" - "Thanks to the special membrane covering\n" - "its eyes, it can see its surroundings\n" - "clearly, even in the dead of night."); - -const u8 gKrookodilePokedexText[] = _( - "Very violent Pokémon, they never allow\n" - "their prey to escape. Their jaws are so\n" - "powerful, they can crush the body of\n" - "an automobile."); - -const u8 gDarumakaPokedexText[] = _( - "When its internal fire is burning, it\n" - "cannot calm down and it runs around.\n" - "When the fire diminishes, it pulls its\n" - "limbs into its body and falls asleep."); - -const u8 gDarmanitanPokedexText[] = _( - "When one is injured in a fierce battle,\n" - "it transforms into a stone statue.\n" - "Then it meditates and sharpens its\n" - "mind and fights on mentally."); - -const u8 gMaractusPokedexText[] = _( - "Arid regions are their habitat.\n" - "When it moves rhythmically, it makes a\n" - "sound similar to maracas, making the\n" - "surprised Pokémon flee."); - -const u8 gDwebblePokedexText[] = _( - "It makes a hole in a stone of a suitable\n" - "size. If that rock breaks, the Pokémon\n" - "remains agitated until it locates\n" - "a replacement."); - -const u8 gCrustlePokedexText[] = _( - "Competing for territory, Crustle fight\n" - "viciously. The one whose boulder is\n" - "broken is the loser of the battle and\n" - "begins to weaken."); - -const u8 gScraggyPokedexText[] = _( - "Its skin has a rubbery elasticity, so it\n" - "can reduce damage by defensively\n" - "pulling its skin up to its neck.\n" - "Its skull is massively thick."); - -const u8 gScraftyPokedexText[] = _( - "Groups of them beat up anything that\n" - "enters their territory. The one with the\n" - "biggest crest is the group leader, and\n" - "is the most respected."); - -const u8 gSigilyphPokedexText[] = _( - "The guardians of an ancient city, they\n" - "always fly the same route while keeping\n" - "watch for invaders. They use their\n" - "psychic power to attack enemies."); - -const u8 gYamaskPokedexText[] = _( - "These Pokémon arose from the spirits\n" - "of people interred in graves in past ages.\n" - "Each of them carries a mask that used\n" - "to be its face when it was human."); - -const u8 gCofagrigusPokedexText[] = _( - "Grave robbers who mistake them for\n" - "real coffins and get too close end up\n" - "trapped inside their bodies. Their bodies\n" - "are covered in pure gold."); - -const u8 gTirtougaPokedexText[] = _( - "Reputed to be the ancestor of most\n" - "turtle Pokémon, it lived in warm seas\n" - "about a hundred million years ago.\n" - "It was restored from a fossil."); - -const u8 gCarracostaPokedexText[] = _( - "They can live both in the ocean and\n" - "on land. Incredible jaw strength enables\n" - "them to chew up steel beams and rocks\n" - "along with their prey."); - -const u8 gArchenPokedexText[] = _( - "Said to be the ancestor of all bird\n" - "Pokémon, Archen itself could not actually\n" - "fly but moved by hopping from treetop\n" - "to treetop."); - -const u8 gArcheopsPokedexText[] = _( - "They are intelligent and will cooperate\n" - "to catch prey. When one Archeops\n" - "had the prey cornered, another would\n" - "swoop on it."); - -const u8 gTrubbishPokedexText[] = _( - "It gorges on trash until its stomach\n" - "is full. Then it belches toxic gas.\n" - "An unlucky whiff of this gas will put\n" - "a person in the hospital."); - -const u8 gGarbodorPokedexText[] = _( - "Beware the poisonous liquid it shoots\n" - "from its right arm. If even a little of it\n" - "gets on you, you'll experience the full\n" - "effects of this unidentified toxin."); - -const u8 gZoruaPokedexText[] = _( - "To protect themselves from danger, they\n" - "hide their true identities by transforming\n" - "into people and Pokémon. Apparently, it\n" - "often transforms into a silent child."); - -const u8 gZoroarkPokedexText[] = _( - "Bonds between these Pokémon are very\n" - "strong. It protects the safety of its\n" - "pack by tricking its opponents. They\n" - "defend their lair with illusory scenery."); - -const u8 gMinccinoPokedexText[] = _( - "These Pokémon prefer a tidy habitat.\n" - "They greet one another by rubbing each\n" - "other with their tails, which are always\n" - "kept well groomed and clean."); - -const u8 gCinccinoPokedexText[] = _( - "Their white fur feels amazing to touch.\n" - "Cinccino's body is coated in a special\n" - "oil that repels dust and helps it deflect\n" - "attacks, such as punches."); - -const u8 gGothitaPokedexText[] = _( - "They intently observe both Trainers and\n" - "Pokémon. Apparently, Gothita are looking\n" - "at something that only they can see. Their\n" - "ribbonlike feelers increase their power."); - -const u8 gGothoritaPokedexText[] = _( - "Starlight is the source of their power.\n" - "They use hypnosis to control people and\n" - "Pokémon. Tales of Gothorita leading them\n" - "astray are told in every corner."); - -const u8 gGothitellePokedexText[] = _( - "Starry skies thousands of light-years\n" - "away are visible in the space distorted by\n" - "their intense psychic power. When it learns\n" - "its Trainer's life span, it cries in sadness."); - -const u8 gSolosisPokedexText[] = _( - "Because their bodies are enveloped\n" - "in a special liquid, they are fine in any\n" - "environment, no matter how severe. They\n" - "can use telepathy to talk with others."); - -const u8 gDuosionPokedexText[] = _( - "When their brains, now divided in two,\n" - "are thinking the same thoughts,\n" - "these Pokémon exhibit their maximized\n" - "psychic power."); - -const u8 gReuniclusPokedexText[] = _( - "They use psychic power to control their\n" - "arms, which are made of a special liquid.\n" - "When Reuniclus shake hands, a network\n" - "forms between their brains."); - -const u8 gDucklettPokedexText[] = _( - "These bird Pokémon are excellent divers.\n" - "They are better at swimming than flying,\n" - "and they happily eat their favorite food,\n" - "peat moss, as they dive underwater."); - -const u8 gSwannaPokedexText[] = _( - "Despite their elegant appearance, they\n" - "can flap their wings strongly and fly for\n" - "thousands of miles. The one in the middle\n" - "is the leader of the flock."); - -const u8 gVanillitePokedexText[] = _( - "The temperature of their breath is -58ºF.\n" - "They create snow crystals and make snow\n" - "fall in the areas around them. Vanillite is\n" - "treasured by households in warm regions."); - -const u8 gVanillishPokedexText[] = _( - "Vanillish has existed since the Ice Age.\n" - "It controls particles of ice, freezes its\n" - "opponents, and then shatters them with\n" - "a headbutt."); - -const u8 gVanilluxePokedexText[] = _( - "Each of its two heads has a brain, and\n" - "when they are in agreement, it attacks\n" - "its enemies by exhaling a violent blizzard.\n" - "It makes snow clouds inside its body."); - -const u8 gDeerlingPokedexText[] = _( - "Their coloring changes according to the\n" - "seasons and can be slightly affected by\n" - "the temperature and humidity as well.\n" - "People use it to mark the seasons."); - -const u8 gSawsbuckPokedexText[] = _( - "Some people call Sawsbuck the harbingers\n" - "of spring because the plants growing on\n" - "its horns change according to the season.\n" - "The leader possesses magnificent horns."); - -const u8 gEmolgaPokedexText[] = _( - "It glides using its cape-like membrane.\n" - "It grills berries and bug Pokémon with\n" - "electric shocks from the pouches on its\n" - "cheeks and makes a meal of them."); - -const u8 gKarrablastPokedexText[] = _( - "When they feel threatened, they spit an\n" - "acidic liquid to drive attackers away.\n" - "For some reason they evolve while they\n" - "are in the same place as Shelmet."); - -const u8 gEscavalierPokedexText[] = _( - "Wearing the shell covering they stole\n" - "from Shelmet, they defend themselves and\n" - "attack with two lances. The steel armor\n" - "protects their whole body."); - -const u8 gFoongusPokedexText[] = _( - "It lures Pokémon in with its pattern that\n" - "looks just like a Poké Ball, then releases\n" - "its poison spores. Why it resembles a\n" - "Poké Ball is unknown."); - -const u8 gAmoongussPokedexText[] = _( - "It lures prey close by dancing and waving\n" - "its arm caps, which resemble Poké Balls,\n" - "in a swaying motion, but very few Pokémon\n" - "are fooled by this."); - -const u8 gFrillishPokedexText[] = _( - "If its veil-like arms stun and wrap an\n" - "opponent, that foe will be dragged\n" - "five miles below the surface to its lair,\n" - "never to return."); - -const u8 gJellicentPokedexText[] = _( - "They propel themselves by expelling\n" - "absorbed seawater from their bodies.\n" - "It's said there's a castle of ships\n" - "Jellicent have sunk on the seafloor."); - -const u8 gAlomomolaPokedexText[] = _( - "When they find a wounded Pokémon,\n" - "they embrace it and bring it to shore.\n" - "The special membrane enveloping\n" - "Alomomola has the ability to heal wounds."); - -const u8 gJoltikPokedexText[] = _( - "Since they can't generate their own\n" - "electricity, they attach themselves to\n" - "large-bodied Pokémon and absorb static\n" - "electricity, which they store in a pouch."); - -const u8 gGalvantulaPokedexText[] = _( - "It creates barriers from electrified silk\n" - "that stun foes. This works as a weapon as\n" - "well as a defense. While it is immobilized\n" - "by shock, they leisurely consume it."); - -const u8 gFerroseedPokedexText[] = _( - "It absorbs the iron it finds in the rock\n" - "while clinging to the ceiling of caves.\n" - "When threatened, it attacks by shooting\n" - "a barrage of spikes."); - -const u8 gFerrothornPokedexText[] = _( - "It fights by swinging around its three\n" - "spiky feelers and shooting spikes.\n" - "A hit from these steel spikes can reduce\n" - "a boulder to rubble."); - -const u8 gKlinkPokedexText[] = _( - "Two bodies comprise a fixed pair.\n" - "The two minigears that mesh together\n" - "are predetermined. Each will rebound from\n" - "other minigears without meshing."); - -const u8 gKlangPokedexText[] = _( - "A minigear and big gear comprise its\n" - "body. Spinning minigears are rotated\n" - "at high speed and repeatedly fired away.\n" - "It is dangerous if the gears don't return."); - -const u8 gKlinklangPokedexText[] = _( - "Its red core functions as an energy tank.\n" - "It is rotated at high speed for a rapid\n" - "energy charge. It fires the charged energy\n" - "through its spikes into an area."); - -const u8 gTynamoPokedexText[] = _( - "These Pokémon move in schools.\n" - "One alone can emit only a trickle of\n" - "electricity, so a group of them gathers\n" - "to unleash a powerful electric shock."); - -const u8 gEelektrikPokedexText[] = _( - "These Pokémon have a big appetite.\n" - "It wraps itself around its prey and\n" - "paralyzes it with electricity from the\n" - "round spots on its sides. Then it chomps."); - -const u8 gEelektrossPokedexText[] = _( - "They crawl out of the ocean using their\n" - "arms. They will attack prey on shore and\n" - "immediately drag it into the ocean, with\n" - "their sucker mouths."); - -const u8 gElgyemPokedexText[] = _( - "It psychically squeezes the brain of\n" - "its foe, causing unendurable headaches.\n" - "Rumors of its origin are linked to a UFO\n" - "crash site in the desert 50 years ago."); - -const u8 gBeheeyemPokedexText[] = _( - "It can manipulate an opponent's memory.\n" - "Apparently, it communicates by flashing\n" - "its three fingers, but those patterns\n" - "haven't been decoded. "); - -const u8 gLitwickPokedexText[] = _( - "While Litwick shines a light and pretends\n" - "to be a guide, it absorbs the life force of\n" - "any who follow it, which becomes the fuel\n" - "that it burns."); - -const u8 gLampentPokedexText[] = _( - "This ominous Pokémon is feared.\n" - "Through cities it wanders, searching\n" - "for the spirits of the fallen. The spirits\n" - "it absorbs fuel its baleful fire."); - -const u8 gChandelurePokedexText[] = _( - "Being consumed in Chandelure's flame burns\n" - "up the spirit, leaving the body behind.\n" - "By waving the flames on its arms, it puts\n" - "its foes into a hypnotic trance."); - -const u8 gAxewPokedexText[] = _( - "They mark their territory by leaving\n" - "gashes in trees with their tusks. If a\n" - "tusk breaks, a new one grows in quickly,\n" - "harder and sturdier than the last."); - -const u8 gFraxurePokedexText[] = _( - "Their tusks can shatter rocks.\n" - "A broken tusk will not grow back,\n" - "so it diligently sharpens its tusks on\n" - "river rocks after the end of a battle."); - -const u8 gHaxorusPokedexText[] = _( - "They are kind but can be relentless\n" - "when defending territory. Their sturdy\n" - "tusks will stay sharp even if used to cut\n" - "steel beams."); - -const u8 gCubchooPokedexText[] = _( - "Its nose is always running.\n" - "Their snot is a barometer of health.\n" - "When healthy, their snot is sticky and\n" - "the power of their ice moves increases."); - -const u8 gBearticPokedexText[] = _( - "It freezes its breath to create fangs\n" - "and claws of ice to fight with.\n" - "Very able in the water, it swims around\n" - "in northern seas and catches prey."); - -const u8 gCryogonalPokedexText[] = _( - "They are born in snow clouds. When\n" - "its body temperature goes up, it turns\n" - "into steam and vanishes. When its\n" - "temperature lowers, it returns to ice."); - -const u8 gShelmetPokedexText[] = _( - "When attacked, it defends itself by\n" - "closing the lid of its shell. It evolves\n" - "when bathed in an electric-like energy\n" - "along with Karrablast."); - -const u8 gAccelgorPokedexText[] = _( - "When its body dries out, it weakens. So, to\n" - "prevent dehydration, it wraps itself in\n" - "layers of thin membrane. It is very light\n" - "and fights with ninja-like movements."); - -const u8 gStunfiskPokedexText[] = _( - "It conceals itself in the mud of the\n" - "seashore. Then it waits. When prey touch\n" - "it, it delivers a jolt of electricity.\n" - "It smiles when transmitting electricity."); - -const u8 gMienfooPokedexText[] = _( - "They have mastered elegant combos.\n" - "As they concentrate, their battle moves\n" - "become swifter and more precise. What it\n" - "lacks in power, it makes up for in quantity."); - -const u8 gMienshaoPokedexText[] = _( - "They use the long fur on their arms as\n" - "a whip to strike their opponents. Its arm\n" - "attacks come with such rapidity that they\n" - "cannot even be seen."); - -const u8 gDruddigonPokedexText[] = _( - "It warms its body by absorbing sunlight\n" - "with its wings. When its body temperature\n" - "falls, it can no longer move. It uses its\n" - "sharp claws to catch prey."); - -const u8 gGolettPokedexText[] = _( - "These Pokémon are thought to have\n" - "been created by the science of an\n" - "ancient and mysterious civilization.\n" - "It's been active for thousands of years."); - -const u8 gGolurkPokedexText[] = _( - "Golurk were created to protect people\n" - "and Pokémon by an ancient civilisation.\n" - "Removing the seal on its chest makes its\n" - "internal energy go out of control."); - -const u8 gPawniardPokedexText[] = _( - "Ignoring their injuries, groups attack by\n" - "sinking the blades that cover their bodies\n" - "into their prey. If battling dulls them, it\n" - "sharpens them on stones by the river."); - -const u8 gBisharpPokedexText[] = _( - "This pitiless Pokémon commands a group\n" - "of Pawniard to hound prey into immobility.\n" - "It battles to become the boss, but will be\n" - "driven from the group if it loses."); - -const u8 gBouffalantPokedexText[] = _( - "Their fluffy fur absorbs damage, even\n" - "if they strike foes with a fierce headbutt.\n" - "Their headbutts have enough destructive\n" - "force to derail a train."); - -const u8 gRuffletPokedexText[] = _( - "With its sharp claws, this Pokémon pierces\n" - "its prey, and then it pecks at them.\n" - "Although it also consumes berries, it's a\n" - "carnivore at heart."); - -const u8 gBraviaryPokedexText[] = _( - "For the sake of its friends, this brave\n" - "warrior of the sky will not stop battling,\n" - "even if it is injured. One can carry a car\n" - "while flying."); - -const u8 gVullabyPokedexText[] = _( - "It can't fly yet and must wait until its\n" - "wings have developed more. They guard\n" - "their posteriors with bones that were\n" - "gathered by Mandibuzz."); - -const u8 gMandibuzzPokedexText[] = _( - "They adorn themselves beautifully with\n" - "bones. This is supposedly an effort to\n" - "attract males, but no male Mandibuzz\n" - "have ever been found."); - -const u8 gHeatmorPokedexText[] = _( - "It draws in air through its tail, transforms\n" - "it into fire, and uses it like a tongue.\n" - "They burn through Durant's steel bodies\n" - "and consume their insides."); - -const u8 gDurantPokedexText[] = _( - "Durant dig nests in mountains.\n" - "Individuals each play different roles in\n" - "driving Heatmor, their natural predator,\n" - "away from their colony."); - -const u8 gDeinoPokedexText[] = _( - "Lacking sight, it's unaware of its\n" - "surroundings, so it bumps into things and\n" - "eats anything that moves. Approaching\n" - "it carelessly is dangerous."); - -const u8 gZweilousPokedexText[] = _( - "After it has eaten up all the food in its\n" - "territory, it moves on to another area.\n" - "Whichever head eats more than the other\n" - "gets to be the leader."); - -const u8 gHydreigonPokedexText[] = _( - "This brutal Pokémon travels the skies on\n" - "its six wings. The heads on their arms do\n" - "not have brains. They use all three heads\n" - "to consume and destroy everything."); - -const u8 gLarvestaPokedexText[] = _( - "This Pokémon was believed to have\n" - "been born from the sun. It spews fire from\n" - "its horns and encases itself in a cocoon\n" - "of fire when it evolves."); - -const u8 gVolcaronaPokedexText[] = _( - "When volcanic ash darkened the\n" - "atmosphere, it appeared and saved Pokémon\n" - "from freezing, Volcarona's fire provided a\n" - "replacement for the sun."); - -const u8 gCobalionPokedexText[] = _( - "It has a body and heart of steel. This\n" - "legendary Pokémon battled against humans\n" - "to protect Pokémon. Its personality\n" - "is calm and composed."); - -const u8 gTerrakionPokedexText[] = _( - "Spoken of in legend, this Pokémon used\n" - "its phenomenal power to destroy a castle\n" - "in its effort to protect Pokémon that had\n" - "lost their homes in a war among humans."); - -const u8 gVirizionPokedexText[] = _( - "Its head sprouts horns as sharp as blades.\n" - "Legends say this Pokémon used\n" - "whirlwind-like movements to confound\n" - "and swiftly cut its opponents."); - -const u8 gTornadusPokedexText[] = _( - "Tornadus expels massive energy from\n" - "its tail, causing severe storms.\n" - "Its power can blow entire houses away.\n" - "It zooms through the sky at 200 mph."); - -const u8 gThundurusPokedexText[] = _( - "The spikes on its tail discharge immense\n" - "bolts of lightning. Countless charred\n" - "remains mar the landscape of places\n" - "through which Thundurus has passed."); - -const u8 gReshiramPokedexText[] = _( - "This Pokémon appears in legends. It\n" - "sends flames into the air from its tail,\n" - "burning up everything around it. It helps\n" - "those who want to build a world of truth."); - -const u8 gZekromPokedexText[] = _( - "This legendary Pokémon can scorch the\n" - "world with lightning. It has a generator\n" - "that creates electricity in its tail. It\n" - "assists those with strong ideals."); - -const u8 gLandorusPokedexText[] = _( - "The energy that comes pouring from its tail\n" - "increases the nutrition in the soil, making\n" - "crops grow to great size. It has been\n" - "hailed as “The Guardian of the Fields.”"); - -const u8 gKyuremPokedexText[] = _( - "This legendary ice Pokémon waits for a\n" - "hero to fill in the missing parts of its\n" - "body with truth or ideals. Its body became\n" - "frozen when its energy leaked out."); - -const u8 gKeldeoPokedexText[] = _( - "When it is resolute, its body fills with\n" - "power and it becomes swifter. It crosses\n" - "the world, running over the surfaces of\n" - "oceans and rivers."); - -const u8 gMeloettaPokedexText[] = _( - "The melodies sung by Meloetta have the\n" - "power to make Pokémon that hear them\n" - "happy or sad. Many famous songs have been\n" - "inspired by the tunes that Meloetta plays."); - -const u8 gGenesectPokedexText[] = _( - "Over 300 million years ago, it was\n" - "feared as the strongest of hunters.\n" - "Team Plasma altered it and attached\n" - "a cannon to its back."); -#endif - -#if P_GEN_6_POKEMON == TRUE -const u8 gChespinPokedexText[] = _( - "The quills on its head are usually soft.\n" - "When it flexes them, the points become\n" - "so hard and sharp that they can pierce\n" - "rock without any effort."); - -const u8 gQuilladinPokedexText[] = _( - "They strengthen the sturdy shell covering\n" - "their bodies by running into one another.\n" - "They are very kind and won't start fights,\n" - "but will counterattack with sharp quills."); - -const u8 gChesnaughtPokedexText[] = _( - "It shields its allies from danger with\n" - "its own body. When it takes a defensive\n" - "posture with its fists guarding its face,\n" - "it can withstand a bomb blast."); - -const u8 gFennekinPokedexText[] = _( - "As it walks, it munches on a twig to fill\n" - "itself with energy in place of a snack.\n" - "It intimidates opponents by puffing hot\n" - "air out of its roomy ears."); - -const u8 gBraixenPokedexText[] = _( - "Braixen has a twig stuck in its tail.\n" - "When the twig is plucked from its tail,\n" - "friction sets the twig alight. The flame\n" - "is used to send signals to its allies."); - -const u8 gDelphoxPokedexText[] = _( - "It gazes into the flame at the tip of its\n" - "branch to achieve a focused state, which\n" - "allows it to see into the future. It uses\n" - "psychic power to incinerate its foes."); - -const u8 gFroakiePokedexText[] = _( - "It protects its skin by covering its body\n" - "in bubbles it secretes from its chest and\n" - "back. Beneath its happy-go-lucky air, it\n" - "keeps a watchful eye on its surroundings."); - -const u8 gFrogadierPokedexText[] = _( - "It can throw bubble-covered pebbles with\n" - "precise control, hitting empty cans up to\n" - "a hundred feet away. Frogadier's swiftness\n" - "is unparalleled."); - -const u8 gGreninjaPokedexText[] = _( - "It appears and vanishes with a ninja's\n" - "grace. It toys with its enemies using swift\n" - "movements, while slicing them with throwing\n" - "stars made of compressed water."); - -const u8 gBunnelbyPokedexText[] = _( - "It has ears like shovels. Digging holes\n" - "strengthens its ears so much that they\n" - "can sever thick roots effortlessly.\n" - "Bunnelby dig the whole night through."); - -const u8 gDiggersbyPokedexText[] = _( - "With its powerful ears it reduces dense\n" - "bedrock to rubble. It can be a big help\n" - "at construction sites. When it's finished\n" - "digging, it lounges about lazily."); - -const u8 gFletchlingPokedexText[] = _( - "This amiable Pokémon is easy to train.\n" - "But when battle is joined, it shows its\n" - "ferocious side. It's merciless to\n" - "intruders that enter its territory."); - -const u8 gFletchinderPokedexText[] = _( - "From its beak, it expels embers that set\n" - "the tall grass on fire. Then it pounces on\n" - "any bewildered Pokémon that pop out of\n" - "the grass."); - -const u8 gTalonflamePokedexText[] = _( - "In the fever of an exciting battle, it\n" - "showers embers from the gaps between its\n" - "feathers and takes to the air. It finishes\n" - "its prey off with a colossal kick."); - -const u8 gScatterbugPokedexText[] = _( - "When under attack from bird Pokémon,\n" - "it spews a poisonous black powder that\n" - "causes paralysis on contact. Scatterbug\n" - "can live in any region or climate."); - -const u8 gSpewpaPokedexText[] = _( - "It lives hidden within thicket shadows.\n" - "When predators attack, it quickly bristles\n" - "the fur covering its body in an effort to\n" - "threaten them."); - -const u8 gVivillonPokedexText[] = _( - "Vivillon with many different patterns are\n" - "found all over the world. These patterns\n" - "are affected by the climate of their\n" - "habitat. It scatters colorful scales."); - -const u8 gLitleoPokedexText[] = _( - "They set off on their own from their pride\n" - "and live by themselves to become stronger.\n" - "These hot-blooded Pokémon are quick\n" - "to start a fight."); - -const u8 gPyroarPokedexText[] = _( - "The male with the largest mane of fire\n" - "is the leader of the pride. The females\n" - "protect the pride's cubs. They viciously\n" - "threaten any challenger."); - -const u8 gFlabebePokedexText[] = _( - "When it finds a flower it likes, it dwells\n" - "on that flower its whole life long.\n" - "It floats on the wind's embrace with\n" - "an untroubled heart."); - -const u8 gFloettePokedexText[] = _( - "When the flowers of a well-tended flower\n" - "bed bloom, it appears and celebrates\n" - "with an elegant dance. It draws out the\n" - "power of flowers to battle."); - -const u8 gFlorgesPokedexText[] = _( - "It claims exquisite flower gardens as its\n" - "territory. In times long past, governors of\n" - "castles would invite Florges to create\n" - "gardens to embellish the castle domains."); - -const u8 gSkiddoPokedexText[] = _( - "If it has sunshine and water, it doesn't\n" - "need to eat, because it can generate\n" - "energy from the leaves on its back.\n" - "It has a placid disposition."); - -const u8 gGogoatPokedexText[] = _( - "It can tell how its trainer is feeling by\n" - "subtle shifts in the grip on its horns. This\n" - "empathetic sense lets them run as if one\n" - "being. They inhabit mountainous regions."); - -const u8 gPanchamPokedexText[] = _( - "There's no point to the leaf in its mouth,\n" - "aside from an effort to look cool. It's\n" - "mischievous, so it's not well suited to\n" - "inexperienced Trainers."); - -const u8 gPangoroPokedexText[] = _( - "It boasts superb physical strength.\n" - "Those who wish to become Pangoro's\n" - "Trainer have no choice but to converse\n" - "with their fists."); - -const u8 gFurfrouPokedexText[] = _( - "Trimming its fluffy fur not only makes\n" - "it more elegant but also increases the\n" - "swiftness of its movements. These\n" - "Pokémon were the guardians of kings."); - -const u8 gEspurrPokedexText[] = _( - "It has enough psychic energy to blast\n" - "everything within 300 feet of itself.\n" - "The organ that emits its intense psychic\n" - "power is sheltered by its ears."); - -const u8 gMeowsticPokedexText[] = _( - "The eyeball patterns on the interior of\n" - "its ears emit psychic energy. It keeps the\n" - "patterns tightly covered because that\n" - "power is too immense."); - -const u8 gHonedgePokedexText[] = _( - "If anyone dares to grab its hilt, it\n" - "wraps a blue cloth around that person's\n" - "arm and drains that person's life\n" - "energy completely."); - -const u8 gDoubladePokedexText[] = _( - "When Honedge evolves, it divides into\n" - "two swords. The complex attack patterns\n" - "of its two swords are unstoppable, even\n" - "against those skilled at swordplay."); - -const u8 gAegislashPokedexText[] = _( - "Generations of kings were attended to\n" - "by these Pokémon, which used their\n" - "spectral power to manipulate and control\n" - "people and Pokémon."); - -const u8 gSpritzeePokedexText[] = _( - "In the past, rather than using perfume,\n" - "royal ladies carried a Spritzee that would\n" - "waft a fragrance they liked. Its fragrance\n" - "changes depending on what it has eaten."); - -const u8 gAromatissePokedexText[] = _( - "Its scent is so overpowering that,\n" - "unless a Trainer happens to really enjoy\n" - "the smell, he or she will have a hard time\n" - "walking alongside it."); - -const u8 gSwirlixPokedexText[] = _( - "Because it eats nothing but sweets, its\n" - "fur is as sticky sweet as cotton candy.\n" - "To entangle its opponents in battle, it\n" - "extrudes sticky white threads."); - -const u8 gSlurpuffPokedexText[] = _( - "Slurpuff can distinguish even the\n" - "faintest of scents. It puts its sensitive\n" - "sense of smell to use by helping pastry\n" - "chefs in their work."); - -const u8 gInkayPokedexText[] = _( - "It flashes the light-emitting spots on its\n" - "body, which drains its opponent's will\n" - "to fight. It takes the opportunity to\n" - "scuttle away and hide."); - -const u8 gMalamarPokedexText[] = _( - "It lures prey close with hypnotic motions,\n" - "then wraps its tentacles around it before\n" - "finishing it off with digestive fluids. It\n" - "forces others to do whatever it wants."); - -const u8 gBinaclePokedexText[] = _( - "They stretch and then contract, yanking\n" - "their rocks along with them in bold hops.\n" - "They eat seaweed that washes up on\n" - "the shoreline."); - -const u8 gBarbaraclePokedexText[] = _( - "Barbaracle's legs and hands have minds\n" - "of their own, and they will move\n" - "independently. But they usually follow\n" - "the head's orders."); - -const u8 gSkrelpPokedexText[] = _( - "Camouflaged as rotten kelp, it hides\n" - "from foes while storing up power for its\n" - "evolution. They spray liquid poison on\n" - "prey that approach unawares."); - -const u8 gDragalgePokedexText[] = _( - "Their poison is strong enough to eat\n" - "through the hull of a tanker. Tales are\n" - "told of ships that wander into seas where\n" - "Dragalge live, never to return."); - -const u8 gClauncherPokedexText[] = _( - "Through controlled expulsions of internal\n" - "gas, it can expel water like a pistol shot.\n" - "At close distances, it can even shatter\n" - "large rocks."); - -const u8 gClawitzerPokedexText[] = _( - "By expelling water from the nozzle in the\n" - "back of its enormous claw, it can move\n" - "at a speed of 60 knots. They launch\n" - "cannonballs made of water."); - -const u8 gHelioptilePokedexText[] = _( - "They make their home in deserts.\n" - "They can generate their own energy from\n" - "basking in the sun, so eating food is not\n" - "a requirement."); - -const u8 gHelioliskPokedexText[] = _( - "A single Heliolisk can generate sufficient\n" - "electricity to power a skyscraper. It can\n" - "stimulate its muscles with electricity,\n" - "boosting the strength in its legs."); - -const u8 gTyruntPokedexText[] = _( - "Its immense jaws have enough destructive\n" - "force that it can chew up a car. If\n" - "something happens that it doesn't like,\n" - "it throws a tantrum and runs wild."); - -const u8 gTyrantrumPokedexText[] = _( - "Thanks to its gargantuan jaws, which could\n" - "shred thick metal plates as if they were\n" - "paper, it was invincible in the ancient\n" - "world it once inhabited."); - -const u8 gAmauraPokedexText[] = _( - "This ancient Pokémon was restored from\n" - "part of its body that had been frozen in\n" - "ice for over 100 million years. It lived in a\n" - "cold land where there were no predators."); - -const u8 gAurorusPokedexText[] = _( - "Using the diamond-shaped crystals on its\n" - "body it can instantly create a wall of ice\n" - "to block an opponent's attack, or encase\n" - "them in ice."); - -const u8 gSylveonPokedexText[] = _( - "Its ribbonlike feelers give off an aura\n" - "that weakens hostility in its prey, causing\n" - "them to let down their guard. A moment\n" - "later, it pounces."); - -const u8 gHawluchaPokedexText[] = _( - "With its wings, it controls its position in\n" - "the air. Its proficient fighting skills\n" - "enable it to keep up with big bruisers\n" - "like Machamp and Hariyama."); - -const u8 gDedennePokedexText[] = _( - "Its whiskers serve as antennas.\n" - "By sending and receiving electrical\n" - "waves, it can communicate with others\n" - "over vast distances."); - -const u8 gCarbinkPokedexText[] = _( - "Born from the high temperatures and\n" - "pressures deep underground, it defends\n" - "itself by firing beams from the jewel part\n" - "of its body."); - -const u8 gGoomyPokedexText[] = _( - "Its source of protection is its slimy,\n" - "germ-laden mucous membrane. Anyone\n" - "who touches it will need some thorough\n" - "hand-washing."); - -const u8 gSliggooPokedexText[] = _( - "This Pokémon's mucous can dissolve\n" - "anything. Toothless, it sprays mucous\n" - "on its prey. Once they're nicely dissolved,\n" - "it slurps them up."); - -const u8 gGoodraPokedexText[] = _( - "It gets picked on because it's meek.\n" - "But then, whoever teased it gets to feel\n" - "the full force of its horns and a good\n" - "swatting from its thick tail."); - -const u8 gKlefkiPokedexText[] = _( - "These key collectors threaten any\n" - "attackers by fiercely jingling their keys\n" - "at them. It will sneak into people's homes\n" - "to steal their keys."); - -const u8 gPhantumpPokedexText[] = _( - "According to legend, medicine to cure\n" - "any illness can be made by plucking the\n" - "green leaves on its head, brewing them,\n" - "and boiling down the liquid."); - -const u8 gTrevenantPokedexText[] = _( - "Through its roots, it exerts control over\n" - "other trees. A deadly curse falls upon\n" - "anyone cutting down trees in forests\n" - "where Trevenant dwell."); - -const u8 gPumpkabooPokedexText[] = _( - "It is said to carry wandering spirits to\n" - "the place where they belong so they can\n" - "move on. As the sun sets, it becomes\n" - "restless and active."); - -const u8 gGourgeistPokedexText[] = _( - "Singing in eerie voices, they wander town\n" - "streets on the night of the new moon.\n" - "Anyone who hears their song will become\n" - "inflicted with a curse."); - -const u8 gBergmitePokedexText[] = _( - "It blocks opponents' attacks with the ice\n" - "that shields its body. It uses cold air to\n" - "repair any cracks with new ice. They live\n" - "in herds on snowy mountains."); - -const u8 gAvaluggPokedexText[] = _( - "The way several Bergmite huddle on its\n" - "back make it look like an aircraft carrier\n" - "made of ice. Its cumbersome frame crushes\n" - "anything that stands in its way."); - -const u8 gNoibatPokedexText[] = _( - "They live in pitch-black caves. Even a\n" - "robust wrestler will become dizzy and\n" - "unable to stand when exposed to its\n" - "200,000-hertz ultrasonic waves."); - -const u8 gNoivernPokedexText[] = _( - "They fly around on moonless nights and\n" - "attack careless prey. The ultrasonic waves\n" - "it emits from its ears can reduce a large\n" - "boulder to pebbles."); - -const u8 gXerneasPokedexText[] = _( - "Legends say that when the horns on\n" - "its head shine in seven colors, it is\n" - "sharing everlasting life. It slept for a\n" - "thousand years in the form of a tree"); - -const u8 gYveltalPokedexText[] = _( - "When its life comes to an end, its wings\n" - "and tail spread wide and glow red, and\n" - "it absorbs the life energy of every living\n" - "thing and turns into a cocoon."); - -const u8 gZygardePokedexText[] = _( - "It's said to be monitoring the ecosystem\n" - "from deep in the caves where it lives.\n" - "There are rumors that even greater power\n" - "lies hidden within its cells."); - -const u8 gDianciePokedexText[] = _( - "A sudden transformation of Carbink,\n" - "its pink, glimmering body is said to be\n" - "the loveliest sight in the whole world.\n" - "It creates diamonds between its hands."); - -const u8 gHoopaPokedexText[] = _( - "In its true form, it possess a huge amount\n" - "of power. When its powers are sealed away,\n" - "it is transformed into a much smaller form.\n" - "It teleports things to a secret place."); - -const u8 gVolcanionPokedexText[] = _( - "It lets out billows of steam from the arms\n" - "on its back and disappears into the dense\n" - "fog. It's said to live in mountains where\n" - "humans do not tread."); -#endif - -#if P_GEN_7_POKEMON == TRUE -const u8 gRowletPokedexText[] = _( - "This wary Pokémon uses photosynthesis\n" - "to store up energy during the day, while\n" - "becoming active at night. Silently it\n" - "glides, drawing near to its target."); - -const u8 gDartrixPokedexText[] = _( - "A bit of a dandy, it spends its free time\n" - "preening its wings. Its preoccupation\n" - "with any dirt on its plumage can leave\n" - "it unable to battle."); - -const u8 gDecidueyePokedexText[] = _( - "Decidueye is cool and cautious.\n" - "It fires arrow quills from its wings with\n" - "such precision, they can pierce a pebble\n" - "at distances of over a hundred yards."); - -const u8 gLittenPokedexText[] = _( - "While grooming itself, it builds up fur\n" - "inside its stomach. It sets the fur alight\n" - "and spews fiery attacks, which change\n" - "based on how it coughs."); - -const u8 gTorracatPokedexText[] = _( - "At its throat, it bears a bell of fire. The\n" - "bell rings brightly whenever this Pokémon\n" - "spits fire. With a single punch, it can bend\n" - "an iron bar right over."); - -const u8 gIncineroarPokedexText[] = _( - "This Pokémon has a violent, selfish\n" - "disposition. If it's not in the mood to\n" - "listen, it will ignore its Trainer's orders\n" - "with complete nonchalance."); - -const u8 gPopplioPokedexText[] = _( - "This Pokémon snorts body fluids from\n" - "its nose, blowing balloons to smash into\n" - "its foes. It practices diligently so it can\n" - "learn to make big bubbles."); - -const u8 gBrionnePokedexText[] = _( - "It cares deeply for its companions.\n" - "When its Trainer is feeling down, it\n" - "performs a cheery dance with a sequence\n" - "of water balloons to try and help."); - -const u8 gPrimarinaPokedexText[] = _( - "It controls its water balloons with song.\n" - "The melody is learned from others of\n" - "its kind and is passed down from one\n" - "generation to the next."); - -const u8 gPikipekPokedexText[] = _( - "This Pokémon feeds on berries, whose\n" - "leftover seeds become the ammunition for\n" - "the attacks it fires off from its mouth.\n" - "It uses holes in trees for nesting."); - -const u8 gTrumbeakPokedexText[] = _( - "By bending its beak, it can produce a\n" - "variety of calls and brand itself a noisy\n" - "nuisance for its neighbors. It eats\n" - "berries and stores their seeds in its beak."); - -const u8 gToucannonPokedexText[] = _( - "When it battles, within its beak, its\n" - "internal gases ignite, explosively\n" - "launching seeds with enough power to\n" - "pulverize boulders."); - -const u8 gYungoosPokedexText[] = _( - "With its sharp fangs, it will bite anything.\n" - "It wanders around in a never-ending\n" - "search for food. At dusk, it collapses\n" - "and falls asleep on the spot."); - -const u8 gGumshoosPokedexText[] = _( - "When it finds a trace of its prey, it\n" - "patiently stakes out the location...\n" - "but as it's diurnal, it's always snoozing\n" - "by nightfall."); - -const u8 gGrubbinPokedexText[] = _( - "They often gather near places frequented\n" - "by electric Pokémon in order to avoid being\n" - "attacked by bird Pokémon, though it\n" - "normally lives underground."); - -const u8 gCharjabugPokedexText[] = _( - "From the food it digests, it generates\n" - "electricity, and it stores this energy in\n" - "its electric sac. On camping trips, people\n" - "are grateful to have one around."); - -const u8 gVikavoltPokedexText[] = _( - "It concentrates electrical energy within\n" - "its large jaws and uses it to zap its foes.\n" - "It overwhelms bird Pokémon with shocking\n" - "beams of electrical energy."); - -const u8 gCrabrawlerPokedexText[] = _( - "While guarding its weak points with its\n" - "pincers, it looks for an opening and\n" - "unleashes punches. When it loses, it\n" - "foams at the mouth and faints."); - -const u8 gCrabominablePokedexText[] = _( - "It aimed for the top but got lost and\n" - "ended up on a snowy mountain. Being forced\n" - "to endure the cold, this Pokémon evolved\n" - "and grew thick fur."); - -const u8 gOricorioPokedexText[] = _( - "Oricorio can change its body by sipping\n" - "different coloured nectar. It's enemies'\n" - "hearts melt at the sight of its varying,\n" - "beautiful dances."); - -const u8 gCutieflyPokedexText[] = _( - "Myriads of Cutiefly flutter above the\n" - "heads of people who have auras resembling\n" - "those of flowers. It can identify which\n" - "flowers are about to bloom."); - -const u8 gRibombeePokedexText[] = _( - "Ribombee rolls up pollen into puffs.\n" - "It makes many different varieties, some\n" - "used as food and others used in battle.\n" - "They are sometimes sold as supplements."); - -const u8 gRockruffPokedexText[] = _( - "This Pokémon has lived with people since\n" - "times long ago. It can sense when its\n" - "Trainer is in the dumps and will stick\n" - "close by its Trainer's side."); - -const u8 gLycanrocPokedexText[] = _( - "Well equipped with claws and fangs, it\n" - "also uses the sharp rocks in its mane\n" - "as weapons. It will attack with no regard\n" - "for its own safety."); - -const u8 gWishiwashiPokedexText[] = _( - "When it's in trouble, its eyes moisten and\n" - "begin to shine. The shining light attracts\n" - "its comrades, and they stand together\n" - "against their enemies."); - -const u8 gMareaniePokedexText[] = _( - "It's found crawling on beaches and\n" - "seafloors. The coral that grows on\n" - "Corsola's head is as good as a five-star\n" - "banquet to this Pokémon."); - -const u8 gToxapexPokedexText[] = _( - "Those attacked by Toxapex's poison will\n" - "suffer intense pain for three days and\n" - "three nights. Post-recovery, there will be\n" - "some aftereffects."); - -const u8 gMudbrayPokedexText[] = _( - "The mud stuck to Mudbray's hooves\n" - "enhances its grip and its powerful running\n" - "gait. Eating dirt, making mud, and playing\n" - "in the mire form its daily routine."); - -const u8 gMudsdalePokedexText[] = _( - "Its heavy, mud-covered kicks are its\n" - "best means of attack, and it can reduce\n" - "large trucks to scrap without breaking\n" - "a sweat."); - -const u8 gDewpiderPokedexText[] = _( - "It crawls onto the land in search of food.\n" - "When it comes across enemies or potential\n" - "prey, this Pokémon smashes its\n" - "water-bubble-covered head into them."); - -const u8 gAraquanidPokedexText[] = _( - "Despite what its appearance suggests,\n" - "it cares for others. If it finds vulnerable,\n" - "weak Pokémon, it protectively brings\n" - "them into its water bubble."); - -const u8 gFomantisPokedexText[] = _( - "During the day, it sleeps and soaks up\n" - "light. They give off a sweet and refreshing\n" - "scent. Cutiefly often gather near the tall\n" - "grass where Fomantis are hiding."); - -const u8 gLurantisPokedexText[] = _( - "It requires a lot of effort to maintain\n" - "Lurantis's vivid coloring, but some\n" - "collectors enjoy this work and treat it\n" - "as their hobby."); - -const u8 gMorelullPokedexText[] = _( - "As it drowses the day away, it nourishes\n" - "itself by sucking from tree roots.\n" - "It wakens at the fall of night, wandering\n" - "off in search of a new tree."); - -const u8 gShiinoticPokedexText[] = _( - "Forests where Shiinotic live are\n" - "treacherous to enter at night.\n" - "People confused by its strange lights\n" - "can never find their way home again."); - -const u8 gSalanditPokedexText[] = _( - "It burns its bodily fluids to create a\n" - "sweet-smelling poisonous gas. When its\n" - "enemies become disoriented from inhaling\n" - "the gas, it attacks them."); - -const u8 gSalazzlePokedexText[] = _( - "For some reason, only females have\n" - "been found. It creates a reverse harem of\n" - "male Salandit to live with. Its poisonous\n" - "gas is filled with pheromones."); - -const u8 gStuffulPokedexText[] = _( - "Despite its adorable appearance, when it\n" - "gets angry and flails about, its arms and\n" - "legs could knock a pro wrestler sprawling.\n" - "It's an incredibly dangerous Pokémon."); - -const u8 gBewearPokedexText[] = _( - "This Pokémon has the habit of hugging its\n" - "companions. Many Trainers have left this\n" - "world after their spines were squashed\n" - "by its hug."); - -const u8 gBounsweetPokedexText[] = _( - "A delectable aroma pours from its body. \n" - "Bounsweet's sweat can be watered down\n" - "into a juice with just the right amount\n" - "of sweetness."); - -const u8 gSteeneePokedexText[] = _( - "The sepals on its head developed to\n" - "protect its body. These are quite hard, so\n" - "even if pecked by bird Pokémon, this\n" - "Pokémon is totally fine."); - -const u8 gTsareenaPokedexText[] = _( - "Its long, striking legs aren't just for\n" - "show but to be used to kick with skill.\n" - "In victory, it shows off by kicking the\n" - "defeated, laughing boisterously."); - -const u8 gComfeyPokedexText[] = _( - "It attaches flowers to its nutritious\n" - "vine. Baths prepared with the flowers\n" - "from its vine have a relaxing effect, so\n" - "this Pokémon is a hit with many people."); - -const u8 gOranguruPokedexText[] = _( - "Deep in the jungle, high in the lofty\n" - "canopy, this Pokémon abides. On rare\n" - "occasions, it shows up at the beach to\n" - "match wits with Slowking."); - -const u8 gPassimianPokedexText[] = _( - "They battle with hard berries for weapons.\n" - "They form groups of about 20 individuals.\n" - "Their techniques are passed from the boss\n" - "to the group, generation upon generation."); - -const u8 gWimpodPokedexText[] = _( - "This Pokémon is a coward. As it desperately\n" - "dashes off, the flailing of its many legs\n" - "leaves a sparkling clean path in its wake.\n" - "It lives on beaches and seabeds."); - -const u8 gGolisopodPokedexText[] = _( - "It battles skillfully with its six arms,\n" - "with a flashing slash of its giant sharp\n" - "claws, it cleaves seawater--or even\n" - "air--right in two."); - -const u8 gSandygastPokedexText[] = _( - "It takes control of anyone who puts a hand\n" - "in its mouth, to add to the accumulation\n" - "of its sand-mound body. This Pokémon\n" - "embodies the grudges of the departed."); - -const u8 gPalossandPokedexText[] = _( - "Possessed people controlled by this\n" - "Pokémon transformed its sand mound into\n" - "a castle. As it evolved, its power to curse\n" - "grew ever stronger."); - -const u8 gPyukumukuPokedexText[] = _( - "It lives in shallow seas, such as areas\n" - "near a beach. The sticky mucous that\n" - "covers their bodies can be used to soothe\n" - "sunburned skin. How convenient!"); - -const u8 gTypeNullPokedexText[] = _( - "Due to the danger that this synthetic\n" - "Pokémon may go on a rampage, it wears a\n" - "control mask to restrain its capabilities.\n" - "It has some hidden special power."); - -const u8 gSilvallyPokedexText[] = _( - "Its trust in its partner awakens it.\n" - "This Pokémon is capable of changing its\n" - "type by equipping special memories, a\n" - "trait that is well displayed in battle."); - -const u8 gMiniorPokedexText[] = _( - "Originally making its home in the ozone\n" - "layer, it hurtles to the ground when the\n" - "shell encasing its body grows too heavy.\n" - "It was born from mutated nanoparticles."); - -const u8 gKomalaPokedexText[] = _( - "It is born asleep, and it dies asleep.\n" - "All its movements are apparently no more\n" - "than the results of it tossing and turning\n" - "in its dreams."); - -const u8 gTurtonatorPokedexText[] = _( - "The shell on its back is chemically\n" - "unstable and explodes violently if struck.\n" - "The hole in its stomach is its weak point.\n" - "It gushes fire from its nostrils."); - -const u8 gTogedemaruPokedexText[] = _( - "The spiny fur on its back is normally\n" - "at rest. When this Pokémon becomes\n" - "agitated, its fur stands on end and stabs\n" - "into its attackers."); - -const u8 gMimikyuPokedexText[] = _( - "A lonely Pokémon, it hides its terrifying\n" - "appearance beneath an old rag so it can\n" - "get closer to people and other Pokémon.\n" - "Its actual appearance is unknown."); - -const u8 gBruxishPokedexText[] = _( - "It stuns its prey with its psychic powers\n" - "and then grinds them to mush with its\n" - "strong teeth. Even Shellder's shell is no\n" - "match for it."); - -const u8 gDrampaPokedexText[] = _( - "This Pokémon is friendly to people and\n" - "loves children most of all. It comes from\n" - "deep in the mountains to play with\n" - "children it likes in town."); - -const u8 gDhelmisePokedexText[] = _( - "The soul of seaweed adrift in the waves\n" - "became reborn as this Pokémon.\n" - "It maintains itself with new infusions of\n" - "seabed detritus and seaweed."); - -const u8 gJangmoOPokedexText[] = _( - "It expresses its feelings by smacking its\n" - "scales. Metallic sounds echo through the\n" - "tall mountains where Jangmo-o live. They\n" - "grow little by little battling one another."); - -const u8 gHakamoOPokedexText[] = _( - "It sheds and regrows its scales on a\n" - "continuous basis. The scales become\n" - "harder each time they're regrown. Its\n" - "scaly punches tear its foes to shreds."); - -const u8 gKommoOPokedexText[] = _( - "Its rigid scales function as offense and\n" - "defense. In the past, its scales were\n" - "processed and used to make weapons\n" - "and other valuable commodities."); - -const u8 gTapuKokoPokedexText[] = _( - "It confuses its enemies by flying too\n" - "quickly for the eye to follow. It has a\n" - "hair-trigger temper but forgets what\n" - "made it angry an instant later."); - -const u8 gTapuLelePokedexText[] = _( - "A fragrant aroma of flowers follows it.\n" - "As it flutters about, it scatters its\n" - "strangely glowing scales. Touching them\n" - "is said to restore good health."); - -const u8 gTapuBuluPokedexText[] = _( - "It causes vegetation to grow, and then\n" - "it absorbs energy from the growth.\n" - "It pulls large trees up by the roots and\n" - "swings them around at its enemies."); - -const u8 gTapuFiniPokedexText[] = _( - "People say it can create pure water that\n" - "will wash away any corruption. The dense\n" - "fog it creates brings the downfall and\n" - "destruction of its confused enemies."); - -const u8 gCosmogPokedexText[] = _( - "In ages past, it was called the child of\n" - "the stars. It's said to be a Pokémon from\n" - "another world, but no specific details\n" - "are known."); - -const u8 gCosmoemPokedexText[] = _( - "Motionless as if dead, its body is faintly\n" - "warm to the touch. There's something\n" - "accumulating around the black core\n" - "within its hard shell."); - -const u8 gSolgaleoPokedexText[] = _( - "It is said to live in another world.\n" - "The intense light it radiates from the\n" - "surface of its body can make the darkest\n" - "of nights light up like midday."); - -const u8 gLunalaPokedexText[] = _( - "When its third eye activates, away it flies\n" - "to another world. This Pokémon devours\n" - "light, drawing the moonless dark veil of\n" - "night over the brightness of day."); - -const u8 gNihilegoPokedexText[] = _( - "One of several mysterious Ultra Beasts.\n" - "It's unclear whether or not this Pokémon\n" - "is sentient, but sometimes it can be\n" - "observed behaving like a young girl."); - -const u8 gBuzzwolePokedexText[] = _( - "This life-form called an Ultra Beast\n" - "appeared from another world. It shows\n" - "off its body, but whether that display\n" - "is a boast or a threat remains unclear."); - -const u8 gPheromosaPokedexText[] = _( - "One of the dangerous Ultra Beasts,\n" - "it refuses to touch anything, perhaps\n" - "because it senses some uncleanness\n" - "in this world."); - -const u8 gXurkitreePokedexText[] = _( - "One of the mysterious life-forms known\n" - "as Ultra Beasts. Astonishing electric\n" - "shocks emanate from its entire body,\n" - "according to witnesses."); - -const u8 gCelesteelaPokedexText[] = _( - "It appeared from the Ultra Wormhole.\n" - "One kind of Ultra Beast, witnesses saw\n" - "it flying across the sky by expelling gas\n" - "from its two arms."); - -const u8 gKartanaPokedexText[] = _( - "This Ultra Beast came from the\n" - "Ultra Wormhole. It seems not to attack\n" - "enemies on its own, but its sharp body is\n" - "a dangerous weapon in itself."); - -const u8 gGuzzlordPokedexText[] = _( - "A dangerous Ultra Beast, it has gobbled\n" - "mountains and swallowed whole buildings,\n" - "according to reports. But for some reason\n" - "its droppings have never been found."); - -const u8 gNecrozmaPokedexText[] = _( - "Reminiscent of the Ultra Beasts, this\n" - "life-form, apparently asleep underground,\n" - "is thought to have come from another\n" - "world in ancient times."); - -const u8 gMagearnaPokedexText[] = _( - "This artificial Pokémon, constructed more\n" - "than 500 years ago, can understand human\n" - "speech but cannot itself speak. Its true\n" - "self is its Soul-Heart, an artificial soul."); - -const u8 gMarshadowPokedexText[] = _( - "Able to conceal itself in the shadows of\n" - "others, it never appears before humans,\n" - "so its very existence is the stuff of myth.\n" - "This Pokémon is craven and cowering."); - -const u8 gPoipolePokedexText[] = _( - "This Ultra Beast is well enough\n" - "liked to be chosen as a\n" - "first partner in its own world."); - -const u8 gNaganadelPokedexText[] = _( - "It stores hundreds of liters of poisonous\n" - "liquid inside its body. It is one of the\n" - "organisms known as UBs."); - -const u8 gStakatakaPokedexText[] = _( - "It appeared from an Ultra Wormhole. Each\n" - "one appears to be made up of many life-\n" - "forms stacked one on top of each other."); - -const u8 gBlacephalonPokedexText[] = _( - "It slithers toward people and explode\n" - "its head without warning. It is\n" - "one kind of Ultra Beast."); - -const u8 gZeraoraPokedexText[] = _( - "It approaches its enemies at the speed\n" - "of lightning, then tears them limb from\n" - "limb with its sharp claws."); - -const u8 gMeltanPokedexText[] = _( - "It melts particles of iron and other metals\n" - "found in the subsoil, so it can absorb them\n" - "into its body of molten steel."); - -const u8 gMelmetalPokedexText[] = _( - "Revered long ago for its capacity to create\n" - "iron from nothing, for some reason it has\n" - "come back to life after 3,000 years."); -#endif - -#if P_GEN_8_POKEMON == TRUE -const u8 gGrookeyPokedexText[] = _( - "When it uses its special stick to strike up\n" - "a beat, the sound waves produced carry\n" - "revitalizing energy to the plants and\n" - "flowers in the area."); - -const u8 gThwackeyPokedexText[] = _( - "The faster a Thwackey can beat out\n" - "a rhythm with its two sticks, the more\n" - "respect it wins from its peers."); - -const u8 gRillaboomPokedexText[] = _( - "By drumming, it taps into the power of\n" - "its special tree stump. The roots of the\n" - "stump follow its direction in battle."); - -const u8 gScorbunnyPokedexText[] = _( - "A warm-up of running around gets fire\n" - "energy coursing through this Pokémon's\n" - "body. Once that happens, it's ready to\n" - "fight at full power."); - -const u8 gRabootPokedexText[] = _( - "Its thick and fluffy fur protects it\n" - "from the cold and enables it to use\n" - "hotter fire moves."); - -const u8 gCinderacePokedexText[] = _( - "It juggles a pebble with its feet,\n" - "turning it into a burning soccer ball.\n" - "Its shots strike opponents hard and\n" - "leave them scorched."); - -const u8 gSobblePokedexText[] = _( - "When scared, this Pokémon cries.\n" - "Its tears pack the chemical punch of 100\n" - "onions, and attackers won't be\n" - "able to resist weeping."); - -const u8 gDrizzilePokedexText[] = _( - "A clever combatant, this Pokémon battles\n" - "using water balloons created with\n" - "moisture secreted from its palms."); - -const u8 gInteleonPokedexText[] = _( - "It has many hidden capabilities, such as\n" - "fingertips that can shoot water and a\n" - "membrane on its back that it can use to\n" - "glide through the air."); - -const u8 gSkwovetPokedexText[] = _( - "Found throughout the Galar region, this\n" - "Pokémon becomes uneasy if its cheeks are\n" - "ever completely empty of berries."); - -const u8 gGreedentPokedexText[] = _( - "It stashes berries in its tail--so many\n" - "berries that they fall out constantly.\n" - "But this Pokémon is a bit slow-witted,\n" - "so it doesn't notice the loss."); - -const u8 gRookideePokedexText[] = _( - "It will bravely challenge any opponent,\n" - "no matter how powerful. This Pokémon\n" - "benefits from every battle--even a defeat\n" - "increases its strength a bit."); - -const u8 gCorvisquirePokedexText[] = _( - "Smart enough to use tools in battle,\n" - "these Pokémon have been seen picking up\n" - "rocks and flinging them or using ropes\n" - "to wrap up enemies."); - -const u8 gCorviknightPokedexText[] = _( - "This Pokémon reigns supreme in the skies\n" - "of the Galar region. The black luster of\n" - "its steel body could drive terror into\n" - "the heart of any foe."); - -const u8 gBlipbugPokedexText[] = _( - "A constant collector of information,\n" - "this Pokémon is very smart. Very strong\n" - "is what it isn't."); - -const u8 gDottlerPokedexText[] = _( - "It barely moves, but it's still alive.\n" - "Hiding in its shell without food or\n" - "water seems to have awakened its\n" - "psychic powers."); - -const u8 gOrbeetlePokedexText[] = _( - "It's famous for its high level of\n" - "intelligence, and the large size of its\n" - "brain is proof that it also possesses\n" - "immense psychic power."); - -const u8 gNickitPokedexText[] = _( - "Aided by the soft pads on its feet, it\n" - "silently raids the food stores of other\n" - "Pokémon. It survives off its\n" - "ill-gotten gains."); - -const u8 gThievulPokedexText[] = _( - "It secretly marks potential targets with\n" - "a scent. By following the scent, it\n" - "stalks its targets and steals from them\n" - "when they least expect it."); - -const u8 gGossifleurPokedexText[] = _( - "It anchors itself in the ground with its\n" - "single leg, then basks in the sun. After\n" - "absorbing enough sunlight, its petals\n" - "spread as it blooms brilliantly."); - -const u8 gEldegossPokedexText[] = _( - "The seeds attached to its cotton fluff\n" - "are full of nutrients. It spreads them\n" - "on the wind so that plants and other\n" - "Pokémon can benefit from them."); - -const u8 gWoolooPokedexText[] = _( - "Its curly fleece is such an effective\n" - "cushion that this Pokémon could fall off\n" - "a cliff and stand right back up at the\n" - "bottom, unharmed."); - -const u8 gDubwoolPokedexText[] = _( - "Weave a carpet from its springy wool,\n" - "and you end up with something closer to\n" - "a trampoline. You'll start to bounce the\n" - "moment you set foot on it."); - -const u8 gChewtlePokedexText[] = _( - "Apparently the itch of its teething\n" - "impels it to snap its jaws at anything\n" - "in front of it."); - -const u8 gDrednawPokedexText[] = _( - "With jaws that can shear through steel\n" - "rods, this highly aggressive Pokémon\n" - "chomps down on its unfortunate prey."); - -const u8 gYamperPokedexText[] = _( - "This Pokémon is very popular as a\n" - "herding dog in the Galar region. As it\n" - "runs, it generates electricity from the\n" - "base of its tail."); - -const u8 gBoltundPokedexText[] = _( - "This Pokémon generates electricity and\n" - "channels it into its legs to keep them\n" - "going strong. Boltund can run nonstop\n" - "for three full days."); - -const u8 gRolycolyPokedexText[] = _( - "Most of its body has the same composition\n" - "as coal. Fittingly, this Pokémon was\n" - "first discovered in coal mines about\n" - "400 years ago."); - -const u8 gCarkolPokedexText[] = _( - "It forms coal inside its body. Coal\n" - "dropped by this Pokémon once helped fuel\n" - "the lives of people in the Galar region."); - -const u8 gCoalossalPokedexText[] = _( - "It's usually peaceful, but the vandalism\n" - "of mines enrages it. Offenders will be\n" - "incinerated with flames that reach\n" - "2,700 degrees Fahrenheit."); - -const u8 gApplinPokedexText[] = _( - "It spends its entire life inside an\n" - "apple. It hides from its natural enemies,\n" - "bird Pokémon, by pretending it's just an\n" - "apple and nothing more."); - -const u8 gFlapplePokedexText[] = _( - "It ate a sour apple, and that induced its\n" - "evolution. In its cheeks, it stores an acid\n" - "capable of causing chemical burns."); - -const u8 gAppletunPokedexText[] = _( - "Eating a sweet apple caused its evolution.\n" - "A nectarous scent wafts from its body,\n" - "luring in the bug Pokémon it preys on."); - -const u8 gSilicobraPokedexText[] = _( - "As it digs, it swallows sand and stores\n" - "it in its neck pouch. The pouch can hold\n" - "more than 17 pounds of sand."); - -const u8 gSandacondaPokedexText[] = _( - "When it contracts its body, over 220\n" - "pounds of sand sprays from its nose. If\n" - "it ever runs out of sand, it becomes\n" - "disheartened."); - -const u8 gCramorantPokedexText[] = _( - "It's so strong that it can knock out some\n" - "opponents in a single hit, but it also may\n" - "forget what it's battling midfight."); - -const u8 gArrokudaPokedexText[] = _( - "If it sees any movement around it, this\n" - "Pokémon charges for it straightaway,\n" - "leading with its sharply pointed jaw.\n" - "It's very proud of that jaw."); - -const u8 gBarraskewdaPokedexText[] = _( - "This Pokémon has a jaw that's as sharp\n" - "as a spear and as strong as steel.\n" - "Apparently Barraskewda's flesh is\n" - "surprisingly tasty, too."); - -const u8 gToxelPokedexText[] = _( - "It stores poison in an internal poison\n" - "sac and secretes that poison through its\n" - "skin. If you touch this Pokémon, a\n" - "tingling sensation follows."); - -const u8 gToxtricityPokedexText[] = _( - "When this Pokémon sounds as if it's\n" - "strumming a guitar, it's actually clawing\n" - "at the protrusions on its chest to\n" - "generate electricity."); - -const u8 gSizzlipedePokedexText[] = _( - "It stores flammable gas in its body and\n" - "uses it to generate heat. The yellow\n" - "sections on its belly get particularly hot."); - -const u8 gCentiskorchPokedexText[] = _( - "When it heats up, its body temperature\n" - "reaches about 1,500 degrees Fahrenheit.\n" - "It lashes its body like a whip and\n" - "launches itself at enemies."); - -const u8 gClobbopusPokedexText[] = _( - "It's very curious, but its means of\n" - "investigating things is to try to punch\n" - "them with its tentacles. The search for\n" - "food is what brings it onto land."); - -const u8 gGrapploctPokedexText[] = _( - "A body made up of nothing but muscle makes\n" - "the grappling moves this Pokémon performs\n" - "with its tentacles tremendously powerful."); - -const u8 gSinisteaPokedexText[] = _( - "This Pokémon is said to have been born\n" - "when a lonely spirit possessed a cold,\n" - "leftover cup of tea."); - -const u8 gPolteageistPokedexText[] = _( - "This species lives in antique teapots.\n" - "Most pots are forgeries, but on rare\n" - "occasions, an authentic work is found."); - -const u8 gHatennaPokedexText[] = _( - "Via the protrusion on its head, it senses\n" - "other creatures' emotions. If you don't\n" - "have a calm disposition, it will never\n" - "warm up to you."); - -const u8 gHattremPokedexText[] = _( - "No matter who you are, if you bring strong\n" - "emotions near this Pokémon, it will silence\n" - "you violently."); - -const u8 gHatterenePokedexText[] = _( - "It emits psychic power strong enough to\n" - "cause headaches as a deterrent to the\n" - "approach of others."); - -const u8 gImpidimpPokedexText[] = _( - "Through its nose, it sucks in the\n" - "emanations produced by people and Pokémon\n" - "when they feel annoyed. It thrives off\n" - "this negative energy."); - -const u8 gMorgremPokedexText[] = _( - "When it gets down on all fours as if to\n" - "beg for forgiveness, it's trying to lure\n" - "opponents in so that it can stab them\n" - "with its spear-like hair."); - -const u8 gGrimmsnarlPokedexText[] = _( - "With the hair wrapped around its body\n" - "helping to enhance its muscles, this\n" - "Pokémon can overwhelm even Machamp."); - -const u8 gObstagoonPokedexText[] = _( - "Its voice is staggering in volume.\n" - "Obstagoon has a tendency to take on a\n" - "threatening posture and shout--this move\n" - "is known as Obstruct."); - -const u8 gPerrserkerPokedexText[] = _( - "What appears to be an iron helmet is\n" - "actually hardened hair. This Pokémon\n" - "lives for the thrill of battle."); - -const u8 gCursolaPokedexText[] = _( - "Its shell is overflowing with its\n" - "heightened otherworldly energy. The\n" - "ectoplasm serves as protection for this\n" - "Pokémon's core spirit."); - -const u8 gSirfetchdPokedexText[] = _( - "Only Farfetch'd that have survived many\n" - "battles can attain this evolution. When\n" - "this Pokémon's leek withers, it will\n" - "retire from combat."); - -const u8 gMrRimePokedexText[] = _( - "It's highly skilled at tap-dancing. It\n" - "waves its cane of ice in time with its\n" - "graceful movements."); - -const u8 gRunerigusPokedexText[] = _( - "A powerful curse was woven into an ancient\n" - "painting. After absorbing the spirit of\n" - "a Yamask, the painting began to move."); - -const u8 gMilceryPokedexText[] = _( - "This Pokémon was born from sweet-smelling\n" - "particles in the air. Its body is made\n" - "of cream."); - -const u8 gAlcremiePokedexText[] = _( - "When it trusts a Trainer, it will treat\n" - "them to berries it's decorated with cream."); - -const u8 gFalinksPokedexText[] = _( - "Five of them are troopers, and one is the\n" - "brass. The brass's orders are absolute."); - -const u8 gPincurchinPokedexText[] = _( - "It feeds on seaweed, using its teeth to\n" - "scrape it off rocks. Electric current\n" - "flows from the tips of its spines."); - -const u8 gSnomPokedexText[] = _( - "It spits out thread imbued with a frigid\n" - "sort of energy and uses it to tie its body\n" - "to branches, disguising itself as an\n" - "icicle while it sleeps."); - -const u8 gFrosmothPokedexText[] = _( - "Icy scales fall from its wings like snow\n" - "as it flies over fields and mountains.\n" - "The temperature of its wings is less than\n" - "-290 degrees Fahrenheit."); - -const u8 gStonjournerPokedexText[] = _( - "It stands in grasslands, watching the\n" - "sun's descent from zenith to horizon. This\n" - "Pokémon has a talent for delivering\n" - "dynamic kicks."); - -const u8 gEiscuePokedexText[] = _( - "It drifted in on the flow of ocean waters\n" - "from a frigid place. It keeps its head\n" - "iced constantly to make sure it stays\n" - "nice and cold."); - -const u8 gIndeedeePokedexText[] = _( - "It uses the horns on its head to sense the\n" - "emotions of others. Males will act as\n" - "valets for those they serve, looking\n" - "after their every need."); - -const u8 gMorpekoPokedexText[] = _( - "As it eats the seeds stored up in its\n" - "pocket-like pouches, this Pokémon is not\n" - "just satisfying its constant hunger. It's\n" - "also generating electricity."); - -const u8 gCufantPokedexText[] = _( - "It digs up the ground with its trunk.\n" - "It's also very strong, being able to\n" - "carry loads of over five tons without any\n" - "problem at all."); - -const u8 gCopperajahPokedexText[] = _( - "They came over from another region long\n" - "ago and worked together with humans.\n" - "Their green skin is resistant to water."); - -const u8 gDracozoltPokedexText[] = _( - "In ancient times, it was unbeatable thanks\n" - "to its powerful lower body, but it went\n" - "extinct anyway after it depleted all its\n" - "plant-based food sources."); - -const u8 gArctozoltPokedexText[] = _( - "The shaking of its freezing upper half is\n" - "what generates its electricity. It has a\n" - "hard time walking around."); - -const u8 gDracovishPokedexText[] = _( - "Powerful legs and jaws made it the apex\n" - "predator of its time. Its own overhunting\n" - "of its prey was what drove it to\n" - "extinction."); - -const u8 gArctovishPokedexText[] = _( - "Though it's able to capture prey by\n" - "freezing its surroundings, it has trouble\n" - "eating the prey afterward because its\n" - "mouth is on top of its head."); - -const u8 gDuraludonPokedexText[] = _( - "Its body resembles polished metal, and\n" - "it's both lightweight and strong. The only\n" - "drawback is that it rusts easily."); - -const u8 gDreepyPokedexText[] = _( - "After being reborn as a ghost Pokémon,\n" - "Dreepy wanders the areas it used to\n" - "inhabit back when it was alive in\n" - "prehistoric seas."); - -const u8 gDrakloakPokedexText[] = _( - "It's capable of flying faster than 120 mph.\n" - "It battles alongside Dreepy and dotes\n" - "on them until they successfully evolve."); - -const u8 gDragapultPokedexText[] = _( - "When it isn't battling, it keeps Dreepy\n" - "in the holes on its horns. Once a fight\n" - "starts, it launches the Dreepy like\n" - "supersonic missiles."); - -const u8 gZacianPokedexText[] = _( - "Known as a legendary hero, this Pokémon\n" - "absorbs metal particles, transforming them\n" - "into a weapon it uses to battle."); - -const u8 gZamazentaPokedexText[] = _( - "In times past, it worked together with a\n" - "king of the people to save the Galar\n" - "region. It absorbs metal that it then\n" - "uses in battle."); - -const u8 gEternatusPokedexText[] = _( - "The core on its chest absorbs energy\n" - "emanating from the lands of the Galar\n" - "region. This energy is what allows\n" - "Eternatus to stay active."); - -const u8 gKubfuPokedexText[] = _( - "Kubfu trains hard to perfect its moves.\n" - "The moves it masters will determine which\n" - "form it takes when it evolves."); - -const u8 gUrshifuPokedexText[] = _( - "This form of Urshifu is a strong believer\n" - "in the one-hit KO. Its strategy is to leap\n" - "in close to foes and land a devastating\n" - "blow with a hardened fist."); - -const u8 gZarudePokedexText[] = _( - "Within dense forests, this Pokémon lives\n" - "in a pack with others of its kind. It's\n" - "incredibly aggressive, and the other\n" - "Pokémon of the forest fear it."); - -const u8 gRegielekiPokedexText[] = _( - "This Pokémon is a cluster of electrical\n" - "energy. It's said that removing the rings\n" - "on Regieleki's body will unleash the\n" - "Pokémon's latent power."); - -const u8 gRegidragoPokedexText[] = _( - "An academic theory proposes that\n" - "Regidrago's arms were once the head of an\n" - "ancient dragon Pokémon. The theory\n" - "remains unproven."); - -const u8 gGlastrierPokedexText[] = _( - "Glastrier emits intense cold from its\n" - "hooves. It's also a belligerent Pokémon--\n" - "anything it wants, it takes by force."); - -const u8 gSpectrierPokedexText[] = _( - "It probes its surroundings with all its\n" - "senses save one--it doesn't use its sense\n" - "of sight. Spectrier's kicks are said to\n" - "separate soul from body."); - -const u8 gCalyrexPokedexText[] = _( - "Calyrex is a merciful Pokémon, capable of\n" - "providing healing and blessings. It\n" - "reigned over the Galar region in times\n" - "of yore."); - -const u8 gWyrdeerPokedexText[] = _( - "The black orbs shine with an uncanny light\n" - "when it is erecting invisible barriers.\n" - "The fur shed from its beard retains heat\n" - "and is useful for winter clothing."); - -const u8 gKleavorPokedexText[] = _( - "A violent creature that fells trees with\n" - "its crude axes and shields itself with hard\n" - "stone. Should one encounter this Pokémon\n" - "in the wild, one's only recourse is to flee."); - -const u8 gUrsalunaPokedexText[] = _( - "Swampy terrain gives Ursaluna its burly\n" - "physique and newfound capacity to\n" - "manipulate peat at will."); - -const u8 gBasculegionPokedexText[] = _( - "Clads itself in the souls of comrades that\n" - "perished before fulfilling their goals of\n" - "journeying upstream. No other species in\n" - "all Hisui's rivers is Basculegion's equal."); - -const u8 gSneaslerPokedexText[] = _( - "Because of its wicked poison and daunting\n" - "physical prowess, no other species could\n" - "hope to best it on frozen highlands. It\n" - "prefers solitude and doesn't form packs."); - -const u8 gOverqwilPokedexText[] = _( - "Its lancelike spikes and savage\n" - "temperament have earned it the\n" - "nickname “Sea Fiend”.\n" - "It slurps up poison to nourish itself."); - -const u8 gEnamorusPokedexText[] = _( - "Its arrival brings an end to the\n" - "winter. According to legend, this\n" - "Pokémon's love gives rise to the\n" - "budding of fresh life across the land."); -#endif diff --git a/src/data/pokemon/species_info.h b/src/data/pokemon/species_info.h index ad4822ba47d7..2c8e5b112ef4 100644 --- a/src/data/pokemon/species_info.h +++ b/src/data/pokemon/species_info.h @@ -1,47 +1,294 @@ +#include "constants/abilities.h" + +// Shared Pokédex entries +const u8 gPichuPokedexText[] = _( + "It is still inept at retaining electricity.\n" + "When it is startled, it discharges power\n" + "accidentally. It gets better at holding\n" + "power as it grows older."); + +const u8 gPikachuPokedexText[] = _( + "It stores electricity in the electric sacs\n" + "on its cheeks. When it releases pent-up\n" + "energy in a burst, the electric power is\n" + "equal to a lightning bolt."); + +const u8 gUnownPokedexText[] = _( + "This Pokémon is shaped like ancient text\n" + "characters. Although research is ongoing,\n" + "it is a mystery as to which came first,\n" + "the ancient writings or the various Unown."); + +const u8 gDeoxysNormalPokedexText[] = _( + "Deoxys emerged from a virus that came\n" + "from space. It is highly intelligent and\n" + "can shoot lasers from the crystalline\n" + "organ on its chest."); + +const u8 gArceusPokedexText[] = _( + "It is told in mythology that this Pokémon\n" + "emerged from an egg and shaped all there\n" + "is in this world, before the universe\n" + "even existed."); + +const u8 gGenesectPokedexText[] = _( + "Over 300 million years ago, it was\n" + "feared as the strongest of hunters.\n" + "Team Plasma altered it and attached\n" + "a cannon to its back."); + +const u8 gGreninjaPokedexText[] = _( + "It appears and vanishes with a ninja's\n" + "grace. It toys with its enemies using swift\n" + "movements, while slicing them with throwing\n" + "stars made of compressed water."); + +const u8 gFurfrouPokedexText[] = _( + "Trimming its fluffy fur not only makes\n" + "it more elegant but also increases the\n" + "swiftness of its movements. These\n" + "Pokémon were the guardians of kings."); + +const u8 gXerneasPokedexText[] = _( + "Legends say that when the horns on\n" + "its head shine in seven colors, it is\n" + "sharing everlasting life. It slept for a\n" + "thousand years in the form of a tree"); + +const u8 gZygarde50PokedexText[] = _( + "It's said to be monitoring the ecosystem\n" + "from deep in the caves where it lives.\n" + "There are rumors that even greater power\n" + "lies hidden within its cells."); + +const u8 gZygarde10PokedexText[] = _(""); + +const u8 gRockruffPokedexText[] = _( + "This Pokémon has lived with people since\n" + "times long ago. It can sense when its\n" + "Trainer is in the dumps and will stick\n" + "close by its Trainer's side."); + +const u8 gSilvallyNormalPokedexText[] = _( + "Its trust in its partner awakens it.\n" + "This Pokémon is capable of changing its\n" + "type by equipping special memories, a\n" + "trait that is well displayed in battle."); + +const u8 gSilvallyMemoryPokedexText[] = _(""); + +const u8 gMiniorMeteorPokedexText[] = _( + "Originally making its home in the ozone\n" + "layer, it hurtles to the ground when the\n" + "shell encasing its body grows too heavy.\n" + "It was born from mutated nanoparticles."); + +const u8 gMiniorCorePokedexText[] = _(""); + +const u8 gAlcremieVanillaCreamPokedexText[] = _( + "When it trusts a Trainer, it will treat\n" + "them to berries it's decorated with cream."); + +const u8 gAlcremieRubyCreamPokedexText[] = _(""); + +const u8 gAlcremieMatchaCreamPokedexText[] = _(""); + +const u8 gAlcremieMintCreamPokedexText[] = _(""); + +const u8 gAlcremieLemonCreamPokedexText[] = _(""); + +const u8 gAlcremieSaltedCreamPokedexText[] = _(""); + +const u8 gAlcremieRubySwirlPokedexText[] = _(""); + +const u8 gAlcremieCaramelSwirlPokedexText[] = _(""); + +const u8 gAlcremieRainbowSwirlPokedexText[] = _(""); + +const u8 gToxtricityGigantamaxPokedexText[] = _(""); + +// Macros for ease of use. + +#define EVOLUTION(...) (const struct Evolution[]) { __VA_ARGS__, { EVOLUTIONS_END }, } + +#define FRONT_PIC(sprite, width, height) \ + .frontPic = gMonFrontPic_## sprite, \ + .frontPicSize = MON_COORDS_SIZE(width, height) + +#define FRONT_PIC_FEMALE(sprite, width, height) \ + .frontPicFemale = gMonFrontPic_## sprite##F, \ + .frontPicSizeFemale = MON_COORDS_SIZE(width, height) + +#define BACK_PIC(sprite, width, height) \ + .backPic = gMonBackPic_## sprite, \ + .backPicSize = MON_COORDS_SIZE(width, height) + +#define BACK_PIC_FEMALE(sprite, width, height) \ + .backPicFemale = gMonBackPic_## sprite##F, \ + .backPicSizeFemale = MON_COORDS_SIZE(width, height) + +#define PALETTE(pal) \ + .palette = gMonPalette_## pal, \ + .shinyPalette = gMonShinyPalette_## pal + +#define PALETTE_FEMALE(pal) \ + .paletteFemale = gMonPalette_## pal##F, \ + .shinyPaletteFemale = gMonShinyPalette_## pal##F + +#define ICON(sprite, palId) \ + .iconSprite = gMonIcon_## sprite, \ + .iconPalIndex = palId + +#define ICON_FEMALE(sprite, palId) \ + .iconSpriteFemale = gMonIcon_## sprite##F, \ + .iconPalIndexFemale = palId + +#define LEARNSETS(learn) \ + .levelUpLearnset = s ## learn##LevelUpLearnset, \ + .teachableLearnset = s ## learn##TeachableLearnset + // Maximum value for a female Pokémon is 254 (MON_FEMALE) which is 100% female. // 255 (MON_GENDERLESS) is reserved for genderless Pokémon. #define PERCENT_FEMALE(percent) min(254, ((percent * 255) / 100)) -// Macros to allow editing every form at once #define FLIP 0 #define NO_FLIP 1 -#if P_UPDATED_STATS >= GEN_6 - #define BUTTERFREE_SP_ATK\ - .baseSpAttack = 90, -#else - #define BUTTERFREE_SP_ATK\ - .baseSpAttack = 80, -#endif - -#if P_UPDATED_STATS >= GEN_6 - #define PIKACHU_BASE_DEFENSES\ - .baseDefense = 40, \ - .baseSpDefense = 50 -#else - #define PIKACHU_BASE_DEFENSES\ - .baseDefense = 30, \ - .baseSpDefense = 40 -#endif +const struct SpeciesInfo gSpeciesInfo[] = +{ + [SPECIES_NONE] = + { + .speciesName = _("??????????"), + .cryId = CRY_NONE, + .natDexNum = NATIONAL_DEX_NONE, + .categoryName = _("Unknown"), + .height = 0, + .weight = 0, + .description = COMPOUND_STRING( + "This is a newly discovered Pokémon.\n" + "It is currently under investigation.\n" + "No detailed information is available\n" + "at this time."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(CircledQuestionMark, 40, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_None, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(CircledQuestionMark, 40, 40), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_NONE, + PALETTE(CircledQuestionMark), + ICON(QuestionMark, 0), + .footprint = gMonFootprint_Bulbasaur, + LEARNSETS(Bulbasaur), + }, + +#if P_FAMILY_BULBASAUR + [SPECIES_BULBASAUR] = + { + .baseHP = 45, + .baseAttack = 49, + .baseDefense = 49, + .baseSpeed = 45, + .baseSpAttack = 65, + .baseSpDefense = 65, + .types = { TYPE_GRASS, TYPE_POISON }, + .catchRate = 45, + .expYield = 64, + .evYield_SpAttack = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS}, + .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_CHLOROPHYLL}, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + .speciesName = _("Bulbasaur"), + .cryId = CRY_BULBASAUR, + .natDexNum = NATIONAL_DEX_BULBASAUR, + .categoryName = _("Seed"), + .height = 7, + .weight = 69, + .description = COMPOUND_STRING( + "Bulbasaur can be seen napping in bright\n" + "sunlight. There is a seed on its back.\n" + "By soaking up the sun's rays, the seed\n" + "grows progressively larger."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Bulbasaur, 40, 40), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_Bulbasaur, + .frontAnimId = ANIM_V_JUMPS_H_JUMPS, + BACK_PIC(Bulbasaur, 56, 40), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Bulbasaur), + ICON(Bulbasaur, 4), + .footprint = gMonFootprint_Bulbasaur, + LEARNSETS(Bulbasaur), + .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_IVYSAUR}), + }, -#if P_UPDATED_ABILITIES >= GEN_7 - #define GENGAR_ABILITIES\ - .abilities = {ABILITY_CURSED_BODY, ABILITY_NONE}, -#else - #define GENGAR_ABILITIES\ - .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, -#endif + [SPECIES_IVYSAUR] = + { + .baseHP = 60, + .baseAttack = 62, + .baseDefense = 63, + .baseSpeed = 60, + .baseSpAttack = 80, + .baseSpDefense = 80, + .types = { TYPE_GRASS, TYPE_POISON }, + .catchRate = 45, + .expYield = 142, + .evYield_SpAttack = 1, + .evYield_SpDefense = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS}, + .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_CHLOROPHYLL}, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + .speciesName = _("Ivysaur"), + .cryId = CRY_IVYSAUR, + .natDexNum = NATIONAL_DEX_IVYSAUR, + .categoryName = _("Seed"), + .height = 10, + .weight = 130, + .description = COMPOUND_STRING( + "To support its bulb, Ivysaur's legs\n" + "grow sturdy. If it spends more time lying in\n" + "the sunlight, the bud will soon bloom into\n" + "a large flower."), + .pokemonScale = 335, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Ivysaur, 56, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Ivysaur, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Ivysaur, 64, 56), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Ivysaur), + ICON(Ivysaur, 4), + .footprint = gMonFootprint_Ivysaur, + LEARNSETS(Ivysaur), + .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_VENUSAUR}), + }, #define VENUSAUR_MISC_INFO \ - .baseHP = 80, \ - .baseAttack = 82, \ - .baseDefense = 83, \ - .baseSpeed = 80, \ - .baseSpAttack = 100, \ - .baseSpDefense = 100, \ .types = {TYPE_GRASS, TYPE_POISON}, \ .catchRate = 45, \ - .expYield = 236, \ .evYield_SpAttack = 2, \ .evYield_SpDefense = 1, \ .genderRatio = PERCENT_FEMALE(12.5), \ @@ -49,6634 +296,7940 @@ .friendship = STANDARD_FRIENDSHIP, \ .growthRate = GROWTH_MEDIUM_SLOW, \ .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_GRASS}, \ - .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_CHLOROPHYLL}, \ .bodyColor = BODY_COLOR_GREEN, \ - .noFlip = FALSE + .noFlip = FALSE, \ + .speciesName = _("Venusaur"), \ + .natDexNum = NATIONAL_DEX_VENUSAUR, \ + .categoryName = _("Seed"), \ + .footprint = gMonFootprint_Venusaur, \ + LEARNSETS(Venusaur), \ + .formSpeciesIdTable = sVenusaurFormSpeciesIdTable, \ + .formChangeTable = sVenusaurFormChangeTable + + [SPECIES_VENUSAUR] = + { + VENUSAUR_MISC_INFO, + .baseHP = 80, + .baseAttack = 82, + .baseDefense = 83, + .baseSpeed = 80, + .baseSpAttack = 100, + .baseSpDefense = 100, + .expYield = 236, + .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_CHLOROPHYLL}, + .cryId = CRY_VENUSAUR, + .height = 20, + .weight = 1000, + .description = COMPOUND_STRING( + "Venusaur's flower is said to take on vivid\n" + "colors if it gets plenty of nutrition and\n" + "sunlight. The flower's aroma soothes the\n" + "emotions of people."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 388, + .trainerOffset = 6, + FRONT_PIC(Venusaur, 64, 64), + FRONT_PIC_FEMALE(Venusaur, 64, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_Venusaur, + .frontAnimId = ANIM_ROTATE_UP_SLAM_DOWN, + BACK_PIC(Venusaur, 64, 48), + BACK_PIC_FEMALE(Venusaur, 64, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_H_SHAKE, + PALETTE(Venusaur), + ICON(Venusaur, 4), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_VENUSAUR_MEGA] = + { + VENUSAUR_MISC_INFO, + .baseHP = 80, + .baseAttack = 100, + .baseDefense = 123, + .baseSpeed = 80, + .baseSpAttack = 122, + .baseSpDefense = 120, + .expYield = 281, + .abilities = {ABILITY_THICK_FAT, ABILITY_THICK_FAT, ABILITY_THICK_FAT}, + .cryId = CRY_VENUSAUR_MEGA, + .height = 24, + .weight = 1555, + .description = COMPOUND_STRING( + "In order to support its flower, which\n" + "has grown larger due to Mega Evolution,\n" + "its back and legs have become stronger."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 388, + .trainerOffset = 6, + FRONT_PIC(VenusaurMega, 64, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_VenusaurMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(VenusaurMega, 64, 64), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_SHAKE_GLOW_GREEN, + PALETTE(VenusaurMega), + ICON(VenusaurMega, 4), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS + +#if P_GIGANTAMAX_FORMS + [SPECIES_VENUSAUR_GIGANTAMAX] = + { + VENUSAUR_MISC_INFO, + .baseHP = 80, + .baseAttack = 82, + .baseDefense = 83, + .baseSpeed = 80, + .baseSpAttack = 100, + .baseSpDefense = 100, + .expYield = 236, + .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_CHLOROPHYLL}, + .cryId = CRY_VENUSAUR, + .height = 240, + .weight = 0, + .description = COMPOUND_STRING( + "Spits big amounts of pollen like a volcano.\n" + "Breathing too much of it causes fainting.\n" + "In battle, it swings around two thick vines\n" + "that can easily topple 10-story buildings."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 388, + .trainerOffset = 6, + FRONT_PIC(VenusaurGigantamax, 64, 64), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_VenusaurGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(VenusaurGigantamax, 64, 64), + .backPicYOffset = 11, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(VenusaurGigantamax), + ICON(VenusaurGigantamax, 0), + .isGigantamax = TRUE, + }, +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_BULBASAUR + +#if P_FAMILY_CHARMANDER + [SPECIES_CHARMANDER] = + { + .baseHP = 39, + .baseAttack = 52, + .baseDefense = 43, + .baseSpeed = 65, + .baseSpAttack = 60, + .baseSpDefense = 50, + .types = { TYPE_FIRE, TYPE_FIRE }, + .catchRate = 45, + .expYield = 62, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_SOLAR_POWER}, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + .speciesName = _("Charmander"), + .cryId = CRY_CHARMANDER, + .natDexNum = NATIONAL_DEX_CHARMANDER, + .categoryName = _("Lizard"), + .height = 6, + .weight = 85, + .description = COMPOUND_STRING( + "The flame that burns at the tip of its\n" + "tail is an indication of its emotions.\n" + "The flame wavers when Charmander is\n" + "happy, and blazes when it is enraged."), + .pokemonScale = 444, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Charmander, 48, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Charmander, + .frontAnimId = ANIM_V_JUMPS_SMALL, + BACK_PIC(Charmander, 48, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Charmander), + ICON(Charmander, 0), + .footprint = gMonFootprint_Charmander, + LEARNSETS(Charmander), + .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_CHARMELEON}), + }, + + [SPECIES_CHARMELEON] = + { + .baseHP = 58, + .baseAttack = 64, + .baseDefense = 58, + .baseSpeed = 80, + .baseSpAttack = 80, + .baseSpDefense = 65, + .types = { TYPE_FIRE, TYPE_FIRE }, + .catchRate = 45, + .expYield = 142, + .evYield_Speed = 1, + .evYield_SpAttack = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_SOLAR_POWER}, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + .speciesName = _("Charmeleon"), + .cryId = CRY_CHARMELEON, + .natDexNum = NATIONAL_DEX_CHARMELEON, + .categoryName = _("Flame"), + .height = 11, + .weight = 190, + .description = COMPOUND_STRING( + "Without pity, its sharp claws destroy foes.\n" + "If it encounters a strong enemy, it\n" + "becomes agitated, and the flame on its\n" + "tail flares with a bluish white color."), + .pokemonScale = 302, + .pokemonOffset = 9, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Charmeleon, 56, 56), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Charmeleon, + .frontAnimId = ANIM_BACK_AND_LUNGE, + BACK_PIC(Charmeleon, 56, 48), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Charmeleon), + ICON(Charmeleon, 0), + .footprint = gMonFootprint_Charmeleon, + LEARNSETS(Charmeleon), + .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_CHARIZARD}), + }, #define CHARIZARD_MISC_INFO \ - .baseHP = 78, \ - .baseAttack = 84, \ - .baseDefense = 78, \ - .baseSpeed = 100, \ - .baseSpAttack = 109, \ - .baseSpDefense = 85, \ - .types = {TYPE_FIRE, TYPE_FLYING}, \ .catchRate = 45, \ - .expYield = 240, \ .evYield_SpAttack = 3, \ .genderRatio = PERCENT_FEMALE(12.5), \ .eggCycles = 20, \ .friendship = STANDARD_FRIENDSHIP, \ .growthRate = GROWTH_MEDIUM_SLOW, \ .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, \ - .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_SOLAR_POWER},\ - .bodyColor = BODY_COLOR_RED, \ - .noFlip = FALSE - -#define BLASTOISE_MISC_INFO \ - .baseHP = 79, \ - .baseAttack = 83, \ - .baseDefense = 100, \ - .baseSpeed = 78, \ - .baseSpAttack = 85, \ - .baseSpDefense = 105, \ - .types = {TYPE_WATER, TYPE_WATER}, \ - .catchRate = 45, \ - .expYield = 239, \ - .evYield_SpDefense = 3, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, \ - .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_RAIN_DISH},\ - .bodyColor = BODY_COLOR_BLUE, \ - .noFlip = FALSE - -#define BUTTERFREE_MISC_INFO \ - .baseHP = 60, \ - .baseAttack = 45, \ - .baseDefense = 50, \ - .baseSpeed = 70, \ - .baseSpDefense = 80, \ - BUTTERFREE_SP_ATK \ - .types = {TYPE_BUG, TYPE_FLYING}, \ - .catchRate = 45, \ - .expYield = 178, \ - .evYield_SpAttack = 2, \ - .evYield_SpDefense = 1, \ - .itemRare = ITEM_SILVER_POWDER, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = {EGG_GROUP_BUG, EGG_GROUP_BUG}, \ - .abilities = {ABILITY_COMPOUND_EYES, ABILITY_NONE, ABILITY_TINTED_LENS},\ - .bodyColor = BODY_COLOR_WHITE, \ - .noFlip = FALSE - -#define PIKACHU_MISC_INFO(gender, flip) \ - .baseHP = 35, \ - .baseAttack = 55, \ - .baseSpeed = 90, \ - .baseSpAttack = 50, \ - PIKACHU_BASE_DEFENSES, \ - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, \ - .catchRate = 190, \ - .expYield = 112, \ - .evYield_Speed = 2, \ - .itemRare = ITEM_LIGHT_BALL, \ - .genderRatio = gender, \ - .eggCycles = 10, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY}, \ - .abilities = {ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD},\ - .bodyColor = BODY_COLOR_YELLOW, \ - .noFlip = flip + .noFlip = FALSE, \ + .speciesName = _("Charizard"), \ + .natDexNum = NATIONAL_DEX_CHARIZARD, \ + .categoryName = _("Flame"), \ + .footprint = gMonFootprint_Charizard, \ + LEARNSETS(Charizard), \ + .formSpeciesIdTable = sCharizardFormSpeciesIdTable, \ + .formChangeTable = sCharizardFormChangeTable -#define MEOWTH_MISC_INFO \ - .baseHP = 40, \ - .baseAttack = 45, \ - .baseDefense = 35, \ - .baseSpeed = 90, \ - .baseSpAttack = 40, \ - .baseSpDefense = 40, \ - .types = {TYPE_NORMAL, TYPE_NORMAL}, \ - .catchRate = 255, \ - .expYield = 58, \ - .evYield_Speed = 1, \ - .itemRare = ITEM_QUICK_CLAW, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, \ - .abilities = {ABILITY_PICKUP, ABILITY_TECHNICIAN, ABILITY_UNNERVE}, \ - .bodyColor = BODY_COLOR_YELLOW, \ - .noFlip = FALSE + [SPECIES_CHARIZARD] = + { + CHARIZARD_MISC_INFO, + .baseHP = 78, + .baseAttack = 84, + .baseDefense = 78, + .baseSpeed = 100, + .baseSpAttack = 109, + .baseSpDefense = 85, + .types = {TYPE_FIRE, TYPE_FLYING}, + .expYield = 240, + .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_SOLAR_POWER}, + .bodyColor = BODY_COLOR_RED, + .cryId = CRY_CHARIZARD, + .height = 17, + .weight = 905, + .description = COMPOUND_STRING( + "A Charizard flies about in search of\n" + "strong opponents. It breathes intense\n" + "flames that can melt any material. However,\n" + "it will never torch a weaker foe."), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 302, + .trainerOffset = 3, + FRONT_PIC(Charizard, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Charizard, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(Charizard, 64, 64), + .backPicYOffset = 1, + .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, + PALETTE(Charizard), + ICON(Charizard, 0), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_CHARIZARD_MEGA_X] = + { + CHARIZARD_MISC_INFO, + .baseHP = 78, + .baseAttack = 130, + .baseDefense = 111, + .baseSpeed = 100, + .baseSpAttack = 130, + .baseSpDefense = 85, + .types = { TYPE_FIRE, TYPE_DRAGON}, + .expYield = 285, + .abilities = {ABILITY_TOUGH_CLAWS, ABILITY_TOUGH_CLAWS, ABILITY_TOUGH_CLAWS}, + .bodyColor = BODY_COLOR_BLACK, + .cryId = CRY_CHARIZARD_MEGA_X, + .height = 17, + .weight = 1105, + .description = COMPOUND_STRING( + "The overwhelming power that fills its\n" + "entire body causes it to turn black\n" + "and creates intense blue flames."), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 302, + .trainerOffset = 3, + FRONT_PIC(CharizardMegaX, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_CharizardMegaX, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(CharizardMegaX, 64, 64), + .backPicYOffset = 1, + .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, + PALETTE(CharizardMegaX), + ICON(CharizardMegaX, 0), + .isMegaEvolution = TRUE, + }, -#define MACHAMP_MISC_INFO \ - .baseHP = 90, \ - .baseAttack = 130, \ - .baseDefense = 80, \ - .baseSpeed = 55, \ - .baseSpAttack = 65, \ - .baseSpDefense = 85, \ - .types = {TYPE_FIGHTING, TYPE_FIGHTING}, \ - .catchRate = 45, \ - .expYield = 227, \ - .evYield_Attack = 3, \ - .itemRare = ITEM_FOCUS_BAND, \ - .genderRatio = PERCENT_FEMALE(25), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = {EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, \ - .abilities = {ABILITY_GUTS, ABILITY_NO_GUARD, ABILITY_STEADFAST}, \ - .bodyColor = BODY_COLOR_GRAY, \ - .noFlip = FALSE - -#define GENGAR_MISC_INFO \ - .baseHP = 60, \ - .baseAttack = 65, \ - .baseDefense = 60, \ - .baseSpeed = 110, \ - .baseSpAttack = 130, \ - .baseSpDefense = 75, \ - .types = {TYPE_GHOST, TYPE_POISON}, \ - .catchRate = 45, \ - .expYield = 225, \ - .evYield_SpAttack = 3, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = {EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS},\ - GENGAR_ABILITIES \ - .bodyColor = BODY_COLOR_PURPLE, \ - .noFlip = FALSE - -#define KINGLER_MISC_INFO \ - .baseHP = 55, \ - .baseAttack = 130, \ - .baseDefense = 115, \ - .baseSpeed = 75, \ - .baseSpAttack = 50, \ - .baseSpDefense = 50, \ - .types = {TYPE_WATER, TYPE_WATER}, \ - .catchRate = 60, \ - .expYield = 166, \ - .evYield_Attack = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = {EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, \ - .abilities = {ABILITY_HYPER_CUTTER, ABILITY_SHELL_ARMOR, ABILITY_SHEER_FORCE}, \ - .bodyColor = BODY_COLOR_RED, \ - .noFlip = TRUE - -#define LAPRAS_MISC_INFO \ - .baseHP = 130, \ - .baseAttack = 85, \ - .baseDefense = 80, \ - .baseSpeed = 60, \ - .baseSpAttack = 85, \ - .baseSpDefense = 95, \ - .types = {TYPE_WATER, TYPE_ICE}, \ - .catchRate = 45, \ - .expYield = 187, \ - .evYield_HP = 2, \ - .itemCommon = ITEM_MYSTIC_WATER, \ - .itemRare = ITEM_MYSTIC_WATER, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 40, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, \ - .abilities = {ABILITY_WATER_ABSORB, ABILITY_SHELL_ARMOR, ABILITY_HYDRATION},\ - .bodyColor = BODY_COLOR_BLUE, \ - .noFlip = FALSE - -#define EEVEE_MISC_INFO \ - .baseHP = 55, \ - .baseAttack = 55, \ - .baseDefense = 50, \ - .baseSpeed = 55, \ - .baseSpAttack = 45, \ - .baseSpDefense = 65, \ - .types = {TYPE_NORMAL, TYPE_NORMAL}, \ - .catchRate = 45, \ - .expYield = 65, \ - .evYield_SpDefense = 1, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 35, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, \ - .abilities = {ABILITY_RUN_AWAY, ABILITY_ADAPTABILITY, ABILITY_ANTICIPATION},\ - .bodyColor = BODY_COLOR_BROWN, \ - .noFlip = FALSE - -#define SNORLAX_MISC_INFO \ - .baseHP = 160, \ - .baseAttack = 110, \ - .baseDefense = 65, \ - .baseSpeed = 30, \ - .baseSpAttack = 65, \ - .baseSpDefense = 110, \ - .types = {TYPE_NORMAL, TYPE_NORMAL}, \ - .catchRate = 25, \ - .expYield = 189, \ - .evYield_HP = 2, \ - .itemCommon = ITEM_LEFTOVERS, \ - .itemRare = ITEM_LEFTOVERS, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 40, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, \ - .abilities = {ABILITY_IMMUNITY, ABILITY_THICK_FAT, ABILITY_GLUTTONY}, \ - .bodyColor = BODY_COLOR_BLACK, \ - .noFlip = FALSE - -#define COSPLAY_PIKACHU_SPECIES_INFO(flip) { PIKACHU_MISC_INFO(MON_FEMALE, flip) } -#define CAP_PIKACHU_SPECIES_INFO(flip) { PIKACHU_MISC_INFO(MON_MALE, flip) } - -#define PICHU_SPECIES_INFO(flip) \ - { \ - .baseHP = 20, \ - .baseAttack = 40, \ - .baseDefense = 15, \ - .baseSpeed = 60, \ - .baseSpAttack = 35, \ - .baseSpDefense = 35, \ - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, \ - .catchRate = 190, \ - .expYield = 41, \ - .evYield_Speed = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 10, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ - .abilities = {ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD},\ - .bodyColor = BODY_COLOR_YELLOW, \ - .noFlip = flip, \ - } - -#define UNOWN_SPECIES_INFO(flip) \ - { \ - .baseHP = 48, \ - .baseAttack = 72, \ - .baseDefense = 48, \ - .baseSpeed = 48, \ - .baseSpAttack = 72, \ - .baseSpDefense = 48, \ - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, \ - .catchRate = 225, \ - .expYield = 118, \ - .evYield_Attack = 1, \ - .evYield_SpAttack = 1, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 40, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ - .abilities = {ABILITY_LEVITATE, ABILITY_NONE},\ - .bodyColor = BODY_COLOR_BLACK, \ - .noFlip = flip, \ - } - -#define CASTFORM_SPECIES_INFO(type, color) \ - { \ - .baseHP = 70, \ - .baseAttack = 70, \ - .baseDefense = 70, \ - .baseSpeed = 70, \ - .baseSpAttack = 70, \ - .baseSpDefense = 70, \ - .types = { type, type }, \ - .catchRate = 45, \ - .expYield = 147, \ - .evYield_HP = 1, \ - .itemCommon = ITEM_MYSTIC_WATER, \ - .itemRare = ITEM_MYSTIC_WATER, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 25, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_AMORPHOUS}, \ - .abilities = {ABILITY_FORECAST, ABILITY_NONE},\ - .bodyColor = color, \ - .noFlip = FALSE, \ - } - -#define BURMY_SPECIES_INFO(color) \ - { \ - .baseHP = 40, \ - .baseAttack = 29, \ - .baseDefense = 45, \ - .baseSpeed = 36, \ - .baseSpAttack = 29, \ - .baseSpDefense = 45, \ - .types = { TYPE_BUG, TYPE_BUG}, \ - .catchRate = 120, \ - .expYield = 45, \ - .evYield_SpDefense = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, \ - .abilities = {ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_OVERCOAT},\ - .bodyColor = color, \ - .noFlip = FALSE, \ - } - -#define CHERRIM_SPECIES_INFO(color) \ - { \ - .baseHP = 70, \ - .baseAttack = 60, \ - .baseDefense = 70, \ - .baseSpeed = 85, \ - .baseSpAttack = 87, \ - .baseSpDefense = 78, \ - .types = { TYPE_GRASS, TYPE_GRASS}, \ - .catchRate = 75, \ - .expYield = 158, \ - .evYield_SpAttack = 2, \ - .itemRare = ITEM_MIRACLE_SEED, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS}, \ - .abilities = {ABILITY_FLOWER_GIFT, ABILITY_NONE},\ - .bodyColor = color, \ - .noFlip = FALSE, \ - } - -#define SHELLOS_SPECIES_INFO(color) \ - { \ - .baseHP = 76, \ - .baseAttack = 48, \ - .baseDefense = 48, \ - .baseSpeed = 34, \ - .baseSpAttack = 57, \ - .baseSpDefense = 62, \ - .types = { TYPE_WATER, TYPE_WATER}, \ - .catchRate = 190, \ - .expYield = 65, \ - .evYield_HP = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_AMORPHOUS}, \ - .abilities = {ABILITY_STICKY_HOLD, ABILITY_STORM_DRAIN, ABILITY_SAND_FORCE},\ - .bodyColor = color, \ - .noFlip = FALSE, \ - } - -#define GASTRODON_SPECIES_INFO(color) \ - { \ - .baseHP = 111, \ - .baseAttack = 83, \ - .baseDefense = 68, \ - .baseSpeed = 39, \ - .baseSpAttack = 92, \ - .baseSpDefense = 82, \ - .types = { TYPE_WATER, TYPE_GROUND}, \ - .catchRate = 75, \ - .expYield = 166, \ - .evYield_HP = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_AMORPHOUS}, \ - .abilities = {ABILITY_STICKY_HOLD, ABILITY_STORM_DRAIN, ABILITY_SAND_FORCE},\ - .bodyColor = color, \ - .noFlip = FALSE, \ - } - -#define ROTOM_FORM_SPECIES_INFO(type, flip) \ - { \ - .baseHP = 50, \ - .baseAttack = 65, \ - .baseDefense = 107, \ - .baseSpeed = 86, \ - .baseSpAttack = 105, \ - .baseSpDefense = 107, \ - .types = { TYPE_ELECTRIC, type }, \ - .catchRate = 45, \ - .expYield = 182, \ - .evYield_Speed = 1, \ - .evYield_SpAttack = 1, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, \ - .abilities = {ABILITY_LEVITATE, ABILITY_NONE},\ - .bodyColor = BODY_COLOR_RED, \ - .noFlip = flip, \ - } - -#define ARCEUS_SPECIES_INFO(type) \ - { \ - .baseHP = 120, \ - .baseAttack = 120, \ - .baseDefense = 120, \ - .baseSpeed = 120, \ - .baseSpAttack = 120, \ - .baseSpDefense = 120, \ - .types = { type, type }, \ - .catchRate = 3, \ - .expYield = 324, \ - .evYield_HP = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ - .abilities = {ABILITY_MULTITYPE, ABILITY_NONE},\ - .bodyColor = BODY_COLOR_WHITE, \ - .noFlip = FALSE, \ - .flags = SPECIES_FLAG_MYTHICAL, \ - } - -#define GARBODOR_MISC_INFO \ - .baseHP = 80, \ - .baseAttack = 95, \ - .baseDefense = 82, \ - .baseSpeed = 75, \ - .baseSpAttack = 60, \ - .baseSpDefense = 82, \ - .types = {TYPE_POISON, TYPE_POISON}, \ - .catchRate = 60, \ - .expYield = 166, \ - .evYield_Attack = 2, \ - .itemCommon = ITEM_SILK_SCARF, \ - .itemRare = ITEM_BLACK_SLUDGE, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = {EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, \ - .abilities = {ABILITY_STENCH, ABILITY_WEAK_ARMOR, ABILITY_AFTERMATH}, \ - .bodyColor = BODY_COLOR_GREEN, \ - .noFlip = TRUE - -#define DEERLING_SPECIES_INFO(color) \ - { \ - .baseHP = 60, \ - .baseAttack = 60, \ - .baseDefense = 50, \ - .baseSpeed = 75, \ - .baseSpAttack = 40, \ - .baseSpDefense = 50, \ - .types = { TYPE_NORMAL, TYPE_GRASS}, \ - .catchRate = 190, \ - .expYield = 67, \ - .evYield_Speed = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, \ - .abilities = {ABILITY_CHLOROPHYLL, ABILITY_SAP_SIPPER, ABILITY_SERENE_GRACE},\ - .bodyColor = color, \ - .noFlip = FALSE, \ - } - -#define SAWSBUCK_SPECIES_INFO \ - { \ - .baseHP = 80, \ - .baseAttack = 100, \ - .baseDefense = 70, \ - .baseSpeed = 95, \ - .baseSpAttack = 60, \ - .baseSpDefense = 70, \ - .types = { TYPE_NORMAL, TYPE_GRASS}, \ - .catchRate = 75, \ - .expYield = 166, \ - .evYield_Attack = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, \ - .abilities = {ABILITY_CHLOROPHYLL, ABILITY_SAP_SIPPER, ABILITY_SERENE_GRACE},\ - .bodyColor = BODY_COLOR_BROWN, \ - .noFlip = FALSE, \ - } - -#define GENESECT_SPECIES_INFO \ - { \ - .baseHP = 71, \ - .baseAttack = 120, \ - .baseDefense = 95, \ - .baseSpeed = 99, \ - .baseSpAttack = 120, \ - .baseSpDefense = 95, \ - .types = { TYPE_BUG, TYPE_STEEL}, \ - .catchRate = 3, \ - .expYield = 270, \ - .evYield_Attack = 1, \ - .evYield_Speed = 1, \ - .evYield_SpAttack = 1, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ - .abilities = {ABILITY_DOWNLOAD, ABILITY_NONE},\ - .bodyColor = BODY_COLOR_PURPLE, \ - .noFlip = FALSE, \ - .flags = SPECIES_FLAG_MYTHICAL, \ - } - -#define VIVILLON_SPECIES_INFO(color) \ - { \ - .baseHP = 80, \ - .baseAttack = 52, \ - .baseDefense = 50, \ - .baseSpeed = 89, \ - .baseSpAttack = 90, \ - .baseSpDefense = 50, \ - .types = { TYPE_BUG, TYPE_FLYING}, \ - .catchRate = 45, \ - .expYield = 185, \ - .evYield_HP = 1, \ - .evYield_Speed = 1, \ - .evYield_SpAttack = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, \ - .abilities = {ABILITY_SHIELD_DUST, ABILITY_COMPOUND_EYES, ABILITY_FRIEND_GUARD},\ - .bodyColor = color, \ - .noFlip = FALSE, \ - } - -#define FLABEBE_SPECIES_INFO \ - { \ - .baseHP = 44, \ - .baseAttack = 38, \ - .baseDefense = 39, \ - .baseSpeed = 42, \ - .baseSpAttack = 61, \ - .baseSpDefense = 79, \ - .types = { TYPE_FAIRY, TYPE_FAIRY}, \ - .catchRate = 225, \ - .expYield = 61, \ - .evYield_SpDefense = 1, \ - .genderRatio = MON_FEMALE, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, \ - .abilities = {ABILITY_FLOWER_VEIL, ABILITY_NONE, ABILITY_SYMBIOSIS},\ - .bodyColor = BODY_COLOR_WHITE, \ - .noFlip = FALSE, \ - } - -#define FLOETTE_SPECIES_INFO \ - { \ - .baseHP = 54, \ - .baseAttack = 45, \ - .baseDefense = 47, \ - .baseSpeed = 52, \ - .baseSpAttack = 75, \ - .baseSpDefense = 98, \ - .types = { TYPE_FAIRY, TYPE_FAIRY}, \ - .catchRate = 120, \ - .expYield = 130, \ - .evYield_SpDefense = 2, \ - .genderRatio = MON_FEMALE, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, \ - .abilities = {ABILITY_FLOWER_VEIL, ABILITY_NONE, ABILITY_SYMBIOSIS},\ - .bodyColor = BODY_COLOR_WHITE, \ - .noFlip = FALSE, \ - } - -#define FLORGES_SPECIES_INFO \ - { \ - .baseHP = 78, \ - .baseAttack = 65, \ - .baseDefense = 68, \ - .baseSpeed = 75, \ - .baseSpAttack = 112, \ - .baseSpDefense = 154, \ - .types = { TYPE_FAIRY, TYPE_FAIRY}, \ - .catchRate = 45, \ - .expYield = 248, \ - .evYield_SpDefense = 3, \ - .genderRatio = MON_FEMALE, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, \ - .abilities = {ABILITY_FLOWER_VEIL, ABILITY_NONE, ABILITY_SYMBIOSIS},\ - .bodyColor = BODY_COLOR_WHITE, \ - .noFlip = FALSE, \ - } - -#define FURFROU_SPECIES_INFO(flip) \ - { \ - .baseHP = 75, \ - .baseAttack = 80, \ - .baseDefense = 60, \ - .baseSpeed = 102, \ - .baseSpAttack = 65, \ - .baseSpDefense = 90, \ - .types = { TYPE_NORMAL, TYPE_NORMAL}, \ - .catchRate = 160, \ - .expYield = 165, \ - .evYield_Speed = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, \ - .abilities = {ABILITY_FUR_COAT, ABILITY_NONE},\ - .bodyColor = BODY_COLOR_WHITE, \ - .noFlip = flip, \ - } - -#define PUMKPABOO_MISC_INFO \ - .types = { TYPE_GHOST, TYPE_GRASS}, \ - .catchRate = 120, \ - .expYield = 67, \ - .evYield_Defense = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, \ - .abilities = {ABILITY_PICKUP, ABILITY_FRISK, ABILITY_INSOMNIA},\ - .bodyColor = BODY_COLOR_BROWN, \ - .noFlip = FALSE - -#define GOURGEIST_MISC_INFO \ - .types = { TYPE_GHOST, TYPE_GRASS}, \ - .catchRate = 60, \ - .expYield = 173, \ - .evYield_Defense = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, \ - .abilities = {ABILITY_PICKUP, ABILITY_FRISK, ABILITY_INSOMNIA},\ - .bodyColor = BODY_COLOR_BROWN, \ - .noFlip = FALSE - -#define XERNEAS_SPECIES_INFO \ - { \ - .baseHP = 126, \ - .baseAttack = 131, \ - .baseDefense = 95, \ - .baseSpeed = 99, \ - .baseSpAttack = 131, \ - .baseSpDefense = 98, \ - .types = { TYPE_FAIRY, TYPE_FAIRY}, \ - .catchRate = 45, \ - .expYield = 306, \ - .evYield_HP = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ - .abilities = {ABILITY_FAIRY_AURA, ABILITY_NONE},\ - .bodyColor = BODY_COLOR_BLUE, \ - .noFlip = FALSE, \ - .flags = SPECIES_FLAG_LEGENDARY, \ - } - -#define ZYGARDE_50_SPECIES_INFO(ability) \ - { \ - .baseHP = 108, \ - .baseAttack = 100, \ - .baseDefense = 121, \ - .baseSpeed = 95, \ - .baseSpAttack = 81, \ - .baseSpDefense = 95, \ - .types = { TYPE_DRAGON, TYPE_GROUND},\ - .catchRate = 3, \ - .expYield = 270, \ - .evYield_HP = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ - .abilities = {ability, ABILITY_NONE},\ - .bodyColor = BODY_COLOR_GREEN, \ - .noFlip = TRUE, \ - .flags = SPECIES_FLAG_LEGENDARY, \ - } - -#define ZYGARDE_10_SPECIES_INFO(ability) \ - { \ - .baseHP = 54, \ - .baseAttack = 100, \ - .baseDefense = 71, \ - .baseSpeed = 115, \ - .baseSpAttack = 61, \ - .baseSpDefense = 85, \ - .types = { TYPE_DRAGON, TYPE_GROUND},\ - .catchRate = 3, \ - .expYield = 219, \ - .evYield_HP = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ - .abilities = {ability, ABILITY_NONE},\ - .bodyColor = BODY_COLOR_BLACK, \ - .noFlip = TRUE, \ - .flags = SPECIES_FLAG_LEGENDARY, \ - } - -#define ORICORIO_SPECIES_INFO(type, color) \ -{ \ - .baseHP = 75, \ - .baseAttack = 70, \ - .baseDefense = 70, \ - .baseSpeed = 93, \ - .baseSpAttack = 98, \ - .baseSpDefense = 70, \ - .types = { type, TYPE_FLYING }, \ - .catchRate = 45, \ - .expYield = 167, \ - .evYield_SpAttack = 2, \ - .itemRare = ITEM_HONEY, \ - .genderRatio = PERCENT_FEMALE(75), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, \ - .abilities = {ABILITY_DANCER, ABILITY_NONE},\ - .bodyColor = color, \ - .noFlip = FALSE, \ - } - -#define ROCKRUFF_SPECIES_INFO(ability1, ability2, hiddenAbility)\ - { \ - .baseHP = 45, \ - .baseAttack = 65, \ - .baseDefense = 40, \ - .baseSpeed = 60, \ - .baseSpAttack = 30, \ - .baseSpDefense = 40, \ - .types = { TYPE_ROCK, TYPE_ROCK}, \ - .catchRate = 190, \ - .expYield = 56, \ - .evYield_Attack = 1, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, \ - .abilities = {ability1, ability2, hiddenAbility}, \ - .bodyColor = BODY_COLOR_BROWN, \ - .noFlip = FALSE, \ - } - -#define SILVALLY_SPECIES_INFO(type) \ - { \ - .baseHP = 95, \ - .baseAttack = 95, \ - .baseDefense = 95, \ - .baseSpeed = 95, \ - .baseSpAttack = 95, \ - .baseSpDefense = 95, \ - .types = { type, type }, \ - .catchRate = 3, \ - .expYield = 257, \ - .evYield_HP = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ - .abilities = {ABILITY_RKS_SYSTEM, ABILITY_NONE},\ - .bodyColor = BODY_COLOR_GRAY, \ - .noFlip = FALSE, \ - .flags = SPECIES_FLAG_LEGENDARY, \ - } - -#define MINIOR_METEOR_ATTRIBUTES\ - .baseHP = 60, \ - .baseAttack = 60, \ - .baseDefense = 100, \ - .baseSpeed = 60, \ - .baseSpAttack = 60, \ - .baseSpDefense = 100 - -#define MINIOR_CORE_ATTRIBUTES\ - .baseHP = 60, \ - .baseAttack = 100, \ - .baseDefense = 60, \ - .baseSpeed = 120, \ - .baseSpAttack = 100, \ - .baseSpDefense = 60 - -#define MINIOR_MISC_INFO(color) \ - .types = { TYPE_ROCK, TYPE_FLYING}, \ - .catchRate = 30, \ - .expYield = 154, \ - .evYield_Defense = 1, \ - .evYield_SpDefense = 1, \ - .itemRare = ITEM_STAR_PIECE, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 25, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, \ - .abilities = {ABILITY_SHIELDS_DOWN, ABILITY_NONE}, \ - .bodyColor = color, \ - .noFlip = TRUE - -#define MINIOR_METEOR_SPECIES_INFO \ - { \ - MINIOR_METEOR_ATTRIBUTES, \ - MINIOR_MISC_INFO(BODY_COLOR_BROWN), \ - } - - -#define MINIOR_CORE_SPECIES_INFO(color) \ - { \ - MINIOR_CORE_ATTRIBUTES, \ - MINIOR_MISC_INFO(color), \ - } - -#define MIMIKYU_SPECIES_INFO \ - { \ - .baseHP = 55, \ - .baseAttack = 90, \ - .baseDefense = 80, \ - .baseSpeed = 96, \ - .baseSpAttack = 50, \ - .baseSpDefense = 105, \ - .types = { TYPE_GHOST, TYPE_FAIRY}, \ - .catchRate = 45, \ - .expYield = 167, \ - .evYield_SpDefense = 2, \ - .itemRare = ITEM_CHESTO_BERRY, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, \ - .abilities = {ABILITY_DISGUISE, ABILITY_NONE},\ - .bodyColor = BODY_COLOR_YELLOW, \ - .noFlip = FALSE, \ - } - -#define MAGEARNA_SPECIES_INFO(color) \ - { \ - .baseHP = 80, \ - .baseAttack = 95, \ - .baseDefense = 115, \ - .baseSpeed = 65, \ - .baseSpAttack = 130, \ - .baseSpDefense = 115, \ - .types = { TYPE_STEEL, TYPE_FAIRY}, \ - .catchRate = 3, \ - .expYield = 270, \ - .evYield_SpAttack = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ - .abilities = {ABILITY_SOUL_HEART, ABILITY_NONE},\ - .bodyColor = color, \ - .noFlip = FALSE, \ - .flags = SPECIES_FLAG_MYTHICAL, \ - } - -#define MELMETAL_MISC_INFO \ - .baseHP = 135, \ - .baseAttack = 143, \ - .baseDefense = 143, \ - .baseSpeed = 34, \ - .baseSpAttack = 80, \ - .baseSpDefense = 65, \ - .types = {TYPE_STEEL, TYPE_STEEL}, \ - .catchRate = 3, \ - .expYield = 270, \ - .evYield_Attack = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = {EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ - .abilities = {ABILITY_IRON_FIST, ABILITY_NONE}, \ - .bodyColor = BODY_COLOR_GRAY, \ - .noFlip = FALSE, \ - .flags = SPECIES_FLAG_MYTHICAL - -#define RILLABOOM_MISC_INFO \ - .baseHP = 100, \ - .baseAttack = 125, \ - .baseDefense = 90, \ - .baseSpeed = 85, \ - .baseSpAttack = 60, \ - .baseSpDefense = 70, \ - .types = {TYPE_GRASS, TYPE_GRASS}, \ - .catchRate = 45, \ - .expYield = 265, \ - .evYield_Attack = 3, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_GRASS}, \ - .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_GRASSY_SURGE},\ - .bodyColor = BODY_COLOR_GREEN, \ - .noFlip = FALSE - -#define CINDERACE_MISC_INFO \ - .baseHP = 80, \ - .baseAttack = 116, \ - .baseDefense = 75, \ - .baseSpeed = 119, \ - .baseSpAttack = 65, \ - .baseSpDefense = 75, \ - .types = {TYPE_FIRE, TYPE_FIRE}, \ - .catchRate = 45, \ - .expYield = 265, \ - .evYield_Speed = 3, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE}, \ - .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_LIBERO}, \ - .bodyColor = BODY_COLOR_WHITE, \ - .noFlip = FALSE - -#define INTELEON_MISC_INFO \ - .baseHP = 70, \ - .baseAttack = 85, \ - .baseDefense = 65, \ - .baseSpeed = 120, \ - .baseSpAttack = 125, \ - .baseSpDefense = 65, \ - .types = {TYPE_WATER, TYPE_WATER}, \ - .catchRate = 45, \ - .expYield = 265, \ - .evYield_Speed = 3, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, \ - .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_SNIPER}, \ - .bodyColor = BODY_COLOR_BLUE, \ - .noFlip = FALSE - -#define CORVIKNIGHT_MISC_INFO \ - .baseHP = 98, \ - .baseAttack = 87, \ - .baseDefense = 105, \ - .baseSpeed = 67, \ - .baseSpAttack = 53, \ - .baseSpDefense = 85, \ - .types = {TYPE_FLYING, TYPE_STEEL}, \ - .catchRate = 45, \ - .expYield = 248, \ - .evYield_Defense = 3, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = {EGG_GROUP_FLYING, EGG_GROUP_FLYING}, \ - .abilities = {ABILITY_PRESSURE, ABILITY_UNNERVE, ABILITY_MIRROR_ARMOR}, \ - .bodyColor = BODY_COLOR_PURPLE, \ - .noFlip = FALSE - -#define ORBEETLE_MISC_INFO \ - .baseHP = 60, \ - .baseAttack = 45, \ - .baseDefense = 110, \ - .baseSpeed = 90, \ - .baseSpAttack = 80, \ - .baseSpDefense = 120, \ - .types = {TYPE_BUG, TYPE_PSYCHIC}, \ - .catchRate = 45, \ - .expYield = 253, \ - .evYield_SpDefense = 3, \ - .itemRare = ITEM_PSYCHIC_SEED, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = {EGG_GROUP_BUG, EGG_GROUP_BUG}, \ - .abilities = {ABILITY_SWARM, ABILITY_FRISK, ABILITY_TELEPATHY}, \ - .bodyColor = BODY_COLOR_RED, \ - .noFlip = FALSE - -#define DREDNAW_MISC_INFO \ - .baseHP = 90, \ - .baseAttack = 115, \ - .baseDefense = 90, \ - .baseSpeed = 74, \ - .baseSpAttack = 48, \ - .baseSpDefense = 68, \ - .types = {TYPE_WATER, TYPE_ROCK}, \ - .catchRate = 75, \ - .expYield = 170, \ - .evYield_Attack = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, \ - .abilities = {ABILITY_STRONG_JAW, ABILITY_SHELL_ARMOR, ABILITY_SWIFT_SWIM}, \ - .bodyColor = BODY_COLOR_GREEN, \ - .noFlip = FALSE - -#define COALOSSAL_MISC_INFO \ - .baseHP = 110, \ - .baseAttack = 80, \ - .baseDefense = 120, \ - .baseSpeed = 30, \ - .baseSpAttack = 80, \ - .baseSpDefense = 90, \ - .types = {TYPE_ROCK, TYPE_FIRE}, \ - .catchRate = 45, \ - .expYield = 255, \ - .evYield_Defense = 3, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 15, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = {EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, \ - .abilities = {ABILITY_STEAM_ENGINE, ABILITY_FLAME_BODY, ABILITY_FLASH_FIRE},\ - .bodyColor = BODY_COLOR_BLACK, \ - .noFlip = FALSE - -#define FLAPPLE_MISC_INFO \ - .baseHP = 70, \ - .baseAttack = 110, \ - .baseDefense = 80, \ - .baseSpeed = 70, \ - .baseSpAttack = 95, \ - .baseSpDefense = 60, \ - .types = {TYPE_GRASS, TYPE_DRAGON}, \ - .catchRate = 45, \ - .expYield = 170, \ - .evYield_Attack = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_ERRATIC, \ - .eggGroups = {EGG_GROUP_GRASS, EGG_GROUP_DRAGON}, \ - .abilities = {ABILITY_RIPEN, ABILITY_GLUTTONY, ABILITY_HUSTLE}, \ - .bodyColor = BODY_COLOR_GREEN, \ - .noFlip = FALSE - -#define APPLETUN_MISC_INFO \ - .baseHP = 110, \ - .baseAttack = 85, \ - .baseDefense = 80, \ - .baseSpeed = 30, \ - .baseSpAttack = 100, \ - .baseSpDefense = 80, \ - .types = {TYPE_GRASS, TYPE_DRAGON}, \ - .catchRate = 45, \ - .expYield = 170, \ - .evYield_HP = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_ERRATIC, \ - .eggGroups = {EGG_GROUP_GRASS, EGG_GROUP_DRAGON}, \ - .abilities = {ABILITY_RIPEN, ABILITY_GLUTTONY, ABILITY_THICK_FAT}, \ - .bodyColor = BODY_COLOR_GREEN, \ - .noFlip = FALSE - -#define SANDACONDA_MISC_INFO \ - .baseHP = 72, \ - .baseAttack = 107, \ - .baseDefense = 125, \ - .baseSpeed = 71, \ - .baseSpAttack = 65, \ - .baseSpDefense = 70, \ - .types = {TYPE_GROUND, TYPE_GROUND}, \ - .catchRate = 120, \ - .expYield = 179, \ - .evYield_Defense = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_DRAGON}, \ - .abilities = {ABILITY_SAND_SPIT, ABILITY_SHED_SKIN, ABILITY_SAND_VEIL}, \ - .bodyColor = BODY_COLOR_GREEN, \ - .noFlip = FALSE - -#define CRAMORANT_SPECIES_INFO \ - { \ - .baseHP = 70, \ - .baseAttack = 85, \ - .baseDefense = 55, \ - .baseSpeed = 85, \ - .baseSpAttack = 85, \ - .baseSpDefense = 95, \ - .types = { TYPE_FLYING, TYPE_WATER}, \ - .catchRate = 45, \ - .expYield = 166, \ - .evYield_SpDefense = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FLYING}, \ - .abilities = {ABILITY_GULP_MISSILE, ABILITY_NONE},\ - .bodyColor = BODY_COLOR_BLUE, \ - .noFlip = FALSE, \ - } - -#define TOXTRICITY_MISC_INFO(ability2) \ - .baseHP = 75, \ - .baseAttack = 98, \ - .baseDefense = 70, \ - .baseSpeed = 75, \ - .baseSpAttack = 114, \ - .baseSpDefense = 70, \ - .types = { TYPE_ELECTRIC, TYPE_POISON}, \ - .catchRate = 45, \ - .expYield = 176, \ - .evYield_SpAttack = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 25, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_SLOW, \ - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, \ - .abilities = {ABILITY_PUNK_ROCK, ability2, ABILITY_TECHNICIAN}, \ - .bodyColor = BODY_COLOR_PURPLE, \ - .noFlip = FALSE - -#define CENTISKORCH_MISC_INFO \ - .baseHP = 100, \ - .baseAttack = 115, \ - .baseDefense = 65, \ - .baseSpeed = 65, \ - .baseSpAttack = 90, \ - .baseSpDefense = 90, \ - .types = {TYPE_FIRE, TYPE_BUG}, \ - .catchRate = 75, \ - .expYield = 184, \ - .evYield_Attack = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = {EGG_GROUP_BUG, EGG_GROUP_BUG}, \ - .abilities = {ABILITY_FLASH_FIRE, ABILITY_WHITE_SMOKE, ABILITY_FLAME_BODY}, \ - .bodyColor = BODY_COLOR_RED, \ - .noFlip = FALSE - -#define SINISTEA_SPECIES_INFO \ - { \ - .baseHP = 40, \ - .baseAttack = 45, \ - .baseDefense = 45, \ - .baseSpeed = 50, \ - .baseSpAttack = 74, \ - .baseSpDefense = 54, \ - .types = { TYPE_GHOST, TYPE_GHOST}, \ - .catchRate = 120, \ - .expYield = 62, \ - .evYield_SpAttack = 1, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS}, \ - .abilities = {ABILITY_WEAK_ARMOR, ABILITY_NONE, ABILITY_CURSED_BODY},\ - .bodyColor = BODY_COLOR_PURPLE, \ - .noFlip = FALSE, \ - } - -#define POLTEAGEIST_SPECIES_INFO \ - { \ - .baseHP = 60, \ - .baseAttack = 65, \ - .baseDefense = 65, \ - .baseSpeed = 70, \ - .baseSpAttack = 134, \ - .baseSpDefense = 114, \ - .types = { TYPE_GHOST, TYPE_GHOST}, \ - .catchRate = 60, \ - .expYield = 178, \ - .evYield_SpAttack = 2, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS}, \ - .abilities = {ABILITY_WEAK_ARMOR, ABILITY_NONE, ABILITY_CURSED_BODY},\ - .bodyColor = BODY_COLOR_PURPLE, \ - .noFlip = FALSE, \ - } - -#define HATTERENE_MISC_INFO \ - .baseHP = 57, \ - .baseAttack = 90, \ - .baseDefense = 95, \ - .baseSpeed = 29, \ - .baseSpAttack = 136, \ - .baseSpDefense = 103, \ - .types = {TYPE_PSYCHIC, TYPE_FAIRY}, \ - .catchRate = 45, \ - .expYield = 255, \ - .evYield_SpAttack = 3, \ - .genderRatio = MON_FEMALE, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = {EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, \ - .abilities = {ABILITY_HEALER, ABILITY_ANTICIPATION, ABILITY_MAGIC_BOUNCE}, \ - .bodyColor = BODY_COLOR_PINK, \ - .noFlip = FALSE - -#define GRIMMSNARL_MISC_INFO \ - .baseHP = 95, \ - .baseAttack = 120, \ - .baseDefense = 65, \ - .baseSpeed = 60, \ - .baseSpAttack = 95, \ - .baseSpDefense = 75, \ - .types = {TYPE_DARK, TYPE_FAIRY}, \ - .catchRate = 45, \ - .expYield = 255, \ - .evYield_Attack = 3, \ - .genderRatio = MON_MALE, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = {EGG_GROUP_FAIRY, EGG_GROUP_HUMAN_LIKE}, \ - .abilities = {ABILITY_PRANKSTER, ABILITY_FRISK, ABILITY_PICKPOCKET},\ - .bodyColor = BODY_COLOR_PURPLE, \ - .noFlip = FALSE - -#define ALCREMIE_MISC_INFO(color) \ - .baseHP = 65, \ - .baseAttack = 60, \ - .baseDefense = 75, \ - .baseSpeed = 64, \ - .baseSpAttack = 110, \ - .baseSpDefense = 121, \ - .types = { TYPE_FAIRY, TYPE_FAIRY}, \ - .catchRate = 100, \ - .expYield = 173, \ - .evYield_SpDefense = 2, \ - .genderRatio = MON_FEMALE, \ - .eggCycles = 20, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_AMORPHOUS}, \ - .abilities = {ABILITY_SWEET_VEIL, ABILITY_NONE, ABILITY_AROMA_VEIL},\ - .bodyColor = color, \ - .noFlip = FALSE - -#define MORPEKO_SPECIES_INFO \ - { \ - .baseHP = 58, \ - .baseAttack = 95, \ - .baseDefense = 58, \ - .baseSpeed = 97, \ - .baseSpAttack = 70, \ - .baseSpDefense = 58, \ - .types = { TYPE_ELECTRIC, TYPE_DARK}, \ - .catchRate = 180, \ - .expYield = 153, \ - .evYield_Speed = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 10, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FAIRY}, \ - .abilities = {ABILITY_HUNGER_SWITCH, ABILITY_NONE},\ - .bodyColor = BODY_COLOR_YELLOW, \ - .noFlip = FALSE, \ - } - -#define COPPERAJAH_MISC_INFO \ - .baseHP = 122, \ - .baseAttack = 130, \ - .baseDefense = 69, \ - .baseSpeed = 30, \ - .baseSpAttack = 80, \ - .baseSpDefense = 69, \ - .types = {TYPE_STEEL, TYPE_STEEL}, \ - .catchRate = 90, \ - .expYield = 175, \ - .evYield_Attack = 2, \ - .itemRare = ITEM_LAGGING_TAIL, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 25, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_MINERAL}, \ - .abilities = {ABILITY_SHEER_FORCE, ABILITY_NONE, ABILITY_HEAVY_METAL}, \ - .bodyColor = BODY_COLOR_GREEN, \ - .noFlip = FALSE - -#define DURALUDON_MISC_INFO \ - .baseHP = 70, \ - .baseAttack = 95, \ - .baseDefense = 115, \ - .baseSpeed = 85, \ - .baseSpAttack = 120, \ - .baseSpDefense = 50, \ - .types = {TYPE_STEEL, TYPE_DRAGON}, \ - .catchRate = 45, \ - .expYield = 187, \ - .evYield_SpAttack = 2, \ - .genderRatio = PERCENT_FEMALE(50), \ - .eggCycles = 30, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_MEDIUM_FAST, \ - .eggGroups = {EGG_GROUP_MINERAL, EGG_GROUP_DRAGON}, \ - .abilities = {ABILITY_LIGHT_METAL, ABILITY_HEAVY_METAL, ABILITY_STALWART}, \ - .bodyColor = BODY_COLOR_WHITE, \ - .noFlip = FALSE - -#define URSHIFU_SINGLE_STRIKE_STYLE_MISC_INFO \ - .baseHP = 100, \ - .baseAttack = 130, \ - .baseDefense = 100, \ - .baseSpeed = 97, \ - .baseSpAttack = 63, \ - .baseSpDefense = 60, \ - .types = {TYPE_FIGHTING, TYPE_DARK}, \ - .catchRate = 3, \ - .expYield = 275, \ - .evYield_Attack = 3, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 120, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = {EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ - .abilities = {ABILITY_UNSEEN_FIST, ABILITY_NONE}, \ - .bodyColor = BODY_COLOR_GRAY, \ - .noFlip = FALSE, \ - .flags = SPECIES_FLAG_LEGENDARY - -#define URSHIFU_RAPID_STRIKE_STYLE_MISC_INFO \ - .baseHP = 100, \ - .baseAttack = 130, \ - .baseDefense = 100, \ - .baseSpeed = 97, \ - .baseSpAttack = 63, \ - .baseSpDefense = 60, \ - .types = {TYPE_FIGHTING, TYPE_WATER}, \ - .catchRate = 3, \ - .expYield = 275, \ - .evYield_Attack = 3, \ - .genderRatio = PERCENT_FEMALE(12.5), \ - .eggCycles = 120, \ - .friendship = STANDARD_FRIENDSHIP, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = {EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ - .abilities = {ABILITY_UNSEEN_FIST, ABILITY_NONE}, \ - .bodyColor = BODY_COLOR_GRAY, \ - .noFlip = FALSE, \ - .flags = SPECIES_FLAG_LEGENDARY - -#define ZARUDE_SPECIES_INFO \ - { \ - .baseHP = 105, \ - .baseAttack = 120, \ - .baseDefense = 105, \ - .baseSpeed = 105, \ - .baseSpAttack = 70, \ - .baseSpDefense = 95, \ - .types = { TYPE_DARK, TYPE_GRASS}, \ - .catchRate = 3, \ - .expYield = 300, \ - .evYield_Attack = 3, \ - .genderRatio = MON_GENDERLESS, \ - .eggCycles = 120, \ - .friendship = 0, \ - .growthRate = GROWTH_SLOW, \ - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ - .abilities = {ABILITY_LEAF_GUARD, ABILITY_NONE},\ - .bodyColor = BODY_COLOR_GREEN, \ - .noFlip = FALSE, \ - .flags = SPECIES_FLAG_MYTHICAL, \ - } - -const struct SpeciesInfo gSpeciesInfo[] = -{ - [SPECIES_NONE] = {0}, - - [SPECIES_BULBASAUR] = - { - .baseHP = 45, - .baseAttack = 49, - .baseDefense = 49, - .baseSpeed = 45, - .baseSpAttack = 65, - .baseSpDefense = 65, - .types = { TYPE_GRASS, TYPE_POISON }, - .catchRate = 45, - .expYield = 64, - .evYield_SpAttack = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS}, - .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_CHLOROPHYLL}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, - - [SPECIES_IVYSAUR] = - { - .baseHP = 60, - .baseAttack = 62, - .baseDefense = 63, - .baseSpeed = 60, - .baseSpAttack = 80, - .baseSpDefense = 80, - .types = { TYPE_GRASS, TYPE_POISON }, - .catchRate = 45, - .expYield = 142, - .evYield_SpAttack = 1, - .evYield_SpDefense = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS}, - .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_CHLOROPHYLL}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, - - [SPECIES_VENUSAUR] = { VENUSAUR_MISC_INFO, }, - - [SPECIES_CHARMANDER] = - { - .baseHP = 39, - .baseAttack = 52, - .baseDefense = 43, - .baseSpeed = 65, - .baseSpAttack = 60, - .baseSpDefense = 50, - .types = { TYPE_FIRE, TYPE_FIRE }, - .catchRate = 45, - .expYield = 62, - .evYield_Speed = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_SOLAR_POWER}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, - - [SPECIES_CHARMELEON] = - { - .baseHP = 58, - .baseAttack = 64, - .baseDefense = 58, - .baseSpeed = 80, - .baseSpAttack = 80, - .baseSpDefense = 65, - .types = { TYPE_FIRE, TYPE_FIRE }, - .catchRate = 45, - .expYield = 142, - .evYield_Speed = 1, - .evYield_SpAttack = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_SOLAR_POWER}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, - - [SPECIES_CHARIZARD] = - { - CHARIZARD_MISC_INFO, - }, - - [SPECIES_SQUIRTLE] = - { - .baseHP = 44, - .baseAttack = 48, - .baseDefense = 65, - .baseSpeed = 43, - .baseSpAttack = 50, - .baseSpDefense = 64, - .types = { TYPE_WATER, TYPE_WATER }, - .catchRate = 45, - .expYield = 63, - .evYield_Defense = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_RAIN_DISH}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_WARTORTLE] = - { - .baseHP = 59, - .baseAttack = 63, - .baseDefense = 80, - .baseSpeed = 58, - .baseSpAttack = 65, - .baseSpDefense = 80, - .types = { TYPE_WATER, TYPE_WATER }, - .catchRate = 45, - .expYield = 142, - .evYield_Defense = 1, - .evYield_SpDefense = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_RAIN_DISH}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_BLASTOISE] = - { - BLASTOISE_MISC_INFO, - }, - - [SPECIES_CATERPIE] = - { - .baseHP = 45, - .baseAttack = 30, - .baseDefense = 35, - .baseSpeed = 45, - .baseSpAttack = 20, - .baseSpDefense = 20, - .types = { TYPE_BUG, TYPE_BUG }, - .catchRate = 255, - .expYield = 39, - .evYield_HP = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SHIELD_DUST, ABILITY_NONE, ABILITY_RUN_AWAY}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, - - [SPECIES_METAPOD] = - { - .baseHP = 50, - .baseAttack = 20, - .baseDefense = 55, - .baseSpeed = 30, - .baseSpAttack = 25, - .baseSpDefense = 25, - .types = { TYPE_BUG, TYPE_BUG }, - .catchRate = 120, - .expYield = 72, - .evYield_Defense = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, - .abilities = {ABILITY_SHED_SKIN, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, - - [SPECIES_BUTTERFREE] = { BUTTERFREE_MISC_INFO, }, - - [SPECIES_WEEDLE] = - { - .baseHP = 40, - .baseAttack = 35, - .baseDefense = 30, - .baseSpeed = 50, - .baseSpAttack = 20, - .baseSpDefense = 20, - .types = { TYPE_BUG, TYPE_POISON }, - .catchRate = 255, - .expYield = 39, - .evYield_Speed = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SHIELD_DUST, ABILITY_NONE, ABILITY_RUN_AWAY}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_KAKUNA] = - { - .baseHP = 45, - .baseAttack = 25, - .baseDefense = 50, - .baseSpeed = 35, - .baseSpAttack = 25, - .baseSpDefense = 25, - .types = { TYPE_BUG, TYPE_POISON }, - .catchRate = 120, - .expYield = 72, - .evYield_Defense = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, - .abilities = {ABILITY_SHED_SKIN, ABILITY_NONE}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, - }, - - [SPECIES_BEEDRILL] = - { - .baseHP = 65, - .baseDefense = 40, - .baseSpeed = 75, - .baseSpAttack = 45, - .baseSpDefense = 80, - #if P_UPDATED_STATS >= GEN_6 - .baseAttack = 90, - #else - .baseAttack = 80, - #endif - .types = { TYPE_BUG, TYPE_POISON}, - .catchRate = 45, - .expYield = 178, - .evYield_Attack = 2, - .evYield_SpDefense = 1, - .itemRare = ITEM_POISON_BARB, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SWARM, ABILITY_NONE, ABILITY_SNIPER}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, - }, - - [SPECIES_PIDGEY] = - { - .baseHP = 40, - .baseAttack = 45, - .baseDefense = 40, - .baseSpeed = 56, - .baseSpAttack = 35, - .baseSpDefense = 35, - .types = { TYPE_NORMAL, TYPE_FLYING }, - .catchRate = 255, - .expYield = 50, - .evYield_Speed = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_KEEN_EYE, ABILITY_TANGLED_FEET, ABILITY_BIG_PECKS}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_PIDGEOTTO] = - { - .baseHP = 63, - .baseAttack = 60, - .baseDefense = 55, - .baseSpeed = 71, - .baseSpAttack = 50, - .baseSpDefense = 50, - .types = { TYPE_NORMAL, TYPE_FLYING }, - .catchRate = 120, - .expYield = 122, - .evYield_Speed = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_KEEN_EYE, ABILITY_TANGLED_FEET, ABILITY_BIG_PECKS}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_PIDGEOT] = - { - .baseHP = 83, - .baseAttack = 80, - .baseDefense = 75, - .baseSpAttack = 70, - .baseSpDefense = 70, - #if P_UPDATED_STATS >= GEN_6 - .baseSpeed = 101, - #else - .baseSpeed = 91, - #endif - .types = { TYPE_NORMAL, TYPE_FLYING}, - .catchRate = 45, - .expYield = 216, - .evYield_Speed = 3, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_KEEN_EYE, ABILITY_TANGLED_FEET, ABILITY_BIG_PECKS}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_RATTATA] = - { - .baseHP = 30, - .baseAttack = 56, - .baseDefense = 35, - .baseSpeed = 72, - .baseSpAttack = 25, - .baseSpDefense = 35, - .types = { TYPE_NORMAL, TYPE_NORMAL }, - .catchRate = 255, - .expYield = 51, - .evYield_Speed = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_RUN_AWAY, ABILITY_GUTS, ABILITY_HUSTLE}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - }, - - [SPECIES_RATICATE] = - { - .baseHP = 55, - .baseAttack = 81, - .baseDefense = 60, - .baseSpeed = 97, - .baseSpAttack = 50, - .baseSpDefense = 70, - .types = { TYPE_NORMAL, TYPE_NORMAL }, - .catchRate = 127, - .expYield = 145, - .evYield_Speed = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_RUN_AWAY, ABILITY_GUTS, ABILITY_HUSTLE}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_SPEAROW] = - { - .baseHP = 40, - .baseAttack = 60, - .baseDefense = 30, - .baseSpeed = 70, - .baseSpAttack = 31, - .baseSpDefense = 31, - .types = { TYPE_NORMAL, TYPE_FLYING }, - .catchRate = 255, - .expYield = 52, - .evYield_Speed = 1, - .itemRare = ITEM_SHARP_BEAK, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_KEEN_EYE, ABILITY_NONE, ABILITY_SNIPER}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_FEAROW] = - { - .baseHP = 65, - .baseAttack = 90, - .baseDefense = 65, - .baseSpeed = 100, - .baseSpAttack = 61, - .baseSpDefense = 61, - .types = { TYPE_NORMAL, TYPE_FLYING }, - .catchRate = 90, - .expYield = 155, - .evYield_Speed = 2, - .itemRare = ITEM_SHARP_BEAK, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_KEEN_EYE, ABILITY_NONE, ABILITY_SNIPER}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_EKANS] = - { - .baseHP = 35, - .baseAttack = 60, - .baseDefense = 44, - .baseSpeed = 55, - .baseSpAttack = 40, - .baseSpDefense = 54, - .types = { TYPE_POISON, TYPE_POISON }, - .catchRate = 255, - .expYield = 58, - .evYield_Attack = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_INTIMIDATE, ABILITY_SHED_SKIN, ABILITY_UNNERVE}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - }, - - [SPECIES_ARBOK] = - { - .baseHP = 60, - .baseDefense = 69, - .baseSpeed = 80, - .baseSpAttack = 65, - .baseSpDefense = 79, - #if P_UPDATED_STATS >= GEN_7 - .baseAttack = 95, - #else - .baseAttack = 85, - #endif - .types = { TYPE_POISON, TYPE_POISON}, - .catchRate = 90, - .expYield = 157, - .evYield_Attack = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_INTIMIDATE, ABILITY_SHED_SKIN, ABILITY_UNNERVE}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - }, - - [SPECIES_PIKACHU] = { PIKACHU_MISC_INFO(PERCENT_FEMALE(50), FLIP) }, - - [SPECIES_RAICHU] = - { - .baseHP = 60, - .baseAttack = 90, - .baseDefense = 55, - .baseSpAttack = 90, - .baseSpDefense = 80, - #if P_UPDATED_STATS >= GEN_6 - .baseSpeed = 110, - #else - .baseSpeed = 100, - #endif - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, - .catchRate = 75, - .expYield = 218, - .evYield_Speed = 3, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 10, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, - }, - - [SPECIES_SANDSHREW] = - { - .baseHP = 50, - .baseAttack = 75, - .baseDefense = 85, - .baseSpeed = 40, - .baseSpAttack = 20, - .baseSpDefense = 30, - .types = { TYPE_GROUND, TYPE_GROUND }, - .catchRate = 255, - .expYield = 60, - .evYield_Defense = 1, - .itemRare = ITEM_GRIP_CLAW, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SAND_VEIL, ABILITY_NONE, ABILITY_SAND_RUSH}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, - }, - - [SPECIES_SANDSLASH] = - { - .baseHP = 75, - .baseAttack = 100, - .baseDefense = 110, - .baseSpeed = 65, - .baseSpAttack = 45, - .baseSpDefense = 55, - .types = { TYPE_GROUND, TYPE_GROUND }, - .catchRate = 90, - .expYield = 158, - .evYield_Defense = 2, - .itemRare = ITEM_GRIP_CLAW, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SAND_VEIL, ABILITY_NONE, ABILITY_SAND_RUSH}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, - }, - - [SPECIES_NIDORAN_F] = - { - .baseHP = 55, - .baseAttack = 47, - .baseDefense = 52, - .baseSpeed = 41, - .baseSpAttack = 40, - .baseSpDefense = 40, - .types = { TYPE_POISON, TYPE_POISON }, - .catchRate = 235, - .expYield = 55, - .evYield_HP = 1, - .genderRatio = MON_FEMALE, - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD}, - .abilities = {ABILITY_POISON_POINT, ABILITY_RIVALRY, ABILITY_HUSTLE}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_NIDORINA] = - { - .baseHP = 70, - .baseAttack = 62, - .baseDefense = 67, - .baseSpeed = 56, - .baseSpAttack = 55, - .baseSpDefense = 55, - .types = { TYPE_POISON, TYPE_POISON }, - .catchRate = 120, - .expYield = 128, - .evYield_HP = 2, - .genderRatio = MON_FEMALE, - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_POISON_POINT, ABILITY_RIVALRY, ABILITY_HUSTLE}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_NIDOQUEEN] = - { - .baseHP = 90, - .baseDefense = 87, - .baseSpeed = 76, - .baseSpAttack = 75, - .baseSpDefense = 85, - #if P_UPDATED_STATS >= GEN_6 - .baseAttack = 92, - #else - .baseAttack = 82, - #endif - .types = { TYPE_POISON, TYPE_GROUND}, - .catchRate = 45, - .expYield = 227, - .evYield_HP = 3, - .genderRatio = MON_FEMALE, - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_POISON_POINT, ABILITY_RIVALRY, ABILITY_SHEER_FORCE}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_NIDORAN_M] = - { - .baseHP = 46, - .baseAttack = 57, - .baseDefense = 40, - .baseSpeed = 50, - .baseSpAttack = 40, - .baseSpDefense = 40, - .types = { TYPE_POISON, TYPE_POISON }, - .catchRate = 235, - .expYield = 55, - .evYield_Attack = 1, - .genderRatio = MON_MALE, - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD}, - .abilities = {ABILITY_POISON_POINT, ABILITY_RIVALRY, ABILITY_HUSTLE}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - }, - - [SPECIES_NIDORINO] = - { - .baseHP = 61, - .baseAttack = 72, - .baseDefense = 57, - .baseSpeed = 65, - .baseSpAttack = 55, - .baseSpDefense = 55, - .types = { TYPE_POISON, TYPE_POISON }, - .catchRate = 120, - .expYield = 128, - .evYield_Attack = 2, - .genderRatio = MON_MALE, - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD}, - .abilities = {ABILITY_POISON_POINT, ABILITY_RIVALRY, ABILITY_HUSTLE}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - }, - - [SPECIES_NIDOKING] = - { - .baseHP = 81, - .baseDefense = 77, - .baseSpeed = 85, - .baseSpAttack = 85, - .baseSpDefense = 75, - #if P_UPDATED_STATS >= GEN_6 - .baseAttack = 102, - #else - .baseAttack = 92, - #endif - .types = { TYPE_POISON, TYPE_GROUND}, - .catchRate = 45, - .expYield = 227, - .evYield_Attack = 3, - .genderRatio = MON_MALE, - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD}, - .abilities = {ABILITY_POISON_POINT, ABILITY_RIVALRY, ABILITY_SHEER_FORCE}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - }, - - [SPECIES_CLEFAIRY] = - { - .baseHP = 70, - .baseAttack = 45, - .baseDefense = 48, - .baseSpeed = 35, - .baseSpAttack = 60, - .baseSpDefense = 65, - #if P_UPDATED_TYPES >= GEN_6 - .types = { TYPE_FAIRY, TYPE_FAIRY}, - #else - .types = { TYPE_NORMAL, TYPE_NORMAL}, - #endif - .catchRate = 150, - .expYield = 113, - .evYield_HP = 2, - .itemRare = ITEM_MOON_STONE, - .genderRatio = PERCENT_FEMALE(75), - .eggCycles = 10, - .friendship = 140, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_CUTE_CHARM, ABILITY_MAGIC_GUARD, ABILITY_FRIEND_GUARD}, - .bodyColor = BODY_COLOR_PINK, - .noFlip = TRUE, - }, - - [SPECIES_CLEFABLE] = - { - .baseHP = 95, - .baseAttack = 70, - .baseDefense = 73, - .baseSpeed = 60, - .baseSpDefense = 90, - #if P_UPDATED_STATS >= GEN_6 - .baseSpAttack = 95, - #else - .baseSpAttack = 85, - #endif - #if P_UPDATED_TYPES >= GEN_6 - .types = { TYPE_FAIRY, TYPE_FAIRY}, - #else - .types = { TYPE_NORMAL, TYPE_NORMAL}, - #endif - .catchRate = 25, - .expYield = 217, - .evYield_HP = 3, - .itemRare = ITEM_MOON_STONE, - .genderRatio = PERCENT_FEMALE(75), - .eggCycles = 10, - .friendship = 140, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_CUTE_CHARM, ABILITY_MAGIC_GUARD, ABILITY_UNAWARE}, - .bodyColor = BODY_COLOR_PINK, - .noFlip = TRUE, - }, - - [SPECIES_VULPIX] = - { - .baseHP = 38, - .baseAttack = 41, - .baseDefense = 40, - .baseSpeed = 65, - .baseSpAttack = 50, - .baseSpDefense = 65, - .types = { TYPE_FIRE, TYPE_FIRE }, - .catchRate = 190, - .expYield = 60, - .evYield_Speed = 1, - .itemRare = ITEM_CHARCOAL, - .genderRatio = PERCENT_FEMALE(75), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_FLASH_FIRE, ABILITY_NONE, ABILITY_DROUGHT}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_NINETALES] = - { - .baseHP = 73, - .baseAttack = 76, - .baseDefense = 75, - .baseSpeed = 100, - .baseSpAttack = 81, - .baseSpDefense = 100, - .types = { TYPE_FIRE, TYPE_FIRE }, - .catchRate = 75, - .expYield = 177, - .evYield_Speed = 1, - .evYield_SpDefense = 1, - .itemRare = ITEM_CHARCOAL, - .genderRatio = PERCENT_FEMALE(75), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_FLASH_FIRE, ABILITY_NONE, ABILITY_DROUGHT}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, - }, - - [SPECIES_JIGGLYPUFF] = - { - .baseHP = 115, - .baseAttack = 45, - .baseDefense = 20, - .baseSpeed = 20, - .baseSpAttack = 45, - .baseSpDefense = 25, - #if P_UPDATED_TYPES >= GEN_6 - .types = { TYPE_NORMAL, TYPE_FAIRY}, - #else - .types = { TYPE_NORMAL, TYPE_NORMAL}, - #endif - .catchRate = 170, - .expYield = 95, - .evYield_HP = 2, - .itemRare = ITEM_MOON_STONE, - .genderRatio = PERCENT_FEMALE(75), - .eggCycles = 10, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_CUTE_CHARM, ABILITY_COMPETITIVE, ABILITY_FRIEND_GUARD}, - .bodyColor = BODY_COLOR_PINK, - .noFlip = TRUE, - }, - - [SPECIES_WIGGLYTUFF] = - { - .baseHP = 140, - .baseAttack = 70, - .baseDefense = 45, - .baseSpeed = 45, - .baseSpDefense = 50, - #if P_UPDATED_STATS >= GEN_6 - .baseSpAttack = 85, - #else - .baseSpAttack = 75, - #endif - #if P_UPDATED_TYPES >= GEN_6 - .types = { TYPE_NORMAL, TYPE_FAIRY}, - #else - .types = { TYPE_NORMAL, TYPE_NORMAL}, - #endif - .catchRate = 50, - .expYield = 196, - .evYield_HP = 3, - .itemRare = ITEM_MOON_STONE, - .genderRatio = PERCENT_FEMALE(75), - .eggCycles = 10, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_CUTE_CHARM, ABILITY_COMPETITIVE, ABILITY_FRISK}, - .bodyColor = BODY_COLOR_PINK, - .noFlip = TRUE, - }, - - [SPECIES_ZUBAT] = - { - .baseHP = 40, - .baseAttack = 45, - .baseDefense = 35, - .baseSpeed = 55, - .baseSpAttack = 30, - .baseSpDefense = 40, - .types = { TYPE_POISON, TYPE_FLYING }, - .catchRate = 255, - .expYield = 49, - .evYield_Speed = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_INNER_FOCUS, ABILITY_NONE, ABILITY_INFILTRATOR}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - }, - - [SPECIES_GOLBAT] = - { - .baseHP = 75, - .baseAttack = 80, - .baseDefense = 70, - .baseSpeed = 90, - .baseSpAttack = 65, - .baseSpDefense = 75, - .types = { TYPE_POISON, TYPE_FLYING }, - .catchRate = 90, - .expYield = 159, - .evYield_Speed = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_INNER_FOCUS, ABILITY_NONE, ABILITY_INFILTRATOR}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - }, - - [SPECIES_ODDISH] = - { - .baseHP = 45, - .baseAttack = 50, - .baseDefense = 55, - .baseSpeed = 30, - .baseSpAttack = 75, - .baseSpDefense = 65, - .types = { TYPE_GRASS, TYPE_POISON }, - .catchRate = 255, - .expYield = 64, - .evYield_SpAttack = 1, - .itemRare = ITEM_ABSORB_BULB, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_RUN_AWAY}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_GLOOM] = - { - .baseHP = 60, - .baseAttack = 65, - .baseDefense = 70, - .baseSpeed = 40, - .baseSpAttack = 85, - .baseSpDefense = 75, - .types = { TYPE_GRASS, TYPE_POISON }, - .catchRate = 120, - .expYield = 138, - .evYield_SpAttack = 2, - .itemRare = ITEM_ABSORB_BULB, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_STENCH}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_VILEPLUME] = - { - .baseHP = 75, - .baseAttack = 80, - .baseDefense = 85, - .baseSpeed = 50, - .baseSpDefense = 90, - #if P_UPDATED_STATS >= GEN_6 - .baseSpAttack = 110, - #else - .baseSpAttack = 100, - #endif - .types = { TYPE_GRASS, TYPE_POISON}, - .catchRate = 45, - .expYield = 221, - .evYield_SpAttack = 3, - .itemRare = ITEM_ABSORB_BULB, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_EFFECT_SPORE}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, - - [SPECIES_PARAS] = - { - .baseHP = 35, - .baseAttack = 70, - .baseDefense = 55, - .baseSpeed = 25, - .baseSpAttack = 45, - .baseSpDefense = 55, - .types = { TYPE_BUG, TYPE_GRASS }, - .catchRate = 190, - .expYield = 57, - .evYield_Attack = 1, - .itemCommon = ITEM_TINY_MUSHROOM, - .itemRare = ITEM_BIG_MUSHROOM, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_GRASS}, - .abilities = {ABILITY_EFFECT_SPORE, ABILITY_DRY_SKIN, ABILITY_DAMP}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, - - [SPECIES_PARASECT] = - { - .baseHP = 60, - .baseAttack = 95, - .baseDefense = 80, - .baseSpeed = 30, - .baseSpAttack = 60, - .baseSpDefense = 80, - .types = { TYPE_BUG, TYPE_GRASS }, - .catchRate = 75, - .expYield = 142, - .evYield_Attack = 2, - .evYield_Defense = 1, - .itemCommon = ITEM_TINY_MUSHROOM, - .itemRare = ITEM_BIG_MUSHROOM, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_GRASS}, - .abilities = {ABILITY_EFFECT_SPORE, ABILITY_DRY_SKIN, ABILITY_DAMP}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, - - [SPECIES_VENONAT] = - { - .baseHP = 60, - .baseAttack = 55, - .baseDefense = 50, - .baseSpeed = 45, - .baseSpAttack = 40, - .baseSpDefense = 55, - .types = { TYPE_BUG, TYPE_POISON }, - .catchRate = 190, - .expYield = 61, - .evYield_SpDefense = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_COMPOUND_EYES, ABILITY_TINTED_LENS, ABILITY_RUN_AWAY}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - }, - - [SPECIES_VENOMOTH] = - { - .baseHP = 70, - .baseAttack = 65, - .baseDefense = 60, - .baseSpeed = 90, - .baseSpAttack = 90, - .baseSpDefense = 75, - .types = { TYPE_BUG, TYPE_POISON }, - .catchRate = 75, - .expYield = 158, - .evYield_Speed = 1, - .evYield_SpAttack = 1, - .itemRare = ITEM_SHED_SHELL, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SHIELD_DUST, ABILITY_TINTED_LENS, ABILITY_WONDER_SKIN}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - }, - - [SPECIES_DIGLETT] = - { - .baseHP = 10, - .baseAttack = 55, - .baseDefense = 25, - .baseSpeed = 95, - .baseSpAttack = 35, - .baseSpDefense = 45, - .types = { TYPE_GROUND, TYPE_GROUND }, - .catchRate = 255, - .expYield = 53, - .evYield_Speed = 1, - .itemRare = ITEM_SOFT_SAND, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SAND_VEIL, ABILITY_ARENA_TRAP, ABILITY_SAND_FORCE}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_DUGTRIO] = - { - .baseHP = 35, - .baseDefense = 50, - .baseSpeed = 120, - .baseSpAttack = 50, - .baseSpDefense = 70, - #if P_UPDATED_STATS >= GEN_7 - .baseAttack = 100, - #else - .baseAttack = 80, - #endif - .types = { TYPE_GROUND, TYPE_GROUND}, - .catchRate = 50, - .expYield = 149, - .evYield_Speed = 2, - .itemRare = ITEM_SOFT_SAND, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SAND_VEIL, ABILITY_ARENA_TRAP, ABILITY_SAND_FORCE}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_MEOWTH] = - { - MEOWTH_MISC_INFO - }, - - [SPECIES_PERSIAN] = - { - .baseHP = 65, - .baseAttack = 70, - .baseDefense = 60, - .baseSpeed = 115, - .baseSpAttack = 65, - .baseSpDefense = 65, - .types = { TYPE_NORMAL, TYPE_NORMAL }, - .catchRate = 90, - .expYield = 154, - .evYield_Speed = 2, - .itemRare = ITEM_QUICK_CLAW, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_LIMBER, ABILITY_TECHNICIAN, ABILITY_UNNERVE}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, - }, - - [SPECIES_PSYDUCK] = - { - .baseHP = 50, - .baseAttack = 52, - .baseDefense = 48, - .baseSpeed = 55, - .baseSpAttack = 65, - .baseSpDefense = 50, - .types = { TYPE_WATER, TYPE_WATER }, - .catchRate = 190, - .expYield = 64, - .evYield_SpAttack = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, - .abilities = {ABILITY_DAMP, ABILITY_CLOUD_NINE, ABILITY_SWIFT_SWIM}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, - }, - - [SPECIES_GOLDUCK] = - { - .baseHP = 80, - .baseAttack = 82, - .baseDefense = 78, - .baseSpeed = 85, - .baseSpAttack = 95, - .baseSpDefense = 80, - .types = { TYPE_WATER, TYPE_WATER }, - .catchRate = 75, - .expYield = 175, - .evYield_SpAttack = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, - .abilities = {ABILITY_DAMP, ABILITY_CLOUD_NINE, ABILITY_SWIFT_SWIM}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_MANKEY] = - { - .baseHP = 40, - .baseAttack = 80, - .baseDefense = 35, - .baseSpeed = 70, - .baseSpAttack = 35, - .baseSpDefense = 45, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, - .catchRate = 190, - .expYield = 61, - .evYield_Attack = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_VITAL_SPIRIT, ABILITY_ANGER_POINT, ABILITY_DEFIANT}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_PRIMEAPE] = - { - .baseHP = 65, - .baseAttack = 105, - .baseDefense = 60, - .baseSpeed = 95, - .baseSpAttack = 60, - .baseSpDefense = 70, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, - .catchRate = 75, - .expYield = 159, - .evYield_Attack = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_VITAL_SPIRIT, ABILITY_ANGER_POINT, ABILITY_DEFIANT}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_GROWLITHE] = - { - .baseHP = 55, - .baseAttack = 70, - .baseDefense = 45, - .baseSpeed = 60, - .baseSpAttack = 70, - .baseSpDefense = 50, - .types = { TYPE_FIRE, TYPE_FIRE }, - .catchRate = 190, - .expYield = 70, - .evYield_Attack = 1, - .genderRatio = PERCENT_FEMALE(25), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_INTIMIDATE, ABILITY_FLASH_FIRE, ABILITY_JUSTIFIED}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_ARCANINE] = - { - .baseHP = 90, - .baseAttack = 110, - .baseDefense = 80, - .baseSpeed = 95, - .baseSpAttack = 100, - .baseSpDefense = 80, - .types = { TYPE_FIRE, TYPE_FIRE }, - .catchRate = 75, - .expYield = 194, - .evYield_Attack = 2, - .genderRatio = PERCENT_FEMALE(25), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_INTIMIDATE, ABILITY_FLASH_FIRE, ABILITY_JUSTIFIED}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_POLIWAG] = - { - .baseHP = 40, - .baseAttack = 50, - .baseDefense = 40, - .baseSpeed = 90, - .baseSpAttack = 40, - .baseSpDefense = 40, - .types = { TYPE_WATER, TYPE_WATER }, - .catchRate = 255, - .expYield = 60, - .evYield_Speed = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_WATER_ABSORB, ABILITY_DAMP, ABILITY_SWIFT_SWIM}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = TRUE, - }, - - [SPECIES_POLIWHIRL] = - { - .baseHP = 65, - .baseAttack = 65, - .baseDefense = 65, - .baseSpeed = 90, - .baseSpAttack = 50, - .baseSpDefense = 50, - .types = { TYPE_WATER, TYPE_WATER }, - .catchRate = 120, - .expYield = 135, - .evYield_Speed = 2, - .itemRare = ITEM_KINGS_ROCK, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_WATER_ABSORB, ABILITY_DAMP, ABILITY_SWIFT_SWIM}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = TRUE, - }, - - [SPECIES_POLIWRATH] = - { - .baseHP = 90, - .baseDefense = 95, - .baseSpeed = 70, - .baseSpAttack = 70, - .baseSpDefense = 90, - #if P_UPDATED_STATS >= GEN_6 - .baseAttack = 95, - #else - .baseAttack = 85, - #endif - .types = { TYPE_WATER, TYPE_FIGHTING}, - .catchRate = 45, - .expYield = 230, - .evYield_Defense = 3, - .itemRare = ITEM_KINGS_ROCK, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_WATER_ABSORB, ABILITY_DAMP, ABILITY_SWIFT_SWIM}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = TRUE, - }, - - [SPECIES_ABRA] = - { - .baseHP = 25, - .baseAttack = 20, - .baseDefense = 15, - .baseSpeed = 90, - .baseSpAttack = 105, - .baseSpDefense = 55, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, - .catchRate = 200, - .expYield = 62, - .evYield_SpAttack = 1, - .itemRare = ITEM_TWISTED_SPOON, - .genderRatio = PERCENT_FEMALE(25), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_SYNCHRONIZE, ABILITY_INNER_FOCUS, ABILITY_MAGIC_GUARD}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_KADABRA] = - { - .baseHP = 40, - .baseAttack = 35, - .baseDefense = 30, - .baseSpeed = 105, - .baseSpAttack = 120, - .baseSpDefense = 70, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, - .catchRate = 100, - .expYield = 140, - .evYield_SpAttack = 2, - .itemRare = ITEM_TWISTED_SPOON, - .genderRatio = PERCENT_FEMALE(25), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_SYNCHRONIZE, ABILITY_INNER_FOCUS, ABILITY_MAGIC_GUARD}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = TRUE, - }, - - [SPECIES_ALAKAZAM] = - { - .baseHP = 55, - .baseAttack = 50, - .baseDefense = 45, - .baseSpeed = 120, - .baseSpAttack = 135, - #if P_UPDATED_STATS >= GEN_6 - .baseSpDefense = 95, - #else - .baseSpDefense = 85, - #endif - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - .catchRate = 50, - .expYield = 225, - .evYield_SpAttack = 3, - .itemRare = ITEM_TWISTED_SPOON, - .genderRatio = PERCENT_FEMALE(25), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_SYNCHRONIZE, ABILITY_INNER_FOCUS, ABILITY_MAGIC_GUARD}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_MACHOP] = - { - .baseHP = 70, - .baseAttack = 80, - .baseDefense = 50, - .baseSpeed = 35, - .baseSpAttack = 35, - .baseSpDefense = 35, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, - .catchRate = 180, - .expYield = 61, - .evYield_Attack = 1, - .itemRare = ITEM_FOCUS_BAND, - .genderRatio = PERCENT_FEMALE(25), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_GUTS, ABILITY_NO_GUARD, ABILITY_STEADFAST}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, - - [SPECIES_MACHOKE] = - { - .baseHP = 80, - .baseAttack = 100, - .baseDefense = 70, - .baseSpeed = 45, - .baseSpAttack = 50, - .baseSpDefense = 60, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, - .catchRate = 90, - .expYield = 142, - .evYield_Attack = 2, - .itemRare = ITEM_FOCUS_BAND, - .genderRatio = PERCENT_FEMALE(25), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_GUTS, ABILITY_NO_GUARD, ABILITY_STEADFAST}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = TRUE, - }, - - [SPECIES_MACHAMP] = - { - MACHAMP_MISC_INFO - }, - - [SPECIES_BELLSPROUT] = - { - .baseHP = 50, - .baseAttack = 75, - .baseDefense = 35, - .baseSpeed = 40, - .baseSpAttack = 70, - .baseSpDefense = 30, - .types = { TYPE_GRASS, TYPE_POISON }, - .catchRate = 255, - .expYield = 60, - .evYield_Attack = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_GLUTTONY}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, - - [SPECIES_WEEPINBELL] = - { - .baseHP = 65, - .baseAttack = 90, - .baseDefense = 50, - .baseSpeed = 55, - .baseSpAttack = 85, - .baseSpDefense = 45, - .types = { TYPE_GRASS, TYPE_POISON }, - .catchRate = 120, - .expYield = 137, - .evYield_Attack = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_GLUTTONY}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, - - [SPECIES_VICTREEBEL] = - { - .baseHP = 80, - .baseAttack = 105, - .baseDefense = 65, - .baseSpeed = 70, - .baseSpAttack = 100, - #if P_UPDATED_STATS >= GEN_6 - .baseSpDefense = 70, - #else - .baseSpDefense = 60, - #endif - .types = { TYPE_GRASS, TYPE_POISON}, - .catchRate = 45, - .expYield = 221, - .evYield_Attack = 3, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_GLUTTONY}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, - - [SPECIES_TENTACOOL] = - { - .baseHP = 40, - .baseAttack = 40, - .baseDefense = 35, - .baseSpeed = 70, - .baseSpAttack = 50, - .baseSpDefense = 100, - .types = { TYPE_WATER, TYPE_POISON }, - .catchRate = 190, - .expYield = 67, - .evYield_SpDefense = 1, - .itemRare = ITEM_POISON_BARB, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, - .abilities = {ABILITY_CLEAR_BODY, ABILITY_LIQUID_OOZE, ABILITY_RAIN_DISH}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_TENTACRUEL] = - { - .baseHP = 80, - .baseAttack = 70, - .baseDefense = 65, - .baseSpeed = 100, - .baseSpAttack = 80, - .baseSpDefense = 120, - .types = { TYPE_WATER, TYPE_POISON }, - .catchRate = 60, - .expYield = 180, - .evYield_SpDefense = 2, - .itemRare = ITEM_POISON_BARB, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, - .abilities = {ABILITY_CLEAR_BODY, ABILITY_LIQUID_OOZE, ABILITY_RAIN_DISH}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_GEODUDE] = - { - .baseHP = 40, - .baseAttack = 80, - .baseDefense = 100, - .baseSpeed = 20, - .baseSpAttack = 30, - .baseSpDefense = 30, - .types = { TYPE_ROCK, TYPE_GROUND }, - .catchRate = 255, - .expYield = 60, - .evYield_Defense = 1, - .itemRare = ITEM_EVERSTONE, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_ROCK_HEAD, ABILITY_STURDY, ABILITY_SAND_VEIL}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_GRAVELER] = - { - .baseHP = 55, - .baseAttack = 95, - .baseDefense = 115, - .baseSpeed = 35, - .baseSpAttack = 45, - .baseSpDefense = 45, - .types = { TYPE_ROCK, TYPE_GROUND }, - .catchRate = 120, - .expYield = 137, - .evYield_Defense = 2, - .itemRare = ITEM_EVERSTONE, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_ROCK_HEAD, ABILITY_STURDY, ABILITY_SAND_VEIL}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_GOLEM] = - { - .baseHP = 80, - .baseDefense = 130, - .baseSpeed = 45, - .baseSpAttack = 55, - .baseSpDefense = 65, - #if P_UPDATED_STATS >= GEN_6 - .baseAttack = 120, - #else - .baseAttack = 110, - #endif - .types = { TYPE_ROCK, TYPE_GROUND}, - .catchRate = 45, - .expYield = 223, - .evYield_Defense = 3, - .itemRare = ITEM_EVERSTONE, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_ROCK_HEAD, ABILITY_STURDY, ABILITY_SAND_VEIL}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_PONYTA] = - { - .baseHP = 50, - .baseAttack = 85, - .baseDefense = 55, - .baseSpeed = 90, - .baseSpAttack = 65, - .baseSpDefense = 65, - .types = { TYPE_FIRE, TYPE_FIRE }, - .catchRate = 190, - .expYield = 82, - .evYield_Speed = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_RUN_AWAY, ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, - }, - - [SPECIES_RAPIDASH] = - { - .baseHP = 65, - .baseAttack = 100, - .baseDefense = 70, - .baseSpeed = 105, - .baseSpAttack = 80, - .baseSpDefense = 80, - .types = { TYPE_FIRE, TYPE_FIRE }, - .catchRate = 60, - .expYield = 175, - .evYield_Speed = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_RUN_AWAY, ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, - }, - - [SPECIES_SLOWPOKE] = - { - .baseHP = 90, - .baseAttack = 65, - .baseDefense = 65, - .baseSpeed = 15, - .baseSpAttack = 40, - .baseSpDefense = 40, - .types = { TYPE_WATER, TYPE_PSYCHIC }, - .catchRate = 190, - .expYield = 63, - .evYield_HP = 1, - .itemRare = ITEM_LAGGING_TAIL, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_OBLIVIOUS, ABILITY_OWN_TEMPO, ABILITY_REGENERATOR}, - .bodyColor = BODY_COLOR_PINK, - .noFlip = FALSE, - }, - - [SPECIES_SLOWBRO] = - { - .baseHP = 95, - .baseAttack = 75, - .baseDefense = 110, - .baseSpeed = 30, - .baseSpAttack = 100, - .baseSpDefense = 80, - .types = { TYPE_WATER, TYPE_PSYCHIC }, - .catchRate = 75, - .expYield = 172, - .evYield_Defense = 2, - .itemRare = ITEM_KINGS_ROCK, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_OBLIVIOUS, ABILITY_OWN_TEMPO, ABILITY_REGENERATOR}, - .bodyColor = BODY_COLOR_PINK, - .noFlip = FALSE, - }, - - [SPECIES_MAGNEMITE] = - { - .baseHP = 25, - .baseAttack = 35, - .baseDefense = 70, - .baseSpeed = 45, - .baseSpAttack = 95, - .baseSpDefense = 55, - .types = { TYPE_ELECTRIC, TYPE_STEEL }, - .catchRate = 190, - .expYield = 65, - .evYield_SpAttack = 1, - .itemRare = ITEM_METAL_COAT, - .genderRatio = MON_GENDERLESS, - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_MAGNET_PULL, ABILITY_STURDY, ABILITY_ANALYTIC}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, - - [SPECIES_MAGNETON] = - { - .baseHP = 50, - .baseAttack = 60, - .baseDefense = 95, - .baseSpeed = 70, - .baseSpAttack = 120, - .baseSpDefense = 70, - .types = { TYPE_ELECTRIC, TYPE_STEEL }, - .catchRate = 60, - .expYield = 163, - .evYield_SpAttack = 2, - .itemRare = ITEM_METAL_COAT, - .genderRatio = MON_GENDERLESS, - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_MAGNET_PULL, ABILITY_STURDY, ABILITY_ANALYTIC}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, - - [SPECIES_FARFETCHD] = - { - .baseHP = 52, - .baseDefense = 55, - .baseSpeed = 60, - .baseSpAttack = 58, - .baseSpDefense = 62, - #if P_UPDATED_STATS >= GEN_7 - .baseAttack = 90, - #else - .baseAttack = 65, - #endif - .types = { TYPE_NORMAL, TYPE_FLYING}, - .catchRate = 45, - .expYield = 132, - .evYield_Attack = 1, - .itemRare = ITEM_LEEK, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FIELD}, - .abilities = {ABILITY_KEEN_EYE, ABILITY_INNER_FOCUS, ABILITY_DEFIANT}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_DODUO] = - { - .baseHP = 35, - .baseAttack = 85, - .baseDefense = 45, - .baseSpeed = 75, - .baseSpAttack = 35, - .baseSpDefense = 35, - .types = { TYPE_NORMAL, TYPE_FLYING }, - .catchRate = 190, - .expYield = 62, - .evYield_Attack = 1, - .itemRare = ITEM_SHARP_BEAK, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_RUN_AWAY, ABILITY_EARLY_BIRD, ABILITY_TANGLED_FEET}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_DODRIO] = - { - .baseHP = 60, - .baseAttack = 110, - .baseDefense = 70, - .baseSpAttack = 60, - .baseSpDefense = 60, - #if P_UPDATED_STATS >= GEN_7 - .baseSpeed = 110, - #else - .baseSpeed = 100, - #endif - .types = { TYPE_NORMAL, TYPE_FLYING}, - .catchRate = 45, - .expYield = 165, - .evYield_Attack = 2, - .itemRare = ITEM_SHARP_BEAK, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_RUN_AWAY, ABILITY_EARLY_BIRD, ABILITY_TANGLED_FEET}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_SEEL] = - { - .baseHP = 65, - .baseAttack = 45, - .baseDefense = 55, - .baseSpeed = 45, - .baseSpAttack = 45, - .baseSpDefense = 70, - .types = { TYPE_WATER, TYPE_WATER }, - .catchRate = 190, - .expYield = 65, - .evYield_SpDefense = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, - .abilities = {ABILITY_THICK_FAT, ABILITY_HYDRATION, ABILITY_ICE_BODY}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - }, - - [SPECIES_DEWGONG] = - { - .baseHP = 90, - .baseAttack = 70, - .baseDefense = 80, - .baseSpeed = 70, - .baseSpAttack = 70, - .baseSpDefense = 95, - .types = { TYPE_WATER, TYPE_ICE }, - .catchRate = 75, - .expYield = 166, - .evYield_SpDefense = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, - .abilities = {ABILITY_THICK_FAT, ABILITY_HYDRATION, ABILITY_ICE_BODY}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - }, - - [SPECIES_GRIMER] = - { - .baseHP = 80, - .baseAttack = 80, - .baseDefense = 50, - .baseSpeed = 25, - .baseSpAttack = 40, - .baseSpDefense = 50, - .types = { TYPE_POISON, TYPE_POISON }, - .catchRate = 190, - .expYield = 65, - .evYield_HP = 1, - .itemRare = ITEM_BLACK_SLUDGE, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_STENCH, ABILITY_STICKY_HOLD, ABILITY_POISON_TOUCH}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - }, - - [SPECIES_MUK] = - { - .baseHP = 105, - .baseAttack = 105, - .baseDefense = 75, - .baseSpeed = 50, - .baseSpAttack = 65, - .baseSpDefense = 100, - .types = { TYPE_POISON, TYPE_POISON }, - .catchRate = 75, - .expYield = 175, - .evYield_HP = 1, - .evYield_Attack = 1, - .itemCommon = ITEM_BLACK_SLUDGE, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_STENCH, ABILITY_STICKY_HOLD, ABILITY_POISON_TOUCH}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - }, - - [SPECIES_SHELLDER] = - { - .baseHP = 30, - .baseAttack = 65, - .baseDefense = 100, - .baseSpeed = 40, - .baseSpAttack = 45, - .baseSpDefense = 25, - .types = { TYPE_WATER, TYPE_WATER }, - .catchRate = 190, - .expYield = 61, - .evYield_Defense = 1, - .itemCommon = ITEM_PEARL, - .itemRare = ITEM_BIG_PEARL, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, - .abilities = {ABILITY_SHELL_ARMOR, ABILITY_SKILL_LINK, ABILITY_OVERCOAT}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - }, - - [SPECIES_CLOYSTER] = - { - .baseHP = 50, - .baseAttack = 95, - .baseDefense = 180, - .baseSpeed = 70, - .baseSpAttack = 85, - .baseSpDefense = 45, - .types = { TYPE_WATER, TYPE_ICE }, - .catchRate = 60, - .expYield = 184, - .evYield_Defense = 2, - .itemCommon = ITEM_PEARL, - .itemRare = ITEM_BIG_PEARL, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, - .abilities = {ABILITY_SHELL_ARMOR, ABILITY_SKILL_LINK, ABILITY_OVERCOAT}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - }, - - [SPECIES_GASTLY] = - { - .baseHP = 30, - .baseAttack = 35, - .baseDefense = 30, - .baseSpeed = 80, - .baseSpAttack = 100, - .baseSpDefense = 35, - .types = { TYPE_GHOST, TYPE_POISON }, - .catchRate = 190, - .expYield = 62, - .evYield_SpAttack = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, - .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - }, - - [SPECIES_HAUNTER] = - { - .baseHP = 45, - .baseAttack = 50, - .baseDefense = 45, - .baseSpeed = 95, - .baseSpAttack = 115, - .baseSpDefense = 55, - .types = { TYPE_GHOST, TYPE_POISON }, - .catchRate = 90, - .expYield = 142, - .evYield_SpAttack = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, - .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - }, - - [SPECIES_GENGAR] = - { - GENGAR_MISC_INFO - }, - - [SPECIES_ONIX] = - { - .baseHP = 35, - .baseAttack = 45, - .baseDefense = 160, - .baseSpeed = 70, - .baseSpAttack = 30, - .baseSpDefense = 45, - .types = { TYPE_ROCK, TYPE_GROUND }, - .catchRate = 45, - .expYield = 77, - .evYield_Defense = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_ROCK_HEAD, ABILITY_STURDY, ABILITY_WEAK_ARMOR}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, - - [SPECIES_DROWZEE] = - { - .baseHP = 60, - .baseAttack = 48, - .baseDefense = 45, - .baseSpeed = 42, - .baseSpAttack = 43, - .baseSpDefense = 90, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, - .catchRate = 190, - .expYield = 66, - .evYield_SpDefense = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_INSOMNIA, ABILITY_FOREWARN, ABILITY_INNER_FOCUS}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, - }, - - [SPECIES_HYPNO] = - { - .baseHP = 85, - .baseAttack = 73, - .baseDefense = 70, - .baseSpeed = 67, - .baseSpAttack = 73, - .baseSpDefense = 115, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, - .catchRate = 75, - .expYield = 169, - .evYield_SpDefense = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_INSOMNIA, ABILITY_FOREWARN, ABILITY_INNER_FOCUS}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, - }, - - [SPECIES_KRABBY] = - { - .baseHP = 30, - .baseAttack = 105, - .baseDefense = 90, - .baseSpeed = 50, - .baseSpAttack = 25, - .baseSpDefense = 25, - .types = { TYPE_WATER, TYPE_WATER }, - .catchRate = 225, - .expYield = 65, - .evYield_Attack = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, - .abilities = {ABILITY_HYPER_CUTTER, ABILITY_SHELL_ARMOR, ABILITY_SHEER_FORCE}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, - - [SPECIES_KINGLER] = - { - KINGLER_MISC_INFO, - }, - - [SPECIES_VOLTORB] = - { - .baseHP = 40, - .baseAttack = 30, - .baseDefense = 50, - .baseSpeed = 100, - .baseSpAttack = 55, - .baseSpDefense = 55, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, - .catchRate = 190, - .expYield = 66, - .evYield_Speed = 1, - .genderRatio = MON_GENDERLESS, - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_SOUNDPROOF, ABILITY_STATIC, ABILITY_AFTERMATH}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, - - [SPECIES_ELECTRODE] = - { - .baseHP = 60, - .baseAttack = 50, - .baseDefense = 70, - .baseSpAttack = 80, - .baseSpDefense = 80, - #if P_UPDATED_STATS >= GEN_7 - .baseSpeed = 150, - #else - .baseSpeed = 140, - #endif - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, - .catchRate = 60, - .expYield = 172, - .evYield_Speed = 2, - .genderRatio = MON_GENDERLESS, - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_SOUNDPROOF, ABILITY_STATIC, ABILITY_AFTERMATH}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, - - [SPECIES_EXEGGCUTE] = - { - .baseHP = 60, - .baseAttack = 40, - .baseDefense = 80, - .baseSpeed = 40, - .baseSpAttack = 60, - .baseSpDefense = 45, - .types = { TYPE_GRASS, TYPE_PSYCHIC }, - .catchRate = 90, - .expYield = 65, - .evYield_Defense = 1, - .itemRare = ITEM_PSYCHIC_SEED, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_HARVEST}, - .bodyColor = BODY_COLOR_PINK, - .noFlip = FALSE, - }, - - [SPECIES_EXEGGUTOR] = - { - .baseHP = 95, - .baseAttack = 95, - .baseDefense = 85, - .baseSpeed = 55, - .baseSpAttack = 125, - #if P_UPDATED_STATS >= GEN_7 - .baseSpDefense = 75, - #else - .baseSpDefense = 65, - #endif - .types = { TYPE_GRASS, TYPE_PSYCHIC}, - .catchRate = 45, - .expYield = 186, - .evYield_SpAttack = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_HARVEST}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, - }, - - [SPECIES_CUBONE] = - { - .baseHP = 50, - .baseAttack = 50, - .baseDefense = 95, - .baseSpeed = 35, - .baseSpAttack = 40, - .baseSpDefense = 50, - .types = { TYPE_GROUND, TYPE_GROUND }, - .catchRate = 190, - .expYield = 64, - .evYield_Defense = 1, - .itemRare = ITEM_THICK_CLUB, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, - .abilities = {ABILITY_ROCK_HEAD, ABILITY_LIGHTNING_ROD, ABILITY_BATTLE_ARMOR}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_MAROWAK] = - { - .baseHP = 60, - .baseAttack = 80, - .baseDefense = 110, - .baseSpeed = 45, - .baseSpAttack = 50, - .baseSpDefense = 80, - .types = { TYPE_GROUND, TYPE_GROUND }, - .catchRate = 75, - .expYield = 149, - .evYield_Defense = 2, - .itemRare = ITEM_THICK_CLUB, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, - .abilities = {ABILITY_ROCK_HEAD, ABILITY_LIGHTNING_ROD, ABILITY_BATTLE_ARMOR}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_HITMONLEE] = - { - .baseHP = 50, - .baseAttack = 120, - .baseDefense = 53, - .baseSpeed = 87, - .baseSpAttack = 35, - .baseSpDefense = 110, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, - .catchRate = 45, - .expYield = 159, - .evYield_Attack = 2, - .genderRatio = MON_MALE, - .eggCycles = 25, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_LIMBER, ABILITY_RECKLESS, ABILITY_UNBURDEN}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_HITMONCHAN] = - { - .baseHP = 50, - .baseAttack = 105, - .baseDefense = 79, - .baseSpeed = 76, - .baseSpAttack = 35, - .baseSpDefense = 110, - .types = { TYPE_FIGHTING, TYPE_FIGHTING }, - .catchRate = 45, - .expYield = 159, - .evYield_SpDefense = 2, - .genderRatio = MON_MALE, - .eggCycles = 25, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_KEEN_EYE, ABILITY_IRON_FIST, ABILITY_INNER_FOCUS}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_LICKITUNG] = - { - .baseHP = 90, - .baseAttack = 55, - .baseDefense = 75, - .baseSpeed = 30, - .baseSpAttack = 60, - .baseSpDefense = 75, - .types = { TYPE_NORMAL, TYPE_NORMAL }, - .catchRate = 45, - .expYield = 77, - .evYield_HP = 2, - .itemRare = ITEM_LAGGING_TAIL, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, - .abilities = {ABILITY_OWN_TEMPO, ABILITY_OBLIVIOUS, ABILITY_CLOUD_NINE}, - .bodyColor = BODY_COLOR_PINK, - .noFlip = FALSE, - }, - - [SPECIES_KOFFING] = - { - .baseHP = 40, - .baseAttack = 65, - .baseDefense = 95, - .baseSpeed = 35, - .baseSpAttack = 60, - .baseSpDefense = 45, - .types = { TYPE_POISON, TYPE_POISON }, - .catchRate = 190, - .expYield = 68, - .evYield_Defense = 1, - .itemRare = ITEM_SMOKE_BALL, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - #if P_UPDATED_ABILITIES >= GEN_8 - .abilities = {ABILITY_LEVITATE, ABILITY_NEUTRALIZING_GAS, ABILITY_STENCH}, - #else - .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, - #endif - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - }, - - [SPECIES_WEEZING] = - { - .baseHP = 65, - .baseAttack = 90, - .baseDefense = 120, - .baseSpeed = 60, - .baseSpAttack = 85, - .baseSpDefense = 70, - .types = { TYPE_POISON, TYPE_POISON }, - .catchRate = 60, - .expYield = 172, - .evYield_Defense = 2, - .itemRare = ITEM_SMOKE_BALL, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - #if P_UPDATED_ABILITIES >= GEN_8 - .abilities = {ABILITY_LEVITATE, ABILITY_NEUTRALIZING_GAS, ABILITY_STENCH}, - #else - .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, - #endif - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = TRUE, - }, - - [SPECIES_RHYHORN] = - { - .baseHP = 80, - .baseAttack = 85, - .baseDefense = 95, - .baseSpeed = 25, - .baseSpAttack = 30, - .baseSpDefense = 30, - .types = { TYPE_GROUND, TYPE_ROCK }, - .catchRate = 120, - .expYield = 69, - .evYield_Defense = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD}, - .abilities = {ABILITY_LIGHTNING_ROD, ABILITY_ROCK_HEAD, ABILITY_RECKLESS}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, - - [SPECIES_RHYDON] = - { - .baseHP = 105, - .baseAttack = 130, - .baseDefense = 120, - .baseSpeed = 40, - .baseSpAttack = 45, - .baseSpDefense = 45, - .types = { TYPE_GROUND, TYPE_ROCK }, - .catchRate = 60, - .expYield = 170, - .evYield_Attack = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD}, - .abilities = {ABILITY_LIGHTNING_ROD, ABILITY_ROCK_HEAD, ABILITY_RECKLESS}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, - - [SPECIES_CHANSEY] = - { - .baseHP = 250, - .baseAttack = 5, - .baseDefense = 5, - .baseSpeed = 50, - .baseSpAttack = 35, - .baseSpDefense = 105, - .types = { TYPE_NORMAL, TYPE_NORMAL }, - .catchRate = 30, - .expYield = 395, - .evYield_HP = 2, - .itemCommon = ITEM_LUCKY_PUNCH, - .genderRatio = MON_FEMALE, - .eggCycles = 40, - .friendship = 140, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_NATURAL_CURE, ABILITY_SERENE_GRACE, ABILITY_HEALER}, - .bodyColor = BODY_COLOR_PINK, - .noFlip = FALSE, - }, - - [SPECIES_TANGELA] = - { - .baseHP = 65, - .baseAttack = 55, - .baseDefense = 115, - .baseSpeed = 60, - .baseSpAttack = 100, - .baseSpDefense = 40, - .types = { TYPE_GRASS, TYPE_GRASS }, - .catchRate = 45, - .expYield = 87, - .evYield_Defense = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_CHLOROPHYLL, ABILITY_LEAF_GUARD, ABILITY_REGENERATOR}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_KANGASKHAN] = - { - .baseHP = 105, - .baseAttack = 95, - .baseDefense = 80, - .baseSpeed = 90, - .baseSpAttack = 40, - .baseSpDefense = 80, - .types = { TYPE_NORMAL, TYPE_NORMAL }, - .catchRate = 45, - .expYield = 172, - .evYield_HP = 2, - .genderRatio = MON_FEMALE, - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, - .abilities = {ABILITY_EARLY_BIRD, ABILITY_SCRAPPY, ABILITY_INNER_FOCUS}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_HORSEA] = - { - .baseHP = 30, - .baseAttack = 40, - .baseDefense = 70, - .baseSpeed = 60, - .baseSpAttack = 70, - .baseSpDefense = 25, - .types = { TYPE_WATER, TYPE_WATER }, - .catchRate = 225, - .expYield = 59, - .evYield_SpAttack = 1, - .itemRare = ITEM_DRAGON_SCALE, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_SWIFT_SWIM, ABILITY_SNIPER, ABILITY_DAMP}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_SEADRA] = - { - .baseHP = 55, - .baseAttack = 65, - .baseDefense = 95, - .baseSpeed = 85, - .baseSpAttack = 95, - .baseSpDefense = 45, - .types = { TYPE_WATER, TYPE_WATER }, - .catchRate = 75, - .expYield = 154, - .evYield_Defense = 1, - .evYield_SpAttack = 1, - .itemRare = ITEM_DRAGON_SCALE, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_POISON_POINT, ABILITY_SNIPER, ABILITY_DAMP}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_GOLDEEN] = - { - .baseHP = 45, - .baseAttack = 67, - .baseDefense = 60, - .baseSpeed = 63, - .baseSpAttack = 35, - .baseSpDefense = 50, - .types = { TYPE_WATER, TYPE_WATER }, - .catchRate = 225, - .expYield = 64, - .evYield_Attack = 1, - .itemRare = ITEM_MYSTIC_WATER, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, - .abilities = {ABILITY_SWIFT_SWIM, ABILITY_WATER_VEIL, ABILITY_LIGHTNING_ROD}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, - - [SPECIES_SEAKING] = - { - .baseHP = 80, - .baseAttack = 92, - .baseDefense = 65, - .baseSpeed = 68, - .baseSpAttack = 65, - .baseSpDefense = 80, - .types = { TYPE_WATER, TYPE_WATER }, - .catchRate = 60, - .expYield = 158, - .evYield_Attack = 2, - .itemRare = ITEM_MYSTIC_WATER, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, - .abilities = {ABILITY_SWIFT_SWIM, ABILITY_WATER_VEIL, ABILITY_LIGHTNING_ROD}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, - - [SPECIES_STARYU] = - { - .baseHP = 30, - .baseAttack = 45, - .baseDefense = 55, - .baseSpeed = 85, - .baseSpAttack = 70, - .baseSpDefense = 55, - .types = { TYPE_WATER, TYPE_WATER }, - .catchRate = 225, - .expYield = 68, - .evYield_Speed = 1, - .itemCommon = ITEM_STARDUST, - .itemRare = ITEM_STAR_PIECE, - .genderRatio = MON_GENDERLESS, - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, - .abilities = {ABILITY_ILLUMINATE, ABILITY_NATURAL_CURE, ABILITY_ANALYTIC}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = TRUE, - }, - - [SPECIES_STARMIE] = - { - .baseHP = 60, - .baseAttack = 75, - .baseDefense = 85, - .baseSpeed = 115, - .baseSpAttack = 100, - .baseSpDefense = 85, - .types = { TYPE_WATER, TYPE_PSYCHIC }, - .catchRate = 60, - .expYield = 182, - .evYield_Speed = 2, - .itemCommon = ITEM_STARDUST, - .itemRare = ITEM_STAR_PIECE, - .genderRatio = MON_GENDERLESS, - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, - .abilities = {ABILITY_ILLUMINATE, ABILITY_NATURAL_CURE, ABILITY_ANALYTIC}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - }, - - [SPECIES_MR_MIME] = - { - .baseHP = 40, - .baseAttack = 45, - .baseDefense = 65, - .baseSpeed = 90, - .baseSpAttack = 100, - .baseSpDefense = 120, - #if P_UPDATED_TYPES >= GEN_6 - .types = { TYPE_PSYCHIC, TYPE_FAIRY}, - #else - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - #endif - .catchRate = 45, - .expYield = 161, - .evYield_SpDefense = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_SOUNDPROOF, ABILITY_FILTER, ABILITY_TECHNICIAN}, - .bodyColor = BODY_COLOR_PINK, - .noFlip = FALSE, - }, - - [SPECIES_SCYTHER] = - { - .baseHP = 70, - .baseAttack = 110, - .baseDefense = 80, - .baseSpeed = 105, - .baseSpAttack = 55, - .baseSpDefense = 80, - .types = { TYPE_BUG, TYPE_FLYING }, - .catchRate = 45, - .expYield = 100, - .evYield_Attack = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SWARM, ABILITY_TECHNICIAN, ABILITY_STEADFAST}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, - - [SPECIES_JYNX] = - { - .baseHP = 65, - .baseAttack = 50, - .baseDefense = 35, - .baseSpeed = 95, - .baseSpAttack = 115, - .baseSpDefense = 95, - .types = { TYPE_ICE, TYPE_PSYCHIC }, - .catchRate = 45, - .expYield = 159, - .evYield_SpAttack = 2, - .genderRatio = MON_FEMALE, - .eggCycles = 25, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_OBLIVIOUS, ABILITY_FOREWARN, ABILITY_DRY_SKIN}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, - - [SPECIES_ELECTABUZZ] = - { - .baseHP = 65, - .baseAttack = 83, - .baseDefense = 57, - .baseSpeed = 105, - .baseSpAttack = 95, - .baseSpDefense = 85, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, - .catchRate = 45, - .expYield = 172, - .evYield_Speed = 2, - .itemRare = ITEM_ELECTIRIZER, - .genderRatio = PERCENT_FEMALE(25), - .eggCycles = 25, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_STATIC, ABILITY_NONE, ABILITY_VITAL_SPIRIT}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = TRUE, - }, - - [SPECIES_MAGMAR] = - { - .baseHP = 65, - .baseAttack = 95, - .baseDefense = 57, - .baseSpeed = 93, - .baseSpAttack = 100, - .baseSpDefense = 85, - .types = { TYPE_FIRE, TYPE_FIRE }, - .catchRate = 45, - .expYield = 173, - .evYield_SpAttack = 2, - .itemRare = ITEM_MAGMARIZER, - .genderRatio = PERCENT_FEMALE(25), - .eggCycles = 25, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_FLAME_BODY, ABILITY_NONE, ABILITY_VITAL_SPIRIT}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, - - [SPECIES_PINSIR] = - { - .baseHP = 65, - .baseAttack = 125, - .baseDefense = 100, - .baseSpeed = 85, - .baseSpAttack = 55, - .baseSpDefense = 70, - .types = { TYPE_BUG, TYPE_BUG }, - .catchRate = 45, - .expYield = 175, - .evYield_Attack = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_HYPER_CUTTER, ABILITY_MOLD_BREAKER, ABILITY_MOXIE}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_TAUROS] = - { - .baseHP = 75, - .baseAttack = 100, - .baseDefense = 95, - .baseSpeed = 110, - .baseSpAttack = 40, - .baseSpDefense = 70, - .types = { TYPE_NORMAL, TYPE_NORMAL }, - .catchRate = 45, - .expYield = 172, - .evYield_Attack = 1, - .evYield_Speed = 1, - .genderRatio = MON_MALE, - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_INTIMIDATE, ABILITY_ANGER_POINT, ABILITY_SHEER_FORCE}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_MAGIKARP] = - { - .baseHP = 20, - .baseAttack = 10, - .baseDefense = 55, - .baseSpeed = 80, - .baseSpAttack = 15, - .baseSpDefense = 20, - .types = { TYPE_WATER, TYPE_WATER }, - .catchRate = 255, - .expYield = 40, - .evYield_Speed = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 5, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_RATTLED}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, - - [SPECIES_GYARADOS] = - { - .baseHP = 95, - .baseAttack = 125, - .baseDefense = 79, - .baseSpeed = 81, - .baseSpAttack = 60, - .baseSpDefense = 100, - .types = { TYPE_WATER, TYPE_FLYING }, - .catchRate = 45, - .expYield = 189, - .evYield_Attack = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 5, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_INTIMIDATE, ABILITY_NONE, ABILITY_MOXIE}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_LAPRAS] = - { - LAPRAS_MISC_INFO, - }, - - [SPECIES_DITTO] = - { - .baseHP = 48, - .baseAttack = 48, - .baseDefense = 48, - .baseSpeed = 48, - .baseSpAttack = 48, - .baseSpDefense = 48, - .types = { TYPE_NORMAL, TYPE_NORMAL }, - .catchRate = 35, - .expYield = 101, - .evYield_HP = 1, - .itemCommon = ITEM_QUICK_POWDER, - .itemRare = ITEM_METAL_POWDER, - .genderRatio = MON_GENDERLESS, - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_DITTO, EGG_GROUP_DITTO}, - .abilities = {ABILITY_LIMBER, ABILITY_NONE, ABILITY_IMPOSTER}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - }, - - [SPECIES_EEVEE] = - { - EEVEE_MISC_INFO, - }, - - [SPECIES_VAPOREON] = - { - .baseHP = 130, - .baseAttack = 65, - .baseDefense = 60, - .baseSpeed = 65, - .baseSpAttack = 110, - .baseSpDefense = 95, - .types = { TYPE_WATER, TYPE_WATER }, - .catchRate = 45, - .expYield = 184, - .evYield_HP = 2, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 35, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_WATER_ABSORB, ABILITY_WATER_ABSORB, ABILITY_HYDRATION}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_JOLTEON] = - { - .baseHP = 65, - .baseAttack = 65, - .baseDefense = 60, - .baseSpeed = 130, - .baseSpAttack = 110, - .baseSpDefense = 95, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, - .catchRate = 45, - .expYield = 184, - .evYield_Speed = 2, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 35, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_VOLT_ABSORB, ABILITY_VOLT_ABSORB, ABILITY_QUICK_FEET}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, - }, - - [SPECIES_FLAREON] = - { - .baseHP = 65, - .baseAttack = 130, - .baseDefense = 60, - .baseSpeed = 65, - .baseSpAttack = 95, - .baseSpDefense = 110, - .types = { TYPE_FIRE, TYPE_FIRE }, - .catchRate = 45, - .expYield = 184, - .evYield_Attack = 2, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 35, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_FLASH_FIRE, ABILITY_FLASH_FIRE, ABILITY_GUTS}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, - - [SPECIES_PORYGON] = - { - .baseHP = 65, - .baseAttack = 60, - .baseDefense = 70, - .baseSpeed = 40, - .baseSpAttack = 85, - .baseSpDefense = 75, - .types = { TYPE_NORMAL, TYPE_NORMAL }, - .catchRate = 45, - .expYield = 79, - .evYield_SpAttack = 1, - .genderRatio = MON_GENDERLESS, - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_TRACE, ABILITY_DOWNLOAD, ABILITY_ANALYTIC}, - .bodyColor = BODY_COLOR_PINK, - .noFlip = FALSE, - }, - - [SPECIES_OMANYTE] = - { - .baseHP = 35, - .baseAttack = 40, - .baseDefense = 100, - .baseSpeed = 35, - .baseSpAttack = 90, - .baseSpDefense = 55, - .types = { TYPE_ROCK, TYPE_WATER }, - .catchRate = 45, - .expYield = 71, - .evYield_Defense = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 30, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3}, - .abilities = {ABILITY_SWIFT_SWIM, ABILITY_SHELL_ARMOR, ABILITY_WEAK_ARMOR}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_OMASTAR] = - { - .baseHP = 70, - .baseAttack = 60, - .baseDefense = 125, - .baseSpeed = 55, - .baseSpAttack = 115, - .baseSpDefense = 70, - .types = { TYPE_ROCK, TYPE_WATER }, - .catchRate = 45, - .expYield = 173, - .evYield_Defense = 2, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 30, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3}, - .abilities = {ABILITY_SWIFT_SWIM, ABILITY_SHELL_ARMOR, ABILITY_WEAK_ARMOR}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_KABUTO] = - { - .baseHP = 30, - .baseAttack = 80, - .baseDefense = 90, - .baseSpeed = 55, - .baseSpAttack = 55, - .baseSpDefense = 45, - .types = { TYPE_ROCK, TYPE_WATER }, - .catchRate = 45, - .expYield = 71, - .evYield_Defense = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 30, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3}, - .abilities = {ABILITY_SWIFT_SWIM, ABILITY_BATTLE_ARMOR, ABILITY_WEAK_ARMOR}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_KABUTOPS] = - { - .baseHP = 60, - .baseAttack = 115, - .baseDefense = 105, - .baseSpeed = 80, - .baseSpAttack = 65, - .baseSpDefense = 70, - .types = { TYPE_ROCK, TYPE_WATER }, - .catchRate = 45, - .expYield = 173, - .evYield_Attack = 2, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 30, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3}, - .abilities = {ABILITY_SWIFT_SWIM, ABILITY_BATTLE_ARMOR, ABILITY_WEAK_ARMOR}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_AERODACTYL] = - { - .baseHP = 80, - .baseAttack = 105, - .baseDefense = 65, - .baseSpeed = 130, - .baseSpAttack = 60, - .baseSpDefense = 75, - .types = { TYPE_ROCK, TYPE_FLYING }, - .catchRate = 45, - .expYield = 180, - .evYield_Speed = 2, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 35, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_ROCK_HEAD, ABILITY_PRESSURE, ABILITY_UNNERVE}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - }, - - [SPECIES_SNORLAX] = - { - SNORLAX_MISC_INFO, - }, - - [SPECIES_ARTICUNO] = - { - .baseHP = 90, - .baseAttack = 85, - .baseDefense = 100, - .baseSpeed = 85, - .baseSpAttack = 95, - .baseSpDefense = 125, - .types = { TYPE_ICE, TYPE_FLYING }, - .catchRate = 3, - .expYield = 261, - .evYield_SpDefense = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 80, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_SNOW_CLOAK}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_ZAPDOS] = - { - .baseHP = 90, - .baseAttack = 90, - .baseDefense = 85, - .baseSpeed = 100, - .baseSpAttack = 125, - .baseSpDefense = 90, - .types = { TYPE_ELECTRIC, TYPE_FLYING }, - .catchRate = 3, - .expYield = 261, - .evYield_SpAttack = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 80, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - #if P_UPDATED_ABILITIES >= GEN_6 - .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_STATIC}, - #else - .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_LIGHTNING_ROD}, - #endif - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_MOLTRES] = - { - .baseHP = 90, - .baseAttack = 100, - .baseDefense = 90, - .baseSpeed = 90, - .baseSpAttack = 125, - .baseSpDefense = 85, - .types = { TYPE_FIRE, TYPE_FLYING }, - .catchRate = 3, - .expYield = 261, - .evYield_SpAttack = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 80, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_FLAME_BODY}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_DRATINI] = - { - .baseHP = 41, - .baseAttack = 64, - .baseDefense = 45, - .baseSpeed = 50, - .baseSpAttack = 50, - .baseSpDefense = 50, - .types = { TYPE_DRAGON, TYPE_DRAGON }, - .catchRate = 45, - .expYield = 60, - .evYield_Attack = 1, - .itemRare = ITEM_DRAGON_SCALE, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 40, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_MARVEL_SCALE}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_DRAGONAIR] = - { - .baseHP = 61, - .baseAttack = 84, - .baseDefense = 65, - .baseSpeed = 70, - .baseSpAttack = 70, - .baseSpDefense = 70, - .types = { TYPE_DRAGON, TYPE_DRAGON }, - .catchRate = 45, - .expYield = 147, - .evYield_Attack = 2, - .itemRare = ITEM_DRAGON_SCALE, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 40, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_MARVEL_SCALE}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_DRAGONITE] = - { - .baseHP = 91, - .baseAttack = 134, - .baseDefense = 95, - .baseSpeed = 80, - .baseSpAttack = 100, - .baseSpDefense = 100, - .types = { TYPE_DRAGON, TYPE_FLYING }, - .catchRate = 45, - .expYield = 270, - .evYield_Attack = 3, - .itemRare = ITEM_DRAGON_SCALE, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 40, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_INNER_FOCUS, ABILITY_NONE, ABILITY_MULTISCALE}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_MEWTWO] = - { - .baseHP = 106, - .baseAttack = 110, - .baseDefense = 90, - .baseSpeed = 130, - .baseSpAttack = 154, - .baseSpDefense = 90, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, - .catchRate = 3, - .expYield = 306, - .evYield_SpAttack = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_UNNERVE}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_MEW] = + [SPECIES_CHARIZARD_MEGA_Y] = { - .baseHP = 100, - .baseAttack = 100, - .baseDefense = 100, + CHARIZARD_MISC_INFO, + .baseHP = 78, + .baseAttack = 104, + .baseDefense = 78, .baseSpeed = 100, - .baseSpAttack = 100, - .baseSpDefense = 100, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, - .catchRate = 45, - .expYield = 270, - .evYield_HP = 3, - .itemCommon = ITEM_LUM_BERRY, - .itemRare = ITEM_LUM_BERRY, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 100, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, - .abilities = {ABILITY_SYNCHRONIZE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_PINK, - .noFlip = FALSE, - .flags = SPECIES_FLAG_MYTHICAL, - }, - - [SPECIES_CHIKORITA] = - { - .baseHP = 45, - .baseAttack = 49, - .baseDefense = 65, - .baseSpeed = 45, - .baseSpAttack = 49, - .baseSpDefense = 65, - .types = { TYPE_GRASS, TYPE_GRASS }, - .catchRate = 45, - .expYield = 64, - .evYield_SpDefense = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS}, - .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_LEAF_GUARD}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, - - [SPECIES_BAYLEEF] = - { - .baseHP = 60, - .baseAttack = 62, - .baseDefense = 80, - .baseSpeed = 60, - .baseSpAttack = 63, - .baseSpDefense = 80, - .types = { TYPE_GRASS, TYPE_GRASS }, - .catchRate = 45, - .expYield = 142, - .evYield_Defense = 1, - .evYield_SpDefense = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS}, - .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_LEAF_GUARD}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, - - [SPECIES_MEGANIUM] = - { - .baseHP = 80, - .baseAttack = 82, - .baseDefense = 100, - .baseSpeed = 80, - .baseSpAttack = 83, - .baseSpDefense = 100, - .types = { TYPE_GRASS, TYPE_GRASS }, - .catchRate = 45, - .expYield = 236, - .evYield_Defense = 1, - .evYield_SpDefense = 2, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS}, - .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_LEAF_GUARD}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, - - [SPECIES_CYNDAQUIL] = - { - .baseHP = 39, - .baseAttack = 52, - .baseDefense = 43, - .baseSpeed = 65, - .baseSpAttack = 60, - .baseSpDefense = 50, - .types = { TYPE_FIRE, TYPE_FIRE }, - .catchRate = 45, - .expYield = 62, - .evYield_Speed = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_FLASH_FIRE}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, - }, - - [SPECIES_QUILAVA] = - { - .baseHP = 58, - .baseAttack = 64, - .baseDefense = 58, - .baseSpeed = 80, - .baseSpAttack = 80, - .baseSpDefense = 65, - .types = { TYPE_FIRE, TYPE_FIRE }, - .catchRate = 45, - .expYield = 142, - .evYield_Speed = 1, - .evYield_SpAttack = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_FLASH_FIRE}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, - }, - - [SPECIES_TYPHLOSION] = + .baseSpAttack = 159, + .baseSpDefense = 115, + .types = { TYPE_FIRE, TYPE_FLYING}, + .expYield = 285, + .abilities = {ABILITY_DROUGHT, ABILITY_DROUGHT, ABILITY_DROUGHT}, + .bodyColor = BODY_COLOR_RED, + .cryId = CRY_CHARIZARD_MEGA_Y, + .height = 17, + .weight = 1005, + .description = COMPOUND_STRING( + "Its bond with its Trainer is the source\n" + "of its power. It boasts speed and\n" + "maneuverability greater than that of a\n" + "jet fighter."), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 302, + .trainerOffset = 3, + FRONT_PIC(CharizardMegaY, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_CharizardMegaY, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(CharizardMegaY, 64, 64), + .backPicYOffset = 1, + .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, + PALETTE(CharizardMegaY), + ICON(CharizardMegaY, 0), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS + +#if P_GIGANTAMAX_FORMS + [SPECIES_CHARIZARD_GIGANTAMAX] = { + CHARIZARD_MISC_INFO, .baseHP = 78, .baseAttack = 84, .baseDefense = 78, .baseSpeed = 100, .baseSpAttack = 109, .baseSpDefense = 85, - .types = { TYPE_FIRE, TYPE_FIRE }, - .catchRate = 45, + .types = {TYPE_FIRE, TYPE_FLYING}, .expYield = 240, - .evYield_SpAttack = 3, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_FLASH_FIRE}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, - }, - - [SPECIES_TOTODILE] = + .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_SOLAR_POWER}, + .bodyColor = BODY_COLOR_RED, + .cryId = CRY_CHARIZARD, + .height = 280, + .weight = 0, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 302, + .trainerOffset = 3, + FRONT_PIC(CharizardGigantamax, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_CharizardGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(CharizardGigantamax, 64, 64), + .backPicYOffset = 1, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(CharizardGigantamax), + ICON(CharizardGigantamax, 0), + .isGigantamax = TRUE, + }, +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_CHARMANDER + +#if P_FAMILY_SQUIRTLE + [SPECIES_SQUIRTLE] = { - .baseHP = 50, - .baseAttack = 65, - .baseDefense = 64, + .baseHP = 44, + .baseAttack = 48, + .baseDefense = 65, .baseSpeed = 43, - .baseSpAttack = 44, - .baseSpDefense = 48, + .baseSpAttack = 50, + .baseSpDefense = 64, .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 45, .expYield = 63, - .evYield_Attack = 1, + .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_SHEER_FORCE}, + .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_RAIN_DISH}, .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Squirtle"), + .cryId = CRY_SQUIRTLE, + .natDexNum = NATIONAL_DEX_SQUIRTLE, + .categoryName = _("Tiny Turtle"), + .height = 5, + .weight = 90, + .description = COMPOUND_STRING( + "Its shell is not just for protection.\n" + "Its rounded shape and the grooves on its\n" + "surface minimize resistance in water,\n" + "enabling Squirtle to swim at high speeds."), + .pokemonScale = 412, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Squirtle, 40, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Squirtle, + .frontAnimId = ANIM_V_JUMPS_BIG, + BACK_PIC(Squirtle, 48, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Squirtle), + ICON(Squirtle, 0), + .footprint = gMonFootprint_Squirtle, + LEARNSETS(Squirtle), + .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_WARTORTLE}), }, - [SPECIES_CROCONAW] = + [SPECIES_WARTORTLE] = { - .baseHP = 65, - .baseAttack = 80, + .baseHP = 59, + .baseAttack = 63, .baseDefense = 80, .baseSpeed = 58, - .baseSpAttack = 59, - .baseSpDefense = 63, + .baseSpAttack = 65, + .baseSpDefense = 80, .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 45, .expYield = 142, - .evYield_Attack = 1, .evYield_Defense = 1, + .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_SHEER_FORCE}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = TRUE, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, + .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_RAIN_DISH}, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + .speciesName = _("Wartortle"), + .cryId = CRY_WARTORTLE, + .natDexNum = NATIONAL_DEX_WARTORTLE, + .categoryName = _("Turtle"), + .height = 10, + .weight = 225, + .description = COMPOUND_STRING( + "Its large tail is covered with rich, thick\n" + "fur that deepens in color with age.\n" + "The scratches on its shell are evidence\n" + "of this Pokémon's toughness in battle."), + .pokemonScale = 332, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Wartortle, 56, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Wartortle, + .frontAnimId = ANIM_SHRINK_GROW, + BACK_PIC(Wartortle, 64, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Wartortle), + ICON(Wartortle, 2), + .footprint = gMonFootprint_Wartortle, + LEARNSETS(Wartortle), + .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_BLASTOISE}), + }, + +#define BLASTOISE_MISC_INFO \ + .types = {TYPE_WATER, TYPE_WATER}, \ + .catchRate = 45, \ + .evYield_SpDefense = 3, \ + .genderRatio = PERCENT_FEMALE(12.5), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_SLOW, \ + .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, \ + .bodyColor = BODY_COLOR_BLUE, \ + .noFlip = FALSE, \ + .speciesName = _("Blastoise"), \ + .natDexNum = NATIONAL_DEX_BLASTOISE, \ + .categoryName = _("Shellfish"), \ + .footprint = gMonFootprint_Blastoise, \ + LEARNSETS(Blastoise), \ + .formSpeciesIdTable = sBlastoiseFormSpeciesIdTable, \ + .formChangeTable = sBlastoiseFormChangeTable + + [SPECIES_BLASTOISE] = + { + BLASTOISE_MISC_INFO, + .baseHP = 79, + .baseAttack = 83, + .baseDefense = 100, + .baseSpeed = 78, + .baseSpAttack = 85, + .baseSpDefense = 105, + .expYield = 239, + .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_RAIN_DISH}, + .cryId = CRY_BLASTOISE, + .height = 16, + .weight = 855, + .description = COMPOUND_STRING( + "The waterspouts that protrude from its\n" + "shell are highly accurate. Their bullets of\n" + "water can precisely nail tin cans from\n" + "a distance of over 160 feet."), + .pokemonScale = 256, + .pokemonOffset = -1, + .trainerScale = 293, + .trainerOffset = 2, + FRONT_PIC(Blastoise, 64, 64), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Blastoise, + .frontAnimId = ANIM_V_SHAKE_TWICE, + .frontAnimDelay = 20, + BACK_PIC(Blastoise, 64, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, + PALETTE(Blastoise), + ICON(Blastoise, 2), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_BLASTOISE_MEGA] = + { + BLASTOISE_MISC_INFO, + .baseHP = 79, + .baseAttack = 103, + .baseDefense = 120, + .baseSpeed = 78, + .baseSpAttack = 135, + .baseSpDefense = 115, + .expYield = 284, + .abilities = {ABILITY_MEGA_LAUNCHER, ABILITY_MEGA_LAUNCHER, ABILITY_MEGA_LAUNCHER}, + .cryId = CRY_BLASTOISE_MEGA, + .height = 16, + .weight = 1011, + .description = COMPOUND_STRING( + "The cannon on its back is as powerful\n" + "as a tank gun. Its tough legs and back\n" + "enable it to withstand the recoil from\n" + "firing the cannon."), + .pokemonScale = 256, + .pokemonOffset = -1, + .trainerScale = 293, + .trainerOffset = 2, + FRONT_PIC(BlastoiseMega, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_BlastoiseMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(BlastoiseMega, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, + PALETTE(BlastoiseMega), + ICON(BlastoiseMega, 2), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS + +#if P_GIGANTAMAX_FORMS + [SPECIES_BLASTOISE_GIGANTAMAX] = + { + BLASTOISE_MISC_INFO, + .baseHP = 79, + .baseAttack = 83, + .baseDefense = 100, + .baseSpeed = 78, + .baseSpAttack = 85, + .baseSpDefense = 105, + .expYield = 239, + .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_RAIN_DISH}, + .cryId = CRY_BLASTOISE, + .height = 250, + .weight = 0, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 256, + .pokemonOffset = -1, + .trainerScale = 293, + .trainerOffset = 2, + FRONT_PIC(BlastoiseGigantamax, 64, 64), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_BlastoiseGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(BlastoiseGigantamax, 64, 64), + .backPicYOffset = 5, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(BlastoiseGigantamax), + ICON(BlastoiseGigantamax, 0), + .isGigantamax = TRUE, + }, +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_SQUIRTLE + +#if P_FAMILY_CATERPIE + [SPECIES_CATERPIE] = + { + .baseHP = 45, + .baseAttack = 30, + .baseDefense = 35, + .baseSpeed = 45, + .baseSpAttack = 20, + .baseSpDefense = 20, + .types = { TYPE_BUG, TYPE_BUG }, + .catchRate = 255, + .expYield = 39, + .evYield_HP = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_SHIELD_DUST, ABILITY_NONE, ABILITY_RUN_AWAY}, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + .speciesName = _("Caterpie"), + .cryId = CRY_CATERPIE, + .natDexNum = NATIONAL_DEX_CATERPIE, + .categoryName = _("Worm"), + .height = 3, + .weight = 29, + .description = COMPOUND_STRING( + "Its voracious appetite compels it to\n" + "devour leaves bigger than itself without\n" + "hesitation. It releases a terribly strong\n" + "odor from its antennae."), + .pokemonScale = 549, + .pokemonOffset = 22, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Caterpie, 40, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Caterpie, + .frontAnimId = ANIM_SWING_CONCAVE, + BACK_PIC(Caterpie, 48, 40), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Caterpie), + ICON(Caterpie, 1), + .footprint = gMonFootprint_Caterpie, + LEARNSETS(Caterpie), + .evolutions = EVOLUTION({EVO_LEVEL, 7, SPECIES_METAPOD}), }, - [SPECIES_FERALIGATR] = + [SPECIES_METAPOD] = { - .baseHP = 85, - .baseAttack = 105, - .baseDefense = 100, - .baseSpeed = 78, - .baseSpAttack = 79, - .baseSpDefense = 83, - .types = { TYPE_WATER, TYPE_WATER }, - .catchRate = 45, - .expYield = 239, - .evYield_Attack = 2, - .evYield_Defense = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, + .baseHP = 50, + .baseAttack = 20, + .baseDefense = 55, + .baseSpeed = 30, + .baseSpAttack = 25, + .baseSpDefense = 25, + .types = { TYPE_BUG, TYPE_BUG }, + .catchRate = 120, + .expYield = 72, + .evYield_Defense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_SHEER_FORCE}, - .bodyColor = BODY_COLOR_BLUE, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .abilities = {ABILITY_SHED_SKIN, ABILITY_NONE}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, + .speciesName = _("Metapod"), + .cryId = CRY_METAPOD, + .natDexNum = NATIONAL_DEX_METAPOD, + .categoryName = _("Cocoon"), + .height = 7, + .weight = 99, + .description = COMPOUND_STRING( + "Its shell is as hard as an iron slab.\n" + "A Metapod does not move very much\n" + "because it is preparing its soft innards\n" + "for evolution inside the shell."), + .pokemonScale = 350, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Metapod, 40, 40), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Metapod, + .frontAnimId = ANIM_SWING_CONCAVE, + BACK_PIC(Metapod, 40, 48), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Metapod), + ICON(Metapod, 1), + .footprint = gMonFootprint_Metapod, + LEARNSETS(Metapod), + .evolutions = EVOLUTION({EVO_LEVEL, 10, SPECIES_BUTTERFREE}), }, - [SPECIES_SENTRET] = +#define BUTTERFREE_MISC_INFO \ + .baseHP = 60, \ + .baseAttack = 45, \ + .baseDefense = 50, \ + .baseSpeed = 70, \ + .baseSpDefense = 80, \ + .baseSpAttack = P_UPDATED_STATS >= GEN_6 ? 90 : 80, \ + .types = {TYPE_BUG, TYPE_FLYING}, \ + .catchRate = 45, \ + .expYield = 178, \ + .evYield_SpAttack = 2, \ + .evYield_SpDefense = 1, \ + .itemRare = ITEM_SILVER_POWDER, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 15, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = {EGG_GROUP_BUG, EGG_GROUP_BUG}, \ + .abilities = {ABILITY_COMPOUND_EYES, ABILITY_NONE, ABILITY_TINTED_LENS},\ + .bodyColor = BODY_COLOR_WHITE, \ + .noFlip = FALSE, \ + .speciesName = _("Butterfree"), \ + .cryId = CRY_BUTTERFREE, \ + .natDexNum = NATIONAL_DEX_BUTTERFREE, \ + .categoryName = _("Butterfly"), \ + .footprint = gMonFootprint_Butterfree, \ + LEARNSETS(Butterfree), \ + .formSpeciesIdTable = sButterfreeFormSpeciesIdTable, \ + .formChangeTable = sButterfreeFormChangeTable + + [SPECIES_BUTTERFREE] = { - .baseHP = 35, - .baseAttack = 46, - .baseDefense = 34, - .baseSpeed = 20, - .baseSpAttack = 35, - .baseSpDefense = 45, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + BUTTERFREE_MISC_INFO, + .height = 11, + .weight = 320, + .description = COMPOUND_STRING( + "It has a superior ability to search for\n" + "delicious honey from flowers. It can seek,\n" + "extract, and carry honey from flowers\n" + "blooming over six miles away."), + .pokemonScale = 312, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Butterfree, 64, 56), + FRONT_PIC_FEMALE(Butterfree, 64, 56), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Butterfree, + .frontAnimId = ANIM_H_SLIDE_WOBBLE, + .enemyMonElevation = 10, + BACK_PIC(Butterfree, 64, 56), + BACK_PIC_FEMALE(Butterfree, 64, 56), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Butterfree), + ICON(Butterfree, 0), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_BUTTERFREE_GIGANTAMAX] = + { + BUTTERFREE_MISC_INFO, + .height = 170, + .weight = 0, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 312, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(ButterfreeGigantamax, 64, 64), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_ButterfreeGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 10, + BACK_PIC(ButterfreeGigantamax, 64, 64), + .backPicYOffset = 3, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(ButterfreeGigantamax), + ICON(ButterfreeGigantamax, 0), + .isGigantamax = TRUE, + }, +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_CATERPIE + +#if P_FAMILY_WEEDLE + [SPECIES_WEEDLE] = + { + .baseHP = 40, + .baseAttack = 35, + .baseDefense = 30, + .baseSpeed = 50, + .baseSpAttack = 20, + .baseSpDefense = 20, + .types = { TYPE_BUG, TYPE_POISON }, .catchRate = 255, - .expYield = 43, - .evYield_Attack = 1, + .expYield = 39, + .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_RUN_AWAY, ABILITY_KEEN_EYE, ABILITY_FRISK}, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_SHIELD_DUST, ABILITY_NONE, ABILITY_RUN_AWAY}, .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .speciesName = _("Weedle"), + .cryId = CRY_WEEDLE, + .natDexNum = NATIONAL_DEX_WEEDLE, + .categoryName = _("Hairy Bug"), + .height = 3, + .weight = 32, + .description = COMPOUND_STRING( + "A Weedle has an extremely acute sense\n" + "of smell. It distinguishes its favorite\n" + "kinds of leaves from those it dislikes by\n" + "sniffing with its big red nose."), + .pokemonScale = 455, + .pokemonOffset = 22, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Weedle, 40, 40), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_Weedle, + .frontAnimId = ANIM_H_SLIDE_SLOW, + .frontAnimDelay = 10, + BACK_PIC(Weedle, 56, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Weedle), + ICON(Weedle, 2), + .footprint = gMonFootprint_Weedle, + LEARNSETS(Weedle), + .evolutions = EVOLUTION({EVO_LEVEL, 7, SPECIES_KAKUNA}), }, - [SPECIES_FURRET] = + [SPECIES_KAKUNA] = { - .baseHP = 85, - .baseAttack = 76, - .baseDefense = 64, - .baseSpeed = 90, - .baseSpAttack = 45, - .baseSpDefense = 55, - .types = { TYPE_NORMAL, TYPE_NORMAL }, - .catchRate = 90, - .expYield = 145, - .evYield_Speed = 2, + .baseHP = 45, + .baseAttack = 25, + .baseDefense = 50, + .baseSpeed = 35, + .baseSpAttack = 25, + .baseSpDefense = 25, + .types = { TYPE_BUG, TYPE_POISON }, + .catchRate = 120, + .expYield = 72, + .evYield_Defense = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_RUN_AWAY, ABILITY_KEEN_EYE, ABILITY_FRISK}, - .bodyColor = BODY_COLOR_BROWN, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .abilities = {ABILITY_SHED_SKIN, ABILITY_NONE}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, - }, + .speciesName = _("Kakuna"), + .cryId = CRY_KAKUNA, + .natDexNum = NATIONAL_DEX_KAKUNA, + .categoryName = _("Cocoon"), + .height = 6, + .weight = 100, + .description = COMPOUND_STRING( + "It remains virtually immobile while it\n" + "clings to a tree. However, on the inside,\n" + "it busily prepares for evolution. This is\n" + "evident from how hot its shell becomes."), + .pokemonScale = 424, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Kakuna, 24, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Kakuna, + .frontAnimId = ANIM_GLOW_ORANGE, + .frontAnimDelay = 20, + BACK_PIC(Kakuna, 32, 40), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Kakuna), + ICON(Kakuna, 2), + .footprint = gMonFootprint_Kakuna, + LEARNSETS(Kakuna), + .evolutions = EVOLUTION({EVO_LEVEL, 10, SPECIES_BEEDRILL}), + }, + +#define BEEDRILL_ATTACK (P_UPDATED_STATS >= GEN_6 ? 90 : 80) + +#define BEEDRILL_MISC_INFO \ + .types = { TYPE_BUG, TYPE_POISON}, \ + .catchRate = 45, \ + .evYield_Attack = 2, \ + .evYield_SpDefense = 1, \ + .itemRare = ITEM_POISON_BARB, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 15, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, \ + .bodyColor = BODY_COLOR_YELLOW, \ + .noFlip = FALSE, \ + .speciesName = _("Beedrill"), \ + .natDexNum = NATIONAL_DEX_BEEDRILL, \ + .categoryName = _("Poison Bee"), \ + .footprint = gMonFootprint_Beedrill, \ + LEARNSETS(Beedrill), \ + .formSpeciesIdTable = sBeedrillFormSpeciesIdTable, \ + .formChangeTable = sBeedrillFormChangeTable - [SPECIES_HOOTHOOT] = + [SPECIES_BEEDRILL] = { - .baseHP = 60, - .baseAttack = 30, - .baseDefense = 30, - .baseSpeed = 50, - .baseSpAttack = 36, - .baseSpDefense = 56, + BEEDRILL_MISC_INFO, + .baseHP = 65, + .baseDefense = 40, + .baseSpeed = 75, + .baseSpAttack = 45, + .baseSpDefense = 80, + .baseAttack = BEEDRILL_ATTACK, + .expYield = 178, + .abilities = {ABILITY_SWARM, ABILITY_NONE, ABILITY_SNIPER}, + .cryId = CRY_BEEDRILL, + .height = 10, + .weight = 295, + .description = COMPOUND_STRING( + "A Beedrill is extremely territorial.\n" + "For safety reasons, no one should ever\n" + "approach its nest. If angered, they will\n" + "attack in a swarm."), + .pokemonScale = 366, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Beedrill, 64, 56), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Beedrill, + .frontAnimId = ANIM_ZIGZAG_SLOW, + .enemyMonElevation = 9, + BACK_PIC(Beedrill, 64, 56), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_H_VIBRATE, + PALETTE(Beedrill), + ICON(Beedrill, 2), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_BEEDRILL_MEGA] = + { + BEEDRILL_MISC_INFO, + .baseHP = 65, + .baseAttack = BEEDRILL_ATTACK + 60, + .baseDefense = 40, + .baseSpeed = 145, + .baseSpAttack = 15, + .baseSpDefense = 80, + .expYield = 223, + .abilities = {ABILITY_ADAPTABILITY, ABILITY_ADAPTABILITY, ABILITY_ADAPTABILITY}, + .cryId = CRY_BEEDRILL_MEGA, + .height = 14, + .weight = 405, + .description = COMPOUND_STRING( + "Its legs have become poison stingers.\n" + "It stabs its prey repeatedly with the\n" + "stingers on its limbs, dealing the final\n" + "blow with the stinger on its rear."), + .pokemonScale = 366, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(BeedrillMega, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_BeedrillMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 5, + BACK_PIC(BeedrillMega, 64, 64), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_H_VIBRATE, + PALETTE(BeedrillMega), + ICON(BeedrillMega, 2), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_WEEDLE + +#if P_FAMILY_PIDGEY + [SPECIES_PIDGEY] = + { + .baseHP = 40, + .baseAttack = 45, + .baseDefense = 40, + .baseSpeed = 56, + .baseSpAttack = 35, + .baseSpDefense = 35, .types = { TYPE_NORMAL, TYPE_FLYING }, .catchRate = 255, - .expYield = 52, - .evYield_HP = 1, + .expYield = 50, + .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, + .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_INSOMNIA, ABILITY_KEEN_EYE, ABILITY_TINTED_LENS}, + .abilities = {ABILITY_KEEN_EYE, ABILITY_TANGLED_FEET, ABILITY_BIG_PECKS}, .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .speciesName = _("Pidgey"), + .cryId = CRY_PIDGEY, + .natDexNum = NATIONAL_DEX_PIDGEY, + .categoryName = _("Tiny Bird"), + .height = 3, + .weight = 18, + .description = COMPOUND_STRING( + "It has an extremely sharp sense of\n" + "direction. It can unerringly return home to\n" + "its nest, however far it may be removed\n" + "from its familiar surroundings."), + .pokemonScale = 508, + .pokemonOffset = -3, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Pidgey, 40, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Pidgey, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Pidgey, 56, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(Pidgey), + ICON(Pidgey, 0), + .footprint = gMonFootprint_Pidgey, + LEARNSETS(Pidgey), + .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_PIDGEOTTO}), }, - [SPECIES_NOCTOWL] = + [SPECIES_PIDGEOTTO] = { - .baseHP = 100, - .baseAttack = 50, - .baseDefense = 50, - .baseSpeed = 70, - .baseSpDefense = 96, - #if P_UPDATED_STATS >= GEN_7 - .baseSpAttack = 86, - #else - .baseSpAttack = 76, - #endif - .types = { TYPE_NORMAL, TYPE_FLYING}, - .catchRate = 90, - .expYield = 158, - .evYield_HP = 2, + .baseHP = 63, + .baseAttack = 60, + .baseDefense = 55, + .baseSpeed = 71, + .baseSpAttack = 50, + .baseSpDefense = 50, + .types = { TYPE_NORMAL, TYPE_FLYING }, + .catchRate = 120, + .expYield = 122, + .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, + .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_INSOMNIA, ABILITY_KEEN_EYE, ABILITY_TINTED_LENS}, + .abilities = {ABILITY_KEEN_EYE, ABILITY_TANGLED_FEET, ABILITY_BIG_PECKS}, .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .speciesName = _("Pidgeotto"), + .cryId = CRY_PIDGEOTTO, + .natDexNum = NATIONAL_DEX_PIDGEOTTO, + .categoryName = _("Bird"), + .height = 11, + .weight = 300, + .description = COMPOUND_STRING( + "This Pokémon flies around, patrolling its\n" + "large territory. If its living space is\n" + "violated, it shows no mercy in thoroughly\n" + "punishing the foe with its sharp claws."), + .pokemonScale = 331, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Pidgeotto, 56, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Pidgeotto, + .frontAnimId = ANIM_V_STRETCH, + .frontAnimDelay = 25, + BACK_PIC(Pidgeotto, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Pidgeotto), + ICON(Pidgeotto, 0), + .footprint = gMonFootprint_Pidgeotto, + LEARNSETS(Pidgeotto), + .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_PIDGEOT}), + }, + +#define PIDGEOT_SPEED (P_UPDATED_STATS >= GEN_6 ? 101 : 91) + +#define PIDGEOT_MISC_INFO \ + .types = { TYPE_NORMAL, TYPE_FLYING}, \ + .catchRate = 45, \ + .evYield_Speed = 3, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 15, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_SLOW, \ + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, \ + .bodyColor = BODY_COLOR_BROWN, \ + .noFlip = FALSE, \ + .speciesName = _("Pidgeot"), \ + .natDexNum = NATIONAL_DEX_PIDGEOT, \ + .categoryName = _("Bird"), \ + .footprint = gMonFootprint_Pidgeot, \ + LEARNSETS(Pidgeot), \ + .formSpeciesIdTable = sPidgeotFormSpeciesIdTable, \ + .formChangeTable = sPidgeotFormChangeTable + + [SPECIES_PIDGEOT] = + { + PIDGEOT_MISC_INFO, + .baseHP = 83, + .baseAttack = 80, + .baseDefense = 75, + .baseSpAttack = 70, + .baseSpDefense = 70, + .baseSpeed = PIDGEOT_SPEED, + .expYield = 216, + .abilities = {ABILITY_KEEN_EYE, ABILITY_TANGLED_FEET, ABILITY_BIG_PECKS}, + .cryId = CRY_PIDGEOT, + .height = 15, + .weight = 395, + .description = COMPOUND_STRING( + "This Pokémon has gorgeous, glossy\n" + "feathers. Many Trainers are so captivated\n" + "by the beautiful feathers on its head that\n" + "they choose Pidgeot as their Pokémon."), + .pokemonScale = 269, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Pidgeot, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Pidgeot, + .frontAnimId = ANIM_FRONT_FLIP, + .enemyMonElevation = 5, + BACK_PIC(Pidgeot, 64, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(Pidgeot), + ICON(Pidgeot, 0), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_PIDGEOT_MEGA] = + { + PIDGEOT_MISC_INFO, + .baseHP = 83, + .baseAttack = 80, + .baseDefense = 80, + .baseSpeed = PIDGEOT_SPEED + 20, + .baseSpAttack = 135, + .baseSpDefense = 80, + .expYield = 261, + .abilities = {ABILITY_NO_GUARD, ABILITY_NO_GUARD, ABILITY_NO_GUARD}, + .cryId = CRY_PIDGEOT_MEGA, + .height = 22, + .weight = 505, + .description = COMPOUND_STRING( + "With its muscular strength now greatly\n" + "increased, it can fly continuously\n" + "for two weeks without resting."), + .pokemonScale = 269, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(PidgeotMega, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_PidgeotMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 8, + BACK_PIC(PidgeotMega, 64, 64), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(PidgeotMega), + ICON(PidgeotMega, 0), + .isMegaEvolution = TRUE, }, +#endif +#endif //P_FAMILY_PIDGEY + +#if P_FAMILY_RATTATA +#define RATTATA_FAMILY_MISC_INFO \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 15, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, \ + .noFlip = FALSE - [SPECIES_LEDYBA] = +#define RATTATA_MISC_INFO \ + .baseHP = 30, \ + .baseAttack = 56, \ + .baseDefense = 35, \ + .baseSpeed = 72, \ + .baseSpAttack = 25, \ + .baseSpDefense = 35, \ + .catchRate = 255, \ + .expYield = 51, \ + .evYield_Speed = 1, \ + .speciesName = _("Rattata"), \ + .cryId = CRY_RATTATA, \ + .natDexNum = NATIONAL_DEX_RATTATA, \ + .categoryName = _("Mouse"), \ + .footprint = gMonFootprint_Rattata, \ + .formSpeciesIdTable = sRattataFormSpeciesIdTable + +#define RATICATE_MISC_INFO \ + .catchRate = 127, \ + .expYield = 145, \ + .evYield_Speed = 2, \ + .speciesName = _("Raticate"), \ + .cryId = CRY_RATICATE, \ + .natDexNum = NATIONAL_DEX_RATICATE, \ + .categoryName = _("Mouse"), \ + .height = 7, \ + .footprint = gMonFootprint_Raticate,\ + .formSpeciesIdTable = sRaticateFormSpeciesIdTable + + [SPECIES_RATTATA] = + { + RATTATA_FAMILY_MISC_INFO, + RATTATA_MISC_INFO, + .types = { TYPE_NORMAL, TYPE_NORMAL }, + .abilities = {ABILITY_RUN_AWAY, ABILITY_GUTS, ABILITY_HUSTLE}, + .bodyColor = BODY_COLOR_PURPLE, + .height = 3, + .weight = 35, + .description = COMPOUND_STRING( + "A Rattata is cautious in the extreme.\n" + "Even while it is asleep, it constantly\n" + "moves its ears and listens for danger.\n" + "It will make its nest anywhere."), + .pokemonScale = 481, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Rattata, 40, 40), + FRONT_PIC_FEMALE(Rattata, 40, 40), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_Rattata, + .frontAnimId = ANIM_H_JUMPS, + BACK_PIC(Rattata, 64, 56), + BACK_PIC_FEMALE(Rattata, 64, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, + PALETTE(Rattata), + ICON(Rattata, 2), + LEARNSETS(Rattata), + .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_RATICATE}), + }, + + [SPECIES_RATICATE] = + { + RATTATA_FAMILY_MISC_INFO, + RATICATE_MISC_INFO, + .baseHP = 55, + .baseAttack = 81, + .baseDefense = 60, + .baseSpeed = 97, + .baseSpAttack = 50, + .baseSpDefense = 70, + .types = { TYPE_NORMAL, TYPE_NORMAL }, + .abilities = {ABILITY_RUN_AWAY, ABILITY_GUTS, ABILITY_HUSTLE}, + .bodyColor = BODY_COLOR_BROWN, + .weight = 185, + .description = COMPOUND_STRING( + "A Raticate's sturdy fangs grow steadily.\n" + "To keep them ground down, it gnaws on\n" + "rocks and logs. It may even chew on the\n" + "walls of houses."), + .pokemonScale = 459, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Raticate, 64, 56), + FRONT_PIC_FEMALE(Raticate, 64, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Raticate, + .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL, + BACK_PIC(Raticate, 64, 48), + BACK_PIC_FEMALE(Raticate, 64, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, + PALETTE(Raticate), + ICON(Raticate, 2), + LEARNSETS(Raticate), + }, + +#if P_ALOLAN_FORMS + [SPECIES_RATTATA_ALOLAN] = + { + RATTATA_FAMILY_MISC_INFO, + RATTATA_MISC_INFO, + .types = { TYPE_DARK, TYPE_NORMAL}, + .itemRare = ITEM_PECHA_BERRY, + .abilities = {ABILITY_GLUTTONY, ABILITY_HUSTLE, ABILITY_THICK_FAT}, + .bodyColor = BODY_COLOR_BLACK, + .height = 3, + .weight = 38, + .description = COMPOUND_STRING( + "With its incisors, it gnaws through doors\n" + "and infiltrates people's homes.\n" + "Then, with a twitch of its whiskers,\n" + "it steals whatever food it finds."), + .pokemonScale = 481, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(RattataAlolan, 40, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_RattataAlolan, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(RattataAlolan, 64, 56), + .backPicYOffset = 7, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(RattataAlolan), + ICON(RattataAlolan, 2), + LEARNSETS(RattataAlolan), + .isAlolanForm = TRUE, + .evolutions = EVOLUTION({EVO_LEVEL_NIGHT, 20, SPECIES_RATICATE_ALOLAN}), + }, + + [SPECIES_RATICATE_ALOLAN] = + { + RATTATA_FAMILY_MISC_INFO, + RATICATE_MISC_INFO, + .baseHP = 75, + .baseAttack = 71, + .baseDefense = 70, + .baseSpeed = 77, + .baseSpAttack = 40, + .baseSpDefense = 80, + .types = { TYPE_DARK, TYPE_NORMAL}, + .itemRare = ITEM_PECHA_BERRY, + .abilities = {ABILITY_GLUTTONY, ABILITY_HUSTLE, ABILITY_THICK_FAT}, + .bodyColor = BODY_COLOR_BLACK, + .weight = 255, + .description = COMPOUND_STRING( + "It forms a group of Rattata, which it \n" + "assumes command of. Each group\n" + "has its own territory, and disputes\n" + "over food happen often."), + .pokemonScale = 459, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(RaticateAlolan, 56, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_RaticateAlolan, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(RaticateAlolan, 64, 48), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(RaticateAlolan), + ICON(RaticateAlolan, 2), + LEARNSETS(RaticateAlolan), + .isAlolanForm = TRUE, + }, +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_RATTATA + +#if P_FAMILY_SPEAROW + [SPECIES_SPEAROW] = { .baseHP = 40, - .baseAttack = 20, + .baseAttack = 60, .baseDefense = 30, - .baseSpeed = 55, - .baseSpAttack = 40, - .baseSpDefense = 80, - .types = { TYPE_BUG, TYPE_FLYING }, + .baseSpeed = 70, + .baseSpAttack = 31, + .baseSpDefense = 31, + .types = { TYPE_NORMAL, TYPE_FLYING }, .catchRate = 255, - .expYield = 53, - .evYield_SpDefense = 1, + .expYield = 52, + .evYield_Speed = 1, + .itemRare = ITEM_SHARP_BEAK, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SWARM, ABILITY_EARLY_BIRD, ABILITY_RATTLED}, - .bodyColor = BODY_COLOR_RED, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + .abilities = {ABILITY_KEEN_EYE, ABILITY_NONE, ABILITY_SNIPER}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .speciesName = _("Spearow"), + .cryId = CRY_SPEAROW, + .natDexNum = NATIONAL_DEX_SPEAROW, + .categoryName = _("Tiny Bird"), + .height = 3, + .weight = 20, + .description = COMPOUND_STRING( + "Its loud cry can be heard over half a mile\n" + "away. If its high, keening cry is heard\n" + "echoing all around, it is a sign that they\n" + "are warning each other of danger."), + .pokemonScale = 571, + .pokemonOffset = 22, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Spearow, 40, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Spearow, + .frontAnimId = ANIM_V_JUMPS_SMALL, + BACK_PIC(Spearow, 56, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(Spearow), + ICON(Spearow, 0), + .footprint = gMonFootprint_Spearow, + LEARNSETS(Spearow), + .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_FEAROW}), }, - [SPECIES_LEDIAN] = + [SPECIES_FEAROW] = { - .baseHP = 55, - .baseAttack = 35, - .baseDefense = 50, - .baseSpeed = 85, - .baseSpAttack = 55, - .baseSpDefense = 110, - .types = { TYPE_BUG, TYPE_FLYING }, + .baseHP = 65, + .baseAttack = 90, + .baseDefense = 65, + .baseSpeed = 100, + .baseSpAttack = 61, + .baseSpDefense = 61, + .types = { TYPE_NORMAL, TYPE_FLYING }, .catchRate = 90, - .expYield = 137, - .evYield_SpDefense = 2, + .expYield = 155, + .evYield_Speed = 2, + .itemRare = ITEM_SHARP_BEAK, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SWARM, ABILITY_EARLY_BIRD, ABILITY_IRON_FIST}, - .bodyColor = BODY_COLOR_RED, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + .abilities = {ABILITY_KEEN_EYE, ABILITY_NONE, ABILITY_SNIPER}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - }, - - [SPECIES_SPINARAK] = + .speciesName = _("Fearow"), + .cryId = CRY_FEAROW, + .natDexNum = NATIONAL_DEX_FEAROW, + .categoryName = _("Beak"), + .height = 12, + .weight = 380, + .description = COMPOUND_STRING( + "Its long neck and elongated beak are\n" + "ideal for catching prey in soil or water.\n" + "It deftly moves this extended and skinny\n" + "beak to pluck prey."), + .pokemonScale = 278, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Fearow, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Fearow, + .frontAnimId = ANIM_FIGURE_8, + .frontAnimDelay = 2, + .enemyMonElevation = 6, + BACK_PIC(Fearow, 64, 56), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Fearow), + ICON(Fearow, 0), + .footprint = gMonFootprint_Fearow, + LEARNSETS(Fearow), + }, +#endif //P_FAMILY_SPEAROW + +#if P_FAMILY_EKANS + [SPECIES_EKANS] = { - .baseHP = 40, + .baseHP = 35, .baseAttack = 60, - .baseDefense = 40, - .baseSpeed = 30, + .baseDefense = 44, + .baseSpeed = 55, .baseSpAttack = 40, - .baseSpDefense = 40, - .types = { TYPE_BUG, TYPE_POISON }, + .baseSpDefense = 54, + .types = { TYPE_POISON, TYPE_POISON }, .catchRate = 255, - .expYield = 50, + .expYield = 58, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SWARM, ABILITY_INSOMNIA, ABILITY_SNIPER}, - .bodyColor = BODY_COLOR_GREEN, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_INTIMIDATE, ABILITY_SHED_SKIN, ABILITY_UNNERVE}, + .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, + .speciesName = _("Ekans"), + .cryId = CRY_EKANS, + .natDexNum = NATIONAL_DEX_EKANS, + .categoryName = _("Snake"), + .height = 20, + .weight = 69, + .description = COMPOUND_STRING( + "An Ekans curls itself up in a spiral while\n" + "it rests. This position allows it to quickly\n" + "respond to an enemy from any direction\n" + "with a threat from its upraised head."), + .pokemonScale = 298, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Ekans, 48, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Ekans, + .frontAnimId = ANIM_V_STRETCH, + .frontAnimDelay = 30, + BACK_PIC(Ekans, 56, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(Ekans), + ICON(Ekans, 2), + .footprint = gMonFootprint_Ekans, + LEARNSETS(Ekans), + .evolutions = EVOLUTION({EVO_LEVEL, 22, SPECIES_ARBOK}), }, - [SPECIES_ARIADOS] = + [SPECIES_ARBOK] = { - .baseHP = 70, - .baseAttack = 90, - .baseDefense = 70, - .baseSpeed = 40, - .baseSpAttack = 60, - #if P_UPDATED_STATS >= GEN_7 - .baseSpDefense = 70, - #else - .baseSpDefense = 60, - #endif - .types = { TYPE_BUG, TYPE_POISON}, + .baseHP = 60, + .baseAttack = P_UPDATED_STATS >= GEN_7 ? 95 : 85, + .baseDefense = 69, + .baseSpeed = 80, + .baseSpAttack = 65, + .baseSpDefense = 79, + .types = { TYPE_POISON, TYPE_POISON}, .catchRate = 90, - .expYield = 140, + .expYield = 157, .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SWARM, ABILITY_INSOMNIA, ABILITY_SNIPER}, - .bodyColor = BODY_COLOR_RED, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_INTIMIDATE, ABILITY_SHED_SKIN, ABILITY_UNNERVE}, + .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, - }, + .speciesName = _("Arbok"), + .cryId = CRY_ARBOK, + .natDexNum = NATIONAL_DEX_ARBOK, + .categoryName = _("Cobra"), + .height = 35, + .weight = 650, + .description = COMPOUND_STRING( + "This Pokémon has a terrifically strong\n" + "constricting power. It can even flatten\n" + "steel oil drums. Once it wraps its body\n" + "around its foe, escaping is impossible."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 296, + .trainerOffset = 2, + FRONT_PIC(Arbok, 64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Arbok, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Arbok, 64, 64), + .backPicYOffset = 1, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Arbok), + ICON(Arbok, 2), + .footprint = gMonFootprint_Arbok, + LEARNSETS(Arbok), + }, +#endif //P_FAMILY_EKANS + +#if P_FAMILY_PIKACHU +#if P_GEN_2_CROSS_EVOS +#define PICHU_MISC_INFO \ + .baseHP = 20, \ + .baseAttack = 40, \ + .baseDefense = 15, \ + .baseSpeed = 60, \ + .baseSpAttack = 35, \ + .baseSpDefense = 35, \ + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, \ + .catchRate = 190, \ + .expYield = 41, \ + .evYield_Speed = 1, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 10, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ + .abilities = {ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD}, \ + .bodyColor = BODY_COLOR_YELLOW, \ + .speciesName = _("Pichu"), \ + .cryId = CRY_PICHU, \ + .natDexNum = NATIONAL_DEX_PICHU, \ + .categoryName = _("Tiny Mouse"), \ + .height = 3, \ + .weight = 20, \ + .description = gPichuPokedexText, \ + .pokemonScale = 508, \ + .pokemonOffset = 20, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Pichu, \ + LEARNSETS(Pichu), \ + .formSpeciesIdTable = sPichuFormSpeciesIdTable + + [SPECIES_PICHU] = + { + PICHU_MISC_INFO, + .noFlip = FALSE, + FRONT_PIC(Pichu, 32, 40), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Pichu, + .frontAnimId = ANIM_V_JUMPS_BIG, + BACK_PIC(Pichu, 48, 56), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Pichu), + ICON(Pichu, 1), + .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_PIKACHU}), + }, + + [SPECIES_PICHU_SPIKY_EARED] = + { + PICHU_MISC_INFO, + .noFlip = TRUE, + FRONT_PIC(PichuSpikyEared, 32, 40), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_PichuSpikyEared, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(PichuSpikyEared, 48, 56), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(PichuSpikyEared), + ICON(PichuSpikyEared, 1), + }, +#endif //P_GEN_2_CROSS_EVOS + +#define PIKACHU_MISC_INFO \ + .baseHP = 35, \ + .baseAttack = 55, \ + .baseDefense = P_UPDATED_STATS >= GEN_6 ? 40 : 30, \ + .baseSpeed = 90, \ + .baseSpAttack = 50, \ + .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 50 : 40, \ + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, \ + .catchRate = 190, \ + .expYield = 112, \ + .evYield_Speed = 2, \ + .itemRare = ITEM_LIGHT_BALL, \ + .eggCycles = 10, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .abilities = {ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD}, \ + .bodyColor = BODY_COLOR_YELLOW, \ + .speciesName = _("Pikachu"), \ + .cryId = CRY_PIKACHU, \ + .natDexNum = NATIONAL_DEX_PIKACHU, \ + .categoryName = _("Mouse"), \ + .footprint = gMonFootprint_Pikachu, \ + LEARNSETS(Pikachu), \ + .formSpeciesIdTable = sPikachuFormSpeciesIdTable - [SPECIES_CROBAT] = +#define PIKACHU_REGULAR_SIZE_INFO \ + .height = 4, \ + .weight = 60, \ + .pokemonScale = 479, \ + .pokemonOffset = 19, \ + .trainerScale = 256, \ + .trainerOffset = 0 + + [SPECIES_PIKACHU] = { - .baseHP = 85, - .baseAttack = 90, - .baseDefense = 80, - .baseSpeed = 130, - .baseSpAttack = 70, - .baseSpDefense = 80, - .types = { TYPE_POISON, TYPE_FLYING }, - .catchRate = 90, - .expYield = 241, - .evYield_Speed = 3, + PIKACHU_MISC_INFO, + PIKACHU_REGULAR_SIZE_INFO, + .noFlip = FALSE, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_INNER_FOCUS, ABILITY_NONE, ABILITY_INFILTRATOR}, - .bodyColor = BODY_COLOR_PURPLE, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY}, + .description = gPikachuPokedexText, + FRONT_PIC(Pikachu, 48, 48), + FRONT_PIC_FEMALE(Pikachu, 48, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Pikachu, + .frontAnimId = ANIM_FLASH_YELLOW, + .frontAnimDelay = 25, + BACK_PIC(Pikachu, 64, 56), + BACK_PIC_FEMALE(Pikachu, 64, 56), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, + PALETTE(Pikachu), + ICON(Pikachu, 2), + #if P_CUSTOM_GENDER_DIFF_ICONS == TRUE + ICON_FEMALE(Pikachu, 2), + #endif + .formChangeTable = sPikachuFormChangeTable, + .evolutions = EVOLUTION({EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_RAICHU}, + {EVO_NONE, 0, SPECIES_RAICHU_ALOLAN}), + }, + +#if P_COSPLAY_PIKACHU_FORMS +#define PIKACHU_COSPLAY_MISC_INFO \ + PIKACHU_MISC_INFO, \ + PIKACHU_REGULAR_SIZE_INFO, \ + .genderRatio = MON_FEMALE, \ + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED },\ + .description = gPikachuPokedexText + + [SPECIES_PIKACHU_COSPLAY] = + { + PIKACHU_COSPLAY_MISC_INFO, + .noFlip = FALSE, + FRONT_PIC(PikachuCosplay, 48, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_PikachuCosplay, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(PikachuCosplay, 64, 56), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(PikachuCosplay), + ICON(PikachuCosplay, 2), + }, + + [SPECIES_PIKACHU_ROCK_STAR] = + { + PIKACHU_COSPLAY_MISC_INFO, + .noFlip = FALSE, + FRONT_PIC(PikachuRockStar, 48, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_PikachuRockStar, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(PikachuRockStar, 64, 56), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(PikachuRockStar), + ICON(PikachuRockStar, 1), + }, + + [SPECIES_PIKACHU_BELLE] = + { + PIKACHU_COSPLAY_MISC_INFO, + .noFlip = TRUE, + FRONT_PIC(PikachuBelle, 48, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_PikachuBelle, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(PikachuBelle, 64, 56), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(PikachuBelle), + ICON(PikachuBelle, 0), + }, + + [SPECIES_PIKACHU_POP_STAR] = + { + PIKACHU_COSPLAY_MISC_INFO, + .noFlip = TRUE, + FRONT_PIC(PikachuPopStar, 48, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_PikachuPopStar, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(PikachuPopStar, 64, 56), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(PikachuPopStar), + ICON(PikachuPopStar, 0), + }, + + [SPECIES_PIKACHU_PH_D] = + { + PIKACHU_COSPLAY_MISC_INFO, .noFlip = FALSE, + FRONT_PIC(PikachuPhD, 48, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_PikachuPhD, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(PikachuPhD, 64, 56), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(PikachuPhD), + ICON(PikachuPhD, 1), }, - [SPECIES_CHINCHOU] = + [SPECIES_PIKACHU_LIBRE] = { - .baseHP = 75, - .baseAttack = 38, - .baseDefense = 38, - .baseSpeed = 67, - .baseSpAttack = 56, - .baseSpDefense = 56, - .types = { TYPE_WATER, TYPE_ELECTRIC }, - .catchRate = 190, - .expYield = 66, - .evYield_HP = 1, - .itemRare = ITEM_DEEP_SEA_SCALE, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, - .abilities = {ABILITY_VOLT_ABSORB, ABILITY_ILLUMINATE, ABILITY_WATER_ABSORB}, - .bodyColor = BODY_COLOR_BLUE, + PIKACHU_COSPLAY_MISC_INFO, .noFlip = FALSE, + FRONT_PIC(PikachuLibre, 48, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_PikachuLibre, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(PikachuLibre, 64, 56), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(PikachuLibre), + ICON(PikachuLibre, 0), }, - [SPECIES_LANTURN] = +#endif //P_COSPLAY_PIKACHU_FORMS + +#if P_CAP_PIKACHU_FORMS + +#define PIKACHU_CAP_MISC_INFO \ + PIKACHU_MISC_INFO, \ + PIKACHU_REGULAR_SIZE_INFO, \ + .genderRatio = MON_MALE, \ + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED } + + [SPECIES_PIKACHU_ORIGINAL_CAP] = { - .baseHP = 125, - .baseAttack = 58, - .baseDefense = 58, - .baseSpeed = 67, - .baseSpAttack = 76, - .baseSpDefense = 76, - .types = { TYPE_WATER, TYPE_ELECTRIC }, - .catchRate = 75, - .expYield = 161, - .evYield_HP = 2, - .itemRare = ITEM_DEEP_SEA_SCALE, + PIKACHU_CAP_MISC_INFO, + .noFlip = TRUE, + .description = COMPOUND_STRING( + "This Pikachu wears its partner's cap, which\n" + "is proof of the strong bond Pikachu and\n" + "its partner formed during adventures\n" + "across many different regions."), + FRONT_PIC(PikachuOriginalCap, 48, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_PikachuOriginalCap, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(PikachuOriginalCap, 64, 56), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(PikachuOriginalCap), + ICON(PikachuOriginalCap, 0), + }, + + [SPECIES_PIKACHU_HOENN_CAP] = + { + PIKACHU_CAP_MISC_INFO, + .noFlip = FALSE, + .description = COMPOUND_STRING( + "This Pikachu wears its partner's cap, which\n" + "is proof of the strong bond Pikachu and\n" + "its partner formed during adventures\n" + "across the Hoenn region together."), + FRONT_PIC(PikachuHoennCap, 48, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_PikachuHoennCap, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(PikachuHoennCap, 64, 56), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(PikachuHoennCap), + ICON(PikachuHoennCap, 0), + }, + + [SPECIES_PIKACHU_SINNOH_CAP] = + { + PIKACHU_CAP_MISC_INFO, + .noFlip = FALSE, + .description = COMPOUND_STRING( + "This Pikachu wears its partner's cap, which\n" + "is proof of the strong bond Pikachu and\n" + "its partner formed during adventures\n" + "across the Sinnoh region together."), + FRONT_PIC(PikachuSinnohCap, 48, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_PikachuSinnohCap, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(PikachuSinnohCap, 64, 56), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(PikachuSinnohCap), + ICON(PikachuSinnohCap, 0), + }, + + [SPECIES_PIKACHU_UNOVA_CAP] = + { + PIKACHU_CAP_MISC_INFO, + .noFlip = FALSE, + .description = COMPOUND_STRING( + "This Pikachu wears its partner's cap, which\n" + "is proof of the strong bond Pikachu and\n" + "its partner formed during adventures\n" + "across the Unova region together."), + FRONT_PIC(PikachuUnovaCap, 48, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_PikachuUnovaCap, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(PikachuUnovaCap, 64, 56), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(PikachuUnovaCap), + ICON(PikachuUnovaCap, 0), + }, + + [SPECIES_PIKACHU_KALOS_CAP] = + { + PIKACHU_CAP_MISC_INFO, + .noFlip = FALSE, + .description = COMPOUND_STRING( + "This Pikachu wears its partner's cap, which\n" + "is proof of the strong bond Pikachu and\n" + "its partner formed during adventures\n" + "across the Kalos region together."), + FRONT_PIC(PikachuKalosCap, 48, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_PikachuKalosCap, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(PikachuKalosCap, 64, 56), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(PikachuKalosCap), + ICON(PikachuKalosCap, 0), + }, + + [SPECIES_PIKACHU_ALOLA_CAP] = + { + PIKACHU_CAP_MISC_INFO, + .noFlip = FALSE, + .description = COMPOUND_STRING( + "This Pikachu wears its partner's cap, which\n" + "is proof of the strong bond Pikachu and\n" + "its partner formed during adventures\n" + "across the Alola region together."), + FRONT_PIC(PikachuAlolaCap, 48, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_PikachuAlolaCap, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(PikachuAlolaCap, 64, 56), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(PikachuAlolaCap), + ICON(PikachuAlolaCap, 0), + }, + + [SPECIES_PIKACHU_PARTNER_CAP] = + { + PIKACHU_CAP_MISC_INFO, + .noFlip = TRUE, + .description = COMPOUND_STRING( + "This Pikachu wears its partner's cap, which\n" + "is proof of the strong bond Pikachu and\n" + "its partner formed as the two overcame\n" + "many hardships together."), + FRONT_PIC(PikachuPartnerCap, 48, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_PikachuPartnerCap, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(PikachuPartnerCap, 64, 56), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(PikachuPartnerCap), + ICON(PikachuPartnerCap, 0), + }, + + [SPECIES_PIKACHU_WORLD_CAP] = + { + PIKACHU_CAP_MISC_INFO, + .noFlip = FALSE, + .description = COMPOUND_STRING( + "This Pikachu wears its partner's cap, which\n" + "is proof of the strong bond Pikachu and\n" + "its partner formed during adventures\n" + "across the world together."), + FRONT_PIC(PikachuWorldCap, 48, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_PikachuWorldCap, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(PikachuWorldCap, 64, 56), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(PikachuWorldCap), + ICON(PikachuWorldCap, 0), + }, + +#endif //P_CAP_PIKACHU_FORMS + +#if P_GIGANTAMAX_FORMS + [SPECIES_PIKACHU_GIGANTAMAX] = + { + PIKACHU_MISC_INFO, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, - .abilities = {ABILITY_VOLT_ABSORB, ABILITY_ILLUMINATE, ABILITY_WATER_ABSORB}, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY}, + .noFlip = FALSE, + .height = 210, + .weight = 0, + .pokemonScale = 479, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(PikachuGigantamax, 64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_PikachuGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(PikachuGigantamax, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(PikachuGigantamax), + ICON(PikachuGigantamax, 2), + .formChangeTable = sPikachuFormChangeTable, + .isGigantamax = TRUE, + }, +#endif //P_GIGANTAMAX_FORMS + +#define RAICHU_SPEED (P_UPDATED_STATS >= GEN_6 ? 110 : 100) + +#define RAICHU_MISC_INFO \ + .catchRate = 75, \ + .expYield = 218, \ + .evYield_Speed = 3, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 10, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY}, \ + .noFlip = FALSE, \ + .speciesName = _("Raichu"), \ + .cryId = CRY_RAICHU, \ + .natDexNum = NATIONAL_DEX_RAICHU, \ + .categoryName = _("Mouse"), \ + .footprint = gMonFootprint_Raichu, \ + .formSpeciesIdTable = sRaichuFormSpeciesIdTable + + [SPECIES_RAICHU] = + { + RAICHU_MISC_INFO, + .baseHP = 60, + .baseAttack = 90, + .baseDefense = 55, + .baseSpeed = RAICHU_SPEED, + .baseSpAttack = 90, + .baseSpDefense = 80, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, + .abilities = {ABILITY_STATIC, ABILITY_NONE, ABILITY_LIGHTNING_ROD}, + .bodyColor = BODY_COLOR_YELLOW, + .height = 8, + .weight = 300, + .description = COMPOUND_STRING( + "If it stores too much electricity, its\n" + "behavior turns aggressive. To avoid this,\n" + "it occasionally discharges excess energy\n" + "and calms itself down."), + .pokemonScale = 426, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Raichu, 64, 64), + FRONT_PIC_FEMALE(Raichu, 64, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_Raichu, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Raichu, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, + PALETTE(Raichu), + ICON(Raichu, 0), + LEARNSETS(Raichu), + }, + +#if P_ALOLAN_FORMS + [SPECIES_RAICHU_ALOLAN] = + { + RAICHU_MISC_INFO, + .baseHP = 60, + .baseAttack = 85, + .baseDefense = 50, + .baseSpeed = RAICHU_SPEED, + .baseSpAttack = 95, + .baseSpDefense = 85, + .types = { TYPE_ELECTRIC, TYPE_PSYCHIC}, + .abilities = {ABILITY_SURGE_SURFER, ABILITY_NONE}, + .bodyColor = BODY_COLOR_BROWN, + .isAlolanForm = TRUE, + .height = 7, + .weight = 210, + .description = COMPOUND_STRING( + "It uses psychokinesis to control\n" + "electricity. It focuses psychic energy\n" + "into its tail and rides it like it's surfing.\n" + "Another name for this Pokémon is 'hodad'."), + .pokemonScale = 426, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(RaichuAlolan, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_RaichuAlolan, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 4, + BACK_PIC(RaichuAlolan, 56, 56), + .backPicYOffset = 6, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(RaichuAlolan), + ICON(RaichuAlolan, 2), + LEARNSETS(RaichuAlolan), + }, +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_PIKACHU + +#if P_FAMILY_SANDSHREW +#define SANDSHREW_FAMILY_MISC_INFO \ + .itemRare = ITEM_GRIP_CLAW, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, \ + .noFlip = FALSE + +#define SANDSHREW_MISC_INFO \ + .catchRate = 255, \ + .expYield = 60, \ + .evYield_Defense = 1, \ + .speciesName = _("Sandshrew"), \ + .cryId = CRY_SANDSHREW, \ + .natDexNum = NATIONAL_DEX_SANDSHREW, \ + .categoryName = _("Mouse"), \ + .footprint = gMonFootprint_Sandshrew, \ + .formSpeciesIdTable = sSandshrewFormSpeciesIdTable, \ + SANDSHREW_FAMILY_MISC_INFO + +#define SANDSLASH_MISC_INFO \ + .catchRate = 90, \ + .expYield = 158, \ + .evYield_Defense = 2, \ + .speciesName = _("Sandslash"), \ + .cryId = CRY_SANDSLASH, \ + .natDexNum = NATIONAL_DEX_SANDSLASH, \ + .categoryName = _("Mouse"), \ + .footprint = gMonFootprint_Sandslash, \ + .formSpeciesIdTable = sSandslashFormSpeciesIdTable, \ + SANDSHREW_FAMILY_MISC_INFO + + [SPECIES_SANDSHREW] = + { + SANDSHREW_MISC_INFO, + .baseHP = 50, + .baseAttack = 75, + .baseDefense = 85, + .baseSpeed = 40, + .baseSpAttack = 20, + .baseSpDefense = 30, + .types = { TYPE_GROUND, TYPE_GROUND }, + .abilities = {ABILITY_SAND_VEIL, ABILITY_NONE, ABILITY_SAND_RUSH}, + .bodyColor = BODY_COLOR_YELLOW, + .height = 6, + .weight = 120, + .description = COMPOUND_STRING( + "When it curls up in a ball, it can make any\n" + "attack bounce off harmlessly. Its hide has\n" + "turned tough and solid as a result of\n" + "living in the desert."), + .pokemonScale = 365, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Sandshrew, 48, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Sandshrew, + .frontAnimId = ANIM_SWING_CONCAVE_FAST_SHORT, + BACK_PIC(Sandshrew, 48, 40), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Sandshrew), + ICON(Sandshrew, 2), + LEARNSETS(Sandshrew), + .evolutions = EVOLUTION({EVO_LEVEL, 22, SPECIES_SANDSLASH}), + }, + + [SPECIES_SANDSLASH] = + { + SANDSLASH_MISC_INFO, + .baseHP = 75, + .baseAttack = 100, + .baseDefense = 110, + .baseSpeed = 65, + .baseSpAttack = 45, + .baseSpDefense = 55, + .types = { TYPE_GROUND, TYPE_GROUND }, + .abilities = {ABILITY_SAND_VEIL, ABILITY_NONE, ABILITY_SAND_RUSH}, + .bodyColor = BODY_COLOR_YELLOW, + .height = 10, + .weight = 295, + .description = COMPOUND_STRING( + "It curls up in a ball to protect itself from\n" + "enemy attacks. It also curls up to prevent\n" + "heatstroke during the daytime when\n" + "temperatures rise sharply."), + .pokemonScale = 341, + .pokemonOffset = 11, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Sandslash, 64, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Sandslash, + .frontAnimId = ANIM_H_SHAKE, + BACK_PIC(Sandslash, 64, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, + PALETTE(Sandslash), + ICON(Sandslash, 2), + LEARNSETS(Sandslash), + }, + +#if P_ALOLAN_FORMS + [SPECIES_SANDSHREW_ALOLAN] = + { + SANDSHREW_MISC_INFO, + .baseHP = 50, + .baseAttack = 75, + .baseDefense = 90, + .baseSpeed = 40, + .baseSpAttack = 10, + .baseSpDefense = 35, + .types = { TYPE_ICE, TYPE_STEEL}, + .abilities = {ABILITY_SNOW_CLOAK, ABILITY_NONE, ABILITY_SLUSH_RUSH}, .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, + .height = 7, + .weight = 400, + .description = COMPOUND_STRING( + "Life on mountains covered with deep snow\n" + "has granted this Pokémon a body of ice\n" + "that's as hard as steel.\n" + "Predators go after its soft belly."), + .pokemonScale = 365, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(SandshrewAlolan, 40, 40), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_SandshrewAlolan, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(SandshrewAlolan, 56, 40), + .backPicYOffset = 13, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(SandshrewAlolan), + ICON(SandshrewAlolan, 0), + LEARNSETS(SandshrewAlolan), + .isAlolanForm = TRUE, + .evolutions = EVOLUTION({EVO_ITEM, ITEM_ICE_STONE, SPECIES_SANDSLASH_ALOLAN}), }, - [SPECIES_PICHU] = PICHU_SPECIES_INFO(FLIP), - - [SPECIES_CLEFFA] = + [SPECIES_SANDSLASH_ALOLAN] = { - .baseHP = 50, - .baseAttack = 25, - .baseDefense = 28, - .baseSpeed = 15, - .baseSpAttack = 45, - .baseSpDefense = 55, - #if P_UPDATED_TYPES >= GEN_6 - .types = { TYPE_FAIRY, TYPE_FAIRY}, - #else - .types = { TYPE_NORMAL, TYPE_NORMAL}, - #endif - .catchRate = 150, - .expYield = 44, - .evYield_SpDefense = 1, - .itemRare = ITEM_MOON_STONE, - .genderRatio = PERCENT_FEMALE(75), - .eggCycles = 10, - .friendship = 140, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_CUTE_CHARM, ABILITY_MAGIC_GUARD, ABILITY_FRIEND_GUARD}, - .bodyColor = BODY_COLOR_PINK, - .noFlip = TRUE, - }, - - [SPECIES_IGGLYBUFF] = + SANDSLASH_MISC_INFO, + .baseHP = 75, + .baseAttack = 100, + .baseDefense = 120, + .baseSpeed = 65, + .baseSpAttack = 25, + .baseSpDefense = 65, + .types = { TYPE_ICE, TYPE_STEEL}, + .abilities = {ABILITY_SNOW_CLOAK, ABILITY_NONE, ABILITY_SLUSH_RUSH}, + .bodyColor = BODY_COLOR_BLUE, + .height = 12, + .weight = 550, + .description = COMPOUND_STRING( + "It uses large, hooked claws to cut a path\n" + "through deep snow as it runs.\n" + "On snowy mountains, this Sandslash\n" + "is faster than any other Pokémon."), + .pokemonScale = 341, + .pokemonOffset = 11, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(SandslashAlolan, 64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_SandslashAlolan, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(SandslashAlolan, 64, 56), + .backPicYOffset = 6, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(SandslashAlolan), + ICON(SandslashAlolan, 0), + LEARNSETS(SandslashAlolan), + .isAlolanForm = TRUE, + }, +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_SANDSHREW + +#if P_FAMILY_NIDORAN + [SPECIES_NIDORAN_F] = { - .baseHP = 90, - .baseAttack = 30, - .baseDefense = 15, - .baseSpeed = 15, + .baseHP = 55, + .baseAttack = 47, + .baseDefense = 52, + .baseSpeed = 41, .baseSpAttack = 40, - .baseSpDefense = 20, - #if P_UPDATED_TYPES >= GEN_6 - .types = { TYPE_NORMAL, TYPE_FAIRY}, - #else - .types = { TYPE_NORMAL, TYPE_NORMAL}, - #endif - .catchRate = 170, - .expYield = 42, + .baseSpDefense = 40, + .types = { TYPE_POISON, TYPE_POISON }, + .catchRate = 235, + .expYield = 55, .evYield_HP = 1, - .genderRatio = PERCENT_FEMALE(75), - .eggCycles = 10, + .genderRatio = MON_FEMALE, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_CUTE_CHARM, ABILITY_COMPETITIVE, ABILITY_FRIEND_GUARD}, - .bodyColor = BODY_COLOR_PINK, - .noFlip = TRUE, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD}, + .abilities = {ABILITY_POISON_POINT, ABILITY_RIVALRY, ABILITY_HUSTLE}, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + .speciesName = _("Nidoran♀"), + .cryId = CRY_NIDORAN_F, + .natDexNum = NATIONAL_DEX_NIDORAN_F, + .categoryName = _("Poison Pin"), + .height = 4, + .weight = 70, + .description = COMPOUND_STRING( + "Its highly toxic barbs are thought to have\n" + "developed as protection for this small-\n" + "bodied Pokémon. When enraged, it releases\n" + "a horrible toxin from its horn."), + .pokemonScale = 488, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(NidoranF, 40, 40), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_NidoranF, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .frontAnimDelay = 28, + BACK_PIC(NidoranF, 48, 40), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(NidoranF), + ICON(NidoranF, 0), + .footprint = gMonFootprint_NidoranF, + LEARNSETS(NidoranF), + .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_NIDORINA}), }, - [SPECIES_TOGEPI] = + [SPECIES_NIDORINA] = { - .baseHP = 35, - .baseAttack = 20, - .baseDefense = 65, - .baseSpeed = 20, - .baseSpAttack = 40, - .baseSpDefense = 65, - #if P_UPDATED_TYPES >= GEN_6 - .types = { TYPE_FAIRY, TYPE_FAIRY}, - #else - .types = { TYPE_NORMAL, TYPE_NORMAL}, - #endif - .catchRate = 190, - .expYield = 49, - .evYield_SpDefense = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 10, + .baseHP = 70, + .baseAttack = 62, + .baseDefense = 67, + .baseSpeed = 56, + .baseSpAttack = 55, + .baseSpDefense = 55, + .types = { TYPE_POISON, TYPE_POISON }, + .catchRate = 120, + .expYield = 128, + .evYield_HP = 2, + .genderRatio = MON_FEMALE, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, + .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_HUSTLE, ABILITY_SERENE_GRACE, ABILITY_SUPER_LUCK}, - .bodyColor = BODY_COLOR_WHITE, + .abilities = {ABILITY_POISON_POINT, ABILITY_RIVALRY, ABILITY_HUSTLE}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Nidorina"), + .cryId = CRY_NIDORINA, + .natDexNum = NATIONAL_DEX_NIDORINA, + .categoryName = _("Poison Pin"), + .height = 8, + .weight = 200, + .description = COMPOUND_STRING( + "When it is with its friends or\n" + "family, its barbs are tucked away to\n" + "prevent injury. It appears to become\n" + "nervous if separated from the others."), + .pokemonScale = 381, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Nidorina, 48, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Nidorina, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Nidorina, 56, 56), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Nidorina), + ICON(Nidorina, 0), + .footprint = gMonFootprint_Nidorina, + LEARNSETS(Nidorina), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_MOON_STONE, SPECIES_NIDOQUEEN}), }, - [SPECIES_TOGETIC] = + [SPECIES_NIDOQUEEN] = { - .baseHP = 55, - .baseAttack = 40, - .baseDefense = 85, - .baseSpeed = 40, - .baseSpAttack = 80, - .baseSpDefense = 105, - #if P_UPDATED_TYPES >= GEN_6 - .types = { TYPE_FAIRY, TYPE_FLYING}, - #else - .types = { TYPE_NORMAL, TYPE_FLYING}, - #endif - .catchRate = 75, - .expYield = 142, - .evYield_SpDefense = 2, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 10, + .baseHP = 90, + .baseAttack = P_UPDATED_STATS >= GEN_6 ? 92 : 82, + .baseDefense = 87, + .baseSpeed = 76, + .baseSpAttack = 75, + .baseSpDefense = 85, + .types = { TYPE_POISON, TYPE_GROUND}, + .catchRate = 45, + .expYield = 227, + .evYield_HP = 3, + .genderRatio = MON_FEMALE, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_HUSTLE, ABILITY_SERENE_GRACE, ABILITY_SUPER_LUCK}, - .bodyColor = BODY_COLOR_WHITE, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_POISON_POINT, ABILITY_RIVALRY, ABILITY_SHEER_FORCE}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Nidoqueen"), + .cryId = CRY_NIDOQUEEN, + .natDexNum = NATIONAL_DEX_NIDOQUEEN, + .categoryName = _("Drill"), + .height = 13, + .weight = 600, + .description = COMPOUND_STRING( + "It is adept at sending foes flying with\n" + "harsh tackles using its tough, scaly body.\n" + "This Pokémon is at its strongest when\n" + "it is defending its young."), + .pokemonScale = 293, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Nidoqueen, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Nidoqueen, + .frontAnimId = ANIM_H_SHAKE, + BACK_PIC(Nidoqueen, 64, 56), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Nidoqueen), + ICON(Nidoqueen, 2), + .footprint = gMonFootprint_Nidoqueen, + LEARNSETS(Nidoqueen), }, - [SPECIES_NATU] = + [SPECIES_NIDORAN_M] = { - .baseHP = 40, - .baseAttack = 50, - .baseDefense = 45, - .baseSpeed = 70, - .baseSpAttack = 70, - .baseSpDefense = 45, - .types = { TYPE_PSYCHIC, TYPE_FLYING }, - .catchRate = 190, - .expYield = 64, - .evYield_SpAttack = 1, - .genderRatio = PERCENT_FEMALE(50), + .baseHP = 46, + .baseAttack = 57, + .baseDefense = 40, + .baseSpeed = 50, + .baseSpAttack = 40, + .baseSpDefense = 40, + .types = { TYPE_POISON, TYPE_POISON }, + .catchRate = 235, + .expYield = 55, + .evYield_Attack = 1, + .genderRatio = MON_MALE, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_SYNCHRONIZE, ABILITY_EARLY_BIRD, ABILITY_MAGIC_BOUNCE}, - .bodyColor = BODY_COLOR_GREEN, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD}, + .abilities = {ABILITY_POISON_POINT, ABILITY_RIVALRY, ABILITY_HUSTLE}, + .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, + .speciesName = _("Nidoran♂"), + .cryId = CRY_NIDORAN_M, + .natDexNum = NATIONAL_DEX_NIDORAN_M, + .categoryName = _("Poison Pin"), + .height = 5, + .weight = 90, + .description = COMPOUND_STRING( + "The male Nidoran has developed muscles\n" + "that freely move its ears in any direction.\n" + "Even the slightest sound does not escape\n" + "this Pokémon's notice."), + .pokemonScale = 511, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(NidoranM, 40, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_NidoranM, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(NidoranM, 48, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(NidoranM), + ICON(NidoranM, 2), + .footprint = gMonFootprint_NidoranM, + LEARNSETS(NidoranM), + .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_NIDORINO}), }, - [SPECIES_XATU] = + [SPECIES_NIDORINO] = { - .baseHP = 65, - .baseAttack = 75, - .baseDefense = 70, - .baseSpeed = 95, - .baseSpAttack = 95, - .baseSpDefense = 70, - .types = { TYPE_PSYCHIC, TYPE_FLYING }, - .catchRate = 75, - .expYield = 165, - .evYield_Speed = 1, - .evYield_SpAttack = 1, - .genderRatio = PERCENT_FEMALE(50), + .baseHP = 61, + .baseAttack = 72, + .baseDefense = 57, + .baseSpeed = 65, + .baseSpAttack = 55, + .baseSpDefense = 55, + .types = { TYPE_POISON, TYPE_POISON }, + .catchRate = 120, + .expYield = 128, + .evYield_Attack = 2, + .genderRatio = MON_MALE, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_SYNCHRONIZE, ABILITY_EARLY_BIRD, ABILITY_MAGIC_BOUNCE}, - .bodyColor = BODY_COLOR_GREEN, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD}, + .abilities = {ABILITY_POISON_POINT, ABILITY_RIVALRY, ABILITY_HUSTLE}, + .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, + .speciesName = _("Nidorino"), + .cryId = CRY_NIDORINO, + .natDexNum = NATIONAL_DEX_NIDORINO, + .categoryName = _("Poison Pin"), + .height = 9, + .weight = 195, + .description = COMPOUND_STRING( + "Its horn is harder than a diamond.\n" + "If it senses a hostile presence, all the\n" + "barbs on its back bristle up at once, and it\n" + "challenges the foe with all its might."), + .pokemonScale = 408, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Nidorino, 56, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Nidorino, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Nidorino, 64, 56), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Nidorino), + ICON(Nidorino, 2), + .footprint = gMonFootprint_Nidorino, + LEARNSETS(Nidorino), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_MOON_STONE, SPECIES_NIDOKING}), }, - [SPECIES_MAREEP] = + [SPECIES_NIDOKING] = { - .baseHP = 55, - .baseAttack = 40, - .baseDefense = 40, - .baseSpeed = 35, - .baseSpAttack = 65, - .baseSpDefense = 45, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, - .catchRate = 235, - .expYield = 56, - .evYield_SpAttack = 1, - .genderRatio = PERCENT_FEMALE(50), + .baseHP = 81, + .baseAttack = P_UPDATED_STATS >= GEN_6 ? 102 : 92, + .baseDefense = 77, + .baseSpeed = 85, + .baseSpAttack = 85, + .baseSpDefense = 75, + .types = { TYPE_POISON, TYPE_GROUND}, + .catchRate = 45, + .expYield = 227, + .evYield_Attack = 3, + .genderRatio = MON_MALE, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD}, - .abilities = {ABILITY_STATIC, ABILITY_NONE, ABILITY_PLUS}, - .bodyColor = BODY_COLOR_WHITE, + .abilities = {ABILITY_POISON_POINT, ABILITY_RIVALRY, ABILITY_SHEER_FORCE}, + .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, - }, + .speciesName = _("Nidoking"), + .cryId = CRY_NIDOKING, + .natDexNum = NATIONAL_DEX_NIDOKING, + .categoryName = _("Drill"), + .height = 14, + .weight = 620, + .description = COMPOUND_STRING( + "A Nidoking's thick tail packs enormously\n" + "destructive power capable of toppling\n" + "a metal transmission tower. Once it goes\n" + "on a rampage, there is no stopping it."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Nidoking, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Nidoking, + .frontAnimId = ANIM_H_SHAKE, + .frontAnimDelay = 25, + BACK_PIC(Nidoking, 64, 64), + .backPicYOffset = 2, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Nidoking), + ICON(Nidoking, 2), + .footprint = gMonFootprint_Nidoking, + LEARNSETS(Nidoking), + }, +#endif //P_FAMILY_NIDORAN + +#if P_FAMILY_CLEFAIRY +#if P_UPDATED_TYPES >= GEN_6 + #define CLEFAIRY_FAMILY_TYPES { TYPE_FAIRY, TYPE_FAIRY } +#else + #define CLEFAIRY_FAMILY_TYPES { TYPE_NORMAL, TYPE_NORMAL } +#endif + +#if P_GEN_2_CROSS_EVOS + [SPECIES_CLEFFA] = + { + .baseHP = 50, + .baseAttack = 25, + .baseDefense = 28, + .baseSpeed = 15, + .baseSpAttack = 45, + .baseSpDefense = 55, + .types = CLEFAIRY_FAMILY_TYPES, + .catchRate = 150, + .expYield = 44, + .evYield_SpDefense = 1, + .itemRare = ITEM_MOON_STONE, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 10, + .friendship = 140, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_CUTE_CHARM, ABILITY_MAGIC_GUARD, ABILITY_FRIEND_GUARD}, + .bodyColor = BODY_COLOR_PINK, + .noFlip = TRUE, + .speciesName = _("Cleffa"), + .cryId = CRY_CLEFFA, + .natDexNum = NATIONAL_DEX_CLEFFA, + .categoryName = _("Star Shape"), + .height = 3, + .weight = 30, + .description = COMPOUND_STRING( + "On nights with many shooting stars,\n" + "Cleffa can be seen dancing in a ring.\n" + "They dance until daybreak, when they\n" + "quench their thirst with the morning dew."), + .pokemonScale = 462, + .pokemonOffset = 23, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Cleffa, 32, 32), + .frontPicYOffset = 18, + .frontAnimFrames = sAnims_Cleffa, + .frontAnimId = ANIM_V_JUMPS_SMALL, + BACK_PIC(Cleffa, 48, 40), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Cleffa), + ICON(Cleffa, 0), + .footprint = gMonFootprint_Cleffa, + LEARNSETS(Cleffa), + .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_CLEFAIRY}), + }, +#endif //P_GEN_2_CROSS_EVOS - [SPECIES_FLAAFFY] = + [SPECIES_CLEFAIRY] = { .baseHP = 70, - .baseAttack = 55, - .baseDefense = 55, - .baseSpeed = 45, - .baseSpAttack = 80, - .baseSpDefense = 60, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, - .catchRate = 120, - .expYield = 128, - .evYield_SpAttack = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD}, - .abilities = {ABILITY_STATIC, ABILITY_NONE, ABILITY_PLUS}, + .baseAttack = 45, + .baseDefense = 48, + .baseSpeed = 35, + .baseSpAttack = 60, + .baseSpDefense = 65, + .types = CLEFAIRY_FAMILY_TYPES, + .catchRate = 150, + .expYield = 113, + .evYield_HP = 2, + .itemRare = ITEM_MOON_STONE, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 10, + .friendship = 140, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, + .abilities = {ABILITY_CUTE_CHARM, ABILITY_MAGIC_GUARD, ABILITY_FRIEND_GUARD}, .bodyColor = BODY_COLOR_PINK, - .noFlip = FALSE, + .noFlip = TRUE, + .speciesName = _("Clefairy"), + .cryId = CRY_CLEFAIRY, + .natDexNum = NATIONAL_DEX_CLEFAIRY, + .categoryName = _("Fairy"), + .height = 6, + .weight = 75, + .description = COMPOUND_STRING( + "On every night of a full moon, they come\n" + "out to play. When dawn arrives, the tired\n" + "Clefairy go to sleep nestled up against\n" + "each other in deep and quiet mountains."), + .pokemonScale = 441, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Clefairy, 40, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Clefairy, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Clefairy, 56, 40), + .backPicYOffset = 14, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Clefairy), + ICON(Clefairy, 0), + .footprint = gMonFootprint_Clefairy, + LEARNSETS(Clefairy), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_MOON_STONE, SPECIES_CLEFABLE}), }, - [SPECIES_AMPHAROS] = + [SPECIES_CLEFABLE] = { - .baseHP = 90, - .baseAttack = 75, - .baseSpeed = 55, - .baseSpAttack = 115, + .baseHP = 95, + .baseAttack = 70, + .baseDefense = 73, + .baseSpeed = 60, + .baseSpAttack = P_UPDATED_STATS >= GEN_6 ? 95 : 85, .baseSpDefense = 90, - #if P_UPDATED_STATS >= GEN_6 - .baseDefense = 85, - #else - .baseDefense = 75, - #endif - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, - .catchRate = 45, - .expYield = 230, - .evYield_SpAttack = 3, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD}, - .abilities = {ABILITY_STATIC, ABILITY_NONE, ABILITY_PLUS}, + .types = CLEFAIRY_FAMILY_TYPES, + .catchRate = 25, + .expYield = 217, + .evYield_HP = 3, + .itemRare = ITEM_MOON_STONE, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 10, + .friendship = 140, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, + .abilities = {ABILITY_CUTE_CHARM, ABILITY_MAGIC_GUARD, ABILITY_UNAWARE}, + .bodyColor = BODY_COLOR_PINK, + .noFlip = TRUE, + .speciesName = _("Clefable"), + .cryId = CRY_CLEFABLE, + .natDexNum = NATIONAL_DEX_CLEFABLE, + .categoryName = _("Fairy"), + .height = 13, + .weight = 400, + .description = COMPOUND_STRING( + "A Clefable uses its wings to skip lightly \n" + "as if it were flying. Its bouncy step\n" + "lets it even walk on water. On quiet,\n" + "moonlit nights, it strolls on lakes."), + .pokemonScale = 256, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Clefable, 56, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Clefable, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Clefable, 64, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Clefable), + ICON(Clefable, 0), + .footprint = gMonFootprint_Clefable, + LEARNSETS(Clefable), + }, +#endif //P_FAMILY_CLEFAIRY + +#if P_FAMILY_VULPIX +#define VULPIX_FAMILY_MISC_INFO \ + .genderRatio = PERCENT_FEMALE(75), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, \ + .noFlip = FALSE + +#define VULPIX_MISC_INFO \ + .baseHP = 38, \ + .baseAttack = 41, \ + .baseDefense = 40, \ + .baseSpeed = 65, \ + .baseSpAttack = 50, \ + .baseSpDefense = 65, \ + .catchRate = 190, \ + .expYield = 60, \ + .evYield_Speed = 1, \ + .speciesName = _("Vulpix"), \ + .cryId = CRY_VULPIX, \ + .natDexNum = NATIONAL_DEX_VULPIX, \ + .categoryName = _("Fox"), \ + .height = 6, \ + .weight = 99, \ + .pokemonScale = 542, \ + .pokemonOffset = 19, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Vulpix, \ + .formSpeciesIdTable = sVulpixFormSpeciesIdTable,\ + VULPIX_FAMILY_MISC_INFO + +#define NINETALES_MISC_INFO \ + .catchRate = 75, \ + .expYield = 177, \ + .evYield_Speed = 1, \ + .evYield_SpDefense = 1, \ + .speciesName = _("Ninetales"), \ + .cryId = CRY_NINETALES, \ + .natDexNum = NATIONAL_DEX_NINETALES, \ + .categoryName = _("Fox"), \ + .height = 11, \ + .weight = 199, \ + .pokemonScale = 339, \ + .pokemonOffset = 10, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Ninetales, \ + .formSpeciesIdTable = sNinetalesFormSpeciesIdTable, \ + VULPIX_FAMILY_MISC_INFO + + [SPECIES_VULPIX] = + { + VULPIX_MISC_INFO, + .types = { TYPE_FIRE, TYPE_FIRE }, + .itemRare = ITEM_CHARCOAL, + .abilities = {ABILITY_FLASH_FIRE, ABILITY_NONE, ABILITY_DROUGHT}, + .bodyColor = BODY_COLOR_BROWN, + .description = COMPOUND_STRING( + "It can freely control fire, making fiery\n" + "orbs fly like will-o'-the-wisps. Just\n" + "before evolution, its six tails grow hot \n" + "as if on fire."), + FRONT_PIC(Vulpix, 56, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Vulpix, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Vulpix, 64, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, + PALETTE(Vulpix), + ICON(Vulpix, 5), + LEARNSETS(Vulpix), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_FIRE_STONE, SPECIES_NINETALES}), + }, + + [SPECIES_NINETALES] = + { + NINETALES_MISC_INFO, + .baseHP = 73, + .baseAttack = 76, + .baseDefense = 75, + .baseSpeed = 100, + .baseSpAttack = 81, + .baseSpDefense = 100, + .types = { TYPE_FIRE, TYPE_FIRE }, + .itemRare = ITEM_CHARCOAL, + .abilities = {ABILITY_FLASH_FIRE, ABILITY_NONE, ABILITY_DROUGHT}, .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, + .description = COMPOUND_STRING( + "It has long been said that each of the\n" + "nine tails embody an enchanted power.\n" + "A long-lived Ninetales will have fur that\n" + "shines like gold."), + FRONT_PIC(Ninetales, 64, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_Ninetales, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Ninetales, 64, 56), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_H_VIBRATE, + PALETTE(Ninetales), + ICON(Ninetales, 3), + LEARNSETS(Ninetales), + }, + +#if P_ALOLAN_FORMS + [SPECIES_VULPIX_ALOLAN] = + { + VULPIX_MISC_INFO, + .types = { TYPE_ICE, TYPE_ICE}, + .itemRare = ITEM_SNOWBALL, + .abilities = {ABILITY_SNOW_CLOAK, ABILITY_NONE, ABILITY_SNOW_WARNING}, + .bodyColor = BODY_COLOR_BLUE, + .description = COMPOUND_STRING( + "They live together in a skulk, helping\n" + "one another. In hot weather, this Pokémon\n" + "makes ice shards with its six tails and\n" + "sprays them around to cool itself off."), + FRONT_PIC(VulpixAlolan, 48, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_VulpixAlolan, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(VulpixAlolan, 64, 56), + .backPicYOffset = 5, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(VulpixAlolan), + ICON(VulpixAlolan, 2), + LEARNSETS(VulpixAlolan), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_ICE_STONE, SPECIES_NINETALES_ALOLAN}), + .isAlolanForm = TRUE, }, - [SPECIES_BELLOSSOM] = + [SPECIES_NINETALES_ALOLAN] = { - .baseHP = 75, - .baseAttack = 80, - .baseSpeed = 50, - .baseSpAttack = 90, + NINETALES_MISC_INFO, + .baseHP = 73, + .baseAttack = 67, + .baseDefense = 75, + .baseSpeed = 109, + .baseSpAttack = 81, .baseSpDefense = 100, - #if P_UPDATED_STATS >= GEN_6 - .baseDefense = 95, - #else - .baseDefense = 85, - #endif - .types = { TYPE_GRASS, TYPE_GRASS}, - .catchRate = 45, - .expYield = 221, - .evYield_SpDefense = 3, - .itemRare = ITEM_ABSORB_BULB, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .types = { TYPE_ICE, TYPE_FAIRY}, + .itemRare = ITEM_SNOWBALL, + .abilities = {ABILITY_SNOW_CLOAK, ABILITY_NONE, ABILITY_SNOW_WARNING}, + .bodyColor = BODY_COLOR_BLUE, + .description = COMPOUND_STRING( + "While it will guide travelers who get lost\n" + "on a snowy mountain down to the\n" + "mountain's base, it won't forgive anyone\n" + "who harms nature."), + FRONT_PIC(NinetalesAlolan, 64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_NinetalesAlolan, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(NinetalesAlolan, 64, 56), + .backPicYOffset = 5, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(NinetalesAlolan), + ICON(NinetalesAlolan, 2), + LEARNSETS(NinetalesAlolan), + .isAlolanForm = TRUE, + }, +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_VULPIX + +#if P_FAMILY_JIGGLYPUFF +#if P_UPDATED_TYPES >= GEN_6 + #define JIGGLYPUFF_FAMILY_TYPES { TYPE_NORMAL, TYPE_FAIRY} +#else + #define JIGGLYPUFF_FAMILY_TYPES { TYPE_NORMAL, TYPE_NORMAL} +#endif + +#if P_GEN_2_CROSS_EVOS + [SPECIES_IGGLYBUFF] = + { + .baseHP = 90, + .baseAttack = 30, + .baseDefense = 15, + .baseSpeed = 15, + .baseSpAttack = 40, + .baseSpDefense = 20, + .types = JIGGLYPUFF_FAMILY_TYPES, + .catchRate = 170, + .expYield = 42, + .evYield_HP = 1, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 10, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_HEALER}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_CUTE_CHARM, ABILITY_COMPETITIVE, ABILITY_FRIEND_GUARD}, + .bodyColor = BODY_COLOR_PINK, + .noFlip = TRUE, + .speciesName = _("Igglybuff"), + .cryId = CRY_IGGLYBUFF, + .natDexNum = NATIONAL_DEX_IGGLYBUFF, + .categoryName = _("Balloon"), + .height = 3, + .weight = 10, + .description = COMPOUND_STRING( + "Its soft and pliable body is very bouncy.\n" + "When it sings continuously with all its\n" + "might, its body steadily turns a deepening\n" + "pink color."), + .pokemonScale = 457, + .pokemonOffset = -1, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Igglybuff, 32, 32), + .frontPicYOffset = 17, + .frontAnimFrames = sAnims_Igglybuff, + .frontAnimId = ANIM_SWING_CONCAVE_FAST, + BACK_PIC(Igglybuff, 40, 40), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Igglybuff), + ICON(Igglybuff, 1), + .footprint = gMonFootprint_Igglybuff, + LEARNSETS(Igglybuff), + .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_JIGGLYPUFF}), + }, +#endif //P_GEN_2_CROSS_EVOS - [SPECIES_MARILL] = + [SPECIES_JIGGLYPUFF] = { - .baseHP = 70, - .baseAttack = 20, - .baseDefense = 50, - .baseSpeed = 40, - .baseSpAttack = 20, - .baseSpDefense = 50, - #if P_UPDATED_TYPES >= GEN_6 - .types = { TYPE_WATER, TYPE_FAIRY}, - #else - .types = { TYPE_WATER, TYPE_WATER}, - #endif - .catchRate = 190, - .expYield = 88, + .baseHP = 115, + .baseAttack = 45, + .baseDefense = 20, + .baseSpeed = 20, + .baseSpAttack = 45, + .baseSpDefense = 25, + .types = JIGGLYPUFF_FAMILY_TYPES, + .catchRate = 170, + .expYield = 95, .evYield_HP = 2, - .genderRatio = PERCENT_FEMALE(50), + .itemRare = ITEM_MOON_STONE, + .genderRatio = PERCENT_FEMALE(75), .eggCycles = 10, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_THICK_FAT, ABILITY_HUGE_POWER, ABILITY_SAP_SIPPER}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, + .abilities = {ABILITY_CUTE_CHARM, ABILITY_COMPETITIVE, ABILITY_FRIEND_GUARD}, + .bodyColor = BODY_COLOR_PINK, + .noFlip = TRUE, + .speciesName = _("Jigglypuff"), + .cryId = CRY_JIGGLYPUFF, + .natDexNum = NATIONAL_DEX_JIGGLYPUFF, + .categoryName = _("Balloon"), + .height = 5, + .weight = 55, + .description = COMPOUND_STRING( + "Nothing can avoid falling asleep hearing a\n" + "Jigglypuff's song. The sound waves of its\n" + "singing voice match the brain waves of\n" + "someone in a deep sleep."), + .pokemonScale = 433, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Jigglypuff, 40, 40), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Jigglypuff, + .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL, + BACK_PIC(Jigglypuff, 56, 48), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Jigglypuff), + ICON(Jigglypuff, 0), + .footprint = gMonFootprint_Jigglypuff, + LEARNSETS(Jigglypuff), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_MOON_STONE, SPECIES_WIGGLYTUFF}), }, - [SPECIES_AZUMARILL] = + [SPECIES_WIGGLYTUFF] = { - .baseHP = 100, - .baseAttack = 50, - .baseDefense = 80, - .baseSpeed = 50, - .baseSpDefense = 80, - #if P_UPDATED_STATS >= GEN_6 - .baseSpAttack = 60, - #else - .baseSpAttack = 50, - #endif - #if P_UPDATED_TYPES >= GEN_6 - .types = { TYPE_WATER, TYPE_FAIRY}, - #else - .types = { TYPE_WATER, TYPE_WATER}, - #endif - .catchRate = 75, - .expYield = 189, + .baseHP = 140, + .baseAttack = 70, + .baseDefense = 45, + .baseSpeed = 45, + .baseSpAttack = P_UPDATED_STATS >= GEN_6 ? 85 : 75, + .baseSpDefense = 50, + .types = JIGGLYPUFF_FAMILY_TYPES, + .catchRate = 50, + .expYield = 196, .evYield_HP = 3, - .genderRatio = PERCENT_FEMALE(50), + .itemRare = ITEM_MOON_STONE, + .genderRatio = PERCENT_FEMALE(75), .eggCycles = 10, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_THICK_FAT, ABILITY_HUGE_POWER, ABILITY_SAP_SIPPER}, - .bodyColor = BODY_COLOR_BLUE, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, + .abilities = {ABILITY_CUTE_CHARM, ABILITY_COMPETITIVE, ABILITY_FRISK}, + .bodyColor = BODY_COLOR_PINK, + .noFlip = TRUE, + .speciesName = _("Wigglytuff"), + .cryId = CRY_WIGGLYTUFF, + .natDexNum = NATIONAL_DEX_WIGGLYTUFF, + .categoryName = _("Balloon"), + .height = 10, + .weight = 120, + .description = COMPOUND_STRING( + "Its fur is the ultimate in luxuriousness.\n" + "Sleeping alongside a Wigglytuff is simply\n" + "divine. Its body expands seemingly without\n" + "end when it inhales."), + .pokemonScale = 328, + .pokemonOffset = 11, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Wigglytuff, 48, 64), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Wigglytuff, + .frontAnimId = ANIM_H_JUMPS, + BACK_PIC(Wigglytuff, 56, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_GROW, + PALETTE(Wigglytuff), + ICON(Wigglytuff, 0), + .footprint = gMonFootprint_Wigglytuff, + LEARNSETS(Wigglytuff), + }, +#endif //P_FAMILY_JIGGLYPUFF + +#if P_FAMILY_ZUBAT + [SPECIES_ZUBAT] = + { + .baseHP = 40, + .baseAttack = 45, + .baseDefense = 35, + .baseSpeed = 55, + .baseSpAttack = 30, + .baseSpDefense = 40, + .types = { TYPE_POISON, TYPE_FLYING }, + .catchRate = 255, + .expYield = 49, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + .abilities = {ABILITY_INNER_FOCUS, ABILITY_NONE, ABILITY_INFILTRATOR}, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + .speciesName = _("Zubat"), + .cryId = CRY_ZUBAT, + .natDexNum = NATIONAL_DEX_ZUBAT, + .categoryName = _("Bat"), + .height = 8, + .weight = 75, + .description = COMPOUND_STRING( + "While living in pitch-black caverns, their\n" + "eyes gradually grew shut and deprived\n" + "them of vision. They use ultrasonic waves\n" + "to detect obstacles."), + .pokemonScale = 362, + .pokemonOffset = -5, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Zubat, 56, 48), + FRONT_PIC_FEMALE(Zubat, 56, 48), + .frontPicYOffset = 16, + .frontAnimFrames = sAnims_Zubat, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 16, + BACK_PIC(Zubat, 56, 56), + BACK_PIC_FEMALE(Zubat, 56, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Zubat), + ICON(Zubat, 2), + .footprint = gMonFootprint_Zubat, + LEARNSETS(Zubat), + .evolutions = EVOLUTION({EVO_LEVEL, 22, SPECIES_GOLBAT}), + }, + + [SPECIES_GOLBAT] = + { + .baseHP = 75, + .baseAttack = 80, + .baseDefense = 70, + .baseSpeed = 90, + .baseSpAttack = 65, + .baseSpDefense = 75, + .types = { TYPE_POISON, TYPE_FLYING }, + .catchRate = 90, + .expYield = 159, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + .abilities = {ABILITY_INNER_FOCUS, ABILITY_NONE, ABILITY_INFILTRATOR}, + .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, - }, - - [SPECIES_SUDOWOODO] = + .speciesName = _("Golbat"), + .cryId = CRY_GOLBAT, + .natDexNum = NATIONAL_DEX_GOLBAT, + .categoryName = _("Bat"), + .height = 16, + .weight = 550, + .description = COMPOUND_STRING( + "Its fangs easily puncture even thick\n" + "animal hide. It loves to feast on the blood\n" + "of people and Pokémon. It flits about in\n" + "darkness and strikes from behind."), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Golbat, 64, 56), + FRONT_PIC_FEMALE(Golbat, 64, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Golbat, + .frontAnimId = ANIM_H_SLIDE_WOBBLE, + .enemyMonElevation = 10, + BACK_PIC(Golbat, 56, 40), + BACK_PIC_FEMALE(Golbat, 56, 40), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Golbat), + ICON(Golbat, 2), + .footprint = gMonFootprint_Golbat, + LEARNSETS(Golbat), + .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_CROBAT}), + }, + +#if P_GEN_2_CROSS_EVOS + [SPECIES_CROBAT] = { - .baseHP = 70, - .baseAttack = 100, - .baseDefense = 115, - .baseSpeed = 30, - .baseSpAttack = 30, - .baseSpDefense = 65, - .types = { TYPE_ROCK, TYPE_ROCK }, - .catchRate = 65, - .expYield = 144, - .evYield_Defense = 2, + .baseHP = 85, + .baseAttack = 90, + .baseDefense = 80, + .baseSpeed = 130, + .baseSpAttack = 70, + .baseSpDefense = 80, + .types = { TYPE_POISON, TYPE_FLYING }, + .catchRate = 90, + .expYield = 241, + .evYield_Speed = 3, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_STURDY, ABILITY_ROCK_HEAD, ABILITY_RATTLED}, - .bodyColor = BODY_COLOR_BROWN, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + .abilities = {ABILITY_INNER_FOCUS, ABILITY_NONE, ABILITY_INFILTRATOR}, + .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, - }, - - [SPECIES_POLITOED] = + .speciesName = _("Crobat"), + .cryId = CRY_CROBAT, + .natDexNum = NATIONAL_DEX_CROBAT, + .categoryName = _("Bat"), + .height = 18, + .weight = 750, + .description = COMPOUND_STRING( + "Over the course of evolution, its hind legs\n" + "turned into wings. By alternately resting\n" + "its front and rear wings, it can fly all day\n" + "without having to stop."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 281, + .trainerOffset = 1, + FRONT_PIC(Crobat, 64, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Crobat, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 9, + BACK_PIC(Crobat, 64, 64), + .backPicYOffset = 1, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(Crobat), + ICON(Crobat, 2), + .footprint = gMonFootprint_Crobat, + LEARNSETS(Crobat), + }, +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ZUBAT + +#if P_FAMILY_ODDISH + [SPECIES_ODDISH] = { - .baseHP = 90, - .baseAttack = 75, - .baseDefense = 75, - .baseSpeed = 70, - .baseSpAttack = 90, - .baseSpDefense = 100, - .types = { TYPE_WATER, TYPE_WATER }, - .catchRate = 45, - .expYield = 225, - .evYield_SpDefense = 3, - .itemRare = ITEM_KINGS_ROCK, + .baseHP = 45, + .baseAttack = 50, + .baseDefense = 55, + .baseSpeed = 30, + .baseSpAttack = 75, + .baseSpDefense = 65, + .types = { TYPE_GRASS, TYPE_POISON }, + .catchRate = 255, + .expYield = 64, + .evYield_SpAttack = 1, + .itemRare = ITEM_ABSORB_BULB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_WATER_ABSORB, ABILITY_DAMP, ABILITY_DRIZZLE}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = TRUE, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, + .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_RUN_AWAY}, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + .speciesName = _("Oddish"), + .cryId = CRY_ODDISH, + .natDexNum = NATIONAL_DEX_ODDISH, + .categoryName = _("Weed"), + .height = 5, + .weight = 54, + .description = COMPOUND_STRING( + "This Pokémon grows by absorbing moonlight.\n" + "During the daytime, it buries itself in the\n" + "ground, leaving only its leaves exposed to\n" + "avoid detection by its enemies."), + .pokemonScale = 423, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Oddish, 40, 40), + .frontPicYOffset = 15, + .frontAnimFrames = sAnims_Oddish, + .frontAnimId = ANIM_V_JUMPS_H_JUMPS, + BACK_PIC(Oddish, 48, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Oddish), + ICON(Oddish, 4), + .footprint = gMonFootprint_Oddish, + LEARNSETS(Oddish), + .evolutions = EVOLUTION({EVO_LEVEL, 21, SPECIES_GLOOM}), }, - [SPECIES_HOPPIP] = + [SPECIES_GLOOM] = { - .baseHP = 35, - .baseAttack = 35, - .baseDefense = 40, - .baseSpeed = 50, - .baseSpAttack = 35, - .baseSpDefense = 55, - .types = { TYPE_GRASS, TYPE_FLYING }, - .catchRate = 255, - .expYield = 50, - .evYield_SpDefense = 1, + .baseHP = 60, + .baseAttack = 65, + .baseDefense = 70, + .baseSpeed = 40, + .baseSpAttack = 85, + .baseSpDefense = 75, + .types = { TYPE_GRASS, TYPE_POISON }, + .catchRate = 120, + .expYield = 138, + .evYield_SpAttack = 2, + .itemRare = ITEM_ABSORB_BULB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS}, - .abilities = {ABILITY_CHLOROPHYLL, ABILITY_LEAF_GUARD, ABILITY_INFILTRATOR}, - .bodyColor = BODY_COLOR_PINK, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, + .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_STENCH}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Gloom"), + .cryId = CRY_GLOOM, + .natDexNum = NATIONAL_DEX_GLOOM, + .categoryName = _("Weed"), + .height = 8, + .weight = 86, + .description = COMPOUND_STRING( + "A horribly noxious honey drools from its\n" + "mouth. One whiff of the honey can result\n" + "in memory loss. Some fans are said to\n" + "enjoy this overwhelming stink, however."), + .pokemonScale = 329, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Gloom, 56, 48), + FRONT_PIC_FEMALE(Gloom, 56, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Gloom, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + BACK_PIC(Gloom, 64, 48), + BACK_PIC_FEMALE(Gloom, 64, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Gloom), + ICON(Gloom, 0), + .footprint = gMonFootprint_Gloom, + LEARNSETS(Gloom), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_LEAF_STONE, SPECIES_VILEPLUME}, + {EVO_ITEM, ITEM_SUN_STONE, SPECIES_BELLOSSOM}), }, - [SPECIES_SKIPLOOM] = + [SPECIES_VILEPLUME] = { - .baseHP = 55, - .baseAttack = 45, - .baseDefense = 50, - .baseSpeed = 80, - .baseSpAttack = 45, - .baseSpDefense = 65, - .types = { TYPE_GRASS, TYPE_FLYING }, - .catchRate = 120, - .expYield = 119, - .evYield_Speed = 2, + .baseHP = 75, + .baseAttack = 80, + .baseDefense = 85, + .baseSpeed = 50, + .baseSpAttack = P_UPDATED_STATS >= GEN_6 ? 110 : 100, + .baseSpDefense = 90, + .types = { TYPE_GRASS, TYPE_POISON}, + .catchRate = 45, + .expYield = 221, + .evYield_SpAttack = 3, + .itemRare = ITEM_ABSORB_BULB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS}, - .abilities = {ABILITY_CHLOROPHYLL, ABILITY_LEAF_GUARD, ABILITY_INFILTRATOR}, - .bodyColor = BODY_COLOR_GREEN, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, + .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_EFFECT_SPORE}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, - }, - - [SPECIES_JUMPLUFF] = + .speciesName = _("Vileplume"), + .cryId = CRY_VILEPLUME, + .natDexNum = NATIONAL_DEX_VILEPLUME, + .categoryName = _("Flower"), + .height = 12, + .weight = 186, + .description = COMPOUND_STRING( + "In seasons when it produces more pollen,\n" + "the air around a Vileplume turns yellow\n" + "with the powder as it walks. The pollen is\n" + "highly toxic and causes paralysis."), + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Vileplume, 56, 56), + FRONT_PIC_FEMALE(Vileplume, 56, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Vileplume, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + BACK_PIC(Vileplume, 64, 56), + BACK_PIC_FEMALE(Vileplume, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(Vileplume), + ICON(Vileplume, 0), + .footprint = gMonFootprint_Vileplume, + LEARNSETS(Vileplume), + }, + +#if P_GEN_2_CROSS_EVOS + [SPECIES_BELLOSSOM] = { .baseHP = 75, - .baseAttack = 55, - .baseDefense = 70, - .baseSpeed = 110, - .baseSpAttack = 55, - #if P_UPDATED_STATS >= GEN_6 - .baseSpDefense = 95, - #else - .baseSpDefense = 85, - #endif - .types = { TYPE_GRASS, TYPE_FLYING}, + .baseAttack = 80, + .baseDefense = P_UPDATED_STATS >= GEN_6 ? 95 : 85, + .baseSpeed = 50, + .baseSpAttack = 90, + .baseSpDefense = 100, + .types = { TYPE_GRASS, TYPE_GRASS}, .catchRate = 45, - .expYield = 207, - .evYield_Speed = 3, + .expYield = 221, + .evYield_SpDefense = 3, + .itemRare = ITEM_ABSORB_BULB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS}, - .abilities = {ABILITY_CHLOROPHYLL, ABILITY_LEAF_GUARD, ABILITY_INFILTRATOR}, - .bodyColor = BODY_COLOR_BLUE, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, + .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_HEALER}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - }, - - [SPECIES_AIPOM] = + .speciesName = _("Bellossom"), + .cryId = CRY_BELLOSSOM, + .natDexNum = NATIONAL_DEX_BELLOSSOM, + .categoryName = _("Flower"), + .height = 4, + .weight = 58, + .description = COMPOUND_STRING( + "Its flower petals deepen in color through\n" + "exposure to sunlight. When cloudy weather\n" + "persists, it does a dance that is thought\n" + "to be a ritual for summoning the sun."), + .pokemonScale = 472, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Bellossom, 32, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Bellossom, + .frontAnimId = ANIM_H_SLIDE_SLOW, + BACK_PIC(Bellossom, 48, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Bellossom), + ICON(Bellossom, 1), + .footprint = gMonFootprint_Bellossom, + LEARNSETS(Bellossom), + }, +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ODDISH + +#if P_FAMILY_PARAS + [SPECIES_PARAS] = { - .baseHP = 55, + .baseHP = 35, .baseAttack = 70, .baseDefense = 55, - .baseSpeed = 85, - .baseSpAttack = 40, + .baseSpeed = 25, + .baseSpAttack = 45, .baseSpDefense = 55, - .types = { TYPE_NORMAL, TYPE_NORMAL }, - .catchRate = 45, - .expYield = 72, - .evYield_Speed = 1, + .types = { TYPE_BUG, TYPE_GRASS }, + .catchRate = 190, + .expYield = 57, + .evYield_Attack = 1, + .itemCommon = ITEM_TINY_MUSHROOM, + .itemRare = ITEM_BIG_MUSHROOM, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_RUN_AWAY, ABILITY_PICKUP, ABILITY_SKILL_LINK}, - .bodyColor = BODY_COLOR_PURPLE, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_GRASS}, + .abilities = {ABILITY_EFFECT_SPORE, ABILITY_DRY_SKIN, ABILITY_DAMP}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, + .speciesName = _("Paras"), + .cryId = CRY_PARAS, + .natDexNum = NATIONAL_DEX_PARAS, + .categoryName = _("Mushroom"), + .height = 3, + .weight = 54, + .description = COMPOUND_STRING( + "A Paras has parasitic tochukaso\n" + "mushrooms growing on its back. They grow\n" + "by drawing nutrients from the host. They\n" + "are valued as a medicine for long life."), + .pokemonScale = 593, + .pokemonOffset = 22, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Paras, 48, 40), + .frontPicYOffset = 15, + .frontAnimFrames = sAnims_Paras, + .frontAnimId = ANIM_H_SLIDE_SLOW, + .frontAnimDelay = 10, + BACK_PIC(Paras, 64, 32), + .backPicYOffset = 18, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Paras), + ICON(Paras, 0), + .footprint = gMonFootprint_Paras, + LEARNSETS(Paras), + .evolutions = EVOLUTION({EVO_LEVEL, 24, SPECIES_PARASECT}), }, - [SPECIES_SUNKERN] = + [SPECIES_PARASECT] = { - .baseHP = 30, - .baseAttack = 30, - .baseDefense = 30, + .baseHP = 60, + .baseAttack = 95, + .baseDefense = 80, .baseSpeed = 30, - .baseSpAttack = 30, - .baseSpDefense = 30, - .types = { TYPE_GRASS, TYPE_GRASS }, - .catchRate = 235, - .expYield = 36, - .evYield_SpAttack = 1, + .baseSpAttack = 60, + .baseSpDefense = 80, + .types = { TYPE_BUG, TYPE_GRASS }, + .catchRate = 75, + .expYield = 142, + .evYield_Attack = 2, + .evYield_Defense = 1, + .itemCommon = ITEM_TINY_MUSHROOM, + .itemRare = ITEM_BIG_MUSHROOM, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_CHLOROPHYLL, ABILITY_SOLAR_POWER, ABILITY_EARLY_BIRD}, - .bodyColor = BODY_COLOR_YELLOW, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_GRASS}, + .abilities = {ABILITY_EFFECT_SPORE, ABILITY_DRY_SKIN, ABILITY_DAMP}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, - }, - - [SPECIES_SUNFLORA] = + .speciesName = _("Parasect"), + .cryId = CRY_PARASECT, + .natDexNum = NATIONAL_DEX_PARASECT, + .categoryName = _("Mushroom"), + .height = 10, + .weight = 295, + .description = COMPOUND_STRING( + "Parasect are known to infest the roots of\n" + "large trees en masse and drain nutrients.\n" + "When an infested tree dies, they move\n" + "onto another tree all at once."), + .pokemonScale = 307, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Parasect, 56, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Parasect, + .frontAnimId = ANIM_H_SHAKE, + .frontAnimDelay = 45, + BACK_PIC(Parasect, 64, 40), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_H_SHAKE, + PALETTE(Parasect), + ICON(Parasect, 0), + .footprint = gMonFootprint_Parasect, + LEARNSETS(Parasect), + }, +#endif //P_FAMILY_PARAS + +#if P_FAMILY_VENONAT + [SPECIES_VENONAT] = { - .baseHP = 75, - .baseAttack = 75, - .baseDefense = 55, - .baseSpeed = 30, - .baseSpAttack = 105, - .baseSpDefense = 85, - .types = { TYPE_GRASS, TYPE_GRASS }, - .catchRate = 120, - .expYield = 149, - .evYield_SpAttack = 2, + .baseHP = 60, + .baseAttack = 55, + .baseDefense = 50, + .baseSpeed = 45, + .baseSpAttack = 40, + .baseSpDefense = 55, + .types = { TYPE_BUG, TYPE_POISON }, + .catchRate = 190, + .expYield = 61, + .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_CHLOROPHYLL, ABILITY_SOLAR_POWER, ABILITY_EARLY_BIRD}, - .bodyColor = BODY_COLOR_YELLOW, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_COMPOUND_EYES, ABILITY_TINTED_LENS, ABILITY_RUN_AWAY}, + .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, + .speciesName = _("Venonat"), + .cryId = CRY_VENONAT, + .natDexNum = NATIONAL_DEX_VENONAT, + .categoryName = _("Insect"), + .height = 10, + .weight = 300, + .description = COMPOUND_STRING( + "Its coat of thin, stiff hair that covers\n" + "its entire body is said to have evolved\n" + "for protection. Its large eyes never fail\n" + "to spot even miniscule prey."), + .pokemonScale = 360, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = -1, + FRONT_PIC(Venonat, 40, 56), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Venonat, + .frontAnimId = ANIM_V_JUMPS_H_JUMPS, + .frontAnimDelay = 20, + BACK_PIC(Venonat, 64, 56), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, + PALETTE(Venonat), + ICON(Venonat, 2), + .footprint = gMonFootprint_Venonat, + LEARNSETS(Venonat), + .evolutions = EVOLUTION({EVO_LEVEL, 31, SPECIES_VENOMOTH}), }, - [SPECIES_YANMA] = + [SPECIES_VENOMOTH] = { - .baseHP = 65, + .baseHP = 70, .baseAttack = 65, - .baseDefense = 45, - .baseSpeed = 95, - .baseSpAttack = 75, - .baseSpDefense = 45, - .types = { TYPE_BUG, TYPE_FLYING }, + .baseDefense = 60, + .baseSpeed = 90, + .baseSpAttack = 90, + .baseSpDefense = 75, + .types = { TYPE_BUG, TYPE_POISON }, .catchRate = 75, - .expYield = 78, + .expYield = 158, .evYield_Speed = 1, - .itemRare = ITEM_WIDE_LENS, + .evYield_SpAttack = 1, + .itemRare = ITEM_SHED_SHELL, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SPEED_BOOST, ABILITY_COMPOUND_EYES, ABILITY_FRISK}, - .bodyColor = BODY_COLOR_RED, + .abilities = {ABILITY_SHIELD_DUST, ABILITY_TINTED_LENS, ABILITY_WONDER_SKIN}, + .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, + .speciesName = _("Venomoth"), + .cryId = CRY_VENOMOTH, + .natDexNum = NATIONAL_DEX_VENOMOTH, + .categoryName = _("Poison Moth"), + .height = 15, + .weight = 125, + .description = COMPOUND_STRING( + "Venomoth are nocturnal--they are only\n" + "active at night. Their favorite prey are\n" + "insects that gather around streetlights,\n" + "attracted by the light in the darkness."), + .pokemonScale = 285, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 1, + FRONT_PIC(Venomoth, 64, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Venomoth, + .frontAnimId = ANIM_ZIGZAG_SLOW, + .enemyMonElevation = 16, + BACK_PIC(Venomoth, 64, 56), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Venomoth), + ICON(Venomoth, 2), + .footprint = gMonFootprint_Venomoth, + LEARNSETS(Venomoth), + }, +#endif //P_FAMILY_VENONAT + +#if P_FAMILY_DIGLETT +#define DIGLETT_FAMILY_MISC_INFO \ + .itemRare = ITEM_SOFT_SAND, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, \ + .bodyColor = BODY_COLOR_BROWN + +#define DIGLETT_MISC_INFO \ + .catchRate = 255, \ + .expYield = 53, \ + .evYield_Speed = 1, \ + .noFlip = FALSE, \ + .speciesName = _("Diglett"), \ + .cryId = CRY_DIGLETT, \ + .natDexNum = NATIONAL_DEX_DIGLETT, \ + .categoryName = _("Mole"), \ + .height = 2, \ + .pokemonScale = 833, \ + .pokemonOffset = 25, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Diglett, \ + .formSpeciesIdTable = sDiglettFormSpeciesIdTable, \ + DIGLETT_FAMILY_MISC_INFO + +#define DUGTRIO_MISC_INFO \ + .catchRate = 50, \ + .expYield = 149, \ + .evYield_Speed = 2, \ + .speciesName = _("Dugtrio"), \ + .cryId = CRY_DUGTRIO, \ + .natDexNum = NATIONAL_DEX_DUGTRIO, \ + .categoryName = _("Mole"), \ + .height = 7, \ + .pokemonScale = 406, \ + .pokemonOffset = 18, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + DIGLETT_FAMILY_MISC_INFO + +#define DUGTRIO_ATTACK (P_UPDATED_STATS >= GEN_7 ? 100 : 80) + + [SPECIES_DIGLETT] = + { + DIGLETT_MISC_INFO, + .baseHP = 10, + .baseAttack = 55, + .baseDefense = 25, + .baseSpeed = 95, + .baseSpAttack = 35, + .baseSpDefense = 45, + .types = { TYPE_GROUND, TYPE_GROUND }, + .abilities = {ABILITY_SAND_VEIL, ABILITY_ARENA_TRAP, ABILITY_SAND_FORCE}, + .weight = 8, + .description = COMPOUND_STRING( + "Diglett are raised in most farms.\n" + "The reason is simple--wherever they\n" + "burrow, the soil is left perfectly tilled\n" + "for growing delicious crops."), + FRONT_PIC(Diglett, 32, 32), + .frontPicYOffset = 17, + .frontAnimFrames = sAnims_Diglett, + .frontAnimId = ANIM_V_SHAKE, + .frontAnimDelay = 25, + BACK_PIC(Diglett, 40, 40), + .backPicYOffset = 14, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Diglett), + ICON(Diglett, 2), + LEARNSETS(Diglett), + .evolutions = EVOLUTION({EVO_LEVEL, 26, SPECIES_DUGTRIO}), }, - [SPECIES_WOOPER] = + [SPECIES_DUGTRIO] = { - .baseHP = 55, - .baseAttack = 45, - .baseDefense = 45, - .baseSpeed = 15, - .baseSpAttack = 25, - .baseSpDefense = 25, - .types = { TYPE_WATER, TYPE_GROUND }, - .catchRate = 255, - .expYield = 42, - .evYield_HP = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, - .abilities = {ABILITY_DAMP, ABILITY_WATER_ABSORB, ABILITY_UNAWARE}, - .bodyColor = BODY_COLOR_BLUE, + DUGTRIO_MISC_INFO, + .baseHP = 35, + .baseAttack = DUGTRIO_ATTACK, + .baseDefense = 50, + .baseSpeed = 120, + .baseSpAttack = 50, + .baseSpDefense = 70, + .types = { TYPE_GROUND, TYPE_GROUND}, + .abilities = {ABILITY_SAND_VEIL, ABILITY_ARENA_TRAP, ABILITY_SAND_FORCE}, .noFlip = FALSE, + .weight = 333, + .description = COMPOUND_STRING( + "Because the triplets originally split from\n" + "one body, they think exactly alike.\n" + "They work cooperatively to burrow\n" + "endlessly through the ground."), + FRONT_PIC(Dugtrio, 48, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Dugtrio, + .frontAnimId = ANIM_H_SHAKE_SLOW, + .frontAnimDelay = 35, + BACK_PIC(Dugtrio, 48, 32), + .backPicYOffset = 17, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Dugtrio), + ICON(Dugtrio, 2), + LEARNSETS(Dugtrio), + }, + +#if P_ALOLAN_FORMS + [SPECIES_DIGLETT_ALOLAN] = + { + DIGLETT_MISC_INFO, + .baseHP = 10, + .baseAttack = 55, + .baseDefense = 30, + .baseSpeed = 90, + .baseSpAttack = 35, + .baseSpDefense = 45, + .types = { TYPE_GROUND, TYPE_STEEL}, + .abilities = {ABILITY_SAND_VEIL, ABILITY_TANGLING_HAIR, ABILITY_SAND_FORCE}, + .weight = 10, + .description = COMPOUND_STRING( + "The metal-rich geology of its habitat\n" + "caused it to develop steel whiskers on its\n" + "head that change shape depending on its\n" + "mood and when communicating with others."), + FRONT_PIC(DiglettAlolan, 32, 40), + .frontPicYOffset = 19, + .frontAnimFrames = sAnims_DiglettAlolan, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(DiglettAlolan, 40, 48), + .backPicYOffset = 14, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(DiglettAlolan), + ICON(DiglettAlolan, 2), + LEARNSETS(DiglettAlolan), + .isAlolanForm = TRUE, + .evolutions = EVOLUTION({EVO_LEVEL, 26, SPECIES_DUGTRIO_ALOLAN}), }, - [SPECIES_QUAGSIRE] = + [SPECIES_DUGTRIO_ALOLAN] = { - .baseHP = 95, - .baseAttack = 85, - .baseDefense = 85, - .baseSpeed = 35, - .baseSpAttack = 65, - .baseSpDefense = 65, - .types = { TYPE_WATER, TYPE_GROUND }, - .catchRate = 90, - .expYield = 151, - .evYield_HP = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, - .abilities = {ABILITY_DAMP, ABILITY_WATER_ABSORB, ABILITY_UNAWARE}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, + DUGTRIO_MISC_INFO, + .baseHP = 35, + .baseAttack = DUGTRIO_ATTACK, + .baseDefense = 60, + .baseSpeed = 110, + .baseSpAttack = 50, + .baseSpDefense = 70, + .types = { TYPE_GROUND, TYPE_STEEL}, + .abilities = {ABILITY_SAND_VEIL, ABILITY_TANGLING_HAIR, ABILITY_SAND_FORCE}, + .noFlip = TRUE, + .weight = 666, + .description = COMPOUND_STRING( + "Their beautiful, metallic whiskers create\n" + "a sort of protective helmet on\n" + "heir heads, and they also function\n" + "as highly precise sensors."), + FRONT_PIC(DugtrioAlolan, 48, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_DugtrioAlolan, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(DugtrioAlolan, 64, 32), + .backPicYOffset = 17, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(DugtrioAlolan), + ICON(DugtrioAlolan, 2), + LEARNSETS(DugtrioAlolan), + .isAlolanForm = TRUE, + }, +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_DIGLETT + +#if P_FAMILY_MEOWTH +#define MEOWTH_MISC_INFO \ + .catchRate = 255, \ + .expYield = 58, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, \ + .noFlip = FALSE, \ + .speciesName = _("Meowth"), \ + .cryId = CRY_MEOWTH, \ + .natDexNum = NATIONAL_DEX_MEOWTH, \ + .categoryName = _("Scratch Cat"), \ + .footprint = gMonFootprint_Meowth, \ + .formSpeciesIdTable = sMeowthFormSpeciesIdTable + +#define PERSIAN_MISC_INFO \ + .catchRate = 90, \ + .expYield = 154, \ + .evYield_Speed = 2, \ + .itemRare = ITEM_QUICK_CLAW, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, \ + .noFlip = FALSE, \ + .speciesName = _("Persian"), \ + .cryId = CRY_PERSIAN, \ + .natDexNum = NATIONAL_DEX_PERSIAN, \ + .categoryName = _("Classy Cat"), \ + .footprint = gMonFootprint_Persian, \ + .formSpeciesIdTable = sPersianFormSpeciesIdTable + + [SPECIES_MEOWTH] = + { + MEOWTH_MISC_INFO, + .baseHP = 40, + .baseAttack = 45, + .baseDefense = 35, + .baseSpeed = 90, + .baseSpAttack = 40, + .baseSpDefense = 40, + .evYield_Speed = 1, + .types = { TYPE_NORMAL, TYPE_NORMAL }, + .itemRare = ITEM_QUICK_CLAW, + .abilities = {ABILITY_PICKUP, ABILITY_TECHNICIAN, ABILITY_UNNERVE}, + .bodyColor = BODY_COLOR_YELLOW, + .height = 4, + .weight = 42, + .description = COMPOUND_STRING( + "Meowth withdraw their sharp claws into\n" + "their paws to silently sneak about.\n" + "For some reason, this Pokémon loves\n" + "shiny coins that glitter with light."), + .pokemonScale = 480, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Meowth, 48, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Meowth, + .frontAnimId = ANIM_V_JUMPS_SMALL, + .frontAnimDelay = 40, + BACK_PIC(Meowth, 56, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, + PALETTE(Meowth), + ICON(Meowth, 1), + LEARNSETS(Meowth), + .formChangeTable = sMeowthFormChangeTable, + .evolutions = EVOLUTION({EVO_LEVEL, 28, SPECIES_PERSIAN}), }, - [SPECIES_ESPEON] = + [SPECIES_PERSIAN] = { + PERSIAN_MISC_INFO, .baseHP = 65, - .baseAttack = 65, + .baseAttack = 70, .baseDefense = 60, - .baseSpeed = 110, - .baseSpAttack = 130, - .baseSpDefense = 95, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, - .catchRate = 45, - .expYield = 184, - .evYield_SpAttack = 2, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 35, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SYNCHRONIZE, ABILITY_SYNCHRONIZE, ABILITY_MAGIC_BOUNCE}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, + .baseSpeed = 115, + .baseSpAttack = 65, + .baseSpDefense = 65, + .types = { TYPE_NORMAL, TYPE_NORMAL }, + .abilities = {ABILITY_LIMBER, ABILITY_TECHNICIAN, ABILITY_UNNERVE}, + .bodyColor = BODY_COLOR_YELLOW, + .height = 10, + .weight = 320, + .description = COMPOUND_STRING( + "A Persian's six bold whiskers sense air\n" + "movements to determine what is in its\n" + "vicinity. It becomes docile if grabbed\n" + "by the whiskers."), + .pokemonScale = 320, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Persian, 64, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Persian, + .frontAnimId = ANIM_V_STRETCH, + .frontAnimDelay = 20, + BACK_PIC(Persian, 64, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(Persian), + ICON(Persian, 1), + LEARNSETS(Persian), + }, + +#if P_ALOLAN_FORMS + [SPECIES_MEOWTH_ALOLAN] = + { + MEOWTH_MISC_INFO, + .baseHP = 40, + .baseAttack = 35, + .baseDefense = 35, + .baseSpeed = 90, + .baseSpAttack = 50, + .baseSpDefense = 40, + .evYield_Speed = 1, + .types = { TYPE_DARK, TYPE_DARK }, + .itemRare = ITEM_QUICK_CLAW, + .abilities = {ABILITY_PICKUP, ABILITY_TECHNICIAN, ABILITY_RATTLED}, + .bodyColor = BODY_COLOR_GRAY, + .height = 4, + .weight = 42, + .description = COMPOUND_STRING( + "It's accustomed to luxury because it used\n" + "to live with Alolan royalty. Highly smart\n" + "and proud, it's famously difficult to\n" + "handle, but that also makes it popular."), + .pokemonScale = 480, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(MeowthAlolan, 48, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_MeowthAlolan, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(MeowthAlolan, 64, 56), + .backPicYOffset = 7, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(MeowthAlolan), + ICON(MeowthAlolan, 2), + LEARNSETS(MeowthAlolan), + .isAlolanForm = TRUE, + .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_PERSIAN_ALOLAN}), }, - [SPECIES_UMBREON] = + [SPECIES_PERSIAN_ALOLAN] = { - .baseHP = 95, + PERSIAN_MISC_INFO, + .baseHP = 65, + .baseAttack = 60, + .baseDefense = 60, + .baseSpeed = 115, + .baseSpAttack = 75, + .baseSpDefense = 65, + .types = { TYPE_DARK, TYPE_DARK}, + .abilities = {ABILITY_FUR_COAT, ABILITY_TECHNICIAN, ABILITY_RATTLED}, + .bodyColor = BODY_COLOR_GRAY, + .height = 11, + .weight = 330, + .description = COMPOUND_STRING( + "It looks down on everyone other than\n" + "itself. In contrast to its lovely face, it\n" + "is so brutal that it tortures its weakened\n" + "prey rather than finishing them off."), + .pokemonScale = 320, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(PersianAlolan, 56, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_PersianAlolan, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(PersianAlolan, 64, 56), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(PersianAlolan), + ICON(PersianAlolan, 2), + LEARNSETS(PersianAlolan), + .isAlolanForm = TRUE, + }, +#endif //P_ALOLAN_FORMS + +#if P_GALARIAN_FORMS + [SPECIES_MEOWTH_GALARIAN] = + { + MEOWTH_MISC_INFO, + .baseHP = 50, .baseAttack = 65, - .baseDefense = 110, - .baseSpeed = 65, - .baseSpAttack = 60, - .baseSpDefense = 130, - .types = { TYPE_DARK, TYPE_DARK }, - .catchRate = 45, - .expYield = 184, - .evYield_SpDefense = 2, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 35, - .friendship = 35, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SYNCHRONIZE, ABILITY_SYNCHRONIZE, ABILITY_INNER_FOCUS}, - .bodyColor = BODY_COLOR_BLACK, - .noFlip = FALSE, + .baseDefense = 55, + .baseSpeed = 40, + .baseSpAttack = 40, + .baseSpDefense = 40, + .evYield_Attack = 1, + .types = { TYPE_STEEL, TYPE_STEEL }, + .abilities = {ABILITY_PICKUP, ABILITY_TOUGH_CLAWS, ABILITY_UNNERVE}, + .bodyColor = BODY_COLOR_BROWN, + .height = 4, + .weight = 75, + .description = COMPOUND_STRING( + "Living with a savage, seafaring people has\n" + "hardened its body so much that parts of it\n" + "turned to iron. Darker coins are harder\n" + "and garner more respect among Meowth."), + .pokemonScale = 480, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(MeowthGalarian, 48, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_MeowthGalarian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(MeowthGalarian, 64, 56), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(MeowthGalarian), + ICON(MeowthGalarian, 0), + LEARNSETS(MeowthGalarian), + .isGalarianForm = TRUE, + .evolutions = EVOLUTION({EVO_LEVEL, 28, SPECIES_PERRSERKER}), }, - [SPECIES_MURKROW] = + [SPECIES_PERRSERKER] = { - .baseHP = 60, - .baseAttack = 85, - .baseDefense = 42, - .baseSpeed = 91, - .baseSpAttack = 85, - .baseSpDefense = 42, - .types = { TYPE_DARK, TYPE_FLYING }, - .catchRate = 30, - .expYield = 81, - .evYield_Speed = 1, + .baseHP = 70, + .baseAttack = 110, + .baseDefense = 100, + .baseSpeed = 50, + .baseSpAttack = 50, + .baseSpDefense = 60, + .types = { TYPE_STEEL, TYPE_STEEL}, + .catchRate = 90, + .expYield = 154, + .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 35, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_INSOMNIA, ABILITY_SUPER_LUCK, ABILITY_PRANKSTER}, - .bodyColor = BODY_COLOR_BLACK, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_BATTLE_ARMOR, ABILITY_TOUGH_CLAWS, ABILITY_STEELY_SPIRIT}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - }, - - [SPECIES_SLOWKING] = + .speciesName = _("Perrserker"), + .cryId = CRY_PERRSERKER, + .natDexNum = NATIONAL_DEX_PERRSERKER, + .categoryName = _("Viking"), + .height = 8, + .weight = 280, + .description = COMPOUND_STRING( + "What appears to be an iron helmet is\n" + "actually hardened hair. This Pokémon\n" + "lives for the thrill of battle."), + .pokemonScale = 366, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Perrserker, 48, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Perrserker, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Perrserker, 64, 56), + .backPicYOffset = 5, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Perrserker), + ICON(Perrserker, 2), + .footprint = gMonFootprint_Perrserker, + LEARNSETS(Perrserker), + }, +#endif //P_GALARIAN_FORMS + +#if P_GIGANTAMAX_FORMS + [SPECIES_MEOWTH_GIGANTAMAX] = { - .baseHP = 95, - .baseAttack = 75, - .baseDefense = 80, - .baseSpeed = 30, - .baseSpAttack = 100, - .baseSpDefense = 110, - .types = { TYPE_WATER, TYPE_PSYCHIC }, - .catchRate = 70, - .expYield = 172, - .evYield_SpDefense = 3, - .itemRare = ITEM_KINGS_ROCK, + MEOWTH_MISC_INFO, + .baseHP = 40, + .baseAttack = 45, + .baseDefense = 35, + .baseSpeed = 90, + .baseSpAttack = 40, + .baseSpDefense = 40, + .evYield_Speed = 1, + .types = { TYPE_NORMAL, TYPE_NORMAL }, + .itemRare = ITEM_QUICK_CLAW, + .abilities = {ABILITY_PICKUP, ABILITY_TECHNICIAN, ABILITY_UNNERVE}, + .bodyColor = BODY_COLOR_YELLOW, + .height = 330, + .weight = 0, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 480, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(MeowthGigantamax, 64, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_MeowthGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(MeowthGigantamax, 64, 64), + .backPicYOffset = 5, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(MeowthGigantamax), + ICON(MeowthGigantamax, 1), + LEARNSETS(Meowth), + .isGigantamax = TRUE, + .formChangeTable = sMeowthFormChangeTable, + }, +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_MEOWTH + +#if P_FAMILY_PSYDUCK + [SPECIES_PSYDUCK] = + { + .baseHP = 50, + .baseAttack = 52, + .baseDefense = 48, + .baseSpeed = 55, + .baseSpAttack = 65, + .baseSpDefense = 50, + .types = { TYPE_WATER, TYPE_WATER }, + .catchRate = 190, + .expYield = 64, + .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_OBLIVIOUS, ABILITY_OWN_TEMPO, ABILITY_REGENERATOR}, - .bodyColor = BODY_COLOR_PINK, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, + .abilities = {ABILITY_DAMP, ABILITY_CLOUD_NINE, ABILITY_SWIFT_SWIM}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, + .speciesName = _("Psyduck"), + .cryId = CRY_PSYDUCK, + .natDexNum = NATIONAL_DEX_PSYDUCK, + .categoryName = _("Duck"), + .height = 8, + .weight = 196, + .description = COMPOUND_STRING( + "When its headache intensifies, it starts\n" + "using strange powers. However, it has no\n" + "recollection of its powers, so it always\n" + "looks befuddled and bewildered."), + .pokemonScale = 369, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Psyduck, 40, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Psyduck, + .frontAnimId = ANIM_V_JUMPS_H_JUMPS, + BACK_PIC(Psyduck, 48, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Psyduck), + ICON(Psyduck, 1), + .footprint = gMonFootprint_Psyduck, + LEARNSETS(Psyduck), + .evolutions = EVOLUTION({EVO_LEVEL, 33, SPECIES_GOLDUCK}), }, - [SPECIES_MISDREAVUS] = + [SPECIES_GOLDUCK] = { - .baseHP = 60, - .baseAttack = 60, - .baseDefense = 60, + .baseHP = 80, + .baseAttack = 82, + .baseDefense = 78, .baseSpeed = 85, - .baseSpAttack = 85, - .baseSpDefense = 85, - .types = { TYPE_GHOST, TYPE_GHOST }, - .catchRate = 45, - .expYield = 87, - .evYield_SpDefense = 1, + .baseSpAttack = 95, + .baseSpDefense = 80, + .types = { TYPE_WATER, TYPE_WATER }, + .catchRate = 75, + .expYield = 175, + .evYield_SpAttack = 2, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, - .friendship = 35, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, - .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GRAY, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, + .abilities = {ABILITY_DAMP, ABILITY_CLOUD_NINE, ABILITY_SWIFT_SWIM}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - }, - - [SPECIES_UNOWN] = UNOWN_SPECIES_INFO(FLIP), - - [SPECIES_WOBBUFFET] = + .speciesName = _("Golduck"), + .cryId = CRY_GOLDUCK, + .natDexNum = NATIONAL_DEX_GOLDUCK, + .categoryName = _("Duck"), + .height = 17, + .weight = 766, + .description = COMPOUND_STRING( + "A Golduck is an adept swimmer.\n" + "It sometimes joins competitive swimmers\n" + "in training. It uses psychic powers when\n" + "its forehead shimmers with light."), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 273, + .trainerOffset = 1, + FRONT_PIC(Golduck, 64, 64), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Golduck, + .frontAnimId = ANIM_H_SHAKE_SLOW, + BACK_PIC(Golduck, 64, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(Golduck), + ICON(Golduck, 0), + .footprint = gMonFootprint_Golduck, + LEARNSETS(Golduck), + }, +#endif //P_FAMILY_PSYDUCK + +#if P_FAMILY_MANKEY + [SPECIES_MANKEY] = { - .baseHP = 190, - .baseAttack = 33, - .baseDefense = 58, - .baseSpeed = 33, - .baseSpAttack = 33, - .baseSpDefense = 58, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, - .catchRate = 45, - .expYield = 142, - .evYield_HP = 2, + .baseHP = 40, + .baseAttack = 80, + .baseDefense = 35, + .baseSpeed = 70, + .baseSpAttack = 35, + .baseSpDefense = 45, + .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .catchRate = 190, + .expYield = 61, + .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_SHADOW_TAG, ABILITY_NONE, ABILITY_TELEPATHY}, - .bodyColor = BODY_COLOR_BLUE, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_VITAL_SPIRIT, ABILITY_ANGER_POINT, ABILITY_DEFIANT}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .speciesName = _("Mankey"), + .cryId = CRY_MANKEY, + .natDexNum = NATIONAL_DEX_MANKEY, + .categoryName = _("Pig Monkey"), + .height = 5, + .weight = 280, + .description = COMPOUND_STRING( + "When it starts shaking and its nasal\n" + "breathing turns rough, it's a sure sign\n" + "of anger. However, since this happens\n" + "instantly, there is no time to flee."), + .pokemonScale = 404, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Mankey, 56, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Mankey, + .frontAnimId = ANIM_H_JUMPS_V_STRETCH, + .frontAnimDelay = 20, + BACK_PIC(Mankey, 64, 48), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, + PALETTE(Mankey), + ICON(Mankey, 1), + .footprint = gMonFootprint_Mankey, + LEARNSETS(Mankey), + .evolutions = EVOLUTION({EVO_LEVEL, 28, SPECIES_PRIMEAPE}), }, - [SPECIES_GIRAFARIG] = + [SPECIES_PRIMEAPE] = { - .baseHP = 70, - .baseAttack = 80, - .baseDefense = 65, - .baseSpeed = 85, - .baseSpAttack = 90, - .baseSpDefense = 65, - .types = { TYPE_NORMAL, TYPE_PSYCHIC }, - .catchRate = 60, + .baseHP = 65, + .baseAttack = 105, + .baseDefense = 60, + .baseSpeed = 95, + .baseSpAttack = 60, + .baseSpDefense = 70, + .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .catchRate = 75, .expYield = 159, - .evYield_SpAttack = 2, + .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_INNER_FOCUS, ABILITY_EARLY_BIRD, ABILITY_SAP_SIPPER}, - .bodyColor = BODY_COLOR_YELLOW, + .abilities = {ABILITY_VITAL_SPIRIT, ABILITY_ANGER_POINT, ABILITY_DEFIANT}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - }, - - [SPECIES_PINECO] = + .speciesName = _("Primeape"), + .cryId = CRY_PRIMEAPE, + .natDexNum = NATIONAL_DEX_PRIMEAPE, + .categoryName = _("Pig Monkey"), + .height = 10, + .weight = 320, + .description = COMPOUND_STRING( + "When it becomes furious, its blood\n" + "circulation becomes more robust, and\n" + "its muscles are made stronger. But it\n" + "also becomes much less intelligent."), + .pokemonScale = 326, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Primeape, 64, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Primeape, + .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES, + BACK_PIC(Primeape, 64, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, + PALETTE(Primeape), + ICON(Primeape, 2), + .footprint = gMonFootprint_Primeape, + LEARNSETS(Primeape), + .evolutions = EVOLUTION({EVO_MOVE, MOVE_RAGE_FIST, SPECIES_ANNIHILAPE}), + }, + +#if P_GEN_9_CROSS_EVOS + [SPECIES_ANNIHILAPE] = { - .baseHP = 50, - .baseAttack = 65, - .baseDefense = 90, - .baseSpeed = 15, - .baseSpAttack = 35, - .baseSpDefense = 35, - .types = { TYPE_BUG, TYPE_BUG }, - .catchRate = 190, - .expYield = 58, - .evYield_Defense = 1, + .baseHP = 110, + .baseAttack = 115, + .baseDefense = 80, + .baseSpeed = 90, + .baseSpAttack = 50, + .baseSpDefense = 90, + .types = { TYPE_FIGHTING, TYPE_GHOST }, + .catchRate = 45, + .expYield = 268, + .evYield_Attack = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_STURDY, ABILITY_NONE, ABILITY_OVERCOAT}, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_VITAL_SPIRIT, ABILITY_INNER_FOCUS, ABILITY_DEFIANT}, .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, + .speciesName = _("Annihilape"), + .cryId = CRY_ANNIHILAPE, + .natDexNum = NATIONAL_DEX_ANNIHILAPE, + .categoryName = _("Rage Monkey"), + .height = 12, + .weight = 560, + .description = COMPOUND_STRING( + "When its anger rose beyond a\n" + "critical point, this Pokémon gained power\n" + "that is unfettered by the limits of\n" + "its physical body."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Annihilape, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Annihilape, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Annihilape, 64, 64), + .backPicYOffset = 1, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Annihilape), + ICON(Annihilape, 0), + //.footprint = gMonFootprint_Annihilape, + LEARNSETS(Annihilape), + }, +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_MANKEY + +#if P_FAMILY_GROWLITHE +#define GROWLITHE_FAMILY_MISC_INFO \ + .genderRatio = PERCENT_FEMALE(25), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, \ + .bodyColor = BODY_COLOR_BROWN, \ + .noFlip = FALSE + +#define GROWLITHE_MISC_INFO \ + .catchRate = 190, \ + .expYield = 70, \ + .evYield_Attack = 1, \ + .speciesName = _("Growlithe"), \ + .cryId = CRY_GROWLITHE, \ + .natDexNum = NATIONAL_DEX_GROWLITHE, \ + .footprint = gMonFootprint_Growlithe, \ + .formSpeciesIdTable = sGrowlitheFormSpeciesIdTable, \ + GROWLITHE_FAMILY_MISC_INFO + +#define ARCANINE_MISC_INFO \ + .catchRate = 75, \ + .expYield = 194, \ + .evYield_Attack = 2, \ + .speciesName = _("Arcanine"), \ + .cryId = CRY_ARCANINE, \ + .natDexNum = NATIONAL_DEX_ARCANINE, \ + .categoryName = _("Legendary"), \ + .footprint = gMonFootprint_Arcanine, \ + .formSpeciesIdTable = sArcanineFormSpeciesIdTable, \ + GROWLITHE_FAMILY_MISC_INFO + + [SPECIES_GROWLITHE] = + { + GROWLITHE_MISC_INFO, + .baseHP = 55, + .baseAttack = 70, + .baseDefense = 45, + .baseSpeed = 60, + .baseSpAttack = 70, + .baseSpDefense = 50, + .types = { TYPE_FIRE, TYPE_FIRE }, + .abilities = {ABILITY_INTIMIDATE, ABILITY_FLASH_FIRE, ABILITY_JUSTIFIED}, + .categoryName = _("Puppy"), + .height = 7, + .weight = 190, + .description = COMPOUND_STRING( + "Its superb sense of smell ensures that\n" + "this Pokémon won't forget any scent,\n" + "no matter what. It uses its sense of smell\n" + "to detect the emotions of others."), + .pokemonScale = 346, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Growlithe, 48, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Growlithe, + .frontAnimId = ANIM_V_STRETCH, + .frontAnimDelay = 30, + BACK_PIC(Growlithe, 48, 56), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Growlithe), + ICON(Growlithe, 3), + LEARNSETS(Growlithe), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_FIRE_STONE, SPECIES_ARCANINE}), }, - [SPECIES_FORRETRESS] = + [SPECIES_ARCANINE] = { - .baseHP = 75, - .baseAttack = 90, - .baseDefense = 140, - .baseSpeed = 40, - .baseSpAttack = 60, - .baseSpDefense = 60, - .types = { TYPE_BUG, TYPE_STEEL }, - .catchRate = 75, - .expYield = 163, - .evYield_Defense = 2, + ARCANINE_MISC_INFO, + .baseHP = 90, + .baseAttack = 110, + .baseDefense = 80, + .baseSpeed = 95, + .baseSpAttack = 100, + .baseSpDefense = 80, + .types = { TYPE_FIRE, TYPE_FIRE }, + .abilities = {ABILITY_INTIMIDATE, ABILITY_FLASH_FIRE, ABILITY_JUSTIFIED}, + .height = 19, + .weight = 1550, + .description = COMPOUND_STRING( + "This fleet-footed Pokémon is said to run\n" + "over 6,200 miles in a single day and night.\n" + "The fire that blazes wildly within its body\n" + "is its source of power."), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 312, + .trainerOffset = 4, + FRONT_PIC(Arcanine, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Arcanine, + .frontAnimId = ANIM_V_SHAKE, + .frontAnimDelay = 8, + BACK_PIC(Arcanine, 64, 56), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Arcanine), + ICON(Arcanine, 3), + LEARNSETS(Arcanine), + }, + +#if P_HISUIAN_FORMS + [SPECIES_GROWLITHE_HISUIAN] = + { + GROWLITHE_MISC_INFO, + .baseHP = 60, + .baseAttack = 75, + .baseDefense = 45, + .baseSpeed = 55, + .baseSpAttack = 65, + .baseSpDefense = 50, + .types = { TYPE_FIRE, TYPE_ROCK}, + .abilities = {ABILITY_INTIMIDATE, ABILITY_FLASH_FIRE, ABILITY_ROCK_HEAD}, + .categoryName = _("Scout"), + .height = 8, + .weight = 227, + .description = COMPOUND_STRING( + "They patrol their territory in pairs.\n" + "It's believed the igneous rock components\n" + "in the fur of this species are the result\n" + "of volcanic activity in its habitat."), + .pokemonScale = 346, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(GrowlitheHisuian, 48, 48), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_GrowlitheHisuian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(GrowlitheHisuian, 56, 56), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(GrowlitheHisuian), + ICON(GrowlitheHisuian, 0), + LEARNSETS(GrowlitheHisuian), + .isHisuianForm = TRUE, + .evolutions = EVOLUTION({EVO_ITEM, ITEM_FIRE_STONE, SPECIES_ARCANINE_HISUIAN}), + }, + + [SPECIES_ARCANINE_HISUIAN] = + { + ARCANINE_MISC_INFO, + .baseHP = 95, + .baseAttack = 115, + .baseDefense = 80, + .baseSpeed = 90, + .baseSpAttack = 95, + .baseSpDefense = 80, + .types = { TYPE_FIRE, TYPE_ROCK}, + .abilities = {ABILITY_INTIMIDATE, ABILITY_FLASH_FIRE, ABILITY_ROCK_HEAD}, + .height = 20, + .weight = 1680, + .description = COMPOUND_STRING( + "Snaps at its foes with fangs cloaked in\n" + "blazing flame. Despite its bulk, it deftly\n" + "feints every which way, leading opponents\n" + "on a deceptively merry chase."), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 312, + .trainerOffset = 4, + FRONT_PIC(ArcanineHisuian, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_ArcanineHisuian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(ArcanineHisuian, 64, 64), + .backPicYOffset = 3, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(ArcanineHisuian), + ICON(ArcanineHisuian, 0), + LEARNSETS(ArcanineHisuian), + .isHisuianForm = TRUE, + }, +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_GROWLITHE + +#if P_FAMILY_POLIWAG + [SPECIES_POLIWAG] = + { + .baseHP = 40, + .baseAttack = 50, + .baseDefense = 40, + .baseSpeed = 90, + .baseSpAttack = 40, + .baseSpDefense = 40, + .types = { TYPE_WATER, TYPE_WATER }, + .catchRate = 255, + .expYield = 60, + .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_STURDY, ABILITY_NONE, ABILITY_OVERCOAT}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, + .abilities = {ABILITY_WATER_ABSORB, ABILITY_DAMP, ABILITY_SWIFT_SWIM}, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = TRUE, + .speciesName = _("Poliwag"), + .cryId = CRY_POLIWAG, + .natDexNum = NATIONAL_DEX_POLIWAG, + .categoryName = _("Tadpole"), + .height = 6, + .weight = 124, + .description = COMPOUND_STRING( + "It is possible to see this Pokémon's spiral\n" + "innards right through its thin skin.\n" + "However, the skin is also very flexible.\n" + "Even sharp fangs bounce right off it."), + .pokemonScale = 369, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Poliwag, 64, 40), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_Poliwag, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Poliwag, 48, 32), + .backPicYOffset = 18, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Poliwag), + ICON(Poliwag, 0), + .footprint = gMonFootprint_Poliwag, + LEARNSETS(Poliwag), + .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_POLIWHIRL}), }, - [SPECIES_DUNSPARCE] = + [SPECIES_POLIWHIRL] = { - .baseHP = 100, - .baseAttack = 70, - .baseDefense = 70, - .baseSpeed = 45, - .baseSpAttack = 65, - .baseSpDefense = 65, - .types = { TYPE_NORMAL, TYPE_NORMAL }, - .catchRate = 190, - .expYield = 145, - .evYield_HP = 1, + .baseHP = 65, + .baseAttack = 65, + .baseDefense = 65, + .baseSpeed = 90, + .baseSpAttack = 50, + .baseSpDefense = 50, + .types = { TYPE_WATER, TYPE_WATER }, + .catchRate = 120, + .expYield = 135, + .evYield_Speed = 2, + .itemRare = ITEM_KINGS_ROCK, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, + .abilities = {ABILITY_WATER_ABSORB, ABILITY_DAMP, ABILITY_SWIFT_SWIM}, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = TRUE, + .speciesName = _("Poliwhirl"), + .cryId = CRY_POLIWHIRL, + .natDexNum = NATIONAL_DEX_POLIWHIRL, + .categoryName = _("Tadpole"), + .height = 10, + .weight = 200, + .description = COMPOUND_STRING( + "Its body surface is always wet and slick\n" + "with an oily fluid. Because of this greasy\n" + "covering, it can easily slip and slide out\n" + "of the clutches of any enemy in battle."), + .pokemonScale = 288, + .pokemonOffset = 11, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Poliwhirl, 64, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Poliwhirl, + .frontAnimId = ANIM_H_JUMPS_V_STRETCH, + .frontAnimDelay = 5, + BACK_PIC(Poliwhirl, 64, 40), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Poliwhirl), + ICON(Poliwhirl, 0), + .footprint = gMonFootprint_Poliwhirl, + LEARNSETS(Poliwhirl), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_WATER_STONE, SPECIES_POLIWRATH}, + {EVO_TRADE_ITEM, ITEM_KINGS_ROCK, SPECIES_POLITOED}, + {EVO_ITEM, ITEM_KINGS_ROCK, SPECIES_POLITOED}), + }, + + [SPECIES_POLIWRATH] = + { + .baseHP = 90, + .baseAttack = P_UPDATED_STATS >= GEN_6 ? 95 : 85, + .baseDefense = 95, + .baseSpeed = 70, + .baseSpAttack = 70, + .baseSpDefense = 90, + .types = { TYPE_WATER, TYPE_FIGHTING}, + .catchRate = 45, + .expYield = 230, + .evYield_Defense = 3, + .itemRare = ITEM_KINGS_ROCK, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, + .abilities = {ABILITY_WATER_ABSORB, ABILITY_DAMP, ABILITY_SWIFT_SWIM}, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = TRUE, + .speciesName = _("Poliwrath"), + .cryId = CRY_POLIWRATH, + .natDexNum = NATIONAL_DEX_POLIWRATH, + .categoryName = _("Tadpole"), + .height = 13, + .weight = 540, + .description = COMPOUND_STRING( + "Its highly developed muscles never grow\n" + "fatigued, however much it exercises.\n" + "This Pokémon can swim back and forth\n" + "across the Pacific Ocean without effort."), + .pokemonScale = 256, + .pokemonOffset = 6, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Poliwrath, 64, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Poliwrath, + .frontAnimId = ANIM_V_SHAKE_TWICE, + BACK_PIC(Poliwrath, 64, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(Poliwrath), + ICON(Poliwrath, 0), + .footprint = gMonFootprint_Poliwrath, + LEARNSETS(Poliwrath), + }, + +#if P_GEN_2_CROSS_EVOS + [SPECIES_POLITOED] = + { + .baseHP = 90, + .baseAttack = 75, + .baseDefense = 75, + .baseSpeed = 70, + .baseSpAttack = 90, + .baseSpDefense = 100, + .types = { TYPE_WATER, TYPE_WATER }, + .catchRate = 45, + .expYield = 225, + .evYield_SpDefense = 3, + .itemRare = ITEM_KINGS_ROCK, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SERENE_GRACE, ABILITY_RUN_AWAY, ABILITY_RATTLED}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, - }, - - [SPECIES_GLIGAR] = + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, + .abilities = {ABILITY_WATER_ABSORB, ABILITY_DAMP, ABILITY_DRIZZLE}, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = TRUE, + .speciesName = _("Politoed"), + .cryId = CRY_POLITOED, + .natDexNum = NATIONAL_DEX_POLITOED, + .categoryName = _("Frog"), + .height = 11, + .weight = 339, + .description = COMPOUND_STRING( + "The curled hair on its head proves its\n" + "status as a king. It is said that the\n" + "longer and curlier the hair, the more\n" + "respect it earns from its peers."), + .pokemonScale = 289, + .pokemonOffset = 6, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Politoed, 48, 56), + FRONT_PIC_FEMALE(Politoed, 48, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Politoed, + .frontAnimId = ANIM_H_JUMPS_V_STRETCH, + .frontAnimDelay = 40, + BACK_PIC(Politoed, 56, 56), + BACK_PIC_FEMALE(Politoed, 56, 56), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, + PALETTE(Politoed), + ICON(Politoed, 1), + .footprint = gMonFootprint_Politoed, + LEARNSETS(Politoed), + }, +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_POLIWAG + +#if P_FAMILY_ABRA + [SPECIES_ABRA] = { - .baseHP = 65, - .baseAttack = 75, - .baseDefense = 105, - .baseSpeed = 85, - .baseSpAttack = 35, - .baseSpDefense = 65, - .types = { TYPE_GROUND, TYPE_FLYING }, - .catchRate = 60, - .expYield = 86, - .evYield_Defense = 1, - .genderRatio = PERCENT_FEMALE(50), + .baseHP = 25, + .baseAttack = 20, + .baseDefense = 15, + .baseSpeed = 90, + .baseSpAttack = 105, + .baseSpDefense = 55, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .catchRate = 200, + .expYield = 62, + .evYield_SpAttack = 1, + .itemRare = ITEM_TWISTED_SPOON, + .genderRatio = PERCENT_FEMALE(25), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_HYPER_CUTTER, ABILITY_SAND_VEIL, ABILITY_IMMUNITY}, - .bodyColor = BODY_COLOR_PURPLE, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_SYNCHRONIZE, ABILITY_INNER_FOCUS, ABILITY_MAGIC_GUARD}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .speciesName = _("Abra"), + .cryId = CRY_ABRA, + .natDexNum = NATIONAL_DEX_ABRA, + .categoryName = _("Psi"), + .height = 9, + .weight = 195, + .description = COMPOUND_STRING( + "A Pokémon that sleeps 18 hours a day.\n" + "Observation revealed that it uses\n" + "Teleport to change its location once\n" + "every hour."), + .pokemonScale = 363, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Abra, 56, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Abra, + .frontAnimId = ANIM_H_VIBRATE, + BACK_PIC(Abra, 56, 48), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(Abra), + ICON(Abra, 2), + .footprint = gMonFootprint_Abra, + LEARNSETS(Abra), + .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_KADABRA}), }, - [SPECIES_STEELIX] = + [SPECIES_KADABRA] = { - .baseHP = 75, - .baseAttack = 85, - .baseDefense = 200, - .baseSpeed = 30, - .baseSpAttack = 55, - .baseSpDefense = 65, - .types = { TYPE_STEEL, TYPE_GROUND }, - .catchRate = 25, - .expYield = 179, - .evYield_Defense = 2, - .itemRare = ITEM_METAL_COAT, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, + .baseHP = 40, + .baseAttack = 35, + .baseDefense = 30, + .baseSpeed = 105, + .baseSpAttack = 120, + .baseSpDefense = 70, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .catchRate = 100, + .expYield = 140, + .evYield_SpAttack = 2, + .itemRare = ITEM_TWISTED_SPOON, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_ROCK_HEAD, ABILITY_STURDY, ABILITY_SHEER_FORCE}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_SYNCHRONIZE, ABILITY_INNER_FOCUS, ABILITY_MAGIC_GUARD}, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = TRUE, + .speciesName = _("Kadabra"), + .cryId = CRY_KADABRA, + .natDexNum = NATIONAL_DEX_KADABRA, + .categoryName = _("Psi"), + .height = 13, + .weight = 565, + .description = COMPOUND_STRING( + "It is rumored that a boy with psychic\n" + "abilities suddenly transformed into\n" + "Kadabra while he was assisting research\n" + "into extrasensory powers."), + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Kadabra, 64, 56), + FRONT_PIC_FEMALE(Kadabra, 64, 56), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Kadabra, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Kadabra, 64, 48), + BACK_PIC_FEMALE(Kadabra, 64, 48), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(Kadabra), + ICON(Kadabra, 2), + .footprint = gMonFootprint_Kadabra, + LEARNSETS(Kadabra), + .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_ALAKAZAM}, + {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_ALAKAZAM}), + }, + +#define ALAKAZAM_SP_DEF (P_UPDATED_STATS >= GEN_6 ? 95 : 85) + +#define ALAKAZAM_MISC_INFO \ + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, \ + .catchRate = 50, \ + .evYield_SpAttack = 3, \ + .itemRare = ITEM_TWISTED_SPOON, \ + .genderRatio = PERCENT_FEMALE(25), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_SLOW, \ + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, \ + .bodyColor = BODY_COLOR_BROWN, \ + .noFlip = FALSE, \ + .speciesName = _("Alakazam"), \ + .natDexNum = NATIONAL_DEX_ALAKAZAM, \ + .categoryName = _("Psi"), \ + .footprint = gMonFootprint_Alakazam, \ + LEARNSETS(Alakazam), \ + .formSpeciesIdTable = sAlakazamFormSpeciesIdTable, \ + .formChangeTable = sAlakazamFormChangeTable - [SPECIES_SNUBBULL] = + [SPECIES_ALAKAZAM] = { - .baseHP = 60, + ALAKAZAM_MISC_INFO, + .baseHP = 55, + .baseAttack = 50, + .baseDefense = 45, + .baseSpeed = 120, + .baseSpAttack = 135, + .baseSpDefense = ALAKAZAM_SP_DEF, + .expYield = 225, + .abilities = {ABILITY_SYNCHRONIZE, ABILITY_INNER_FOCUS, ABILITY_MAGIC_GUARD}, + .cryId = CRY_ALAKAZAM, + .height = 15, + .weight = 480, + .description = COMPOUND_STRING( + "While it has strong psychic abilities and\n" + "high intelligence, an Alakazam's muscles\n" + "are very weak. It uses psychic power to\n" + "move its body."), + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Alakazam, 64, 64), + FRONT_PIC_FEMALE(Alakazam, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Alakazam, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Alakazam, 64, 56), + BACK_PIC_FEMALE(Alakazam, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_GROW_STUTTER, + PALETTE(Alakazam), + ICON(Alakazam, 2), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_ALAKAZAM_MEGA] = + { + ALAKAZAM_MISC_INFO, + .baseHP = 55, + .baseAttack = 50, + .baseDefense = 65, + .baseSpeed = 150, + .baseSpAttack = 175, + .baseSpDefense = ALAKAZAM_SP_DEF + 10, + .expYield = 270, + .abilities = {ABILITY_TRACE, ABILITY_TRACE, ABILITY_TRACE}, + .cryId = CRY_ALAKAZAM_MEGA, + .height = 12, + .weight = 480, + .description = COMPOUND_STRING( + "Having traded away its muscles, Alakazam's\n" + "true power has been unleashed. With its\n" + "psychic powers, it can foresee all things."), + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(AlakazamMega, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_AlakazamMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 7, + BACK_PIC(AlakazamMega, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_GROW_STUTTER, + PALETTE(AlakazamMega), + ICON(AlakazamMega, 2), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_ABRA + +#if P_FAMILY_MACHOP + [SPECIES_MACHOP] = + { + .baseHP = 70, .baseAttack = 80, .baseDefense = 50, - .baseSpeed = 30, - .baseSpAttack = 40, - .baseSpDefense = 40, - #if P_UPDATED_TYPES >= GEN_6 - .types = { TYPE_FAIRY, TYPE_FAIRY}, - #else - .types = { TYPE_NORMAL, TYPE_NORMAL}, - #endif - .catchRate = 190, - .expYield = 60, + .baseSpeed = 35, + .baseSpAttack = 35, + .baseSpDefense = 35, + .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .catchRate = 180, + .expYield = 61, .evYield_Attack = 1, - .genderRatio = PERCENT_FEMALE(75), + .itemRare = ITEM_FOCUS_BAND, + .genderRatio = PERCENT_FEMALE(25), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_INTIMIDATE, ABILITY_RUN_AWAY, ABILITY_RATTLED}, - .bodyColor = BODY_COLOR_PINK, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_GUTS, ABILITY_NO_GUARD, ABILITY_STEADFAST}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, + .speciesName = _("Machop"), + .cryId = CRY_MACHOP, + .natDexNum = NATIONAL_DEX_MACHOP, + .categoryName = _("Superpower"), + .height = 8, + .weight = 195, + .description = COMPOUND_STRING( + "It continually undertakes strenuous\n" + "training to master all forms of martial\n" + "arts. Its strength lets it easily hoist\n" + "a sumo wrestler onto its shoulders."), + .pokemonScale = 342, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Machop, 48, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Machop, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Machop, 48, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Machop), + ICON(Machop, 0), + .footprint = gMonFootprint_Machop, + LEARNSETS(Machop), + .evolutions = EVOLUTION({EVO_LEVEL, 28, SPECIES_MACHOKE}), }, - [SPECIES_GRANBULL] = + [SPECIES_MACHOKE] = { - .baseHP = 90, - .baseAttack = 120, - .baseDefense = 75, + .baseHP = 80, + .baseAttack = 100, + .baseDefense = 70, .baseSpeed = 45, - .baseSpAttack = 60, + .baseSpAttack = 50, .baseSpDefense = 60, - #if P_UPDATED_TYPES >= GEN_6 - .types = { TYPE_FAIRY, TYPE_FAIRY}, - #else - .types = { TYPE_NORMAL, TYPE_NORMAL}, - #endif - .catchRate = 75, - .expYield = 158, + .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .catchRate = 90, + .expYield = 142, .evYield_Attack = 2, - .genderRatio = PERCENT_FEMALE(75), + .itemRare = ITEM_FOCUS_BAND, + .genderRatio = PERCENT_FEMALE(25), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_INTIMIDATE, ABILITY_QUICK_FEET, ABILITY_RATTLED}, - .bodyColor = BODY_COLOR_PURPLE, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_GUTS, ABILITY_NO_GUARD, ABILITY_STEADFAST}, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = TRUE, + .speciesName = _("Machoke"), + .cryId = CRY_MACHOKE, + .natDexNum = NATIONAL_DEX_MACHOKE, + .categoryName = _("Superpower"), + .height = 15, + .weight = 705, + .description = COMPOUND_STRING( + "A belt is worn by a Machoke to keep its\n" + "overwhelming power under control.\n" + "Because it is so dangerous, no one has\n" + "ever removed the belt."), + .pokemonScale = 323, + .pokemonOffset = 9, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Machoke, 56, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Machoke, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(Machoke, 64, 48), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Machoke), + ICON(Machoke, 2), + .footprint = gMonFootprint_Machoke, + LEARNSETS(Machoke), + .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_MACHAMP}, + {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_MACHAMP}), + }, + +#define MACHAMP_MISC_INFO \ + .baseHP = 90, \ + .baseAttack = 130, \ + .baseDefense = 80, \ + .baseSpeed = 55, \ + .baseSpAttack = 65, \ + .baseSpDefense = 85, \ + .types = {TYPE_FIGHTING, TYPE_FIGHTING}, \ + .catchRate = 45, \ + .expYield = 227, \ + .evYield_Attack = 3, \ + .itemRare = ITEM_FOCUS_BAND, \ + .genderRatio = PERCENT_FEMALE(25), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_SLOW, \ + .eggGroups = {EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, \ + .abilities = {ABILITY_GUTS, ABILITY_NO_GUARD, ABILITY_STEADFAST}, \ + .bodyColor = BODY_COLOR_GRAY, \ + .noFlip = FALSE, \ + .speciesName = _("Machamp"), \ + .cryId = CRY_MACHAMP, \ + .natDexNum = NATIONAL_DEX_MACHAMP, \ + .categoryName = _("Superpower"), \ + .footprint = gMonFootprint_Machamp, \ + LEARNSETS(Machamp), \ + .formSpeciesIdTable = sMachampFormSpeciesIdTable, \ + .formChangeTable = sMachampFormChangeTable + + [SPECIES_MACHAMP] = + { + MACHAMP_MISC_INFO, + .height = 16, + .weight = 1300, + .description = COMPOUND_STRING( + "It is impossible to defend against punches\n" + "and chops doled out by its four arms.\n" + "Its fighting spirit flares up when it faces\n" + "a tough opponent."), + .pokemonScale = 280, + .pokemonOffset = 1, + .trainerScale = 269, + .trainerOffset = -1, + FRONT_PIC(Machamp, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Machamp, + .frontAnimId = ANIM_H_JUMPS, + BACK_PIC(Machamp, 64, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Machamp), + ICON(Machamp, 0), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_MACHAMP_GIGANTAMAX] = + { + MACHAMP_MISC_INFO, + .height = 250, + .weight = 0, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 280, + .pokemonOffset = 1, + .trainerScale = 269, + .trainerOffset = -1, + FRONT_PIC(MachampGigantamax, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_MachampGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(MachampGigantamax, 64, 64), + .backPicYOffset = 3, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(MachampGigantamax), + ICON(MachampGigantamax, 0), + .isGigantamax = TRUE, + }, +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_MACHOP + +#if P_FAMILY_BELLSPROUT + [SPECIES_BELLSPROUT] = + { + .baseHP = 50, + .baseAttack = 75, + .baseDefense = 35, + .baseSpeed = 40, + .baseSpAttack = 70, + .baseSpDefense = 30, + .types = { TYPE_GRASS, TYPE_POISON }, + .catchRate = 255, + .expYield = 60, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, + .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_GLUTTONY}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, + .speciesName = _("Bellsprout"), + .cryId = CRY_BELLSPROUT, + .natDexNum = NATIONAL_DEX_BELLSPROUT, + .categoryName = _("Flower"), + .height = 7, + .weight = 40, + .description = COMPOUND_STRING( + "A Bellsprout's thin and flexible body lets\n" + "it bend and sway to avoid any attack,\n" + "however strong it may be. From its mouth,\n" + "it leaks a fluid that melts even iron."), + .pokemonScale = 354, + .pokemonOffset = 16, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Bellsprout, 40, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Bellsprout, + .frontAnimId = ANIM_H_JUMPS, + BACK_PIC(Bellsprout, 40, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_V_STRETCH, + PALETTE(Bellsprout), + ICON(Bellsprout, 1), + .footprint = gMonFootprint_Bellsprout, + LEARNSETS(Bellsprout), + .evolutions = EVOLUTION({EVO_LEVEL, 21, SPECIES_WEEPINBELL}), }, - [SPECIES_QWILFISH] = + [SPECIES_WEEPINBELL] = { .baseHP = 65, - .baseAttack = 95, - .baseSpeed = 85, - .baseSpAttack = 55, - .baseSpDefense = 55, - #if P_UPDATED_STATS >= GEN_7 - .baseDefense = 85, - #else - .baseDefense = 75, - #endif - .types = { TYPE_WATER, TYPE_POISON}, - .catchRate = 45, - .expYield = 88, - .evYield_Attack = 1, - .itemRare = ITEM_POISON_BARB, + .baseAttack = 90, + .baseDefense = 50, + .baseSpeed = 55, + .baseSpAttack = 85, + .baseSpDefense = 45, + .types = { TYPE_GRASS, TYPE_POISON }, + .catchRate = 120, + .expYield = 137, + .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, - .abilities = {ABILITY_POISON_POINT, ABILITY_SWIFT_SWIM, ABILITY_INTIMIDATE}, - .bodyColor = BODY_COLOR_GRAY, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, + .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_GLUTTONY}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, + .speciesName = _("Weepinbell"), + .cryId = CRY_WEEPINBELL, + .natDexNum = NATIONAL_DEX_WEEPINBELL, + .categoryName = _("Flycatcher"), + .height = 10, + .weight = 64, + .description = COMPOUND_STRING( + "At night, a Weepinbell hangs on to a tree\n" + "branch with its hooked rear and sleeps.\n" + "If it moves around in its sleep, it may\n" + "wake up to find itself on the ground."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Weepinbell, 56, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Weepinbell, + .frontAnimId = ANIM_SWING_CONVEX, + .frontAnimDelay = 3, + BACK_PIC(Weepinbell, 64, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_V_STRETCH, + PALETTE(Weepinbell), + ICON(Weepinbell, 1), + .footprint = gMonFootprint_Weepinbell, + LEARNSETS(Weepinbell), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_LEAF_STONE, SPECIES_VICTREEBEL}), }, - [SPECIES_SCIZOR] = + [SPECIES_VICTREEBEL] = { - .baseHP = 70, - .baseAttack = 130, - .baseDefense = 100, - .baseSpeed = 65, - .baseSpAttack = 55, - .baseSpDefense = 80, - .types = { TYPE_BUG, TYPE_STEEL }, - .catchRate = 25, - .expYield = 175, - .evYield_Attack = 2, + .baseHP = 80, + .baseAttack = 105, + .baseDefense = 65, + .baseSpeed = 70, + .baseSpAttack = 100, + .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 70 : 60, + .types = { TYPE_GRASS, TYPE_POISON}, + .catchRate = 45, + .expYield = 221, + .evYield_Attack = 3, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SWARM, ABILITY_TECHNICIAN, ABILITY_LIGHT_METAL}, - .bodyColor = BODY_COLOR_RED, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, + .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_GLUTTONY}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - }, - - [SPECIES_SHUCKLE] = + .speciesName = _("Victreebel"), + .cryId = CRY_VICTREEBEL, + .natDexNum = NATIONAL_DEX_VICTREEBEL, + .categoryName = _("Flycatcher"), + .height = 17, + .weight = 155, + .description = COMPOUND_STRING( + "The long vine extending from its head is\n" + "waved about as if it were a living thing to\n" + "attract prey. When an unsuspecting victim\n" + "approaches, it is swallowed whole."), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 312, + .trainerOffset = 3, + FRONT_PIC(Victreebel, 64, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Victreebel, + .frontAnimId = ANIM_H_JUMPS_V_STRETCH, + BACK_PIC(Victreebel, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_V_STRETCH, + PALETTE(Victreebel), + ICON(Victreebel, 1), + .footprint = gMonFootprint_Victreebel, + LEARNSETS(Victreebel), + }, +#endif //P_FAMILY_BELLSPROUT + +#if P_FAMILY_TENTACOOL + [SPECIES_TENTACOOL] = { - .baseHP = 20, - .baseAttack = 10, - .baseDefense = 230, - .baseSpeed = 5, - .baseSpAttack = 10, - .baseSpDefense = 230, - .types = { TYPE_BUG, TYPE_ROCK }, + .baseHP = 40, + .baseAttack = 40, + .baseDefense = 35, + .baseSpeed = 70, + .baseSpAttack = 50, + .baseSpDefense = 100, + .types = { TYPE_WATER, TYPE_POISON }, .catchRate = 190, - .expYield = 177, - .evYield_Defense = 1, + .expYield = 67, .evYield_SpDefense = 1, - .itemCommon = ITEM_BERRY_JUICE, - .itemRare = ITEM_BERRY_JUICE, + .itemRare = ITEM_POISON_BARB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_STURDY, ABILITY_GLUTTONY, ABILITY_CONTRARY}, - .bodyColor = BODY_COLOR_YELLOW, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, + .abilities = {ABILITY_CLEAR_BODY, ABILITY_LIQUID_OOZE, ABILITY_RAIN_DISH}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Tentacool"), + .cryId = CRY_TENTACOOL, + .natDexNum = NATIONAL_DEX_TENTACOOL, + .categoryName = _("Jellyfish"), + .height = 9, + .weight = 455, + .description = COMPOUND_STRING( + "Its body is almost entirely composed of\n" + "water. It ensnares its foe with its two\n" + "long tentacles, then stabs with the poison\n" + "stingers at their tips."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Tentacool, 48, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Tentacool, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Tentacool, 64, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Tentacool), + ICON(Tentacool, 0), + .footprint = gMonFootprint_Tentacool, + LEARNSETS(Tentacool), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_TENTACRUEL}), }, - [SPECIES_HERACROSS] = + [SPECIES_TENTACRUEL] = { .baseHP = 80, - .baseAttack = 125, - .baseDefense = 75, - .baseSpeed = 85, - .baseSpAttack = 40, - .baseSpDefense = 95, - .types = { TYPE_BUG, TYPE_FIGHTING }, - .catchRate = 45, - .expYield = 175, - .evYield_Attack = 2, + .baseAttack = 70, + .baseDefense = 65, + .baseSpeed = 100, + .baseSpAttack = 80, + .baseSpDefense = 120, + .types = { TYPE_WATER, TYPE_POISON }, + .catchRate = 60, + .expYield = 180, + .evYield_SpDefense = 2, + .itemRare = ITEM_POISON_BARB, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SWARM, ABILITY_GUTS, ABILITY_MOXIE}, + .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, + .abilities = {ABILITY_CLEAR_BODY, ABILITY_LIQUID_OOZE, ABILITY_RAIN_DISH}, .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Tentacruel"), + .cryId = CRY_TENTACRUEL, + .natDexNum = NATIONAL_DEX_TENTACRUEL, + .categoryName = _("Jellyfish"), + .height = 16, + .weight = 550, + .description = COMPOUND_STRING( + "It lives in complex rock formations on\n" + "the ocean floor and traps prey using its\n" + "80 tentacles. Its red orbs glow when it\n" + "grows excited or agitated."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 312, + .trainerOffset = 1, + FRONT_PIC(Tentacruel, 64, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Tentacruel, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Tentacruel, 64, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Tentacruel), + ICON(Tentacruel, 0), + .footprint = gMonFootprint_Tentacruel, + LEARNSETS(Tentacruel), + }, +#endif //P_FAMILY_TENTACOOL + +#if P_FAMILY_GEODUDE +#define KANTONIAN_GEODUDE_FAMILY_INFO \ + .types = { TYPE_ROCK, TYPE_GROUND }, \ + .itemRare = ITEM_EVERSTONE, \ + .abilities = {ABILITY_ROCK_HEAD, ABILITY_STURDY, ABILITY_SAND_VEIL} + +#define GEODUDE_FAMILY_MISC_INFO \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 15, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_SLOW, \ + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, \ + .bodyColor = BODY_COLOR_BROWN, \ + .noFlip = FALSE + +#define GEODUDE_MISC_INFO \ + .baseHP = 40, \ + .baseAttack = 80, \ + .baseDefense = 100, \ + .baseSpeed = 20, \ + .baseSpAttack = 30, \ + .baseSpDefense = 30, \ + .catchRate = 255, \ + .expYield = 60, \ + .evYield_Defense = 1, \ + .speciesName = _("Geodude"), \ + .cryId = CRY_GEODUDE, \ + .natDexNum = NATIONAL_DEX_GEODUDE, \ + .categoryName = _("Rock"), \ + .height = 4, \ + .pokemonScale = 347, \ + .pokemonOffset = 18, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Geodude, \ + .formSpeciesIdTable = sGeodudeFormSpeciesIdTable, \ + GEODUDE_FAMILY_MISC_INFO + +#define GRAVELER_MISC_INFO \ + .baseHP = 55, \ + .baseAttack = 95, \ + .baseDefense = 115, \ + .baseSpeed = 35, \ + .baseSpAttack = 45, \ + .baseSpDefense = 45, \ + .catchRate = 120, \ + .expYield = 137, \ + .evYield_Defense = 2, \ + .speciesName = _("Graveler"), \ + .cryId = CRY_GRAVELER, \ + .natDexNum = NATIONAL_DEX_GRAVELER, \ + .categoryName = _("Rock"), \ + .height = 10, \ + .pokemonScale = 256, \ + .pokemonOffset = 2, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Graveler, \ + .formSpeciesIdTable = sGravelerFormSpeciesIdTable, \ + GEODUDE_FAMILY_MISC_INFO + +#define GOLEM_ATTACK (P_UPDATED_STATS >= GEN_6 ? 120 : 110) + +#define GOLEM_MISC_INFO \ + .baseHP = 80, \ + .baseAttack = GOLEM_ATTACK, \ + .baseDefense = 130, \ + .baseSpeed = 45, \ + .baseSpAttack = 55, \ + .baseSpDefense = 65, \ + .catchRate = 45, \ + .expYield = 223, \ + .evYield_Defense = 3, \ + .speciesName = _("Golem"), \ + .cryId = CRY_GOLEM, \ + .natDexNum = NATIONAL_DEX_GOLEM, \ + .categoryName = _("Megaton"), \ + .footprint = gMonFootprint_Golem, \ + .formSpeciesIdTable = sGolemFormSpeciesIdTable, \ + GEODUDE_FAMILY_MISC_INFO + + [SPECIES_GEODUDE] = + { + KANTONIAN_GEODUDE_FAMILY_INFO, + GEODUDE_MISC_INFO, + .weight = 200, + .description = COMPOUND_STRING( + "It climbs mountain paths using only the\n" + "power of its arms. Because they look just\n" + "like boulders lining paths, hikers may step\n" + "on them without noticing."), + FRONT_PIC(Geodude, 64, 32), + .frontPicYOffset = 19, + .frontAnimFrames = sAnims_Geodude, + .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL, + .enemyMonElevation = 10, + BACK_PIC(Geodude, 64, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(Geodude), + ICON(Geodude, 1), + LEARNSETS(Geodude), + .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_GRAVELER}), }, - [SPECIES_SNEASEL] = + [SPECIES_GRAVELER] = { - .baseHP = 55, - .baseAttack = 95, - .baseDefense = 55, - .baseSpeed = 115, - .baseSpAttack = 35, - .baseSpDefense = 75, - .types = { TYPE_DARK, TYPE_ICE }, - .catchRate = 60, - .expYield = 86, - .evYield_Speed = 1, - .itemRare = ITEM_QUICK_CLAW, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = 35, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_INNER_FOCUS, ABILITY_KEEN_EYE, ABILITY_PICKPOCKET}, - .bodyColor = BODY_COLOR_BLACK, - .noFlip = TRUE, + KANTONIAN_GEODUDE_FAMILY_INFO, + GRAVELER_MISC_INFO, + .weight = 1050, + .description = COMPOUND_STRING( + "They descend from mountains by tumbling\n" + "down steep slopes. They are so brutal,\n" + "they smash aside obstructing trees and\n" + "massive boulders with thunderous tackles."), + FRONT_PIC(Graveler, 64, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Graveler, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(Graveler, 64, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_H_SHAKE, + PALETTE(Graveler), + ICON(Graveler, 1), + LEARNSETS(Graveler), + .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_GOLEM}, + {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_GOLEM}), }, - [SPECIES_TEDDIURSA] = + [SPECIES_GOLEM] = { - .baseHP = 60, - .baseAttack = 80, - .baseDefense = 50, - .baseSpeed = 40, - .baseSpAttack = 50, - .baseSpDefense = 50, - .types = { TYPE_NORMAL, TYPE_NORMAL }, - .catchRate = 120, - .expYield = 66, - .evYield_Attack = 1, - .genderRatio = PERCENT_FEMALE(50), + KANTONIAN_GEODUDE_FAMILY_INFO, + GOLEM_MISC_INFO, + .height = 14, + .weight = 3000, + .description = COMPOUND_STRING( + "It is said to live in volcanic craters\n" + "on mountain peaks. Once a year, it sheds\n" + "its hide and grows larger. The shed hide\n" + "crumbles and returns to the soil."), + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 296, + .trainerOffset = 2, + FRONT_PIC(Golem, 64, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Golem, + .frontAnimId = ANIM_ROTATE_UP_SLAM_DOWN, + BACK_PIC(Golem, 64, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_H_SHAKE, + PALETTE(Golem), + ICON(Golem, 2), + LEARNSETS(Golem), + }, + +#if P_ALOLAN_FORMS +#define ALOLAN_GEODUDE_FAMILY_INFO \ + .types = { TYPE_ROCK, TYPE_ELECTRIC }, \ + .abilities = {ABILITY_MAGNET_PULL, ABILITY_STURDY, ABILITY_GALVANIZE}, \ + .isAlolanForm = TRUE + + [SPECIES_GEODUDE_ALOLAN] = + { + ALOLAN_GEODUDE_FAMILY_INFO, + GEODUDE_MISC_INFO, + .itemRare = ITEM_CELL_BATTERY, + .weight = 203, + .description = COMPOUND_STRING( + "Its body is a magnetic stone. Iron sand\n" + "attach to parts of its body with stronger\n" + "magnetism. If you carelessly step on one,\n" + "it will headbutt and shock you in anger."), + FRONT_PIC(GeodudeAlolan, 48, 32), + .frontPicYOffset = 17, + .frontAnimFrames = sAnims_GeodudeAlolan, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 16, + BACK_PIC(GeodudeAlolan, 64, 56), + .backPicYOffset = 13, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(GeodudeAlolan), + ICON(GeodudeAlolan, 2), + LEARNSETS(GeodudeAlolan), + .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_GRAVELER_ALOLAN}), + }, + + [SPECIES_GRAVELER_ALOLAN] = + { + ALOLAN_GEODUDE_FAMILY_INFO, + GRAVELER_MISC_INFO, + .itemRare = ITEM_CELL_BATTERY, + .weight = 1100, + .description = COMPOUND_STRING( + "When two Graveler smash each other over\n" + "dravite, their favorite food, they cause\n" + "flashes of light and booming noises.\n" + "People call them “fireworks of the earth.”"), + FRONT_PIC(GravelerAlolan, 64, 56), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_GravelerAlolan, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(GravelerAlolan, 64, 48), + .backPicYOffset = 10, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(GravelerAlolan), + ICON(GravelerAlolan, 2), + LEARNSETS(GravelerAlolan), + .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_GOLEM_ALOLAN}, + {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_GOLEM_ALOLAN}), + }, + + [SPECIES_GOLEM_ALOLAN] = + { + ALOLAN_GEODUDE_FAMILY_INFO, + GOLEM_MISC_INFO, + .itemCommon = ITEM_CELL_BATTERY, + .height = 17, + .weight = 3160, + .description = COMPOUND_STRING( + "It fires rocks charged with electricity.\n" + "Even if the rock isn't fired that\n" + "accurately, just grazing an opponent\n" + "will cause numbness and fainting."), + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 296, + .trainerOffset = 2, + FRONT_PIC(GolemAlolan, 56, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_GolemAlolan, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(GolemAlolan, 64, 48), + .backPicYOffset = 13, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(GolemAlolan), + ICON(GolemAlolan, 2), + LEARNSETS(GolemAlolan), + }, +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_GEODUDE + +#if P_FAMILY_PONYTA +#define KANTONIAN_PONYTA_FAMILY_INFO \ + .types = { TYPE_FIRE, TYPE_FIRE}, \ + .abilities = {ABILITY_RUN_AWAY, ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY},\ + .bodyColor = BODY_COLOR_YELLOW + +#define PONYTA_FAMILY_MISC_INFO \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, \ + .noFlip = FALSE + +#define PONYTA_MISC_INFO \ + .baseHP = 50, \ + .baseAttack = 85, \ + .baseDefense = 55, \ + .baseSpeed = 90, \ + .baseSpAttack = 65, \ + .baseSpDefense = 65, \ + .catchRate = 190, \ + .expYield = 82, \ + .evYield_Speed = 1, \ + .speciesName = _("Ponyta"), \ + .cryId = CRY_PONYTA, \ + .natDexNum = NATIONAL_DEX_PONYTA, \ + .footprint = gMonFootprint_Ponyta, \ + .formSpeciesIdTable = sPonytaFormSpeciesIdTable,\ + PONYTA_FAMILY_MISC_INFO + +#define RAPIDASH_MISC_INFO \ + .baseHP = 65, \ + .baseAttack = 100, \ + .baseDefense = 70, \ + .baseSpeed = 105, \ + .baseSpAttack = 80, \ + .baseSpDefense = 80, \ + .catchRate = 60, \ + .expYield = 175, \ + .evYield_Speed = 2, \ + .speciesName = _("Rapidash"), \ + .cryId = CRY_RAPIDASH, \ + .natDexNum = NATIONAL_DEX_RAPIDASH, \ + .height = 17, \ + .pokemonScale = 256, \ + .pokemonOffset = 0, \ + .trainerScale = 289, \ + .trainerOffset = 1, \ + .footprint = gMonFootprint_Rapidash, \ + .formSpeciesIdTable = sRapidashFormSpeciesIdTable, \ + PONYTA_FAMILY_MISC_INFO + + [SPECIES_PONYTA] = + { + KANTONIAN_PONYTA_FAMILY_INFO, + PONYTA_MISC_INFO, + .categoryName = _("Fire Horse"), + .height = 10, + .weight = 300, + .description = COMPOUND_STRING( + "A Ponyta is very weak at birth. It can\n" + "barely stand up. Its legs become stronger\n" + "as it stumbles and falls while trying to\n" + "keep up with its parent."), + .pokemonScale = 283, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Ponyta, 56, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Ponyta, + .frontAnimId = ANIM_V_SHAKE, + .frontAnimDelay = 10, + BACK_PIC(Ponyta, 64, 56), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, + PALETTE(Ponyta), + ICON(Ponyta, 3), + LEARNSETS(Ponyta), + .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_RAPIDASH}), + }, + + [SPECIES_RAPIDASH] = + { + KANTONIAN_PONYTA_FAMILY_INFO, + RAPIDASH_MISC_INFO, + .categoryName = _("Fire Horse"), + .weight = 950, + .description = COMPOUND_STRING( + "It usually canters casually in the fields\n" + "and plains. But once a Rapidash turns\n" + "serious, its fiery manes flare and blaze\n" + "as it gallops its way up to 150 mph."), + FRONT_PIC(Rapidash, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Rapidash, + .frontAnimId = ANIM_H_SHAKE, + BACK_PIC(Rapidash, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Rapidash), + ICON(Rapidash, 3), + LEARNSETS(Rapidash), + }, + +#define GALARIAN_PONYTA_FAMILY_INFO \ + .abilities = {ABILITY_RUN_AWAY, ABILITY_PASTEL_VEIL, ABILITY_ANTICIPATION}, \ + .bodyColor = BODY_COLOR_WHITE, \ + .isGalarianForm = TRUE + +#if P_GALARIAN_FORMS + [SPECIES_PONYTA_GALARIAN] = + { + GALARIAN_PONYTA_FAMILY_INFO, + PONYTA_MISC_INFO, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, + .categoryName = _("Unique Horn"), + .height = 8, + .weight = 240, + .description = COMPOUND_STRING( + "Its small horn hides a healing power.\n" + "This Pokémon will look into your eyes and\n" + "read the contents of your heart. If it\n" + "finds evil there, it promptly hides away."), + .pokemonScale = 283, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(PonytaGalarian, 64, 56), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_PonytaGalarian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(PonytaGalarian, 64, 56), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(PonytaGalarian), + ICON(PonytaGalarian, 2), + LEARNSETS(PonytaGalarian), + .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_RAPIDASH_GALARIAN}), + }, + + [SPECIES_RAPIDASH_GALARIAN] = + { + GALARIAN_PONYTA_FAMILY_INFO, + RAPIDASH_MISC_INFO, + .types = { TYPE_PSYCHIC, TYPE_FAIRY}, + .categoryName = _("Unique Horn"), + .weight = 800, + .description = COMPOUND_STRING( + "Little can stand up to its psycho cut.\n" + "Unleashed from this Pokémon's horn,\n" + "the move will punch a hole right\n" + "through a thick metal sheet."), + FRONT_PIC(RapidashGalarian, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_RapidashGalarian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(RapidashGalarian, 64, 56), + .backPicYOffset = 6, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(RapidashGalarian), + ICON(RapidashGalarian, 2), + LEARNSETS(RapidashGalarian), + }, +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_PONYTA + +#if P_FAMILY_SLOWPOKE +#define SLOWPOKE_MISC_INFO \ + .baseHP = 90, \ + .baseAttack = 65, \ + .baseDefense = 65, \ + .baseSpeed = 15, \ + .baseSpAttack = 40, \ + .baseSpDefense = 40, \ + .catchRate = 190, \ + .expYield = 63, \ + .evYield_HP = 1, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, \ + .bodyColor = BODY_COLOR_PINK, \ + .noFlip = FALSE, \ + .speciesName = _("Slowpoke"), \ + .natDexNum = NATIONAL_DEX_SLOWPOKE, \ + .categoryName = _("Dopey"), \ + .height = 12, \ + .weight = 360, \ + .pokemonScale = 256, \ + .pokemonOffset = 10, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Slowpoke, \ + .formSpeciesIdTable = sSlowpokeFormSpeciesIdTable + +#define SLOWBRO_MISC_INFO \ + .catchRate = 75, \ + .itemRare = ITEM_KINGS_ROCK, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, \ + .bodyColor = BODY_COLOR_PINK, \ + .speciesName = _("Slowbro"), \ + .cryId = CRY_SLOWBRO, \ + .natDexNum = NATIONAL_DEX_SLOWBRO, \ + .categoryName = _("Hermit Crab"), \ + .footprint = gMonFootprint_Slowbro, \ + .formSpeciesIdTable = sSlowbroFormSpeciesIdTable + +#define SLOWKING_MISC_INFO \ + .catchRate = 70, \ + .expYield = 172, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, \ + .bodyColor = BODY_COLOR_PINK, \ + .noFlip = FALSE, \ + .speciesName = _("Slowking"), \ + .cryId = CRY_SLOWKING, \ + .natDexNum = NATIONAL_DEX_SLOWKING, \ + .weight = 795, \ + .footprint = gMonFootprint_Slowking, \ + .formSpeciesIdTable = sSlowkingFormSpeciesIdTable + + [SPECIES_SLOWPOKE] = + { + SLOWPOKE_MISC_INFO, + .types = { TYPE_WATER, TYPE_PSYCHIC }, + .itemRare = ITEM_LAGGING_TAIL, + .abilities = {ABILITY_OBLIVIOUS, ABILITY_OWN_TEMPO, ABILITY_REGENERATOR}, + .cryId = CRY_SLOWPOKE, + .description = COMPOUND_STRING( + "It catches prey by dipping its tail in\n" + "water at the side of a river. But it often\n" + "forgets what it is doing and spends entire\n" + "days just loafing at water's edge."), + FRONT_PIC(Slowpoke, 64, 32), + .frontPicYOffset = 16, + .frontAnimFrames = sAnims_Slowpoke, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + BACK_PIC(Slowpoke, 64, 40), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Slowpoke), + ICON(Slowpoke, 0), + LEARNSETS(Slowpoke), + .evolutions = EVOLUTION({EVO_LEVEL, 37, SPECIES_SLOWBRO}, + {EVO_TRADE_ITEM, ITEM_KINGS_ROCK, SPECIES_SLOWKING}, + {EVO_ITEM, ITEM_KINGS_ROCK, SPECIES_SLOWKING}), + }, + + [SPECIES_SLOWBRO] = + { + SLOWBRO_MISC_INFO, + .baseHP = 95, + .baseAttack = 75, + .baseDefense = 110, + .baseSpeed = 30, + .baseSpAttack = 100, + .baseSpDefense = 80, + .types = { TYPE_WATER, TYPE_PSYCHIC }, + .expYield = 172, + .evYield_Defense = 2, + .abilities = {ABILITY_OBLIVIOUS, ABILITY_OWN_TEMPO, ABILITY_REGENERATOR}, + .noFlip = FALSE, + .height = 16, + .weight = 785, + .description = COMPOUND_STRING( + "Its tail has a Shellder firmly attached\n" + "with a bite. As a result, the tail can't be\n" + "used for fishing anymore. This forces it\n" + "to reluctantly swim and catch prey."), + .pokemonScale = 256, + .pokemonOffset = 6, + .trainerScale = 296, + .trainerOffset = 2, + FRONT_PIC(Slowbro, 56, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Slowbro, + .frontAnimId = ANIM_H_STRETCH, + BACK_PIC(Slowbro, 64, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Slowbro), + ICON(Slowbro, 0), + LEARNSETS(Slowbro), + .formChangeTable = sSlowbroFormChangeTable, + }, + +#if P_GEN_2_CROSS_EVOS + [SPECIES_SLOWKING] = + { + SLOWKING_MISC_INFO, + .baseHP = 95, + .baseAttack = 75, + .baseDefense = 80, + .baseSpeed = 30, + .baseSpAttack = 100, + .baseSpDefense = 110, + .types = { TYPE_WATER, TYPE_PSYCHIC }, + .evYield_SpDefense = 3, + .itemRare = ITEM_KINGS_ROCK, + .abilities = {ABILITY_OBLIVIOUS, ABILITY_OWN_TEMPO, ABILITY_REGENERATOR}, + .categoryName = _("Royal"), + .height = 20, + .description = COMPOUND_STRING( + "It undertakes research every day to\n" + "solve the mysteries of the world.\n" + "However, it apparently forgets everything\n" + "if the Shellder on its head comes off."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 309, + .trainerOffset = 5, + FRONT_PIC(Slowking, 48, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Slowking, + .frontAnimId = ANIM_SHRINK_GROW, + BACK_PIC(Slowking, 56, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Slowking), + ICON(Slowking, 0), + LEARNSETS(Slowking), + }, +#endif //P_GEN_2_CROSS_EVOS + +#if P_MEGA_EVOLUTIONS + [SPECIES_SLOWBRO_MEGA] = + { + SLOWBRO_MISC_INFO, + .baseHP = 95, + .baseAttack = 75, + .baseDefense = 180, + .baseSpeed = 30, + .baseSpAttack = 130, + .baseSpDefense = 80, + .types = { TYPE_WATER, TYPE_PSYCHIC}, + .expYield = 207, + .evYield_Defense = 2, + .abilities = {ABILITY_SHELL_ARMOR, ABILITY_SHELL_ARMOR, ABILITY_SHELL_ARMOR}, + .noFlip = FALSE, + .height = 20, + .weight = 1200, + .description = COMPOUND_STRING( + "When bathed in the energy of Mega\n" + "Evolution, Shellder converts into\n" + "impregnable armor. There is virtually no\n" + "change in Slowpoke."), + .pokemonScale = 256, + .pokemonOffset = 6, + .trainerScale = 296, + .trainerOffset = 2, + FRONT_PIC(SlowbroMega, 56, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_SlowbroMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(SlowbroMega, 64, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(SlowbroMega), + ICON(SlowbroMega, 0), + LEARNSETS(Slowbro), + .formChangeTable = sSlowbroFormChangeTable, + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS + +#if P_GALARIAN_FORMS + [SPECIES_SLOWPOKE_GALARIAN] = + { + SLOWPOKE_MISC_INFO, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, + .abilities = {ABILITY_GLUTTONY, ABILITY_OWN_TEMPO, ABILITY_REGENERATOR}, + .cryId = CRY_SLOWPOKE_GALARIAN, + .description = COMPOUND_STRING( + "Although it is normally zoned out, its\n" + "expression abruptly sharpens on occasion.\n" + "The cause seems to lie in Slowpoke's diet,\n" + "which also give their tails a spicy flavor."), + FRONT_PIC(SlowpokeGalarian, 56, 32), + .frontPicYOffset = 19, + .frontAnimFrames = sAnims_SlowpokeGalarian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(SlowpokeGalarian, 64, 40), + .backPicYOffset = 13, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(SlowpokeGalarian), + ICON(SlowpokeGalarian, 1), + LEARNSETS(SlowpokeGalarian), + .isGalarianForm = TRUE, + .evolutions = EVOLUTION({EVO_ITEM, ITEM_GALARICA_CUFF, SPECIES_SLOWBRO_GALARIAN}, + {EVO_ITEM, ITEM_GALARICA_WREATH, SPECIES_SLOWKING_GALARIAN}), + }, + + [SPECIES_SLOWBRO_GALARIAN] = + { + SLOWBRO_MISC_INFO, + .baseHP = 95, + .baseAttack = 100, + .baseDefense = 95, + .baseSpeed = 30, + .baseSpAttack = 100, + .baseSpDefense = 70, + .types = { TYPE_POISON, TYPE_PSYCHIC}, + .expYield = 172, + .evYield_Attack = 2, + .abilities = {ABILITY_QUICK_DRAW, ABILITY_OWN_TEMPO, ABILITY_REGENERATOR}, + .noFlip = FALSE, + .height = 16, + .weight = 705, + .description = COMPOUND_STRING( + "A Shellder bite set off a chemical reaction\n" + "with the spices inside Slowbro's body,\n" + "causing Slowbro to become a\n" + "Poison-type Pokémon."), + .pokemonScale = 256, + .pokemonOffset = 6, + .trainerScale = 296, + .trainerOffset = 2, + FRONT_PIC(SlowbroGalarian, 64, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_SlowbroGalarian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(SlowbroGalarian, 64, 48), + .backPicYOffset = 9, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(SlowbroGalarian), + ICON(SlowbroGalarian, 0), + LEARNSETS(SlowbroGalarian), + .isGalarianForm = TRUE, + }, + +#if P_GEN_2_CROSS_EVOS + [SPECIES_SLOWKING_GALARIAN] = + { + SLOWKING_MISC_INFO, + .baseHP = 95, + .baseAttack = 65, + .baseDefense = 80, + .baseSpeed = 30, + .baseSpAttack = 110, + .baseSpDefense = 110, + .types = { TYPE_POISON, TYPE_PSYCHIC}, + .evYield_SpDefense = 2, + .abilities = {ABILITY_CURIOUS_MEDICINE, ABILITY_OWN_TEMPO, ABILITY_REGENERATOR}, + .categoryName = _("Hexpert"), + .height = 18, + .description = COMPOUND_STRING( + "A combination of toxins and the shock of\n" + "evolving has increased Shellder's\n" + "intelligence to the point that Shellder\n" + "now controls Slowking."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 309, + .trainerOffset = 5, + FRONT_PIC(SlowkingGalarian, 48, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_SlowkingGalarian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(SlowkingGalarian, 56, 64), + .backPicYOffset = 3, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(SlowkingGalarian), + ICON(SlowkingGalarian, 2), + LEARNSETS(SlowkingGalarian), + .isGalarianForm = TRUE, + }, +#endif //P_GEN_2_CROSS_EVOS +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_SLOWPOKE + +#if P_FAMILY_MAGNEMITE + [SPECIES_MAGNEMITE] = + { + .baseHP = 25, + .baseAttack = 35, + .baseDefense = 70, + .baseSpeed = 45, + .baseSpAttack = 95, + .baseSpDefense = 55, + .types = { TYPE_ELECTRIC, TYPE_STEEL }, + .catchRate = 190, + .expYield = 65, + .evYield_SpAttack = 1, + .itemRare = ITEM_METAL_COAT, + .genderRatio = MON_GENDERLESS, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_PICKUP, ABILITY_QUICK_FEET, ABILITY_HONEY_GATHER}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = TRUE, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_MAGNET_PULL, ABILITY_STURDY, ABILITY_ANALYTIC}, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + .speciesName = _("Magnemite"), + .cryId = CRY_MAGNEMITE, + .natDexNum = NATIONAL_DEX_MAGNEMITE, + .categoryName = _("Magnet"), + .height = 3, + .weight = 60, + .description = COMPOUND_STRING( + "The units at its sides are extremely\n" + "powerful magnets. They generate enough\n" + "magnetism to draw in iron objects from\n" + "over 300 feet away."), + .pokemonScale = 288, + .pokemonOffset = -9, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Magnemite, 48, 32), + .frontPicYOffset = 20, + .frontAnimFrames = sAnims_Magnemite, + .frontAnimId = ANIM_TUMBLING_FRONT_FLIP_TWICE, + .enemyMonElevation = 17, + BACK_PIC(Magnemite, 48, 40), + .backPicYOffset = 15, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(Magnemite), + ICON(Magnemite, 0), + .footprint = gMonFootprint_Magnemite, + LEARNSETS(Magnemite), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_MAGNETON}), }, - [SPECIES_URSARING] = + [SPECIES_MAGNETON] = { - .baseHP = 90, - .baseAttack = 130, - .baseDefense = 75, - .baseSpeed = 55, - .baseSpAttack = 75, - .baseSpDefense = 75, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .baseHP = 50, + .baseAttack = 60, + .baseDefense = 95, + .baseSpeed = 70, + .baseSpAttack = 120, + .baseSpDefense = 70, + .types = { TYPE_ELECTRIC, TYPE_STEEL }, .catchRate = 60, - .expYield = 175, - .evYield_Attack = 2, - .genderRatio = PERCENT_FEMALE(50), + .expYield = 163, + .evYield_SpAttack = 2, + .itemRare = ITEM_METAL_COAT, + .genderRatio = MON_GENDERLESS, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_GUTS, ABILITY_QUICK_FEET, ABILITY_UNNERVE}, - .bodyColor = BODY_COLOR_BROWN, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_MAGNET_PULL, ABILITY_STURDY, ABILITY_ANALYTIC}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, - }, - - [SPECIES_SLUGMA] = + .speciesName = _("Magneton"), + .cryId = CRY_MAGNETON, + .natDexNum = NATIONAL_DEX_MAGNETON, + .categoryName = _("Magnet"), + .height = 10, + .weight = 600, + .description = COMPOUND_STRING( + "It is actually three Magnemite linked\n" + "by magnetism. It generates powerful radio\n" + "waves that raise temperatures by 3.6\n" + "degrees F within a 3,300-foot radius."), + .pokemonScale = 292, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Magneton, 64, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Magneton, + .frontAnimId = ANIM_FLASH_YELLOW, + .enemyMonElevation = 9, + BACK_PIC(Magneton, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(Magneton), + ICON(Magneton, 0), + .footprint = gMonFootprint_Magneton, + LEARNSETS(Magneton), + .evolutions = EVOLUTION({EVO_MAPSEC, MAPSEC_NEW_MAUVILLE, SPECIES_MAGNEZONE}, + {EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_MAGNEZONE}), + }, + +#if P_GEN_4_CROSS_EVOS + [SPECIES_MAGNEZONE] = { - .baseHP = 40, - .baseAttack = 40, - .baseDefense = 40, - .baseSpeed = 20, - .baseSpAttack = 70, - .baseSpDefense = 40, - .types = { TYPE_FIRE, TYPE_FIRE }, - .catchRate = 190, - .expYield = 50, - .evYield_SpAttack = 1, - .genderRatio = PERCENT_FEMALE(50), + .baseHP = 70, + .baseAttack = 70, + .baseDefense = 115, + .baseSpeed = 60, + .baseSpAttack = 130, + .baseSpDefense = 90, + .types = { TYPE_ELECTRIC, TYPE_STEEL}, + .catchRate = 30, + .expYield = 241, + .evYield_SpAttack = 3, + .itemRare = ITEM_METAL_COAT, + .genderRatio = MON_GENDERLESS, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_MAGMA_ARMOR, ABILITY_FLAME_BODY, ABILITY_WEAK_ARMOR}, - .bodyColor = BODY_COLOR_RED, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_MAGNET_PULL, ABILITY_STURDY, ABILITY_ANALYTIC}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, - }, + .speciesName = _("Magnezone"), + .cryId = CRY_MAGNEZONE, + .natDexNum = NATIONAL_DEX_MAGNEZONE, + .categoryName = _("Magnet Area"), + .height = 12, + .weight = 1800, + .description = COMPOUND_STRING( + "As it zooms through the sky, this\n" + "Pokémon seems to be receiving signals\n" + "of unknown origin, while transmitting its\n" + "own signals of unknown purpose."), + .pokemonScale = 282, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Magnezone, 64, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Magnezone, + .frontAnimId = ANIM_H_SLIDE_WOBBLE, + .enemyMonElevation = 4, + BACK_PIC(Magnezone, 64, 40), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(Magnezone), + ICON(Magnezone, 0), + .footprint = gMonFootprint_Magnezone, + LEARNSETS(Magnezone), + }, +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MAGNEMITE + +#if P_FAMILY_FARFETCHD +#define FARFETCHD_ATTACK (P_UPDATED_STATS >= GEN_7 ? 90 : 65) + +#define FARFETCHD_MISC_INFO \ + .catchRate = 45, \ + .expYield = 132, \ + .evYield_Attack = 1, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FIELD}, \ + .bodyColor = BODY_COLOR_BROWN, \ + .noFlip = FALSE, \ + .speciesName = _("Farfetch'd"), \ + .cryId = CRY_FARFETCHD, \ + .natDexNum = NATIONAL_DEX_FARFETCHD, \ + .categoryName = _("Wild Duck"), \ + .footprint = gMonFootprint_Farfetchd, \ + .formSpeciesIdTable = sFarfetchdFormSpeciesIdTable - [SPECIES_MAGCARGO] = + [SPECIES_FARFETCHD] = { - .baseSpDefense = 80, - .baseAttack = 50, - .baseDefense = 120, - .baseSpeed = 30, - #if P_UPDATED_STATS >= GEN_7 - .baseHP = 60, - .baseSpAttack = 90, - #else - .baseHP = 50, - .baseSpAttack = 80, - #endif - .types = { TYPE_FIRE, TYPE_ROCK}, - .catchRate = 75, - .expYield = 151, - .evYield_Defense = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_MAGMA_ARMOR, ABILITY_FLAME_BODY, ABILITY_WEAK_ARMOR}, - .bodyColor = BODY_COLOR_RED, - .noFlip = TRUE, + FARFETCHD_MISC_INFO, + .baseHP = 52, + .baseDefense = 55, + .baseSpeed = 60, + .baseSpAttack = 58, + .baseSpDefense = 62, + .baseAttack = FARFETCHD_ATTACK, + .types = { TYPE_NORMAL, TYPE_FLYING}, + .itemRare = ITEM_LEEK, + .abilities = {ABILITY_KEEN_EYE, ABILITY_INNER_FOCUS, ABILITY_DEFIANT}, + .height = 8, + .weight = 150, + .description = COMPOUND_STRING( + "It is always seen with a stick from a plant.\n" + "Apparently, there are good sticks and bad\n" + "sticks. This Pokémon occasionally fights\n" + "with others over choice sticks."), + .pokemonScale = 330, + .pokemonOffset = 2, + .trainerScale = 293, + .trainerOffset = 2, + FRONT_PIC(Farfetchd, 48, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Farfetchd, + .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL, + BACK_PIC(Farfetchd, 64, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Farfetchd), + ICON(Farfetchd, 1), + LEARNSETS(Farfetchd), + }, + +#if P_GALARIAN_FORMS + [SPECIES_FARFETCHD_GALARIAN] = + { + FARFETCHD_MISC_INFO, + .baseHP = 52, + .baseAttack = FARFETCHD_ATTACK + 5, + .baseDefense = 55, + .baseSpeed = 55, + .baseSpAttack = 58, + .baseSpDefense = 62, + .types = { TYPE_FIGHTING, TYPE_FIGHTING}, + .itemCommon = ITEM_LEEK, + .abilities = {ABILITY_STEADFAST, ABILITY_NONE, ABILITY_SCRAPPY}, + .height = 8, + .weight = 420, + .description = COMPOUND_STRING( + "The stalks of leeks are thicker and longer\n" + "in the Galar region. Brave Farfetch'd\n" + "warriors that adapted to these stalks\n" + "took on a unique form."), + .pokemonScale = 330, + .pokemonOffset = 2, + .trainerScale = 293, + .trainerOffset = 2, + FRONT_PIC(FarfetchdGalarian, 64, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_FarfetchdGalarian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(FarfetchdGalarian, 64, 48), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(FarfetchdGalarian), + ICON(FarfetchdGalarian, 1), + LEARNSETS(FarfetchdGalarian), + .isGalarianForm = TRUE, + .evolutions = EVOLUTION({EVO_CRITICAL_HITS, 3, SPECIES_SIRFETCHD}), }, - [SPECIES_SWINUB] = + [SPECIES_SIRFETCHD] = { - .baseHP = 50, - .baseAttack = 50, - .baseDefense = 40, - .baseSpeed = 50, - .baseSpAttack = 30, - .baseSpDefense = 30, - .types = { TYPE_ICE, TYPE_GROUND }, - .catchRate = 225, - .expYield = 50, - .evYield_Attack = 1, + .baseHP = 62, + .baseAttack = 135, + .baseDefense = 95, + .baseSpeed = 65, + .baseSpAttack = 68, + .baseSpDefense = 82, + .types = { TYPE_FIGHTING, TYPE_FIGHTING}, + .catchRate = 45, + .expYield = 177, + .evYield_Attack = 2, + .itemRare = ITEM_LEEK, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_OBLIVIOUS, ABILITY_SNOW_CLOAK, ABILITY_THICK_FAT}, - .bodyColor = BODY_COLOR_BROWN, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FIELD}, + .abilities = {ABILITY_STEADFAST, ABILITY_NONE, ABILITY_SCRAPPY}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - }, - - [SPECIES_PILOSWINE] = + .speciesName = _("Sirfetch'd"), + .cryId = CRY_SIRFETCHD, + .natDexNum = NATIONAL_DEX_SIRFETCHD, + .categoryName = _("Wild Duck"), + .height = 8, + .weight = 1170, + .description = COMPOUND_STRING( + "Only Farfetch'd that have survived many\n" + "battles can attain this evolution. When\n" + "this Pokémon's leek withers, it will\n" + "retire from combat."), + .pokemonScale = 366, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Sirfetchd, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Sirfetchd, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Sirfetchd, 64, 48), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Sirfetchd), + ICON(Sirfetchd, 1), + .footprint = gMonFootprint_Sirfetchd, + LEARNSETS(Sirfetchd), + }, +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_FARFETCHD + +#if P_FAMILY_DODUO + [SPECIES_DODUO] = { - .baseHP = 100, - .baseAttack = 100, - .baseDefense = 80, - .baseSpeed = 50, - .baseSpAttack = 60, - .baseSpDefense = 60, - .types = { TYPE_ICE, TYPE_GROUND }, - .catchRate = 75, - .expYield = 158, - .evYield_HP = 1, + .baseHP = 35, + .baseAttack = 85, + .baseDefense = 45, + .baseSpeed = 75, + .baseSpAttack = 35, + .baseSpDefense = 35, + .types = { TYPE_NORMAL, TYPE_FLYING }, + .catchRate = 190, + .expYield = 62, .evYield_Attack = 1, + .itemRare = ITEM_SHARP_BEAK, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_OBLIVIOUS, ABILITY_SNOW_CLOAK, ABILITY_THICK_FAT}, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + .abilities = {ABILITY_RUN_AWAY, ABILITY_EARLY_BIRD, ABILITY_TANGLED_FEET}, .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .speciesName = _("Doduo"), + .cryId = CRY_DODUO, + .natDexNum = NATIONAL_DEX_DODUO, + .categoryName = _("Twin Bird"), + .height = 14, + .weight = 392, + .description = COMPOUND_STRING( + "Even while eating or sleeping, one of the\n" + "heads remains always vigilant for any sign\n" + "of danger. When threatened, it flees at\n" + "over 60 miles per hour."), + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 257, + .trainerOffset = -1, + FRONT_PIC(Doduo, 64, 56), + FRONT_PIC_FEMALE(Doduo, 64, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Doduo, + .frontAnimId = ANIM_H_SHAKE_SLOW, + BACK_PIC(Doduo, 64, 56), + BACK_PIC_FEMALE(Doduo, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(Doduo), + ICON(Doduo, 2), + .footprint = gMonFootprint_Doduo, + LEARNSETS(Doduo), + .evolutions = EVOLUTION({EVO_LEVEL, 31, SPECIES_DODRIO}), }, - [SPECIES_CORSOLA] = - { - .baseAttack = 55, - .baseSpeed = 35, - .baseSpAttack = 65, - #if P_UPDATED_STATS >= GEN_7 - .baseHP = 65, - .baseDefense = 95, - .baseSpDefense = 95, - #else - .baseHP = 55, - .baseDefense = 85, - .baseSpDefense = 85, - #endif - .types = { TYPE_WATER, TYPE_ROCK}, - .catchRate = 60, - .expYield = 144, - .evYield_Defense = 1, - .evYield_SpDefense = 1, - .itemRare = ITEM_LUMINOUS_MOSS, - .genderRatio = PERCENT_FEMALE(75), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3}, - .abilities = {ABILITY_HUSTLE, ABILITY_NATURAL_CURE, ABILITY_REGENERATOR}, - .bodyColor = BODY_COLOR_PINK, - .noFlip = FALSE, - }, - - [SPECIES_REMORAID] = + [SPECIES_DODRIO] = { - .baseHP = 35, - .baseAttack = 65, - .baseDefense = 35, - .baseSpeed = 65, - .baseSpAttack = 65, - .baseSpDefense = 35, - .types = { TYPE_WATER, TYPE_WATER }, - .catchRate = 190, - .expYield = 60, - .evYield_SpAttack = 1, + .baseHP = 60, + .baseAttack = 110, + .baseDefense = 70, + .baseSpeed = P_UPDATED_STATS >= GEN_7 ? 110 : 100, + .baseSpAttack = 60, + .baseSpDefense = 60, + .types = { TYPE_NORMAL, TYPE_FLYING}, + .catchRate = 45, + .expYield = 165, + .evYield_Attack = 2, + .itemRare = ITEM_SHARP_BEAK, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_2}, - .abilities = {ABILITY_HUSTLE, ABILITY_SNIPER, ABILITY_MOODY}, - .bodyColor = BODY_COLOR_GRAY, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + .abilities = {ABILITY_RUN_AWAY, ABILITY_EARLY_BIRD, ABILITY_TANGLED_FEET}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - }, - - [SPECIES_OCTILLERY] = + .speciesName = _("Dodrio"), + .cryId = CRY_DODRIO, + .natDexNum = NATIONAL_DEX_DODRIO, + .categoryName = _("Triple Bird"), + .height = 18, + .weight = 852, + .description = COMPOUND_STRING( + "A peculiar Pokémon species with three\n" + "heads. It vigorously races across grassy\n" + "plains even in arid seasons with little\n" + "rainfall."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 268, + .trainerOffset = 0, + FRONT_PIC(Dodrio, 64, 64), + FRONT_PIC_FEMALE(Dodrio, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Dodrio, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Dodrio, 64, 64), + BACK_PIC_FEMALE(Dodrio, 64, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Dodrio), + ICON(Dodrio, 2), + .footprint = gMonFootprint_Dodrio, + LEARNSETS(Dodrio), + }, +#endif //P_FAMILY_DODUO + +#if P_FAMILY_SEEL + [SPECIES_SEEL] = { - .baseHP = 75, - .baseAttack = 105, - .baseDefense = 75, + .baseHP = 65, + .baseAttack = 45, + .baseDefense = 55, .baseSpeed = 45, - .baseSpAttack = 105, - .baseSpDefense = 75, + .baseSpAttack = 45, + .baseSpDefense = 70, .types = { TYPE_WATER, TYPE_WATER }, - .catchRate = 75, - .expYield = 168, - .evYield_Attack = 1, - .evYield_SpAttack = 1, + .catchRate = 190, + .expYield = 65, + .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_2}, - .abilities = {ABILITY_SUCTION_CUPS, ABILITY_SNIPER, ABILITY_MOODY}, - .bodyColor = BODY_COLOR_RED, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, + .abilities = {ABILITY_THICK_FAT, ABILITY_HYDRATION, ABILITY_ICE_BODY}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, + .speciesName = _("Seel"), + .cryId = CRY_SEEL, + .natDexNum = NATIONAL_DEX_SEEL, + .categoryName = _("Sea Lion"), + .height = 11, + .weight = 900, + .description = COMPOUND_STRING( + "Seel hunt for prey in frigid, ice-covered\n" + "seas. When it needs to breathe, it punches\n" + "a hole through the ice with the sharply\n" + "protruding section of its head."), + .pokemonScale = 297, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Seel, 56, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Seel, + .frontAnimId = ANIM_H_STRETCH, + BACK_PIC(Seel, 64, 40), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Seel), + ICON(Seel, 0), + .footprint = gMonFootprint_Seel, + LEARNSETS(Seel), + .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_DEWGONG}), }, - [SPECIES_DELIBIRD] = + [SPECIES_DEWGONG] = { - .baseHP = 45, - .baseAttack = 55, - .baseDefense = 45, - .baseSpeed = 75, - .baseSpAttack = 65, - .baseSpDefense = 45, - .types = { TYPE_ICE, TYPE_FLYING }, - .catchRate = 45, - .expYield = 116, - .evYield_Speed = 1, + .baseHP = 90, + .baseAttack = 70, + .baseDefense = 80, + .baseSpeed = 70, + .baseSpAttack = 70, + .baseSpDefense = 95, + .types = { TYPE_WATER, TYPE_ICE }, + .catchRate = 75, + .expYield = 166, + .evYield_SpDefense = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, + .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, - .abilities = {ABILITY_VITAL_SPIRIT, ABILITY_HUSTLE, ABILITY_INSOMNIA}, - .bodyColor = BODY_COLOR_RED, + .abilities = {ABILITY_THICK_FAT, ABILITY_HYDRATION, ABILITY_ICE_BODY}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, + .speciesName = _("Dewgong"), + .cryId = CRY_DEWGONG, + .natDexNum = NATIONAL_DEX_DEWGONG, + .categoryName = _("Sea Lion"), + .height = 17, + .weight = 1200, + .description = COMPOUND_STRING( + "It loves to snooze on bitterly cold ice.\n" + "The sight of this Pokémon sleeping on\n" + "a glacier was mistakenly thought to be\n" + "a mermaid by a mariner long ago."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 275, + .trainerOffset = 0, + FRONT_PIC(Dewgong, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Dewgong, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + BACK_PIC(Dewgong, 64, 56), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Dewgong), + ICON(Dewgong, 2), + .footprint = gMonFootprint_Dewgong, + LEARNSETS(Dewgong), + }, +#endif //P_FAMILY_SEEL + +#if P_FAMILY_GRIMER +#define GRIMER_FAMILY_MISC_INFO \ + .itemRare = ITEM_BLACK_SLUDGE, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS} + +#define GRIMER_MISC_INFO \ + .baseHP = 80, \ + .baseAttack = 80, \ + .baseDefense = 50, \ + .baseSpeed = 25, \ + .baseSpAttack = 40, \ + .baseSpDefense = 50, \ + .catchRate = 190, \ + .expYield = 65, \ + .evYield_HP = 1, \ + .noFlip = FALSE, \ + .speciesName = _("Grimer"), \ + .cryId = CRY_GRIMER, \ + .natDexNum = NATIONAL_DEX_GRIMER, \ + .categoryName = _("Sludge"), \ + .footprint = gMonFootprint_Grimer, \ + .formSpeciesIdTable = sGrimerFormSpeciesIdTable,\ + GRIMER_FAMILY_MISC_INFO + +#define MUK_MISC_INFO \ + .baseHP = 105, \ + .baseAttack = 105, \ + .baseDefense = 75, \ + .baseSpeed = 50, \ + .baseSpAttack = 65, \ + .baseSpDefense = 100, \ + .catchRate = 75, \ + .expYield = 175, \ + .evYield_HP = 1, \ + .evYield_Attack = 1, \ + .speciesName = _("Muk"), \ + .cryId = CRY_MUK, \ + .natDexNum = NATIONAL_DEX_MUK, \ + .categoryName = _("Sludge"), \ + .footprint = gMonFootprint_Muk, \ + .formSpeciesIdTable = sMukFormSpeciesIdTable, \ + GRIMER_FAMILY_MISC_INFO + +#define KANTONIAN_GRIMER_FAMILY_INFO \ + .types = { TYPE_POISON, TYPE_POISON }, \ + .abilities = {ABILITY_STENCH, ABILITY_STICKY_HOLD, ABILITY_POISON_TOUCH}, \ + .bodyColor = BODY_COLOR_PURPLE + + [SPECIES_GRIMER] = + { + KANTONIAN_GRIMER_FAMILY_INFO, + GRIMER_MISC_INFO, + .height = 9, + .weight = 300, + .description = COMPOUND_STRING( + "Born from polluted sludge in the sea,\n" + "Grimer's favorite food is anything filthy.\n" + "They feed on wastewater pumped out from\n" + "factories."), + .pokemonScale = 258, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Grimer, 48, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Grimer, + .frontAnimId = ANIM_H_SLIDE_SLOW, + BACK_PIC(Grimer, 64, 40), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_V_STRETCH, + PALETTE(Grimer), + ICON(Grimer, 2), + LEARNSETS(Grimer), + .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_MUK}), }, - [SPECIES_MANTINE] = + [SPECIES_MUK] = { - .baseAttack = 40, - .baseDefense = 70, - .baseSpeed = 70, - .baseSpAttack = 80, - .baseSpDefense = 140, - #if P_UPDATED_STATS >= GEN_7 - .baseHP = 85, - #else - .baseHP = 65, - #endif - .types = { TYPE_WATER, TYPE_FLYING}, - .catchRate = 25, - .expYield = 170, - .evYield_SpDefense = 2, + KANTONIAN_GRIMER_FAMILY_INFO, + MUK_MISC_INFO, + .noFlip = FALSE, + .height = 12, + .weight = 300, + .description = COMPOUND_STRING( + "It prefers warm and humid habitats.\n" + "In the summertime, the toxic substances\n" + "in its body intensify, making Muk reek like\n" + "putrid kitchen garbage."), + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Muk, 64, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Muk, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .frontAnimDelay = 45, + BACK_PIC(Muk, 64, 56), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_H_STRETCH, + PALETTE(Muk), + ICON(Muk, 2), + LEARNSETS(Muk), + }, + +#if P_ALOLAN_FORMS +#define ALOLAN_GRIMER_FAMILY_INFO \ + .types = { TYPE_POISON, TYPE_DARK }, \ + .abilities = {ABILITY_POISON_TOUCH, ABILITY_GLUTTONY, ABILITY_POWER_OF_ALCHEMY},\ + .bodyColor = BODY_COLOR_GREEN, \ + .isAlolanForm = TRUE + + [SPECIES_GRIMER_ALOLAN] = + { + ALOLAN_GRIMER_FAMILY_INFO, + GRIMER_MISC_INFO, + .height = 7, + .weight = 420, + .description = COMPOUND_STRING( + "There are a hundred or so of them living\n" + "in Alola's waste-disposal site. They're all\n" + "hard workers who eat a lot of trash. Grimer\n" + "seems to relish any and all kinds of trash."), + .pokemonScale = 258, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(GrimerAlolan, 56, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_GrimerAlolan, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(GrimerAlolan, 64, 40), + .backPicYOffset = 14, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(GrimerAlolan), + ICON(GrimerAlolan, 1), + LEARNSETS(GrimerAlolan), + .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_MUK_ALOLAN}), + }, + + [SPECIES_MUK_ALOLAN] = + { + MUK_MISC_INFO, + ALOLAN_GRIMER_FAMILY_INFO, + .noFlip = TRUE, + .height = 10, + .weight = 520, + .description = COMPOUND_STRING( + "While it's unexpectedly quiet and friendly,\n" + "if it's not fed any trash for a while,,\n" + "it will smash its Trainer's furnishings,\n" + "and eat up the fragments."), + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(MukAlolan, 64, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_MukAlolan, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(MukAlolan, 64, 56), + .backPicYOffset = 6, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(MukAlolan), + ICON(MukAlolan, 0), + LEARNSETS(MukAlolan), + }, +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_GRIMER + +#if P_FAMILY_SHELLDER + [SPECIES_SHELLDER] = + { + .baseHP = 30, + .baseAttack = 65, + .baseDefense = 100, + .baseSpeed = 40, + .baseSpAttack = 45, + .baseSpDefense = 25, + .types = { TYPE_WATER, TYPE_WATER }, + .catchRate = 190, + .expYield = 61, + .evYield_Defense = 1, + .itemCommon = ITEM_PEARL, + .itemRare = ITEM_BIG_PEARL, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_SWIFT_SWIM, ABILITY_WATER_ABSORB, ABILITY_WATER_VEIL}, + .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, + .abilities = {ABILITY_SHELL_ARMOR, ABILITY_SKILL_LINK, ABILITY_OVERCOAT}, .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, + .speciesName = _("Shellder"), + .cryId = CRY_SHELLDER, + .natDexNum = NATIONAL_DEX_SHELLDER, + .categoryName = _("Bivalve"), + .height = 3, + .weight = 40, + .description = COMPOUND_STRING( + "At night, it burrows a hole in the seafloor\n" + "with its broad tongue to make a place to\n" + "sleep. While asleep, it closes its shell,\n" + "but leaves its tongue hanging out."), + .pokemonScale = 675, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Shellder, 40, 40), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_Shellder, + .frontAnimId = ANIM_TWIST, + .frontAnimDelay = 20, + BACK_PIC(Shellder, 48, 24), + .backPicYOffset = 21, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Shellder), + ICON(Shellder, 2), + .footprint = gMonFootprint_Shellder, + LEARNSETS(Shellder), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_WATER_STONE, SPECIES_CLOYSTER}), }, - [SPECIES_SKARMORY] = + [SPECIES_CLOYSTER] = { - .baseHP = 65, - .baseAttack = 80, - .baseDefense = 140, + .baseHP = 50, + .baseAttack = 95, + .baseDefense = 180, .baseSpeed = 70, - .baseSpAttack = 40, - .baseSpDefense = 70, - .types = { TYPE_STEEL, TYPE_FLYING }, - .catchRate = 25, - .expYield = 163, + .baseSpAttack = 85, + .baseSpDefense = 45, + .types = { TYPE_WATER, TYPE_ICE }, + .catchRate = 60, + .expYield = 184, .evYield_Defense = 2, - .itemRare = ITEM_METAL_COAT, + .itemCommon = ITEM_PEARL, + .itemRare = ITEM_BIG_PEARL, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_KEEN_EYE, ABILITY_STURDY, ABILITY_WEAK_ARMOR}, - .bodyColor = BODY_COLOR_GRAY, + .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, + .abilities = {ABILITY_SHELL_ARMOR, ABILITY_SKILL_LINK, ABILITY_OVERCOAT}, + .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, - }, - - [SPECIES_HOUNDOUR] = + .speciesName = _("Cloyster"), + .cryId = CRY_CLOYSTER, + .natDexNum = NATIONAL_DEX_CLOYSTER, + .categoryName = _("Bivalve"), + .height = 15, + .weight = 1325, + .description = COMPOUND_STRING( + "It swims in the sea by swallowing water,\n" + "then jetting it out toward the rear.\n" + "The Cloyster shoots spikes from its\n" + "shell using the same system."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 269, + .trainerOffset = 1, + FRONT_PIC(Cloyster, 64, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_Cloyster, + .frontAnimId = ANIM_H_SLIDE_WOBBLE, + BACK_PIC(Cloyster, 64, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(Cloyster), + ICON(Cloyster, 2), + .footprint = gMonFootprint_Cloyster, + LEARNSETS(Cloyster), + }, +#endif //P_FAMILY_SHELLDER + +#if P_FAMILY_GASTLY + [SPECIES_GASTLY] = { - .baseHP = 45, - .baseAttack = 60, + .baseHP = 30, + .baseAttack = 35, .baseDefense = 30, - .baseSpeed = 65, - .baseSpAttack = 80, - .baseSpDefense = 50, - .types = { TYPE_DARK, TYPE_FIRE }, - .catchRate = 120, - .expYield = 66, + .baseSpeed = 80, + .baseSpAttack = 100, + .baseSpDefense = 35, + .types = { TYPE_GHOST, TYPE_POISON }, + .catchRate = 190, + .expYield = 62, .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_EARLY_BIRD, ABILITY_FLASH_FIRE, ABILITY_UNNERVE}, - .bodyColor = BODY_COLOR_BLACK, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, + .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, + .speciesName = _("Gastly"), + .cryId = CRY_GASTLY, + .natDexNum = NATIONAL_DEX_GASTLY, + .categoryName = _("Gas"), + .height = 13, + .weight = 1, + .description = COMPOUND_STRING( + "When exposed to a strong wind, a Gastly's\n" + "gaseous body quickly dwindles away.\n" + "They cluster under the eaves of houses\n" + "to escape the ravages of wind."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Gastly, 64, 48), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_Gastly, + .frontAnimId = ANIM_CIRCLE_C_CLOCKWISE_SLOW, + .enemyMonElevation = 10, + BACK_PIC(Gastly, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_H_VIBRATE, + PALETTE(Gastly), + ICON(Gastly, 2), + .footprint = gMonFootprint_Gastly, + LEARNSETS(Gastly), + .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_HAUNTER}), }, - [SPECIES_HOUNDOOM] = + [SPECIES_HAUNTER] = { - .baseHP = 75, - .baseAttack = 90, - .baseDefense = 50, + .baseHP = 45, + .baseAttack = 50, + .baseDefense = 45, .baseSpeed = 95, - .baseSpAttack = 110, - .baseSpDefense = 80, - .types = { TYPE_DARK, TYPE_FIRE }, - .catchRate = 45, - .expYield = 175, + .baseSpAttack = 115, + .baseSpDefense = 55, + .types = { TYPE_GHOST, TYPE_POISON }, + .catchRate = 90, + .expYield = 142, .evYield_SpAttack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_EARLY_BIRD, ABILITY_FLASH_FIRE, ABILITY_UNNERVE}, - .bodyColor = BODY_COLOR_BLACK, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, + .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, + .speciesName = _("Haunter"), + .cryId = CRY_HAUNTER, + .natDexNum = NATIONAL_DEX_HAUNTER, + .categoryName = _("Gas"), + .height = 16, + .weight = 1, + .description = COMPOUND_STRING( + "If a Haunter beckons you while it is\n" + "floating in darkness, don't approach it.\n" + "This Pokémon will try to lick you with its\n" + "tongue and steal your life away."), + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 293, + .trainerOffset = 2, + FRONT_PIC(Haunter, 64, 48), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_Haunter, + .frontAnimId = ANIM_FLICKER_INCREASING, + .frontAnimDelay = 23, + .enemyMonElevation = 11, + BACK_PIC(Haunter, 64, 56), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_H_VIBRATE, + PALETTE(Haunter), + ICON(Haunter, 2), + .footprint = gMonFootprint_Haunter, + LEARNSETS(Haunter), + .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_GENGAR}, + {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_GENGAR}), }, - [SPECIES_KINGDRA] = +#if P_UPDATED_ABILITIES >= GEN_7 +#define GENGAR_ABILITIES {ABILITY_CURSED_BODY, ABILITY_NONE} +#else +#define GENGAR_ABILITIES {ABILITY_LEVITATE, ABILITY_NONE} +#endif + +#define GENGAR_MISC_INFO \ + .types = {TYPE_GHOST, TYPE_POISON}, \ + .catchRate = 45, \ + .evYield_SpAttack = 3, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_SLOW, \ + .eggGroups = {EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS},\ + .bodyColor = BODY_COLOR_PURPLE, \ + .noFlip = FALSE, \ + .speciesName = _("Gengar"), \ + .natDexNum = NATIONAL_DEX_GENGAR, \ + .categoryName = _("Shadow"), \ + .footprint = gMonFootprint_Gengar, \ + LEARNSETS(Gengar), \ + .formSpeciesIdTable = sGengarFormSpeciesIdTable, \ + .formChangeTable = sGengarFormChangeTable + + [SPECIES_GENGAR] = + { + GENGAR_MISC_INFO, + .baseHP = 60, + .baseAttack = 65, + .baseDefense = 60, + .baseSpeed = 110, + .baseSpAttack = 130, + .baseSpDefense = 75, + .expYield = 225, + .abilities = GENGAR_ABILITIES, + .height = 15, + .weight = 405, + .description = COMPOUND_STRING( + "Deep in the night, your shadow cast by\n" + "a streetlight may suddenly overtake you.\n" + "It is actually a Gengar running past\n" + "you, pretending to be your shadow."), + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 302, + .trainerOffset = 2, + FRONT_PIC(Gengar, 56, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Gengar, + .frontAnimId = ANIM_GROW_IN_STAGES, + BACK_PIC(Gengar, 64, 48), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(Gengar), + ICON(Gengar, 2), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_GENGAR_MEGA] = + { + GENGAR_MISC_INFO, + .baseHP = 60, + .baseAttack = 65, + .baseDefense = 80, + .baseSpeed = 130, + .baseSpAttack = 170, + .baseSpDefense = 95, + .expYield = 270, + .abilities = {ABILITY_SHADOW_TAG, ABILITY_SHADOW_TAG, ABILITY_SHADOW_TAG}, + .isMegaEvolution = TRUE, + .height = 14, + .weight = 405, + .description = COMPOUND_STRING( + "Gengar's relationships are warped. It\n" + "tries to take the lives of anyone and\n" + "everyone. It will even try to curse the\n" + "Trainer who is its master!"), + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 302, + .trainerOffset = 2, + FRONT_PIC(GengarMega, 64, 64), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_GengarMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(GengarMega, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(GengarMega), + ICON(GengarMega, 2), + }, +#endif //P_MEGA_EVOLUTIONS + +#if P_GIGANTAMAX_FORMS + [SPECIES_GENGAR_GIGANTAMAX] = + { + GENGAR_MISC_INFO, + .baseHP = 60, + .baseAttack = 65, + .baseDefense = 60, + .baseSpeed = 110, + .baseSpAttack = 130, + .baseSpDefense = 75, + .expYield = 225, + .abilities = GENGAR_ABILITIES, + .isGigantamax = TRUE, + .height = 200, + .weight = 0, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 302, + .trainerOffset = 2, + FRONT_PIC(GengarGigantamax, 64, 64), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_GengarGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(GengarGigantamax, 64, 64), + .backPicYOffset = 6, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(GengarGigantamax), + ICON(GengarGigantamax, 2), + }, +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_GASTLY + +#if P_FAMILY_ONIX + [SPECIES_ONIX] = + { + .baseHP = 35, + .baseAttack = 45, + .baseDefense = 160, + .baseSpeed = 70, + .baseSpAttack = 30, + .baseSpDefense = 45, + .types = { TYPE_ROCK, TYPE_GROUND }, + .catchRate = 45, + .expYield = 77, + .evYield_Defense = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_ROCK_HEAD, ABILITY_STURDY, ABILITY_WEAK_ARMOR}, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + .speciesName = _("Onix"), + .cryId = CRY_ONIX, + .natDexNum = NATIONAL_DEX_ONIX, + .categoryName = _("Rock Snake"), + .height = 88, + .weight = 2100, + .description = COMPOUND_STRING( + "There is a magnet in its brain that\n" + "prevents an Onix from losing direction\n" + "while tunneling. As it grows older, its body\n" + "becomes steadily rounder and smoother."), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 515, + .trainerOffset = 14, + FRONT_PIC(Onix, 64, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_Onix, + .frontAnimId = ANIM_H_SHAKE, + BACK_PIC(Onix, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Onix), + ICON(Onix, 2), + .footprint = gMonFootprint_Onix, + LEARNSETS(Onix), + .evolutions = EVOLUTION({EVO_TRADE_ITEM, ITEM_METAL_COAT, SPECIES_STEELIX}, + {EVO_ITEM, ITEM_METAL_COAT, SPECIES_STEELIX}), + }, + +#if P_GEN_2_CROSS_EVOS +#define STEELIX_MISC_INFO \ + .types = { TYPE_STEEL, TYPE_GROUND}, \ + .catchRate = 25, \ + .evYield_Defense = 2, \ + .itemRare = ITEM_METAL_COAT, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 25, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, \ + .bodyColor = BODY_COLOR_GRAY, \ + .noFlip = FALSE, \ + .speciesName = _("Steelix"), \ + .natDexNum = NATIONAL_DEX_STEELIX, \ + .categoryName = _("Iron Snake"), \ + .footprint = gMonFootprint_Steelix, \ + LEARNSETS(Steelix), \ + .formSpeciesIdTable = sSteelixFormSpeciesIdTable, \ + .formChangeTable = sSteelixFormChangeTable + + [SPECIES_STEELIX] = { + STEELIX_MISC_INFO, .baseHP = 75, - .baseAttack = 95, - .baseDefense = 95, - .baseSpeed = 85, - .baseSpAttack = 95, + .baseAttack = 85, + .baseDefense = 200, + .baseSpeed = 30, + .baseSpAttack = 55, + .baseSpDefense = 65, + .expYield = 179, + .abilities = {ABILITY_ROCK_HEAD, ABILITY_STURDY, ABILITY_SHEER_FORCE}, + .cryId = CRY_STEELIX, + .height = 92, + .weight = 4000, + .description = COMPOUND_STRING( + "Steelix live even further underground\n" + "than Onix. This Pokémon is known to dig\n" + "toward the earth's core, reaching a depth\n" + "of over six-tenths of a mile underground."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 516, + .trainerOffset = 13, + FRONT_PIC(Steelix, 64, 64), + FRONT_PIC_FEMALE(Steelix, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Steelix, + .frontAnimId = ANIM_V_SHAKE, + .frontAnimDelay = 45, + BACK_PIC(Steelix, 64, 64), + BACK_PIC_FEMALE(Steelix, 64, 64), + .backPicYOffset = 2, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Steelix), + ICON(Steelix, 0), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_STEELIX_MEGA] = + { + STEELIX_MISC_INFO, + .baseHP = 75, + .baseAttack = 125, + .baseDefense = 230, + .baseSpeed = 30, + .baseSpAttack = 55, .baseSpDefense = 95, - .types = { TYPE_WATER, TYPE_DRAGON }, - .catchRate = 45, - .expYield = 243, - .evYield_Attack = 1, - .evYield_SpAttack = 1, + .expYield = 214, + .abilities = {ABILITY_SAND_FORCE, ABILITY_SAND_FORCE, ABILITY_SAND_FORCE}, + .cryId = CRY_STEELIX_MEGA, + .height = 105, + .weight = 7400, + .description = COMPOUND_STRING( + "The cells within its body, crystallized by\n" + "the energy produced from Mega Evolution,\n" + "are stronger than any mineral and able\n" + "to withstand any temperature."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 516, + .trainerOffset = 13, + FRONT_PIC(SteelixMega, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_SteelixMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(SteelixMega, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(SteelixMega), + ICON(SteelixMega, 0), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_ONIX + +#if P_FAMILY_DROWZEE + [SPECIES_DROWZEE] = + { + .baseHP = 60, + .baseAttack = 48, + .baseDefense = 45, + .baseSpeed = 42, + .baseSpAttack = 43, + .baseSpDefense = 90, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .catchRate = 190, + .expYield = 66, .evYield_SpDefense = 1, - .itemRare = ITEM_DRAGON_SCALE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_SWIFT_SWIM, ABILITY_SNIPER, ABILITY_DAMP}, - .bodyColor = BODY_COLOR_BLUE, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_INSOMNIA, ABILITY_FOREWARN, ABILITY_INNER_FOCUS}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, + .speciesName = _("Drowzee"), + .cryId = CRY_DROWZEE, + .natDexNum = NATIONAL_DEX_DROWZEE, + .categoryName = _("Hypnosis"), + .height = 10, + .weight = 324, + .description = COMPOUND_STRING( + "If your nose becomes itchy while you are\n" + "sleeping, it's a sure sign that a Drowzee is\n" + "standing above your pillow and trying to\n" + "eat your dream through your nostrils."), + .pokemonScale = 274, + .pokemonOffset = 6, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Drowzee, 48, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Drowzee, + .frontAnimId = ANIM_V_STRETCH, + .frontAnimDelay = 48, + BACK_PIC(Drowzee, 56, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Drowzee), + ICON(Drowzee, 2), + .footprint = gMonFootprint_Drowzee, + LEARNSETS(Drowzee), + .evolutions = EVOLUTION({EVO_LEVEL, 26, SPECIES_HYPNO}), }, - [SPECIES_PHANPY] = + [SPECIES_HYPNO] = { - .baseHP = 90, - .baseAttack = 60, - .baseDefense = 60, - .baseSpeed = 40, - .baseSpAttack = 40, - .baseSpDefense = 40, - .types = { TYPE_GROUND, TYPE_GROUND }, - .catchRate = 120, - .expYield = 66, - .evYield_HP = 1, + .baseHP = 85, + .baseAttack = 73, + .baseDefense = 70, + .baseSpeed = 67, + .baseSpAttack = 73, + .baseSpDefense = 115, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .catchRate = 75, + .expYield = 169, + .evYield_SpDefense = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_PICKUP, ABILITY_NONE, ABILITY_SAND_VEIL}, - .bodyColor = BODY_COLOR_BLUE, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_INSOMNIA, ABILITY_FOREWARN, ABILITY_INNER_FOCUS}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, - }, - - [SPECIES_DONPHAN] = + .speciesName = _("Hypno"), + .cryId = CRY_HYPNO, + .natDexNum = NATIONAL_DEX_HYPNO, + .categoryName = _("Hypnosis"), + .height = 16, + .weight = 756, + .description = COMPOUND_STRING( + "The arcing movement and glitter of the\n" + "pendulum in a Hypno's hand lull the foe\n" + "into deep hypnosis. While searching for\n" + "prey, it polishes the pendulum."), + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Hypno, 64, 64), + FRONT_PIC_FEMALE(Hypno, 64, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_Hypno, + .frontAnimId = ANIM_H_SLIDE_SLOW, + .frontAnimDelay = 40, + BACK_PIC(Hypno, 64, 56), + BACK_PIC_FEMALE(Hypno, 64, 56), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(Hypno), + ICON(Hypno, 2), + .footprint = gMonFootprint_Hypno, + LEARNSETS(Hypno), + }, +#endif //P_FAMILY_DROWZEE + +#if P_FAMILY_KRABBY + [SPECIES_KRABBY] = { - .baseHP = 90, - .baseAttack = 120, - .baseDefense = 120, + .baseHP = 30, + .baseAttack = 105, + .baseDefense = 90, .baseSpeed = 50, - .baseSpAttack = 60, - .baseSpDefense = 60, - .types = { TYPE_GROUND, TYPE_GROUND }, - .catchRate = 60, - .expYield = 175, + .baseSpAttack = 25, + .baseSpDefense = 25, + .types = { TYPE_WATER, TYPE_WATER }, + .catchRate = 225, + .expYield = 65, .evYield_Attack = 1, - .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_STURDY, ABILITY_NONE, ABILITY_SAND_VEIL}, - .bodyColor = BODY_COLOR_GRAY, + .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, + .abilities = {ABILITY_HYPER_CUTTER, ABILITY_SHELL_ARMOR, ABILITY_SHEER_FORCE}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, + .speciesName = _("Krabby"), + .cryId = CRY_KRABBY, + .natDexNum = NATIONAL_DEX_KRABBY, + .categoryName = _("River Crab"), + .height = 4, + .weight = 65, + .description = COMPOUND_STRING( + "Krabby live in holes dug into beaches.\n" + "On sandy shores with little in the way\n" + "of food, they can be seen squabbling with\n" + "each other over territory."), + .pokemonScale = 469, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Krabby, 64, 48), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Krabby, + .frontAnimId = ANIM_H_SLIDE, + BACK_PIC(Krabby, 56, 40), + .backPicYOffset = 15, + .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, + PALETTE(Krabby), + ICON(Krabby, 0), + .footprint = gMonFootprint_Krabby, + LEARNSETS(Krabby), + .evolutions = EVOLUTION({EVO_LEVEL, 28, SPECIES_KINGLER}), }, - [SPECIES_PORYGON2] = +#define KINGLER_MISC_INFO \ + .baseHP = 55, \ + .baseAttack = 130, \ + .baseDefense = 115, \ + .baseSpeed = 75, \ + .baseSpAttack = 50, \ + .baseSpDefense = 50, \ + .types = {TYPE_WATER, TYPE_WATER}, \ + .catchRate = 60, \ + .expYield = 166, \ + .evYield_Attack = 2, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = {EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, \ + .abilities = {ABILITY_HYPER_CUTTER, ABILITY_SHELL_ARMOR, ABILITY_SHEER_FORCE}, \ + .bodyColor = BODY_COLOR_RED, \ + .noFlip = TRUE, \ + .speciesName = _("Kingler"), \ + .cryId = CRY_KINGLER, \ + .natDexNum = NATIONAL_DEX_KINGLER, \ + .categoryName = _("Pincer"), \ + .footprint = gMonFootprint_Kingler, \ + LEARNSETS(Kingler), \ + .formSpeciesIdTable = sKinglerFormSpeciesIdTable, \ + .formChangeTable = sKinglerFormChangeTable + + [SPECIES_KINGLER] = { - .baseHP = 85, - .baseAttack = 80, - .baseDefense = 90, - .baseSpeed = 60, - .baseSpAttack = 105, - .baseSpDefense = 95, - .types = { TYPE_NORMAL, TYPE_NORMAL }, - .catchRate = 45, - .expYield = 180, - .evYield_SpAttack = 2, - .genderRatio = MON_GENDERLESS, - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_TRACE, ABILITY_DOWNLOAD, ABILITY_ANALYTIC}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, + KINGLER_MISC_INFO, + .height = 13, + .weight = 600, + .description = COMPOUND_STRING( + "It waves its huge, oversized claw in the\n" + "air to communicate with others.\n" + "But since the claw is so heavy, this\n" + "Pokémon quickly tires."), + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Kingler, 64, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Kingler, + .frontAnimId = ANIM_H_SLIDE_SLOW, + BACK_PIC(Kingler, 64, 56), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Kingler), + ICON(Kingler, 0), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_KINGLER_GIGANTAMAX] = + { + KINGLER_MISC_INFO, + .height = 190, + .weight = 0, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(KinglerGigantamax, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_KinglerGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(KinglerGigantamax, 64, 64), + .backPicYOffset = 5, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(KinglerGigantamax), + ICON(KinglerGigantamax, 0), + .isGigantamax = TRUE, + }, +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_KRABBY + +#if P_FAMILY_VOLTORB +#define VOLTORB_FAMILY_MISC_INFO \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, \ + .abilities = {ABILITY_SOUNDPROOF, ABILITY_STATIC, ABILITY_AFTERMATH}, \ + .bodyColor = BODY_COLOR_RED, \ + .noFlip = FALSE + +#define VOLTORB_MISC_INFO \ + .baseHP = 40, \ + .baseAttack = 30, \ + .baseDefense = 50, \ + .baseSpeed = 100, \ + .baseSpAttack = 55, \ + .baseSpDefense = 55, \ + .catchRate = 190, \ + .expYield = 66, \ + .evYield_Speed = 1, \ + .speciesName = _("Voltorb"), \ + .cryId = CRY_VOLTORB, \ + .natDexNum = NATIONAL_DEX_VOLTORB, \ + .height = 5, \ + .pokemonScale = 364, \ + .pokemonOffset = -8, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Voltorb, \ + .formSpeciesIdTable = sVoltorbFormSpeciesIdTable, \ + VOLTORB_FAMILY_MISC_INFO + +#define ELECTRODE_MISC_INFO \ + .baseHP = 60, \ + .baseAttack = 50, \ + .baseDefense = 70, \ + .baseSpAttack = 80, \ + .baseSpDefense = 80, \ + .baseSpeed = P_UPDATED_STATS >= GEN_7 ? 150 : 140, \ + .catchRate = 60, \ + .expYield = 172, \ + .evYield_Speed = 2, \ + .speciesName = _("Electrode"), \ + .cryId = CRY_ELECTRODE, \ + .natDexNum = NATIONAL_DEX_ELECTRODE, \ + .height = 12, \ + .pokemonScale = 256, \ + .pokemonOffset = 0, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Electrode, \ + .formSpeciesIdTable = sElectrodeFormSpeciesIdTable, \ + VOLTORB_FAMILY_MISC_INFO + + [SPECIES_VOLTORB] = + { + VOLTORB_MISC_INFO, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .categoryName = _("Ball"), + .weight = 104, + .description = COMPOUND_STRING( + "It bears an uncanny and unexplained\n" + "resemblance to a Poké Ball. Because it\n" + "explodes at the slightest shock, even\n" + "veteran Trainers treat it with caution."), + FRONT_PIC(Voltorb, 32, 40), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Voltorb, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Voltorb, 48, 40), + .backPicYOffset = 14, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Voltorb), + ICON(Voltorb, 0), + LEARNSETS(Voltorb), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_ELECTRODE}), }, - [SPECIES_STANTLER] = + [SPECIES_ELECTRODE] = { - .baseHP = 73, - .baseAttack = 95, - .baseDefense = 62, - .baseSpeed = 85, - .baseSpAttack = 85, - .baseSpDefense = 65, - .types = { TYPE_NORMAL, TYPE_NORMAL }, - .catchRate = 45, - .expYield = 163, - .evYield_Attack = 1, + ELECTRODE_MISC_INFO, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, + .categoryName = _("Ball"), + .weight = 666, + .description = COMPOUND_STRING( + "They appear in great numbers at electric\n" + "power plants. Because they feed on\n" + "electricity, they cause massive and\n" + "chaotic blackouts in nearby cities."), + FRONT_PIC(Electrode, 48, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Electrode, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Electrode, 64, 40), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Electrode), + ICON(Electrode, 0), + LEARNSETS(Electrode), + }, + +#if P_HISUIAN_FORMS + [SPECIES_VOLTORB_HISUIAN] = + { + VOLTORB_MISC_INFO, + .types = { TYPE_ELECTRIC, TYPE_GRASS}, + .categoryName = _("Sphere"), + .weight = 130, + .description = COMPOUND_STRING( + "It esembles an ancient Poké Ball design.\n" + "When excited, it discharges the electric\n" + "current it has stored in its belly, then\n" + "lets out a great, uproarious laugh."), + FRONT_PIC(VoltorbHisuian, 32, 32), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_VoltorbHisuian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 1, + BACK_PIC(VoltorbHisuian, 48, 32), + .backPicYOffset = 10, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(VoltorbHisuian), + ICON(VoltorbHisuian, 0), + LEARNSETS(VoltorbHisuian), + .isHisuianForm = TRUE, + .evolutions = EVOLUTION({EVO_LEVEL, ITEM_LEAF_STONE, SPECIES_ELECTRODE_HISUIAN}), + }, + + [SPECIES_ELECTRODE_HISUIAN] = + { + ELECTRODE_MISC_INFO, + .types = { TYPE_ELECTRIC, TYPE_GRASS}, + .categoryName = _("Sphere"), + .weight = 710, + .description = COMPOUND_STRING( + "The tissue on the surface of its body is\n" + "similar in composition to an Apricorn.\n" + "When irritated, it lets loose an electric\n" + "current equal to 20 lightning bolts."), + FRONT_PIC(ElectrodeHisuian, 48, 48), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_ElectrodeHisuian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 4, + BACK_PIC(ElectrodeHisuian, 64, 40), + .backPicYOffset = 7, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(ElectrodeHisuian), + ICON(ElectrodeHisuian, 1), + LEARNSETS(ElectrodeHisuian), + .isHisuianForm = TRUE, + }, +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_VOLTORB + +#if P_FAMILY_EXEGGCUTE + [SPECIES_EXEGGCUTE] = + { + .baseHP = 60, + .baseAttack = 40, + .baseDefense = 80, + .baseSpeed = 40, + .baseSpAttack = 60, + .baseSpDefense = 45, + .types = { TYPE_GRASS, TYPE_PSYCHIC }, + .catchRate = 90, + .expYield = 65, + .evYield_Defense = 1, + .itemRare = ITEM_PSYCHIC_SEED, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_INTIMIDATE, ABILITY_FRISK, ABILITY_SAP_SIPPER}, - .bodyColor = BODY_COLOR_BROWN, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, + .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_HARVEST}, + .bodyColor = BODY_COLOR_PINK, .noFlip = FALSE, - }, + .speciesName = _("Exeggcute"), + .cryId = CRY_EXEGGCUTE, + .natDexNum = NATIONAL_DEX_EXEGGCUTE, + .categoryName = _("Egg"), + .height = 4, + .weight = 25, + .description = COMPOUND_STRING( + "It consists of six eggs that care for each\n" + "other. The eggs attract each other and\n" + "spin around. When cracks increasingly\n" + "appear, it is close to evolution."), + .pokemonScale = 489, + .pokemonOffset = -4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Exeggcute, 56, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Exeggcute, + .frontAnimId = ANIM_H_SLIDE_SLOW, + BACK_PIC(Exeggcute, 64, 32), + .backPicYOffset = 18, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Exeggcute), + ICON(Exeggcute, 0), + .footprint = gMonFootprint_Exeggcute, + LEARNSETS(Exeggcute), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_LEAF_STONE, SPECIES_EXEGGUTOR}, + {EVO_NONE, 0, SPECIES_EXEGGUTOR_ALOLAN}), + }, + +#define EXEGGUTOR_MISC_INFO \ + .catchRate = 45, \ + .expYield = 186, \ + .evYield_SpAttack = 2, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, \ + .bodyColor = BODY_COLOR_YELLOW, \ + .noFlip = FALSE, \ + .speciesName = _("Exeggutor"), \ + .cryId = CRY_EXEGGUTOR, \ + .natDexNum = NATIONAL_DEX_EXEGGUTOR, \ + .categoryName = _("Coconut"), \ + .footprint = gMonFootprint_Exeggutor, \ + .formSpeciesIdTable = sExeggutorFormSpeciesIdTable + +#define EXEGGUTOR_SP_DEF (P_UPDATED_STATS >= GEN_7 ? 75 : 65) - [SPECIES_SMEARGLE] = + [SPECIES_EXEGGUTOR] = { - .baseHP = 55, - .baseAttack = 20, - .baseDefense = 35, - .baseSpeed = 75, - .baseSpAttack = 20, - .baseSpDefense = 45, - .types = { TYPE_NORMAL, TYPE_NORMAL }, - .catchRate = 45, - .expYield = 88, - .evYield_Speed = 1, + EXEGGUTOR_MISC_INFO, + .baseHP = 95, + .baseAttack = 95, + .baseDefense = 85, + .baseSpeed = 55, + .baseSpAttack = 125, + .baseSpDefense = EXEGGUTOR_SP_DEF, + .types = { TYPE_GRASS, TYPE_PSYCHIC}, + .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_HARVEST}, + .height = 20, + .weight = 1200, + .description = COMPOUND_STRING( + "Originally from the tropics, Exeggutor's\n" + "heads grow larger from exposure to strong\n" + "sunlight. It is said that when the heads\n" + "fall, they group to form an Exeggcute."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 309, + .trainerOffset = 5, + FRONT_PIC(Exeggutor, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Exeggutor, + .frontAnimId = ANIM_H_JUMPS_V_STRETCH, + BACK_PIC(Exeggutor, 64, 48), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, + PALETTE(Exeggutor), + ICON(Exeggutor, 1), + LEARNSETS(Exeggutor), + }, + +#if P_ALOLAN_FORMS + [SPECIES_EXEGGUTOR_ALOLAN] = + { + EXEGGUTOR_MISC_INFO, + .baseHP = 95, + .baseAttack = 105, + .baseDefense = 85, + .baseSpeed = 45, + .baseSpAttack = 125, + .baseSpDefense = EXEGGUTOR_SP_DEF, + .types = { TYPE_GRASS, TYPE_DRAGON}, + .abilities = {ABILITY_FRISK, ABILITY_NONE, ABILITY_HARVEST}, + .height = 109, + .weight = 4156, + .description = COMPOUND_STRING( + "Alola is the best environment for\n" + "this Pokémon. Local people take pride\n" + "in its appearance, saying this is how\n" + "Exeggutor ought to look."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 309, + .trainerOffset = 5, + FRONT_PIC(ExeggutorAlolan, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_ExeggutorAlolan, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(ExeggutorAlolan, 64, 56), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(ExeggutorAlolan), + ICON(ExeggutorAlolan, 1), + LEARNSETS(ExeggutorAlolan), + .isAlolanForm = TRUE, + }, +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_EXEGGCUTE + +#if P_FAMILY_CUBONE + [SPECIES_CUBONE] = + { + .baseHP = 50, + .baseAttack = 50, + .baseDefense = 95, + .baseSpeed = 35, + .baseSpAttack = 40, + .baseSpDefense = 50, + .types = { TYPE_GROUND, TYPE_GROUND }, + .catchRate = 190, + .expYield = 64, + .evYield_Defense = 1, + .itemRare = ITEM_THICK_CLUB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_OWN_TEMPO, ABILITY_TECHNICIAN, ABILITY_MOODY}, - .bodyColor = BODY_COLOR_WHITE, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, + .abilities = {ABILITY_ROCK_HEAD, ABILITY_LIGHTNING_ROD, ABILITY_BATTLE_ARMOR}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - }, + .speciesName = _("Cubone"), + .cryId = CRY_CUBONE, + .natDexNum = NATIONAL_DEX_CUBONE, + .categoryName = _("Lonely"), + .height = 4, + .weight = 65, + .description = COMPOUND_STRING( + "It pines for the mother it will never see\n" + "again. Seeing a likeness of its mother in\n" + "the full moon, it cries. The stains on the\n" + "skull it wears are from its tears."), + .pokemonScale = 545, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Cubone, 56, 40), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_Cubone, + .frontAnimId = ANIM_V_JUMPS_SMALL, + BACK_PIC(Cubone, 56, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Cubone), + ICON(Cubone, 2), + .footprint = gMonFootprint_Cubone, + LEARNSETS(Cubone), + .evolutions = EVOLUTION({EVO_LEVEL, 28, SPECIES_MAROWAK}, + {EVO_NONE, 0, SPECIES_MAROWAK_ALOLAN}), + }, + +#define MAROWAK_MISC_INFO \ + .baseHP = 60, \ + .baseAttack = 80, \ + .baseDefense = 110, \ + .baseSpeed = 45, \ + .baseSpAttack = 50, \ + .baseSpDefense = 80, \ + .catchRate = 75, \ + .expYield = 149, \ + .evYield_Defense = 2, \ + .itemRare = ITEM_THICK_CLUB, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, \ + .noFlip = FALSE, \ + .speciesName = _("Marowak"), \ + .cryId = CRY_MAROWAK, \ + .natDexNum = NATIONAL_DEX_MAROWAK, \ + .categoryName = _("Bone Keeper"), \ + .height = 10, \ + .pokemonScale = 293, \ + .pokemonOffset = 12, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Marowak, \ + .formSpeciesIdTable = sMarowakFormSpeciesIdTable + [SPECIES_MAROWAK] = + { + MAROWAK_MISC_INFO, + .types = { TYPE_GROUND, TYPE_GROUND }, + .abilities = {ABILITY_ROCK_HEAD, ABILITY_LIGHTNING_ROD, ABILITY_BATTLE_ARMOR}, + .bodyColor = BODY_COLOR_BROWN, + .weight = 450, + .description = COMPOUND_STRING( + "A Marowak is the evolved form of a Cubone\n" + "that has grown tough by overcoming the\n" + "grief of losing its mother. Its tempered\n" + "and hardened spirit is not easily broken."), + FRONT_PIC(Marowak, 56, 64), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Marowak, + .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES, + BACK_PIC(Marowak, 48, 56), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, + PALETTE(Marowak), + ICON(Marowak, 2), + LEARNSETS(Marowak), + }, + +#if P_ALOLAN_FORMS + [SPECIES_MAROWAK_ALOLAN] = + { + MAROWAK_MISC_INFO, + .types = { TYPE_FIRE, TYPE_GHOST}, + .abilities = {ABILITY_CURSED_BODY, ABILITY_LIGHTNING_ROD, ABILITY_ROCK_HEAD}, + .bodyColor = BODY_COLOR_PURPLE, + .weight = 340, + .description = COMPOUND_STRING( + "The cursed flames that light up the bone\n" + "carried by this Pokémon are said\n" + "to cause both mental and physical\n" + "pain that will never fade."), + FRONT_PIC(MarowakAlolan, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_MarowakAlolan, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(MarowakAlolan, 56, 56), + .backPicYOffset = 6, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(MarowakAlolan), + ICON(MarowakAlolan, 1), + LEARNSETS(MarowakAlolan), + .isAlolanForm = TRUE, + }, +#endif //P_ALOLAN_FORMS +#endif //P_FAMILY_CUBONE + +#if P_FAMILY_HITMONS +#if P_GEN_2_CROSS_EVOS [SPECIES_TYROGUE] = { .baseHP = 35, @@ -6697,8 +8250,136 @@ const struct SpeciesInfo gSpeciesInfo[] = .abilities = {ABILITY_GUTS, ABILITY_STEADFAST, ABILITY_VITAL_SPIRIT}, .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, + .speciesName = _("Tyrogue"), + .cryId = CRY_TYROGUE, + .natDexNum = NATIONAL_DEX_TYROGUE, + .categoryName = _("Scuffle"), + .height = 7, + .weight = 210, + .description = COMPOUND_STRING( + "Tyrogue become stressed out if they do\n" + "not get to train every day. When raising\n" + "this Pokémon, the Trainer must establish\n" + "a regular training schedule."), + .pokemonScale = 292, + .pokemonOffset = 9, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Tyrogue, 40, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Tyrogue, + .frontAnimId = ANIM_BACK_AND_LUNGE, + BACK_PIC(Tyrogue, 48, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(Tyrogue), + ICON(Tyrogue, 2), + .footprint = gMonFootprint_Tyrogue, + LEARNSETS(Tyrogue), + .evolutions = EVOLUTION({EVO_LEVEL_ATK_LT_DEF, 20, SPECIES_HITMONCHAN}, + {EVO_LEVEL_ATK_GT_DEF, 20, SPECIES_HITMONLEE}, + {EVO_LEVEL_ATK_EQ_DEF, 20, SPECIES_HITMONTOP}), + }, +#endif //P_GEN_2_CROSS_EVOS + + [SPECIES_HITMONLEE] = + { + .baseHP = 50, + .baseAttack = 120, + .baseDefense = 53, + .baseSpeed = 87, + .baseSpAttack = 35, + .baseSpDefense = 110, + .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .catchRate = 45, + .expYield = 159, + .evYield_Attack = 2, + .genderRatio = MON_MALE, + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_LIMBER, ABILITY_RECKLESS, ABILITY_UNBURDEN}, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + .speciesName = _("Hitmonlee"), + .cryId = CRY_HITMONLEE, + .natDexNum = NATIONAL_DEX_HITMONLEE, + .categoryName = _("Kicking"), + .height = 15, + .weight = 498, + .description = COMPOUND_STRING( + "Its legs freely stretch and contract.\n" + "Using these springlike limbs, it bowls over\n" + "foes with devastating kicks. After battle,\n" + "it rubs down its tired legs."), + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 259, + .trainerOffset = 1, + FRONT_PIC(Hitmonlee, 64, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_Hitmonlee, + .frontAnimId = ANIM_H_STRETCH, + BACK_PIC(Hitmonlee, 64, 56), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Hitmonlee), + ICON(Hitmonlee, 2), + .footprint = gMonFootprint_Hitmonlee, + LEARNSETS(Hitmonlee), }, + [SPECIES_HITMONCHAN] = + { + .baseHP = 50, + .baseAttack = 105, + .baseDefense = 79, + .baseSpeed = 76, + .baseSpAttack = 35, + .baseSpDefense = 110, + .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .catchRate = 45, + .expYield = 159, + .evYield_SpDefense = 2, + .genderRatio = MON_MALE, + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_KEEN_EYE, ABILITY_IRON_FIST, ABILITY_INNER_FOCUS}, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + .speciesName = _("Hitmonchan"), + .cryId = CRY_HITMONCHAN, + .natDexNum = NATIONAL_DEX_HITMONCHAN, + .categoryName = _("Punching"), + .height = 14, + .weight = 502, + .description = COMPOUND_STRING( + "A Hitmonchan is said to possess the\n" + "spirit of a boxer who aimed to become the\n" + "world champion. Having an indomitable\n" + "spirit means that it will never give up."), + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 277, + .trainerOffset = 2, + FRONT_PIC(Hitmonchan, 48, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_Hitmonchan, + .frontAnimId = ANIM_GROW_VIBRATE, + .frontAnimDelay = 25, + BACK_PIC(Hitmonchan, 56, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(Hitmonchan), + ICON(Hitmonchan, 2), + .footprint = gMonFootprint_Hitmonchan, + LEARNSETS(Hitmonchan), + }, + +#if P_GEN_2_CROSS_EVOS [SPECIES_HITMONTOP] = { .baseHP = 50, @@ -6719,100 +8400,547 @@ const struct SpeciesInfo gSpeciesInfo[] = .abilities = {ABILITY_INTIMIDATE, ABILITY_TECHNICIAN, ABILITY_STEADFAST}, .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - }, - - [SPECIES_SMOOCHUM] = + .speciesName = _("Hitmontop"), + .cryId = CRY_HITMONTOP, + .natDexNum = NATIONAL_DEX_HITMONTOP, + .categoryName = _("Handstand"), + .height = 14, + .weight = 480, + .description = COMPOUND_STRING( + "Its technique of kicking while spinning is\n" + "a remarkable mix of both offense and\n" + "defense. Hitmontop travel faster\n" + "spinning than they do walking."), + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Hitmontop, 64, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Hitmontop, + .frontAnimId = ANIM_H_VIBRATE, + BACK_PIC(Hitmontop, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, + PALETTE(Hitmontop), + ICON(Hitmontop, 2), + .footprint = gMonFootprint_Hitmontop, + LEARNSETS(Hitmontop), + }, +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_HITMONS + +#if P_FAMILY_LICKITUNG + [SPECIES_LICKITUNG] = { - .baseHP = 45, - .baseAttack = 30, - .baseDefense = 15, - .baseSpeed = 65, - .baseSpAttack = 85, - .baseSpDefense = 65, - .types = { TYPE_ICE, TYPE_PSYCHIC }, + .baseHP = 90, + .baseAttack = 55, + .baseDefense = 75, + .baseSpeed = 30, + .baseSpAttack = 60, + .baseSpDefense = 75, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 45, - .expYield = 61, - .evYield_SpAttack = 1, - .genderRatio = MON_FEMALE, - .eggCycles = 25, + .expYield = 77, + .evYield_HP = 2, + .itemRare = ITEM_LAGGING_TAIL, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_OBLIVIOUS, ABILITY_FOREWARN, ABILITY_HYDRATION}, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, + .abilities = {ABILITY_OWN_TEMPO, ABILITY_OBLIVIOUS, ABILITY_CLOUD_NINE}, .bodyColor = BODY_COLOR_PINK, .noFlip = FALSE, - }, - - [SPECIES_ELEKID] = + .speciesName = _("Lickitung"), + .cryId = CRY_LICKITUNG, + .natDexNum = NATIONAL_DEX_LICKITUNG, + .categoryName = _("Licking"), + .height = 12, + .weight = 655, + .description = COMPOUND_STRING( + "Whenever it sees something unfamiliar,\n" + "it always licks the object because it\n" + "memorizes things by texture and taste.\n" + "It is somewhat put off by sour things."), + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Lickitung, 64, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Lickitung, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + BACK_PIC(Lickitung, 64, 40), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Lickitung), + ICON(Lickitung, 0), + .footprint = gMonFootprint_Lickitung, + LEARNSETS(Lickitung), + .evolutions = EVOLUTION({EVO_MOVE, MOVE_ROLLOUT, SPECIES_LICKILICKY}), + }, + +#if P_GEN_4_CROSS_EVOS + [SPECIES_LICKILICKY] = { - .baseHP = 45, - .baseAttack = 63, - .baseDefense = 37, - .baseSpeed = 95, - .baseSpAttack = 65, - .baseSpDefense = 55, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, - .catchRate = 45, - .expYield = 72, - .evYield_Speed = 1, - .itemRare = ITEM_ELECTIRIZER, - .genderRatio = PERCENT_FEMALE(25), - .eggCycles = 25, + .baseHP = 110, + .baseAttack = 85, + .baseDefense = 95, + .baseSpeed = 50, + .baseSpAttack = 80, + .baseSpDefense = 95, + .types = { TYPE_NORMAL, TYPE_NORMAL}, + .catchRate = 30, + .expYield = 180, + .evYield_HP = 3, + .itemRare = ITEM_LAGGING_TAIL, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_STATIC, ABILITY_NONE, ABILITY_VITAL_SPIRIT}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = TRUE, - }, - - [SPECIES_MAGBY] = + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, + .abilities = {ABILITY_OWN_TEMPO, ABILITY_OBLIVIOUS, ABILITY_CLOUD_NINE}, + .bodyColor = BODY_COLOR_PINK, + .noFlip = FALSE, + .speciesName = _("Lickilicky"), + .cryId = CRY_LICKILICKY, + .natDexNum = NATIONAL_DEX_LICKILICKY, + .categoryName = _("Licking"), + .height = 17, + .weight = 1400, + .description = COMPOUND_STRING( + "The long tongue is always soggy with\n" + "slobber. The saliva contains a solvent\n" + "that causes numbness. Getting too close\n" + "to it will leave you soaked with drool."), + .pokemonScale = 259, + .pokemonOffset = 0, + .trainerScale = 290, + .trainerOffset = 1, + FRONT_PIC(Lickilicky, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Lickilicky, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Lickilicky, 64, 64), + .backPicYOffset = 2, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Lickilicky), + ICON(Lickilicky, 1), + .footprint = gMonFootprint_Lickilicky, + LEARNSETS(Lickilicky), + }, +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_LICKITUNG + +#if P_FAMILY_KOFFING + [SPECIES_KOFFING] = { - .baseHP = 45, - .baseAttack = 75, - .baseDefense = 37, - .baseSpeed = 83, - .baseSpAttack = 70, - .baseSpDefense = 55, - .types = { TYPE_FIRE, TYPE_FIRE }, - .catchRate = 45, - .expYield = 73, - .evYield_Speed = 1, - .itemRare = ITEM_MAGMARIZER, - .genderRatio = PERCENT_FEMALE(25), - .eggCycles = 25, + .baseHP = 40, + .baseAttack = 65, + .baseDefense = 95, + .baseSpeed = 35, + .baseSpAttack = 60, + .baseSpDefense = 45, + .types = { TYPE_POISON, TYPE_POISON }, + .catchRate = 190, + .expYield = 68, + .evYield_Defense = 1, + .itemRare = ITEM_SMOKE_BALL, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_FLAME_BODY, ABILITY_NONE, ABILITY_VITAL_SPIRIT}, - .bodyColor = BODY_COLOR_RED, - .noFlip = TRUE, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, + #if P_UPDATED_ABILITIES >= GEN_8 + .abilities = {ABILITY_LEVITATE, ABILITY_NEUTRALIZING_GAS, ABILITY_STENCH}, + #else + .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, + #endif + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + .speciesName = _("Koffing"), + .cryId = CRY_KOFFING, + .natDexNum = NATIONAL_DEX_KOFFING, + .categoryName = _("Poison Gas"), + .height = 6, + .weight = 10, + .description = COMPOUND_STRING( + "Getting up close to a Koffing will give\n" + "you a chance to observe, through its thin\n" + "skin, the toxic gases swirling inside. It\n" + "blows up at the slightest stimulation."), + .pokemonScale = 369, + .pokemonOffset = -1, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Koffing, 56, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Koffing, + .frontAnimId = ANIM_V_SLIDE_WOBBLE_SMALL, + .enemyMonElevation = 14, + BACK_PIC(Koffing, 64, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_GROW, + PALETTE(Koffing), + ICON(Koffing, 2), + .footprint = gMonFootprint_Koffing, + LEARNSETS(Koffing), + .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_WEEZING}, + {EVO_NONE, 0, SPECIES_WEEZING_GALARIAN}), + }, + +#define WEEZING_MISC_INFO \ + .baseHP = 65, \ + .baseAttack = 90, \ + .baseDefense = 120, \ + .baseSpeed = 60, \ + .baseSpAttack = 85, \ + .baseSpDefense = 70, \ + .catchRate = 60, \ + .expYield = 172, \ + .evYield_Defense = 2, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, \ + .noFlip = TRUE, \ + .speciesName = _("Weezing"), \ + .cryId = CRY_WEEZING, \ + .natDexNum = NATIONAL_DEX_WEEZING, \ + .categoryName = _("Poison Gas"), \ + .footprint = gMonFootprint_Weezing, \ + .formSpeciesIdTable = sWeezingFormSpeciesIdTable + + [SPECIES_WEEZING] = + { + WEEZING_MISC_INFO, + .types = { TYPE_POISON, TYPE_POISON }, + .itemRare = ITEM_SMOKE_BALL, + .abilities = {ABILITY_LEVITATE, ABILITY_NEUTRALIZING_GAS, ABILITY_STENCH}, + .bodyColor = BODY_COLOR_PURPLE, + .height = 12, + .weight = 95, + .description = COMPOUND_STRING( + "By diluting its toxic gases with a special\n" + "process, the highest grade of perfume can\n" + "be extracted. To Weezing, gases emanating\n" + "from garbage are the ultimate feast."), + .pokemonScale = 305, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Weezing, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Weezing, + .frontAnimId = ANIM_V_SLIDE, + .enemyMonElevation = 6, + BACK_PIC(Weezing, 64, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_GROW, + PALETTE(Weezing), + ICON(Weezing, 2), + LEARNSETS(Weezing), + }, + +#if P_GALARIAN_FORMS + [SPECIES_WEEZING_GALARIAN] = + { + WEEZING_MISC_INFO, + .types = { TYPE_POISON, TYPE_FAIRY}, + .itemRare = ITEM_MISTY_SEED, + .abilities = {ABILITY_LEVITATE, ABILITY_NEUTRALIZING_GAS, ABILITY_MISTY_SURGE}, + .bodyColor = BODY_COLOR_GRAY, + .isGalarianForm = TRUE, + .height = 30, + .weight = 160, + .description = COMPOUND_STRING( + "Long ago, when droves of factories fouled\n" + "the air with pollution, it changed into this\n" + "form for some reason. It consumes air\n" + "pollutant particles, expelling clean air."), + .pokemonScale = 305, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(WeezingGalarian, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_WeezingGalarian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 6, + BACK_PIC(WeezingGalarian, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(WeezingGalarian), + ICON(WeezingGalarian, 1), + LEARNSETS(WeezingGalarian), + }, +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_KOFFING + +#if P_FAMILY_RHYHORN + [SPECIES_RHYHORN] = + { + .baseHP = 80, + .baseAttack = 85, + .baseDefense = 95, + .baseSpeed = 25, + .baseSpAttack = 30, + .baseSpDefense = 30, + .types = { TYPE_GROUND, TYPE_ROCK }, + .catchRate = 120, + .expYield = 69, + .evYield_Defense = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD}, + .abilities = {ABILITY_LIGHTNING_ROD, ABILITY_ROCK_HEAD, ABILITY_RECKLESS}, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + .speciesName = _("Rhyhorn"), + .cryId = CRY_RHYHORN, + .natDexNum = NATIONAL_DEX_RHYHORN, + .categoryName = _("Spikes"), + .height = 10, + .weight = 1150, + .description = COMPOUND_STRING( + "Once it starts running, it doesn't stop.\n" + "Its tiny brain makes it so stupid that it\n" + "can't remember why it started running in\n" + "the first place."), + .pokemonScale = 267, + .pokemonOffset = 6, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Rhyhorn, 56, 40), + FRONT_PIC_FEMALE(Rhyhorn, 56, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Rhyhorn, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(Rhyhorn, 64, 48), + BACK_PIC_FEMALE(Rhyhorn, 64, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(Rhyhorn), + ICON(Rhyhorn, 1), + .footprint = gMonFootprint_Rhyhorn, + LEARNSETS(Rhyhorn), + .evolutions = EVOLUTION({EVO_LEVEL, 42, SPECIES_RHYDON}), }, - [SPECIES_MILTANK] = + [SPECIES_RHYDON] = { - .baseHP = 95, - .baseAttack = 80, - .baseDefense = 105, - .baseSpeed = 100, - .baseSpAttack = 40, - .baseSpDefense = 70, + .baseHP = 105, + .baseAttack = 130, + .baseDefense = 120, + .baseSpeed = 40, + .baseSpAttack = 45, + .baseSpDefense = 45, + .types = { TYPE_GROUND, TYPE_ROCK }, + .catchRate = 60, + .expYield = 170, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD}, + .abilities = {ABILITY_LIGHTNING_ROD, ABILITY_ROCK_HEAD, ABILITY_RECKLESS}, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + .speciesName = _("Rhydon"), + .cryId = CRY_RHYDON, + .natDexNum = NATIONAL_DEX_RHYDON, + .categoryName = _("Drill"), + .height = 19, + .weight = 1200, + .description = COMPOUND_STRING( + "Its horn, which rotates like a drill,\n" + "destroys tall buildings with one strike.\n" + "It stands on its hind legs, and its brain\n" + "is well developed."), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 299, + .trainerOffset = 2, + FRONT_PIC(Rhydon, 64, 56), + FRONT_PIC_FEMALE(Rhydon, 64, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Rhydon, + .frontAnimId = ANIM_H_SHAKE, + BACK_PIC(Rhydon, 64, 56), + BACK_PIC_FEMALE(Rhydon, 64, 56), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(Rhydon), + ICON(Rhydon, 1), + .footprint = gMonFootprint_Rhydon, + LEARNSETS(Rhydon), + .evolutions = EVOLUTION({EVO_TRADE_ITEM, ITEM_PROTECTOR, SPECIES_RHYPERIOR}, + {EVO_ITEM, ITEM_PROTECTOR, SPECIES_RHYPERIOR}), + }, + +#if P_GEN_4_CROSS_EVOS + [SPECIES_RHYPERIOR] = + { + .baseHP = 115, + .baseAttack = 140, + .baseDefense = 130, + .baseSpeed = 40, + .baseSpAttack = 55, + .baseSpDefense = 55, + .types = { TYPE_GROUND, TYPE_ROCK}, + .catchRate = 30, + .expYield = 241, + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD}, + .abilities = {ABILITY_LIGHTNING_ROD, ABILITY_SOLID_ROCK, ABILITY_RECKLESS}, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + .speciesName = _("Rhyperior"), + .cryId = CRY_RHYPERIOR, + .natDexNum = NATIONAL_DEX_RHYPERIOR, + .categoryName = _("Drill"), + .height = 24, + .weight = 2828, + .description = COMPOUND_STRING( + "It can launch a rock held in its hand\n" + "like a missile by tightening and then\n" + "expanding its muscles instantaneously.\n" + "Geodude are shot at rare times."), + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 369, + .trainerOffset = 7, + FRONT_PIC(Rhyperior, 64, 64), + FRONT_PIC_FEMALE(Rhyperior, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Rhyperior, + .frontAnimId = ANIM_V_SHAKE_TWICE, + BACK_PIC(Rhyperior, 64, 64), + BACK_PIC_FEMALE(Rhyperior, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Rhyperior), + ICON(Rhyperior, 0), + .footprint = gMonFootprint_Rhyperior, + LEARNSETS(Rhyperior), + }, +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_RHYHORN + +#if P_FAMILY_CHANSEY +#if P_GEN_4_CROSS_EVOS + [SPECIES_HAPPINY] = + { + .baseHP = 100, + .baseAttack = 5, + .baseDefense = 5, + .baseSpeed = 30, + .baseSpAttack = 15, + .baseSpDefense = 65, + .types = { TYPE_NORMAL, TYPE_NORMAL}, + .catchRate = 130, + .expYield = 110, + .evYield_HP = 1, + .itemCommon = ITEM_OVAL_STONE, + .genderRatio = MON_FEMALE, + .eggCycles = 40, + .friendship = 140, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_NATURAL_CURE, ABILITY_SERENE_GRACE, ABILITY_FRIEND_GUARD}, + .bodyColor = BODY_COLOR_PINK, + .noFlip = FALSE, + .speciesName = _("Happiny"), + .cryId = CRY_HAPPINY, + .natDexNum = NATIONAL_DEX_HAPPINY, + .categoryName = _("Playhouse"), + .height = 6, + .weight = 244, + .description = COMPOUND_STRING( + "It carries a round white rock in its\n" + "belly pouch. If it gets along well with\n" + "someone, it will sometimes give that\n" + "person the rock."), + .pokemonScale = 422, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Happiny, 32, 48), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Happiny, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + BACK_PIC(Happiny, 48, 56), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Happiny), + ICON(Happiny, 0), + .footprint = gMonFootprint_Happiny, + LEARNSETS(Happiny), + .evolutions = EVOLUTION({EVO_ITEM_HOLD_DAY, ITEM_OVAL_STONE, SPECIES_CHANSEY}, + {EVO_ITEM_DAY, ITEM_OVAL_STONE, SPECIES_CHANSEY}), + }, +#endif //P_GEN_4_CROSS_EVOS + + [SPECIES_CHANSEY] = + { + .baseHP = 250, + .baseAttack = 5, + .baseDefense = 5, + .baseSpeed = 50, + .baseSpAttack = 35, + .baseSpDefense = 105, .types = { TYPE_NORMAL, TYPE_NORMAL }, - .catchRate = 45, - .expYield = 172, - .evYield_Defense = 2, - .itemCommon = ITEM_MOOMOO_MILK, - .itemRare = ITEM_MOOMOO_MILK, + .catchRate = 30, + .expYield = 395, + .evYield_HP = 2, + .itemCommon = ITEM_LUCKY_PUNCH, .genderRatio = MON_FEMALE, - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_THICK_FAT, ABILITY_SCRAPPY, ABILITY_SAP_SIPPER}, + .eggCycles = 40, + .friendship = 140, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, + .abilities = {ABILITY_NATURAL_CURE, ABILITY_SERENE_GRACE, ABILITY_HEALER}, .bodyColor = BODY_COLOR_PINK, .noFlip = FALSE, - }, - + .speciesName = _("Chansey"), + .cryId = CRY_CHANSEY, + .natDexNum = NATIONAL_DEX_CHANSEY, + .categoryName = _("Egg"), + .height = 11, + .weight = 346, + .description = COMPOUND_STRING( + "Chansey lay nutritionally excellent eggs\n" + "every day. The eggs are so delicious, they\n" + "are eagerly devoured by even those people\n" + "who have lost their appetite."), + .pokemonScale = 257, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Chansey, 56, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Chansey, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Chansey, 64, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Chansey), + ICON(Chansey, 0), + .footprint = gMonFootprint_Chansey, + LEARNSETS(Chansey), + .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_BLISSEY}), + }, + +#if P_GEN_2_CROSS_EVOS [SPECIES_BLISSEY] = { .baseHP = 255, @@ -6834,1319 +8962,5040 @@ const struct SpeciesInfo gSpeciesInfo[] = .abilities = {ABILITY_NATURAL_CURE, ABILITY_SERENE_GRACE, ABILITY_HEALER}, .bodyColor = BODY_COLOR_PINK, .noFlip = FALSE, - }, + .speciesName = _("Blissey"), + .cryId = CRY_BLISSEY, + .natDexNum = NATIONAL_DEX_BLISSEY, + .categoryName = _("Happiness"), + .height = 15, + .weight = 468, + .description = COMPOUND_STRING( + "If it senses sadness with its fluffy fur,\n" + "a Blissey will rush over to the sad person,\n" + "however far away, to share an egg of\n" + "happiness that brings a smile to any face."), + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 310, + .trainerOffset = 3, + FRONT_PIC(Blissey, 56, 56), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Blissey, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Blissey, 64, 32), + .backPicYOffset = 16, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Blissey), + ICON(Blissey, 0), + .footprint = gMonFootprint_Blissey, + LEARNSETS(Blissey), + }, +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_CHANSEY + +#if P_FAMILY_TANGELA + [SPECIES_TANGELA] = + { + .baseHP = 65, + .baseAttack = 55, + .baseDefense = 115, + .baseSpeed = 60, + .baseSpAttack = 100, + .baseSpDefense = 40, + .types = { TYPE_GRASS, TYPE_GRASS }, + .catchRate = 45, + .expYield = 87, + .evYield_Defense = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, + .abilities = {ABILITY_CHLOROPHYLL, ABILITY_LEAF_GUARD, ABILITY_REGENERATOR}, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + .speciesName = _("Tangela"), + .cryId = CRY_TANGELA, + .natDexNum = NATIONAL_DEX_TANGELA, + .categoryName = _("Vine"), + .height = 10, + .weight = 350, + .description = COMPOUND_STRING( + "Its vines snap off easily and painlessly\n" + "if they are grabbed, allowing it to make a\n" + "quick getaway. The lost vines are replaced\n" + "by new growth the very next day."), + .pokemonScale = 304, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Tangela, 48, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Tangela, + .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL, + BACK_PIC(Tangela, 64, 40), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_V_STRETCH, + PALETTE(Tangela), + ICON(Tangela, 0), + .footprint = gMonFootprint_Tangela, + LEARNSETS(Tangela), + .evolutions = EVOLUTION({EVO_MOVE, MOVE_ANCIENT_POWER, SPECIES_TANGROWTH}), + }, + +#if P_GEN_4_CROSS_EVOS + [SPECIES_TANGROWTH] = + { + .baseHP = 100, + .baseAttack = 100, + .baseDefense = 125, + .baseSpeed = 50, + .baseSpAttack = 110, + .baseSpDefense = 50, + .types = { TYPE_GRASS, TYPE_GRASS}, + .catchRate = 30, + .expYield = 187, + .evYield_Defense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, + .abilities = {ABILITY_CHLOROPHYLL, ABILITY_LEAF_GUARD, ABILITY_REGENERATOR}, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + .speciesName = _("Tangrowth"), + .cryId = CRY_TANGROWTH, + .natDexNum = NATIONAL_DEX_TANGROWTH, + .categoryName = _("Vine"), + .height = 20, + .weight = 1286, + .description = COMPOUND_STRING( + "It ensnares prey by extending arms made\n" + "of vines. Even if one of its arms is eaten,\n" + "it's fine. The Pokémon regenerates quickly\n" + "and will go right back to normal."), + .pokemonScale = 261, + .pokemonOffset = 1, + .trainerScale = 334, + .trainerOffset = 4, + FRONT_PIC(Tangrowth, 64, 64), + FRONT_PIC_FEMALE(Tangrowth, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Tangrowth, + .frontAnimId = ANIM_H_STRETCH, + BACK_PIC(Tangrowth, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_GROW, + PALETTE(Tangrowth), + ICON(Tangrowth, 0), + .footprint = gMonFootprint_Tangrowth, + LEARNSETS(Tangrowth), + }, +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_TANGELA + +#if P_FAMILY_KANGASKHAN +#define KANGASKHAN_MISC_INFO \ + .types = { TYPE_NORMAL, TYPE_NORMAL}, \ + .catchRate = 45, \ + .evYield_HP = 2, \ + .genderRatio = MON_FEMALE, \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, \ + .bodyColor = BODY_COLOR_BROWN, \ + .noFlip = FALSE, \ + .speciesName = _("Kangaskhan"), \ + .natDexNum = NATIONAL_DEX_KANGASKHAN, \ + .categoryName = _("Parent"), \ + .height = 22, \ + .pokemonScale = 256, \ + .pokemonOffset = 0, \ + .trainerScale = 387, \ + .trainerOffset = 8, \ + .footprint = gMonFootprint_Kangaskhan, \ + LEARNSETS(Kangaskhan), \ + .formSpeciesIdTable = sKangaskhanFormSpeciesIdTable, \ + .formChangeTable = sKangaskhanFormChangeTable - [SPECIES_RAIKOU] = + [SPECIES_KANGASKHAN] = { - .baseHP = 90, - .baseAttack = 85, - .baseDefense = 75, - .baseSpeed = 115, - .baseSpAttack = 115, + KANGASKHAN_MISC_INFO, + .baseHP = 105, + .baseAttack = 95, + .baseDefense = 80, + .baseSpeed = 90, + .baseSpAttack = 40, + .baseSpDefense = 80, + .expYield = 172, + .abilities = {ABILITY_EARLY_BIRD, ABILITY_SCRAPPY, ABILITY_INNER_FOCUS}, + .cryId = CRY_KANGASKHAN, + .weight = 800, + .description = COMPOUND_STRING( + "If you come across a young Kangaskhan\n" + "playing by itself, never try to catch it.\n" + "The baby's parent is sure to be in the area,\n" + "and it will become violently enraged."), + FRONT_PIC(Kangaskhan, 64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Kangaskhan, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Kangaskhan, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Kangaskhan), + ICON(Kangaskhan, 2), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_KANGASKHAN_MEGA] = + { + KANGASKHAN_MISC_INFO, + .baseHP = 105, + .baseAttack = 125, + .baseDefense = 100, + .baseSpeed = 100, + .baseSpAttack = 60, .baseSpDefense = 100, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, - .catchRate = 3, - .expYield = 261, - .evYield_Speed = 2, + .expYield = 207, + .abilities = {ABILITY_PARENTAL_BOND, ABILITY_PARENTAL_BOND, ABILITY_PARENTAL_BOND}, + .isMegaEvolution = TRUE, + .cryId = CRY_KANGASKHAN_MEGA, + .weight = 1000, + .description = COMPOUND_STRING( + "When the mother sees the back of her\n" + "Mega-Evolved child, it makes her think\n" + "of the day when her child will inevitably\n" + "leave her."), + FRONT_PIC(KangaskhanMega, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_KangaskhanMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(KangaskhanMega, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(KangaskhanMega), + ICON(KangaskhanMega, 2), + }, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_KANGASKHAN + +#if P_FAMILY_HORSEA + [SPECIES_HORSEA] = + { + .baseHP = 30, + .baseAttack = 40, + .baseDefense = 70, + .baseSpeed = 60, + .baseSpAttack = 70, + .baseSpDefense = 25, + .types = { TYPE_WATER, TYPE_WATER }, + .catchRate = 225, + .expYield = 59, .evYield_SpAttack = 1, - .genderRatio = MON_GENDERLESS, - .eggCycles = 80, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - #if P_UPDATED_ABILITIES >= GEN_7 - .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_INNER_FOCUS}, - #else - .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_VOLT_ABSORB}, - #endif - .bodyColor = BODY_COLOR_YELLOW, + .itemRare = ITEM_DRAGON_SCALE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_SWIFT_SWIM, ABILITY_SNIPER, ABILITY_DAMP}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, + .speciesName = _("Horsea"), + .cryId = CRY_HORSEA, + .natDexNum = NATIONAL_DEX_HORSEA, + .categoryName = _("Dragon"), + .height = 4, + .weight = 80, + .description = COMPOUND_STRING( + "By cleverly flicking the fins on its back\n" + "side to side, it moves in any direction\n" + "while facing forward. It spits ink to\n" + "escape if it senses danger."), + .pokemonScale = 399, + .pokemonOffset = -1, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Horsea, 32, 40), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Horsea, + .frontAnimId = ANIM_V_JUMPS_SMALL, + BACK_PIC(Horsea, 48, 40), + .backPicYOffset = 14, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Horsea), + ICON(Horsea, 0), + .footprint = gMonFootprint_Horsea, + LEARNSETS(Horsea), + .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_SEADRA}), }, - [SPECIES_ENTEI] = + [SPECIES_SEADRA] = { - .baseHP = 115, - .baseAttack = 115, - .baseDefense = 85, - .baseSpeed = 100, - .baseSpAttack = 90, - .baseSpDefense = 75, - .types = { TYPE_FIRE, TYPE_FIRE }, - .catchRate = 3, - .expYield = 261, - .evYield_HP = 1, + .baseHP = 55, + .baseAttack = 65, + .baseDefense = 95, + .baseSpeed = 85, + .baseSpAttack = 95, + .baseSpDefense = 45, + .types = { TYPE_WATER, TYPE_WATER }, + .catchRate = 75, + .expYield = 154, + .evYield_Defense = 1, + .evYield_SpAttack = 1, + .itemRare = ITEM_DRAGON_SCALE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_POISON_POINT, ABILITY_SNIPER, ABILITY_DAMP}, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + .speciesName = _("Seadra"), + .cryId = CRY_SEADRA, + .natDexNum = NATIONAL_DEX_SEADRA, + .categoryName = _("Dragon"), + .height = 12, + .weight = 250, + .description = COMPOUND_STRING( + "The poisonous barbs all over its body are\n" + "highly valued as ingredients for making\n" + "traditional herbal medicine. It shows no\n" + "mercy to anything approaching its nest."), + .pokemonScale = 299, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Seadra, 64, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Seadra, + .frontAnimId = ANIM_V_SLIDE, + BACK_PIC(Seadra, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Seadra), + ICON(Seadra, 0), + .footprint = gMonFootprint_Seadra, + LEARNSETS(Seadra), + .evolutions = EVOLUTION({EVO_TRADE_ITEM, ITEM_DRAGON_SCALE, SPECIES_KINGDRA}, + {EVO_ITEM, ITEM_DRAGON_SCALE, SPECIES_KINGDRA}), + }, + +#if P_GEN_2_CROSS_EVOS + [SPECIES_KINGDRA] = + { + .baseHP = 75, + .baseAttack = 95, + .baseDefense = 95, + .baseSpeed = 85, + .baseSpAttack = 95, + .baseSpDefense = 95, + .types = { TYPE_WATER, TYPE_DRAGON }, + .catchRate = 45, + .expYield = 243, + .evYield_Attack = 1, + .evYield_SpAttack = 1, + .evYield_SpDefense = 1, + .itemRare = ITEM_DRAGON_SCALE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_SWIFT_SWIM, ABILITY_SNIPER, ABILITY_DAMP}, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + .speciesName = _("Kingdra"), + .cryId = CRY_KINGDRA, + .natDexNum = NATIONAL_DEX_KINGDRA, + .categoryName = _("Dragon"), + .height = 18, + .weight = 1520, + .description = COMPOUND_STRING( + "It sleeps quietly, deep on the seafloor.\n" + "When it comes up to the surface, it\n" + "creates a huge whirlpool that can swallow\n" + "even ships."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 287, + .trainerOffset = 0, + FRONT_PIC(Kingdra, 64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Kingdra, + .frontAnimId = ANIM_CIRCLE_INTO_BG, + BACK_PIC(Kingdra, 64, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, + PALETTE(Kingdra), + ICON(Kingdra, 0), + .footprint = gMonFootprint_Kingdra, + LEARNSETS(Kingdra), + }, +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_HORSEA + +#if P_FAMILY_GOLDEEN + [SPECIES_GOLDEEN] = + { + .baseHP = 45, + .baseAttack = 67, + .baseDefense = 60, + .baseSpeed = 63, + .baseSpAttack = 35, + .baseSpDefense = 50, + .types = { TYPE_WATER, TYPE_WATER }, + .catchRate = 225, + .expYield = 64, + .evYield_Attack = 1, + .itemRare = ITEM_MYSTIC_WATER, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, + .abilities = {ABILITY_SWIFT_SWIM, ABILITY_WATER_VEIL, ABILITY_LIGHTNING_ROD}, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + .speciesName = _("Goldeen"), + .cryId = CRY_GOLDEEN, + .natDexNum = NATIONAL_DEX_GOLDEEN, + .categoryName = _("Goldfish"), + .height = 6, + .weight = 150, + .description = COMPOUND_STRING( + "In the springtime, schools of Goldeen\n" + "can be seen swimming up falls and rivers.\n" + "It metes out staggering damage with its\n" + "single horn."), + .pokemonScale = 379, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Goldeen, 64, 40), + FRONT_PIC_FEMALE(Goldeen, 64, 40), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_Goldeen, + .frontAnimId = ANIM_H_SLIDE_WOBBLE, + BACK_PIC(Goldeen, 64, 48), + BACK_PIC_FEMALE(Goldeen, 64, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Goldeen), + ICON(Goldeen, 0), + .footprint = gMonFootprint_Goldeen, + LEARNSETS(Goldeen), + .evolutions = EVOLUTION({EVO_LEVEL, 33, SPECIES_SEAKING}), + }, + + [SPECIES_SEAKING] = + { + .baseHP = 80, + .baseAttack = 92, + .baseDefense = 65, + .baseSpeed = 68, + .baseSpAttack = 65, + .baseSpDefense = 80, + .types = { TYPE_WATER, TYPE_WATER }, + .catchRate = 60, + .expYield = 158, .evYield_Attack = 2, - .genderRatio = MON_GENDERLESS, - .eggCycles = 80, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - #if P_UPDATED_ABILITIES >= GEN_7 - .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_INNER_FOCUS}, - #else - .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_FLASH_FIRE}, - #endif + .itemRare = ITEM_MYSTIC_WATER, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, + .abilities = {ABILITY_SWIFT_SWIM, ABILITY_WATER_VEIL, ABILITY_LIGHTNING_ROD}, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + .speciesName = _("Seaking"), + .cryId = CRY_SEAKING, + .natDexNum = NATIONAL_DEX_SEAKING, + .categoryName = _("Goldfish"), + .height = 13, + .weight = 390, + .description = COMPOUND_STRING( + "It punches holes in boulders on stream-\n" + "beds. This is a clever innovation that\n" + "prevents its eggs from being attacked or\n" + "washed away by the current."), + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Seaking, 64, 56), + FRONT_PIC_FEMALE(Seaking, 64, 56), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Seaking, + .frontAnimId = ANIM_V_SLIDE_WOBBLE, + BACK_PIC(Seaking, 64, 56), + BACK_PIC_FEMALE(Seaking, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Seaking), + ICON(Seaking, 0), + .footprint = gMonFootprint_Seaking, + LEARNSETS(Seaking), + }, +#endif //P_FAMILY_GOLDEEN + +#if P_FAMILY_STARYU + [SPECIES_STARYU] = + { + .baseHP = 30, + .baseAttack = 45, + .baseDefense = 55, + .baseSpeed = 85, + .baseSpAttack = 70, + .baseSpDefense = 55, + .types = { TYPE_WATER, TYPE_WATER }, + .catchRate = 225, + .expYield = 68, + .evYield_Speed = 1, + .itemCommon = ITEM_STARDUST, + .itemRare = ITEM_STAR_PIECE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, + .abilities = {ABILITY_ILLUMINATE, ABILITY_NATURAL_CURE, ABILITY_ANALYTIC}, .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, + .noFlip = TRUE, + .speciesName = _("Staryu"), + .cryId = CRY_STARYU, + .natDexNum = NATIONAL_DEX_STARYU, + .categoryName = _("Star Shape"), + .height = 8, + .weight = 345, + .description = COMPOUND_STRING( + "It gathers with others in the night and\n" + "makes its red core glow on and off with\n" + "the twinkling stars. It can regenerate\n" + "limbs if they are severed from its body."), + .pokemonScale = 326, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Staryu, 40, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Staryu, + .frontAnimId = ANIM_TWIST_TWICE, + BACK_PIC(Staryu, 56, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Staryu), + ICON(Staryu, 2), + .footprint = gMonFootprint_Staryu, + LEARNSETS(Staryu), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_WATER_STONE, SPECIES_STARMIE}), }, - [SPECIES_SUICUNE] = + [SPECIES_STARMIE] = { - .baseHP = 100, + .baseHP = 60, .baseAttack = 75, - .baseDefense = 115, - .baseSpeed = 85, - .baseSpAttack = 90, - .baseSpDefense = 115, - .types = { TYPE_WATER, TYPE_WATER }, - .catchRate = 3, - .expYield = 261, - .evYield_Defense = 1, - .evYield_SpDefense = 2, + .baseDefense = 85, + .baseSpeed = 115, + .baseSpAttack = 100, + .baseSpDefense = 85, + .types = { TYPE_WATER, TYPE_PSYCHIC }, + .catchRate = 60, + .expYield = 182, + .evYield_Speed = 2, + .itemCommon = ITEM_STARDUST, + .itemRare = ITEM_STAR_PIECE, .genderRatio = MON_GENDERLESS, - .eggCycles = 80, - .friendship = 35, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - #if P_UPDATED_ABILITIES >= GEN_7 - .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_INNER_FOCUS}, + .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, + .abilities = {ABILITY_ILLUMINATE, ABILITY_NATURAL_CURE, ABILITY_ANALYTIC}, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + .speciesName = _("Starmie"), + .cryId = CRY_STARMIE, + .natDexNum = NATIONAL_DEX_STARMIE, + .categoryName = _("Mysterious"), + .height = 11, + .weight = 800, + .description = COMPOUND_STRING( + "People in ancient times imagined that\n" + "Starmie were transformed from the\n" + "reflections of stars that twinkled on\n" + "gentle waves at night."), + .pokemonScale = 301, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Starmie, 56, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Starmie, + .frontAnimId = ANIM_TWIST, + BACK_PIC(Starmie, 64, 64), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, + PALETTE(Starmie), + ICON(Starmie, 2), + .footprint = gMonFootprint_Starmie, + LEARNSETS(Starmie), + }, +#endif //P_FAMILY_STARYU + +#if P_FAMILY_MR_MIME +#if P_GEN_4_CROSS_EVOS + [SPECIES_MIME_JR] = + { + .baseHP = 20, + .baseAttack = 25, + .baseDefense = 45, + .baseSpeed = 60, + .baseSpAttack = 70, + .baseSpDefense = 90, + #if P_UPDATED_TYPES >= GEN_6 + .types = { TYPE_PSYCHIC, TYPE_FAIRY}, #else - .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_WATER_ABSORB}, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, #endif - .bodyColor = BODY_COLOR_BLUE, + .catchRate = 145, + .expYield = 62, + .evYield_SpDefense = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_SOUNDPROOF, ABILITY_FILTER, ABILITY_TECHNICIAN}, + .bodyColor = BODY_COLOR_PINK, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, + .speciesName = _("Mime Jr."), + .cryId = CRY_MIME_JR, + .natDexNum = NATIONAL_DEX_MIME_JR, + .categoryName = _("Mime"), + .height = 6, + .weight = 130, + .description = COMPOUND_STRING( + "In an attempt to confuse its enemy,\n" + "it mimics the enemy's movements.\n" + "Once mimicked, the foe cannot take\n" + "its eyes off this Pokémon."), + .pokemonScale = 422, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(MimeJr, 32, 56), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_MimeJr, + .frontAnimId = ANIM_H_SLIDE_SLOW, + BACK_PIC(MimeJr, 64, 64), + .backPicYOffset = 1, + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, + PALETTE(MimeJr), + ICON(MimeJr, 0), + .footprint = gMonFootprint_MimeJr, + LEARNSETS(MimeJr), + .evolutions = EVOLUTION({EVO_MOVE, MOVE_MIMIC, SPECIES_MR_MIME}, + {EVO_NONE, 0, SPECIES_MR_MIME_GALARIAN}), + }, +#endif //P_GEN_4_CROSS_EVOS + +#define MR_MIME_MISC_INFO \ + .catchRate = 45, \ + .expYield = 161, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 25, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, \ + .noFlip = FALSE, \ + .speciesName = _("Mr. Mime"), \ + .cryId = CRY_MR_MIME, \ + .natDexNum = NATIONAL_DEX_MR_MIME, \ + .footprint = gMonFootprint_MrMime, \ + .formSpeciesIdTable = sMrMimeFormSpeciesIdTable - [SPECIES_LARVITAR] = + [SPECIES_MR_MIME] = + { + MR_MIME_MISC_INFO, + .baseHP = 40, + .baseAttack = 45, + .baseDefense = 65, + .baseSpeed = 90, + .baseSpAttack = 100, + .baseSpDefense = 120, + #if P_UPDATED_TYPES >= GEN_6 + .types = { TYPE_PSYCHIC, TYPE_FAIRY}, + #else + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, + #endif + .evYield_SpDefense = 2, + .abilities = {ABILITY_SOUNDPROOF, ABILITY_FILTER, ABILITY_TECHNICIAN}, + .bodyColor = BODY_COLOR_PINK, + .categoryName = _("Barrier"), + .height = 13, + .weight = 545, + .description = COMPOUND_STRING( + "A Mr. Mime is a master of pantomime. It can\n" + "convince others that something unseeable\n" + "actually exists. Once believed, the\n" + "imaginary object does become real."), + .pokemonScale = 258, + .pokemonOffset = 6, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(MrMime, 56, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_MrMime, + .frontAnimId = ANIM_H_SLIDE_SLOW, + BACK_PIC(MrMime, 64, 48), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(MrMime), + ICON(MrMime, 0), + LEARNSETS(MrMime), + }, + +#if P_GALARIAN_FORMS + [SPECIES_MR_MIME_GALARIAN] = { + MR_MIME_MISC_INFO, .baseHP = 50, - .baseAttack = 64, - .baseDefense = 50, - .baseSpeed = 41, - .baseSpAttack = 45, - .baseSpDefense = 50, - .types = { TYPE_ROCK, TYPE_GROUND }, - .catchRate = 45, - .expYield = 60, - .evYield_Attack = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 40, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, - .abilities = {ABILITY_GUTS, ABILITY_NONE, ABILITY_SAND_VEIL}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, + .baseAttack = 65, + .baseDefense = 65, + .baseSpeed = 100, + .baseSpAttack = 90, + .baseSpDefense = 90, + .types = { TYPE_ICE, TYPE_PSYCHIC}, + .evYield_Speed = 2, + .abilities = {ABILITY_VITAL_SPIRIT, ABILITY_SCREEN_CLEANER, ABILITY_ICE_BODY}, + .bodyColor = BODY_COLOR_WHITE, + .categoryName = _("Dancing"), + .height = 14, + .weight = 568, + .description = COMPOUND_STRING( + "Its talent is tap-dancing. It can radiate\n" + "chilliness from the bottoms of its feet to\n" + "to create a floor of ice, which this\n" + "Pokémon can kick up to use as a barrier."), + .pokemonScale = 258, + .pokemonOffset = 6, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(MrMimeGalarian, 56, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_MrMimeGalarian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(MrMimeGalarian, 64, 48), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(MrMimeGalarian), + ICON(MrMimeGalarian, 0), + LEARNSETS(MrMimeGalarian), + .isGalarianForm = TRUE, + .evolutions = EVOLUTION({EVO_LEVEL, 42, SPECIES_MR_RIME}), }, - [SPECIES_PUPITAR] = + [SPECIES_MR_RIME] = { - .baseHP = 70, - .baseAttack = 84, - .baseDefense = 70, - .baseSpeed = 51, - .baseSpAttack = 65, - .baseSpDefense = 70, - .types = { TYPE_ROCK, TYPE_GROUND }, + .baseHP = 80, + .baseAttack = 85, + .baseDefense = 75, + .baseSpeed = 70, + .baseSpAttack = 110, + .baseSpDefense = 100, + .types = { TYPE_ICE, TYPE_PSYCHIC}, .catchRate = 45, - .expYield = 144, - .evYield_Attack = 2, + .expYield = 182, + .evYield_SpAttack = 3, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 40, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, - .abilities = {ABILITY_SHED_SKIN, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GRAY, + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_TANGLED_FEET, ABILITY_SCREEN_CLEANER, ABILITY_ICE_BODY}, + .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, - }, - - [SPECIES_TYRANITAR] = + .speciesName = _("Mr. Rime"), + .cryId = CRY_MR_RIME, + .natDexNum = NATIONAL_DEX_MR_RIME, + .categoryName = _("Comedian"), + .height = 15, + .weight = 582, + .description = COMPOUND_STRING( + "It's highly skilled at tap-dancing. It\n" + "waves its cane of ice in time with its\n" + "graceful movements."), + .pokemonScale = 268, + .pokemonOffset = 2, + .trainerScale = 271, + .trainerOffset = 0, + FRONT_PIC(MrRime, 56, 64), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_MrRime, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(MrRime, 64, 56), + .backPicYOffset = 6, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(MrRime), + ICON(MrRime, 0), + .footprint = gMonFootprint_MrRime, + LEARNSETS(MrRime), + }, +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MR_MIME + +#if P_FAMILY_SCYTHER + [SPECIES_SCYTHER] = { - .baseHP = 100, - .baseAttack = 134, - .baseDefense = 110, - .baseSpeed = 61, - .baseSpAttack = 95, - .baseSpDefense = 100, - .types = { TYPE_ROCK, TYPE_DARK }, + .baseHP = 70, + .baseAttack = 110, + .baseDefense = 80, + .baseSpeed = 105, + .baseSpAttack = 55, + .baseSpDefense = 80, + .types = { TYPE_BUG, TYPE_FLYING }, .catchRate = 45, - .expYield = 270, - .evYield_Attack = 3, + .expYield = 100, + .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 40, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, - .abilities = {ABILITY_SAND_STREAM, ABILITY_NONE, ABILITY_UNNERVE}, + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_SWARM, ABILITY_TECHNICIAN, ABILITY_STEADFAST}, .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - }, + .speciesName = _("Scyther"), + .cryId = CRY_SCYTHER, + .natDexNum = NATIONAL_DEX_SCYTHER, + .categoryName = _("Mantis"), + .height = 15, + .weight = 560, + .description = COMPOUND_STRING( + "Its blindingly fast speed adds to the\n" + "sharpness of its twin forearm scythes.\n" + "The scythes can slice through thick logs\n" + "in one wicked stroke."), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 293, + .trainerOffset = 2, + FRONT_PIC(Scyther, 56, 64), + FRONT_PIC_FEMALE(Scyther, 56, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Scyther, + .frontAnimId = ANIM_H_VIBRATE, + .frontAnimDelay = 10, + BACK_PIC(Scyther, 64, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(Scyther), + ICON(Scyther, 1), + .footprint = gMonFootprint_Scyther, + LEARNSETS(Scyther), + .evolutions = EVOLUTION({EVO_TRADE_ITEM, ITEM_METAL_COAT, SPECIES_SCIZOR}, + {EVO_ITEM, ITEM_BLACK_AUGURITE, SPECIES_KLEAVOR}, + {EVO_ITEM, ITEM_METAL_COAT, SPECIES_SCIZOR}), + }, + +#if P_GEN_2_CROSS_EVOS +#define SCIZOR_MISC_INFO \ + .types = { TYPE_BUG, TYPE_STEEL}, \ + .catchRate = 25, \ + .evYield_Attack = 2, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 25, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, \ + .bodyColor = BODY_COLOR_RED, \ + .noFlip = FALSE, \ + .speciesName = _("Scizor"), \ + .natDexNum = NATIONAL_DEX_SCIZOR, \ + .categoryName = _("Pincer"), \ + .footprint = gMonFootprint_Scizor, \ + LEARNSETS(Scizor), \ + .formSpeciesIdTable = sScizorFormSpeciesIdTable,\ + .formChangeTable = sScizorFormChangeTable - [SPECIES_LUGIA] = + [SPECIES_SCIZOR] = { - .baseHP = 106, - .baseAttack = 90, - .baseDefense = 130, - .baseSpeed = 110, - .baseSpAttack = 90, - .baseSpDefense = 154, - .types = { TYPE_PSYCHIC, TYPE_FLYING }, - .catchRate = 3, - .expYield = 306, - .evYield_SpDefense = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_MULTISCALE}, - .bodyColor = BODY_COLOR_WHITE, + SCIZOR_MISC_INFO, + .baseHP = 70, + .baseAttack = 130, + .baseDefense = 100, + .baseSpeed = 65, + .baseSpAttack = 55, + .baseSpDefense = 80, + .expYield = 175, + .abilities = {ABILITY_SWARM, ABILITY_TECHNICIAN, ABILITY_LIGHT_METAL}, + .cryId = CRY_SCIZOR, + .height = 18, + .weight = 1180, + .description = COMPOUND_STRING( + "A Scizor has a body with the hardness of\n" + "steel. It is not easily fazed by ordinary\n" + "sorts of attacks. It flaps its wings to\n" + "regulate its body temperature."), + .pokemonScale = 278, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Scizor, 64, 64), + FRONT_PIC_FEMALE(Scizor, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Scizor, + .frontAnimId = ANIM_H_VIBRATE, + .frontAnimDelay = 19, + BACK_PIC(Scizor, 64, 56), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Scizor), + ICON(Scizor, 0), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_SCIZOR_MEGA] = + { + SCIZOR_MISC_INFO, + .baseHP = 70, + .baseAttack = 150, + .baseDefense = 140, + .baseSpeed = 75, + .baseSpAttack = 65, + .baseSpDefense = 100, + .expYield = 210, + .abilities = {ABILITY_TECHNICIAN, ABILITY_TECHNICIAN, ABILITY_TECHNICIAN}, + .isMegaEvolution = TRUE, + .cryId = CRY_SCIZOR_MEGA, + .height = 20, + .weight = 1250, + .description = COMPOUND_STRING( + "The excess energy that bathes this\n" + "Pokémon keeps it in constant danger of\n" + "overflow. It can't sustain a battle over\n" + "long periods of time."), + .pokemonScale = 278, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(ScizorMega, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_ScizorMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(ScizorMega, 64, 56), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(ScizorMega), + ICON(ScizorMega, 0), + }, +#endif //P_MEGA_EVOLUTIONS +#endif //P_GEN_2_CROSS_EVOS + +#if P_GEN_8_CROSS_EVOS + [SPECIES_KLEAVOR] = + { + .baseHP = 70, + .baseAttack = 135, + .baseDefense = 95, + .baseSpeed = 85, + .baseSpAttack = 45, + .baseSpDefense = 70, + .types = { TYPE_BUG, TYPE_ROCK}, + .catchRate = 15, + .expYield = 175, + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_SWARM, ABILITY_SHEER_FORCE, ABILITY_SHARPNESS}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_HO_OH] = + .speciesName = _("Kleavor"), + .cryId = CRY_KLEAVOR, + .natDexNum = NATIONAL_DEX_KLEAVOR, + .categoryName = _("Axe"), + .height = 18, + .weight = 890, + .description = COMPOUND_STRING( + "A violent creature that fells trees with\n" + "its crude axes and shields itself with hard\n" + "stone. Should one encounter this Pokémon\n" + "in the wild, one's only recourse is to flee."), + .pokemonScale = 267, + .pokemonOffset = 2, + .trainerScale = 286, + .trainerOffset = 1, + FRONT_PIC(Kleavor, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Kleavor, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Kleavor, 64, 56), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Kleavor), + ICON(Kleavor, 2), + //.footprint = gMonFootprint_Kleavor, + LEARNSETS(Kleavor), + }, +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_SCYTHER + +#if P_FAMILY_JYNX +#if P_GEN_2_CROSS_EVOS + [SPECIES_SMOOCHUM] = { - .baseHP = 106, - .baseAttack = 130, - .baseDefense = 90, - .baseSpeed = 90, - .baseSpAttack = 110, - .baseSpDefense = 154, - .types = { TYPE_FIRE, TYPE_FLYING }, - .catchRate = 3, - .expYield = 306, - .evYield_SpDefense = 3, - .itemCommon = ITEM_SACRED_ASH, - .itemRare = ITEM_SACRED_ASH, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, - .growthRate = GROWTH_SLOW, + .baseHP = 45, + .baseAttack = 30, + .baseDefense = 15, + .baseSpeed = 65, + .baseSpAttack = 85, + .baseSpDefense = 65, + .types = { TYPE_ICE, TYPE_PSYCHIC }, + .catchRate = 45, + .expYield = 61, + .evYield_SpAttack = 1, + .genderRatio = MON_FEMALE, + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_REGENERATOR}, - .bodyColor = BODY_COLOR_RED, + .abilities = {ABILITY_OBLIVIOUS, ABILITY_FOREWARN, ABILITY_HYDRATION}, + .bodyColor = BODY_COLOR_PINK, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, + .speciesName = _("Smoochum"), + .cryId = CRY_SMOOCHUM, + .natDexNum = NATIONAL_DEX_SMOOCHUM, + .categoryName = _("Kiss"), + .height = 4, + .weight = 60, + .description = COMPOUND_STRING( + "It actively runs about, but also falls\n" + "often. Whenever it falls, it will check its\n" + "reflection on a lake's surface to make\n" + "sure its face hasn't become dirty."), + .pokemonScale = 440, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Smoochum, 32, 40), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_Smoochum, + .frontAnimId = ANIM_GROW_VIBRATE, + .frontAnimDelay = 40, + BACK_PIC(Smoochum, 40, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Smoochum), + ICON(Smoochum, 1), + .footprint = gMonFootprint_Smoochum, + LEARNSETS(Smoochum), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_JYNX}), + }, +#endif //P_GEN_2_CROSS_EVOS - [SPECIES_CELEBI] = + [SPECIES_JYNX] = { - .baseHP = 100, - .baseAttack = 100, - .baseDefense = 100, - .baseSpeed = 100, - .baseSpAttack = 100, - .baseSpDefense = 100, - .types = { TYPE_PSYCHIC, TYPE_GRASS }, + .baseHP = 65, + .baseAttack = 50, + .baseDefense = 35, + .baseSpeed = 95, + .baseSpAttack = 115, + .baseSpDefense = 95, + .types = { TYPE_ICE, TYPE_PSYCHIC }, .catchRate = 45, - .expYield = 270, - .evYield_HP = 3, - .itemCommon = ITEM_LUM_BERRY, - .itemRare = ITEM_LUM_BERRY, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 100, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, - .abilities = {ABILITY_NATURAL_CURE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GREEN, + .expYield = 159, + .evYield_SpAttack = 2, + .genderRatio = MON_FEMALE, + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_OBLIVIOUS, ABILITY_FOREWARN, ABILITY_DRY_SKIN}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, - .flags = SPECIES_FLAG_MYTHICAL, - }, - - [SPECIES_TREECKO] = + .speciesName = _("Jynx"), + .cryId = CRY_JYNX, + .natDexNum = NATIONAL_DEX_JYNX, + .categoryName = _("Human Shape"), + .height = 14, + .weight = 406, + .description = COMPOUND_STRING( + "A Jynx sashays rhythmically as if it were\n" + "dancing. Its motions are so bouncingly\n" + "alluring, people seeing it are compelled to\n" + "shake their hips without noticing."), + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 300, + .trainerOffset = 1, + FRONT_PIC(Jynx, 64, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Jynx, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Jynx, 56, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Jynx), + ICON(Jynx, 2), + .footprint = gMonFootprint_Jynx, + LEARNSETS(Jynx), + }, +#endif //P_FAMILY_JYNX + +#if P_FAMILY_ELECTABUZZ +#if P_GEN_2_CROSS_EVOS + [SPECIES_ELEKID] = { - .baseHP = 40, - .baseAttack = 45, - .baseDefense = 35, - .baseSpeed = 70, + .baseHP = 45, + .baseAttack = 63, + .baseDefense = 37, + .baseSpeed = 95, .baseSpAttack = 65, .baseSpDefense = 55, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, .catchRate = 45, - .expYield = 62, + .expYield = 72, .evYield_Speed = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, + .itemRare = ITEM_ELECTIRIZER, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_UNBURDEN}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_STATIC, ABILITY_NONE, ABILITY_VITAL_SPIRIT}, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = TRUE, + .speciesName = _("Elekid"), + .cryId = CRY_ELEKID, + .natDexNum = NATIONAL_DEX_ELEKID, + .categoryName = _("Electric"), + .height = 6, + .weight = 235, + .description = COMPOUND_STRING( + "If it touches metal and discharges the\n" + "electricity it has stored in its body, an\n" + "Elekid begins swinging its arms in circles\n" + "to recharge itself."), + .pokemonScale = 363, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Elekid, 48, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Elekid, + .frontAnimId = ANIM_FLASH_YELLOW, + BACK_PIC(Elekid, 64, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_H_SHAKE, + PALETTE(Elekid), + ICON(Elekid, 1), + .footprint = gMonFootprint_Elekid, + LEARNSETS(Elekid), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_ELECTABUZZ}), + }, +#endif //P_GEN_2_CROSS_EVOS - [SPECIES_GROVYLE] = + [SPECIES_ELECTABUZZ] = { - .baseHP = 50, - .baseAttack = 65, - .baseDefense = 45, - .baseSpeed = 95, - .baseSpAttack = 85, - .baseSpDefense = 65, - .types = { TYPE_GRASS, TYPE_GRASS }, + .baseHP = 65, + .baseAttack = 83, + .baseDefense = 57, + .baseSpeed = 105, + .baseSpAttack = 95, + .baseSpDefense = 85, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, .catchRate = 45, - .expYield = 142, + .expYield = 172, .evYield_Speed = 2, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, + .itemRare = ITEM_ELECTIRIZER, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_UNBURDEN}, - .bodyColor = BODY_COLOR_GREEN, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_STATIC, ABILITY_NONE, ABILITY_VITAL_SPIRIT}, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = TRUE, + .speciesName = _("Electabuzz"), + .cryId = CRY_ELECTABUZZ, + .natDexNum = NATIONAL_DEX_ELECTABUZZ, + .categoryName = _("Electric"), + .height = 11, + .weight = 300, + .description = COMPOUND_STRING( + "When a storm approaches, it competes with\n" + "others to scale heights that are likely to\n" + "be stricken by lightning. Some towns use\n" + "Electabuzz in place of lightning rods."), + .pokemonScale = 351, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Electabuzz, 64, 64), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Electabuzz, + .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL_SLOW, + BACK_PIC(Electabuzz, 64, 64), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, + PALETTE(Electabuzz), + ICON(Electabuzz, 1), + .footprint = gMonFootprint_Electabuzz, + LEARNSETS(Electabuzz), + .evolutions = EVOLUTION({EVO_TRADE_ITEM, ITEM_ELECTIRIZER, SPECIES_ELECTIVIRE}, + {EVO_ITEM, ITEM_ELECTIRIZER, SPECIES_ELECTIVIRE}), + }, + +#if P_GEN_4_CROSS_EVOS + [SPECIES_ELECTIVIRE] = + { + .baseHP = 75, + .baseAttack = 123, + .baseDefense = 67, + .baseSpeed = 95, + .baseSpAttack = 95, + .baseSpDefense = 85, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, + .catchRate = 30, + .expYield = 243, + .evYield_Attack = 3, + .itemRare = ITEM_ELECTIRIZER, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_MOTOR_DRIVE, ABILITY_NONE, ABILITY_VITAL_SPIRIT}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, - }, + .speciesName = _("Electivire"), + .cryId = CRY_ELECTIVIRE, + .natDexNum = NATIONAL_DEX_ELECTIVIRE, + .categoryName = _("Thunderbolt"), + .height = 18, + .weight = 1386, + .description = COMPOUND_STRING( + "When it gets excited, it thumps its chest.\n" + "With every thud, thunder roars, electric\n" + "sparks shower all around and blue sparks\n" + "begin to crackle between its horns."), + .pokemonScale = 267, + .pokemonOffset = 2, + .trainerScale = 286, + .trainerOffset = 1, + FRONT_PIC(Electivire, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Electivire, + .frontAnimId = ANIM_GLOW_YELLOW, + BACK_PIC(Electivire, 64, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, + PALETTE(Electivire), + ICON(Electivire, 1), + .footprint = gMonFootprint_Electivire, + LEARNSETS(Electivire), + }, +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_ELECTABUZZ + +#if P_FAMILY_MAGMAR +#if P_GEN_2_CROSS_EVOS + [SPECIES_MAGBY] = + { + .baseHP = 45, + .baseAttack = 75, + .baseDefense = 37, + .baseSpeed = 83, + .baseSpAttack = 70, + .baseSpDefense = 55, + .types = { TYPE_FIRE, TYPE_FIRE }, + .catchRate = 45, + .expYield = 73, + .evYield_Speed = 1, + .itemRare = ITEM_MAGMARIZER, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_FLAME_BODY, ABILITY_NONE, ABILITY_VITAL_SPIRIT}, + .bodyColor = BODY_COLOR_RED, + .noFlip = TRUE, + .speciesName = _("Magby"), + .cryId = CRY_MAGBY, + .natDexNum = NATIONAL_DEX_MAGBY, + .categoryName = _("Live Coal"), + .height = 7, + .weight = 214, + .description = COMPOUND_STRING( + "If a Magby is spouting yellow flames from\n" + "its mouth, it is in good health. When it is\n" + "fatigued, black smoke will be mixed in with\n" + "the flames."), + .pokemonScale = 284, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Magby, 32, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Magby, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Magby, 40, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, + PALETTE(Magby), + ICON(Magby, 0), + .footprint = gMonFootprint_Magby, + LEARNSETS(Magby), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_MAGMAR}), + }, +#endif //P_GEN_2_CROSS_EVOS - [SPECIES_SCEPTILE] = + [SPECIES_MAGMAR] = { - .baseHP = 70, - .baseAttack = 85, - .baseDefense = 65, - .baseSpeed = 120, - .baseSpAttack = 105, + .baseHP = 65, + .baseAttack = 95, + .baseDefense = 57, + .baseSpeed = 93, + .baseSpAttack = 100, .baseSpDefense = 85, - .types = { TYPE_GRASS, TYPE_GRASS }, + .types = { TYPE_FIRE, TYPE_FIRE }, .catchRate = 45, - .expYield = 239, - .evYield_Speed = 3, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, + .expYield = 173, + .evYield_SpAttack = 2, + .itemRare = ITEM_MAGMARIZER, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_FLAME_BODY, ABILITY_NONE, ABILITY_VITAL_SPIRIT}, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + .speciesName = _("Magmar"), + .cryId = CRY_MAGMAR, + .natDexNum = NATIONAL_DEX_MAGMAR, + .categoryName = _("Spitfire"), + .height = 13, + .weight = 445, + .description = COMPOUND_STRING( + "In battle, it blows out intense flames from\n" + "all over its body to intimidate its foe.\n" + "These fiery bursts create heat waves that\n" + "ignite grass and trees in the area."), + .pokemonScale = 277, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Magmar, 64, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Magmar, + .frontAnimId = ANIM_H_SHAKE, + BACK_PIC(Magmar, 64, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, + PALETTE(Magmar), + ICON(Magmar, 0), + .footprint = gMonFootprint_Magmar, + LEARNSETS(Magmar), + .evolutions = EVOLUTION({EVO_TRADE_ITEM, ITEM_MAGMARIZER, SPECIES_MAGMORTAR}, + {EVO_ITEM, ITEM_MAGMARIZER, SPECIES_MAGMORTAR}), + }, + +#if P_GEN_4_CROSS_EVOS + [SPECIES_MAGMORTAR] = + { + .baseHP = 75, + .baseAttack = 95, + .baseDefense = 67, + .baseSpeed = 83, + .baseSpAttack = 125, + .baseSpDefense = 95, + .types = { TYPE_FIRE, TYPE_FIRE}, + .catchRate = 30, + .expYield = 243, + .evYield_SpAttack = 3, + .itemRare = ITEM_MAGMARIZER, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_FLAME_BODY, ABILITY_NONE, ABILITY_VITAL_SPIRIT}, + .bodyColor = BODY_COLOR_RED, + .noFlip = TRUE, + .speciesName = _("Magmortar"), + .cryId = CRY_MAGMORTAR, + .natDexNum = NATIONAL_DEX_MAGMORTAR, + .categoryName = _("Blast"), + .height = 16, + .weight = 680, + .description = COMPOUND_STRING( + "According to what is known, a single pair\n" + "of male and female Magmortar lives in\n" + "one volcano. From its arm, it launches\n" + "fireballs hotter than 3,600ºF."), + .pokemonScale = 259, + .pokemonOffset = 1, + .trainerScale = 296, + .trainerOffset = 1, + FRONT_PIC(Magmortar, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Magmortar, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Magmortar, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, + PALETTE(Magmortar), + ICON(Magmortar, 0), + .footprint = gMonFootprint_Magmortar, + LEARNSETS(Magmortar), + }, +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MAGMAR + +#if P_FAMILY_PINSIR +#define PINSIR_MISC_INFO \ + .catchRate = 45, \ + .evYield_Attack = 2, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 25, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, \ + .bodyColor = BODY_COLOR_BROWN, \ + .noFlip = FALSE, \ + .speciesName = _("Pinsir"), \ + .natDexNum = NATIONAL_DEX_PINSIR, \ + .categoryName = _("Stag Beetle"), \ + .footprint = gMonFootprint_Pinsir, \ + LEARNSETS(Pinsir), \ + .formSpeciesIdTable = sPinsirFormSpeciesIdTable,\ + .formChangeTable = sPinsirFormChangeTable + + [SPECIES_PINSIR] = + { + PINSIR_MISC_INFO, + .baseHP = 65, + .baseAttack = 125, + .baseDefense = 100, + .baseSpeed = 85, + .baseSpAttack = 55, + .baseSpDefense = 70, + .types = { TYPE_BUG, TYPE_BUG }, + .expYield = 175, + .abilities = {ABILITY_HYPER_CUTTER, ABILITY_MOLD_BREAKER, ABILITY_MOXIE}, + .cryId = CRY_PINSIR, + .height = 15, + .weight = 550, + .description = COMPOUND_STRING( + "Their pincers are strong enough to\n" + "shatter thick logs. Because they dislike\n" + "cold, Pinsir burrow and sleep under\n" + "the ground on chilly nights."), + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Pinsir, 64, 64), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Pinsir, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Pinsir, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(Pinsir), + ICON(Pinsir, 2), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_PINSIR_MEGA] = + { + PINSIR_MISC_INFO, + .baseHP = 65, + .baseAttack = 155, + .baseDefense = 120, + .baseSpeed = 105, + .baseSpAttack = 65, + .baseSpDefense = 90, + .types = { TYPE_BUG, TYPE_FLYING}, + .expYield = 210, + .abilities = {ABILITY_AERILATE, ABILITY_AERILATE, ABILITY_AERILATE}, + .cryId = CRY_PINSIR_MEGA, + .height = 17, + .weight = 590, + .description = COMPOUND_STRING( + "The influence of Mega Evolution leaves it\n" + "in a state of constant excitement.\n" + "It pierces enemies with its two large\n" + "horns before shredding them."), + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(PinsirMega, 64, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_PinsirMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 4, + BACK_PIC(PinsirMega, 64, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(PinsirMega), + ICON(PinsirMega, 2), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_PINSIR + +#if P_FAMILY_TAUROS +#define TAUROS_MISC_INFO \ + .baseHP = 75, \ + .baseAttack = 100, \ + .baseDefense = 95, \ + .baseSpeed = 110, \ + .baseSpAttack = 40, \ + .baseSpDefense = 70, \ + .catchRate = 45, \ + .expYield = 172, \ + .genderRatio = MON_MALE, \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, \ + .noFlip = FALSE, \ + .speciesName = _("Tauros"), \ + .cryId = CRY_TAUROS, \ + .natDexNum = NATIONAL_DEX_TAUROS, \ + .categoryName = _("Wild Bull"), \ + .height = 14, \ + .pokemonScale = 256, \ + .pokemonOffset = 0, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Tauros, \ + .formSpeciesIdTable = sTaurosFormSpeciesIdTable + + [SPECIES_TAUROS] = + { + TAUROS_MISC_INFO, + .types = { TYPE_NORMAL, TYPE_NORMAL }, + .evYield_Attack = 1, + .evYield_Speed = 1, + .abilities = {ABILITY_INTIMIDATE, ABILITY_ANGER_POINT, ABILITY_SHEER_FORCE}, + .bodyColor = BODY_COLOR_BROWN, + .weight = 884, + .description = COMPOUND_STRING( + "It is not satisfied unless it is rampaging\n" + "at all times. If there is no opponent for\n" + "Tauros to battle, it will charge at thick\n" + "trees and knock them down to calm itself."), + FRONT_PIC(Tauros, 64, 64), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Tauros, + .frontAnimId = ANIM_V_SHAKE_TWICE, + .frontAnimDelay = 10, + BACK_PIC(Tauros, 64, 48), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(Tauros), + ICON(Tauros, 2), + LEARNSETS(Tauros), + }, + +#if P_PALDEAN_FORMS + [SPECIES_TAUROS_PALDEAN_COMBAT_BREED] = + { + TAUROS_MISC_INFO, + .types = { TYPE_FIGHTING, TYPE_FIGHTING }, + .evYield_Attack = 2, + .abilities = {ABILITY_INTIMIDATE, ABILITY_ANGER_POINT, ABILITY_CUD_CHEW}, + .bodyColor = BODY_COLOR_BROWN, + .weight = 1150, + .description = COMPOUND_STRING( + "This Pokémon has a muscular body\n" + "and excels at close-quarters combat.\n" + "It uses its short horns to strike\n" + "the opponent’s weak spots."), + FRONT_PIC(TaurosPaldeanCombatBreed, 64, 64), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_TaurosPaldean, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(TaurosPaldeanCombatBreed, 64, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(TaurosPaldeanCombatBreed), + ICON(TaurosPaldeanCombatBreed, 0), + LEARNSETS(TaurosPaldeanCombatBreed), + .isPaldeanForm = TRUE, + }, + + [SPECIES_TAUROS_PALDEAN_BLAZE_BREED] = + { + TAUROS_MISC_INFO, + .types = { TYPE_FIGHTING, TYPE_FIRE }, + .evYield_Attack = 2, + .abilities = {ABILITY_INTIMIDATE, ABILITY_ANGER_POINT, ABILITY_CUD_CHEW}, + .bodyColor = BODY_COLOR_BROWN, + .weight = 850, + .description = COMPOUND_STRING( + "When heated by fire energy, its horns can\n" + "get hotter than 1,800 degrees Fahrenheit.\n" + "Those gored by them will suffer\n" + "both wounds and burns."), + FRONT_PIC(TaurosPaldeanBlazeBreed, 64, 64), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_TaurosPaldean, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(TaurosPaldeanBlazeBreed, 64, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(TaurosPaldeanBlazeBreed), + ICON(TaurosPaldeanBlazeBreed, 0), + LEARNSETS(TaurosPaldeanBlazeBreed), + .isPaldeanForm = TRUE, + }, + + [SPECIES_TAUROS_PALDEAN_AQUA_BREED] = + { + TAUROS_MISC_INFO, + .types = { TYPE_FIGHTING, TYPE_WATER }, + .evYield_Attack = 2, + .abilities = {ABILITY_INTIMIDATE, ABILITY_ANGER_POINT, ABILITY_CUD_CHEW}, + .bodyColor = BODY_COLOR_BROWN, + .weight = 1100, + .description = COMPOUND_STRING( + "This Pokémon blasts water from holes on\n" + "the tips of its horns--the high-pressure\n" + "jets pierce right through\n" + "Tauros’s enemies."), + FRONT_PIC(TaurosPaldeanAquaBreed, 64, 64), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_TaurosPaldean, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(TaurosPaldeanAquaBreed, 64, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(TaurosPaldeanAquaBreed), + ICON(TaurosPaldeanAquaBreed, 0), + LEARNSETS(TaurosPaldeanAquaBreed), + .isPaldeanForm = TRUE, + }, +#endif //P_PALDEAN_FORMS +#endif //P_FAMILY_TAUROS + +#if P_FAMILY_MAGIKARP + [SPECIES_MAGIKARP] = + { + .baseHP = 20, + .baseAttack = 10, + .baseDefense = 55, + .baseSpeed = 80, + .baseSpAttack = 15, + .baseSpDefense = 20, + .types = { TYPE_WATER, TYPE_WATER }, + .catchRate = 255, + .expYield = 40, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 5, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_UNBURDEN}, - .bodyColor = BODY_COLOR_GREEN, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_RATTLED}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, - }, + .speciesName = _("Magikarp"), + .cryId = CRY_MAGIKARP, + .natDexNum = NATIONAL_DEX_MAGIKARP, + .categoryName = _("Fish"), + .height = 9, + .weight = 100, + .description = COMPOUND_STRING( + "Its swimming muscles are weak, so it is\n" + "easily washed away by currents. In places\n" + "where water pools, you can see many\n" + "Magikarp deposited there by the flow."), + .pokemonScale = 310, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Magikarp, 48, 56), + FRONT_PIC_FEMALE(Magikarp, 48, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Magikarp, + .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES, + BACK_PIC(Magikarp, 64, 56), + BACK_PIC_FEMALE(Magikarp, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, + PALETTE(Magikarp), + ICON(Magikarp, 0), + .footprint = gMonFootprint_Magikarp, + LEARNSETS(Magikarp), + .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_GYARADOS}), + }, + +#define GYARADOS_MISC_INFO \ + .catchRate = 45, \ + .evYield_Attack = 2, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 5, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_DRAGON},\ + .bodyColor = BODY_COLOR_BLUE, \ + .noFlip = FALSE, \ + .speciesName = _("Gyarados"), \ + .natDexNum = NATIONAL_DEX_GYARADOS, \ + .categoryName = _("Atrocious"), \ + .height = 65, \ + .pokemonScale = 256, \ + .pokemonOffset = 6, \ + .trainerScale = 481, \ + .trainerOffset = 13, \ + .footprint = gMonFootprint_Gyarados, \ + LEARNSETS(Gyarados), \ + .formSpeciesIdTable = sGyaradosFormSpeciesIdTable, \ + .formChangeTable = sGyaradosFormChangeTable - [SPECIES_TORCHIC] = + [SPECIES_GYARADOS] = { - .baseHP = 45, - .baseAttack = 60, - .baseDefense = 40, - .baseSpeed = 45, + GYARADOS_MISC_INFO, + .baseHP = 95, + .baseAttack = 125, + .baseDefense = 79, + .baseSpeed = 81, + .baseSpAttack = 60, + .baseSpDefense = 100, + .types = { TYPE_WATER, TYPE_FLYING }, + .expYield = 189, + .abilities = {ABILITY_INTIMIDATE, ABILITY_NONE, ABILITY_MOXIE}, + .cryId = CRY_GYARADOS, + .weight = 2350, + .description = COMPOUND_STRING( + "It is an extremely vicious and violent\n" + "Pokémon. When humans begin to fight,\n" + "it will appear and burn everything to the\n" + "ground with intensely hot flames."), + FRONT_PIC(Gyarados, 64, 64), + FRONT_PIC_FEMALE(Gyarados, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Gyarados, + .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL, + BACK_PIC(Gyarados, 64, 64), + BACK_PIC_FEMALE(Gyarados, 64, 64), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Gyarados), + ICON(Gyarados, 0), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_GYARADOS_MEGA] = + { + GYARADOS_MISC_INFO, + .baseHP = 95, + .baseAttack = 155, + .baseDefense = 109, + .baseSpeed = 81, .baseSpAttack = 70, - .baseSpDefense = 50, - .types = { TYPE_FIRE, TYPE_FIRE }, - .catchRate = 45, - .expYield = 62, - .evYield_SpAttack = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_SPEED_BOOST}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, + .baseSpDefense = 130, + .types = { TYPE_WATER, TYPE_DARK}, + .expYield = 224, + .abilities = {ABILITY_MOLD_BREAKER, ABILITY_MOLD_BREAKER, ABILITY_MOLD_BREAKER}, + .cryId = CRY_GYARADOS_MEGA, + .weight = 3050, + .description = COMPOUND_STRING( + "Although it obeys its instinctive drive to\n" + "destroy everything within its reach, it\n" + "will respond to orders from a Trainer it\n" + "truly trusts."), + FRONT_PIC(GyaradosMega, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_GyaradosMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 6, + BACK_PIC(GyaradosMega, 64, 64), + .backPicYOffset = 2, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(GyaradosMega), + ICON(GyaradosMega, 0), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_MAGIKARP + +#if P_FAMILY_LAPRAS +#define LAPRAS_MISC_INFO \ + .baseHP = 130, \ + .baseAttack = 85, \ + .baseDefense = 80, \ + .baseSpeed = 60, \ + .baseSpAttack = 85, \ + .baseSpDefense = 95, \ + .types = {TYPE_WATER, TYPE_ICE}, \ + .catchRate = 45, \ + .expYield = 187, \ + .evYield_HP = 2, \ + .itemCommon = ITEM_MYSTIC_WATER, \ + .itemRare = ITEM_MYSTIC_WATER, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 40, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, \ + .abilities = {ABILITY_WATER_ABSORB, ABILITY_SHELL_ARMOR, ABILITY_HYDRATION},\ + .bodyColor = BODY_COLOR_BLUE, \ + .noFlip = FALSE, \ + .speciesName = _("Lapras"), \ + .cryId = CRY_LAPRAS, \ + .natDexNum = NATIONAL_DEX_LAPRAS, \ + .categoryName = _("Transport"), \ + .footprint = gMonFootprint_Lapras, \ + LEARNSETS(Lapras), \ + .formSpeciesIdTable = sLaprasFormSpeciesIdTable, \ + .formChangeTable = sLaprasFormChangeTable - [SPECIES_COMBUSKEN] = + [SPECIES_LAPRAS] = { - .baseHP = 60, - .baseAttack = 85, - .baseDefense = 60, - .baseSpeed = 55, - .baseSpAttack = 85, - .baseSpDefense = 60, - .types = { TYPE_FIRE, TYPE_FIGHTING }, - .catchRate = 45, - .expYield = 142, - .evYield_Attack = 1, - .evYield_SpAttack = 1, - .genderRatio = PERCENT_FEMALE(12.5), + LAPRAS_MISC_INFO, + .height = 25, + .weight = 2200, + .description = COMPOUND_STRING( + "People have driven Lapras almost to the\n" + "point of extinction. In the evenings,\n" + "it is said to sing plaintively as it seeks\n" + "what few others of its kind still remain."), + .pokemonScale = 257, + .pokemonOffset = 10, + .trainerScale = 423, + .trainerOffset = 8, + FRONT_PIC(Lapras, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Lapras, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Lapras, 56, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, + PALETTE(Lapras), + ICON(Lapras, 2), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_LAPRAS_GIGANTAMAX] = + { + LAPRAS_MISC_INFO, + .height = 240, + .weight = 0, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 257, + .pokemonOffset = 10, + .trainerScale = 423, + .trainerOffset = 8, + FRONT_PIC(LaprasGigantamax, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_LaprasGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(LaprasGigantamax, 64, 64), + .backPicYOffset = 1, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(LaprasGigantamax), + ICON(LaprasGigantamax, 2), + .isGigantamax = TRUE, + }, +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_LAPRAS + +#if P_FAMILY_DITTO + [SPECIES_DITTO] = + { + .baseHP = 48, + .baseAttack = 48, + .baseDefense = 48, + .baseSpeed = 48, + .baseSpAttack = 48, + .baseSpDefense = 48, + .types = { TYPE_NORMAL, TYPE_NORMAL }, + .catchRate = 35, + .expYield = 101, + .evYield_HP = 1, + .itemCommon = ITEM_QUICK_POWDER, + .itemRare = ITEM_METAL_POWDER, + .genderRatio = MON_GENDERLESS, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_SPEED_BOOST}, - .bodyColor = BODY_COLOR_RED, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_DITTO, EGG_GROUP_DITTO}, + .abilities = {ABILITY_LIMBER, ABILITY_NONE, ABILITY_IMPOSTER}, + .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, - }, + .speciesName = _("Ditto"), + .cryId = CRY_DITTO, + .natDexNum = NATIONAL_DEX_DITTO, + .categoryName = _("Transform"), + .height = 3, + .weight = 40, + .description = COMPOUND_STRING( + "A Ditto rearranges its cell structure to\n" + "transform itself. However, if it tries to\n" + "change based on its memory, it will get\n" + "details wrong."), + .pokemonScale = 633, + .pokemonOffset = 23, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Ditto, 40, 40), + .frontPicYOffset = 15, + .frontAnimFrames = sAnims_Ditto, + .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, + BACK_PIC(Ditto, 48, 32), + .backPicYOffset = 17, + .backAnimId = BACK_ANIM_SHRINK_GROW, + PALETTE(Ditto), + ICON(Ditto, 2), + .footprint = gMonFootprint_Ditto, + LEARNSETS(Ditto), + }, +#endif //P_FAMILY_DITTO + +#if P_FAMILY_EEVEE +#define EEVEE_MISC_INFO \ + .baseHP = 55, \ + .baseAttack = 55, \ + .baseDefense = 50, \ + .baseSpeed = 55, \ + .baseSpAttack = 45, \ + .baseSpDefense = 65, \ + .types = {TYPE_NORMAL, TYPE_NORMAL}, \ + .catchRate = 45, \ + .expYield = 65, \ + .evYield_SpDefense = 1, \ + .genderRatio = PERCENT_FEMALE(12.5), \ + .eggCycles = 35, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FIELD}, \ + .abilities = {ABILITY_RUN_AWAY, ABILITY_ADAPTABILITY, ABILITY_ANTICIPATION},\ + .bodyColor = BODY_COLOR_BROWN, \ + .noFlip = FALSE, \ + .speciesName = _("Eevee"), \ + .cryId = CRY_EEVEE, \ + .natDexNum = NATIONAL_DEX_EEVEE, \ + .categoryName = _("Evolution"), \ + .footprint = gMonFootprint_Eevee, \ + LEARNSETS(Eevee), \ + .formSpeciesIdTable = sEeveeFormSpeciesIdTable, \ + .formChangeTable = sEeveeFormChangeTable - [SPECIES_BLAZIKEN] = + [SPECIES_EEVEE] = { - .baseHP = 80, - .baseAttack = 120, - .baseDefense = 70, - .baseSpeed = 80, + EEVEE_MISC_INFO, + .height = 3, + .weight = 65, + .description = COMPOUND_STRING( + "An Eevee has an unstable genetic makeup\n" + "that suddenly mutates due to its\n" + "environment. Radiation from various\n" + "Stones causes this Pokémon to evolve."), + .pokemonScale = 476, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Eevee, 40, 48), + FRONT_PIC_FEMALE(Eevee, 40, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Eevee, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Eevee, 56, 48), + BACK_PIC_FEMALE(Eevee, 56, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Eevee), + ICON(Eevee, 2), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_JOLTEON}, + {EVO_ITEM, ITEM_WATER_STONE, SPECIES_VAPOREON}, + {EVO_ITEM, ITEM_FIRE_STONE, SPECIES_FLAREON}, + {EVO_FRIENDSHIP_DAY, 0, SPECIES_ESPEON}, + {EVO_FRIENDSHIP_NIGHT, 0, SPECIES_UMBREON}, + {EVO_SPECIFIC_MAP, MAP_PETALBURG_WOODS, SPECIES_LEAFEON}, + {EVO_ITEM, ITEM_LEAF_STONE, SPECIES_LEAFEON}, + {EVO_SPECIFIC_MAP, MAP_SHOAL_CAVE_LOW_TIDE_ICE_ROOM, SPECIES_GLACEON}, + {EVO_ITEM, ITEM_ICE_STONE, SPECIES_GLACEON}, + {EVO_FRIENDSHIP_MOVE_TYPE, TYPE_FAIRY, SPECIES_SYLVEON}), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_EEVEE_GIGANTAMAX] = + { + EEVEE_MISC_INFO, + .height = 180, + .weight = 0, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 476, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(EeveeGigantamax, 64, 64), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_EeveeGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(EeveeGigantamax, 64, 64), + .backPicYOffset = 7, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(EeveeGigantamax), + ICON(EeveeGigantamax, 2), + .isGigantamax = TRUE, + }, +#endif //P_GIGANTAMAX_FORMS + + [SPECIES_VAPOREON] = + { + .baseHP = 130, + .baseAttack = 65, + .baseDefense = 60, + .baseSpeed = 65, .baseSpAttack = 110, - .baseSpDefense = 70, - .types = { TYPE_FIRE, TYPE_FIGHTING }, + .baseSpDefense = 95, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 45, - .expYield = 239, - .evYield_Attack = 3, + .expYield = 184, + .evYield_HP = 2, .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, + .eggCycles = 35, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, + .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_SPEED_BOOST}, - .bodyColor = BODY_COLOR_RED, + .abilities = {ABILITY_WATER_ABSORB, ABILITY_WATER_ABSORB, ABILITY_HYDRATION}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Vaporeon"), + .cryId = CRY_VAPOREON, + .natDexNum = NATIONAL_DEX_VAPOREON, + .categoryName = _("Bubble Jet"), + .height = 10, + .weight = 290, + .description = COMPOUND_STRING( + "Vaporeon underwent a spontaneous\n" + "mutation and grew fins and gills that\n" + "allow them to live underwater. They have\n" + "the ability to freely control water."), + .pokemonScale = 316, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Vaporeon, 48, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Vaporeon, + .frontAnimId = ANIM_GLOW_BLUE, + BACK_PIC(Vaporeon, 64, 56), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, + PALETTE(Vaporeon), + ICON(Vaporeon, 0), + .footprint = gMonFootprint_Vaporeon, + LEARNSETS(Vaporeon), }, - [SPECIES_MUDKIP] = + [SPECIES_JOLTEON] = { - .baseHP = 50, - .baseAttack = 70, - .baseDefense = 50, - .baseSpeed = 40, - .baseSpAttack = 50, - .baseSpDefense = 50, - .types = { TYPE_WATER, TYPE_WATER }, + .baseHP = 65, + .baseAttack = 65, + .baseDefense = 60, + .baseSpeed = 130, + .baseSpAttack = 110, + .baseSpDefense = 95, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, .catchRate = 45, - .expYield = 62, - .evYield_Attack = 1, + .expYield = 184, + .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, + .eggCycles = 35, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_DAMP}, - .bodyColor = BODY_COLOR_BLUE, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_VOLT_ABSORB, ABILITY_VOLT_ABSORB, ABILITY_QUICK_FEET}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, + .speciesName = _("Jolteon"), + .cryId = CRY_JOLTEON, + .natDexNum = NATIONAL_DEX_JOLTEON, + .categoryName = _("Lightning"), + .height = 8, + .weight = 245, + .description = COMPOUND_STRING( + "Its cells generate weak power that is\n" + "amplified by its fur's static electricity\n" + "to drop thunderbolts. The bristling fur is\n" + "made of electrically charged needles."), + .pokemonScale = 283, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Jolteon, 48, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Jolteon, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Jolteon, 56, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, + PALETTE(Jolteon), + ICON(Jolteon, 2), + .footprint = gMonFootprint_Jolteon, + LEARNSETS(Jolteon), }, - [SPECIES_MARSHTOMP] = + [SPECIES_FLAREON] = { - .baseHP = 70, - .baseAttack = 85, - .baseDefense = 70, - .baseSpeed = 50, - .baseSpAttack = 60, - .baseSpDefense = 70, - .types = { TYPE_WATER, TYPE_GROUND }, + .baseHP = 65, + .baseAttack = 130, + .baseDefense = 60, + .baseSpeed = 65, + .baseSpAttack = 95, + .baseSpDefense = 110, + .types = { TYPE_FIRE, TYPE_FIRE }, .catchRate = 45, - .expYield = 142, + .expYield = 184, .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, + .eggCycles = 35, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_DAMP}, - .bodyColor = BODY_COLOR_BLUE, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_FLASH_FIRE, ABILITY_FLASH_FIRE, ABILITY_GUTS}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, - }, - - [SPECIES_SWAMPERT] = + .speciesName = _("Flareon"), + .cryId = CRY_FLAREON, + .natDexNum = NATIONAL_DEX_FLAREON, + .categoryName = _("Flame"), + .height = 9, + .weight = 250, + .description = COMPOUND_STRING( + "Flareon's fluffy fur releases heat into\n" + "the air so that its body does not get\n" + "excessively hot. Its body temperature can\n" + "rise to a maximum of 1,650 degrees F."), + .pokemonScale = 306, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Flareon, 56, 56), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Flareon, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(Flareon, 64, 56), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, + PALETTE(Flareon), + ICON(Flareon, 3), + .footprint = gMonFootprint_Flareon, + LEARNSETS(Flareon), + }, + +#if P_GEN_2_CROSS_EVOS + [SPECIES_ESPEON] = { - .baseHP = 100, - .baseAttack = 110, - .baseDefense = 90, - .baseSpeed = 60, - .baseSpAttack = 85, - .baseSpDefense = 90, - .types = { TYPE_WATER, TYPE_GROUND }, + .baseHP = 65, + .baseAttack = 65, + .baseDefense = 60, + .baseSpeed = 110, + .baseSpAttack = 130, + .baseSpDefense = 95, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, .catchRate = 45, - .expYield = 241, - .evYield_Attack = 3, + .expYield = 184, + .evYield_SpAttack = 2, .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, + .eggCycles = 35, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_DAMP}, - .bodyColor = BODY_COLOR_BLUE, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_SYNCHRONIZE, ABILITY_SYNCHRONIZE, ABILITY_MAGIC_BOUNCE}, + .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, + .speciesName = _("Espeon"), + .cryId = CRY_ESPEON, + .natDexNum = NATIONAL_DEX_ESPEON, + .categoryName = _("Sun"), + .height = 9, + .weight = 265, + .description = COMPOUND_STRING( + "An Espeon is extremely loyal to any\n" + "Trainer it considers to be worthy. It is\n" + "said to have developed precognitive\n" + "powers to protect its Trainer from harm."), + .pokemonScale = 363, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Espeon, 48, 56), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Espeon, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Espeon, 64, 56), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(Espeon), + ICON(Espeon, 2), + .footprint = gMonFootprint_Espeon, + LEARNSETS(Espeon), }, - [SPECIES_POOCHYENA] = + [SPECIES_UMBREON] = { - .baseHP = 35, - .baseAttack = 55, - .baseDefense = 35, - .baseSpeed = 35, - .baseSpAttack = 30, - .baseSpDefense = 30, + .baseHP = 95, + .baseAttack = 65, + .baseDefense = 110, + .baseSpeed = 65, + .baseSpAttack = 60, + .baseSpDefense = 130, .types = { TYPE_DARK, TYPE_DARK }, - .catchRate = 255, - .expYield = 56, - .evYield_Attack = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, + .catchRate = 45, + .expYield = 184, + .evYield_SpDefense = 2, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 35, + .friendship = 35, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_RUN_AWAY, ABILITY_QUICK_FEET, ABILITY_RATTLED}, - .bodyColor = BODY_COLOR_GRAY, + .abilities = {ABILITY_SYNCHRONIZE, ABILITY_SYNCHRONIZE, ABILITY_INNER_FOCUS}, + .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, - }, - - [SPECIES_MIGHTYENA] = + .speciesName = _("Umbreon"), + .cryId = CRY_UMBREON, + .natDexNum = NATIONAL_DEX_UMBREON, + .categoryName = _("Moonlight"), + .height = 10, + .weight = 270, + .description = COMPOUND_STRING( + "Umbreon evolved from exposure to the\n" + "moon's energy pulses. It lurks in darkness\n" + "and waits for its foes to move. The rings\n" + "on its body glow when it leaps to attack."), + .pokemonScale = 317, + .pokemonOffset = 11, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Umbreon, 40, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Umbreon, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(Umbreon, 64, 64), + .backPicYOffset = 2, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(Umbreon), + ICON(Umbreon, 0), + .footprint = gMonFootprint_Umbreon, + LEARNSETS(Umbreon), + }, +#endif //P_GEN_2_CROSS_EVOS + +#if P_GEN_4_CROSS_EVOS + [SPECIES_LEAFEON] = { - .baseHP = 70, - .baseAttack = 90, - .baseDefense = 70, - .baseSpeed = 70, + .baseHP = 65, + .baseAttack = 110, + .baseDefense = 130, + .baseSpeed = 95, .baseSpAttack = 60, - .baseSpDefense = 60, - .types = { TYPE_DARK, TYPE_DARK }, - .catchRate = 127, - .expYield = 147, - .evYield_Attack = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, + .baseSpDefense = 65, + .types = { TYPE_GRASS, TYPE_GRASS}, + .catchRate = 45, + .expYield = 184, + .evYield_Defense = 2, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 35, + .friendship = 35, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_INTIMIDATE, ABILITY_QUICK_FEET, ABILITY_MOXIE}, - .bodyColor = BODY_COLOR_GRAY, + .abilities = {ABILITY_LEAF_GUARD, ABILITY_LEAF_GUARD, ABILITY_CHLOROPHYLL}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, + .speciesName = _("Leafeon"), + .cryId = CRY_LEAFEON, + .natDexNum = NATIONAL_DEX_LEAFEON, + .categoryName = _("Verdant"), + .height = 10, + .weight = 255, + .description = COMPOUND_STRING( + "Its cellular composition is closer to\n" + "that of a plant than an animal. It uses\n" + "photosynthesis to produce its energy\n" + "supply without eating food."), + .pokemonScale = 305, + .pokemonOffset = 8, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Leafeon, 56, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Leafeon, + .frontAnimId = ANIM_SHRINK_GROW, + BACK_PIC(Leafeon, 48, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(Leafeon), + ICON(Leafeon, 1), + .footprint = gMonFootprint_Leafeon, + LEARNSETS(Leafeon), }, - [SPECIES_ZIGZAGOON] = + [SPECIES_GLACEON] = { - .baseHP = 38, - .baseAttack = 30, - .baseDefense = 41, + .baseHP = 65, + .baseAttack = 60, + .baseDefense = 110, + .baseSpeed = 65, + .baseSpAttack = 130, + .baseSpDefense = 95, + .types = { TYPE_ICE, TYPE_ICE}, + .catchRate = 45, + .expYield = 184, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 35, + .friendship = 35, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_SNOW_CLOAK, ABILITY_SNOW_CLOAK, ABILITY_ICE_BODY}, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + .speciesName = _("Glaceon"), + .cryId = CRY_GLACEON, + .natDexNum = NATIONAL_DEX_GLACEON, + .categoryName = _("Fresh Snow"), + .height = 8, + .weight = 259, + .description = COMPOUND_STRING( + "It can control its body temperature\n" + "at will. This enables it to freeze the\n" + "moisture in the atmosphere, creating\n" + "flurries of diamond dust."), + .pokemonScale = 366, + .pokemonOffset = 10, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Glaceon, 64, 56), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Glaceon, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Glaceon, 56, 64), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(Glaceon), + ICON(Glaceon, 0), + .footprint = gMonFootprint_Glaceon, + LEARNSETS(Glaceon), + }, +#endif //P_GEN_4_CROSS_EVOS + +#if P_GEN_6_CROSS_EVOS + [SPECIES_SYLVEON] = + { + .baseHP = 95, + .baseAttack = 65, + .baseDefense = 65, .baseSpeed = 60, - .baseSpAttack = 30, - .baseSpDefense = 41, - .types = { TYPE_NORMAL, TYPE_NORMAL }, - .catchRate = 255, - .expYield = 56, - .evYield_Speed = 1, - .itemCommon = ITEM_POTION, - .itemRare = ITEM_REVIVE, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .baseSpAttack = 110, + .baseSpDefense = 130, + .types = { TYPE_FAIRY, TYPE_FAIRY}, + .catchRate = 45, + .expYield = 184, + .evYield_SpDefense = 2, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 35, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_PICKUP, ABILITY_GLUTTONY, ABILITY_QUICK_FEET}, - .bodyColor = BODY_COLOR_BROWN, + .abilities = {ABILITY_CUTE_CHARM, ABILITY_CUTE_CHARM, ABILITY_PIXILATE}, + .bodyColor = BODY_COLOR_PINK, + .noFlip = TRUE, + .speciesName = _("Sylveon"), + .cryId = CRY_SYLVEON, + .natDexNum = NATIONAL_DEX_SYLVEON, + .categoryName = _("Intertwine"), + .height = 10, + .weight = 235, + .description = COMPOUND_STRING( + "Its ribbonlike feelers give off an aura\n" + "that weakens hostility in its prey, causing\n" + "them to let down their guard. A moment\n" + "later, it pounces."), + .pokemonScale = 305, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Sylveon, 48, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Sylveon, + .frontAnimId = ANIM_SHRINK_GROW, + BACK_PIC(Sylveon, 64, 64), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(Sylveon), + ICON(Sylveon, 0), + .footprint = gMonFootprint_Sylveon, + LEARNSETS(Sylveon), + }, +#endif //P_GEN_6_CROSS_EVOS +#endif //P_FAMILY_EEVEE + +#if P_FAMILY_PORYGON + [SPECIES_PORYGON] = + { + .baseHP = 65, + .baseAttack = 60, + .baseDefense = 70, + .baseSpeed = 40, + .baseSpAttack = 85, + .baseSpDefense = 75, + .types = { TYPE_NORMAL, TYPE_NORMAL }, + .catchRate = 45, + .expYield = 79, + .evYield_SpAttack = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_TRACE, ABILITY_DOWNLOAD, ABILITY_ANALYTIC}, + .bodyColor = BODY_COLOR_PINK, .noFlip = FALSE, - }, - - [SPECIES_LINOONE] = + .speciesName = _("Porygon"), + .cryId = CRY_PORYGON, + .natDexNum = NATIONAL_DEX_PORYGON, + .categoryName = _("Virtual"), + .height = 8, + .weight = 365, + .description = COMPOUND_STRING( + "It is capable of reverting itself entirely\n" + "back to program data in order to enter\n" + "cyberspace. A Porygon is copy-\n" + "protected so it cannot be duplicated."), + .pokemonScale = 328, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Porygon, 40, 40), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Porygon, + .frontAnimId = ANIM_V_JUMPS_SMALL, + BACK_PIC(Porygon, 56, 40), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_H_VIBRATE, + PALETTE(Porygon), + ICON(Porygon, 0), + .footprint = gMonFootprint_Porygon, + LEARNSETS(Porygon), + .evolutions = EVOLUTION({EVO_TRADE_ITEM, ITEM_UPGRADE, SPECIES_PORYGON2}, + {EVO_ITEM, ITEM_UPGRADE, SPECIES_PORYGON2}), + }, + +#if P_GEN_2_CROSS_EVOS + [SPECIES_PORYGON2] = { - .baseHP = 78, - .baseAttack = 70, - .baseDefense = 61, - .baseSpeed = 100, - .baseSpAttack = 50, - .baseSpDefense = 61, + .baseHP = 85, + .baseAttack = 80, + .baseDefense = 90, + .baseSpeed = 60, + .baseSpAttack = 105, + .baseSpDefense = 95, .types = { TYPE_NORMAL, TYPE_NORMAL }, - .catchRate = 90, - .expYield = 147, - .evYield_Speed = 2, - .itemCommon = ITEM_POTION, - .itemRare = ITEM_MAX_REVIVE, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .catchRate = 45, + .expYield = 180, + .evYield_SpAttack = 2, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_PICKUP, ABILITY_GLUTTONY, ABILITY_QUICK_FEET}, - .bodyColor = BODY_COLOR_WHITE, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_TRACE, ABILITY_DOWNLOAD, ABILITY_ANALYTIC}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, - }, - - [SPECIES_WURMPLE] = + .speciesName = _("Porygon2"), + .cryId = CRY_PORYGON2, + .natDexNum = NATIONAL_DEX_PORYGON2, + .categoryName = _("Virtual"), + .height = 6, + .weight = 325, + .description = COMPOUND_STRING( + "It was created by humans using the power\n" + "of science. It has been given artificial\n" + "intelligence that enables it to learn new\n" + "gestures and emotions on its own."), + .pokemonScale = 320, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Porygon2, 40, 40), + .frontPicYOffset = 15, + .frontAnimFrames = sAnims_Porygon2, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 9, + BACK_PIC(Porygon2, 56, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_H_VIBRATE, + PALETTE(Porygon2), + ICON(Porygon2, 0), + .footprint = gMonFootprint_Porygon2, + LEARNSETS(Porygon2), + .evolutions = EVOLUTION({EVO_TRADE_ITEM, ITEM_DUBIOUS_DISC, SPECIES_PORYGON_Z}, + {EVO_ITEM, ITEM_DUBIOUS_DISC, SPECIES_PORYGON_Z}), + }, + +#if P_GEN_4_CROSS_EVOS + [SPECIES_PORYGON_Z] = { - .baseHP = 45, - .baseAttack = 45, - .baseDefense = 35, - .baseSpeed = 20, - .baseSpAttack = 20, - .baseSpDefense = 30, - .types = { TYPE_BUG, TYPE_BUG }, - .catchRate = 255, - .expYield = 56, - .evYield_HP = 1, - .itemCommon = ITEM_PECHA_BERRY, - .itemRare = ITEM_BRIGHT_POWDER, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .baseHP = 85, + .baseAttack = 80, + .baseDefense = 70, + .baseSpeed = 90, + .baseSpAttack = 135, + .baseSpDefense = 75, + .types = { TYPE_NORMAL, TYPE_NORMAL}, + .catchRate = 30, + .expYield = 241, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SHIELD_DUST, ABILITY_NONE, ABILITY_RUN_AWAY}, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_ADAPTABILITY, ABILITY_DOWNLOAD, ABILITY_ANALYTIC}, .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, - }, - - [SPECIES_SILCOON] = + .speciesName = _("Porygon-Z"), + .cryId = CRY_PORYGON_Z, + .natDexNum = NATIONAL_DEX_PORYGON_Z, + .categoryName = _("Virtual"), + .height = 9, + .weight = 340, + .description = COMPOUND_STRING( + "In order to create a more advanced\n" + "Pokémon, an additional program was\n" + "installed, but apparently it contained a\n" + "defect that made it move oddly."), + .pokemonScale = 338, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(PorygonZ, 40, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_PORYGON_Z, + .frontAnimId = ANIM_CIRCLE_C_CLOCKWISE_SLOW, + .enemyMonElevation = 12, + BACK_PIC(PorygonZ, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_H_VIBRATE, + PALETTE(PorygonZ), + ICON(PorygonZ, 0), + .footprint = gMonFootprint_PorygonZ, + LEARNSETS(PorygonZ), + }, +#endif //P_GEN_4_CROSS_EVOS +#endif //P_GEN_2_CROSS_EVOS +#endif //P_FAMILY_PORYGON + +#if P_FAMILY_OMANYTE + [SPECIES_OMANYTE] = { - .baseHP = 50, - .baseAttack = 35, - .baseDefense = 55, - .baseSpeed = 15, - .baseSpAttack = 25, - .baseSpDefense = 25, - .types = { TYPE_BUG, TYPE_BUG }, - .catchRate = 120, - .expYield = 72, - .evYield_Defense = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .baseHP = 35, + .baseAttack = 40, + .baseDefense = 100, + .baseSpeed = 35, + .baseSpAttack = 90, + .baseSpDefense = 55, + .types = { TYPE_ROCK, TYPE_WATER }, + .catchRate = 45, + .expYield = 71, + .evYield_Defense = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, - .abilities = {ABILITY_SHED_SKIN, ABILITY_NONE}, - .bodyColor = BODY_COLOR_WHITE, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3}, + .abilities = {ABILITY_SWIFT_SWIM, ABILITY_SHELL_ARMOR, ABILITY_WEAK_ARMOR}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Omanyte"), + .cryId = CRY_OMANYTE, + .natDexNum = NATIONAL_DEX_OMANYTE, + .categoryName = _("Spiral"), + .height = 4, + .weight = 75, + .description = COMPOUND_STRING( + "One of the ancient and long-since-extinct\n" + "Pokémon that have been regenerated\n" + "from fossils by humans. If attacked,\n" + "it withdraws into its hard shell."), + .pokemonScale = 521, + .pokemonOffset = 22, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Omanyte, 40, 40), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Omanyte, + .frontAnimId = ANIM_V_SLIDE_WOBBLE_SMALL, + BACK_PIC(Omanyte, 48, 40), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Omanyte), + ICON(Omanyte, 0), + .footprint = gMonFootprint_Omanyte, + LEARNSETS(Omanyte), + .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_OMASTAR}), }, - [SPECIES_BEAUTIFLY] = + [SPECIES_OMASTAR] = { - .baseHP = 60, - .baseAttack = 70, - .baseDefense = 50, - .baseSpeed = 65, - .baseSpDefense = 50, - #if P_UPDATED_STATS >= GEN_6 - .baseSpAttack = 100, - #else - .baseSpAttack = 90, - #endif - .types = { TYPE_BUG, TYPE_FLYING}, + .baseHP = 70, + .baseAttack = 60, + .baseDefense = 125, + .baseSpeed = 55, + .baseSpAttack = 115, + .baseSpDefense = 70, + .types = { TYPE_ROCK, TYPE_WATER }, .catchRate = 45, - .expYield = 178, - .evYield_SpAttack = 3, - .itemRare = ITEM_SHED_SHELL, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .expYield = 173, + .evYield_Defense = 2, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SWARM, ABILITY_NONE, ABILITY_RIVALRY}, - .bodyColor = BODY_COLOR_YELLOW, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3}, + .abilities = {ABILITY_SWIFT_SWIM, ABILITY_SHELL_ARMOR, ABILITY_WEAK_ARMOR}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - }, - - [SPECIES_CASCOON] = + .speciesName = _("Omastar"), + .cryId = CRY_OMASTAR, + .natDexNum = NATIONAL_DEX_OMASTAR, + .categoryName = _("Spiral"), + .height = 10, + .weight = 350, + .description = COMPOUND_STRING( + "An Omastar uses its tentacles to capture\n" + "its prey. It is believed to have become\n" + "extinct because its shell grew too large,\n" + "making its movements slow and ponderous."), + .pokemonScale = 307, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Omastar, 64, 56), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Omastar, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Omastar, 56, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Omastar), + ICON(Omastar, 0), + .footprint = gMonFootprint_Omastar, + LEARNSETS(Omastar), + }, +#endif //P_FAMILY_OMANYTE + +#if P_FAMILY_KABUTO + [SPECIES_KABUTO] = { - .baseHP = 50, - .baseAttack = 35, - .baseDefense = 55, - .baseSpeed = 15, - .baseSpAttack = 25, - .baseSpDefense = 25, - .types = { TYPE_BUG, TYPE_BUG }, - .catchRate = 120, - .expYield = 72, - .evYield_Defense = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .baseHP = 30, + .baseAttack = 80, + .baseDefense = 90, + .baseSpeed = 55, + .baseSpAttack = 55, + .baseSpDefense = 45, + .types = { TYPE_ROCK, TYPE_WATER }, + .catchRate = 45, + .expYield = 71, + .evYield_Defense = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, - .abilities = {ABILITY_SHED_SKIN, ABILITY_NONE}, - .bodyColor = BODY_COLOR_PURPLE, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3}, + .abilities = {ABILITY_SWIFT_SWIM, ABILITY_BATTLE_ARMOR, ABILITY_WEAK_ARMOR}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .speciesName = _("Kabuto"), + .cryId = CRY_KABUTO, + .natDexNum = NATIONAL_DEX_KABUTO, + .categoryName = _("Shellfish"), + .height = 5, + .weight = 115, + .description = COMPOUND_STRING( + "It is a Pokémon that has been regenerated\n" + "from a fossil. However, in rare cases, living\n" + "examples have been discovered. Kabuto\n" + "have not changed for 300 million years."), + .pokemonScale = 454, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Kabuto, 40, 32), + .frontPicYOffset = 16, + .frontAnimFrames = sAnims_Kabuto, + .frontAnimId = ANIM_H_SLIDE_WOBBLE, + BACK_PIC(Kabuto, 48, 40), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Kabuto), + ICON(Kabuto, 2), + .footprint = gMonFootprint_Kabuto, + LEARNSETS(Kabuto), + .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_KABUTOPS}), }, - [SPECIES_DUSTOX] = + [SPECIES_KABUTOPS] = { .baseHP = 60, - .baseAttack = 50, - .baseDefense = 70, - .baseSpeed = 65, - .baseSpAttack = 50, - .baseSpDefense = 90, - .types = { TYPE_BUG, TYPE_POISON }, + .baseAttack = 115, + .baseDefense = 105, + .baseSpeed = 80, + .baseSpAttack = 65, + .baseSpDefense = 70, + .types = { TYPE_ROCK, TYPE_WATER }, .catchRate = 45, .expYield = 173, - .evYield_SpDefense = 3, - .itemRare = ITEM_SHED_SHELL, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SHIELD_DUST, ABILITY_NONE, ABILITY_COMPOUND_EYES}, - .bodyColor = BODY_COLOR_GREEN, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3}, + .abilities = {ABILITY_SWIFT_SWIM, ABILITY_BATTLE_ARMOR, ABILITY_WEAK_ARMOR}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - }, + .speciesName = _("Kabutops"), + .cryId = CRY_KABUTOPS, + .natDexNum = NATIONAL_DEX_KABUTOPS, + .categoryName = _("Shellfish"), + .height = 13, + .weight = 405, + .description = COMPOUND_STRING( + "Kabutops once swam underwater to hunt \n" + "for prey. It was apparently evolving from\n" + "being a water dweller to living on land as\n" + "evident from changes in its gills and legs."), + .pokemonScale = 271, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Kabutops, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Kabutops, + .frontAnimId = ANIM_H_SHAKE, + BACK_PIC(Kabutops, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Kabutops), + ICON(Kabutops, 2), + .footprint = gMonFootprint_Kabutops, + LEARNSETS(Kabutops), + }, +#endif //P_FAMILY_KABUTO + +#if P_FAMILY_AERODACTYL +#define AERODACTYL_MISC_INFO \ + .types = { TYPE_ROCK, TYPE_FLYING}, \ + .catchRate = 45, \ + .evYield_Speed = 2, \ + .genderRatio = PERCENT_FEMALE(12.5), \ + .eggCycles = 35, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, \ + .bodyColor = BODY_COLOR_PURPLE, \ + .noFlip = FALSE, \ + .speciesName = _("Aerodactyl"), \ + .natDexNum = NATIONAL_DEX_AERODACTYL, \ + .categoryName = _("Fossil"), \ + .footprint = gMonFootprint_Aerodactyl, \ + LEARNSETS(Aerodactyl), \ + .formSpeciesIdTable = sAerodactylFormSpeciesIdTable,\ + .formChangeTable = sAerodactylFormChangeTable - [SPECIES_LOTAD] = + [SPECIES_AERODACTYL] = { - .baseHP = 40, - .baseAttack = 30, - .baseDefense = 30, - .baseSpeed = 30, + AERODACTYL_MISC_INFO, + .baseHP = 80, + .baseAttack = 105, + .baseDefense = 65, + .baseSpeed = 130, + .baseSpAttack = 60, + .baseSpDefense = 75, + .expYield = 180, + .abilities = {ABILITY_ROCK_HEAD, ABILITY_PRESSURE, ABILITY_UNNERVE}, + .cryId = CRY_AERODACTYL, + .height = 18, + .weight = 590, + .description = COMPOUND_STRING( + "Aerodactyl is a Pokémon from the age\n" + "of dinosaurs. It was regenerated from DNA\n" + "extracted from amber. It is imagined to\n" + "have been the king of the skies."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 302, + .trainerOffset = 4, + FRONT_PIC(Aerodactyl, 64, 64), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Aerodactyl, + .frontAnimId = ANIM_V_SLIDE_SLOW, + .enemyMonElevation = 9, + BACK_PIC(Aerodactyl, 64, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Aerodactyl), + ICON(Aerodactyl, 2), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_AERODACTYL_MEGA] = + { + AERODACTYL_MISC_INFO, + .baseHP = 80, + .baseAttack = 135, + .baseDefense = 85, + .baseSpeed = 150, + .baseSpAttack = 70, + .baseSpDefense = 95, + .expYield = 215, + .abilities = {ABILITY_TOUGH_CLAWS, ABILITY_TOUGH_CLAWS, ABILITY_TOUGH_CLAWS}, + .cryId = CRY_AERODACTYL_MEGA, + .height = 21, + .weight = 790, + .description = COMPOUND_STRING( + "The power of Mega Evolution has\n" + "completely restored its genes. The rocks\n" + "on its body are harder than diamond."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 302, + .trainerOffset = 4, + FRONT_PIC(AerodactylMega, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_AerodactylMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 7, + BACK_PIC(AerodactylMega, 64, 64), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(AerodactylMega), + ICON(AerodactylMega, 2), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_AERODACTYL + +#if P_FAMILY_SNORLAX +#if P_GEN_4_CROSS_EVOS + [SPECIES_MUNCHLAX] = + { + .baseHP = 135, + .baseAttack = 85, + .baseDefense = 40, + .baseSpeed = 5, .baseSpAttack = 40, - .baseSpDefense = 50, - .types = { TYPE_WATER, TYPE_GRASS }, - .catchRate = 255, - .expYield = 44, - .evYield_SpDefense = 1, - .itemRare = ITEM_MENTAL_HERB, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .baseSpDefense = 85, + .types = { TYPE_NORMAL, TYPE_NORMAL}, + .catchRate = 50, + .expYield = 78, + .evYield_HP = 1, + .itemCommon = ITEM_LEFTOVERS, + .itemRare = ITEM_LEFTOVERS, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_GRASS}, - .abilities = {ABILITY_SWIFT_SWIM, ABILITY_RAIN_DISH, ABILITY_OWN_TEMPO}, - .bodyColor = BODY_COLOR_GREEN, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_PICKUP, ABILITY_THICK_FAT, ABILITY_GLUTTONY}, + .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, - }, + .speciesName = _("Munchlax"), + .cryId = CRY_MUNCHLAX, + .natDexNum = NATIONAL_DEX_MUNCHLAX, + .categoryName = _("Big Eater"), + .height = 6, + .weight = 1050, + .description = COMPOUND_STRING( + "When it finds something that looks like\n" + "it might be edible, it goes right ahead\n" + "and swallows it whole. That's why it gets\n" + "fatter day by day."), + .pokemonScale = 422, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Munchlax, 48, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Munchlax, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + BACK_PIC(Munchlax, 48, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_GROW, + PALETTE(Munchlax), + ICON(Munchlax, 3), + .footprint = gMonFootprint_Munchlax, + LEARNSETS(Munchlax), + .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_SNORLAX}), + }, +#endif //P_GEN_4_CROSS_EVOS - [SPECIES_LOMBRE] = +#define SNORLAX_MISC_INFO \ + .baseHP = 160, \ + .baseAttack = 110, \ + .baseDefense = 65, \ + .baseSpeed = 30, \ + .baseSpAttack = 65, \ + .baseSpDefense = 110, \ + .types = {TYPE_NORMAL, TYPE_NORMAL}, \ + .catchRate = 25, \ + .expYield = 189, \ + .evYield_HP = 2, \ + .itemCommon = ITEM_LEFTOVERS, \ + .itemRare = ITEM_LEFTOVERS, \ + .genderRatio = PERCENT_FEMALE(12.5), \ + .eggCycles = 40, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, \ + .abilities = {ABILITY_IMMUNITY, ABILITY_THICK_FAT, ABILITY_GLUTTONY}, \ + .bodyColor = BODY_COLOR_BLACK, \ + .noFlip = FALSE, \ + .speciesName = _("Snorlax"), \ + .cryId = CRY_SNORLAX, \ + .natDexNum = NATIONAL_DEX_SNORLAX, \ + .categoryName = _("Sleeping"), \ + .footprint = gMonFootprint_Snorlax, \ + LEARNSETS(Snorlax), \ + .formSpeciesIdTable = sSnorlaxFormSpeciesIdTable, \ + .formChangeTable = sSnorlaxFormChangeTable + + [SPECIES_SNORLAX] = { - .baseHP = 60, - .baseAttack = 50, - .baseDefense = 50, - .baseSpeed = 50, - .baseSpAttack = 60, - .baseSpDefense = 70, - .types = { TYPE_WATER, TYPE_GRASS }, - .catchRate = 120, - .expYield = 119, - .evYield_SpDefense = 2, - .itemRare = ITEM_MENTAL_HERB, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_GRASS}, - .abilities = {ABILITY_SWIFT_SWIM, ABILITY_RAIN_DISH, ABILITY_OWN_TEMPO}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, + SNORLAX_MISC_INFO, + .height = 21, + .weight = 4600, + .description = COMPOUND_STRING( + "Snorlax's typical day consists of nothing\n" + "more than eating and sleeping. It is such\n" + "a docile Pokémon that there are children\n" + "who use its big belly as a place to play."), + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 423, + .trainerOffset = 11, + FRONT_PIC(Snorlax, 64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Snorlax, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Snorlax, 64, 40), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Snorlax), + ICON(Snorlax, 3), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_SNORLAX_GIGANTAMAX] = + { + SNORLAX_MISC_INFO, + .height = 350, + .weight = 0, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 423, + .trainerOffset = 11, + FRONT_PIC(SnorlaxGigantamax, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_SnorlaxGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(SnorlaxGigantamax, 64, 64), + .backPicYOffset = 5, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(SnorlaxGigantamax), + ICON(SnorlaxGigantamax, 3), + .isGigantamax = TRUE, + }, +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_SNORLAX + +#if P_FAMILY_ARTICUNO +#define ARTICUNO_MISC_INFO \ + .catchRate = 3, \ + .genderRatio = MON_GENDERLESS, \ + .friendship = 35, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED },\ + .noFlip = FALSE, \ + .speciesName = _("Articuno"), \ + .cryId = CRY_ARTICUNO, \ + .natDexNum = NATIONAL_DEX_ARTICUNO, \ + .height = 17, \ + .pokemonScale = 256, \ + .pokemonOffset = 0, \ + .trainerScale = 309, \ + .trainerOffset = 2, \ + .footprint = gMonFootprint_Articuno, \ + .formSpeciesIdTable = sArticunoFormSpeciesIdTable, \ + .isLegendary = TRUE - [SPECIES_LUDICOLO] = + [SPECIES_ARTICUNO] = + { + ARTICUNO_MISC_INFO, + .baseHP = 90, + .baseAttack = 85, + .baseDefense = 100, + .baseSpeed = 85, + .baseSpAttack = 95, + .baseSpDefense = 125, + .types = { TYPE_ICE, TYPE_FLYING }, + .expYield = 261, + .evYield_SpDefense = 3, + .eggCycles = 80, + .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_SNOW_CLOAK}, + .bodyColor = BODY_COLOR_BLUE, + .categoryName = _("Freeze"), + .weight = 554, + .description = COMPOUND_STRING( + "Articuno is a legendary bird Pokémon that\n" + "can control ice. The flapping of its wings\n" + "chills the air. As a result, it is said that\n" + "when this Pokémon flies, snow will fall."), + FRONT_PIC(Articuno, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Articuno, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Articuno, 64, 56), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, + PALETTE(Articuno), + ICON(Articuno, 2), + LEARNSETS(Articuno), + }, + +#if P_GALARIAN_FORMS + [SPECIES_ARTICUNO_GALARIAN] = + { + ARTICUNO_MISC_INFO, + .baseHP = 90, + .baseAttack = 85, + .baseDefense = 85, + .baseSpeed = 95, + .baseSpAttack = 125, + .baseSpDefense = 100, + .types = { TYPE_PSYCHIC, TYPE_FLYING}, + .expYield = 290, + .evYield_SpAttack = 3, + .eggCycles = 120, + .abilities = {ABILITY_COMPETITIVE, ABILITY_NONE, ABILITY_NONE}, + .bodyColor = BODY_COLOR_PURPLE, + .weight = 509, + .description = COMPOUND_STRING( + "It fires beams that immobilize opponents\n" + "as if they had been frozen solid.\n" + "Its feather-like blades of psychic energy\n" + "rip through thick iron sheets like paper."), + FRONT_PIC(ArticunoGalarian, 64, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_ArticunoGalarian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 10, + BACK_PIC(ArticunoGalarian, 64, 56), + .backPicYOffset = 5, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(ArticunoGalarian), + ICON(ArticunoGalarian, 2), + LEARNSETS(ArticunoGalarian), + .isGalarianForm = TRUE, + }, +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ARTICUNO + +#if P_FAMILY_ZAPDOS +#define ZAPDOS_MISC_INFO \ + .catchRate = 3, \ + .genderRatio = MON_GENDERLESS, \ + .friendship = 35, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED },\ + .bodyColor = BODY_COLOR_YELLOW, \ + .noFlip = FALSE, \ + .speciesName = _("Zapdos"), \ + .cryId = CRY_ZAPDOS, \ + .natDexNum = NATIONAL_DEX_ZAPDOS, \ + .height = 16, \ + .pokemonScale = 256, \ + .pokemonOffset = 0, \ + .trainerScale = 318, \ + .trainerOffset = 3, \ + .footprint = gMonFootprint_Zapdos, \ + .formSpeciesIdTable = sZapdosFormSpeciesIdTable, \ + .isLegendary = TRUE + + [SPECIES_ZAPDOS] = + { + ZAPDOS_MISC_INFO, + .baseHP = 90, + .baseAttack = 90, + .baseDefense = 85, + .baseSpeed = 100, + .baseSpAttack = 125, + .baseSpDefense = 90, + .types = { TYPE_ELECTRIC, TYPE_FLYING }, + .expYield = 261, + .evYield_SpAttack = 3, + .eggCycles = 80, + #if P_UPDATED_ABILITIES >= GEN_6 + .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_STATIC}, + #else + .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_LIGHTNING_ROD}, + #endif + .categoryName = _("Electric"), + .weight = 526, + .description = COMPOUND_STRING( + "Zapdos is a legendary bird Pokémon that\n" + "has the ability to control electricity.\n" + "It usually lives in thunderclouds. It gains\n" + "power if it is stricken by lightning bolts."), + FRONT_PIC(Zapdos, 64, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Zapdos, + .frontAnimId = ANIM_FLASH_YELLOW, + .enemyMonElevation = 8, + BACK_PIC(Zapdos, 64, 40), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, + PALETTE(Zapdos), + ICON(Zapdos, 0), + LEARNSETS(Zapdos), + }, + +#if P_GALARIAN_FORMS + [SPECIES_ZAPDOS_GALARIAN] = + { + ZAPDOS_MISC_INFO, + .baseHP = 90, + .baseAttack = 125, + .baseDefense = 90, + .baseSpeed = 100, + .baseSpAttack = 85, + .baseSpDefense = 90, + .types = { TYPE_FIGHTING, TYPE_FLYING}, + .expYield = 290, + .evYield_Attack = 3, + .eggCycles = 120, + .abilities = {ABILITY_DEFIANT, ABILITY_NONE, ABILITY_NONE}, + .categoryName = _("Strong Legs"), + .weight = 582, + .description = COMPOUND_STRING( + "When its feathers rub together, they\n" + "produce a crackling sound like the\n" + "zapping of electricity. Apparently, it runs\n" + "through the mountains at over 180 mph."), + FRONT_PIC(ZapdosGalarian, 48, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_ZapdosGalarian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(ZapdosGalarian, 56, 48), + .backPicYOffset = 9, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(ZapdosGalarian), + ICON(ZapdosGalarian, 0), + LEARNSETS(ZapdosGalarian), + .isGalarianForm = TRUE, + }, +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ZAPDOS + +#if P_FAMILY_MOLTRES +#define MOLTRES_MISC_INFO \ + .catchRate = 3, \ + .genderRatio = MON_GENDERLESS, \ + .friendship = 35, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED },\ + .noFlip = FALSE, \ + .speciesName = _("Moltres"), \ + .cryId = CRY_MOLTRES, \ + .natDexNum = NATIONAL_DEX_MOLTRES, \ + .height = 20, \ + .pokemonScale = 270, \ + .pokemonOffset = 0, \ + .trainerScale = 387, \ + .trainerOffset = 8, \ + .footprint = gMonFootprint_Moltres, \ + .formSpeciesIdTable = sMoltresFormSpeciesIdTable, \ + .isLegendary = TRUE + + [SPECIES_MOLTRES] = + { + MOLTRES_MISC_INFO, + .baseHP = 90, + .baseAttack = 100, + .baseDefense = 90, + .baseSpeed = 90, + .baseSpAttack = 125, + .baseSpDefense = 85, + .types = { TYPE_FIRE, TYPE_FLYING }, + .expYield = 261, + .evYield_SpAttack = 3, + .eggCycles = 80, + .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_FLAME_BODY}, + .bodyColor = BODY_COLOR_YELLOW, + .categoryName = _("Flame"), + .weight = 600, + .description = COMPOUND_STRING( + "Moltres is a legendary bird Pokémon\n" + "that can control fire. If injured, it is said\n" + "to dip its body in the molten magma of\n" + "a volcano to burn and heal itself."), + FRONT_PIC(Moltres, 64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Moltres, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + BACK_PIC(Moltres, 64, 56), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, + PALETTE(Moltres), + ICON(Moltres, 0), + LEARNSETS(Moltres), + }, + +#if P_GALARIAN_FORMS + [SPECIES_MOLTRES_GALARIAN] = { - .baseHP = 80, - .baseAttack = 70, - .baseDefense = 70, - .baseSpeed = 70, - .baseSpAttack = 90, - .baseSpDefense = 100, - .types = { TYPE_WATER, TYPE_GRASS }, - .catchRate = 45, - .expYield = 216, + MOLTRES_MISC_INFO, + .baseHP = 90, + .baseAttack = 85, + .baseDefense = 90, + .baseSpeed = 90, + .baseSpAttack = 100, + .baseSpDefense = 125, + .types = { TYPE_DARK, TYPE_FLYING}, + .expYield = 290, .evYield_SpDefense = 3, - .itemRare = ITEM_MENTAL_HERB, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_GRASS}, - .abilities = {ABILITY_SWIFT_SWIM, ABILITY_RAIN_DISH, ABILITY_OWN_TEMPO}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, - - [SPECIES_SEEDOT] = + .eggCycles = 120, + .abilities = {ABILITY_BERSERK, ABILITY_NONE, ABILITY_NONE}, + .bodyColor = BODY_COLOR_RED, + .categoryName = _("Malevolent"), + .weight = 660, + .description = COMPOUND_STRING( + "This Pokémon's sinister, flame-like aura\n" + "will consume the spirit of any creature\n" + "it hits. Victims become burned-out\n" + "shadows of themselves."), + FRONT_PIC(MoltresGalarian, 64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_MoltresGalarian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(MoltresGalarian, 56, 56), + .backPicYOffset = 5, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(MoltresGalarian), + ICON(MoltresGalarian, 0), + LEARNSETS(MoltresGalarian), + .isGalarianForm = TRUE, + }, +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_MOLTRES + +#if P_FAMILY_DRATINI + [SPECIES_DRATINI] = { - .baseHP = 40, - .baseAttack = 40, - .baseDefense = 50, - .baseSpeed = 30, - .baseSpAttack = 30, - .baseSpDefense = 30, - .types = { TYPE_GRASS, TYPE_GRASS }, - .catchRate = 255, - .expYield = 44, - .evYield_Defense = 1, - .itemRare = ITEM_POWER_HERB, + .baseHP = 41, + .baseAttack = 64, + .baseDefense = 45, + .baseSpeed = 50, + .baseSpAttack = 50, + .baseSpDefense = 50, + .types = { TYPE_DRAGON, TYPE_DRAGON }, + .catchRate = 45, + .expYield = 60, + .evYield_Attack = 1, + .itemRare = ITEM_DRAGON_SCALE, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS}, - .abilities = {ABILITY_CHLOROPHYLL, ABILITY_EARLY_BIRD, ABILITY_PICKPOCKET}, - .bodyColor = BODY_COLOR_BROWN, + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_MARVEL_SCALE}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Dratini"), + .cryId = CRY_DRATINI, + .natDexNum = NATIONAL_DEX_DRATINI, + .categoryName = _("Dragon"), + .height = 18, + .weight = 33, + .description = COMPOUND_STRING( + "A Dratini continually molts and sloughs\n" + "off its old skin. It does so because the\n" + "life energy within its body steadily builds\n" + "to reach uncontrollable levels."), + .pokemonScale = 256, + .pokemonOffset = 8, + .trainerScale = 386, + .trainerOffset = 6, + FRONT_PIC(Dratini, 56, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Dratini, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Dratini, 56, 48), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Dratini), + ICON(Dratini, 0), + .footprint = gMonFootprint_Dratini, + LEARNSETS(Dratini), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_DRAGONAIR}), }, - [SPECIES_NUZLEAF] = + [SPECIES_DRAGONAIR] = { - .baseHP = 70, - .baseAttack = 70, - .baseDefense = 40, - .baseSpeed = 60, - .baseSpAttack = 60, - .baseSpDefense = 40, - .types = { TYPE_GRASS, TYPE_DARK }, - .catchRate = 120, - .expYield = 119, + .baseHP = 61, + .baseAttack = 84, + .baseDefense = 65, + .baseSpeed = 70, + .baseSpAttack = 70, + .baseSpDefense = 70, + .types = { TYPE_DRAGON, TYPE_DRAGON }, + .catchRate = 45, + .expYield = 147, .evYield_Attack = 2, - .itemRare = ITEM_POWER_HERB, + .itemRare = ITEM_DRAGON_SCALE, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS}, - .abilities = {ABILITY_CHLOROPHYLL, ABILITY_EARLY_BIRD, ABILITY_PICKPOCKET}, - .bodyColor = BODY_COLOR_BROWN, + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_MARVEL_SCALE}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Dragonair"), + .cryId = CRY_DRAGONAIR, + .natDexNum = NATIONAL_DEX_DRAGONAIR, + .categoryName = _("Dragon"), + .height = 40, + .weight = 165, + .description = COMPOUND_STRING( + "A Dragonair stores an enormous amount of\n" + "energy inside its body. It is said to alter\n" + "the weather around it by loosing energy\n" + "from the crystals on its neck and tail."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 411, + .trainerOffset = 5, + FRONT_PIC(Dragonair, 64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Dragonair, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Dragonair, 40, 56), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(Dragonair), + ICON(Dragonair, 0), + .footprint = gMonFootprint_Dragonair, + LEARNSETS(Dragonair), + .evolutions = EVOLUTION({EVO_LEVEL, 55, SPECIES_DRAGONITE}), }, - [SPECIES_SHIFTRY] = + [SPECIES_DRAGONITE] = { - .baseHP = 90, - .baseAttack = 100, - .baseDefense = 60, + .baseHP = 91, + .baseAttack = 134, + .baseDefense = 95, .baseSpeed = 80, - .baseSpAttack = 90, - .baseSpDefense = 60, - .types = { TYPE_GRASS, TYPE_DARK }, + .baseSpAttack = 100, + .baseSpDefense = 100, + .types = { TYPE_DRAGON, TYPE_FLYING }, .catchRate = 45, - .expYield = 216, + .expYield = 270, .evYield_Attack = 3, - .itemRare = ITEM_POWER_HERB, + .itemRare = ITEM_DRAGON_SCALE, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS}, - #if P_UPDATED_ABILITIES >= GEN_9 - .abilities = {ABILITY_CHLOROPHYLL, ABILITY_WIND_RIDER, ABILITY_PICKPOCKET}, - #else - .abilities = {ABILITY_CHLOROPHYLL, ABILITY_EARLY_BIRD, ABILITY_PICKPOCKET}, - #endif + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_INNER_FOCUS, ABILITY_NONE, ABILITY_MULTISCALE}, .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - }, + .speciesName = _("Dragonite"), + .cryId = CRY_DRAGONITE, + .natDexNum = NATIONAL_DEX_DRAGONITE, + .categoryName = _("Dragon"), + .height = 22, + .weight = 2100, + .description = COMPOUND_STRING( + "It can circle the globe in just 16 hours.\n" + "It is a kindhearted Pokémon that leads\n" + "lost and foundering ships in a storm\n" + "to the safety of land."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 309, + .trainerOffset = 4, + FRONT_PIC(Dragonite, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Dragonite, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(Dragonite, 64, 64), + .backPicYOffset = 1, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Dragonite), + ICON(Dragonite, 2), + .footprint = gMonFootprint_Dragonite, + LEARNSETS(Dragonite), + }, +#endif //P_FAMILY_DRATINI + +#if P_FAMILY_MEWTWO +#define SPECIES_MEWTWO_MISC_INFO \ + .catchRate = 3, \ + .evYield_SpAttack = 3, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ + .bodyColor = BODY_COLOR_PURPLE, \ + .noFlip = FALSE, \ + .speciesName = _("Mewtwo"), \ + .natDexNum = NATIONAL_DEX_MEWTWO, \ + .categoryName = _("Genetic"), \ + .footprint = gMonFootprint_Mewtwo, \ + LEARNSETS(Mewtwo), \ + .formSpeciesIdTable = sMewtwoFormSpeciesIdTable, \ + .formChangeTable = sMewtwoFormChangeTable, \ + .isLegendary = TRUE - [SPECIES_TAILLOW] = + [SPECIES_MEWTWO] = { - .baseHP = 40, - .baseAttack = 55, - .baseDefense = 30, - .baseSpeed = 85, - .baseSpAttack = 30, - .baseSpDefense = 30, - .types = { TYPE_NORMAL, TYPE_FLYING }, - .catchRate = 200, - .expYield = 54, - .evYield_Speed = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_GUTS, ABILITY_NONE, ABILITY_SCRAPPY}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, + SPECIES_MEWTWO_MISC_INFO, + .baseHP = 106, + .baseAttack = 110, + .baseDefense = 90, + .baseSpeed = 130, + .baseSpAttack = 154, + .baseSpDefense = 90, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .expYield = 306, + .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_UNNERVE}, + .cryId = CRY_MEWTWO, + .height = 20, + .weight = 1220, + .description = COMPOUND_STRING( + "A Pokémon that was created by genetic\n" + "manipulation. However, even though the\n" + "scientific power of humans made its body,\n" + "they failed to give it a warm heart."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 309, + .trainerOffset = 4, + FRONT_PIC(Mewtwo, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Mewtwo, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Mewtwo, 64, 64), + .backPicYOffset = 1, + .backAnimId = BACK_ANIM_GROW_STUTTER, + PALETTE(Mewtwo), + ICON(Mewtwo, 2), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_MEWTWO_MEGA_X] = + { + SPECIES_MEWTWO_MISC_INFO, + .baseHP = 106, + .baseAttack = 190, + .baseDefense = 100, + .baseSpeed = 130, + .baseSpAttack = 154, + .baseSpDefense = 100, + .types = { TYPE_PSYCHIC, TYPE_FIGHTING}, + .expYield = 351, + .abilities = {ABILITY_STEADFAST, ABILITY_STEADFAST, ABILITY_STEADFAST}, + .isMegaEvolution = TRUE, + .cryId = CRY_MEWTWO_MEGA_X, + .height = 23, + .weight = 1270, + .description = COMPOUND_STRING( + "Psychic power has augmented its muscles.\n" + "It has a grip strength of one ton and can\n" + "sprint a hundred meters in two seconds\n" + "flat!"), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 309, + .trainerOffset = 4, + FRONT_PIC(MewtwoMegaX, 48, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_MewtwoMegaX, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(MewtwoMegaX, 56, 64), + .backPicYOffset = 1, + .backAnimId = BACK_ANIM_GROW_STUTTER, + PALETTE(MewtwoMegaX), + ICON(MewtwoMegaX, 2), }, - [SPECIES_SWELLOW] = + [SPECIES_MEWTWO_MEGA_Y] = { - .baseHP = 60, - .baseAttack = 85, - .baseDefense = 60, - .baseSpeed = 125, - .baseSpDefense = 50, - #if P_UPDATED_STATS >= GEN_7 - .baseSpAttack = 75, - #else - .baseSpAttack = 50, - #endif - .types = { TYPE_NORMAL, TYPE_FLYING}, + SPECIES_MEWTWO_MISC_INFO, + .baseHP = 106, + .baseAttack = 150, + .baseDefense = 70, + .baseSpeed = 140, + .baseSpAttack = 194, + .baseSpDefense = 120, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, + .expYield = 351, + .abilities = {ABILITY_INSOMNIA, ABILITY_INSOMNIA, ABILITY_INSOMNIA}, + .isMegaEvolution = TRUE, + .cryId = CRY_MEWTWO_MEGA_Y, + .height = 15, + .weight = 330, + .description = COMPOUND_STRING( + "Despite its diminished size, its mental\n" + "power has grown phenomenally. With a mere\n" + "thought, it can smash a skyscraper to\n" + "smithereens."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 309, + .trainerOffset = 4, + FRONT_PIC(MewtwoMegaY, 40, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_MewtwoMegaY, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 3, + BACK_PIC(MewtwoMegaY, 64, 64), + .backPicYOffset = 2, + .backAnimId = BACK_ANIM_GROW_STUTTER, + PALETTE(MewtwoMegaY), + ICON(MewtwoMegaY, 2), + }, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_MEWTWO + +#if P_FAMILY_MEW + [SPECIES_MEW] = + { + .baseHP = 100, + .baseAttack = 100, + .baseDefense = 100, + .baseSpeed = 100, + .baseSpAttack = 100, + .baseSpDefense = 100, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, .catchRate = 45, - .expYield = 159, - .evYield_Speed = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, + .expYield = 270, + .evYield_HP = 3, + .itemCommon = ITEM_LUM_BERRY, + .itemRare = ITEM_LUM_BERRY, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 100, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_GUTS, ABILITY_NONE, ABILITY_SCRAPPY}, - .bodyColor = BODY_COLOR_BLUE, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .abilities = {ABILITY_SYNCHRONIZE, ABILITY_NONE}, + .bodyColor = BODY_COLOR_PINK, .noFlip = FALSE, - }, - - [SPECIES_WINGULL] = + .isMythical = TRUE, + .speciesName = _("Mew"), + .cryId = CRY_MEW, + .natDexNum = NATIONAL_DEX_MEW, + .categoryName = _("New Species"), + .height = 4, + .weight = 40, + .description = COMPOUND_STRING( + "A Mew is said to possess the genes of all\n" + "Pokémon. It is capable of making itself\n" + "invisible at will, so it entirely avoids\n" + "notice even if it approaches people."), + .pokemonScale = 457, + .pokemonOffset = -2, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Mew, 64, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Mew, + .frontAnimId = ANIM_ZIGZAG_SLOW, + .enemyMonElevation = 11, + BACK_PIC(Mew, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Mew), + ICON(Mew, 0), + .footprint = gMonFootprint_Mew, + LEARNSETS(Mew), + }, +#endif //P_FAMILY_MEW + +#if P_FAMILY_CHIKORITA + [SPECIES_CHIKORITA] = { - .baseHP = 40, - .baseAttack = 30, - .baseDefense = 30, - .baseSpeed = 85, - .baseSpAttack = 55, - .baseSpDefense = 30, - .types = { TYPE_WATER, TYPE_FLYING}, - .catchRate = 190, - .expYield = 54, - .evYield_Speed = 1, - .itemCommon = ITEM_PRETTY_FEATHER, - .genderRatio = PERCENT_FEMALE(50), + .baseHP = 45, + .baseAttack = 49, + .baseDefense = 65, + .baseSpeed = 45, + .baseSpAttack = 49, + .baseSpDefense = 65, + .types = { TYPE_GRASS, TYPE_GRASS }, + .catchRate = 45, + .expYield = 64, + .evYield_SpDefense = 1, + .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FLYING}, - .abilities = {ABILITY_KEEN_EYE, ABILITY_HYDRATION, ABILITY_RAIN_DISH}, - .bodyColor = BODY_COLOR_WHITE, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS}, + .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_LEAF_GUARD}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, + .speciesName = _("Chikorita"), + .cryId = CRY_CHIKORITA, + .natDexNum = NATIONAL_DEX_CHIKORITA, + .categoryName = _("Leaf"), + .height = 9, + .weight = 64, + .description = COMPOUND_STRING( + "It waves its leaf around to keep foes\n" + "at bay. However, a sweet fragrance also\n" + "wafts from the leaf, creating a friendly\n" + "atmosphere that becalms the battlers."), + .pokemonScale = 512, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Chikorita, 48, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Chikorita, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Chikorita, 56, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Chikorita), + ICON(Chikorita, 1), + .footprint = gMonFootprint_Chikorita, + LEARNSETS(Chikorita), + .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_BAYLEEF}), }, - [SPECIES_PELIPPER] = + [SPECIES_BAYLEEF] = { .baseHP = 60, - .baseAttack = 50, - .baseDefense = 100, - .baseSpeed = 65, - .baseSpDefense = 70, - #if P_UPDATED_STATS >= GEN_7 - .baseSpAttack = 95, - #else - .baseSpAttack = 85, - #endif - .types = { TYPE_WATER, TYPE_FLYING}, + .baseAttack = 62, + .baseDefense = 80, + .baseSpeed = 60, + .baseSpAttack = 63, + .baseSpDefense = 80, + .types = { TYPE_GRASS, TYPE_GRASS }, .catchRate = 45, - .expYield = 154, - .evYield_Defense = 2, - .itemCommon = ITEM_PRETTY_FEATHER, - .genderRatio = PERCENT_FEMALE(50), + .expYield = 142, + .evYield_Defense = 1, + .evYield_SpDefense = 1, + .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FLYING}, - .abilities = {ABILITY_KEEN_EYE, ABILITY_DRIZZLE, ABILITY_RAIN_DISH}, - .bodyColor = BODY_COLOR_YELLOW, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS}, + .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_LEAF_GUARD}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, + .speciesName = _("Bayleef"), + .cryId = CRY_BAYLEEF, + .natDexNum = NATIONAL_DEX_BAYLEEF, + .categoryName = _("Leaf"), + .height = 12, + .weight = 158, + .description = COMPOUND_STRING( + "A Bayleef's neck is ringed by curled-up\n" + "leaves. Inside each leaf is a small tree\n" + "shoot. The fragrance of this shoot\n" + "makes people peppy."), + .pokemonScale = 296, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Bayleef, 48, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_Bayleef, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Bayleef, 64, 56), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Bayleef), + ICON(Bayleef, 1), + .footprint = gMonFootprint_Bayleef, + LEARNSETS(Bayleef), + .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_MEGANIUM}), }, - [SPECIES_RALTS] = + [SPECIES_MEGANIUM] = { - .baseHP = 28, - .baseAttack = 25, - .baseDefense = 25, - .baseSpeed = 40, - .baseSpAttack = 45, - .baseSpDefense = 35, - #if P_UPDATED_TYPES >= GEN_6 - .types = { TYPE_PSYCHIC, TYPE_FAIRY}, - #else - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - #endif - .catchRate = 235, - .expYield = 40, - .evYield_SpAttack = 1, - .genderRatio = PERCENT_FEMALE(50), + .baseHP = 80, + .baseAttack = 82, + .baseDefense = 100, + .baseSpeed = 80, + .baseSpAttack = 83, + .baseSpDefense = 100, + .types = { TYPE_GRASS, TYPE_GRASS }, + .catchRate = 45, + .expYield = 236, + .evYield_Defense = 1, + .evYield_SpDefense = 2, + .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, - .friendship = 35, - .growthRate = GROWTH_SLOW, - #if P_UPDATED_EGG_GROUPS >= GEN_8 - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_AMORPHOUS}, - #else - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - #endif - .abilities = {ABILITY_SYNCHRONIZE, ABILITY_TRACE, ABILITY_TELEPATHY}, - .bodyColor = BODY_COLOR_WHITE, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS}, + .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_LEAF_GUARD}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - }, - - [SPECIES_KIRLIA] = + .speciesName = _("Meganium"), + .cryId = CRY_MEGANIUM, + .natDexNum = NATIONAL_DEX_MEGANIUM, + .categoryName = _("Herb"), + .height = 18, + .weight = 1005, + .description = COMPOUND_STRING( + "The fragrance of a Meganium's flower\n" + "soothes and calms emotions. In battle,\n" + "it gives off more of its becalming scent\n" + "to blunt the foe's fighting spirit."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 277, + .trainerOffset = 1, + FRONT_PIC(Meganium, 48, 64), + FRONT_PIC_FEMALE(Meganium, 48, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Meganium, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Meganium, 56, 64), + BACK_PIC_FEMALE(Meganium, 56, 64), + .backPicYOffset = 2, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Meganium), + ICON(Meganium, 1), + .footprint = gMonFootprint_Meganium, + LEARNSETS(Meganium), + }, +#endif //P_FAMILY_CHIKORITA + +#if P_FAMILY_CYNDAQUIL + [SPECIES_CYNDAQUIL] = { - .baseHP = 38, - .baseAttack = 35, - .baseDefense = 35, - .baseSpeed = 50, - .baseSpAttack = 65, - .baseSpDefense = 55, - #if P_UPDATED_TYPES >= GEN_6 - .types = { TYPE_PSYCHIC, TYPE_FAIRY}, - #else - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - #endif - .catchRate = 120, - .expYield = 97, - .evYield_SpAttack = 2, - .genderRatio = PERCENT_FEMALE(50), + .baseHP = 39, + .baseAttack = 52, + .baseDefense = 43, + .baseSpeed = 65, + .baseSpAttack = 60, + .baseSpDefense = 50, + .types = { TYPE_FIRE, TYPE_FIRE }, + .catchRate = 45, + .expYield = 62, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, - .friendship = 35, - .growthRate = GROWTH_SLOW, - #if P_UPDATED_EGG_GROUPS >= GEN_8 - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_AMORPHOUS}, - #else - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - #endif - .abilities = {ABILITY_SYNCHRONIZE, ABILITY_TRACE, ABILITY_TELEPATHY}, - .bodyColor = BODY_COLOR_WHITE, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_FLASH_FIRE}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, + .speciesName = _("Cyndaquil"), + .cryId = CRY_CYNDAQUIL, + .natDexNum = NATIONAL_DEX_CYNDAQUIL, + .categoryName = _("Fire Mouse"), + .height = 5, + .weight = 79, + .description = COMPOUND_STRING( + "It flares flames from its back to protect\n" + "itself. The fire burns vigorously if the\n" + "Pokémon is angry. When it is tired,\n" + "it sputters with incomplete combustion."), + .pokemonScale = 539, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Cyndaquil, 48, 40), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Cyndaquil, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Cyndaquil, 64, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Cyndaquil), + ICON(Cyndaquil, 3), + .footprint = gMonFootprint_Cyndaquil, + LEARNSETS(Cyndaquil), + .evolutions = EVOLUTION({EVO_LEVEL, 14, SPECIES_QUILAVA}), }, - [SPECIES_GARDEVOIR] = + [SPECIES_QUILAVA] = { - .baseHP = 68, - .baseAttack = 65, - .baseDefense = 65, + .baseHP = 58, + .baseAttack = 64, + .baseDefense = 58, .baseSpeed = 80, - .baseSpAttack = 125, - .baseSpDefense = 115, - #if P_UPDATED_TYPES >= GEN_6 - .types = { TYPE_PSYCHIC, TYPE_FAIRY}, - #else - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - #endif + .baseSpAttack = 80, + .baseSpDefense = 65, + .types = { TYPE_FIRE, TYPE_FIRE }, .catchRate = 45, - .expYield = 233, - .evYield_SpAttack = 3, - .genderRatio = PERCENT_FEMALE(50), + .expYield = 142, + .evYield_Speed = 1, + .evYield_SpAttack = 1, + .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, - .friendship = 35, - .growthRate = GROWTH_SLOW, - #if P_UPDATED_EGG_GROUPS >= GEN_8 - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_AMORPHOUS}, - #else - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - #endif - .abilities = {ABILITY_SYNCHRONIZE, ABILITY_TRACE, ABILITY_TELEPATHY}, - .bodyColor = BODY_COLOR_WHITE, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_FLASH_FIRE}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, - }, + .speciesName = _("Quilava"), + .cryId = CRY_QUILAVA, + .natDexNum = NATIONAL_DEX_QUILAVA, + .categoryName = _("Volcano"), + .height = 9, + .weight = 190, + .description = COMPOUND_STRING( + "It intimidates foes with intense gusts of\n" + "flames and superheated air. Its quick\n" + "nimbleness lets it dodge attacks even\n" + "while scorching an enemy."), + .pokemonScale = 329, + .pokemonOffset = 11, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Quilava, 64, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Quilava, + .frontAnimId = ANIM_H_STRETCH, + BACK_PIC(Quilava, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Quilava), + ICON(Quilava, 3), + .footprint = gMonFootprint_Quilava, + LEARNSETS(Quilava), + .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_TYPHLOSION}, + {EVO_NONE, 0, SPECIES_TYPHLOSION_HISUIAN}), + }, + +#define TYPHLOSION_MISC_INFO \ + .catchRate = 45, \ + .expYield = 240, \ + .evYield_SpAttack = 3, \ + .genderRatio = PERCENT_FEMALE(12.5), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_SLOW, \ + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, \ + .bodyColor = BODY_COLOR_YELLOW, \ + .noFlip = FALSE, \ + .speciesName = _("Typhlosion"), \ + .cryId = CRY_TYPHLOSION, \ + .natDexNum = NATIONAL_DEX_TYPHLOSION, \ + .footprint = gMonFootprint_Typhlosion, \ + .formSpeciesIdTable = sTyphlosionFormSpeciesIdTable - [SPECIES_SURSKIT] = + [SPECIES_TYPHLOSION] = { - .baseHP = 40, - .baseAttack = 30, - .baseDefense = 32, - .baseSpeed = 65, - .baseSpAttack = 50, - .baseSpDefense = 52, - .types = { TYPE_BUG, TYPE_WATER}, - .catchRate = 200, - .expYield = 54, - .evYield_Speed = 1, - .itemCommon = ITEM_HONEY, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + TYPHLOSION_MISC_INFO, + .baseHP = 78, + .baseAttack = 84, + .baseDefense = 78, + .baseSpeed = 100, + .baseSpAttack = 109, + .baseSpDefense = 85, + .types = { TYPE_FIRE, TYPE_FIRE }, + .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_FLASH_FIRE}, + .categoryName = _("Volcano"), + .height = 17, + .weight = 795, + .description = COMPOUND_STRING( + "It can hide behind a shimmering heat haze\n" + "that it creates using its intense flames.\n" + "Typhlosion create blazing explosive\n" + "blasts that burn everything to cinders."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 268, + .trainerOffset = 1, + FRONT_PIC(Typhlosion, 56, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Typhlosion, + .frontAnimId = ANIM_V_SHAKE, + .frontAnimDelay = 20, + BACK_PIC(Typhlosion, 64, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, + PALETTE(Typhlosion), + ICON(Typhlosion, 3), + LEARNSETS(Typhlosion), + }, + +#if P_HISUIAN_FORMS + [SPECIES_TYPHLOSION_HISUIAN] = + { + TYPHLOSION_MISC_INFO, + .baseHP = 73, + .baseAttack = 84, + .baseDefense = 78, + .baseSpeed = 95, + .baseSpAttack = 119, + .baseSpDefense = 85, + .types = { TYPE_FIRE, TYPE_GHOST}, + .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_FRISK}, + .categoryName = _("Ghost Flame"), + .height = 16, + .weight = 698, + .description = COMPOUND_STRING( + "Said to purify lost, forsaken souls with\n" + "its flames and guide them to the afterlife.\n" + "It's believed its form was influenced by\n" + "the energy of Mt. Coronet in ancient times."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 268, + .trainerOffset = 1, + FRONT_PIC(TyphlosionHisuian, 48, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_TyphlosionHisuian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(TyphlosionHisuian, 64, 56), + .backPicYOffset = 2, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(TyphlosionHisuian), + ICON(TyphlosionHisuian, 1), + LEARNSETS(TyphlosionHisuian), + .isHisuianForm = TRUE, + }, +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_CYNDAQUIL + +#if P_FAMILY_TOTODILE + [SPECIES_TOTODILE] = + { + .baseHP = 50, + .baseAttack = 65, + .baseDefense = 64, + .baseSpeed = 43, + .baseSpAttack = 44, + .baseSpDefense = 48, + .types = { TYPE_WATER, TYPE_WATER }, + .catchRate = 45, + .expYield = 63, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_BUG}, - .abilities = {ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_RAIN_DISH}, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, + .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_SHEER_FORCE}, .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Totodile"), + .cryId = CRY_TOTODILE, + .natDexNum = NATIONAL_DEX_TOTODILE, + .categoryName = _("Big Jaw"), + .height = 6, + .weight = 95, + .description = COMPOUND_STRING( + "Despite its small body, Totodile's jaws\n" + "are very powerful. While it may think it is\n" + "just playfully nipping, its bite has enough\n" + "strength to cause serious injury."), + .pokemonScale = 487, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Totodile, 40, 40), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Totodile, + .frontAnimId = ANIM_H_JUMPS, + BACK_PIC(Totodile, 56, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Totodile), + ICON(Totodile, 0), + .footprint = gMonFootprint_Totodile, + LEARNSETS(Totodile), + .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_CROCONAW}), }, - [SPECIES_MASQUERAIN] = + [SPECIES_CROCONAW] = { - .baseHP = 70, - .baseAttack = 60, - .baseDefense = 62, - .baseSpDefense = 82, - #if P_UPDATED_STATS >= GEN_7 - .baseSpeed = 80, - .baseSpAttack = 100, - #else - .baseSpeed = 60, - .baseSpAttack = 80, - #endif - .types = { TYPE_BUG, TYPE_FLYING}, - .catchRate = 75, - .expYield = 159, - .evYield_SpAttack = 1, - .evYield_SpDefense = 1, - .itemRare = ITEM_SILVER_POWDER, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .baseHP = 65, + .baseAttack = 80, + .baseDefense = 80, + .baseSpeed = 58, + .baseSpAttack = 59, + .baseSpDefense = 63, + .types = { TYPE_WATER, TYPE_WATER }, + .catchRate = 45, + .expYield = 142, + .evYield_Attack = 1, + .evYield_Defense = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_BUG}, - .abilities = {ABILITY_INTIMIDATE, ABILITY_NONE, ABILITY_UNNERVE}, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, + .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_SHEER_FORCE}, .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, + .noFlip = TRUE, + .speciesName = _("Croconaw"), + .cryId = CRY_CROCONAW, + .natDexNum = NATIONAL_DEX_CROCONAW, + .categoryName = _("Big Jaw"), + .height = 11, + .weight = 250, + .description = COMPOUND_STRING( + "Once its jaws clamp down on its foe, it will\n" + "absolutely not let go. Because the tips of\n" + "its fangs are forked back like fishhooks,\n" + "they become irremovably embedded."), + .pokemonScale = 378, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Croconaw, 48, 56), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Croconaw, + .frontAnimId = ANIM_H_SHAKE, + BACK_PIC(Croconaw, 56, 64), + .backPicYOffset = 2, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Croconaw), + ICON(Croconaw, 0), + .footprint = gMonFootprint_Croconaw, + LEARNSETS(Croconaw), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_FERALIGATR}), }, - [SPECIES_SHROOMISH] = + [SPECIES_FERALIGATR] = { - .baseHP = 60, - .baseAttack = 40, - .baseDefense = 60, - .baseSpeed = 35, - .baseSpAttack = 40, - .baseSpDefense = 60, - .types = { TYPE_GRASS, TYPE_GRASS }, + .baseHP = 85, + .baseAttack = 105, + .baseDefense = 100, + .baseSpeed = 78, + .baseSpAttack = 79, + .baseSpDefense = 83, + .types = { TYPE_WATER, TYPE_WATER }, + .catchRate = 45, + .expYield = 239, + .evYield_Attack = 2, + .evYield_Defense = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, + .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_SHEER_FORCE}, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + .speciesName = _("Feraligatr"), + .cryId = CRY_FERALIGATR, + .natDexNum = NATIONAL_DEX_FERALIGATR, + .categoryName = _("Big Jaw"), + .height = 23, + .weight = 888, + .description = COMPOUND_STRING( + "It opens its huge mouth to intimidate\n" + "enemies. In battle, it runs using its thick\n" + "and powerful hind legs to charge the\n" + "foe with incredible speed."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 342, + .trainerOffset = 7, + FRONT_PIC(Feraligatr, 64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Feraligatr, + .frontAnimId = ANIM_H_SHAKE, + .frontAnimDelay = 5, + BACK_PIC(Feraligatr, 56, 64), + .backPicYOffset = 2, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Feraligatr), + ICON(Feraligatr, 0), + .footprint = gMonFootprint_Feraligatr, + LEARNSETS(Feraligatr), + }, +#endif //P_FAMILY_TOTODILE + +#if P_FAMILY_SENTRET + [SPECIES_SENTRET] = + { + .baseHP = 35, + .baseAttack = 46, + .baseDefense = 34, + .baseSpeed = 20, + .baseSpAttack = 35, + .baseSpDefense = 45, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 255, - .expYield = 59, - .evYield_HP = 1, - .itemCommon = ITEM_TINY_MUSHROOM, - .itemRare = ITEM_BIG_MUSHROOM, + .expYield = 43, + .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS}, - .abilities = {ABILITY_EFFECT_SPORE, ABILITY_POISON_HEAL, ABILITY_QUICK_FEET}, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_RUN_AWAY, ABILITY_KEEN_EYE, ABILITY_FRISK}, .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .speciesName = _("Sentret"), + .cryId = CRY_SENTRET, + .natDexNum = NATIONAL_DEX_SENTRET, + .categoryName = _("Scout"), + .height = 8, + .weight = 60, + .description = COMPOUND_STRING( + "They take turns standing guard when it\n" + "is time to sleep. The sentry awakens the\n" + "others if it senses danger. If one becomes\n" + "separated, it turns sleepless with fear."), + .pokemonScale = 439, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Sentret, 40, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Sentret, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Sentret, 48, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Sentret), + ICON(Sentret, 2), + .footprint = gMonFootprint_Sentret, + LEARNSETS(Sentret), + .evolutions = EVOLUTION({EVO_LEVEL, 15, SPECIES_FURRET}), }, - [SPECIES_BRELOOM] = + [SPECIES_FURRET] = { - .baseHP = 60, - .baseAttack = 130, - .baseDefense = 80, - .baseSpeed = 70, - .baseSpAttack = 60, - .baseSpDefense = 60, - .types = { TYPE_GRASS, TYPE_FIGHTING }, + .baseHP = 85, + .baseAttack = 76, + .baseDefense = 64, + .baseSpeed = 90, + .baseSpAttack = 45, + .baseSpDefense = 55, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 90, - .expYield = 161, - .evYield_Attack = 2, - .itemCommon = ITEM_TINY_MUSHROOM, - .itemRare = ITEM_BIG_MUSHROOM, + .expYield = 145, + .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS}, - .abilities = {ABILITY_EFFECT_SPORE, ABILITY_POISON_HEAL, ABILITY_TECHNICIAN}, - .bodyColor = BODY_COLOR_GREEN, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_RUN_AWAY, ABILITY_KEEN_EYE, ABILITY_FRISK}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - }, - - [SPECIES_SLAKOTH] = + .speciesName = _("Furret"), + .cryId = CRY_FURRET, + .natDexNum = NATIONAL_DEX_FURRET, + .categoryName = _("Long Body"), + .height = 18, + .weight = 325, + .description = COMPOUND_STRING( + "A Furret has a very slim build. When under\n" + "attack, it can squirm through narrow\n" + "spaces and get away. In spite of its short\n" + "limbs, it is very nimble and fleet."), + .pokemonScale = 346, + .pokemonOffset = 11, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Furret, 48, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Furret, + .frontAnimId = ANIM_H_JUMPS_V_STRETCH, + BACK_PIC(Furret, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, + PALETTE(Furret), + ICON(Furret, 2), + .footprint = gMonFootprint_Furret, + LEARNSETS(Furret), + }, +#endif //P_FAMILY_SENTRET + +#if P_FAMILY_HOOTHOOT + [SPECIES_HOOTHOOT] = { .baseHP = 60, - .baseAttack = 60, - .baseDefense = 60, - .baseSpeed = 30, - .baseSpAttack = 35, - .baseSpDefense = 35, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .baseAttack = 30, + .baseDefense = 30, + .baseSpeed = 50, + .baseSpAttack = 36, + .baseSpDefense = 56, + .types = { TYPE_NORMAL, TYPE_FLYING }, .catchRate = 255, - .expYield = 56, + .expYield = 52, .evYield_HP = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, - .abilities = {ABILITY_TRUANT, ABILITY_NONE}, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + .abilities = {ABILITY_INSOMNIA, ABILITY_KEEN_EYE, ABILITY_TINTED_LENS}, .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .speciesName = _("Hoothoot"), + .cryId = CRY_HOOTHOOT, + .natDexNum = NATIONAL_DEX_HOOTHOOT, + .categoryName = _("Owl"), + .height = 7, + .weight = 212, + .description = COMPOUND_STRING( + "It has an internal organ that senses\n" + "the earth's rotation. Using this special\n" + "organ, a Hoothoot begins hooting at\n" + "precisely the same time every day."), + .pokemonScale = 380, + .pokemonOffset = -2, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Hoothoot, 40, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Hoothoot, + .frontAnimId = ANIM_V_SLIDE_SLOW, + BACK_PIC(Hoothoot, 56, 64), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Hoothoot), + ICON(Hoothoot, 2), + .footprint = gMonFootprint_Hoothoot, + LEARNSETS(Hoothoot), + .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_NOCTOWL}), }, - [SPECIES_VIGOROTH] = + [SPECIES_NOCTOWL] = { - .baseHP = 80, - .baseAttack = 80, - .baseDefense = 80, - .baseSpeed = 90, - .baseSpAttack = 55, - .baseSpDefense = 55, - .types = { TYPE_NORMAL, TYPE_NORMAL }, - .catchRate = 120, - .expYield = 154, - .evYield_Speed = 2, + .baseHP = 100, + .baseAttack = 50, + .baseDefense = 50, + .baseSpeed = 70, + .baseSpAttack = P_UPDATED_STATS >= GEN_7 ? 86 : 76, + .baseSpDefense = 96, + .types = { TYPE_NORMAL, TYPE_FLYING}, + .catchRate = 90, + .expYield = 158, + .evYield_HP = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, - .abilities = {ABILITY_VITAL_SPIRIT, ABILITY_NONE}, - .bodyColor = BODY_COLOR_WHITE, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + .abilities = {ABILITY_INSOMNIA, ABILITY_KEEN_EYE, ABILITY_TINTED_LENS}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - }, - - [SPECIES_SLAKING] = + .speciesName = _("Noctowl"), + .cryId = CRY_NOCTOWL, + .natDexNum = NATIONAL_DEX_NOCTOWL, + .categoryName = _("Owl"), + .height = 16, + .weight = 408, + .description = COMPOUND_STRING( + "It unfailingly catches prey in darkness.\n" + "Noctowl owe their success to superior\n" + "vision that allows them to see in minimal\n" + "light, and to their supple and silent wings."), + .pokemonScale = 278, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Noctowl, 40, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Noctowl, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Noctowl, 48, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(Noctowl), + ICON(Noctowl, 2), + .footprint = gMonFootprint_Noctowl, + LEARNSETS(Noctowl), + }, +#endif //P_FAMILY_HOOTHOOT + +#if P_FAMILY_LEDYBA + [SPECIES_LEDYBA] = { - .baseHP = 150, - .baseAttack = 160, - .baseDefense = 100, - .baseSpeed = 100, - .baseSpAttack = 95, - .baseSpDefense = 65, - .types = { TYPE_NORMAL, TYPE_NORMAL }, - .catchRate = 45, - .expYield = 252, - .evYield_HP = 3, + .baseHP = 40, + .baseAttack = 20, + .baseDefense = 30, + .baseSpeed = 55, + .baseSpAttack = 40, + .baseSpDefense = 80, + .types = { TYPE_BUG, TYPE_FLYING }, + .catchRate = 255, + .expYield = 53, + .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, - .abilities = {ABILITY_TRUANT, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BROWN, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_SWARM, ABILITY_EARLY_BIRD, ABILITY_RATTLED}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, + .speciesName = _("Ledyba"), + .cryId = CRY_LEDYBA, + .natDexNum = NATIONAL_DEX_LEDYBA, + .categoryName = _("Five Star"), + .height = 10, + .weight = 108, + .description = COMPOUND_STRING( + "Ledyba communicate using a fluid that\n" + "they secrete from where the legs join the\n" + "body. They are said to convey feelings to\n" + "others by altering the fluid's scent."), + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Ledyba, 48, 48), + FRONT_PIC_FEMALE(Ledyba, 48, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Ledyba, + .frontAnimId = ANIM_V_JUMPS_SMALL, + BACK_PIC(Ledyba, 56, 48), + BACK_PIC_FEMALE(Ledyba, 56, 48), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, + PALETTE(Ledyba), + ICON(Ledyba, 0), + .footprint = gMonFootprint_Ledyba, + LEARNSETS(Ledyba), + .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_LEDIAN}), }, - [SPECIES_NINCADA] = + [SPECIES_LEDIAN] = { - .baseHP = 31, - .baseAttack = 45, - .baseDefense = 90, - .baseSpeed = 40, - .baseSpAttack = 30, - .baseSpDefense = 30, - .types = { TYPE_BUG, TYPE_GROUND}, - .catchRate = 255, - .expYield = 53, - .evYield_Defense = 1, - .itemRare = ITEM_SOFT_SAND, + .baseHP = 55, + .baseAttack = 35, + .baseDefense = 50, + .baseSpeed = 85, + .baseSpAttack = 55, + .baseSpDefense = 110, + .types = { TYPE_BUG, TYPE_FLYING }, + .catchRate = 90, + .expYield = 137, + .evYield_SpDefense = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_ERRATIC, + .growthRate = GROWTH_FAST, .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_COMPOUND_EYES, ABILITY_NONE, ABILITY_RUN_AWAY}, - .bodyColor = BODY_COLOR_GRAY, + .abilities = {ABILITY_SWARM, ABILITY_EARLY_BIRD, ABILITY_IRON_FIST}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, - }, - - [SPECIES_NINJASK] = + .speciesName = _("Ledian"), + .cryId = CRY_LEDIAN, + .natDexNum = NATIONAL_DEX_LEDIAN, + .categoryName = _("Five Star"), + .height = 14, + .weight = 356, + .description = COMPOUND_STRING( + "It is said that in lands with clean air,\n" + "where the stars fill the sky, there live\n" + "many Ledian. For good reason, they use\n" + "the light of the stars as energy."), + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Ledian, 48, 56), + FRONT_PIC_FEMALE(Ledian, 48, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Ledian, + .frontAnimId = ANIM_V_SLIDE_WOBBLE, + .enemyMonElevation = 10, + BACK_PIC(Ledian, 64, 64), + BACK_PIC_FEMALE(Ledian, 64, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Ledian), + ICON(Ledian, 0), + .footprint = gMonFootprint_Ledian, + LEARNSETS(Ledian), + }, +#endif //P_FAMILY_LEDYBA + +#if P_FAMILY_SPINARAK + [SPECIES_SPINARAK] = { - .baseHP = 61, - .baseAttack = 90, - .baseDefense = 45, - .baseSpeed = 160, - .baseSpAttack = 50, - .baseSpDefense = 50, - .types = { TYPE_BUG, TYPE_FLYING}, - .catchRate = 120, - .expYield = 160, - .evYield_Speed = 2, + .baseHP = 40, + .baseAttack = 60, + .baseDefense = 40, + .baseSpeed = 30, + .baseSpAttack = 40, + .baseSpDefense = 40, + .types = { TYPE_BUG, TYPE_POISON }, + .catchRate = 255, + .expYield = 50, + .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_ERRATIC, + .growthRate = GROWTH_FAST, .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SPEED_BOOST, ABILITY_NONE, ABILITY_INFILTRATOR}, - .bodyColor = BODY_COLOR_YELLOW, + .abilities = {ABILITY_SWARM, ABILITY_INSOMNIA, ABILITY_SNIPER}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, + .speciesName = _("Spinarak"), + .cryId = CRY_SPINARAK, + .natDexNum = NATIONAL_DEX_SPINARAK, + .categoryName = _("String Spit"), + .height = 5, + .weight = 85, + .description = COMPOUND_STRING( + "The web it spins can be considered its\n" + "second nervous system. It is said that a\n" + "Spinarak determines its prey by the tiny\n" + "vibrations it feels through the web."), + .pokemonScale = 414, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Spinarak, 48, 32), + .frontPicYOffset = 16, + .frontAnimFrames = sAnims_Spinarak, + .frontAnimId = ANIM_CIRCLE_C_CLOCKWISE_SLOW, + BACK_PIC(Spinarak, 64, 32), + .backPicYOffset = 16, + .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, + PALETTE(Spinarak), + ICON(Spinarak, 1), + .footprint = gMonFootprint_Spinarak, + LEARNSETS(Spinarak), + .evolutions = EVOLUTION({EVO_LEVEL, 22, SPECIES_ARIADOS}), }, - [SPECIES_SHEDINJA] = + [SPECIES_ARIADOS] = { - .baseHP = 1, + .baseHP = 70, .baseAttack = 90, - .baseDefense = 45, + .baseDefense = 70, .baseSpeed = 40, - .baseSpAttack = 30, - .baseSpDefense = 30, - .types = { TYPE_BUG, TYPE_GHOST}, - .catchRate = 45, - .expYield = 83, - .evYield_HP = 2, - .genderRatio = MON_GENDERLESS, + .baseSpAttack = 60, + .baseSpDefense = P_UPDATED_STATS >= GEN_7 ? 70 : 60, + .types = { TYPE_BUG, TYPE_POISON}, + .catchRate = 90, + .expYield = 140, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_WONDER_GUARD, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BROWN, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_SWARM, ABILITY_INSOMNIA, ABILITY_SNIPER}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, - }, - - [SPECIES_WHISMUR] = + .speciesName = _("Ariados"), + .cryId = CRY_ARIADOS, + .natDexNum = NATIONAL_DEX_ARIADOS, + .categoryName = _("Long Leg"), + .height = 11, + .weight = 335, + .description = COMPOUND_STRING( + "Its feet are tipped with tiny hooked claws\n" + "that enable it to scuttle on ceilings and\n" + "vertical walls. It constricts its foe with\n" + "thin and strong silk webbing."), + .pokemonScale = 316, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Ariados, 64, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Ariados, + .frontAnimId = ANIM_H_SHAKE, + BACK_PIC(Ariados, 64, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Ariados), + ICON(Ariados, 0), + .footprint = gMonFootprint_Ariados, + LEARNSETS(Ariados), + }, +#endif //P_FAMILY_SPINARAK + +#if P_FAMILY_CHINCHOU + [SPECIES_CHINCHOU] = { - .baseHP = 64, - .baseAttack = 51, - .baseDefense = 23, - .baseSpeed = 28, - .baseSpAttack = 51, - .baseSpDefense = 23, - .types = { TYPE_NORMAL, TYPE_NORMAL }, + .baseHP = 75, + .baseAttack = 38, + .baseDefense = 38, + .baseSpeed = 67, + .baseSpAttack = 56, + .baseSpDefense = 56, + .types = { TYPE_WATER, TYPE_ELECTRIC }, .catchRate = 190, - .expYield = 48, + .expYield = 66, .evYield_HP = 1, + .itemRare = ITEM_DEEP_SEA_SCALE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SOUNDPROOF, ABILITY_NONE, ABILITY_RATTLED}, - .bodyColor = BODY_COLOR_PINK, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, + .abilities = {ABILITY_VOLT_ABSORB, ABILITY_ILLUMINATE, ABILITY_WATER_ABSORB}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Chinchou"), + .cryId = CRY_CHINCHOU, + .natDexNum = NATIONAL_DEX_CHINCHOU, + .categoryName = _("Angler"), + .height = 5, + .weight = 120, + .description = COMPOUND_STRING( + "When it senses danger, it discharges\n" + "positive and negative electricity from its\n" + "two antennae. It lives in depths beyond\n" + "sunlight's reach."), + .pokemonScale = 424, + .pokemonOffset = -2, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Chinchou, 64, 48), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Chinchou, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + BACK_PIC(Chinchou, 64, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_V_STRETCH, + PALETTE(Chinchou), + ICON(Chinchou, 2), + .footprint = gMonFootprint_Chinchou, + LEARNSETS(Chinchou), + .evolutions = EVOLUTION({EVO_LEVEL, 27, SPECIES_LANTURN}), }, - [SPECIES_LOUDRED] = + [SPECIES_LANTURN] = { - .baseHP = 84, - .baseAttack = 71, - .baseDefense = 43, - .baseSpeed = 48, - .baseSpAttack = 71, - .baseSpDefense = 43, - .types = { TYPE_NORMAL, TYPE_NORMAL }, - .catchRate = 120, - .expYield = 126, + .baseHP = 125, + .baseAttack = 58, + .baseDefense = 58, + .baseSpeed = 67, + .baseSpAttack = 76, + .baseSpDefense = 76, + .types = { TYPE_WATER, TYPE_ELECTRIC }, + .catchRate = 75, + .expYield = 161, .evYield_HP = 2, + .itemRare = ITEM_DEEP_SEA_SCALE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SOUNDPROOF, ABILITY_NONE, ABILITY_SCRAPPY}, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, + .abilities = {ABILITY_VOLT_ABSORB, ABILITY_ILLUMINATE, ABILITY_WATER_ABSORB}, .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Lanturn"), + .cryId = CRY_LANTURN, + .natDexNum = NATIONAL_DEX_LANTURN, + .categoryName = _("Light"), + .height = 12, + .weight = 225, + .description = COMPOUND_STRING( + "The light-emitting orbs on its back are\n" + "very bright. They are formed from a part of\n" + "its dorsal fin. This Pokémon illuminates\n" + "the inky darkness of deep seas."), + .pokemonScale = 269, + .pokemonOffset = 6, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Lanturn, 64, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Lanturn, + .frontAnimId = ANIM_V_SLIDE_WOBBLE_SMALL, + BACK_PIC(Lanturn, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, + PALETTE(Lanturn), + ICON(Lanturn, 0), + .footprint = gMonFootprint_Lanturn, + LEARNSETS(Lanturn), + }, +#endif //P_FAMILY_CHINCHOU + +#if P_FAMILY_TOGEPI +#define TOGEPI_FAMILY_TYPE (P_UPDATED_TYPES >= GEN_6 ? TYPE_FAIRY : TYPE_NORMAL) + + [SPECIES_TOGEPI] = + { + .baseHP = 35, + .baseAttack = 20, + .baseDefense = 65, + .baseSpeed = 20, + .baseSpAttack = 40, + .baseSpDefense = 65, + .types = { TOGEPI_FAMILY_TYPE, TOGEPI_FAMILY_TYPE }, + .catchRate = 190, + .expYield = 49, + .evYield_SpDefense = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_HUSTLE, ABILITY_SERENE_GRACE, ABILITY_SUPER_LUCK}, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = FALSE, + .speciesName = _("Togepi"), + .cryId = CRY_TOGEPI, + .natDexNum = NATIONAL_DEX_TOGEPI, + .categoryName = _("Spike Ball"), + .height = 3, + .weight = 15, + .description = COMPOUND_STRING( + "As its energy, it uses the feelings of\n" + "compassion and pleasure exuded by\n" + "people and Pokémon. It stores up happy\n" + "feelings in its shell, then shares them out."), + .pokemonScale = 507, + .pokemonOffset = 23, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Togepi, 24, 32), + .frontPicYOffset = 16, + .frontAnimFrames = sAnims_Togepi, + .frontAnimId = ANIM_V_JUMPS_BIG, + BACK_PIC(Togepi, 48, 40), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Togepi), + ICON(Togepi, 0), + .footprint = gMonFootprint_Togepi, + LEARNSETS(Togepi), + .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_TOGETIC}), }, - [SPECIES_EXPLOUD] = + [SPECIES_TOGETIC] = { - .baseHP = 104, - .baseAttack = 91, - .baseDefense = 63, - .baseSpeed = 68, - .baseSpAttack = 91, - #if P_UPDATED_STATS >= GEN_6 - .baseSpDefense = 73, + .baseHP = 55, + .baseAttack = 40, + .baseDefense = 85, + .baseSpeed = 40, + .baseSpAttack = 80, + .baseSpDefense = 105, + .types = { TOGEPI_FAMILY_TYPE, TYPE_FLYING }, + .catchRate = 75, + .expYield = 142, + .evYield_SpDefense = 2, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FAIRY}, + .abilities = {ABILITY_HUSTLE, ABILITY_SERENE_GRACE, ABILITY_SUPER_LUCK}, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = FALSE, + .speciesName = _("Togetic"), + .cryId = CRY_TOGETIC, + .natDexNum = NATIONAL_DEX_TOGETIC, + .categoryName = _("Happiness"), + .height = 6, + .weight = 32, + .description = COMPOUND_STRING( + "It is said to be a Pokémon that brings good\n" + "fortune. When it spots someone who is pure\n" + "of heart, a Togetic appears and shares its\n" + "happiness with that person."), + .pokemonScale = 424, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Togetic, 32, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Togetic, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Togetic, 56, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Togetic), + ICON(Togetic, 0), + .footprint = gMonFootprint_Togetic, + LEARNSETS(Togetic), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_SHINY_STONE, SPECIES_TOGEKISS}), + }, + +#if P_GEN_4_CROSS_EVOS + [SPECIES_TOGEKISS] = + { + .baseHP = 85, + .baseAttack = 50, + .baseDefense = 95, + .baseSpeed = 80, + .baseSpAttack = 120, + .baseSpDefense = 115, + #if P_UPDATED_TYPES >= GEN_6 + .types = { TOGEPI_FAMILY_TYPE, TYPE_FLYING}, #else - .baseSpDefense = 63, + .types = { TYPE_NORMAL, TYPE_FLYING}, #endif - .types = { TYPE_NORMAL, TYPE_NORMAL}, - .catchRate = 45, - .expYield = 221, - .evYield_HP = 3, + .catchRate = 30, + .expYield = 245, + .evYield_SpAttack = 2, + .evYield_SpDefense = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FAIRY}, + .abilities = {ABILITY_HUSTLE, ABILITY_SERENE_GRACE, ABILITY_SUPER_LUCK}, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = TRUE, + .speciesName = _("Togekiss"), + .cryId = CRY_TOGEKISS, + .natDexNum = NATIONAL_DEX_TOGEKISS, + .categoryName = _("Jubilee"), + .height = 15, + .weight = 380, + .description = COMPOUND_STRING( + "As everyone knows, it visits peaceful\n" + "regions, bringing them gifts of kindness\n" + "and sweet blessings. It will never appear\n" + "where there is strife."), + .pokemonScale = 268, + .pokemonOffset = 2, + .trainerScale = 271, + .trainerOffset = 0, + FRONT_PIC(Togekiss, 64, 56), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Togekiss, + .frontAnimId = ANIM_SWING_CONVEX, + .enemyMonElevation = 14, + BACK_PIC(Togekiss, 64, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, + PALETTE(Togekiss), + ICON(Togekiss, 2), + .footprint = gMonFootprint_Togekiss, + LEARNSETS(Togekiss), + }, +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_TOGEPI + +#if P_FAMILY_NATU + [SPECIES_NATU] = + { + .baseHP = 40, + .baseAttack = 50, + .baseDefense = 45, + .baseSpeed = 70, + .baseSpAttack = 70, + .baseSpDefense = 45, + .types = { TYPE_PSYCHIC, TYPE_FLYING }, + .catchRate = 190, + .expYield = 64, + .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SOUNDPROOF, ABILITY_NONE, ABILITY_SCRAPPY}, - .bodyColor = BODY_COLOR_BLUE, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + .abilities = {ABILITY_SYNCHRONIZE, ABILITY_EARLY_BIRD, ABILITY_MAGIC_BOUNCE}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, + .speciesName = _("Natu"), + .cryId = CRY_NATU, + .natDexNum = NATIONAL_DEX_NATU, + .categoryName = _("Tiny Bird"), + .height = 2, + .weight = 20, + .description = COMPOUND_STRING( + "It runs up short trees that grow on the\n" + "savanna to peck at new shoots.\n" + "A Natu's eyes look as if they are\n" + "always observing something."), + .pokemonScale = 610, + .pokemonOffset = 25, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Natu, 32, 32), + .frontPicYOffset = 17, + .frontAnimFrames = sAnims_Natu, + .frontAnimId = ANIM_H_JUMPS, + .frontAnimDelay = 30, + BACK_PIC(Natu, 40, 40), + .backPicYOffset = 15, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Natu), + ICON(Natu, 1), + .footprint = gMonFootprint_Natu, + LEARNSETS(Natu), + .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_XATU}), }, - [SPECIES_MAKUHITA] = + [SPECIES_XATU] = { - .baseHP = 72, - .baseAttack = 60, - .baseDefense = 30, - .baseSpeed = 25, - .baseSpAttack = 20, - .baseSpDefense = 30, - .types = { TYPE_FIGHTING, TYPE_FIGHTING}, - .catchRate = 180, - .expYield = 47, - .evYield_HP = 1, - .itemRare = ITEM_BLACK_BELT, - .genderRatio = PERCENT_FEMALE(25), + .baseHP = 65, + .baseAttack = 75, + .baseDefense = 70, + .baseSpeed = 95, + .baseSpAttack = 95, + .baseSpDefense = 70, + .types = { TYPE_PSYCHIC, TYPE_FLYING }, + .catchRate = 75, + .expYield = 165, + .evYield_Speed = 1, + .evYield_SpAttack = 1, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_THICK_FAT, ABILITY_GUTS, ABILITY_SHEER_FORCE}, - .bodyColor = BODY_COLOR_YELLOW, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + .abilities = {ABILITY_SYNCHRONIZE, ABILITY_EARLY_BIRD, ABILITY_MAGIC_BOUNCE}, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + .speciesName = _("Xatu"), + .cryId = CRY_XATU, + .natDexNum = NATIONAL_DEX_XATU, + .categoryName = _("Mystic"), + .height = 15, + .weight = 150, + .description = COMPOUND_STRING( + "It has the enigmatic power of foreseeing\n" + "the future. Some people in different lands\n" + "have long believed that Xatu are\n" + "emissaries from another world."), + .pokemonScale = 256, + .pokemonOffset = 6, + .trainerScale = 318, + .trainerOffset = 4, + FRONT_PIC(Xatu, 40, 56), + FRONT_PIC_FEMALE(Xatu, 40, 56), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Xatu, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Xatu, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(Xatu), + ICON(Xatu, 1), + .footprint = gMonFootprint_Xatu, + LEARNSETS(Xatu), + }, +#endif //P_FAMILY_NATU + +#if P_FAMILY_MAREEP + [SPECIES_MAREEP] = + { + .baseHP = 55, + .baseAttack = 40, + .baseDefense = 40, + .baseSpeed = 35, + .baseSpAttack = 65, + .baseSpDefense = 45, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .catchRate = 235, + .expYield = 56, + .evYield_SpAttack = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD}, + .abilities = {ABILITY_STATIC, ABILITY_NONE, ABILITY_PLUS}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, + .speciesName = _("Mareep"), + .cryId = CRY_MAREEP, + .natDexNum = NATIONAL_DEX_MAREEP, + .categoryName = _("Wool"), + .height = 6, + .weight = 78, + .description = COMPOUND_STRING( + "Its fluffy wool rubs together and builds\n" + "a static charge. The more energy is\n" + "charged, the more brightly the lightbulb\n" + "at the tip of its tail glows."), + .pokemonScale = 379, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Mareep, 40, 48), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Mareep, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .frontAnimDelay = 50, + BACK_PIC(Mareep, 56, 40), + .backPicYOffset = 15, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Mareep), + ICON(Mareep, 0), + .footprint = gMonFootprint_Mareep, + LEARNSETS(Mareep), + .evolutions = EVOLUTION({EVO_LEVEL, 15, SPECIES_FLAAFFY}), }, - [SPECIES_HARIYAMA] = + [SPECIES_FLAAFFY] = { - .baseHP = 144, - .baseAttack = 120, - .baseDefense = 60, - .baseSpeed = 50, - .baseSpAttack = 40, + .baseHP = 70, + .baseAttack = 55, + .baseDefense = 55, + .baseSpeed = 45, + .baseSpAttack = 80, .baseSpDefense = 60, - .types = { TYPE_FIGHTING, TYPE_FIGHTING}, - .catchRate = 200, - .expYield = 166, - .evYield_HP = 2, - .itemRare = ITEM_KINGS_ROCK, - .genderRatio = PERCENT_FEMALE(25), + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .catchRate = 120, + .expYield = 128, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_THICK_FAT, ABILITY_GUTS, ABILITY_SHEER_FORCE}, - .bodyColor = BODY_COLOR_BROWN, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD}, + .abilities = {ABILITY_STATIC, ABILITY_NONE, ABILITY_PLUS}, + .bodyColor = BODY_COLOR_PINK, .noFlip = FALSE, - }, + .speciesName = _("Flaaffy"), + .cryId = CRY_FLAAFFY, + .natDexNum = NATIONAL_DEX_FLAAFFY, + .categoryName = _("Wool"), + .height = 8, + .weight = 133, + .description = COMPOUND_STRING( + "Its fleece quality changes to generate\n" + "strong static electricity with a small\n" + "amount of wool. The bare, slick parts of its\n" + "hide are shielded against electricity."), + .pokemonScale = 372, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Flaaffy, 48, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Flaaffy, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Flaaffy, 48, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Flaaffy), + ICON(Flaaffy, 0), + .footprint = gMonFootprint_Flaaffy, + LEARNSETS(Flaaffy), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_AMPHAROS}), + }, + +#define AMPHAROS_MISC_INFO \ + .catchRate = 45, \ + .evYield_SpAttack = 3, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_SLOW, \ + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD}, \ + .bodyColor = BODY_COLOR_YELLOW, \ + .noFlip = FALSE, \ + .speciesName = _("Ampharos"), \ + .natDexNum = NATIONAL_DEX_AMPHAROS, \ + .categoryName = _("Light"), \ + .height = 14, \ + .weight = 615, \ + .pokemonScale = 256, \ + .pokemonOffset = 4, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Ampharos, \ + LEARNSETS(Ampharos), \ + .formSpeciesIdTable = sAmpharosFormSpeciesIdTable, \ + .formChangeTable = sAmpharosFormChangeTable + +#define AMPHAROS_DEFENSE (P_UPDATED_STATS >= GEN_6 ? 85 : 75) + [SPECIES_AMPHAROS] = + { + AMPHAROS_MISC_INFO, + .baseHP = 90, + .baseAttack = 75, + .baseDefense = AMPHAROS_DEFENSE, + .baseSpeed = 55, + .baseSpAttack = 115, + .baseSpDefense = 90, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, + .expYield = 230, + .abilities = {ABILITY_STATIC, ABILITY_NONE, ABILITY_PLUS}, + .cryId = CRY_AMPHAROS, + .description = COMPOUND_STRING( + "It gives off so much light that it can be\n" + "seen even from space. People in the old\n" + "days used its light to send signals back\n" + "and forth with others far away."), + FRONT_PIC(Ampharos, 56, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Ampharos, + .frontAnimId = ANIM_FLASH_YELLOW, + .frontAnimDelay = 10, + BACK_PIC(Ampharos, 56, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, + PALETTE(Ampharos), + ICON(Ampharos, 0), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_AMPHAROS_MEGA] = + { + AMPHAROS_MISC_INFO, + .baseHP = 90, + .baseAttack = 95, + .baseDefense = AMPHAROS_DEFENSE + 20, + .baseSpeed = 45, + .baseSpAttack = 165, + .baseSpDefense = 110, + .types = { TYPE_ELECTRIC, TYPE_DRAGON}, + .expYield = 275, + .abilities = {ABILITY_MOLD_BREAKER, ABILITY_MOLD_BREAKER, ABILITY_MOLD_BREAKER}, + .cryId = CRY_AMPHAROS_MEGA, + .description = COMPOUND_STRING( + "Massive amounts of energy intensely\n" + "stimulated Ampharos's cells, apparently\n" + "awakening its long-sleeping dragon's\n" + "blood."), + FRONT_PIC(AmpharosMega, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_AmpharosMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(AmpharosMega, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, + PALETTE(AmpharosMega), + ICON(AmpharosMega, 0), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_MAREEP + +#if P_FAMILY_MARILL +#if P_GEN_3_CROSS_EVOS [SPECIES_AZURILL] = { .baseHP = 50, @@ -8155,11 +14004,11 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 20, .baseSpAttack = 20, .baseSpDefense = 40, - #if P_UPDATED_TYPES >= GEN_6 - .types = { TYPE_NORMAL, TYPE_FAIRY}, - #else - .types = { TYPE_NORMAL, TYPE_NORMAL}, - #endif + #if P_UPDATED_TYPES >= GEN_6 + .types = { TYPE_NORMAL, TYPE_FAIRY}, + #else + .types = { TYPE_NORMAL, TYPE_NORMAL}, + #endif .catchRate = 150, .expYield = 38, .evYield_HP = 1, @@ -8171,1996 +14020,4305 @@ const struct SpeciesInfo gSpeciesInfo[] = .abilities = {ABILITY_THICK_FAT, ABILITY_HUGE_POWER, ABILITY_SAP_SIPPER}, .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - }, - - [SPECIES_NOSEPASS] = - { - .baseHP = 30, - .baseAttack = 45, - .baseDefense = 135, - .baseSpeed = 30, - .baseSpAttack = 45, - .baseSpDefense = 90, - .types = { TYPE_ROCK, TYPE_ROCK}, - .catchRate = 255, - .expYield = 75, - .evYield_Defense = 1, - .itemRare = ITEM_MAGNET, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_STURDY, ABILITY_MAGNET_PULL, ABILITY_SAND_FORCE}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, - - [SPECIES_SKITTY] = - { - .baseHP = 50, - .baseAttack = 45, - .baseDefense = 45, - .baseSpeed = 50, - .baseSpAttack = 35, - .baseSpDefense = 35, - .types = { TYPE_NORMAL, TYPE_NORMAL}, - .catchRate = 255, - .expYield = 52, - .evYield_Speed = 1, - .genderRatio = PERCENT_FEMALE(75), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_CUTE_CHARM, ABILITY_NORMALIZE, ABILITY_WONDER_SKIN}, - .bodyColor = BODY_COLOR_PINK, - .noFlip = FALSE, - }, + .speciesName = _("Azurill"), + .cryId = CRY_AZURILL, + .natDexNum = NATIONAL_DEX_AZURILL, + .categoryName = _("Polka Dot"), + .height = 2, + .weight = 20, + .description = COMPOUND_STRING( + "Its tail, which is packed with nutrition,\n" + "is very bouncy like a rubber ball. On sunny\n" + "days they gather at the edge of water and\n" + "splash about for fun."), + .pokemonScale = 603, + .pokemonOffset = 23, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Azurill, 48, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Azurill, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Azurill, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, + PALETTE(Azurill), + ICON(Azurill, 0), + .footprint = gMonFootprint_Azurill, + LEARNSETS(Azurill), + .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_MARILL}), + }, +#endif //P_GEN_3_CROSS_EVOS - [SPECIES_DELCATTY] = + [SPECIES_MARILL] = { .baseHP = 70, - .baseAttack = 65, - .baseDefense = 65, - .baseSpAttack = 55, - .baseSpDefense = 55, - #if P_UPDATED_STATS >= GEN_7 - .baseSpeed = 90, - #else - .baseSpeed = 70, - #endif - .types = { TYPE_NORMAL, TYPE_NORMAL}, - .catchRate = 60, - .expYield = 140, - .evYield_HP = 1, - .evYield_Speed = 1, - .genderRatio = PERCENT_FEMALE(75), - .eggCycles = 15, + .baseAttack = 20, + .baseDefense = 50, + .baseSpeed = 40, + .baseSpAttack = 20, + .baseSpDefense = 50, + #if P_UPDATED_TYPES >= GEN_6 + .types = { TYPE_WATER, TYPE_FAIRY}, + #else + .types = { TYPE_WATER, TYPE_WATER}, + #endif + .catchRate = 190, + .expYield = 88, + .evYield_HP = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 10, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_CUTE_CHARM, ABILITY_NORMALIZE, ABILITY_WONDER_SKIN}, - .bodyColor = BODY_COLOR_PURPLE, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FAIRY}, + .abilities = {ABILITY_THICK_FAT, ABILITY_HUGE_POWER, ABILITY_SAP_SIPPER}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Marill"), + .cryId = CRY_MARILL, + .natDexNum = NATIONAL_DEX_MARILL, + .categoryName = _("Aqua Mouse"), + .height = 4, + .weight = 85, + .description = COMPOUND_STRING( + "Its body is covered with water-repellent\n" + "fur. Because of the fur, it can swim\n" + "through water at high speed without being\n" + "slowed by the water's resistance."), + .pokemonScale = 476, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Marill, 56, 40), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Marill, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Marill, 64, 40), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Marill), + ICON(Marill, 0), + .footprint = gMonFootprint_Marill, + LEARNSETS(Marill), + .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_AZUMARILL}), }, - [SPECIES_SABLEYE] = + [SPECIES_AZUMARILL] = { - .baseHP = 50, - .baseAttack = 75, - .baseDefense = 75, + .baseHP = 100, + .baseAttack = 50, + .baseDefense = 80, .baseSpeed = 50, - .baseSpAttack = 65, - .baseSpDefense = 65, - .types = { TYPE_DARK, TYPE_GHOST}, - .catchRate = 45, - .expYield = 133, - .evYield_Attack = 1, - .evYield_Defense = 1, - .itemRare = ITEM_WIDE_LENS, + .baseSpAttack = P_UPDATED_STATS >= GEN_6 ? 60 : 50, + .baseSpDefense = 80, + #if P_UPDATED_TYPES >= GEN_6 + .types = { TYPE_WATER, TYPE_FAIRY}, + #else + .types = { TYPE_WATER, TYPE_WATER}, + #endif + .catchRate = 75, + .expYield = 189, + .evYield_HP = 3, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, - .friendship = 35, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_KEEN_EYE, ABILITY_STALL, ABILITY_PRANKSTER}, - .bodyColor = BODY_COLOR_PURPLE, + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FAIRY}, + .abilities = {ABILITY_THICK_FAT, ABILITY_HUGE_POWER, ABILITY_SAP_SIPPER}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - }, - - [SPECIES_MAWILE] = + .speciesName = _("Azumarill"), + .cryId = CRY_AZUMARILL, + .natDexNum = NATIONAL_DEX_AZUMARILL, + .categoryName = _("Aqua Rabbit"), + .height = 8, + .weight = 285, + .description = COMPOUND_STRING( + "It lives in water virtually all day long.\n" + "Its body color and pattern act as\n" + "camouflage that makes it tough for\n" + "enemies to spot in water."), + .pokemonScale = 448, + .pokemonOffset = 16, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Azumarill, 56, 64), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Azumarill, + .frontAnimId = ANIM_SHRINK_GROW, + BACK_PIC(Azumarill, 64, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Azumarill), + ICON(Azumarill, 0), + .footprint = gMonFootprint_Azumarill, + LEARNSETS(Azumarill), + }, +#endif //P_FAMILY_MARILL + +#if P_FAMILY_SUDOWOODO +#if P_GEN_4_CROSS_EVOS + [SPECIES_BONSLY] = { .baseHP = 50, - .baseAttack = 85, - .baseDefense = 85, - .baseSpeed = 50, - .baseSpAttack = 55, - .baseSpDefense = 55, - #if P_UPDATED_TYPES >= GEN_6 - .types = { TYPE_STEEL, TYPE_FAIRY}, - #else - .types = { TYPE_STEEL, TYPE_STEEL}, - #endif - .catchRate = 45, - .expYield = 133, - .evYield_Attack = 1, + .baseAttack = 80, + .baseDefense = 95, + .baseSpeed = 10, + .baseSpAttack = 10, + .baseSpDefense = 45, + .types = { TYPE_ROCK, TYPE_ROCK}, + .catchRate = 255, + .expYield = 58, .evYield_Defense = 1, - .itemRare = ITEM_IRON_BALL, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_HYPER_CUTTER, ABILITY_INTIMIDATE, ABILITY_SHEER_FORCE}, - .bodyColor = BODY_COLOR_BLACK, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_STURDY, ABILITY_ROCK_HEAD, ABILITY_RATTLED}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - }, + .speciesName = _("Bonsly"), + .cryId = CRY_BONSLY, + .natDexNum = NATIONAL_DEX_BONSLY, + .categoryName = _("Bonsai"), + .height = 5, + .weight = 150, + .description = COMPOUND_STRING( + "Bonsly prefers an arid atmosphere.\n" + "In order to adjust the level of fluids\n" + "in its body, it exudes water from its eyes.\n" + "This makes it appear to be crying."), + .pokemonScale = 432, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Bonsly, 32, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Bonsly, + .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES, + BACK_PIC(Bonsly, 40, 64), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_H_VIBRATE, + PALETTE(Bonsly), + ICON(Bonsly, 1), + .footprint = gMonFootprint_Bonsly, + LEARNSETS(Bonsly), + .evolutions = EVOLUTION({EVO_MOVE, MOVE_MIMIC, SPECIES_SUDOWOODO}), + }, +#endif //P_GEN_4_CROSS_EVOS - [SPECIES_ARON] = + [SPECIES_SUDOWOODO] = { - .baseHP = 50, - .baseAttack = 70, - .baseDefense = 100, + .baseHP = 70, + .baseAttack = 100, + .baseDefense = 115, .baseSpeed = 30, - .baseSpAttack = 40, - .baseSpDefense = 40, - .types = { TYPE_STEEL, TYPE_ROCK }, - .catchRate = 180, - .expYield = 66, - .evYield_Defense = 1, - .itemRare = ITEM_HARD_STONE, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 35, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, - .abilities = {ABILITY_STURDY, ABILITY_ROCK_HEAD, ABILITY_HEAVY_METAL}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, - - [SPECIES_LAIRON] = - { - .baseHP = 60, - .baseAttack = 90, - .baseDefense = 140, - .baseSpeed = 40, - .baseSpAttack = 50, - .baseSpDefense = 50, - .types = { TYPE_STEEL, TYPE_ROCK }, - .catchRate = 90, - .expYield = 151, + .baseSpAttack = 30, + .baseSpDefense = 65, + .types = { TYPE_ROCK, TYPE_ROCK }, + .catchRate = 65, + .expYield = 144, .evYield_Defense = 2, - .itemRare = ITEM_HARD_STONE, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 35, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, - .abilities = {ABILITY_STURDY, ABILITY_ROCK_HEAD, ABILITY_HEAVY_METAL}, - .bodyColor = BODY_COLOR_GRAY, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_STURDY, ABILITY_ROCK_HEAD, ABILITY_RATTLED}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - }, - - [SPECIES_AGGRON] = + .speciesName = _("Sudowoodo"), + .cryId = CRY_SUDOWOODO, + .natDexNum = NATIONAL_DEX_SUDOWOODO, + .categoryName = _("Imitation"), + .height = 12, + .weight = 380, + .description = COMPOUND_STRING( + "It mimics a tree to avoid being attacked\n" + "by enemies. But since its forelegs\n" + "remain green throughout the year, it is\n" + "easily identified as a fake in the winter."), + .pokemonScale = 305, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Sudowoodo, 48, 56), + FRONT_PIC_FEMALE(Sudowoodo, 48, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Sudowoodo, + .frontAnimId = ANIM_H_SLIDE_SLOW, + BACK_PIC(Sudowoodo, 48, 56), + BACK_PIC_FEMALE(Sudowoodo, 48, 56), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Sudowoodo), + ICON(Sudowoodo, 1), + .footprint = gMonFootprint_Sudowoodo, + LEARNSETS(Sudowoodo), + }, +#endif //P_FAMILY_SUDOWOODO + +#if P_FAMILY_HOPPIP + [SPECIES_HOPPIP] = { - .baseHP = 70, - .baseAttack = 110, - .baseDefense = 180, + .baseHP = 35, + .baseAttack = 35, + .baseDefense = 40, .baseSpeed = 50, - .baseSpAttack = 60, - .baseSpDefense = 60, - .types = { TYPE_STEEL, TYPE_ROCK }, - .catchRate = 45, - .expYield = 239, - .evYield_Defense = 3, - .itemRare = ITEM_HARD_STONE, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 35, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, - .abilities = {ABILITY_STURDY, ABILITY_ROCK_HEAD, ABILITY_HEAVY_METAL}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, - - [SPECIES_MEDITITE] = - { - .baseHP = 30, - .baseAttack = 40, - .baseDefense = 55, - .baseSpeed = 60, - .baseSpAttack = 40, + .baseSpAttack = 35, .baseSpDefense = 55, - .types = { TYPE_FIGHTING, TYPE_PSYCHIC}, - .catchRate = 180, - .expYield = 56, - .evYield_Speed = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_PURE_POWER, ABILITY_NONE, ABILITY_TELEPATHY}, - .bodyColor = BODY_COLOR_BLUE, + .types = { TYPE_GRASS, TYPE_FLYING }, + .catchRate = 255, + .expYield = 50, + .evYield_SpDefense = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS}, + .abilities = {ABILITY_CHLOROPHYLL, ABILITY_LEAF_GUARD, ABILITY_INFILTRATOR}, + .bodyColor = BODY_COLOR_PINK, .noFlip = FALSE, + .speciesName = _("Hoppip"), + .cryId = CRY_HOPPIP, + .natDexNum = NATIONAL_DEX_HOPPIP, + .categoryName = _("Cottonweed"), + .height = 4, + .weight = 5, + .description = COMPOUND_STRING( + "This Pokémon drifts and floats with the\n" + "wind. If it senses the approach of strong\n" + "winds, a Hoppip links leaves with others\n" + "to prepare against being blown away."), + .pokemonScale = 562, + .pokemonOffset = -7, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Hoppip, 64, 56), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Hoppip, + .frontAnimId = ANIM_V_SLIDE_WOBBLE, + .enemyMonElevation = 15, + BACK_PIC(Hoppip, 64, 48), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Hoppip), + ICON(Hoppip, 1), + .footprint = gMonFootprint_Hoppip, + LEARNSETS(Hoppip), + .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_SKIPLOOM}), }, - [SPECIES_MEDICHAM] = + [SPECIES_SKIPLOOM] = { - .baseHP = 60, - .baseAttack = 60, - .baseDefense = 75, + .baseHP = 55, + .baseAttack = 45, + .baseDefense = 50, .baseSpeed = 80, - .baseSpAttack = 60, - .baseSpDefense = 75, - .types = { TYPE_FIGHTING, TYPE_PSYCHIC}, - .catchRate = 90, - .expYield = 144, + .baseSpAttack = 45, + .baseSpDefense = 65, + .types = { TYPE_GRASS, TYPE_FLYING }, + .catchRate = 120, + .expYield = 119, .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_PURE_POWER, ABILITY_NONE, ABILITY_TELEPATHY}, - .bodyColor = BODY_COLOR_RED, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS}, + .abilities = {ABILITY_CHLOROPHYLL, ABILITY_LEAF_GUARD, ABILITY_INFILTRATOR}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, + .speciesName = _("Skiploom"), + .cryId = CRY_SKIPLOOM, + .natDexNum = NATIONAL_DEX_SKIPLOOM, + .categoryName = _("Cottonweed"), + .height = 6, + .weight = 10, + .description = COMPOUND_STRING( + "It blossoms when the temperature rises\n" + "above 64 degrees F. Because its flower's\n" + "blooming changes with the temperature,\n" + "it is sometimes used as a thermometer."), + .pokemonScale = 387, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Skiploom, 40, 40), + .frontPicYOffset = 15, + .frontAnimFrames = sAnims_Skiploom, + .frontAnimId = ANIM_RISING_WOBBLE, + .enemyMonElevation = 15, + BACK_PIC(Skiploom, 64, 56), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Skiploom), + ICON(Skiploom, 1), + .footprint = gMonFootprint_Skiploom, + LEARNSETS(Skiploom), + .evolutions = EVOLUTION({EVO_LEVEL, 27, SPECIES_JUMPLUFF}), }, - [SPECIES_ELECTRIKE] = + [SPECIES_JUMPLUFF] = { - .baseHP = 40, - .baseAttack = 45, - .baseDefense = 40, - .baseSpeed = 65, - .baseSpAttack = 65, - .baseSpDefense = 40, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, - .catchRate = 120, - .expYield = 59, + .baseHP = 75, + .baseAttack = 55, + .baseDefense = 70, + .baseSpeed = 110, + .baseSpAttack = 55, + .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 95 : 85, + .types = { TYPE_GRASS, TYPE_FLYING}, + .catchRate = 45, + .expYield = 207, + .evYield_Speed = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS}, + .abilities = {ABILITY_CHLOROPHYLL, ABILITY_LEAF_GUARD, ABILITY_INFILTRATOR}, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + .speciesName = _("Jumpluff"), + .cryId = CRY_JUMPLUFF, + .natDexNum = NATIONAL_DEX_JUMPLUFF, + .categoryName = _("Cottonweed"), + .height = 8, + .weight = 30, + .description = COMPOUND_STRING( + "Jumpluff ride warm southern winds to\n" + "cross the sea and fly to foreign lands.\n" + "This Pokémon lands when it encounters\n" + "cold air while it is floating."), + .pokemonScale = 418, + .pokemonOffset = -4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Jumpluff, 64, 56), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Jumpluff, + .frontAnimId = ANIM_V_SLIDE_WOBBLE_SMALL, + .enemyMonElevation = 9, + BACK_PIC(Jumpluff, 56, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Jumpluff), + ICON(Jumpluff, 2), + .footprint = gMonFootprint_Jumpluff, + LEARNSETS(Jumpluff), + }, +#endif //P_FAMILY_HOPPIP + +#if P_FAMILY_AIPOM + [SPECIES_AIPOM] = + { + .baseHP = 55, + .baseAttack = 70, + .baseDefense = 55, + .baseSpeed = 85, + .baseSpAttack = 40, + .baseSpDefense = 55, + .types = { TYPE_NORMAL, TYPE_NORMAL }, + .catchRate = 45, + .expYield = 72, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, + .growthRate = GROWTH_FAST, .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_STATIC, ABILITY_LIGHTNING_ROD, ABILITY_MINUS}, - .bodyColor = BODY_COLOR_GREEN, + .abilities = {ABILITY_RUN_AWAY, ABILITY_PICKUP, ABILITY_SKILL_LINK}, + .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, - }, - - [SPECIES_MANECTRIC] = + .speciesName = _("Aipom"), + .cryId = CRY_AIPOM, + .natDexNum = NATIONAL_DEX_AIPOM, + .categoryName = _("Long Tail"), + .height = 8, + .weight = 115, + .description = COMPOUND_STRING( + "Its tail ends with a dexterous, handlike\n" + "appendage. However, because it uses the\n" + "tail so much, Aipom's real hands have\n" + "become rather clumsy."), + .pokemonScale = 363, + .pokemonOffset = 6, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Aipom, 32, 64), + FRONT_PIC_FEMALE(Aipom, 32, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Aipom, + .frontAnimId = ANIM_H_JUMPS_V_STRETCH, + BACK_PIC(Aipom, 64, 64), + BACK_PIC_FEMALE(Aipom, 64, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, + PALETTE(Aipom), + ICON(Aipom, 2), + .footprint = gMonFootprint_Aipom, + LEARNSETS(Aipom), + .evolutions = EVOLUTION({EVO_MOVE, MOVE_DOUBLE_HIT, SPECIES_AMBIPOM}), + }, + +#if P_GEN_4_CROSS_EVOS + [SPECIES_AMBIPOM] = { - .baseHP = 70, - .baseAttack = 75, - .baseDefense = 60, - .baseSpeed = 105, - .baseSpAttack = 105, - .baseSpDefense = 60, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, + .baseHP = 75, + .baseAttack = 100, + .baseDefense = 66, + .baseSpeed = 115, + .baseSpAttack = 60, + .baseSpDefense = 66, + .types = { TYPE_NORMAL, TYPE_NORMAL}, .catchRate = 45, - .expYield = 166, + .expYield = 169, .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, + .friendship = 100, + .growthRate = GROWTH_FAST, .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_STATIC, ABILITY_LIGHTNING_ROD, ABILITY_MINUS}, - .bodyColor = BODY_COLOR_YELLOW, + .abilities = {ABILITY_TECHNICIAN, ABILITY_PICKUP, ABILITY_SKILL_LINK}, + .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, - }, - - [SPECIES_PLUSLE] = + .speciesName = _("Ambipom"), + .cryId = CRY_AMBIPOM, + .natDexNum = NATIONAL_DEX_AMBIPOM, + .categoryName = _("Long Tail"), + .height = 12, + .weight = 203, + .description = COMPOUND_STRING( + "They live on large trees. Split into two,\n" + "the tails are so adept at handling and\n" + "doing things, Ambipom rarely uses\n" + "its hands now."), + .pokemonScale = 282, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Ambipom, 64, 64), + FRONT_PIC_FEMALE(Ambipom, 64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Ambipom, + .frontAnimId = ANIM_BACK_AND_LUNGE, + BACK_PIC(Ambipom, 64, 64), + BACK_PIC_FEMALE(Ambipom, 64, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, + PALETTE(Ambipom), + ICON(Ambipom, 2), + .footprint = gMonFootprint_Ambipom, + LEARNSETS(Ambipom), + }, +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_AIPOM + +#if P_FAMILY_SUNKERN + [SPECIES_SUNKERN] = { - .baseHP = 60, - .baseAttack = 50, - .baseDefense = 40, - .baseSpeed = 95, - .baseSpAttack = 85, - .baseSpDefense = 75, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, - .catchRate = 200, - .expYield = 142, - .evYield_Speed = 1, - .itemRare = ITEM_CELL_BATTERY, + .baseHP = 30, + .baseAttack = 30, + .baseDefense = 30, + .baseSpeed = 30, + .baseSpAttack = 30, + .baseSpDefense = 30, + .types = { TYPE_GRASS, TYPE_GRASS }, + .catchRate = 235, + .expYield = 36, + .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_PLUS, ABILITY_NONE, ABILITY_LIGHTNING_ROD}, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, + .abilities = {ABILITY_CHLOROPHYLL, ABILITY_SOLAR_POWER, ABILITY_EARLY_BIRD}, .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, + .speciesName = _("Sunkern"), + .cryId = CRY_SUNKERN, + .natDexNum = NATIONAL_DEX_SUNKERN, + .categoryName = _("Seed"), + .height = 3, + .weight = 18, + .description = COMPOUND_STRING( + "Sunkern try to minimize movement to\n" + "conserve the nutrients they have stored\n" + "in their bodies for evolution. They will\n" + "not eat, subsisting only on morning dew."), + .pokemonScale = 541, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Sunkern, 32, 40), + .frontPicYOffset = 17, + .frontAnimFrames = sAnims_Sunkern, + .frontAnimId = ANIM_H_JUMPS, + BACK_PIC(Sunkern, 48, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Sunkern), + ICON(Sunkern, 1), + .footprint = gMonFootprint_Sunkern, + LEARNSETS(Sunkern), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_SUN_STONE, SPECIES_SUNFLORA}), }, - [SPECIES_MINUN] = + [SPECIES_SUNFLORA] = { - .baseHP = 60, - .baseAttack = 40, - .baseDefense = 50, - .baseSpeed = 95, - .baseSpAttack = 75, + .baseHP = 75, + .baseAttack = 75, + .baseDefense = 55, + .baseSpeed = 30, + .baseSpAttack = 105, .baseSpDefense = 85, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, - .catchRate = 200, - .expYield = 142, - .evYield_Speed = 1, - .itemRare = ITEM_CELL_BATTERY, + .types = { TYPE_GRASS, TYPE_GRASS }, + .catchRate = 120, + .expYield = 149, + .evYield_SpAttack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_MINUS, ABILITY_NONE, ABILITY_VOLT_ABSORB}, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, + .abilities = {ABILITY_CHLOROPHYLL, ABILITY_SOLAR_POWER, ABILITY_EARLY_BIRD}, .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, - }, - - [SPECIES_VOLBEAT] = - { - .baseHP = 65, - .baseAttack = 73, - .baseSpeed = 85, - .baseSpAttack = 47, - #if P_UPDATED_STATS >= GEN_7 - .baseDefense = 75, - .baseSpDefense = 85, - #else - .baseDefense = 55, - .baseSpDefense = 75, - #endif - .types = { TYPE_BUG, TYPE_BUG}, - .catchRate = 150, - .expYield = 151, - .evYield_Speed = 1, - .itemRare = ITEM_BRIGHT_POWDER, - .genderRatio = MON_MALE, - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_ILLUMINATE, ABILITY_SWARM, ABILITY_PRANKSTER}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, - - [SPECIES_ILLUMISE] = + .speciesName = _("Sunflora"), + .cryId = CRY_SUNFLORA, + .natDexNum = NATIONAL_DEX_SUNFLORA, + .categoryName = _("Sun"), + .height = 8, + .weight = 85, + .description = COMPOUND_STRING( + "Sunflora convert solar energy into\n" + "nutrition. They are highly active in the\n" + "warm daytime but suddenly stop moving as\n" + "soon as the sun sets."), + .pokemonScale = 444, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Sunflora, 40, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Sunflora, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Sunflora, 56, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Sunflora), + ICON(Sunflora, 1), + .footprint = gMonFootprint_Sunflora, + LEARNSETS(Sunflora), + }, +#endif //P_FAMILY_SUNKERN + +#if P_FAMILY_YANMA + [SPECIES_YANMA] = { .baseHP = 65, - .baseAttack = 47, - .baseSpeed = 85, - .baseSpAttack = 73, - #if P_UPDATED_STATS >= GEN_7 - .baseDefense = 75, - .baseSpDefense = 85, - #else - .baseDefense = 55, - .baseSpDefense = 75, - #endif - .types = { TYPE_BUG, TYPE_BUG}, - .catchRate = 150, - .expYield = 151, + .baseAttack = 65, + .baseDefense = 45, + .baseSpeed = 95, + .baseSpAttack = 75, + .baseSpDefense = 45, + .types = { TYPE_BUG, TYPE_FLYING }, + .catchRate = 75, + .expYield = 78, .evYield_Speed = 1, - .itemRare = ITEM_BRIGHT_POWDER, - .genderRatio = MON_FEMALE, - .eggCycles = 15, + .itemRare = ITEM_WIDE_LENS, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_OBLIVIOUS, ABILITY_TINTED_LENS, ABILITY_PRANKSTER}, - .bodyColor = BODY_COLOR_PURPLE, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_SPEED_BOOST, ABILITY_COMPOUND_EYES, ABILITY_FRISK}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, - }, - - [SPECIES_ROSELIA] = + .speciesName = _("Yanma"), + .cryId = CRY_YANMA, + .natDexNum = NATIONAL_DEX_YANMA, + .categoryName = _("Clear Wing"), + .height = 12, + .weight = 380, + .description = COMPOUND_STRING( + "It can see 360 degrees without moving\n" + "its eyes. It is a great flier capable of\n" + "making sudden stops and turning midair to\n" + "quickly chase down targeted prey."), + .pokemonScale = 274, + .pokemonOffset = -1, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Yanma, 64, 40), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Yanma, + .frontAnimId = ANIM_FIGURE_8, + .enemyMonElevation = 13, + BACK_PIC(Yanma, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Yanma), + ICON(Yanma, 1), + .footprint = gMonFootprint_Yanma, + LEARNSETS(Yanma), + .evolutions = EVOLUTION({EVO_MOVE, MOVE_ANCIENT_POWER, SPECIES_YANMEGA}), + }, + +#if P_GEN_4_CROSS_EVOS + [SPECIES_YANMEGA] = { - .baseHP = 50, - .baseAttack = 60, - .baseDefense = 45, - .baseSpeed = 65, - .baseSpAttack = 100, - .baseSpDefense = 80, - .types = { TYPE_GRASS, TYPE_POISON}, - .catchRate = 150, - .expYield = 140, - .evYield_SpAttack = 2, - .itemRare = ITEM_POISON_BARB, + .baseHP = 86, + .baseAttack = 76, + .baseDefense = 86, + .baseSpeed = 95, + .baseSpAttack = 116, + .baseSpDefense = 56, + .types = { TYPE_BUG, TYPE_FLYING}, + .catchRate = 30, + .expYield = 180, + .evYield_Attack = 2, + .itemRare = ITEM_WIDE_LENS, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS}, - .abilities = {ABILITY_NATURAL_CURE, ABILITY_POISON_POINT, ABILITY_LEAF_GUARD}, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_SPEED_BOOST, ABILITY_TINTED_LENS, ABILITY_FRISK}, .bodyColor = BODY_COLOR_GREEN, - .noFlip = TRUE, + .noFlip = FALSE, + .speciesName = _("Yanmega"), + .cryId = CRY_YANMEGA, + .natDexNum = NATIONAL_DEX_YANMEGA, + .categoryName = _("Ogre Darner"), + .height = 19, + .weight = 515, + .description = COMPOUND_STRING( + "This six-legged Pokémon is easily capable\n" + "of transporting an adult in flight. It is\n" + "adept at biting apart foes while flying\n" + "by at high speed."), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 326, + .trainerOffset = 4, + FRONT_PIC(Yanmega, 64, 56), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Yanmega, + .frontAnimId = ANIM_H_VIBRATE, + .enemyMonElevation = 6, + BACK_PIC(Yanmega, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_H_VIBRATE, + PALETTE(Yanmega), + ICON(Yanmega, 1), + .footprint = gMonFootprint_Yanmega, + LEARNSETS(Yanmega), + }, +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_YANMA + +#if P_FAMILY_WOOPER +#define WOOPER_MISC_INFO \ + .baseHP = 55, \ + .baseAttack = 45, \ + .baseDefense = 45, \ + .baseSpeed = 15, \ + .baseSpAttack = 25, \ + .baseSpDefense = 25, \ + .catchRate = 255, \ + .expYield = 42, \ + .evYield_HP = 1, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, \ + .noFlip = FALSE, \ + .speciesName = _("Wooper"), \ + .cryId = CRY_WOOPER, \ + .natDexNum = NATIONAL_DEX_WOOPER, \ + .height = 4, \ + .pokemonScale = 479, \ + .pokemonOffset = 21, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Wooper, \ + .formSpeciesIdTable = sWooperFormSpeciesIdTable + + [SPECIES_WOOPER] = + { + WOOPER_MISC_INFO, + .types = { TYPE_WATER, TYPE_GROUND }, + .abilities = {ABILITY_DAMP, ABILITY_WATER_ABSORB, ABILITY_UNAWARE}, + .bodyColor = BODY_COLOR_BLUE, + .categoryName = _("Water Fish"), + .weight = 85, + .description = COMPOUND_STRING( + "Wooper usually live in water but come\n" + "out onto land seeking food occasionally.\n" + "On land, they coat their bodies with a\n" + "gooey, toxic film."), + FRONT_PIC(Wooper, 40, 32), + FRONT_PIC_FEMALE(Wooper, 40, 32), + .frontPicYOffset = 16, + .frontAnimFrames = sAnims_Wooper, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Wooper, 64, 40), + BACK_PIC_FEMALE(Wooper, 64, 40), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_V_STRETCH, + PALETTE(Wooper), + ICON(Wooper, 0), + LEARNSETS(Wooper), + .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_QUAGSIRE}), }, - [SPECIES_GULPIN] = + [SPECIES_QUAGSIRE] = { - .baseHP = 70, - .baseAttack = 43, - .baseDefense = 53, - .baseSpeed = 40, - .baseSpAttack = 43, - .baseSpDefense = 53, - .types = { TYPE_POISON, TYPE_POISON}, - .catchRate = 225, - .expYield = 60, - .evYield_HP = 1, - .itemCommon = ITEM_ORAN_BERRY, - .itemRare = ITEM_SITRUS_BERRY, + .baseHP = 95, + .baseAttack = 85, + .baseDefense = 85, + .baseSpeed = 35, + .baseSpAttack = 65, + .baseSpDefense = 65, + .types = { TYPE_WATER, TYPE_GROUND }, + .catchRate = 90, + .expYield = 151, + .evYield_HP = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_LIQUID_OOZE, ABILITY_STICKY_HOLD, ABILITY_GLUTTONY}, - .bodyColor = BODY_COLOR_GREEN, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, + .abilities = {ABILITY_DAMP, ABILITY_WATER_ABSORB, ABILITY_UNAWARE}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - }, - - [SPECIES_SWALOT] = + .speciesName = _("Quagsire"), + .cryId = CRY_QUAGSIRE, + .natDexNum = NATIONAL_DEX_QUAGSIRE, + .categoryName = _("Water Fish"), + .height = 14, + .weight = 750, + .description = COMPOUND_STRING( + "A Quagsire hunts by leaving its mouth wide\n" + "open in water and waiting for its prey to\n" + "blunder in. Because it doesn't move, it\n" + "does not get very hungry."), + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Quagsire, 64, 56), + FRONT_PIC_FEMALE(Quagsire, 64, 56), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Quagsire, + .frontAnimId = ANIM_H_STRETCH, + BACK_PIC(Quagsire, 64, 56), + BACK_PIC_FEMALE(Quagsire, 64, 56), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Quagsire), + ICON(Quagsire, 0), + .footprint = gMonFootprint_Quagsire, + LEARNSETS(Quagsire), + }, + +#if P_PALDEAN_FORMS + [SPECIES_WOOPER_PALDEAN] = + { + WOOPER_MISC_INFO, + .types = { TYPE_POISON, TYPE_GROUND }, + .abilities = {ABILITY_POISON_POINT, ABILITY_WATER_ABSORB, ABILITY_UNAWARE}, + .bodyColor = BODY_COLOR_BROWN, + .isPaldeanForm = TRUE, + .categoryName = _("Poison Fish"), + .weight = 110, + .description = COMPOUND_STRING( + "After losing a territorial struggle,\n" + "Wooper began living on land.\n" + "The Pokémon changed over time, developing\n" + "a poisonous film to protect its body."), + FRONT_PIC(WooperPaldean, 40, 32), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_WooperPaldean, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(WooperPaldean, 64, 40), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_V_STRETCH, + PALETTE(WooperPaldean), + //ICON(WooperPaldean, 0), + LEARNSETS(WooperPaldean), + .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_CLODSIRE}), + }, + + [SPECIES_CLODSIRE] = { - .baseHP = 100, - .baseAttack = 73, - .baseDefense = 83, - .baseSpeed = 55, - .baseSpAttack = 73, - .baseSpDefense = 83, - .types = { TYPE_POISON, TYPE_POISON}, - .catchRate = 75, - .expYield = 163, - .evYield_HP = 2, - .itemCommon = ITEM_ORAN_BERRY, - .itemRare = ITEM_SITRUS_BERRY, + .baseHP = 130, + .baseAttack = 75, + .baseDefense = 60, + .baseSpeed = 20, + .baseSpAttack = 45, + .baseSpDefense = 100, + .types = { TYPE_POISON, TYPE_GROUND }, + .catchRate = 90, + .expYield = 151, + .evYield_HP = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_LIQUID_OOZE, ABILITY_STICKY_HOLD, ABILITY_GLUTTONY}, - .bodyColor = BODY_COLOR_PURPLE, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, + .abilities = {ABILITY_POISON_POINT, ABILITY_WATER_ABSORB, ABILITY_UNAWARE}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - }, - - [SPECIES_CARVANHA] = + .speciesName = _("Clodsire"), + .cryId = CRY_CLODSIRE, + .natDexNum = NATIONAL_DEX_CLODSIRE, + .categoryName = _("Spiny Fish"), + .height = 18, + .weight = 2230, + .description = COMPOUND_STRING( + "When attacked, this Pokémon will\n" + "retaliate by sticking thick spines out\n" + "from its body. It's a risky move\n" + "that puts everything on the line."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Clodsire, 64, 64), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Clodsire, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Clodsire, 64, 64), + .backPicYOffset = 15, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Clodsire), + ICON(Clodsire, 2), + //.footprint = gMonFootprint_Clodsire, + LEARNSETS(Clodsire), + }, +#endif //P_PALDEAN_FORMS +#endif //P_FAMILY_WOOPER + +#if P_FAMILY_MURKROW + [SPECIES_MURKROW] = { - .baseHP = 45, - .baseAttack = 90, - .baseDefense = 20, - .baseSpeed = 65, - .baseSpAttack = 65, - .baseSpDefense = 20, - .types = { TYPE_WATER, TYPE_DARK}, - .catchRate = 225, - .expYield = 61, - .evYield_Attack = 1, - .itemRare = ITEM_DEEP_SEA_TOOTH, + .baseHP = 60, + .baseAttack = 85, + .baseDefense = 42, + .baseSpeed = 91, + .baseSpAttack = 85, + .baseSpDefense = 42, + .types = { TYPE_DARK, TYPE_FLYING }, + .catchRate = 30, + .expYield = 81, + .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, - .abilities = {ABILITY_ROUGH_SKIN, ABILITY_NONE, ABILITY_SPEED_BOOST}, - .bodyColor = BODY_COLOR_RED, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + .abilities = {ABILITY_INSOMNIA, ABILITY_SUPER_LUCK, ABILITY_PRANKSTER}, + .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, - }, - - [SPECIES_SHARPEDO] = + .speciesName = _("Murkrow"), + .cryId = CRY_MURKROW, + .natDexNum = NATIONAL_DEX_MURKROW, + .categoryName = _("Darkness"), + .height = 5, + .weight = 21, + .description = COMPOUND_STRING( + "Murkrow were feared as the alleged\n" + "bearers of ill fortune. It shows strong\n" + "interest in anything that sparkles. It will\n" + "even try to steal rings from women."), + .pokemonScale = 401, + .pokemonOffset = -8, + .trainerScale = 256, + .trainerOffset = 1, + FRONT_PIC(Murkrow, 48, 40), + FRONT_PIC_FEMALE(Murkrow, 48, 40), + .frontPicYOffset = 15, + .frontAnimFrames = sAnims_Murkrow, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 12, + BACK_PIC(Murkrow, 40, 56), + BACK_PIC_FEMALE(Murkrow, 40, 56), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Murkrow), + ICON(Murkrow, 2), + .footprint = gMonFootprint_Murkrow, + LEARNSETS(Murkrow), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_DUSK_STONE, SPECIES_HONCHKROW}), + }, + +#if P_GEN_4_CROSS_EVOS + [SPECIES_HONCHKROW] = { - .baseHP = 70, - .baseAttack = 120, - .baseDefense = 40, - .baseSpeed = 95, - .baseSpAttack = 95, - .baseSpDefense = 40, - .types = { TYPE_WATER, TYPE_DARK}, - .catchRate = 60, - .expYield = 161, + .baseHP = 100, + .baseAttack = 125, + .baseDefense = 52, + .baseSpeed = 71, + .baseSpAttack = 105, + .baseSpDefense = 52, + .types = { TYPE_DARK, TYPE_FLYING}, + .catchRate = 30, + .expYield = 177, .evYield_Attack = 2, - .itemRare = ITEM_DEEP_SEA_TOOTH, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, - .abilities = {ABILITY_ROUGH_SKIN, ABILITY_NONE, ABILITY_SPEED_BOOST}, - .bodyColor = BODY_COLOR_BLUE, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + .abilities = {ABILITY_INSOMNIA, ABILITY_SUPER_LUCK, ABILITY_MOXIE}, + .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, - }, - - [SPECIES_WAILMER] = + .speciesName = _("Honchkrow"), + .cryId = CRY_HONCHKROW, + .natDexNum = NATIONAL_DEX_HONCHKROW, + .categoryName = _("Big Boss"), + .height = 9, + .weight = 273, + .description = COMPOUND_STRING( + "Becoming active at night, it is known\n" + "to swarm with numerous Murkrow in tow.\n" + "It is said that it never forgives the\n" + "mistakes of its cronies."), + .pokemonScale = 338, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Honchkrow, 64, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Honchkrow, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + BACK_PIC(Honchkrow, 64, 48), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_H_STRETCH, + PALETTE(Honchkrow), + ICON(Honchkrow, 2), + .footprint = gMonFootprint_Honchkrow, + LEARNSETS(Honchkrow), + }, +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MURKROW + +#if P_FAMILY_MISDREAVUS + [SPECIES_MISDREAVUS] = { - .baseHP = 130, - .baseAttack = 70, - .baseDefense = 35, - .baseSpeed = 60, - .baseSpAttack = 70, - .baseSpDefense = 35, - .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 125, - .expYield = 80, - .evYield_HP = 1, + .baseHP = 60, + .baseAttack = 60, + .baseDefense = 60, + .baseSpeed = 85, + .baseSpAttack = 85, + .baseSpDefense = 85, + .types = { TYPE_GHOST, TYPE_GHOST }, + .catchRate = 45, + .expYield = 87, + .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 40, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_WATER_2}, - .abilities = {ABILITY_WATER_VEIL, ABILITY_OBLIVIOUS, ABILITY_PRESSURE}, - .bodyColor = BODY_COLOR_BLUE, + .eggCycles = 25, + .friendship = 35, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + .speciesName = _("Misdreavus"), + .cryId = CRY_MISDREAVUS, + .natDexNum = NATIONAL_DEX_MISDREAVUS, + .categoryName = _("Screech"), + .height = 7, + .weight = 10, + .description = COMPOUND_STRING( + "A Misdreavus frightens people with a\n" + "creepy, sobbing cry. It apparently uses\n" + "its red spheres to absorb the fear of foes\n" + "as its nutrition."), + .pokemonScale = 407, + .pokemonOffset = -8, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Misdreavus, 48, 48), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_Misdreavus, + .frontAnimId = ANIM_V_SLIDE_WOBBLE, + .enemyMonElevation = 12, + BACK_PIC(Misdreavus, 56, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_H_VIBRATE, + PALETTE(Misdreavus), + ICON(Misdreavus, 0), + .footprint = gMonFootprint_Misdreavus, + LEARNSETS(Misdreavus), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_DUSK_STONE, SPECIES_MISMAGIUS}), + }, + +#if P_GEN_4_CROSS_EVOS + [SPECIES_MISMAGIUS] = + { + .baseHP = 60, + .baseAttack = 60, + .baseDefense = 60, + .baseSpeed = 105, + .baseSpAttack = 105, + .baseSpDefense = 105, + .types = { TYPE_GHOST, TYPE_GHOST}, + .catchRate = 45, + .expYield = 173, + .evYield_SpAttack = 1, + .evYield_SpDefense = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = 35, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, + .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, + .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, + .speciesName = _("Mismagius"), + .cryId = CRY_MISMAGIUS, + .natDexNum = NATIONAL_DEX_MISMAGIUS, + .categoryName = _("Magical"), + .height = 9, + .weight = 44, + .description = COMPOUND_STRING( + "Its cries sound like incantations.\n" + "Those hearing it are tormented by\n" + "headaches and hallucinations.\n" + "It appears where you least expect it."), + .pokemonScale = 338, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Mismagius, 56, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_Mismagius, + .frontAnimId = ANIM_H_SLIDE_WOBBLE, + .enemyMonElevation = 3, + BACK_PIC(Mismagius, 56, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Mismagius), + ICON(Mismagius, 2), + .footprint = gMonFootprint_Mismagius, + LEARNSETS(Mismagius), + }, +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_MISDREAVUS + +#if P_FAMILY_UNOWN +#define UNOWN_MISC_INFO(letter) \ + .baseHP = 48, \ + .baseAttack = 72, \ + .baseDefense = 48, \ + .baseSpeed = 48, \ + .baseSpAttack = 72, \ + .baseSpDefense = 48, \ + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, \ + .catchRate = 225, \ + .expYield = 118, \ + .evYield_Attack = 1, \ + .evYield_SpAttack = 1, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 40, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = {EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ + .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, \ + .bodyColor = BODY_COLOR_BLACK, \ + .speciesName = _("Unown"), \ + .cryId = CRY_UNOWN, \ + .natDexNum = NATIONAL_DEX_UNOWN, \ + .categoryName = _("Symbol"), \ + .height = 5, \ + .weight = 50, \ + .description = gUnownPokedexText, \ + .pokemonScale = 411, \ + .pokemonOffset = 2, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .frontPicYOffset = 16, \ + .frontAnimFrames = sAnims_Unown ##letter, \ + .frontAnimId = ANIM_ZIGZAG_FAST, \ + .enemyMonElevation = 8, \ + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, \ + PALETTE(Unown), \ + ICON(Unown ##letter, 0), \ + .footprint = gMonFootprint_Unown, \ + LEARNSETS(Unown), \ + .formSpeciesIdTable = sUnownFormSpeciesIdTable + + [SPECIES_UNOWN] = + { + UNOWN_MISC_INFO(A), + .noFlip = FALSE, + FRONT_PIC(UnownA, 24, 40), + BACK_PIC(UnownA, 24, 48), + .backPicYOffset = 8, + }, + + [SPECIES_UNOWN_B] = + { + UNOWN_MISC_INFO(B), + .noFlip = TRUE, + FRONT_PIC(UnownB, 24, 32), + BACK_PIC(UnownB, 40, 48), + .backPicYOffset = 9, }, - [SPECIES_WAILORD] = + [SPECIES_UNOWN_C] = { - .baseHP = 170, - .baseAttack = 90, - .baseDefense = 45, - .baseSpeed = 60, - .baseSpAttack = 90, - .baseSpDefense = 45, - .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 60, - .expYield = 175, - .evYield_HP = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 40, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_WATER_2}, - .abilities = {ABILITY_WATER_VEIL, ABILITY_OBLIVIOUS, ABILITY_PRESSURE}, - .bodyColor = BODY_COLOR_BLUE, + UNOWN_MISC_INFO(C), + .noFlip = TRUE, + FRONT_PIC(UnownC, 32, 32), + BACK_PIC(UnownC, 48, 56), + .backPicYOffset = 6, + }, + + [SPECIES_UNOWN_D] = + { + UNOWN_MISC_INFO(D), + .noFlip = TRUE, + FRONT_PIC(UnownD, 32, 32), + BACK_PIC(UnownD, 40, 48), + .backPicYOffset = 8, + }, + + [SPECIES_UNOWN_E] = + { + UNOWN_MISC_INFO(E), + .noFlip = TRUE, + FRONT_PIC(UnownE, 32, 32), + BACK_PIC(UnownE, 40, 48), + .backPicYOffset = 10, + }, + + [SPECIES_UNOWN_F] = + { + UNOWN_MISC_INFO(F), + .noFlip = TRUE, + FRONT_PIC(UnownF, 32, 32), + BACK_PIC(UnownF, 48, 48), + .backPicYOffset = 10, + }, + + [SPECIES_UNOWN_G] = + { + UNOWN_MISC_INFO(G), + .noFlip = TRUE, + FRONT_PIC(UnownG, 24, 40), + BACK_PIC(UnownG, 40, 56), + .backPicYOffset = 5, + }, + + [SPECIES_UNOWN_H] = + { + UNOWN_MISC_INFO(H), + .noFlip = TRUE, + FRONT_PIC(UnownH, 32, 32), + BACK_PIC(UnownH, 48, 48), + .backPicYOffset = 8, + }, + + [SPECIES_UNOWN_I] = + { + UNOWN_MISC_INFO(I), .noFlip = FALSE, + FRONT_PIC(UnownI, 24, 32), + BACK_PIC(UnownI, 24, 56), + .backPicYOffset = 7, + }, + + [SPECIES_UNOWN_J] = + { + UNOWN_MISC_INFO(J), + .noFlip = TRUE, + FRONT_PIC(UnownJ, 24, 32), + BACK_PIC(UnownJ, 32, 48), + .backPicYOffset = 9, + }, + + [SPECIES_UNOWN_K] = + { + UNOWN_MISC_INFO(K), + .noFlip = TRUE, + FRONT_PIC(UnownK, 32, 32), + BACK_PIC(UnownK, 40, 56), + .backPicYOffset = 7, }, - [SPECIES_NUMEL] = + [SPECIES_UNOWN_L] = { - .baseHP = 60, - .baseAttack = 60, - .baseDefense = 40, - .baseSpeed = 35, - .baseSpAttack = 65, - .baseSpDefense = 45, - .types = { TYPE_FIRE, TYPE_GROUND}, - .catchRate = 255, - .expYield = 61, - .evYield_SpAttack = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_OBLIVIOUS, ABILITY_SIMPLE, ABILITY_OWN_TEMPO}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, + UNOWN_MISC_INFO(L), + .noFlip = TRUE, + FRONT_PIC(UnownL, 24, 32), + BACK_PIC(UnownL, 32, 48), + .backPicYOffset = 10, }, - [SPECIES_CAMERUPT] = + [SPECIES_UNOWN_M] = { - .baseHP = 70, - .baseAttack = 100, - .baseDefense = 70, - .baseSpeed = 40, - .baseSpAttack = 105, - .baseSpDefense = 75, - .types = { TYPE_FIRE, TYPE_GROUND}, - .catchRate = 150, - .expYield = 161, - .evYield_Attack = 1, - .evYield_SpAttack = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_MAGMA_ARMOR, ABILITY_SOLID_ROCK, ABILITY_ANGER_POINT}, - .bodyColor = BODY_COLOR_RED, + UNOWN_MISC_INFO(M), .noFlip = FALSE, + FRONT_PIC(UnownM, 32, 32), + BACK_PIC(UnownM, 48, 40), + .backPicYOffset = 13, }, - [SPECIES_TORKOAL] = + [SPECIES_UNOWN_N] = { - .baseHP = 70, - .baseAttack = 85, - .baseDefense = 140, - .baseSpeed = 20, - .baseSpAttack = 85, - .baseSpDefense = 70, - .types = { TYPE_FIRE, TYPE_FIRE}, - .catchRate = 90, - .expYield = 165, - .evYield_Defense = 2, - .itemRare = ITEM_CHARCOAL, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_WHITE_SMOKE, ABILITY_DROUGHT, ABILITY_SHELL_ARMOR}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, + UNOWN_MISC_INFO(N), + .noFlip = TRUE, + FRONT_PIC(UnownN, 32, 24), + BACK_PIC(UnownN, 48, 40), + .backPicYOffset = 13, }, - [SPECIES_SPOINK] = + [SPECIES_UNOWN_O] = { - .baseHP = 60, - .baseAttack = 25, - .baseDefense = 35, - .baseSpeed = 60, - .baseSpAttack = 70, - .baseSpDefense = 80, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - .catchRate = 255, - .expYield = 66, - .evYield_SpDefense = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_THICK_FAT, ABILITY_OWN_TEMPO, ABILITY_GLUTTONY}, - .bodyColor = BODY_COLOR_BLACK, + UNOWN_MISC_INFO(O), .noFlip = FALSE, + FRONT_PIC(UnownO, 32, 32), + BACK_PIC(UnownO, 48, 48), + .backPicYOffset = 8, }, - [SPECIES_GRUMPIG] = + [SPECIES_UNOWN_P] = { - .baseHP = 80, - .baseAttack = 45, - .baseDefense = 65, - .baseSpeed = 80, - .baseSpAttack = 90, - .baseSpDefense = 110, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - .catchRate = 60, - .expYield = 165, - .evYield_SpDefense = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_THICK_FAT, ABILITY_OWN_TEMPO, ABILITY_GLUTTONY}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, + UNOWN_MISC_INFO(P), + .noFlip = TRUE, + FRONT_PIC(UnownP, 24, 32), + BACK_PIC(UnownP, 32, 48), + .backPicYOffset = 10, }, - [SPECIES_SPINDA] = + [SPECIES_UNOWN_Q] = { - .baseHP = 60, - .baseAttack = 60, - .baseDefense = 60, - .baseSpeed = 60, - .baseSpAttack = 60, - .baseSpDefense = 60, - .types = { TYPE_NORMAL, TYPE_NORMAL}, - .catchRate = 255, - .expYield = 126, - .evYield_SpAttack = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_OWN_TEMPO, ABILITY_TANGLED_FEET, ABILITY_CONTRARY}, - .bodyColor = BODY_COLOR_BROWN, + UNOWN_MISC_INFO(Q), .noFlip = TRUE, + FRONT_PIC(UnownQ, 32, 24), + BACK_PIC(UnownQ, 40, 40), + .backPicYOffset = 15, }, - [SPECIES_TRAPINCH] = + [SPECIES_UNOWN_R] = { - .baseHP = 45, - .baseAttack = 100, - .baseDefense = 45, - .baseSpeed = 10, - .baseSpAttack = 45, - .baseSpDefense = 45, - .types = { TYPE_GROUND, TYPE_GROUND}, - .catchRate = 255, - .expYield = 58, - .evYield_Attack = 1, - .itemRare = ITEM_SOFT_SAND, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - #if P_UPDATED_EGG_GROUPS >= GEN_8 - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_DRAGON}, - #else - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - #endif - .abilities = {ABILITY_HYPER_CUTTER, ABILITY_ARENA_TRAP, ABILITY_SHEER_FORCE}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, + UNOWN_MISC_INFO(R), + .noFlip = TRUE, + FRONT_PIC(UnownR, 24, 32), + BACK_PIC(UnownR, 32, 40), + .backPicYOffset = 12, }, - [SPECIES_VIBRAVA] = + [SPECIES_UNOWN_S] = { - .baseHP = 50, - .baseAttack = 70, - .baseDefense = 50, - .baseSpeed = 70, - .baseSpAttack = 50, - .baseSpDefense = 50, - .types = { TYPE_GROUND, TYPE_DRAGON}, - .catchRate = 120, - .expYield = 119, - .evYield_Attack = 1, - .evYield_Speed = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - #if P_UPDATED_EGG_GROUPS >= GEN_8 - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_DRAGON}, - #else - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - #endif - .abilities = {ABILITY_LEVITATE, ABILITY_LEVITATE, ABILITY_LEVITATE}, - .bodyColor = BODY_COLOR_GREEN, + UNOWN_MISC_INFO(S), + .noFlip = TRUE, + FRONT_PIC(UnownS, 32, 40), + BACK_PIC(UnownS, 40, 56), + .backPicYOffset = 4, + }, + + [SPECIES_UNOWN_T] = + { + UNOWN_MISC_INFO(T), .noFlip = FALSE, + FRONT_PIC(UnownT, 24, 32), + BACK_PIC(UnownT, 32, 40), + .backPicYOffset = 13, }, - [SPECIES_FLYGON] = + [SPECIES_UNOWN_U] = { - .baseHP = 80, - .baseAttack = 100, - .baseDefense = 80, - .baseSpeed = 100, - .baseSpAttack = 80, - .baseSpDefense = 80, - .types = { TYPE_GROUND, TYPE_DRAGON}, - .catchRate = 45, - .expYield = 234, - .evYield_Attack = 1, - .evYield_Speed = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - #if P_UPDATED_EGG_GROUPS >= GEN_8 - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_DRAGON}, - #else - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - #endif - .abilities = {ABILITY_LEVITATE, ABILITY_LEVITATE, ABILITY_LEVITATE}, - .bodyColor = BODY_COLOR_GREEN, + UNOWN_MISC_INFO(U), .noFlip = FALSE, + FRONT_PIC(UnownU, 32, 32), + BACK_PIC(UnownU, 48, 40), + .backPicYOffset = 13, }, - [SPECIES_CACNEA] = + [SPECIES_UNOWN_V] = { - .baseHP = 50, - .baseAttack = 85, - .baseDefense = 40, - .baseSpeed = 35, - .baseSpAttack = 85, - .baseSpDefense = 40, - .types = { TYPE_GRASS, TYPE_GRASS}, - .catchRate = 190, - .expYield = 67, - .evYield_SpAttack = 1, - .itemRare = ITEM_STICKY_BARB, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = 35, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_SAND_VEIL, ABILITY_NONE, ABILITY_WATER_ABSORB}, - .bodyColor = BODY_COLOR_GREEN, + UNOWN_MISC_INFO(V), + .noFlip = TRUE, + FRONT_PIC(UnownV, 32, 32), + BACK_PIC(UnownV, 40, 48), + .backPicYOffset = 11, + }, + + [SPECIES_UNOWN_W] = + { + UNOWN_MISC_INFO(W), .noFlip = FALSE, + FRONT_PIC(UnownW, 32, 32), + BACK_PIC(UnownW, 40, 40), + .backPicYOffset = 13, }, - [SPECIES_CACTURNE] = + [SPECIES_UNOWN_X] = { - .baseHP = 70, - .baseAttack = 115, - .baseDefense = 60, - .baseSpeed = 55, - .baseSpAttack = 115, - .baseSpDefense = 60, - .types = { TYPE_GRASS, TYPE_DARK}, - .catchRate = 60, - .expYield = 166, - .evYield_Attack = 1, - .evYield_SpAttack = 1, - .itemRare = ITEM_STICKY_BARB, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = 35, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_SAND_VEIL, ABILITY_NONE, ABILITY_WATER_ABSORB}, - .bodyColor = BODY_COLOR_GREEN, + UNOWN_MISC_INFO(X), .noFlip = FALSE, + FRONT_PIC(UnownX, 24, 24), + BACK_PIC(UnownX, 40, 40), + .backPicYOffset = 15, }, - [SPECIES_SWABLU] = + [SPECIES_UNOWN_Y] = { - .baseHP = 45, - .baseAttack = 40, - .baseDefense = 60, - .baseSpeed = 50, - .baseSpAttack = 40, - .baseSpDefense = 75, - .types = { TYPE_NORMAL, TYPE_FLYING}, - .catchRate = 255, - .expYield = 62, - .evYield_SpDefense = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_NATURAL_CURE, ABILITY_NONE, ABILITY_CLOUD_NINE}, - .bodyColor = BODY_COLOR_BLUE, + UNOWN_MISC_INFO(Y), .noFlip = FALSE, + FRONT_PIC(UnownY, 24, 32), + BACK_PIC(UnownY, 32, 48), + .backPicYOffset = 10, + }, + + [SPECIES_UNOWN_Z] = + { + UNOWN_MISC_INFO(Z), + .noFlip = TRUE, + FRONT_PIC(UnownZ, 24, 32), + BACK_PIC(UnownZ, 32, 48), + .backPicYOffset = 10, }, - [SPECIES_ALTARIA] = + [SPECIES_UNOWN_EMARK] = { - .baseHP = 75, - .baseAttack = 70, - .baseDefense = 90, - .baseSpeed = 80, - .baseSpAttack = 70, - .baseSpDefense = 105, - .types = { TYPE_DRAGON, TYPE_FLYING}, - .catchRate = 45, - .expYield = 172, - .evYield_SpDefense = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_NATURAL_CURE, ABILITY_NONE, ABILITY_CLOUD_NINE}, - .bodyColor = BODY_COLOR_BLUE, + UNOWN_MISC_INFO(ExclamationMark), .noFlip = FALSE, + FRONT_PIC(UnownExclamationMark, 24, 40), + BACK_PIC(UnownExclamationMark, 24, 56), + .backPicYOffset = 6, }, - [SPECIES_ZANGOOSE] = + [SPECIES_UNOWN_QMARK] = { - .baseHP = 73, - .baseAttack = 115, - .baseDefense = 60, - .baseSpeed = 90, - .baseSpAttack = 60, - .baseSpDefense = 60, - .types = { TYPE_NORMAL, TYPE_NORMAL}, - .catchRate = 90, - .expYield = 160, - .evYield_Attack = 2, - .itemRare = ITEM_QUICK_CLAW, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_IMMUNITY, ABILITY_NONE, ABILITY_TOXIC_BOOST}, - .bodyColor = BODY_COLOR_WHITE, + UNOWN_MISC_INFO(QuestionMark), .noFlip = TRUE, + FRONT_PIC(UnownQuestionMark, 24, 40), + BACK_PIC(UnownQuestionMark, 32, 56), + .backPicYOffset = 6, }, +#endif //P_FAMILY_UNOWN - [SPECIES_SEVIPER] = +#if P_FAMILY_WOBBUFFET +#if P_GEN_3_CROSS_EVOS + [SPECIES_WYNAUT] = { - .baseHP = 73, - .baseAttack = 100, - .baseDefense = 60, - .baseSpeed = 65, - .baseSpAttack = 100, - .baseSpDefense = 60, - .types = { TYPE_POISON, TYPE_POISON}, - .catchRate = 90, - .expYield = 160, - .evYield_Attack = 1, - .evYield_SpAttack = 1, - .itemRare = ITEM_SHED_SHELL, + .baseHP = 95, + .baseAttack = 23, + .baseDefense = 48, + .baseSpeed = 23, + .baseSpAttack = 23, + .baseSpDefense = 48, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, + .catchRate = 125, + .expYield = 52, + .evYield_HP = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_INFILTRATOR}, - .bodyColor = BODY_COLOR_BLACK, - .noFlip = TRUE, - }, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_SHADOW_TAG, ABILITY_NONE, ABILITY_TELEPATHY}, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + .speciesName = _("Wynaut"), + .cryId = CRY_WYNAUT, + .natDexNum = NATIONAL_DEX_WYNAUT, + .categoryName = _("Bright"), + .height = 6, + .weight = 140, + .description = COMPOUND_STRING( + "A Wynaut loves to eat sweet fruits.\n" + "It cleverly picks fruits using its earlike\n" + "arms. They gather in fruit gardens, drawn\n" + "by the fragrance."), + .pokemonScale = 484, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Wynaut, 48, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Wynaut, + .frontAnimId = ANIM_H_JUMPS_V_STRETCH, + .frontAnimDelay = 15, + BACK_PIC(Wynaut, 48, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Wynaut), + ICON(Wynaut, 0), + .footprint = gMonFootprint_Wynaut, + LEARNSETS(Wynaut), + .evolutions = EVOLUTION({EVO_LEVEL, 15, SPECIES_WOBBUFFET}), + }, +#endif //P_GEN_3_CROSS_EVOS - [SPECIES_LUNATONE] = + [SPECIES_WOBBUFFET] = { - .baseAttack = 55, - .baseDefense = 65, - .baseSpeed = 70, - .baseSpAttack = 95, - .baseSpDefense = 85, - #if P_UPDATED_STATS >= GEN_7 - .baseHP = 90, - #else - .baseHP = 70, - #endif - .types = { TYPE_ROCK, TYPE_PSYCHIC}, + .baseHP = 190, + .baseAttack = 33, + .baseDefense = 58, + .baseSpeed = 33, + .baseSpAttack = 33, + .baseSpDefense = 58, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, .catchRate = 45, - .expYield = 161, + .expYield = 142, + .evYield_HP = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, + .abilities = {ABILITY_SHADOW_TAG, ABILITY_NONE, ABILITY_TELEPATHY}, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + .speciesName = _("Wobbuffet"), + .cryId = CRY_WOBBUFFET, + .natDexNum = NATIONAL_DEX_WOBBUFFET, + .categoryName = _("Patient"), + .height = 13, + .weight = 285, + .description = COMPOUND_STRING( + "Usually docile, a Wobbuffet strikes back\n" + "ferociously if its black tail is attacked.\n" + "It makes its lair in caves where it waits\n" + "for nightfall."), + .pokemonScale = 274, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Wobbuffet, 64, 56), + FRONT_PIC_FEMALE(Wobbuffet, 64, 56), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Wobbuffet, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Wobbuffet, 56, 56), + BACK_PIC_FEMALE(Wobbuffet, 56, 56), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_V_STRETCH, + PALETTE(Wobbuffet), + ICON(Wobbuffet, 0), + #if P_CUSTOM_GENDER_DIFF_ICONS == TRUE + ICON_FEMALE(Wobbuffet, 0), + #endif + .footprint = gMonFootprint_Wobbuffet, + LEARNSETS(Wobbuffet), + }, +#endif //P_FAMILY_WOBBUFFET + +#if P_FAMILY_GIRAFARIG + [SPECIES_GIRAFARIG] = + { + .baseHP = 70, + .baseAttack = 80, + .baseDefense = 65, + .baseSpeed = 85, + .baseSpAttack = 90, + .baseSpDefense = 65, + .types = { TYPE_NORMAL, TYPE_PSYCHIC }, + .catchRate = 60, + .expYield = 159, .evYield_SpAttack = 2, - .itemCommon = ITEM_STARDUST, - .itemRare = ITEM_MOON_STONE, - .genderRatio = MON_GENDERLESS, - .eggCycles = 25, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_INNER_FOCUS, ABILITY_EARLY_BIRD, ABILITY_SAP_SIPPER}, .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, - }, - - [SPECIES_SOLROCK] = + .speciesName = _("Girafarig"), + .cryId = CRY_GIRAFARIG, + .natDexNum = NATIONAL_DEX_GIRAFARIG, + .categoryName = _("Long Neck"), + .height = 15, + .weight = 415, + .description = COMPOUND_STRING( + "A Girafarig is an herbivore--it eats\n" + "grass and tree shoots. While it is eating,\n" + "its tail makes chewing and swallowing\n" + "motions as if it were also eating."), + .pokemonScale = 281, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Girafarig, 56, 64), + FRONT_PIC_FEMALE(Girafarig, 56, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Girafarig, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Girafarig, 64, 64), + BACK_PIC_FEMALE(Girafarig, 64, 64), + .backPicYOffset = 1, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(Girafarig), + ICON(Girafarig, 1), + .footprint = gMonFootprint_Girafarig, + LEARNSETS(Girafarig), + .evolutions = EVOLUTION({EVO_MOVE, MOVE_TWIN_BEAM, SPECIES_FARIGIRAF}), + }, + +#if P_GEN_9_CROSS_EVOS + [SPECIES_FARIGIRAF] = { - .baseAttack = 95, - .baseDefense = 85, - .baseSpeed = 70, - .baseSpAttack = 55, - .baseSpDefense = 65, - #if P_UPDATED_STATS >= GEN_7 - .baseHP = 90, - #else - .baseHP = 70, - #endif - .types = { TYPE_ROCK, TYPE_PSYCHIC}, + .baseHP = 120, + .baseAttack = 90, + .baseDefense = 70, + .baseSpeed = 60, + .baseSpAttack = 110, + .baseSpDefense = 70, + .types = { TYPE_NORMAL, TYPE_PSYCHIC }, .catchRate = 45, - .expYield = 161, - .evYield_Attack = 2, - .itemCommon = ITEM_STARDUST, - .itemRare = ITEM_SUN_STONE, - .genderRatio = MON_GENDERLESS, - .eggCycles = 25, + .expYield = 260, + .evYield_HP = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_RED, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_CUD_CHEW, ABILITY_ARMOR_TAIL, ABILITY_SAP_SIPPER}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - }, - - [SPECIES_BARBOACH] = + .speciesName = _("Farigiraf"), + .cryId = CRY_FARIGIRAF, + .natDexNum = NATIONAL_DEX_FARIGIRAF, + .categoryName = _("Long Neck"), + .height = 32, + .weight = 1600, + .description = COMPOUND_STRING( + "Now that the brain waves from the\n" + "head and tail are synced up, the\n" + "psychic power of this Pokémon is 10\n" + "times stronger than Girafarig's."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Farigiraf, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Farigiraf, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Farigiraf, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Farigiraf), + ICON(Farigiraf, 0), + //.footprint = gMonFootprint_Farigiraf, + LEARNSETS(Farigiraf), + }, +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_GIRAFARIG + +#if P_FAMILY_PINECO + [SPECIES_PINECO] = { .baseHP = 50, - .baseAttack = 48, - .baseDefense = 43, - .baseSpeed = 60, - .baseSpAttack = 46, - .baseSpDefense = 41, - .types = { TYPE_WATER, TYPE_GROUND}, + .baseAttack = 65, + .baseDefense = 90, + .baseSpeed = 15, + .baseSpAttack = 35, + .baseSpDefense = 35, + .types = { TYPE_BUG, TYPE_BUG }, .catchRate = 190, .expYield = 58, - .evYield_HP = 1, + .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, - .abilities = {ABILITY_OBLIVIOUS, ABILITY_ANTICIPATION, ABILITY_HYDRATION}, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_STURDY, ABILITY_NONE, ABILITY_OVERCOAT}, .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, + .speciesName = _("Pineco"), + .cryId = CRY_PINECO, + .natDexNum = NATIONAL_DEX_PINECO, + .categoryName = _("Bagworm"), + .height = 6, + .weight = 72, + .description = COMPOUND_STRING( + "A Pineco hangs from a tree branch and\n" + "waits for prey. While eating, if it is\n" + "disturbed by someone shaking its tree, it\n" + "falls on the ground and suddenly explodes."), + .pokemonScale = 445, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Pineco, 40, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Pineco, + .frontAnimId = ANIM_SWING_CONCAVE, + BACK_PIC(Pineco, 56, 40), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_H_SHAKE, + PALETTE(Pineco), + ICON(Pineco, 0), + .footprint = gMonFootprint_Pineco, + LEARNSETS(Pineco), + .evolutions = EVOLUTION({EVO_LEVEL, 31, SPECIES_FORRETRESS}), }, - [SPECIES_WHISCASH] = + [SPECIES_FORRETRESS] = { - .baseHP = 110, - .baseAttack = 78, - .baseDefense = 73, - .baseSpeed = 60, - .baseSpAttack = 76, - .baseSpDefense = 71, - .types = { TYPE_WATER, TYPE_GROUND}, + .baseHP = 75, + .baseAttack = 90, + .baseDefense = 140, + .baseSpeed = 40, + .baseSpAttack = 60, + .baseSpDefense = 60, + .types = { TYPE_BUG, TYPE_STEEL }, .catchRate = 75, - .expYield = 164, - .evYield_HP = 2, + .expYield = 163, + .evYield_Defense = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, - .abilities = {ABILITY_OBLIVIOUS, ABILITY_ANTICIPATION, ABILITY_HYDRATION}, - .bodyColor = BODY_COLOR_BLUE, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_STURDY, ABILITY_NONE, ABILITY_OVERCOAT}, + .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, - }, - - [SPECIES_CORPHISH] = + .speciesName = _("Forretress"), + .cryId = CRY_FORRETRESS, + .natDexNum = NATIONAL_DEX_FORRETRESS, + .categoryName = _("Bagworm"), + .height = 12, + .weight = 1258, + .description = COMPOUND_STRING( + "It keeps itself inside its steel shell.\n" + "The shell is opened when it is catching\n" + "prey, but it is so quick that the shell's\n" + "inside cannot be seen."), + .pokemonScale = 293, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Forretress, 64, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Forretress, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(Forretress, 64, 32), + .backPicYOffset = 16, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Forretress), + ICON(Forretress, 2), + .footprint = gMonFootprint_Forretress, + LEARNSETS(Forretress), + }, +#endif //P_FAMILY_PINECO + +#if P_FAMILY_DUNSPARCE + [SPECIES_DUNSPARCE] = { - .baseHP = 43, - .baseAttack = 80, - .baseDefense = 65, - .baseSpeed = 35, - .baseSpAttack = 50, - .baseSpDefense = 35, - .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 205, - .expYield = 62, - .evYield_Attack = 1, + .baseHP = 100, + .baseAttack = 70, + .baseDefense = 70, + .baseSpeed = 45, + .baseSpAttack = 65, + .baseSpDefense = 65, + .types = { TYPE_NORMAL, TYPE_NORMAL }, + .catchRate = 190, + .expYield = 145, + .evYield_HP = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_SERENE_GRACE, ABILITY_RUN_AWAY, ABILITY_RATTLED}, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + .speciesName = _("Dunsparce"), + .cryId = CRY_DUNSPARCE, + .natDexNum = NATIONAL_DEX_DUNSPARCE, + .categoryName = _("Land Snake"), + .height = 15, + .weight = 140, + .description = COMPOUND_STRING( + "Its drill-tipped tail is used to burrow into\n" + "the ground backwards. This Pokémon is\n" + "known to make its nest in complex shapes\n" + "deep under the ground."), + .pokemonScale = 316, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Dunsparce, 48, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Dunsparce, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .frontAnimDelay = 10, + BACK_PIC(Dunsparce, 56, 32), + .backPicYOffset = 17, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(Dunsparce), + ICON(Dunsparce, 0), + .footprint = gMonFootprint_Dunsparce, + LEARNSETS(Dunsparce), + .evolutions = EVOLUTION({EVO_MOVE_TWO_SEGMENT, MOVE_HYPER_DRILL, SPECIES_DUDUNSPARCE_TWO_SEGMENT}, + {EVO_MOVE_THREE_SEGMENT, MOVE_HYPER_DRILL, SPECIES_DUDUNSPARCE_THREE_SEGMENT}), + }, + +#if P_GEN_9_CROSS_EVOS +#define DUDUNSPARCE_MISC_INFO(segments) \ + .baseHP = 125, \ + .baseAttack = 100, \ + .baseDefense = 80, \ + .baseSpeed = 55, \ + .baseSpAttack = 85, \ + .baseSpDefense = 75, \ + .types = { TYPE_NORMAL, TYPE_NORMAL }, \ + .catchRate = 45, \ + .expYield = 182, \ + .evYield_HP = 2, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, \ + .abilities = {ABILITY_SERENE_GRACE, ABILITY_RUN_AWAY, ABILITY_RATTLED}, \ + .bodyColor = BODY_COLOR_YELLOW, \ + .noFlip = FALSE, \ + .speciesName = _("Dudunsprce"), \ + .cryId = CRY_DUDUNSPARCE, \ + .natDexNum = NATIONAL_DEX_DUDUNSPARCE, \ + .categoryName = _("Land Snake"), \ + .pokemonScale = 356, \ + .pokemonOffset = 17, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + FRONT_PIC(Dudunsparce ##segments##Segment, 64, 64), \ + .frontPicYOffset = 10, \ + .frontAnimFrames = sAnims_Dudunsparce, \ + BACK_PIC(Dudunsparce ##segments##Segment, 64, 64), \ + .backPicYOffset = 11, \ + PALETTE(Dudunsparce), \ + ICON(Dudunsparce, 0), \ + LEARNSETS(Dudunsparce), \ + .formSpeciesIdTable = sDudunsparceFormSpeciesIdTable + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + //.backAnimId = BACK_ANIM_NONE, + //.footprint = gMonFootprint_Dudunsparce, + + [SPECIES_DUDUNSPARCE_TWO_SEGMENT] = + { + DUDUNSPARCE_MISC_INFO(Two), + .height = 36, + .weight = 392, + .description = COMPOUND_STRING( + "This Pokémon uses its hard tail to\n" + "make its nest by boring holes into\n" + "bedrock deep underground. The nest\n" + "can reach lengths of over six miles."), + }, + + [SPECIES_DUDUNSPARCE_THREE_SEGMENT] = + { + DUDUNSPARCE_MISC_INFO(Three), + .height = 45, + .weight = 474, + .description = COMPOUND_STRING( + ""), + }, +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_DUNSPARCE + +#if P_FAMILY_GLIGAR + [SPECIES_GLIGAR] = + { + .baseHP = 65, + .baseAttack = 75, + .baseDefense = 105, + .baseSpeed = 85, + .baseSpAttack = 35, + .baseSpDefense = 65, + .types = { TYPE_GROUND, TYPE_FLYING }, + .catchRate = 60, + .expYield = 86, + .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3}, - .abilities = {ABILITY_HYPER_CUTTER, ABILITY_SHELL_ARMOR, ABILITY_ADAPTABILITY}, - .bodyColor = BODY_COLOR_RED, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_HYPER_CUTTER, ABILITY_SAND_VEIL, ABILITY_IMMUNITY}, + .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, - }, - - [SPECIES_CRAWDAUNT] = + .speciesName = _("Gligar"), + .cryId = CRY_GLIGAR, + .natDexNum = NATIONAL_DEX_GLIGAR, + .categoryName = _("Fly Scorpion"), + .height = 11, + .weight = 648, + .description = COMPOUND_STRING( + "It glides without making a single sound.\n" + "It grasps the face of its foe using its\n" + "hind and large front claws, then stabs\n" + "with its poison barb."), + .pokemonScale = 350, + .pokemonOffset = -1, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Gligar, 56, 56), + FRONT_PIC_FEMALE(Gligar, 56, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Gligar, + .frontAnimId = ANIM_SHRINK_GROW, + .enemyMonElevation = 8, + BACK_PIC(Gligar, 64, 64), + BACK_PIC_FEMALE(Gligar, 64, 64), + .backPicYOffset = 2, + .backAnimId = BACK_ANIM_SHRINK_GROW, + PALETTE(Gligar), + ICON(Gligar, 0), + .footprint = gMonFootprint_Gligar, + LEARNSETS(Gligar), + .evolutions = EVOLUTION({EVO_ITEM_HOLD_NIGHT, ITEM_RAZOR_FANG, SPECIES_GLISCOR}, + {EVO_ITEM_NIGHT, ITEM_RAZOR_FANG, SPECIES_GLISCOR}), + }, + +#if P_GEN_4_CROSS_EVOS + [SPECIES_GLISCOR] = { - .baseHP = 63, - .baseAttack = 120, - .baseDefense = 85, - .baseSpeed = 55, - .baseSpAttack = 90, - .baseSpDefense = 55, - .types = { TYPE_WATER, TYPE_DARK}, - .catchRate = 155, - .expYield = 164, - .evYield_Attack = 2, + .baseHP = 75, + .baseAttack = 95, + .baseDefense = 125, + .baseSpeed = 95, + .baseSpAttack = 45, + .baseSpDefense = 75, + .types = { TYPE_GROUND, TYPE_FLYING}, + .catchRate = 30, + .expYield = 179, + .evYield_Defense = 2, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3}, - .abilities = {ABILITY_HYPER_CUTTER, ABILITY_SHELL_ARMOR, ABILITY_ADAPTABILITY}, - .bodyColor = BODY_COLOR_RED, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_HYPER_CUTTER, ABILITY_SAND_VEIL, ABILITY_POISON_HEAL}, + .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, - }, - - [SPECIES_BALTOY] = + .speciesName = _("Gliscor"), + .cryId = CRY_GLISCOR, + .natDexNum = NATIONAL_DEX_GLISCOR, + .categoryName = _("Fang Scorp"), + .height = 20, + .weight = 425, + .description = COMPOUND_STRING( + "Gliscor observes prey while hanging\n" + "upside down from branches. Its flight is\n" + "soundless. When the chance presents\n" + "itself, it swoops!"), + .pokemonScale = 261, + .pokemonOffset = 1, + .trainerScale = 334, + .trainerOffset = 4, + FRONT_PIC(Gliscor, 64, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Gliscor, + .frontAnimId = ANIM_SWING_CONVEX, + .enemyMonElevation = 9, + BACK_PIC(Gliscor, 64, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_V_STRETCH, + PALETTE(Gliscor), + ICON(Gliscor, 2), + .footprint = gMonFootprint_Gliscor, + LEARNSETS(Gliscor), + }, +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_GLIGAR + +#if P_FAMILY_SNUBBULL + [SPECIES_SNUBBULL] = { - .baseHP = 40, - .baseAttack = 40, - .baseDefense = 55, - .baseSpeed = 55, + .baseHP = 60, + .baseAttack = 80, + .baseDefense = 50, + .baseSpeed = 30, .baseSpAttack = 40, - .baseSpDefense = 70, - .types = { TYPE_GROUND, TYPE_PSYCHIC}, - .catchRate = 255, + .baseSpDefense = 40, + #if P_UPDATED_TYPES >= GEN_6 + .types = { TYPE_FAIRY, TYPE_FAIRY}, + #else + .types = { TYPE_NORMAL, TYPE_NORMAL}, + #endif + .catchRate = 190, .expYield = 60, - .evYield_SpDefense = 1, - .itemRare = ITEM_LIGHT_CLAY, - .genderRatio = MON_GENDERLESS, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(75), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BROWN, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY}, + .abilities = {ABILITY_INTIMIDATE, ABILITY_RUN_AWAY, ABILITY_RATTLED}, + .bodyColor = BODY_COLOR_PINK, .noFlip = FALSE, + .speciesName = _("Snubbull"), + .cryId = CRY_SNUBBULL, + .natDexNum = NATIONAL_DEX_SNUBBULL, + .categoryName = _("Fairy"), + .height = 6, + .weight = 78, + .description = COMPOUND_STRING( + "By baring its fangs and making a scary\n" + "face, it sends smaller Pokémon scurrying\n" + "in terror. The Snubbull does seem a\n" + "little sad at making its foes flee."), + .pokemonScale = 465, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Snubbull, 40, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Snubbull, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Snubbull, 56, 40), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Snubbull), + ICON(Snubbull, 0), + .footprint = gMonFootprint_Snubbull, + LEARNSETS(Snubbull), + .evolutions = EVOLUTION({EVO_LEVEL, 23, SPECIES_GRANBULL}), }, - [SPECIES_CLAYDOL] = + [SPECIES_GRANBULL] = { - .baseHP = 60, - .baseAttack = 70, - .baseDefense = 105, - .baseSpeed = 75, - .baseSpAttack = 70, - .baseSpDefense = 120, - .types = { TYPE_GROUND, TYPE_PSYCHIC}, - .catchRate = 90, - .expYield = 175, - .evYield_SpDefense = 2, - .itemRare = ITEM_LIGHT_CLAY, - .genderRatio = MON_GENDERLESS, + .baseHP = 90, + .baseAttack = 120, + .baseDefense = 75, + .baseSpeed = 45, + .baseSpAttack = 60, + .baseSpDefense = 60, + #if P_UPDATED_TYPES >= GEN_6 + .types = { TYPE_FAIRY, TYPE_FAIRY}, + #else + .types = { TYPE_NORMAL, TYPE_NORMAL}, + #endif + .catchRate = 75, + .expYield = 158, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(75), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLACK, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY}, + .abilities = {ABILITY_INTIMIDATE, ABILITY_QUICK_FEET, ABILITY_RATTLED}, + .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, - }, + .speciesName = _("Granbull"), + .cryId = CRY_GRANBULL, + .natDexNum = NATIONAL_DEX_GRANBULL, + .categoryName = _("Fairy"), + .height = 14, + .weight = 487, + .description = COMPOUND_STRING( + "It has a particularly well-developed lower\n" + "jaw. The huge fangs are heavy, causing\n" + "it to tilt its head. Unless it is startled,\n" + "it will not try to bite."), + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Granbull, 56, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Granbull, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(Granbull, 56, 48), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Granbull), + ICON(Granbull, 2), + .footprint = gMonFootprint_Granbull, + LEARNSETS(Granbull), + }, +#endif //P_FAMILY_SNUBBULL + +#if P_FAMILY_QWILFISH +#define QWILFISH_MISC_INFO \ + .baseHP = 65, \ + .baseAttack = 95, \ + .baseDefense = P_UPDATED_STATS >= GEN_7 ? 85 : 75, \ + .baseSpeed = 85, \ + .baseSpAttack = 55, \ + .baseSpDefense = 55, \ + .catchRate = 45, \ + .expYield = 88, \ + .evYield_Attack = 1, \ + .itemRare = ITEM_POISON_BARB, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, \ + .abilities = {ABILITY_POISON_POINT, ABILITY_SWIFT_SWIM, ABILITY_INTIMIDATE},\ + .noFlip = FALSE, \ + .speciesName = _("Qwilfish"), \ + .cryId = CRY_QWILFISH, \ + .natDexNum = NATIONAL_DEX_QWILFISH, \ + .categoryName = _("Balloon"), \ + .height = 5, \ + .weight = 39, \ + .pokemonScale = 430, \ + .pokemonOffset = 0, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Qwilfish, \ + .formSpeciesIdTable = sQwilfishFormSpeciesIdTable - [SPECIES_LILEEP] = + [SPECIES_QWILFISH] = { - .baseHP = 66, - .baseAttack = 41, - .baseDefense = 77, - .baseSpeed = 23, - .baseSpAttack = 61, - .baseSpDefense = 87, - .types = { TYPE_ROCK, TYPE_GRASS }, - .catchRate = 45, - .expYield = 71, - .evYield_SpDefense = 1, - .itemRare = ITEM_BIG_ROOT, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 30, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, - .abilities = {ABILITY_SUCTION_CUPS, ABILITY_NONE, ABILITY_STORM_DRAIN}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, + QWILFISH_MISC_INFO, + .types = { TYPE_WATER, TYPE_POISON}, + .bodyColor = BODY_COLOR_GRAY, + .description = COMPOUND_STRING( + "A Qwilfish uses the pressure of water\n" + "it swallows to shoot toxic quills all at\n" + "once from all over its body. It finds\n" + "swimming to be somewhat challenging."), + FRONT_PIC(Qwilfish, 40, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Qwilfish, + .frontAnimId = ANIM_GROW_IN_STAGES, + .frontAnimDelay = 39, + BACK_PIC(Qwilfish, 56, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_GROW_STUTTER, + PALETTE(Qwilfish), + ICON(Qwilfish, 0), + LEARNSETS(Qwilfish), + }, + +#if P_HISUIAN_FORMS + [SPECIES_QWILFISH_HISUIAN] = + { + QWILFISH_MISC_INFO, + .types = { TYPE_DARK, TYPE_POISON}, + .bodyColor = BODY_COLOR_BLACK, + .description = COMPOUND_STRING( + "A form of Qwilfish from the distant past.\n" + "Fishers detest this troublesome Pokémon\n" + "because it sprays poison from its spines,\n" + "getting it everywhere."), + FRONT_PIC(QwilfishHisuian, 48, 40), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_QwilfishHisuian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(QwilfishHisuian, 56, 56), + .backPicYOffset = 6, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(QwilfishHisuian), + ICON(QwilfishHisuian, 0), + LEARNSETS(QwilfishHisuian), + .isHisuianForm = TRUE, + .evolutions = EVOLUTION({EVO_MOVE, MOVE_BARB_BARRAGE, SPECIES_OVERQWIL}), }, - [SPECIES_CRADILY] = + [SPECIES_OVERQWIL] = { - .baseHP = 86, - .baseAttack = 81, - .baseDefense = 97, - .baseSpeed = 43, - .baseSpAttack = 81, - .baseSpDefense = 107, - .types = { TYPE_ROCK, TYPE_GRASS }, + .baseHP = 85, + .baseAttack = 115, + .baseDefense = 95, + .baseSpeed = 85, + .baseSpAttack = 65, + .baseSpDefense = 65, + .types = { TYPE_DARK, TYPE_POISON}, .catchRate = 45, - .expYield = 173, - .evYield_SpDefense = 2, - .itemRare = ITEM_BIG_ROOT, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 30, + .expYield = 179, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, - .abilities = {ABILITY_SUCTION_CUPS, ABILITY_NONE, ABILITY_STORM_DRAIN}, - .bodyColor = BODY_COLOR_GREEN, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, + .abilities = {ABILITY_POISON_POINT, ABILITY_SWIFT_SWIM, ABILITY_INTIMIDATE}, + .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, - }, - - [SPECIES_ANORITH] = + .speciesName = _("Overqwil"), + .cryId = CRY_OVERQWIL, + .natDexNum = NATIONAL_DEX_OVERQWIL, + .categoryName = _("Pin Cluster"), + .height = 25, + .weight = 605, + .description = COMPOUND_STRING( + "Its lancelike spikes and savage\n" + "temperament have earned it the\n" + "nickname “Sea Fiend”.\n" + "It slurps up poison to nourish itself."), + .pokemonScale = 257, + .pokemonOffset = 10, + .trainerScale = 423, + .trainerOffset = 8, + FRONT_PIC(Overqwil, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Overqwil, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Overqwil, 64, 56), + .backPicYOffset = 7, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Overqwil), + ICON(Overqwil, 2), + //.footprint = gMonFootprint_Overqwil, + LEARNSETS(Overqwil), + }, +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_QWILFISH + +#if P_FAMILY_SHUCKLE + [SPECIES_SHUCKLE] = { - .baseHP = 45, - .baseAttack = 95, - .baseDefense = 50, - .baseSpeed = 75, - .baseSpAttack = 40, - .baseSpDefense = 50, - .types = { TYPE_ROCK, TYPE_BUG }, - .catchRate = 45, - .expYield = 71, - .evYield_Attack = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 30, + .baseHP = 20, + .baseAttack = 10, + .baseDefense = 230, + .baseSpeed = 5, + .baseSpAttack = 10, + .baseSpDefense = 230, + .types = { TYPE_BUG, TYPE_ROCK }, + .catchRate = 190, + .expYield = 177, + .evYield_Defense = 1, + .evYield_SpDefense = 1, + .itemCommon = ITEM_BERRY_JUICE, + .itemRare = ITEM_BERRY_JUICE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, - .abilities = {ABILITY_BATTLE_ARMOR, ABILITY_NONE, ABILITY_SWIFT_SWIM}, - .bodyColor = BODY_COLOR_GRAY, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_STURDY, ABILITY_GLUTTONY, ABILITY_CONTRARY}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, - }, + .speciesName = _("Shuckle"), + .cryId = CRY_SHUCKLE, + .natDexNum = NATIONAL_DEX_SHUCKLE, + .categoryName = _("Mold"), + .height = 6, + .weight = 205, + .description = COMPOUND_STRING( + "A Shuckle hides under rocks, keeping its\n" + "body concealed inside its shell while\n" + "eating stored berries. The berries mix with\n" + "its body fluids to become a juice."), + .pokemonScale = 485, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Shuckle, 56, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Shuckle, + .frontAnimId = ANIM_SWING_CONCAVE, + BACK_PIC(Shuckle, 48, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Shuckle), + ICON(Shuckle, 1), + .footprint = gMonFootprint_Shuckle, + LEARNSETS(Shuckle), + }, +#endif //P_FAMILY_SHUCKLE + +#if P_FAMILY_HERACROSS +#define HERACROSS_MISC_INFO \ + .types = { TYPE_BUG, TYPE_FIGHTING}, \ + .catchRate = 45, \ + .evYield_Attack = 2, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 25, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, \ + .bodyColor = BODY_COLOR_BLUE, \ + .noFlip = FALSE, \ + .speciesName = _("Heracross"), \ + .natDexNum = NATIONAL_DEX_HERACROSS, \ + .categoryName = _("Single Horn"), \ + .footprint = gMonFootprint_Heracross, \ + LEARNSETS(Heracross), \ + .formSpeciesIdTable = sHeracrossFormSpeciesIdTable, \ + .formChangeTable = sHeracrossFormChangeTable - [SPECIES_ARMALDO] = + [SPECIES_HERACROSS] = { - .baseHP = 75, + HERACROSS_MISC_INFO, + .baseHP = 80, .baseAttack = 125, - .baseDefense = 100, - .baseSpeed = 45, - .baseSpAttack = 70, - .baseSpDefense = 80, - .types = { TYPE_ROCK, TYPE_BUG }, - .catchRate = 45, - .expYield = 173, - .evYield_Attack = 2, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 30, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, - .abilities = {ABILITY_BATTLE_ARMOR, ABILITY_NONE, ABILITY_SWIFT_SWIM}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, + .baseDefense = 75, + .baseSpeed = 85, + .baseSpAttack = 40, + .baseSpDefense = 95, + .expYield = 175, + .abilities = {ABILITY_SWARM, ABILITY_GUTS, ABILITY_MOXIE}, + .cryId = CRY_HERACROSS, + .height = 15, + .weight = 540, + .description = COMPOUND_STRING( + "They gather in forests seeking the sweet\n" + "sap of trees. It is completely clad in a\n" + "steel-hard shell. It is proud of its horn,\n" + "which it uses to fling foes."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Heracross, 64, 64), + FRONT_PIC_FEMALE(Heracross, 64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Heracross, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Heracross, 48, 64), + BACK_PIC_FEMALE(Heracross, 48, 64), + .backPicYOffset = 2, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Heracross), + ICON(Heracross, 0), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_HERACROSS_MEGA] = + { + HERACROSS_MISC_INFO, + .baseHP = 80, + .baseAttack = 185, + .baseDefense = 115, + .baseSpeed = 75, + .baseSpAttack = 40, + .baseSpDefense = 105, + .expYield = 210, + .abilities = {ABILITY_SKILL_LINK, ABILITY_SKILL_LINK, ABILITY_SKILL_LINK}, + .cryId = CRY_HERACROSS_MEGA, + .height = 17, + .weight = 625, + .description = COMPOUND_STRING( + "A tremendous influx of energy builds it up,\n" + "but when Mega Evolution ends, Heracross\n" + "is bothered by terrible soreness in its\n" + "muscles."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(HeracrossMega, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_HeracrossMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(HeracrossMega, 56, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(HeracrossMega), + ICON(HeracrossMega, 0), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_HERACROSS + +#if P_FAMILY_SNEASEL +#define SNEASEL_MISC_INFO \ + .baseHP = 55, \ + .baseAttack = 95, \ + .baseDefense = 55, \ + .baseSpeed = 115, \ + .baseSpAttack = 35, \ + .baseSpDefense = 75, \ + .catchRate = 60, \ + .expYield = 86, \ + .evYield_Speed = 1, \ + .itemRare = ITEM_QUICK_CLAW, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = 35, \ + .growthRate = GROWTH_MEDIUM_SLOW, \ + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, \ + .noFlip = TRUE, \ + .speciesName = _("Sneasel"), \ + .cryId = CRY_SNEASEL, \ + .natDexNum = NATIONAL_DEX_SNEASEL, \ + .categoryName = _("Sharp Claw"), \ + .height = 9, \ + .pokemonScale = 413, \ + .pokemonOffset = -3, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Sneasel, \ + .formSpeciesIdTable = sSneaselFormSpeciesIdTable - [SPECIES_FEEBAS] = + [SPECIES_SNEASEL] = { - .baseHP = 20, - .baseAttack = 15, - .baseDefense = 20, - .baseSpeed = 80, - .baseSpAttack = 10, - .baseSpDefense = 55, - .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 255, - .expYield = 40, + SNEASEL_MISC_INFO, + .types = { TYPE_DARK, TYPE_ICE }, + .abilities = {ABILITY_INNER_FOCUS, ABILITY_KEEN_EYE, ABILITY_PICKPOCKET}, + .bodyColor = BODY_COLOR_BLACK, + .weight = 280, + .description = COMPOUND_STRING( + "A Sneasel scales trees by punching its\n" + "hooked claws into the bark. It seeks out\n" + "unguarded nests and steals eggs for food\n" + "while the parents are away."), + FRONT_PIC(Sneasel, 56, 48), + FRONT_PIC_FEMALE(Sneasel, 56, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Sneasel, + .frontAnimId = ANIM_H_JUMPS, + BACK_PIC(Sneasel, 64, 64), + BACK_PIC_FEMALE(Sneasel, 64, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(Sneasel), + ICON(Sneasel, 0), + LEARNSETS(Sneasel), + .evolutions = EVOLUTION({EVO_ITEM_HOLD_NIGHT, ITEM_RAZOR_CLAW, SPECIES_WEAVILE}, + {EVO_ITEM_NIGHT, ITEM_RAZOR_CLAW, SPECIES_WEAVILE}), + }, + +#if P_GEN_4_CROSS_EVOS + [SPECIES_WEAVILE] = + { + .baseHP = 70, + .baseAttack = 120, + .baseDefense = 65, + .baseSpeed = 125, + .baseSpAttack = 45, + .baseSpDefense = 85, + .types = { TYPE_DARK, TYPE_ICE}, + .catchRate = 45, + .expYield = 179, + .evYield_Attack = 1, .evYield_Speed = 1, + .itemRare = ITEM_QUICK_CLAW, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_SWIFT_SWIM, ABILITY_OBLIVIOUS, ABILITY_ADAPTABILITY}, - .bodyColor = BODY_COLOR_BROWN, + .friendship = 35, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_PICKPOCKET}, + .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, + .speciesName = _("Weavile"), + .cryId = CRY_WEAVILE, + .natDexNum = NATIONAL_DEX_WEAVILE, + .categoryName = _("Sharp Claw"), + .height = 11, + .weight = 340, + .description = COMPOUND_STRING( + "They travel in groups of four or five,\n" + "leaving signs for one another on trees\n" + "and rocks. They bring down their prey\n" + "with coordinated attacks."), + .pokemonScale = 320, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Weavile, 56, 56), + FRONT_PIC_FEMALE(Weavile, 56, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Weavile, + .frontAnimId = ANIM_H_VIBRATE, + BACK_PIC(Weavile, 64, 64), + BACK_PIC_FEMALE(Weavile, 64, 64), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Weavile), + ICON(Weavile, 0), + .footprint = gMonFootprint_Weavile, + LEARNSETS(Weavile), + }, +#endif //P_GEN_4_CROSS_EVOS + +#if P_HISUIAN_FORMS + [SPECIES_SNEASEL_HISUIAN] = + { + SNEASEL_MISC_INFO, + .types = { TYPE_POISON, TYPE_FIGHTING}, + .abilities = {ABILITY_INNER_FOCUS, ABILITY_KEEN_EYE, ABILITY_PICKPOCKET}, + .bodyColor = BODY_COLOR_GRAY, + .weight = 270, + .description = COMPOUND_STRING( + "Its sturdy, curved claws are ideal for\n" + "traversing precipitous cliffs. From the\n" + "tips of these claws drips a venom that\n" + "infiltrates the nerves of any prey caught."), + FRONT_PIC(SneaselHisuian, 56, 56), + FRONT_PIC_FEMALE(SneaselHisuian, 56, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_SneaselHisuian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(SneaselHisuian, 56, 64), + BACK_PIC_FEMALE(SneaselHisuian, 56, 64), + .backPicYOffset = 3, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(SneaselHisuian), + ICON(SneaselHisuian, 2), + LEARNSETS(SneaselHisuian), + .isHisuianForm = TRUE, + .evolutions = EVOLUTION({EVO_ITEM_HOLD_DAY, ITEM_RAZOR_CLAW, SPECIES_SNEASLER}, + {EVO_ITEM_DAY, ITEM_RAZOR_CLAW, SPECIES_SNEASLER}), }, - [SPECIES_MILOTIC] = + [SPECIES_SNEASLER] = { - .baseHP = 95, - .baseAttack = 60, - .baseDefense = 79, - .baseSpeed = 81, - .baseSpAttack = 100, - .baseSpDefense = 125, - .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 60, - .expYield = 189, - .evYield_SpDefense = 2, + .baseHP = 80, + .baseAttack = 130, + .baseDefense = 60, + .baseSpeed = 120, + .baseSpAttack = 40, + .baseSpDefense = 80, + .types = { TYPE_FIGHTING, TYPE_POISON}, + .catchRate = 20, + .expYield = 102, + .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_MARVEL_SCALE, ABILITY_COMPETITIVE, ABILITY_CUTE_CHARM}, - .bodyColor = BODY_COLOR_PINK, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_PRESSURE, ABILITY_UNBURDEN, ABILITY_POISON_TOUCH}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - }, - - [SPECIES_CASTFORM_NORMAL] = CASTFORM_SPECIES_INFO(TYPE_NORMAL, BODY_COLOR_GRAY), - - [SPECIES_KECLEON] = + .speciesName = _("Sneasler"), + .cryId = CRY_SNEASLER, + .natDexNum = NATIONAL_DEX_SNEASLER, + .categoryName = _("Free Climb"), + .height = 13, + .weight = 430, + .description = COMPOUND_STRING( + "Because of its wicked poison and daunting\n" + "physical prowess, no other species could\n" + "hope to best it on frozen highlands. It\n" + "prefers solitude and doesn't form packs."), + .pokemonScale = 272, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Sneasler, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Sneasler, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Sneasler, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Sneasler), + ICON(Sneasler, 2), + //.footprint = gMonFootprint_Sneasler, + LEARNSETS(Sneasler), + }, +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_SNEASEL + +#if P_FAMILY_TEDDIURSA + [SPECIES_TEDDIURSA] = { .baseHP = 60, - .baseAttack = 90, - .baseDefense = 70, + .baseAttack = 80, + .baseDefense = 50, .baseSpeed = 40, - .baseSpAttack = 60, - .baseSpDefense = 120, - .types = { TYPE_NORMAL, TYPE_NORMAL}, - .catchRate = 200, - .expYield = 154, - .evYield_SpDefense = 1, + .baseSpAttack = 50, + .baseSpDefense = 50, + .types = { TYPE_NORMAL, TYPE_NORMAL }, + .catchRate = 120, + .expYield = 66, + .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, + .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_COLOR_CHANGE, ABILITY_NONE, ABILITY_PROTEAN}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, - - [SPECIES_SHUPPET] = - { - .baseHP = 44, - .baseAttack = 75, - .baseDefense = 35, - .baseSpeed = 45, - .baseSpAttack = 63, - .baseSpDefense = 33, - .types = { TYPE_GHOST, TYPE_GHOST}, - .catchRate = 225, - .expYield = 59, - .evYield_Attack = 1, - .itemRare = ITEM_SPELL_TAG, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, - .friendship = 35, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_INSOMNIA, ABILITY_FRISK, ABILITY_CURSED_BODY}, - .bodyColor = BODY_COLOR_BLACK, - .noFlip = FALSE, + .abilities = {ABILITY_PICKUP, ABILITY_QUICK_FEET, ABILITY_HONEY_GATHER}, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = TRUE, + .speciesName = _("Teddiursa"), + .cryId = CRY_TEDDIURSA, + .natDexNum = NATIONAL_DEX_TEDDIURSA, + .categoryName = _("Little Bear"), + .height = 6, + .weight = 88, + .description = COMPOUND_STRING( + "It licks its palms that are sweetened by\n" + "being soaked in honey. A Teddiursa makes\n" + "its own honey by blending fruits and pollen\n" + "collected by Beedrill."), + .pokemonScale = 455, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Teddiursa, 40, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Teddiursa, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Teddiursa, 48, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Teddiursa), + ICON(Teddiursa, 0), + .footprint = gMonFootprint_Teddiursa, + LEARNSETS(Teddiursa), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_URSARING}), }, - [SPECIES_BANETTE] = + [SPECIES_URSARING] = { - .baseHP = 64, - .baseAttack = 115, - .baseDefense = 65, - .baseSpeed = 65, - .baseSpAttack = 83, - .baseSpDefense = 63, - .types = { TYPE_GHOST, TYPE_GHOST}, - .catchRate = 45, - .expYield = 159, + .baseHP = 90, + .baseAttack = 130, + .baseDefense = 75, + .baseSpeed = 55, + .baseSpAttack = 75, + .baseSpDefense = 75, + .types = { TYPE_NORMAL, TYPE_NORMAL }, + .catchRate = 60, + .expYield = 175, .evYield_Attack = 2, - .itemRare = ITEM_SPELL_TAG, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, - .friendship = 35, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_INSOMNIA, ABILITY_FRISK, ABILITY_CURSED_BODY}, - .bodyColor = BODY_COLOR_BLACK, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_GUTS, ABILITY_QUICK_FEET, ABILITY_UNNERVE}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - }, + .speciesName = _("Ursaring"), + .cryId = CRY_URSARING, + .natDexNum = NATIONAL_DEX_URSARING, + .categoryName = _("Hibernator"), + .height = 18, + .weight = 1258, + .description = COMPOUND_STRING( + "In forests, it is said that there are many\n" + "streams and towering trees where an\n" + "Ursaring gathers food. It walks through\n" + "its forest collecting food every day."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Ursaring, 64, 64), + FRONT_PIC_FEMALE(Ursaring, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Ursaring, + .frontAnimId = ANIM_H_SHAKE, + BACK_PIC(Ursaring, 56, 64), + BACK_PIC_FEMALE(Ursaring, 56, 64), + .backPicYOffset = 2, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Ursaring), + ICON(Ursaring, 2), + .footprint = gMonFootprint_Ursaring, + LEARNSETS(Ursaring), + .evolutions = EVOLUTION({EVO_ITEM_NIGHT, ITEM_PEAT_BLOCK, SPECIES_URSALUNA}, + {EVO_NONE, 0, SPECIES_URSALUNA_BLOODMOON}), + }, + +#if P_GEN_8_CROSS_EVOS +#define URSALUNA_MISC_INFO \ + .expYield = 275, \ + .types = { TYPE_GROUND, TYPE_NORMAL}, \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, \ + .bodyColor = BODY_COLOR_BROWN, \ + .noFlip = FALSE, \ + .speciesName = _("Ursaluna"), \ + .cryId = CRY_URSALUNA, \ + .natDexNum = NATIONAL_DEX_URSALUNA, \ + .categoryName = _("Peat"), \ + .formSpeciesIdTable = sUrsalunaFormSpeciesIdTable - [SPECIES_DUSKULL] = + [SPECIES_URSALUNA] = { - .baseHP = 20, - .baseAttack = 40, - .baseDefense = 90, - .baseSpeed = 25, - .baseSpAttack = 30, - .baseSpDefense = 90, - .types = { TYPE_GHOST, TYPE_GHOST}, - .catchRate = 190, - .expYield = 59, - .evYield_SpDefense = 1, - .itemRare = ITEM_SPELL_TAG, + URSALUNA_MISC_INFO, + .baseHP = 130, + .baseAttack = 140, + .baseDefense = 105, + .baseSpeed = 50, + .baseSpAttack = 45, + .baseSpDefense = 80, + .catchRate = 20, + .evYield_Attack = 3, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, - .friendship = 35, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_LEVITATE, ABILITY_NONE, ABILITY_FRISK}, - .bodyColor = BODY_COLOR_BLACK, - .noFlip = FALSE, - }, - - [SPECIES_DUSCLOPS] = - { - .baseHP = 40, + .abilities = {ABILITY_GUTS, ABILITY_BULLETPROOF, ABILITY_UNNERVE}, + .height = 24, + .weight = 2900, + .description = COMPOUND_STRING( + "Swampy terrain gives Ursaluna its burly\n" + "physique and newfound capacity to\n" + "manipulate peat at will."), + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 369, + .trainerOffset = 7, + FRONT_PIC(Ursaluna, 56, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Ursaluna, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Ursaluna, 64, 40), + .backPicYOffset = 14, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Ursaluna), + ICON(Ursaluna, 2), + //.footprint = gMonFootprint_Ursaluna, + LEARNSETS(Ursaluna), + }, + + [SPECIES_URSALUNA_BLOODMOON] = + { + URSALUNA_MISC_INFO, + .baseHP = 113, .baseAttack = 70, - .baseDefense = 130, - .baseSpeed = 25, - .baseSpAttack = 60, - .baseSpDefense = 130, - .types = { TYPE_GHOST, TYPE_GHOST}, - .catchRate = 90, - .expYield = 159, - .evYield_Defense = 1, - .evYield_SpDefense = 1, - .itemRare = ITEM_SPELL_TAG, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, - .friendship = 35, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_FRISK}, - .bodyColor = BODY_COLOR_BLACK, - .noFlip = FALSE, - }, - - [SPECIES_TROPIUS] = + .baseDefense = 120, + .baseSpeed = 52, + .baseSpAttack = 135, + .baseSpDefense = 65, + .catchRate = 5, + .evYield_SpAttack = 3, + .genderRatio = MON_MALE, + .abilities = {ABILITY_MINDS_EYE, ABILITY_NONE}, + .height = 27, + .weight = 3330, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 369, + .trainerOffset = 7, + FRONT_PIC(UrsalunaBloodmoon, 64, 64), + //.frontPicYOffset = 0, + .frontAnimFrames = sAnims_UrsalunaBloodmoon, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(UrsalunaBloodmoon, 64, 40), + .backPicYOffset = 3, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(UrsalunaBloodmoon), + //ICON(UrsalunaBloodmoon, 0), + //.footprint = gMonFootprint_UrsalunaBloodmoon, + LEARNSETS(UrsalunaBloodmoon), + }, +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_TEDDIURSA + +#if P_FAMILY_SLUGMA + [SPECIES_SLUGMA] = { - .baseHP = 99, - .baseAttack = 68, - .baseDefense = 83, - .baseSpeed = 51, - .baseSpAttack = 72, - .baseSpDefense = 87, - .types = { TYPE_GRASS, TYPE_FLYING}, - .catchRate = 200, - .expYield = 161, - .evYield_HP = 2, + .baseHP = 40, + .baseAttack = 40, + .baseDefense = 40, + .baseSpeed = 20, + .baseSpAttack = 70, + .baseSpDefense = 40, + .types = { TYPE_FIRE, TYPE_FIRE }, + .catchRate = 190, + .expYield = 50, + .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS}, - .abilities = {ABILITY_CHLOROPHYLL, ABILITY_SOLAR_POWER, ABILITY_HARVEST}, - .bodyColor = BODY_COLOR_GREEN, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, + .abilities = {ABILITY_MAGMA_ARMOR, ABILITY_FLAME_BODY, ABILITY_WEAK_ARMOR}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, + .speciesName = _("Slugma"), + .cryId = CRY_SLUGMA, + .natDexNum = NATIONAL_DEX_SLUGMA, + .categoryName = _("Lava"), + .height = 7, + .weight = 350, + .description = COMPOUND_STRING( + "It is a species of Pokémon that lives in\n" + "volcanic areas. If its body cools, its skin\n" + "hardens and immobilizes it. To avoid that,\n" + "it sleeps near magma."), + .pokemonScale = 329, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Slugma, 32, 48), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Slugma, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Slugma, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, + PALETTE(Slugma), + ICON(Slugma, 0), + .footprint = gMonFootprint_Slugma, + LEARNSETS(Slugma), + .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_MAGCARGO}), }, - [SPECIES_CHIMECHO] = + [SPECIES_MAGCARGO] = { + .baseHP = P_UPDATED_STATS >= GEN_7 ? 60 : 50, .baseAttack = 50, - .baseSpeed = 65, - .baseSpAttack = 95, - #if P_UPDATED_STATS >= GEN_7 - .baseHP = 75, - .baseDefense = 80, - .baseSpDefense = 90, - #else - .baseHP = 65, - .baseDefense = 70, - .baseSpDefense = 80, - #endif - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - .catchRate = 45, - .expYield = 159, - .evYield_SpAttack = 1, - .evYield_SpDefense = 1, - .itemRare = ITEM_CLEANSE_TAG, + .baseDefense = 120, + .baseSpeed = 30, + .baseSpAttack = P_UPDATED_STATS >= GEN_7 ? 90 : 80, + .baseSpDefense = 80, + .types = { TYPE_FIRE, TYPE_ROCK}, + .catchRate = 75, + .expYield = 151, + .evYield_Defense = 2, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, + .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLUE, + .abilities = {ABILITY_MAGMA_ARMOR, ABILITY_FLAME_BODY, ABILITY_WEAK_ARMOR}, + .bodyColor = BODY_COLOR_RED, + .noFlip = TRUE, + .speciesName = _("Magcargo"), + .cryId = CRY_MAGCARGO, + .natDexNum = NATIONAL_DEX_MAGCARGO, + .categoryName = _("Lava"), + .height = 8, + .weight = 550, + .description = COMPOUND_STRING( + "The shell on its back is made of hardened\n" + "magma. Tens of thousands of years spent\n" + "living in volcanic craters have turned\n" + "Magcargo's bodies into magma."), + .pokemonScale = 332, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Magcargo, 56, 64), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Magcargo, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Magcargo, 64, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, + PALETTE(Magcargo), + ICON(Magcargo, 0), + .footprint = gMonFootprint_Magcargo, + LEARNSETS(Magcargo), + }, +#endif //P_FAMILY_SLUGMA + +#if P_FAMILY_SWINUB + [SPECIES_SWINUB] = + { + .baseHP = 50, + .baseAttack = 50, + .baseDefense = 40, + .baseSpeed = 50, + .baseSpAttack = 30, + .baseSpDefense = 30, + .types = { TYPE_ICE, TYPE_GROUND }, + .catchRate = 225, + .expYield = 50, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_OBLIVIOUS, ABILITY_SNOW_CLOAK, ABILITY_THICK_FAT}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .speciesName = _("Swinub"), + .cryId = CRY_SWINUB, + .natDexNum = NATIONAL_DEX_SWINUB, + .categoryName = _("Pig"), + .height = 4, + .weight = 65, + .description = COMPOUND_STRING( + "It roots for food by rubbing its snout\n" + "against the ground. Its favorite food is a\n" + "mushroom that grows under dried grass.\n" + "It occasionally roots out hot springs."), + .pokemonScale = 324, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Swinub, 40, 32), + .frontPicYOffset = 18, + .frontAnimFrames = sAnims_Swinub, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Swinub, 56, 40), + .backPicYOffset = 15, + .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, + PALETTE(Swinub), + ICON(Swinub, 2), + .footprint = gMonFootprint_Swinub, + LEARNSETS(Swinub), + .evolutions = EVOLUTION({EVO_LEVEL, 33, SPECIES_PILOSWINE}), }, - [SPECIES_ABSOL] = + [SPECIES_PILOSWINE] = { - .baseHP = 65, - .baseAttack = 130, - .baseDefense = 60, - .baseSpeed = 75, - .baseSpAttack = 75, + .baseHP = 100, + .baseAttack = 100, + .baseDefense = 80, + .baseSpeed = 50, + .baseSpAttack = 60, .baseSpDefense = 60, - .types = { TYPE_DARK, TYPE_DARK}, - .catchRate = 30, - .expYield = 163, - .evYield_Attack = 2, + .types = { TYPE_ICE, TYPE_GROUND }, + .catchRate = 75, + .expYield = 158, + .evYield_HP = 1, + .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, - .friendship = 35, - .growthRate = GROWTH_MEDIUM_SLOW, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_PRESSURE, ABILITY_SUPER_LUCK, ABILITY_JUSTIFIED}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = TRUE, - }, - - [SPECIES_WYNAUT] = + .abilities = {ABILITY_OBLIVIOUS, ABILITY_SNOW_CLOAK, ABILITY_THICK_FAT}, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + .speciesName = _("Piloswine"), + .cryId = CRY_PILOSWINE, + .natDexNum = NATIONAL_DEX_PILOSWINE, + .categoryName = _("Swine"), + .height = 11, + .weight = 558, + .description = COMPOUND_STRING( + "A Piloswine is covered by a thick coat\n" + "of long hair for enduring freezing cold.\n" + "It uses its tusks to dig up food that has\n" + "been buried under ice."), + .pokemonScale = 306, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Piloswine, 48, 56), + FRONT_PIC_FEMALE(Piloswine, 48, 56), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Piloswine, + .frontAnimId = ANIM_H_SHAKE, + BACK_PIC(Piloswine, 64, 48), + BACK_PIC_FEMALE(Piloswine, 64, 48), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_H_SHAKE, + PALETTE(Piloswine), + ICON(Piloswine, 2), + .footprint = gMonFootprint_Piloswine, + LEARNSETS(Piloswine), + .evolutions = EVOLUTION({EVO_MOVE, MOVE_ANCIENT_POWER, SPECIES_MAMOSWINE}), + }, + +#if P_GEN_4_CROSS_EVOS + [SPECIES_MAMOSWINE] = { - .baseHP = 95, - .baseAttack = 23, - .baseDefense = 48, - .baseSpeed = 23, - .baseSpAttack = 23, - .baseSpDefense = 48, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - .catchRate = 125, - .expYield = 52, - .evYield_HP = 1, + .baseHP = 110, + .baseAttack = 130, + .baseDefense = 80, + .baseSpeed = 80, + .baseSpAttack = 70, + .baseSpDefense = 60, + .types = { TYPE_ICE, TYPE_GROUND}, + .catchRate = 50, + .expYield = 239, + .evYield_Attack = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_SHADOW_TAG, ABILITY_NONE, ABILITY_TELEPATHY}, - .bodyColor = BODY_COLOR_BLUE, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_OBLIVIOUS, ABILITY_SNOW_CLOAK, ABILITY_THICK_FAT}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .speciesName = _("Mamoswine"), + .cryId = CRY_MAMOSWINE, + .natDexNum = NATIONAL_DEX_MAMOSWINE, + .categoryName = _("Twin Tusk"), + .height = 25, + .weight = 2910, + .description = COMPOUND_STRING( + "A frozen Mamoswine was dug from ice\n" + "dating back 10,000 years. It woke up to\n" + "much amazement. This Pokémon has been\n" + "around for a long, long, long time."), + .pokemonScale = 257, + .pokemonOffset = 6, + .trainerScale = 423, + .trainerOffset = 8, + FRONT_PIC(Mamoswine, 64, 56), + FRONT_PIC_FEMALE(Mamoswine, 64, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Mamoswine, + .frontAnimId = ANIM_BACK_AND_LUNGE, + BACK_PIC(Mamoswine, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(Mamoswine), + ICON(Mamoswine, 2), + .footprint = gMonFootprint_Mamoswine, + LEARNSETS(Mamoswine), + }, +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_SWINUB + +#if P_FAMILY_CORSOLA +#define CORSOLA_HP (P_UPDATED_STATS >= GEN_7 ? 65 : 55) +#define CORSOLA_DEFENSES (P_UPDATED_STATS >= GEN_7 ? 95 : 85) + +#define CORSOLA_MISC_INFO \ + .catchRate = 60, \ + .expYield = 144, \ + .evYield_SpDefense = 1, \ + .genderRatio = PERCENT_FEMALE(75), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_FAST, \ + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3}, \ + .noFlip = FALSE, \ + .speciesName = _("Corsola"), \ + .cryId = CRY_CORSOLA, \ + .natDexNum = NATIONAL_DEX_CORSOLA, \ + .categoryName = _("Coral"), \ + .height = 6, \ + .pokemonScale = 410, \ + .pokemonOffset = 15, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Corsola, \ + .formSpeciesIdTable = sCorsolaFormSpeciesIdTable + + [SPECIES_CORSOLA] = + { + CORSOLA_MISC_INFO, + .baseHP = CORSOLA_HP, + .baseAttack = 55, + .baseDefense = CORSOLA_DEFENSES, + .baseSpeed = 35, + .baseSpAttack = 65, + .baseSpDefense = CORSOLA_DEFENSES, + .types = { TYPE_WATER, TYPE_ROCK}, + .evYield_Defense = 1, + .itemRare = ITEM_LUMINOUS_MOSS, + .abilities = {ABILITY_HUSTLE, ABILITY_NATURAL_CURE, ABILITY_REGENERATOR}, + .bodyColor = BODY_COLOR_PINK, + .weight = 50, + .description = COMPOUND_STRING( + "Corsola live in warm southern seas.\n" + "If the sea becomes polluted, the beautiful\n" + "coral stalks become discolored and crumble\n" + "away in tatters."), + FRONT_PIC(Corsola, 48, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Corsola, + .frontAnimId = ANIM_H_SLIDE, + BACK_PIC(Corsola, 56, 48), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Corsola), + ICON(Corsola, 0), + LEARNSETS(Corsola), + }, + +#if P_GALARIAN_FORMS + [SPECIES_CORSOLA_GALARIAN] = + { + CORSOLA_MISC_INFO, + .baseHP = CORSOLA_HP - 5, + .baseAttack = 55, + .baseDefense = CORSOLA_DEFENSES + 5, + .baseSpeed = 30, + .baseSpAttack = 65, + .baseSpDefense = CORSOLA_DEFENSES + 5, + .types = { TYPE_GHOST, TYPE_GHOST}, + .abilities = {ABILITY_WEAK_ARMOR, ABILITY_NONE, ABILITY_CURSED_BODY}, + .bodyColor = BODY_COLOR_WHITE, + .weight = 5, + .description = COMPOUND_STRING( + "Sudden climate change wiped out this\n" + "ancient kind of Corsola. With its branches,\n" + "it absorbs others' life-force. It curses\n" + "those unaware that kick it by accident."), + FRONT_PIC(CorsolaGalarian, 48, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_CorsolaGalarian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(CorsolaGalarian, 56, 48), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(CorsolaGalarian), + ICON(CorsolaGalarian, 0), + LEARNSETS(CorsolaGalarian), + .isGalarianForm = TRUE, + .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_CURSOLA}), }, - [SPECIES_SNORUNT] = + [SPECIES_CURSOLA] = { - .baseHP = 50, - .baseAttack = 50, + .baseHP = 60, + .baseAttack = 95, .baseDefense = 50, - .baseSpeed = 50, - .baseSpAttack = 50, - .baseSpDefense = 50, - .types = { TYPE_ICE, TYPE_ICE}, + .baseSpeed = 30, + .baseSpAttack = 145, + .baseSpDefense = 130, + .types = { TYPE_GHOST, TYPE_GHOST}, + .catchRate = 30, + .expYield = 179, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3}, + .abilities = {ABILITY_WEAK_ARMOR, ABILITY_NONE, ABILITY_PERISH_BODY}, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = FALSE, + .speciesName = _("Cursola"), + .cryId = CRY_CURSOLA, + .natDexNum = NATIONAL_DEX_CURSOLA, + .categoryName = _("Coral"), + .height = 10, + .weight = 4, + .description = COMPOUND_STRING( + "Its shell is overflowing with its\n" + "heightened otherworldly energy. The\n" + "ectoplasm serves as protection for this\n" + "Pokémon's core spirit."), + .pokemonScale = 305, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Cursola, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Cursola, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Cursola, 64, 56), + .backPicYOffset = 5, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Cursola), + ICON(Cursola, 0), + .footprint = gMonFootprint_Cursola, + LEARNSETS(Cursola), + }, +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_CORSOLA + +#if P_FAMILY_REMORAID + [SPECIES_REMORAID] = + { + .baseHP = 35, + .baseAttack = 65, + .baseDefense = 35, + .baseSpeed = 65, + .baseSpAttack = 65, + .baseSpDefense = 35, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 190, .expYield = 60, - .evYield_HP = 1, - .itemRare = ITEM_SNOWBALL, + .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_INNER_FOCUS, ABILITY_ICE_BODY, ABILITY_MOODY}, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_2}, + .abilities = {ABILITY_HUSTLE, ABILITY_SNIPER, ABILITY_MOODY}, .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, + .speciesName = _("Remoraid"), + .cryId = CRY_REMORAID, + .natDexNum = NATIONAL_DEX_REMORAID, + .categoryName = _("Jet"), + .height = 6, + .weight = 120, + .description = COMPOUND_STRING( + "A Remoraid uses its abdominal muscles\n" + "to forcefully expel swallowed water, then\n" + "shoot down flying prey. When evolution\n" + "approaches, it travels down rivers."), + .pokemonScale = 316, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Remoraid, 40, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Remoraid, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + BACK_PIC(Remoraid, 56, 40), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Remoraid), + ICON(Remoraid, 0), + .footprint = gMonFootprint_Remoraid, + LEARNSETS(Remoraid), + .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_OCTILLERY}), }, - [SPECIES_GLALIE] = + [SPECIES_OCTILLERY] = { - .baseHP = 80, - .baseAttack = 80, - .baseDefense = 80, - .baseSpeed = 80, - .baseSpAttack = 80, - .baseSpDefense = 80, - .types = { TYPE_ICE, TYPE_ICE}, + .baseHP = 75, + .baseAttack = 105, + .baseDefense = 75, + .baseSpeed = 45, + .baseSpAttack = 105, + .baseSpDefense = 75, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 75, .expYield = 168, - .evYield_HP = 2, + .evYield_Attack = 1, + .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_INNER_FOCUS, ABILITY_ICE_BODY, ABILITY_MOODY}, - .bodyColor = BODY_COLOR_GRAY, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_2}, + .abilities = {ABILITY_SUCTION_CUPS, ABILITY_SNIPER, ABILITY_MOODY}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, - }, - - [SPECIES_SPHEAL] = + .speciesName = _("Octillery"), + .cryId = CRY_OCTILLERY, + .natDexNum = NATIONAL_DEX_OCTILLERY, + .categoryName = _("Jet"), + .height = 9, + .weight = 285, + .description = COMPOUND_STRING( + "It ensnares its foe with its suction-\n" + "cupped tentacles before delivering the\n" + "finishing blow. If the foe turns out to be\n" + "too strong, it spews ink to escape."), + .pokemonScale = 296, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Octillery, 56, 48), + FRONT_PIC_FEMALE(Octillery, 56, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Octillery, + .frontAnimId = ANIM_V_STRETCH, + .frontAnimDelay = 20, + BACK_PIC(Octillery, 64, 56), + BACK_PIC_FEMALE(Octillery, 64, 56), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_SHRINK_GROW, + PALETTE(Octillery), + ICON(Octillery, 0), + .footprint = gMonFootprint_Octillery, + LEARNSETS(Octillery), + }, +#endif //P_FAMILY_REMORAID + +#if P_FAMILY_DELIBIRD + [SPECIES_DELIBIRD] = { - .baseHP = 70, - .baseAttack = 40, - .baseDefense = 50, - .baseSpeed = 25, - .baseSpAttack = 55, - .baseSpDefense = 50, - .types = { TYPE_ICE, TYPE_WATER}, - .catchRate = 255, - .expYield = 58, - .evYield_HP = 1, + .baseHP = 45, + .baseAttack = 55, + .baseDefense = 45, + .baseSpeed = 75, + .baseSpAttack = 65, + .baseSpDefense = 45, + .types = { TYPE_ICE, TYPE_FLYING }, + .catchRate = 45, + .expYield = 116, + .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, + .growthRate = GROWTH_FAST, .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, - .abilities = {ABILITY_THICK_FAT, ABILITY_ICE_BODY, ABILITY_OBLIVIOUS}, + .abilities = {ABILITY_VITAL_SPIRIT, ABILITY_HUSTLE, ABILITY_INSOMNIA}, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + .speciesName = _("Delibird"), + .cryId = CRY_DELIBIRD, + .natDexNum = NATIONAL_DEX_DELIBIRD, + .categoryName = _("Delivery"), + .height = 9, + .weight = 160, + .description = COMPOUND_STRING( + "It carries food bundled up in its tail.\n" + "There was a famous explorer who\n" + "managed to scale Mt. Everest thanks\n" + "to a Delibird sharing its food."), + .pokemonScale = 293, + .pokemonOffset = 11, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Delibird, 48, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Delibird, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Delibird, 56, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(Delibird), + ICON(Delibird, 1), + .footprint = gMonFootprint_Delibird, + LEARNSETS(Delibird), + }, +#endif //P_FAMILY_DELIBIRD + +#if P_FAMILY_MANTINE +#if P_GEN_4_CROSS_EVOS + [SPECIES_MANTYKE] = + { + .baseHP = 45, + .baseAttack = 20, + .baseDefense = 50, + .baseSpeed = 50, + .baseSpAttack = 60, + .baseSpDefense = 120, + .types = { TYPE_WATER, TYPE_FLYING}, + .catchRate = 25, + .expYield = 69, + .evYield_SpDefense = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_SWIFT_SWIM, ABILITY_WATER_ABSORB, ABILITY_WATER_VEIL}, .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - }, + .speciesName = _("Mantyke"), + .cryId = CRY_MANTYKE, + .natDexNum = NATIONAL_DEX_MANTYKE, + .categoryName = _("Kite"), + .height = 10, + .weight = 650, + .description = COMPOUND_STRING( + "When it swims close to the surface\n" + "of the ocean, people aboard ships are\n" + "able to observe the pattern on its back.\n" + "It often swims in a school of Remoraid."), + .pokemonScale = 305, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Mantyke, 48, 48), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Mantyke, + .frontAnimId = ANIM_TWIST_TWICE, + BACK_PIC(Mantyke, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Mantyke), + ICON(Mantyke, 0), + .footprint = gMonFootprint_Mantyke, + LEARNSETS(Mantyke), + .evolutions = EVOLUTION({EVO_SPECIFIC_MON_IN_PARTY, SPECIES_REMORAID, SPECIES_MANTINE}), + }, +#endif //P_GEN_4_CROSS_EVOS - [SPECIES_SEALEO] = + [SPECIES_MANTINE] = { - .baseHP = 90, - .baseAttack = 60, + .baseHP = P_UPDATED_STATS >= GEN_7 ? 85 : 65, + .baseAttack = 40, .baseDefense = 70, - .baseSpeed = 45, - .baseSpAttack = 75, - .baseSpDefense = 70, - .types = { TYPE_ICE, TYPE_WATER}, - .catchRate = 120, - .expYield = 144, - .evYield_HP = 2, + .baseSpeed = 70, + .baseSpAttack = 80, + .baseSpDefense = 140, + .types = { TYPE_WATER, TYPE_FLYING}, + .catchRate = 25, + .expYield = 170, + .evYield_SpDefense = 2, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, - .abilities = {ABILITY_THICK_FAT, ABILITY_ICE_BODY, ABILITY_OBLIVIOUS}, - .bodyColor = BODY_COLOR_BLUE, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, + .abilities = {ABILITY_SWIFT_SWIM, ABILITY_WATER_ABSORB, ABILITY_WATER_VEIL}, + .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, - }, - - [SPECIES_WALREIN] = + .speciesName = _("Mantine"), + .cryId = CRY_MANTINE, + .natDexNum = NATIONAL_DEX_MANTINE, + .categoryName = _("Kite"), + .height = 21, + .weight = 2200, + .description = COMPOUND_STRING( + "On sunny days, schools of Mantine can be\n" + "seen elegantly leaping over the waves.\n" + "It is not bothered by the Remoraid that\n" + "hitches rides."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 342, + .trainerOffset = 7, + FRONT_PIC(Mantine, 64, 56), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Mantine, + .frontAnimId = ANIM_SWING_CONVEX, + .enemyMonElevation = 6, + BACK_PIC(Mantine, 64, 64), + .backPicYOffset = 2, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Mantine), + ICON(Mantine, 2), + .footprint = gMonFootprint_Mantine, + LEARNSETS(Mantine), + }, +#endif //P_FAMILY_MANTINE + +#if P_FAMILY_SKARMORY + [SPECIES_SKARMORY] = { - .baseHP = 110, + .baseHP = 65, .baseAttack = 80, - .baseDefense = 90, - .baseSpeed = 65, - .baseSpAttack = 95, - .baseSpDefense = 90, - .types = { TYPE_ICE, TYPE_WATER}, - .catchRate = 45, - .expYield = 239, - .evYield_HP = 3, + .baseDefense = 140, + .baseSpeed = 70, + .baseSpAttack = 40, + .baseSpDefense = 70, + .types = { TYPE_STEEL, TYPE_FLYING }, + .catchRate = 25, + .expYield = 163, + .evYield_Defense = 2, + .itemRare = ITEM_METAL_COAT, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, - .abilities = {ABILITY_THICK_FAT, ABILITY_ICE_BODY, ABILITY_OBLIVIOUS}, - .bodyColor = BODY_COLOR_BLUE, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + .abilities = {ABILITY_KEEN_EYE, ABILITY_STURDY, ABILITY_WEAK_ARMOR}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, - }, - - [SPECIES_CLAMPERL] = + .speciesName = _("Skarmory"), + .cryId = CRY_SKARMORY, + .natDexNum = NATIONAL_DEX_SKARMORY, + .categoryName = _("Armor Bird"), + .height = 17, + .weight = 505, + .description = COMPOUND_STRING( + "A Pokémon that has a body and wings of\n" + "steel. People in the past used feathers\n" + "fallen from Skarmory to make swords and\n" + "knives."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 271, + .trainerOffset = 1, + FRONT_PIC(Skarmory, 64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Skarmory, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(Skarmory, 48, 64), + .backPicYOffset = 1, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Skarmory), + ICON(Skarmory, 0), + .footprint = gMonFootprint_Skarmory, + LEARNSETS(Skarmory), + }, +#endif //P_FAMILY_SKARMORY + +#if P_FAMILY_HOUNDOUR + [SPECIES_HOUNDOUR] = { - .baseHP = 35, - .baseAttack = 64, - .baseDefense = 85, - .baseSpeed = 32, - .baseSpAttack = 74, - .baseSpDefense = 55, - .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 255, - .expYield = 69, - .evYield_Defense = 1, - .itemCommon = ITEM_PEARL, - .itemRare = ITEM_BIG_PEARL, + .baseHP = 45, + .baseAttack = 60, + .baseDefense = 30, + .baseSpeed = 65, + .baseSpAttack = 80, + .baseSpDefense = 50, + .types = { TYPE_DARK, TYPE_FIRE }, + .catchRate = 120, + .expYield = 66, + .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_SHELL_ARMOR, ABILITY_NONE, ABILITY_RATTLED}, - .bodyColor = BODY_COLOR_BLUE, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_EARLY_BIRD, ABILITY_FLASH_FIRE, ABILITY_UNNERVE}, + .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, - }, + .speciesName = _("Houndour"), + .cryId = CRY_HOUNDOUR, + .natDexNum = NATIONAL_DEX_HOUNDOUR, + .categoryName = _("Dark"), + .height = 6, + .weight = 108, + .description = COMPOUND_STRING( + "Houndour communicate with each other\n" + "using a variety of cries to corner their\n" + "prey. This Pokémon's remarkable teamwork\n" + "is simply unparalleled."), + .pokemonScale = 393, + .pokemonOffset = 16, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Houndour, 40, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Houndour, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Houndour, 40, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Houndour), + ICON(Houndour, 0), + .footprint = gMonFootprint_Houndour, + LEARNSETS(Houndour), + .evolutions = EVOLUTION({EVO_LEVEL, 24, SPECIES_HOUNDOOM}), + }, + +#define HOUNDOOM_MISC_INFO \ + .types = { TYPE_DARK, TYPE_FIRE}, \ + .catchRate = 45, \ + .evYield_SpAttack = 2, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = 35, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, \ + .bodyColor = BODY_COLOR_BLACK, \ + .noFlip = FALSE, \ + .speciesName = _("Houndoom"), \ + .natDexNum = NATIONAL_DEX_HOUNDOOM, \ + .categoryName = _("Dark"), \ + .footprint = gMonFootprint_Houndoom, \ + LEARNSETS(Houndoom), \ + .formSpeciesIdTable = sHoundoomFormSpeciesIdTable, \ + .formChangeTable = sHoundoomFormChangeTable - [SPECIES_HUNTAIL] = + [SPECIES_HOUNDOOM] = { - .baseHP = 55, - .baseAttack = 104, - .baseDefense = 105, - .baseSpeed = 52, - .baseSpAttack = 94, - .baseSpDefense = 75, - .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 60, - .expYield = 170, - .evYield_Attack = 1, - .evYield_Defense = 1, - .itemRare = ITEM_DEEP_SEA_TOOTH, + HOUNDOOM_MISC_INFO, + .baseHP = 75, + .baseAttack = 90, + .baseDefense = 50, + .baseSpeed = 95, + .baseSpAttack = 110, + .baseSpDefense = 80, + .expYield = 175, + .abilities = {ABILITY_EARLY_BIRD, ABILITY_FLASH_FIRE, ABILITY_UNNERVE}, + .cryId = CRY_HOUNDOOM, + .height = 14, + .weight = 350, + .description = COMPOUND_STRING( + "In a Houndoom pack, the one with its horns\n" + "raked sharply back serves a leadership\n" + "role. They choose their leader by fighting\n" + "among themselves."), + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Houndoom, 64, 64), + FRONT_PIC_FEMALE(Houndoom, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Houndoom, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(Houndoom, 64, 56), + BACK_PIC_FEMALE(Houndoom, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Houndoom), + ICON(Houndoom, 0), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_HOUNDOOM_MEGA] = + { + HOUNDOOM_MISC_INFO, + .baseHP = 75, + .baseAttack = 90, + .baseDefense = 90, + .baseSpeed = 115, + .baseSpAttack = 140, + .baseSpDefense = 90, + .expYield = 210, + .abilities = {ABILITY_SOLAR_POWER, ABILITY_SOLAR_POWER, ABILITY_SOLAR_POWER}, + .cryId = CRY_HOUNDOOM_MEGA, + .height = 19, + .weight = 495, + .description = COMPOUND_STRING( + "Its red claws and the tips of its tail are\n" + "melting from high internal temperatures\n" + "that are painful to Houndoom itself.\n"), + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(HoundoomMega, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_HoundoomMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(HoundoomMega, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(HoundoomMega), + ICON(HoundoomMega, 0), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_HOUNDOUR + +#if P_FAMILY_PHANPY + [SPECIES_PHANPY] = + { + .baseHP = 90, + .baseAttack = 60, + .baseDefense = 60, + .baseSpeed = 40, + .baseSpAttack = 40, + .baseSpDefense = 40, + .types = { TYPE_GROUND, TYPE_GROUND }, + .catchRate = 120, + .expYield = 66, + .evYield_HP = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_WATER_VEIL}, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_PICKUP, ABILITY_NONE, ABILITY_SAND_VEIL}, .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Phanpy"), + .cryId = CRY_PHANPY, + .natDexNum = NATIONAL_DEX_PHANPY, + .categoryName = _("Long Nose"), + .height = 5, + .weight = 335, + .description = COMPOUND_STRING( + "Phanpy's big ears serve as broad fans.\n" + "When it becomes hot, it flaps the ears\n" + "busily to cool down. Even the young are\n" + "very strong."), + .pokemonScale = 465, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Phanpy, 40, 32), + .frontPicYOffset = 16, + .frontAnimFrames = sAnims_Phanpy, + .frontAnimId = ANIM_H_JUMPS_V_STRETCH, + BACK_PIC(Phanpy, 56, 40), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Phanpy), + ICON(Phanpy, 0), + .footprint = gMonFootprint_Phanpy, + LEARNSETS(Phanpy), + .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_DONPHAN}), }, - [SPECIES_GOREBYSS] = + [SPECIES_DONPHAN] = { - .baseHP = 55, - .baseAttack = 84, - .baseDefense = 105, - .baseSpeed = 52, - .baseSpAttack = 114, - .baseSpDefense = 75, - .types = { TYPE_WATER, TYPE_WATER}, + .baseHP = 90, + .baseAttack = 120, + .baseDefense = 120, + .baseSpeed = 50, + .baseSpAttack = 60, + .baseSpDefense = 60, + .types = { TYPE_GROUND, TYPE_GROUND }, .catchRate = 60, - .expYield = 170, - .evYield_SpAttack = 2, - .itemRare = ITEM_DEEP_SEA_SCALE, + .expYield = 175, + .evYield_Attack = 1, + .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_HYDRATION}, - .bodyColor = BODY_COLOR_PINK, - .noFlip = FALSE, - }, - - [SPECIES_RELICANTH] = - { - .baseHP = 100, - .baseAttack = 90, - .baseDefense = 130, - .baseSpeed = 55, - .baseSpAttack = 45, - .baseSpDefense = 65, - .types = { TYPE_WATER, TYPE_ROCK}, - .catchRate = 25, - .expYield = 170, - .evYield_HP = 1, - .evYield_Defense = 1, - .itemRare = ITEM_DEEP_SEA_SCALE, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 40, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_2}, - .abilities = {ABILITY_SWIFT_SWIM, ABILITY_ROCK_HEAD, ABILITY_STURDY}, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_STURDY, ABILITY_NONE, ABILITY_SAND_VEIL}, .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, - }, - - [SPECIES_LUVDISC] = + .speciesName = _("Donphan"), + .cryId = CRY_DONPHAN, + .natDexNum = NATIONAL_DEX_DONPHAN, + .categoryName = _("Armor"), + .height = 11, + .weight = 1200, + .description = COMPOUND_STRING( + "A Donphan is so strong it can easily haul\n" + "a dump truck. Its hide has toughened to a\n" + "rock-hard state. An ordinary sort of\n" + "attack won't even leave a scratch."), + .pokemonScale = 313, + .pokemonOffset = 9, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Donphan, 64, 48), + FRONT_PIC_FEMALE(Donphan, 64, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Donphan, + .frontAnimId = ANIM_ROTATE_UP_SLAM_DOWN, + BACK_PIC(Donphan, 64, 48), + BACK_PIC_FEMALE(Donphan, 64, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(Donphan), + ICON(Donphan, 0), + .footprint = gMonFootprint_Donphan, + LEARNSETS(Donphan), + }, +#endif //P_FAMILY_PHANPY + +#if P_FAMILY_STANTLER + [SPECIES_STANTLER] = { - .baseHP = 43, - .baseAttack = 30, - .baseDefense = 55, - .baseSpeed = 97, - .baseSpAttack = 40, + .baseHP = 73, + .baseAttack = 95, + .baseDefense = 62, + .baseSpeed = 85, + .baseSpAttack = 85, .baseSpDefense = 65, - .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 225, - .expYield = 116, - .evYield_Speed = 1, - .itemCommon = ITEM_HEART_SCALE, - .genderRatio = PERCENT_FEMALE(75), + .types = { TYPE_NORMAL, TYPE_NORMAL }, + .catchRate = 45, + .expYield = 163, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, - .abilities = {ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_HYDRATION}, - .bodyColor = BODY_COLOR_PINK, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_INTIMIDATE, ABILITY_FRISK, ABILITY_SAP_SIPPER}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - }, - - [SPECIES_BAGON] = + .speciesName = _("Stantler"), + .cryId = CRY_STANTLER, + .natDexNum = NATIONAL_DEX_STANTLER, + .categoryName = _("Big Horn"), + .height = 14, + .weight = 712, + .description = COMPOUND_STRING( + "Stantler's magnificent antlers were\n" + "once traded at high prices as works of art.\n" + "As a result, this Pokémon was hunted\n" + "close to extinction."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Stantler, 48, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Stantler, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Stantler, 64, 64), + .backPicYOffset = 1, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Stantler), + ICON(Stantler, 2), + .footprint = gMonFootprint_Stantler, + LEARNSETS(Stantler), + .evolutions = EVOLUTION({EVO_MOVE, MOVE_PSYSHIELD_BASH, SPECIES_WYRDEER}), + }, + +#if P_GEN_8_CROSS_EVOS + [SPECIES_WYRDEER] = { - .baseHP = 45, - .baseAttack = 75, - .baseDefense = 60, - .baseSpeed = 50, - .baseSpAttack = 40, - .baseSpDefense = 30, - .types = { TYPE_DRAGON, TYPE_DRAGON }, + .baseHP = 103, + .baseAttack = 105, + .baseDefense = 72, + .baseSpeed = 65, + .baseSpAttack = 105, + .baseSpDefense = 75, + .types = { TYPE_NORMAL, TYPE_PSYCHIC}, .catchRate = 45, - .expYield = 60, + .expYield = 263, .evYield_Attack = 1, - .itemRare = ITEM_DRAGON_FANG, + .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 40, - .friendship = 35, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_ROCK_HEAD, ABILITY_NONE, ABILITY_SHEER_FORCE}, - .bodyColor = BODY_COLOR_BLUE, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_INTIMIDATE, ABILITY_FRISK, ABILITY_SAP_SIPPER}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, - }, - - [SPECIES_SHELGON] = + .speciesName = _("Wyrdeer"), + .cryId = CRY_WYRDEER, + .natDexNum = NATIONAL_DEX_WYRDEER, + .categoryName = _("Big Horn"), + .height = 18, + .weight = 951, + .description = COMPOUND_STRING( + "The black orbs shine with an uncanny light\n" + "when it is erecting invisible barriers.\n" + "The fur shed from its beard retains heat\n" + "and is useful for winter clothing."), + .pokemonScale = 267, + .pokemonOffset = 2, + .trainerScale = 286, + .trainerOffset = 1, + FRONT_PIC(Wyrdeer, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Wyrdeer, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Wyrdeer, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Wyrdeer), + ICON(Wyrdeer, 2), + //.footprint = gMonFootprint_Wyrdeer, + LEARNSETS(Wyrdeer), + }, +#endif //P_GEN_8_CROSS_EVOS +#endif //P_FAMILY_STANTLER + +#if P_FAMILY_SMEARGLE + [SPECIES_SMEARGLE] = { - .baseHP = 65, - .baseAttack = 95, - .baseDefense = 100, - .baseSpeed = 50, - .baseSpAttack = 60, - .baseSpDefense = 50, - .types = { TYPE_DRAGON, TYPE_DRAGON }, + .baseHP = 55, + .baseAttack = 20, + .baseDefense = 35, + .baseSpeed = 75, + .baseSpAttack = 20, + .baseSpDefense = 45, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 45, - .expYield = 147, - .evYield_Defense = 2, - .itemRare = ITEM_DRAGON_FANG, + .expYield = 88, + .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 40, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_ROCK_HEAD, ABILITY_NONE, ABILITY_OVERCOAT}, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_OWN_TEMPO, ABILITY_TECHNICIAN, ABILITY_MOODY}, .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - }, - - [SPECIES_SALAMENCE] = + .speciesName = _("Smeargle"), + .cryId = CRY_SMEARGLE, + .natDexNum = NATIONAL_DEX_SMEARGLE, + .categoryName = _("Painter"), + .height = 12, + .weight = 580, + .description = COMPOUND_STRING( + "A Smeargle marks its territory using a\n" + "fluid that leaks out from the tip of its\n" + "tail. About 5,000 different marks left by\n" + "this Pokémon have been found."), + .pokemonScale = 287, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Smeargle, 64, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Smeargle, + .frontAnimId = ANIM_H_JUMPS_V_STRETCH, + BACK_PIC(Smeargle, 56, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Smeargle), + ICON(Smeargle, 1), + .footprint = gMonFootprint_Smeargle, + LEARNSETS(Smeargle), + }, +#endif //P_FAMILY_SMEARGLE + +#if P_FAMILY_MILTANK + [SPECIES_MILTANK] = { .baseHP = 95, - .baseAttack = 135, - .baseDefense = 80, + .baseAttack = 80, + .baseDefense = 105, .baseSpeed = 100, - .baseSpAttack = 110, - .baseSpDefense = 80, - .types = { TYPE_DRAGON, TYPE_FLYING }, + .baseSpAttack = 40, + .baseSpDefense = 70, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 45, - .expYield = 270, - .evYield_Attack = 3, - .itemRare = ITEM_DRAGON_FANG, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 40, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_INTIMIDATE, ABILITY_NONE, ABILITY_MOXIE}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_BELDUM] = - { - .baseHP = 40, - .baseAttack = 55, - .baseDefense = 80, - .baseSpeed = 30, - .baseSpAttack = 35, - .baseSpDefense = 60, - .types = { TYPE_STEEL, TYPE_PSYCHIC }, - .catchRate = 3, - .expYield = 60, - .evYield_Defense = 1, - .itemRare = ITEM_METAL_COAT, - .genderRatio = MON_GENDERLESS, - .eggCycles = 40, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_CLEAR_BODY, ABILITY_NONE, ABILITY_LIGHT_METAL}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_METANG] = - { - .baseHP = 60, - .baseAttack = 75, - .baseDefense = 100, - .baseSpeed = 50, - .baseSpAttack = 55, - .baseSpDefense = 80, - .types = { TYPE_STEEL, TYPE_PSYCHIC }, - .catchRate = 3, - .expYield = 147, + .expYield = 172, .evYield_Defense = 2, - .itemRare = ITEM_METAL_COAT, - .genderRatio = MON_GENDERLESS, - .eggCycles = 40, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_CLEAR_BODY, ABILITY_NONE, ABILITY_LIGHT_METAL}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_METAGROSS] = - { - .baseHP = 80, - .baseAttack = 135, - .baseDefense = 130, - .baseSpeed = 70, - .baseSpAttack = 95, - .baseSpDefense = 90, - .types = { TYPE_STEEL, TYPE_PSYCHIC }, - .catchRate = 3, - .expYield = 270, - .evYield_Defense = 3, - .itemRare = ITEM_METAL_COAT, - .genderRatio = MON_GENDERLESS, - .eggCycles = 40, - .friendship = 35, + .itemCommon = ITEM_MOOMOO_MILK, + .itemRare = ITEM_MOOMOO_MILK, + .genderRatio = MON_FEMALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_CLEAR_BODY, ABILITY_NONE, ABILITY_LIGHT_METAL}, - .bodyColor = BODY_COLOR_BLUE, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_THICK_FAT, ABILITY_SCRAPPY, ABILITY_SAP_SIPPER}, + .bodyColor = BODY_COLOR_PINK, .noFlip = FALSE, - }, - - [SPECIES_REGIROCK] = + .speciesName = _("Miltank"), + .cryId = CRY_MILTANK, + .natDexNum = NATIONAL_DEX_MILTANK, + .categoryName = _("Milk Cow"), + .height = 12, + .weight = 755, + .description = COMPOUND_STRING( + "It gives over five gallons of milk daily.\n" + "Its sweet milk is enjoyed by children and\n" + "grown-ups alike. People who can't drink\n" + "milk turn it into yogurt and eat it instead."), + .pokemonScale = 280, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Miltank, 64, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Miltank, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + BACK_PIC(Miltank, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Miltank), + ICON(Miltank, 0), + .footprint = gMonFootprint_Miltank, + LEARNSETS(Miltank), + }, +#endif //P_FAMILY_MILTANK + +#if P_FAMILY_RAIKOU + [SPECIES_RAIKOU] = { - .baseHP = 80, - .baseAttack = 100, - .baseDefense = 200, - .baseSpeed = 50, - .baseSpAttack = 50, + .baseHP = 90, + .baseAttack = 85, + .baseDefense = 75, + .baseSpeed = 115, + .baseSpAttack = 115, .baseSpDefense = 100, - .types = { TYPE_ROCK, TYPE_ROCK }, - .catchRate = 3, - .expYield = 261, - .evYield_Defense = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 80, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_CLEAR_BODY, ABILITY_NONE, ABILITY_STURDY}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = TRUE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_REGICE] = - { - .baseHP = 80, - .baseAttack = 50, - .baseDefense = 100, - .baseSpeed = 50, - .baseSpAttack = 100, - .baseSpDefense = 200, - .types = { TYPE_ICE, TYPE_ICE }, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, .catchRate = 3, .expYield = 261, - .evYield_SpDefense = 3, + .evYield_Speed = 2, + .evYield_SpAttack = 1, .genderRatio = MON_GENDERLESS, .eggCycles = 80, .friendship = 35, .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_CLEAR_BODY, ABILITY_NONE, ABILITY_ICE_BODY}, - .bodyColor = BODY_COLOR_BLUE, + #if P_UPDATED_ABILITIES >= GEN_7 + .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_INNER_FOCUS}, + #else + .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_VOLT_ABSORB}, + #endif + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_REGISTEEL] = + .isLegendary = TRUE, + .speciesName = _("Raikou"), + .cryId = CRY_RAIKOU, + .natDexNum = NATIONAL_DEX_RAIKOU, + .categoryName = _("Thunder"), + .height = 19, + .weight = 1780, + .description = COMPOUND_STRING( + "Raikou embodies the speed of lightning.\n" + "Its roars send shock waves shuddering\n" + "through the air and ground as if\n" + "lightning bolts were crashing down."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 345, + .trainerOffset = 7, + FRONT_PIC(Raikou, 64, 56), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Raikou, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Raikou, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, + PALETTE(Raikou), + ICON(Raikou, 2), + .footprint = gMonFootprint_Raikou, + LEARNSETS(Raikou), + }, +#endif //P_FAMILY_RAIKOU + +#if P_FAMILY_ENTEI + [SPECIES_ENTEI] = { - .baseHP = 80, - .baseAttack = 75, - .baseDefense = 150, - .baseSpeed = 50, - .baseSpAttack = 75, - .baseSpDefense = 150, - .types = { TYPE_STEEL, TYPE_STEEL }, + .baseHP = 115, + .baseAttack = 115, + .baseDefense = 85, + .baseSpeed = 100, + .baseSpAttack = 90, + .baseSpDefense = 75, + .types = { TYPE_FIRE, TYPE_FIRE }, .catchRate = 3, .expYield = 261, - .evYield_Defense = 2, - .evYield_SpDefense = 1, + .evYield_HP = 1, + .evYield_Attack = 2, .genderRatio = MON_GENDERLESS, .eggCycles = 80, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_CLEAR_BODY, ABILITY_NONE, ABILITY_LIGHT_METAL}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_LATIAS] = - { - .baseHP = 80, - .baseAttack = 80, - .baseDefense = 90, - .baseSpeed = 110, - .baseSpAttack = 110, - .baseSpDefense = 130, - .types = { TYPE_DRAGON, TYPE_PSYCHIC }, - .catchRate = 3, - .expYield = 270, - .evYield_SpDefense = 3, - .genderRatio = MON_FEMALE, - .eggCycles = 120, - .friendship = 90, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, - .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_LATIOS] = - { - .baseHP = 80, - .baseAttack = 90, - .baseDefense = 80, - .baseSpeed = 110, - .baseSpAttack = 130, - .baseSpDefense = 110, - .types = { TYPE_DRAGON, TYPE_PSYCHIC }, - .catchRate = 3, - .expYield = 270, - .evYield_SpAttack = 3, - .genderRatio = MON_MALE, - .eggCycles = 120, - .friendship = 90, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, - .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLUE, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + #if P_UPDATED_ABILITIES >= GEN_7 + .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_INNER_FOCUS}, + #else + .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_FLASH_FIRE}, + #endif + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_KYOGRE] = + .isLegendary = TRUE, + .speciesName = _("Entei"), + .cryId = CRY_ENTEI, + .natDexNum = NATIONAL_DEX_ENTEI, + .categoryName = _("Volcano"), + .height = 21, + .weight = 1980, + .description = COMPOUND_STRING( + "Entei embodies the passion of magma.\n" + "It is thought to have been born in the\n" + "eruption of a volcano. It blasts fire that\n" + "consumes all that it touches."), + .pokemonScale = 259, + .pokemonOffset = 0, + .trainerScale = 345, + .trainerOffset = 7, + FRONT_PIC(Entei, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Entei, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Entei, 64, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, + PALETTE(Entei), + ICON(Entei, 2), + .footprint = gMonFootprint_Entei, + LEARNSETS(Entei), + }, +#endif //P_FAMILY_ENTEI + +#if P_FAMILY_SUICUNE + [SPECIES_SUICUNE] = { .baseHP = 100, - .baseAttack = 100, - .baseDefense = 90, - .baseSpeed = 90, - .baseSpAttack = 150, - .baseSpDefense = 140, - .types = { TYPE_WATER, TYPE_WATER}, + .baseAttack = 75, + .baseDefense = 115, + .baseSpeed = 85, + .baseSpAttack = 90, + .baseSpDefense = 115, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 3, - .expYield = 302, - .evYield_SpAttack = 3, + .expYield = 261, + .evYield_Defense = 1, + .evYield_SpDefense = 2, .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, + .eggCycles = 80, + .friendship = 35, .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_DRIZZLE, ABILITY_NONE}, + #if P_UPDATED_ABILITIES >= GEN_7 + .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_INNER_FOCUS}, + #else + .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_WATER_ABSORB}, + #endif .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, + .isLegendary = TRUE, + .speciesName = _("Suicune"), + .cryId = CRY_SUICUNE, + .natDexNum = NATIONAL_DEX_SUICUNE, + .categoryName = _("Aurora"), + .height = 20, + .weight = 1870, + .description = COMPOUND_STRING( + "Suicune embodies the compassion of\n" + "a pure spring of water. It runs across\n" + "the land with gliding elegance. It has the\n" + "power to purify dirty water."), + .pokemonScale = 269, + .pokemonOffset = 0, + .trainerScale = 345, + .trainerOffset = 7, + FRONT_PIC(Suicune, 64, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_Suicune, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(Suicune, 64, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, + PALETTE(Suicune), + ICON(Suicune, 2), + .footprint = gMonFootprint_Suicune, + LEARNSETS(Suicune), + }, +#endif //P_FAMILY_SUICUNE + +#if P_FAMILY_LARVITAR + [SPECIES_LARVITAR] = + { + .baseHP = 50, + .baseAttack = 64, + .baseDefense = 50, + .baseSpeed = 41, + .baseSpAttack = 45, + .baseSpDefense = 50, + .types = { TYPE_ROCK, TYPE_GROUND }, + .catchRate = 45, + .expYield = 60, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, + .abilities = {ABILITY_GUTS, ABILITY_NONE, ABILITY_SAND_VEIL}, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + .speciesName = _("Larvitar"), + .cryId = CRY_LARVITAR, + .natDexNum = NATIONAL_DEX_LARVITAR, + .categoryName = _("Rock Skin"), + .height = 6, + .weight = 720, + .description = COMPOUND_STRING( + "A Larvitar is born deep under the ground.\n" + "It must eat its way through the soil above\n" + "and reach the surface for it to see its\n" + "parents' faces."), + .pokemonScale = 472, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Larvitar, 40, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Larvitar, + .frontAnimId = ANIM_V_JUMPS_SMALL, + BACK_PIC(Larvitar, 56, 64), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(Larvitar), + ICON(Larvitar, 1), + .footprint = gMonFootprint_Larvitar, + LEARNSETS(Larvitar), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_PUPITAR}), }, - [SPECIES_GROUDON] = + [SPECIES_PUPITAR] = + { + .baseHP = 70, + .baseAttack = 84, + .baseDefense = 70, + .baseSpeed = 51, + .baseSpAttack = 65, + .baseSpDefense = 70, + .types = { TYPE_ROCK, TYPE_GROUND }, + .catchRate = 45, + .expYield = 144, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER }, + .abilities = {ABILITY_SHED_SKIN, ABILITY_NONE}, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + .speciesName = _("Pupitar"), + .cryId = CRY_PUPITAR, + .natDexNum = NATIONAL_DEX_PUPITAR, + .categoryName = _("Hard Shell"), + .height = 12, + .weight = 1520, + .description = COMPOUND_STRING( + "A Pupitar creates a gas inside its body\n" + "that it ejects under compression to propel\n" + "itself like a jet. Its body can withstand\n" + "a collision with solid steel."), + .pokemonScale = 292, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Pupitar, 40, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Pupitar, + .frontAnimId = ANIM_H_SHAKE, + BACK_PIC(Pupitar, 48, 56), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Pupitar), + ICON(Pupitar, 2), + .footprint = gMonFootprint_Pupitar, + LEARNSETS(Pupitar), + .evolutions = EVOLUTION({EVO_LEVEL, 55, SPECIES_TYRANITAR}), + }, + +#define TYRANITAR_MISC_INFO \ + .types = { TYPE_ROCK, TYPE_DARK}, \ + .catchRate = 45, \ + .evYield_Attack = 3, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 40, \ + .friendship = 35, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, \ + .bodyColor = BODY_COLOR_GREEN, \ + .noFlip = FALSE, \ + .speciesName = _("Tyranitar"), \ + .natDexNum = NATIONAL_DEX_TYRANITAR, \ + .categoryName = _("Armor"), \ + .footprint = gMonFootprint_Tyranitar, \ + LEARNSETS(Tyranitar), \ + .formSpeciesIdTable = sTyranitarFormSpeciesIdTable, \ + .formChangeTable = sTyranitarFormChangeTable + + [SPECIES_TYRANITAR] = { + TYRANITAR_MISC_INFO, .baseHP = 100, - .baseAttack = 150, - .baseDefense = 140, - .baseSpeed = 90, - .baseSpAttack = 100, - .baseSpDefense = 90, - .types = { TYPE_GROUND, TYPE_GROUND}, + .baseAttack = 134, + .baseDefense = 110, + .baseSpeed = 61, + .baseSpAttack = 95, + .baseSpDefense = 100, + .expYield = 270, + .abilities = {ABILITY_SAND_STREAM, ABILITY_NONE, ABILITY_UNNERVE}, + .cryId = CRY_TYRANITAR, + .height = 20, + .weight = 2020, + .description = COMPOUND_STRING( + "A Tyranitar is so overwhelmingly powerful,\n" + "it can bring down a whole mountain to make\n" + "its nest. It roams in mountains seeking\n" + "new opponents to fight."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 345, + .trainerOffset = 7, + FRONT_PIC(Tyranitar, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Tyranitar, + .frontAnimId = ANIM_V_SHAKE, + .frontAnimDelay = 10, + BACK_PIC(Tyranitar, 64, 64), + .backPicYOffset = 1, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(Tyranitar), + ICON(Tyranitar, 4), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_TYRANITAR_MEGA] = + { + TYRANITAR_MISC_INFO, + .baseHP = 100, + .baseAttack = 164, + .baseDefense = 150, + .baseSpeed = 71, + .baseSpAttack = 95, + .baseSpDefense = 120, + .expYield = 315, + .abilities = {ABILITY_SAND_STREAM, ABILITY_SAND_STREAM, ABILITY_SAND_STREAM}, + .cryId = CRY_TYRANITAR_MEGA, + .height = 25, + .weight = 2550, + .description = COMPOUND_STRING( + "Due to the colossal power poured into it,\n" + "this Pokémon's back split right open. Its\n" + "destructive instincts are the only thing\n" + "keeping it moving."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 345, + .trainerOffset = 7, + FRONT_PIC(TyranitarMega, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_TyranitarMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(TyranitarMega, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(TyranitarMega), + ICON(TyranitarMega, 1), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_LARVITAR + +#if P_FAMILY_LUGIA + [SPECIES_LUGIA] = + { + .baseHP = 106, + .baseAttack = 90, + .baseDefense = 130, + .baseSpeed = 110, + .baseSpAttack = 90, + .baseSpDefense = 154, + .types = { TYPE_PSYCHIC, TYPE_FLYING }, .catchRate = 3, - .expYield = 302, - .evYield_Attack = 3, + .expYield = 306, + .evYield_SpDefense = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_DROUGHT, ABILITY_NONE}, - .bodyColor = BODY_COLOR_RED, + .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_MULTISCALE}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_RAYQUAZA] = + .isLegendary = TRUE, + .speciesName = _("Lugia"), + .cryId = CRY_LUGIA, + .natDexNum = NATIONAL_DEX_LUGIA, + .categoryName = _("Diving"), + .height = 52, + .weight = 2160, + .description = COMPOUND_STRING( + "Lugia is so powerful even a light\n" + "fluttering of its wings can blow apart\n" + "houses. As a result, it chooses to live out\n" + "of sight deep under the sea."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 721, + .trainerOffset = 19, + FRONT_PIC(Lugia, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Lugia, + .frontAnimId = ANIM_GROW_IN_STAGES, + .frontAnimDelay = 20, + .enemyMonElevation = 6, + BACK_PIC(Lugia, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, + PALETTE(Lugia), + ICON(Lugia, 0), + .footprint = gMonFootprint_Lugia, + LEARNSETS(Lugia), + }, +#endif //P_FAMILY_LUGIA + +#if P_FAMILY_HO_OH + [SPECIES_HO_OH] = { - .baseHP = 105, - .baseAttack = 150, + .baseHP = 106, + .baseAttack = 130, .baseDefense = 90, - .baseSpeed = 95, - .baseSpAttack = 150, - .baseSpDefense = 90, - .types = { TYPE_DRAGON, TYPE_FLYING}, - .catchRate = 45, + .baseSpeed = 90, + .baseSpAttack = 110, + .baseSpDefense = 154, + .types = { TYPE_FIRE, TYPE_FLYING }, + .catchRate = 3, .expYield = 306, - .evYield_Attack = 2, - .evYield_SpAttack = 1, + .evYield_SpDefense = 3, + .itemCommon = ITEM_SACRED_ASH, + .itemRare = ITEM_SACRED_ASH, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_AIR_LOCK, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GREEN, + .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_REGENERATOR}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_JIRACHI] = + .isLegendary = TRUE, + .speciesName = _("Ho-Oh"), + .cryId = CRY_HO_OH, + .natDexNum = NATIONAL_DEX_HO_OH, + .categoryName = _("Rainbow"), + .height = 38, + .weight = 1990, + .description = COMPOUND_STRING( + "Its feathers--which glow in seven colors\n" + "depending on the angle at which they are\n" + "struck by light--are thought to bring joy.\n" + "It is said to live at the foot of a rainbow."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 610, + .trainerOffset = 17, + FRONT_PIC(HoOh, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_HoOh, + .frontAnimId = ANIM_GROW_VIBRATE, + .enemyMonElevation = 6, + BACK_PIC(HoOh, 64, 64), + .backPicYOffset = 2, + .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, + PALETTE(HoOh), + ICON(HoOh, 1), + .footprint = gMonFootprint_HoOh, + LEARNSETS(HoOh), + }, +#endif //P_FAMILY_HO_OH + +#if P_FAMILY_CELEBI + [SPECIES_CELEBI] = { .baseHP = 100, .baseAttack = 100, @@ -10168,2029 +18326,6333 @@ const struct SpeciesInfo gSpeciesInfo[] = .baseSpeed = 100, .baseSpAttack = 100, .baseSpDefense = 100, - .types = { TYPE_STEEL, TYPE_PSYCHIC }, - .catchRate = 3, + .types = { TYPE_PSYCHIC, TYPE_GRASS }, + .catchRate = 45, .expYield = 270, .evYield_HP = 3, - .itemCommon = ITEM_STAR_PIECE, - .itemRare = ITEM_STAR_PIECE, + .itemCommon = ITEM_LUM_BERRY, + .itemRare = ITEM_LUM_BERRY, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 100, - .growthRate = GROWTH_SLOW, + .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, - .abilities = {ABILITY_SERENE_GRACE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_YELLOW, + .abilities = {ABILITY_NATURAL_CURE, ABILITY_NONE}, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + .isMythical = TRUE, + .speciesName = _("Celebi"), + .cryId = CRY_CELEBI, + .natDexNum = NATIONAL_DEX_CELEBI, + .categoryName = _("Time Travel"), + .height = 6, + .weight = 50, + .description = COMPOUND_STRING( + "This Pokémon came from the future by\n" + "crossing over time. It is thought that so\n" + "long as Celebi appears, a bright and\n" + "shining future awaits us."), + .pokemonScale = 393, + .pokemonOffset = -10, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Celebi, 40, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Celebi, + .frontAnimId = ANIM_H_SLIDE_WOBBLE, + .enemyMonElevation = 15, + BACK_PIC(Celebi, 48, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_SHAKE_GLOW_GREEN, + PALETTE(Celebi), + ICON(Celebi, 1), + .footprint = gMonFootprint_Celebi, + LEARNSETS(Celebi), + }, +#endif //P_FAMILY_CELEBI + +#if P_FAMILY_TREECKO + [SPECIES_TREECKO] = + { + .baseHP = 40, + .baseAttack = 45, + .baseDefense = 35, + .baseSpeed = 70, + .baseSpAttack = 65, + .baseSpDefense = 55, + .types = { TYPE_GRASS, TYPE_GRASS }, + .catchRate = 45, + .expYield = 62, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_UNBURDEN}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - .flags = SPECIES_FLAG_MYTHICAL, + .speciesName = _("Treecko"), + .cryId = CRY_TREECKO, + .natDexNum = NATIONAL_DEX_TREECKO, + .categoryName = _("Wood Gecko"), + .height = 5, + .weight = 50, + .description = COMPOUND_STRING( + "It makes its nest in a giant tree in the\n" + "forest. It ferociously guards against\n" + "anything nearing its territory. It is said\n" + "to be the protector of the forest's trees."), + .pokemonScale = 541, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Treecko, 48, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Treecko, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Treecko, 56, 48), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, + PALETTE(Treecko), + ICON(Treecko, 1), + .footprint = gMonFootprint_Treecko, + LEARNSETS(Treecko), + .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_GROVYLE}), }, - [SPECIES_DEOXYS_NORMAL] = + [SPECIES_GROVYLE] = { .baseHP = 50, - .baseAttack = 150, - .baseDefense = 50, - .baseSpeed = 150, - .baseSpAttack = 150, + .baseAttack = 65, + .baseDefense = 45, + .baseSpeed = 95, + .baseSpAttack = 85, + .baseSpDefense = 65, + .types = { TYPE_GRASS, TYPE_GRASS }, + .catchRate = 45, + .expYield = 142, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_UNBURDEN}, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + .speciesName = _("Grovyle"), + .cryId = CRY_GROVYLE, + .natDexNum = NATIONAL_DEX_GROVYLE, + .categoryName = _("Wood Gecko"), + .height = 9, + .weight = 216, + .description = COMPOUND_STRING( + "Leaves grow out of this Pokémon's body.\n" + "They help obscure a Grovyle from the eyes\n" + "of its enemies while it is in a thickly\n" + "overgrown forest."), + .pokemonScale = 360, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Grovyle, 64, 56), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Grovyle, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Grovyle, 64, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Grovyle), + ICON(Grovyle, 1), + .footprint = gMonFootprint_Grovyle, + LEARNSETS(Grovyle), + .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_SCEPTILE}), + }, + +#define SCEPTILE_MISC_INFO \ + .catchRate = 45, \ + .evYield_Speed = 3, \ + .genderRatio = PERCENT_FEMALE(12.5), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_SLOW, \ + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON},\ + .bodyColor = BODY_COLOR_GREEN, \ + .noFlip = FALSE, \ + .speciesName = _("Sceptile"), \ + .natDexNum = NATIONAL_DEX_SCEPTILE, \ + .categoryName = _("Forest"), \ + .footprint = gMonFootprint_Sceptile, \ + LEARNSETS(Sceptile), \ + .formSpeciesIdTable = sSceptileFormSpeciesIdTable, \ + .formChangeTable = sSceptileFormChangeTable + + [SPECIES_SCEPTILE] = + { + SCEPTILE_MISC_INFO, + .baseHP = 70, + .baseAttack = 85, + .baseDefense = 65, + .baseSpeed = 120, + .baseSpAttack = 105, + .baseSpDefense = 85, + .types = { TYPE_GRASS, TYPE_GRASS }, + .expYield = 239, + .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_UNBURDEN}, + .cryId = CRY_SCEPTILE, + .height = 17, + .weight = 522, + .description = COMPOUND_STRING( + "In the jungle, its power is without equal.\n" + "This Pokémon carefully grows trees and\n" + "plants. It regulates its body temperature\n" + "by basking in sunlight."), + .pokemonScale = 256, + .pokemonOffset = -1, + .trainerScale = 275, + .trainerOffset = 2, + FRONT_PIC(Sceptile, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Sceptile, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(Sceptile, 64, 64), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Sceptile), + ICON(Sceptile, 1), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_SCEPTILE_MEGA] = + { + SCEPTILE_MISC_INFO, + .baseHP = 70, + .baseAttack = 110, + .baseDefense = 75, + .baseSpeed = 145, + .baseSpAttack = 145, + .baseSpDefense = 85, + .types = { TYPE_GRASS, TYPE_DRAGON}, + .expYield = 284, + .abilities = {ABILITY_LIGHTNING_ROD, ABILITY_LIGHTNING_ROD, ABILITY_LIGHTNING_ROD}, + .cryId = CRY_SCEPTILE_MEGA, + .height = 19, + .weight = 552, + .description = COMPOUND_STRING( + "Thanks to the power in its quick legs,\n" + "Mega Sceptile can be on its opponent in a\n" + "flash. It can cut off a portion of its tail\n" + "to fire it like a missile at an opponent."), + .pokemonScale = 256, + .pokemonOffset = -1, + .trainerScale = 275, + .trainerOffset = 2, + FRONT_PIC(SceptileMega, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_SceptileMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(SceptileMega, 64, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(SceptileMega), + ICON(SceptileMega, 1), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_TREECKO + +#if P_FAMILY_TORCHIC + [SPECIES_TORCHIC] = + { + .baseHP = 45, + .baseAttack = 60, + .baseDefense = 40, + .baseSpeed = 45, + .baseSpAttack = 70, .baseSpDefense = 50, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, - .catchRate = 3, - .expYield = 270, - .evYield_Attack = 1, - .evYield_Speed = 1, - .evYield_SpAttack = 1, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, - .abilities = {ABILITY_PRESSURE, ABILITY_NONE}, + .types = { TYPE_FIRE, TYPE_FIRE }, + .catchRate = 45, + .expYield = 62, + .evYield_SpAttack = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_SPEED_BOOST}, .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, - .flags = SPECIES_FLAG_MYTHICAL, + .speciesName = _("Torchic"), + .cryId = CRY_TORCHIC, + .natDexNum = NATIONAL_DEX_TORCHIC, + .categoryName = _("Chick"), + .height = 4, + .weight = 25, + .description = COMPOUND_STRING( + "If attacked, it strikes back by spitting\n" + "balls of fire it forms in its stomach.\n" + "A Torchic dislikes darkness because it\n" + "can't see its surroundings."), + .pokemonScale = 566, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Torchic, 32, 48), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Torchic, + .frontAnimId = ANIM_V_JUMPS_SMALL, + BACK_PIC(Torchic, 40, 48), + BACK_PIC_FEMALE(Torchic, 40, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Torchic), + ICON(Torchic, 0), + .footprint = gMonFootprint_Torchic, + LEARNSETS(Torchic), + .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_COMBUSKEN}), }, -#if P_GEN_4_POKEMON == TRUE - [SPECIES_TURTWIG] = + [SPECIES_COMBUSKEN] = { - .baseHP = 55, - .baseAttack = 68, - .baseDefense = 64, - .baseSpeed = 31, - .baseSpAttack = 45, - .baseSpDefense = 55, - .types = { TYPE_GRASS, TYPE_GRASS}, + .baseHP = 60, + .baseAttack = 85, + .baseDefense = 60, + .baseSpeed = 55, + .baseSpAttack = 85, + .baseSpDefense = 60, + .types = { TYPE_FIRE, TYPE_FIGHTING }, .catchRate = 45, - .expYield = 64, + .expYield = 142, .evYield_Attack = 1, + .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS}, - .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_SHELL_ARMOR}, - .bodyColor = BODY_COLOR_GREEN, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_SPEED_BOOST}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, - }, + .speciesName = _("Combusken"), + .cryId = CRY_COMBUSKEN, + .natDexNum = NATIONAL_DEX_COMBUSKEN, + .categoryName = _("Young Fowl"), + .height = 9, + .weight = 195, + .description = COMPOUND_STRING( + "It lashes out with 10 kicks per second.\n" + "Its strong fighting instinct compels it\n" + "to keep up its offensive until the\n" + "opponent gives up."), + .pokemonScale = 343, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Combusken, 48, 64), + FRONT_PIC_FEMALE(Combusken, 48, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_Combusken, + .frontAnimId = ANIM_V_JUMPS_H_JUMPS, + BACK_PIC(Combusken, 64, 64), + BACK_PIC_FEMALE(Combusken, 64, 64), + .backPicYOffset = 1, + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, + PALETTE(Combusken), + ICON(Combusken, 0), + .footprint = gMonFootprint_Combusken, + LEARNSETS(Combusken), + .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_BLAZIKEN}), + }, + +#define BLAZIKEN_MISC_INFO \ + .types = { TYPE_FIRE, TYPE_FIGHTING}, \ + .catchRate = 45, \ + .evYield_Attack = 3, \ + .genderRatio = PERCENT_FEMALE(12.5), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_SLOW, \ + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, \ + .bodyColor = BODY_COLOR_RED, \ + .noFlip = FALSE, \ + .speciesName = _("Blaziken"), \ + .natDexNum = NATIONAL_DEX_BLAZIKEN, \ + .categoryName = _("Blaze"), \ + .height = 19, \ + .weight = 520, \ + .pokemonScale = 256, \ + .pokemonOffset = 0, \ + .trainerScale = 301, \ + .trainerOffset = 4, \ + .footprint = gMonFootprint_Blaziken, \ + LEARNSETS(Blaziken), \ + .formSpeciesIdTable = sBlazikenFormSpeciesIdTable, \ + .formChangeTable = sBlazikenFormChangeTable - [SPECIES_GROTLE] = + [SPECIES_BLAZIKEN] = { - .baseHP = 75, - .baseAttack = 89, - .baseDefense = 85, - .baseSpeed = 36, - .baseSpAttack = 55, - .baseSpDefense = 65, - .types = { TYPE_GRASS, TYPE_GRASS}, + BLAZIKEN_MISC_INFO, + .baseHP = 80, + .baseAttack = 120, + .baseDefense = 70, + .baseSpeed = 80, + .baseSpAttack = 110, + .baseSpDefense = 70, + .expYield = 239, + .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_SPEED_BOOST}, + .cryId = CRY_BLAZIKEN, + .description = COMPOUND_STRING( + "It learns martial arts that use punches\n" + "and kicks. Every several years, its old\n" + "feathers burn off, and new, supple\n" + "feathers grow back in their place."), + FRONT_PIC(Blaziken, 56, 64), + FRONT_PIC_FEMALE(Blaziken, 56, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Blaziken, + .frontAnimId = ANIM_H_SHAKE, + BACK_PIC(Blaziken, 64, 64), + BACK_PIC_FEMALE(Blaziken, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, + PALETTE(Blaziken), + ICON(Blaziken, 0), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_BLAZIKEN_MEGA] = + { + BLAZIKEN_MISC_INFO, + .baseHP = 80, + .baseAttack = 160, + .baseDefense = 80, + .baseSpeed = 100, + .baseSpAttack = 130, + .baseSpDefense = 80, + .expYield = 284, + .abilities = {ABILITY_SPEED_BOOST, ABILITY_SPEED_BOOST, ABILITY_SPEED_BOOST}, + .cryId = CRY_BLAZIKEN_MEGA, + .description = COMPOUND_STRING( + "As it unleashes a flurry of savage kicks,\n" + "its legs can begin to burn from the\n" + "friction of the surrounding atmosphere.\n" + "They're always a source of pride to it."), + FRONT_PIC(BlazikenMega, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_BlazikenMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(BlazikenMega, 56, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, + PALETTE(BlazikenMega), + ICON(BlazikenMega, 0), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_TORCHIC + +#if P_FAMILY_MUDKIP + [SPECIES_MUDKIP] = + { + .baseHP = 50, + .baseAttack = 70, + .baseDefense = 50, + .baseSpeed = 40, + .baseSpAttack = 50, + .baseSpDefense = 50, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 45, - .expYield = 142, + .expYield = 62, .evYield_Attack = 1, - .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS}, - .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_SHELL_ARMOR}, - .bodyColor = BODY_COLOR_GREEN, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, + .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_DAMP}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Mudkip"), + .cryId = CRY_MUDKIP, + .natDexNum = NATIONAL_DEX_MUDKIP, + .categoryName = _("Mud Fish"), + .height = 4, + .weight = 76, + .description = COMPOUND_STRING( + "On land, it can powerfully lift large\n" + "boulders by planting its four feet and\n" + "heaving. It sleeps by burying itself in soil\n" + "at the water's edge."), + .pokemonScale = 535, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Mudkip, 40, 40), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_Mudkip, + .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, + BACK_PIC(Mudkip, 48, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Mudkip), + ICON(Mudkip, 0), + .footprint = gMonFootprint_Mudkip, + LEARNSETS(Mudkip), + .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_MARSHTOMP}), }, - [SPECIES_TORTERRA] = + [SPECIES_MARSHTOMP] = { - .baseHP = 95, - .baseAttack = 109, - .baseDefense = 105, - .baseSpeed = 56, - .baseSpAttack = 75, - .baseSpDefense = 85, - .types = { TYPE_GRASS, TYPE_GROUND}, + .baseHP = 70, + .baseAttack = 85, + .baseDefense = 70, + .baseSpeed = 50, + .baseSpAttack = 60, + .baseSpDefense = 70, + .types = { TYPE_WATER, TYPE_GROUND }, .catchRate = 45, - .expYield = 236, + .expYield = 142, .evYield_Attack = 2, - .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS}, - .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_SHELL_ARMOR}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = TRUE, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, + .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_DAMP}, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + .speciesName = _("Marshtomp"), + .cryId = CRY_MARSHTOMP, + .natDexNum = NATIONAL_DEX_MARSHTOMP, + .categoryName = _("Mud Fish"), + .height = 7, + .weight = 280, + .description = COMPOUND_STRING( + "Its toughened hind legs enable it to stand\n" + "upright. Because it weakens if its skin\n" + "dries out, it replenishes fluids by playing\n" + "in mud."), + .pokemonScale = 340, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Marshtomp, 48, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Marshtomp, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Marshtomp, 64, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Marshtomp), + ICON(Marshtomp, 0), + .footprint = gMonFootprint_Marshtomp, + LEARNSETS(Marshtomp), + .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_SWAMPERT}), + }, + +#define SWAMPERT_MISC_INFO \ + .types = { TYPE_WATER, TYPE_GROUND}, \ + .catchRate = 45, \ + .evYield_Attack = 3, \ + .genderRatio = PERCENT_FEMALE(12.5), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_SLOW, \ + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, \ + .bodyColor = BODY_COLOR_BLUE, \ + .noFlip = FALSE, \ + .speciesName = _("Swampert"), \ + .natDexNum = NATIONAL_DEX_SWAMPERT, \ + .categoryName = _("Mud Fish"), \ + .footprint = gMonFootprint_Swampert, \ + LEARNSETS(Swampert), \ + .formSpeciesIdTable = sSwampertFormSpeciesIdTable, \ + .formChangeTable = sSwampertFormChangeTable + + [SPECIES_SWAMPERT] = + { + SWAMPERT_MISC_INFO, + .baseHP = 100, + .baseAttack = 110, + .baseDefense = 90, + .baseSpeed = 60, + .baseSpAttack = 85, + .baseSpDefense = 90, + .expYield = 241, + .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_DAMP}, + .cryId = CRY_SWAMPERT, + .height = 15, + .weight = 819, + .description = COMPOUND_STRING( + "If it senses the approach of a storm and\n" + "a tidal wave, it protects its seaside nest\n" + "by piling up boulders. It swims as fast as\n" + "a jet ski."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Swampert, 64, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Swampert, + .frontAnimId = ANIM_H_SHAKE, + BACK_PIC(Swampert, 64, 64), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, + PALETTE(Swampert), + ICON(Swampert, 0), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_SWAMPERT_MEGA] = + { + SWAMPERT_MISC_INFO, + .baseHP = 100, + .baseAttack = 150, + .baseDefense = 110, + .baseSpeed = 70, + .baseSpAttack = 95, + .baseSpDefense = 110, + .expYield = 286, + .abilities = {ABILITY_SWIFT_SWIM, ABILITY_SWIFT_SWIM, ABILITY_SWIFT_SWIM}, + .cryId = CRY_SWAMPERT_MEGA, + .height = 19, + .weight = 1020, + .description = COMPOUND_STRING( + "When it Mega Evolves, the strength that it\n" + "needs to act in the water is increased.\n" + "It can use its tenacious power\n" + "both on land and in the water."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(SwampertMega, 64, 64), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_SwampertMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(SwampertMega, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, + PALETTE(SwampertMega), + ICON(SwampertMega, 0), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_MUDKIP + +#if P_FAMILY_POOCHYENA + [SPECIES_POOCHYENA] = + { + .baseHP = 35, + .baseAttack = 55, + .baseDefense = 35, + .baseSpeed = 35, + .baseSpAttack = 30, + .baseSpDefense = 30, + .types = { TYPE_DARK, TYPE_DARK }, + .catchRate = 255, + .expYield = 56, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_RUN_AWAY, ABILITY_QUICK_FEET, ABILITY_RATTLED}, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + .speciesName = _("Poochyena"), + .cryId = CRY_POOCHYENA, + .natDexNum = NATIONAL_DEX_POOCHYENA, + .categoryName = _("Bite"), + .height = 5, + .weight = 136, + .description = COMPOUND_STRING( + "It savagely threatens foes with bared\n" + "fangs. It chases after fleeing targets\n" + "tenaciously. It turns tail and runs,\n" + "however, if the foe strikes back."), + .pokemonScale = 481, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Poochyena, 48, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Poochyena, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(Poochyena, 64, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Poochyena), + ICON(Poochyena, 2), + .footprint = gMonFootprint_Poochyena, + LEARNSETS(Poochyena), + .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_MIGHTYENA}), }, - [SPECIES_CHIMCHAR] = + [SPECIES_MIGHTYENA] = { - .baseHP = 44, - .baseAttack = 58, - .baseDefense = 44, - .baseSpeed = 61, - .baseSpAttack = 58, - .baseSpDefense = 44, - .types = { TYPE_FIRE, TYPE_FIRE}, - .catchRate = 45, - .expYield = 62, - .evYield_Speed = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, + .baseHP = 70, + .baseAttack = 90, + .baseDefense = 70, + .baseSpeed = 70, + .baseSpAttack = 60, + .baseSpDefense = 60, + .types = { TYPE_DARK, TYPE_DARK }, + .catchRate = 127, + .expYield = 147, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_IRON_FIST}, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_INTIMIDATE, ABILITY_QUICK_FEET, ABILITY_MOXIE}, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + .speciesName = _("Mightyena"), + .cryId = CRY_MIGHTYENA, + .natDexNum = NATIONAL_DEX_MIGHTYENA, + .categoryName = _("Bite"), + .height = 10, + .weight = 370, + .description = COMPOUND_STRING( + "In the wild, Mightyena live in a pack.\n" + "They never defy their leader's orders.\n" + "They defeat foes with perfectly\n" + "coordinated teamwork."), + .pokemonScale = 362, + .pokemonOffset = 9, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Mightyena, 64, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_Mightyena, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(Mightyena, 64, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_H_SHAKE, + PALETTE(Mightyena), + ICON(Mightyena, 2), + .footprint = gMonFootprint_Mightyena, + LEARNSETS(Mightyena), + }, +#endif //P_FAMILY_POOCHYENA + +#if P_FAMILY_ZIGZAGOON +#define ZIGZAGOON_MISC_INFO \ + .baseHP = 38, \ + .baseAttack = 30, \ + .baseDefense = 41, \ + .baseSpeed = 60, \ + .baseSpAttack = 30, \ + .baseSpDefense = 41, \ + .catchRate = 255, \ + .expYield = 56, \ + .evYield_Speed = 1, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 15, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, \ + .abilities = {ABILITY_PICKUP, ABILITY_GLUTTONY, ABILITY_QUICK_FEET},\ + .noFlip = FALSE, \ + .speciesName = _("Zigzagoon"), \ + .cryId = CRY_ZIGZAGOON, \ + .natDexNum = NATIONAL_DEX_ZIGZAGOON, \ + .categoryName = _("Tiny Raccoon"), \ + .height = 4, \ + .weight = 175, \ + .pokemonScale = 560, \ + .pokemonOffset = 22, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Zigzagoon, \ + .formSpeciesIdTable = sZigzagoonFormSpeciesIdTable + +#define LINOONE_MISC_INFO \ + .baseHP = 78, \ + .baseAttack = 70, \ + .baseDefense = 61, \ + .baseSpeed = 100, \ + .baseSpAttack = 50, \ + .baseSpDefense = 61, \ + .catchRate = 90, \ + .expYield = 147, \ + .evYield_Speed = 2, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 15, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, \ + .abilities = {ABILITY_PICKUP, ABILITY_GLUTTONY, ABILITY_QUICK_FEET},\ + .bodyColor = BODY_COLOR_WHITE, \ + .noFlip = FALSE, \ + .speciesName = _("Linoone"), \ + .cryId = CRY_LINOONE, \ + .natDexNum = NATIONAL_DEX_LINOONE, \ + .categoryName = _("Rushing"), \ + .height = 5, \ + .weight = 325, \ + .pokemonScale = 321, \ + .pokemonOffset = 7, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Linoone, \ + .formSpeciesIdTable = sLinooneFormSpeciesIdTable + + [SPECIES_ZIGZAGOON] = + { + ZIGZAGOON_MISC_INFO, + .types = { TYPE_NORMAL, TYPE_NORMAL }, + .itemCommon = ITEM_POTION, + .itemRare = ITEM_REVIVE, .bodyColor = BODY_COLOR_BROWN, - .noFlip = TRUE, + .description = COMPOUND_STRING( + "Rubbing its nose against the ground, it\n" + "always wanders about back and forth in\n" + "search of something. It is distinguished\n" + "by the zigzag footprints it leaves."), + FRONT_PIC(Zigzagoon, 56, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Zigzagoon, + .frontAnimId = ANIM_H_SLIDE, + BACK_PIC(Zigzagoon, 56, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(Zigzagoon), + ICON(Zigzagoon, 2), + LEARNSETS(Zigzagoon), + .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_LINOONE}), }, - [SPECIES_MONFERNO] = + [SPECIES_LINOONE] = { - .baseHP = 64, - .baseAttack = 78, - .baseDefense = 52, - .baseSpeed = 81, - .baseSpAttack = 78, - .baseSpDefense = 52, - .types = { TYPE_FIRE, TYPE_FIGHTING}, + LINOONE_MISC_INFO, + .types = { TYPE_NORMAL, TYPE_NORMAL }, + .itemCommon = ITEM_POTION, + .itemRare = ITEM_MAX_REVIVE, + .description = COMPOUND_STRING( + "It is exceedingly fast if it only has to run\n" + "in a straight line. When it spots pond-\n" + "dwelling prey underwater, it quickly leaps\n" + "in and catches it with its sharp claws."), + FRONT_PIC(Linoone, 64, 40), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_Linoone, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Linoone, 56, 40), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Linoone), + ICON(Linoone, 2), + LEARNSETS(Linoone), + }, + +#if P_GALARIAN_FORMS + [SPECIES_ZIGZAGOON_GALARIAN] = + { + ZIGZAGOON_MISC_INFO, + .types = { TYPE_DARK, TYPE_NORMAL}, + .bodyColor = BODY_COLOR_WHITE, + .description = COMPOUND_STRING( + "Its restlessness has it constantly moving\n" + "in zigzags. It will purposely run into other\n" + "Pokémon to start fights. It's thought to\n" + "be the oldest form of Zigzagoon."), + FRONT_PIC(ZigzagoonGalarian, 56, 40), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_ZigzagoonGalarian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(ZigzagoonGalarian, 56, 48), + .backPicYOffset = 12, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(ZigzagoonGalarian), + ICON(ZigzagoonGalarian, 0), + LEARNSETS(ZigzagoonGalarian), + .isGalarianForm = TRUE, + .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_LINOONE_GALARIAN}), + }, + + [SPECIES_LINOONE_GALARIAN] = + { + LINOONE_MISC_INFO, + .types = { TYPE_DARK, TYPE_NORMAL}, + .description = COMPOUND_STRING( + "This very aggressive Pokémon will\n" + "recklessly challenge opponents stronger\n" + "than itself. It uses its long tongue to\n" + "taunt them to then tackle forcefully."), + FRONT_PIC(LinooneGalarian, 64, 40), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_LinooneGalarian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(LinooneGalarian, 64, 40), + .backPicYOffset = 13, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(LinooneGalarian), + ICON(LinooneGalarian, 0), + LEARNSETS(LinooneGalarian), + .isGalarianForm = TRUE, + .evolutions = EVOLUTION({EVO_LEVEL_NIGHT, 35, SPECIES_OBSTAGOON}), + }, + + [SPECIES_OBSTAGOON] = + { + .baseHP = 93, + .baseAttack = 90, + .baseDefense = 101, + .baseSpeed = 95, + .baseSpAttack = 60, + .baseSpDefense = 81, + .types = { TYPE_DARK, TYPE_NORMAL}, .catchRate = 45, - .expYield = 142, - .evYield_Speed = 1, - .evYield_SpAttack = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, + .expYield = 260, + .evYield_Defense = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_RECKLESS, ABILITY_GUTS, ABILITY_DEFIANT}, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + .speciesName = _("Obstagoon"), + .cryId = CRY_OBSTAGOON, + .natDexNum = NATIONAL_DEX_OBSTAGOON, + .categoryName = _("Blocking"), + .height = 16, + .weight = 460, + .description = COMPOUND_STRING( + "Its voice is staggering in volume.\n" + "Obstagoon has a tendency to take on a\n" + "threatening posture and shout--this move\n" + "is known as Obstruct."), + .pokemonScale = 259, + .pokemonOffset = 1, + .trainerScale = 296, + .trainerOffset = 1, + FRONT_PIC(Obstagoon, 56, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Obstagoon, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Obstagoon, 64, 64), + .backPicYOffset = 1, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Obstagoon), + ICON(Obstagoon, 0), + .footprint = gMonFootprint_Obstagoon, + LEARNSETS(Obstagoon), + }, +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_ZIGZAGOON + +#if P_FAMILY_WURMPLE + [SPECIES_WURMPLE] = + { + .baseHP = 45, + .baseAttack = 45, + .baseDefense = 35, + .baseSpeed = 20, + .baseSpAttack = 20, + .baseSpDefense = 30, + .types = { TYPE_BUG, TYPE_BUG }, + .catchRate = 255, + .expYield = 56, + .evYield_HP = 1, + .itemCommon = ITEM_PECHA_BERRY, + .itemRare = ITEM_BRIGHT_POWDER, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_IRON_FIST}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = TRUE, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_SHIELD_DUST, ABILITY_NONE, ABILITY_RUN_AWAY}, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + .speciesName = _("Wurmple"), + .cryId = CRY_WURMPLE, + .natDexNum = NATIONAL_DEX_WURMPLE, + .categoryName = _("Worm"), + .height = 3, + .weight = 36, + .description = COMPOUND_STRING( + "It sticks to tree branches and eats\n" + "leaves. The thread it spits from its mouth,\n" + "which becomes gooey when it touches\n" + "air, slows the movement of its foes."), + .pokemonScale = 711, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Wurmple, 40, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Wurmple, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Wurmple, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_V_STRETCH, + PALETTE(Wurmple), + ICON(Wurmple, 0), + .footprint = gMonFootprint_Wurmple, + LEARNSETS(Wurmple), + .evolutions = EVOLUTION({EVO_LEVEL_SILCOON, 7, SPECIES_SILCOON}, + {EVO_LEVEL_CASCOON, 7, SPECIES_CASCOON}), }, - [SPECIES_INFERNAPE] = + [SPECIES_SILCOON] = { - .baseHP = 76, - .baseAttack = 104, - .baseDefense = 71, - .baseSpeed = 108, - .baseSpAttack = 104, - .baseSpDefense = 71, - .types = { TYPE_FIRE, TYPE_FIGHTING}, - .catchRate = 45, - .expYield = 240, - .evYield_Attack = 1, - .evYield_Speed = 1, - .evYield_SpAttack = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, + .baseHP = 50, + .baseAttack = 35, + .baseDefense = 55, + .baseSpeed = 15, + .baseSpAttack = 25, + .baseSpDefense = 25, + .types = { TYPE_BUG, TYPE_BUG }, + .catchRate = 120, + .expYield = 72, + .evYield_Defense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_IRON_FIST}, - .bodyColor = BODY_COLOR_BROWN, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .abilities = {ABILITY_SHED_SKIN, ABILITY_NONE}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, + .speciesName = _("Silcoon"), + .cryId = CRY_SILCOON, + .natDexNum = NATIONAL_DEX_SILCOON, + .categoryName = _("Cocoon"), + .height = 6, + .weight = 100, + .description = COMPOUND_STRING( + "It prepares for evolution using the\n" + "energy it stored while it was a Wurmple.\n" + "It keeps watch over the surroundings with\n" + "its two eyes."), + .pokemonScale = 431, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Silcoon, 56, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Silcoon, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Silcoon, 64, 40), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_H_SHAKE, + PALETTE(Silcoon), + ICON(Silcoon, 2), + .footprint = gMonFootprint_Silcoon, + LEARNSETS(Silcoon), + .evolutions = EVOLUTION({EVO_LEVEL, 10, SPECIES_BEAUTIFLY}), }, - [SPECIES_PIPLUP] = + [SPECIES_BEAUTIFLY] = { - .baseHP = 53, - .baseAttack = 51, - .baseDefense = 53, - .baseSpeed = 40, - .baseSpAttack = 61, - .baseSpDefense = 56, - .types = { TYPE_WATER, TYPE_WATER}, + .baseHP = 60, + .baseAttack = 70, + .baseDefense = 50, + .baseSpeed = 65, + .baseSpAttack = P_UPDATED_STATS >= GEN_6 ? 100 : 90, + .baseSpDefense = 50, + .types = { TYPE_BUG, TYPE_FLYING}, .catchRate = 45, - .expYield = 63, - .evYield_SpAttack = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, + .expYield = 178, + .evYield_SpAttack = 3, + .itemRare = ITEM_SHED_SHELL, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, - #if P_UPDATED_ABILITIES >= GEN_9 - .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_COMPETITIVE}, - #else - .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_DEFIANT}, - #endif - .bodyColor = BODY_COLOR_BLUE, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_SWARM, ABILITY_NONE, ABILITY_RIVALRY}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, + .speciesName = _("Beautifly"), + .cryId = CRY_BEAUTIFLY, + .natDexNum = NATIONAL_DEX_BEAUTIFLY, + .categoryName = _("Butterfly"), + .height = 10, + .weight = 284, + .description = COMPOUND_STRING( + "Its colorfully patterned wings are its\n" + "most prominent feature. It flies through\n" + "flower-covered fields collecting pollen.\n" + "It attacks ferociously when angered."), + .pokemonScale = 298, + .pokemonOffset = -1, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Beautifly, 64, 56), + FRONT_PIC_FEMALE(Beautifly, 64, 56), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Beautifly, + .frontAnimId = ANIM_V_SLIDE, + .enemyMonElevation = 10, + BACK_PIC(Beautifly, 64, 64), + BACK_PIC_FEMALE(Beautifly, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Beautifly), + ICON(Beautifly, 0), + .footprint = gMonFootprint_Beautifly, + LEARNSETS(Beautifly), }, - [SPECIES_PRINPLUP] = + [SPECIES_CASCOON] = { - .baseHP = 64, - .baseAttack = 66, - .baseDefense = 68, - .baseSpeed = 50, - .baseSpAttack = 81, - .baseSpDefense = 76, - .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 45, - .expYield = 142, - .evYield_SpAttack = 2, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, + .baseHP = 50, + .baseAttack = 35, + .baseDefense = 55, + .baseSpeed = 15, + .baseSpAttack = 25, + .baseSpDefense = 25, + .types = { TYPE_BUG, TYPE_BUG }, + .catchRate = 120, + .expYield = 72, + .evYield_Defense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, - #if P_UPDATED_ABILITIES >= GEN_9 - .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_COMPETITIVE}, - #else - .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_DEFIANT}, - #endif - .bodyColor = BODY_COLOR_BLUE, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG }, + .abilities = {ABILITY_SHED_SKIN, ABILITY_NONE}, + .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, + .speciesName = _("Cascoon"), + .cryId = CRY_CASCOON, + .natDexNum = NATIONAL_DEX_CASCOON, + .categoryName = _("Cocoon"), + .height = 7, + .weight = 115, + .description = COMPOUND_STRING( + "To avoid detection by its enemies, it hides\n" + "motionlessly beneath large leaves and in\n" + "the gaps of branches. It also attaches\n" + "dead leaves to its body for camouflage."), + .pokemonScale = 391, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Cascoon, 56, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Cascoon, + .frontAnimId = ANIM_V_SLIDE, + BACK_PIC(Cascoon, 56, 40), + .backPicYOffset = 15, + .backAnimId = BACK_ANIM_H_SHAKE, + PALETTE(Cascoon), + ICON(Cascoon, 2), + .footprint = gMonFootprint_Cascoon, + LEARNSETS(Cascoon), + .evolutions = EVOLUTION({EVO_LEVEL, 10, SPECIES_DUSTOX}), }, - [SPECIES_EMPOLEON] = + [SPECIES_DUSTOX] = { - .baseHP = 84, - .baseAttack = 86, - .baseDefense = 88, - .baseSpeed = 60, - .baseSpAttack = 111, - .baseSpDefense = 101, - .types = { TYPE_WATER, TYPE_STEEL}, + .baseHP = 60, + .baseAttack = 50, + .baseDefense = 70, + .baseSpeed = 65, + .baseSpAttack = 50, + .baseSpDefense = 90, + .types = { TYPE_BUG, TYPE_POISON }, .catchRate = 45, - .expYield = 239, - .evYield_SpAttack = 3, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, + .expYield = 173, + .evYield_SpDefense = 3, + .itemRare = ITEM_SHED_SHELL, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, - #if P_UPDATED_ABILITIES >= GEN_9 - .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_COMPETITIVE}, - #else - .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_DEFIANT}, - #endif - .bodyColor = BODY_COLOR_BLUE, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_SHIELD_DUST, ABILITY_NONE, ABILITY_COMPOUND_EYES}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - }, - - [SPECIES_STARLY] = + .speciesName = _("Dustox"), + .cryId = CRY_DUSTOX, + .natDexNum = NATIONAL_DEX_DUSTOX, + .categoryName = _("Poison Moth"), + .height = 12, + .weight = 316, + .description = COMPOUND_STRING( + "It is a nocturnal Pokémon that flies from\n" + "fields and mountains to the attraction of\n" + "streetlights at night. It looses highly\n" + "toxic powder from its wings."), + .pokemonScale = 269, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Dustox, 64, 48), + FRONT_PIC_FEMALE(Dustox, 64, 48), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Dustox, + .frontAnimId = ANIM_V_JUMPS_H_JUMPS, + .enemyMonElevation = 12, + BACK_PIC(Dustox, 64, 64), + BACK_PIC_FEMALE(Dustox, 64, 64), + .backPicYOffset = 1, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(Dustox), + ICON(Dustox, 5), + .footprint = gMonFootprint_Dustox, + LEARNSETS(Dustox), + }, +#endif //P_FAMILY_WURMPLE + +#if P_FAMILY_LOTAD + [SPECIES_LOTAD] = { .baseHP = 40, - .baseAttack = 55, + .baseAttack = 30, .baseDefense = 30, - .baseSpeed = 60, - .baseSpAttack = 30, - .baseSpDefense = 30, - .types = { TYPE_NORMAL, TYPE_FLYING}, + .baseSpeed = 30, + .baseSpAttack = 40, + .baseSpDefense = 50, + .types = { TYPE_WATER, TYPE_GRASS }, .catchRate = 255, - .expYield = 49, - .evYield_Speed = 1, + .expYield = 44, + .evYield_SpDefense = 1, + .itemRare = ITEM_MENTAL_HERB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_KEEN_EYE, ABILITY_NONE, ABILITY_RECKLESS}, - .bodyColor = BODY_COLOR_BROWN, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_GRASS}, + .abilities = {ABILITY_SWIFT_SWIM, ABILITY_RAIN_DISH, ABILITY_OWN_TEMPO}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, + .speciesName = _("Lotad"), + .cryId = CRY_LOTAD, + .natDexNum = NATIONAL_DEX_LOTAD, + .categoryName = _("Water Weed"), + .height = 5, + .weight = 26, + .description = COMPOUND_STRING( + "This Pokémon lives in ponds with clean\n" + "water. It is known to ferry small Pokémon\n" + "across ponds by carrying them on the\n" + "broad leaf on its head."), + .pokemonScale = 406, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Lotad, 40, 40), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_Lotad, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Lotad, 56, 40), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Lotad), + ICON(Lotad, 4), + .footprint = gMonFootprint_Lotad, + LEARNSETS(Lotad), + .evolutions = EVOLUTION({EVO_LEVEL, 14, SPECIES_LOMBRE}), }, - [SPECIES_STARAVIA] = + [SPECIES_LOMBRE] = { - .baseHP = 55, - .baseAttack = 75, + .baseHP = 60, + .baseAttack = 50, .baseDefense = 50, - .baseSpeed = 80, - .baseSpAttack = 40, - .baseSpDefense = 40, - .types = { TYPE_NORMAL, TYPE_FLYING}, + .baseSpeed = 50, + .baseSpAttack = 60, + .baseSpDefense = 70, + .types = { TYPE_WATER, TYPE_GRASS }, .catchRate = 120, .expYield = 119, - .evYield_Speed = 2, + .evYield_SpDefense = 2, + .itemRare = ITEM_MENTAL_HERB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_INTIMIDATE, ABILITY_NONE, ABILITY_RECKLESS}, - .bodyColor = BODY_COLOR_BROWN, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_GRASS}, + .abilities = {ABILITY_SWIFT_SWIM, ABILITY_RAIN_DISH, ABILITY_OWN_TEMPO}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, + .speciesName = _("Lombre"), + .cryId = CRY_LOMBRE, + .natDexNum = NATIONAL_DEX_LOMBRE, + .categoryName = _("Jolly"), + .height = 12, + .weight = 325, + .description = COMPOUND_STRING( + "In the evening, it takes great delight in\n" + "popping out of rivers and startling people.\n" + "It feeds on aquatic moss that grows on\n" + "rocks in the riverbed."), + .pokemonScale = 277, + .pokemonOffset = 9, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Lombre, 48, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Lombre, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Lombre, 48, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, + PALETTE(Lombre), + ICON(Lombre, 1), + .footprint = gMonFootprint_Lombre, + LEARNSETS(Lombre), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_WATER_STONE, SPECIES_LUDICOLO}), }, - [SPECIES_STARAPTOR] = + [SPECIES_LUDICOLO] = { - .baseHP = 85, - .baseAttack = 120, + .baseHP = 80, + .baseAttack = 70, .baseDefense = 70, - .baseSpeed = 100, - .baseSpAttack = 50, - #if P_UPDATED_STATS >= GEN_6 - .baseSpDefense = 60, - #else - .baseSpDefense = 50, - #endif - .types = { TYPE_NORMAL, TYPE_FLYING}, + .baseSpeed = 70, + .baseSpAttack = 90, + .baseSpDefense = 100, + .types = { TYPE_WATER, TYPE_GRASS }, .catchRate = 45, - .expYield = 218, - .evYield_Attack = 3, + .expYield = 216, + .evYield_SpDefense = 3, + .itemRare = ITEM_MENTAL_HERB, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_GRASS}, + .abilities = {ABILITY_SWIFT_SWIM, ABILITY_RAIN_DISH, ABILITY_OWN_TEMPO}, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + .speciesName = _("Ludicolo"), + .cryId = CRY_LUDICOLO, + .natDexNum = NATIONAL_DEX_LUDICOLO, + .categoryName = _("Carefree"), + .height = 15, + .weight = 550, + .description = COMPOUND_STRING( + "When it hears festive music, all the cells\n" + "in its body become stimulated, and it\n" + "begins moving in rhythm. It does not\n" + "quail even when it faces a tough opponent."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 268, + .trainerOffset = -1, + FRONT_PIC(Ludicolo, 56, 64), + FRONT_PIC_FEMALE(Ludicolo, 56, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Ludicolo, + .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW, + BACK_PIC(Ludicolo, 64, 56), + BACK_PIC_FEMALE(Ludicolo, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, + PALETTE(Ludicolo), + ICON(Ludicolo, 1), + .footprint = gMonFootprint_Ludicolo, + LEARNSETS(Ludicolo), + }, +#endif //P_FAMILY_LOTAD + +#if P_FAMILY_SEEDOT + [SPECIES_SEEDOT] = + { + .baseHP = 40, + .baseAttack = 40, + .baseDefense = 50, + .baseSpeed = 30, + .baseSpAttack = 30, + .baseSpDefense = 30, + .types = { TYPE_GRASS, TYPE_GRASS }, + .catchRate = 255, + .expYield = 44, + .evYield_Defense = 1, + .itemRare = ITEM_POWER_HERB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_INTIMIDATE, ABILITY_NONE, ABILITY_RECKLESS}, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS}, + .abilities = {ABILITY_CHLOROPHYLL, ABILITY_EARLY_BIRD, ABILITY_PICKPOCKET}, .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .speciesName = _("Seedot"), + .cryId = CRY_SEEDOT, + .natDexNum = NATIONAL_DEX_SEEDOT, + .categoryName = _("Acorn"), + .height = 5, + .weight = 40, + .description = COMPOUND_STRING( + "It hangs off branches and absorbs\n" + "nutrients. When it finishes eating, its\n" + "body becomes so heavy that it drops to\n" + "the ground with a thump."), + .pokemonScale = 472, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Seedot, 32, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Seedot, + .frontAnimId = ANIM_V_JUMPS_H_JUMPS, + BACK_PIC(Seedot, 48, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Seedot), + ICON(Seedot, 2), + .footprint = gMonFootprint_Seedot, + LEARNSETS(Seedot), + .evolutions = EVOLUTION({EVO_LEVEL, 14, SPECIES_NUZLEAF}), }, - [SPECIES_BIDOOF] = + [SPECIES_NUZLEAF] = { - .baseHP = 59, - .baseAttack = 45, + .baseHP = 70, + .baseAttack = 70, .baseDefense = 40, - .baseSpeed = 31, - .baseSpAttack = 35, + .baseSpeed = 60, + .baseSpAttack = 60, .baseSpDefense = 40, - .types = { TYPE_NORMAL, TYPE_NORMAL}, - .catchRate = 255, - .expYield = 50, - .evYield_HP = 1, + .types = { TYPE_GRASS, TYPE_DARK }, + .catchRate = 120, + .expYield = 119, + .evYield_Attack = 2, + .itemRare = ITEM_POWER_HERB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SIMPLE, ABILITY_UNAWARE, ABILITY_MOODY}, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS}, + .abilities = {ABILITY_CHLOROPHYLL, ABILITY_EARLY_BIRD, ABILITY_PICKPOCKET}, .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .speciesName = _("Nuzleaf"), + .cryId = CRY_NUZLEAF, + .natDexNum = NATIONAL_DEX_NUZLEAF, + .categoryName = _("Wily"), + .height = 10, + .weight = 280, + .description = COMPOUND_STRING( + "A forest-dwelling Pokémon that is skilled\n" + "at climbing trees. Its long and pointed\n" + "nose is its weak point. It loses power if\n" + "the nose is gripped."), + .pokemonScale = 299, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Nuzleaf, 40, 56), + FRONT_PIC_FEMALE(Nuzleaf, 40, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Nuzleaf, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Nuzleaf, 56, 48), + BACK_PIC_FEMALE(Nuzleaf, 56, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Nuzleaf), + ICON(Nuzleaf, 1), + .footprint = gMonFootprint_Nuzleaf, + LEARNSETS(Nuzleaf), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_LEAF_STONE, SPECIES_SHIFTRY}), }, - [SPECIES_BIBAREL] = + [SPECIES_SHIFTRY] = { - .baseHP = 79, - .baseAttack = 85, + .baseHP = 90, + .baseAttack = 100, .baseDefense = 60, - .baseSpeed = 71, - .baseSpAttack = 55, + .baseSpeed = 80, + .baseSpAttack = 90, .baseSpDefense = 60, - .types = { TYPE_NORMAL, TYPE_WATER}, - .catchRate = 127, - .expYield = 144, - .evYield_Attack = 2, + .types = { TYPE_GRASS, TYPE_DARK }, + .catchRate = 45, + .expYield = 216, + .evYield_Attack = 3, + .itemRare = ITEM_POWER_HERB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SIMPLE, ABILITY_UNAWARE, ABILITY_MOODY}, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS}, + #if P_UPDATED_ABILITIES >= GEN_9 + .abilities = {ABILITY_CHLOROPHYLL, ABILITY_WIND_RIDER, ABILITY_PICKPOCKET}, + #else + .abilities = {ABILITY_CHLOROPHYLL, ABILITY_EARLY_BIRD, ABILITY_PICKPOCKET}, + #endif .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - }, - - [SPECIES_KRICKETOT] = + .speciesName = _("Shiftry"), + .cryId = CRY_SHIFTRY, + .natDexNum = NATIONAL_DEX_SHIFTRY, + .categoryName = _("Wicked"), + .height = 13, + .weight = 596, + .description = COMPOUND_STRING( + "It is said to arrive on chilly, wintry winds.\n" + "Feared from long ago as the guardian of\n" + "forests, this Pokémon lives in a deep\n" + "forest where people do not venture."), + .pokemonScale = 290, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Shiftry, 64, 56), + FRONT_PIC_FEMALE(Shiftry, 64, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Shiftry, + .frontAnimId = ANIM_H_VIBRATE, + BACK_PIC(Shiftry, 64, 56), + BACK_PIC_FEMALE(Shiftry, 64, 56), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(Shiftry), + ICON(Shiftry, 5), + .footprint = gMonFootprint_Shiftry, + LEARNSETS(Shiftry), + }, +#endif //P_FAMILY_SEEDOT + +#if P_FAMILY_TAILLOW + [SPECIES_TAILLOW] = { - .baseHP = 37, - .baseAttack = 25, - .baseDefense = 41, - .baseSpeed = 25, - .baseSpAttack = 25, - .baseSpDefense = 41, - .types = { TYPE_BUG, TYPE_BUG}, - .catchRate = 255, - .expYield = 39, - .evYield_Defense = 1, - .itemRare = ITEM_METRONOME, + .baseHP = 40, + .baseAttack = 55, + .baseDefense = 30, + .baseSpeed = 85, + .baseSpAttack = 30, + .baseSpDefense = 30, + .types = { TYPE_NORMAL, TYPE_FLYING }, + .catchRate = 200, + .expYield = 54, + .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_RUN_AWAY}, - .bodyColor = BODY_COLOR_RED, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + .abilities = {ABILITY_GUTS, ABILITY_NONE, ABILITY_SCRAPPY}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Taillow"), + .cryId = CRY_TAILLOW, + .natDexNum = NATIONAL_DEX_TAILLOW, + .categoryName = _("Tiny Swallow"), + .height = 3, + .weight = 23, + .description = COMPOUND_STRING( + "Although it is small, it is very courageous.\n" + "It will take on a larger Skarmory on an\n" + "equal footing. However, its will weakens if\n" + "it becomes hungry."), + .pokemonScale = 465, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Taillow, 48, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Taillow, + .frontAnimId = ANIM_V_JUMPS_BIG, + BACK_PIC(Taillow, 56, 40), + .backPicYOffset = 15, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Taillow), + ICON(Taillow, 2), + .footprint = gMonFootprint_Taillow, + LEARNSETS(Taillow), + .evolutions = EVOLUTION({EVO_LEVEL, 22, SPECIES_SWELLOW}), }, - [SPECIES_KRICKETUNE] = + [SPECIES_SWELLOW] = { - .baseHP = 77, + .baseHP = 60, .baseAttack = 85, - .baseDefense = 51, - .baseSpeed = 65, - .baseSpAttack = 55, - .baseSpDefense = 51, - .types = { TYPE_BUG, TYPE_BUG}, + .baseDefense = 60, + .baseSpeed = 125, + .baseSpAttack = P_UPDATED_STATS >= GEN_7 ? 75 : 50, + .baseSpDefense = 50, + .types = { TYPE_NORMAL, TYPE_FLYING}, .catchRate = 45, - .expYield = 134, - .evYield_Attack = 2, - .itemRare = ITEM_METRONOME, + .expYield = 159, + .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SWARM, ABILITY_NONE, ABILITY_TECHNICIAN}, - .bodyColor = BODY_COLOR_RED, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + .abilities = {ABILITY_GUTS, ABILITY_NONE, ABILITY_SCRAPPY}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - }, - - [SPECIES_SHINX] = + .speciesName = _("Swellow"), + .cryId = CRY_SWELLOW, + .natDexNum = NATIONAL_DEX_SWELLOW, + .categoryName = _("Swallow"), + .height = 7, + .weight = 198, + .description = COMPOUND_STRING( + "A Swellow dives upon prey from far above.\n" + "It never misses its targets. It takes to\n" + "the skies in search of lands with a warm\n" + "climate."), + .pokemonScale = 428, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Swellow, 64, 56), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Swellow, + .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, + BACK_PIC(Swellow, 56, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Swellow), + ICON(Swellow, 2), + .footprint = gMonFootprint_Swellow, + LEARNSETS(Swellow), + }, +#endif //P_FAMILY_TAILLOW + +#if P_FAMILY_WINGULL + [SPECIES_WINGULL] = { - .baseHP = 45, - .baseAttack = 65, - .baseDefense = 34, - .baseSpeed = 45, - .baseSpAttack = 40, - .baseSpDefense = 34, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, - .catchRate = 235, - .expYield = 53, - .evYield_Attack = 1, + .baseHP = 40, + .baseAttack = 30, + .baseDefense = 30, + .baseSpeed = 85, + .baseSpAttack = 55, + .baseSpDefense = 30, + .types = { TYPE_WATER, TYPE_FLYING}, + .catchRate = 190, + .expYield = 54, + .evYield_Speed = 1, + .itemCommon = ITEM_PRETTY_FEATHER, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_RIVALRY, ABILITY_INTIMIDATE, ABILITY_GUTS}, - .bodyColor = BODY_COLOR_BLUE, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FLYING}, + .abilities = {ABILITY_KEEN_EYE, ABILITY_HYDRATION, ABILITY_RAIN_DISH}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, + .speciesName = _("Wingull"), + .cryId = CRY_WINGULL, + .natDexNum = NATIONAL_DEX_WINGULL, + .categoryName = _("Seagull"), + .height = 6, + .weight = 95, + .description = COMPOUND_STRING( + "It makes its nest on a sheer cliff at the\n" + "edge of the sea. It has trouble keeping\n" + "its wings flapping in flight. Instead, it\n" + "soars on updrafts."), + .pokemonScale = 295, + .pokemonOffset = -2, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Wingull, 64, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Wingull, + .frontAnimId = ANIM_H_PIVOT, + .enemyMonElevation = 15, + BACK_PIC(Wingull, 64, 40), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Wingull), + ICON(Wingull, 0), + .footprint = gMonFootprint_Wingull, + LEARNSETS(Wingull), + .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_PELIPPER}), }, - [SPECIES_LUXIO] = + [SPECIES_PELIPPER] = { .baseHP = 60, - .baseAttack = 85, - .baseDefense = 49, - .baseSpeed = 60, - .baseSpAttack = 60, - .baseSpDefense = 49, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, - .catchRate = 120, - .expYield = 127, - .evYield_Attack = 2, + .baseAttack = 50, + .baseDefense = 100, + .baseSpeed = 65, + .baseSpAttack = P_UPDATED_STATS >= GEN_7 ? 95 : 85, + .baseSpDefense = 70, + .types = { TYPE_WATER, TYPE_FLYING}, + .catchRate = 45, + .expYield = 154, + .evYield_Defense = 2, + .itemCommon = ITEM_PRETTY_FEATHER, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 100, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_RIVALRY, ABILITY_INTIMIDATE, ABILITY_GUTS}, - .bodyColor = BODY_COLOR_BLUE, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FLYING}, + .abilities = {ABILITY_KEEN_EYE, ABILITY_DRIZZLE, ABILITY_RAIN_DISH}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, - }, + .speciesName = _("Pelipper"), + .cryId = CRY_PELIPPER, + .natDexNum = NATIONAL_DEX_PELIPPER, + .categoryName = _("Water Bird"), + .height = 12, + .weight = 280, + .description = COMPOUND_STRING( + "It skims the tops of waves as it flies.\n" + "When it spots prey, it uses its large beak\n" + "to scoop up the victim with water.\n" + "It protects its eggs in its beak."), + .pokemonScale = 288, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Pelipper, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Pelipper, + .frontAnimId = ANIM_V_SLIDE_WOBBLE, + .enemyMonElevation = 8, + BACK_PIC(Pelipper, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Pelipper), + ICON(Pelipper, 2), + .footprint = gMonFootprint_Pelipper, + LEARNSETS(Pelipper), + }, +#endif //P_FAMILY_WINGULL + +#if P_FAMILY_RALTS +#define RALTS_FAMILY_TYPE2 (P_UPDATED_TYPES >= GEN_6 ? TYPE_FAIRY : TYPE_PSYCHIC) + +#if P_UPDATED_EGG_GROUPS >= GEN_8 + #define RALTS_FAMILY_EGG_GROUPS { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_AMORPHOUS } +#else + #define RALTS_FAMILY_EGG_GROUPS { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS } +#endif - [SPECIES_LUXRAY] = + [SPECIES_RALTS] = { - .baseHP = 80, - .baseAttack = 120, - .baseDefense = 79, - .baseSpeed = 70, - .baseSpAttack = 95, - .baseSpDefense = 79, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, - .catchRate = 45, - .expYield = 235, - .evYield_Attack = 3, + .baseHP = 28, + .baseAttack = 25, + .baseDefense = 25, + .baseSpeed = 40, + .baseSpAttack = 45, + .baseSpDefense = 35, + .types = { TYPE_PSYCHIC, RALTS_FAMILY_TYPE2 }, + .catchRate = 235, + .expYield = 40, + .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_RIVALRY, ABILITY_INTIMIDATE, ABILITY_GUTS}, - .bodyColor = BODY_COLOR_BLUE, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = RALTS_FAMILY_EGG_GROUPS, + .abilities = {ABILITY_SYNCHRONIZE, ABILITY_TRACE, ABILITY_TELEPATHY}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, + .speciesName = _("Ralts"), + .cryId = CRY_RALTS, + .natDexNum = NATIONAL_DEX_RALTS, + .categoryName = _("Feeling"), + .height = 4, + .weight = 66, + .description = COMPOUND_STRING( + "A Ralts has the power to sense the\n" + "emotions of people and Pokémon with the\n" + "horns on its head. It takes cover if it\n" + "senses any hostility."), + .pokemonScale = 457, + .pokemonOffset = -3, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Ralts, 24, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Ralts, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + BACK_PIC(Ralts, 32, 40), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(Ralts), + ICON(Ralts, 1), + .footprint = gMonFootprint_Ralts, + LEARNSETS(Ralts), + .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_KIRLIA}), }, - [SPECIES_BUDEW] = + [SPECIES_KIRLIA] = + { + .baseHP = 38, + .baseAttack = 35, + .baseDefense = 35, + .baseSpeed = 50, + .baseSpAttack = 65, + .baseSpDefense = 55, + .types = { TYPE_PSYCHIC, RALTS_FAMILY_TYPE2 }, + .catchRate = 120, + .expYield = 97, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = RALTS_FAMILY_EGG_GROUPS, + .abilities = {ABILITY_SYNCHRONIZE, ABILITY_TRACE, ABILITY_TELEPATHY}, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = FALSE, + .speciesName = _("Kirlia"), + .cryId = CRY_KIRLIA, + .natDexNum = NATIONAL_DEX_KIRLIA, + .categoryName = _("Emotion"), + .height = 8, + .weight = 202, + .description = COMPOUND_STRING( + "A Kirlia has the psychic power to create \n" + "a rip in the dimensions and see into the\n" + "future. It is said to dance with pleasure\n" + "on sunny mornings."), + .pokemonScale = 354, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Kirlia, 32, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Kirlia, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Kirlia, 48, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(Kirlia), + ICON(Kirlia, 1), + .footprint = gMonFootprint_Kirlia, + LEARNSETS(Kirlia), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_GARDEVOIR}, + {EVO_ITEM_MALE, ITEM_DAWN_STONE, SPECIES_GALLADE}), + }, + +#define GARDEVOIR_MISC_INFO \ + .catchRate = 45, \ + .evYield_SpAttack = 3, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = 35, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = RALTS_FAMILY_EGG_GROUPS, \ + .types = { TYPE_PSYCHIC, RALTS_FAMILY_TYPE2 }, \ + .bodyColor = BODY_COLOR_WHITE, \ + .noFlip = FALSE, \ + .speciesName = _("Gardevoir"), \ + .natDexNum = NATIONAL_DEX_GARDEVOIR, \ + .categoryName = _("Embrace"), \ + .height = 16, \ + .weight = 484, \ + .pokemonScale = 256, \ + .pokemonOffset = 0, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Gardevoir, \ + LEARNSETS(Gardevoir), \ + .formSpeciesIdTable = sGardevoirFormSpeciesIdTable, \ + .formChangeTable = sGardevoirFormChangeTable + + [SPECIES_GARDEVOIR] = + { + GARDEVOIR_MISC_INFO, + .baseHP = 68, + .baseAttack = 65, + .baseDefense = 65, + .baseSpeed = 80, + .baseSpAttack = 125, + .baseSpDefense = 115, + .expYield = 233, + .abilities = {ABILITY_SYNCHRONIZE, ABILITY_TRACE, ABILITY_TELEPATHY}, + .cryId = CRY_GARDEVOIR, + .description = COMPOUND_STRING( + "It apparently does not feel the pull of\n" + "gravity because it supports itself with\n" + "psychic power. It will give its life to\n" + "protect its Trainer."), + FRONT_PIC(Gardevoir, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Gardevoir, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + BACK_PIC(Gardevoir, 48, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(Gardevoir), + ICON(Gardevoir, 1), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_GARDEVOIR_MEGA] = + { + GARDEVOIR_MISC_INFO, + .baseHP = 68, + .baseAttack = 85, + .baseDefense = 65, + .baseSpeed = 100, + .baseSpAttack = 165, + .baseSpDefense = 135, + .expYield = 278, + .abilities = {ABILITY_PIXILATE, ABILITY_PIXILATE, ABILITY_PIXILATE}, + .cryId = CRY_GARDEVOIR_MEGA, + .description = COMPOUND_STRING( + "By opening its heart, Mega Gardevoir\n" + "becomes able to use tremendous psychic\n" + "power. The red plate in its chest is said to\n" + "be a physical manifestation of its heart."), + FRONT_PIC(GardevoirMega, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_GardevoirMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(GardevoirMega, 48, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_SHAKE_GLOW_GREEN, + PALETTE(GardevoirMega), + ICON(GardevoirMega, 1), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS + +#if P_GEN_4_CROSS_EVOS +#define GALLADE_MISC_INFO \ + .types = { TYPE_PSYCHIC, TYPE_FIGHTING}, \ + .catchRate = 45, \ + .evYield_Attack = 3, \ + .genderRatio = MON_MALE, \ + .eggCycles = 20, \ + .friendship = 35, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = RALTS_FAMILY_EGG_GROUPS, \ + .bodyColor = BODY_COLOR_WHITE, \ + .noFlip = FALSE, \ + .speciesName = _("Gallade"), \ + .natDexNum = NATIONAL_DEX_GALLADE, \ + .categoryName = _("Blade"), \ + .height = 16, \ + .pokemonScale = 259, \ + .pokemonOffset = 1, \ + .trainerScale = 296, \ + .trainerOffset = 1, \ + .footprint = gMonFootprint_Gallade, \ + LEARNSETS(Gallade), \ + .formSpeciesIdTable = sGalladeFormSpeciesIdTable, \ + .formChangeTable = sGalladeFormChangeTable + + [SPECIES_GALLADE] = + { + GALLADE_MISC_INFO, + .baseHP = 68, + .baseAttack = 125, + .baseDefense = 65, + .baseSpeed = 80, + .baseSpAttack = 65, + .baseSpDefense = 115, + .expYield = 233, + #if P_UPDATED_ABILITIES >= GEN_9 + .abilities = {ABILITY_STEADFAST, ABILITY_SHARPNESS, ABILITY_JUSTIFIED}, + #else + .abilities = {ABILITY_STEADFAST, ABILITY_NONE, ABILITY_JUSTIFIED}, + #endif + .cryId = CRY_GALLADE, + .weight = 520, + .description = COMPOUND_STRING( + "A master of courtesy and swordsmanship,\n" + "it fights using extending swords on its\n" + "elbows when trying to protect someone.\n" + "It can sense what its foe is thinking."), + FRONT_PIC(Gallade, 56, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Gallade, + .frontAnimId = ANIM_H_VIBRATE, + BACK_PIC(Gallade, 64, 64), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(Gallade), + ICON(Gallade, 1), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_GALLADE_MEGA] = + { + GALLADE_MISC_INFO, + .baseHP = 68, + .baseAttack = 165, + .baseDefense = 95, + .baseSpeed = 110, + .baseSpAttack = 65, + .baseSpDefense = 115, + .expYield = 278, + .abilities = {ABILITY_INNER_FOCUS, ABILITY_INNER_FOCUS, ABILITY_INNER_FOCUS}, + .cryId = CRY_GALLADE_MEGA, + .weight = 564, + .description = COMPOUND_STRING( + "Mega Gallade has a knightly appearance.\n" + "It can use its psychic power to reshape\n" + "both arms into blades simultaneously and\n" + "fight using a dual-wielding style."), + FRONT_PIC(GalladeMega, 64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_GalladeMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(GalladeMega, 64, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(GalladeMega), + ICON(GalladeMega, 1), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_RALTS + +#if P_FAMILY_SURSKIT + [SPECIES_SURSKIT] = { .baseHP = 40, .baseAttack = 30, - .baseDefense = 35, - .baseSpeed = 55, + .baseDefense = 32, + .baseSpeed = 65, .baseSpAttack = 50, - .baseSpDefense = 70, - .types = { TYPE_GRASS, TYPE_POISON}, - .catchRate = 255, - .expYield = 56, - .evYield_SpAttack = 1, - .itemRare = ITEM_POISON_BARB, + .baseSpDefense = 52, + .types = { TYPE_BUG, TYPE_WATER}, + .catchRate = 200, + .expYield = 54, + .evYield_Speed = 1, + .itemCommon = ITEM_HONEY, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_NATURAL_CURE, ABILITY_POISON_POINT, ABILITY_LEAF_GUARD}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = TRUE, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_BUG}, + .abilities = {ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_RAIN_DISH}, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + .speciesName = _("Surskit"), + .cryId = CRY_SURSKIT, + .natDexNum = NATIONAL_DEX_SURSKIT, + .categoryName = _("Pond Skater"), + .height = 5, + .weight = 17, + .description = COMPOUND_STRING( + "They gather on puddles after evening\n" + "downpours, gliding across the surface\n" + "of water as if sliding. It secretes honey\n" + "with a sweet aroma from its head."), + .pokemonScale = 375, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Surskit, 48, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Surskit, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Surskit, 56, 40), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_H_SPRING, + PALETTE(Surskit), + ICON(Surskit, 0), + .footprint = gMonFootprint_Surskit, + LEARNSETS(Surskit), + .evolutions = EVOLUTION({EVO_LEVEL, 22, SPECIES_MASQUERAIN}), }, - [SPECIES_ROSERADE] = + [SPECIES_MASQUERAIN] = { - .baseHP = 60, - .baseAttack = 70, - .baseSpeed = 90, - .baseSpAttack = 125, - .baseSpDefense = 105, - #if P_UPDATED_STATS >= GEN_6 - .baseDefense = 65, + .baseHP = 70, + .baseAttack = 60, + .baseDefense = 62, + .baseSpDefense = 82, + #if P_UPDATED_STATS >= GEN_7 + .baseSpeed = 80, + .baseSpAttack = 100, #else - .baseDefense = 55, + .baseSpeed = 60, + .baseSpAttack = 80, #endif - .types = { TYPE_GRASS, TYPE_POISON}, + .types = { TYPE_BUG, TYPE_FLYING}, .catchRate = 75, - .expYield = 232, - .evYield_SpAttack = 3, - .itemRare = ITEM_POISON_BARB, + .expYield = 159, + .evYield_SpAttack = 1, + .evYield_SpDefense = 1, + .itemRare = ITEM_SILVER_POWDER, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS}, - .abilities = {ABILITY_NATURAL_CURE, ABILITY_POISON_POINT, ABILITY_TECHNICIAN}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = TRUE, - }, - - [SPECIES_CRANIDOS] = - { - .baseHP = 67, - .baseAttack = 125, - .baseDefense = 40, - .baseSpeed = 58, - .baseSpAttack = 30, - .baseSpDefense = 30, - .types = { TYPE_ROCK, TYPE_ROCK}, - .catchRate = 45, - .expYield = 70, - .evYield_Attack = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 30, + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, - .abilities = {ABILITY_MOLD_BREAKER, ABILITY_NONE, ABILITY_SHEER_FORCE}, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_BUG}, + .abilities = {ABILITY_INTIMIDATE, ABILITY_NONE, ABILITY_UNNERVE}, .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - }, - - [SPECIES_RAMPARDOS] = + .speciesName = _("Masquerain"), + .cryId = CRY_MASQUERAIN, + .natDexNum = NATIONAL_DEX_MASQUERAIN, + .categoryName = _("Eyeball"), + .height = 8, + .weight = 36, + .description = COMPOUND_STRING( + "It intimidates foes with the large eyelike\n" + "patterns on its antennae. Because it can't\n" + "fly if its wings get wet, it shelters itself\n" + "from rain under large trees and eaves."), + .pokemonScale = 378, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Masquerain, 64, 64), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Masquerain, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 10, + BACK_PIC(Masquerain, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Masquerain), + ICON(Masquerain, 0), + .footprint = gMonFootprint_Masquerain, + LEARNSETS(Masquerain), + }, +#endif //P_FAMILY_SURSKIT + +#if P_FAMILY_SHROOMISH + [SPECIES_SHROOMISH] = { - .baseHP = 97, - .baseAttack = 165, + .baseHP = 60, + .baseAttack = 40, .baseDefense = 60, - .baseSpeed = 58, - .baseSpAttack = 65, - .baseSpDefense = 50, - .types = { TYPE_ROCK, TYPE_ROCK}, - .catchRate = 45, - .expYield = 173, - .evYield_Attack = 2, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 30, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, - .abilities = {ABILITY_MOLD_BREAKER, ABILITY_NONE, ABILITY_SHEER_FORCE}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_SHIELDON] = - { - .baseHP = 30, - .baseAttack = 42, - .baseDefense = 118, - .baseSpeed = 30, - .baseSpAttack = 42, - .baseSpDefense = 88, - .types = { TYPE_ROCK, TYPE_STEEL}, - .catchRate = 45, - .expYield = 70, - .evYield_Defense = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 30, + .baseSpeed = 35, + .baseSpAttack = 40, + .baseSpDefense = 60, + .types = { TYPE_GRASS, TYPE_GRASS }, + .catchRate = 255, + .expYield = 59, + .evYield_HP = 1, + .itemCommon = ITEM_TINY_MUSHROOM, + .itemRare = ITEM_BIG_MUSHROOM, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, - .abilities = {ABILITY_STURDY, ABILITY_NONE, ABILITY_SOUNDPROOF}, - .bodyColor = BODY_COLOR_GRAY, + .growthRate = GROWTH_FLUCTUATING, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS}, + .abilities = {ABILITY_EFFECT_SPORE, ABILITY_POISON_HEAL, ABILITY_QUICK_FEET}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .speciesName = _("Shroomish"), + .cryId = CRY_SHROOMISH, + .natDexNum = NATIONAL_DEX_SHROOMISH, + .categoryName = _("Mushroom"), + .height = 4, + .weight = 45, + .description = COMPOUND_STRING( + "It loves to eat damp, composted soil in\n" + "forests. If you enter a forest after a\n" + "long rain, you can see many Shroomish\n" + "feasting on composted soil."), + .pokemonScale = 513, + .pokemonOffset = 22, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Shroomish, 40, 40), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Shroomish, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Shroomish, 56, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Shroomish), + ICON(Shroomish, 1), + .footprint = gMonFootprint_Shroomish, + LEARNSETS(Shroomish), + .evolutions = EVOLUTION({EVO_LEVEL, 23, SPECIES_BRELOOM}), }, - [SPECIES_BASTIODON] = + [SPECIES_BRELOOM] = { .baseHP = 60, - .baseAttack = 52, - .baseDefense = 168, - .baseSpeed = 30, - .baseSpAttack = 47, - .baseSpDefense = 138, - .types = { TYPE_ROCK, TYPE_STEEL}, - .catchRate = 45, - .expYield = 173, - .evYield_Defense = 2, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 30, + .baseAttack = 130, + .baseDefense = 80, + .baseSpeed = 70, + .baseSpAttack = 60, + .baseSpDefense = 60, + .types = { TYPE_GRASS, TYPE_FIGHTING }, + .catchRate = 90, + .expYield = 161, + .evYield_Attack = 2, + .itemCommon = ITEM_TINY_MUSHROOM, + .itemRare = ITEM_BIG_MUSHROOM, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, - .abilities = {ABILITY_STURDY, ABILITY_NONE, ABILITY_SOUNDPROOF}, - .bodyColor = BODY_COLOR_GRAY, + .growthRate = GROWTH_FLUCTUATING, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS}, + .abilities = {ABILITY_EFFECT_SPORE, ABILITY_POISON_HEAL, ABILITY_TECHNICIAN}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - }, - - [SPECIES_BURMY_PLANT_CLOAK] = BURMY_SPECIES_INFO(BODY_COLOR_GREEN), - - [SPECIES_WORMADAM_PLANT_CLOAK] = + .speciesName = _("Breloom"), + .cryId = CRY_BRELOOM, + .natDexNum = NATIONAL_DEX_BRELOOM, + .categoryName = _("Mushroom"), + .height = 12, + .weight = 392, + .description = COMPOUND_STRING( + "It scatters spores from holes in the cap\n" + "on its head. It loves warm and humid\n" + "climates. It feeds on trees and plants in\n" + "fields and forests."), + .pokemonScale = 324, + .pokemonOffset = 6, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Breloom, 48, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_Breloom, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Breloom, 64, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Breloom), + ICON(Breloom, 1), + .footprint = gMonFootprint_Breloom, + LEARNSETS(Breloom), + }, +#endif //P_FAMILY_SHROOMISH + +#if P_FAMILY_SLAKOTH + [SPECIES_SLAKOTH] = { .baseHP = 60, - .baseAttack = 59, - .baseDefense = 85, - .baseSpeed = 36, - .baseSpAttack = 79, - .baseSpDefense = 105, - .types = { TYPE_BUG, TYPE_GRASS}, - .catchRate = 45, - .expYield = 148, - .evYield_SpDefense = 2, - .itemRare = ITEM_SILVER_POWDER, - .genderRatio = MON_FEMALE, + .baseAttack = 60, + .baseDefense = 60, + .baseSpeed = 30, + .baseSpAttack = 35, + .baseSpDefense = 35, + .types = { TYPE_NORMAL, TYPE_NORMAL }, + .catchRate = 255, + .expYield = 56, + .evYield_HP = 1, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_ANTICIPATION, ABILITY_NONE, ABILITY_OVERCOAT}, - .bodyColor = BODY_COLOR_GREEN, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = {ABILITY_TRUANT, ABILITY_NONE}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .speciesName = _("Slakoth"), + .cryId = CRY_SLAKOTH, + .natDexNum = NATIONAL_DEX_SLAKOTH, + .categoryName = _("Slacker"), + .height = 8, + .weight = 240, + .description = COMPOUND_STRING( + "It sleeps virtually all day and night long.\n" + "It doesn't change its nest its entire life,\n" + "but it sometimes travels great distances\n" + "by swimming in rivers."), + .pokemonScale = 291, + .pokemonOffset = 16, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Slakoth, 56, 40), + .frontPicYOffset = 15, + .frontAnimFrames = sAnims_Slakoth, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + BACK_PIC(Slakoth, 64, 40), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Slakoth), + ICON(Slakoth, 2), + .footprint = gMonFootprint_Slakoth, + LEARNSETS(Slakoth), + .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_VIGOROTH}), }, - [SPECIES_MOTHIM] = + [SPECIES_VIGOROTH] = { - .baseHP = 70, - .baseAttack = 94, - .baseDefense = 50, - .baseSpeed = 66, - .baseSpAttack = 94, - .baseSpDefense = 50, - .types = { TYPE_BUG, TYPE_FLYING}, - .catchRate = 45, - .expYield = 148, - .evYield_Attack = 1, - .evYield_SpAttack = 1, - .itemRare = ITEM_SILVER_POWDER, - .genderRatio = MON_MALE, + .baseHP = 80, + .baseAttack = 80, + .baseDefense = 80, + .baseSpeed = 90, + .baseSpAttack = 55, + .baseSpDefense = 55, + .types = { TYPE_NORMAL, TYPE_NORMAL }, + .catchRate = 120, + .expYield = 154, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SWARM, ABILITY_NONE, ABILITY_TINTED_LENS}, - .bodyColor = BODY_COLOR_YELLOW, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = {ABILITY_VITAL_SPIRIT, ABILITY_NONE}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, + .speciesName = _("Vigoroth"), + .cryId = CRY_VIGOROTH, + .natDexNum = NATIONAL_DEX_VIGOROTH, + .categoryName = _("Wild Monkey"), + .height = 14, + .weight = 465, + .description = COMPOUND_STRING( + "It can't keep still because its blood boils\n" + "with energy. It runs through the fields\n" + "and mountains all day to calm itself. If it\n" + "doesn't, it can't sleep at night."), + .pokemonScale = 301, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Vigoroth, 64, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Vigoroth, + .frontAnimId = ANIM_H_JUMPS, + BACK_PIC(Vigoroth, 56, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, + PALETTE(Vigoroth), + ICON(Vigoroth, 2), + .footprint = gMonFootprint_Vigoroth, + LEARNSETS(Vigoroth), + .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_SLAKING}), }, - [SPECIES_COMBEE] = + [SPECIES_SLAKING] = { - .baseHP = 30, - .baseAttack = 30, - .baseDefense = 42, - .baseSpeed = 70, - .baseSpAttack = 30, - .baseSpDefense = 42, - .types = { TYPE_BUG, TYPE_FLYING}, - .catchRate = 120, - .expYield = 49, - .evYield_Speed = 1, - .itemRare = ITEM_HONEY, - .genderRatio = PERCENT_FEMALE(12.5), + .baseHP = 150, + .baseAttack = 160, + .baseDefense = 100, + .baseSpeed = 100, + .baseSpAttack = 95, + .baseSpDefense = 65, + .types = { TYPE_NORMAL, TYPE_NORMAL }, + .catchRate = 45, + .expYield = 252, + .evYield_HP = 3, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_HONEY_GATHER, ABILITY_NONE, ABILITY_HUSTLE}, - .bodyColor = BODY_COLOR_YELLOW, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD }, + .abilities = {ABILITY_TRUANT, ABILITY_NONE}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - }, - - [SPECIES_VESPIQUEN] = + .speciesName = _("Slaking"), + .cryId = CRY_SLAKING, + .natDexNum = NATIONAL_DEX_SLAKING, + .categoryName = _("Lazy"), + .height = 20, + .weight = 1305, + .description = COMPOUND_STRING( + "Hordes of Slaking gather around trees\n" + "when fruits come into season. They wait\n" + "around patiently for ripened fruits to fall\n" + "out of the trees."), + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 300, + .trainerOffset = 1, + FRONT_PIC(Slaking, 64, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Slaking, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + BACK_PIC(Slaking, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_H_SHAKE, + PALETTE(Slaking), + ICON(Slaking, 2), + .footprint = gMonFootprint_Slaking, + LEARNSETS(Slaking), + }, +#endif //P_FAMILY_SLAKOTH + +#if P_FAMILY_NINCADA + [SPECIES_NINCADA] = { - .baseHP = 70, - .baseAttack = 80, - .baseDefense = 102, + .baseHP = 31, + .baseAttack = 45, + .baseDefense = 90, .baseSpeed = 40, - .baseSpAttack = 80, - .baseSpDefense = 102, - .types = { TYPE_BUG, TYPE_FLYING}, - .catchRate = 45, - .expYield = 166, + .baseSpAttack = 30, + .baseSpDefense = 30, + .types = { TYPE_BUG, TYPE_GROUND}, + .catchRate = 255, + .expYield = 53, .evYield_Defense = 1, - .evYield_SpDefense = 1, - .itemRare = ITEM_POISON_BARB, - .genderRatio = MON_FEMALE, + .itemRare = ITEM_SOFT_SAND, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, + .growthRate = GROWTH_ERRATIC, .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_UNNERVE}, - .bodyColor = BODY_COLOR_YELLOW, + .abilities = {ABILITY_COMPOUND_EYES, ABILITY_NONE, ABILITY_RUN_AWAY}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, + .speciesName = _("Nincada"), + .cryId = CRY_NINCADA, + .natDexNum = NATIONAL_DEX_NINCADA, + .categoryName = _("Trainee"), + .height = 5, + .weight = 55, + .description = COMPOUND_STRING( + "It makes its nest at the roots of a mighty\n" + "tree. Using its whiskerlike antennae, it\n" + "probes its surroundings in the\n" + "pitch-black darkness of soil."), + .pokemonScale = 405, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Nincada, 56, 32), + .frontPicYOffset = 16, + .frontAnimFrames = sAnims_Nincada, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Nincada, 64, 32), + .backPicYOffset = 18, + .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, + PALETTE(Nincada), + ICON(Nincada, 1), + .footprint = gMonFootprint_Nincada, + LEARNSETS(Nincada), + .evolutions = EVOLUTION({EVO_LEVEL_NINJASK, 20, SPECIES_NINJASK}, + {EVO_LEVEL_SHEDINJA, 20, SPECIES_SHEDINJA}), }, - [SPECIES_PACHIRISU] = + [SPECIES_NINJASK] = { - .baseHP = 60, - .baseAttack = 45, - .baseDefense = 70, - .baseSpeed = 95, - .baseSpAttack = 45, - .baseSpDefense = 90, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, - .catchRate = 200, - .expYield = 142, - .evYield_Speed = 1, + .baseHP = 61, + .baseAttack = 90, + .baseDefense = 45, + .baseSpeed = 160, + .baseSpAttack = 50, + .baseSpDefense = 50, + .types = { TYPE_BUG, TYPE_FLYING}, + .catchRate = 120, + .expYield = 160, + .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 10, - .friendship = 100, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_RUN_AWAY, ABILITY_PICKUP, ABILITY_VOLT_ABSORB}, - .bodyColor = BODY_COLOR_WHITE, + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_ERRATIC, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_SPEED_BOOST, ABILITY_NONE, ABILITY_INFILTRATOR}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, + .speciesName = _("Ninjask"), + .cryId = CRY_NINJASK, + .natDexNum = NATIONAL_DEX_NINJASK, + .categoryName = _("Ninja"), + .height = 8, + .weight = 120, + .description = COMPOUND_STRING( + "Because it darts about vigorously at high\n" + "speed, it is very difficult to see. Hearing\n" + "its distinctive cries for too long induces\n" + "a headache."), + .pokemonScale = 383, + .pokemonOffset = -9, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Ninjask, 64, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Ninjask, + .frontAnimId = ANIM_H_SLIDE_SLOW, + .enemyMonElevation = 10, + BACK_PIC(Ninjask, 64, 40), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_H_VIBRATE, + PALETTE(Ninjask), + ICON(Ninjask, 1), + .footprint = gMonFootprint_Ninjask, + LEARNSETS(Ninjask), }, - [SPECIES_BUIZEL] = + [SPECIES_SHEDINJA] = { - .baseHP = 55, - .baseAttack = 65, - .baseDefense = 35, - .baseSpeed = 85, - .baseSpAttack = 60, + .baseHP = 1, + .baseAttack = 90, + .baseDefense = 45, + .baseSpeed = 40, + .baseSpAttack = 30, .baseSpDefense = 30, - .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 190, - .expYield = 66, - .evYield_Speed = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .types = { TYPE_BUG, TYPE_GHOST}, + .catchRate = 45, + .expYield = 83, + .evYield_HP = 2, + .genderRatio = MON_GENDERLESS, + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_WATER_VEIL}, + .growthRate = GROWTH_ERRATIC, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_WONDER_GUARD, ABILITY_NONE}, .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - }, - - [SPECIES_FLOATZEL] = + .speciesName = _("Shedinja"), + .cryId = CRY_SHEDINJA, + .natDexNum = NATIONAL_DEX_SHEDINJA, + .categoryName = _("Shed"), + .height = 8, + .weight = 12, + .description = COMPOUND_STRING( + "A peculiar Pokémon that floats in air even\n" + "though its wings remain completely still.\n" + "The inside of its body is hollow and\n" + "utterly dark."), + .pokemonScale = 372, + .pokemonOffset = -8, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Shedinja, 48, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Shedinja, + .frontAnimId = ANIM_V_SLIDE_WOBBLE, + .enemyMonElevation = 8, + BACK_PIC(Shedinja, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(Shedinja), + ICON(Shedinja, 1), + .footprint = gMonFootprint_Shedinja, + LEARNSETS(Shedinja), + }, +#endif //P_FAMILY_NINCADA + +#if P_FAMILY_WHISMUR + [SPECIES_WHISMUR] = { - .baseHP = 85, - .baseAttack = 105, - .baseDefense = 55, - .baseSpeed = 115, - .baseSpAttack = 85, - .baseSpDefense = 50, - .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 75, - .expYield = 173, - .evYield_Speed = 2, + .baseHP = 64, + .baseAttack = 51, + .baseDefense = 23, + .baseSpeed = 28, + .baseSpAttack = 51, + .baseSpDefense = 23, + .types = { TYPE_NORMAL, TYPE_NORMAL }, + .catchRate = 190, + .expYield = 48, + .evYield_HP = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_WATER_VEIL}, - .bodyColor = BODY_COLOR_BROWN, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD}, + .abilities = {ABILITY_SOUNDPROOF, ABILITY_NONE, ABILITY_RATTLED}, + .bodyColor = BODY_COLOR_PINK, .noFlip = FALSE, + .speciesName = _("Whismur"), + .cryId = CRY_WHISMUR, + .natDexNum = NATIONAL_DEX_WHISMUR, + .categoryName = _("Whisper"), + .height = 6, + .weight = 163, + .description = COMPOUND_STRING( + "Its cries equal a jet plane in volume.\n" + "It inhales through its ear canals. Because\n" + "of this system, it can cry continually\n" + "without having to catch its breath."), + .pokemonScale = 373, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Whismur, 48, 40), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_Whismur, + .frontAnimId = ANIM_H_SLIDE, + BACK_PIC(Whismur, 56, 40), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Whismur), + ICON(Whismur, 1), + .footprint = gMonFootprint_Whismur, + LEARNSETS(Whismur), + .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_LOUDRED}), }, - [SPECIES_CHERUBI] = + [SPECIES_LOUDRED] = { - .baseHP = 45, - .baseAttack = 35, - .baseDefense = 45, - .baseSpeed = 35, - .baseSpAttack = 62, - .baseSpDefense = 53, - .types = { TYPE_GRASS, TYPE_GRASS}, - .catchRate = 190, - .expYield = 55, - .evYield_SpAttack = 1, - .itemRare = ITEM_MIRACLE_SEED, + .baseHP = 84, + .baseAttack = 71, + .baseDefense = 43, + .baseSpeed = 48, + .baseSpAttack = 71, + .baseSpDefense = 43, + .types = { TYPE_NORMAL, TYPE_NORMAL }, + .catchRate = 120, + .expYield = 126, + .evYield_HP = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS}, - .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE}, - .bodyColor = BODY_COLOR_PINK, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD}, + .abilities = {ABILITY_SOUNDPROOF, ABILITY_NONE, ABILITY_SCRAPPY}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Loudred"), + .cryId = CRY_LOUDRED, + .natDexNum = NATIONAL_DEX_LOUDRED, + .categoryName = _("Big Voice"), + .height = 10, + .weight = 405, + .description = COMPOUND_STRING( + "It positions the round speakers on its\n" + "head to assail foes with ultrasonic waves\n" + "at massive volume. It builds power by\n" + "stomping the ground."), + .pokemonScale = 356, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Loudred, 56, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_Loudred, + .frontAnimId = ANIM_SHRINK_GROW, + BACK_PIC(Loudred, 64, 56), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Loudred), + ICON(Loudred, 2), + .footprint = gMonFootprint_Loudred, + LEARNSETS(Loudred), + .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_EXPLOUD}), }, - [SPECIES_CHERRIM_OVERCAST] = CHERRIM_SPECIES_INFO(BODY_COLOR_PURPLE), - - [SPECIES_SHELLOS_WEST_SEA] = SHELLOS_SPECIES_INFO(BODY_COLOR_PURPLE), - - [SPECIES_GASTRODON_WEST_SEA] = GASTRODON_SPECIES_INFO(BODY_COLOR_PURPLE), - - [SPECIES_AMBIPOM] = + [SPECIES_EXPLOUD] = { - .baseHP = 75, - .baseAttack = 100, - .baseDefense = 66, - .baseSpeed = 115, - .baseSpAttack = 60, - .baseSpDefense = 66, + .baseHP = 104, + .baseAttack = 91, + .baseDefense = 63, + .baseSpeed = 68, + .baseSpAttack = 91, + .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 73 : 63, .types = { TYPE_NORMAL, TYPE_NORMAL}, .catchRate = 45, - .expYield = 169, - .evYield_Speed = 2, + .expYield = 221, + .evYield_HP = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 100, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_TECHNICIAN, ABILITY_PICKUP, ABILITY_SKILL_LINK}, - .bodyColor = BODY_COLOR_PURPLE, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD}, + .abilities = {ABILITY_SOUNDPROOF, ABILITY_NONE, ABILITY_SCRAPPY}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - }, - - [SPECIES_DRIFLOON] = + .speciesName = _("Exploud"), + .cryId = CRY_EXPLOUD, + .natDexNum = NATIONAL_DEX_EXPLOUD, + .categoryName = _("Loud Noise"), + .height = 15, + .weight = 840, + .description = COMPOUND_STRING( + "It has sound-generating organs all over\n" + "its body. It communicates with others by\n" + "adjusting the tone and volume of the cries\n" + "it emits."), + .pokemonScale = 284, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Exploud, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Exploud, + .frontAnimId = ANIM_V_SHAKE_TWICE, + BACK_PIC(Exploud, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_GROW_STUTTER, + PALETTE(Exploud), + ICON(Exploud, 2), + .footprint = gMonFootprint_Exploud, + LEARNSETS(Exploud), + }, +#endif //P_FAMILY_WHISMUR + +#if P_FAMILY_MAKUHITA + [SPECIES_MAKUHITA] = { - .baseHP = 90, - .baseAttack = 50, - .baseDefense = 34, - .baseSpeed = 70, - .baseSpAttack = 60, - .baseSpDefense = 44, - .types = { TYPE_GHOST, TYPE_FLYING}, - .catchRate = 125, - .expYield = 70, + .baseHP = 72, + .baseAttack = 60, + .baseDefense = 30, + .baseSpeed = 25, + .baseSpAttack = 20, + .baseSpDefense = 30, + .types = { TYPE_FIGHTING, TYPE_FIGHTING}, + .catchRate = 180, + .expYield = 47, .evYield_HP = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 30, + .itemRare = ITEM_BLACK_BELT, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_AFTERMATH, ABILITY_UNBURDEN, ABILITY_FLARE_BOOST}, - .bodyColor = BODY_COLOR_PURPLE, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_THICK_FAT, ABILITY_GUTS, ABILITY_SHEER_FORCE}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, + .speciesName = _("Makuhita"), + .cryId = CRY_MAKUHITA, + .natDexNum = NATIONAL_DEX_MAKUHITA, + .categoryName = _("Guts"), + .height = 10, + .weight = 864, + .description = COMPOUND_STRING( + "It loves to toughen up its body above all\n" + "else. If you hear quaking rumbles in a cave,\n" + "it is the sound of Makuhita undertaking\n" + "strenuous training."), + .pokemonScale = 256, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Makuhita, 48, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Makuhita, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Makuhita, 56, 56), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(Makuhita), + ICON(Makuhita, 1), + .footprint = gMonFootprint_Makuhita, + LEARNSETS(Makuhita), + .evolutions = EVOLUTION({EVO_LEVEL, 24, SPECIES_HARIYAMA}), }, - [SPECIES_DRIFBLIM] = + [SPECIES_HARIYAMA] = { - .baseHP = 150, - .baseAttack = 80, - .baseDefense = 44, - .baseSpeed = 80, - .baseSpAttack = 90, - .baseSpDefense = 54, - .types = { TYPE_GHOST, TYPE_FLYING}, - .catchRate = 60, - .expYield = 174, + .baseHP = 144, + .baseAttack = 120, + .baseDefense = 60, + .baseSpeed = 50, + .baseSpAttack = 40, + .baseSpDefense = 60, + .types = { TYPE_FIGHTING, TYPE_FIGHTING}, + .catchRate = 200, + .expYield = 166, .evYield_HP = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 30, + .itemRare = ITEM_KINGS_ROCK, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FLUCTUATING, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_AFTERMATH, ABILITY_UNBURDEN, ABILITY_FLARE_BOOST}, - .bodyColor = BODY_COLOR_PURPLE, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_THICK_FAT, ABILITY_GUTS, ABILITY_SHEER_FORCE}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - }, - - [SPECIES_BUNEARY] = + .speciesName = _("Hariyama"), + .cryId = CRY_HARIYAMA, + .natDexNum = NATIONAL_DEX_HARIYAMA, + .categoryName = _("Arm Thrust"), + .height = 23, + .weight = 2538, + .description = COMPOUND_STRING( + "It has the habit of challenging others\n" + "without hesitation to tests of strength.\n" + "It's been known to stand on train tracks\n" + "and stop trains using forearm thrusts."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 343, + .trainerOffset = 7, + FRONT_PIC(Hariyama, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Hariyama, + .frontAnimId = ANIM_ROTATE_UP_TO_SIDES, + BACK_PIC(Hariyama, 64, 56), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(Hariyama), + ICON(Hariyama, 2), + .footprint = gMonFootprint_Hariyama, + LEARNSETS(Hariyama), + }, +#endif //P_FAMILY_MAKUHITA + +#if P_FAMILY_NOSEPASS + [SPECIES_NOSEPASS] = { - .baseHP = 55, - .baseAttack = 66, - .baseDefense = 44, - .baseSpeed = 85, - .baseSpAttack = 44, - .baseSpDefense = 56, - .types = { TYPE_NORMAL, TYPE_NORMAL}, - .catchRate = 190, - .expYield = 70, - .evYield_Speed = 1, + .baseHP = 30, + .baseAttack = 45, + .baseDefense = 135, + .baseSpeed = 30, + .baseSpAttack = 45, + .baseSpDefense = 90, + .types = { TYPE_ROCK, TYPE_ROCK}, + .catchRate = 255, + .expYield = 75, + .evYield_Defense = 1, + .itemRare = ITEM_MAGNET, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 0, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_RUN_AWAY, ABILITY_KLUTZ, ABILITY_LIMBER}, - .bodyColor = BODY_COLOR_BROWN, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_STURDY, ABILITY_MAGNET_PULL, ABILITY_SAND_FORCE}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, - }, - - [SPECIES_LOPUNNY] = + .speciesName = _("Nosepass"), + .cryId = CRY_NOSEPASS, + .natDexNum = NATIONAL_DEX_NOSEPASS, + .categoryName = _("Compass"), + .height = 10, + .weight = 970, + .description = COMPOUND_STRING( + "Its body emits a powerful magnetism.\n" + "It feeds on prey that is pulled in by the\n" + "force. Its magnetism is stronger in cold\n" + "seasons."), + .pokemonScale = 256, + .pokemonOffset = 9, + .trainerScale = 289, + .trainerOffset = 3, + FRONT_PIC(Nosepass, 40, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Nosepass, + .frontAnimId = ANIM_H_SLIDE_SLOW, + BACK_PIC(Nosepass, 56, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(Nosepass), + ICON(Nosepass, 0), + .footprint = gMonFootprint_Nosepass, + LEARNSETS(Nosepass), + .evolutions = EVOLUTION({EVO_MAPSEC, MAPSEC_NEW_MAUVILLE, SPECIES_PROBOPASS}, + {EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_PROBOPASS}), + }, + +#if P_GEN_4_CROSS_EVOS + [SPECIES_PROBOPASS] = { - .baseHP = 65, - .baseAttack = 76, - .baseDefense = 84, - .baseSpeed = 105, - .baseSpAttack = 54, - .baseSpDefense = 96, - .types = { TYPE_NORMAL, TYPE_NORMAL}, + .baseHP = 60, + .baseAttack = 55, + .baseDefense = 145, + .baseSpeed = 40, + .baseSpAttack = 75, + .baseSpDefense = 150, + .types = { TYPE_ROCK, TYPE_STEEL}, .catchRate = 60, - .expYield = 168, - .evYield_Speed = 2, + .expYield = 184, + .evYield_Defense = 1, + .evYield_SpDefense = 2, + .itemRare = ITEM_MAGNET, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 140, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_CUTE_CHARM, ABILITY_KLUTZ, ABILITY_LIMBER}, - .bodyColor = BODY_COLOR_BROWN, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_STURDY, ABILITY_MAGNET_PULL, ABILITY_SAND_FORCE}, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + .speciesName = _("Probopass"), + .cryId = CRY_PROBOPASS, + .natDexNum = NATIONAL_DEX_PROBOPASS, + .categoryName = _("Compass"), + .height = 14, + .weight = 3400, + .description = COMPOUND_STRING( + "It freely controls three units called\n" + "Mini-Noses using magnetic force.\n" + "With them, it can attack its foes from\n" + "three directions."), + .pokemonScale = 265, + .pokemonOffset = 2, + .trainerScale = 262, + .trainerOffset = 0, + FRONT_PIC(Probopass, 56, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Probopass, + .frontAnimId = ANIM_V_SLIDE, + .enemyMonElevation = 6, + BACK_PIC(Probopass, 64, 56), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, + PALETTE(Probopass), + ICON(Probopass, 0), + .footprint = gMonFootprint_Probopass, + LEARNSETS(Probopass), + }, +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_NOSEPASS + +#if P_FAMILY_SKITTY + [SPECIES_SKITTY] = + { + .baseHP = 50, + .baseAttack = 45, + .baseDefense = 45, + .baseSpeed = 50, + .baseSpAttack = 35, + .baseSpDefense = 35, + .types = { TYPE_NORMAL, TYPE_NORMAL}, + .catchRate = 255, + .expYield = 52, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY}, + .abilities = {ABILITY_CUTE_CHARM, ABILITY_NORMALIZE, ABILITY_WONDER_SKIN}, + .bodyColor = BODY_COLOR_PINK, .noFlip = FALSE, + .speciesName = _("Skitty"), + .cryId = CRY_SKITTY, + .natDexNum = NATIONAL_DEX_SKITTY, + .categoryName = _("Kitten"), + .height = 6, + .weight = 110, + .description = COMPOUND_STRING( + "A Skitty's adorably cute behavior makes it\n" + "highly popular. In battle, it makes its tail\n" + "puff out. It threatens foes with a sharp\n" + "growl."), + .pokemonScale = 492, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Skitty, 56, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Skitty, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Skitty, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Skitty), + ICON(Skitty, 0), + .footprint = gMonFootprint_Skitty, + LEARNSETS(Skitty), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_MOON_STONE, SPECIES_DELCATTY}), }, - [SPECIES_MISMAGIUS] = + [SPECIES_DELCATTY] = { - .baseHP = 60, - .baseAttack = 60, - .baseDefense = 60, - .baseSpeed = 105, - .baseSpAttack = 105, - .baseSpDefense = 105, - .types = { TYPE_GHOST, TYPE_GHOST}, - .catchRate = 45, - .expYield = 173, - .evYield_SpAttack = 1, - .evYield_SpDefense = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, - .friendship = 35, + .baseHP = 70, + .baseAttack = 65, + .baseDefense = 65, + .baseSpeed = P_UPDATED_STATS >= GEN_7 ? 90 : 70, + .baseSpAttack = 55, + .baseSpDefense = 55, + .types = { TYPE_NORMAL, TYPE_NORMAL}, + .catchRate = 60, + .expYield = 140, + .evYield_HP = 1, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS }, - .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY}, + .abilities = {ABILITY_CUTE_CHARM, ABILITY_NORMALIZE, ABILITY_WONDER_SKIN}, .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, + .speciesName = _("Delcatty"), + .cryId = CRY_DELCATTY, + .natDexNum = NATIONAL_DEX_DELCATTY, + .categoryName = _("Prim"), + .height = 11, + .weight = 326, + .description = COMPOUND_STRING( + "Rather than keeping a permanent lair,\n" + "it habitually seeks comfortable spots and\n" + "sleeps there. It is nocturnal and becomes\n" + "active at dusk."), + .pokemonScale = 322, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Delcatty, 56, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Delcatty, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Delcatty, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Delcatty), + ICON(Delcatty, 2), + .footprint = gMonFootprint_Delcatty, + LEARNSETS(Delcatty), + }, +#endif //P_FAMILY_SKITTY + +#if P_FAMILY_SABLEYE +#define SABLEYE_MISC_INFO \ + .types = { TYPE_DARK, TYPE_GHOST}, \ + .catchRate = 45, \ + .evYield_Attack = 1, \ + .evYield_Defense = 1, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 25, \ + .friendship = 35, \ + .growthRate = GROWTH_MEDIUM_SLOW, \ + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, \ + .bodyColor = BODY_COLOR_PURPLE, \ + .noFlip = FALSE, \ + .speciesName = _("Sableye"), \ + .natDexNum = NATIONAL_DEX_SABLEYE, \ + .categoryName = _("Darkness"), \ + .height = 5, \ + .footprint = gMonFootprint_Sableye, \ + LEARNSETS(Sableye), \ + .formSpeciesIdTable = sSableyeFormSpeciesIdTable, \ + .formChangeTable = sSableyeFormChangeTable + + [SPECIES_SABLEYE] = + { + SABLEYE_MISC_INFO, + .baseHP = 50, + .baseAttack = 75, + .baseDefense = 75, + .baseSpeed = 50, + .baseSpAttack = 65, + .baseSpDefense = 65, + .expYield = 133, + .itemRare = ITEM_WIDE_LENS, + .abilities = {ABILITY_KEEN_EYE, ABILITY_STALL, ABILITY_PRANKSTER}, + .cryId = CRY_SABLEYE, + .weight = 110, + .description = COMPOUND_STRING( + "It digs branching holes in caves using its\n" + "sharp claws in search of food--raw gems.\n" + "A Sableye lurks in darkness and is seen\n" + "only rarely."), + .pokemonScale = 451, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Sableye, 48, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Sableye, + .frontAnimId = ANIM_GLOW_BLACK, + BACK_PIC(Sableye, 48, 48), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_H_VIBRATE, + PALETTE(Sableye), + ICON(Sableye, 2), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_SABLEYE_MEGA] = + { + SABLEYE_MISC_INFO, + .baseHP = 50, + .baseAttack = 85, + .baseDefense = 125, + .baseSpeed = 20, + .baseSpAttack = 85, + .baseSpDefense = 115, + .expYield = 168, + .abilities = {ABILITY_MAGIC_BOUNCE, ABILITY_MAGIC_BOUNCE, ABILITY_MAGIC_BOUNCE}, + .cryId = CRY_SABLEYE_MEGA, + .weight = 1610, + .description = COMPOUND_STRING( + "Bathed in the energy of Mega Evolution,\n" + "the gemstone on its chest expands, rips\n" + "through its skin, and falls out."), + .pokemonScale = 451, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(SableyeMega, 64, 64), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_SableyeMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(SableyeMega, 64, 64), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_H_VIBRATE, + PALETTE(SableyeMega), + ICON(SableyeMega, 2), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_SABLEYE + +#if P_FAMILY_MAWILE +#if P_UPDATED_TYPES >= GEN_6 + #define MAWILE_TYPES { TYPE_STEEL, TYPE_FAIRY } +#else + #define MAWILE_TYPES { TYPE_STEEL, TYPE_STEEL } +#endif + +#define MAWILE_MISC_INFO \ + .types = MAWILE_TYPES, \ + .catchRate = 45, \ + .evYield_Attack = 1, \ + .evYield_Defense = 1, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_FAST, \ + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY}, \ + .bodyColor = BODY_COLOR_BLACK, \ + .noFlip = FALSE, \ + .speciesName = _("Mawile"), \ + .natDexNum = NATIONAL_DEX_MAWILE, \ + .categoryName = _("Deceiver"), \ + .footprint = gMonFootprint_Mawile, \ + LEARNSETS(Mawile), \ + .formSpeciesIdTable = sMawileFormSpeciesIdTable, \ + .formChangeTable = sMawileFormChangeTable + + [SPECIES_MAWILE] = + { + MAWILE_MISC_INFO, + .baseHP = 50, + .baseAttack = 85, + .baseDefense = 85, + .baseSpeed = 50, + .baseSpAttack = 55, + .baseSpDefense = 55, + .expYield = 133, + .itemRare = ITEM_IRON_BALL, + .abilities = {ABILITY_HYPER_CUTTER, ABILITY_INTIMIDATE, ABILITY_SHEER_FORCE}, + .cryId = CRY_MAWILE, + .height = 6, + .weight = 115, + .description = COMPOUND_STRING( + "Its giant jaws are actually steel horns\n" + "that transformed. It fools foes into\n" + "complacency with its adorable gestures,\n" + "then chomps them with its huge jaws."), + .pokemonScale = 466, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Mawile, 64, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Mawile, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Mawile, 64, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Mawile), + ICON(Mawile, 2), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_MAWILE_MEGA] = + { + MAWILE_MISC_INFO, + .baseHP = 50, + .baseAttack = 105, + .baseDefense = 125, + .baseSpeed = 50, + .baseSpAttack = 55, + .baseSpDefense = 95, + .expYield = 168, + .abilities = {ABILITY_HUGE_POWER, ABILITY_HUGE_POWER, ABILITY_HUGE_POWER}, + .cryId = CRY_MAWILE_MEGA, + .height = 10, + .weight = 235, + .description = COMPOUND_STRING( + "Its two sets of jaws thrash about\n" + "violently as if they each had a will of\n" + "their own. One gnash from them can turn a\n" + "boulder to dust."), + .pokemonScale = 466, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(MawileMega, 64, 64), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_MawileMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(MawileMega, 64, 64), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(MawileMega), + ICON(MawileMega, 0), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_MAWILE + +#if P_FAMILY_ARON + [SPECIES_ARON] = + { + .baseHP = 50, + .baseAttack = 70, + .baseDefense = 100, + .baseSpeed = 30, + .baseSpAttack = 40, + .baseSpDefense = 40, + .types = { TYPE_STEEL, TYPE_ROCK }, + .catchRate = 180, + .expYield = 66, + .evYield_Defense = 1, + .itemRare = ITEM_HARD_STONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 35, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, + .abilities = {ABILITY_STURDY, ABILITY_ROCK_HEAD, ABILITY_HEAVY_METAL}, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + .speciesName = _("Aron"), + .cryId = CRY_ARON, + .natDexNum = NATIONAL_DEX_ARON, + .categoryName = _("Iron Armor"), + .height = 4, + .weight = 600, + .description = COMPOUND_STRING( + "A Pokémon that is clad in steel armor.\n" + "A new suit of armor is made when it evolves.\n" + "The old, discarded armor is salvaged as\n" + "metal for making iron products."), + .pokemonScale = 419, + .pokemonOffset = 23, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Aron, 32, 40), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Aron, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + BACK_PIC(Aron, 48, 40), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Aron), + ICON(Aron, 2), + .footprint = gMonFootprint_Aron, + LEARNSETS(Aron), + .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_LAIRON}), }, - [SPECIES_HONCHKROW] = + [SPECIES_LAIRON] = { - .baseHP = 100, - .baseAttack = 125, - .baseDefense = 52, - .baseSpeed = 71, - .baseSpAttack = 105, - .baseSpDefense = 52, - .types = { TYPE_DARK, TYPE_FLYING}, - .catchRate = 30, - .expYield = 177, - .evYield_Attack = 2, + .baseHP = 60, + .baseAttack = 90, + .baseDefense = 140, + .baseSpeed = 40, + .baseSpAttack = 50, + .baseSpDefense = 50, + .types = { TYPE_STEEL, TYPE_ROCK }, + .catchRate = 90, + .expYield = 151, + .evYield_Defense = 2, + .itemRare = ITEM_HARD_STONE, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .eggCycles = 35, .friendship = 35, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_INSOMNIA, ABILITY_SUPER_LUCK, ABILITY_MOXIE}, - .bodyColor = BODY_COLOR_BLACK, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, + .abilities = {ABILITY_STURDY, ABILITY_ROCK_HEAD, ABILITY_HEAVY_METAL}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, - }, + .speciesName = _("Lairon"), + .cryId = CRY_LAIRON, + .natDexNum = NATIONAL_DEX_LAIRON, + .categoryName = _("Iron Armor"), + .height = 9, + .weight = 1200, + .description = COMPOUND_STRING( + "When two Lairon meet in the wild, they\n" + "fight for territory by bashing into each\n" + "other with their steel bodies. The sound\n" + "of their collision carries for miles."), + .pokemonScale = 275, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Lairon, 56, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Lairon, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Lairon, 64, 40), + .backPicYOffset = 15, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Lairon), + ICON(Lairon, 2), + .footprint = gMonFootprint_Lairon, + LEARNSETS(Lairon), + .evolutions = EVOLUTION({EVO_LEVEL, 42, SPECIES_AGGRON}), + }, + +#define AGGRON_MISC_INFO \ + .catchRate = 45, \ + .evYield_Defense = 3, \ + .itemRare = ITEM_HARD_STONE, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 35, \ + .friendship = 35, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, \ + .bodyColor = BODY_COLOR_GRAY, \ + .noFlip = FALSE, \ + .speciesName = _("Aggron"), \ + .natDexNum = NATIONAL_DEX_AGGRON, \ + .categoryName = _("Iron Armor"), \ + .footprint = gMonFootprint_Aggron, \ + LEARNSETS(Aggron), \ + .formSpeciesIdTable = sAggronFormSpeciesIdTable, \ + .formChangeTable = sAggronFormChangeTable - [SPECIES_GLAMEOW] = + [SPECIES_AGGRON] = { - .baseHP = 49, - .baseAttack = 55, - .baseDefense = 42, - .baseSpeed = 85, - .baseSpAttack = 42, - .baseSpDefense = 37, - .types = { TYPE_NORMAL, TYPE_NORMAL}, - .catchRate = 190, - .expYield = 62, + AGGRON_MISC_INFO, + .baseHP = 70, + .baseAttack = 110, + .baseDefense = 180, + .baseSpeed = 50, + .baseSpAttack = 60, + .baseSpDefense = 60, + .types = { TYPE_STEEL, TYPE_ROCK }, + .expYield = 239, + .abilities = {ABILITY_STURDY, ABILITY_ROCK_HEAD, ABILITY_HEAVY_METAL}, + .cryId = CRY_AGGRON, + .height = 21, + .weight = 3600, + .description = COMPOUND_STRING( + "Its iron horns grow longer a little at\n" + "a time. They are used to determine the\n" + "Aggron's age. The gouges in its armor are\n" + "worn with pride as mementos from battles."), + .pokemonScale = 256, + .pokemonOffset = -1, + .trainerScale = 350, + .trainerOffset = 6, + FRONT_PIC(Aggron, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Aggron, + .frontAnimId = ANIM_V_SHAKE_TWICE, + BACK_PIC(Aggron, 64, 56), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(Aggron), + ICON(Aggron, 2), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_AGGRON_MEGA] = + { + AGGRON_MISC_INFO, + .baseHP = 70, + .baseAttack = 140, + .baseDefense = 230, + .baseSpeed = 50, + .baseSpAttack = 60, + .baseSpDefense = 80, + .types = { TYPE_STEEL, TYPE_STEEL}, + .expYield = 284, + .abilities = {ABILITY_FILTER, ABILITY_FILTER, ABILITY_FILTER}, + .cryId = CRY_AGGRON_MEGA, + .height = 22, + .weight = 3950, + .description = COMPOUND_STRING( + "When Aggron Mega Evolves into\n" + "Mega Aggron, the destructive ability of\n" + "its fearsome horns can turn a steel-clad\n" + "tank into so much scrap metal."), + .pokemonScale = 256, + .pokemonOffset = -1, + .trainerScale = 350, + .trainerOffset = 6, + FRONT_PIC(AggronMega, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_AggronMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(AggronMega, 64, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(AggronMega), + ICON(AggronMega, 2), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_ARON + +#if P_FAMILY_MEDITITE + [SPECIES_MEDITITE] = + { + .baseHP = 30, + .baseAttack = 40, + .baseDefense = 55, + .baseSpeed = 60, + .baseSpAttack = 40, + .baseSpDefense = 55, + .types = { TYPE_FIGHTING, TYPE_PSYCHIC}, + .catchRate = 180, + .expYield = 56, .evYield_Speed = 1, - .genderRatio = PERCENT_FEMALE(75), + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_LIMBER, ABILITY_OWN_TEMPO, ABILITY_KEEN_EYE}, - .bodyColor = BODY_COLOR_GRAY, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_PURE_POWER, ABILITY_NONE, ABILITY_TELEPATHY}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - }, + .speciesName = _("Meditite"), + .cryId = CRY_MEDITITE, + .natDexNum = NATIONAL_DEX_MEDITITE, + .categoryName = _("Meditate"), + .height = 6, + .weight = 112, + .description = COMPOUND_STRING( + "It continually meditates for hours every\n" + "day. As a result of rigorous and dedicated\n" + "yoga training, it has tempered its\n" + "spiritual power so much it can fly."), + .pokemonScale = 465, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Meditite, 48, 48), + FRONT_PIC_FEMALE(Meditite, 48, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Meditite, + .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES, + BACK_PIC(Meditite, 48, 48), + BACK_PIC_FEMALE(Meditite, 48, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(Meditite), + ICON(Meditite, 0), + .footprint = gMonFootprint_Meditite, + LEARNSETS(Meditite), + .evolutions = EVOLUTION({EVO_LEVEL, 37, SPECIES_MEDICHAM}), + }, + +#define MEDICHAM_MISC_INFO \ + .types = { TYPE_FIGHTING, TYPE_PSYCHIC}, \ + .catchRate = 90, \ + .evYield_Speed = 2, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, \ + .bodyColor = BODY_COLOR_RED, \ + .noFlip = FALSE, \ + .speciesName = _("Medicham"), \ + .natDexNum = NATIONAL_DEX_MEDICHAM, \ + .categoryName = _("Meditate"), \ + .height = 13, \ + .weight = 315, \ + .pokemonScale = 298, \ + .pokemonOffset = 5, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Medicham, \ + LEARNSETS(Medicham), \ + .formSpeciesIdTable = sMedichamFormSpeciesIdTable, \ + .formChangeTable = sMedichamFormChangeTable - [SPECIES_PURUGLY] = + [SPECIES_MEDICHAM] = { - .baseHP = 71, - .baseAttack = 82, - .baseDefense = 64, - .baseSpeed = 112, - .baseSpAttack = 64, - .baseSpDefense = 59, - .types = { TYPE_NORMAL, TYPE_NORMAL}, - .catchRate = 75, - .expYield = 158, - .evYield_Speed = 2, - .genderRatio = PERCENT_FEMALE(75), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_THICK_FAT, ABILITY_OWN_TEMPO, ABILITY_DEFIANT}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, - - [SPECIES_CHINGLING] = + MEDICHAM_MISC_INFO, + .baseHP = 60, + .baseAttack = 60, + .baseDefense = 75, + .baseSpeed = 80, + .baseSpAttack = 60, + .baseSpDefense = 75, + .expYield = 144, + .abilities = {ABILITY_PURE_POWER, ABILITY_NONE, ABILITY_TELEPATHY}, + .cryId = CRY_MEDICHAM, + .description = COMPOUND_STRING( + "Through crushingly harsh yoga training, it\n" + "gained the power to foretell its foe's\n" + "actions. It battles with elegant, dance-\n" + "like movement."), + FRONT_PIC(Medicham, 40, 64), + FRONT_PIC_FEMALE(Medicham, 40, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Medicham, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + BACK_PIC(Medicham, 56, 64), + BACK_PIC_FEMALE(Medicham, 56, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(Medicham), + ICON(Medicham, 0), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_MEDICHAM_MEGA] = { - .baseHP = 45, - .baseAttack = 30, - .baseDefense = 50, - .baseSpeed = 45, + MEDICHAM_MISC_INFO, + .baseHP = 60, + .baseAttack = 100, + .baseDefense = 85, + .baseSpeed = 100, + .baseSpAttack = 80, + .baseSpDefense = 85, + .expYield = 179, + .abilities = {ABILITY_PURE_POWER, ABILITY_PURE_POWER, ABILITY_PURE_POWER}, + .cryId = CRY_MEDICHAM_MEGA, + .description = COMPOUND_STRING( + "It uses its amped-up willpower to create\n" + "additional arms for itself. The more it has\n" + "trained its spirit, the more realistic and\n" + "dexterous these self-created arms become."), + FRONT_PIC(MedichamMega, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_MedichamMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(MedichamMega, 64, 64), + .backPicYOffset = 1, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(MedichamMega), + ICON(MedichamMega, 0), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_MEDITITE + +#if P_FAMILY_ELECTRIKE + [SPECIES_ELECTRIKE] = + { + .baseHP = 40, + .baseAttack = 45, + .baseDefense = 40, + .baseSpeed = 65, .baseSpAttack = 65, - .baseSpDefense = 50, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, + .baseSpDefense = 40, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, .catchRate = 120, - .expYield = 57, - .evYield_SpAttack = 1, - .itemRare = ITEM_CLEANSE_TAG, + .expYield = 59, + .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_YELLOW, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_STATIC, ABILITY_LIGHTNING_ROD, ABILITY_MINUS}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - }, + .speciesName = _("Electrike"), + .cryId = CRY_ELECTRIKE, + .natDexNum = NATIONAL_DEX_ELECTRIKE, + .categoryName = _("Lightning"), + .height = 6, + .weight = 152, + .description = COMPOUND_STRING( + "It generates electricity using friction\n" + "from the atmosphere. In seasons with\n" + "especially arid air, its entire body blazes\n" + "with violent showers of sparks."), + .pokemonScale = 290, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Electrike, 48, 40), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Electrike, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Electrike, 56, 40), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Electrike), + ICON(Electrike, 1), + .footprint = gMonFootprint_Electrike, + LEARNSETS(Electrike), + .evolutions = EVOLUTION({EVO_LEVEL, 26, SPECIES_MANECTRIC}), + }, + +#define MANECTRIC_MISC_INFO \ + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, \ + .catchRate = 45, \ + .evYield_Speed = 2, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, \ + .bodyColor = BODY_COLOR_YELLOW, \ + .noFlip = FALSE, \ + .speciesName = _("Manectric"), \ + .natDexNum = NATIONAL_DEX_MANECTRIC, \ + .categoryName = _("Discharge"), \ + .footprint = gMonFootprint_Manectric, \ + LEARNSETS(Manectric), \ + .formSpeciesIdTable = sManectricFormSpeciesIdTable, \ + .formChangeTable = sManectricFormChangeTable - [SPECIES_STUNKY] = + [SPECIES_MANECTRIC] = { - .baseHP = 63, - .baseAttack = 63, - .baseDefense = 47, - .baseSpeed = 74, - .baseSpAttack = 41, - .baseSpDefense = 41, - .types = { TYPE_POISON, TYPE_DARK}, - .catchRate = 225, - .expYield = 66, + MANECTRIC_MISC_INFO, + .baseHP = 70, + .baseAttack = 75, + .baseDefense = 60, + .baseSpeed = 105, + .baseSpAttack = 105, + .baseSpDefense = 60, + .expYield = 166, + .abilities = {ABILITY_STATIC, ABILITY_LIGHTNING_ROD, ABILITY_MINUS}, + .cryId = CRY_MANECTRIC, + .height = 15, + .weight = 402, + .description = COMPOUND_STRING( + "Because lightning falls in their vicinities,\n" + "Manectric were thought to have been born\n" + "from lightning. In battle, they create\n" + "thunderclouds."), + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Manectric, 56, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Manectric, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Manectric, 56, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Manectric), + ICON(Manectric, 0), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_MANECTRIC_MEGA] = + { + MANECTRIC_MISC_INFO, + .baseHP = 70, + .baseAttack = 75, + .baseDefense = 80, + .baseSpeed = 135, + .baseSpAttack = 135, + .baseSpDefense = 80, + .expYield = 201, + .abilities = {ABILITY_INTIMIDATE, ABILITY_INTIMIDATE, ABILITY_INTIMIDATE}, + .cryId = CRY_MANECTRIC_MEGA, + .height = 18, + .weight = 440, + .description = COMPOUND_STRING( + "Too much electricity has built up in its\n" + "body, irritating Manectric. Its explosive\n" + "speed is equal to that of a lightning bolt."), + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(ManectricMega, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_ManectricMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(ManectricMega, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, + PALETTE(ManectricMega), + ICON(ManectricMega, 0), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_ELECTRIKE + +#if P_FAMILY_PLUSLE + [SPECIES_PLUSLE] = + { + .baseHP = 60, + .baseAttack = 50, + .baseDefense = 40, + .baseSpeed = 95, + .baseSpAttack = 85, + .baseSpDefense = 75, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, + .catchRate = 200, + .expYield = 142, .evYield_Speed = 1, + .itemRare = ITEM_CELL_BATTERY, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_STENCH, ABILITY_AFTERMATH, ABILITY_KEEN_EYE}, - .bodyColor = BODY_COLOR_PURPLE, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, + .abilities = {ABILITY_PLUS, ABILITY_NONE, ABILITY_LIGHTNING_ROD}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, - }, - - [SPECIES_SKUNTANK] = + .speciesName = _("Plusle"), + .cryId = CRY_PLUSLE, + .natDexNum = NATIONAL_DEX_PLUSLE, + .categoryName = _("Cheering"), + .height = 4, + .weight = 42, + .description = COMPOUND_STRING( + "It has the trait of cheering on its fellow\n" + "Pokémon. By shorting out the electricity\n" + "it releases from its paws, it creates\n" + "pom-poms for cheering."), + .pokemonScale = 515, + .pokemonOffset = -9, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Plusle, 40, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Plusle, + .frontAnimId = ANIM_V_JUMPS_H_JUMPS, + BACK_PIC(Plusle, 56, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Plusle), + ICON(Plusle, 0), + .footprint = gMonFootprint_Plusle, + LEARNSETS(Plusle), + }, +#endif //P_FAMILY_PLUSLE + +#if P_FAMILY_MINUN + [SPECIES_MINUN] = { - .baseHP = 103, - .baseAttack = 93, - .baseDefense = 67, - .baseSpeed = 84, - .baseSpAttack = 71, - .baseSpDefense = 61, - .types = { TYPE_POISON, TYPE_DARK}, - .catchRate = 60, - .expYield = 168, - .evYield_HP = 2, + .baseHP = 60, + .baseAttack = 40, + .baseDefense = 50, + .baseSpeed = 95, + .baseSpAttack = 75, + .baseSpDefense = 85, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, + .catchRate = 200, + .expYield = 142, + .evYield_Speed = 1, + .itemRare = ITEM_CELL_BATTERY, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_STENCH, ABILITY_AFTERMATH, ABILITY_KEEN_EYE}, - .bodyColor = BODY_COLOR_PURPLE, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, + .abilities = {ABILITY_MINUS, ABILITY_NONE, ABILITY_VOLT_ABSORB}, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + .speciesName = _("Minun"), + .cryId = CRY_MINUN, + .natDexNum = NATIONAL_DEX_MINUN, + .categoryName = _("Cheering"), + .height = 4, + .weight = 42, + .description = COMPOUND_STRING( + "At a meeting of Pokémon academics, it was\n" + "announced that simultaneous exposure to\n" + "electricity from a Plusle and Minun will\n" + "promote circulation and boost vitality."), + .pokemonScale = 512, + .pokemonOffset = -7, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Minun, 40, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Minun, + .frontAnimId = ANIM_V_JUMPS_H_JUMPS, + BACK_PIC(Minun, 48, 64), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Minun), + ICON(Minun, 0), + .footprint = gMonFootprint_Minun, + LEARNSETS(Minun), + }, +#endif //P_FAMILY_MINUN + +#if P_FAMILY_VOLBEAT_ILLUMISE + [SPECIES_VOLBEAT] = + { + .baseHP = 65, + .baseAttack = 73, + .baseSpeed = 85, + .baseSpAttack = 47, + #if P_UPDATED_STATS >= GEN_7 + .baseDefense = 75, + .baseSpDefense = 85, + #else + .baseDefense = 55, + .baseSpDefense = 75, + #endif + .types = { TYPE_BUG, TYPE_BUG}, + .catchRate = 150, + .expYield = 151, + .evYield_Speed = 1, + .itemRare = ITEM_BRIGHT_POWDER, + .genderRatio = MON_MALE, + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_ERRATIC, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_ILLUMINATE, ABILITY_SWARM, ABILITY_PRANKSTER}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, + .speciesName = _("Volbeat"), + .cryId = CRY_VOLBEAT, + .natDexNum = NATIONAL_DEX_VOLBEAT, + .categoryName = _("Firefly"), + .height = 7, + .weight = 177, + .description = COMPOUND_STRING( + "With their taillights lit, Volbeat fly in\n" + "a swarm, drawing geometric designs in the\n" + "night sky. They move their nests if their\n" + "pond water becomes dirty."), + .pokemonScale = 442, + .pokemonOffset = 16, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Volbeat, 48, 56), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Volbeat, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Volbeat, 48, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Volbeat), + ICON(Volbeat, 0), + .footprint = gMonFootprint_Volbeat, + LEARNSETS(Volbeat), }, - [SPECIES_BRONZOR] = + [SPECIES_ILLUMISE] = + { + .baseHP = 65, + .baseAttack = 47, + .baseSpeed = 85, + .baseSpAttack = 73, + #if P_UPDATED_STATS >= GEN_7 + .baseDefense = 75, + .baseSpDefense = 85, + #else + .baseDefense = 55, + .baseSpDefense = 75, + #endif + .types = { TYPE_BUG, TYPE_BUG}, + .catchRate = 150, + .expYield = 151, + .evYield_Speed = 1, + .itemRare = ITEM_BRIGHT_POWDER, + .genderRatio = MON_FEMALE, + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FLUCTUATING, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_OBLIVIOUS, ABILITY_TINTED_LENS, ABILITY_PRANKSTER}, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + .speciesName = _("Illumise"), + .cryId = CRY_ILLUMISE, + .natDexNum = NATIONAL_DEX_ILLUMISE, + .categoryName = _("Firefly"), + .height = 6, + .weight = 177, + .description = COMPOUND_STRING( + "A nocturnal Pokémon that becomes active\n" + "upon nightfall. It leads a Volbeat swarm\n" + "to draw patterns in the night sky. Over 200\n" + "different patterns have been confirmed."), + .pokemonScale = 572, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Illumise, 40, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Illumise, + .frontAnimId = ANIM_RISING_WOBBLE, + BACK_PIC(Illumise, 48, 56), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Illumise), + ICON(Illumise, 2), + .footprint = gMonFootprint_Illumise, + LEARNSETS(Illumise), + }, +#endif //P_FAMILY_VOLBEAT_ILLUMISE + +#if P_FAMILY_ROSELIA +#if P_GEN_4_CROSS_EVOS + [SPECIES_BUDEW] = { - .baseHP = 57, - .baseAttack = 24, - .baseDefense = 86, - .baseSpeed = 23, - .baseSpAttack = 24, - .baseSpDefense = 86, - .types = { TYPE_STEEL, TYPE_PSYCHIC}, + .baseHP = 40, + .baseAttack = 30, + .baseDefense = 35, + .baseSpeed = 55, + .baseSpAttack = 50, + .baseSpDefense = 70, + .types = { TYPE_GRASS, TYPE_POISON}, .catchRate = 255, - .expYield = 60, - .evYield_Defense = 1, - .itemRare = ITEM_METAL_COAT, - .genderRatio = MON_GENDERLESS, + .expYield = 56, + .evYield_SpAttack = 1, + .itemRare = ITEM_POISON_BARB, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_LEVITATE, ABILITY_HEATPROOF, ABILITY_HEAVY_METAL}, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_NATURAL_CURE, ABILITY_POISON_POINT, ABILITY_LEAF_GUARD}, .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, + .noFlip = TRUE, + .speciesName = _("Budew"), + .cryId = CRY_BUDEW, + .natDexNum = NATIONAL_DEX_BUDEW, + .categoryName = _("Bud"), + .height = 2, + .weight = 12, + .description = COMPOUND_STRING( + "Over the winter, it closes its bud and\n" + "endures the cold. Sensitive to changing\n" + "temperature, the bud is said to bloom\n" + "when it feels the sun's warm touch."), + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Budew, 32, 40), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Budew, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + BACK_PIC(Budew, 40, 56), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Budew), + ICON(Budew, 1), + .footprint = gMonFootprint_Budew, + LEARNSETS(Budew), + .evolutions = EVOLUTION({EVO_FRIENDSHIP_DAY, 0, SPECIES_ROSELIA}), + }, +#endif //P_GEN_4_CROSS_EVOS - [SPECIES_BRONZONG] = + [SPECIES_ROSELIA] = { - .baseHP = 67, - .baseAttack = 89, - .baseDefense = 116, - .baseSpeed = 33, - .baseSpAttack = 79, - .baseSpDefense = 116, - .types = { TYPE_STEEL, TYPE_PSYCHIC}, - .catchRate = 90, - .expYield = 175, - .evYield_Defense = 1, - .evYield_SpDefense = 1, - .itemRare = ITEM_METAL_COAT, - .genderRatio = MON_GENDERLESS, + .baseHP = 50, + .baseAttack = 60, + .baseDefense = 45, + .baseSpeed = 65, + .baseSpAttack = 100, + .baseSpDefense = 80, + .types = { TYPE_GRASS, TYPE_POISON}, + .catchRate = 150, + .expYield = 140, + .evYield_SpAttack = 2, + .itemRare = ITEM_POISON_BARB, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_LEVITATE, ABILITY_HEATPROOF, ABILITY_HEAVY_METAL}, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS}, + .abilities = {ABILITY_NATURAL_CURE, ABILITY_POISON_POINT, ABILITY_LEAF_GUARD}, .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, - - [SPECIES_BONSLY] = + .noFlip = TRUE, + .speciesName = _("Roselia"), + .cryId = CRY_ROSELIA, + .natDexNum = NATIONAL_DEX_ROSELIA, + .categoryName = _("Thorn"), + .height = 3, + .weight = 20, + .description = COMPOUND_STRING( + "A Roselia that drinks nutritionally rich\n" + "springwater blooms with lovely flowers.\n" + "The fragrance of its flowers has the\n" + "effect of making its foes careless."), + .pokemonScale = 677, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Roselia, 56, 48), + FRONT_PIC_FEMALE(Roselia, 56, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Roselia, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + BACK_PIC(Roselia, 64, 56), + BACK_PIC_FEMALE(Roselia, 64, 56), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_SHAKE_GLOW_GREEN, + PALETTE(Roselia), + ICON(Roselia, 4), + .footprint = gMonFootprint_Roselia, + LEARNSETS(Roselia), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_SHINY_STONE, SPECIES_ROSERADE}), + }, + +#if P_GEN_4_CROSS_EVOS + [SPECIES_ROSERADE] = { - .baseHP = 50, - .baseAttack = 80, - .baseDefense = 95, - .baseSpeed = 10, - .baseSpAttack = 10, - .baseSpDefense = 45, - .types = { TYPE_ROCK, TYPE_ROCK}, - .catchRate = 255, - .expYield = 58, - .evYield_Defense = 1, + .baseHP = 60, + .baseAttack = 70, + .baseDefense = P_UPDATED_STATS >= GEN_6 ? 65 : 55, + .baseSpeed = 90, + .baseSpAttack = 125, + .baseSpDefense = 105, + .types = { TYPE_GRASS, TYPE_POISON}, + .catchRate = 75, + .expYield = 232, + .evYield_SpAttack = 3, + .itemRare = ITEM_POISON_BARB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_STURDY, ABILITY_ROCK_HEAD, ABILITY_RATTLED}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_MIME_JR] = + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS}, + .abilities = {ABILITY_NATURAL_CURE, ABILITY_POISON_POINT, ABILITY_TECHNICIAN}, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = TRUE, + .speciesName = _("Roserade"), + .cryId = CRY_ROSERADE, + .natDexNum = NATIONAL_DEX_ROSERADE, + .categoryName = _("Bouquet"), + .height = 9, + .weight = 145, + .description = COMPOUND_STRING( + "Its sweet aroma attracts prey.\n" + "With the movements of a dancer,\n" + "it strikes with whips that are densely\n" + "lined with poison thorns."), + .pokemonScale = 338, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Roserade, 48, 56), + FRONT_PIC_FEMALE(Roserade, 48, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Roserade, + .frontAnimId = ANIM_H_VIBRATE, + BACK_PIC(Roserade, 64, 56), + BACK_PIC_FEMALE(Roserade, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(Roserade), + ICON(Roserade, 0), + .footprint = gMonFootprint_Roserade, + LEARNSETS(Roserade), + }, +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_ROSELIA + +#if P_FAMILY_GULPIN + [SPECIES_GULPIN] = { - .baseHP = 20, - .baseAttack = 25, - .baseDefense = 45, - .baseSpeed = 60, - .baseSpAttack = 70, - .baseSpDefense = 90, - #if P_UPDATED_TYPES >= GEN_6 - .types = { TYPE_PSYCHIC, TYPE_FAIRY}, - #else - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - #endif - .catchRate = 145, - .expYield = 62, - .evYield_SpDefense = 1, + .baseHP = 70, + .baseAttack = 43, + .baseDefense = 53, + .baseSpeed = 40, + .baseSpAttack = 43, + .baseSpDefense = 53, + .types = { TYPE_POISON, TYPE_POISON}, + .catchRate = 225, + .expYield = 60, + .evYield_HP = 1, + .itemCommon = ITEM_ORAN_BERRY, + .itemRare = ITEM_SITRUS_BERRY, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_SOUNDPROOF, ABILITY_FILTER, ABILITY_TECHNICIAN}, - .bodyColor = BODY_COLOR_PINK, + .growthRate = GROWTH_FLUCTUATING, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, + .abilities = {ABILITY_LIQUID_OOZE, ABILITY_STICKY_HOLD, ABILITY_GLUTTONY}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, + .speciesName = _("Gulpin"), + .cryId = CRY_GULPIN, + .natDexNum = NATIONAL_DEX_GULPIN, + .categoryName = _("Stomach"), + .height = 4, + .weight = 103, + .description = COMPOUND_STRING( + "This Pokémon's stomach fluid can even\n" + "digest scrap iron. In one gulp, it can\n" + "swallow something that is as large as\n" + "itself."), + .pokemonScale = 593, + .pokemonOffset = 23, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Gulpin, 40, 48), + FRONT_PIC_FEMALE(Gulpin, 40, 48), + .frontPicYOffset = 15, + .frontAnimFrames = sAnims_Gulpin, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Gulpin, 56, 48), + BACK_PIC_FEMALE(Gulpin, 56, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_V_STRETCH, + PALETTE(Gulpin), + ICON(Gulpin, 1), + .footprint = gMonFootprint_Gulpin, + LEARNSETS(Gulpin), + .evolutions = EVOLUTION({EVO_LEVEL, 26, SPECIES_SWALOT}), }, - [SPECIES_HAPPINY] = + [SPECIES_SWALOT] = { .baseHP = 100, - .baseAttack = 5, - .baseDefense = 5, - .baseSpeed = 30, - .baseSpAttack = 15, - .baseSpDefense = 65, - .types = { TYPE_NORMAL, TYPE_NORMAL}, - .catchRate = 130, - .expYield = 110, - .evYield_HP = 1, - .itemCommon = ITEM_OVAL_STONE, - .genderRatio = MON_FEMALE, - .eggCycles = 40, - .friendship = 140, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_NATURAL_CURE, ABILITY_SERENE_GRACE, ABILITY_FRIEND_GUARD}, - .bodyColor = BODY_COLOR_PINK, + .baseAttack = 73, + .baseDefense = 83, + .baseSpeed = 55, + .baseSpAttack = 73, + .baseSpDefense = 83, + .types = { TYPE_POISON, TYPE_POISON}, + .catchRate = 75, + .expYield = 163, + .evYield_HP = 2, + .itemCommon = ITEM_ORAN_BERRY, + .itemRare = ITEM_SITRUS_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FLUCTUATING, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, + .abilities = {ABILITY_LIQUID_OOZE, ABILITY_STICKY_HOLD, ABILITY_GLUTTONY}, + .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, - }, - - [SPECIES_CHATOT] = + .speciesName = _("Swalot"), + .cryId = CRY_SWALOT, + .natDexNum = NATIONAL_DEX_SWALOT, + .categoryName = _("Poison Bag"), + .height = 17, + .weight = 800, + .description = COMPOUND_STRING( + "Its powerful stomach acid is capable of\n" + "digesting almost anything. The one thing\n" + "in the whole world a Swalot can't digest is\n" + "its own stomach."), + .pokemonScale = 256, + .pokemonOffset = 6, + .trainerScale = 345, + .trainerOffset = 3, + FRONT_PIC(Swalot, 56, 56), + FRONT_PIC_FEMALE(Swalot, 56, 56), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Swalot, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + BACK_PIC(Swalot, 64, 64), + BACK_PIC_FEMALE(Swalot, 64, 64), + .backPicYOffset = 2, + .backAnimId = BACK_ANIM_V_STRETCH, + PALETTE(Swalot), + ICON(Swalot, 2), + .footprint = gMonFootprint_Swalot, + LEARNSETS(Swalot), + }, +#endif //P_FAMILY_GULPIN + +#if P_FAMILY_CARVANHA + [SPECIES_CARVANHA] = { - .baseHP = 76, - .baseAttack = 65, - .baseDefense = 45, - .baseSpeed = 91, - .baseSpAttack = 92, - .baseSpDefense = 42, - .types = { TYPE_NORMAL, TYPE_FLYING}, - .catchRate = 30, - .expYield = 144, + .baseHP = 45, + .baseAttack = 90, + .baseDefense = 20, + .baseSpeed = 65, + .baseSpAttack = 65, + .baseSpDefense = 20, + .types = { TYPE_WATER, TYPE_DARK}, + .catchRate = 225, + .expYield = 61, .evYield_Attack = 1, - .itemRare = ITEM_METRONOME, + .itemRare = ITEM_DEEP_SEA_TOOTH, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = 35, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_KEEN_EYE, ABILITY_TANGLED_FEET, ABILITY_BIG_PECKS}, - .bodyColor = BODY_COLOR_BLACK, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, + .abilities = {ABILITY_ROUGH_SKIN, ABILITY_NONE, ABILITY_SPEED_BOOST}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, - }, + .speciesName = _("Carvanha"), + .cryId = CRY_CARVANHA, + .natDexNum = NATIONAL_DEX_CARVANHA, + .categoryName = _("Savage"), + .height = 8, + .weight = 208, + .description = COMPOUND_STRING( + "Carvanha attack ships in swarms, making\n" + "them sink. Although it is said to be a very\n" + "vicious Pokémon, it timidly flees as soon\n" + "as it finds itself alone."), + .pokemonScale = 362, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Carvanha, 48, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Carvanha, + .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW, + BACK_PIC(Carvanha, 64, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_H_SPRING_REPEATED, + PALETTE(Carvanha), + ICON(Carvanha, 0), + .footprint = gMonFootprint_Carvanha, + LEARNSETS(Carvanha), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_SHARPEDO}), + }, + +#define SHARPEDO_MISC_INFO \ + .types = { TYPE_WATER, TYPE_DARK}, \ + .catchRate = 60, \ + .evYield_Attack = 2, \ + .itemRare = ITEM_DEEP_SEA_TOOTH, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = 35, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, \ + .bodyColor = BODY_COLOR_BLUE, \ + .noFlip = FALSE, \ + .speciesName = _("Sharpedo"), \ + .natDexNum = NATIONAL_DEX_SHARPEDO, \ + .categoryName = _("Brutal"), \ + .footprint = gMonFootprint_Sharpedo, \ + LEARNSETS(Sharpedo), \ + .formSpeciesIdTable = sSharpedoFormSpeciesIdTable, \ + .formChangeTable = sSharpedoFormChangeTable - [SPECIES_SPIRITOMB] = + [SPECIES_SHARPEDO] = { - .baseHP = 50, - .baseAttack = 92, - .baseDefense = 108, - .baseSpeed = 35, - .baseSpAttack = 92, - .baseSpDefense = 108, - .types = { TYPE_GHOST, TYPE_DARK}, - .catchRate = 100, - .expYield = 170, - .evYield_Defense = 1, - .evYield_SpDefense = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 30, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_INFILTRATOR}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - }, - - [SPECIES_GIBLE] = + SHARPEDO_MISC_INFO, + .baseHP = 70, + .baseAttack = 120, + .baseDefense = 40, + .baseSpeed = 95, + .baseSpAttack = 95, + .baseSpDefense = 40, + .expYield = 161, + .abilities = {ABILITY_ROUGH_SKIN, ABILITY_NONE, ABILITY_SPEED_BOOST}, + .cryId = CRY_SHARPEDO, + .height = 18, + .weight = 888, + .description = COMPOUND_STRING( + "The vicious and sly gangster of the sea.\n" + "Its skin is specially textured to minimize\n" + "drag in water. Its speed tops out at over\n" + "75 miles per hour."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 317, + .trainerOffset = 3, + FRONT_PIC(Sharpedo, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Sharpedo, + .frontAnimId = ANIM_H_JUMPS_V_STRETCH_TWICE, + BACK_PIC(Sharpedo, 64, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Sharpedo), + ICON(Sharpedo, 0), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_SHARPEDO_MEGA] = + { + SHARPEDO_MISC_INFO, + .baseHP = 70, + .baseAttack = 140, + .baseDefense = 70, + .baseSpeed = 105, + .baseSpAttack = 110, + .baseSpDefense = 65, + .expYield = 196, + .abilities = {ABILITY_STRONG_JAW, ABILITY_STRONG_JAW, ABILITY_STRONG_JAW}, + .cryId = CRY_SHARPEDO_MEGA, + .height = 25, + .weight = 1303, + .description = COMPOUND_STRING( + "The yellow patterns it bears are old scars.\n" + "The energy from Mega Evolution runs\n" + "through them, causing it sharp pain and\n" + "suffering."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 317, + .trainerOffset = 3, + FRONT_PIC(SharpedoMega, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_SharpedoMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 1, + BACK_PIC(SharpedoMega, 64, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(SharpedoMega), + ICON(SharpedoMega, 0), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_CARVANHA + +#if P_FAMILY_WAILMER + [SPECIES_WAILMER] = { - .baseHP = 58, + .baseHP = 130, .baseAttack = 70, - .baseDefense = 45, - .baseSpeed = 42, - .baseSpAttack = 40, - .baseSpDefense = 45, - .types = { TYPE_DRAGON, TYPE_GROUND}, - .catchRate = 45, - .expYield = 60, - .evYield_Attack = 1, + .baseDefense = 35, + .baseSpeed = 60, + .baseSpAttack = 70, + .baseSpDefense = 35, + .types = { TYPE_WATER, TYPE_WATER}, + .catchRate = 125, + .expYield = 80, + .evYield_HP = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_SAND_VEIL, ABILITY_NONE, ABILITY_ROUGH_SKIN}, + .growthRate = GROWTH_FLUCTUATING, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_WATER_2}, + .abilities = {ABILITY_WATER_VEIL, ABILITY_OBLIVIOUS, ABILITY_PRESSURE}, .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Wailmer"), + .cryId = CRY_WAILMER, + .natDexNum = NATIONAL_DEX_WAILMER, + .categoryName = _("Ball Whale"), + .height = 20, + .weight = 1300, + .description = COMPOUND_STRING( + "While this Pokémon usually lives in the sea,\n" + "it can survive on land, although not too\n" + "long. It loses vitality if its body becomes\n" + "dried out."), + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 493, + .trainerOffset = 0, + FRONT_PIC(Wailmer, 64, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Wailmer, + .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, + BACK_PIC(Wailmer, 64, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, + PALETTE(Wailmer), + ICON(Wailmer, 2), + .footprint = gMonFootprint_Wailmer, + LEARNSETS(Wailmer), + .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_WAILORD}), }, - [SPECIES_GABITE] = + [SPECIES_WAILORD] = { - .baseHP = 68, + .baseHP = 170, .baseAttack = 90, - .baseDefense = 65, - .baseSpeed = 82, - .baseSpAttack = 50, - .baseSpDefense = 55, - .types = { TYPE_DRAGON, TYPE_GROUND}, - .catchRate = 45, - .expYield = 144, - .evYield_Attack = 2, + .baseDefense = 45, + .baseSpeed = 60, + .baseSpAttack = 90, + .baseSpDefense = 45, + .types = { TYPE_WATER, TYPE_WATER}, + .catchRate = 60, + .expYield = 175, + .evYield_HP = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_SAND_VEIL, ABILITY_NONE, ABILITY_ROUGH_SKIN}, + .growthRate = GROWTH_FLUCTUATING, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_WATER_2}, + .abilities = {ABILITY_WATER_VEIL, ABILITY_OBLIVIOUS, ABILITY_PRESSURE}, .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - }, - - [SPECIES_GARCHOMP] = + .speciesName = _("Wailord"), + .cryId = CRY_WAILORD, + .natDexNum = NATIONAL_DEX_WAILORD, + .categoryName = _("Float Whale"), + .height = 145, + .weight = 3980, + .description = COMPOUND_STRING( + "It breathes through nostrils that it\n" + "raises above the sea. By inhaling to its\n" + "maximum capacity, a Wailord can dive close\n" + "to 10,000 feet beneath the waves."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 1352, + .trainerOffset = 18, + FRONT_PIC(Wailord, 64, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Wailord, + .frontAnimId = ANIM_V_SLIDE_WOBBLE, + .frontAnimDelay = 10, + BACK_PIC(Wailord, 64, 40), + .backPicYOffset = 14, + .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, + PALETTE(Wailord), + ICON(Wailord, 0), + .footprint = gMonFootprint_Wailord, + LEARNSETS(Wailord), + }, +#endif //P_FAMILY_WAILMER + +#if P_FAMILY_NUMEL + [SPECIES_NUMEL] = { - .baseHP = 108, - .baseAttack = 130, - .baseDefense = 95, - .baseSpeed = 102, - .baseSpAttack = 80, - .baseSpDefense = 85, - .types = { TYPE_DRAGON, TYPE_GROUND}, - .catchRate = 45, - .expYield = 270, - .evYield_Attack = 3, + .baseHP = 60, + .baseAttack = 60, + .baseDefense = 40, + .baseSpeed = 35, + .baseSpAttack = 65, + .baseSpDefense = 45, + .types = { TYPE_FIRE, TYPE_GROUND}, + .catchRate = 255, + .expYield = 61, + .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 40, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_SAND_VEIL, ABILITY_NONE, ABILITY_ROUGH_SKIN}, - .bodyColor = BODY_COLOR_BLUE, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_OBLIVIOUS, ABILITY_SIMPLE, ABILITY_OWN_TEMPO}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, - }, + .speciesName = _("Numel"), + .cryId = CRY_NUMEL, + .natDexNum = NATIONAL_DEX_NUMEL, + .categoryName = _("Numb"), + .height = 7, + .weight = 240, + .description = COMPOUND_STRING( + "A Numel stores boiling magma in the hump\n" + "on its back. It is a hardy Pokémon that can\n" + "transport a 220-pound load. It has served\n" + "humans at work since long ago."), + .pokemonScale = 342, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Numel, 40, 48), + FRONT_PIC_FEMALE(Numel, 40, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Numel, + .frontAnimId = ANIM_V_SLIDE, + BACK_PIC(Numel, 56, 56), + BACK_PIC_FEMALE(Numel, 56, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(Numel), + ICON(Numel, 1), + .footprint = gMonFootprint_Numel, + LEARNSETS(Numel), + .evolutions = EVOLUTION({EVO_LEVEL, 33, SPECIES_CAMERUPT}), + }, + +#define CAMERUPT_MISC_INFO \ + .types = { TYPE_FIRE, TYPE_GROUND}, \ + .catchRate = 150, \ + .evYield_Attack = 1, \ + .evYield_SpAttack = 1, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, \ + .bodyColor = BODY_COLOR_RED, \ + .noFlip = FALSE, \ + .speciesName = _("Camerupt"), \ + .natDexNum = NATIONAL_DEX_CAMERUPT, \ + .categoryName = _("Eruption"), \ + .footprint = gMonFootprint_Camerupt, \ + LEARNSETS(Camerupt), \ + .formSpeciesIdTable = sCameruptFormSpeciesIdTable, \ + .formChangeTable = sCameruptFormChangeTable - [SPECIES_MUNCHLAX] = + [SPECIES_CAMERUPT] = { - .baseHP = 135, - .baseAttack = 85, - .baseDefense = 40, - .baseSpeed = 5, - .baseSpAttack = 40, - .baseSpDefense = 85, - .types = { TYPE_NORMAL, TYPE_NORMAL}, - .catchRate = 50, - .expYield = 78, - .evYield_HP = 1, - .itemCommon = ITEM_LEFTOVERS, - .itemRare = ITEM_LEFTOVERS, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 40, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_PICKUP, ABILITY_THICK_FAT, ABILITY_GLUTTONY}, - .bodyColor = BODY_COLOR_BLACK, - .noFlip = FALSE, - }, - - [SPECIES_RIOLU] = + CAMERUPT_MISC_INFO, + .baseHP = 70, + .baseAttack = 100, + .baseDefense = 70, + .baseSpeed = 40, + .baseSpAttack = 105, + .baseSpDefense = 75, + .expYield = 161, + .abilities = {ABILITY_MAGMA_ARMOR, ABILITY_SOLID_ROCK, ABILITY_ANGER_POINT}, + .cryId = CRY_CAMERUPT, + .height = 19, + .weight = 2200, + .description = COMPOUND_STRING( + "A Pokémon that lives in the crater of\n" + "a volcano. Every 10 years, the volcanoes\n" + "on its back erupt violently. Research is\n" + "under way on the cause of eruption."), + .pokemonScale = 256, + .pokemonOffset = 7, + .trainerScale = 345, + .trainerOffset = 6, + FRONT_PIC(Camerupt, 64, 56), + FRONT_PIC_FEMALE(Camerupt, 64, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Camerupt, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(Camerupt, 64, 40), + BACK_PIC_FEMALE(Camerupt, 64, 40), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, + PALETTE(Camerupt), + ICON(Camerupt, 0), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_CAMERUPT_MEGA] = { - .baseHP = 40, - .baseAttack = 70, - .baseDefense = 40, - .baseSpeed = 60, - .baseSpAttack = 35, - .baseSpDefense = 40, - .types = { TYPE_FIGHTING, TYPE_FIGHTING}, - .catchRate = 75, - .expYield = 57, - .evYield_Attack = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 25, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_STEADFAST, ABILITY_INNER_FOCUS, ABILITY_PRANKSTER}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_LUCARIO] = + CAMERUPT_MISC_INFO, + .baseHP = 70, + .baseAttack = 120, + .baseDefense = 100, + .baseSpeed = 20, + .baseSpAttack = 145, + .baseSpDefense = 105, + .expYield = 196, + .abilities = {ABILITY_SHEER_FORCE, ABILITY_SHEER_FORCE, ABILITY_SHEER_FORCE}, + .cryId = CRY_CAMERUPT_MEGA, + .height = 25, + .weight = 3205, + .description = COMPOUND_STRING( + "The humps on its back have transformed\n" + "into one large and very active volcano. It\n" + "has a deep hatred of water or any moisture\n" + "and has an explosive personality."), + .pokemonScale = 256, + .pokemonOffset = 7, + .trainerScale = 345, + .trainerOffset = 6, + FRONT_PIC(CameruptMega, 64, 64), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_CameruptMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(CameruptMega, 64, 64), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, + PALETTE(CameruptMega), + ICON(CameruptMega, 0), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_NUMEL + +#if P_FAMILY_TORKOAL + [SPECIES_TORKOAL] = { .baseHP = 70, - .baseAttack = 110, - .baseDefense = 70, - .baseSpeed = 90, - .baseSpAttack = 115, + .baseAttack = 85, + .baseDefense = 140, + .baseSpeed = 20, + .baseSpAttack = 85, .baseSpDefense = 70, - .types = { TYPE_FIGHTING, TYPE_STEEL}, - .catchRate = 45, - .expYield = 184, - .evYield_Attack = 1, - .evYield_SpAttack = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 25, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_STEADFAST, ABILITY_INNER_FOCUS, ABILITY_JUSTIFIED}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_HIPPOPOTAS] = - { - .baseHP = 68, - .baseAttack = 72, - .baseDefense = 78, - .baseSpeed = 32, - .baseSpAttack = 38, - .baseSpDefense = 42, - .types = { TYPE_GROUND, TYPE_GROUND}, - .catchRate = 140, - .expYield = 66, - .evYield_Defense = 1, + .types = { TYPE_FIRE, TYPE_FIRE}, + .catchRate = 90, + .expYield = 165, + .evYield_Defense = 2, + .itemRare = ITEM_CHARCOAL, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 30, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, + .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SAND_STREAM, ABILITY_NONE, ABILITY_SAND_FORCE}, + .abilities = {ABILITY_WHITE_SMOKE, ABILITY_DROUGHT, ABILITY_SHELL_ARMOR}, .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - }, - - [SPECIES_HIPPOWDON] = + .speciesName = _("Torkoal"), + .cryId = CRY_TORKOAL, + .natDexNum = NATIONAL_DEX_TORKOAL, + .categoryName = _("Coal"), + .height = 5, + .weight = 804, + .description = COMPOUND_STRING( + "It battles using energy it gets from\n" + "burning coal. When loosing smoke from its\n" + "nostrils, it lets off a sound that is\n" + "similar to a locomotive's horn."), + .pokemonScale = 390, + .pokemonOffset = 9, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Torkoal, 64, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_Torkoal, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Torkoal, 64, 48), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, + PALETTE(Torkoal), + ICON(Torkoal, 2), + .footprint = gMonFootprint_Torkoal, + LEARNSETS(Torkoal), + }, +#endif //P_FAMILY_TORKOAL + +#if P_FAMILY_SPOINK + [SPECIES_SPOINK] = { - .baseHP = 108, - .baseAttack = 112, - .baseDefense = 118, - .baseSpeed = 47, - .baseSpAttack = 68, - .baseSpDefense = 72, - .types = { TYPE_GROUND, TYPE_GROUND}, - .catchRate = 60, - .expYield = 184, - .evYield_Defense = 2, + .baseHP = 60, + .baseAttack = 25, + .baseDefense = 35, + .baseSpeed = 60, + .baseSpAttack = 70, + .baseSpDefense = 80, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, + .catchRate = 255, + .expYield = 66, + .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 30, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, + .growthRate = GROWTH_FAST, .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SAND_STREAM, ABILITY_NONE, ABILITY_SAND_FORCE}, - .bodyColor = BODY_COLOR_BROWN, + .abilities = {ABILITY_THICK_FAT, ABILITY_OWN_TEMPO, ABILITY_GLUTTONY}, + .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, + .speciesName = _("Spoink"), + .cryId = CRY_SPOINK, + .natDexNum = NATIONAL_DEX_SPOINK, + .categoryName = _("Bounce"), + .height = 7, + .weight = 306, + .description = COMPOUND_STRING( + "A Pokémon that manipulates psychic power\n" + "at will. It doesn't stop bouncing even when\n" + "it is asleep. It loves eating mushrooms\n" + "that grow underground."), + .pokemonScale = 423, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Spoink, 32, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Spoink, + .frontAnimId = ANIM_H_JUMPS_V_STRETCH_TWICE, + BACK_PIC(Spoink, 40, 64), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, + PALETTE(Spoink), + ICON(Spoink, 0), + .footprint = gMonFootprint_Spoink, + LEARNSETS(Spoink), + .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_GRUMPIG}), }, - [SPECIES_SKORUPI] = + [SPECIES_GRUMPIG] = { - .baseHP = 40, - .baseAttack = 50, - .baseDefense = 90, - .baseSpeed = 65, - .baseSpAttack = 30, - .baseSpDefense = 55, - .types = { TYPE_POISON, TYPE_BUG}, - .catchRate = 120, - .expYield = 66, - .evYield_Defense = 1, - .itemRare = ITEM_POISON_BARB, + .baseHP = 80, + .baseAttack = 45, + .baseDefense = 65, + .baseSpeed = 80, + .baseSpAttack = 90, + .baseSpDefense = 110, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, + .catchRate = 60, + .expYield = 165, + .evYield_SpDefense = 2, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_WATER_3}, - .abilities = {ABILITY_BATTLE_ARMOR, ABILITY_SNIPER, ABILITY_KEEN_EYE}, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_THICK_FAT, ABILITY_OWN_TEMPO, ABILITY_GLUTTONY}, .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, - }, - - [SPECIES_DRAPION] = + .speciesName = _("Grumpig"), + .cryId = CRY_GRUMPIG, + .natDexNum = NATIONAL_DEX_GRUMPIG, + .categoryName = _("Manipulate"), + .height = 9, + .weight = 715, + .description = COMPOUND_STRING( + "It stores power in the black pearls on its\n" + "forehead. When it uses psychic power, it\n" + "performs an odd dance step. Its style of\n" + "dancing became hugely popular overseas."), + .pokemonScale = 358, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Grumpig, 56, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Grumpig, + .frontAnimId = ANIM_H_JUMPS_V_STRETCH, + .frontAnimDelay = 15, + BACK_PIC(Grumpig, 64, 64), + .backPicYOffset = 2, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(Grumpig), + ICON(Grumpig, 2), + .footprint = gMonFootprint_Grumpig, + LEARNSETS(Grumpig), + }, +#endif //P_FAMILY_SPOINK + +#if P_FAMILY_SPINDA + [SPECIES_SPINDA] = { - .baseHP = 70, - .baseAttack = 90, - .baseDefense = 110, - .baseSpeed = 95, + .baseHP = 60, + .baseAttack = 60, + .baseDefense = 60, + .baseSpeed = 60, .baseSpAttack = 60, - .baseSpDefense = 75, - .types = { TYPE_POISON, TYPE_DARK}, - .catchRate = 45, - .expYield = 175, - .evYield_Defense = 2, - .itemRare = ITEM_POISON_BARB, + .baseSpDefense = 60, + .types = { TYPE_NORMAL, TYPE_NORMAL}, + .catchRate = 255, + .expYield = 126, + .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_WATER_3}, - .abilities = {ABILITY_BATTLE_ARMOR, ABILITY_SNIPER, ABILITY_KEEN_EYE}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - }, - - [SPECIES_CROAGUNK] = + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_OWN_TEMPO, ABILITY_TANGLED_FEET, ABILITY_CONTRARY}, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = TRUE, + .speciesName = _("Spinda"), + .cryId = CRY_SPINDA, + .natDexNum = NATIONAL_DEX_SPINDA, + .categoryName = _("Spot Panda"), + .height = 11, + .weight = 50, + .description = COMPOUND_STRING( + "It is distinguished by a pattern of\n" + "spots that is always different. Its\n" + "unsteady, tottering walk has the\n" + "effect of fouling its foe's aim."), + .pokemonScale = 321, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Spinda, 48, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Spinda, + .frontAnimId = ANIM_CIRCLE_INTO_BG, + BACK_PIC(Spinda, 56, 56), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, + PALETTE(Spinda), + ICON(Spinda, 1), + .footprint = gMonFootprint_Spinda, + LEARNSETS(Spinda), + }, +#endif //P_FAMILY_SPINDA + +#if P_FAMILY_TRAPINCH + [SPECIES_TRAPINCH] = { - .baseHP = 48, - .baseAttack = 61, - .baseDefense = 40, - .baseSpeed = 50, - .baseSpAttack = 61, - .baseSpDefense = 40, - .types = { TYPE_POISON, TYPE_FIGHTING}, - .catchRate = 140, - .expYield = 60, + .baseHP = 45, + .baseAttack = 100, + .baseDefense = 45, + .baseSpeed = 10, + .baseSpAttack = 45, + .baseSpDefense = 45, + .types = { TYPE_GROUND, TYPE_GROUND}, + .catchRate = 255, + .expYield = 58, .evYield_Attack = 1, - .itemRare = ITEM_BLACK_SLUDGE, + .itemRare = ITEM_SOFT_SAND, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 10, - .friendship = 100, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_ANTICIPATION, ABILITY_DRY_SKIN, ABILITY_POISON_TOUCH}, - .bodyColor = BODY_COLOR_BLUE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + #if P_UPDATED_EGG_GROUPS >= GEN_8 + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_DRAGON}, + #else + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + #endif + .abilities = {ABILITY_HYPER_CUTTER, ABILITY_ARENA_TRAP, ABILITY_SHEER_FORCE}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .speciesName = _("Trapinch"), + .cryId = CRY_TRAPINCH, + .natDexNum = NATIONAL_DEX_TRAPINCH, + .categoryName = _("Ant Pit"), + .height = 7, + .weight = 150, + .description = COMPOUND_STRING( + "Its big jaws crunch through boulders.\n" + "Because its head is so big, it has a hard\n" + "time getting back upright if it tips over\n" + "onto its back."), + .pokemonScale = 298, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Trapinch, 40, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Trapinch, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(Trapinch, 48, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Trapinch), + ICON(Trapinch, 0), + .footprint = gMonFootprint_Trapinch, + LEARNSETS(Trapinch), + .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_VIBRAVA}), }, - [SPECIES_TOXICROAK] = + [SPECIES_VIBRAVA] = { - .baseHP = 83, - .baseAttack = 106, - .baseDefense = 65, - .baseSpeed = 85, - .baseSpAttack = 86, - .baseSpDefense = 65, - .types = { TYPE_POISON, TYPE_FIGHTING}, - .catchRate = 75, - .expYield = 172, - .evYield_Attack = 2, - .itemRare = ITEM_BLACK_SLUDGE, + .baseHP = 50, + .baseAttack = 70, + .baseDefense = 50, + .baseSpeed = 70, + .baseSpAttack = 50, + .baseSpDefense = 50, + .types = { TYPE_GROUND, TYPE_DRAGON}, + .catchRate = 120, + .expYield = 119, + .evYield_Attack = 1, + .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_ANTICIPATION, ABILITY_DRY_SKIN, ABILITY_POISON_TOUCH}, - .bodyColor = BODY_COLOR_BLUE, + .growthRate = GROWTH_MEDIUM_SLOW, + #if P_UPDATED_EGG_GROUPS >= GEN_8 + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_DRAGON}, + #else + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + #endif + .abilities = {ABILITY_LEVITATE, ABILITY_LEVITATE, ABILITY_LEVITATE}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, + .speciesName = _("Vibrava"), + .cryId = CRY_VIBRAVA, + .natDexNum = NATIONAL_DEX_VIBRAVA, + .categoryName = _("Vibration"), + .height = 11, + .weight = 153, + .description = COMPOUND_STRING( + "It looses ultrasonic waves by rubbing its\n" + "wings together. Since a Vibrava's wings\n" + "are still in the process of growing, it can\n" + "only fly short distances."), + .pokemonScale = 370, + .pokemonOffset = 11, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Vibrava, 64, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Vibrava, + .frontAnimId = ANIM_H_SHAKE, + BACK_PIC(Vibrava, 64, 40), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_H_VIBRATE, + PALETTE(Vibrava), + ICON(Vibrava, 1), + .footprint = gMonFootprint_Vibrava, + LEARNSETS(Vibrava), + .evolutions = EVOLUTION({EVO_LEVEL, 45, SPECIES_FLYGON}), }, - [SPECIES_CARNIVINE] = + [SPECIES_FLYGON] = { - .baseHP = 74, + .baseHP = 80, .baseAttack = 100, - .baseDefense = 72, - .baseSpeed = 46, - .baseSpAttack = 90, - .baseSpDefense = 72, - .types = { TYPE_GRASS, TYPE_GRASS}, - .catchRate = 200, - .expYield = 159, - .evYield_Attack = 2, + .baseDefense = 80, + .baseSpeed = 100, + .baseSpAttack = 80, + .baseSpDefense = 80, + .types = { TYPE_GROUND, TYPE_DRAGON}, + .catchRate = 45, + .expYield = 234, + .evYield_Attack = 1, + .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, + .growthRate = GROWTH_MEDIUM_SLOW, + #if P_UPDATED_EGG_GROUPS >= GEN_8 + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_DRAGON}, + #else + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + #endif + .abilities = {ABILITY_LEVITATE, ABILITY_LEVITATE, ABILITY_LEVITATE}, .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - }, - - [SPECIES_FINNEON] = + .speciesName = _("Flygon"), + .cryId = CRY_FLYGON, + .natDexNum = NATIONAL_DEX_FLYGON, + .categoryName = _("Mystic"), + .height = 20, + .weight = 820, + .description = COMPOUND_STRING( + "The flapping of its wings sounds like\n" + "singing. To prevent detection by enemies,\n" + "it hides itself by flapping up a cloud of\n" + "desert sand."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 268, + .trainerOffset = 1, + FRONT_PIC(Flygon, 64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Flygon, + .frontAnimId = ANIM_ZIGZAG_SLOW, + .enemyMonElevation = 7, + BACK_PIC(Flygon, 64, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(Flygon), + ICON(Flygon, 1), + .footprint = gMonFootprint_Flygon, + LEARNSETS(Flygon), + }, +#endif //P_FAMILY_TRAPINCH + +#if P_FAMILY_CACNEA + [SPECIES_CACNEA] = { - .baseHP = 49, - .baseAttack = 49, - .baseDefense = 56, - .baseSpeed = 66, - .baseSpAttack = 49, - .baseSpDefense = 61, - .types = { TYPE_WATER, TYPE_WATER}, + .baseHP = 50, + .baseAttack = 85, + .baseDefense = 40, + .baseSpeed = 35, + .baseSpAttack = 85, + .baseSpDefense = 40, + .types = { TYPE_GRASS, TYPE_GRASS}, .catchRate = 190, - .expYield = 66, - .evYield_Speed = 1, + .expYield = 67, + .evYield_SpAttack = 1, + .itemRare = ITEM_STICKY_BARB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, - .abilities = {ABILITY_SWIFT_SWIM, ABILITY_STORM_DRAIN, ABILITY_WATER_VEIL}, - .bodyColor = BODY_COLOR_BLUE, + .friendship = 35, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_SAND_VEIL, ABILITY_NONE, ABILITY_WATER_ABSORB}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, + .speciesName = _("Cacnea"), + .cryId = CRY_CACNEA, + .natDexNum = NATIONAL_DEX_CACNEA, + .categoryName = _("Cactus"), + .height = 4, + .weight = 513, + .description = COMPOUND_STRING( + "Cacnea live in deserts with virtually no\n" + "rainfall. It battles by swinging its thick,\n" + "spiked arms. Once a year, a yellow flower\n" + "blooms."), + .pokemonScale = 455, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Cacnea, 56, 40), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_Cacnea, + .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW, + BACK_PIC(Cacnea, 64, 40), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, + PALETTE(Cacnea), + ICON(Cacnea, 1), + .footprint = gMonFootprint_Cacnea, + LEARNSETS(Cacnea), + .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_CACTURNE}), }, - [SPECIES_LUMINEON] = + [SPECIES_CACTURNE] = { - .baseHP = 69, - .baseAttack = 69, - .baseDefense = 76, - .baseSpeed = 91, - .baseSpAttack = 69, - .baseSpDefense = 86, - .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 75, - .expYield = 161, - .evYield_Speed = 2, + .baseHP = 70, + .baseAttack = 115, + .baseDefense = 60, + .baseSpeed = 55, + .baseSpAttack = 115, + .baseSpDefense = 60, + .types = { TYPE_GRASS, TYPE_DARK}, + .catchRate = 60, + .expYield = 166, + .evYield_Attack = 1, + .evYield_SpAttack = 1, + .itemRare = ITEM_STICKY_BARB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, - .abilities = {ABILITY_SWIFT_SWIM, ABILITY_STORM_DRAIN, ABILITY_WATER_VEIL}, - .bodyColor = BODY_COLOR_BLUE, + .friendship = 35, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_SAND_VEIL, ABILITY_NONE, ABILITY_WATER_ABSORB}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - }, - - [SPECIES_MANTYKE] = + .speciesName = _("Cacturne"), + .cryId = CRY_CACTURNE, + .natDexNum = NATIONAL_DEX_CACTURNE, + .categoryName = _("Scarecrow"), + .height = 13, + .weight = 774, + .description = COMPOUND_STRING( + "After spending thousands of years in\n" + "harsh deserts, its blood transformed into\n" + "the same substances as sand. It is\n" + "nocturnal, so it hunts at night."), + .pokemonScale = 327, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Cacturne, 64, 64), + FRONT_PIC_FEMALE(Cacturne, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Cacturne, + .frontAnimId = ANIM_V_SLIDE, + BACK_PIC(Cacturne, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_H_SHAKE, + PALETTE(Cacturne), + ICON(Cacturne, 1), + .footprint = gMonFootprint_Cacturne, + LEARNSETS(Cacturne), + }, +#endif //P_FAMILY_CACNEA + +#if P_FAMILY_SWABLU + [SPECIES_SWABLU] = { .baseHP = 45, - .baseAttack = 20, - .baseDefense = 50, + .baseAttack = 40, + .baseDefense = 60, .baseSpeed = 50, - .baseSpAttack = 60, - .baseSpDefense = 120, - .types = { TYPE_WATER, TYPE_FLYING}, - .catchRate = 25, - .expYield = 69, + .baseSpAttack = 40, + .baseSpDefense = 75, + .types = { TYPE_NORMAL, TYPE_FLYING}, + .catchRate = 255, + .expYield = 62, .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_SWIFT_SWIM, ABILITY_WATER_ABSORB, ABILITY_WATER_VEIL}, + .growthRate = GROWTH_ERRATIC, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_NATURAL_CURE, ABILITY_NONE, ABILITY_CLOUD_NINE}, .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - }, + .speciesName = _("Swablu"), + .cryId = CRY_SWABLU, + .natDexNum = NATIONAL_DEX_SWABLU, + .categoryName = _("Cotton Bird"), + .height = 4, + .weight = 12, + .description = COMPOUND_STRING( + "A Pokémon that has wings like cottony\n" + "clouds. After enduring winter, in which\n" + "little food is available, Swablu flocks\n" + "move closer to towns in the spring."), + .pokemonScale = 422, + .pokemonOffset = -8, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Swablu, 48, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Swablu, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Swablu, 64, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Swablu), + ICON(Swablu, 0), + .footprint = gMonFootprint_Swablu, + LEARNSETS(Swablu), + .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_ALTARIA}), + }, + +#define ALTARIA_MISC_INFO \ + .catchRate = 45, \ + .evYield_SpDefense = 2, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_ERRATIC, \ + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_DRAGON}, \ + .bodyColor = BODY_COLOR_BLUE, \ + .noFlip = FALSE, \ + .speciesName = _("Altaria"), \ + .natDexNum = NATIONAL_DEX_ALTARIA, \ + .categoryName = _("Humming"), \ + .footprint = gMonFootprint_Altaria, \ + LEARNSETS(Altaria), \ + .formSpeciesIdTable = sAltariaFormSpeciesIdTable, \ + .formChangeTable = sAltariaFormChangeTable - [SPECIES_SNOVER] = + [SPECIES_ALTARIA] = + { + ALTARIA_MISC_INFO, + .baseHP = 75, + .baseAttack = 70, + .baseDefense = 90, + .baseSpeed = 80, + .baseSpAttack = 70, + .baseSpDefense = 105, + .types = { TYPE_DRAGON, TYPE_FLYING}, + .expYield = 172, + .abilities = {ABILITY_NATURAL_CURE, ABILITY_NONE, ABILITY_CLOUD_NINE}, + .cryId = CRY_ALTARIA, + .height = 11, + .weight = 206, + .description = COMPOUND_STRING( + "It hums in a beautiful soprano voice.\n" + "It flies among white clouds in the blue\n" + "sky. It launches intensely hot fireballs\n" + "from its mouth."), + .pokemonScale = 327, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Altaria, 64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Altaria, + .frontAnimId = ANIM_V_STRETCH, + .enemyMonElevation = 8, + BACK_PIC(Altaria, 64, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Altaria), + ICON(Altaria, 0), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_ALTARIA_MEGA] = { - .baseHP = 60, - .baseAttack = 62, - .baseDefense = 50, - .baseSpeed = 40, - .baseSpAttack = 62, + ALTARIA_MISC_INFO, + .baseHP = 75, + .baseAttack = 110, + .baseDefense = 110, + .baseSpeed = 80, + .baseSpAttack = 110, + .baseSpDefense = 105, + .types = { TYPE_DRAGON, TYPE_FAIRY}, + .expYield = 207, + .abilities = {ABILITY_PIXILATE, ABILITY_PIXILATE, ABILITY_PIXILATE}, + .cryId = CRY_ALTARIA_MEGA, + .height = 15, + .weight = 206, + .description = COMPOUND_STRING( + "It sings with a voice that is even more\n" + "beautiful than before it Mega Evolved.\n" + "Its feathers became larger for protection\n" + "and glimmer with an iridescent sheen."), + .pokemonScale = 327, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(AltariaMega, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_AltariaMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 6, + BACK_PIC(AltariaMega, 64, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(AltariaMega), + ICON(AltariaMega, 0), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_SWABLU + +#if P_FAMILY_ZANGOOSE + [SPECIES_ZANGOOSE] = + { + .baseHP = 73, + .baseAttack = 115, + .baseDefense = 60, + .baseSpeed = 90, + .baseSpAttack = 60, .baseSpDefense = 60, - .types = { TYPE_GRASS, TYPE_ICE}, - .catchRate = 120, - .expYield = 67, - .evYield_Attack = 1, - .itemRare = ITEM_NEVER_MELT_ICE, + .types = { TYPE_NORMAL, TYPE_NORMAL}, + .catchRate = 90, + .expYield = 160, + .evYield_Attack = 2, + .itemRare = ITEM_QUICK_CLAW, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS}, - .abilities = {ABILITY_SNOW_WARNING, ABILITY_NONE, ABILITY_SOUNDPROOF}, + .growthRate = GROWTH_ERRATIC, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_IMMUNITY, ABILITY_NONE, ABILITY_TOXIC_BOOST}, .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - }, - - [SPECIES_ABOMASNOW] = + .noFlip = TRUE, + .speciesName = _("Zangoose"), + .cryId = CRY_ZANGOOSE, + .natDexNum = NATIONAL_DEX_ZANGOOSE, + .categoryName = _("Cat Ferret"), + .height = 13, + .weight = 403, + .description = COMPOUND_STRING( + "When it battles, it stands on its hind legs\n" + "and attacks with its sharply clawed\n" + "forelegs. Its fur bristles if it encounters\n" + "any Seviper."), + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Zangoose, 56, 56), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Zangoose, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Zangoose, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Zangoose), + ICON(Zangoose, 0), + .footprint = gMonFootprint_Zangoose, + LEARNSETS(Zangoose), + }, +#endif //P_FAMILY_ZANGOOSE + +#if P_FAMILY_SEVIPER + [SPECIES_SEVIPER] = { - .baseHP = 90, - .baseAttack = 92, - .baseDefense = 75, - .baseSpeed = 60, - .baseSpAttack = 92, - .baseSpDefense = 85, - .types = { TYPE_GRASS, TYPE_ICE}, - .catchRate = 60, - .expYield = 173, + .baseHP = 73, + .baseAttack = 100, + .baseDefense = 60, + .baseSpeed = 65, + .baseSpAttack = 100, + .baseSpDefense = 60, + .types = { TYPE_POISON, TYPE_POISON}, + .catchRate = 90, + .expYield = 160, .evYield_Attack = 1, .evYield_SpAttack = 1, - .itemRare = ITEM_NEVER_MELT_ICE, + .itemRare = ITEM_SHED_SHELL, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS}, - .abilities = {ABILITY_SNOW_WARNING, ABILITY_NONE, ABILITY_SOUNDPROOF}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - }, - - [SPECIES_WEAVILE] = + .growthRate = GROWTH_FLUCTUATING, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_INFILTRATOR}, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = TRUE, + .speciesName = _("Seviper"), + .cryId = CRY_SEVIPER, + .natDexNum = NATIONAL_DEX_SEVIPER, + .categoryName = _("Fang Snake"), + .height = 27, + .weight = 525, + .description = COMPOUND_STRING( + "Seviper and Zangoose are eternal rivals.\n" + "It counters a Zangoose's dazzling agility\n" + "with its swordlike tail, which also oozes\n" + "a horrible poison."), + .pokemonScale = 275, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Seviper, 64, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Seviper, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Seviper, 64, 64), + .backPicYOffset = 1, + .backAnimId = BACK_ANIM_V_STRETCH, + PALETTE(Seviper), + ICON(Seviper, 2), + .footprint = gMonFootprint_Seviper, + LEARNSETS(Seviper), + }, +#endif //P_FAMILY_SEVIPER + +#if P_FAMILY_LUNATONE + [SPECIES_LUNATONE] = { - .baseHP = 70, - .baseAttack = 120, + .baseHP = P_UPDATED_STATS >= GEN_7 ? 90 : 70, + .baseAttack = 55, .baseDefense = 65, - .baseSpeed = 125, - .baseSpAttack = 45, + .baseSpeed = 70, + .baseSpAttack = 95, .baseSpDefense = 85, - .types = { TYPE_DARK, TYPE_ICE}, + .types = { TYPE_ROCK, TYPE_PSYCHIC}, .catchRate = 45, - .expYield = 179, - .evYield_Attack = 1, - .evYield_Speed = 1, - .itemRare = ITEM_QUICK_CLAW, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = 35, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_PICKPOCKET}, - .bodyColor = BODY_COLOR_BLACK, + .expYield = 161, + .evYield_SpAttack = 2, + .itemCommon = ITEM_STARDUST, + .itemRare = ITEM_MOON_STONE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, - }, - - [SPECIES_MAGNEZONE] = + .speciesName = _("Lunatone"), + .cryId = CRY_LUNATONE, + .natDexNum = NATIONAL_DEX_LUNATONE, + .categoryName = _("Meteorite"), + .height = 10, + .weight = 1680, + .description = COMPOUND_STRING( + "It becomes very active on the night of\n" + "a full moon. This Pokémon was first\n" + "discovered 40 years ago at the site of\n" + "a meteor strike."), + .pokemonScale = 300, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Lunatone, 48, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Lunatone, + .frontAnimId = ANIM_SWING_CONVEX_FAST, + .enemyMonElevation = 13, + BACK_PIC(Lunatone, 48, 48), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Lunatone), + ICON(Lunatone, 1), + .footprint = gMonFootprint_Lunatone, + LEARNSETS(Lunatone), + }, +#endif //P_FAMILY_LUNATONE + +#if P_FAMILY_SOLROCK + [SPECIES_SOLROCK] = { - .baseHP = 70, - .baseAttack = 70, - .baseDefense = 115, - .baseSpeed = 60, - .baseSpAttack = 130, - .baseSpDefense = 90, - .types = { TYPE_ELECTRIC, TYPE_STEEL}, - .catchRate = 30, - .expYield = 241, - .evYield_SpAttack = 3, - .itemRare = ITEM_METAL_COAT, + .baseHP = P_UPDATED_STATS >= GEN_7 ? 90 : 70, + .baseAttack = 95, + .baseDefense = 85, + .baseSpeed = 70, + .baseSpAttack = 55, + .baseSpDefense = 65, + .types = { TYPE_ROCK, TYPE_PSYCHIC}, + .catchRate = 45, + .expYield = 161, + .evYield_Attack = 2, + .itemCommon = ITEM_STARDUST, + .itemRare = ITEM_SUN_STONE, .genderRatio = MON_GENDERLESS, + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + .speciesName = _("Solrock"), + .cryId = CRY_SOLROCK, + .natDexNum = NATIONAL_DEX_SOLROCK, + .categoryName = _("Meteorite"), + .height = 12, + .weight = 1540, + .description = COMPOUND_STRING( + "Solar energy is the source of this \n" + "Pokémon's power. On sunny days, groups of\n" + "Solrock line up facing the sun and absorb\n" + "its light."), + .pokemonScale = 328, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Solrock, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Solrock, + .frontAnimId = ANIM_ROTATE_TO_SIDES_TWICE, + .enemyMonElevation = 4, + BACK_PIC(Solrock, 64, 64), + .backPicYOffset = 2, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Solrock), + ICON(Solrock, 0), + .footprint = gMonFootprint_Solrock, + LEARNSETS(Solrock), + }, +#endif //P_FAMILY_SOLROCK + +#if P_FAMILY_BARBOACH + [SPECIES_BARBOACH] = + { + .baseHP = 50, + .baseAttack = 48, + .baseDefense = 43, + .baseSpeed = 60, + .baseSpAttack = 46, + .baseSpDefense = 41, + .types = { TYPE_WATER, TYPE_GROUND}, + .catchRate = 190, + .expYield = 58, + .evYield_HP = 1, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_MAGNET_PULL, ABILITY_STURDY, ABILITY_ANALYTIC}, + .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, + .abilities = {ABILITY_OBLIVIOUS, ABILITY_ANTICIPATION, ABILITY_HYDRATION}, .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, + .speciesName = _("Barboach"), + .cryId = CRY_BARBOACH, + .natDexNum = NATIONAL_DEX_BARBOACH, + .categoryName = _("Whiskers"), + .height = 4, + .weight = 19, + .description = COMPOUND_STRING( + "Its body is covered with a slimy film.\n" + "The film acts as a barrier to prevent germs\n" + "in muddy water from entering the\n" + "Barboach's body."), + .pokemonScale = 581, + .pokemonOffset = -3, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Barboach, 48, 40), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Barboach, + .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW, + BACK_PIC(Barboach, 56, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_V_STRETCH, + PALETTE(Barboach), + ICON(Barboach, 0), + .footprint = gMonFootprint_Barboach, + LEARNSETS(Barboach), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_WHISCASH}), }, - [SPECIES_LICKILICKY] = + [SPECIES_WHISCASH] = { .baseHP = 110, - .baseAttack = 85, - .baseDefense = 95, - .baseSpeed = 50, - .baseSpAttack = 80, - .baseSpDefense = 95, - .types = { TYPE_NORMAL, TYPE_NORMAL}, - .catchRate = 30, - .expYield = 180, - .evYield_HP = 3, - .itemRare = ITEM_LAGGING_TAIL, + .baseAttack = 78, + .baseDefense = 73, + .baseSpeed = 60, + .baseSpAttack = 76, + .baseSpDefense = 71, + .types = { TYPE_WATER, TYPE_GROUND}, + .catchRate = 75, + .expYield = 164, + .evYield_HP = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, - .abilities = {ABILITY_OWN_TEMPO, ABILITY_OBLIVIOUS, ABILITY_CLOUD_NINE}, - .bodyColor = BODY_COLOR_PINK, + .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, + .abilities = {ABILITY_OBLIVIOUS, ABILITY_ANTICIPATION, ABILITY_HYDRATION}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - }, - - [SPECIES_RHYPERIOR] = + .speciesName = _("Whiscash"), + .cryId = CRY_WHISCASH, + .natDexNum = NATIONAL_DEX_WHISCASH, + .categoryName = _("Whiskers"), + .height = 9, + .weight = 236, + .description = COMPOUND_STRING( + "Mysteriously, it can foretell earthquakes.\n" + "In the daytime, it sleeps in mud at the\n" + "bottom of a pond. When it awakens, it\n" + "continually feeds throughout the night."), + .pokemonScale = 317, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Whiscash, 64, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Whiscash, + .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW, + BACK_PIC(Whiscash, 64, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Whiscash), + ICON(Whiscash, 0), + .footprint = gMonFootprint_Whiscash, + LEARNSETS(Whiscash), + }, +#endif //P_FAMILY_BARBOACH + +#if P_FAMILY_CORPHISH + [SPECIES_CORPHISH] = { - .baseHP = 115, - .baseAttack = 140, - .baseDefense = 130, - .baseSpeed = 40, - .baseSpAttack = 55, - .baseSpDefense = 55, - .types = { TYPE_GROUND, TYPE_ROCK}, - .catchRate = 30, - .expYield = 241, - .evYield_Attack = 3, + .baseHP = 43, + .baseAttack = 80, + .baseDefense = 65, + .baseSpeed = 35, + .baseSpAttack = 50, + .baseSpDefense = 35, + .types = { TYPE_WATER, TYPE_WATER}, + .catchRate = 205, + .expYield = 62, + .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD}, - .abilities = {ABILITY_LIGHTNING_ROD, ABILITY_SOLID_ROCK, ABILITY_RECKLESS}, - .bodyColor = BODY_COLOR_GRAY, + .growthRate = GROWTH_FLUCTUATING, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3}, + .abilities = {ABILITY_HYPER_CUTTER, ABILITY_SHELL_ARMOR, ABILITY_ADAPTABILITY}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, + .speciesName = _("Corphish"), + .cryId = CRY_CORPHISH, + .natDexNum = NATIONAL_DEX_CORPHISH, + .categoryName = _("Ruffian"), + .height = 6, + .weight = 115, + .description = COMPOUND_STRING( + "Once it grips prey with its large pincers,\n" + "it will never let go, no matter what.\n" + "It is a hardy Pokémon that can thrive\n" + "in any environment."), + .pokemonScale = 484, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Corphish, 56, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Corphish, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(Corphish, 64, 48), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(Corphish), + ICON(Corphish, 0), + .footprint = gMonFootprint_Corphish, + LEARNSETS(Corphish), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_CRAWDAUNT}), }, - [SPECIES_TANGROWTH] = + [SPECIES_CRAWDAUNT] = { - .baseHP = 100, - .baseAttack = 100, - .baseDefense = 125, - .baseSpeed = 50, - .baseSpAttack = 110, - .baseSpDefense = 50, - .types = { TYPE_GRASS, TYPE_GRASS}, - .catchRate = 30, - .expYield = 187, - .evYield_Defense = 2, + .baseHP = 63, + .baseAttack = 120, + .baseDefense = 85, + .baseSpeed = 55, + .baseSpAttack = 90, + .baseSpDefense = 55, + .types = { TYPE_WATER, TYPE_DARK}, + .catchRate = 155, + .expYield = 164, + .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FLUCTUATING, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3}, + .abilities = {ABILITY_HYPER_CUTTER, ABILITY_SHELL_ARMOR, ABILITY_ADAPTABILITY}, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + .speciesName = _("Crawdaunt"), + .cryId = CRY_CRAWDAUNT, + .natDexNum = NATIONAL_DEX_CRAWDAUNT, + .categoryName = _("Rogue"), + .height = 11, + .weight = 328, + .description = COMPOUND_STRING( + "A brutish Pokémon that loves to battle.\n" + "A veteran Crawdaunt that has prevailed in\n" + "hundreds of battles has giant pincers\n" + "marked with countless scars."), + .pokemonScale = 365, + .pokemonOffset = 9, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Crawdaunt, 64, 64), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Crawdaunt, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Crawdaunt, 64, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Crawdaunt), + ICON(Crawdaunt, 0), + .footprint = gMonFootprint_Crawdaunt, + LEARNSETS(Crawdaunt), + }, +#endif //P_FAMILY_CORPHISH + +#if P_FAMILY_BALTOY + [SPECIES_BALTOY] = + { + .baseHP = 40, + .baseAttack = 40, + .baseDefense = 55, + .baseSpeed = 55, + .baseSpAttack = 40, + .baseSpDefense = 70, + .types = { TYPE_GROUND, TYPE_PSYCHIC}, + .catchRate = 255, + .expYield = 60, + .evYield_SpDefense = 1, + .itemRare = ITEM_LIGHT_CLAY, + .genderRatio = MON_GENDERLESS, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_CHLOROPHYLL, ABILITY_LEAF_GUARD, ABILITY_REGENERATOR}, - .bodyColor = BODY_COLOR_BLUE, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .speciesName = _("Baltoy"), + .cryId = CRY_BALTOY, + .natDexNum = NATIONAL_DEX_BALTOY, + .categoryName = _("Clay Doll"), + .height = 5, + .weight = 215, + .description = COMPOUND_STRING( + "A Baltoy moves by spinning on its single\n" + "foot. It has been depicted in murals \n" + "adorning the walls of a once-bustling city\n" + "in an ancient age."), + .pokemonScale = 457, + .pokemonOffset = 21, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Baltoy, 40, 40), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Baltoy, + .frontAnimId = ANIM_H_SLIDE_WOBBLE, + .enemyMonElevation = 5, + BACK_PIC(Baltoy, 64, 48), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Baltoy), + ICON(Baltoy, 2), + .footprint = gMonFootprint_Baltoy, + LEARNSETS(Baltoy), + .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_CLAYDOL}), }, - [SPECIES_ELECTIVIRE] = + [SPECIES_CLAYDOL] = { - .baseHP = 75, - .baseAttack = 123, - .baseDefense = 67, - .baseSpeed = 95, - .baseSpAttack = 95, - .baseSpDefense = 85, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, - .catchRate = 30, - .expYield = 243, - .evYield_Attack = 3, - .itemRare = ITEM_ELECTIRIZER, - .genderRatio = PERCENT_FEMALE(25), - .eggCycles = 25, + .baseHP = 60, + .baseAttack = 70, + .baseDefense = 105, + .baseSpeed = 75, + .baseSpAttack = 70, + .baseSpDefense = 120, + .types = { TYPE_GROUND, TYPE_PSYCHIC}, + .catchRate = 90, + .expYield = 175, + .evYield_SpDefense = 2, + .itemRare = ITEM_LIGHT_CLAY, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_MOTOR_DRIVE, ABILITY_NONE, ABILITY_VITAL_SPIRIT}, - .bodyColor = BODY_COLOR_YELLOW, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, + .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, - }, - - [SPECIES_MAGMORTAR] = - { - .baseHP = 75, - .baseAttack = 95, - .baseDefense = 67, - .baseSpeed = 83, - .baseSpAttack = 125, - .baseSpDefense = 95, - .types = { TYPE_FIRE, TYPE_FIRE}, - .catchRate = 30, - .expYield = 243, - .evYield_SpAttack = 3, - .itemRare = ITEM_MAGMARIZER, - .genderRatio = PERCENT_FEMALE(25), - .eggCycles = 25, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_FLAME_BODY, ABILITY_NONE, ABILITY_VITAL_SPIRIT}, - .bodyColor = BODY_COLOR_RED, - .noFlip = TRUE, - }, - - [SPECIES_TOGEKISS] = + .speciesName = _("Claydol"), + .cryId = CRY_CLAYDOL, + .natDexNum = NATIONAL_DEX_CLAYDOL, + .categoryName = _("Clay Doll"), + .height = 15, + .weight = 1080, + .description = COMPOUND_STRING( + "A Claydol sleeps while hovering in midair.\n" + "Its arms are separate from its body.\n" + "They are kept floating by the Pokémon's\n" + "manipulation of psychic power."), + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 280, + .trainerOffset = 1, + FRONT_PIC(Claydol, 56, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_Claydol, + .frontAnimId = ANIM_V_SLIDE_WOBBLE_SMALL, + .enemyMonElevation = 10, + BACK_PIC(Claydol, 64, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(Claydol), + ICON(Claydol, 0), + .footprint = gMonFootprint_Claydol, + LEARNSETS(Claydol), + }, +#endif //P_FAMILY_BALTOY + +#if P_FAMILY_LILEEP + [SPECIES_LILEEP] = { - .baseHP = 85, - .baseAttack = 50, - .baseDefense = 95, - .baseSpeed = 80, - .baseSpAttack = 120, - .baseSpDefense = 115, - #if P_UPDATED_TYPES >= GEN_6 - .types = { TYPE_FAIRY, TYPE_FLYING}, - #else - .types = { TYPE_NORMAL, TYPE_FLYING}, - #endif - .catchRate = 30, - .expYield = 245, - .evYield_SpAttack = 2, + .baseHP = 66, + .baseAttack = 41, + .baseDefense = 77, + .baseSpeed = 23, + .baseSpAttack = 61, + .baseSpDefense = 87, + .types = { TYPE_ROCK, TYPE_GRASS }, + .catchRate = 45, + .expYield = 71, .evYield_SpDefense = 1, + .itemRare = ITEM_BIG_ROOT, .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 10, + .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_HUSTLE, ABILITY_SERENE_GRACE, ABILITY_SUPER_LUCK}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = TRUE, + .growthRate = GROWTH_ERRATIC, + .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, + .abilities = {ABILITY_SUCTION_CUPS, ABILITY_NONE, ABILITY_STORM_DRAIN}, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + .speciesName = _("Lileep"), + .cryId = CRY_LILEEP, + .natDexNum = NATIONAL_DEX_LILEEP, + .categoryName = _("Sea Lily"), + .height = 10, + .weight = 238, + .description = COMPOUND_STRING( + "It disguises itself as seaweed by making\n" + "its tentacles sway. Unsuspecting prey\n" + "that come too close are swallowed whole.\n" + "It became extinct 100 million years ago."), + .pokemonScale = 305, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Lileep, 48, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Lileep, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Lileep, 48, 48), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_H_STRETCH, + PALETTE(Lileep), + ICON(Lileep, 2), + .footprint = gMonFootprint_Lileep, + LEARNSETS(Lileep), + .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_CRADILY}), }, - [SPECIES_YANMEGA] = + [SPECIES_CRADILY] = { .baseHP = 86, - .baseAttack = 76, - .baseDefense = 86, - .baseSpeed = 95, - .baseSpAttack = 116, - .baseSpDefense = 56, - .types = { TYPE_BUG, TYPE_FLYING}, - .catchRate = 30, - .expYield = 180, - .evYield_Attack = 2, - .itemRare = ITEM_WIDE_LENS, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .baseAttack = 81, + .baseDefense = 97, + .baseSpeed = 43, + .baseSpAttack = 81, + .baseSpDefense = 107, + .types = { TYPE_ROCK, TYPE_GRASS }, + .catchRate = 45, + .expYield = 173, + .evYield_SpDefense = 2, + .itemRare = ITEM_BIG_ROOT, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SPEED_BOOST, ABILITY_TINTED_LENS, ABILITY_FRISK}, + .growthRate = GROWTH_ERRATIC, + .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, + .abilities = {ABILITY_SUCTION_CUPS, ABILITY_NONE, ABILITY_STORM_DRAIN}, .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - }, - - [SPECIES_LEAFEON] = + .speciesName = _("Cradily"), + .cryId = CRY_CRADILY, + .natDexNum = NATIONAL_DEX_CRADILY, + .categoryName = _("Barnacle"), + .height = 15, + .weight = 604, + .description = COMPOUND_STRING( + "It drags its heavy body along the\n" + "seafloor. It makes its nest in the shallows\n" + "of warm seas. Cradily can be seen on\n" + "beaches when the tide goes out."), + .pokemonScale = 267, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Cradily, 56, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Cradily, + .frontAnimId = ANIM_V_SHAKE_TWICE, + BACK_PIC(Cradily, 56, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_V_STRETCH, + PALETTE(Cradily), + ICON(Cradily, 1), + .footprint = gMonFootprint_Cradily, + LEARNSETS(Cradily), + }, +#endif //P_FAMILY_LILEEP + +#if P_FAMILY_ANORITH + [SPECIES_ANORITH] = { - .baseHP = 65, - .baseAttack = 110, - .baseDefense = 130, - .baseSpeed = 95, - .baseSpAttack = 60, - .baseSpDefense = 65, - .types = { TYPE_GRASS, TYPE_GRASS}, + .baseHP = 45, + .baseAttack = 95, + .baseDefense = 50, + .baseSpeed = 75, + .baseSpAttack = 40, + .baseSpDefense = 50, + .types = { TYPE_ROCK, TYPE_BUG }, .catchRate = 45, - .expYield = 184, - .evYield_Defense = 2, + .expYield = 71, + .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 35, - .friendship = 35, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_LEAF_GUARD, ABILITY_LEAF_GUARD, ABILITY_CHLOROPHYLL}, - .bodyColor = BODY_COLOR_GREEN, + .eggCycles = 30, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_ERRATIC, + .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, + .abilities = {ABILITY_BATTLE_ARMOR, ABILITY_NONE, ABILITY_SWIFT_SWIM}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, + .speciesName = _("Anorith"), + .cryId = CRY_ANORITH, + .natDexNum = NATIONAL_DEX_ANORITH, + .categoryName = _("Old Shrimp"), + .height = 7, + .weight = 125, + .description = COMPOUND_STRING( + "It was resurrected from a fossil using the\n" + "power of science. It swims by undulating\n" + "the eight wings at its sides. They were\n" + "feet that adapted to life in the sea."), + .pokemonScale = 296, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Anorith, 48, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Anorith, + .frontAnimId = ANIM_TWIST, + BACK_PIC(Anorith, 56, 32), + .backPicYOffset = 19, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(Anorith), + ICON(Anorith, 0), + .footprint = gMonFootprint_Anorith, + LEARNSETS(Anorith), + .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_ARMALDO}), }, - [SPECIES_GLACEON] = + [SPECIES_ARMALDO] = { - .baseHP = 65, - .baseAttack = 60, - .baseDefense = 110, - .baseSpeed = 65, - .baseSpAttack = 130, - .baseSpDefense = 95, - .types = { TYPE_ICE, TYPE_ICE}, + .baseHP = 75, + .baseAttack = 125, + .baseDefense = 100, + .baseSpeed = 45, + .baseSpAttack = 70, + .baseSpDefense = 80, + .types = { TYPE_ROCK, TYPE_BUG }, .catchRate = 45, - .expYield = 184, - .evYield_SpAttack = 2, + .expYield = 173, + .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 35, - .friendship = 35, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SNOW_CLOAK, ABILITY_SNOW_CLOAK, ABILITY_ICE_BODY}, - .bodyColor = BODY_COLOR_BLUE, + .eggCycles = 30, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_ERRATIC, + .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, + .abilities = {ABILITY_BATTLE_ARMOR, ABILITY_NONE, ABILITY_SWIFT_SWIM}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, - }, - - [SPECIES_GLISCOR] = + .speciesName = _("Armaldo"), + .cryId = CRY_ARMALDO, + .natDexNum = NATIONAL_DEX_ARMALDO, + .categoryName = _("Plate"), + .height = 15, + .weight = 682, + .description = COMPOUND_STRING( + "Armaldo usually lives on land. However,\n" + "when it hunts for prey, it dives beneath\n" + "the ocean. It swims around using its two\n" + "large wings."), + .pokemonScale = 312, + .pokemonOffset = 3, + .trainerScale = 271, + .trainerOffset = 0, + FRONT_PIC(Armaldo, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Armaldo, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(Armaldo, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Armaldo), + ICON(Armaldo, 2), + .footprint = gMonFootprint_Armaldo, + LEARNSETS(Armaldo), + }, +#endif //P_FAMILY_ANORITH + +#if P_FAMILY_FEEBAS + [SPECIES_FEEBAS] = { - .baseHP = 75, - .baseAttack = 95, - .baseDefense = 125, - .baseSpeed = 95, - .baseSpAttack = 45, - .baseSpDefense = 75, - .types = { TYPE_GROUND, TYPE_FLYING}, - .catchRate = 30, - .expYield = 179, - .evYield_Defense = 2, + .baseHP = 20, + .baseAttack = 15, + .baseDefense = 20, + .baseSpeed = 80, + .baseSpAttack = 10, + .baseSpDefense = 55, + .types = { TYPE_WATER, TYPE_WATER}, + .catchRate = 255, + .expYield = 40, + .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_HYPER_CUTTER, ABILITY_SAND_VEIL, ABILITY_POISON_HEAL}, - .bodyColor = BODY_COLOR_PURPLE, + .growthRate = GROWTH_ERRATIC, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_SWIFT_SWIM, ABILITY_OBLIVIOUS, ABILITY_ADAPTABILITY}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .speciesName = _("Feebas"), + .cryId = CRY_FEEBAS, + .natDexNum = NATIONAL_DEX_FEEBAS, + .categoryName = _("Fish"), + .height = 6, + .weight = 74, + .description = COMPOUND_STRING( + "Feebas live in ponds that are heavily\n" + "infested with weeds. Because of its\n" + "hopelessly shabby appearance, it\n" + "seems as if few Trainers raise it."), + .pokemonScale = 423, + .pokemonOffset = -4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Feebas, 40, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Feebas, + .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW, + BACK_PIC(Feebas, 48, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_H_SPRING, + PALETTE(Feebas), + ICON(Feebas, 2), + .footprint = gMonFootprint_Feebas, + LEARNSETS(Feebas), + .evolutions = EVOLUTION({EVO_BEAUTY, 170, SPECIES_MILOTIC}, + {EVO_TRADE_ITEM, ITEM_PRISM_SCALE, SPECIES_MILOTIC}, + {EVO_ITEM, ITEM_PRISM_SCALE, SPECIES_MILOTIC}), }, - [SPECIES_MAMOSWINE] = + [SPECIES_MILOTIC] = { - .baseHP = 110, - .baseAttack = 130, - .baseDefense = 80, - .baseSpeed = 80, - .baseSpAttack = 70, - .baseSpDefense = 60, - .types = { TYPE_ICE, TYPE_GROUND}, - .catchRate = 50, - .expYield = 239, - .evYield_Attack = 3, + .baseHP = 95, + .baseAttack = 60, + .baseDefense = 79, + .baseSpeed = 81, + .baseSpAttack = 100, + .baseSpDefense = 125, + .types = { TYPE_WATER, TYPE_WATER}, + .catchRate = 60, + .expYield = 189, + .evYield_SpDefense = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_OBLIVIOUS, ABILITY_SNOW_CLOAK, ABILITY_THICK_FAT}, - .bodyColor = BODY_COLOR_BROWN, + .growthRate = GROWTH_ERRATIC, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_MARVEL_SCALE, ABILITY_COMPETITIVE, ABILITY_CUTE_CHARM}, + .bodyColor = BODY_COLOR_PINK, .noFlip = FALSE, - }, - - [SPECIES_PORYGON_Z] = + .speciesName = _("Milotic"), + .cryId = CRY_MILOTIC, + .natDexNum = NATIONAL_DEX_MILOTIC, + .categoryName = _("Tender"), + .height = 62, + .weight = 1620, + .description = COMPOUND_STRING( + "It is said to live at the bottom of\n" + "large lakes. Considered to be the most\n" + "beautiful of all Pokémon, it has been\n" + "depicted in paintings and statues."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 360, + .trainerOffset = 7, + FRONT_PIC(Milotic, 64, 64), + FRONT_PIC_FEMALE(Milotic, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Milotic, + .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, + .frontAnimDelay = 45, + BACK_PIC(Milotic, 64, 64), + BACK_PIC_FEMALE(Milotic, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, + PALETTE(Milotic), + ICON(Milotic, 2), + .footprint = gMonFootprint_Milotic, + LEARNSETS(Milotic), + }, +#endif //P_FAMILY_FEEBAS + +#if P_FAMILY_CASTFORM +#define CASTFORM_MISC_INFO \ + .baseHP = 70, \ + .baseAttack = 70, \ + .baseDefense = 70, \ + .baseSpeed = 70, \ + .baseSpAttack = 70, \ + .baseSpDefense = 70, \ + .catchRate = 45, \ + .expYield = 147, \ + .evYield_HP = 1, \ + .itemCommon = ITEM_MYSTIC_WATER, \ + .itemRare = ITEM_MYSTIC_WATER, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 25, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_AMORPHOUS}, \ + .abilities = {ABILITY_FORECAST, ABILITY_NONE}, \ + .noFlip = FALSE, \ + .speciesName = _("Castform"), \ + .cryId = CRY_CASTFORM, \ + .natDexNum = NATIONAL_DEX_CASTFORM, \ + .categoryName = _("Weather"), \ + .height = 3, \ + .weight = 8, \ + .pokemonScale = 435, \ + .pokemonOffset = -5, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Castform, \ + LEARNSETS(Castform), \ + .formSpeciesIdTable = sCastformFormSpeciesIdTable, \ + .formChangeTable = sCastformFormChangeTable + + [SPECIES_CASTFORM_NORMAL] = + { + CASTFORM_MISC_INFO, + .types = { TYPE_NORMAL, TYPE_NORMAL }, + .bodyColor = BODY_COLOR_GRAY, + .description = COMPOUND_STRING( + "It alters its form depending on the\n" + "weather. Changes in the climate such as\n" + "the temperature and humidity appear to\n" + "affect its cellular structure."), + FRONT_PIC(CastformNormal, 24, 32), + .frontPicYOffset = 17, + .frontAnimFrames = sAnims_CastformNormal, + .frontAnimId = ANIM_H_SLIDE_WOBBLE, + .enemyMonElevation = 16, + BACK_PIC(CastformNormal, 32, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(CastformNormal), + ICON(CastformNormal, 0), + }, + + [SPECIES_CASTFORM_SUNNY] = + { + CASTFORM_MISC_INFO, + .types = { TYPE_FIRE, TYPE_FIRE }, + .bodyColor = BODY_COLOR_RED, + .description = COMPOUND_STRING( + "Castform takes this form on bright days.\n" + "In an experiment where is was placed in\n" + "front of a heater, it didn't change to this\n" + "form. Its body is warm and toasty."), + FRONT_PIC(CastformSunny, 40, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_CastformSunny, + .frontAnimId = ANIM_GROW_VIBRATE, + .enemyMonElevation = 5, + BACK_PIC(CastformSunny, 56, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, + PALETTE(CastformSunny), + ICON(CastformSunny, 0), + }, + + [SPECIES_CASTFORM_RAINY] = + { + CASTFORM_MISC_INFO, + .types = { TYPE_WATER, TYPE_WATER }, + .bodyColor = BODY_COLOR_BLUE, + .description = COMPOUND_STRING( + "This is Castform's form while it's raining.\n" + "In an experiment where it was placed in a\n" + "shower, it didn't change to this form. Its\n" + "body is soft, slightly swollen with water."), + FRONT_PIC(CastformRainy, 32, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_CastformRainy, + .frontAnimId = ANIM_SWING_CONVEX_FAST, + .enemyMonElevation = 5, + BACK_PIC(CastformRainy, 40, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(CastformRainy), + ICON(CastformRainy, 0), + }, + + [SPECIES_CASTFORM_SNOWY] = + { + CASTFORM_MISC_INFO, + .types = { TYPE_ICE, TYPE_ICE }, + .bodyColor = BODY_COLOR_WHITE, + .description = COMPOUND_STRING( + "This is Castform's form in a hailstorm.\n" + "In an experiment where it was placed\n" + "in a freezer, it didn't change to this form.\n" + "Its cold skin is as smooth as ice."), + FRONT_PIC(CastformSnowy, 40, 56), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_CastformSnowy, + .frontAnimId = ANIM_V_STRETCH, + .enemyMonElevation = 5, + BACK_PIC(CastformSnowy, 56, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(CastformSnowy), + ICON(CastformSnowy, 0), + }, +#endif //P_FAMILY_CASTFORM + +#if P_FAMILY_KECLEON + [SPECIES_KECLEON] = { - .baseHP = 85, - .baseAttack = 80, + .baseHP = 60, + .baseAttack = 90, .baseDefense = 70, - .baseSpeed = 90, - .baseSpAttack = 135, - .baseSpDefense = 75, + .baseSpeed = 40, + .baseSpAttack = 60, + .baseSpDefense = 120, .types = { TYPE_NORMAL, TYPE_NORMAL}, - .catchRate = 30, - .expYield = 241, - .evYield_SpAttack = 3, - .genderRatio = MON_GENDERLESS, + .catchRate = 200, + .expYield = 154, + .evYield_SpDefense = 1, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_ADAPTABILITY, ABILITY_DOWNLOAD, ABILITY_ANALYTIC}, - .bodyColor = BODY_COLOR_RED, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_COLOR_CHANGE, ABILITY_NONE, ABILITY_PROTEAN}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - }, + .speciesName = _("Kecleon"), + .cryId = CRY_KECLEON, + .natDexNum = NATIONAL_DEX_KECLEON, + .categoryName = _("Color Swap"), + .height = 10, + .weight = 220, + .description = COMPOUND_STRING( + "A Pokémon that has the ability to alter its\n" + "body colors to match its surroundings.\n" + "A Kecleon reverts to its original colors if\n" + "it is startled."), + .pokemonScale = 316, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Kecleon, 48, 56), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Kecleon, + .frontAnimId = ANIM_FLICKER_INCREASING, + .frontAnimDelay = 30, + BACK_PIC(Kecleon, 56, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_H_VIBRATE, + PALETTE(Kecleon), + ICON(Kecleon, 1), + .footprint = gMonFootprint_Kecleon, + LEARNSETS(Kecleon), + }, +#endif //P_FAMILY_KECLEON + +#if P_FAMILY_SHUPPET + [SPECIES_SHUPPET] = + { + .baseHP = 44, + .baseAttack = 75, + .baseDefense = 35, + .baseSpeed = 45, + .baseSpAttack = 63, + .baseSpDefense = 33, + .types = { TYPE_GHOST, TYPE_GHOST}, + .catchRate = 225, + .expYield = 59, + .evYield_Attack = 1, + .itemRare = ITEM_SPELL_TAG, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = 35, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, + .abilities = {ABILITY_INSOMNIA, ABILITY_FRISK, ABILITY_CURSED_BODY}, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + .speciesName = _("Shuppet"), + .cryId = CRY_SHUPPET, + .natDexNum = NATIONAL_DEX_SHUPPET, + .categoryName = _("Puppet"), + .height = 6, + .weight = 23, + .description = COMPOUND_STRING( + "This Pokémon roams about deep in the\n" + "night seeking such negative emotions as\n" + "grudges and envy. It retreats to its nest\n" + "when the sun begins to rise."), + .pokemonScale = 440, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Shuppet, 40, 40), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_Shuppet, + .frontAnimId = ANIM_V_SLIDE_WOBBLE, + .enemyMonElevation = 14, + BACK_PIC(Shuppet, 56, 56), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_H_VIBRATE, + PALETTE(Shuppet), + ICON(Shuppet, 0), + .footprint = gMonFootprint_Shuppet, + LEARNSETS(Shuppet), + .evolutions = EVOLUTION({EVO_LEVEL, 37, SPECIES_BANETTE}), + }, + +#define BANETTE_MISC_INFO \ + .types = { TYPE_GHOST, TYPE_GHOST}, \ + .catchRate = 45, \ + .evYield_Attack = 2, \ + .itemRare = ITEM_SPELL_TAG, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 25, \ + .friendship = 35, \ + .growthRate = GROWTH_FAST, \ + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, \ + .bodyColor = BODY_COLOR_BLACK, \ + .noFlip = FALSE, \ + .speciesName = _("Banette"), \ + .natDexNum = NATIONAL_DEX_BANETTE, \ + .categoryName = _("Marionette"), \ + .footprint = gMonFootprint_Banette, \ + LEARNSETS(Banette), \ + .formSpeciesIdTable = sBanetteFormSpeciesIdTable, \ + .formChangeTable = sBanetteFormChangeTable - [SPECIES_GALLADE] = + [SPECIES_BANETTE] = { - .baseHP = 68, - .baseAttack = 125, + BANETTE_MISC_INFO, + .baseHP = 64, + .baseAttack = 115, .baseDefense = 65, - .baseSpeed = 80, - .baseSpAttack = 65, - .baseSpDefense = 115, - .types = { TYPE_PSYCHIC, TYPE_FIGHTING}, - .catchRate = 45, - .expYield = 233, - .evYield_Attack = 3, - .genderRatio = MON_MALE, - .eggCycles = 20, + .baseSpeed = 65, + .baseSpAttack = 83, + .baseSpDefense = 63, + .expYield = 159, + .abilities = {ABILITY_INSOMNIA, ABILITY_FRISK, ABILITY_CURSED_BODY}, + .cryId = CRY_BANETTE, + .height = 11, + .weight = 125, + .description = COMPOUND_STRING( + "An abandoned plush doll became this\n" + "Pokémon. They are said to live in garbage\n" + "dumps and wander about in search of the\n" + "children that threw them away."), + .pokemonScale = 262, + .pokemonOffset = 9, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Banette, 56, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Banette, + .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, + .enemyMonElevation = 8, + BACK_PIC(Banette, 64, 64), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_H_VIBRATE, + PALETTE(Banette), + ICON(Banette, 0), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_BANETTE_MEGA] = + { + BANETTE_MISC_INFO, + .baseHP = 64, + .baseAttack = 165, + .baseDefense = 75, + .baseSpeed = 75, + .baseSpAttack = 93, + .baseSpDefense = 83, + .expYield = 194, + .abilities = {ABILITY_PRANKSTER, ABILITY_PRANKSTER, ABILITY_PRANKSTER}, + .cryId = CRY_BANETTE_MEGA, + .height = 12, + .weight = 130, + .description = COMPOUND_STRING( + "Extraordinary energy amplifies its\n" + "cursing power to such an extent that it\n" + "can't help but curse its own Trainer."), + .pokemonScale = 262, + .pokemonOffset = 9, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(BanetteMega, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_BanetteMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 5, + BACK_PIC(BanetteMega, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_H_VIBRATE, + PALETTE(BanetteMega), + ICON(BanetteMega, 0), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_SHUPPET + +#if P_FAMILY_DUSKULL + [SPECIES_DUSKULL] = + { + .baseHP = 20, + .baseAttack = 40, + .baseDefense = 90, + .baseSpeed = 25, + .baseSpAttack = 30, + .baseSpDefense = 90, + .types = { TYPE_GHOST, TYPE_GHOST}, + .catchRate = 190, + .expYield = 59, + .evYield_SpDefense = 1, + .itemRare = ITEM_SPELL_TAG, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, .friendship = 35, - .growthRate = GROWTH_SLOW, - #if P_UPDATED_EGG_GROUPS >= GEN_8 - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_AMORPHOUS}, - #else - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - #endif - #if P_UPDATED_ABILITIES >= GEN_9 - .abilities = {ABILITY_STEADFAST, ABILITY_SHARPNESS, ABILITY_JUSTIFIED}, - #else - .abilities = {ABILITY_STEADFAST, ABILITY_NONE, ABILITY_JUSTIFIED}, - #endif - .bodyColor = BODY_COLOR_WHITE, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, + .abilities = {ABILITY_LEVITATE, ABILITY_NONE, ABILITY_FRISK}, + .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, + .speciesName = _("Duskull"), + .cryId = CRY_DUSKULL, + .natDexNum = NATIONAL_DEX_DUSKULL, + .categoryName = _("Requiem"), + .height = 8, + .weight = 150, + .description = COMPOUND_STRING( + "A glare from its single scarlet eye makes\n" + "even burly grown-ups freeze in utter fear.\n" + "It is a nocturnal Pokémon that roams\n" + "about under the cloak of darkness."), + .pokemonScale = 406, + .pokemonOffset = -4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Duskull, 40, 48), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Duskull, + .frontAnimId = ANIM_ZIGZAG_FAST, + .enemyMonElevation = 13, + BACK_PIC(Duskull, 56, 56), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_H_VIBRATE, + PALETTE(Duskull), + ICON(Duskull, 0), + .footprint = gMonFootprint_Duskull, + LEARNSETS(Duskull), + .evolutions = EVOLUTION({EVO_LEVEL, 37, SPECIES_DUSCLOPS}), }, - [SPECIES_PROBOPASS] = + [SPECIES_DUSCLOPS] = { - .baseHP = 60, - .baseAttack = 55, - .baseDefense = 145, - .baseSpeed = 40, - .baseSpAttack = 75, - .baseSpDefense = 150, - .types = { TYPE_ROCK, TYPE_STEEL}, - .catchRate = 60, - .expYield = 184, + .baseHP = 40, + .baseAttack = 70, + .baseDefense = 130, + .baseSpeed = 25, + .baseSpAttack = 60, + .baseSpDefense = 130, + .types = { TYPE_GHOST, TYPE_GHOST}, + .catchRate = 90, + .expYield = 159, .evYield_Defense = 1, - .evYield_SpDefense = 2, - .itemRare = ITEM_MAGNET, + .evYield_SpDefense = 1, + .itemRare = ITEM_SPELL_TAG, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_STURDY, ABILITY_MAGNET_PULL, ABILITY_SAND_FORCE}, - .bodyColor = BODY_COLOR_GRAY, + .eggCycles = 25, + .friendship = 35, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, + .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_FRISK}, + .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, - }, - + .speciesName = _("Dusclops"), + .cryId = CRY_DUSCLOPS, + .natDexNum = NATIONAL_DEX_DUSCLOPS, + .categoryName = _("Beckon"), + .height = 16, + .weight = 306, + .description = COMPOUND_STRING( + "It is thought that its body is hollow with\n" + "only a spectral ball of fire burning inside.\n" + "However, no one has been able to\n" + "confirm this theory as fact."), + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 299, + .trainerOffset = 1, + FRONT_PIC(Dusclops, 64, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_Dusclops, + .frontAnimId = ANIM_H_VIBRATE, + .frontAnimDelay = 30, + BACK_PIC(Dusclops, 64, 64), + .backPicYOffset = 2, + .backAnimId = BACK_ANIM_H_VIBRATE, + PALETTE(Dusclops), + ICON(Dusclops, 0), + .footprint = gMonFootprint_Dusclops, + LEARNSETS(Dusclops), + .evolutions = EVOLUTION({EVO_TRADE_ITEM, ITEM_REAPER_CLOTH, SPECIES_DUSKNOIR}, + {EVO_ITEM, ITEM_REAPER_CLOTH, SPECIES_DUSKNOIR}), + }, + +#if P_GEN_4_CROSS_EVOS [SPECIES_DUSKNOIR] = { .baseHP = 45, @@ -12213,12799 +24675,35727 @@ const struct SpeciesInfo gSpeciesInfo[] = .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_FRISK}, .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, - }, - - [SPECIES_FROSLASS] = - { - .baseHP = 70, - .baseAttack = 80, - .baseDefense = 70, - .baseSpeed = 110, - .baseSpAttack = 80, - .baseSpDefense = 70, - .types = { TYPE_ICE, TYPE_GHOST}, - .catchRate = 75, - .expYield = 168, - .evYield_Speed = 2, - .genderRatio = MON_FEMALE, - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_SNOW_CLOAK, ABILITY_NONE, ABILITY_CURSED_BODY}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - }, - - [SPECIES_ROTOM] = + .speciesName = _("Dusknoir"), + .cryId = CRY_DUSKNOIR, + .natDexNum = NATIONAL_DEX_DUSKNOIR, + .categoryName = _("Gripper"), + .height = 22, + .weight = 1066, + .description = COMPOUND_STRING( + "This feared Pokémon is said to travel to\n" + "worlds unknown. Some even believe that\n" + "it takes lost spirits into its pliant body\n" + "and guides them home."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 348, + .trainerOffset = 6, + FRONT_PIC(Dusknoir, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Dusknoir, + .frontAnimId = ANIM_H_SLIDE, + BACK_PIC(Dusknoir, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(Dusknoir), + ICON(Dusknoir, 2), + .footprint = gMonFootprint_Dusknoir, + LEARNSETS(Dusknoir), + }, +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_DUSKULL + +#if P_FAMILY_TROPIUS + [SPECIES_TROPIUS] = { - .baseHP = 50, - .baseAttack = 50, - .baseDefense = 77, - .baseSpeed = 91, - .baseSpAttack = 95, - .baseSpDefense = 77, - .types = { TYPE_ELECTRIC, TYPE_GHOST}, - .catchRate = 45, - .expYield = 154, - .evYield_Speed = 1, - .evYield_SpAttack = 1, - .genderRatio = MON_GENDERLESS, - .eggCycles = 20, + .baseHP = 99, + .baseAttack = 68, + .baseDefense = 83, + .baseSpeed = 51, + .baseSpAttack = 72, + .baseSpDefense = 87, + .types = { TYPE_GRASS, TYPE_FLYING}, + .catchRate = 200, + .expYield = 161, + .evYield_HP = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, - - [SPECIES_UXIE] = - { - .baseHP = 75, - .baseAttack = 75, - .baseDefense = 130, - .baseSpeed = 95, - .baseSpAttack = 75, - .baseSpDefense = 130, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - .catchRate = 3, - .expYield = 261, - .evYield_Defense = 2, - .evYield_SpDefense = 1, - .genderRatio = MON_GENDERLESS, - .eggCycles = 80, - .friendship = 140, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_YELLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS}, + .abilities = {ABILITY_CHLOROPHYLL, ABILITY_SOLAR_POWER, ABILITY_HARVEST}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_MESPRIT] = + .speciesName = _("Tropius"), + .cryId = CRY_TROPIUS, + .natDexNum = NATIONAL_DEX_TROPIUS, + .categoryName = _("Fruit"), + .height = 20, + .weight = 1000, + .description = COMPOUND_STRING( + "It flies by flapping its broad leaves.\n" + "The bunch of fruit that grows around its\n" + "neck is deliciously sweet. In the spring,\n" + "it scatters pollen from its neck."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 344, + .trainerOffset = 7, + FRONT_PIC(Tropius, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Tropius, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(Tropius, 56, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(Tropius), + ICON(Tropius, 1), + .footprint = gMonFootprint_Tropius, + LEARNSETS(Tropius), + }, +#endif //P_FAMILY_TROPIUS + +#if P_FAMILY_CHIMECHO +#if P_GEN_4_CROSS_EVOS + [SPECIES_CHINGLING] = { - .baseHP = 80, - .baseAttack = 105, - .baseDefense = 105, - .baseSpeed = 80, - .baseSpAttack = 105, - .baseSpDefense = 105, + .baseHP = 45, + .baseAttack = 30, + .baseDefense = 50, + .baseSpeed = 45, + .baseSpAttack = 65, + .baseSpDefense = 50, .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - .catchRate = 3, - .expYield = 261, - .evYield_Attack = 1, + .catchRate = 120, + .expYield = 57, .evYield_SpAttack = 1, - .evYield_SpDefense = 1, - .genderRatio = MON_GENDERLESS, - .eggCycles = 80, - .friendship = 140, - .growthRate = GROWTH_SLOW, + .itemRare = ITEM_CLEANSE_TAG, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_PINK, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, + .speciesName = _("Chingling"), + .cryId = CRY_CHINGLING, + .natDexNum = NATIONAL_DEX_CHINGLING, + .categoryName = _("Bell"), + .height = 2, + .weight = 6, + .description = COMPOUND_STRING( + "There is an orb inside its mouth.\n" + "When it hops, the orb bounces all\n" + "over and makes a ringing sound.\n" + "It can cry for an awfully long time."), + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Chingling, 40, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Chingling, + .frontAnimId = ANIM_H_SLIDE_WOBBLE, + .enemyMonElevation = 5, + BACK_PIC(Chingling, 48, 48), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Chingling), + ICON(Chingling, 1), + .footprint = gMonFootprint_Chingling, + LEARNSETS(Chingling), + .evolutions = EVOLUTION({EVO_FRIENDSHIP_NIGHT, 0, SPECIES_CHIMECHO}), + }, +#endif //P_GEN_4_CROSS_EVOS - [SPECIES_AZELF] = + [SPECIES_CHIMECHO] = { - .baseHP = 75, - .baseAttack = 125, - .baseDefense = 70, - .baseSpeed = 115, - .baseSpAttack = 125, - .baseSpDefense = 70, + .baseAttack = 50, + .baseSpeed = 65, + .baseSpAttack = 95, + #if P_UPDATED_STATS >= GEN_7 + .baseHP = 75, + .baseDefense = 80, + .baseSpDefense = 90, + #else + .baseHP = 65, + .baseDefense = 70, + .baseSpDefense = 80, + #endif .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - .catchRate = 3, - .expYield = 261, - .evYield_Attack = 2, + .catchRate = 45, + .expYield = 159, .evYield_SpAttack = 1, - .genderRatio = MON_GENDERLESS, - .eggCycles = 80, - .friendship = 140, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .evYield_SpDefense = 1, + .itemRare = ITEM_CLEANSE_TAG, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, + .speciesName = _("Chimecho"), + .cryId = CRY_CHIMECHO, + .natDexNum = NATIONAL_DEX_CHIMECHO, + .categoryName = _("Wind Chime"), + .height = 6, + .weight = 10, + .description = COMPOUND_STRING( + "They fly about very actively when the hot\n" + "season arrives. They communicate among\n" + "themselves using seven different and\n" + "distinguishing cries."), + .pokemonScale = 505, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Chimecho, 48, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Chimecho, + .frontAnimId = ANIM_H_SLIDE_WOBBLE, + .enemyMonElevation = 16, + BACK_PIC(Chimecho, 64, 56), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Chimecho), + ICON(Chimecho, 0), + .footprint = gMonFootprint_Chimecho, + LEARNSETS(Chimecho), + }, +#endif //P_FAMILY_CHIMECHO + +#if P_FAMILY_ABSOL +#define ABSOL_MISC_INFO \ + .types = { TYPE_DARK, TYPE_DARK}, \ + .catchRate = 30, \ + .evYield_Attack = 2, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 25, \ + .friendship = 35, \ + .growthRate = GROWTH_MEDIUM_SLOW, \ + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, \ + .bodyColor = BODY_COLOR_WHITE, \ + .noFlip = TRUE, \ + .speciesName = _("Absol"), \ + .natDexNum = NATIONAL_DEX_ABSOL, \ + .categoryName = _("Disaster"), \ + .height = 12, \ + .pokemonScale = 301, \ + .pokemonOffset = 3, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Absol, \ + LEARNSETS(Absol), \ + .formSpeciesIdTable = sAbsolFormSpeciesIdTable, \ + .formChangeTable = sAbsolFormChangeTable - [SPECIES_DIALGA] = + [SPECIES_ABSOL] = { - .baseHP = 100, - .baseAttack = 120, - .baseDefense = 120, - .baseSpeed = 90, - .baseSpAttack = 150, - .baseSpDefense = 100, - .types = { TYPE_STEEL, TYPE_DRAGON}, - .catchRate = 3, - .expYield = 306, - .evYield_SpAttack = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_TELEPATHY}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_PALKIA] = + ABSOL_MISC_INFO, + .baseHP = 65, + .baseAttack = 130, + .baseDefense = 60, + .baseSpeed = 75, + .baseSpAttack = 75, + .baseSpDefense = 60, + .expYield = 163, + .abilities = {ABILITY_PRESSURE, ABILITY_SUPER_LUCK, ABILITY_JUSTIFIED}, + .cryId = CRY_ABSOL, + .weight = 470, + .description = COMPOUND_STRING( + "It sharply senses even subtle changes in\n" + "the sky and the land to predict natural\n" + "disasters. It is a long-lived Pokémon that\n" + "has a life-span of 100 years."), + FRONT_PIC(Absol, 56, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Absol, + .frontAnimId = ANIM_CIRCULAR_VIBRATE, + .frontAnimDelay = 45, + BACK_PIC(Absol, 64, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(Absol), + ICON(Absol, 0), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_ABSOL_MEGA] = { - .baseHP = 90, - .baseAttack = 120, - .baseDefense = 100, - .baseSpeed = 100, - .baseSpAttack = 150, - .baseSpDefense = 120, - .types = { TYPE_WATER, TYPE_DRAGON}, - .catchRate = 3, - .expYield = 306, - .evYield_SpAttack = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_TELEPATHY}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_HEATRAN] = + ABSOL_MISC_INFO, + .baseHP = 65, + .baseAttack = 150, + .baseDefense = 60, + .baseSpeed = 115, + .baseSpAttack = 115, + .baseSpDefense = 60, + .expYield = 198, + .abilities = {ABILITY_MAGIC_BOUNCE, ABILITY_MAGIC_BOUNCE, ABILITY_MAGIC_BOUNCE}, + .cryId = CRY_ABSOL_MEGA, + .weight = 490, + .description = COMPOUND_STRING( + "As the energy of Mega Evolution fills it,\n" + "its fur bristles. What you see on its back\n" + "are not true wings, and this Pokémon isn't\n" + "able to fly."), + FRONT_PIC(AbsolMega, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_AbsolMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(AbsolMega, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(AbsolMega), + ICON(AbsolMega, 0), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_ABSOL + +#if P_FAMILY_SNORUNT + [SPECIES_SNORUNT] = { - .baseHP = 91, - .baseAttack = 90, - .baseDefense = 106, - .baseSpeed = 77, - .baseSpAttack = 130, - .baseSpDefense = 106, - .types = { TYPE_FIRE, TYPE_STEEL}, - .catchRate = 3, - .expYield = 270, - .evYield_SpAttack = 3, + .baseHP = 50, + .baseAttack = 50, + .baseDefense = 50, + .baseSpeed = 50, + .baseSpAttack = 50, + .baseSpDefense = 50, + .types = { TYPE_ICE, TYPE_ICE}, + .catchRate = 190, + .expYield = 60, + .evYield_HP = 1, + .itemRare = ITEM_SNOWBALL, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 10, - .friendship = 100, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_FLASH_FIRE, ABILITY_NONE, ABILITY_FLAME_BODY}, - .bodyColor = BODY_COLOR_BROWN, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_INNER_FOCUS, ABILITY_ICE_BODY, ABILITY_MOODY}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, + .speciesName = _("Snorunt"), + .cryId = CRY_SNORUNT, + .natDexNum = NATIONAL_DEX_SNORUNT, + .categoryName = _("Snow Hat"), + .height = 7, + .weight = 168, + .description = COMPOUND_STRING( + "They tend to move about in groups of\n" + "around five Snorunt. In snowy regions,\n" + "it is said that when they are seen late at\n" + "night, snowfall will arrive by morning."), + .pokemonScale = 380, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Snorunt, 32, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Snorunt, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + .frontAnimDelay = 20, + BACK_PIC(Snorunt, 56, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(Snorunt), + ICON(Snorunt, 2), + .footprint = gMonFootprint_Snorunt, + LEARNSETS(Snorunt), + .evolutions = EVOLUTION({EVO_LEVEL, 42, SPECIES_GLALIE}, + {EVO_ITEM_FEMALE, ITEM_DAWN_STONE, SPECIES_FROSLASS}), + }, + +#define GLALIE_MISC_INFO \ + .types = { TYPE_ICE, TYPE_ICE}, \ + .catchRate = 75, \ + .evYield_HP = 2, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_MINERAL}, \ + .bodyColor = BODY_COLOR_GRAY, \ + .noFlip = FALSE, \ + .speciesName = _("Glalie"), \ + .natDexNum = NATIONAL_DEX_GLALIE, \ + .categoryName = _("Face"), \ + .footprint = gMonFootprint_Glalie, \ + LEARNSETS(Glalie), \ + .formSpeciesIdTable = sGlalieFormSpeciesIdTable, \ + .formChangeTable = sGlalieFormChangeTable - [SPECIES_REGIGIGAS] = + [SPECIES_GLALIE] = { - .baseHP = 110, - .baseAttack = 160, - .baseDefense = 110, - .baseSpeed = 100, + GLALIE_MISC_INFO, + .baseHP = 80, + .baseAttack = 80, + .baseDefense = 80, + .baseSpeed = 80, .baseSpAttack = 80, - .baseSpDefense = 110, - .types = { TYPE_NORMAL, TYPE_NORMAL}, - .catchRate = 3, - .expYield = 302, - .evYield_Attack = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_SLOW_START, ABILITY_NONE}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_GIRATINA_ALTERED] = + .baseSpDefense = 80, + .expYield = 168, + .abilities = {ABILITY_INNER_FOCUS, ABILITY_ICE_BODY, ABILITY_MOODY}, + .cryId = CRY_GLALIE, + .height = 15, + .weight = 2565, + .description = COMPOUND_STRING( + "A Glalie has the power to instantaneously\n" + "freeze moisture in the atmosphere.\n" + "A dazzling cloud of diamondlike ice\n" + "crystals forms around its body."), + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 344, + .trainerOffset = 0, + FRONT_PIC(Glalie, 56, 56), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Glalie, + .frontAnimId = ANIM_ZIGZAG_FAST, + .enemyMonElevation = 12, + BACK_PIC(Glalie, 64, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(Glalie), + ICON(Glalie, 0), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_GLALIE_MEGA] = { - .baseHP = 150, - .baseAttack = 100, - .baseDefense = 120, - .baseSpeed = 90, - .baseSpAttack = 100, - .baseSpDefense = 120, - .types = { TYPE_GHOST, TYPE_DRAGON}, - .catchRate = 3, - .expYield = 306, - .evYield_HP = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_TELEPATHY}, - .bodyColor = BODY_COLOR_BLACK, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_CRESSELIA] = + GLALIE_MISC_INFO, + .baseHP = 80, + .baseAttack = 120, + .baseDefense = 80, + .baseSpeed = 100, + .baseSpAttack = 120, + .baseSpDefense = 80, + .expYield = 203, + .abilities = {ABILITY_REFRIGERATE, ABILITY_REFRIGERATE, ABILITY_REFRIGERATE}, + .cryId = CRY_GLALIE_MEGA, + .height = 21, + .weight = 3502, + .description = COMPOUND_STRING( + "The power of Mega Evolution was so strong\n" + "that it smashed Glalie's jaw. Its inability\n" + "to eat very well leaves Glalie irritated."), + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 344, + .trainerOffset = 0, + FRONT_PIC(GlalieMega, 56, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_GlalieMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 8, + BACK_PIC(GlalieMega, 64, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(GlalieMega), + ICON(GlalieMega, 0), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS + +#if P_GEN_4_CROSS_EVOS + [SPECIES_FROSLASS] = { - .baseHP = 120, - .baseAttack = 70, - .baseDefense = P_UPDATED_STATS >= GEN_9 ? 110 : 120, - .baseSpeed = 85, - .baseSpAttack = 75, - .baseSpDefense = P_UPDATED_STATS >= GEN_9 ? 120 : 130, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - .catchRate = 3, - .expYield = 270, - .evYield_SpDefense = 3, + .baseHP = 70, + .baseAttack = 80, + .baseDefense = 70, + .baseSpeed = 110, + .baseSpAttack = 80, + .baseSpDefense = 70, + .types = { TYPE_ICE, TYPE_GHOST}, + .catchRate = 75, + .expYield = 168, + .evYield_Speed = 2, .genderRatio = MON_FEMALE, - .eggCycles = 120, - .friendship = 100, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_YELLOW, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_SNOW_CLOAK, ABILITY_NONE, ABILITY_CURSED_BODY}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_PHIONE] = + .speciesName = _("Froslass"), + .cryId = CRY_FROSLASS, + .natDexNum = NATIONAL_DEX_FROSLASS, + .categoryName = _("Snow Land"), + .height = 13, + .weight = 266, + .description = COMPOUND_STRING( + "When it finds people or Pokémon it likes,\n" + "it freezes them and takes them to its\n" + "chilly den, where they become its\n" + "decorations."), + .pokemonScale = 272, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Froslass, 48, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Froslass, + .frontAnimId = ANIM_V_SLIDE_WOBBLE, + BACK_PIC(Froslass, 64, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Froslass), + ICON(Froslass, 0), + .footprint = gMonFootprint_Froslass, + LEARNSETS(Froslass), + }, +#endif //P_GEN_4_CROSS_EVOS +#endif //P_FAMILY_SNORUNT + +#if P_FAMILY_SPHEAL + [SPECIES_SPHEAL] = { - .baseHP = 80, - .baseAttack = 80, - .baseDefense = 80, - .baseSpeed = 80, - .baseSpAttack = 80, - .baseSpDefense = 80, - .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 30, - .expYield = 216, + .baseHP = 70, + .baseAttack = 40, + .baseDefense = 50, + .baseSpeed = 25, + .baseSpAttack = 55, + .baseSpDefense = 50, + .types = { TYPE_ICE, TYPE_WATER}, + .catchRate = 255, + .expYield = 58, .evYield_HP = 1, - .genderRatio = MON_GENDERLESS, - .eggCycles = 40, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_HYDRATION, ABILITY_NONE}, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, + .abilities = {ABILITY_THICK_FAT, ABILITY_ICE_BODY, ABILITY_OBLIVIOUS}, .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - .flags = SPECIES_FLAG_MYTHICAL, + .speciesName = _("Spheal"), + .cryId = CRY_SPHEAL, + .natDexNum = NATIONAL_DEX_SPHEAL, + .categoryName = _("Clap"), + .height = 8, + .weight = 395, + .description = COMPOUND_STRING( + "It is completely covered with plushy fur.\n" + "As a result, it never feels the cold even\n" + "when it is rolling about on ice floes or\n" + "diving in the sea."), + .pokemonScale = 315, + .pokemonOffset = 16, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Spheal, 40, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Spheal, + .frontAnimId = ANIM_SPIN_LONG, + .frontAnimDelay = 15, + BACK_PIC(Spheal, 48, 40), + .backPicYOffset = 15, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Spheal), + ICON(Spheal, 2), + .footprint = gMonFootprint_Spheal, + LEARNSETS(Spheal), + .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_SEALEO}), }, - [SPECIES_MANAPHY] = + [SPECIES_SEALEO] = { - .baseHP = 100, - .baseAttack = 100, - .baseDefense = 100, - .baseSpeed = 100, - .baseSpAttack = 100, - .baseSpDefense = 100, - .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 3, - .expYield = 270, - .evYield_HP = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 10, + .baseHP = 90, + .baseAttack = 60, + .baseDefense = 70, + .baseSpeed = 45, + .baseSpAttack = 75, + .baseSpDefense = 70, + .types = { TYPE_ICE, TYPE_WATER}, + .catchRate = 120, + .expYield = 144, + .evYield_HP = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_HYDRATION, ABILITY_NONE}, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, + .abilities = {ABILITY_THICK_FAT, ABILITY_ICE_BODY, ABILITY_OBLIVIOUS}, .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - .flags = SPECIES_FLAG_MYTHICAL, + .speciesName = _("Sealeo"), + .cryId = CRY_SEALEO, + .natDexNum = NATIONAL_DEX_SEALEO, + .categoryName = _("Ball Roll"), + .height = 11, + .weight = 876, + .description = COMPOUND_STRING( + "Sealeo live in herds on ice floes. Using its\n" + "powerful flippers, it shatters ice.\n" + "It dives into the sea to hunt prey five\n" + "times a day."), + .pokemonScale = 338, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Sealeo, 56, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Sealeo, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Sealeo, 64, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Sealeo), + ICON(Sealeo, 2), + .footprint = gMonFootprint_Sealeo, + LEARNSETS(Sealeo), + .evolutions = EVOLUTION({EVO_LEVEL, 44, SPECIES_WALREIN}), }, - [SPECIES_DARKRAI] = + [SPECIES_WALREIN] = { - .baseHP = 70, - .baseAttack = 90, + .baseHP = 110, + .baseAttack = 80, .baseDefense = 90, - .baseSpeed = 125, - .baseSpAttack = 135, + .baseSpeed = 65, + .baseSpAttack = 95, .baseSpDefense = 90, - .types = { TYPE_DARK, TYPE_DARK}, - .catchRate = 3, - .expYield = 270, - .evYield_Speed = 1, - .evYield_SpAttack = 2, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_BAD_DREAMS, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLACK, - .noFlip = FALSE, - .flags = SPECIES_FLAG_MYTHICAL, - }, - - [SPECIES_SHAYMIN_LAND] = - { - .baseHP = 100, - .baseAttack = 100, - .baseDefense = 100, - .baseSpeed = 100, - .baseSpAttack = 100, - .baseSpDefense = 100, - .types = { TYPE_GRASS, TYPE_GRASS}, + .types = { TYPE_ICE, TYPE_WATER}, .catchRate = 45, - .expYield = 270, + .expYield = 239, .evYield_HP = 3, - .itemCommon = ITEM_LUM_BERRY, - .itemRare = ITEM_LUM_BERRY, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 100, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_NATURAL_CURE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GREEN, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, + .abilities = {ABILITY_THICK_FAT, ABILITY_ICE_BODY, ABILITY_OBLIVIOUS}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - .flags = SPECIES_FLAG_MYTHICAL, - }, - - [SPECIES_ARCEUS_NORMAL] = + .speciesName = _("Walrein"), + .cryId = CRY_WALREIN, + .natDexNum = NATIONAL_DEX_WALREIN, + .categoryName = _("Ice Break"), + .height = 14, + .weight = 1506, + .description = COMPOUND_STRING( + "To protect its herd, the leader battles\n" + "anything that invades its territory, even\n" + "at the cost of its life. Its tusks may snap\n" + "off in battle."), + .pokemonScale = 316, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Walrein, 64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Walrein, + .frontAnimId = ANIM_H_SHAKE, + BACK_PIC(Walrein, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Walrein), + ICON(Walrein, 0), + .footprint = gMonFootprint_Walrein, + LEARNSETS(Walrein), + }, +#endif //P_FAMILY_SPHEAL + +#if P_FAMILY_CLAMPERL + [SPECIES_CLAMPERL] = { - .baseHP = 120, - .baseAttack = 120, - .baseDefense = 120, - .baseSpeed = 120, - .baseSpAttack = 120, - .baseSpDefense = 120, - .types = { TYPE_NORMAL, TYPE_NORMAL}, - .catchRate = 3, - .expYield = 324, - .evYield_HP = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_MULTITYPE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_WHITE, + .baseHP = 35, + .baseAttack = 64, + .baseDefense = 85, + .baseSpeed = 32, + .baseSpAttack = 74, + .baseSpDefense = 55, + .types = { TYPE_WATER, TYPE_WATER}, + .catchRate = 255, + .expYield = 69, + .evYield_Defense = 1, + .itemCommon = ITEM_PEARL, + .itemRare = ITEM_BIG_PEARL, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_ERRATIC, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, + .abilities = {ABILITY_SHELL_ARMOR, ABILITY_NONE, ABILITY_RATTLED}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - .flags = SPECIES_FLAG_MYTHICAL, + .speciesName = _("Clamperl"), + .cryId = CRY_CLAMPERL, + .natDexNum = NATIONAL_DEX_CLAMPERL, + .categoryName = _("Bivalve"), + .height = 4, + .weight = 525, + .description = COMPOUND_STRING( + "A Clamperl slams its shell closed on prey\n" + "to prevent escape. The pearl it creates\n" + "upon evolution is said to be infused with\n" + "a mysterious energy."), + .pokemonScale = 691, + .pokemonOffset = 22, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Clamperl, 40, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Clamperl, + .frontAnimId = ANIM_TWIST, + BACK_PIC(Clamperl, 56, 40), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Clamperl), + ICON(Clamperl, 0), + .footprint = gMonFootprint_Clamperl, + LEARNSETS(Clamperl), + .evolutions = EVOLUTION({EVO_TRADE_ITEM, ITEM_DEEP_SEA_TOOTH, SPECIES_HUNTAIL}, + {EVO_TRADE_ITEM, ITEM_DEEP_SEA_SCALE, SPECIES_GOREBYSS}, + {EVO_ITEM, ITEM_DEEP_SEA_TOOTH, SPECIES_HUNTAIL}, + {EVO_ITEM, ITEM_DEEP_SEA_SCALE, SPECIES_GOREBYSS}), }, -#endif -#if P_GEN_5_POKEMON == TRUE - [SPECIES_VICTINI] = + [SPECIES_HUNTAIL] = { - .baseHP = 100, - .baseAttack = 100, - .baseDefense = 100, - .baseSpeed = 100, - .baseSpAttack = 100, - .baseSpDefense = 100, - .types = { TYPE_PSYCHIC, TYPE_FIRE}, - .catchRate = 3, - .expYield = 270, - .evYield_HP = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 100, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_VICTORY_STAR, ABILITY_NONE}, - .bodyColor = BODY_COLOR_YELLOW, + .baseHP = 55, + .baseAttack = 104, + .baseDefense = 105, + .baseSpeed = 52, + .baseSpAttack = 94, + .baseSpDefense = 75, + .types = { TYPE_WATER, TYPE_WATER}, + .catchRate = 60, + .expYield = 170, + .evYield_Attack = 1, + .evYield_Defense = 1, + .itemRare = ITEM_DEEP_SEA_TOOTH, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_ERRATIC, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, + .abilities = {ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_WATER_VEIL}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - .flags = SPECIES_FLAG_MYTHICAL, + .speciesName = _("Huntail"), + .cryId = CRY_HUNTAIL, + .natDexNum = NATIONAL_DEX_HUNTAIL, + .categoryName = _("Deep Sea"), + .height = 17, + .weight = 270, + .description = COMPOUND_STRING( + "To withstand the crushing pressure of\n" + "water deep under the sea, its spine is very\n" + "thick and sturdy. Its tail, which is shaped\n" + "like a small fish, has eyes that light up."), + .pokemonScale = 307, + .pokemonOffset = 1, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Huntail, 64, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_Huntail, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Huntail, 64, 56), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Huntail), + ICON(Huntail, 0), + .footprint = gMonFootprint_Huntail, + LEARNSETS(Huntail), }, - [SPECIES_SNIVY] = + [SPECIES_GOREBYSS] = { - .baseHP = 45, - .baseAttack = 45, - .baseDefense = 55, - .baseSpeed = 63, - .baseSpAttack = 45, - .baseSpDefense = 55, - .types = { TYPE_GRASS, TYPE_GRASS}, - .catchRate = 45, - .expYield = 62, - .evYield_Speed = 1, - .genderRatio = PERCENT_FEMALE(12.5), + .baseHP = 55, + .baseAttack = 84, + .baseDefense = 105, + .baseSpeed = 52, + .baseSpAttack = 114, + .baseSpDefense = 75, + .types = { TYPE_WATER, TYPE_WATER}, + .catchRate = 60, + .expYield = 170, + .evYield_SpAttack = 2, + .itemRare = ITEM_DEEP_SEA_SCALE, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS}, - .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_CONTRARY}, - .bodyColor = BODY_COLOR_GREEN, + .growthRate = GROWTH_ERRATIC, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, + .abilities = {ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_HYDRATION}, + .bodyColor = BODY_COLOR_PINK, .noFlip = FALSE, - }, - - [SPECIES_SERVINE] = + .speciesName = _("Gorebyss"), + .cryId = CRY_GOREBYSS, + .natDexNum = NATIONAL_DEX_GOREBYSS, + .categoryName = _("South Sea"), + .height = 18, + .weight = 226, + .description = COMPOUND_STRING( + "A Gorebyss siphons the body fluids of prey\n" + "through its thin, tubular mouth. Its light\n" + "pink body color turns vivid when it\n" + "finishes feeding."), + .pokemonScale = 278, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Gorebyss, 64, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Gorebyss, + .frontAnimId = ANIM_V_SLIDE_WOBBLE, + BACK_PIC(Gorebyss, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Gorebyss), + ICON(Gorebyss, 0), + .footprint = gMonFootprint_Gorebyss, + LEARNSETS(Gorebyss), + }, +#endif //P_FAMILY_CLAMPERL + +#if P_FAMILY_RELICANTH + [SPECIES_RELICANTH] = { - .baseHP = 60, - .baseAttack = 60, - .baseDefense = 75, - .baseSpeed = 83, - .baseSpAttack = 60, - .baseSpDefense = 75, - .types = { TYPE_GRASS, TYPE_GRASS}, - .catchRate = 45, - .expYield = 145, - .evYield_Speed = 2, + .baseHP = 100, + .baseAttack = 90, + .baseDefense = 130, + .baseSpeed = 55, + .baseSpAttack = 45, + .baseSpDefense = 65, + .types = { TYPE_WATER, TYPE_ROCK}, + .catchRate = 25, + .expYield = 170, + .evYield_HP = 1, + .evYield_Defense = 1, + .itemRare = ITEM_DEEP_SEA_SCALE, .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 40, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_2}, + .abilities = {ABILITY_SWIFT_SWIM, ABILITY_ROCK_HEAD, ABILITY_STURDY}, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + .speciesName = _("Relicanth"), + .cryId = CRY_RELICANTH, + .natDexNum = NATIONAL_DEX_RELICANTH, + .categoryName = _("Longevity"), + .height = 10, + .weight = 234, + .description = COMPOUND_STRING( + "A Pokémon that was once believed to have\n" + "been extinct. The species has not changed\n" + "its form for 100 million years. It walks on\n" + "the seafloor using its pectoral fins."), + .pokemonScale = 316, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Relicanth, 56, 56), + FRONT_PIC_FEMALE(Relicanth, 56, 56), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Relicanth, + .frontAnimId = ANIM_TIP_MOVE_FORWARD, + BACK_PIC(Relicanth, 64, 40), + BACK_PIC_FEMALE(Relicanth, 64, 40), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Relicanth), + ICON(Relicanth, 2), + .footprint = gMonFootprint_Relicanth, + LEARNSETS(Relicanth), + }, +#endif //P_FAMILY_RELICANTH + +#if P_FAMILY_LUVDISC + [SPECIES_LUVDISC] = + { + .baseHP = 43, + .baseAttack = 30, + .baseDefense = 55, + .baseSpeed = 97, + .baseSpAttack = 40, + .baseSpDefense = 65, + .types = { TYPE_WATER, TYPE_WATER}, + .catchRate = 225, + .expYield = 116, + .evYield_Speed = 1, + .itemCommon = ITEM_HEART_SCALE, + .genderRatio = PERCENT_FEMALE(75), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS}, - .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_CONTRARY}, - .bodyColor = BODY_COLOR_GREEN, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, + .abilities = {ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_HYDRATION}, + .bodyColor = BODY_COLOR_PINK, .noFlip = FALSE, - }, - - [SPECIES_SERPERIOR] = + .speciesName = _("Luvdisc"), + .cryId = CRY_LUVDISC, + .natDexNum = NATIONAL_DEX_LUVDISC, + .categoryName = _("Rendezvous"), + .height = 6, + .weight = 87, + .description = COMPOUND_STRING( + "Luvdisc make the branches of Corsola\n" + "their nests. There is a custom from long\n" + "ago of giving a Luvdisc as a gift to\n" + "express one's feelings of love."), + .pokemonScale = 371, + .pokemonOffset = 2, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Luvdisc, 32, 40), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Luvdisc, + .frontAnimId = ANIM_H_SLIDE_WOBBLE, + BACK_PIC(Luvdisc, 40, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_H_SPRING_REPEATED, + PALETTE(Luvdisc), + ICON(Luvdisc, 0), + .footprint = gMonFootprint_Luvdisc, + LEARNSETS(Luvdisc), + }, +#endif //P_FAMILY_LUVDISC + +#if P_FAMILY_BAGON + [SPECIES_BAGON] = { - .baseHP = 75, + .baseHP = 45, .baseAttack = 75, - .baseDefense = 95, - .baseSpeed = 113, - .baseSpAttack = 75, - .baseSpDefense = 95, - .types = { TYPE_GRASS, TYPE_GRASS}, + .baseDefense = 60, + .baseSpeed = 50, + .baseSpAttack = 40, + .baseSpDefense = 30, + .types = { TYPE_DRAGON, TYPE_DRAGON }, .catchRate = 45, - .expYield = 238, - .evYield_Speed = 3, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS}, - .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_CONTRARY}, - .bodyColor = BODY_COLOR_GREEN, + .expYield = 60, + .evYield_Attack = 1, + .itemRare = ITEM_DRAGON_FANG, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_ROCK_HEAD, ABILITY_NONE, ABILITY_SHEER_FORCE}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Bagon"), + .cryId = CRY_BAGON, + .natDexNum = NATIONAL_DEX_BAGON, + .categoryName = _("Rock Head"), + .height = 6, + .weight = 421, + .description = COMPOUND_STRING( + "Although it is small, this Pokémon is very\n" + "powerful because its body is a bundle of\n" + "muscles. It launches head-butts with its\n" + "ironlike skull."), + .pokemonScale = 448, + .pokemonOffset = 18, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Bagon, 32, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Bagon, + .frontAnimId = ANIM_H_SHAKE, + BACK_PIC(Bagon, 48, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Bagon), + ICON(Bagon, 0), + .footprint = gMonFootprint_Bagon, + LEARNSETS(Bagon), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_SHELGON}), }, - [SPECIES_TEPIG] = + [SPECIES_SHELGON] = { .baseHP = 65, - .baseAttack = 63, - .baseDefense = 45, - .baseSpeed = 45, - .baseSpAttack = 45, - .baseSpDefense = 45, - .types = { TYPE_FIRE, TYPE_FIRE}, + .baseAttack = 95, + .baseDefense = 100, + .baseSpeed = 50, + .baseSpAttack = 60, + .baseSpDefense = 50, + .types = { TYPE_DRAGON, TYPE_DRAGON }, .catchRate = 45, - .expYield = 62, - .evYield_HP = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_THICK_FAT}, - .bodyColor = BODY_COLOR_RED, + .expYield = 147, + .evYield_Defense = 2, + .itemRare = ITEM_DRAGON_FANG, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_ROCK_HEAD, ABILITY_NONE, ABILITY_OVERCOAT}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - }, + .speciesName = _("Shelgon"), + .cryId = CRY_SHELGON, + .natDexNum = NATIONAL_DEX_SHELGON, + .categoryName = _("Endurance"), + .height = 11, + .weight = 1105, + .description = COMPOUND_STRING( + "It hardly eats while it awaits evolution.\n" + "It becomes hardier by enduring hunger.\n" + "Its shell peels off the instant it begins\n" + "to evolve."), + .pokemonScale = 311, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Shelgon, 48, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Shelgon, + .frontAnimId = ANIM_V_SLIDE, + BACK_PIC(Shelgon, 64, 40), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Shelgon), + ICON(Shelgon, 2), + .footprint = gMonFootprint_Shelgon, + LEARNSETS(Shelgon), + .evolutions = EVOLUTION({EVO_LEVEL, 50, SPECIES_SALAMENCE}), + }, + +#define SALAMENCE_MISC_INFO \ + .types = { TYPE_DRAGON, TYPE_FLYING}, \ + .catchRate = 45, \ + .evYield_Attack = 3, \ + .itemRare = ITEM_DRAGON_FANG, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 40, \ + .friendship = 35, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON}, \ + .bodyColor = BODY_COLOR_BLUE, \ + .noFlip = FALSE, \ + .speciesName = _("Salamence"), \ + .natDexNum = NATIONAL_DEX_SALAMENCE, \ + .categoryName = _("Dragon"), \ + .footprint = gMonFootprint_Salamence, \ + LEARNSETS(Salamence), \ + .formSpeciesIdTable = sSalamenceFormSpeciesIdTable, \ + .formChangeTable = sSalamenceFormChangeTable - [SPECIES_PIGNITE] = + [SPECIES_SALAMENCE] = { - .baseHP = 90, - .baseAttack = 93, - .baseDefense = 55, - .baseSpeed = 55, - .baseSpAttack = 70, - .baseSpDefense = 55, - .types = { TYPE_FIRE, TYPE_FIGHTING}, - .catchRate = 45, - .expYield = 146, - .evYield_Attack = 2, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_THICK_FAT}, - .bodyColor = BODY_COLOR_RED, + SALAMENCE_MISC_INFO, + .baseHP = 95, + .baseAttack = 135, + .baseDefense = 80, + .baseSpeed = 100, + .baseSpAttack = 110, + .baseSpDefense = 80, + .expYield = 270, + .abilities = {ABILITY_INTIMIDATE, ABILITY_NONE, ABILITY_MOXIE}, + .cryId = CRY_SALAMENCE, + .height = 15, + .weight = 1026, + .description = COMPOUND_STRING( + "After many long years, its cellular\n" + "structure underwent a sudden mutation to\n" + "grow wings. When angered, it loses all\n" + "thought and rampages out of control."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Salamence, 64, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_Salamence, + .frontAnimId = ANIM_H_SHAKE, + .frontAnimDelay = 70, + BACK_PIC(Salamence, 56, 64), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_H_SHAKE, + PALETTE(Salamence), + ICON(Salamence, 0), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_SALAMENCE_MEGA] = + { + SALAMENCE_MISC_INFO, + .baseHP = 95, + .baseAttack = 145, + .baseDefense = 130, + .baseSpeed = 120, + .baseSpAttack = 120, + .baseSpDefense = 90, + .expYield = 315, + .abilities = {ABILITY_AERILATE, ABILITY_AERILATE, ABILITY_AERILATE}, + .cryId = CRY_SALAMENCE_MEGA, + .height = 18, + .weight = 1126, + .description = COMPOUND_STRING( + "Mega Evolution fuels its brutality, and it\n" + "may even turn on the Trainer who raised it.\n" + "It's been dubbed the blood-soaked.\n" + "crescent."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(SalamenceMega, 64, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_SalamenceMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(SalamenceMega, 56, 64), + .backPicYOffset = 1, + .backAnimId = BACK_ANIM_H_SHAKE, + PALETTE(SalamenceMega), + ICON(SalamenceMega, 0), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_BAGON + +#if P_FAMILY_BELDUM + [SPECIES_BELDUM] = + { + .baseHP = 40, + .baseAttack = 55, + .baseDefense = 80, + .baseSpeed = 30, + .baseSpAttack = 35, + .baseSpDefense = 60, + .types = { TYPE_STEEL, TYPE_PSYCHIC }, + .catchRate = 3, + .expYield = 60, + .evYield_Defense = 1, + .itemRare = ITEM_METAL_COAT, + .genderRatio = MON_GENDERLESS, + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_CLEAR_BODY, ABILITY_NONE, ABILITY_LIGHT_METAL}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Beldum"), + .cryId = CRY_BELDUM, + .natDexNum = NATIONAL_DEX_BELDUM, + .categoryName = _("Iron Ball"), + .height = 6, + .weight = 952, + .description = COMPOUND_STRING( + "When Beldum gather in a swarm, they move\n" + "in perfect unison as if they were but one\n" + "Pokémon. They communicate with each other\n" + "using brain waves."), + .pokemonScale = 414, + .pokemonOffset = -1, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Beldum, 48, 40), + .frontPicYOffset = 15, + .frontAnimFrames = sAnims_Beldum, + .frontAnimId = ANIM_H_SHAKE, + .enemyMonElevation = 8, + BACK_PIC(Beldum, 64, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(Beldum), + ICON(Beldum, 0), + .footprint = gMonFootprint_Beldum, + LEARNSETS(Beldum), + .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_METANG}), }, - [SPECIES_EMBOAR] = + [SPECIES_METANG] = { - .baseHP = 110, - .baseAttack = 123, - .baseDefense = 65, - .baseSpeed = 65, - .baseSpAttack = 100, - .baseSpDefense = 65, - .types = { TYPE_FIRE, TYPE_FIGHTING}, - .catchRate = 45, - .expYield = 238, - .evYield_Attack = 3, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_RECKLESS}, - .bodyColor = BODY_COLOR_RED, - .noFlip = TRUE, - }, + .baseHP = 60, + .baseAttack = 75, + .baseDefense = 100, + .baseSpeed = 50, + .baseSpAttack = 55, + .baseSpDefense = 80, + .types = { TYPE_STEEL, TYPE_PSYCHIC }, + .catchRate = 3, + .expYield = 147, + .evYield_Defense = 2, + .itemRare = ITEM_METAL_COAT, + .genderRatio = MON_GENDERLESS, + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_CLEAR_BODY, ABILITY_NONE, ABILITY_LIGHT_METAL}, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + .speciesName = _("Metang"), + .cryId = CRY_METANG, + .natDexNum = NATIONAL_DEX_METANG, + .categoryName = _("Iron Claw"), + .height = 12, + .weight = 2025, + .description = COMPOUND_STRING( + "The claws tipping its arms pack the\n" + "destructive power to tear through thick\n" + "iron sheets as if they were silk. It flies\n" + "at over 60 miles per hour."), + .pokemonScale = 256, + .pokemonOffset = 6, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Metang, 64, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Metang, + .frontAnimId = ANIM_V_SLIDE, + BACK_PIC(Metang, 64, 40), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Metang), + ICON(Metang, 0), + .footprint = gMonFootprint_Metang, + LEARNSETS(Metang), + .evolutions = EVOLUTION({EVO_LEVEL, 45, SPECIES_METAGROSS}), + }, + +#define METAGROSS_MISC_INFO \ + .types = { TYPE_STEEL, TYPE_PSYCHIC}, \ + .catchRate = 3, \ + .evYield_Defense = 3, \ + .itemRare = ITEM_METAL_COAT, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 40, \ + .friendship = 35, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, \ + .bodyColor = BODY_COLOR_BLUE, \ + .noFlip = FALSE, \ + .speciesName = _("Metagross"), \ + .natDexNum = NATIONAL_DEX_METAGROSS, \ + .categoryName = _("Iron Leg"), \ + .footprint = gMonFootprint_Metagross, \ + LEARNSETS(Metagross), \ + .formSpeciesIdTable = sMetagrossFormSpeciesIdTable, \ + .formChangeTable = sMetagrossFormChangeTable - [SPECIES_OSHAWOTT] = + [SPECIES_METAGROSS] = { - .baseHP = 55, - .baseAttack = 55, - .baseDefense = 45, - .baseSpeed = 45, - .baseSpAttack = 63, - .baseSpDefense = 45, - .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 45, - .expYield = 62, - .evYield_SpAttack = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_SHELL_ARMOR}, + METAGROSS_MISC_INFO, + .baseHP = 80, + .baseAttack = 135, + .baseDefense = 130, + .baseSpeed = 70, + .baseSpAttack = 95, + .baseSpDefense = 90, + .expYield = 270, + .abilities = {ABILITY_CLEAR_BODY, ABILITY_NONE, ABILITY_LIGHT_METAL}, + .cryId = CRY_METAGROSS, + .height = 16, + .weight = 5500, + .description = COMPOUND_STRING( + "Metagross has four brains that are joined\n" + "by a complex neural network. As a result of\n" + "integration, this Pokémon is smarter than\n" + "a supercomputer."), + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 447, + .trainerOffset = 9, + FRONT_PIC(Metagross, 64, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Metagross, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(Metagross, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Metagross), + ICON(Metagross, 0), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_METAGROSS_MEGA] = + { + METAGROSS_MISC_INFO, + .baseHP = 80, + .baseAttack = 145, + .baseDefense = 150, + .baseSpeed = 110, + .baseSpAttack = 105, + .baseSpDefense = 110, + .expYield = 315, + .abilities = {ABILITY_TOUGH_CLAWS, ABILITY_TOUGH_CLAWS, ABILITY_TOUGH_CLAWS}, + .cryId = CRY_METAGROSS_MEGA, + .height = 25, + .weight = 9429, + .description = COMPOUND_STRING( + "When it knows it can't win, it digs the\n" + "claws on its legs into its opponent and\n" + "starts the countdown to a big explosion."), + .pokemonScale = 256, + .pokemonOffset = 4, + .trainerScale = 447, + .trainerOffset = 9, + FRONT_PIC(MetagrossMega, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_MetagrossMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 4, + BACK_PIC(MetagrossMega, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(MetagrossMega), + ICON(MetagrossMega, 0), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_BELDUM + +#if P_FAMILY_REGIROCK + [SPECIES_REGIROCK] = + { + .baseHP = 80, + .baseAttack = 100, + .baseDefense = 200, + .baseSpeed = 50, + .baseSpAttack = 50, + .baseSpDefense = 100, + .types = { TYPE_ROCK, TYPE_ROCK }, + .catchRate = 3, + .expYield = 261, + .evYield_Defense = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 80, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_CLEAR_BODY, ABILITY_NONE, ABILITY_STURDY}, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = TRUE, + .isLegendary = TRUE, + .speciesName = _("Regirock"), + .cryId = CRY_REGIROCK, + .natDexNum = NATIONAL_DEX_REGIROCK, + .categoryName = _("Rock Peak"), + .height = 17, + .weight = 2300, + .description = COMPOUND_STRING( + "A Pokémon that is made entirely of rocks\n" + "and boulders. If parts of its body chip off\n" + "in battle, Regirock repairs itself by\n" + "adding new rocks."), + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 309, + .trainerOffset = 1, + FRONT_PIC(Regirock, 64, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_Regirock, + .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, + BACK_PIC(Regirock, 64, 56), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Regirock), + ICON(Regirock, 2), + .footprint = gMonFootprint_Regirock, + LEARNSETS(Regirock), + }, +#endif //P_FAMILY_REGIROCK + +#if P_FAMILY_REGICE + [SPECIES_REGICE] = + { + .baseHP = 80, + .baseAttack = 50, + .baseDefense = 100, + .baseSpeed = 50, + .baseSpAttack = 100, + .baseSpDefense = 200, + .types = { TYPE_ICE, TYPE_ICE }, + .catchRate = 3, + .expYield = 261, + .evYield_SpDefense = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 80, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_CLEAR_BODY, ABILITY_NONE, ABILITY_ICE_BODY}, .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - }, - - [SPECIES_DEWOTT] = + .isLegendary = TRUE, + .speciesName = _("Regice"), + .cryId = CRY_REGICE, + .natDexNum = NATIONAL_DEX_REGICE, + .categoryName = _("Iceberg"), + .height = 18, + .weight = 1750, + .description = COMPOUND_STRING( + "Its entire body is made of Antarctic ice.\n" + "After extensive studies, researchers\n" + "believe the ice was formed during an\n" + "ice age."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 301, + .trainerOffset = 2, + FRONT_PIC(Regice, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Regice, + .frontAnimId = ANIM_H_SLIDE_SLOW, + BACK_PIC(Regice, 64, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Regice), + ICON(Regice, 0), + .footprint = gMonFootprint_Regice, + LEARNSETS(Regice), + }, +#endif //P_FAMILY_REGICE + +#if P_FAMILY_REGISTEEL + [SPECIES_REGISTEEL] = { - .baseHP = 75, + .baseHP = 80, .baseAttack = 75, - .baseDefense = 60, - .baseSpeed = 60, - .baseSpAttack = 83, - .baseSpDefense = 60, - .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 45, - .expYield = 145, - .evYield_SpAttack = 2, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_SHELL_ARMOR}, - .bodyColor = BODY_COLOR_BLUE, + .baseDefense = 150, + .baseSpeed = 50, + .baseSpAttack = 75, + .baseSpDefense = 150, + .types = { TYPE_STEEL, TYPE_STEEL }, + .catchRate = 3, + .expYield = 261, + .evYield_Defense = 2, + .evYield_SpDefense = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 80, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_CLEAR_BODY, ABILITY_NONE, ABILITY_LIGHT_METAL}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, - }, + .isLegendary = TRUE, + .speciesName = _("Registeel"), + .cryId = CRY_REGISTEEL, + .natDexNum = NATIONAL_DEX_REGISTEEL, + .categoryName = _("Iron"), + .height = 19, + .weight = 2050, + .description = COMPOUND_STRING( + "Its body is harder than any other kind of\n" + "metal. The body metal is composed of a\n" + "mysterious substance. Not only is it hard,\n" + "it shrinks and stretches flexibly."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 359, + .trainerOffset = 6, + FRONT_PIC(Registeel, 64, 56), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Registeel, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Registeel, 64, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Registeel), + ICON(Registeel, 2), + .footprint = gMonFootprint_Registeel, + LEARNSETS(Registeel), + }, +#endif //P_FAMILY_REGISTEEL + +#if P_FAMILY_LATIAS +#define LATIAS_MISC_INFO \ + .types = { TYPE_DRAGON, TYPE_PSYCHIC}, \ + .catchRate = 3, \ + .evYield_SpDefense = 3, \ + .genderRatio = MON_FEMALE, \ + .eggCycles = 120, \ + .friendship = 90, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ + .noFlip = FALSE, \ + .speciesName = _("Latias"), \ + .natDexNum = NATIONAL_DEX_LATIAS, \ + .categoryName = _("Eon"), \ + .footprint = gMonFootprint_Latias, \ + LEARNSETS(Latias), \ + .formSpeciesIdTable = sLatiasFormSpeciesIdTable, \ + .formChangeTable = sLatiasFormChangeTable, \ + .isLegendary = TRUE - [SPECIES_SAMUROTT] = + [SPECIES_LATIAS] = { - .baseHP = 95, + LATIAS_MISC_INFO, + .baseHP = 80, + .baseAttack = 80, + .baseDefense = 90, + .baseSpeed = 110, + .baseSpAttack = 110, + .baseSpDefense = 130, + .expYield = 270, + .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, + .bodyColor = BODY_COLOR_RED, + .cryId = CRY_LATIAS, + .height = 14, + .weight = 400, + .description = COMPOUND_STRING( + "They make a small herd of only several\n" + "members. They rarely make contact with\n" + "people or other Pokémon. They disappear\n" + "if they sense enemies."), + .pokemonScale = 304, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Latias, 64, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Latias, + .frontAnimId = ANIM_ZIGZAG_SLOW, + .enemyMonElevation = 12, + BACK_PIC(Latias, 56, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_H_VIBRATE, + PALETTE(Latias), + ICON(Latias, 0), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_LATIAS_MEGA] = + { + LATIAS_MISC_INFO, + .baseHP = 80, .baseAttack = 100, - .baseDefense = 85, - .baseSpeed = 70, - .baseSpAttack = 108, - .baseSpDefense = 70, - .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 45, - .expYield = 238, - .evYield_SpAttack = 3, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_SHELL_ARMOR}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, + .baseDefense = 120, + .baseSpeed = 110, + .baseSpAttack = 140, + .baseSpDefense = 150, + .expYield = 315, + .abilities = {ABILITY_LEVITATE, ABILITY_LEVITATE, ABILITY_LEVITATE}, + .bodyColor = BODY_COLOR_PURPLE, + .cryId = CRY_LATIAS_MEGA, + .height = 18, + .weight = 520, + .description = COMPOUND_STRING( + "Its body is smaller than Mega Latios's\n" + "body. It is more agile and can make very\n" + "sharp turns. When it Mega Evolves, its\n" + "defensive strength grows substantially."), + .pokemonScale = 304, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(LatiasMega, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_LatiasMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 8, + BACK_PIC(LatiasMega, 64, 64), + .backPicYOffset = 1, + .backAnimId = BACK_ANIM_H_VIBRATE, + PALETTE(LatiasMega), + ICON(LatiasMega, 2), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_LATIAS + +#if P_FAMILY_LATIOS +#define LATIOS_MISC_INFO \ + .types = { TYPE_DRAGON, TYPE_PSYCHIC}, \ + .catchRate = 3, \ + .evYield_SpAttack = 3, \ + .genderRatio = MON_MALE, \ + .eggCycles = 120, \ + .friendship = 90, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ + .noFlip = FALSE, \ + .isLegendary = TRUE, \ + .speciesName = _("Latios"), \ + .natDexNum = NATIONAL_DEX_LATIOS, \ + .categoryName = _("Eon"), \ + .footprint = gMonFootprint_Latios, \ + LEARNSETS(Latios), \ + .formSpeciesIdTable = sLatiosFormSpeciesIdTable, \ + .formChangeTable = sLatiosFormChangeTable - [SPECIES_PATRAT] = + [SPECIES_LATIOS] = { - .baseHP = 45, - .baseAttack = 55, - .baseDefense = 39, - .baseSpeed = 42, - .baseSpAttack = 35, - .baseSpDefense = 39, - .types = { TYPE_NORMAL, TYPE_NORMAL}, - .catchRate = 255, - .expYield = 51, - .evYield_Attack = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_RUN_AWAY, ABILITY_KEEN_EYE, ABILITY_ANALYTIC}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_WATCHOG] = + LATIOS_MISC_INFO, + .baseHP = 80, + .baseAttack = 90, + .baseDefense = 80, + .baseSpeed = 110, + .baseSpAttack = 130, + .baseSpDefense = 110, + .expYield = 270, + .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, + .bodyColor = BODY_COLOR_BLUE, + .cryId = CRY_LATIOS, + .height = 20, + .weight = 600, + .description = COMPOUND_STRING( + "Even in hiding, it can detect the locations\n" + "of others and sense their emotions since\n" + "it has telepathy. Its intelligence allows\n" + "it to understand human languages."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 294, + .trainerOffset = 3, + FRONT_PIC(Latios, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Latios, + .frontAnimId = ANIM_CIRCLE_C_CLOCKWISE_SLOW, + .enemyMonElevation = 6, + BACK_PIC(Latios, 56, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_H_VIBRATE, + PALETTE(Latios), + ICON(Latios, 0), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_LATIOS_MEGA] = { - .baseHP = 60, - .baseAttack = 85, - .baseDefense = 69, - .baseSpeed = 77, - .baseSpAttack = 60, - .baseSpDefense = 69, - .types = { TYPE_NORMAL, TYPE_NORMAL}, - .catchRate = 255, - .expYield = 147, - .evYield_Attack = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_ILLUMINATE, ABILITY_KEEN_EYE, ABILITY_ANALYTIC}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, + LATIOS_MISC_INFO, + .baseHP = 80, + .baseAttack = 130, + .baseDefense = 100, + .baseSpeed = 110, + .baseSpAttack = 160, + .baseSpDefense = 120, + .expYield = 315, + .abilities = {ABILITY_LEVITATE, ABILITY_LEVITATE, ABILITY_LEVITATE}, + .bodyColor = BODY_COLOR_PURPLE, + .cryId = CRY_LATIOS_MEGA, + .height = 23, + .weight = 700, + .description = COMPOUND_STRING( + "It's larger than Mega Latias, and can\n" + "achieve higher speeds in flight.\n" + "This Pokémon can use its speed in battle\n" + "to unleash a flurry of attacks."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 294, + .trainerOffset = 3, + FRONT_PIC(LatiosMega, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_LatiosMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 8, + BACK_PIC(LatiosMega, 64, 64), + .backPicYOffset = 1, + .backAnimId = BACK_ANIM_H_VIBRATE, + PALETTE(LatiosMega), + ICON(LatiosMega, 2), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_LATIOS + +#if P_FAMILY_KYOGRE +#define KYOGRE_MISC_INFO \ + .types = { TYPE_WATER, TYPE_WATER}, \ + .catchRate = 3, \ + .expYield = 302, \ + .evYield_SpAttack = 3, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ + .bodyColor = BODY_COLOR_BLUE, \ + .noFlip = FALSE, \ + .isLegendary = TRUE, \ + .speciesName = _("Kyogre"), \ + .natDexNum = NATIONAL_DEX_KYOGRE, \ + .categoryName = _("Sea Basin"), \ + .footprint = gMonFootprint_Kyogre, \ + LEARNSETS(Kyogre), \ + .formSpeciesIdTable = sKyogreFormSpeciesIdTable, \ + .formChangeTable = sKyogreFormChangeTable - [SPECIES_LILLIPUP] = + [SPECIES_KYOGRE] = { - .baseHP = 45, - .baseAttack = 60, - .baseDefense = 45, - .baseSpeed = 55, - .baseSpAttack = 25, - .baseSpDefense = 45, - .types = { TYPE_NORMAL, TYPE_NORMAL}, - .catchRate = 255, - .expYield = 55, - .evYield_Attack = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_VITAL_SPIRIT, ABILITY_PICKUP, ABILITY_RUN_AWAY}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, + KYOGRE_MISC_INFO, + .baseHP = 100, + .baseAttack = 100, + .baseDefense = 90, + .baseSpeed = 90, + .baseSpAttack = 150, + .baseSpDefense = 140, + .abilities = {ABILITY_DRIZZLE, ABILITY_NONE}, + .cryId = CRY_KYOGRE, + .height = 45, + .weight = 3520, + .description = COMPOUND_STRING( + "Kyogre has appeared in mythology as the\n" + "creator of the sea. After long years of\n" + "feuding with Groudon, it took to sleep at\n" + "the bottom of the sea."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 614, + .trainerOffset = 13, + FRONT_PIC(Kyogre, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Kyogre, + .frontAnimId = ANIM_SWING_CONCAVE_FAST_SHORT, + .frontAnimDelay = 60, + BACK_PIC(Kyogre, 64, 32), + .backPicYOffset = 18, + .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, + PALETTE(Kyogre), + ICON(Kyogre, 2), + }, +#if P_PRIMAL_REVERSIONS + [SPECIES_KYOGRE_PRIMAL] = + { + KYOGRE_MISC_INFO, + .baseHP = 100, + .baseAttack = 150, + .baseDefense = 90, + .baseSpeed = 90, + .baseSpAttack = 180, + .baseSpDefense = 160, + .abilities = {ABILITY_PRIMORDIAL_SEA, ABILITY_PRIMORDIAL_SEA}, + .cryId = CRY_KYOGRE_PRIMAL, + .height = 98, + .weight = 4300, + .description = COMPOUND_STRING( + "When Kyogre roared, water poured forth\n" + "and the seas spread outward.\n" + "Dark clouds enshrouded the world,\n" + "and the deluge fell upon all…"), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 515, + .trainerOffset = 14, + FRONT_PIC(KyogrePrimal, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_KyogrePrimal, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(KyogrePrimal, 64, 32), + .backPicYOffset = 18, + .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, + PALETTE(KyogrePrimal), + ICON(KyogrePrimal, 0), + .isPrimalRevesion = TRUE, + }, +#endif //P_PRIMAL_REVERSIONS +#endif //P_FAMILY_KYOGRE + +#if P_FAMILY_GROUDON +#define GROUDON_MISC_INFO \ + .catchRate = 3, \ + .expYield = 302, \ + .evYield_Attack = 3, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ + .bodyColor = BODY_COLOR_RED, \ + .noFlip = FALSE, \ + .isLegendary = TRUE, \ + .speciesName = _("Groudon"), \ + .cryId = CRY_GROUDON, \ + .natDexNum = NATIONAL_DEX_GROUDON, \ + .categoryName = _("Continent"), \ + .footprint = gMonFootprint_Groudon, \ + LEARNSETS(Groudon), \ + .formSpeciesIdTable = sGroudonFormSpeciesIdTable, \ + .formChangeTable = sGroudonFormChangeTable - [SPECIES_HERDIER] = + [SPECIES_GROUDON] = { - .baseHP = 65, - .baseAttack = 80, - .baseDefense = 65, - .baseSpeed = 60, - .baseSpAttack = 35, - .baseSpDefense = 65, - .types = { TYPE_NORMAL, TYPE_NORMAL}, - .catchRate = 120, - .expYield = 130, - .evYield_Attack = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_INTIMIDATE, ABILITY_SAND_RUSH, ABILITY_SCRAPPY}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, + GROUDON_MISC_INFO, + .baseHP = 100, + .baseAttack = 150, + .baseDefense = 140, + .baseSpeed = 90, + .baseSpAttack = 100, + .baseSpDefense = 90, + .types = { TYPE_GROUND, TYPE_GROUND}, + .abilities = {ABILITY_DROUGHT, ABILITY_NONE}, + .height = 35, + .weight = 9500, + .description = COMPOUND_STRING( + "Groudon has appeared in mythology as the\n" + "creator of the land. It sleeps in magma\n" + "underground and is said to make volcanoes\n" + "erupt on awakening."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 515, + .trainerOffset = 14, + FRONT_PIC(Groudon, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Groudon, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(Groudon, 64, 48), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, + PALETTE(Groudon), + ICON(Groudon, 0), + }, + +#if P_PRIMAL_REVERSIONS + [SPECIES_GROUDON_PRIMAL] = + { + GROUDON_MISC_INFO, + .baseHP = 100, + .baseAttack = 180, + .baseDefense = 160, + .baseSpeed = 90, + .baseSpAttack = 150, + .baseSpDefense = 90, + .types = { TYPE_GROUND, TYPE_FIRE}, + .abilities = {ABILITY_DESOLATE_LAND, ABILITY_DESOLATE_LAND}, + .height = 50, + .weight = 9997, + .description = COMPOUND_STRING( + "When Groudon howled, the earth swelled and\n" + "the land grew wide. The sun blazed atop\n" + "and all the world around the creature\n" + "was enveloped in incandescent heat."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 515, + .trainerOffset = 14, + FRONT_PIC(GroudonPrimal, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_GroudonPrimal, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .backPic = gMonBackPic_GroudonPrimal, + .backPicSize = MON_COORDS_SIZE(64, 48), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, + PALETTE(GroudonPrimal), + ICON(GroudonPrimal, 0), + .isPrimalRevesion = TRUE, + }, +#endif //P_PRIMAL_REVERSIONS +#endif //P_FAMILY_GROUDON + +#if P_FAMILY_RAYQUAZA +#define RAYQUAZA_MISC_INFO \ + .types = { TYPE_DRAGON, TYPE_FLYING}, \ + .catchRate = 45, \ + .expYield = 306, \ + .evYield_Attack = 2, \ + .evYield_SpAttack = 1, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ + .bodyColor = BODY_COLOR_GREEN, \ + .noFlip = FALSE, \ + .speciesName = _("Rayquaza"), \ + .cryId = CRY_RAYQUAZA, \ + .natDexNum = NATIONAL_DEX_RAYQUAZA, \ + .categoryName = _("Sky High"), \ + .footprint = gMonFootprint_Rayquaza, \ + LEARNSETS(Rayquaza), \ + .formSpeciesIdTable = sRayquazaFormSpeciesIdTable, \ + .formChangeTable = sRayquazaFormChangeTable, \ + .isLegendary = TRUE - [SPECIES_STOUTLAND] = + [SPECIES_RAYQUAZA] = { - .baseHP = 85, + RAYQUAZA_MISC_INFO, + .baseHP = 105, + .baseAttack = 150, .baseDefense = 90, - .baseSpeed = 80, - .baseSpAttack = 45, + .baseSpeed = 95, + .baseSpAttack = 150, .baseSpDefense = 90, - #if P_UPDATED_STATS >= GEN_6 - .baseAttack = 110, - #else - .baseAttack = 100, - #endif - .types = { TYPE_NORMAL, TYPE_NORMAL}, - .catchRate = 45, - .expYield = 225, - .evYield_Attack = 3, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_INTIMIDATE, ABILITY_SAND_RUSH, ABILITY_SCRAPPY}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, - - [SPECIES_PURRLOIN] = + .abilities = {ABILITY_AIR_LOCK, ABILITY_NONE}, + .height = 70, + .weight = 2065, + .description = COMPOUND_STRING( + "A Pokémon that flies endlessly in the\n" + "ozone layer. It is said it would descend\n" + "to the ground if Kyogre and Groudon\n" + "were to fight."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 448, + .trainerOffset = 12, + FRONT_PIC(Rayquaza, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Rayquaza, + .frontAnimId = ANIM_H_SHAKE, + .frontAnimDelay = 60, + .enemyMonElevation = 6, + BACK_PIC(Rayquaza, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_GROW_STUTTER, + PALETTE(Rayquaza), + ICON(Rayquaza, 1), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_RAYQUAZA_MEGA] = { - .baseHP = 41, - .baseAttack = 50, - .baseDefense = 37, - .baseSpeed = 66, - .baseSpAttack = 50, - .baseSpDefense = 37, - .types = { TYPE_DARK, TYPE_DARK}, - .catchRate = 255, - .expYield = 56, - .evYield_Speed = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_LIMBER, ABILITY_UNBURDEN, ABILITY_PRANKSTER}, - .bodyColor = BODY_COLOR_PURPLE, + RAYQUAZA_MISC_INFO, + .baseHP = 105, + .baseAttack = 180, + .baseDefense = 100, + .baseSpeed = 115, + .baseSpAttack = 180, + .baseSpDefense = 100, + .abilities = {ABILITY_DELTA_STREAM, ABILITY_DELTA_STREAM, ABILITY_DELTA_STREAM}, + .height = 108, + .weight = 3920, + .description = COMPOUND_STRING( + "Particles stream from the filaments that\n" + "extend from its jaw. They can control the\n" + "density and humidity of the air, allowing\n" + "Rayquaza to manipulate the weather."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 448, + .trainerOffset = 12, + FRONT_PIC(RayquazaMega, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_RayquazaMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 4, + BACK_PIC(RayquazaMega, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_SHAKE_GLOW_GREEN, + PALETTE(RayquazaMega), + ICON(RayquazaMega, 1), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_RAYQUAZA + +#if P_FAMILY_JIRACHI + [SPECIES_JIRACHI] = + { + .baseHP = 100, + .baseAttack = 100, + .baseDefense = 100, + .baseSpeed = 100, + .baseSpAttack = 100, + .baseSpDefense = 100, + .types = { TYPE_STEEL, TYPE_PSYCHIC }, + .catchRate = 3, + .expYield = 270, + .evYield_HP = 3, + .itemCommon = ITEM_STAR_PIECE, + .itemRare = ITEM_STAR_PIECE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 100, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED }, + .abilities = {ABILITY_SERENE_GRACE, ABILITY_NONE}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, - }, + .isMythical = TRUE, + .speciesName = _("Jirachi"), + .cryId = CRY_JIRACHI, + .natDexNum = NATIONAL_DEX_JIRACHI, + .categoryName = _("Wish"), + .height = 3, + .weight = 11, + .description = COMPOUND_STRING( + "Jirachi is said to make wishes come true.\n" + "While it sleeps, a tough crystalline shell\n" + "envelops the body to protect it from\n" + "enemies."), + .pokemonScale = 608, + .pokemonOffset = -8, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Jirachi, 56, 48), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_Jirachi, + .frontAnimId = ANIM_RISING_WOBBLE, + .enemyMonElevation = 14, + BACK_PIC(Jirachi, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Jirachi), + ICON(Jirachi, 0), + .footprint = gMonFootprint_Jirachi, + LEARNSETS(Jirachi), + }, +#endif //P_FAMILY_JIRACHI + +#if P_FAMILY_DEOXYS +#define DEOXYS_MISC_INFO \ + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, \ + .catchRate = 3, \ + .expYield = 270, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ + .abilities = {ABILITY_PRESSURE, ABILITY_NONE}, \ + .bodyColor = BODY_COLOR_RED, \ + .isMythical = TRUE, \ + .speciesName = _("Deoxys"), \ + .cryId = CRY_DEOXYS, \ + .natDexNum = NATIONAL_DEX_DEOXYS, \ + .categoryName = _("DNA"), \ + .height = 17, \ + .weight = 608, \ + .description = gDeoxysNormalPokedexText, \ + .pokemonScale = 256, \ + .pokemonOffset = 0, \ + .trainerScale = 290, \ + .trainerOffset = 2, \ + .footprint = gMonFootprint_Deoxys, \ + .formSpeciesIdTable = sDeoxysFormSpeciesIdTable - [SPECIES_LIEPARD] = + [SPECIES_DEOXYS_NORMAL] = { - .baseHP = 64, - .baseAttack = 88, + DEOXYS_MISC_INFO, + .baseHP = 50, + .baseAttack = 150, .baseDefense = 50, - .baseSpeed = 106, - .baseSpAttack = 88, + .baseSpeed = 150, + .baseSpAttack = 150, .baseSpDefense = 50, - .types = { TYPE_DARK, TYPE_DARK}, - .catchRate = 90, - .expYield = 156, - .evYield_Speed = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_LIMBER, ABILITY_UNBURDEN, ABILITY_PRANKSTER}, - .bodyColor = BODY_COLOR_PURPLE, + .evYield_Attack = 1, + .evYield_Speed = 1, + .evYield_SpAttack = 1, .noFlip = FALSE, + FRONT_PIC(DeoxysNormal, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_DeoxysNormal, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(DeoxysNormal, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(DeoxysNormal), + ICON(DeoxysNormal, 0), + LEARNSETS(DeoxysNormal), }, - [SPECIES_PANSAGE] = + [SPECIES_DEOXYS_ATTACK] = { + DEOXYS_MISC_INFO, .baseHP = 50, - .baseAttack = 53, - .baseDefense = 48, - .baseSpeed = 64, - .baseSpAttack = 53, - .baseSpDefense = 48, - .types = { TYPE_GRASS, TYPE_GRASS}, - .catchRate = 190, - .expYield = 63, - .evYield_Speed = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_GLUTTONY, ABILITY_NONE, ABILITY_OVERGROW}, - .bodyColor = BODY_COLOR_GREEN, + .baseAttack = 180, + .baseDefense = 20, + .baseSpeed = 150, + .baseSpAttack = 180, + .baseSpDefense = 20, + .evYield_Attack = 2, + .evYield_SpAttack = 1, .noFlip = FALSE, + FRONT_PIC(DeoxysAttack, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_DeoxysAttack, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(DeoxysAttack, 64, 64), + .backPicYOffset = 1, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(DeoxysAttack), + ICON(DeoxysAttack, 0), + LEARNSETS(DeoxysAttack), }, - [SPECIES_SIMISAGE] = + [SPECIES_DEOXYS_DEFENSE] = { - .baseHP = 75, - .baseAttack = 98, - .baseDefense = 63, - .baseSpeed = 101, - .baseSpAttack = 98, - .baseSpDefense = 63, - .types = { TYPE_GRASS, TYPE_GRASS}, - .catchRate = 75, - .expYield = 174, - .evYield_Speed = 2, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_GLUTTONY, ABILITY_NONE, ABILITY_OVERGROW}, - .bodyColor = BODY_COLOR_GREEN, + DEOXYS_MISC_INFO, + .baseHP = 50, + .baseAttack = 70, + .baseDefense = 160, + .baseSpeed = 90, + .baseSpAttack = 70, + .baseSpDefense = 160, + .evYield_Defense = 2, + .evYield_SpDefense = 1, .noFlip = FALSE, + FRONT_PIC(DeoxysDefense, 56, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_DeoxysDefense, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(DeoxysDefense, 64, 56), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(DeoxysDefense), + ICON(DeoxysDefense, 0), + LEARNSETS(DeoxysDefense), }, - [SPECIES_PANSEAR] = + [SPECIES_DEOXYS_SPEED] = { + DEOXYS_MISC_INFO, .baseHP = 50, - .baseAttack = 53, - .baseDefense = 48, - .baseSpeed = 64, - .baseSpAttack = 53, - .baseSpDefense = 48, - .types = { TYPE_FIRE, TYPE_FIRE}, - .catchRate = 190, - .expYield = 63, - .evYield_Speed = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_GLUTTONY, ABILITY_NONE, ABILITY_BLAZE}, - .bodyColor = BODY_COLOR_RED, - .noFlip = TRUE, - }, - - [SPECIES_SIMISEAR] = - { - .baseHP = 75, - .baseAttack = 98, - .baseDefense = 63, - .baseSpeed = 101, - .baseSpAttack = 98, - .baseSpDefense = 63, - .types = { TYPE_FIRE, TYPE_FIRE}, - .catchRate = 75, - .expYield = 174, - .evYield_Speed = 2, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_GLUTTONY, ABILITY_NONE, ABILITY_BLAZE}, - .bodyColor = BODY_COLOR_RED, + .baseAttack = 95, + .baseDefense = 90, + .baseSpeed = 180, + .baseSpAttack = 95, + .baseSpDefense = 90, + .evYield_Speed = 3, .noFlip = TRUE, - }, - - [SPECIES_PANPOUR] = + FRONT_PIC(DeoxysSpeed, 64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_DeoxysSpeed, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(DeoxysSpeed, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(DeoxysSpeed), + ICON(DeoxysSpeed, 0), + LEARNSETS(DeoxysSpeed), + }, +#endif //P_FAMILY_DEOXYS + +#if P_FAMILY_TURTWIG + [SPECIES_TURTWIG] = { - .baseHP = 50, - .baseAttack = 53, - .baseDefense = 48, - .baseSpeed = 64, - .baseSpAttack = 53, - .baseSpDefense = 48, - .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 190, - .expYield = 63, - .evYield_Speed = 1, + .baseHP = 55, + .baseAttack = 68, + .baseDefense = 64, + .baseSpeed = 31, + .baseSpAttack = 45, + .baseSpDefense = 55, + .types = { TYPE_GRASS, TYPE_GRASS}, + .catchRate = 45, + .expYield = 64, + .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_GLUTTONY, ABILITY_NONE, ABILITY_TORRENT}, - .bodyColor = BODY_COLOR_BLUE, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS}, + .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_SHELL_ARMOR}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, + .speciesName = _("Turtwig"), + .cryId = CRY_TURTWIG, + .natDexNum = NATIONAL_DEX_TURTWIG, + .categoryName = _("Tiny Leaf"), + .height = 4, + .weight = 102, + .description = COMPOUND_STRING( + "The shell on its back is made of soil. \n" + "On a very healthy Turtwig, the shell \n" + "should feel moist. The leaf on its head\n" + "wilts if it is thirsty."), + .pokemonScale = 491, + .pokemonOffset = 20, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Turtwig, 40, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Turtwig, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Turtwig, 48, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Turtwig), + ICON(Turtwig, 1), + .footprint = gMonFootprint_Turtwig, + LEARNSETS(Turtwig), + .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_GROTLE}), }, - [SPECIES_SIMIPOUR] = + [SPECIES_GROTLE] = { .baseHP = 75, - .baseAttack = 98, - .baseDefense = 63, - .baseSpeed = 101, - .baseSpAttack = 98, - .baseSpDefense = 63, - .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 75, - .expYield = 174, - .evYield_Speed = 2, + .baseAttack = 89, + .baseDefense = 85, + .baseSpeed = 36, + .baseSpAttack = 55, + .baseSpDefense = 65, + .types = { TYPE_GRASS, TYPE_GRASS}, + .catchRate = 45, + .expYield = 142, + .evYield_Attack = 1, + .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_GLUTTONY, ABILITY_NONE, ABILITY_TORRENT}, - .bodyColor = BODY_COLOR_BLUE, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS}, + .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_SHELL_ARMOR}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, + .speciesName = _("Grotle"), + .cryId = CRY_GROTLE, + .natDexNum = NATIONAL_DEX_GROTLE, + .categoryName = _("Grove"), + .height = 11, + .weight = 970, + .description = COMPOUND_STRING( + "A Grotle that lives in the forest is said\n" + "to have its own secret springwater well. \n" + "It carries fellow Pokémon there on \n" + "its back."), + .pokemonScale = 320, + .pokemonOffset = 9, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Grotle, 56, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Grotle, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Grotle, 64, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Grotle), + ICON(Grotle, 1), + .footprint = gMonFootprint_Grotle, + LEARNSETS(Grotle), + .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_TORTERRA}), }, - [SPECIES_MUNNA] = + [SPECIES_TORTERRA] = { - .baseHP = 76, - .baseAttack = 25, - .baseDefense = 45, - .baseSpeed = 24, - .baseSpAttack = 67, - .baseSpDefense = 55, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - .catchRate = 190, - .expYield = 58, - .evYield_HP = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 10, + .baseHP = 95, + .baseAttack = 109, + .baseDefense = 105, + .baseSpeed = 56, + .baseSpAttack = 75, + .baseSpDefense = 85, + .types = { TYPE_GRASS, TYPE_GROUND}, + .catchRate = 45, + .expYield = 236, + .evYield_Attack = 2, + .evYield_Defense = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_FOREWARN, ABILITY_SYNCHRONIZE, ABILITY_TELEPATHY}, - .bodyColor = BODY_COLOR_PINK, - .noFlip = FALSE, - }, - - [SPECIES_MUSHARNA] = + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS}, + .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_SHELL_ARMOR}, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = TRUE, + .speciesName = _("Torterra"), + .cryId = CRY_TORTERRA, + .natDexNum = NATIONAL_DEX_TORTERRA, + .categoryName = _("Continent"), + .height = 22, + .weight = 3100, + .description = COMPOUND_STRING( + "Some Pokémon are born on a Torterra's\n" + "back and spend their entire life there.\n" + "Ancient people imagined that beneath \n" + "the ground, a gigantic Torterra dwelled."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 348, + .trainerOffset = 6, + FRONT_PIC(Torterra, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Torterra, + .frontAnimId = ANIM_H_SHAKE, + BACK_PIC(Torterra, 64, 56), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_SHAKE_GLOW_GREEN, + PALETTE(Torterra), + ICON(Torterra, 1), + .footprint = gMonFootprint_Torterra, + LEARNSETS(Torterra), + }, +#endif //P_FAMILY_TURTWIG + +#if P_FAMILY_CHIMCHAR + [SPECIES_CHIMCHAR] = { - .baseHP = 116, - .baseAttack = 55, - .baseDefense = 85, - .baseSpeed = 29, - .baseSpAttack = 107, - .baseSpDefense = 95, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - .catchRate = 75, - .expYield = 170, - .evYield_HP = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 10, + .baseHP = 44, + .baseAttack = 58, + .baseDefense = 44, + .baseSpeed = 61, + .baseSpAttack = 58, + .baseSpDefense = 44, + .types = { TYPE_FIRE, TYPE_FIRE}, + .catchRate = 45, + .expYield = 62, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_FOREWARN, ABILITY_SYNCHRONIZE, ABILITY_TELEPATHY}, - .bodyColor = BODY_COLOR_PINK, - .noFlip = FALSE, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_IRON_FIST}, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = TRUE, + .speciesName = _("Chimchar"), + .cryId = CRY_CHIMCHAR, + .natDexNum = NATIONAL_DEX_CHIMCHAR, + .categoryName = _("Chimp"), + .height = 5, + .weight = 62, + .description = COMPOUND_STRING( + "Its fiery rear end is fueled by gas made\n" + "in its belly. Before going to sleep,\n" + "Chimchar extinguish the flame on their\n" + "tails to prevent fires."), + .pokemonScale = 432, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Chimchar, 32, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Chimchar, + .frontAnimId = ANIM_V_JUMPS_BIG, + BACK_PIC(Chimchar, 56, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Chimchar), + ICON(Chimchar, 1), + .footprint = gMonFootprint_Chimchar, + LEARNSETS(Chimchar), + .evolutions = EVOLUTION({EVO_LEVEL, 14, SPECIES_MONFERNO}), }, - [SPECIES_PIDOVE] = + [SPECIES_MONFERNO] = { - .baseHP = 50, - .baseAttack = 55, - .baseDefense = 50, - .baseSpeed = 43, - .baseSpAttack = 36, - .baseSpDefense = 30, - .types = { TYPE_NORMAL, TYPE_FLYING}, - .catchRate = 255, - .expYield = 53, - .evYield_Attack = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .baseHP = 64, + .baseAttack = 78, + .baseDefense = 52, + .baseSpeed = 81, + .baseSpAttack = 78, + .baseSpDefense = 52, + .types = { TYPE_FIRE, TYPE_FIGHTING}, + .catchRate = 45, + .expYield = 142, + .evYield_Speed = 1, + .evYield_SpAttack = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_BIG_PECKS, ABILITY_SUPER_LUCK, ABILITY_RIVALRY}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_IRON_FIST}, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = TRUE, + .speciesName = _("Monferno"), + .cryId = CRY_MONFERNO, + .natDexNum = NATIONAL_DEX_MONFERNO, + .categoryName = _("Playful"), + .height = 9, + .weight = 220, + .description = COMPOUND_STRING( + "It carefully controls the intensity of\n" + "the flame on its tail, so as to keep its\n" + "foes at an adequate distance.\n" + "Its fiery tail is but one weapon."), + .pokemonScale = 338, + .pokemonOffset = 9, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Monferno, 56, 56), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Monferno, + .frontAnimId = ANIM_H_JUMPS_V_STRETCH, + BACK_PIC(Monferno, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Monferno), + ICON(Monferno, 0), + .footprint = gMonFootprint_Monferno, + LEARNSETS(Monferno), + .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_INFERNAPE}), }, - [SPECIES_TRANQUILL] = + [SPECIES_INFERNAPE] = { - .baseHP = 62, - .baseAttack = 77, - .baseDefense = 62, - .baseSpeed = 65, - .baseSpAttack = 50, - .baseSpDefense = 42, - .types = { TYPE_NORMAL, TYPE_FLYING}, - .catchRate = 120, - .expYield = 125, - .evYield_Attack = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .baseHP = 76, + .baseAttack = 104, + .baseDefense = 71, + .baseSpeed = 108, + .baseSpAttack = 104, + .baseSpDefense = 71, + .types = { TYPE_FIRE, TYPE_FIGHTING}, + .catchRate = 45, + .expYield = 240, + .evYield_Attack = 1, + .evYield_Speed = 1, + .evYield_SpAttack = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_BIG_PECKS, ABILITY_SUPER_LUCK, ABILITY_RIVALRY}, - .bodyColor = BODY_COLOR_GRAY, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_IRON_FIST}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - }, - - [SPECIES_UNFEZANT] = + .speciesName = _("Infernape"), + .cryId = CRY_INFERNAPE, + .natDexNum = NATIONAL_DEX_INFERNAPE, + .categoryName = _("Flame"), + .height = 12, + .weight = 550, + .description = COMPOUND_STRING( + "Its crown of fire is indicative of its\n" + "fiery nature. It uses a special kind of\n" + "martial arts involving all of its limbs to\n" + "take on any opponent."), + .pokemonScale = 282, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Infernape, 64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Infernape, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Infernape, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, + PALETTE(Infernape), + ICON(Infernape, 0), + .footprint = gMonFootprint_Infernape, + LEARNSETS(Infernape), + }, +#endif //P_FAMILY_CHIMCHAR + +#if P_FAMILY_PIPLUP + [SPECIES_PIPLUP] = { - .baseHP = 80, - .baseDefense = 80, - .baseSpeed = 93, - .baseSpAttack = 65, - .baseSpDefense = 55, - #if P_UPDATED_STATS >= GEN_6 - .baseAttack = 115, - #else - .baseAttack = 105, - #endif - .types = { TYPE_NORMAL, TYPE_FLYING}, + .baseHP = 53, + .baseAttack = 51, + .baseDefense = 53, + .baseSpeed = 40, + .baseSpAttack = 61, + .baseSpDefense = 56, + .types = { TYPE_WATER, TYPE_WATER}, .catchRate = 45, - .expYield = 220, - .evYield_Attack = 3, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .expYield = 63, + .evYield_SpAttack = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_BIG_PECKS, ABILITY_SUPER_LUCK, ABILITY_RIVALRY}, - .bodyColor = BODY_COLOR_GRAY, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, + #if P_UPDATED_ABILITIES >= GEN_9 + .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_COMPETITIVE}, + #else + .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_DEFIANT}, + #endif + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Piplup"), + .cryId = CRY_PIPLUP, + .natDexNum = NATIONAL_DEX_PIPLUP, + .categoryName = _("Penguin"), + .height = 4, + .weight = 52, + .description = COMPOUND_STRING( + "A poor walker, it often falls down. However,\n" + "its strong pride makes it puff up its chest\n" + "without a care. It's difficult to bond with\n" + "since it won't listen to its Trainer."), + .pokemonScale = 491, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Piplup, 24, 40), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Piplup, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Piplup, 40, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Piplup), + ICON(Piplup, 0), + .footprint = gMonFootprint_Piplup, + LEARNSETS(Piplup), + .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_PRINPLUP}), }, - [SPECIES_BLITZLE] = + [SPECIES_PRINPLUP] = { - .baseHP = 45, - .baseAttack = 60, - .baseDefense = 32, - .baseSpeed = 76, - .baseSpAttack = 50, - .baseSpDefense = 32, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, - .catchRate = 190, - .expYield = 59, - .evYield_Speed = 1, - .genderRatio = PERCENT_FEMALE(50), + .baseHP = 64, + .baseAttack = 66, + .baseDefense = 68, + .baseSpeed = 50, + .baseSpAttack = 81, + .baseSpDefense = 76, + .types = { TYPE_WATER, TYPE_WATER}, + .catchRate = 45, + .expYield = 142, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_LIGHTNING_ROD, ABILITY_MOTOR_DRIVE, ABILITY_SAP_SIPPER}, - .bodyColor = BODY_COLOR_BLACK, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, + #if P_UPDATED_ABILITIES >= GEN_9 + .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_COMPETITIVE}, + #else + .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_DEFIANT}, + #endif + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Prinplup"), + .cryId = CRY_PRINPLUP, + .natDexNum = NATIONAL_DEX_PRINPLUP, + .categoryName = _("Penguin"), + .height = 8, + .weight = 230, + .description = COMPOUND_STRING( + "Because every Prinplup considers itself\n" + "to be the most important, they can never\n" + "form a group. It searches for prey in\n" + "icy seas."), + .pokemonScale = 366, + .pokemonOffset = 10, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Prinplup, 48, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Prinplup, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Prinplup, 48, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_V_STRETCH, + PALETTE(Prinplup), + ICON(Prinplup, 0), + .footprint = gMonFootprint_Prinplup, + LEARNSETS(Prinplup), + .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_EMPOLEON}), }, - [SPECIES_ZEBSTRIKA] = + [SPECIES_EMPOLEON] = { - .baseHP = 75, - .baseAttack = 100, - .baseDefense = 63, - .baseSpeed = 116, - .baseSpAttack = 80, - .baseSpDefense = 63, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, - .catchRate = 75, - .expYield = 174, - .evYield_Speed = 2, - .genderRatio = PERCENT_FEMALE(50), + .baseHP = 84, + .baseAttack = 86, + .baseDefense = 88, + .baseSpeed = 60, + .baseSpAttack = 111, + .baseSpDefense = 101, + .types = { TYPE_WATER, TYPE_STEEL}, + .catchRate = 45, + .expYield = 239, + .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_LIGHTNING_ROD, ABILITY_MOTOR_DRIVE, ABILITY_SAP_SIPPER}, - .bodyColor = BODY_COLOR_BLACK, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, + #if P_UPDATED_ABILITIES >= GEN_9 + .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_COMPETITIVE}, + #else + .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_DEFIANT}, + #endif + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - }, - - [SPECIES_ROGGENROLA] = + .speciesName = _("Empoleon"), + .cryId = CRY_EMPOLEON, + .natDexNum = NATIONAL_DEX_EMPOLEON, + .categoryName = _("Emperor"), + .height = 17, + .weight = 845, + .description = COMPOUND_STRING( + "The three horns that extend from its beak\n" + "attest to its power. It avoids unnecessary\n" + "disputes, but it will decimate anything\n" + "that threatens its pride."), + .pokemonScale = 259, + .pokemonOffset = 0, + .trainerScale = 290, + .trainerOffset = 1, + FRONT_PIC(Empoleon, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Empoleon, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Empoleon, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, + PALETTE(Empoleon), + ICON(Empoleon, 0), + .footprint = gMonFootprint_Empoleon, + LEARNSETS(Empoleon), + }, +#endif //P_FAMILY_PIPLUP + +#if P_FAMILY_STARLY + [SPECIES_STARLY] = { - .baseHP = 55, - .baseAttack = 75, - .baseDefense = 85, - .baseSpeed = 15, - .baseSpAttack = 25, - .baseSpDefense = 25, - .types = { TYPE_ROCK, TYPE_ROCK}, + .baseHP = 40, + .baseAttack = 55, + .baseDefense = 30, + .baseSpeed = 60, + .baseSpAttack = 30, + .baseSpDefense = 30, + .types = { TYPE_NORMAL, TYPE_FLYING}, .catchRate = 255, - .expYield = 56, - .evYield_Defense = 1, - .itemCommon = ITEM_EVERSTONE, - .itemRare = ITEM_HARD_STONE, + .expYield = 49, + .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_STURDY, ABILITY_WEAK_ARMOR, ABILITY_SAND_FORCE}, - .bodyColor = BODY_COLOR_BLUE, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + .abilities = {ABILITY_KEEN_EYE, ABILITY_NONE, ABILITY_RECKLESS}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .speciesName = _("Starly"), + .cryId = CRY_STARLY, + .natDexNum = NATIONAL_DEX_STARLY, + .categoryName = _("Starling"), + .height = 3, + .weight = 20, + .description = COMPOUND_STRING( + "They flock around mountains and fields,\n" + "chasing after bug Pokémon. However,\n" + "they bicker if the group grows too big.\n" + "Their singing is noisy and annoying."), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Starly, 40, 40), + FRONT_PIC_FEMALE(Starly, 40, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Starly, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Starly, 56, 48), + BACK_PIC_FEMALE(Starly, 56, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Starly), + ICON(Starly, 0), + .footprint = gMonFootprint_Starly, + LEARNSETS(Starly), + .evolutions = EVOLUTION({EVO_LEVEL, 14, SPECIES_STARAVIA}), }, - [SPECIES_BOLDORE] = + [SPECIES_STARAVIA] = { - .baseHP = 70, - .baseAttack = 105, - .baseDefense = 105, - .baseSpeed = 20, - .baseSpAttack = 50, + .baseHP = 55, + .baseAttack = 75, + .baseDefense = 50, + .baseSpeed = 80, + .baseSpAttack = 40, .baseSpDefense = 40, - .types = { TYPE_ROCK, TYPE_ROCK}, + .types = { TYPE_NORMAL, TYPE_FLYING}, .catchRate = 120, - .expYield = 137, - .evYield_Attack = 1, - .evYield_Defense = 1, - .itemCommon = ITEM_EVERSTONE, - .itemRare = ITEM_HARD_STONE, + .expYield = 119, + .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_STURDY, ABILITY_WEAK_ARMOR, ABILITY_SAND_FORCE}, - .bodyColor = BODY_COLOR_BLUE, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + .abilities = {ABILITY_INTIMIDATE, ABILITY_NONE, ABILITY_RECKLESS}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .speciesName = _("Staravia"), + .cryId = CRY_STARAVIA, + .natDexNum = NATIONAL_DEX_STARAVIA, + .categoryName = _("Starling"), + .height = 6, + .weight = 155, + .description = COMPOUND_STRING( + "Recognizing their own weakness, they\n" + "maintain huge flocks. Fierce scuffles\n" + "break out between various flocks.\n" + "When alone, a Staravia cries noisily."), + .pokemonScale = 422, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Staravia, 40, 48), + FRONT_PIC_FEMALE(Staravia, 40, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Staravia, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Staravia, 64, 64), + BACK_PIC_FEMALE(Staravia, 64, 64), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(Staravia), + ICON(Staravia, 0), + .footprint = gMonFootprint_Staravia, + LEARNSETS(Staravia), + .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_STARAPTOR}), }, - [SPECIES_GIGALITH] = + [SPECIES_STARAPTOR] = { .baseHP = 85, - .baseAttack = 135, - .baseDefense = 130, - .baseSpeed = 25, - .baseSpAttack = 60, - #if P_UPDATED_STATS >= GEN_6 - .baseSpDefense = 80, - #else - .baseSpDefense = 70, - #endif - .types = { TYPE_ROCK, TYPE_ROCK}, + .baseAttack = 120, + .baseDefense = 70, + .baseSpeed = 100, + .baseSpAttack = 50, + .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 60 : 50, + .types = { TYPE_NORMAL, TYPE_FLYING}, .catchRate = 45, - .expYield = 232, + .expYield = 218, .evYield_Attack = 3, - .itemCommon = ITEM_EVERSTONE, - .itemRare = ITEM_HARD_STONE, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_STURDY, ABILITY_SAND_STREAM, ABILITY_SAND_FORCE}, - .bodyColor = BODY_COLOR_BLUE, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + .abilities = {ABILITY_INTIMIDATE, ABILITY_NONE, ABILITY_RECKLESS}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - }, - - [SPECIES_WOOBAT] = + .speciesName = _("Staraptor"), + .cryId = CRY_STARAPTOR, + .natDexNum = NATIONAL_DEX_STARAPTOR, + .categoryName = _("Predator"), + .height = 12, + .weight = 249, + .description = COMPOUND_STRING( + "When Staravia evolve into Staraptor,\n" + "they leave the flock to live alone. It has\n" + "a savage nature. It will courageously\n" + "challenge foes that are much larger."), + .pokemonScale = 282, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Staraptor, 56, 64), + FRONT_PIC_FEMALE(Staraptor, 56, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_Staraptor, + .frontAnimId = ANIM_V_SHAKE, + .backPic = gMonBackPic_Staraptor, + .backPicFemale = gMonBackPic_Staraptor, + .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Staraptor), + ICON(Staraptor, 0), + .footprint = gMonFootprint_Staraptor, + LEARNSETS(Staraptor), + }, +#endif //P_FAMILY_STARLY + +#if P_FAMILY_BIDOOF + [SPECIES_BIDOOF] = { + .baseHP = 59, .baseAttack = 45, - .baseDefense = 43, - .baseSpeed = 72, - .baseSpAttack = 55, - .baseSpDefense = 43, - #if P_UPDATED_STATS >= GEN_7 - .baseHP = 65, - #else - .baseHP = 55, - #endif - .types = { TYPE_PSYCHIC, TYPE_FLYING}, - .catchRate = 190, - .expYield = 65, - .evYield_Speed = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FLYING}, - .abilities = {ABILITY_UNAWARE, ABILITY_KLUTZ, ABILITY_SIMPLE}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_SWOOBAT] = - { - .baseHP = 67, - .baseAttack = 57, - .baseDefense = 55, - .baseSpeed = 114, - .baseSpAttack = 77, - .baseSpDefense = 55, - .types = { TYPE_PSYCHIC, TYPE_FLYING}, - .catchRate = 45, - .expYield = 149, - .evYield_Speed = 2, + .baseDefense = 40, + .baseSpeed = 31, + .baseSpAttack = 35, + .baseSpDefense = 40, + .types = { TYPE_NORMAL, TYPE_NORMAL}, + .catchRate = 255, + .expYield = 50, + .evYield_HP = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FLYING}, - .abilities = {ABILITY_UNAWARE, ABILITY_KLUTZ, ABILITY_SIMPLE}, - .bodyColor = BODY_COLOR_BLUE, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, + .abilities = {ABILITY_SIMPLE, ABILITY_UNAWARE, ABILITY_MOODY}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .speciesName = _("Bidoof"), + .cryId = CRY_BIDOOF, + .natDexNum = NATIONAL_DEX_BIDOOF, + .categoryName = _("Plump Mouse"), + .height = 5, + .weight = 200, + .description = COMPOUND_STRING( + "A comparison revealed that Bidoof's front\n" + "teeth grow at the same rate as Rattata's.\n" + "It constantly gnaws on logs and rocks to\n" + "whittle down its front teeth."), + .pokemonScale = 432, + .pokemonOffset = 16, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Bidoof, 40, 40), + FRONT_PIC_FEMALE(Bidoof, 40, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Bidoof, + .frontAnimId = ANIM_H_SLIDE_SLOW, + BACK_PIC(Bidoof, 64, 40), + BACK_PIC_FEMALE(Bidoof, 64, 40), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, + PALETTE(Bidoof), + ICON(Bidoof, 2), + .footprint = gMonFootprint_Bidoof, + LEARNSETS(Bidoof), + .evolutions = EVOLUTION({EVO_LEVEL, 15, SPECIES_BIBAREL}), }, - [SPECIES_DRILBUR] = + [SPECIES_BIBAREL] = { - .baseHP = 60, + .baseHP = 79, .baseAttack = 85, - .baseDefense = 40, - .baseSpeed = 68, - .baseSpAttack = 30, - .baseSpDefense = 45, - .types = { TYPE_GROUND, TYPE_GROUND}, - .catchRate = 120, - .expYield = 66, - .evYield_Attack = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SAND_RUSH, ABILITY_SAND_FORCE, ABILITY_MOLD_BREAKER}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = TRUE, - }, - - [SPECIES_EXCADRILL] = - { - .baseHP = 110, - .baseAttack = 135, .baseDefense = 60, - .baseSpeed = 88, - .baseSpAttack = 50, - .baseSpDefense = 65, - .types = { TYPE_GROUND, TYPE_STEEL}, - .catchRate = 60, - .expYield = 178, + .baseSpeed = 71, + .baseSpAttack = 55, + .baseSpDefense = 60, + .types = { TYPE_NORMAL, TYPE_WATER}, + .catchRate = 127, + .expYield = 144, .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SAND_RUSH, ABILITY_SAND_FORCE, ABILITY_MOLD_BREAKER}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = TRUE, - }, - - [SPECIES_AUDINO] = - { - .baseHP = 103, - .baseAttack = 60, - .baseDefense = 86, - .baseSpeed = 50, - .baseSpAttack = 60, - .baseSpDefense = 86, - .types = { TYPE_NORMAL, TYPE_NORMAL}, - .catchRate = 255, - .expYield = 390, - .evYield_HP = 2, - .itemCommon = ITEM_ORAN_BERRY, - .itemRare = ITEM_SITRUS_BERRY, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_HEALER, ABILITY_REGENERATOR, ABILITY_KLUTZ}, - .bodyColor = BODY_COLOR_PINK, - .noFlip = FALSE, - }, - - [SPECIES_TIMBURR] = - { - .baseHP = 75, - .baseAttack = 80, - .baseDefense = 55, - .baseSpeed = 35, - .baseSpAttack = 25, - .baseSpDefense = 35, - .types = { TYPE_FIGHTING, TYPE_FIGHTING}, - .catchRate = 180, - .expYield = 61, - .evYield_Attack = 1, - .genderRatio = PERCENT_FEMALE(25), - .eggCycles = 20, - .friendship = 70, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_GUTS, ABILITY_SHEER_FORCE, ABILITY_IRON_FIST}, - .bodyColor = BODY_COLOR_GRAY, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, + .abilities = {ABILITY_SIMPLE, ABILITY_UNAWARE, ABILITY_MOODY}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - }, - - [SPECIES_GURDURR] = + .speciesName = _("Bibarel"), + .cryId = CRY_BIBAREL, + .natDexNum = NATIONAL_DEX_BIBAREL, + .categoryName = _("Beaver"), + .height = 10, + .weight = 315, + .description = COMPOUND_STRING( + "It makes its nest by damming streams\n" + "with bark and mud. A river dammed by\n" + "Bibarel will never overflow its banks,\n" + "which is appreciated by people nearby."), + .pokemonScale = 305, + .pokemonOffset = 8, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Bibarel, 56, 48), + FRONT_PIC_FEMALE(Bibarel, 56, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Bibarel, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Bibarel, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Bibarel), + ICON(Bibarel, 2), + .footprint = gMonFootprint_Bibarel, + LEARNSETS(Bibarel), + }, +#endif //P_FAMILY_BIDOOF + +#if P_FAMILY_KRICKETOT + [SPECIES_KRICKETOT] = { - .baseHP = 85, - .baseAttack = 105, - .baseDefense = 85, - .baseSpeed = 40, - .baseSpAttack = 40, - .baseSpDefense = 50, - .types = { TYPE_FIGHTING, TYPE_FIGHTING}, - .catchRate = 90, - .expYield = 142, - .evYield_Attack = 2, - .genderRatio = PERCENT_FEMALE(25), - .eggCycles = 20, + .baseHP = 37, + .baseAttack = 25, + .baseDefense = 41, + .baseSpeed = 25, + .baseSpAttack = 25, + .baseSpDefense = 41, + .types = { TYPE_BUG, TYPE_BUG}, + .catchRate = 255, + .expYield = 39, + .evYield_Defense = 1, + .itemRare = ITEM_METRONOME, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_GUTS, ABILITY_SHEER_FORCE, ABILITY_IRON_FIST}, - .bodyColor = BODY_COLOR_GRAY, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_RUN_AWAY}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, + .speciesName = _("Kricketot"), + .cryId = CRY_KRICKETOT, + .natDexNum = NATIONAL_DEX_KRICKETOT, + .categoryName = _("Cricket"), + .height = 3, + .weight = 22, + .description = COMPOUND_STRING( + "It shakes its head back to front,\n" + "causing its antennae to hit each other\n" + "and sound like a xylophone.\n" + "These sounds are fall hallmarks."), + .pokemonScale = 530, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Kricketot, 48, 48), + FRONT_PIC_FEMALE(Kricketot, 48, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Kricketot, + .frontAnimId = ANIM_H_JUMPS, + BACK_PIC(Kricketot, 48, 56), + BACK_PIC_FEMALE(Kricketot, 48, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Kricketot), + ICON(Kricketot, 2), + .footprint = gMonFootprint_Kricketot, + LEARNSETS(Kricketot), + .evolutions = EVOLUTION({EVO_LEVEL, 10, SPECIES_KRICKETUNE}), }, - [SPECIES_CONKELDURR] = + [SPECIES_KRICKETUNE] = { - .baseHP = 105, - .baseAttack = 140, - .baseDefense = 95, - .baseSpeed = 45, + .baseHP = 77, + .baseAttack = 85, + .baseDefense = 51, + .baseSpeed = 65, .baseSpAttack = 55, - .baseSpDefense = 65, - .types = { TYPE_FIGHTING, TYPE_FIGHTING}, + .baseSpDefense = 51, + .types = { TYPE_BUG, TYPE_BUG}, .catchRate = 45, - .expYield = 227, - .evYield_Attack = 3, - .genderRatio = PERCENT_FEMALE(25), - .eggCycles = 20, + .expYield = 134, + .evYield_Attack = 2, + .itemRare = ITEM_METRONOME, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_GUTS, ABILITY_SHEER_FORCE, ABILITY_IRON_FIST}, - .bodyColor = BODY_COLOR_BROWN, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_SWARM, ABILITY_NONE, ABILITY_TECHNICIAN}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, - }, - - [SPECIES_TYMPOLE] = + .speciesName = _("Kricketune"), + .cryId = CRY_KRICKETUNE, + .natDexNum = NATIONAL_DEX_KRICKETUNE, + .categoryName = _("Cricket"), + .height = 10, + .weight = 255, + .description = COMPOUND_STRING( + "It signals its emotions with its melodies.\n" + "There is a village that hosts a contest\n" + "based on the amazingly variable cries\n" + "of this Pokémon."), + .pokemonScale = 305, + .pokemonOffset = 8, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Kricketune, 56, 56), + FRONT_PIC_FEMALE(Kricketune, 56, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Kricketune, + .frontAnimId = ANIM_H_SLIDE_SLOW, + BACK_PIC(Kricketune, 56, 64), + BACK_PIC_FEMALE(Kricketune, 56, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_H_VIBRATE, + PALETTE(Kricketune), + ICON(Kricketune, 2), + .footprint = gMonFootprint_Kricketune, + LEARNSETS(Kricketune), + }, +#endif //P_FAMILY_KRICKETOT + +#if P_FAMILY_SHINX + [SPECIES_SHINX] = { - .baseHP = 50, - .baseAttack = 50, - .baseDefense = 40, - .baseSpeed = 64, - .baseSpAttack = 50, - .baseSpDefense = 40, - .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 255, - .expYield = 59, - .evYield_Speed = 1, + .baseHP = 45, + .baseAttack = 65, + .baseDefense = 34, + .baseSpeed = 45, + .baseSpAttack = 40, + .baseSpDefense = 34, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, + .catchRate = 235, + .expYield = 53, + .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_SWIFT_SWIM, ABILITY_HYDRATION, ABILITY_WATER_ABSORB}, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_RIVALRY, ABILITY_INTIMIDATE, ABILITY_GUTS}, .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Shinx"), + .cryId = CRY_SHINX, + .natDexNum = NATIONAL_DEX_SHINX, + .categoryName = _("Flash"), + .height = 5, + .weight = 95, + .description = COMPOUND_STRING( + "It rapidly contracts and relaxes its\n" + "muscles to generate electricity. Its\n" + "body shines if endangered. It flees\n" + "while the foe is momentarily blinded."), + .pokemonScale = 432, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Shinx, 48, 40), + FRONT_PIC_FEMALE(Shinx, 48, 40), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_Shinx, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Shinx, 64, 48), + BACK_PIC_FEMALE(Shinx, 64, 48), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Shinx), + ICON(Shinx, 0), + .footprint = gMonFootprint_Shinx, + LEARNSETS(Shinx), + .evolutions = EVOLUTION({EVO_LEVEL, 15, SPECIES_LUXIO}), }, - [SPECIES_PALPITOAD] = + [SPECIES_LUXIO] = { - .baseHP = 75, - .baseAttack = 65, - .baseDefense = 55, - .baseSpeed = 69, - .baseSpAttack = 65, - .baseSpDefense = 55, - .types = { TYPE_WATER, TYPE_GROUND}, + .baseHP = 60, + .baseAttack = 85, + .baseDefense = 49, + .baseSpeed = 60, + .baseSpAttack = 60, + .baseSpDefense = 49, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, .catchRate = 120, - .expYield = 134, - .evYield_HP = 2, + .expYield = 127, + .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, + .friendship = 100, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_SWIFT_SWIM, ABILITY_HYDRATION, ABILITY_WATER_ABSORB}, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_RIVALRY, ABILITY_INTIMIDATE, ABILITY_GUTS}, .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Luxio"), + .cryId = CRY_LUXIO, + .natDexNum = NATIONAL_DEX_LUXIO, + .categoryName = _("Spark"), + .height = 9, + .weight = 305, + .description = COMPOUND_STRING( + "Strong electricity courses through the\n" + "tips of its sharp claws. A light scratch\n" + "has enough amperage to cause fainting\n" + "in foes."), + .pokemonScale = 338, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Luxio, 48, 48), + FRONT_PIC_FEMALE(Luxio, 48, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Luxio, + .frontAnimId = ANIM_H_STRETCH, + BACK_PIC(Luxio, 64, 64), + BACK_PIC_FEMALE(Luxio, 64, 64), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Luxio), + ICON(Luxio, 0), + .footprint = gMonFootprint_Luxio, + LEARNSETS(Luxio), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_LUXRAY}), }, - [SPECIES_SEISMITOAD] = + [SPECIES_LUXRAY] = { - .baseHP = 105, - .baseDefense = 75, - .baseSpeed = 74, - .baseSpAttack = 85, - .baseSpDefense = 75, - #if P_UPDATED_STATS >= GEN_6 - .baseAttack = 95, - #else - .baseAttack = 85, - #endif - .types = { TYPE_WATER, TYPE_GROUND}, + .baseHP = 80, + .baseAttack = 120, + .baseDefense = 79, + .baseSpeed = 70, + .baseSpAttack = 95, + .baseSpDefense = 79, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, .catchRate = 45, - .expYield = 229, - .evYield_HP = 3, + .expYield = 235, + .evYield_Attack = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_SWIFT_SWIM, ABILITY_POISON_TOUCH, ABILITY_WATER_ABSORB}, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_RIVALRY, ABILITY_INTIMIDATE, ABILITY_GUTS}, .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - }, - - [SPECIES_THROH] = + .speciesName = _("Luxray"), + .cryId = CRY_LUXRAY, + .natDexNum = NATIONAL_DEX_LUXRAY, + .categoryName = _("Gleam Eyes"), + .height = 14, + .weight = 420, + .description = COMPOUND_STRING( + "It has eyes which can see through\n" + "anything. Luxray's ability to see\n" + "through objects comes in handy when\n" + "it's scouting for danger."), + .pokemonScale = 265, + .pokemonOffset = 2, + .trainerScale = 262, + .trainerOffset = 0, + FRONT_PIC(Luxray, 64, 64), + FRONT_PIC_FEMALE(Luxray, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Luxray, + .frontAnimId = ANIM_GLOW_YELLOW, + BACK_PIC(Luxray, 64, 64), + BACK_PIC_FEMALE(Luxray, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(Luxray), + ICON(Luxray, 0), + .footprint = gMonFootprint_Luxray, + LEARNSETS(Luxray), + }, +#endif //P_FAMILY_SHINX + +#if P_FAMILY_CRANIDOS + [SPECIES_CRANIDOS] = { - .baseHP = 120, - .baseAttack = 100, - .baseDefense = 85, - .baseSpeed = 45, + .baseHP = 67, + .baseAttack = 125, + .baseDefense = 40, + .baseSpeed = 58, .baseSpAttack = 30, - .baseSpDefense = 85, - .types = { TYPE_FIGHTING, TYPE_FIGHTING}, + .baseSpDefense = 30, + .types = { TYPE_ROCK, TYPE_ROCK}, .catchRate = 45, - .expYield = 163, - .evYield_HP = 2, - .itemRare = ITEM_BLACK_BELT, - .genderRatio = MON_MALE, - .eggCycles = 20, + .expYield = 70, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_GUTS, ABILITY_INNER_FOCUS, ABILITY_MOLD_BREAKER}, - .bodyColor = BODY_COLOR_RED, + .growthRate = GROWTH_ERRATIC, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, + .abilities = {ABILITY_MOLD_BREAKER, ABILITY_NONE, ABILITY_SHEER_FORCE}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Cranidos"), + .cryId = CRY_CRANIDOS, + .natDexNum = NATIONAL_DEX_CRANIDOS, + .categoryName = _("Head Butt"), + .height = 9, + .weight = 315, + .description = COMPOUND_STRING( + "A lifelong jungle dweller from 100 million\n" + "years ago, its skull is as hard as iron. \n" + "It would snap obstructing trees with\n" + "headbutts."), + .pokemonScale = 338, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Cranidos, 48, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Cranidos, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Cranidos, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Cranidos), + ICON(Cranidos, 0), + .footprint = gMonFootprint_Cranidos, + LEARNSETS(Cranidos), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_RAMPARDOS}), }, - [SPECIES_SAWK] = + [SPECIES_RAMPARDOS] = { - .baseHP = 75, - .baseAttack = 125, - .baseDefense = 75, - .baseSpeed = 85, - .baseSpAttack = 30, - .baseSpDefense = 75, - .types = { TYPE_FIGHTING, TYPE_FIGHTING}, + .baseHP = 97, + .baseAttack = 165, + .baseDefense = 60, + .baseSpeed = 58, + .baseSpAttack = 65, + .baseSpDefense = 50, + .types = { TYPE_ROCK, TYPE_ROCK}, .catchRate = 45, - .expYield = 163, + .expYield = 173, .evYield_Attack = 2, - .itemRare = ITEM_BLACK_BELT, - .genderRatio = MON_MALE, - .eggCycles = 20, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_STURDY, ABILITY_INNER_FOCUS, ABILITY_MOLD_BREAKER}, + .growthRate = GROWTH_ERRATIC, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, + .abilities = {ABILITY_MOLD_BREAKER, ABILITY_NONE, ABILITY_SHEER_FORCE}, .bodyColor = BODY_COLOR_BLUE, - .noFlip = TRUE, + .noFlip = FALSE, + .speciesName = _("Rampardos"), + .cryId = CRY_RAMPARDOS, + .natDexNum = NATIONAL_DEX_RAMPARDOS, + .categoryName = _("Head Butt"), + .height = 16, + .weight = 1025, + .description = COMPOUND_STRING( + "The result of repeated headbutts\n" + "is a skull grown thick and hard.\n" + "However, its brain has shrunk in size\n" + "compared with Cranidos's."), + .pokemonScale = 259, + .pokemonOffset = 1, + .trainerScale = 296, + .trainerOffset = 1, + FRONT_PIC(Rampardos, 64, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_Rampardos, + .frontAnimId = ANIM_V_SHAKE_TWICE, + BACK_PIC(Rampardos, 64, 64), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(Rampardos), + ICON(Rampardos, 0), + .footprint = gMonFootprint_Rampardos, + LEARNSETS(Rampardos), + }, +#endif //P_FAMILY_CRANIDOS + +#if P_FAMILY_SHIELDON + [SPECIES_SHIELDON] = + { + .baseHP = 30, + .baseAttack = 42, + .baseDefense = 118, + .baseSpeed = 30, + .baseSpAttack = 42, + .baseSpDefense = 88, + .types = { TYPE_ROCK, TYPE_STEEL}, + .catchRate = 45, + .expYield = 70, + .evYield_Defense = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 30, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_ERRATIC, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, + .abilities = {ABILITY_STURDY, ABILITY_NONE, ABILITY_SOUNDPROOF}, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + .speciesName = _("Shieldon"), + .cryId = CRY_SHIELDON, + .natDexNum = NATIONAL_DEX_SHIELDON, + .categoryName = _("Shield"), + .height = 5, + .weight = 570, + .description = COMPOUND_STRING( + "This Pokémon lived in primeval jungles.\n" + "Few enemies would have been willing to\n" + "square off against its heavily armored\n" + "face, so it's thought."), + .pokemonScale = 432, + .pokemonOffset = 16, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Shieldon, 40, 40), + .frontPicYOffset = 15, + .frontAnimFrames = sAnims_Shieldon, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(Shieldon, 56, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Shieldon), + ICON(Shieldon, 1), + .footprint = gMonFootprint_Shieldon, + LEARNSETS(Shieldon), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_BASTIODON}), + }, + + [SPECIES_BASTIODON] = + { + .baseHP = 60, + .baseAttack = 52, + .baseDefense = 168, + .baseSpeed = 30, + .baseSpAttack = 47, + .baseSpDefense = 138, + .types = { TYPE_ROCK, TYPE_STEEL}, + .catchRate = 45, + .expYield = 173, + .evYield_Defense = 2, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 30, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_ERRATIC, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, + .abilities = {ABILITY_STURDY, ABILITY_NONE, ABILITY_SOUNDPROOF}, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + .speciesName = _("Bastiodon"), + .cryId = CRY_BASTIODON, + .natDexNum = NATIONAL_DEX_BASTIODON, + .categoryName = _("Shield"), + .height = 13, + .weight = 1495, + .description = COMPOUND_STRING( + "Their rock-hard faces serve to protect\n" + "them from any frontral attacks.\n" + "When attacked, they form a wall.\n" + "They shielded their young in that way."), + .pokemonScale = 272, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Bastiodon, 64, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Bastiodon, + .frontAnimId = ANIM_BACK_AND_LUNGE, + BACK_PIC(Bastiodon, 64, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(Bastiodon), + ICON(Bastiodon, 1), + .footprint = gMonFootprint_Bastiodon, + LEARNSETS(Bastiodon), + }, +#endif //P_FAMILY_SHIELDON + +#if P_FAMILY_BURMY +#define BURMY_MISC_INFO \ + .baseHP = 40, \ + .baseAttack = 29, \ + .baseDefense = 45, \ + .baseSpeed = 36, \ + .baseSpAttack = 29, \ + .baseSpDefense = 45, \ + .types = { TYPE_BUG, TYPE_BUG}, \ + .catchRate = 120, \ + .expYield = 45, \ + .evYield_SpDefense = 1, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 15, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, \ + .abilities = {ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_OVERCOAT}, \ + .noFlip = FALSE, \ + .speciesName = _("Burmy"), \ + .cryId = CRY_BURMY, \ + .natDexNum = NATIONAL_DEX_BURMY, \ + .categoryName = _("Bagworm"), \ + .height = 2, \ + .weight = 34, \ + .pokemonScale = 682, \ + .pokemonOffset = 24, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .frontAnimFrames = sAnims_Burmy, \ + .frontAnimId = ANIM_V_STRETCH, \ + .backAnimId = BACK_ANIM_H_SHAKE, \ + .footprint = gMonFootprint_Burmy, \ + LEARNSETS(Burmy), \ + .formSpeciesIdTable = sBurmyFormSpeciesIdTable, \ + .formChangeTable = sBurmyFormChangeTable + + [SPECIES_BURMY_PLANT_CLOAK] = + { + BURMY_MISC_INFO, + .bodyColor = BODY_COLOR_GREEN, + .description = COMPOUND_STRING( + "If its cloak is even slightly damaged, it\n" + "will immediately repair it with whatever is\n" + "near at hand. The Pokémon within the cloak\n" + "is scrawny and vulnerable to the cold."), + FRONT_PIC(BurmyPlantCloak, 32, 56), + .frontPicYOffset = 13, + BACK_PIC(BurmyPlantCloak, 40, 56), + .backPicYOffset = 6, + PALETTE(BurmyPlantCloak), + ICON(BurmyPlantCloak, 1), + .evolutions = EVOLUTION({EVO_LEVEL_FEMALE, 20, SPECIES_WORMADAM_PLANT_CLOAK}, + {EVO_LEVEL_MALE, 20, SPECIES_MOTHIM}), + }, + + [SPECIES_BURMY_SANDY_CLOAK] = + { + BURMY_MISC_INFO, + .bodyColor = BODY_COLOR_BROWN, + .description = COMPOUND_STRING( + "It weaves a cloak together with sand, mud,\n" + "and silk it spits out. This earthen cloak\n" + "is ruined by wind and rain, so the Pokémon\n" + "hides away in caves and other such places."), + FRONT_PIC(BurmySandyCloak, 32, 56), + .frontPicYOffset = 12, + BACK_PIC(BurmySandyCloak, 32, 56), + .backPicYOffset = 7, + PALETTE(BurmySandyCloak), + ICON(BurmySandyCloak, 1), + .evolutions = EVOLUTION({EVO_LEVEL_FEMALE, 20, SPECIES_WORMADAM_SANDY_CLOAK}, + {EVO_LEVEL_MALE, 20, SPECIES_MOTHIM}), + }, + + [SPECIES_BURMY_TRASH_CLOAK] = + { + BURMY_MISC_INFO, + .bodyColor = BODY_COLOR_RED, + .description = COMPOUND_STRING( + "When confronted by a lack of other\n" + "materials, Burmy will create its cloak\n" + "using dust and refuse. The cloak seems to\n" + "be more comfortable than one would think."), + FRONT_PIC(BurmyTrashCloak, 32, 56), + .frontPicYOffset = 8, + BACK_PIC(BurmyTrashCloak, 40, 64), + .backPicYOffset = 0, + PALETTE(BurmyTrashCloak), + ICON(BurmyTrashCloak, 0), + .evolutions = EVOLUTION({EVO_LEVEL_FEMALE, 20, SPECIES_WORMADAM_TRASH_CLOAK}, + {EVO_LEVEL_MALE, 20, SPECIES_MOTHIM}), + }, + +#define WORMADAM_MISC_INFO \ + .catchRate = 45, \ + .expYield = 148, \ + .itemRare = ITEM_SILVER_POWDER, \ + .genderRatio = MON_FEMALE, \ + .eggCycles = 15, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, \ + .abilities = {ABILITY_ANTICIPATION, ABILITY_NONE, ABILITY_OVERCOAT},\ + .noFlip = FALSE, \ + .speciesName = _("Wormadam"), \ + .cryId = CRY_WORMADAM, \ + .natDexNum = NATIONAL_DEX_WORMADAM, \ + .categoryName = _("Bagworm"), \ + .height = 5, \ + .weight = 65, \ + .pokemonScale = 432, \ + .pokemonOffset = 13, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .frontPicYOffset = 10, \ + .frontAnimFrames = sAnims_Wormadam, \ + .frontAnimId = ANIM_SWING_CONVEX_FAST_SHORT, \ + .backPicYOffset = 2, \ + .backAnimId = BACK_ANIM_V_SHAKE, \ + .footprint = gMonFootprint_Wormadam, \ + .formSpeciesIdTable = sWormadamFormSpeciesIdTable + + [SPECIES_WORMADAM_PLANT_CLOAK] = + { + WORMADAM_MISC_INFO, + .baseHP = 60, + .baseAttack = 59, + .baseDefense = 85, + .baseSpeed = 36, + .baseSpAttack = 79, + .baseSpDefense = 105, + .types = { TYPE_BUG, TYPE_GRASS}, + .evYield_SpDefense = 2, + .bodyColor = BODY_COLOR_GREEN, + .description = COMPOUND_STRING( + "Its appearance changes depending\n" + "on where Burmy evolved. The materials\n" + "on hand become a part of its body.\n" + "The cloak is never shed."), + FRONT_PIC(WormadamPlantCloak, 48, 56), + BACK_PIC(WormadamPlantCloak, 56, 64), + PALETTE(WormadamPlantCloak), + ICON(WormadamPlantCloak, 1), + LEARNSETS(WormadamPlantCloak), }, - [SPECIES_SEWADDLE] = + [SPECIES_WORMADAM_SANDY_CLOAK] = { - .baseHP = 45, - .baseAttack = 53, - .baseDefense = 70, - .baseSpeed = 42, - .baseSpAttack = 40, - .baseSpDefense = 60, - .types = { TYPE_BUG, TYPE_GRASS}, - .catchRate = 255, - .expYield = 62, - .evYield_Defense = 1, - .itemRare = ITEM_MENTAL_HERB, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SWARM, ABILITY_CHLOROPHYLL, ABILITY_OVERCOAT}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, + WORMADAM_MISC_INFO, + .baseHP = 60, + .baseAttack = 79, + .baseDefense = 105, + .baseSpeed = 36, + .baseSpAttack = 59, + .baseSpDefense = 85, + .types = { TYPE_BUG, TYPE_GROUND}, + .evYield_Defense = 2, + .bodyColor = BODY_COLOR_BROWN, + .description = COMPOUND_STRING( + "Its earthen skin is reasonably hard, it has\n" + "no problem repelling a Starly's pecking.\n" + "It is said that a Wormadam that evolves\n" + "on a cold day will have a thicker cloak."), + FRONT_PIC(WormadamSandyCloak, 40, 56), + BACK_PIC(WormadamSandyCloak, 56, 64), + PALETTE(WormadamSandyCloak), + ICON(WormadamSandyCloak, 1), + LEARNSETS(WormadamSandyCloak), }, - [SPECIES_SWADLOON] = + [SPECIES_WORMADAM_TRASH_CLOAK] = { - .baseHP = 55, - .baseAttack = 63, - .baseDefense = 90, - .baseSpeed = 42, - .baseSpAttack = 50, - .baseSpDefense = 80, - .types = { TYPE_BUG, TYPE_GRASS}, - .catchRate = 120, - .expYield = 133, - .evYield_Defense = 2, - .itemRare = ITEM_MENTAL_HERB, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_LEAF_GUARD, ABILITY_CHLOROPHYLL, ABILITY_OVERCOAT}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, + WORMADAM_MISC_INFO, + .baseHP = 60, + .baseAttack = 69, + .baseDefense = 95, + .baseSpeed = 36, + .baseSpAttack = 69, + .baseSpDefense = 95, + .types = { TYPE_BUG, TYPE_STEEL}, + .evYield_Defense = 1, + .evYield_SpDefense = 1, + .bodyColor = BODY_COLOR_RED, + .description = COMPOUND_STRING( + "Its body, composed of refuse, blends in to\n" + "the scenery enough to be inconspicuous.\n" + "This seems to be the perfect way for it to\n" + "evade the detection of predators."), + FRONT_PIC(WormadamTrashCloak, 48, 56), + BACK_PIC(WormadamTrashCloak, 64, 64), + PALETTE(WormadamTrashCloak), + ICON(WormadamTrashCloak, 0), + LEARNSETS(WormadamTrashCloak), }, - [SPECIES_LEAVANNY] = + [SPECIES_MOTHIM] = { - .baseHP = 75, - .baseAttack = 103, - .baseDefense = 80, - .baseSpeed = 92, - .baseSpAttack = 70, - #if P_UPDATED_STATS >= GEN_6 - .baseSpDefense = 80, - #else - .baseSpDefense = 70, - #endif - .types = { TYPE_BUG, TYPE_GRASS}, + .baseHP = 70, + .baseAttack = 94, + .baseDefense = 50, + .baseSpeed = 66, + .baseSpAttack = 94, + .baseSpDefense = 50, + .types = { TYPE_BUG, TYPE_FLYING}, .catchRate = 45, - .expYield = 225, - .evYield_Attack = 3, - .itemRare = ITEM_MENTAL_HERB, - .genderRatio = PERCENT_FEMALE(50), + .expYield = 148, + .evYield_Attack = 1, + .evYield_SpAttack = 1, + .itemRare = ITEM_SILVER_POWDER, + .genderRatio = MON_MALE, .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, + .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SWARM, ABILITY_CHLOROPHYLL, ABILITY_OVERCOAT}, + .abilities = {ABILITY_SWARM, ABILITY_NONE, ABILITY_TINTED_LENS}, .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, - }, - - [SPECIES_VENIPEDE] = + .speciesName = _("Mothim"), + .cryId = CRY_MOTHIM, + .natDexNum = NATIONAL_DEX_MOTHIM, + .categoryName = _("Moth"), + .height = 9, + .weight = 233, + .description = COMPOUND_STRING( + "It does not keep a nest. While it\n" + "loves floral honey, it won't gather\n" + "any itself. Instead, it plots to steal\n" + "honey collected by Combee."), + .pokemonScale = 338, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Mothim, 64, 64), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Mothim, + .frontAnimId = ANIM_H_SLIDE_WOBBLE, + .enemyMonElevation = 10, + BACK_PIC(Mothim, 64, 56), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_H_SHAKE, + PALETTE(Mothim), + ICON(Mothim, 0), + .footprint = gMonFootprint_Mothim, + LEARNSETS(Mothim), + }, +#endif //P_FAMILY_BURMY + +#if P_FAMILY_COMBEE + [SPECIES_COMBEE] = { .baseHP = 30, - .baseAttack = 45, - .baseDefense = 59, - .baseSpeed = 57, + .baseAttack = 30, + .baseDefense = 42, + .baseSpeed = 70, .baseSpAttack = 30, - .baseSpDefense = 39, - .types = { TYPE_BUG, TYPE_POISON}, - .catchRate = 255, - .expYield = 52, - .evYield_Defense = 1, - .itemRare = ITEM_POISON_BARB, - .genderRatio = PERCENT_FEMALE(50), + .baseSpDefense = 42, + .types = { TYPE_BUG, TYPE_FLYING}, + .catchRate = 120, + .expYield = 49, + .evYield_Speed = 1, + .itemRare = ITEM_HONEY, + .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - #if P_UPDATED_ABILITIES >= GEN_6 - .abilities = {ABILITY_POISON_POINT, ABILITY_SWARM, ABILITY_SPEED_BOOST}, - #else - .abilities = {ABILITY_POISON_POINT, ABILITY_SWARM, ABILITY_QUICK_FEET}, - #endif - .bodyColor = BODY_COLOR_RED, + .abilities = {ABILITY_HONEY_GATHER, ABILITY_NONE, ABILITY_HUSTLE}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, + .speciesName = _("Combee"), + .cryId = CRY_COMBEE, + .natDexNum = NATIONAL_DEX_COMBEE, + .categoryName = _("Tiny Bee"), + .height = 3, + .weight = 55, + .description = COMPOUND_STRING( + "A Pokémon formed by three others.\n" + "It constantly gathers honey from flowers\n" + "to please Vespiquen. At night, they\n" + "cluster to form a beehive and sleep."), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Combee, 64, 40), + .frontPicYOffset = 16, + .frontAnimFrames = sAnims_Combee, + .frontAnimId = ANIM_V_SLIDE_WOBBLE, + .enemyMonElevation = 8, + BACK_PIC(Combee, 64, 48), + .backPicYOffset = 22, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + .palette = gMonPalette_Combee, + .paletteFemale = gMonPalette_CombeeF, + .shinyPalette = gMonShinyPalette_Combee, + .shinyPaletteFemale = gMonShinyPalette_CombeeF, + ICON(Combee, 0), + .footprint = gMonFootprint_Combee, + LEARNSETS(Combee), + .evolutions = EVOLUTION({EVO_LEVEL_FEMALE, 21, SPECIES_VESPIQUEN}), }, - [SPECIES_WHIRLIPEDE] = + [SPECIES_VESPIQUEN] = { - .baseHP = 40, - .baseAttack = 55, - .baseDefense = 99, - .baseSpeed = 47, - .baseSpAttack = 40, - .baseSpDefense = 79, - .types = { TYPE_BUG, TYPE_POISON}, - .catchRate = 120, - .expYield = 126, - .evYield_Defense = 2, + .baseHP = 70, + .baseAttack = 80, + .baseDefense = 102, + .baseSpeed = 40, + .baseSpAttack = 80, + .baseSpDefense = 102, + .types = { TYPE_BUG, TYPE_FLYING}, + .catchRate = 45, + .expYield = 166, + .evYield_Defense = 1, + .evYield_SpDefense = 1, .itemRare = ITEM_POISON_BARB, - .genderRatio = PERCENT_FEMALE(50), + .genderRatio = MON_FEMALE, .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - #if P_UPDATED_ABILITIES >= GEN_6 - .abilities = {ABILITY_POISON_POINT, ABILITY_SWARM, ABILITY_SPEED_BOOST}, - #else - .abilities = {ABILITY_POISON_POINT, ABILITY_SWARM, ABILITY_QUICK_FEET}, - #endif - .bodyColor = BODY_COLOR_GRAY, + .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_UNNERVE}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, - }, - - [SPECIES_SCOLIPEDE] = + .speciesName = _("Vespiquen"), + .cryId = CRY_VESPIQUEN, + .natDexNum = NATIONAL_DEX_VESPIQUEN, + .categoryName = _("Beehive"), + .height = 12, + .weight = 385, + .description = COMPOUND_STRING( + "It houses its colony in cells in its body\n" + "and releases various pheromones to\n" + "make those grubs do its bidding.\n" + "There is only one in a colony."), + .pokemonScale = 282, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Vespiquen, 48, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Vespiquen, + .frontAnimId = ANIM_LUNGE_GROW, + .enemyMonElevation = 4, + BACK_PIC(Vespiquen, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, + PALETTE(Vespiquen), + ICON(Vespiquen, 0), + .footprint = gMonFootprint_Vespiquen, + LEARNSETS(Vespiquen), + }, +#endif //P_FAMILY_COMBEE + +#if P_FAMILY_PACHIRISU + [SPECIES_PACHIRISU] = { .baseHP = 60, - .baseDefense = 89, - .baseSpeed = 112, - .baseSpAttack = 55, - .baseSpDefense = 69, - #if P_UPDATED_STATS >= GEN_6 - .baseAttack = 100, - #else - .baseAttack = 90, - #endif - .types = { TYPE_BUG, TYPE_POISON}, - .catchRate = 45, - .expYield = 218, - .evYield_Speed = 3, - .itemRare = ITEM_POISON_BARB, + .baseAttack = 45, + .baseDefense = 70, + .baseSpeed = 95, + .baseSpAttack = 45, + .baseSpDefense = 90, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, + .catchRate = 200, + .expYield = 142, + .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - #if P_UPDATED_ABILITIES >= GEN_6 - .abilities = {ABILITY_POISON_POINT, ABILITY_SWARM, ABILITY_SPEED_BOOST}, - #else - .abilities = {ABILITY_POISON_POINT, ABILITY_SWARM, ABILITY_QUICK_FEET}, - #endif - .bodyColor = BODY_COLOR_RED, + .eggCycles = 10, + .friendship = 100, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY}, + .abilities = {ABILITY_RUN_AWAY, ABILITY_PICKUP, ABILITY_VOLT_ABSORB}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - }, - - [SPECIES_COTTONEE] = + .speciesName = _("Pachirisu"), + .cryId = CRY_PACHIRISU, + .natDexNum = NATIONAL_DEX_PACHIRISU, + .categoryName = _("EleSquirrel"), + .height = 4, + .weight = 39, + .description = COMPOUND_STRING( + "A pair may be seen rubbing their cheek\n" + "pouches together in an effort to share\n" + "stored electricity. It stores them with\n" + "berries in tree holes."), + .pokemonScale = 491, + .pokemonOffset = 16, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Pachirisu, 48, 56), + FRONT_PIC_FEMALE(Pachirisu, 48, 56), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Pachirisu, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Pachirisu, 64, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, + PALETTE(Pachirisu), + ICON(Pachirisu, 0), + .footprint = gMonFootprint_Pachirisu, + LEARNSETS(Pachirisu), + }, +#endif //P_FAMILY_PACHIRISU + +#if P_FAMILY_BUIZEL + [SPECIES_BUIZEL] = { - .baseHP = 40, - .baseAttack = 27, - .baseDefense = 60, - .baseSpeed = 66, - .baseSpAttack = 37, - .baseSpDefense = 50, - #if P_UPDATED_TYPES >= GEN_6 - .types = { TYPE_GRASS, TYPE_FAIRY}, - #else - .types = { TYPE_GRASS, TYPE_GRASS}, - #endif + .baseHP = 55, + .baseAttack = 65, + .baseDefense = 35, + .baseSpeed = 85, + .baseSpAttack = 60, + .baseSpDefense = 30, + .types = { TYPE_WATER, TYPE_WATER}, .catchRate = 190, - .expYield = 56, + .expYield = 66, .evYield_Speed = 1, - .itemRare = ITEM_ABSORB_BULB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_PRANKSTER, ABILITY_INFILTRATOR, ABILITY_CHLOROPHYLL}, - .bodyColor = BODY_COLOR_GREEN, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, + .abilities = {ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_WATER_VEIL}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .speciesName = _("Buizel"), + .cryId = CRY_BUIZEL, + .natDexNum = NATIONAL_DEX_BUIZEL, + .categoryName = _("Sea Weasel"), + .height = 7, + .weight = 295, + .description = COMPOUND_STRING( + "It inflates its flotation sac, keeping its\n" + "face above water in order to watch for\n" + "prey movement. It swims by rotating its\n" + "two tails like a screw."), + .pokemonScale = 365, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Buizel, 56, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Buizel, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Buizel, 64, 48), + BACK_PIC_FEMALE(Buizel, 64, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Buizel), + ICON(Buizel, 0), + .footprint = gMonFootprint_Buizel, + LEARNSETS(Buizel), + .evolutions = EVOLUTION({EVO_LEVEL, 26, SPECIES_FLOATZEL}), }, - [SPECIES_WHIMSICOTT] = + [SPECIES_FLOATZEL] = { - .baseHP = 60, - .baseAttack = 67, - .baseDefense = 85, - .baseSpeed = 116, - .baseSpAttack = 77, - .baseSpDefense = 75, - #if P_UPDATED_TYPES >= GEN_6 - .types = { TYPE_GRASS, TYPE_FAIRY}, - #else - .types = { TYPE_GRASS, TYPE_GRASS}, - #endif + .baseHP = 85, + .baseAttack = 105, + .baseDefense = 55, + .baseSpeed = 115, + .baseSpAttack = 85, + .baseSpDefense = 50, + .types = { TYPE_WATER, TYPE_WATER}, .catchRate = 75, - .expYield = 168, + .expYield = 173, .evYield_Speed = 2, - .itemRare = ITEM_ABSORB_BULB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_PRANKSTER, ABILITY_INFILTRATOR, ABILITY_CHLOROPHYLL}, - .bodyColor = BODY_COLOR_GREEN, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, + .abilities = {ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_WATER_VEIL}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - }, - - [SPECIES_PETILIL] = + .speciesName = _("Floatzel"), + .cryId = CRY_FLOATZEL, + .natDexNum = NATIONAL_DEX_FLOATZEL, + .categoryName = _("Sea Weasel"), + .height = 11, + .weight = 335, + .description = COMPOUND_STRING( + "Its flotation sac developed as a result\n" + "of pursuing aquatic prey. It can double\n" + "as a rubber raft. It assists in the rescues\n" + "of drowning people."), + .pokemonScale = 320, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Floatzel, 64, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_Floatzel, + .frontAnimId = ANIM_H_JUMPS_V_STRETCH, + BACK_PIC(Floatzel, 64, 64), + BACK_PIC_FEMALE(Floatzel, 64, 64), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_V_STRETCH, + PALETTE(Floatzel), + ICON(Floatzel, 0), + .footprint = gMonFootprint_Floatzel, + LEARNSETS(Floatzel), + }, +#endif //P_FAMILY_BUIZEL + +#if P_FAMILY_CHERUBI + [SPECIES_CHERUBI] = { .baseHP = 45, .baseAttack = 35, - .baseDefense = 50, - .baseSpeed = 30, - .baseSpAttack = 70, - .baseSpDefense = 50, + .baseDefense = 45, + .baseSpeed = 35, + .baseSpAttack = 62, + .baseSpDefense = 53, .types = { TYPE_GRASS, TYPE_GRASS}, .catchRate = 190, - .expYield = 56, + .expYield = 55, .evYield_SpAttack = 1, - .itemRare = ITEM_ABSORB_BULB, - .genderRatio = MON_FEMALE, + .itemRare = ITEM_MIRACLE_SEED, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_CHLOROPHYLL, ABILITY_OWN_TEMPO, ABILITY_LEAF_GUARD}, - .bodyColor = BODY_COLOR_GREEN, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS}, + .abilities = {ABILITY_CHLOROPHYLL, ABILITY_NONE}, + .bodyColor = BODY_COLOR_PINK, .noFlip = FALSE, + .speciesName = _("Cherubi"), + .cryId = CRY_CHERUBI, + .natDexNum = NATIONAL_DEX_CHERUBI, + .categoryName = _("Cherry"), + .height = 4, + .weight = 33, + .description = COMPOUND_STRING( + "The small ball holds the nutrients needed\n" + "for evolution. Apparently, it is also very\n" + "sweet and tasty. Pokémon like Starly and\n" + "Taillow try to peck it off."), + .pokemonScale = 491, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Cherubi, 40, 32), + .frontPicYOffset = 16, + .frontAnimFrames = sAnims_Cherubi, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Cherubi, 48, 40), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Cherubi), + ICON(Cherubi, 1), + .footprint = gMonFootprint_Cherubi, + LEARNSETS(Cherubi), + .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_CHERRIM_OVERCAST}), + }, + +#define CHERRIM_MISC_INFO \ + .baseHP = 70, \ + .baseAttack = 60, \ + .baseDefense = 70, \ + .baseSpeed = 85, \ + .baseSpAttack = 87, \ + .baseSpDefense = 78, \ + .types = { TYPE_GRASS, TYPE_GRASS}, \ + .catchRate = 75, \ + .expYield = 158, \ + .evYield_SpAttack = 2, \ + .itemRare = ITEM_MIRACLE_SEED, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_GRASS},\ + .abilities = {ABILITY_FLOWER_GIFT, ABILITY_NONE},\ + .noFlip = FALSE, \ + .speciesName = _("Cherrim"), \ + .cryId = CRY_CHERRIM, \ + .natDexNum = NATIONAL_DEX_CHERRIM, \ + .categoryName = _("Blossom"), \ + .height = 5, \ + .weight = 93, \ + .pokemonScale = 432, \ + .pokemonOffset = 13, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Cherrim, \ + LEARNSETS(Cherrim), \ + .formSpeciesIdTable = sCherrimFormSpeciesIdTable,\ + .formChangeTable = sCherrimFormChangeTable + + [SPECIES_CHERRIM_OVERCAST] = + { + CHERRIM_MISC_INFO, + .bodyColor = BODY_COLOR_PURPLE, + .description = COMPOUND_STRING( + "It's motionless, save for the occasional\n" + "quiver. A rich array of Pokémon can be\n" + "found gathered around it, drawn by the\n" + "scent exuded from Cherrim's folded petals."), + FRONT_PIC(CherrimOvercast, 32, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_CherrimOvercast, + .frontAnimId = ANIM_DEEP_V_SQUISH_AND_BOUNCE, + BACK_PIC(CherrimOvercast, 40, 56), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_V_STRETCH, + PALETTE(CherrimOvercast), + ICON(CherrimOvercast, 0), + }, + + [SPECIES_CHERRIM_SUNSHINE] = + { + CHERRIM_MISC_INFO, + .bodyColor = BODY_COLOR_PINK, + .description = COMPOUND_STRING( + "Cherrim takes this form on sunny days.\n" + "Its faint scent entices bug Pokémon to it.\n" + "It immediately closes its petals and\n" + "becomes immobile once the sun hides."), + FRONT_PIC(CherrimSunshine, 48, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_CherrimSunshine, + .frontAnimId = ANIM_H_JUMPS_V_STRETCH, + BACK_PIC(CherrimSunshine, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(CherrimSunshine), + ICON(CherrimSunshine, 1), + }, +#endif //P_FAMILY_CHERUBI + +#if P_FAMILY_SHELLOS +#define SHELLOS_MISC_INFO \ + .baseHP = 76, \ + .baseAttack = 48, \ + .baseDefense = 48, \ + .baseSpeed = 34, \ + .baseSpAttack = 57, \ + .baseSpDefense = 62, \ + .types = { TYPE_WATER, TYPE_WATER}, \ + .catchRate = 190, \ + .expYield = 65, \ + .evYield_HP = 1, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_AMORPHOUS}, \ + .abilities = {ABILITY_STICKY_HOLD, ABILITY_STORM_DRAIN, ABILITY_SAND_FORCE},\ + .noFlip = FALSE, \ + .speciesName = _("Shellos"), \ + .cryId = CRY_SHELLOS, \ + .natDexNum = NATIONAL_DEX_SHELLOS, \ + .categoryName = _("Sea Slug"), \ + .height = 3, \ + .weight = 63, \ + .pokemonScale = 530, \ + .pokemonOffset = 13, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .frontAnimFrames = sAnims_Shellos, \ + .frontAnimId = ANIM_V_STRETCH, \ + .backPicYOffset = 8, \ + .backAnimId = BACK_ANIM_H_SPRING, \ + .footprint = gMonFootprint_Shellos, \ + LEARNSETS(Shellos), \ + .formSpeciesIdTable = sShellosFormSpeciesIdTable + + [SPECIES_SHELLOS_WEST_SEA] = + { + SHELLOS_MISC_INFO, + .bodyColor = BODY_COLOR_PURPLE, + .description = COMPOUND_STRING( + "It oozes a purple fluid to deter enemies.\n" + "While harmless, the fluid is awfully sticky.\n" + "Apparently, there are more West Sea\n" + "Shellos now than there were in the past."), + FRONT_PIC(ShellosWestSea, 40, 40), + .frontPicYOffset = 13, + BACK_PIC(ShellosWestSea, 40, 56), + PALETTE(ShellosWestSea), + ICON(ShellosWestSea, 0), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_GASTRODON_WEST_SEA}), + }, + + [SPECIES_SHELLOS_EAST_SEA] = + { + SHELLOS_MISC_INFO, + .bodyColor = BODY_COLOR_BLUE, + .description = COMPOUND_STRING( + "It's capable of spending a limited amount\n" + "of time on land until their skin dries out.\n" + "One theory suggests that living in cold\n" + "seas causes Shellos to take on this form."), + FRONT_PIC(ShellosEastSea, 40, 40), + .frontPicYOffset = 14, + BACK_PIC(ShellosEastSea, 56, 48), + PALETTE(ShellosEastSea), + ICON(ShellosEastSea, 0), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_GASTRODON_EAST_SEA}), + }, + +#define GASTRODON_MISC_INFO \ + .baseHP = 111, \ + .baseAttack = 83, \ + .baseDefense = 68, \ + .baseSpeed = 39, \ + .baseSpAttack = 92, \ + .baseSpDefense = 82, \ + .types = { TYPE_WATER, TYPE_GROUND}, \ + .catchRate = 75, \ + .expYield = 166, \ + .evYield_HP = 2, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_AMORPHOUS}, \ + .abilities = {ABILITY_STICKY_HOLD, ABILITY_STORM_DRAIN, ABILITY_SAND_FORCE},\ + .noFlip = FALSE, \ + .speciesName = _("Gastrodon"), \ + .cryId = CRY_GASTRODON, \ + .natDexNum = NATIONAL_DEX_GASTRODON, \ + .categoryName = _("Sea Slug"), \ + .height = 9, \ + .weight = 299, \ + .pokemonScale = 338, \ + .pokemonOffset = 8, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .frontPicYOffset = 8, \ + .frontAnimFrames = sAnims_Gastrodon, \ + .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, \ + .backPicYOffset = 3, \ + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, \ + .footprint = gMonFootprint_Gastrodon, \ + LEARNSETS(Gastrodon), \ + .formSpeciesIdTable = sGastrodonFormSpeciesIdTable + + [SPECIES_GASTRODON_WEST_SEA] = + { + GASTRODON_MISC_INFO, + .bodyColor = BODY_COLOR_PURPLE, + .description = COMPOUND_STRING( + "It appears on shallow-water beaches to\n" + "eat sand for nourishment. Should one\n" + "Gastrodon encounter another of a\n" + "different color, a fierce battle will ensue."), + FRONT_PIC(GastrodonWestSea, 48, 48), + BACK_PIC(GastrodonWestSea, 56, 64), + PALETTE(GastrodonWestSea), + ICON(GastrodonWestSea, 0), }, - [SPECIES_LILLIGANT] = + [SPECIES_GASTRODON_EAST_SEA] = { - .baseHP = 70, - .baseAttack = 60, - .baseDefense = 75, - .baseSpeed = 90, - .baseSpAttack = 110, - .baseSpDefense = 75, - .types = { TYPE_GRASS, TYPE_GRASS}, - .catchRate = 75, - .expYield = 168, - .evYield_SpAttack = 2, - .itemRare = ITEM_ABSORB_BULB, - .genderRatio = MON_FEMALE, - .eggCycles = 20, + GASTRODON_MISC_INFO, + .bodyColor = BODY_COLOR_BLUE, + .description = COMPOUND_STRING( + "Found more often on land than in the sea.\n" + "They normally live in rocky seashores, but\n" + "when cloudy or rainy, they can sometimes\n" + "be found on mountains, far from the sea."), + FRONT_PIC(GastrodonEastSea, 56, 48), + BACK_PIC(GastrodonEastSea, 56, 64), + PALETTE(GastrodonEastSea), + ICON(GastrodonEastSea, 0), + }, +#endif //P_FAMILY_SHELLOS + +#if P_FAMILY_DRIFLOON + [SPECIES_DRIFLOON] = + { + .baseHP = 90, + .baseAttack = 50, + .baseDefense = 34, + .baseSpeed = 70, + .baseSpAttack = 60, + .baseSpDefense = 44, + .types = { TYPE_GHOST, TYPE_FLYING}, + .catchRate = 125, + .expYield = 70, + .evYield_HP = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_CHLOROPHYLL, ABILITY_OWN_TEMPO, ABILITY_LEAF_GUARD}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = TRUE, + .growthRate = GROWTH_FLUCTUATING, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, + .abilities = {ABILITY_AFTERMATH, ABILITY_UNBURDEN, ABILITY_FLARE_BOOST}, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + .speciesName = _("Drifloon"), + .cryId = CRY_DRIFLOON, + .natDexNum = NATIONAL_DEX_DRIFLOON, + .categoryName = _("Balloon"), + .height = 4, + .weight = 12, + .description = COMPOUND_STRING( + "Because of the way it floats aimlessly,\n" + "an old folktale calls it a “Signpost for\n" + "Wandering Spirits.” Children holding\n" + "them sometimes vanish."), + .pokemonScale = 491, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Drifloon, 32, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Drifloon, + .frontAnimId = ANIM_V_SLIDE_WOBBLE, + .enemyMonElevation = 5, + BACK_PIC(Drifloon, 40, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Drifloon), + ICON(Drifloon, 2), + .footprint = gMonFootprint_Drifloon, + LEARNSETS(Drifloon), + .evolutions = EVOLUTION({EVO_LEVEL, 28, SPECIES_DRIFBLIM}), }, - [SPECIES_BASCULIN_RED_STRIPED] = + [SPECIES_DRIFBLIM] = { - .baseHP = 70, - .baseAttack = 92, - .baseDefense = 65, - .baseSpeed = 98, - .baseSpAttack = 80, - .baseSpDefense = 55, - .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 25, - .expYield = 161, - .evYield_Speed = 2, - .itemRare = ITEM_DEEP_SEA_TOOTH, + .baseHP = 150, + .baseAttack = 80, + .baseDefense = 44, + .baseSpeed = 80, + .baseSpAttack = 90, + .baseSpDefense = 54, + .types = { TYPE_GHOST, TYPE_FLYING}, + .catchRate = 60, + .expYield = 174, + .evYield_HP = 2, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 40, + .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, - .abilities = {ABILITY_RECKLESS, ABILITY_ADAPTABILITY, ABILITY_MOLD_BREAKER}, - .bodyColor = BODY_COLOR_GREEN, + .growthRate = GROWTH_FLUCTUATING, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, + .abilities = {ABILITY_AFTERMATH, ABILITY_UNBURDEN, ABILITY_FLARE_BOOST}, + .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, - }, - - [SPECIES_SANDILE] = + .speciesName = _("Drifblim"), + .cryId = CRY_DRIFBLIM, + .natDexNum = NATIONAL_DEX_DRIFBLIM, + .categoryName = _("Blimp"), + .height = 12, + .weight = 150, + .description = COMPOUND_STRING( + "Even while under careful observation,\n" + "large flocks of Drifblim flying at dusk\n" + "will inexplicably disappear from view.\n" + "No one knows where they go."), + .pokemonScale = 282, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Drifblim, 56, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Drifblim, + .frontAnimId = ANIM_V_SLIDE_WOBBLE, + .enemyMonElevation = 7, + BACK_PIC(Drifblim, 64, 64), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Drifblim), + ICON(Drifblim, 2), + .footprint = gMonFootprint_Drifblim, + LEARNSETS(Drifblim), + }, +#endif //P_FAMILY_DRIFLOON + +#if P_FAMILY_BUNEARY + [SPECIES_BUNEARY] = { - .baseHP = 50, - .baseAttack = 72, - .baseDefense = 35, - .baseSpeed = 65, - .baseSpAttack = 35, - .baseSpDefense = 35, - .types = { TYPE_GROUND, TYPE_DARK}, - .catchRate = 180, - .expYield = 58, - .evYield_Attack = 1, - .itemRare = ITEM_BLACK_GLASSES, + .baseHP = 55, + .baseAttack = 66, + .baseDefense = 44, + .baseSpeed = 85, + .baseSpAttack = 44, + .baseSpDefense = 56, + .types = { TYPE_NORMAL, TYPE_NORMAL}, + .catchRate = 190, + .expYield = 70, + .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_INTIMIDATE, ABILITY_MOXIE, ABILITY_ANGER_POINT}, + .friendship = 0, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_RUN_AWAY, ABILITY_KLUTZ, ABILITY_LIMBER}, .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - }, + .speciesName = _("Buneary"), + .cryId = CRY_BUNEARY, + .natDexNum = NATIONAL_DEX_BUNEARY, + .categoryName = _("Rabbit"), + .height = 4, + .weight = 55, + .description = COMPOUND_STRING( + "You can tell how it feels by the way\n" + "it rolls its ears. When it's scared,\n" + "both ears are rolled up. When it senses\n" + "danger, it perks them up."), + .pokemonScale = 491, + .pokemonOffset = 16, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Buneary, 32, 64), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Buneary, + .frontAnimId = ANIM_H_JUMPS_V_STRETCH, + BACK_PIC(Buneary, 64, 64), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Buneary), + ICON(Buneary, 2), + .footprint = gMonFootprint_Buneary, + LEARNSETS(Buneary), + .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_LOPUNNY}), + }, + +#define LOPUNNY_MISC_INFO \ + .catchRate = 60, \ + .evYield_Speed = 2, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = 140, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE}, \ + .bodyColor = BODY_COLOR_BROWN, \ + .noFlip = FALSE, \ + .speciesName = _("Lopunny"), \ + .natDexNum = NATIONAL_DEX_LOPUNNY, \ + .categoryName = _("Rabbit"), \ + .footprint = gMonFootprint_Lopunny, \ + LEARNSETS(Lopunny), \ + .formSpeciesIdTable = sLopunnyFormSpeciesIdTable, \ + .formChangeTable = sLopunnyFormChangeTable - [SPECIES_KROKOROK] = + [SPECIES_LOPUNNY] = { - .baseHP = 60, - .baseAttack = 82, - .baseDefense = 45, - .baseSpeed = 74, - .baseSpAttack = 45, - .baseSpDefense = 45, - .types = { TYPE_GROUND, TYPE_DARK}, - .catchRate = 90, - .expYield = 123, - .evYield_Attack = 2, - .itemRare = ITEM_BLACK_GLASSES, - .genderRatio = PERCENT_FEMALE(50), + LOPUNNY_MISC_INFO, + .baseHP = 65, + .baseAttack = 76, + .baseDefense = 84, + .baseSpeed = 105, + .baseSpAttack = 54, + .baseSpDefense = 96, + .types = { TYPE_NORMAL, TYPE_NORMAL}, + .expYield = 168, + .abilities = {ABILITY_CUTE_CHARM, ABILITY_KLUTZ, ABILITY_LIMBER}, + .cryId = CRY_LOPUNNY, + .height = 12, + .weight = 333, + .description = COMPOUND_STRING( + "An extremely cautious Pokémon.\n" + "It is very conscious of its looks and\n" + "never fails to groom its ears.\n" + "It runs with sprightly jumps."), + .pokemonScale = 282, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Lopunny, 56, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Lopunny, + .frontAnimId = ANIM_SHRINK_GROW, + BACK_PIC(Lopunny, 64, 56), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(Lopunny), + ICON(Lopunny, 2), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_LOPUNNY_MEGA] = + { + LOPUNNY_MISC_INFO, + .baseHP = 65, + .baseAttack = 136, + .baseDefense = 94, + .baseSpeed = 135, + .baseSpAttack = 54, + .baseSpDefense = 96, + .types = { TYPE_NORMAL, TYPE_FIGHTING}, + .expYield = 203, + .abilities = {ABILITY_SCRAPPY, ABILITY_SCRAPPY, ABILITY_SCRAPPY}, + .cryId = CRY_LOPUNNY_MEGA, + .height = 13, + .weight = 283, + .description = COMPOUND_STRING( + "Mega Evolution awakens its combative\n" + "instincts. It has shed any fur that got in\n" + "the way of its attacks.\n" + "crescent."), + .pokemonScale = 282, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(LopunnyMega, 56, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_LopunnyMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(LopunnyMega, 64, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, + PALETTE(LopunnyMega), + ICON(LopunnyMega, 2), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_BUNEARY + +#if P_FAMILY_GLAMEOW + [SPECIES_GLAMEOW] = + { + .baseHP = 49, + .baseAttack = 55, + .baseDefense = 42, + .baseSpeed = 85, + .baseSpAttack = 42, + .baseSpDefense = 37, + .types = { TYPE_NORMAL, TYPE_NORMAL}, + .catchRate = 190, + .expYield = 62, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(75), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, + .growthRate = GROWTH_FAST, .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_INTIMIDATE, ABILITY_MOXIE, ABILITY_ANGER_POINT}, - .bodyColor = BODY_COLOR_BROWN, + .abilities = {ABILITY_LIMBER, ABILITY_OWN_TEMPO, ABILITY_KEEN_EYE}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, - }, - - [SPECIES_KROOKODILE] = - { - .baseHP = 95, - .baseAttack = 117, - .baseSpeed = 92, - .baseSpAttack = 65, - .baseSpDefense = 70, - #if P_UPDATED_STATS >= GEN_6 - .baseDefense = 80, - #else - .baseDefense = 70, - #endif - .types = { TYPE_GROUND, TYPE_DARK}, - .catchRate = 45, - .expYield = 234, - .evYield_Attack = 3, - .itemCommon = ITEM_BLACK_GLASSES, - .genderRatio = PERCENT_FEMALE(50), + .speciesName = _("Glameow"), + .cryId = CRY_GLAMEOW, + .natDexNum = NATIONAL_DEX_GLAMEOW, + .categoryName = _("Catty"), + .height = 5, + .weight = 39, + .description = COMPOUND_STRING( + "It is a very fickle Pokémon, which is \n" + "very popular among some. It claws its\n" + "Trainer's nose if it isn't fed and\n" + "purrs when affectionate."), + .pokemonScale = 432, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Glameow, 56, 56), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Glameow, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Glameow, 64, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_SHRINK_GROW, + PALETTE(Glameow), + ICON(Glameow, 0), + .footprint = gMonFootprint_Glameow, + LEARNSETS(Glameow), + .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_PURUGLY}), + }, + + [SPECIES_PURUGLY] = + { + .baseHP = 71, + .baseAttack = 82, + .baseDefense = 64, + .baseSpeed = 112, + .baseSpAttack = 64, + .baseSpDefense = 59, + .types = { TYPE_NORMAL, TYPE_NORMAL}, + .catchRate = 75, + .expYield = 158, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(75), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, + .growthRate = GROWTH_FAST, .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_INTIMIDATE, ABILITY_MOXIE, ABILITY_ANGER_POINT}, - .bodyColor = BODY_COLOR_RED, + .abilities = {ABILITY_THICK_FAT, ABILITY_OWN_TEMPO, ABILITY_DEFIANT}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, - }, - - [SPECIES_DARUMAKA] = + .speciesName = _("Purugly"), + .cryId = CRY_PURUGLY, + .natDexNum = NATIONAL_DEX_PURUGLY, + .categoryName = _("Tiger Cat"), + .height = 10, + .weight = 438, + .description = COMPOUND_STRING( + "It is a brazen brute that barges its way\n" + "into another Pokémon's nest and claims\n" + "it as its own. It binds its body with its\n" + "tails to make itself look bigger."), + .pokemonScale = 305, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Purugly, 64, 56), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Purugly, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Purugly, 64, 48), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_GROW_STUTTER, + PALETTE(Purugly), + ICON(Purugly, 0), + .footprint = gMonFootprint_Purugly, + LEARNSETS(Purugly), + }, +#endif //P_FAMILY_GLAMEOW + +#if P_FAMILY_STUNKY + [SPECIES_STUNKY] = { - .baseHP = 70, - .baseAttack = 90, - .baseDefense = 45, - .baseSpeed = 50, - .baseSpAttack = 15, - .baseSpDefense = 45, - .types = { TYPE_FIRE, TYPE_FIRE}, - .catchRate = 120, - .expYield = 63, - .evYield_Attack = 1, + .baseHP = 63, + .baseAttack = 63, + .baseDefense = 47, + .baseSpeed = 74, + .baseSpAttack = 41, + .baseSpDefense = 41, + .types = { TYPE_POISON, TYPE_DARK}, + .catchRate = 225, + .expYield = 66, + .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, + .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_HUSTLE, ABILITY_NONE, ABILITY_INNER_FOCUS}, - .bodyColor = BODY_COLOR_RED, + .abilities = {ABILITY_STENCH, ABILITY_AFTERMATH, ABILITY_KEEN_EYE}, + .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, + .speciesName = _("Stunky"), + .cryId = CRY_STUNKY, + .natDexNum = NATIONAL_DEX_STUNKY, + .categoryName = _("Skunk"), + .height = 4, + .weight = 192, + .description = COMPOUND_STRING( + "It protects itself by spraying a\n" + "nose-curling, stinky fluid from its rear\n" + "to repel attackers. The stench lingers\n" + "for 24 hours."), + .pokemonScale = 491, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Stunky, 56, 48), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_Stunky, + .frontAnimId = ANIM_TIP_MOVE_FORWARD, + BACK_PIC(Stunky, 64, 64), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Stunky), + ICON(Stunky, 2), + .footprint = gMonFootprint_Stunky, + LEARNSETS(Stunky), + .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_SKUNTANK}), }, - [SPECIES_DARMANITAN_STANDARD_MODE] = + [SPECIES_SKUNTANK] = { - .baseHP = 105, - .baseAttack = 140, - .baseDefense = 55, - .baseSpeed = 95, - .baseSpAttack = 30, - .baseSpDefense = 55, - .types = { TYPE_FIRE, TYPE_FIRE}, + .baseHP = 103, + .baseAttack = 93, + .baseDefense = 67, + .baseSpeed = 84, + .baseSpAttack = 71, + .baseSpDefense = 61, + .types = { TYPE_POISON, TYPE_DARK}, .catchRate = 60, .expYield = 168, - .evYield_Attack = 2, + .evYield_HP = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, + .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SHEER_FORCE, ABILITY_NONE, ABILITY_ZEN_MODE}, - .bodyColor = BODY_COLOR_RED, + .abilities = {ABILITY_STENCH, ABILITY_AFTERMATH, ABILITY_KEEN_EYE}, + .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, - }, - - [SPECIES_MARACTUS] = + .speciesName = _("Skuntank"), + .cryId = CRY_SKUNTANK, + .natDexNum = NATIONAL_DEX_SKUNTANK, + .categoryName = _("Skunk"), + .height = 10, + .weight = 380, + .description = COMPOUND_STRING( + "It attacks by spraying a horribly smelly\n" + "fluid from the tip of its tail. The fluid\n" + "smells worse the longer it is allowed\n" + "to fester."), + .pokemonScale = 305, + .pokemonOffset = 9, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Skuntank, 64, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Skuntank, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + BACK_PIC(Skuntank, 64, 64), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_H_STRETCH, + PALETTE(Skuntank), + ICON(Skuntank, 2), + .footprint = gMonFootprint_Skuntank, + LEARNSETS(Skuntank), + }, +#endif //P_FAMILY_STUNKY + +#if P_FAMILY_BRONZOR + [SPECIES_BRONZOR] = { - .baseHP = 75, - .baseAttack = 86, - .baseDefense = 67, - .baseSpeed = 60, - .baseSpAttack = 106, - .baseSpDefense = 67, - .types = { TYPE_GRASS, TYPE_GRASS}, + .baseHP = 57, + .baseAttack = 24, + .baseDefense = 86, + .baseSpeed = 23, + .baseSpAttack = 24, + .baseSpDefense = 86, + .types = { TYPE_STEEL, TYPE_PSYCHIC}, .catchRate = 255, - .expYield = 161, - .evYield_SpAttack = 2, - .itemRare = ITEM_MIRACLE_SEED, - .genderRatio = PERCENT_FEMALE(50), + .expYield = 60, + .evYield_Defense = 1, + .itemRare = ITEM_METAL_COAT, + .genderRatio = MON_GENDERLESS, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_WATER_ABSORB, ABILITY_CHLOROPHYLL, ABILITY_STORM_DRAIN}, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_LEVITATE, ABILITY_HEATPROOF, ABILITY_HEAVY_METAL}, .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, + .speciesName = _("Bronzor"), + .cryId = CRY_BRONZOR, + .natDexNum = NATIONAL_DEX_BRONZOR, + .categoryName = _("Bronze"), + .height = 5, + .weight = 605, + .description = COMPOUND_STRING( + "Implements shaped like it were discovered\n" + "in ancient tombs. There are researchers\n" + "who believe this Pokémon reflected like a\n" + "mirror in the distant past."), + .pokemonScale = 432, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Bronzor, 32, 40), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Bronzor, + .frontAnimId = ANIM_H_SLIDE_WOBBLE, + BACK_PIC(Bronzor, 40, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(Bronzor), + ICON(Bronzor, 0), + .footprint = gMonFootprint_Bronzor, + LEARNSETS(Bronzor), + .evolutions = EVOLUTION({EVO_LEVEL, 33, SPECIES_BRONZONG}), }, - [SPECIES_DWEBBLE] = + [SPECIES_BRONZONG] = { - .baseHP = 50, - .baseAttack = 65, - .baseDefense = 85, - .baseSpeed = 55, - .baseSpAttack = 35, - .baseSpDefense = 35, - .types = { TYPE_BUG, TYPE_ROCK}, - .catchRate = 190, - .expYield = 65, + .baseHP = 67, + .baseAttack = 89, + .baseDefense = 116, + .baseSpeed = 33, + .baseSpAttack = 79, + .baseSpDefense = 116, + .types = { TYPE_STEEL, TYPE_PSYCHIC}, + .catchRate = 90, + .expYield = 175, .evYield_Defense = 1, - .itemRare = ITEM_HARD_STONE, - .genderRatio = PERCENT_FEMALE(50), + .evYield_SpDefense = 1, + .itemRare = ITEM_METAL_COAT, + .genderRatio = MON_GENDERLESS, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_STURDY, ABILITY_SHELL_ARMOR, ABILITY_WEAK_ARMOR}, - .bodyColor = BODY_COLOR_RED, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_LEVITATE, ABILITY_HEATPROOF, ABILITY_HEAVY_METAL}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - }, - - [SPECIES_CRUSTLE] = + .speciesName = _("Bronzong"), + .cryId = CRY_BRONZONG, + .natDexNum = NATIONAL_DEX_BRONZONG, + .categoryName = _("Bronze Bell"), + .height = 13, + .weight = 1870, + .description = COMPOUND_STRING( + "In ages past, this Pokémon was revered as\n" + "a bringer of rain. One caused a news stir\n" + "when it was dug up at a construction site\n" + "after a 2000-year sleep."), + .pokemonScale = 272, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Bronzong, 56, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Bronzong, + .frontAnimId = ANIM_V_SLIDE_WOBBLE_SMALL, + .enemyMonElevation = 4, + BACK_PIC(Bronzong, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(Bronzong), + ICON(Bronzong, 0), + .footprint = gMonFootprint_Bronzong, + LEARNSETS(Bronzong), + }, +#endif //P_FAMILY_BRONZOR + +#if P_FAMILY_CHATOT + [SPECIES_CHATOT] = { - .baseHP = 70, - .baseDefense = 125, - .baseSpeed = 45, - .baseSpAttack = 65, - .baseSpDefense = 75, - #if P_UPDATED_STATS >= GEN_7 - .baseAttack = 105, - #else - .baseAttack = 95, - #endif - .types = { TYPE_BUG, TYPE_ROCK}, - .catchRate = 75, - .expYield = 170, - .evYield_Defense = 2, - .itemRare = ITEM_HARD_STONE, + .baseHP = 76, + .baseAttack = 65, + .baseDefense = 45, + .baseSpeed = 91, + .baseSpAttack = 92, + .baseSpDefense = 42, + .types = { TYPE_NORMAL, TYPE_FLYING}, + .catchRate = 30, + .expYield = 144, + .evYield_Attack = 1, + .itemRare = ITEM_METRONOME, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, + .friendship = 35, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + .abilities = {ABILITY_KEEN_EYE, ABILITY_TANGLED_FEET, ABILITY_BIG_PECKS}, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + .speciesName = _("Chatot"), + .cryId = CRY_CHATOT, + .natDexNum = NATIONAL_DEX_CHATOT, + .categoryName = _("Music Note"), + .height = 5, + .weight = 19, + .description = COMPOUND_STRING( + "It mimics the cries of other Pokémon to\n" + "trick them into thinking it's one of them.\n" + "This way they won't attack it. It can\n" + "also learn and speak human words."), + .pokemonScale = 432, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Chatot, 40, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Chatot, + .frontAnimId = ANIM_V_SHAKE_TWICE, + BACK_PIC(Chatot, 48, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_V_STRETCH, + PALETTE(Chatot), + ICON(Chatot, 0), + .footprint = gMonFootprint_Chatot, + LEARNSETS(Chatot), + }, +#endif //P_FAMILY_CHATOT + +#if P_FAMILY_SPIRITOMB + [SPECIES_SPIRITOMB] = + { + .baseHP = 50, + .baseAttack = 92, + .baseDefense = 108, + .baseSpeed = 35, + .baseSpAttack = 92, + .baseSpDefense = 108, + .types = { TYPE_GHOST, TYPE_DARK}, + .catchRate = 100, + .expYield = 170, + .evYield_Defense = 1, + .evYield_SpDefense = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_STURDY, ABILITY_SHELL_ARMOR, ABILITY_WEAK_ARMOR}, - .bodyColor = BODY_COLOR_RED, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, + .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_INFILTRATOR}, + .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, - }, - - [SPECIES_SCRAGGY] = + .speciesName = _("Spiritomb"), + .cryId = CRY_SPIRITOMB, + .natDexNum = NATIONAL_DEX_SPIRITOMB, + .categoryName = _("Forbidden"), + .height = 10, + .weight = 1080, + .description = COMPOUND_STRING( + "A Pokémon that was formed by 108 spirits.\n" + "Its constant mischief and misdeeds\n" + "resulted in it being bound to an\n" + "Odd Keystone by a mysterious spell."), + .pokemonScale = 305, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Spiritomb, 56, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Spiritomb, + .frontAnimId = ANIM_GROW_IN_STAGES, + BACK_PIC(Spiritomb, 64, 56), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(Spiritomb), + ICON(Spiritomb, 5), + .footprint = gMonFootprint_Spiritomb, + LEARNSETS(Spiritomb), + }, +#endif //P_FAMILY_SPIRITOMB + +#if P_FAMILY_GIBLE + [SPECIES_GIBLE] = { - .baseHP = 50, - .baseAttack = 75, - .baseDefense = 70, - .baseSpeed = 48, - .baseSpAttack = 35, - .baseSpDefense = 70, - .types = { TYPE_DARK, TYPE_FIGHTING}, - .catchRate = 180, - .expYield = 70, + .baseHP = 58, + .baseAttack = 70, + .baseDefense = 45, + .baseSpeed = 42, + .baseSpAttack = 40, + .baseSpDefense = 45, + .types = { TYPE_DRAGON, TYPE_GROUND}, + .catchRate = 45, + .expYield = 60, .evYield_Attack = 1, - .itemRare = ITEM_SHED_SHELL, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = 35, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_SHED_SKIN, ABILITY_MOXIE, ABILITY_INTIMIDATE}, - .bodyColor = BODY_COLOR_YELLOW, + .eggCycles = 40, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_SAND_VEIL, ABILITY_NONE, ABILITY_ROUGH_SKIN}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Gible"), + .cryId = CRY_GIBLE, + .natDexNum = NATIONAL_DEX_GIBLE, + .categoryName = _("Land Shark"), + .height = 7, + .weight = 205, + .description = COMPOUND_STRING( + "It nests in horizontal holes warmed by\n" + "geothermal heat. Foes who stray too\n" + "close can expect to be pounced on\n" + "and bitten."), + .pokemonScale = 365, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Gible, 48, 48), + FRONT_PIC_FEMALE(Gible, 48, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Gible, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Gible, 56, 48), + BACK_PIC_FEMALE(Gible, 56, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_H_SHAKE, + PALETTE(Gible), + ICON(Gible, 0), + .footprint = gMonFootprint_Gible, + LEARNSETS(Gible), + .evolutions = EVOLUTION({EVO_LEVEL, 24, SPECIES_GABITE}), }, - [SPECIES_SCRAFTY] = + [SPECIES_GABITE] = { - .baseHP = 65, + .baseHP = 68, .baseAttack = 90, - .baseDefense = 115, - .baseSpeed = 58, - .baseSpAttack = 45, - .baseSpDefense = 115, - .types = { TYPE_DARK, TYPE_FIGHTING}, - .catchRate = 90, - .expYield = 171, - .evYield_Defense = 1, - .evYield_SpDefense = 1, - .itemRare = ITEM_SHED_SHELL, + .baseDefense = 65, + .baseSpeed = 82, + .baseSpAttack = 50, + .baseSpDefense = 55, + .types = { TYPE_DRAGON, TYPE_GROUND}, + .catchRate = 45, + .expYield = 144, + .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_SHED_SKIN, ABILITY_MOXIE, ABILITY_INTIMIDATE}, - .bodyColor = BODY_COLOR_RED, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_SAND_VEIL, ABILITY_NONE, ABILITY_ROUGH_SKIN}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - }, + .speciesName = _("Gabite"), + .cryId = CRY_GABITE, + .natDexNum = NATIONAL_DEX_GABITE, + .categoryName = _("Cave"), + .height = 14, + .weight = 560, + .description = COMPOUND_STRING( + "Shiny objects are its passion. It can be\n" + "found in its cave, scarcely moving,\n" + "its gaze fixed on the jewels it's amassed\n" + "or Carbink it has caught."), + .pokemonScale = 265, + .pokemonOffset = 2, + .trainerScale = 262, + .trainerOffset = 0, + FRONT_PIC(Gabite, 64, 64), + FRONT_PIC_FEMALE(Gabite, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Gabite, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Gabite, 64, 64), + BACK_PIC_FEMALE(Gabite, 64, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Gabite), + ICON(Gabite, 0), + .footprint = gMonFootprint_Gabite, + LEARNSETS(Gabite), + .evolutions = EVOLUTION({EVO_LEVEL, 48, SPECIES_GARCHOMP}), + }, + +#define GARCHOMP_MISC_INFO \ + .types = { TYPE_DRAGON, TYPE_GROUND}, \ + .catchRate = 45, \ + .evYield_Attack = 3, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 40, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON},\ + .bodyColor = BODY_COLOR_BLUE, \ + .noFlip = FALSE, \ + .speciesName = _("Garchomp"), \ + .natDexNum = NATIONAL_DEX_GARCHOMP, \ + .categoryName = _("Mach"), \ + .height = 19, \ + .weight = 950, \ + .pokemonScale = 256, \ + .pokemonOffset = 1, \ + .trainerScale = 326, \ + .trainerOffset = 4, \ + .footprint = gMonFootprint_Garchomp, \ + LEARNSETS(Garchomp), \ + .formSpeciesIdTable = sGarchompFormSpeciesIdTable, \ + .formChangeTable = sGarchompFormChangeTable - [SPECIES_SIGILYPH] = + [SPECIES_GARCHOMP] = { - .baseHP = 72, - .baseAttack = 58, - .baseDefense = 80, - .baseSpeed = 97, - .baseSpAttack = 103, - .baseSpDefense = 80, - .types = { TYPE_PSYCHIC, TYPE_FLYING}, - .catchRate = 45, - .expYield = 172, - .evYield_SpAttack = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + GARCHOMP_MISC_INFO, + .baseHP = 108, + .baseAttack = 130, + .baseDefense = 95, + .baseSpeed = 102, + .baseSpAttack = 80, + .baseSpDefense = 85, + .expYield = 270, + .abilities = {ABILITY_SAND_VEIL, ABILITY_NONE, ABILITY_ROUGH_SKIN}, + .cryId = CRY_GARCHOMP, + .description = COMPOUND_STRING( + "When it folds up its body and extends its\n" + "wings, it looks like a jet plane. It is\n" + "covered in fine scales that reduce drag,\n" + "enabling it to fly at high speeds."), + FRONT_PIC(Garchomp, 64, 64), + FRONT_PIC_FEMALE(Garchomp, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Garchomp, + .frontAnimId = ANIM_V_SHAKE_TWICE, + BACK_PIC(Garchomp, 64, 56), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(Garchomp), + ICON(Garchomp, 0), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_GARCHOMP_MEGA] = + { + GARCHOMP_MISC_INFO, + .baseHP = 108, + .baseAttack = 170, + .baseDefense = 115, + .baseSpeed = 92, + .baseSpAttack = 120, + .baseSpDefense = 95, + .expYield = 315, + .abilities = {ABILITY_SAND_FORCE, ABILITY_SAND_FORCE, ABILITY_SAND_FORCE}, + .cryId = CRY_GARCHOMP_MEGA, + .description = COMPOUND_STRING( + "Excess energy melted its arms and wings\n" + "into giant scythes, sending it mad with\n" + "rage. It swings its scythes wildly and\n" + "slices the ground to pieces."), + FRONT_PIC(GarchompMega, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_GarchompMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(GarchompMega, 64, 56), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(GarchompMega), + ICON(GarchompMega, 0), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_GIBLE + +#if P_FAMILY_RIOLU + [SPECIES_RIOLU] = + { + .baseHP = 40, + .baseAttack = 70, + .baseDefense = 40, + .baseSpeed = 60, + .baseSpAttack = 35, + .baseSpDefense = 40, + .types = { TYPE_FIGHTING, TYPE_FIGHTING}, + .catchRate = 75, + .expYield = 57, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_WONDER_SKIN, ABILITY_MAGIC_GUARD, ABILITY_TINTED_LENS}, - .bodyColor = BODY_COLOR_BLACK, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_STEADFAST, ABILITY_INNER_FOCUS, ABILITY_PRANKSTER}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - }, + .speciesName = _("Riolu"), + .cryId = CRY_RIOLU, + .natDexNum = NATIONAL_DEX_RIOLU, + .categoryName = _("Emanation"), + .height = 7, + .weight = 202, + .description = COMPOUND_STRING( + "It can discern the physical and emotional\n" + "states of people, Pokémon, and other\n" + "natural things from the shape of their\n" + "aura waves."), + .pokemonScale = 365, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Riolu, 48, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Riolu, + .frontAnimId = ANIM_RAPID_H_HOPS, + BACK_PIC(Riolu, 64, 64), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, + PALETTE(Riolu), + ICON(Riolu, 2), + .footprint = gMonFootprint_Riolu, + LEARNSETS(Riolu), + .evolutions = EVOLUTION({EVO_FRIENDSHIP_DAY, 0, SPECIES_LUCARIO}), + }, + +#define LUCARIO_MISC_INFO \ + .types = { TYPE_FIGHTING, TYPE_STEEL}, \ + .catchRate = 45, \ + .evYield_Attack = 1, \ + .evYield_SpAttack = 1, \ + .genderRatio = PERCENT_FEMALE(12.5), \ + .eggCycles = 25, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_SLOW, \ + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE}, \ + .bodyColor = BODY_COLOR_BLUE, \ + .noFlip = FALSE, \ + .speciesName = _("Lucario"), \ + .natDexNum = NATIONAL_DEX_LUCARIO, \ + .categoryName = _("Aura"), \ + .footprint = gMonFootprint_Lucario, \ + LEARNSETS(Lucario), \ + .formSpeciesIdTable = sLucarioFormSpeciesIdTable, \ + .formChangeTable = sLucarioFormChangeTable - [SPECIES_YAMASK] = + [SPECIES_LUCARIO] = { - .baseHP = 38, - .baseAttack = 30, - .baseDefense = 85, - .baseSpeed = 30, - .baseSpAttack = 55, - .baseSpDefense = 65, - .types = { TYPE_GHOST, TYPE_GHOST}, - .catchRate = 190, - .expYield = 61, + LUCARIO_MISC_INFO, + .baseHP = 70, + .baseAttack = 110, + .baseDefense = 70, + .baseSpeed = 90, + .baseSpAttack = 115, + .baseSpDefense = 70, + .expYield = 184, + .abilities = {ABILITY_STEADFAST, ABILITY_INNER_FOCUS, ABILITY_JUSTIFIED}, + .cryId = CRY_LUCARIO, + .height = 12, + .weight = 540, + .description = COMPOUND_STRING( + "It understands human speech.\n" + "It is said that no foe can remain invisible\n" + "to Lucario, since it can detect Auras.\n" + "Even foes it could not otherwise see."), + .pokemonScale = 282, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Lucario, 48, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Lucario, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Lucario, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, + PALETTE(Lucario), + ICON(Lucario, 2), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_LUCARIO_MEGA] = + { + LUCARIO_MISC_INFO, + .baseHP = 70, + .baseAttack = 145, + .baseDefense = 88, + .baseSpeed = 112, + .baseSpAttack = 140, + .baseSpDefense = 70, + .expYield = 219, + .abilities = {ABILITY_ADAPTABILITY, ABILITY_ADAPTABILITY, ABILITY_ADAPTABILITY}, + .cryId = CRY_LUCARIO_MEGA, + .height = 13, + .weight = 575, + .description = COMPOUND_STRING( + "It readies itself to face its enemies by\n" + "focusing its mental energies. Its fighting\n" + "style can be summed up in a single word:\n" + "heartless."), + .pokemonScale = 282, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(LucarioMega, 48, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_LucarioMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(LucarioMega, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, + PALETTE(LucarioMega), + ICON(LucarioMega, 2), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_RIOLU + +#if P_FAMILY_HIPPOPOTAS + [SPECIES_HIPPOPOTAS] = + { + .baseHP = 68, + .baseAttack = 72, + .baseDefense = 78, + .baseSpeed = 32, + .baseSpAttack = 38, + .baseSpDefense = 42, + .types = { TYPE_GROUND, TYPE_GROUND}, + .catchRate = 140, + .expYield = 66, .evYield_Defense = 1, - .itemRare = ITEM_SPELL_TAG, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, + .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_MUMMY, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLACK, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_SAND_STREAM, ABILITY_NONE, ABILITY_SAND_FORCE}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .speciesName = _("Hippopotas"), + .cryId = CRY_HIPPOPOTAS, + .natDexNum = NATIONAL_DEX_HIPPOPOTAS, + .categoryName = _("Hippo"), + .height = 8, + .weight = 495, + .description = COMPOUND_STRING( + "Hippopotas shuts its nostrils tight when\n" + "travelling through sand. Instead of\n" + "perspiration, it expels grains of sand\n" + "from its body."), + .pokemonScale = 366, + .pokemonOffset = 11, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Hippopotas, 64, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Hippopotas, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Hippopotas, 64, 40), + .backPicYOffset = 14, + .backAnimId = BACK_ANIM_H_SLIDE, + .palette = gMonPalette_Hippopotas, + .paletteFemale = gMonPalette_HippopotasF, + .shinyPalette = gMonShinyPalette_Hippopotas, + .shinyPaletteFemale = gMonShinyPalette_HippopotasF, + ICON(Hippopotas, 1), + #if P_CUSTOM_GENDER_DIFF_ICONS == TRUE + ICON_FEMALE(Hippopotas, 1), + #endif + .footprint = gMonFootprint_Hippopotas, + LEARNSETS(Hippopotas), + .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_HIPPOWDON}), }, - [SPECIES_COFAGRIGUS] = + [SPECIES_HIPPOWDON] = { - .baseHP = 58, - .baseAttack = 50, - .baseDefense = 145, - .baseSpeed = 30, - .baseSpAttack = 95, - .baseSpDefense = 105, - .types = { TYPE_GHOST, TYPE_GHOST}, - .catchRate = 90, - .expYield = 169, + .baseHP = 108, + .baseAttack = 112, + .baseDefense = 118, + .baseSpeed = 47, + .baseSpAttack = 68, + .baseSpDefense = 72, + .types = { TYPE_GROUND, TYPE_GROUND}, + .catchRate = 60, + .expYield = 184, .evYield_Defense = 2, - .itemRare = ITEM_SPELL_TAG, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, + .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_MUMMY, ABILITY_NONE}, - .bodyColor = BODY_COLOR_YELLOW, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_SAND_STREAM, ABILITY_NONE, ABILITY_SAND_FORCE}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - }, - - [SPECIES_TIRTOUGA] = + .speciesName = _("Hippowdon"), + .cryId = CRY_HIPPOWDON, + .natDexNum = NATIONAL_DEX_HIPPOWDON, + .categoryName = _("Heavyweight"), + .height = 20, + .weight = 3000, + .description = COMPOUND_STRING( + "It is surprisingly quick to anger.\n" + "It brandishes its gaping mouth in a\n" + "display of fearsome strength and raises\n" + "vast quantities of sand while attacking."), + .pokemonScale = 261, + .pokemonOffset = 2, + .trainerScale = 334, + .trainerOffset = 4, + FRONT_PIC(Hippowdon, 64, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Hippowdon, + .frontAnimId = ANIM_V_SHAKE_TWICE, + BACK_PIC(Hippowdon, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + .palette = gMonPalette_Hippowdon, + .paletteFemale = gMonPalette_HippowdonF, + .shinyPalette = gMonShinyPalette_Hippowdon, + .shinyPaletteFemale = gMonShinyPalette_HippowdonF, + ICON(Hippowdon, 1), + #if P_CUSTOM_GENDER_DIFF_ICONS == TRUE + ICON_FEMALE(Hippowdon, 1), + #endif + .footprint = gMonFootprint_Hippowdon, + LEARNSETS(Hippowdon), + }, +#endif //P_FAMILY_HIPPOPOTAS + +#if P_FAMILY_SKORUPI + [SPECIES_SKORUPI] = { - .baseHP = 54, - .baseAttack = 78, - .baseDefense = 103, - .baseSpeed = 22, - .baseSpAttack = 53, - .baseSpDefense = 45, - .types = { TYPE_WATER, TYPE_ROCK}, - .catchRate = 45, - .expYield = 71, + .baseHP = 40, + .baseAttack = 50, + .baseDefense = 90, + .baseSpeed = 65, + .baseSpAttack = 30, + .baseSpDefense = 55, + .types = { TYPE_POISON, TYPE_BUG}, + .catchRate = 120, + .expYield = 66, .evYield_Defense = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 30, + .itemRare = ITEM_POISON_BARB, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3}, - .abilities = {ABILITY_SOLID_ROCK, ABILITY_STURDY, ABILITY_SWIFT_SWIM}, - .bodyColor = BODY_COLOR_BLUE, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_WATER_3}, + .abilities = {ABILITY_BATTLE_ARMOR, ABILITY_SNIPER, ABILITY_KEEN_EYE}, + .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, + .speciesName = _("Skorupi"), + .cryId = CRY_SKORUPI, + .natDexNum = NATIONAL_DEX_SKORUPI, + .categoryName = _("Scorpion"), + .height = 8, + .weight = 120, + .description = COMPOUND_STRING( + "It grips prey with its tail claws and\n" + "injects poison. It tenaciously hangs\n" + "on until the poison takes.\n" + "It can survive a year without food."), + .pokemonScale = 366, + .pokemonOffset = 12, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Skorupi, 48, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Skorupi, + .frontAnimId = ANIM_H_SLIDE_SLOW, + BACK_PIC(Skorupi, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Skorupi), + ICON(Skorupi, 0), + .footprint = gMonFootprint_Skorupi, + LEARNSETS(Skorupi), + .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_DRAPION}), }, - [SPECIES_CARRACOSTA] = + [SPECIES_DRAPION] = { - .baseHP = 74, - .baseAttack = 108, - .baseDefense = 133, - .baseSpeed = 32, - .baseSpAttack = 83, - .baseSpDefense = 65, - .types = { TYPE_WATER, TYPE_ROCK}, + .baseHP = 70, + .baseAttack = 90, + .baseDefense = 110, + .baseSpeed = 95, + .baseSpAttack = 60, + .baseSpDefense = 75, + .types = { TYPE_POISON, TYPE_DARK}, .catchRate = 45, - .expYield = 173, + .expYield = 175, .evYield_Defense = 2, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 30, + .itemRare = ITEM_POISON_BARB, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3}, - .abilities = {ABILITY_SOLID_ROCK, ABILITY_STURDY, ABILITY_SWIFT_SWIM}, - .bodyColor = BODY_COLOR_BLUE, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_WATER_3}, + .abilities = {ABILITY_BATTLE_ARMOR, ABILITY_SNIPER, ABILITY_KEEN_EYE}, + .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, - }, - - [SPECIES_ARCHEN] = + .speciesName = _("Drapion"), + .cryId = CRY_DRAPION, + .natDexNum = NATIONAL_DEX_DRAPION, + .categoryName = _("Ogre Scorp"), + .height = 13, + .weight = 615, + .description = COMPOUND_STRING( + "Possessing a sturdy build, it takes\n" + "pride in its strength. It has the power\n" + "in its clawed arms to make scrap\n" + "out of a car."), + .pokemonScale = 272, + .pokemonOffset = 5, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Drapion, 64, 56), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Drapion, + .frontAnimId = ANIM_V_JUMPS_BIG, + BACK_PIC(Drapion, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, + PALETTE(Drapion), + ICON(Drapion, 2), + .footprint = gMonFootprint_Drapion, + LEARNSETS(Drapion), + }, +#endif //P_FAMILY_SKORUPI + +#if P_FAMILY_CROAGUNK + [SPECIES_CROAGUNK] = { - .baseHP = 55, - .baseAttack = 112, - .baseDefense = 45, - .baseSpeed = 70, - .baseSpAttack = 74, - .baseSpDefense = 45, - .types = { TYPE_ROCK, TYPE_FLYING}, - .catchRate = 45, - .expYield = 71, + .baseHP = 48, + .baseAttack = 61, + .baseDefense = 40, + .baseSpeed = 50, + .baseSpAttack = 61, + .baseSpDefense = 40, + .types = { TYPE_POISON, TYPE_FIGHTING}, + .catchRate = 140, + .expYield = 60, .evYield_Attack = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 30, - .friendship = STANDARD_FRIENDSHIP, + .itemRare = ITEM_BLACK_SLUDGE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 10, + .friendship = 100, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_WATER_3}, - .abilities = {ABILITY_DEFEATIST, ABILITY_NONE}, - .bodyColor = BODY_COLOR_YELLOW, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_ANTICIPATION, ABILITY_DRY_SKIN, ABILITY_POISON_TOUCH}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Croagunk"), + .cryId = CRY_CROAGUNK, + .natDexNum = NATIONAL_DEX_CROAGUNK, + .categoryName = _("Toxic Mouth"), + .height = 7, + .weight = 230, + .description = COMPOUND_STRING( + "Croagunk rarely fights fairly. Inflating\n" + "its poison sacs, it fills the area with\n" + "an odd sound and hits flinching\n" + "opponents with a poison jab."), + .pokemonScale = 365, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Croagunk, 40, 48), + FRONT_PIC_FEMALE(Croagunk, 40, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Croagunk, + .frontAnimId = ANIM_RAPID_H_HOPS, + BACK_PIC(Croagunk, 56, 56), + BACK_PIC_FEMALE(Croagunk, 56, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_GROW, + PALETTE(Croagunk), + ICON(Croagunk, 0), + .footprint = gMonFootprint_Croagunk, + LEARNSETS(Croagunk), + .evolutions = EVOLUTION({EVO_LEVEL, 37, SPECIES_TOXICROAK}), }, - [SPECIES_ARCHEOPS] = + [SPECIES_TOXICROAK] = { - .baseHP = 75, - .baseAttack = 140, + .baseHP = 83, + .baseAttack = 106, .baseDefense = 65, - .baseSpeed = 110, - .baseSpAttack = 112, + .baseSpeed = 85, + .baseSpAttack = 86, .baseSpDefense = 65, - .types = { TYPE_ROCK, TYPE_FLYING}, - .catchRate = 45, - .expYield = 177, + .types = { TYPE_POISON, TYPE_FIGHTING}, + .catchRate = 75, + .expYield = 172, .evYield_Attack = 2, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 30, + .itemRare = ITEM_BLACK_SLUDGE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_WATER_3}, - .abilities = {ABILITY_DEFEATIST, ABILITY_NONE}, - .bodyColor = BODY_COLOR_YELLOW, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_ANTICIPATION, ABILITY_DRY_SKIN, ABILITY_POISON_TOUCH}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - }, - - [SPECIES_TRUBBISH] = + .speciesName = _("Toxicroak"), + .cryId = CRY_TOXICROAK, + .natDexNum = NATIONAL_DEX_TOXICROAK, + .categoryName = _("Toxic Mouth"), + .height = 13, + .weight = 444, + .description = COMPOUND_STRING( + "Swaying and dodging the attacks\n" + "of its foes, it weaves its flexible body\n" + "in close, then lunges out with its\n" + "poisonous claws."), + .pokemonScale = 272, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Toxicroak, 56, 56), + FRONT_PIC_FEMALE(Toxicroak, 56, 56), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Toxicroak, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Toxicroak, 56, 56), + BACK_PIC_FEMALE(Toxicroak, 56, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, + PALETTE(Toxicroak), + ICON(Toxicroak, 0), + .footprint = gMonFootprint_Toxicroak, + LEARNSETS(Toxicroak), + }, +#endif //P_FAMILY_CROAGUNK + +#if P_FAMILY_CARNIVINE + [SPECIES_CARNIVINE] = { - .baseHP = 50, - .baseAttack = 50, - .baseDefense = 62, - .baseSpeed = 65, - .baseSpAttack = 40, - .baseSpDefense = 62, - .types = { TYPE_POISON, TYPE_POISON}, + .baseHP = 74, + .baseAttack = 100, + .baseDefense = 72, + .baseSpeed = 46, + .baseSpAttack = 90, + .baseSpDefense = 72, + .types = { TYPE_GRASS, TYPE_GRASS}, + .catchRate = 200, + .expYield = 159, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, + .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + .speciesName = _("Carnivine"), + .cryId = CRY_CARNIVINE, + .natDexNum = NATIONAL_DEX_CARNIVINE, + .categoryName = _("Bug Catcher"), + .height = 14, + .weight = 270, + .description = COMPOUND_STRING( + "Hanging from branches using its\n" + "tentacles, it looks like a plant.\n" + "It attracts prey with its sweet-smelling\n" + "saliva, then chomps down."), + .pokemonScale = 265, + .pokemonOffset = 2, + .trainerScale = 262, + .trainerOffset = 0, + FRONT_PIC(Carnivine, 64, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Carnivine, + .frontAnimId = ANIM_FIGURE_8, + BACK_PIC(Carnivine, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(Carnivine), + ICON(Carnivine, 1), + .footprint = gMonFootprint_Carnivine, + LEARNSETS(Carnivine), + }, +#endif //P_FAMILY_CARNIVINE + +#if P_FAMILY_FINNEON + [SPECIES_FINNEON] = + { + .baseHP = 49, + .baseAttack = 49, + .baseDefense = 56, + .baseSpeed = 66, + .baseSpAttack = 49, + .baseSpDefense = 61, + .types = { TYPE_WATER, TYPE_WATER}, .catchRate = 190, .expYield = 66, .evYield_Speed = 1, - .itemRare = ITEM_SILK_SCARF, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_STENCH, ABILITY_STICKY_HOLD, ABILITY_AFTERMATH}, - .bodyColor = BODY_COLOR_GREEN, + .growthRate = GROWTH_ERRATIC, + .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, + .abilities = {ABILITY_SWIFT_SWIM, ABILITY_STORM_DRAIN, ABILITY_WATER_VEIL}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Finneon"), + .cryId = CRY_FINNEON, + .natDexNum = NATIONAL_DEX_FINNEON, + .categoryName = _("Wing Fish"), + .height = 4, + .weight = 70, + .description = COMPOUND_STRING( + "Its double tail fins propel its energetic\n" + "jumps. When it breaks the surface of the\n" + "sea, Wingull swoop down to grab it on\n" + "the fly."), + .pokemonScale = 491, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Finneon, 32, 40), + FRONT_PIC_FEMALE(Finneon, 32, 40), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Finneon, + .frontAnimId = ANIM_V_SLIDE_WOBBLE_SMALL, + BACK_PIC(Finneon, 56, 40), + BACK_PIC_FEMALE(Finneon, 56, 40), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Finneon), + ICON(Finneon, 0), + .footprint = gMonFootprint_Finneon, + LEARNSETS(Finneon), + .evolutions = EVOLUTION({EVO_LEVEL, 31, SPECIES_LUMINEON}), }, - [SPECIES_GARBODOR] = - { - GARBODOR_MISC_INFO, - }, - - [SPECIES_ZORUA] = + [SPECIES_LUMINEON] = { - .baseHP = 40, - .baseAttack = 65, - .baseDefense = 40, - .baseSpeed = 65, - .baseSpAttack = 80, - .baseSpDefense = 40, - .types = { TYPE_DARK, TYPE_DARK}, + .baseHP = 69, + .baseAttack = 69, + .baseDefense = 76, + .baseSpeed = 91, + .baseSpAttack = 69, + .baseSpDefense = 86, + .types = { TYPE_WATER, TYPE_WATER}, .catchRate = 75, - .expYield = 66, - .evYield_SpAttack = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 25, + .expYield = 161, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_ILLUSION, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GRAY, + .growthRate = GROWTH_ERRATIC, + .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, + .abilities = {ABILITY_SWIFT_SWIM, ABILITY_STORM_DRAIN, ABILITY_WATER_VEIL}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - }, - - [SPECIES_ZOROARK] = + .speciesName = _("Lumineon"), + .cryId = CRY_LUMINEON, + .natDexNum = NATIONAL_DEX_LUMINEON, + .categoryName = _("Neon"), + .height = 12, + .weight = 240, + .description = COMPOUND_STRING( + "Lumineon swimming in the darkness\n" + "of the deep sea look like stars shining\n" + "in the night sky. It competes for food\n" + "with Lanturn."), + .pokemonScale = 282, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Lumineon, 56, 56), + FRONT_PIC_FEMALE(Lumineon, 56, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Lumineon, + .frontAnimId = ANIM_H_STRETCH, + BACK_PIC(Lumineon, 56, 64), + BACK_PIC_FEMALE(Lumineon, 56, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Lumineon), + ICON(Lumineon, 0), + .footprint = gMonFootprint_Lumineon, + LEARNSETS(Lumineon), + }, +#endif //P_FAMILY_FINNEON + +#if P_FAMILY_SNOVER + [SPECIES_SNOVER] = { .baseHP = 60, - .baseAttack = 105, - .baseDefense = 60, - .baseSpeed = 105, - .baseSpAttack = 120, + .baseAttack = 62, + .baseDefense = 50, + .baseSpeed = 40, + .baseSpAttack = 62, .baseSpDefense = 60, - .types = { TYPE_DARK, TYPE_DARK}, - .catchRate = 45, - .expYield = 179, - .evYield_SpAttack = 2, - .genderRatio = PERCENT_FEMALE(12.5), + .types = { TYPE_GRASS, TYPE_ICE}, + .catchRate = 120, + .expYield = 67, + .evYield_Attack = 1, + .itemRare = ITEM_NEVER_MELT_ICE, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_ILLUSION, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GRAY, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS}, + .abilities = {ABILITY_SNOW_WARNING, ABILITY_NONE, ABILITY_SOUNDPROOF}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - }, + .speciesName = _("Snover"), + .cryId = CRY_SNOVER, + .natDexNum = NATIONAL_DEX_SNOVER, + .categoryName = _("Frost Tree"), + .height = 10, + .weight = 505, + .description = COMPOUND_STRING( + "During cold seasons, it migrates to the\n" + "mountain's lower reaches. Seemingly\n" + "curious about people, they gather around\n" + "footsteps they find on snowy mountains."), + .pokemonScale = 305, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Snover, 64, 48), + FRONT_PIC_FEMALE(Snover, 64, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Snover, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Snover, 64, 56), + BACK_PIC_FEMALE(Snover, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_V_STRETCH, + PALETTE(Snover), + ICON(Snover, 1), + .footprint = gMonFootprint_Snover, + LEARNSETS(Snover), + .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_ABOMASNOW}), + }, + +#define ABOMASNOW_MISC_INFO \ + .types = { TYPE_GRASS, TYPE_ICE}, \ + .catchRate = 60, \ + .evYield_Attack = 1, \ + .evYield_SpAttack = 1, \ + .itemRare = ITEM_NEVER_MELT_ICE, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS}, \ + .bodyColor = BODY_COLOR_WHITE, \ + .noFlip = FALSE, \ + .speciesName = _("Abomasnow"), \ + .natDexNum = NATIONAL_DEX_ABOMASNOW, \ + .categoryName = _("Frost Tree"), \ + .footprint = gMonFootprint_Abomasnow, \ + LEARNSETS(Abomasnow), \ + .formSpeciesIdTable = sAbomasnowFormSpeciesIdTable, \ + .formChangeTable = sAbomasnowFormChangeTable - [SPECIES_MINCCINO] = + [SPECIES_ABOMASNOW] = { - .baseHP = 55, - .baseAttack = 50, - .baseDefense = 40, - .baseSpeed = 75, - .baseSpAttack = 40, - .baseSpDefense = 40, - .types = { TYPE_NORMAL, TYPE_NORMAL}, - .catchRate = 255, - .expYield = 60, - .evYield_Speed = 1, - .genderRatio = PERCENT_FEMALE(75), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_CUTE_CHARM, ABILITY_TECHNICIAN, ABILITY_SKILL_LINK}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, + ABOMASNOW_MISC_INFO, + .baseHP = 90, + .baseAttack = 92, + .baseDefense = 75, + .baseSpeed = 60, + .baseSpAttack = 92, + .baseSpDefense = 85, + .expYield = 173, + .abilities = {ABILITY_SNOW_WARNING, ABILITY_NONE, ABILITY_SOUNDPROOF}, + .cryId = CRY_ABOMASNOW, + .height = 22, + .weight = 1355, + .description = COMPOUND_STRING( + "It lives a quiet life on mountains that\n" + "are perpetually covered in snow. It hides\n" + "itself by whipping up blizzards.\n" + "It is also known as “The Ice Monster.”"), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 348, + .trainerOffset = 6, + FRONT_PIC(Abomasnow, 64, 64), + FRONT_PIC_FEMALE(Abomasnow, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Abomasnow, + .frontAnimId = ANIM_H_SHAKE, + BACK_PIC(Abomasnow, 64, 56), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(Abomasnow), + ICON(Abomasnow, 1), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_ABOMASNOW_MEGA] = + { + ABOMASNOW_MISC_INFO, + .baseHP = 90, + .baseAttack = 132, + .baseDefense = 105, + .baseSpeed = 30, + .baseSpAttack = 132, + .baseSpDefense = 105, + .expYield = 208, + .abilities = {ABILITY_SNOW_WARNING, ABILITY_SNOW_WARNING, ABILITY_SNOW_WARNING}, + .cryId = CRY_ABOMASNOW_MEGA, + .height = 27, + .weight = 1850, + .description = COMPOUND_STRING( + "The sprouts on Abomasnow's back grow into\n" + "great shafts of ice when it Mega Evolves.\n" + "Dislikes associating with others and\n" + "chooses to live quietly deep in mountains."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 348, + .trainerOffset = 6, + FRONT_PIC(AbomasnowMega, 64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_AbomasnowMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(AbomasnowMega, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(AbomasnowMega), + ICON(AbomasnowMega, 1), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_SNOVER + +#if P_FAMILY_ROTOM +#define ROTOM_MISC_INFO \ + .catchRate = 45, \ + .evYield_Speed = 1, \ + .evYield_SpAttack = 1, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, \ + .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, \ + .bodyColor = BODY_COLOR_RED, \ + .speciesName = _("Rotom"), \ + .cryId = CRY_ROTOM, \ + .natDexNum = NATIONAL_DEX_ROTOM, \ + .categoryName = _("Plasma"), \ + .height = 3, \ + .weight = 3, \ + .pokemonScale = 530, \ + .pokemonOffset = 13, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Rotom, \ + LEARNSETS(Rotom), \ + .formSpeciesIdTable = sRotomFormSpeciesIdTable, \ + .formChangeTable = sRotomFormChangeTable - [SPECIES_CINCCINO] = + [SPECIES_ROTOM] = { - .baseHP = 75, - .baseAttack = 95, - .baseDefense = 60, - .baseSpeed = 115, - .baseSpAttack = 65, - .baseSpDefense = 60, - .types = { TYPE_NORMAL, TYPE_NORMAL}, - .catchRate = 60, - .expYield = 165, - .evYield_Speed = 2, - .genderRatio = PERCENT_FEMALE(75), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_CUTE_CHARM, ABILITY_TECHNICIAN, ABILITY_SKILL_LINK}, - .bodyColor = BODY_COLOR_GRAY, + ROTOM_MISC_INFO, + .baseHP = 50, + .baseAttack = 50, + .baseDefense = 77, + .baseSpeed = 91, + .baseSpAttack = 95, + .baseSpDefense = 77, + .types = { TYPE_ELECTRIC, TYPE_GHOST}, + .expYield = 154, + .noFlip = FALSE, + .description = COMPOUND_STRING( + "Its body is composed of plasma and loves\n" + "to surprise others. One boy's invention led\n" + "to the development of many machines that\n" + "can use of Rotom's unique capabilities."), + FRONT_PIC(Rotom, 56, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Rotom, + .frontAnimId = ANIM_GLOW_YELLOW, + .enemyMonElevation = 10, + BACK_PIC(Rotom, 56, 56), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, + PALETTE(Rotom), + ICON(Rotom, 0), + }, + +#define ROTOM_APPLIANCE_INFO(form) \ + .baseHP = 50, \ + .baseAttack = 65, \ + .baseDefense = 107, \ + .baseSpeed = 86, \ + .baseSpAttack = 105, \ + .baseSpDefense = 107, \ + .expYield = 182 + + [SPECIES_ROTOM_HEAT] = + { + ROTOM_MISC_INFO, + .types = { TYPE_ELECTRIC, TYPE_FIRE }, + .noFlip = FALSE, + ROTOM_APPLIANCE_INFO(Heat), + .description = COMPOUND_STRING( + "If the convection microwave oven is not\n" + "working properly, then the Rotom inhabiting\n" + "it will become lethargic. It will gleefully\n" + "burn your favorite outfit in mischief."), + FRONT_PIC(RotomHeat, 56, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_RotomHeat, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 6, + BACK_PIC(RotomHeat, 64, 40), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, + PALETTE(RotomHeat), + ICON(RotomHeat, 0), + }, + + [SPECIES_ROTOM_WASH] = + { + ROTOM_MISC_INFO, + .types = { TYPE_ELECTRIC, TYPE_WATER }, .noFlip = TRUE, - }, - - [SPECIES_GOTHITA] = + ROTOM_APPLIANCE_INFO(Wash), + .description = COMPOUND_STRING( + "It enjoys coming up with water-based\n" + "pranks. The model of washing machine that\n" + "Rotom can inspirit has been discontinued,\n" + "so they are now traded at high prices."), + FRONT_PIC(RotomWash, 64, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_RotomWash, + .frontAnimId = ANIM_V_JUMPS_SMALL, + .enemyMonElevation = 6, + BACK_PIC(RotomWash, 64, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, + PALETTE(RotomWash), + ICON(RotomWash, 0), + }, + + [SPECIES_ROTOM_FROST] = + { + ROTOM_MISC_INFO, + .types = { TYPE_ELECTRIC, TYPE_ICE }, + .noFlip = FALSE, + ROTOM_APPLIANCE_INFO(Frost), + .description = COMPOUND_STRING( + "In this form, Rotom likes to play freezing\n" + "cold pranks. You may find it's turned the\n" + "bath you just filled to solid ice!\n" + "It battles by spewing cold air."), + FRONT_PIC(RotomFrost, 64, 64), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_RotomFrost, + .frontAnimId = ANIM_H_STRETCH, + .enemyMonElevation = 6, + BACK_PIC(RotomFrost, 64, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(RotomFrost), + ICON(RotomFrost, 5), + }, + + [SPECIES_ROTOM_FAN] = + { + ROTOM_MISC_INFO, + .types = { TYPE_ELECTRIC, TYPE_FLYING }, + .noFlip = FALSE, + ROTOM_APPLIANCE_INFO(Fan), + .description = COMPOUND_STRING( + "The first appliance developed that Rotom\n" + "coud inspirit was the electric fan. It uses\n" + "its power over wind in its pranks, happily\n" + "blowing any important documents it finds."), + FRONT_PIC(RotomFan, 64, 56), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_RotomFan, + .frontAnimId = ANIM_H_SLIDE_WOBBLE, + .frontAnimDelay = 7, + .enemyMonElevation = 6, + BACK_PIC(RotomFan, 64, 48), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(RotomFan), + ICON(RotomFan, 0), + }, + + [SPECIES_ROTOM_MOW] = + { + ROTOM_MISC_INFO, + .types = { TYPE_ELECTRIC, TYPE_GRASS }, + .noFlip = FALSE, + ROTOM_APPLIANCE_INFO(Mow), + .description = COMPOUND_STRING( + "The lawn mower is an appliance that led to\n" + "the development of the Rotom Dex. It will\n" + "mow down grass and flowers, then swagger\n" + "around with pride at its accomplishments."), + FRONT_PIC(RotomMow, 56, 64), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_RotomMow, + .frontAnimId = ANIM_TIP_MOVE_FORWARD, + .enemyMonElevation = 6, + BACK_PIC(RotomMow, 56, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(RotomMow), + ICON(RotomMow, 0), + }, +#endif //P_FAMILY_ROTOM + +#if P_FAMILY_UXIE + [SPECIES_UXIE] = { - .baseHP = 45, - .baseAttack = 30, - .baseDefense = 50, - .baseSpeed = 45, - .baseSpAttack = 55, - .baseSpDefense = 65, + .baseHP = 75, + .baseAttack = 75, + .baseDefense = 130, + .baseSpeed = 95, + .baseSpAttack = 75, + .baseSpDefense = 130, .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - .catchRate = 200, - .expYield = 58, + .catchRate = 3, + .expYield = 261, + .evYield_Defense = 2, .evYield_SpDefense = 1, - .genderRatio = PERCENT_FEMALE(75), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_FRISK, ABILITY_COMPETITIVE, ABILITY_SHADOW_TAG}, - .bodyColor = BODY_COLOR_PURPLE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 80, + .friendship = 140, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, - }, - - [SPECIES_GOTHORITA] = + .isLegendary = TRUE, + .speciesName = _("Uxie"), + .cryId = CRY_UXIE, + .natDexNum = NATIONAL_DEX_UXIE, + .categoryName = _("Knowledge"), + .height = 3, + .weight = 3, + .description = COMPOUND_STRING( + "Known as ”The Being of Knowledge,”\n" + "according to some sources, this Pokémon\n" + "provided people with the intelligence\n" + "necessary to solve various problems."), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Uxie, 56, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Uxie, + .frontAnimId = ANIM_SWING_CONCAVE, + .enemyMonElevation = 6, + BACK_PIC(Uxie, 56, 48), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Uxie), + ICON(Uxie, 0), + .footprint = gMonFootprint_Uxie, + LEARNSETS(Uxie), + }, +#endif //P_FAMILY_UXIE + +#if P_FAMILY_MESPRIT + [SPECIES_MESPRIT] = + { + .baseHP = 80, + .baseAttack = 105, + .baseDefense = 105, + .baseSpeed = 80, + .baseSpAttack = 105, + .baseSpDefense = 105, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, + .catchRate = 3, + .expYield = 261, + .evYield_Attack = 1, + .evYield_SpAttack = 1, + .evYield_SpDefense = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 80, + .friendship = 140, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, + .bodyColor = BODY_COLOR_PINK, + .noFlip = FALSE, + .isLegendary = TRUE, + .speciesName = _("Mesprit"), + .cryId = CRY_MESPRIT, + .natDexNum = NATIONAL_DEX_MESPRIT, + .categoryName = _("Emotion"), + .height = 3, + .weight = 3, + .description = COMPOUND_STRING( + "Although it slumbers at the bottom of a\n" + "lake, its spirit is said to leave its body\n" + "and flitter on the water surface. It\n" + "taught humans of sorrow, pain, and joy."), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Mesprit, 48, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Mesprit, + .frontAnimId = ANIM_H_SLIDE_WOBBLE, + .enemyMonElevation = 6, + BACK_PIC(Mesprit, 64, 48), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Mesprit), + ICON(Mesprit, 0), + .footprint = gMonFootprint_Mesprit, + LEARNSETS(Mesprit), + }, +#endif //P_FAMILY_MESPRIT + +#if P_FAMILY_AZELF + [SPECIES_AZELF] = { - .baseHP = 60, - .baseAttack = 45, + .baseHP = 75, + .baseAttack = 125, .baseDefense = 70, - .baseSpeed = 55, - .baseSpAttack = 75, - .baseSpDefense = 85, + .baseSpeed = 115, + .baseSpAttack = 125, + .baseSpDefense = 70, .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - .catchRate = 100, - .expYield = 137, - .evYield_SpDefense = 2, - .genderRatio = PERCENT_FEMALE(75), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_FRISK, ABILITY_COMPETITIVE, ABILITY_SHADOW_TAG}, - .bodyColor = BODY_COLOR_PURPLE, + .catchRate = 3, + .expYield = 261, + .evYield_Attack = 2, + .evYield_SpAttack = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 80, + .friendship = 140, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - }, + .isLegendary = TRUE, + .speciesName = _("Azelf"), + .cryId = CRY_AZELF, + .natDexNum = NATIONAL_DEX_AZELF, + .categoryName = _("Willpower"), + .height = 3, + .weight = 3, + .description = COMPOUND_STRING( + "This Pokémon is said to have endowed\n" + "humans with the determination needed to\n" + "do things. It is thought that Uxie, Mesprit\n" + "and Azelf all came from the same egg."), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Azelf, 48, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Azelf, + .frontAnimId = ANIM_V_SLIDE_WOBBLE, + .enemyMonElevation = 6, + BACK_PIC(Azelf, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Azelf), + ICON(Azelf, 0), + .footprint = gMonFootprint_Azelf, + LEARNSETS(Azelf), + }, +#endif //P_FAMILY_AZELF + +#if P_FAMILY_DIALGA +#define DIALGA_MISC_INFO \ + .types = { TYPE_STEEL, TYPE_DRAGON}, \ + .catchRate = 3, \ + .expYield = 306, \ + .evYield_SpAttack = 3, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ + .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_TELEPATHY}, \ + .bodyColor = BODY_COLOR_WHITE, \ + .noFlip = FALSE, \ + .speciesName = _("Dialga"), \ + .cryId = CRY_DIALGA, \ + .natDexNum = NATIONAL_DEX_DIALGA, \ + .categoryName = _("Temporal"), \ + .footprint = gMonFootprint_Dialga, \ + LEARNSETS(Dialga), \ + .formSpeciesIdTable = sDialgaFormSpeciesIdTable, \ + .formChangeTable = sDialgaFormChangeTable, \ + .isLegendary = TRUE - [SPECIES_GOTHITELLE] = + [SPECIES_DIALGA] = { - .baseHP = 70, - .baseAttack = 55, - .baseDefense = 95, - .baseSpeed = 65, - .baseSpAttack = 95, - .baseSpDefense = 110, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - .catchRate = 50, - .expYield = 221, - .evYield_SpDefense = 3, - .genderRatio = PERCENT_FEMALE(75), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_FRISK, ABILITY_COMPETITIVE, ABILITY_SHADOW_TAG}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, + DIALGA_MISC_INFO, + .baseHP = 100, + .baseAttack = 120, + .baseDefense = 120, + .baseSpeed = 90, + .baseSpAttack = 150, + .baseSpDefense = 100, + .height = 54, + .weight = 6830, + .description = COMPOUND_STRING( + "A Pokémon spoken of in legend.\n" + "It completely controls the flow of time.\n" + "It uses its power to travel at will\n" + "through the past and future."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 721, + .trainerOffset = 19, + FRONT_PIC(Dialga, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Dialga, + .frontAnimId = ANIM_H_SHAKE, + BACK_PIC(Dialga, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Dialga), + ICON(Dialga, 2), }, - [SPECIES_SOLOSIS] = + [SPECIES_DIALGA_ORIGIN] = { - .baseHP = 45, - .baseAttack = 30, - .baseDefense = 40, - .baseSpeed = 20, - .baseSpAttack = 105, - .baseSpDefense = 50, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - .catchRate = 200, - .expYield = 58, - .evYield_SpAttack = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_OVERCOAT, ABILITY_MAGIC_GUARD, ABILITY_REGENERATOR}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = TRUE, - }, + DIALGA_MISC_INFO, + .baseHP = 100, + .baseAttack = 100, + .baseDefense = 120, + .baseSpeed = 90, + .baseSpAttack = 150, + .baseSpDefense = 120, + .height = 70, + .weight = 8500, + .description = COMPOUND_STRING( + "Radiant light caused Dialga to take on a\n" + "form bearing a striking resemblance to the\n" + "creator Pokémon. It wields such a colossal\n" + "strength that this might be its true form."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 721, + .trainerOffset = 19, + FRONT_PIC(DialgaOrigin, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_DialgaOrigin, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(DialgaOrigin, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(DialgaOrigin), + ICON(DialgaOrigin, 0), + }, +#endif //P_FAMILY_DIALGA + +#if P_FAMILY_PALKIA +#define PALKIA_MISC_INFO \ + .types = { TYPE_WATER, TYPE_DRAGON}, \ + .catchRate = 3, \ + .expYield = 306, \ + .evYield_SpAttack = 3, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ + .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_TELEPATHY}, \ + .bodyColor = BODY_COLOR_PURPLE, \ + .noFlip = FALSE, \ + .speciesName = _("Palkia"), \ + .cryId = CRY_PALKIA, \ + .natDexNum = NATIONAL_DEX_PALKIA, \ + .categoryName = _("Spatial"), \ + .footprint = gMonFootprint_Palkia, \ + LEARNSETS(Palkia), \ + .formSpeciesIdTable = sPalkiaFormSpeciesIdTable, \ + .formChangeTable = sPalkiaFormChangeTable, \ + .isLegendary = TRUE - [SPECIES_DUOSION] = + [SPECIES_PALKIA] = { - .baseHP = 65, - .baseAttack = 40, - .baseDefense = 50, - .baseSpeed = 30, - .baseSpAttack = 125, - .baseSpDefense = 60, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - .catchRate = 100, - .expYield = 130, - .evYield_SpAttack = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_OVERCOAT, ABILITY_MAGIC_GUARD, ABILITY_REGENERATOR}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, + PALKIA_MISC_INFO, + .baseHP = 90, + .baseAttack = 120, + .baseDefense = 100, + .baseSpeed = 100, + .baseSpAttack = 150, + .baseSpDefense = 120, + .height = 42, + .weight = 3360, + .description = COMPOUND_STRING( + "Palkia has the ability to distort space.\n" + "Its total control over the boundaries of\n" + "space enable it to transport itself to\n" + "faraway places and other dimensions."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 650, + .trainerOffset = 16, + FRONT_PIC(Palkia, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Palkia, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(Palkia, 64, 64), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_H_SHAKE, + PALETTE(Palkia), + ICON(Palkia, 2), }, - [SPECIES_REUNICLUS] = + [SPECIES_PALKIA_ORIGIN] = { - .baseHP = 110, - .baseAttack = 65, - .baseDefense = 75, - .baseSpeed = 30, - .baseSpAttack = 125, - .baseSpDefense = 85, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - .catchRate = 50, - .expYield = 221, + PALKIA_MISC_INFO, + .baseHP = 90, + .baseAttack = 100, + .baseDefense = 100, + .baseSpeed = 120, + .baseSpAttack = 150, + .baseSpDefense = 120, + .height = 63, + .weight = 6600, + .description = COMPOUND_STRING( + "It soars across the sky in a form that\n" + "resembles the creator of all things.\n" + "Perhaps this imitation of appearance is a\n" + "strategy for gaining Arceus's powers."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 650, + .trainerOffset = 16, + FRONT_PIC(PalkiaOrigin, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_PalkiaOrigin, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(PalkiaOrigin, 64, 64), + .backPicYOffset = 3, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(PalkiaOrigin), + ICON(PalkiaOrigin, 2), + }, +#endif //P_FAMILY_PALKIA + +#if P_FAMILY_HEATRAN + [SPECIES_HEATRAN] = + { + .baseHP = 91, + .baseAttack = 90, + .baseDefense = 106, + .baseSpeed = 77, + .baseSpAttack = 130, + .baseSpDefense = 106, + .types = { TYPE_FIRE, TYPE_STEEL}, + .catchRate = 3, + .expYield = 270, .evYield_SpAttack = 3, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_OVERCOAT, ABILITY_MAGIC_GUARD, ABILITY_REGENERATOR}, - .bodyColor = BODY_COLOR_GREEN, + .eggCycles = 10, + .friendship = 100, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_FLASH_FIRE, ABILITY_NONE, ABILITY_FLAME_BODY}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - }, - - [SPECIES_DUCKLETT] = + .isLegendary = TRUE, + .speciesName = _("Heatran"), + .cryId = CRY_HEATRAN, + .natDexNum = NATIONAL_DEX_HEATRAN, + .categoryName = _("Lava Dome"), + .height = 17, + .weight = 4300, + .description = COMPOUND_STRING( + "Boiling blood, like magma, circulates\n" + "through its body. It dwells in volcanic\n" + "caves, using its cross-shaped feet\n" + "to crawl on ceilings and walls."), + .pokemonScale = 259, + .pokemonOffset = 1, + .trainerScale = 290, + .trainerOffset = 1, + FRONT_PIC(Heatran, 64, 56), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Heatran, + .frontAnimId = ANIM_GLOW_ORANGE, + BACK_PIC(Heatran, 64, 40), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, + PALETTE(Heatran), + ICON(Heatran, 0), + .footprint = gMonFootprint_Heatran, + LEARNSETS(Heatran), + }, +#endif //P_FAMILY_HEATRAN + +#if P_FAMILY_REGIGIGAS + [SPECIES_REGIGIGAS] = { - .baseHP = 62, - .baseAttack = 44, - .baseDefense = 50, - .baseSpeed = 55, - .baseSpAttack = 44, - .baseSpDefense = 50, - .types = { TYPE_WATER, TYPE_FLYING}, - .catchRate = 190, - .expYield = 61, - .evYield_HP = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FLYING}, - .abilities = {ABILITY_KEEN_EYE, ABILITY_BIG_PECKS, ABILITY_HYDRATION}, - .bodyColor = BODY_COLOR_BLUE, + .baseHP = 110, + .baseAttack = 160, + .baseDefense = 110, + .baseSpeed = 100, + .baseSpAttack = 80, + .baseSpDefense = 110, + .types = { TYPE_NORMAL, TYPE_NORMAL}, + .catchRate = 3, + .expYield = 302, + .evYield_Attack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_SLOW_START, ABILITY_NONE}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, + .isLegendary = TRUE, + .speciesName = _("Regigigas"), + .cryId = CRY_REGIGIGAS, + .natDexNum = NATIONAL_DEX_REGIGIGAS, + .categoryName = _("Colossal"), + .height = 37, + .weight = 4200, + .description = COMPOUND_STRING( + "There is an enduring legend that\n" + "states this Pokémon shaped Regirock,\n" + "Regice, and Registeel out of clay, ice,\n" + "and magma."), + .pokemonScale = 256, + .pokemonOffset = 2, + .trainerScale = 610, + .trainerOffset = 17, + FRONT_PIC(Regigigas, 64, 64), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Regigigas, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(Regigigas, 64, 40), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(Regigigas), + ICON(Regigigas, 0), + .footprint = gMonFootprint_Regigigas, + LEARNSETS(Regigigas), + }, +#endif //P_FAMILY_REGIGIGAS + +#if P_FAMILY_GIRATINA +#define GIRATINA_MISC_INFO \ + .types = { TYPE_GHOST, TYPE_DRAGON}, \ + .catchRate = 3, \ + .expYield = 306, \ + .evYield_HP = 3, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ + .bodyColor = BODY_COLOR_BLACK, \ + .noFlip = FALSE, \ + .speciesName = _("Giratina"), \ + .cryId = CRY_GIRATINA, \ + .natDexNum = NATIONAL_DEX_GIRATINA, \ + .categoryName = _("Renegade"), \ + .footprint = gMonFootprint_Giratina, \ + LEARNSETS(Giratina), \ + .formSpeciesIdTable = sGiratinaFormSpeciesIdTable, \ + .formChangeTable = sGiratinaFormChangeTable, \ + .isLegendary = TRUE + + [SPECIES_GIRATINA_ALTERED] = + { + GIRATINA_MISC_INFO, + .baseHP = 150, + .baseAttack = 100, + .baseDefense = 120, + .baseSpeed = 90, + .baseSpAttack = 100, + .baseSpDefense = 120, + .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_TELEPATHY}, + .height = 45, + .weight = 7500, + .description = COMPOUND_STRING( + "This Pokémon is said to live in a world\n" + "on the reverse side of ours, where common\n" + "knowledge is distorted and strange.\n" + "It was banished for its violence."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 614, + .trainerOffset = 13, + FRONT_PIC(GiratinaAltered, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_GiratinaAltered, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(GiratinaAltered, 64, 64), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(GiratinaAltered), + ICON(GiratinaAltered, 0), }, - [SPECIES_SWANNA] = + [SPECIES_GIRATINA_ORIGIN] = { - .baseHP = 75, - .baseAttack = 87, - .baseDefense = 63, - .baseSpeed = 98, - .baseSpAttack = 87, - .baseSpDefense = 63, - .types = { TYPE_WATER, TYPE_FLYING}, - .catchRate = 45, - .expYield = 166, - .evYield_Speed = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FLYING}, - .abilities = {ABILITY_KEEN_EYE, ABILITY_BIG_PECKS, ABILITY_HYDRATION}, - .bodyColor = BODY_COLOR_WHITE, + GIRATINA_MISC_INFO, + .baseHP = 150, + .baseAttack = 120, + .baseDefense = 100, + .baseSpeed = 90, + .baseSpAttack = 120, + .baseSpDefense = 100, + .abilities = {ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE}, + .height = 69, + .weight = 6500, + .description = COMPOUND_STRING( + "Giratina loses its legs upon changing into\n" + "this form. It's believed it hails from a\n" + "world where the heavens and the earth\n" + "are as one."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 614, + .trainerOffset = 13, + FRONT_PIC(GiratinaOrigin, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_GiratinaOrigin, + .frontAnimId = ANIM_LUNGE_GROW, + .enemyMonElevation = 7, + BACK_PIC(GiratinaOrigin, 64, 56), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_GROW_STUTTER, + PALETTE(GiratinaOrigin), + ICON(GiratinaOrigin, 0), + }, +#endif //P_FAMILY_GIRATINA + +#if P_FAMILY_CRESSELIA + [SPECIES_CRESSELIA] = + { + .baseHP = 120, + .baseAttack = 70, + .baseDefense = P_UPDATED_STATS >= GEN_9 ? 110 : 120, + .baseSpeed = 85, + .baseSpAttack = 75, + .baseSpDefense = P_UPDATED_STATS >= GEN_9 ? 120 : 130, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, + .catchRate = 3, + .expYield = 270, + .evYield_SpDefense = 3, + .genderRatio = MON_FEMALE, + .eggCycles = 120, + .friendship = 100, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, - }, - - [SPECIES_VANILLITE] = + .isLegendary = TRUE, + .speciesName = _("Cresselia"), + .cryId = CRY_CRESSELIA, + .natDexNum = NATIONAL_DEX_CRESSELIA, + .categoryName = _("Lunar"), + .height = 15, + .weight = 856, + .description = COMPOUND_STRING( + "Those who sleep holding one of\n" + "Cresselia's feathers are assured of\n" + "joyful dreams. It is said to represent\n" + "the crescent moon."), + .pokemonScale = 268, + .pokemonOffset = 2, + .trainerScale = 271, + .trainerOffset = 0, + FRONT_PIC(Cresselia, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Cresselia, + .frontAnimId = ANIM_H_SLIDE_WOBBLE, + .enemyMonElevation = 3, + BACK_PIC(Cresselia, 56, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Cresselia), + ICON(Cresselia, 0), + .footprint = gMonFootprint_Cresselia, + LEARNSETS(Cresselia), + }, +#endif //P_FAMILY_CRESSELIA + +#if P_FAMILY_MANAPHY + [SPECIES_PHIONE] = { - .baseHP = 36, - .baseAttack = 50, - .baseDefense = 50, - .baseSpeed = 44, - .baseSpAttack = 65, - .baseSpDefense = 60, - .types = { TYPE_ICE, TYPE_ICE}, - .catchRate = 255, - .expYield = 61, - .evYield_SpAttack = 1, - .itemRare = ITEM_NEVER_MELT_ICE, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .baseHP = 80, + .baseAttack = 80, + .baseDefense = 80, + .baseSpeed = 80, + .baseSpAttack = 80, + .baseSpDefense = 80, + .types = { TYPE_WATER, TYPE_WATER}, + .catchRate = 30, + .expYield = 216, + .evYield_HP = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_ICE_BODY, ABILITY_SNOW_CLOAK, ABILITY_WEAK_ARMOR}, - .bodyColor = BODY_COLOR_WHITE, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FAIRY}, + .abilities = {ABILITY_HYDRATION, ABILITY_NONE}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .isMythical = TRUE, + .speciesName = _("Phione"), + .cryId = CRY_PHIONE, + .natDexNum = NATIONAL_DEX_PHIONE, + .categoryName = _("Sea Drifter"), + .height = 4, + .weight = 31, + .description = COMPOUND_STRING( + "When the water warms, they inflate the\n" + "flotation sac on their heads and drift\n" + "languidly on the sea in packs.\n" + "It always returns to where it was born."), + .pokemonScale = 491, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Phione, 56, 40), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Phione, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Phione, 64, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Phione), + ICON(Phione, 0), + .footprint = gMonFootprint_Phione, + LEARNSETS(Phione), }, - [SPECIES_VANILLISH] = + [SPECIES_MANAPHY] = { - .baseHP = 51, - .baseAttack = 65, - .baseDefense = 65, - .baseSpeed = 59, - .baseSpAttack = 80, - .baseSpDefense = 75, - .types = { TYPE_ICE, TYPE_ICE}, - .catchRate = 120, - .expYield = 138, - .evYield_SpAttack = 2, - .itemRare = ITEM_NEVER_MELT_ICE, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .baseHP = 100, + .baseAttack = 100, + .baseDefense = 100, + .baseSpeed = 100, + .baseSpAttack = 100, + .baseSpDefense = 100, + .types = { TYPE_WATER, TYPE_WATER}, + .catchRate = 3, + .expYield = 270, + .evYield_HP = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 10, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_ICE_BODY, ABILITY_SNOW_CLOAK, ABILITY_WEAK_ARMOR}, - .bodyColor = BODY_COLOR_WHITE, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FAIRY}, + .abilities = {ABILITY_HYDRATION, ABILITY_NONE}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - }, - - [SPECIES_VANILLUXE] = + .isMythical = TRUE, + .speciesName = _("Manaphy"), + .cryId = CRY_MANAPHY, + .natDexNum = NATIONAL_DEX_MANAPHY, + .categoryName = _("Seafaring"), + .height = 3, + .weight = 14, + .description = COMPOUND_STRING( + "Water makes up 80% of its body.\n" + "It starts its life with a wondrous power\n" + "that permits it to bond with any kind\n" + "of Pokémon."), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Manaphy, 64, 40), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Manaphy, + .frontAnimId = ANIM_SWING_CONVEX, + BACK_PIC(Manaphy, 64, 56), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Manaphy), + ICON(Manaphy, 0), + .footprint = gMonFootprint_Manaphy, + LEARNSETS(Manaphy), + }, +#endif //P_FAMILY_MANAPHY + +#if P_FAMILY_DARKRAI + [SPECIES_DARKRAI] = { - .baseHP = 71, - .baseAttack = 95, - .baseDefense = 85, - .baseSpeed = 79, - .baseSpAttack = 110, - .baseSpDefense = 95, - .types = { TYPE_ICE, TYPE_ICE}, - .catchRate = 45, - .expYield = 241, - .evYield_SpAttack = 3, - .itemCommon = ITEM_NEVER_MELT_ICE, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, + .baseHP = 70, + .baseAttack = 90, + .baseDefense = 90, + .baseSpeed = 125, + .baseSpAttack = 135, + .baseSpDefense = 90, + .types = { TYPE_DARK, TYPE_DARK}, + .catchRate = 3, + .expYield = 270, + .evYield_Speed = 1, + .evYield_SpAttack = 2, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_ICE_BODY, ABILITY_SNOW_WARNING, ABILITY_WEAK_ARMOR}, - .bodyColor = BODY_COLOR_WHITE, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_BAD_DREAMS, ABILITY_NONE}, + .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, - }, - - [SPECIES_DEERLING_SPRING] = DEERLING_SPECIES_INFO(BODY_COLOR_PINK), - - [SPECIES_SAWSBUCK_SPRING] = SAWSBUCK_SPECIES_INFO, + .isMythical = TRUE, + .speciesName = _("Darkrai"), + .cryId = CRY_DARKRAI, + .natDexNum = NATIONAL_DEX_DARKRAI, + .categoryName = _("Pitch-Black"), + .height = 15, + .weight = 505, + .description = COMPOUND_STRING( + "It chases people and Pokémon from its\n" + "territory by causing them to experience\n" + "deep, nightmarish slumbers. However,\n" + "it means no harm."), + .pokemonScale = 268, + .pokemonOffset = 2, + .trainerScale = 271, + .trainerOffset = 0, + FRONT_PIC(Darkrai, 64, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_Darkrai, + .frontAnimId = ANIM_GLOW_BLACK, + .enemyMonElevation = 4, + BACK_PIC(Darkrai, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(Darkrai), + ICON(Darkrai, 0), + .footprint = gMonFootprint_Darkrai, + LEARNSETS(Darkrai), + }, +#endif //P_FAMILY_DARKRAI + +#if P_FAMILY_SHAYMIN +#define SHAYMIN_MISC_INFO \ + .catchRate = 45, \ + .expYield = 270, \ + .evYield_HP = 3, \ + .itemCommon = ITEM_LUM_BERRY, \ + .itemRare = ITEM_LUM_BERRY, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 100, \ + .growthRate = GROWTH_MEDIUM_SLOW, \ + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ + .bodyColor = BODY_COLOR_GREEN, \ + .speciesName = _("Shaymin"), \ + .natDexNum = NATIONAL_DEX_SHAYMIN, \ + .categoryName = _("Gratitude"), \ + .footprint = gMonFootprint_Shaymin, \ + .formSpeciesIdTable = sShayminFormSpeciesIdTable, \ + .formChangeTable = sShayminFormChangeTable, \ + .isMythical = TRUE - [SPECIES_EMOLGA] = + [SPECIES_SHAYMIN_LAND] = { - .baseHP = 55, - .baseAttack = 75, - .baseDefense = 60, - .baseSpeed = 103, - .baseSpAttack = 75, - .baseSpDefense = 60, - .types = { TYPE_ELECTRIC, TYPE_FLYING}, - .catchRate = 200, - .expYield = 150, - .evYield_Speed = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_STATIC, ABILITY_NONE, ABILITY_MOTOR_DRIVE}, - .bodyColor = BODY_COLOR_WHITE, + SHAYMIN_MISC_INFO, + .baseHP = 100, + .baseAttack = 100, + .baseDefense = 100, + .baseSpeed = 100, + .baseSpAttack = 100, + .baseSpDefense = 100, + .types = { TYPE_GRASS, TYPE_GRASS}, + .abilities = {ABILITY_NATURAL_CURE, ABILITY_NONE}, .noFlip = FALSE, + .cryId = CRY_SHAYMIN_LAND, + .height = 2, + .weight = 21, + .description = COMPOUND_STRING( + "The flowers all over its body bloom if it is\n" + "lovingly hugged and senses gratitude. It\n" + "dissolves toxins in the air to transform\n" + "ruined land into a lush field of flowers."), + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(ShayminLand, 40, 32), + .frontPicYOffset = 16, + .frontAnimFrames = sAnims_ShayminLand, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(ShayminLand, 56, 40), + .backPicYOffset = 15, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(ShayminLand), + ICON(ShayminLand, 1), + LEARNSETS(ShayminLand), }, - [SPECIES_KARRABLAST] = + [SPECIES_SHAYMIN_SKY] = { - .baseHP = 50, - .baseAttack = 75, - .baseDefense = 45, - .baseSpeed = 60, - .baseSpAttack = 40, - .baseSpDefense = 45, - .types = { TYPE_BUG, TYPE_BUG}, - .catchRate = 200, - .expYield = 63, - .evYield_Attack = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SWARM, ABILITY_SHED_SKIN, ABILITY_NO_GUARD}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, + SHAYMIN_MISC_INFO, + .baseHP = 100, + .baseAttack = 103, + .baseDefense = 75, + .baseSpeed = 127, + .baseSpAttack = 120, + .baseSpDefense = 75, + .types = { TYPE_GRASS, TYPE_FLYING}, + .abilities = {ABILITY_SERENE_GRACE, ABILITY_NONE}, + .noFlip = TRUE, + .cryId = CRY_SHAYMIN_SKY, + .height = 4, + .weight = 52, + .description = COMPOUND_STRING( + "Upon taking in the scent of a particular\n" + "rare flower, Shaymin is enveloped in light\n" + "and its tiny body transforms, confering\n" + "the power of flight upon it."), + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(ShayminSky, 56, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_ShayminSky, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(ShayminSky, 56, 64), + .backPicYOffset = 2, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(ShayminSky), + ICON(ShayminSky, 1), + LEARNSETS(ShayminSky), + }, +#endif //P_FAMILY_SHAYMIN + +#if P_FAMILY_ARCEUS +#define ARCEUS_SPECIES_INFO(type, typeName) \ + { \ + .baseHP = 120, \ + .baseAttack = 120, \ + .baseDefense = 120, \ + .baseSpeed = 120, \ + .baseSpAttack = 120, \ + .baseSpDefense = 120, \ + .types = { type, type }, \ + .catchRate = 3, \ + .expYield = 324, \ + .evYield_HP = 3, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ + .abilities = {ABILITY_MULTITYPE, ABILITY_NONE}, \ + .bodyColor = BODY_COLOR_WHITE, \ + .noFlip = FALSE, \ + .speciesName = _("Arceus"), \ + .cryId = CRY_ARCEUS, \ + .natDexNum = NATIONAL_DEX_ARCEUS, \ + .categoryName = _("Alpha"), \ + .height = 32, \ + .weight = 3200, \ + .description = gArceusPokedexText, \ + .pokemonScale = 256, \ + .pokemonOffset = 0, \ + .trainerScale = 495, \ + .trainerOffset = 10, \ + FRONT_PIC(Arceus, 64, 64), \ + .frontPicYOffset = 0, \ + .frontAnimFrames = sAnims_Arceus, \ + .frontAnimId = ANIM_GROW_VIBRATE, \ + BACK_PIC(Arceus, 64, 64), \ + .backPicYOffset = 3, \ + .backAnimId = BACK_ANIM_GROW_STUTTER, \ + PALETTE(Arceus ##typeName), \ + ICON(Arceus, 1), \ + .footprint = gMonFootprint_Arceus, \ + LEARNSETS(Arceus), \ + .formSpeciesIdTable = sArceusFormSpeciesIdTable, \ + .formChangeTable = sArceusFormChangeTable, \ + .isMythical = TRUE, \ + } - [SPECIES_ESCAVALIER] = + [SPECIES_ARCEUS_NORMAL] = ARCEUS_SPECIES_INFO(TYPE_NORMAL, Normal), + [SPECIES_ARCEUS_FIGHTING] = ARCEUS_SPECIES_INFO(TYPE_FIGHTING, Fighting), + [SPECIES_ARCEUS_FLYING] = ARCEUS_SPECIES_INFO(TYPE_FLYING, Flying), + [SPECIES_ARCEUS_POISON] = ARCEUS_SPECIES_INFO(TYPE_POISON, Poison), + [SPECIES_ARCEUS_GROUND] = ARCEUS_SPECIES_INFO(TYPE_GROUND, Ground), + [SPECIES_ARCEUS_ROCK] = ARCEUS_SPECIES_INFO(TYPE_ROCK, Rock), + [SPECIES_ARCEUS_BUG] = ARCEUS_SPECIES_INFO(TYPE_BUG, Bug), + [SPECIES_ARCEUS_GHOST] = ARCEUS_SPECIES_INFO(TYPE_GHOST, Ghost), + [SPECIES_ARCEUS_STEEL] = ARCEUS_SPECIES_INFO(TYPE_STEEL, Steel), + [SPECIES_ARCEUS_FIRE] = ARCEUS_SPECIES_INFO(TYPE_FIRE, Fire), + [SPECIES_ARCEUS_WATER] = ARCEUS_SPECIES_INFO(TYPE_WATER, Water), + [SPECIES_ARCEUS_GRASS] = ARCEUS_SPECIES_INFO(TYPE_GRASS, Grass), + [SPECIES_ARCEUS_ELECTRIC] = ARCEUS_SPECIES_INFO(TYPE_ELECTRIC, Electric), + [SPECIES_ARCEUS_PSYCHIC] = ARCEUS_SPECIES_INFO(TYPE_PSYCHIC, Psychic), + [SPECIES_ARCEUS_ICE] = ARCEUS_SPECIES_INFO(TYPE_ICE, Ice), + [SPECIES_ARCEUS_DRAGON] = ARCEUS_SPECIES_INFO(TYPE_DRAGON, Dragon), + [SPECIES_ARCEUS_DARK] = ARCEUS_SPECIES_INFO(TYPE_DARK, Dark), + [SPECIES_ARCEUS_FAIRY] = ARCEUS_SPECIES_INFO(TYPE_FAIRY, Fairy), +#endif //P_FAMILY_ARCEUS + +#if P_FAMILY_VICTINI + [SPECIES_VICTINI] = { - .baseHP = 70, - .baseAttack = 135, - .baseDefense = 105, - .baseSpeed = 20, - .baseSpAttack = 60, - .baseSpDefense = 105, - .types = { TYPE_BUG, TYPE_STEEL}, - .catchRate = 75, - .expYield = 173, - .evYield_Attack = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .baseHP = 100, + .baseAttack = 100, + .baseDefense = 100, + .baseSpeed = 100, + .baseSpAttack = 100, + .baseSpDefense = 100, + .types = { TYPE_PSYCHIC, TYPE_FIRE}, + .catchRate = 3, + .expYield = 270, + .evYield_HP = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 100, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_VICTORY_STAR, ABILITY_NONE}, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + .isMythical = TRUE, + .speciesName = _("Victini"), + .cryId = CRY_VICTINI, + .natDexNum = NATIONAL_DEX_VICTINI, + .categoryName = _("Victory"), + .height = 4, + .weight = 40, + .description = COMPOUND_STRING( + "This Pokémon brings victory.\n" + "It is said that Trainers with Victini\n" + "always win, regardless of the type\n" + "of encounter."), + .pokemonScale = 491, + .pokemonOffset = 16, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Victini, 48, 56), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Victini, + .frontAnimId = ANIM_H_JUMPS, + BACK_PIC(Victini, 40, 64), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_H_SHAKE, + PALETTE(Victini), + ICON(Victini, 0), + .footprint = gMonFootprint_Victini, + LEARNSETS(Victini), + }, +#endif //P_FAMILY_VICTINI + +#if P_FAMILY_SNIVY + [SPECIES_SNIVY] = + { + .baseHP = 45, + .baseAttack = 45, + .baseDefense = 55, + .baseSpeed = 63, + .baseSpAttack = 45, + .baseSpDefense = 55, + .types = { TYPE_GRASS, TYPE_GRASS}, + .catchRate = 45, + .expYield = 62, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SWARM, ABILITY_SHELL_ARMOR, ABILITY_OVERCOAT}, - .bodyColor = BODY_COLOR_GRAY, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS}, + .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_CONTRARY}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, + .speciesName = _("Snivy"), + .cryId = CRY_SNIVY, + .natDexNum = NATIONAL_DEX_SNIVY, + .categoryName = _("Grass Snake"), + .height = 6, + .weight = 81, + .description = COMPOUND_STRING( + "It is very intelligent and calm.\n" + "Being exposed to lots of sunlight makes\n" + "its movements swifter. When they are\n" + "not feeling well, their tails droop."), + .pokemonScale = 422, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Snivy, 48, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Snivy, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Snivy, 56, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Snivy), + ICON(Snivy, 1), + .footprint = gMonFootprint_Snivy, + LEARNSETS(Snivy), + .evolutions = EVOLUTION({EVO_LEVEL, 17, SPECIES_SERVINE}), }, - [SPECIES_FOONGUS] = + [SPECIES_SERVINE] = { - .baseHP = 69, - .baseAttack = 55, - .baseDefense = 45, - .baseSpeed = 15, - .baseSpAttack = 55, - .baseSpDefense = 55, - .types = { TYPE_GRASS, TYPE_POISON}, - .catchRate = 190, - .expYield = 59, - .evYield_HP = 1, - .itemCommon = ITEM_TINY_MUSHROOM, - .itemRare = ITEM_BIG_MUSHROOM, - .genderRatio = PERCENT_FEMALE(50), + .baseHP = 60, + .baseAttack = 60, + .baseDefense = 75, + .baseSpeed = 83, + .baseSpAttack = 60, + .baseSpDefense = 75, + .types = { TYPE_GRASS, TYPE_GRASS}, + .catchRate = 45, + .expYield = 145, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_EFFECT_SPORE, ABILITY_NONE, ABILITY_REGENERATOR}, - .bodyColor = BODY_COLOR_WHITE, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS}, + .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_CONTRARY}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, + .speciesName = _("Servine"), + .cryId = CRY_SERVINE, + .natDexNum = NATIONAL_DEX_SERVINE, + .categoryName = _("Grass Snake"), + .height = 8, + .weight = 160, + .description = COMPOUND_STRING( + "When it gets dirty, its leaves can't be\n" + "used in photosynthesis, so it always keeps\n" + "clean. They avoid attacks by sinking into\n" + "the shadows of thick foliage."), + .pokemonScale = 366, + .pokemonOffset = 9, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Servine, 48, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Servine, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Servine, 48, 64), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(Servine), + ICON(Servine, 1), + .footprint = gMonFootprint_Servine, + LEARNSETS(Servine), + .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_SERPERIOR}), }, - [SPECIES_AMOONGUSS] = + [SPECIES_SERPERIOR] = { - .baseHP = 114, - .baseAttack = 85, - .baseDefense = 70, - .baseSpeed = 30, - .baseSpAttack = 85, - .baseSpDefense = 80, - .types = { TYPE_GRASS, TYPE_POISON}, - .catchRate = 75, - .expYield = 162, - .evYield_HP = 2, - .itemCommon = ITEM_TINY_MUSHROOM, - .itemRare = ITEM_BIG_MUSHROOM, - .genderRatio = PERCENT_FEMALE(50), + .baseHP = 75, + .baseAttack = 75, + .baseDefense = 95, + .baseSpeed = 113, + .baseSpAttack = 75, + .baseSpDefense = 95, + .types = { TYPE_GRASS, TYPE_GRASS}, + .catchRate = 45, + .expYield = 238, + .evYield_Speed = 3, + .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_EFFECT_SPORE, ABILITY_NONE, ABILITY_REGENERATOR}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = TRUE, - }, - - [SPECIES_FRILLISH] = + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS}, + .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_CONTRARY}, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + .speciesName = _("Serperior"), + .cryId = CRY_SERPERIOR, + .natDexNum = NATIONAL_DEX_SERPERIOR, + .categoryName = _("Regal"), + .height = 33, + .weight = 630, + .description = COMPOUND_STRING( + "They raise their heads to intimidate foes,\n" + "but only give it their all when fighting\n" + "powerful opponents who are not fazed\n" + "by the glare from its noble eyes."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 405, + .trainerOffset = 8, + FRONT_PIC(Serperior, 64, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Serperior, + .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, + BACK_PIC(Serperior, 64, 64), + .backPicYOffset = 1, + .backAnimId = BACK_ANIM_V_STRETCH, + PALETTE(Serperior), + ICON(Serperior, 1), + .footprint = gMonFootprint_Serperior, + LEARNSETS(Serperior), + }, +#endif //P_FAMILY_SNIVY + +#if P_FAMILY_TEPIG + [SPECIES_TEPIG] = { - .baseHP = 55, - .baseAttack = 40, - .baseDefense = 50, - .baseSpeed = 40, - .baseSpAttack = 65, - .baseSpDefense = 85, - .types = { TYPE_WATER, TYPE_GHOST}, - .catchRate = 190, - .expYield = 67, - .evYield_SpDefense = 1, - .genderRatio = PERCENT_FEMALE(50), + .baseHP = 65, + .baseAttack = 63, + .baseDefense = 45, + .baseSpeed = 45, + .baseSpAttack = 45, + .baseSpDefense = 45, + .types = { TYPE_FIRE, TYPE_FIRE}, + .catchRate = 45, + .expYield = 62, + .evYield_HP = 1, + .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_WATER_ABSORB, ABILITY_CURSED_BODY, ABILITY_DAMP}, - .bodyColor = BODY_COLOR_WHITE, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_THICK_FAT}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, + .speciesName = _("Tepig"), + .cryId = CRY_TEPIG, + .natDexNum = NATIONAL_DEX_TEPIG, + .categoryName = _("Fire Pig"), + .height = 5, + .weight = 99, + .description = COMPOUND_STRING( + "It loves to eat roasted berries, but\n" + "sometimes it gets too excited and burns\n" + "them to a crisp. It blows fire through\n" + "its nose."), + .pokemonScale = 432, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Tepig, 40, 48), + .frontPicYOffset = 15, + .frontAnimFrames = sAnims_Tepig, + .frontAnimId = ANIM_H_SLIDE, + BACK_PIC(Tepig, 48, 56), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Tepig), + ICON(Tepig, 0), + .footprint = gMonFootprint_Tepig, + LEARNSETS(Tepig), + .evolutions = EVOLUTION({EVO_LEVEL, 17, SPECIES_PIGNITE}), }, - [SPECIES_JELLICENT] = + [SPECIES_PIGNITE] = { - .baseHP = 100, - .baseAttack = 60, - .baseDefense = 70, - .baseSpeed = 60, - .baseSpAttack = 85, - .baseSpDefense = 105, - .types = { TYPE_WATER, TYPE_GHOST}, - .catchRate = 60, - .expYield = 168, - .evYield_SpDefense = 2, - .genderRatio = PERCENT_FEMALE(50), + .baseHP = 90, + .baseAttack = 93, + .baseDefense = 55, + .baseSpeed = 55, + .baseSpAttack = 70, + .baseSpDefense = 55, + .types = { TYPE_FIRE, TYPE_FIGHTING}, + .catchRate = 45, + .expYield = 146, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_WATER_ABSORB, ABILITY_CURSED_BODY, ABILITY_DAMP}, - .bodyColor = BODY_COLOR_WHITE, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_THICK_FAT}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, + .speciesName = _("Pignite"), + .cryId = CRY_PIGNITE, + .natDexNum = NATIONAL_DEX_PIGNITE, + .categoryName = _("Fire Pig"), + .height = 10, + .weight = 555, + .description = COMPOUND_STRING( + "The more it eats, the more fuel it has\n" + "to make the fire in its stomach stronger.\n" + "When it is angered, the intensity of the\n" + "flame increases."), + .pokemonScale = 305, + .pokemonOffset = 8, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Pignite, 56, 56), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Pignite, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Pignite, 64, 64), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_GROW_STUTTER, + PALETTE(Pignite), + ICON(Pignite, 0), + .footprint = gMonFootprint_Pignite, + LEARNSETS(Pignite), + .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_EMBOAR}), }, - [SPECIES_ALOMOMOLA] = + [SPECIES_EMBOAR] = { - .baseHP = 165, - .baseAttack = 75, - .baseDefense = 80, + .baseHP = 110, + .baseAttack = 123, + .baseDefense = 65, .baseSpeed = 65, - .baseSpAttack = 40, + .baseSpAttack = 100, + .baseSpDefense = 65, + .types = { TYPE_FIRE, TYPE_FIGHTING}, + .catchRate = 45, + .expYield = 238, + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_RECKLESS}, + .bodyColor = BODY_COLOR_RED, + .noFlip = TRUE, + .speciesName = _("Emboar"), + .cryId = CRY_EMBOAR, + .natDexNum = NATIONAL_DEX_EMBOAR, + .categoryName = _("Fire Pig"), + .height = 16, + .weight = 1500, + .description = COMPOUND_STRING( + "It is adept at using many different moves.\n" + "It can throw a fire punch by setting its\n" + "fists on fire with its fiery chin.\n" + "It cares deeply about its friends."), + .pokemonScale = 259, + .pokemonOffset = 1, + .trainerScale = 296, + .trainerOffset = 1, + FRONT_PIC(Emboar, 64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Emboar, + .frontAnimId = ANIM_DEEP_V_SQUISH_AND_BOUNCE, + BACK_PIC(Emboar, 64, 64), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, + PALETTE(Emboar), + ICON(Emboar, 0), + .footprint = gMonFootprint_Emboar, + LEARNSETS(Emboar), + }, +#endif //P_FAMILY_TEPIG + +#if P_FAMILY_OSHAWOTT + [SPECIES_OSHAWOTT] = + { + .baseHP = 55, + .baseAttack = 55, + .baseDefense = 45, + .baseSpeed = 45, + .baseSpAttack = 63, .baseSpDefense = 45, .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 75, - .expYield = 165, - .evYield_HP = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 40, + .catchRate = 45, + .expYield = 62, + .evYield_SpAttack = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_2}, - .abilities = {ABILITY_HEALER, ABILITY_HYDRATION, ABILITY_REGENERATOR}, - .bodyColor = BODY_COLOR_PINK, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_SHELL_ARMOR}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Oshawott"), + .cryId = CRY_OSHAWOTT, + .natDexNum = NATIONAL_DEX_OSHAWOTT, + .categoryName = _("Sea Otter"), + .height = 5, + .weight = 59, + .description = COMPOUND_STRING( + "The scalchop on its stomach isn't just\n" + "used for battle, it can be used to break\n" + "open hard berries as well. It is made\n" + "from the same element as its claws."), + .pokemonScale = 432, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Oshawott, 32, 40), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Oshawott, + .frontAnimId = ANIM_H_JUMPS, + BACK_PIC(Oshawott, 40, 48), + .backPicYOffset = 14, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Oshawott), + ICON(Oshawott, 0), + .footprint = gMonFootprint_Oshawott, + LEARNSETS(Oshawott), + .evolutions = EVOLUTION({EVO_LEVEL, 17, SPECIES_DEWOTT}), }, - [SPECIES_JOLTIK] = + [SPECIES_DEWOTT] = { - .baseHP = 50, - .baseAttack = 47, - .baseDefense = 50, - .baseSpeed = 65, - .baseSpAttack = 57, - .baseSpDefense = 50, - .types = { TYPE_BUG, TYPE_ELECTRIC}, - .catchRate = 190, - .expYield = 64, - .evYield_Speed = 1, - .genderRatio = PERCENT_FEMALE(50), + .baseHP = 75, + .baseAttack = 75, + .baseDefense = 60, + .baseSpeed = 60, + .baseSpAttack = 83, + .baseSpDefense = 60, + .types = { TYPE_WATER, TYPE_WATER}, + .catchRate = 45, + .expYield = 145, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_COMPOUND_EYES, ABILITY_UNNERVE, ABILITY_SWARM}, - .bodyColor = BODY_COLOR_YELLOW, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_SHELL_ARMOR}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - }, + .speciesName = _("Dewott"), + .cryId = CRY_DEWOTT, + .natDexNum = NATIONAL_DEX_DEWOTT, + .categoryName = _("Discipline"), + .height = 8, + .weight = 245, + .description = COMPOUND_STRING( + "Strict training and disclipine leads it\n" + "to master its flowing double-scalchop\n" + "technique. Scalchop techniques differ\n" + "from one Dewott to another."), + .pokemonScale = 366, + .pokemonOffset = 9, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Dewott, 40, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Dewott, + .frontAnimId = ANIM_H_VIBRATE, + BACK_PIC(Dewott, 56, 64), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, + PALETTE(Dewott), + ICON(Dewott, 0), + .footprint = gMonFootprint_Dewott, + LEARNSETS(Dewott), + .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_SAMUROTT}, + {EVO_NONE, 0, SPECIES_SAMUROTT_HISUIAN}), + }, + +#define SAMUROTT_MISC_INFO \ + .catchRate = 45, \ + .expYield = 238, \ + .genderRatio = PERCENT_FEMALE(12.5), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_SLOW, \ + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, \ + .bodyColor = BODY_COLOR_BLUE, \ + .noFlip = FALSE, \ + .speciesName = _("Samurott"), \ + .cryId = CRY_SAMUROTT, \ + .natDexNum = NATIONAL_DEX_SAMUROTT, \ + .categoryName = _("Formidable"), \ + .height = 15, \ + .pokemonScale = 268, \ + .pokemonOffset = 2, \ + .trainerScale = 271, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Samurott, \ + .formSpeciesIdTable = sSamurottFormSpeciesIdTable - [SPECIES_GALVANTULA] = + [SPECIES_SAMUROTT] = { - .baseHP = 70, - .baseAttack = 77, - .baseDefense = 60, - .baseSpeed = 108, - .baseSpAttack = 97, - .baseSpDefense = 60, - .types = { TYPE_BUG, TYPE_ELECTRIC}, - .catchRate = 75, - .expYield = 165, - .evYield_Speed = 2, + SAMUROTT_MISC_INFO, + .baseHP = 95, + .baseAttack = 100, + .baseDefense = 85, + .baseSpeed = 70, + .baseSpAttack = 108, + .baseSpDefense = 70, + .types = { TYPE_WATER, TYPE_WATER}, + .evYield_SpAttack = 3, + .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_SHELL_ARMOR}, + .weight = 946, + .description = COMPOUND_STRING( + "One swing of the seamitars attached\n" + "to its armor can fell an opponent.\n" + "A simple glare from one of them is\n" + "enough to intimidate most enemies."), + FRONT_PIC(Samurott, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Samurott, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(Samurott, 64, 56), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, + PALETTE(Samurott), + ICON(Samurott, 2), + LEARNSETS(Samurott), + }, + +#if P_HISUIAN_FORMS + [SPECIES_SAMUROTT_HISUIAN] = + { + SAMUROTT_MISC_INFO, + .baseHP = 90, + .baseAttack = 108, + .baseDefense = 80, + .baseSpeed = 85, + .baseSpAttack = 100, + .baseSpDefense = 65, + .types = { TYPE_WATER, TYPE_DARK}, + .evYield_Attack = 3, + .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_SHARPNESS}, + .weight = 582, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(SamurottHisuian, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_SamurottHisuian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(SamurottHisuian, 64, 64), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(SamurottHisuian), + ICON(SamurottHisuian, 0), + LEARNSETS(SamurottHisuian), + .isHisuianForm = TRUE, + }, +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_OSHAWOTT + +#if P_FAMILY_PATRAT + [SPECIES_PATRAT] = + { + .baseHP = 45, + .baseAttack = 55, + .baseDefense = 39, + .baseSpeed = 42, + .baseSpAttack = 35, + .baseSpDefense = 39, + .types = { TYPE_NORMAL, TYPE_NORMAL}, + .catchRate = 255, + .expYield = 51, + .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_COMPOUND_EYES, ABILITY_UNNERVE, ABILITY_SWARM}, - .bodyColor = BODY_COLOR_YELLOW, + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_RUN_AWAY, ABILITY_KEEN_EYE, ABILITY_ANALYTIC}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .speciesName = _("Patrat"), + .cryId = CRY_PATRAT, + .natDexNum = NATIONAL_DEX_PATRAT, + .categoryName = _("Scout"), + .height = 5, + .weight = 116, + .description = COMPOUND_STRING( + "Extremely cautious, they take shifts to\n" + "maintain a constant watch of their nest.\n" + "Using food stored in cheek pouches,\n" + "they can keep watch for days."), + .pokemonScale = 432, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Patrat, 48, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Patrat, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Patrat, 64, 40), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Patrat), + ICON(Patrat, 2), + .footprint = gMonFootprint_Patrat, + LEARNSETS(Patrat), + .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_WATCHOG}), }, - [SPECIES_FERROSEED] = + [SPECIES_WATCHOG] = { - .baseHP = 44, - .baseAttack = 50, - .baseDefense = 91, - .baseSpeed = 10, - .baseSpAttack = 24, - .baseSpDefense = 86, - .types = { TYPE_GRASS, TYPE_STEEL}, + .baseHP = 60, + .baseAttack = 85, + .baseDefense = 69, + .baseSpeed = 77, + .baseSpAttack = 60, + .baseSpDefense = 69, + .types = { TYPE_NORMAL, TYPE_NORMAL}, .catchRate = 255, - .expYield = 61, - .evYield_Defense = 1, - .itemRare = ITEM_STICKY_BARB, + .expYield = 147, + .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_IRON_BARBS, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GRAY, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_ILLUMINATE, ABILITY_KEEN_EYE, ABILITY_ANALYTIC}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .speciesName = _("Watchog"), + .cryId = CRY_WATCHOG, + .natDexNum = NATIONAL_DEX_WATCHOG, + .categoryName = _("Lookout"), + .height = 11, + .weight = 270, + .description = COMPOUND_STRING( + "Using luminescent matter, it makes its\n" + "eyes and body glow and stuns attacking\n" + "opponents. Keen eyesight lets them see\n" + "in the dark."), + .pokemonScale = 320, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Watchog, 32, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Watchog, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Watchog, 56, 64), + .backPicYOffset = 2, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Watchog), + ICON(Watchog, 2), + .footprint = gMonFootprint_Watchog, + LEARNSETS(Watchog), + }, +#endif //P_FAMILY_PATRAT + +#if P_FAMILY_LILLIPUP + [SPECIES_LILLIPUP] = + { + .baseHP = 45, + .baseAttack = 60, + .baseDefense = 45, + .baseSpeed = 55, + .baseSpAttack = 25, + .baseSpDefense = 45, + .types = { TYPE_NORMAL, TYPE_NORMAL}, + .catchRate = 255, + .expYield = 55, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_VITAL_SPIRIT, ABILITY_PICKUP, ABILITY_RUN_AWAY}, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + .speciesName = _("Lillipup"), + .cryId = CRY_LILLIPUP, + .natDexNum = NATIONAL_DEX_LILLIPUP, + .categoryName = _("Puppy"), + .height = 4, + .weight = 41, + .description = COMPOUND_STRING( + "It faces strong opponents with great\n" + "courage. Because it doesn't yelp, it's\n" + "extremely popular with Trainers who live\n" + "in apartment buildings."), + .pokemonScale = 491, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Lillipup, 32, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Lillipup, + .frontAnimId = ANIM_H_JUMPS, + BACK_PIC(Lillipup, 48, 48), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Lillipup), + ICON(Lillipup, 2), + .footprint = gMonFootprint_Lillipup, + LEARNSETS(Lillipup), + .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_HERDIER}), }, - [SPECIES_FERROTHORN] = + [SPECIES_HERDIER] = { - .baseHP = 74, - .baseAttack = 94, - .baseDefense = 131, - .baseSpeed = 20, - .baseSpAttack = 54, - .baseSpDefense = 116, - .types = { TYPE_GRASS, TYPE_STEEL}, - .catchRate = 90, - .expYield = 171, - .evYield_Defense = 2, - .itemRare = ITEM_STICKY_BARB, + .baseHP = 65, + .baseAttack = 80, + .baseDefense = 65, + .baseSpeed = 60, + .baseSpAttack = 35, + .baseSpDefense = 65, + .types = { TYPE_NORMAL, TYPE_NORMAL}, + .catchRate = 120, + .expYield = 130, + .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_IRON_BARBS, ABILITY_NONE, ABILITY_ANTICIPATION}, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_INTIMIDATE, ABILITY_SAND_RUSH, ABILITY_SCRAPPY}, .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, + .speciesName = _("Herdier"), + .cryId = CRY_HERDIER, + .natDexNum = NATIONAL_DEX_HERDIER, + .categoryName = _("Loyal Dog"), + .height = 9, + .weight = 147, + .description = COMPOUND_STRING( + "Its dense black fur grows continuously.\n" + "The high cost of keeping its hard fur\n" + "properly groomed makes this a\n" + "troublesome Pokémon to train."), + .pokemonScale = 338, + .pokemonOffset = 9, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Herdier, 48, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Herdier, + .frontAnimId = ANIM_H_STRETCH, + BACK_PIC(Herdier, 48, 56), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_H_SHAKE, + PALETTE(Herdier), + ICON(Herdier, 2), + .footprint = gMonFootprint_Herdier, + LEARNSETS(Herdier), + .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_STOUTLAND}), }, - [SPECIES_KLINK] = + [SPECIES_STOUTLAND] = { - .baseHP = 40, - .baseAttack = 55, - .baseDefense = 70, - .baseSpeed = 30, + .baseHP = 85, + .baseAttack = P_UPDATED_STATS >= GEN_6 ? 110 : 100, + .baseDefense = 90, + .baseSpeed = 80, .baseSpAttack = 45, - .baseSpDefense = 60, - .types = { TYPE_STEEL, TYPE_STEEL}, - .catchRate = 130, - .expYield = 60, - .evYield_Defense = 1, - .genderRatio = MON_GENDERLESS, - .eggCycles = 20, + .baseSpDefense = 90, + .types = { TYPE_NORMAL, TYPE_NORMAL}, + .catchRate = 45, + .expYield = 225, + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_PLUS, ABILITY_MINUS, ABILITY_CLEAR_BODY}, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_INTIMIDATE, ABILITY_SAND_RUSH, ABILITY_SCRAPPY}, .bodyColor = BODY_COLOR_GRAY, - .noFlip = TRUE, - }, - - [SPECIES_KLANG] = + .noFlip = FALSE, + .speciesName = _("Stoutland"), + .cryId = CRY_STOUTLAND, + .natDexNum = NATIONAL_DEX_STOUTLAND, + .categoryName = _("Big-Hearted"), + .height = 12, + .weight = 610, + .description = COMPOUND_STRING( + "Intelligent, good-natured, and valiant,\n" + "there could be no concern that it would\n" + "ever attack people. Some parents even\n" + "trust it to babysit."), + .pokemonScale = 282, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Stoutland, 64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Stoutland, + .frontAnimId = ANIM_H_SLIDE, + BACK_PIC(Stoutland, 64, 64), + .backPicYOffset = 2, + .backAnimId = BACK_ANIM_V_STRETCH, + PALETTE(Stoutland), + ICON(Stoutland, 2), + .footprint = gMonFootprint_Stoutland, + LEARNSETS(Stoutland), + }, +#endif //P_FAMILY_LILLIPUP + +#if P_FAMILY_PURRLOIN + [SPECIES_PURRLOIN] = { - .baseHP = 60, - .baseAttack = 80, - .baseDefense = 95, - .baseSpeed = 50, - .baseSpAttack = 70, - .baseSpDefense = 85, - .types = { TYPE_STEEL, TYPE_STEEL}, - .catchRate = 60, - .expYield = 154, - .evYield_Defense = 2, - .genderRatio = MON_GENDERLESS, + .baseHP = 41, + .baseAttack = 50, + .baseDefense = 37, + .baseSpeed = 66, + .baseSpAttack = 50, + .baseSpDefense = 37, + .types = { TYPE_DARK, TYPE_DARK}, + .catchRate = 255, + .expYield = 56, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_PLUS, ABILITY_MINUS, ABILITY_CLEAR_BODY}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = TRUE, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_LIMBER, ABILITY_UNBURDEN, ABILITY_PRANKSTER}, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + .speciesName = _("Purrloin"), + .cryId = CRY_PURRLOIN, + .natDexNum = NATIONAL_DEX_PURRLOIN, + .categoryName = _("Devious"), + .height = 4, + .weight = 101, + .description = COMPOUND_STRING( + "Their deceptively cute act is the\n" + "perfect ruse. They steal from people for\n" + "fun, but their victims can't help but\n" + "forgive them."), + .pokemonScale = 491, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Purrloin, 48, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Purrloin, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Purrloin, 56, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_V_STRETCH, + PALETTE(Purrloin), + ICON(Purrloin, 0), + .footprint = gMonFootprint_Purrloin, + LEARNSETS(Purrloin), + .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_LIEPARD}), }, - [SPECIES_KLINKLANG] = + [SPECIES_LIEPARD] = { - .baseHP = 60, - .baseAttack = 100, - .baseDefense = 115, - .baseSpeed = 90, - .baseSpAttack = 70, - .baseSpDefense = 85, - .types = { TYPE_STEEL, TYPE_STEEL}, - .catchRate = 30, - .expYield = 234, - .evYield_Defense = 3, - .genderRatio = MON_GENDERLESS, + .baseHP = 64, + .baseAttack = 88, + .baseDefense = 50, + .baseSpeed = 106, + .baseSpAttack = 88, + .baseSpDefense = 50, + .types = { TYPE_DARK, TYPE_DARK}, + .catchRate = 90, + .expYield = 156, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_PLUS, ABILITY_MINUS, ABILITY_CLEAR_BODY}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = TRUE, - }, - - [SPECIES_TYNAMO] = + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_LIMBER, ABILITY_UNBURDEN, ABILITY_PRANKSTER}, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + .speciesName = _("Liepard"), + .cryId = CRY_LIEPARD, + .natDexNum = NATIONAL_DEX_LIEPARD, + .categoryName = _("Cruel"), + .height = 11, + .weight = 375, + .description = COMPOUND_STRING( + "Many Trainers are drawn to their\n" + "beautiful form and fur. These Pokémon\n" + "vanish and appear unexpectedly.\n" + "They run silently in the night."), + .pokemonScale = 320, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Liepard, 64, 64), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Liepard, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Liepard, 56, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_H_STRETCH, + PALETTE(Liepard), + ICON(Liepard, 0), + .footprint = gMonFootprint_Liepard, + LEARNSETS(Liepard), + }, +#endif //P_FAMILY_PURRLOIN + +#if P_FAMILY_PANSAGE + [SPECIES_PANSAGE] = { - .baseHP = 35, - .baseAttack = 55, - .baseDefense = 40, - .baseSpeed = 60, - .baseSpAttack = 45, - .baseSpDefense = 40, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, + .baseHP = 50, + .baseAttack = 53, + .baseDefense = 48, + .baseSpeed = 64, + .baseSpAttack = 53, + .baseSpDefense = 48, + .types = { TYPE_GRASS, TYPE_GRASS}, .catchRate = 190, - .expYield = 55, + .expYield = 63, .evYield_Speed = 1, - .genderRatio = PERCENT_FEMALE(50), + .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_WHITE, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_GLUTTONY, ABILITY_NONE, ABILITY_OVERGROW}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, + .speciesName = _("Pansage"), + .cryId = CRY_PANSAGE, + .natDexNum = NATIONAL_DEX_PANSAGE, + .categoryName = _("Grass Monkey"), + .height = 6, + .weight = 105, + .description = COMPOUND_STRING( + "This Pokémon dwells deep in the forest.\n" + "It's good at finding berries and gathers\n" + "them from all over. It's kind enough to\n" + "share them with friends."), + .pokemonScale = 422, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Pansage, 40, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Pansage, + .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, + BACK_PIC(Pansage, 48, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, + PALETTE(Pansage), + ICON(Pansage, 1), + .footprint = gMonFootprint_Pansage, + LEARNSETS(Pansage), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_LEAF_STONE, SPECIES_SIMISAGE}), }, - [SPECIES_EELEKTRIK] = + [SPECIES_SIMISAGE] = { - .baseHP = 65, - .baseAttack = 85, - .baseDefense = 70, - .baseSpeed = 40, - .baseSpAttack = 75, - .baseSpDefense = 70, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, - .catchRate = 60, - .expYield = 142, - .evYield_Attack = 2, - .genderRatio = PERCENT_FEMALE(50), + .baseHP = 75, + .baseAttack = 98, + .baseDefense = 63, + .baseSpeed = 101, + .baseSpAttack = 98, + .baseSpDefense = 63, + .types = { TYPE_GRASS, TYPE_GRASS}, + .catchRate = 75, + .expYield = 174, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_GLUTTONY, ABILITY_NONE, ABILITY_OVERGROW}, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + .speciesName = _("Simisage"), + .cryId = CRY_SIMISAGE, + .natDexNum = NATIONAL_DEX_SIMISAGE, + .categoryName = _("Thorn Monkey"), + .height = 11, + .weight = 305, + .description = COMPOUND_STRING( + "Ill tempered, it attacks enemies by\n" + "swinging its barbed tail around wildly.\n" + "The leaf growing on its head is\n" + "very bitter."), + .pokemonScale = 320, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Simisage, 64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Simisage, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Simisage, 56, 64), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, + PALETTE(Simisage), + ICON(Simisage, 1), + .footprint = gMonFootprint_Simisage, + LEARNSETS(Simisage), + }, +#endif //P_FAMILY_PANSAGE + +#if P_FAMILY_PANSEAR + [SPECIES_PANSEAR] = + { + .baseHP = 50, + .baseAttack = 53, + .baseDefense = 48, + .baseSpeed = 64, + .baseSpAttack = 53, + .baseSpDefense = 48, + .types = { TYPE_FIRE, TYPE_FIRE}, + .catchRate = 190, + .expYield = 63, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_GLUTTONY, ABILITY_NONE, ABILITY_BLAZE}, + .bodyColor = BODY_COLOR_RED, + .noFlip = TRUE, + .speciesName = _("Pansear"), + .cryId = CRY_PANSEAR, + .natDexNum = NATIONAL_DEX_PANSEAR, + .categoryName = _("High Temp"), + .height = 6, + .weight = 110, + .description = COMPOUND_STRING( + "The fire within the tuft on its head can\n" + "reach up to 600ºF. Very intelligent,\n" + "it roasts berries before eating them.\n" + "It likes to help people."), + .pokemonScale = 422, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Pansear, 48, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Pansear, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Pansear, 48, 56), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, + PALETTE(Pansear), + ICON(Pansear, 2), + .footprint = gMonFootprint_Pansear, + LEARNSETS(Pansear), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_FIRE_STONE, SPECIES_SIMISEAR}), }, - [SPECIES_EELEKTROSS] = + [SPECIES_SIMISEAR] = { - .baseHP = 85, - .baseAttack = 115, - .baseDefense = 80, - .baseSpeed = 50, - .baseSpAttack = 105, - .baseSpDefense = 80, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, - .catchRate = 30, - .expYield = 232, - .evYield_Attack = 3, - .genderRatio = PERCENT_FEMALE(50), + .baseHP = 75, + .baseAttack = 98, + .baseDefense = 63, + .baseSpeed = 101, + .baseSpAttack = 98, + .baseSpDefense = 63, + .types = { TYPE_FIRE, TYPE_FIRE}, + .catchRate = 75, + .expYield = 174, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_ELGYEM] = + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_GLUTTONY, ABILITY_NONE, ABILITY_BLAZE}, + .bodyColor = BODY_COLOR_RED, + .noFlip = TRUE, + .speciesName = _("Simisear"), + .cryId = CRY_SIMISEAR, + .natDexNum = NATIONAL_DEX_SIMISEAR, + .categoryName = _("Ember"), + .height = 10, + .weight = 280, + .description = COMPOUND_STRING( + "It loves sweets because they become\n" + "energy for the fire burning inside its\n" + "body. It scatters embers from its head\n" + "and tail to sear its opponents."), + .pokemonScale = 305, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Simisear, 56, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Simisear, + .frontAnimId = ANIM_SWING_CONCAVE_FAST, + BACK_PIC(Simisear, 64, 56), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, + PALETTE(Simisear), + ICON(Simisear, 2), + .footprint = gMonFootprint_Simisear, + LEARNSETS(Simisear), + }, +#endif //P_FAMILY_PANSEAR + +#if P_FAMILY_PANPOUR + [SPECIES_PANPOUR] = { - .baseHP = 55, - .baseAttack = 55, - .baseDefense = 55, - .baseSpeed = 30, - .baseSpAttack = 85, - .baseSpDefense = 55, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - .catchRate = 255, - .expYield = 67, - .evYield_SpAttack = 1, - .genderRatio = PERCENT_FEMALE(50), + .baseHP = 50, + .baseAttack = 53, + .baseDefense = 48, + .baseSpeed = 64, + .baseSpAttack = 53, + .baseSpDefense = 48, + .types = { TYPE_WATER, TYPE_WATER}, + .catchRate = 190, + .expYield = 63, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_TELEPATHY, ABILITY_SYNCHRONIZE, ABILITY_ANALYTIC}, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_GLUTTONY, ABILITY_NONE, ABILITY_TORRENT}, .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Panpour"), + .cryId = CRY_PANPOUR, + .natDexNum = NATIONAL_DEX_PANPOUR, + .categoryName = _("Spray"), + .height = 6, + .weight = 135, + .description = COMPOUND_STRING( + "The water stored inside the tuft of its\n" + "head is rich in nutrients. It waters\n" + "plants using its tail, plants that\n" + "receive its water grow large."), + .pokemonScale = 422, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Panpour, 48, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Panpour, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Panpour, 48, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, + PALETTE(Panpour), + ICON(Panpour, 2), + .footprint = gMonFootprint_Panpour, + LEARNSETS(Panpour), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_WATER_STONE, SPECIES_SIMIPOUR}), }, - [SPECIES_BEHEEYEM] = + [SPECIES_SIMIPOUR] = { .baseHP = 75, - .baseAttack = 75, - .baseDefense = 75, - .baseSpeed = 40, - .baseSpAttack = 125, - .baseSpDefense = 95, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - .catchRate = 90, - .expYield = 170, - .evYield_SpAttack = 2, - .genderRatio = PERCENT_FEMALE(50), + .baseAttack = 98, + .baseDefense = 63, + .baseSpeed = 101, + .baseSpAttack = 98, + .baseSpDefense = 63, + .types = { TYPE_WATER, TYPE_WATER}, + .catchRate = 75, + .expYield = 174, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_TELEPATHY, ABILITY_SYNCHRONIZE, ABILITY_ANALYTIC}, - .bodyColor = BODY_COLOR_BROWN, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_GLUTTONY, ABILITY_NONE, ABILITY_TORRENT}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - }, - - [SPECIES_LITWICK] = + .speciesName = _("Simipour"), + .cryId = CRY_SIMIPOUR, + .natDexNum = NATIONAL_DEX_SIMIPOUR, + .categoryName = _("Geyser"), + .height = 10, + .weight = 290, + .description = COMPOUND_STRING( + "It can shoot highly-pressurised water\n" + "from its tail with enough power to\n" + "break through a solid concrete wall.\n" + "It prefers places with clean water."), + .pokemonScale = 305, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Simipour, 56, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Simipour, + .frontAnimId = ANIM_H_STRETCH, + BACK_PIC(Simipour, 64, 56), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, + PALETTE(Simipour), + ICON(Simipour, 2), + .footprint = gMonFootprint_Simipour, + LEARNSETS(Simipour), + }, +#endif //P_FAMILY_PANPOUR + +#if P_FAMILY_MUNNA + [SPECIES_MUNNA] = { - .baseHP = 50, - .baseAttack = 30, - .baseDefense = 55, - .baseSpeed = 20, - .baseSpAttack = 65, + .baseHP = 76, + .baseAttack = 25, + .baseDefense = 45, + .baseSpeed = 24, + .baseSpAttack = 67, .baseSpDefense = 55, - .types = { TYPE_GHOST, TYPE_FIRE}, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, .catchRate = 190, - .expYield = 55, - .evYield_SpAttack = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - #if P_UPDATED_ABILITIES >= GEN_6 - .abilities = {ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY, ABILITY_INFILTRATOR}, - #else - .abilities = {ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY, ABILITY_SHADOW_TAG}, - #endif - .bodyColor = BODY_COLOR_WHITE, - .noFlip = TRUE, - }, - - [SPECIES_LAMPENT] = - { - .baseHP = 60, - .baseAttack = 40, - .baseDefense = 60, - .baseSpeed = 55, - .baseSpAttack = 95, - .baseSpDefense = 60, - .types = { TYPE_GHOST, TYPE_FIRE}, - .catchRate = 90, - .expYield = 130, - .evYield_SpAttack = 2, + .expYield = 58, + .evYield_HP = 1, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .eggCycles = 10, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - #if P_UPDATED_ABILITIES >= GEN_6 - .abilities = {ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY, ABILITY_INFILTRATOR}, - #else - .abilities = {ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY, ABILITY_SHADOW_TAG}, - #endif - .bodyColor = BODY_COLOR_BLACK, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_FOREWARN, ABILITY_SYNCHRONIZE, ABILITY_TELEPATHY}, + .bodyColor = BODY_COLOR_PINK, .noFlip = FALSE, + .speciesName = _("Munna"), + .cryId = CRY_MUNNA, + .natDexNum = NATIONAL_DEX_MUNNA, + .categoryName = _("Dream Eater"), + .height = 6, + .weight = 233, + .description = COMPOUND_STRING( + "This Pokémon appears before people\n" + "and Pokémon who are having nightmares\n" + "and eats those dreams. Munna always\n" + "float in the air. "), + .pokemonScale = 422, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Munna, 32, 32), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Munna, + .frontAnimId = ANIM_RISING_WOBBLE, + .enemyMonElevation = 7, + BACK_PIC(Munna, 48, 32), + .backPicYOffset = 16, + .backAnimId = BACK_ANIM_SHRINK_GROW, + PALETTE(Munna), + ICON(Munna, 0), + .footprint = gMonFootprint_Munna, + LEARNSETS(Munna), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_MOON_STONE, SPECIES_MUSHARNA}), }, - [SPECIES_CHANDELURE] = + [SPECIES_MUSHARNA] = { - .baseHP = 60, + .baseHP = 116, .baseAttack = 55, - .baseDefense = 90, - .baseSpeed = 80, - .baseSpAttack = 145, - .baseSpDefense = 90, - .types = { TYPE_GHOST, TYPE_FIRE}, - .catchRate = 45, - .expYield = 234, - .evYield_SpAttack = 3, + .baseDefense = 85, + .baseSpeed = 29, + .baseSpAttack = 107, + .baseSpDefense = 95, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, + .catchRate = 75, + .expYield = 170, + .evYield_HP = 2, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .eggCycles = 10, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - #if P_UPDATED_ABILITIES >= GEN_6 - .abilities = {ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY, ABILITY_INFILTRATOR}, - #else - .abilities = {ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY, ABILITY_SHADOW_TAG}, - #endif - .bodyColor = BODY_COLOR_BLACK, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_FOREWARN, ABILITY_SYNCHRONIZE, ABILITY_TELEPATHY}, + .bodyColor = BODY_COLOR_PINK, .noFlip = FALSE, - }, - - [SPECIES_AXEW] = + .speciesName = _("Musharna"), + .cryId = CRY_MUSHARNA, + .natDexNum = NATIONAL_DEX_MUSHARNA, + .categoryName = _("Drowsing"), + .height = 11, + .weight = 605, + .description = COMPOUND_STRING( + "The mist emanating from their foreheads\n" + "is packed with the dreams of people and\n" + "Pokémon. It changes into different colors\n" + "depending on the dream that was eaten."), + .pokemonScale = 320, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Musharna, 64, 64), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Musharna, + .frontAnimId = ANIM_ROTATE_TO_SIDES_TWICE, + .enemyMonElevation = 5, + BACK_PIC(Musharna, 64, 64), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_GROW, + PALETTE(Musharna), + ICON(Musharna, 0), + .footprint = gMonFootprint_Musharna, + LEARNSETS(Musharna), + }, +#endif //P_FAMILY_MUNNA + +#if P_FAMILY_PIDOVE + [SPECIES_PIDOVE] = { - .baseHP = 46, - .baseAttack = 87, - .baseDefense = 60, - .baseSpeed = 57, - .baseSpAttack = 30, - .baseSpDefense = 40, - .types = { TYPE_DRAGON, TYPE_DRAGON}, - .catchRate = 75, - .expYield = 64, + .baseHP = 50, + .baseAttack = 55, + .baseDefense = 50, + .baseSpeed = 43, + .baseSpAttack = 36, + .baseSpDefense = 30, + .types = { TYPE_NORMAL, TYPE_FLYING}, + .catchRate = 255, + .expYield = 53, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 40, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_RIVALRY, ABILITY_MOLD_BREAKER, ABILITY_UNNERVE}, - .bodyColor = BODY_COLOR_GREEN, + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + .abilities = {ABILITY_BIG_PECKS, ABILITY_SUPER_LUCK, ABILITY_RIVALRY}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, + .speciesName = _("Pidove"), + .cryId = CRY_PIDOVE, + .natDexNum = NATIONAL_DEX_PIDOVE, + .categoryName = _("Tiny Pigeon"), + .height = 3, + .weight = 21, + .description = COMPOUND_STRING( + "This very forgetful Pokémon will wait for\n" + "a new order from its Trainer even though\n" + "it already has one. Flocks often gather\n" + "in parks and plazas."), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Pidove, 40, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Pidove, + .frontAnimId = ANIM_V_JUMPS_SMALL, + BACK_PIC(Pidove, 48, 40), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Pidove), + ICON(Pidove, 0), + .footprint = gMonFootprint_Pidove, + LEARNSETS(Pidove), + .evolutions = EVOLUTION({EVO_LEVEL, 21, SPECIES_TRANQUILL}), }, - [SPECIES_FRAXURE] = + [SPECIES_TRANQUILL] = { - .baseHP = 66, - .baseAttack = 117, - .baseDefense = 70, - .baseSpeed = 67, - .baseSpAttack = 40, - .baseSpDefense = 50, - .types = { TYPE_DRAGON, TYPE_DRAGON}, - .catchRate = 60, - .expYield = 144, + .baseHP = 62, + .baseAttack = 77, + .baseDefense = 62, + .baseSpeed = 65, + .baseSpAttack = 50, + .baseSpDefense = 42, + .types = { TYPE_NORMAL, TYPE_FLYING}, + .catchRate = 120, + .expYield = 125, .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 40, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_RIVALRY, ABILITY_MOLD_BREAKER, ABILITY_UNNERVE}, - .bodyColor = BODY_COLOR_GREEN, + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + .abilities = {ABILITY_BIG_PECKS, ABILITY_SUPER_LUCK, ABILITY_RIVALRY}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, + .speciesName = _("Tranquill"), + .cryId = CRY_TRANQUILL, + .natDexNum = NATIONAL_DEX_TRANQUILL, + .categoryName = _("Wild Pigeon"), + .height = 6, + .weight = 150, + .description = COMPOUND_STRING( + "No matter where in the world it goes,\n" + "it knows where its nest is, so it can\n" + "always return to its Trainer's location\n" + "regardless of the distance."), + .pokemonScale = 422, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Tranquill, 40, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Tranquill, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Tranquill, 56, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Tranquill), + ICON(Tranquill, 0), + .footprint = gMonFootprint_Tranquill, + LEARNSETS(Tranquill), + .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_UNFEZANT}), }, - [SPECIES_HAXORUS] = + [SPECIES_UNFEZANT] = { - .baseHP = 76, - .baseAttack = 147, - .baseDefense = 90, - .baseSpeed = 97, - .baseSpAttack = 60, - .baseSpDefense = 70, - .types = { TYPE_DRAGON, TYPE_DRAGON}, + .baseHP = 80, + .baseAttack = P_UPDATED_STATS >= GEN_6 ? 115 : 105, + .baseDefense = 80, + .baseSpeed = 93, + .baseSpAttack = 65, + .baseSpDefense = 55, + .types = { TYPE_NORMAL, TYPE_FLYING}, .catchRate = 45, - .expYield = 243, + .expYield = 220, .evYield_Attack = 3, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 40, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_RIVALRY, ABILITY_MOLD_BREAKER, ABILITY_UNNERVE}, - .bodyColor = BODY_COLOR_YELLOW, + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + .abilities = {ABILITY_BIG_PECKS, ABILITY_SUPER_LUCK, ABILITY_RIVALRY}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, - }, - - [SPECIES_CUBCHOO] = + .speciesName = _("Unfezant"), + .cryId = CRY_UNFEZANT, + .natDexNum = NATIONAL_DEX_UNFEZANT, + .categoryName = _("Proud"), + .height = 12, + .weight = 290, + .description = COMPOUND_STRING( + "Males have plumage on their heads.\n" + "The females' flying abilities surpass\n" + "those of the males. They will only let\n" + "themselves feel close to their Trainers."), + .pokemonScale = 282, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Unfezant, 56, 64), + FRONT_PIC_FEMALE(Unfezant, 56, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Unfezant, + .frontAnimId = ANIM_SHRINK_GROW, + BACK_PIC(Unfezant, 64, 64), + BACK_PIC_FEMALE(Unfezant, 64, 64), + .backPicYOffset = 1, + .backAnimId = BACK_ANIM_V_STRETCH, + .palette = gMonPalette_Unfezant, + .paletteFemale = gMonPalette_UnfezantF, + .shinyPalette = gMonShinyPalette_Unfezant, + .shinyPaletteFemale = gMonShinyPalette_UnfezantF, + ICON(Unfezant, 1), + .iconSpriteFemale = gMonIcon_UnfezantF, + .iconPalIndexFemale = 1, + .footprint = gMonFootprint_Unfezant, + LEARNSETS(Unfezant), + }, +#endif //P_FAMILY_PIDOVE + +#if P_FAMILY_BLITZLE + [SPECIES_BLITZLE] = { - .baseHP = 55, - .baseAttack = 70, - .baseDefense = 40, - .baseSpeed = 40, - .baseSpAttack = 60, - .baseSpDefense = 40, - .types = { TYPE_ICE, TYPE_ICE}, - .catchRate = 120, - .expYield = 61, - .evYield_Attack = 1, + .baseHP = 45, + .baseAttack = 60, + .baseDefense = 32, + .baseSpeed = 76, + .baseSpAttack = 50, + .baseSpDefense = 32, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, + .catchRate = 190, + .expYield = 59, + .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SNOW_CLOAK, ABILITY_SLUSH_RUSH, ABILITY_RATTLED}, - .bodyColor = BODY_COLOR_WHITE, + .abilities = {ABILITY_LIGHTNING_ROD, ABILITY_MOTOR_DRIVE, ABILITY_SAP_SIPPER}, + .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, + .speciesName = _("Blitzle"), + .cryId = CRY_BLITZLE, + .natDexNum = NATIONAL_DEX_BLITZLE, + .categoryName = _("Electrified"), + .height = 8, + .weight = 298, + .description = COMPOUND_STRING( + "Its mane shines when it discharges\n" + "electricity. They use the frequency and\n" + "rhythm of these flashes to communicate\n" + "with one another."), + .pokemonScale = 366, + .pokemonOffset = 8, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Blitzle, 40, 56), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Blitzle, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Blitzle, 56, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Blitzle), + ICON(Blitzle, 2), + .footprint = gMonFootprint_Blitzle, + LEARNSETS(Blitzle), + .evolutions = EVOLUTION({EVO_LEVEL, 27, SPECIES_ZEBSTRIKA}), }, - [SPECIES_BEARTIC] = + [SPECIES_ZEBSTRIKA] = { - .baseHP = 95, - .baseDefense = 80, - .baseSpeed = 50, - .baseSpAttack = 70, - .baseSpDefense = 80, - #if P_UPDATED_STATS >= GEN_7 - .baseAttack = 130, - #else - .baseAttack = 110, - #endif - .types = { TYPE_ICE, TYPE_ICE}, - .catchRate = 60, - .expYield = 177, - .evYield_Attack = 2, + .baseHP = 75, + .baseAttack = 100, + .baseDefense = 63, + .baseSpeed = 116, + .baseSpAttack = 80, + .baseSpDefense = 63, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, + .catchRate = 75, + .expYield = 174, + .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SNOW_CLOAK, ABILITY_SLUSH_RUSH, ABILITY_SWIFT_SWIM}, - .bodyColor = BODY_COLOR_WHITE, + .abilities = {ABILITY_LIGHTNING_ROD, ABILITY_MOTOR_DRIVE, ABILITY_SAP_SIPPER}, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + .speciesName = _("Zebstrika"), + .cryId = CRY_ZEBSTRIKA, + .natDexNum = NATIONAL_DEX_ZEBSTRIKA, + .categoryName = _("Thunderbolt"), + .height = 16, + .weight = 795, + .description = COMPOUND_STRING( + "When Zebstrika run at full speed, the\n" + "sound of thunder reverberates. It is\n" + "dangerous when it's angry as it shoots\n" + "lightning from its mane in all directions."), + .pokemonScale = 259, + .pokemonOffset = 1, + .trainerScale = 296, + .trainerOffset = 1, + FRONT_PIC(Zebstrika, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Zebstrika, + .frontAnimId = ANIM_BACK_AND_LUNGE, + BACK_PIC(Zebstrika, 64, 64), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, + PALETTE(Zebstrika), + ICON(Zebstrika, 2), + .footprint = gMonFootprint_Zebstrika, + LEARNSETS(Zebstrika), + }, +#endif //P_FAMILY_BLITZLE + +#if P_FAMILY_ROGGENROLA + [SPECIES_ROGGENROLA] = + { + .baseHP = 55, + .baseAttack = 75, + .baseDefense = 85, + .baseSpeed = 15, + .baseSpAttack = 25, + .baseSpDefense = 25, + .types = { TYPE_ROCK, TYPE_ROCK}, + .catchRate = 255, + .expYield = 56, + .evYield_Defense = 1, + .itemCommon = ITEM_EVERSTONE, + .itemRare = ITEM_HARD_STONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_STURDY, ABILITY_WEAK_ARMOR, ABILITY_SAND_FORCE}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Roggenrola"), + .cryId = CRY_ROGGENROLA, + .natDexNum = NATIONAL_DEX_ROGGENROLA, + .categoryName = _("Mantle"), + .height = 4, + .weight = 180, + .description = COMPOUND_STRING( + "The hexagonal cavity is its ear.\n" + "It walks in the direction of sounds it\n" + "hears, but if the sounds cease, it panics\n" + "and topples over."), + .pokemonScale = 491, + .pokemonOffset = 16, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Roggenrola, 24, 40), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Roggenrola, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Roggenrola, 40, 48), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Roggenrola), + ICON(Roggenrola, 2), + .footprint = gMonFootprint_Roggenrola, + LEARNSETS(Roggenrola), + .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_BOLDORE}), }, - [SPECIES_CRYOGONAL] = + [SPECIES_BOLDORE] = { - .baseAttack = 50, - .baseSpeed = 105, - .baseSpAttack = 95, - .baseSpDefense = 135, - #if P_UPDATED_STATS >= GEN_7 - .baseHP = 80, - .baseDefense = 50, - #else - .baseHP = 70, - .baseDefense = 30, - #endif - .types = { TYPE_ICE, TYPE_ICE}, - .catchRate = 25, - .expYield = 180, - .evYield_SpDefense = 2, - .itemRare = ITEM_NEVER_MELT_ICE, - .genderRatio = MON_GENDERLESS, - .eggCycles = 25, + .baseHP = 70, + .baseAttack = 105, + .baseDefense = 105, + .baseSpeed = 20, + .baseSpAttack = 50, + .baseSpDefense = 40, + .types = { TYPE_ROCK, TYPE_ROCK}, + .catchRate = 120, + .expYield = 137, + .evYield_Attack = 1, + .evYield_Defense = 1, + .itemCommon = ITEM_EVERSTONE, + .itemRare = ITEM_HARD_STONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, + .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, + .abilities = {ABILITY_STURDY, ABILITY_WEAK_ARMOR, ABILITY_SAND_FORCE}, .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Boldore"), + .cryId = CRY_BOLDORE, + .natDexNum = NATIONAL_DEX_BOLDORE, + .categoryName = _("Ore"), + .height = 9, + .weight = 1020, + .description = COMPOUND_STRING( + "Its orange crystal is a mass of energy.\n" + "Just one crystal fragment would provide\n" + "enough fuel for a hundred dump trucks.\n" + "When it is healthy, its core sticks out."), + .pokemonScale = 338, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Boldore, 56, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Boldore, + .frontAnimId = ANIM_H_SLIDE_SLOW, + BACK_PIC(Boldore, 64, 40), + .backPicYOffset = 16, + .backAnimId = BACK_ANIM_H_SHAKE, + PALETTE(Boldore), + ICON(Boldore, 0), + .footprint = gMonFootprint_Boldore, + LEARNSETS(Boldore), + .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_GIGALITH}, + {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_GIGALITH}), }, - [SPECIES_SHELMET] = + [SPECIES_GIGALITH] = { - .baseHP = 50, - .baseAttack = 40, - .baseDefense = 85, + .baseHP = 85, + .baseAttack = 135, + .baseDefense = 130, .baseSpeed = 25, - .baseSpAttack = 40, - .baseSpDefense = 65, - .types = { TYPE_BUG, TYPE_BUG}, - .catchRate = 200, - .expYield = 61, - .evYield_Defense = 1, + .baseSpAttack = 60, + .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 80 : 70, + .types = { TYPE_ROCK, TYPE_ROCK}, + .catchRate = 45, + .expYield = 232, + .evYield_Attack = 3, + .itemCommon = ITEM_EVERSTONE, + .itemRare = ITEM_HARD_STONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_STURDY, ABILITY_SAND_STREAM, ABILITY_SAND_FORCE}, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + .speciesName = _("Gigalith"), + .cryId = CRY_GIGALITH, + .natDexNum = NATIONAL_DEX_GIGALITH, + .categoryName = _("Compressed"), + .height = 17, + .weight = 2600, + .description = COMPOUND_STRING( + "The blasts of energy it makes from\n" + "sunbeams have terrifying power.\n" + "However, it's not able to fire its blasts\n" + "at night or on rainy days."), + .pokemonScale = 259, + .pokemonOffset = 0, + .trainerScale = 290, + .trainerOffset = 1, + FRONT_PIC(Gigalith, 64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Gigalith, + .frontAnimId = ANIM_ROTATE_UP_SLAM_DOWN, + BACK_PIC(Gigalith, 56, 64), + .backPicYOffset = 2, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(Gigalith), + ICON(Gigalith, 0), + .footprint = gMonFootprint_Gigalith, + LEARNSETS(Gigalith), + }, +#endif //P_FAMILY_ROGGENROLA + +#if P_FAMILY_WOOBAT + [SPECIES_WOOBAT] = + { + .baseHP = P_UPDATED_STATS >= GEN_7 ? 65 : 55, + .baseAttack = 45, + .baseDefense = 43, + .baseSpeed = 72, + .baseSpAttack = 55, + .baseSpDefense = 43, + .types = { TYPE_PSYCHIC, TYPE_FLYING}, + .catchRate = 190, + .expYield = 65, + .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_HYDRATION, ABILITY_SHELL_ARMOR, ABILITY_OVERCOAT}, - .bodyColor = BODY_COLOR_RED, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FLYING}, + .abilities = {ABILITY_UNAWARE, ABILITY_KLUTZ, ABILITY_SIMPLE}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Woobat"), + .cryId = CRY_WOOBAT, + .natDexNum = NATIONAL_DEX_WOOBAT, + .categoryName = _("Bat"), + .height = 4, + .weight = 21, + .description = COMPOUND_STRING( + "Its habitat is dark forests and caves.\n" + "Suction from its nostrils enables it\n" + "to stick to cave walls during sleep.\n" + "It leaves a heart-shaped mark behind."), + .pokemonScale = 491, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Woobat, 64, 32), + .frontPicYOffset = 16, + .frontAnimFrames = sAnims_Woobat, + .frontAnimId = ANIM_FOUR_PETAL, + .enemyMonElevation = 19, + BACK_PIC(Woobat, 64, 32), + .backPicYOffset = 16, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(Woobat), + ICON(Woobat, 0), + .footprint = gMonFootprint_Woobat, + LEARNSETS(Woobat), + .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_SWOOBAT}), }, - [SPECIES_ACCELGOR] = + [SPECIES_SWOOBAT] = { - .baseHP = 80, - .baseAttack = 70, - .baseDefense = 40, - .baseSpeed = 145, - .baseSpAttack = 100, - .baseSpDefense = 60, - .types = { TYPE_BUG, TYPE_BUG}, - .catchRate = 75, - .expYield = 173, + .baseHP = 67, + .baseAttack = 57, + .baseDefense = 55, + .baseSpeed = 114, + .baseSpAttack = 77, + .baseSpDefense = 55, + .types = { TYPE_PSYCHIC, TYPE_FLYING}, + .catchRate = 45, + .expYield = 149, .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FLYING}, + .abilities = {ABILITY_UNAWARE, ABILITY_KLUTZ, ABILITY_SIMPLE}, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + .speciesName = _("Swoobat"), + .cryId = CRY_SWOOBAT, + .natDexNum = NATIONAL_DEX_SWOOBAT, + .categoryName = _("Courting"), + .height = 9, + .weight = 105, + .description = COMPOUND_STRING( + "Anyone who comes into contact with\n" + "the ultrasonic waves emitted by a\n" + "courting male experiences a positive\n" + "mood shift."), + .pokemonScale = 338, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Swoobat, 64, 64), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Swoobat, + .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL, + .enemyMonElevation = 12, + BACK_PIC(Swoobat, 64, 64), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_V_STRETCH, + PALETTE(Swoobat), + ICON(Swoobat, 0), + .footprint = gMonFootprint_Swoobat, + LEARNSETS(Swoobat), + }, +#endif //P_FAMILY_WOOBAT + +#if P_FAMILY_DRILBUR + [SPECIES_DRILBUR] = + { + .baseHP = 60, + .baseAttack = 85, + .baseDefense = 40, + .baseSpeed = 68, + .baseSpAttack = 30, + .baseSpDefense = 45, + .types = { TYPE_GROUND, TYPE_GROUND}, + .catchRate = 120, + .expYield = 66, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_SAND_RUSH, ABILITY_SAND_FORCE, ABILITY_MOLD_BREAKER}, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = TRUE, + .speciesName = _("Drilbur"), + .cryId = CRY_DRILBUR, + .natDexNum = NATIONAL_DEX_DRILBUR, + .categoryName = _("Mole"), + .height = 3, + .weight = 85, + .description = COMPOUND_STRING( + "It can dig through the ground at a\n" + "speed of 30 mph by spinning its body.\n" + "It could give a car running aboveground\n" + "a good race."), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Drilbur, 48, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Drilbur, + .frontAnimId = ANIM_SWING_CONCAVE_FAST_SHORT, + BACK_PIC(Drilbur, 64, 40), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Drilbur), + ICON(Drilbur, 0), + .footprint = gMonFootprint_Drilbur, + LEARNSETS(Drilbur), + .evolutions = EVOLUTION({EVO_LEVEL, 31, SPECIES_EXCADRILL}), + }, + + [SPECIES_EXCADRILL] = + { + .baseHP = 110, + .baseAttack = 135, + .baseDefense = 60, + .baseSpeed = 88, + .baseSpAttack = 50, + .baseSpDefense = 65, + .types = { TYPE_GROUND, TYPE_STEEL}, + .catchRate = 60, + .expYield = 178, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_HYDRATION, ABILITY_STICKY_HOLD, ABILITY_UNBURDEN}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, - - [SPECIES_STUNFISK] = + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_SAND_RUSH, ABILITY_SAND_FORCE, ABILITY_MOLD_BREAKER}, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = TRUE, + .speciesName = _("Excadrill"), + .cryId = CRY_EXCADRILL, + .natDexNum = NATIONAL_DEX_EXCADRILL, + .categoryName = _("Subterrene"), + .height = 7, + .weight = 404, + .description = COMPOUND_STRING( + "More than 300 feet below the surface,\n" + "they build mazelike nests. Their activity\n" + "can be destructive to subway tunnels,\n" + "but it can also help with construction."), + .pokemonScale = 365, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Excadrill, 64, 64), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Excadrill, + .frontAnimId = ANIM_H_SHAKE, + BACK_PIC(Excadrill, 64, 64), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(Excadrill), + ICON(Excadrill, 0), + .footprint = gMonFootprint_Excadrill, + LEARNSETS(Excadrill), + }, +#endif //P_FAMILY_DRILBUR + +#define AUDINO_MISC_INFO \ + .catchRate = 255, \ + .evYield_HP = 2, \ + .itemCommon = ITEM_ORAN_BERRY, \ + .itemRare = ITEM_SITRUS_BERRY, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_FAST, \ + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, \ + .noFlip = FALSE, \ + .speciesName = _("Audino"), \ + .natDexNum = NATIONAL_DEX_AUDINO, \ + .categoryName = _("Hearing"), \ + .footprint = gMonFootprint_Audino, \ + LEARNSETS(Audino), \ + .formSpeciesIdTable = sAudinoFormSpeciesIdTable, \ + .formChangeTable = sAudinoFormChangeTable + +#if P_FAMILY_AUDINO + [SPECIES_AUDINO] = { - .baseHP = 109, - .baseAttack = 66, - .baseDefense = 84, - .baseSpeed = 32, - .baseSpAttack = 81, - .baseSpDefense = 99, - .types = { TYPE_GROUND, TYPE_ELECTRIC}, - .catchRate = 75, - .expYield = 165, - .evYield_HP = 2, - .itemRare = ITEM_SOFT_SAND, - .genderRatio = PERCENT_FEMALE(50), + AUDINO_MISC_INFO, + .baseHP = 103, + .baseAttack = 60, + .baseDefense = 86, + .baseSpeed = 50, + .baseSpAttack = 60, + .baseSpDefense = 86, + .types = { TYPE_NORMAL, TYPE_NORMAL}, + .expYield = 390, + .abilities = {ABILITY_HEALER, ABILITY_REGENERATOR, ABILITY_KLUTZ}, + .bodyColor = BODY_COLOR_PINK, + .cryId = CRY_AUDINO, + .height = 11, + .weight = 310, + .description = COMPOUND_STRING( + "Its auditory sense is astounding.\n" + "Using the feelers on its ears, it can tell\n" + "how someone is feeling or when an egg\n" + "might hatch."), + .pokemonScale = 320, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Audino, 40, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Audino, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Audino, 56, 56), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_SHRINK_GROW, + PALETTE(Audino), + ICON(Audino, 1), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_AUDINO_MEGA] = + { + AUDINO_MISC_INFO, + .baseHP = 103, + .baseAttack = 60, + .baseDefense = 126, + .baseSpeed = 50, + .baseSpAttack = 80, + .baseSpDefense = 126, + .types = { TYPE_NORMAL, TYPE_FAIRY}, + .expYield = 425, + .abilities = {ABILITY_HEALER, ABILITY_HEALER, ABILITY_HEALER}, + .bodyColor = BODY_COLOR_WHITE, + .cryId = CRY_AUDINO_MEGA, + .height = 15, + .weight = 320, + .description = COMPOUND_STRING( + "Mega Audino emits a soothing pulse from\n" + "its body that reduces hostility in others.\n" + "Anything that comes into contact with its\n" + "second feelers will fall into a deep sleep."), + .pokemonScale = 320, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(AudinoMega, 48, 64), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_AudinoMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(AudinoMega, 56, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(AudinoMega), + ICON(AudinoMega, 1), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_AUDINO + +#if P_FAMILY_TIMBURR + [SPECIES_TIMBURR] = + { + .baseHP = 75, + .baseAttack = 80, + .baseDefense = 55, + .baseSpeed = 35, + .baseSpAttack = 25, + .baseSpDefense = 35, + .types = { TYPE_FIGHTING, TYPE_FIGHTING}, + .catchRate = 180, + .expYield = 61, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(25), .eggCycles = 20, .friendship = 70, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_STATIC, ABILITY_LIMBER, ABILITY_SAND_VEIL}, - .bodyColor = BODY_COLOR_BROWN, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_GUTS, ABILITY_SHEER_FORCE, ABILITY_IRON_FIST}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, + .speciesName = _("Timburr"), + .cryId = CRY_TIMBURR, + .natDexNum = NATIONAL_DEX_TIMBURR, + .categoryName = _("Muscular"), + .height = 6, + .weight = 125, + .description = COMPOUND_STRING( + "These Pokémon appear at building\n" + "sites and help out with construction.\n" + "They always carry squared logs.\n" + "As they grow, they carry bigger logs."), + .pokemonScale = 422, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Timburr, 48, 40), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_Timburr, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Timburr, 64, 40), + .backPicYOffset = 15, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Timburr), + ICON(Timburr, 1), + .footprint = gMonFootprint_Timburr, + LEARNSETS(Timburr), + .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_GURDURR}), }, - [SPECIES_MIENFOO] = + [SPECIES_GURDURR] = { - .baseHP = 45, - .baseAttack = 85, - .baseDefense = 50, - .baseSpeed = 65, - .baseSpAttack = 55, + .baseHP = 85, + .baseAttack = 105, + .baseDefense = 85, + .baseSpeed = 40, + .baseSpAttack = 40, .baseSpDefense = 50, .types = { TYPE_FIGHTING, TYPE_FIGHTING}, - .catchRate = 180, - .expYield = 70, - .evYield_Attack = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, + .catchRate = 90, + .expYield = 142, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_INNER_FOCUS, ABILITY_REGENERATOR, ABILITY_RECKLESS}, - .bodyColor = BODY_COLOR_YELLOW, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_GUTS, ABILITY_SHEER_FORCE, ABILITY_IRON_FIST}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, + .speciesName = _("Gurdurr"), + .cryId = CRY_GURDURR, + .natDexNum = NATIONAL_DEX_GURDURR, + .categoryName = _("Muscular"), + .height = 12, + .weight = 400, + .description = COMPOUND_STRING( + "They strengthen their bodies by carrying\n" + "steel beams. This Pokémon is so muscular\n" + "and strongly built that even a group of\n" + "wrestlers could not make it budge an inch."), + .pokemonScale = 282, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Gurdurr, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Gurdurr, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Gurdurr, 64, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Gurdurr), + ICON(Gurdurr, 1), + .footprint = gMonFootprint_Gurdurr, + LEARNSETS(Gurdurr), + .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_CONKELDURR}, + {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_CONKELDURR}), }, - [SPECIES_MIENSHAO] = + [SPECIES_CONKELDURR] = { - .baseHP = 65, - .baseAttack = 125, - .baseDefense = 60, - .baseSpeed = 105, - .baseSpAttack = 95, - .baseSpDefense = 60, + .baseHP = 105, + .baseAttack = 140, + .baseDefense = 95, + .baseSpeed = 45, + .baseSpAttack = 55, + .baseSpDefense = 65, .types = { TYPE_FIGHTING, TYPE_FIGHTING}, .catchRate = 45, - .expYield = 179, - .evYield_Attack = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, + .expYield = 227, + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(25), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_INNER_FOCUS, ABILITY_REGENERATOR, ABILITY_RECKLESS}, - .bodyColor = BODY_COLOR_PURPLE, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_GUTS, ABILITY_SHEER_FORCE, ABILITY_IRON_FIST}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - }, - - [SPECIES_DRUDDIGON] = + .speciesName = _("Conkeldurr"), + .cryId = CRY_CONKELDURR, + .natDexNum = NATIONAL_DEX_CONKELDURR, + .categoryName = _("Muscular"), + .height = 14, + .weight = 870, + .description = COMPOUND_STRING( + "They use concrete pillars as walking\n" + "canes. Rather than rely solely on force,\n" + "they master moves that utilize the\n" + "centrifugal force of spinning concrete."), + .pokemonScale = 265, + .pokemonOffset = 3, + .trainerScale = 262, + .trainerOffset = 0, + FRONT_PIC(Conkeldurr, 64, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Conkeldurr, + .frontAnimId = ANIM_V_SHAKE_TWICE, + BACK_PIC(Conkeldurr, 64, 56), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, + PALETTE(Conkeldurr), + ICON(Conkeldurr, 1), + .footprint = gMonFootprint_Conkeldurr, + LEARNSETS(Conkeldurr), + }, +#endif //P_FAMILY_TIMBURR + +#if P_FAMILY_TYMPOLE + [SPECIES_TYMPOLE] = { - .baseHP = 77, - .baseAttack = 120, - .baseDefense = 90, - .baseSpeed = 48, - .baseSpAttack = 60, - .baseSpDefense = 90, - .types = { TYPE_DRAGON, TYPE_DRAGON}, - .catchRate = 45, - .expYield = 170, - .evYield_Attack = 2, - .itemRare = ITEM_DRAGON_FANG, + .baseHP = 50, + .baseAttack = 50, + .baseDefense = 40, + .baseSpeed = 64, + .baseSpAttack = 50, + .baseSpDefense = 40, + .types = { TYPE_WATER, TYPE_WATER}, + .catchRate = 255, + .expYield = 59, + .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 30, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_MONSTER}, - .abilities = {ABILITY_ROUGH_SKIN, ABILITY_SHEER_FORCE, ABILITY_MOLD_BREAKER}, - .bodyColor = BODY_COLOR_RED, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, + .abilities = {ABILITY_SWIFT_SWIM, ABILITY_HYDRATION, ABILITY_WATER_ABSORB}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Tympole"), + .cryId = CRY_TYMPOLE, + .natDexNum = NATIONAL_DEX_TYMPOLE, + .categoryName = _("Tadpole"), + .height = 5, + .weight = 45, + .description = COMPOUND_STRING( + "By vibrating its cheeks, it emits sound\n" + "waves imperceptible to humans. It uses\n" + "the rhythm of these sounds to talk and\n" + "warns others of danger."), + .pokemonScale = 432, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Tympole, 40, 40), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Tympole, + .frontAnimId = ANIM_H_JUMPS_V_STRETCH, + BACK_PIC(Tympole, 40, 32), + .backPicYOffset = 17, + .backAnimId = BACK_ANIM_H_SPRING, + PALETTE(Tympole), + ICON(Tympole, 2), + .footprint = gMonFootprint_Tympole, + LEARNSETS(Tympole), + .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_PALPITOAD}), }, - [SPECIES_GOLETT] = + [SPECIES_PALPITOAD] = { - .baseHP = 59, - .baseAttack = 74, - .baseDefense = 50, - .baseSpeed = 35, - .baseSpAttack = 35, - .baseSpDefense = 50, - .types = { TYPE_GROUND, TYPE_GHOST}, - .catchRate = 190, - .expYield = 61, - .evYield_Attack = 1, - .itemRare = ITEM_LIGHT_CLAY, - .genderRatio = MON_GENDERLESS, - .eggCycles = 25, + .baseHP = 75, + .baseAttack = 65, + .baseDefense = 55, + .baseSpeed = 69, + .baseSpAttack = 65, + .baseSpDefense = 55, + .types = { TYPE_WATER, TYPE_GROUND}, + .catchRate = 120, + .expYield = 134, + .evYield_HP = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_IRON_FIST, ABILITY_KLUTZ, ABILITY_NO_GUARD}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = TRUE, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, + .abilities = {ABILITY_SWIFT_SWIM, ABILITY_HYDRATION, ABILITY_WATER_ABSORB}, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + .speciesName = _("Palpitoad"), + .cryId = CRY_PALPITOAD, + .natDexNum = NATIONAL_DEX_PALPITOAD, + .categoryName = _("Vibration"), + .height = 8, + .weight = 170, + .description = COMPOUND_STRING( + "It lives in the water and on land.\n" + "When they vibrate the bumps on their\n" + "heads, they can make waves in water\n" + "or earthquake-like vibrations on land."), + .pokemonScale = 366, + .pokemonOffset = 10, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Palpitoad, 40, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Palpitoad, + .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, + BACK_PIC(Palpitoad, 56, 40), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_H_VIBRATE, + PALETTE(Palpitoad), + ICON(Palpitoad, 2), + .footprint = gMonFootprint_Palpitoad, + LEARNSETS(Palpitoad), + .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_SEISMITOAD}), }, - [SPECIES_GOLURK] = + [SPECIES_SEISMITOAD] = { - .baseHP = 89, - .baseAttack = 124, - .baseDefense = 80, - .baseSpeed = 55, - .baseSpAttack = 55, - .baseSpDefense = 80, - .types = { TYPE_GROUND, TYPE_GHOST}, - .catchRate = 90, - .expYield = 169, - .evYield_Attack = 2, - .itemRare = ITEM_LIGHT_CLAY, - .genderRatio = MON_GENDERLESS, - .eggCycles = 25, + .baseHP = 105, + .baseAttack = P_UPDATED_STATS >= GEN_6 ? 95 : 85, + .baseDefense = 75, + .baseSpeed = 74, + .baseSpAttack = 85, + .baseSpDefense = 75, + .types = { TYPE_WATER, TYPE_GROUND}, + .catchRate = 45, + .expYield = 229, + .evYield_HP = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_IRON_FIST, ABILITY_KLUTZ, ABILITY_NO_GUARD}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = TRUE, - }, - - [SPECIES_PAWNIARD] = + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, + .abilities = {ABILITY_SWIFT_SWIM, ABILITY_POISON_TOUCH, ABILITY_WATER_ABSORB}, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + .speciesName = _("Seismitoad"), + .cryId = CRY_SEISMITOAD, + .natDexNum = NATIONAL_DEX_SEISMITOAD, + .categoryName = _("Vibration"), + .height = 15, + .weight = 620, + .description = COMPOUND_STRING( + "It increases the power of its punches\n" + "by vibrating the bumps on its fists.\n" + "They can also shoot paralyzing liquid\n" + "from their head bumps."), + .pokemonScale = 268, + .pokemonOffset = 2, + .trainerScale = 271, + .trainerOffset = 0, + FRONT_PIC(Seismitoad, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Seismitoad, + .frontAnimId = ANIM_H_JUMPS, + BACK_PIC(Seismitoad, 64, 40), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, + PALETTE(Seismitoad), + ICON(Seismitoad, 0), + .footprint = gMonFootprint_Seismitoad, + LEARNSETS(Seismitoad), + }, +#endif //P_FAMILY_TYMPOLE + +#if P_FAMILY_THROH + [SPECIES_THROH] = { - .baseHP = 45, - .baseAttack = 85, - .baseDefense = 70, - .baseSpeed = 60, - .baseSpAttack = 40, - .baseSpDefense = 40, - .types = { TYPE_DARK, TYPE_STEEL}, - .catchRate = 120, - .expYield = 68, - .evYield_Attack = 1, - .genderRatio = PERCENT_FEMALE(50), + .baseHP = 120, + .baseAttack = 100, + .baseDefense = 85, + .baseSpeed = 45, + .baseSpAttack = 30, + .baseSpDefense = 85, + .types = { TYPE_FIGHTING, TYPE_FIGHTING}, + .catchRate = 45, + .expYield = 163, + .evYield_HP = 2, + .itemRare = ITEM_BLACK_BELT, + .genderRatio = MON_MALE, .eggCycles = 20, - .friendship = 35, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_DEFIANT, ABILITY_INNER_FOCUS, ABILITY_PRESSURE}, + .abilities = {ABILITY_GUTS, ABILITY_INNER_FOCUS, ABILITY_MOLD_BREAKER}, .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, - }, - - [SPECIES_BISHARP] = + .speciesName = _("Throh"), + .cryId = CRY_THROH, + .natDexNum = NATIONAL_DEX_THROH, + .categoryName = _("Judo"), + .height = 13, + .weight = 555, + .description = COMPOUND_STRING( + "When it tightens its belt, it becomes\n" + "stronger. Wild Throh use vines to weave\n" + "their own belts. It changes belts as it\n" + "gets more powerful."), + .pokemonScale = 272, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Throh, 64, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Throh, + .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, + BACK_PIC(Throh, 64, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(Throh), + ICON(Throh, 0), + .footprint = gMonFootprint_Throh, + LEARNSETS(Throh), + }, +#endif //P_FAMILY_THROH + +#if P_FAMILY_SAWK + [SPECIES_SAWK] = { - .baseHP = 65, + .baseHP = 75, .baseAttack = 125, - .baseDefense = 100, - .baseSpeed = 70, - .baseSpAttack = 60, - .baseSpDefense = 70, - .types = { TYPE_DARK, TYPE_STEEL}, + .baseDefense = 75, + .baseSpeed = 85, + .baseSpAttack = 30, + .baseSpDefense = 75, + .types = { TYPE_FIGHTING, TYPE_FIGHTING}, .catchRate = 45, - .expYield = 172, + .expYield = 163, .evYield_Attack = 2, - .genderRatio = PERCENT_FEMALE(50), + .itemRare = ITEM_BLACK_BELT, + .genderRatio = MON_MALE, .eggCycles = 20, - .friendship = 35, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_DEFIANT, ABILITY_INNER_FOCUS, ABILITY_PRESSURE}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, - - [SPECIES_BOUFFALANT] = + .abilities = {ABILITY_STURDY, ABILITY_INNER_FOCUS, ABILITY_MOLD_BREAKER}, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = TRUE, + .speciesName = _("Sawk"), + .cryId = CRY_SAWK, + .natDexNum = NATIONAL_DEX_SAWK, + .categoryName = _("Karate"), + .height = 14, + .weight = 510, + .description = COMPOUND_STRING( + "The sound of Sawk punching boulders\n" + "and trees can be heard all the way from\n" + "the mountains where they train.\n" + "Disturbing their training angers them."), + .pokemonScale = 265, + .pokemonOffset = 4, + .trainerScale = 262, + .trainerOffset = 0, + FRONT_PIC(Sawk, 56, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Sawk, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Sawk, 64, 40), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_H_STRETCH, + PALETTE(Sawk), + ICON(Sawk, 0), + .footprint = gMonFootprint_Sawk, + LEARNSETS(Sawk), + }, +#endif //P_FAMILY_SAWK + +#if P_FAMILY_SEWADDLE + [SPECIES_SEWADDLE] = { - .baseHP = 95, - .baseAttack = 110, - .baseDefense = 95, - .baseSpeed = 55, + .baseHP = 45, + .baseAttack = 53, + .baseDefense = 70, + .baseSpeed = 42, .baseSpAttack = 40, - .baseSpDefense = 95, - .types = { TYPE_NORMAL, TYPE_NORMAL}, - .catchRate = 45, - .expYield = 172, - .evYield_Attack = 2, + .baseSpDefense = 60, + .types = { TYPE_BUG, TYPE_GRASS}, + .catchRate = 255, + .expYield = 62, + .evYield_Defense = 1, + .itemRare = ITEM_MENTAL_HERB, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_RECKLESS, ABILITY_SAP_SIPPER, ABILITY_SOUNDPROOF}, - .bodyColor = BODY_COLOR_BROWN, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_SWARM, ABILITY_CHLOROPHYLL, ABILITY_OVERCOAT}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, + .speciesName = _("Sewaddle"), + .cryId = CRY_SEWADDLE, + .natDexNum = NATIONAL_DEX_SEWADDLE, + .categoryName = _("Sewing"), + .height = 3, + .weight = 25, + .description = COMPOUND_STRING( + "It chews up leaves and sews them with\n" + "sticky thread extruded from its mouth.\n" + "Since this Pokémon makes its own clothes,\n" + "it is a mascot for fashion designers."), + .pokemonScale = 530, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Sewaddle, 40, 40), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Sewaddle, + .frontAnimId = ANIM_CIRCLE_INTO_BG, + BACK_PIC(Sewaddle, 40, 48), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Sewaddle), + ICON(Sewaddle, 1), + .footprint = gMonFootprint_Sewaddle, + LEARNSETS(Sewaddle), + .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_SWADLOON}), }, - [SPECIES_RUFFLET] = + [SPECIES_SWADLOON] = { - .baseHP = 70, - .baseAttack = 83, - .baseDefense = 50, - .baseSpeed = 60, - .baseSpAttack = 37, - .baseSpDefense = 50, - .types = { TYPE_NORMAL, TYPE_FLYING}, - .catchRate = 190, - .expYield = 70, - .evYield_Attack = 1, - .genderRatio = MON_MALE, - .eggCycles = 20, + .baseHP = 55, + .baseAttack = 63, + .baseDefense = 90, + .baseSpeed = 42, + .baseSpAttack = 50, + .baseSpDefense = 80, + .types = { TYPE_BUG, TYPE_GRASS}, + .catchRate = 120, + .expYield = 133, + .evYield_Defense = 2, + .itemRare = ITEM_MENTAL_HERB, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_KEEN_EYE, ABILITY_SHEER_FORCE, ABILITY_HUSTLE}, - .bodyColor = BODY_COLOR_WHITE, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_LEAF_GUARD, ABILITY_CHLOROPHYLL, ABILITY_OVERCOAT}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, + .speciesName = _("Swadloon"), + .cryId = CRY_SWADLOON, + .natDexNum = NATIONAL_DEX_SWADLOON, + .categoryName = _("Leaf-Wrapped"), + .height = 5, + .weight = 73, + .description = COMPOUND_STRING( + "Forests where Swadloon live have\n" + "superb foliage because the nutrients\n" + "they make from fallen leaves nourish\n" + "the plant life."), + .pokemonScale = 432, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Swadloon, 56, 48), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Swadloon, + .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, + BACK_PIC(Swadloon, 48, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_H_VIBRATE, + PALETTE(Swadloon), + ICON(Swadloon, 1), + .footprint = gMonFootprint_Swadloon, + LEARNSETS(Swadloon), + .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_LEAVANNY}), }, - [SPECIES_BRAVIARY] = + [SPECIES_LEAVANNY] = { - .baseHP = 100, - .baseAttack = 123, - .baseDefense = 75, - .baseSpeed = 80, - .baseSpAttack = 57, - .baseSpDefense = 75, - .types = { TYPE_NORMAL, TYPE_FLYING}, - .catchRate = 60, - .expYield = 179, - .evYield_Attack = 2, - .genderRatio = MON_MALE, - .eggCycles = 20, + .baseHP = 75, + .baseAttack = 103, + .baseDefense = 80, + .baseSpeed = 92, + .baseSpAttack = 70, + .baseSpDefense = P_UPDATED_STATS >= GEN_6 ? 80 : 70, + .types = { TYPE_BUG, TYPE_GRASS}, + .catchRate = 45, + .expYield = 225, + .evYield_Attack = 3, + .itemRare = ITEM_MENTAL_HERB, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_KEEN_EYE, ABILITY_SHEER_FORCE, ABILITY_DEFIANT}, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_SWARM, ABILITY_CHLOROPHYLL, ABILITY_OVERCOAT}, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + .speciesName = _("Leavanny"), + .cryId = CRY_LEAVANNY, + .natDexNum = NATIONAL_DEX_LEAVANNY, + .categoryName = _("Nurturing"), + .height = 12, + .weight = 205, + .description = COMPOUND_STRING( + "It keeps its eggs warm with heat from\n" + "fermenting leaves. It also uses leaves to\n" + "weave warm wrappings for Sewaddle by\n" + "using the silk secreted from its mouth."), + .pokemonScale = 282, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Leavanny, 48, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Leavanny, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Leavanny, 56, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_GROW_STUTTER, + PALETTE(Leavanny), + ICON(Leavanny, 1), + .footprint = gMonFootprint_Leavanny, + LEARNSETS(Leavanny), + }, +#endif //P_FAMILY_SEWADDLE + +#if P_FAMILY_VENIPEDE + [SPECIES_VENIPEDE] = + { + .baseHP = 30, + .baseAttack = 45, + .baseDefense = 59, + .baseSpeed = 57, + .baseSpAttack = 30, + .baseSpDefense = 39, + .types = { TYPE_BUG, TYPE_POISON}, + .catchRate = 255, + .expYield = 52, + .evYield_Defense = 1, + .itemRare = ITEM_POISON_BARB, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + #if P_UPDATED_ABILITIES >= GEN_6 + .abilities = {ABILITY_POISON_POINT, ABILITY_SWARM, ABILITY_SPEED_BOOST}, + #else + .abilities = {ABILITY_POISON_POINT, ABILITY_SWARM, ABILITY_QUICK_FEET}, + #endif .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, + .speciesName = _("Venipede"), + .cryId = CRY_VENIPEDE, + .natDexNum = NATIONAL_DEX_VENIPEDE, + .categoryName = _("Centipede"), + .height = 4, + .weight = 53, + .description = COMPOUND_STRING( + "Using the feelers on its head and tail,\n" + "it picks up vibrations in the air to\n" + "determine its prey's location and state.\n" + "It is brutally aggressive."), + .pokemonScale = 491, + .pokemonOffset = 16, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Venipede, 48, 32), + .frontPicYOffset = 16, + .frontAnimFrames = sAnims_Venipede, + .frontAnimId = ANIM_H_SLIDE, + BACK_PIC(Venipede, 64, 40), + .backPicYOffset = 14, + .backAnimId = BACK_ANIM_H_VIBRATE, + PALETTE(Venipede), + ICON(Venipede, 1), + .footprint = gMonFootprint_Venipede, + LEARNSETS(Venipede), + .evolutions = EVOLUTION({EVO_LEVEL, 22, SPECIES_WHIRLIPEDE}), }, - [SPECIES_VULLABY] = + [SPECIES_WHIRLIPEDE] = { - .baseHP = 70, + .baseHP = 40, .baseAttack = 55, - .baseDefense = 75, - .baseSpeed = 60, - .baseSpAttack = 45, - .baseSpDefense = 65, - .types = { TYPE_DARK, TYPE_FLYING}, - .catchRate = 190, - .expYield = 74, - .evYield_Defense = 1, - .genderRatio = MON_FEMALE, - .eggCycles = 20, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_BIG_PECKS, ABILITY_OVERCOAT, ABILITY_WEAK_ARMOR}, - .bodyColor = BODY_COLOR_BROWN, + .baseDefense = 99, + .baseSpeed = 47, + .baseSpAttack = 40, + .baseSpDefense = 79, + .types = { TYPE_BUG, TYPE_POISON}, + .catchRate = 120, + .expYield = 126, + .evYield_Defense = 2, + .itemRare = ITEM_POISON_BARB, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + #if P_UPDATED_ABILITIES >= GEN_6 + .abilities = {ABILITY_POISON_POINT, ABILITY_SWARM, ABILITY_SPEED_BOOST}, + #else + .abilities = {ABILITY_POISON_POINT, ABILITY_SWARM, ABILITY_QUICK_FEET}, + #endif + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, + .speciesName = _("Whirlipede"), + .cryId = CRY_WHIRLIPEDE, + .natDexNum = NATIONAL_DEX_WHIRLIPEDE, + .categoryName = _("Curlipede"), + .height = 12, + .weight = 585, + .description = COMPOUND_STRING( + "Storing energy for evolution, it sits.\n" + "But when attacked, it spins its body at\n" + "high speed like a wheel and then\n" + "crashes furiously into its opponent."), + .pokemonScale = 282, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Whirlipede, 56, 40), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_Whirlipede, + .frontAnimId = ANIM_TIP_MOVE_FORWARD, + BACK_PIC(Whirlipede, 64, 40), + .backPicYOffset = 15, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Whirlipede), + ICON(Whirlipede, 2), + .footprint = gMonFootprint_Whirlipede, + LEARNSETS(Whirlipede), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_SCOLIPEDE}), }, - [SPECIES_MANDIBUZZ] = + [SPECIES_SCOLIPEDE] = { - .baseHP = 110, - .baseAttack = 65, - .baseDefense = 105, - .baseSpeed = 80, + .baseHP = 60, + .baseAttack = P_UPDATED_STATS >= GEN_6 ? 100 : 90, + .baseDefense = 89, + .baseSpeed = 112, .baseSpAttack = 55, - .baseSpDefense = 95, - .types = { TYPE_DARK, TYPE_FLYING}, - .catchRate = 60, - .expYield = 179, - .evYield_SpAttack = 2, - .genderRatio = MON_FEMALE, + .baseSpDefense = 69, + .types = { TYPE_BUG, TYPE_POISON}, + .catchRate = 45, + .expYield = 218, + .evYield_Speed = 3, + .itemRare = ITEM_POISON_BARB, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_BIG_PECKS, ABILITY_OVERCOAT, ABILITY_WEAK_ARMOR}, - .bodyColor = BODY_COLOR_BROWN, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + #if P_UPDATED_ABILITIES >= GEN_6 + .abilities = {ABILITY_POISON_POINT, ABILITY_SWARM, ABILITY_SPEED_BOOST}, + #else + .abilities = {ABILITY_POISON_POINT, ABILITY_SWARM, ABILITY_QUICK_FEET}, + #endif + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, - }, - - [SPECIES_HEATMOR] = - { - .baseHP = 85, - .baseAttack = 97, - .baseDefense = 66, - .baseSpeed = 65, - .baseSpAttack = 105, - .baseSpDefense = 66, - .types = { TYPE_FIRE, TYPE_FIRE}, - .catchRate = 90, - .expYield = 169, - .evYield_SpAttack = 2, + .speciesName = _("Scolipede"), + .cryId = CRY_SCOLIPEDE, + .natDexNum = NATIONAL_DEX_SCOLIPEDE, + .categoryName = _("Megapede"), + .height = 25, + .weight = 2005, + .description = COMPOUND_STRING( + "With quick movements, it chases down\n" + "its foes, attacking relentlessly with its\n" + "horns until it prevails. Then it finishes\n" + "them off with deadly poison."), + .pokemonScale = 257, + .pokemonOffset = 2, + .trainerScale = 423, + .trainerOffset = 8, + FRONT_PIC(Scolipede, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Scolipede, + .frontAnimId = ANIM_H_SHAKE, + BACK_PIC(Scolipede, 64, 64), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(Scolipede), + ICON(Scolipede, 2), + .footprint = gMonFootprint_Scolipede, + LEARNSETS(Scolipede), + }, +#endif //P_FAMILY_VENIPEDE + +#if P_FAMILY_COTTONEE +#if P_UPDATED_TYPES >= GEN_6 + #define COTTONEE_FAMILY_TYPES { TYPE_GRASS, TYPE_FAIRY } +#else + #define COTTONEE_FAMILY_TYPES { TYPE_GRASS, TYPE_GRASS } +#endif + + [SPECIES_COTTONEE] = + { + .baseHP = 40, + .baseAttack = 27, + .baseDefense = 60, + .baseSpeed = 66, + .baseSpAttack = 37, + .baseSpDefense = 50, + .types = COTTONEE_FAMILY_TYPES, + .catchRate = 190, + .expYield = 56, + .evYield_Speed = 1, + .itemRare = ITEM_ABSORB_BULB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_GLUTTONY, ABILITY_FLASH_FIRE, ABILITY_WHITE_SMOKE}, - .bodyColor = BODY_COLOR_RED, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_FAIRY}, + .abilities = {ABILITY_PRANKSTER, ABILITY_INFILTRATOR, ABILITY_CHLOROPHYLL}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, + .speciesName = _("Cottonee"), + .cryId = CRY_COTTONEE, + .natDexNum = NATIONAL_DEX_COTTONEE, + .categoryName = _("Cotton Puff"), + .height = 3, + .weight = 6, + .description = COMPOUND_STRING( + "When it finds others of its kind, they all\n" + "stick together. When enough of them\n" + "have collected, the mass resembles a\n" + "cumulonimbus cloud."), + .pokemonScale = 530, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Cottonee, 48, 32), + .frontPicYOffset = 18, + .frontAnimFrames = sAnims_Cottonee, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Cottonee, 64, 32), + .backPicYOffset = 18, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Cottonee), + ICON(Cottonee, 1), + .footprint = gMonFootprint_Cottonee, + LEARNSETS(Cottonee), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_SUN_STONE, SPECIES_WHIMSICOTT}), }, - [SPECIES_DURANT] = + [SPECIES_WHIMSICOTT] = { - .baseHP = 58, - .baseAttack = 109, - .baseDefense = 112, - .baseSpeed = 109, - .baseSpAttack = 48, - .baseSpDefense = 48, - .types = { TYPE_BUG, TYPE_STEEL}, - .catchRate = 90, - .expYield = 169, - .evYield_Defense = 2, + .baseHP = 60, + .baseAttack = 67, + .baseDefense = 85, + .baseSpeed = 116, + .baseSpAttack = 77, + .baseSpDefense = 75, + .types = COTTONEE_FAMILY_TYPES, + .catchRate = 75, + .expYield = 168, + .evYield_Speed = 2, + .itemRare = ITEM_ABSORB_BULB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SWARM, ABILITY_HUSTLE, ABILITY_TRUANT}, - .bodyColor = BODY_COLOR_GRAY, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_FAIRY}, + .abilities = {ABILITY_PRANKSTER, ABILITY_INFILTRATOR, ABILITY_CHLOROPHYLL}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - }, - - [SPECIES_DEINO] = + .speciesName = _("Whimsicott"), + .cryId = CRY_WHIMSICOTT, + .natDexNum = NATIONAL_DEX_WHIMSICOTT, + .categoryName = _("Windveiled"), + .height = 7, + .weight = 66, + .description = COMPOUND_STRING( + "It rides on the wind and slips into\n" + "people's homes. After it has turned a\n" + "room into a cotton-filled mess, it giggles\n" + "to itself and takes off."), + .pokemonScale = 365, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Whimsicott, 56, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Whimsicott, + .frontAnimId = ANIM_SHRINK_GROW, + BACK_PIC(Whimsicott, 64, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, + PALETTE(Whimsicott), + ICON(Whimsicott, 1), + .footprint = gMonFootprint_Whimsicott, + LEARNSETS(Whimsicott), + }, +#endif //P_FAMILY_COTTONEE + +#if P_FAMILY_PETILIL + [SPECIES_PETILIL] = { - .baseHP = 52, - .baseAttack = 65, + .baseHP = 45, + .baseAttack = 35, .baseDefense = 50, - .baseSpeed = 38, - .baseSpAttack = 45, + .baseSpeed = 30, + .baseSpAttack = 70, .baseSpDefense = 50, - .types = { TYPE_DARK, TYPE_DRAGON}, - .catchRate = 45, - .expYield = 60, - .evYield_Attack = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 40, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_HUSTLE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLUE, + .types = { TYPE_GRASS, TYPE_GRASS}, + .catchRate = 190, + .expYield = 56, + .evYield_SpAttack = 1, + .itemRare = ITEM_ABSORB_BULB, + .genderRatio = MON_FEMALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, + .abilities = {ABILITY_CHLOROPHYLL, ABILITY_OWN_TEMPO, ABILITY_LEAF_GUARD}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, + .speciesName = _("Petilil"), + .cryId = CRY_PETILIL, + .natDexNum = NATIONAL_DEX_PETILIL, + .categoryName = _("Bulb"), + .height = 5, + .weight = 66, + .description = COMPOUND_STRING( + "By pruning the leaves on its head with\n" + "regularity, this Pokémon can be grown\n" + "into a fine plump shape. These bitter\n" + "leaves refresh those who eat them."), + .pokemonScale = 432, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Petilil, 32, 48), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Petilil, + .frontAnimId = ANIM_H_JUMPS_V_STRETCH, + .enemyMonElevation = 7, + BACK_PIC(Petilil, 40, 56), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_V_STRETCH, + PALETTE(Petilil), + ICON(Petilil, 1), + .footprint = gMonFootprint_Petilil, + LEARNSETS(Petilil), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_SUN_STONE, SPECIES_LILLIGANT}, + {EVO_NONE, 0, SPECIES_LILLIGANT_HISUIAN}), + }, + +#define LILLIGANT_MISC_INFO \ + .catchRate = 75, \ + .expYield = 168, \ + .itemRare = ITEM_ABSORB_BULB, \ + .genderRatio = MON_FEMALE, \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, \ + .bodyColor = BODY_COLOR_GREEN, \ + .noFlip = TRUE, \ + .speciesName = _("Lilligant"), \ + .cryId = CRY_LILLIGANT, \ + .natDexNum = NATIONAL_DEX_LILLIGANT, \ + .footprint = gMonFootprint_Lilligant, \ + .formSpeciesIdTable = sLilligantFormSpeciesIdTable + + [SPECIES_LILLIGANT] = + { + LILLIGANT_MISC_INFO, + .baseHP = 70, + .baseAttack = 60, + .baseDefense = 75, + .baseSpeed = 90, + .baseSpAttack = 110, + .baseSpDefense = 75, + .types = { TYPE_GRASS, TYPE_GRASS}, + .evYield_SpAttack = 2, + .abilities = {ABILITY_CHLOROPHYLL, ABILITY_OWN_TEMPO, ABILITY_LEAF_GUARD}, + .categoryName = _("Flowering"), + .height = 11, + .weight = 163, + .description = COMPOUND_STRING( + "Even veteran Trainers face a challenge\n" + "in getting its beautiful flower to bloom.\n" + "It withers away if a trainer does not\n" + "take good care of it."), + .pokemonScale = 320, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Lilligant, 56, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Lilligant, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Lilligant, 64, 56), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_SHRINK_GROW, + PALETTE(Lilligant), + ICON(Lilligant, 1), + LEARNSETS(Lilligant), + }, + +#if P_HISUIAN_FORMS + [SPECIES_LILLIGANT_HISUIAN] = + { + LILLIGANT_MISC_INFO, + .baseHP = 70, + .baseAttack = 105, + .baseDefense = 75, + .baseSpeed = 105, + .baseSpAttack = 50, + .baseSpDefense = 75, + .types = { TYPE_GRASS, TYPE_FIGHTING}, + .evYield_Attack = 1, + .evYield_Speed = 1, + .abilities = {ABILITY_CHLOROPHYLL, ABILITY_HUSTLE, ABILITY_LEAF_GUARD}, + .categoryName = _("Spinning"), + .height = 12, + .weight = 192, + .description = COMPOUND_STRING( + "Its well-developed legs are the result of\n" + "a life spent on mountains covered in deep\n" + "snow. The scent it exudes from its flower\n" + "crown heartens those in proximity."), + .pokemonScale = 320, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(LilligantHisuian, 56, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_LilligantHisuian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(LilligantHisuian, 56, 56), + .backPicYOffset = 5, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(LilligantHisuian), + ICON(LilligantHisuian, 1), + LEARNSETS(LilligantHisuian), + .isHisuianForm = TRUE, + }, +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_PETILIL + +#if P_FAMILY_BASCULIN +#define BASCULIN_MISC_INFO \ + .baseHP = 70, \ + .baseAttack = 92, \ + .baseDefense = 65, \ + .baseSpeed = 98, \ + .baseSpAttack = 80, \ + .baseSpDefense = 55, \ + .types = { TYPE_WATER, TYPE_WATER}, \ + .catchRate = 190, \ + .expYield = 161, \ + .evYield_Speed = 2, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 40, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, \ + .bodyColor = BODY_COLOR_GREEN, \ + .noFlip = FALSE, \ + .speciesName = _("Basculin"), \ + .cryId = CRY_BASCULIN, \ + .natDexNum = NATIONAL_DEX_BASCULIN, \ + .height = 10, \ + .weight = 180, \ + .pokemonScale = 316, \ + .pokemonOffset = 7, \ + .trainerScale = 257, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Basculin, \ + LEARNSETS(Basculin), \ + .formSpeciesIdTable = sBasculinFormSpeciesIdTable + + [SPECIES_BASCULIN_RED_STRIPED] = + { + BASCULIN_MISC_INFO, + .itemRare = ITEM_DEEP_SEA_TOOTH, + .abilities = {ABILITY_RECKLESS, ABILITY_ADAPTABILITY, ABILITY_MOLD_BREAKER}, + .categoryName = _("Hostile"), + .description = COMPOUND_STRING( + "It used to be a common food source. The\n" + "meat of red Basculin is on the fatty side\n" + "and it's more popular with the youth.\n" + "Its temperament is vicious and aggressive."), + FRONT_PIC(BasculinRedStriped, 56, 40), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_Basculin, + .frontAnimId = ANIM_TIP_MOVE_FORWARD, + BACK_PIC(BasculinRedStriped, 64, 48), + .backPicYOffset = 16, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(BasculinRedStriped), + ICON(BasculinRedStriped, 1), }, - [SPECIES_ZWEILOUS] = + [SPECIES_BASCULIN_BLUE_STRIPED] = { - .baseHP = 72, - .baseAttack = 85, - .baseDefense = 70, - .baseSpeed = 58, - .baseSpAttack = 65, - .baseSpDefense = 70, - .types = { TYPE_DARK, TYPE_DRAGON}, - .catchRate = 45, - .expYield = 147, - .evYield_Attack = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 40, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_HUSTLE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, + BASCULIN_MISC_INFO, + .itemRare = ITEM_DEEP_SEA_SCALE, + .abilities = {ABILITY_ROCK_HEAD, ABILITY_ADAPTABILITY, ABILITY_MOLD_BREAKER}, + .categoryName = _("Hostile"), + .description = COMPOUND_STRING( + "They form schools with others of the same\n" + "color. The greatest foe of a school of blue\n" + "Basculin is a school of red Basculin.\n" + "Its flavor is light and inoffensive."), + FRONT_PIC(BasculinBlueStriped, 56, 40), + .frontPicYOffset = 16, + .frontAnimFrames = sAnims_Basculin, + .frontAnimId = ANIM_TIP_MOVE_FORWARD, + BACK_PIC(BasculinBlueStriped, 64, 48), + .backPicYOffset = 16, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(BasculinBlueStriped), + ICON(BasculinBlueStriped, 0), + }, + +#if P_HISUIAN_FORMS + [SPECIES_BASCULIN_WHITE_STRIPED] = + { + BASCULIN_MISC_INFO, + .itemRare = ITEM_DEEP_SEA_SCALE, + .abilities = {ABILITY_RATTLED, ABILITY_ADAPTABILITY, ABILITY_MOLD_BREAKER}, + .categoryName = _("Mellow"), + .description = COMPOUND_STRING( + "While this ancient form of Basculin shares\n" + "a vast array of qualities with other forms,\n" + "it differs in several respects, including\n" + "demeanor, being much gentler than others."), + FRONT_PIC(BasculinWhiteStriped, 48, 40), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Basculin, + .frontAnimId = ANIM_TIP_MOVE_FORWARD, + BACK_PIC(BasculinWhiteStriped, 64, 40), + .backPicYOffset = 16, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(BasculinWhiteStriped), + ICON(BasculinWhiteStriped, 0), + .evolutions = EVOLUTION({EVO_NONE, 0, SPECIES_BASCULEGION_MALE}, + {EVO_NONE, 0, SPECIES_BASCULEGION_FEMALE}), + }, + +#define BASCULEGION_MISC_INFO \ + .types = { TYPE_WATER, TYPE_GHOST}, \ + .catchRate = 45, \ + .expYield = 265, \ + .evYield_HP = 3, \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, \ + .abilities = {ABILITY_SWIFT_SWIM, ABILITY_ADAPTABILITY, ABILITY_MOLD_BREAKER}, \ + .bodyColor = BODY_COLOR_GREEN, \ + .noFlip = FALSE, \ + .speciesName = _("Bsculegion"), \ + .cryId = CRY_BASCULEGION, \ + .natDexNum = NATIONAL_DEX_BASCULEGION, \ + .categoryName = _("Big Fish"), \ + .height = 30, \ + .weight = 1100, \ + .pokemonScale = 275, \ + .pokemonOffset = 7, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .frontPicYOffset = 0, \ + .frontAnimFrames = sAnims_Basculegion, \ + .backPicYOffset = 0, \ + LEARNSETS(Basculegion), \ + .formSpeciesIdTable = sBasculegionFormSpeciesIdTable + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + //.backAnimId = BACK_ANIM_NONE, + //.footprint = gMonFootprint_Basculegion, + + [SPECIES_BASCULEGION_MALE] = + { + BASCULEGION_MISC_INFO, + .baseHP = 120, + .baseAttack = 112, + .baseDefense = 65, + .baseSpeed = 78, + .baseSpAttack = 80, + .baseSpDefense = 75, + .genderRatio = MON_MALE, + .description = COMPOUND_STRING( + "Clads itself in the souls of comrades that\n" + "perished before fulfilling their goals of\n" + "journeying upstream. No other species in\n" + "all Hisui's rivers is Basculegion's equal."), + FRONT_PIC(BasculegionMale, 64, 64), + BACK_PIC(BasculegionMale, 64, 64), + PALETTE(BasculegionMale), + ICON(BasculegionMale, 1), }, - [SPECIES_HYDREIGON] = + [SPECIES_BASCULEGION_FEMALE] = { - .baseHP = 92, - .baseAttack = 105, - .baseDefense = 90, - .baseSpeed = 98, - .baseSpAttack = 125, - .baseSpDefense = 90, - .types = { TYPE_DARK, TYPE_DRAGON}, - .catchRate = 45, - .expYield = 270, - .evYield_SpAttack = 3, + BASCULEGION_MISC_INFO, + .baseHP = 120, + .baseAttack = 92, + .baseDefense = 65, + .baseSpeed = 78, + .baseSpAttack = 100, + .baseSpDefense = 75, + .genderRatio = MON_FEMALE, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(BasculegionFemale, 64, 64), + BACK_PIC(BasculegionFemale, 64, 64), + PALETTE(BasculegionFemale), + ICON(BasculegionFemale, 0), + }, +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_BASCULIN + +#if P_FAMILY_SANDILE + [SPECIES_SANDILE] = + { + .baseHP = 50, + .baseAttack = 72, + .baseDefense = 35, + .baseSpeed = 65, + .baseSpAttack = 35, + .baseSpDefense = 35, + .types = { TYPE_GROUND, TYPE_DARK}, + .catchRate = 180, + .expYield = 58, + .evYield_Attack = 1, + .itemRare = ITEM_BLACK_GLASSES, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 40, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLUE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_INTIMIDATE, ABILITY_MOXIE, ABILITY_ANGER_POINT}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .speciesName = _("Sandile"), + .cryId = CRY_SANDILE, + .natDexNum = NATIONAL_DEX_SANDILE, + .categoryName = _("Desert Croc"), + .height = 7, + .weight = 152, + .description = COMPOUND_STRING( + "It conceals itself in the sand and\n" + "chomps down on the legs of any prey\n" + "that unwarily walk over it. Its favorite\n" + "food is Trapinch."), + .pokemonScale = 365, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Sandile, 48, 32), + .frontPicYOffset = 18, + .frontAnimFrames = sAnims_Sandile, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Sandile, 64, 32), + .backPicYOffset = 18, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Sandile), + ICON(Sandile, 1), + .footprint = gMonFootprint_Sandile, + LEARNSETS(Sandile), + .evolutions = EVOLUTION({EVO_LEVEL, 29, SPECIES_KROKOROK}), }, - [SPECIES_LARVESTA] = + [SPECIES_KROKOROK] = { - .baseHP = 55, - .baseAttack = 85, - .baseDefense = 55, - .baseSpeed = 60, - .baseSpAttack = 50, - .baseSpDefense = 55, - .types = { TYPE_BUG, TYPE_FIRE}, - .catchRate = 45, - .expYield = 72, - .evYield_Attack = 1, + .baseHP = 60, + .baseAttack = 82, + .baseDefense = 45, + .baseSpeed = 74, + .baseSpAttack = 45, + .baseSpDefense = 45, + .types = { TYPE_GROUND, TYPE_DARK}, + .catchRate = 90, + .expYield = 123, + .evYield_Attack = 2, + .itemRare = ITEM_BLACK_GLASSES, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 40, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_FLAME_BODY, ABILITY_NONE, ABILITY_SWARM}, - .bodyColor = BODY_COLOR_WHITE, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_INTIMIDATE, ABILITY_MOXIE, ABILITY_ANGER_POINT}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .speciesName = _("Krokorok"), + .cryId = CRY_KROKOROK, + .natDexNum = NATIONAL_DEX_KROKOROK, + .categoryName = _("Desert Croc"), + .height = 10, + .weight = 334, + .description = COMPOUND_STRING( + "They move in groups of a few individuals.\n" + "Thanks to the special membrane covering\n" + "its eyes, it can see its surroundings\n" + "clearly, even in the dead of night."), + .pokemonScale = 305, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Krokorok, 64, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Krokorok, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Krokorok, 56, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_V_STRETCH, + PALETTE(Krokorok), + ICON(Krokorok, 1), + .footprint = gMonFootprint_Krokorok, + LEARNSETS(Krokorok), + .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_KROOKODILE}), }, - [SPECIES_VOLCARONA] = + [SPECIES_KROOKODILE] = { - .baseHP = 85, - .baseAttack = 60, - .baseDefense = 65, - .baseSpeed = 100, - .baseSpAttack = 135, - .baseSpDefense = 105, - .types = { TYPE_BUG, TYPE_FIRE}, - .catchRate = 15, - .expYield = 248, - .evYield_SpAttack = 3, - .itemCommon = ITEM_SILVER_POWDER, - .itemRare = ITEM_SILVER_POWDER, + .baseHP = 95, + .baseAttack = 117, + .baseDefense = P_UPDATED_STATS >= GEN_6 ? 80 : 70, + .baseSpeed = 92, + .baseSpAttack = 65, + .baseSpDefense = 70, + .types = { TYPE_GROUND, TYPE_DARK}, + .catchRate = 45, + .expYield = 234, + .evYield_Attack = 3, + .itemCommon = ITEM_BLACK_GLASSES, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 40, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_FLAME_BODY, ABILITY_NONE, ABILITY_SWARM}, - .bodyColor = BODY_COLOR_WHITE, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_INTIMIDATE, ABILITY_MOXIE, ABILITY_ANGER_POINT}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, - }, + .speciesName = _("Krookodile"), + .cryId = CRY_KROOKODILE, + .natDexNum = NATIONAL_DEX_KROOKODILE, + .categoryName = _("Intimidate"), + .height = 15, + .weight = 963, + .description = COMPOUND_STRING( + "Very violent Pokémon, they never allow\n" + "their prey to escape. Their jaws are so\n" + "powerful, they can crush the body of\n" + "an automobile."), + .pokemonScale = 268, + .pokemonOffset = 2, + .trainerScale = 271, + .trainerOffset = 0, + FRONT_PIC(Krookodile, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Krookodile, + .frontAnimId = ANIM_SWING_CONCAVE_FAST_SHORT, + BACK_PIC(Krookodile, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(Krookodile), + ICON(Krookodile, 0), + .footprint = gMonFootprint_Krookodile, + LEARNSETS(Krookodile), + }, +#endif //P_FAMILY_SANDILE + +#if P_FAMILY_DARUMAKA +#define DARUMAKA_MISC_INFO \ + .baseHP = 70, \ + .baseAttack = 90, \ + .baseDefense = 45, \ + .baseSpeed = 50, \ + .baseSpAttack = 15, \ + .baseSpDefense = 45, \ + .catchRate = 120, \ + .expYield = 63, \ + .evYield_Attack = 1, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_SLOW, \ + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, \ + .abilities = {ABILITY_HUSTLE, ABILITY_NONE, ABILITY_INNER_FOCUS}, \ + .noFlip = FALSE, \ + .speciesName = _("Darumaka"), \ + .cryId = CRY_DARUMAKA, \ + .natDexNum = NATIONAL_DEX_DARUMAKA, \ + .categoryName = _("Zen Charm"), \ + .footprint = gMonFootprint_Darumaka, \ + .formSpeciesIdTable = sDarumakaFormSpeciesIdTable - [SPECIES_COBALION] = + [SPECIES_DARUMAKA] = { - .baseHP = 91, - .baseAttack = 90, - .baseDefense = 129, - .baseSpeed = 108, - .baseSpAttack = 90, - .baseSpDefense = 72, - .types = { TYPE_STEEL, TYPE_FIGHTING}, - .catchRate = 3, - .expYield = 261, - .evYield_Defense = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 80, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_JUSTIFIED, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, + DARUMAKA_MISC_INFO, + .types = { TYPE_FIRE, TYPE_FIRE}, + .bodyColor = BODY_COLOR_RED, + .height = 6, + .weight = 375, + .description = COMPOUND_STRING( + "When its internal fire is burning, it\n" + "cannot calm down and it runs around.\n" + "When the fire diminishes, it pulls its\n" + "limbs into its body and falls asleep."), + .pokemonScale = 422, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Darumaka, 40, 40), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_Darumaka, + .frontAnimId = ANIM_SWING_CONCAVE, + BACK_PIC(Darumaka, 56, 48), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, + PALETTE(Darumaka), + ICON(Darumaka, 0), + LEARNSETS(Darumaka), + .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_DARMANITAN_STANDARD_MODE}), + }, + +#define DARMANITAN_MISC_INFO \ + .catchRate = 60, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_SLOW, \ + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, \ + .noFlip = FALSE, \ + .speciesName = _("Darmanitan"), \ + .cryId = CRY_DARMANITAN, \ + .natDexNum = NATIONAL_DEX_DARMANITAN, \ + .footprint = gMonFootprint_Darmanitan, \ + .formSpeciesIdTable = sDarmanitanFormSpeciesIdTable + +#define DARMANITAN_STANDARD_MISC_INFO \ + .baseHP = 105, \ + .baseAttack = 140, \ + .baseDefense = 55, \ + .baseSpeed = 95, \ + .baseSpAttack = 30, \ + .baseSpDefense = 55, \ + .expYield = 168, \ + .evYield_Attack = 2, \ + DARMANITAN_MISC_INFO + +#define DARMANITAN_ZEN_MODE_MISC_INFO \ + .expYield = 189, \ + .evYield_SpAttack = 2, \ + .categoryName = _("Blazing"), \ + DARMANITAN_MISC_INFO + +#define DARMANITAN_UNOVAN_MISC_INFO \ + .abilities = {ABILITY_SHEER_FORCE, ABILITY_NONE, ABILITY_ZEN_MODE}, \ + .height = 13, \ + .weight = 929, \ + .pokemonScale = 272, \ + .pokemonOffset = 3, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + LEARNSETS(Darmanitan), \ + .formChangeTable = sDarmanitanFormChangeTable - [SPECIES_TERRAKION] = + [SPECIES_DARMANITAN_STANDARD_MODE] = { - .baseHP = 91, - .baseAttack = 129, - .baseDefense = 90, - .baseSpeed = 108, - .baseSpAttack = 72, - .baseSpDefense = 90, - .types = { TYPE_ROCK, TYPE_FIGHTING}, - .catchRate = 3, - .expYield = 261, - .evYield_Attack = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 80, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_JUSTIFIED, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, + DARMANITAN_STANDARD_MISC_INFO, + DARMANITAN_UNOVAN_MISC_INFO, + .types = { TYPE_FIRE, TYPE_FIRE}, + .bodyColor = BODY_COLOR_RED, + .categoryName = _("Blazing"), + .description = COMPOUND_STRING( + "When one is injured in a fierce battle,\n" + "it transforms into a stone statue.\n" + "Then it meditates and sharpens its\n" + "mind and fights on mentally."), + FRONT_PIC(DarmanitanStandardMode, 56, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_DarmanitanStandardMode, + .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, + BACK_PIC(DarmanitanStandardMode, 64, 64), + .backPicYOffset = 2, + .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, + PALETTE(DarmanitanStandardMode), + ICON(DarmanitanStandardMode, 0), }, - [SPECIES_VIRIZION] = + [SPECIES_DARMANITAN_ZEN_MODE] = { - .baseHP = 91, - .baseAttack = 90, - .baseDefense = 72, - .baseSpeed = 108, - .baseSpAttack = 90, - .baseSpDefense = 129, - .types = { TYPE_GRASS, TYPE_FIGHTING}, - .catchRate = 3, - .expYield = 261, - .evYield_SpDefense = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 80, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_JUSTIFIED, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, + DARMANITAN_ZEN_MODE_MISC_INFO, + DARMANITAN_UNOVAN_MISC_INFO, + .baseHP = 105, + .baseAttack = 30, + .baseDefense = 105, + .baseSpeed = 55, + .baseSpAttack = 140, + .baseSpDefense = 105, + .types = { TYPE_FIRE, TYPE_PSYCHIC}, + .bodyColor = BODY_COLOR_BLUE, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(DarmanitanZenMode, 40, 40), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_DarmanitanZenMode, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(DarmanitanZenMode, 56, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_H_SHAKE, + PALETTE(DarmanitanZenMode), + ICON(DarmanitanZenMode, 0), + }, + +#if P_GALARIAN_FORMS + [SPECIES_DARUMAKA_GALARIAN] = + { + DARUMAKA_MISC_INFO, + .types = { TYPE_ICE, TYPE_ICE}, + .bodyColor = BODY_COLOR_WHITE, + .height = 7, + .weight = 400, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 422, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(DarumakaGalarian, 40, 40), + .frontPicYOffset = 15, + .frontAnimFrames = sAnims_DarumakaGalarian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(DarumakaGalarian, 56, 48), + .backPicYOffset = 11, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(DarumakaGalarian), + ICON(DarumakaGalarian, 0), + LEARNSETS(DarumakaGalarian), + .isGalarianForm = TRUE, + .evolutions = EVOLUTION({EVO_ITEM, ITEM_ICE_STONE, SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE}), + }, + +#define DARMANITAN_GALARIAN_MISC_INFO \ + .abilities = {ABILITY_GORILLA_TACTICS, ABILITY_NONE, ABILITY_ZEN_MODE}, \ + .bodyColor = BODY_COLOR_WHITE, \ + .height = 17, \ + .weight = 1200, \ + .pokemonScale = 272, \ + .pokemonOffset = 3, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + LEARNSETS(DarmanitanGalarian), \ + .formChangeTable = sDarmanitanGalarianFormChangeTable, \ + .isGalarianForm = TRUE + + [SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE] = + { + DARMANITAN_GALARIAN_MISC_INFO, + DARMANITAN_STANDARD_MISC_INFO, + .types = { TYPE_ICE, TYPE_ICE}, + .categoryName = _("Zen Charm"), + .description = COMPOUND_STRING( + ""), + FRONT_PIC(DarmanitanGalarianStandardMode, 56, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_DarmanitanGalarianStandardMode, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(DarmanitanGalarianStandardMode, 56, 64), + .backPicYOffset = 2, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(DarmanitanGalarianStandardMode), + ICON(DarmanitanGalarianStandardMode, 0), }, - [SPECIES_TORNADUS_INCARNATE] = + [SPECIES_DARMANITAN_GALARIAN_ZEN_MODE] = { - .baseHP = 79, - .baseAttack = 115, - .baseDefense = 70, - .baseSpeed = 111, - .baseSpAttack = 125, - .baseSpDefense = 80, - .types = { TYPE_FLYING, TYPE_FLYING}, - .catchRate = 3, - .expYield = 261, - .evYield_Attack = 3, - .genderRatio = MON_MALE, - .eggCycles = 120, - .friendship = 90, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_PRANKSTER, ABILITY_NONE, ABILITY_DEFIANT}, + DARMANITAN_GALARIAN_MISC_INFO, + DARMANITAN_ZEN_MODE_MISC_INFO, + .baseHP = 105, + .baseAttack = 160, + .baseDefense = 55, + .baseSpeed = 135, + .baseSpAttack = 30, + .baseSpDefense = 55, + .types = { TYPE_ICE, TYPE_FIRE}, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(DarmanitanGalarianZenMode, 48, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_DarmanitanGalarianZenMode, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(DarmanitanGalarianZenMode, 64, 64), + .backPicYOffset = 1, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(DarmanitanGalarianZenMode), + ICON(DarmanitanGalarianZenMode, 0), + }, +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_DARUMAKA + +#if P_FAMILY_MARACTUS + [SPECIES_MARACTUS] = + { + .baseHP = 75, + .baseAttack = 86, + .baseDefense = 67, + .baseSpeed = 60, + .baseSpAttack = 106, + .baseSpDefense = 67, + .types = { TYPE_GRASS, TYPE_GRASS}, + .catchRate = 255, + .expYield = 161, + .evYield_SpAttack = 2, + .itemRare = ITEM_MIRACLE_SEED, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, + .abilities = {ABILITY_WATER_ABSORB, ABILITY_CHLOROPHYLL, ABILITY_STORM_DRAIN}, .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_THUNDURUS_INCARNATE] = + .speciesName = _("Maractus"), + .cryId = CRY_MARACTUS, + .natDexNum = NATIONAL_DEX_MARACTUS, + .categoryName = _("Cactus"), + .height = 10, + .weight = 280, + .description = COMPOUND_STRING( + "Arid regions are their habitat.\n" + "When it moves rhythmically, it makes a\n" + "sound similar to maracas, making the\n" + "surprised Pokémon flee."), + .pokemonScale = 305, + .pokemonOffset = 6, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Maractus, 56, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Maractus, + .frontAnimId = ANIM_H_JUMPS_V_STRETCH, + BACK_PIC(Maractus, 64, 64), + .backPicYOffset = 2, + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, + PALETTE(Maractus), + ICON(Maractus, 1), + .footprint = gMonFootprint_Maractus, + LEARNSETS(Maractus), + }, +#endif //P_FAMILY_MARACTUS + +#if P_FAMILY_DWEBBLE + [SPECIES_DWEBBLE] = { - .baseHP = 79, - .baseAttack = 115, - .baseDefense = 70, - .baseSpeed = 111, - .baseSpAttack = 125, - .baseSpDefense = 80, - .types = { TYPE_ELECTRIC, TYPE_FLYING}, - .catchRate = 3, - .expYield = 261, - .evYield_Attack = 3, - .genderRatio = MON_MALE, - .eggCycles = 120, - .friendship = 90, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_PRANKSTER, ABILITY_NONE, ABILITY_DEFIANT}, - .bodyColor = BODY_COLOR_BLUE, + .baseHP = 50, + .baseAttack = 65, + .baseDefense = 85, + .baseSpeed = 55, + .baseSpAttack = 35, + .baseSpDefense = 35, + .types = { TYPE_BUG, TYPE_ROCK}, + .catchRate = 190, + .expYield = 65, + .evYield_Defense = 1, + .itemRare = ITEM_HARD_STONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_STURDY, ABILITY_SHELL_ARMOR, ABILITY_WEAK_ARMOR}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, + .speciesName = _("Dwebble"), + .cryId = CRY_DWEBBLE, + .natDexNum = NATIONAL_DEX_DWEBBLE, + .categoryName = _("Rock Inn"), + .height = 3, + .weight = 145, + .description = COMPOUND_STRING( + "It makes a hole in a stone of a suitable\n" + "size. If that rock breaks, the Pokémon\n" + "remains agitated until it locates\n" + "a replacement."), + .pokemonScale = 530, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Dwebble, 40, 40), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Dwebble, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Dwebble, 56, 32), + .backPicYOffset = 17, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Dwebble), + ICON(Dwebble, 0), + .footprint = gMonFootprint_Dwebble, + LEARNSETS(Dwebble), + .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_CRUSTLE}), }, - [SPECIES_RESHIRAM] = + [SPECIES_CRUSTLE] = { - .baseHP = 100, - .baseAttack = 120, - .baseDefense = 100, - .baseSpeed = 90, - .baseSpAttack = 150, - .baseSpDefense = 120, - .types = { TYPE_DRAGON, TYPE_FIRE}, - .catchRate = 3, - .expYield = 306, - .evYield_SpAttack = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_TURBOBLAZE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_WHITE, + .baseHP = 70, + .baseAttack = P_UPDATED_STATS >= GEN_7 ? 105 : 95, + .baseDefense = 125, + .baseSpeed = 45, + .baseSpAttack = 65, + .baseSpDefense = 75, + .types = { TYPE_BUG, TYPE_ROCK}, + .catchRate = 75, + .expYield = 170, + .evYield_Defense = 2, + .itemRare = ITEM_HARD_STONE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_STURDY, ABILITY_SHELL_ARMOR, ABILITY_WEAK_ARMOR}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_ZEKROM] = + .speciesName = _("Crustle"), + .cryId = CRY_CRUSTLE, + .natDexNum = NATIONAL_DEX_CRUSTLE, + .categoryName = _("Stone Home"), + .height = 14, + .weight = 2000, + .description = COMPOUND_STRING( + "Competing for territory, Crustle fight\n" + "viciously. The one whose boulder is\n" + "broken is the loser of the battle and\n" + "begins to weaken."), + .pokemonScale = 265, + .pokemonOffset = 2, + .trainerScale = 262, + .trainerOffset = 0, + FRONT_PIC(Crustle, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Crustle, + .frontAnimId = ANIM_H_SLIDE_SLOW, + BACK_PIC(Crustle, 64, 56), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(Crustle), + ICON(Crustle, 2), + .footprint = gMonFootprint_Crustle, + LEARNSETS(Crustle), + }, +#endif //P_FAMILY_DWEBBLE + +#if P_FAMILY_SCRAGGY + [SPECIES_SCRAGGY] = { - .baseHP = 100, - .baseAttack = 150, - .baseDefense = 120, - .baseSpeed = 90, - .baseSpAttack = 120, - .baseSpDefense = 100, - .types = { TYPE_DRAGON, TYPE_ELECTRIC}, - .catchRate = 3, - .expYield = 306, - .evYield_Attack = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_TERAVOLT, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLACK, + .baseHP = 50, + .baseAttack = 75, + .baseDefense = 70, + .baseSpeed = 48, + .baseSpAttack = 35, + .baseSpDefense = 70, + .types = { TYPE_DARK, TYPE_FIGHTING}, + .catchRate = 180, + .expYield = 70, + .evYield_Attack = 1, + .itemRare = ITEM_SHED_SHELL, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = 35, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_SHED_SKIN, ABILITY_MOXIE, ABILITY_INTIMIDATE}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, + .speciesName = _("Scraggy"), + .cryId = CRY_SCRAGGY, + .natDexNum = NATIONAL_DEX_SCRAGGY, + .categoryName = _("Shedding"), + .height = 6, + .weight = 118, + .description = COMPOUND_STRING( + "Its skin has a rubbery elasticity, so it\n" + "can reduce damage by defensively\n" + "pulling its skin up to its neck.\n" + "Its skull is massively thick."), + .pokemonScale = 422, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Scraggy, 40, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Scraggy, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Scraggy, 48, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, + PALETTE(Scraggy), + ICON(Scraggy, 2), + .footprint = gMonFootprint_Scraggy, + LEARNSETS(Scraggy), + .evolutions = EVOLUTION({EVO_LEVEL, 39, SPECIES_SCRAFTY}), }, - [SPECIES_LANDORUS_INCARNATE] = + [SPECIES_SCRAFTY] = { - .baseHP = 89, - .baseAttack = 125, - .baseDefense = 90, - .baseSpeed = 101, - .baseSpAttack = 115, + .baseHP = 65, + .baseAttack = 90, + .baseDefense = 115, + .baseSpeed = 58, + .baseSpAttack = 45, + .baseSpDefense = 115, + .types = { TYPE_DARK, TYPE_FIGHTING}, + .catchRate = 90, + .expYield = 171, + .evYield_Defense = 1, + .evYield_SpDefense = 1, + .itemRare = ITEM_SHED_SHELL, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_SHED_SKIN, ABILITY_MOXIE, ABILITY_INTIMIDATE}, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + .speciesName = _("Scrafty"), + .cryId = CRY_SCRAFTY, + .natDexNum = NATIONAL_DEX_SCRAFTY, + .categoryName = _("Hoodlum"), + .height = 11, + .weight = 300, + .description = COMPOUND_STRING( + "Groups of them beat up anything that\n" + "enters their territory. The one with the\n" + "biggest crest is the group leader, and\n" + "is the most respected."), + .pokemonScale = 320, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Scrafty, 48, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Scrafty, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Scrafty, 48, 64), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_GROW, + PALETTE(Scrafty), + ICON(Scrafty, 0), + .footprint = gMonFootprint_Scrafty, + LEARNSETS(Scrafty), + }, +#endif //P_FAMILY_SCRAGGY + +#if P_FAMILY_SIGILYPH + [SPECIES_SIGILYPH] = + { + .baseHP = 72, + .baseAttack = 58, + .baseDefense = 80, + .baseSpeed = 97, + .baseSpAttack = 103, .baseSpDefense = 80, - .types = { TYPE_GROUND, TYPE_FLYING}, - .catchRate = 3, - .expYield = 270, - .evYield_SpAttack = 3, - .genderRatio = MON_MALE, - .eggCycles = 120, - .friendship = 90, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_SAND_FORCE, ABILITY_NONE, ABILITY_SHEER_FORCE}, - .bodyColor = BODY_COLOR_BROWN, + .types = { TYPE_PSYCHIC, TYPE_FLYING}, + .catchRate = 45, + .expYield = 172, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + .abilities = {ABILITY_WONDER_SKIN, ABILITY_MAGIC_GUARD, ABILITY_TINTED_LENS}, + .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, + .speciesName = _("Sigilyph"), + .cryId = CRY_SIGILYPH, + .natDexNum = NATIONAL_DEX_SIGILYPH, + .categoryName = _("Avianoid"), + .height = 14, + .weight = 140, + .description = COMPOUND_STRING( + "The guardians of an ancient city, they\n" + "always fly the same route while keeping\n" + "watch for invaders. They use their\n" + "psychic power to attack enemies."), + .pokemonScale = 265, + .pokemonOffset = 2, + .trainerScale = 262, + .trainerOffset = 0, + FRONT_PIC(Sigilyph, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Sigilyph, + .frontAnimId = ANIM_FIGURE_8, + .enemyMonElevation = 7, + BACK_PIC(Sigilyph, 64, 64), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(Sigilyph), + ICON(Sigilyph, 0), + .footprint = gMonFootprint_Sigilyph, + LEARNSETS(Sigilyph), + }, +#endif //P_FAMILY_SIGILYPH + +#if P_FAMILY_YAMASK +#define YAMASK_MISC_INFO \ + .catchRate = 190, \ + .expYield = 61, \ + .evYield_Defense = 1, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 25, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS}, \ + .bodyColor = BODY_COLOR_BLACK, \ + .noFlip = FALSE, \ + .speciesName = _("Yamask"), \ + .cryId = CRY_YAMASK, \ + .natDexNum = NATIONAL_DEX_YAMASK, \ + .categoryName = _("Spirit"), \ + .height = 5, \ + .weight = 15, \ + .pokemonScale = 432, \ + .pokemonOffset = 13, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Yamask, \ + .formSpeciesIdTable = sYamaskFormSpeciesIdTable - [SPECIES_KYUREM] = + [SPECIES_YAMASK] = { - .baseHP = 125, - .baseAttack = 130, - .baseDefense = 90, - .baseSpeed = 95, - .baseSpAttack = 130, - .baseSpDefense = 90, - .types = { TYPE_DRAGON, TYPE_ICE}, - .catchRate = 3, - .expYield = 297, - .evYield_HP = 1, - .evYield_Attack = 1, - .evYield_SpAttack = 1, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_PRESSURE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = TRUE, - .flags = SPECIES_FLAG_LEGENDARY, + YAMASK_MISC_INFO, + .baseHP = 38, + .baseAttack = 30, + .baseDefense = 85, + .baseSpeed = 30, + .baseSpAttack = 55, + .baseSpDefense = 65, + .types = { TYPE_GHOST, TYPE_GHOST}, + .itemRare = ITEM_SPELL_TAG, + .abilities = {ABILITY_MUMMY, ABILITY_NONE}, + .description = COMPOUND_STRING( + "These Pokémon arose from the spirits\n" + "of people interred in graves in past ages.\n" + "Each of them carries a mask that used\n" + "to be its face when it was human."), + FRONT_PIC(Yamask, 48, 40), + .frontPicYOffset = 15, + .frontAnimFrames = sAnims_Yamask, + .frontAnimId = ANIM_V_SLIDE_WOBBLE, + .enemyMonElevation = 10, + BACK_PIC(Yamask, 40, 40), + .backPicYOffset = 14, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Yamask), + ICON(Yamask, 0), + LEARNSETS(Yamask), + .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_COFAGRIGUS}), }, - [SPECIES_KELDEO_ORDINARY] = + [SPECIES_COFAGRIGUS] = { - .baseHP = 91, - .baseAttack = 72, - .baseDefense = 90, - .baseSpeed = 108, - .baseSpAttack = 129, - .baseSpDefense = 90, - .types = { TYPE_WATER, TYPE_FIGHTING}, - .catchRate = 3, - .expYield = 261, - .evYield_SpAttack = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 80, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_JUSTIFIED, ABILITY_NONE}, + .baseHP = 58, + .baseAttack = 50, + .baseDefense = 145, + .baseSpeed = 30, + .baseSpAttack = 95, + .baseSpDefense = 105, + .types = { TYPE_GHOST, TYPE_GHOST}, + .catchRate = 90, + .expYield = 169, + .evYield_Defense = 2, + .itemRare = ITEM_SPELL_TAG, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS}, + .abilities = {ABILITY_MUMMY, ABILITY_NONE}, .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, - .flags = SPECIES_FLAG_MYTHICAL, - }, - - [SPECIES_MELOETTA_ARIA] = + .speciesName = _("Cofagrigus"), + .cryId = CRY_COFAGRIGUS, + .natDexNum = NATIONAL_DEX_COFAGRIGUS, + .categoryName = _("Coffin"), + .height = 17, + .weight = 765, + .description = COMPOUND_STRING( + "Grave robbers who mistake them for\n" + "real coffins and get too close end up\n" + "trapped inside their bodies. Their bodies\n" + "are covered in pure gold."), + .pokemonScale = 259, + .pokemonOffset = 0, + .trainerScale = 290, + .trainerOffset = 1, + FRONT_PIC(Cofagrigus, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Cofagrigus, + .frontAnimId = ANIM_GLOW_BLACK, + BACK_PIC(Cofagrigus, 56, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, + PALETTE(Cofagrigus), + ICON(Cofagrigus, 0), + .footprint = gMonFootprint_Cofagrigus, + LEARNSETS(Cofagrigus), + }, + +#if P_GALARIAN_FORMS + [SPECIES_YAMASK_GALARIAN] = { - .baseHP = 100, - .baseAttack = 77, - .baseDefense = 77, - .baseSpeed = 90, - .baseSpAttack = 128, - .baseSpDefense = 128, - .types = { TYPE_NORMAL, TYPE_PSYCHIC}, - .catchRate = 3, - .expYield = 270, - .evYield_Speed = 1, - .evYield_SpAttack = 1, - .evYield_SpDefense = 1, - .itemCommon = ITEM_STAR_PIECE, - .itemRare = ITEM_STAR_PIECE, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 100, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_SERENE_GRACE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = TRUE, - .flags = SPECIES_FLAG_MYTHICAL, + YAMASK_MISC_INFO, + .baseHP = 38, + .baseAttack = 55, + .baseDefense = 85, + .baseSpeed = 30, + .baseSpAttack = 30, + .baseSpDefense = 65, + .types = { TYPE_GROUND, TYPE_GHOST}, + .abilities = {ABILITY_WANDERING_SPIRIT, ABILITY_NONE}, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(YamaskGalarian, 48, 40), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_YamaskGalarian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 4, + BACK_PIC(YamaskGalarian, 40, 40), + .backPicYOffset = 13, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(YamaskGalarian), + ICON(YamaskGalarian, 2), + LEARNSETS(YamaskGalarian), + .isGalarianForm = TRUE, + .evolutions = EVOLUTION({EVO_SCRIPT_TRIGGER_DMG, 49, SPECIES_RUNERIGUS}), }, - [SPECIES_GENESECT] = GENESECT_SPECIES_INFO, -#endif - -#if P_GEN_6_POKEMON == TRUE - [SPECIES_CHESPIN] = + [SPECIES_RUNERIGUS] = { - .baseHP = 56, - .baseAttack = 61, - .baseDefense = 65, - .baseSpeed = 38, - .baseSpAttack = 48, + .baseHP = 58, + .baseAttack = 95, + .baseDefense = 145, + .baseSpeed = 30, + .baseSpAttack = 50, + .baseSpDefense = 105, + .types = { TYPE_GROUND, TYPE_GHOST}, + .catchRate = 90, + .expYield = 169, + .evYield_Defense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS}, + .abilities = {ABILITY_WANDERING_SPIRIT, ABILITY_NONE}, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + .speciesName = _("Runerigus"), + .cryId = CRY_RUNERIGUS, + .natDexNum = NATIONAL_DEX_RUNERIGUS, + .categoryName = _("Grudge"), + .height = 16, + .weight = 666, + .description = COMPOUND_STRING( + "A powerful curse was woven into an ancient\n" + "painting. After absorbing the spirit of\n" + "a Yamask, the painting began to move."), + .pokemonScale = 259, + .pokemonOffset = 1, + .trainerScale = 296, + .trainerOffset = 1, + FRONT_PIC(Runerigus, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Runerigus, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 5, + BACK_PIC(Runerigus, 64, 48), + .backPicYOffset = 9, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Runerigus), + ICON(Runerigus, 2), + .footprint = gMonFootprint_Runerigus, + LEARNSETS(Runerigus), + }, +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_YAMASK + +#if P_FAMILY_TIRTOUGA + [SPECIES_TIRTOUGA] = + { + .baseHP = 54, + .baseAttack = 78, + .baseDefense = 103, + .baseSpeed = 22, + .baseSpAttack = 53, .baseSpDefense = 45, - .types = { TYPE_GRASS, TYPE_GRASS}, + .types = { TYPE_WATER, TYPE_ROCK}, .catchRate = 45, - .expYield = 63, + .expYield = 71, .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, + .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_BULLETPROOF}, - .bodyColor = BODY_COLOR_GREEN, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3}, + .abilities = {ABILITY_SOLID_ROCK, ABILITY_STURDY, ABILITY_SWIFT_SWIM}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Tirtouga"), + .cryId = CRY_TIRTOUGA, + .natDexNum = NATIONAL_DEX_TIRTOUGA, + .categoryName = _("Prototurtle"), + .height = 7, + .weight = 165, + .description = COMPOUND_STRING( + "Reputed to be the ancestor of most\n" + "turtle Pokémon, it lived in warm seas\n" + "about a hundred million years ago.\n" + "It was restored from a fossil."), + .pokemonScale = 365, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Tirtouga, 56, 40), + .frontPicYOffset = 16, + .frontAnimFrames = sAnims_Tirtouga, + .frontAnimId = ANIM_RISING_WOBBLE, + BACK_PIC(Tirtouga, 64, 32), + .backPicYOffset = 16, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Tirtouga), + ICON(Tirtouga, 2), + .footprint = gMonFootprint_Tirtouga, + LEARNSETS(Tirtouga), + .evolutions = EVOLUTION({EVO_LEVEL, 37, SPECIES_CARRACOSTA}), }, - [SPECIES_QUILLADIN] = + [SPECIES_CARRACOSTA] = { - .baseHP = 61, - .baseAttack = 78, - .baseDefense = 95, - .baseSpeed = 57, - .baseSpAttack = 56, - .baseSpDefense = 58, - .types = { TYPE_GRASS, TYPE_GRASS}, + .baseHP = 74, + .baseAttack = 108, + .baseDefense = 133, + .baseSpeed = 32, + .baseSpAttack = 83, + .baseSpDefense = 65, + .types = { TYPE_WATER, TYPE_ROCK}, .catchRate = 45, - .expYield = 142, + .expYield = 173, .evYield_Defense = 2, .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, + .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_BULLETPROOF}, - .bodyColor = BODY_COLOR_GREEN, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3}, + .abilities = {ABILITY_SOLID_ROCK, ABILITY_STURDY, ABILITY_SWIFT_SWIM}, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + .speciesName = _("Carracosta"), + .cryId = CRY_CARRACOSTA, + .natDexNum = NATIONAL_DEX_CARRACOSTA, + .categoryName = _("Prototurtle"), + .height = 12, + .weight = 810, + .description = COMPOUND_STRING( + "They can live both in the ocean and\n" + "on land. Incredible jaw strength enables\n" + "them to chew up steel beams and rocks\n" + "along with their prey."), + .pokemonScale = 282, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Carracosta, 64, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Carracosta, + .frontAnimId = ANIM_H_SHAKE_SLOW, + BACK_PIC(Carracosta, 64, 40), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(Carracosta), + ICON(Carracosta, 2), + .footprint = gMonFootprint_Carracosta, + LEARNSETS(Carracosta), + }, +#endif //P_FAMILY_TIRTOUGA + +#if P_FAMILY_ARCHEN + [SPECIES_ARCHEN] = + { + .baseHP = 55, + .baseAttack = 112, + .baseDefense = 45, + .baseSpeed = 70, + .baseSpAttack = 74, + .baseSpDefense = 45, + .types = { TYPE_ROCK, TYPE_FLYING}, + .catchRate = 45, + .expYield = 71, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 30, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_WATER_3}, + .abilities = {ABILITY_DEFEATIST, ABILITY_NONE}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, + .speciesName = _("Archen"), + .cryId = CRY_ARCHEN, + .natDexNum = NATIONAL_DEX_ARCHEN, + .categoryName = _("First Bird"), + .height = 5, + .weight = 95, + .description = COMPOUND_STRING( + "Said to be the ancestor of all bird\n" + "Pokémon, Archen itself could not actually\n" + "fly but moved by hopping from treetop\n" + "to treetop."), + .pokemonScale = 432, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Archen, 56, 40), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Archen, + .frontAnimId = ANIM_V_JUMPS_SMALL, + BACK_PIC(Archen, 64, 32), + .backPicYOffset = 16, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Archen), + ICON(Archen, 0), + .footprint = gMonFootprint_Archen, + LEARNSETS(Archen), + .evolutions = EVOLUTION({EVO_LEVEL, 37, SPECIES_ARCHEOPS}), }, - [SPECIES_CHESNAUGHT] = + [SPECIES_ARCHEOPS] = { - .baseHP = 88, - .baseAttack = 107, - .baseDefense = 122, - .baseSpeed = 64, - .baseSpAttack = 74, - .baseSpDefense = 75, - .types = { TYPE_GRASS, TYPE_FIGHTING}, + .baseHP = 75, + .baseAttack = 140, + .baseDefense = 65, + .baseSpeed = 110, + .baseSpAttack = 112, + .baseSpDefense = 65, + .types = { TYPE_ROCK, TYPE_FLYING}, .catchRate = 45, - .expYield = 239, - .evYield_Defense = 3, + .expYield = 177, + .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 30, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_WATER_3}, + .abilities = {ABILITY_DEFEATIST, ABILITY_NONE}, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + .speciesName = _("Archeops"), + .cryId = CRY_ARCHEOPS, + .natDexNum = NATIONAL_DEX_ARCHEOPS, + .categoryName = _("First Bird"), + .height = 14, + .weight = 320, + .description = COMPOUND_STRING( + "They are intelligent and will cooperate\n" + "to catch prey. When one Archeops\n" + "had the prey cornered, another would\n" + "swoop on it."), + .pokemonScale = 265, + .pokemonOffset = 2, + .trainerScale = 262, + .trainerOffset = 0, + FRONT_PIC(Archeops, 64, 64), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Archeops, + .frontAnimId = ANIM_RISING_WOBBLE, + .enemyMonElevation = 8, + BACK_PIC(Archeops, 64, 40), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_V_STRETCH, + PALETTE(Archeops), + ICON(Archeops, 0), + .footprint = gMonFootprint_Archeops, + LEARNSETS(Archeops), + }, +#endif //P_FAMILY_ARCHEN + +#if P_FAMILY_TRUBBISH + [SPECIES_TRUBBISH] = + { + .baseHP = 50, + .baseAttack = 50, + .baseDefense = 62, + .baseSpeed = 65, + .baseSpAttack = 40, + .baseSpDefense = 62, + .types = { TYPE_POISON, TYPE_POISON}, + .catchRate = 190, + .expYield = 66, + .evYield_Speed = 1, + .itemRare = ITEM_SILK_SCARF, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_BULLETPROOF}, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_STENCH, ABILITY_STICKY_HOLD, ABILITY_AFTERMATH}, .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, + .speciesName = _("Trubbish"), + .cryId = CRY_TRUBBISH, + .natDexNum = NATIONAL_DEX_TRUBBISH, + .categoryName = _("Trash Bag"), + .height = 6, + .weight = 310, + .description = COMPOUND_STRING( + "It gorges on trash until its stomach\n" + "is full. Then it belches toxic gas.\n" + "An unlucky whiff of this gas will put\n" + "a person in the hospital."), + .pokemonScale = 422, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Trubbish, 48, 40), + .frontPicYOffset = 15, + .frontAnimFrames = sAnims_Trubbish, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Trubbish, 48, 48), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_SHRINK_GROW, + PALETTE(Trubbish), + ICON(Trubbish, 1), + .footprint = gMonFootprint_Trubbish, + LEARNSETS(Trubbish), + .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_GARBODOR}), }, - [SPECIES_FENNEKIN] = +#define GARBODOR_MISC_INFO \ + .baseHP = 80, \ + .baseAttack = 95, \ + .baseDefense = 82, \ + .baseSpeed = 75, \ + .baseSpAttack = 60, \ + .baseSpDefense = 82, \ + .types = {TYPE_POISON, TYPE_POISON}, \ + .catchRate = 60, \ + .expYield = 166, \ + .evYield_Attack = 2, \ + .itemCommon = ITEM_SILK_SCARF, \ + .itemRare = ITEM_BLACK_SLUDGE, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = {EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, \ + .abilities = {ABILITY_STENCH, ABILITY_WEAK_ARMOR, ABILITY_AFTERMATH}, \ + .bodyColor = BODY_COLOR_GREEN, \ + .noFlip = TRUE, \ + .speciesName = _("Garbodor"), \ + .cryId = CRY_GARBODOR, \ + .natDexNum = NATIONAL_DEX_GARBODOR, \ + .categoryName = _("Trash Heap"), \ + .footprint = gMonFootprint_Garbodor, \ + LEARNSETS(Garbodor), \ + .formSpeciesIdTable = sGarbodorFormSpeciesIdTable, \ + .formChangeTable = sGarbodorFormChangeTable + + [SPECIES_GARBODOR] = + { + GARBODOR_MISC_INFO, + .height = 19, + .weight = 1073, + .description = COMPOUND_STRING( + "Beware the poisonous liquid it shoots\n" + "from its right arm. If even a little of it\n" + "gets on you, you'll experience the full\n" + "effects of this unidentified toxin."), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 326, + .trainerOffset = 4, + FRONT_PIC(Garbodor, 64, 64), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Garbodor, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Garbodor, 64, 64), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_H_STRETCH, + PALETTE(Garbodor), + ICON(Garbodor, 1), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_GARBODOR_GIGANTAMAX] = + { + GARBODOR_MISC_INFO, + .height = 210, + .weight = 0, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 326, + .trainerOffset = 4, + FRONT_PIC(GarbodorGigantamax, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_GarbodorGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(GarbodorGigantamax, 64, 64), + .backPicYOffset = 2, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(GarbodorGigantamax), + ICON(GarbodorGigantamax, 0), + .isGigantamax = TRUE, + }, +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_TRUBBISH + +#if P_FAMILY_ZORUA +#define ZORUA_MISC_INFO \ + .catchRate = 75, \ + .expYield = 66, \ + .evYield_SpAttack = 1, \ + .genderRatio = PERCENT_FEMALE(12.5), \ + .eggCycles = 25, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_SLOW, \ + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, \ + .abilities = {ABILITY_ILLUSION, ABILITY_NONE}, \ + .bodyColor = BODY_COLOR_GRAY, \ + .noFlip = FALSE, \ + .speciesName = _("Zorua"), \ + .cryId = CRY_ZORUA, \ + .natDexNum = NATIONAL_DEX_ZORUA, \ + .height = 7, \ + .weight = 125, \ + .pokemonScale = 365, \ + .pokemonOffset = 12, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Zorua, \ + .formSpeciesIdTable = sZoruaFormSpeciesIdTable + +#define ZOROARK_MISC_INFO \ + .catchRate = 45, \ + .expYield = 179, \ + .evYield_SpAttack = 2, \ + .genderRatio = PERCENT_FEMALE(12.5), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_SLOW, \ + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, \ + .abilities = {ABILITY_ILLUSION, ABILITY_NONE}, \ + .bodyColor = BODY_COLOR_GRAY, \ + .noFlip = FALSE, \ + .speciesName = _("Zoroark"), \ + .cryId = CRY_ZOROARK, \ + .natDexNum = NATIONAL_DEX_ZOROARK, \ + .height = 16, \ + .pokemonScale = 259, \ + .pokemonOffset = 1, \ + .trainerScale = 296, \ + .trainerOffset = 1, \ + .footprint = gMonFootprint_Zoroark, \ + .formSpeciesIdTable = sZoroarkFormSpeciesIdTable + + [SPECIES_ZORUA] = { + ZORUA_MISC_INFO, .baseHP = 40, - .baseAttack = 45, + .baseAttack = 65, .baseDefense = 40, - .baseSpeed = 60, - .baseSpAttack = 62, + .baseSpeed = 65, + .baseSpAttack = 80, + .baseSpDefense = 40, + .types = { TYPE_DARK, TYPE_DARK}, + .categoryName = _("Tricky Fox"), + .description = COMPOUND_STRING( + "To protect themselves from danger, they\n" + "hide their true identities by transforming\n" + "into people and Pokémon. Apparently, it\n" + "often transforms into a silent child."), + FRONT_PIC(Zorua, 40, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Zorua, + .frontAnimId = ANIM_CIRCULAR_VIBRATE, + BACK_PIC(Zorua, 64, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Zorua), + ICON(Zorua, 0), + LEARNSETS(Zorua), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_ZOROARK}), + }, + + [SPECIES_ZOROARK] = + { + ZOROARK_MISC_INFO, + .baseHP = 60, + .baseAttack = 105, + .baseDefense = 60, + .baseSpeed = 105, + .baseSpAttack = 120, .baseSpDefense = 60, - .types = { TYPE_FIRE, TYPE_FIRE}, - .catchRate = 45, - .expYield = 61, - .evYield_SpAttack = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, + .types = { TYPE_DARK, TYPE_DARK}, + .categoryName = _("Illusion Fox"), + .weight = 811, + .description = COMPOUND_STRING( + "Bonds between these Pokémon are very\n" + "strong. It protects the safety of its\n" + "pack by tricking its opponents. They\n" + "defend their lair with illusory scenery."), + FRONT_PIC(Zoroark, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Zoroark, + .frontAnimId = ANIM_FLICKER_INCREASING, + BACK_PIC(Zoroark, 64, 56), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Zoroark), + ICON(Zoroark, 0), + LEARNSETS(Zoroark), + }, + +#if P_HISUIAN_FORMS + [SPECIES_ZORUA_HISUIAN] = + { + ZORUA_MISC_INFO, + .baseHP = 35, + .baseAttack = 60, + .baseDefense = 40, + .baseSpeed = 70, + .baseSpAttack = 85, + .baseSpDefense = 40, + .types = { TYPE_NORMAL, TYPE_GHOST}, + .categoryName = _("Spiteful Fox"), + .description = COMPOUND_STRING( + ""), + FRONT_PIC(ZoruaHisuian, 48, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_ZoruaHisuian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(ZoruaHisuian, 56, 64), + .backPicYOffset = 1, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(ZoruaHisuian), + ICON(ZoruaHisuian, 0), + LEARNSETS(ZoruaHisuian), + .isHisuianForm = TRUE, + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_ZOROARK_HISUIAN}), + }, + + [SPECIES_ZOROARK_HISUIAN] = + { + ZOROARK_MISC_INFO, + .baseHP = 55, + .baseAttack = 100, + .baseDefense = 60, + .baseSpeed = 110, + .baseSpAttack = 125, + .baseSpDefense = 60, + .types = { TYPE_NORMAL, TYPE_GHOST}, + .categoryName = _("Baneful Fox"), + .weight = 730, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(ZoroarkHisuian, 64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_ZoroarkHisuian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(ZoroarkHisuian, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(ZoroarkHisuian), + ICON(ZoroarkHisuian, 0), + LEARNSETS(ZoroarkHisuian), + .isHisuianForm = TRUE, + }, +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_ZORUA + +#if P_FAMILY_MINCCINO + [SPECIES_MINCCINO] = + { + .baseHP = 55, + .baseAttack = 50, + .baseDefense = 40, + .baseSpeed = 75, + .baseSpAttack = 40, + .baseSpDefense = 40, + .types = { TYPE_NORMAL, TYPE_NORMAL}, + .catchRate = 255, + .expYield = 60, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, + .growthRate = GROWTH_FAST, .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_MAGICIAN}, - .bodyColor = BODY_COLOR_RED, + .abilities = {ABILITY_CUTE_CHARM, ABILITY_TECHNICIAN, ABILITY_SKILL_LINK}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, + .speciesName = _("Minccino"), + .cryId = CRY_MINCCINO, + .natDexNum = NATIONAL_DEX_MINCCINO, + .categoryName = _("Chinchilla"), + .height = 4, + .weight = 58, + .description = COMPOUND_STRING( + "These Pokémon prefer a tidy habitat.\n" + "They greet one another by rubbing each\n" + "other with their tails, which are always\n" + "kept well groomed and clean."), + .pokemonScale = 491, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Minccino, 56, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Minccino, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Minccino, 56, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Minccino), + ICON(Minccino, 0), + .footprint = gMonFootprint_Minccino, + LEARNSETS(Minccino), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_SHINY_STONE, SPECIES_CINCCINO}), }, - [SPECIES_BRAIXEN] = + [SPECIES_CINCCINO] = { - .baseHP = 59, - .baseAttack = 59, - .baseDefense = 58, - .baseSpeed = 73, - .baseSpAttack = 90, - .baseSpDefense = 70, - .types = { TYPE_FIRE, TYPE_FIRE}, - .catchRate = 45, - .expYield = 143, - .evYield_SpAttack = 2, - .genderRatio = PERCENT_FEMALE(12.5), + .baseHP = 75, + .baseAttack = 95, + .baseDefense = 60, + .baseSpeed = 115, + .baseSpAttack = 65, + .baseSpDefense = 60, + .types = { TYPE_NORMAL, TYPE_NORMAL}, + .catchRate = 60, + .expYield = 165, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_CUTE_CHARM, ABILITY_TECHNICIAN, ABILITY_SKILL_LINK}, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = TRUE, + .speciesName = _("Cinccino"), + .cryId = CRY_CINCCINO, + .natDexNum = NATIONAL_DEX_CINCCINO, + .categoryName = _("Scarf"), + .height = 5, + .weight = 75, + .description = COMPOUND_STRING( + "Their white fur feels amazing to touch.\n" + "Cinccino's body is coated in a special\n" + "oil that repels dust and helps it deflect\n" + "attacks, such as punches."), + .pokemonScale = 432, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Cinccino, 56, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Cinccino, + .frontAnimId = ANIM_V_SLIDE, + BACK_PIC(Cinccino, 64, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, + PALETTE(Cinccino), + ICON(Cinccino, 0), + .footprint = gMonFootprint_Cinccino, + LEARNSETS(Cinccino), + }, +#endif //P_FAMILY_MINCCINO + +#if P_FAMILY_GOTHITA + [SPECIES_GOTHITA] = + { + .baseHP = 45, + .baseAttack = 30, + .baseDefense = 50, + .baseSpeed = 45, + .baseSpAttack = 55, + .baseSpDefense = 65, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, + .catchRate = 200, + .expYield = 58, + .evYield_SpDefense = 1, + .genderRatio = PERCENT_FEMALE(75), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_MAGICIAN}, - .bodyColor = BODY_COLOR_RED, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_FRISK, ABILITY_COMPETITIVE, ABILITY_SHADOW_TAG}, + .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, + .speciesName = _("Gothita"), + .cryId = CRY_GOTHITA, + .natDexNum = NATIONAL_DEX_GOTHITA, + .categoryName = _("Fixation"), + .height = 4, + .weight = 58, + .description = COMPOUND_STRING( + "They intently observe both Trainers and\n" + "Pokémon. Apparently, Gothita are looking\n" + "at something that only they can see. Their\n" + "ribbonlike feelers increase their power."), + .pokemonScale = 491, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Gothita, 40, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Gothita, + .frontAnimId = ANIM_V_JUMPS_SMALL, + BACK_PIC(Gothita, 48, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Gothita), + ICON(Gothita, 2), + .footprint = gMonFootprint_Gothita, + LEARNSETS(Gothita), + .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_GOTHORITA}), }, - [SPECIES_DELPHOX] = + [SPECIES_GOTHORITA] = { - .baseHP = 75, - .baseAttack = 69, - .baseDefense = 72, - .baseSpeed = 104, - .baseSpAttack = 114, - .baseSpDefense = 100, - .types = { TYPE_FIRE, TYPE_PSYCHIC}, - .catchRate = 45, - .expYield = 240, - .evYield_SpAttack = 3, - .genderRatio = PERCENT_FEMALE(12.5), + .baseHP = 60, + .baseAttack = 45, + .baseDefense = 70, + .baseSpeed = 55, + .baseSpAttack = 75, + .baseSpDefense = 85, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, + .catchRate = 100, + .expYield = 137, + .evYield_SpDefense = 2, + .genderRatio = PERCENT_FEMALE(75), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_MAGICIAN}, - .bodyColor = BODY_COLOR_RED, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_FRISK, ABILITY_COMPETITIVE, ABILITY_SHADOW_TAG}, + .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, + .speciesName = _("Gothorita"), + .cryId = CRY_GOTHORITA, + .natDexNum = NATIONAL_DEX_GOTHORITA, + .categoryName = _("Manipulate"), + .height = 7, + .weight = 180, + .description = COMPOUND_STRING( + "Starlight is the source of their power.\n" + "They use hypnosis to control people and\n" + "Pokémon. Tales of Gothorita leading them\n" + "astray are told in every corner."), + .pokemonScale = 365, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Gothorita, 48, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Gothorita, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + BACK_PIC(Gothorita, 64, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Gothorita), + ICON(Gothorita, 2), + .footprint = gMonFootprint_Gothorita, + LEARNSETS(Gothorita), + .evolutions = EVOLUTION({EVO_LEVEL, 41, SPECIES_GOTHITELLE}), }, - [SPECIES_FROAKIE] = + [SPECIES_GOTHITELLE] = { - .baseHP = 41, - .baseAttack = 56, - .baseDefense = 40, - .baseSpeed = 71, - .baseSpAttack = 62, - .baseSpDefense = 44, - .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 45, - .expYield = 63, - .evYield_Speed = 1, - .genderRatio = PERCENT_FEMALE(12.5), + .baseHP = 70, + .baseAttack = 55, + .baseDefense = 95, + .baseSpeed = 65, + .baseSpAttack = 95, + .baseSpDefense = 110, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, + .catchRate = 50, + .expYield = 221, + .evYield_SpDefense = 3, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_FRISK, ABILITY_COMPETITIVE, ABILITY_SHADOW_TAG}, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + .speciesName = _("Gothitelle"), + .cryId = CRY_GOTHITELLE, + .natDexNum = NATIONAL_DEX_GOTHITELLE, + .categoryName = _("Astral Body"), + .height = 15, + .weight = 440, + .description = COMPOUND_STRING( + "Starry skies thousands of light-years\n" + "away are visible in the space distorted by\n" + "their intense psychic power. When it learns\n" + "its Trainer's life span, it cries in sadness."), + .pokemonScale = 268, + .pokemonOffset = 2, + .trainerScale = 271, + .trainerOffset = 0, + FRONT_PIC(Gothitelle, 48, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Gothitelle, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Gothitelle, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_H_STRETCH, + PALETTE(Gothitelle), + ICON(Gothitelle, 2), + .footprint = gMonFootprint_Gothitelle, + LEARNSETS(Gothitelle), + }, +#endif //P_FAMILY_GOTHITA + +#if P_FAMILY_SOLOSIS + [SPECIES_SOLOSIS] = + { + .baseHP = 45, + .baseAttack = 30, + .baseDefense = 40, + .baseSpeed = 20, + .baseSpAttack = 105, + .baseSpDefense = 50, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, + .catchRate = 200, + .expYield = 58, + .evYield_SpAttack = 1, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_PROTEAN}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, + .abilities = {ABILITY_OVERCOAT, ABILITY_MAGIC_GUARD, ABILITY_REGENERATOR}, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = TRUE, + .speciesName = _("Solosis"), + .cryId = CRY_SOLOSIS, + .natDexNum = NATIONAL_DEX_SOLOSIS, + .categoryName = _("Cell"), + .height = 3, + .weight = 10, + .description = COMPOUND_STRING( + "Because their bodies are enveloped\n" + "in a special liquid, they are fine in any\n" + "environment, no matter how severe. They\n" + "can use telepathy to talk with others."), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Solosis, 32, 32), + .frontPicYOffset = 17, + .frontAnimFrames = sAnims_Solosis, + .frontAnimId = ANIM_TWIST, + .enemyMonElevation = 14, + BACK_PIC(Solosis, 48, 32), + .backPicYOffset = 19, + .backAnimId = BACK_ANIM_SHRINK_GROW, + PALETTE(Solosis), + ICON(Solosis, 1), + .footprint = gMonFootprint_Solosis, + LEARNSETS(Solosis), + .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_DUOSION}), }, - [SPECIES_FROGADIER] = + [SPECIES_DUOSION] = { - .baseHP = 54, - .baseAttack = 63, - .baseDefense = 52, - .baseSpeed = 97, - .baseSpAttack = 83, - .baseSpDefense = 56, - .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 45, - .expYield = 142, - .evYield_Speed = 2, - .genderRatio = PERCENT_FEMALE(12.5), + .baseHP = 65, + .baseAttack = 40, + .baseDefense = 50, + .baseSpeed = 30, + .baseSpAttack = 125, + .baseSpDefense = 60, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, + .catchRate = 100, + .expYield = 130, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_PROTEAN}, - .bodyColor = BODY_COLOR_BLUE, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, + .abilities = {ABILITY_OVERCOAT, ABILITY_MAGIC_GUARD, ABILITY_REGENERATOR}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, + .speciesName = _("Duosion"), + .cryId = CRY_DUOSION, + .natDexNum = NATIONAL_DEX_DUOSION, + .categoryName = _("Mitosis"), + .height = 6, + .weight = 80, + .description = COMPOUND_STRING( + "When their brains, now divided in two,\n" + "are thinking the same thoughts,\n" + "these Pokémon exhibit their maximized\n" + "psychic power."), + .pokemonScale = 422, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Duosion, 40, 48), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Duosion, + .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, + .enemyMonElevation = 7, + BACK_PIC(Duosion, 56, 48), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_GROW, + PALETTE(Duosion), + ICON(Duosion, 1), + .footprint = gMonFootprint_Duosion, + LEARNSETS(Duosion), + .evolutions = EVOLUTION({EVO_LEVEL, 41, SPECIES_REUNICLUS}), }, - [SPECIES_GRENINJA] = + [SPECIES_REUNICLUS] = { - .baseHP = 72, - .baseAttack = 95, - .baseDefense = 67, - .baseSpeed = 122, - .baseSpAttack = 103, - .baseSpDefense = 71, - .types = { TYPE_WATER, TYPE_DARK}, - .catchRate = 45, - .expYield = 239, - .evYield_Speed = 3, - .genderRatio = PERCENT_FEMALE(12.5), + .baseHP = 110, + .baseAttack = 65, + .baseDefense = 75, + .baseSpeed = 30, + .baseSpAttack = 125, + .baseSpDefense = 85, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, + .catchRate = 50, + .expYield = 221, + .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_PROTEAN}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = TRUE, - }, - - [SPECIES_BUNNELBY] = + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, + .abilities = {ABILITY_OVERCOAT, ABILITY_MAGIC_GUARD, ABILITY_REGENERATOR}, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + .speciesName = _("Reuniclus"), + .cryId = CRY_REUNICLUS, + .natDexNum = NATIONAL_DEX_REUNICLUS, + .categoryName = _("Multiplying"), + .height = 10, + .weight = 201, + .description = COMPOUND_STRING( + "They use psychic power to control their\n" + "arms, which are made of a special liquid.\n" + "When Reuniclus shake hands, a network\n" + "forms between their brains."), + .pokemonScale = 305, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Reuniclus, 64, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Reuniclus, + .frontAnimId = ANIM_V_SLIDE_WOBBLE, + .enemyMonElevation = 8, + BACK_PIC(Reuniclus, 64, 48), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(Reuniclus), + ICON(Reuniclus, 1), + .footprint = gMonFootprint_Reuniclus, + LEARNSETS(Reuniclus), + }, +#endif //P_FAMILY_SOLOSIS + +#if P_FAMILY_DUCKLETT + [SPECIES_DUCKLETT] = { - .baseHP = 38, - .baseAttack = 36, - .baseDefense = 38, - .baseSpeed = 57, - .baseSpAttack = 32, - .baseSpDefense = 36, - .types = { TYPE_NORMAL, TYPE_NORMAL}, - .catchRate = 255, - .expYield = 47, - .evYield_Speed = 1, + .baseHP = 62, + .baseAttack = 44, + .baseDefense = 50, + .baseSpeed = 55, + .baseSpAttack = 44, + .baseSpDefense = 50, + .types = { TYPE_WATER, TYPE_FLYING}, + .catchRate = 190, + .expYield = 61, + .evYield_HP = 1, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_PICKUP, ABILITY_CHEEK_POUCH, ABILITY_HUGE_POWER}, - .bodyColor = BODY_COLOR_BROWN, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FLYING}, + .abilities = {ABILITY_KEEN_EYE, ABILITY_BIG_PECKS, ABILITY_HYDRATION}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Ducklett"), + .cryId = CRY_DUCKLETT, + .natDexNum = NATIONAL_DEX_DUCKLETT, + .categoryName = _("Water Bird"), + .height = 5, + .weight = 55, + .description = COMPOUND_STRING( + "These bird Pokémon are excellent divers.\n" + "They are better at swimming than flying,\n" + "and they happily eat their favorite food,\n" + "peat moss, as they dive underwater."), + .pokemonScale = 432, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Ducklett, 32, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Ducklett, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Ducklett, 48, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Ducklett), + ICON(Ducklett, 0), + .footprint = gMonFootprint_Ducklett, + LEARNSETS(Ducklett), + .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_SWANNA}), }, - [SPECIES_DIGGERSBY] = + [SPECIES_SWANNA] = { - .baseHP = 85, - .baseAttack = 56, - .baseDefense = 77, - .baseSpeed = 78, - .baseSpAttack = 50, - .baseSpDefense = 77, - .types = { TYPE_NORMAL, TYPE_GROUND}, - .catchRate = 127, - .expYield = 148, - .evYield_HP = 2, + .baseHP = 75, + .baseAttack = 87, + .baseDefense = 63, + .baseSpeed = 98, + .baseSpAttack = 87, + .baseSpDefense = 63, + .types = { TYPE_WATER, TYPE_FLYING}, + .catchRate = 45, + .expYield = 166, + .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_PICKUP, ABILITY_CHEEK_POUCH, ABILITY_HUGE_POWER}, - .bodyColor = BODY_COLOR_BROWN, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FLYING}, + .abilities = {ABILITY_KEEN_EYE, ABILITY_BIG_PECKS, ABILITY_HYDRATION}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - }, - - [SPECIES_FLETCHLING] = + .speciesName = _("Swanna"), + .cryId = CRY_SWANNA, + .natDexNum = NATIONAL_DEX_SWANNA, + .categoryName = _("White Bird"), + .height = 13, + .weight = 242, + .description = COMPOUND_STRING( + "Despite their elegant appearance, they\n" + "can flap their wings strongly and fly for\n" + "thousands of miles. The one in the middle\n" + "is the leader of the flock."), + .pokemonScale = 272, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Swanna, 56, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Swanna, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Swanna, 64, 64), + .backPicYOffset = 1, + .backAnimId = BACK_ANIM_H_STRETCH, + PALETTE(Swanna), + ICON(Swanna, 2), + .footprint = gMonFootprint_Swanna, + LEARNSETS(Swanna), + }, +#endif //P_FAMILY_DUCKLETT + +#if P_FAMILY_VANILLITE + [SPECIES_VANILLITE] = { - .baseHP = 45, + .baseHP = 36, .baseAttack = 50, - .baseDefense = 43, - .baseSpeed = 62, - .baseSpAttack = 40, - .baseSpDefense = 38, - .types = { TYPE_NORMAL, TYPE_FLYING}, + .baseDefense = 50, + .baseSpeed = 44, + .baseSpAttack = 65, + .baseSpDefense = 60, + .types = { TYPE_ICE, TYPE_ICE}, .catchRate = 255, - .expYield = 56, - .evYield_Speed = 1, + .expYield = 61, + .evYield_SpAttack = 1, + .itemRare = ITEM_NEVER_MELT_ICE, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_BIG_PECKS, ABILITY_NONE, ABILITY_GALE_WINGS}, - .bodyColor = BODY_COLOR_RED, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_ICE_BODY, ABILITY_SNOW_CLOAK, ABILITY_WEAK_ARMOR}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, + .speciesName = _("Vanillite"), + .cryId = CRY_VANILLITE, + .natDexNum = NATIONAL_DEX_VANILLITE, + .categoryName = _("Fresh Snow"), + .height = 4, + .weight = 57, + .description = COMPOUND_STRING( + "The temperature of their breath is -58ºF.\n" + "They create snow crystals and make snow\n" + "fall in the areas around them. Vanillite is\n" + "treasured by households in warm regions."), + .pokemonScale = 491, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Vanillite, 32, 40), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Vanillite, + .frontAnimId = ANIM_H_SLIDE, + BACK_PIC(Vanillite, 40, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Vanillite), + ICON(Vanillite, 0), + .footprint = gMonFootprint_Vanillite, + LEARNSETS(Vanillite), + .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_VANILLISH}), }, - [SPECIES_FLETCHINDER] = + [SPECIES_VANILLISH] = { - .baseHP = 62, - .baseAttack = 73, - .baseDefense = 55, - .baseSpeed = 84, - .baseSpAttack = 56, - .baseSpDefense = 52, - .types = { TYPE_FIRE, TYPE_FLYING}, + .baseHP = 51, + .baseAttack = 65, + .baseDefense = 65, + .baseSpeed = 59, + .baseSpAttack = 80, + .baseSpDefense = 75, + .types = { TYPE_ICE, TYPE_ICE}, .catchRate = 120, - .expYield = 134, - .evYield_Speed = 2, + .expYield = 138, + .evYield_SpAttack = 2, + .itemRare = ITEM_NEVER_MELT_ICE, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_FLAME_BODY, ABILITY_NONE, ABILITY_GALE_WINGS}, - .bodyColor = BODY_COLOR_RED, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_ICE_BODY, ABILITY_SNOW_CLOAK, ABILITY_WEAK_ARMOR}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, + .speciesName = _("Vanillish"), + .cryId = CRY_VANILLISH, + .natDexNum = NATIONAL_DEX_VANILLISH, + .categoryName = _("Icy Snow"), + .height = 11, + .weight = 410, + .description = COMPOUND_STRING( + "Vanillish has existed since the Ice Age.\n" + "It controls particles of ice, freezes its\n" + "opponents, and then shatters them with\n" + "a headbutt."), + .pokemonScale = 320, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Vanillish, 32, 56), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Vanillish, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Vanillish, 48, 56), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Vanillish), + ICON(Vanillish, 2), + .footprint = gMonFootprint_Vanillish, + LEARNSETS(Vanillish), + .evolutions = EVOLUTION({EVO_LEVEL, 47, SPECIES_VANILLUXE}), }, - [SPECIES_TALONFLAME] = + [SPECIES_VANILLUXE] = { - .baseHP = 78, - .baseAttack = 81, - .baseDefense = 71, - .baseSpeed = 126, - .baseSpAttack = 74, - .baseSpDefense = 69, - .types = { TYPE_FIRE, TYPE_FLYING}, + .baseHP = 71, + .baseAttack = 95, + .baseDefense = 85, + .baseSpeed = 79, + .baseSpAttack = 110, + .baseSpDefense = 95, + .types = { TYPE_ICE, TYPE_ICE}, .catchRate = 45, - .expYield = 175, - .evYield_Speed = 3, + .expYield = 241, + .evYield_SpAttack = 3, + .itemCommon = ITEM_NEVER_MELT_ICE, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_ICE_BODY, ABILITY_SNOW_WARNING, ABILITY_WEAK_ARMOR}, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = FALSE, + .speciesName = _("Vanilluxe"), + .cryId = CRY_VANILLUXE, + .natDexNum = NATIONAL_DEX_VANILLUXE, + .categoryName = _("Snowstorm"), + .height = 13, + .weight = 575, + .description = COMPOUND_STRING( + "Each of its two heads has a brain, and\n" + "when they are in agreement, it attacks\n" + "its enemies by exhaling a violent blizzard.\n" + "It makes snow clouds inside its body."), + .pokemonScale = 272, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Vanilluxe, 56, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Vanilluxe, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Vanilluxe, 64, 64), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_H_SHAKE, + PALETTE(Vanilluxe), + ICON(Vanilluxe, 2), + .footprint = gMonFootprint_Vanilluxe, + LEARNSETS(Vanilluxe), + }, +#endif //P_FAMILY_VANILLITE + +#if P_FAMILY_DEERLING +#define DEERLING_MISC_INFO \ + .baseHP = 60, \ + .baseAttack = 60, \ + .baseDefense = 50, \ + .baseSpeed = 75, \ + .baseSpAttack = 40, \ + .baseSpDefense = 50, \ + .types = { TYPE_NORMAL, TYPE_GRASS}, \ + .catchRate = 190, \ + .expYield = 67, \ + .evYield_Speed = 1, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, \ + .abilities = {ABILITY_CHLOROPHYLL, ABILITY_SAP_SIPPER, ABILITY_SERENE_GRACE}, \ + .noFlip = FALSE, \ + .speciesName = _("Deerling"), \ + .cryId = CRY_DEERLING, \ + .natDexNum = NATIONAL_DEX_DEERLING, \ + .categoryName = _("Season"), \ + .height = 6, \ + .weight = 195, \ + .pokemonScale = 422, \ + .pokemonOffset = 14, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + FRONT_PIC(Deerling, 32, 48), \ + .frontPicYOffset = 11, \ + .frontAnimFrames = sAnims_Deerling, \ + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, \ + BACK_PIC(Deerling, 48, 56), \ + .backPicYOffset = 9, \ + .backAnimId = BACK_ANIM_H_SLIDE, \ + .footprint = gMonFootprint_Deerling, \ + LEARNSETS(Deerling), \ + .formSpeciesIdTable = sDeerlingFormSpeciesIdTable + + [SPECIES_DEERLING_SPRING] = + { + DEERLING_MISC_INFO, + .bodyColor = BODY_COLOR_PINK, + .description = COMPOUND_STRING( + "Their coloring changes according to the\n" + "seasons and can be slightly affected by\n" + "the temperature and humidity as well.\n" + "People use it to mark the seasons."), + PALETTE(DeerlingSpring), + ICON(DeerlingSpring, 1), + .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_SAWSBUCK_SPRING}), + }, + [SPECIES_DEERLING_SUMMER] = + { + DEERLING_MISC_INFO, + .bodyColor = BODY_COLOR_GREEN, + .description = COMPOUND_STRING( + ""), + PALETTE(DeerlingSummer), + ICON(DeerlingSummer, 1), + .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_SAWSBUCK_SUMMER}), + }, + [SPECIES_DEERLING_AUTUMN] = + { + DEERLING_MISC_INFO, + .bodyColor = BODY_COLOR_RED, + .description = COMPOUND_STRING( + ""), + PALETTE(DeerlingAutumn), + ICON(DeerlingAutumn, 0), + .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_SAWSBUCK_AUTUMN}), + }, + [SPECIES_DEERLING_WINTER] = + { + DEERLING_MISC_INFO, + .bodyColor = BODY_COLOR_BROWN, + .description = COMPOUND_STRING( + ""), + PALETTE(DeerlingWinter), + ICON(DeerlingWinter, 2), + .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_SAWSBUCK_WINTER}), + }, + +#define SAWSBUCK_MISC_INFO \ + .baseHP = 80, \ + .baseAttack = 100, \ + .baseDefense = 70, \ + .baseSpeed = 95, \ + .baseSpAttack = 60, \ + .baseSpDefense = 70, \ + .types = { TYPE_NORMAL, TYPE_GRASS}, \ + .catchRate = 75, \ + .expYield = 166, \ + .evYield_Attack = 2, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, \ + .abilities = {ABILITY_CHLOROPHYLL, ABILITY_SAP_SIPPER, ABILITY_SERENE_GRACE}, \ + .bodyColor = BODY_COLOR_BROWN, \ + .noFlip = FALSE, \ + .speciesName = _("Sawsbuck"), \ + .cryId = CRY_SAWSBUCK, \ + .natDexNum = NATIONAL_DEX_SAWSBUCK, \ + .categoryName = _("Season"), \ + .height = 19, \ + .weight = 925, \ + .pokemonScale = 256, \ + .pokemonOffset = 1, \ + .trainerScale = 326, \ + .trainerOffset = 4, \ + .frontPicYOffset = 0, \ + .frontAnimFrames = sAnims_Sawsbuck, \ + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, \ + .backPicYOffset = 5, \ + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, \ + .footprint = gMonFootprint_Sawsbuck, \ + LEARNSETS(Sawsbuck), \ + .formSpeciesIdTable = sSawsbuckFormSpeciesIdTable + + [SPECIES_SAWSBUCK_SPRING] = + { + SAWSBUCK_MISC_INFO, + .description = COMPOUND_STRING( + "Some people call Sawsbuck the harbingers\n" + "of spring because the plants growing on\n" + "its horns change according to the season.\n" + "The leader possesses magnificent horns."), + FRONT_PIC(SawsbuckSpring, 56, 64), + BACK_PIC(SawsbuckSpring, 48, 64), + PALETTE(SawsbuckSpring), + ICON(SawsbuckSpring, 1), + }, + + [SPECIES_SAWSBUCK_SUMMER] = + { + SAWSBUCK_MISC_INFO, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(SawsbuckSummer, 64, 64), + BACK_PIC(SawsbuckSummer, 64, 64), + PALETTE(SawsbuckSummer), + ICON(SawsbuckSummer, 1), + }, + + [SPECIES_SAWSBUCK_AUTUMN] = + { + SAWSBUCK_MISC_INFO, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(SawsbuckAutumn, 64, 64), + BACK_PIC(SawsbuckAutumn, 64, 64), + PALETTE(SawsbuckAutumn), + ICON(SawsbuckAutumn, 1), + }, + + [SPECIES_SAWSBUCK_WINTER] = + { + SAWSBUCK_MISC_INFO, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(SawsbuckWinter, 56, 64), + BACK_PIC(SawsbuckWinter, 48, 64), + PALETTE(SawsbuckWinter), + ICON(SawsbuckWinter, 1), + }, + +#endif //P_FAMILY_DEERLING + +#if P_FAMILY_EMOLGA + [SPECIES_EMOLGA] = + { + .baseHP = 55, + .baseAttack = 75, + .baseDefense = 60, + .baseSpeed = 103, + .baseSpAttack = 75, + .baseSpDefense = 60, + .types = { TYPE_ELECTRIC, TYPE_FLYING}, + .catchRate = 200, + .expYield = 150, + .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_FLAME_BODY, ABILITY_NONE, ABILITY_GALE_WINGS}, - .bodyColor = BODY_COLOR_RED, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_STATIC, ABILITY_NONE, ABILITY_MOTOR_DRIVE}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - }, - - [SPECIES_SCATTERBUG] = + .speciesName = _("Emolga"), + .cryId = CRY_EMOLGA, + .natDexNum = NATIONAL_DEX_EMOLGA, + .categoryName = _("Sky Squirrel"), + .height = 4, + .weight = 50, + .description = COMPOUND_STRING( + "It glides using its cape-like membrane.\n" + "It grills berries and bug Pokémon with\n" + "electric shocks from the pouches on its\n" + "cheeks and makes a meal of them."), + .pokemonScale = 491, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Emolga, 64, 48), + .frontPicYOffset = 17, + .frontAnimFrames = sAnims_Emolga, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + .enemyMonElevation = 19, + BACK_PIC(Emolga, 56, 40), + .backPicYOffset = 16, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Emolga), + ICON(Emolga, 2), + .footprint = gMonFootprint_Emolga, + LEARNSETS(Emolga), + }, +#endif //P_FAMILY_EMOLGA + +#if P_FAMILY_KARRABLAST + [SPECIES_KARRABLAST] = { - .baseHP = 38, - .baseAttack = 35, - .baseDefense = 40, - .baseSpeed = 35, - .baseSpAttack = 27, - .baseSpDefense = 25, + .baseHP = 50, + .baseAttack = 75, + .baseDefense = 45, + .baseSpeed = 60, + .baseSpAttack = 40, + .baseSpDefense = 45, .types = { TYPE_BUG, TYPE_BUG}, - .catchRate = 255, - .expYield = 40, - .evYield_Defense = 1, + .catchRate = 200, + .expYield = 63, + .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SHIELD_DUST, ABILITY_COMPOUND_EYES, ABILITY_FRIEND_GUARD}, - .bodyColor = BODY_COLOR_BLACK, + .abilities = {ABILITY_SWARM, ABILITY_SHED_SKIN, ABILITY_NO_GUARD}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Karrablast"), + .cryId = CRY_KARRABLAST, + .natDexNum = NATIONAL_DEX_KARRABLAST, + .categoryName = _("Clamping"), + .height = 5, + .weight = 59, + .description = COMPOUND_STRING( + "When they feel threatened, they spit an\n" + "acidic liquid to drive attackers away.\n" + "For some reason they evolve while they\n" + "are in the same place as Shelmet."), + .pokemonScale = 432, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Karrablast, 40, 48), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_Karrablast, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Karrablast, 48, 48), + .backPicYOffset = 14, + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, + PALETTE(Karrablast), + ICON(Karrablast, 0), + .footprint = gMonFootprint_Karrablast, + LEARNSETS(Karrablast), + .evolutions = EVOLUTION({EVO_TRADE_SPECIFIC_MON, SPECIES_SHELMET, SPECIES_ESCAVALIER}), }, - [SPECIES_SPEWPA] = + [SPECIES_ESCAVALIER] = { - .baseHP = 45, - .baseAttack = 22, - .baseDefense = 60, - .baseSpeed = 29, - .baseSpAttack = 27, - .baseSpDefense = 30, - .types = { TYPE_BUG, TYPE_BUG}, - .catchRate = 120, - .expYield = 75, - .evYield_Defense = 2, + .baseHP = 70, + .baseAttack = 135, + .baseDefense = 105, + .baseSpeed = 20, + .baseSpAttack = 60, + .baseSpDefense = 105, + .types = { TYPE_BUG, TYPE_STEEL}, + .catchRate = 75, + .expYield = 173, + .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_FRIEND_GUARD}, - .bodyColor = BODY_COLOR_BLACK, + .abilities = {ABILITY_SWARM, ABILITY_SHELL_ARMOR, ABILITY_OVERCOAT}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, - }, - - [SPECIES_VIVILLON_ICY_SNOW] = VIVILLON_SPECIES_INFO(BODY_COLOR_WHITE), - - [SPECIES_LITLEO] = + .speciesName = _("Escavalier"), + .cryId = CRY_ESCAVALIER, + .natDexNum = NATIONAL_DEX_ESCAVALIER, + .categoryName = _("Cavalry"), + .height = 10, + .weight = 330, + .description = COMPOUND_STRING( + "Wearing the shell covering they stole\n" + "from Shelmet, they defend themselves and\n" + "attack with two lances. The steel armor\n" + "protects their whole body."), + .pokemonScale = 305, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Escavalier, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Escavalier, + .frontAnimId = ANIM_BACK_AND_LUNGE, + BACK_PIC(Escavalier, 64, 56), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Escavalier), + ICON(Escavalier, 0), + .footprint = gMonFootprint_Escavalier, + LEARNSETS(Escavalier), + }, +#endif //P_FAMILY_KARRABLAST + +#if P_FAMILY_FOONGUS + [SPECIES_FOONGUS] = { - .baseHP = 62, - .baseAttack = 50, - .baseDefense = 58, - .baseSpeed = 72, - .baseSpAttack = 73, - .baseSpDefense = 54, - .types = { TYPE_FIRE, TYPE_NORMAL}, - .catchRate = 220, - .expYield = 74, - .evYield_SpAttack = 1, - .genderRatio = PERCENT_FEMALE(87.5), + .baseHP = 69, + .baseAttack = 55, + .baseDefense = 45, + .baseSpeed = 15, + .baseSpAttack = 55, + .baseSpDefense = 55, + .types = { TYPE_GRASS, TYPE_POISON}, + .catchRate = 190, + .expYield = 59, + .evYield_HP = 1, + .itemCommon = ITEM_TINY_MUSHROOM, + .itemRare = ITEM_BIG_MUSHROOM, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_RIVALRY, ABILITY_UNNERVE, ABILITY_MOXIE}, - .bodyColor = BODY_COLOR_BROWN, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, + .abilities = {ABILITY_EFFECT_SPORE, ABILITY_NONE, ABILITY_REGENERATOR}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, + .speciesName = _("Foongus"), + .cryId = CRY_FOONGUS, + .natDexNum = NATIONAL_DEX_FOONGUS, + .categoryName = _("Mushroom"), + .height = 2, + .weight = 10, + .description = COMPOUND_STRING( + "It lures Pokémon in with its pattern that\n" + "looks just like a Poké Ball, then releases\n" + "its poison spores. Why it resembles a\n" + "Poké Ball is unknown."), + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Foongus, 32, 32), + .frontPicYOffset = 16, + .frontAnimFrames = sAnims_Foongus, + .frontAnimId = ANIM_SWING_CONCAVE_FAST, + BACK_PIC(Foongus, 48, 40), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_SHRINK_GROW, + PALETTE(Foongus), + ICON(Foongus, 0), + .footprint = gMonFootprint_Foongus, + LEARNSETS(Foongus), + .evolutions = EVOLUTION({EVO_LEVEL, 39, SPECIES_AMOONGUSS}), }, - [SPECIES_PYROAR] = + [SPECIES_AMOONGUSS] = { - .baseHP = 86, - .baseAttack = 68, - .baseDefense = 72, - .baseSpeed = 106, - .baseSpAttack = 109, - .baseSpDefense = 66, - .types = { TYPE_FIRE, TYPE_NORMAL}, - .catchRate = 65, - .expYield = 177, - .evYield_SpAttack = 2, - .genderRatio = PERCENT_FEMALE(87.5), + .baseHP = 114, + .baseAttack = 85, + .baseDefense = 70, + .baseSpeed = 30, + .baseSpAttack = 85, + .baseSpDefense = 80, + .types = { TYPE_GRASS, TYPE_POISON}, + .catchRate = 75, + .expYield = 162, + .evYield_HP = 2, + .itemCommon = ITEM_TINY_MUSHROOM, + .itemRare = ITEM_BIG_MUSHROOM, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_RIVALRY, ABILITY_UNNERVE, ABILITY_MOXIE}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_FLABEBE_RED_FLOWER] = FLABEBE_SPECIES_INFO, - - [SPECIES_FLOETTE_RED_FLOWER] = FLOETTE_SPECIES_INFO, - - [SPECIES_FLORGES_RED_FLOWER] = FLORGES_SPECIES_INFO, - - [SPECIES_SKIDDO] = + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, + .abilities = {ABILITY_EFFECT_SPORE, ABILITY_NONE, ABILITY_REGENERATOR}, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = TRUE, + .speciesName = _("Amoonguss"), + .cryId = CRY_AMOONGUSS, + .natDexNum = NATIONAL_DEX_AMOONGUSS, + .categoryName = _("Mushroom"), + .height = 6, + .weight = 105, + .description = COMPOUND_STRING( + "It lures prey close by dancing and waving\n" + "its arm caps, which resemble Poké Balls,\n" + "in a swaying motion, but very few Pokémon\n" + "are fooled by this."), + .pokemonScale = 422, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Amoonguss, 56, 56), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Amoonguss, + .frontAnimId = ANIM_H_SLIDE, + BACK_PIC(Amoonguss, 64, 48), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_GROW_STUTTER, + PALETTE(Amoonguss), + ICON(Amoonguss, 1), + .footprint = gMonFootprint_Amoonguss, + LEARNSETS(Amoonguss), + }, +#endif //P_FAMILY_FOONGUS + +#if P_FAMILY_FRILLISH + [SPECIES_FRILLISH] = { - .baseHP = 66, - .baseAttack = 65, - .baseDefense = 48, - .baseSpeed = 52, - .baseSpAttack = 62, - .baseSpDefense = 57, - .types = { TYPE_GRASS, TYPE_GRASS}, - .catchRate = 200, - .expYield = 70, - .evYield_HP = 1, + .baseHP = 55, + .baseAttack = 40, + .baseDefense = 50, + .baseSpeed = 40, + .baseSpAttack = 65, + .baseSpDefense = 85, + .types = { TYPE_WATER, TYPE_GHOST}, + .catchRate = 190, + .expYield = 67, + .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SAP_SIPPER, ABILITY_NONE, ABILITY_GRASS_PELT}, - .bodyColor = BODY_COLOR_BROWN, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, + .abilities = {ABILITY_WATER_ABSORB, ABILITY_CURSED_BODY, ABILITY_DAMP}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, + .speciesName = _("Frillish"), + .cryId = CRY_FRILLISH, + .natDexNum = NATIONAL_DEX_FRILLISH, + .categoryName = _("Floating"), + .height = 12, + .weight = 330, + .description = COMPOUND_STRING( + "If its veil-like arms stun and wrap an\n" + "opponent, that foe will be dragged\n" + "five miles below the surface to its lair,\n" + "never to return."), + .pokemonScale = 282, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Frillish, 56, 56), + FRONT_PIC_FEMALE(Frillish, 56, 56), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Frillish, + .frontAnimId = ANIM_RISING_WOBBLE, + BACK_PIC(Frillish, 40, 56), + BACK_PIC_FEMALE(Frillish, 40, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + .palette = gMonPalette_Frillish, + .paletteFemale = gMonPalette_FrillishF, + .shinyPalette = gMonShinyPalette_Frillish, + .shinyPaletteFemale = gMonShinyPalette_FrillishF, + ICON(Frillish, 0), + .iconSpriteFemale = gMonIcon_FrillishF, + .iconPalIndexFemale = 1, + .footprint = gMonFootprint_Frillish, + LEARNSETS(Frillish), + .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_JELLICENT}), }, - [SPECIES_GOGOAT] = + [SPECIES_JELLICENT] = { - .baseHP = 123, - .baseAttack = 100, - .baseDefense = 62, - .baseSpeed = 68, - .baseSpAttack = 97, - .baseSpDefense = 81, - .types = { TYPE_GRASS, TYPE_GRASS}, - .catchRate = 45, - .expYield = 186, - .evYield_HP = 2, + .baseHP = 100, + .baseAttack = 60, + .baseDefense = 70, + .baseSpeed = 60, + .baseSpAttack = 85, + .baseSpDefense = 105, + .types = { TYPE_WATER, TYPE_GHOST}, + .catchRate = 60, + .expYield = 168, + .evYield_SpDefense = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SAP_SIPPER, ABILITY_NONE, ABILITY_GRASS_PELT}, - .bodyColor = BODY_COLOR_BROWN, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, + .abilities = {ABILITY_WATER_ABSORB, ABILITY_CURSED_BODY, ABILITY_DAMP}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - }, - - [SPECIES_PANCHAM] = + .speciesName = _("Jellicent"), + .cryId = CRY_JELLICENT, + .natDexNum = NATIONAL_DEX_JELLICENT, + .categoryName = _("Floating"), + .height = 22, + .weight = 1350, + .description = COMPOUND_STRING( + "They propel themselves by expelling\n" + "absorbed seawater from their bodies.\n" + "It's said there's a castle of ships\n" + "Jellicent have sunk on the seafloor."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 348, + .trainerOffset = 6, + FRONT_PIC(Jellicent, 64, 64), + FRONT_PIC_FEMALE(Jellicent, 64, 64), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Jellicent, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Jellicent, 64, 48), + BACK_PIC_FEMALE(Jellicent, 64, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_GROW_STUTTER, + .palette = gMonPalette_Jellicent, + .paletteFemale = gMonPalette_JellicentF, + .shinyPalette = gMonShinyPalette_Jellicent, + .shinyPaletteFemale = gMonShinyPalette_JellicentF, + ICON(Jellicent, 0), + .iconSpriteFemale = gMonIcon_JellicentF, + .iconPalIndexFemale = 1, + .footprint = gMonFootprint_Jellicent, + LEARNSETS(Jellicent), + }, +#endif //P_FAMILY_FRILLISH + +#if P_FAMILY_ALOMOMOLA + [SPECIES_ALOMOMOLA] = { - .baseHP = 67, - .baseAttack = 82, - .baseDefense = 62, - .baseSpeed = 43, - .baseSpAttack = 46, - .baseSpDefense = 48, - .types = { TYPE_FIGHTING, TYPE_FIGHTING}, - .catchRate = 220, - .expYield = 70, - .evYield_Attack = 1, - .itemRare = ITEM_MENTAL_HERB, + .baseHP = 165, + .baseAttack = 75, + .baseDefense = 80, + .baseSpeed = 65, + .baseSpAttack = 40, + .baseSpDefense = 45, + .types = { TYPE_WATER, TYPE_WATER}, + .catchRate = 75, + .expYield = 165, + .evYield_HP = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_2}, + .abilities = {ABILITY_HEALER, ABILITY_HYDRATION, ABILITY_REGENERATOR}, + .bodyColor = BODY_COLOR_PINK, + .noFlip = FALSE, + .speciesName = _("Alomomola"), + .cryId = CRY_ALOMOMOLA, + .natDexNum = NATIONAL_DEX_ALOMOMOLA, + .categoryName = _("Caring"), + .height = 12, + .weight = 316, + .description = COMPOUND_STRING( + "When they find a wounded Pokémon,\n" + "they embrace it and bring it to shore.\n" + "The special membrane enveloping\n" + "Alomomola has the ability to heal wounds."), + .pokemonScale = 282, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Alomomola, 32, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Alomomola, + .frontAnimId = ANIM_SWING_CONCAVE, + BACK_PIC(Alomomola, 48, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Alomomola), + ICON(Alomomola, 0), + .footprint = gMonFootprint_Alomomola, + LEARNSETS(Alomomola), + }, +#endif //P_FAMILY_ALOMOMOLA + +#if P_FAMILY_JOLTIK + [SPECIES_JOLTIK] = + { + .baseHP = 50, + .baseAttack = 47, + .baseDefense = 50, + .baseSpeed = 65, + .baseSpAttack = 57, + .baseSpDefense = 50, + .types = { TYPE_BUG, TYPE_ELECTRIC}, + .catchRate = 190, + .expYield = 64, + .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_IRON_FIST, ABILITY_MOLD_BREAKER, ABILITY_SCRAPPY}, - .bodyColor = BODY_COLOR_WHITE, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_COMPOUND_EYES, ABILITY_UNNERVE, ABILITY_SWARM}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, + .speciesName = _("Joltik"), + .cryId = CRY_JOLTIK, + .natDexNum = NATIONAL_DEX_JOLTIK, + .categoryName = _("Attaching"), + .height = 1, + .weight = 6, + .description = COMPOUND_STRING( + "Since they can't generate their own\n" + "electricity, they attach themselves to\n" + "large-bodied Pokémon and absorb static\n" + "electricity, which they store in a pouch."), + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Joltik, 32, 32), + .frontPicYOffset = 17, + .frontAnimFrames = sAnims_Joltik, + .frontAnimId = ANIM_H_SLIDE, + BACK_PIC(Joltik, 48, 32), + .backPicYOffset = 19, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Joltik), + ICON(Joltik, 0), + .footprint = gMonFootprint_Joltik, + LEARNSETS(Joltik), + .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_GALVANTULA}), }, - [SPECIES_PANGORO] = + [SPECIES_GALVANTULA] = { - .baseHP = 95, - .baseAttack = 124, - .baseDefense = 78, - .baseSpeed = 58, - .baseSpAttack = 69, - .baseSpDefense = 71, - .types = { TYPE_FIGHTING, TYPE_DARK}, - .catchRate = 65, - .expYield = 173, - .evYield_Attack = 2, - .itemRare = ITEM_MENTAL_HERB, + .baseHP = 70, + .baseAttack = 77, + .baseDefense = 60, + .baseSpeed = 108, + .baseSpAttack = 97, + .baseSpDefense = 60, + .types = { TYPE_BUG, TYPE_ELECTRIC}, + .catchRate = 75, + .expYield = 165, + .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_IRON_FIST, ABILITY_MOLD_BREAKER, ABILITY_SCRAPPY}, - .bodyColor = BODY_COLOR_WHITE, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_COMPOUND_EYES, ABILITY_UNNERVE, ABILITY_SWARM}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, - }, - - [SPECIES_FURFROU_NATURAL] = FURFROU_SPECIES_INFO(FLIP), - - [SPECIES_ESPURR] = + .speciesName = _("Galvantula"), + .cryId = CRY_GALVANTULA, + .natDexNum = NATIONAL_DEX_GALVANTULA, + .categoryName = _("EleSpider"), + .height = 8, + .weight = 143, + .description = COMPOUND_STRING( + "It creates barriers from electrified silk\n" + "that stun foes. This works as a weapon as\n" + "well as a defense. While it is immobilized\n" + "by shock, they leisurely consume it."), + .pokemonScale = 366, + .pokemonOffset = 10, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Galvantula, 56, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Galvantula, + .frontAnimId = ANIM_CIRCLE_C_CLOCKWISE_SLOW, + BACK_PIC(Galvantula, 64, 40), + .backPicYOffset = 18, + .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, + PALETTE(Galvantula), + ICON(Galvantula, 2), + .footprint = gMonFootprint_Galvantula, + LEARNSETS(Galvantula), + }, +#endif //P_FAMILY_JOLTIK + +#if P_FAMILY_FERROSEED + [SPECIES_FERROSEED] = { - .baseHP = 62, - .baseAttack = 48, - .baseDefense = 54, - .baseSpeed = 68, - .baseSpAttack = 63, - .baseSpDefense = 60, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - .catchRate = 190, - .expYield = 71, - .evYield_Speed = 1, + .baseHP = 44, + .baseAttack = 50, + .baseDefense = 91, + .baseSpeed = 10, + .baseSpAttack = 24, + .baseSpDefense = 86, + .types = { TYPE_GRASS, TYPE_STEEL}, + .catchRate = 255, + .expYield = 61, + .evYield_Defense = 1, + .itemRare = ITEM_STICKY_BARB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_KEEN_EYE, ABILITY_INFILTRATOR, ABILITY_OWN_TEMPO}, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_IRON_BARBS, ABILITY_NONE}, .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, + .speciesName = _("Ferroseed"), + .cryId = CRY_FERROSEED, + .natDexNum = NATIONAL_DEX_FERROSEED, + .categoryName = _("Thorn Seed"), + .height = 6, + .weight = 188, + .description = COMPOUND_STRING( + "It absorbs the iron it finds in the rock\n" + "while clinging to the ceiling of caves.\n" + "When threatened, it attacks by shooting\n" + "a barrage of spikes."), + .pokemonScale = 422, + .pokemonOffset = 14, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Ferroseed, 32, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Ferroseed, + .frontAnimId = ANIM_H_VIBRATE, + BACK_PIC(Ferroseed, 48, 40), + .backPicYOffset = 15, + .backAnimId = BACK_ANIM_H_SHAKE, + PALETTE(Ferroseed), + ICON(Ferroseed, 1), + .footprint = gMonFootprint_Ferroseed, + LEARNSETS(Ferroseed), + .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_FERROTHORN}), }, - [SPECIES_MEOWSTIC_MALE] = + [SPECIES_FERROTHORN] = { .baseHP = 74, - .baseAttack = 48, - .baseDefense = 76, - .baseSpeed = 104, - .baseSpAttack = 83, - .baseSpDefense = 81, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - .catchRate = 75, - .expYield = 163, - .evYield_Speed = 2, - .genderRatio = MON_MALE, + .baseAttack = 94, + .baseDefense = 131, + .baseSpeed = 20, + .baseSpAttack = 54, + .baseSpDefense = 116, + .types = { TYPE_GRASS, TYPE_STEEL}, + .catchRate = 90, + .expYield = 171, + .evYield_Defense = 2, + .itemRare = ITEM_STICKY_BARB, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_KEEN_EYE, ABILITY_INFILTRATOR, ABILITY_PRANKSTER}, - .bodyColor = BODY_COLOR_BLUE, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_IRON_BARBS, ABILITY_NONE, ABILITY_ANTICIPATION}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, + .speciesName = _("Ferrothorn"), + .cryId = CRY_FERROTHORN, + .natDexNum = NATIONAL_DEX_FERROTHORN, + .categoryName = _("Thorn Pod"), + .height = 10, + .weight = 1100, + .description = COMPOUND_STRING( + "It fights by swinging around its three\n" + "spiky feelers and shooting spikes.\n" + "A hit from these steel spikes can reduce\n" + "a boulder to rubble."), + .pokemonScale = 305, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Ferrothorn, 64, 64), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Ferrothorn, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(Ferrothorn, 64, 40), + .backPicYOffset = 14, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(Ferrothorn), + ICON(Ferrothorn, 1), + .footprint = gMonFootprint_Ferrothorn, + LEARNSETS(Ferrothorn), + }, +#endif //P_FAMILY_FERROSEED + +#if P_FAMILY_KLINK + [SPECIES_KLINK] = + { + .baseHP = 40, + .baseAttack = 55, + .baseDefense = 70, + .baseSpeed = 30, + .baseSpAttack = 45, + .baseSpDefense = 60, + .types = { TYPE_STEEL, TYPE_STEEL}, + .catchRate = 130, + .expYield = 60, + .evYield_Defense = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_PLUS, ABILITY_MINUS, ABILITY_CLEAR_BODY}, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = TRUE, + .speciesName = _("Klink"), + .cryId = CRY_KLINK, + .natDexNum = NATIONAL_DEX_KLINK, + .categoryName = _("Gear"), + .height = 3, + .weight = 210, + .description = COMPOUND_STRING( + "Two bodies comprise a fixed pair.\n" + "The two minigears that mesh together\n" + "are predetermined. Each will rebound from\n" + "other minigears without meshing."), + .pokemonScale = 530, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Klink, 48, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Klink, + .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, + BACK_PIC(Klink, 64, 64), + .backPicYOffset = 17, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(Klink), + ICON(Klink, 0), + .footprint = gMonFootprint_Klink, + LEARNSETS(Klink), + .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_KLANG}), }, - [SPECIES_HONEDGE] = + [SPECIES_KLANG] = { - .baseHP = 45, + .baseHP = 60, .baseAttack = 80, - .baseDefense = 100, - .baseSpeed = 28, - .baseSpAttack = 35, - .baseSpDefense = 37, - .types = { TYPE_STEEL, TYPE_GHOST}, - .catchRate = 180, - .expYield = 65, - .evYield_Defense = 1, - .genderRatio = PERCENT_FEMALE(50), + .baseDefense = 95, + .baseSpeed = 50, + .baseSpAttack = 70, + .baseSpDefense = 85, + .types = { TYPE_STEEL, TYPE_STEEL}, + .catchRate = 60, + .expYield = 154, + .evYield_Defense = 2, + .genderRatio = MON_GENDERLESS, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, + .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_NO_GUARD, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, + .abilities = {ABILITY_PLUS, ABILITY_MINUS, ABILITY_CLEAR_BODY}, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = TRUE, + .speciesName = _("Klang"), + .cryId = CRY_KLANG, + .natDexNum = NATIONAL_DEX_KLANG, + .categoryName = _("Gear"), + .height = 6, + .weight = 510, + .description = COMPOUND_STRING( + "A minigear and big gear comprise its\n" + "body. Spinning minigears are rotated\n" + "at high speed and repeatedly fired away.\n" + "It is dangerous if the gears don't return."), + .pokemonScale = 422, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Klang, 64, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Klang, + .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, + BACK_PIC(Klang, 64, 64), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Klang), + ICON(Klang, 0), + .footprint = gMonFootprint_Klang, + LEARNSETS(Klang), + .evolutions = EVOLUTION({EVO_LEVEL, 49, SPECIES_KLINKLANG}), }, - [SPECIES_DOUBLADE] = + [SPECIES_KLINKLANG] = { - .baseHP = 59, - .baseAttack = 110, - .baseDefense = 150, - .baseSpeed = 35, + .baseHP = 60, + .baseAttack = 100, + .baseDefense = 115, + .baseSpeed = 90, + .baseSpAttack = 70, + .baseSpDefense = 85, + .types = { TYPE_STEEL, TYPE_STEEL}, + .catchRate = 30, + .expYield = 234, + .evYield_Defense = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_PLUS, ABILITY_MINUS, ABILITY_CLEAR_BODY}, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = TRUE, + .speciesName = _("Klinklang"), + .cryId = CRY_KLINKLANG, + .natDexNum = NATIONAL_DEX_KLINKLANG, + .categoryName = _("Gear"), + .height = 6, + .weight = 810, + .description = COMPOUND_STRING( + "Its red core functions as an energy tank.\n" + "It is rotated at high speed for a rapid\n" + "energy charge. It fires the charged energy\n" + "through its spikes into an area."), + .pokemonScale = 422, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Klinklang, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Klinklang, + .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, + BACK_PIC(Klinklang, 64, 64), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, + PALETTE(Klinklang), + ICON(Klinklang, 0), + .footprint = gMonFootprint_Klinklang, + LEARNSETS(Klinklang), + }, +#endif //P_FAMILY_KLINK + +#if P_FAMILY_TYNAMO + [SPECIES_TYNAMO] = + { + .baseHP = 35, + .baseAttack = 55, + .baseDefense = 40, + .baseSpeed = 60, .baseSpAttack = 45, - .baseSpDefense = 49, - .types = { TYPE_STEEL, TYPE_GHOST}, - .catchRate = 90, - .expYield = 157, - .evYield_Defense = 2, + .baseSpDefense = 40, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, + .catchRate = 190, + .expYield = 55, + .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_NO_GUARD, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BROWN, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, + .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, + .speciesName = _("Tynamo"), + .cryId = CRY_TYNAMO, + .natDexNum = NATIONAL_DEX_TYNAMO, + .categoryName = _("EleFish"), + .height = 2, + .weight = 3, + .description = COMPOUND_STRING( + "These Pokémon move in schools.\n" + "One alone can emit only a trickle of\n" + "electricity, so a group of them gathers\n" + "to unleash a powerful electric shock."), + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Tynamo, 40, 24), + .frontPicYOffset = 22, + .frontAnimFrames = sAnims_Tynamo, + .frontAnimId = ANIM_V_SLIDE_WOBBLE_SMALL, + .enemyMonElevation = 16, + BACK_PIC(Tynamo, 64, 24), + .backPicYOffset = 21, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Tynamo), + ICON(Tynamo, 0), + .footprint = gMonFootprint_Tynamo, + LEARNSETS(Tynamo), + .evolutions = EVOLUTION({EVO_LEVEL, 39, SPECIES_EELEKTRIK}), }, - [SPECIES_AEGISLASH_SHIELD] = + [SPECIES_EELEKTRIK] = { - .baseHP = 60, - .baseAttack = 50, - .baseSpeed = 60, - .baseSpAttack = 50, - #if P_UPDATED_STATS >= GEN_8 - .baseDefense = 140, - .baseSpDefense = 140, - #else - .baseDefense = 150, - .baseSpDefense = 150, - #endif - .types = { TYPE_STEEL, TYPE_GHOST}, - .catchRate = 45, - .expYield = 234, - .evYield_Defense = 2, - .evYield_SpDefense = 1, + .baseHP = 65, + .baseAttack = 85, + .baseDefense = 70, + .baseSpeed = 40, + .baseSpAttack = 75, + .baseSpDefense = 70, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, + .catchRate = 60, + .expYield = 142, + .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_STANCE_CHANGE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BROWN, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, + .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Eelektrik"), + .cryId = CRY_EELEKTRIK, + .natDexNum = NATIONAL_DEX_EELEKTRIK, + .categoryName = _("EleFish"), + .height = 12, + .weight = 220, + .description = COMPOUND_STRING( + "These Pokémon have a big appetite.\n" + "It wraps itself around its prey and\n" + "paralyzes it with electricity from the\n" + "round spots on its sides. Then it chomps."), + .pokemonScale = 282, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Eelektrik, 48, 64), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Eelektrik, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 8, + BACK_PIC(Eelektrik, 56, 64), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_SHRINK_GROW, + PALETTE(Eelektrik), + ICON(Eelektrik, 0), + .footprint = gMonFootprint_Eelektrik, + LEARNSETS(Eelektrik), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_EELEKTROSS}), }, - [SPECIES_SPRITZEE] = + [SPECIES_EELEKTROSS] = { - .baseHP = 78, - .baseAttack = 52, - .baseDefense = 60, - .baseSpeed = 23, - .baseSpAttack = 63, - .baseSpDefense = 65, - .types = { TYPE_FAIRY, TYPE_FAIRY}, - .catchRate = 200, - .expYield = 68, - .evYield_HP = 1, + .baseHP = 85, + .baseAttack = 115, + .baseDefense = 80, + .baseSpeed = 50, + .baseSpAttack = 105, + .baseSpDefense = 80, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, + .catchRate = 30, + .expYield = 232, + .evYield_Attack = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_HEALER, ABILITY_NONE, ABILITY_AROMA_VEIL}, - .bodyColor = BODY_COLOR_PINK, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, + .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - }, - - [SPECIES_AROMATISSE] = + .speciesName = _("Eelektross"), + .cryId = CRY_EELEKTROSS, + .natDexNum = NATIONAL_DEX_EELEKTROSS, + .categoryName = _("EleFish"), + .height = 21, + .weight = 805, + .description = COMPOUND_STRING( + "They crawl out of the ocean using their\n" + "arms. They will attack prey on shore and\n" + "immediately drag it into the ocean, with\n" + "their sucker mouths."), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 365, + .trainerOffset = 7, + FRONT_PIC(Eelektross, 64, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Eelektross, + .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL_SLOW, + .enemyMonElevation = 8, + BACK_PIC(Eelektross, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, + PALETTE(Eelektross), + ICON(Eelektross, 0), + .footprint = gMonFootprint_Eelektross, + LEARNSETS(Eelektross), + }, +#endif //P_FAMILY_TYNAMO + +#if P_FAMILY_ELGYEM + [SPECIES_ELGYEM] = { - .baseHP = 101, - .baseAttack = 72, - .baseDefense = 72, - .baseSpeed = 29, - .baseSpAttack = 99, - .baseSpDefense = 89, - .types = { TYPE_FAIRY, TYPE_FAIRY}, - .catchRate = 140, - .expYield = 162, - .evYield_HP = 2, + .baseHP = 55, + .baseAttack = 55, + .baseDefense = 55, + .baseSpeed = 30, + .baseSpAttack = 85, + .baseSpDefense = 55, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, + .catchRate = 255, + .expYield = 67, + .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_HEALER, ABILITY_NONE, ABILITY_AROMA_VEIL}, - .bodyColor = BODY_COLOR_PINK, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_TELEPATHY, ABILITY_SYNCHRONIZE, ABILITY_ANALYTIC}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Elgyem"), + .cryId = CRY_ELGYEM, + .natDexNum = NATIONAL_DEX_ELGYEM, + .categoryName = _("Cerebral"), + .height = 5, + .weight = 90, + .description = COMPOUND_STRING( + "It psychically squeezes the brain of\n" + "its foe, causing unendurable headaches.\n" + "Rumors of its origin are linked to a UFO\n" + "crash site in the desert 50 years ago."), + .pokemonScale = 432, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Elgyem, 32, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Elgyem, + .frontAnimId = ANIM_RISING_WOBBLE, + BACK_PIC(Elgyem, 48, 56), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_SHRINK_GROW, + PALETTE(Elgyem), + ICON(Elgyem, 0), + .footprint = gMonFootprint_Elgyem, + LEARNSETS(Elgyem), + .evolutions = EVOLUTION({EVO_LEVEL, 42, SPECIES_BEHEEYEM}), }, - [SPECIES_SWIRLIX] = + [SPECIES_BEHEEYEM] = { - .baseHP = 62, - .baseAttack = 48, - .baseDefense = 66, - .baseSpeed = 49, - .baseSpAttack = 59, - .baseSpDefense = 57, - .types = { TYPE_FAIRY, TYPE_FAIRY}, - .catchRate = 200, - .expYield = 68, - .evYield_Defense = 1, + .baseHP = 75, + .baseAttack = 75, + .baseDefense = 75, + .baseSpeed = 40, + .baseSpAttack = 125, + .baseSpDefense = 95, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, + .catchRate = 90, + .expYield = 170, + .evYield_SpAttack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_SWEET_VEIL, ABILITY_NONE, ABILITY_UNBURDEN}, - .bodyColor = BODY_COLOR_WHITE, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_TELEPATHY, ABILITY_SYNCHRONIZE, ABILITY_ANALYTIC}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - }, - - [SPECIES_SLURPUFF] = + .speciesName = _("Beheeyem"), + .cryId = CRY_BEHEEYEM, + .natDexNum = NATIONAL_DEX_BEHEEYEM, + .categoryName = _("Cerebral"), + .height = 10, + .weight = 345, + .description = COMPOUND_STRING( + "It can manipulate an opponent's memory.\n" + "Apparently, it communicates by flashing\n" + "its three fingers, but those patterns\n" + "haven't been decoded. "), + .pokemonScale = 305, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Beheeyem, 48, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Beheeyem, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Beheeyem, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_H_SHAKE, + PALETTE(Beheeyem), + ICON(Beheeyem, 2), + .footprint = gMonFootprint_Beheeyem, + LEARNSETS(Beheeyem), + }, +#endif //P_FAMILY_ELGYEM + +#if P_FAMILY_LITWICK + [SPECIES_LITWICK] = { - .baseHP = 82, - .baseAttack = 80, - .baseDefense = 86, - .baseSpeed = 72, - .baseSpAttack = 85, - .baseSpDefense = 75, - .types = { TYPE_FAIRY, TYPE_FAIRY}, - .catchRate = 140, - .expYield = 168, - .evYield_Defense = 2, + .baseHP = 50, + .baseAttack = 30, + .baseDefense = 55, + .baseSpeed = 20, + .baseSpAttack = 65, + .baseSpDefense = 55, + .types = { TYPE_GHOST, TYPE_FIRE}, + .catchRate = 190, + .expYield = 55, + .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_SWEET_VEIL, ABILITY_NONE, ABILITY_UNBURDEN}, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, + #if P_UPDATED_ABILITIES >= GEN_6 + .abilities = {ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY, ABILITY_INFILTRATOR}, + #else + .abilities = {ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY, ABILITY_SHADOW_TAG}, + #endif .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, + .noFlip = TRUE, + .speciesName = _("Litwick"), + .cryId = CRY_LITWICK, + .natDexNum = NATIONAL_DEX_LITWICK, + .categoryName = _("Candle"), + .height = 3, + .weight = 31, + .description = COMPOUND_STRING( + "While Litwick shines a light and pretends\n" + "to be a guide, it absorbs the life force of\n" + "any who follow it, which becomes the fuel\n" + "that it burns."), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Litwick, 32, 40), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Litwick, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Litwick, 40, 40), + .backPicYOffset = 14, + .backAnimId = BACK_ANIM_SHRINK_GROW, + PALETTE(Litwick), + ICON(Litwick, 2), + .footprint = gMonFootprint_Litwick, + LEARNSETS(Litwick), + .evolutions = EVOLUTION({EVO_LEVEL, 41, SPECIES_LAMPENT}), }, - [SPECIES_INKAY] = + [SPECIES_LAMPENT] = { - .baseHP = 53, - .baseAttack = 54, - .baseDefense = 53, - .baseSpeed = 45, - .baseSpAttack = 37, - .baseSpDefense = 46, - .types = { TYPE_DARK, TYPE_PSYCHIC}, - .catchRate = 190, - .expYield = 58, - .evYield_Attack = 1, + .baseHP = 60, + .baseAttack = 40, + .baseDefense = 60, + .baseSpeed = 55, + .baseSpAttack = 95, + .baseSpDefense = 60, + .types = { TYPE_GHOST, TYPE_FIRE}, + .catchRate = 90, + .expYield = 130, + .evYield_SpAttack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_2}, - .abilities = {ABILITY_CONTRARY, ABILITY_SUCTION_CUPS, ABILITY_INFILTRATOR}, - .bodyColor = BODY_COLOR_BLUE, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, + #if P_UPDATED_ABILITIES >= GEN_6 + .abilities = {ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY, ABILITY_INFILTRATOR}, + #else + .abilities = {ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY, ABILITY_SHADOW_TAG}, + #endif + .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, + .speciesName = _("Lampent"), + .cryId = CRY_LAMPENT, + .natDexNum = NATIONAL_DEX_LAMPENT, + .categoryName = _("Lamp"), + .height = 6, + .weight = 130, + .description = COMPOUND_STRING( + "This ominous Pokémon is feared.\n" + "Through cities it wanders, searching\n" + "for the spirits of the fallen. The spirits\n" + "it absorbs fuel its baleful fire."), + .pokemonScale = 422, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Lampent, 56, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Lampent, + .frontAnimId = ANIM_V_SLIDE_WOBBLE, + BACK_PIC(Lampent, 56, 48), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(Lampent), + ICON(Lampent, 2), + .footprint = gMonFootprint_Lampent, + LEARNSETS(Lampent), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_DUSK_STONE, SPECIES_CHANDELURE}), }, - [SPECIES_MALAMAR] = + [SPECIES_CHANDELURE] = { - .baseHP = 86, - .baseAttack = 92, - .baseDefense = 88, - .baseSpeed = 73, - .baseSpAttack = 68, - .baseSpDefense = 75, - .types = { TYPE_DARK, TYPE_PSYCHIC}, - .catchRate = 80, - .expYield = 169, - .evYield_Attack = 2, + .baseHP = 60, + .baseAttack = 55, + .baseDefense = 90, + .baseSpeed = 80, + .baseSpAttack = 145, + .baseSpDefense = 90, + .types = { TYPE_GHOST, TYPE_FIRE}, + .catchRate = 45, + .expYield = 234, + .evYield_SpAttack = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_2}, - .abilities = {ABILITY_CONTRARY, ABILITY_SUCTION_CUPS, ABILITY_INFILTRATOR}, - .bodyColor = BODY_COLOR_BLUE, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, + #if P_UPDATED_ABILITIES >= GEN_6 + .abilities = {ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY, ABILITY_INFILTRATOR}, + #else + .abilities = {ABILITY_FLASH_FIRE, ABILITY_FLAME_BODY, ABILITY_SHADOW_TAG}, + #endif + .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, - }, - - [SPECIES_BINACLE] = + .speciesName = _("Chandelure"), + .cryId = CRY_CHANDELURE, + .natDexNum = NATIONAL_DEX_CHANDELURE, + .categoryName = _("Luring"), + .height = 10, + .weight = 343, + .description = COMPOUND_STRING( + "Being consumed in Chandelure's flame burns\n" + "up the spirit, leaving the body behind.\n" + "By waving the flames on its arms, it puts\n" + "its foes into a hypnotic trance."), + .pokemonScale = 305, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Chandelure, 64, 64), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Chandelure, + .frontAnimId = ANIM_H_SLIDE_WOBBLE, + BACK_PIC(Chandelure, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Chandelure), + ICON(Chandelure, 2), + .footprint = gMonFootprint_Chandelure, + LEARNSETS(Chandelure), + }, +#endif //P_FAMILY_LITWICK + +#if P_FAMILY_AXEW + [SPECIES_AXEW] = { - .baseHP = 42, - .baseAttack = 52, - .baseDefense = 67, - .baseSpeed = 50, - .baseSpAttack = 39, - .baseSpDefense = 56, - .types = { TYPE_ROCK, TYPE_WATER}, - .catchRate = 120, - .expYield = 61, + .baseHP = 46, + .baseAttack = 87, + .baseDefense = 60, + .baseSpeed = 57, + .baseSpAttack = 30, + .baseSpDefense = 40, + .types = { TYPE_DRAGON, TYPE_DRAGON}, + .catchRate = 75, + .expYield = 64, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, - .abilities = {ABILITY_TOUGH_CLAWS, ABILITY_SNIPER, ABILITY_PICKPOCKET}, - .bodyColor = BODY_COLOR_BROWN, + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_RIVALRY, ABILITY_MOLD_BREAKER, ABILITY_UNNERVE}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, + .speciesName = _("Axew"), + .cryId = CRY_AXEW, + .natDexNum = NATIONAL_DEX_AXEW, + .categoryName = _("Tusk"), + .height = 6, + .weight = 180, + .description = COMPOUND_STRING( + "They mark their territory by leaving\n" + "gashes in trees with their tusks. If a\n" + "tusk breaks, a new one grows in quickly,\n" + "harder and sturdier than the last."), + .pokemonScale = 422, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Axew, 40, 48), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Axew, + .frontAnimId = ANIM_H_SHAKE, + BACK_PIC(Axew, 48, 56), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Axew), + ICON(Axew, 1), + .footprint = gMonFootprint_Axew, + LEARNSETS(Axew), + .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_FRAXURE}), }, - [SPECIES_BARBARACLE] = + [SPECIES_FRAXURE] = { - .baseHP = 72, - .baseAttack = 105, - .baseDefense = 115, - .baseSpeed = 68, - .baseSpAttack = 54, - .baseSpDefense = 86, - .types = { TYPE_ROCK, TYPE_WATER}, - .catchRate = 45, - .expYield = 175, + .baseHP = 66, + .baseAttack = 117, + .baseDefense = 70, + .baseSpeed = 67, + .baseSpAttack = 40, + .baseSpDefense = 50, + .types = { TYPE_DRAGON, TYPE_DRAGON}, + .catchRate = 60, + .expYield = 144, .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, - .abilities = {ABILITY_TOUGH_CLAWS, ABILITY_SNIPER, ABILITY_PICKPOCKET}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = TRUE, + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_RIVALRY, ABILITY_MOLD_BREAKER, ABILITY_UNNERVE}, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + .speciesName = _("Fraxure"), + .cryId = CRY_FRAXURE, + .natDexNum = NATIONAL_DEX_FRAXURE, + .categoryName = _("Axe Jaw"), + .height = 10, + .weight = 360, + .description = COMPOUND_STRING( + "Their tusks can shatter rocks.\n" + "A broken tusk will not grow back,\n" + "so it diligently sharpens its tusks on\n" + "river rocks after the end of a battle."), + .pokemonScale = 305, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Fraxure, 56, 56), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Fraxure, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Fraxure, 64, 48), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, + PALETTE(Fraxure), + ICON(Fraxure, 1), + .footprint = gMonFootprint_Fraxure, + LEARNSETS(Fraxure), + .evolutions = EVOLUTION({EVO_LEVEL, 48, SPECIES_HAXORUS}), }, - [SPECIES_SKRELP] = + [SPECIES_HAXORUS] = + { + .baseHP = 76, + .baseAttack = 147, + .baseDefense = 90, + .baseSpeed = 97, + .baseSpAttack = 60, + .baseSpDefense = 70, + .types = { TYPE_DRAGON, TYPE_DRAGON}, + .catchRate = 45, + .expYield = 243, + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_RIVALRY, ABILITY_MOLD_BREAKER, ABILITY_UNNERVE}, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + .speciesName = _("Haxorus"), + .cryId = CRY_HAXORUS, + .natDexNum = NATIONAL_DEX_HAXORUS, + .categoryName = _("Axe Jaw"), + .height = 18, + .weight = 1055, + .description = COMPOUND_STRING( + "They are kind but can be relentless\n" + "when defending territory. Their sturdy\n" + "tusks will stay sharp even if used to cut\n" + "steel beams."), + .pokemonScale = 267, + .pokemonOffset = 2, + .trainerScale = 286, + .trainerOffset = 1, + FRONT_PIC(Haxorus, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Haxorus, + .frontAnimId = ANIM_H_SHAKE, + BACK_PIC(Haxorus, 64, 56), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(Haxorus), + ICON(Haxorus, 2), + .footprint = gMonFootprint_Haxorus, + LEARNSETS(Haxorus), + }, +#endif //P_FAMILY_AXEW + +#if P_FAMILY_CUBCHOO + [SPECIES_CUBCHOO] = { - .baseHP = 50, - .baseAttack = 60, - .baseDefense = 60, - .baseSpeed = 30, + .baseHP = 55, + .baseAttack = 70, + .baseDefense = 40, + .baseSpeed = 40, .baseSpAttack = 60, - .baseSpDefense = 60, - .types = { TYPE_POISON, TYPE_WATER}, - .catchRate = 225, - .expYield = 64, - .evYield_SpDefense = 1, + .baseSpDefense = 40, + .types = { TYPE_ICE, TYPE_ICE}, + .catchRate = 120, + .expYield = 61, + .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_POISON_POINT, ABILITY_POISON_TOUCH, ABILITY_ADAPTABILITY}, - .bodyColor = BODY_COLOR_BROWN, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_SNOW_CLOAK, ABILITY_SLUSH_RUSH, ABILITY_RATTLED}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, + .speciesName = _("Cubchoo"), + .cryId = CRY_CUBCHOO, + .natDexNum = NATIONAL_DEX_CUBCHOO, + .categoryName = _("Chill"), + .height = 5, + .weight = 85, + .description = COMPOUND_STRING( + "Its nose is always running.\n" + "Their snot is a barometer of health.\n" + "When healthy, their snot is sticky and\n" + "the power of their ice moves increases."), + .pokemonScale = 432, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Cubchoo, 32, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Cubchoo, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Cubchoo, 40, 40), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Cubchoo), + ICON(Cubchoo, 0), + .footprint = gMonFootprint_Cubchoo, + LEARNSETS(Cubchoo), + .evolutions = EVOLUTION({EVO_LEVEL, 37, SPECIES_BEARTIC}), }, - [SPECIES_DRAGALGE] = + [SPECIES_BEARTIC] = { - .baseHP = 65, - .baseAttack = 75, - .baseDefense = 90, - .baseSpeed = 44, - .baseSpAttack = 97, - .baseSpDefense = 123, - .types = { TYPE_POISON, TYPE_DRAGON}, - .catchRate = 55, - .expYield = 173, - .evYield_SpDefense = 2, + .baseHP = 95, + .baseAttack = P_UPDATED_STATS >= GEN_7 ? 130 : 110, + .baseDefense = 80, + .baseSpeed = 50, + .baseSpAttack = 70, + .baseSpDefense = 80, + .types = { TYPE_ICE, TYPE_ICE}, + .catchRate = 60, + .expYield = 177, + .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_POISON_POINT, ABILITY_POISON_TOUCH, ABILITY_ADAPTABILITY}, - .bodyColor = BODY_COLOR_BROWN, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_SNOW_CLOAK, ABILITY_SLUSH_RUSH, ABILITY_SWIFT_SWIM}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - }, - - [SPECIES_CLAUNCHER] = + .speciesName = _("Beartic"), + .cryId = CRY_BEARTIC, + .natDexNum = NATIONAL_DEX_BEARTIC, + .categoryName = _("Freezing"), + .height = 26, + .weight = 2600, + .description = COMPOUND_STRING( + "It freezes its breath to create fangs\n" + "and claws of ice to fight with.\n" + "Very able in the water, it swims around\n" + "in northern seas and catches prey."), + .pokemonScale = 266, + .pokemonOffset = 3, + .trainerScale = 399, + .trainerOffset = 4, + FRONT_PIC(Beartic, 64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Beartic, + .frontAnimId = ANIM_H_SHAKE, + BACK_PIC(Beartic, 64, 64), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, + PALETTE(Beartic), + ICON(Beartic, 0), + .footprint = gMonFootprint_Beartic, + LEARNSETS(Beartic), + }, +#endif //P_FAMILY_CUBCHOO + +#if P_FAMILY_CRYOGONAL + [SPECIES_CRYOGONAL] = { - .baseHP = 50, - .baseAttack = 53, - .baseDefense = 62, - .baseSpeed = 44, - .baseSpAttack = 58, - .baseSpDefense = 63, - .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 225, - .expYield = 66, - .evYield_SpAttack = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .baseAttack = 50, + .baseSpeed = 105, + .baseSpAttack = 95, + .baseSpDefense = 135, + #if P_UPDATED_STATS >= GEN_7 + .baseHP = 80, + .baseDefense = 50, + #else + .baseHP = 70, + .baseDefense = 30, + #endif + .types = { TYPE_ICE, TYPE_ICE}, + .catchRate = 25, + .expYield = 180, + .evYield_SpDefense = 2, + .itemRare = ITEM_NEVER_MELT_ICE, + .genderRatio = MON_GENDERLESS, + .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3}, - .abilities = {ABILITY_MEGA_LAUNCHER, ABILITY_NONE}, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, .bodyColor = BODY_COLOR_BLUE, - .noFlip = TRUE, - }, - - [SPECIES_CLAWITZER] = + .noFlip = FALSE, + .speciesName = _("Cryogonal"), + .cryId = CRY_CRYOGONAL, + .natDexNum = NATIONAL_DEX_CRYOGONAL, + .categoryName = _("Crystallize"), + .height = 11, + .weight = 1480, + .description = COMPOUND_STRING( + "They are born in snow clouds. When\n" + "its body temperature goes up, it turns\n" + "into steam and vanishes. When its\n" + "temperature lowers, it returns to ice."), + .pokemonScale = 320, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Cryogonal, 56, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Cryogonal, + .frontAnimId = ANIM_SHRINK_GROW, + .enemyMonElevation = 3, + BACK_PIC(Cryogonal, 56, 64), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_H_VIBRATE, + PALETTE(Cryogonal), + ICON(Cryogonal, 0), + .footprint = gMonFootprint_Cryogonal, + LEARNSETS(Cryogonal), + }, +#endif //P_FAMILY_CRYOGONAL + +#if P_FAMILY_SHELMET + [SPECIES_SHELMET] = { - .baseHP = 71, - .baseAttack = 73, - .baseDefense = 88, - .baseSpeed = 59, - .baseSpAttack = 120, - .baseSpDefense = 89, - .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 55, - .expYield = 100, - .evYield_SpAttack = 2, + .baseHP = 50, + .baseAttack = 40, + .baseDefense = 85, + .baseSpeed = 25, + .baseSpAttack = 40, + .baseSpDefense = 65, + .types = { TYPE_BUG, TYPE_BUG}, + .catchRate = 200, + .expYield = 61, + .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3}, - .abilities = {ABILITY_MEGA_LAUNCHER, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = TRUE, - }, - - [SPECIES_HELIOPTILE] = - { - .baseHP = 44, - .baseAttack = 38, - .baseDefense = 33, - .baseSpeed = 70, - .baseSpAttack = 61, - .baseSpDefense = 43, - .types = { TYPE_ELECTRIC, TYPE_NORMAL}, - .catchRate = 190, - .expYield = 58, - .evYield_Speed = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_DRY_SKIN, ABILITY_SAND_VEIL, ABILITY_SOLAR_POWER}, - .bodyColor = BODY_COLOR_YELLOW, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_HYDRATION, ABILITY_SHELL_ARMOR, ABILITY_OVERCOAT}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, + .speciesName = _("Shelmet"), + .cryId = CRY_SHELMET, + .natDexNum = NATIONAL_DEX_SHELMET, + .categoryName = _("Snail"), + .height = 4, + .weight = 77, + .description = COMPOUND_STRING( + "When attacked, it defends itself by\n" + "closing the lid of its shell. It evolves\n" + "when bathed in an electric-like energy\n" + "along with Karrablast."), + .pokemonScale = 491, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Shelmet, 40, 40), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Shelmet, + .frontAnimId = ANIM_TWIST, + BACK_PIC(Shelmet, 64, 32), + .backPicYOffset = 19, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Shelmet), + ICON(Shelmet, 1), + .footprint = gMonFootprint_Shelmet, + LEARNSETS(Shelmet), + .evolutions = EVOLUTION({EVO_TRADE_SPECIFIC_MON, SPECIES_KARRABLAST, SPECIES_ACCELGOR}), }, - [SPECIES_HELIOLISK] = + [SPECIES_ACCELGOR] = { - .baseHP = 62, - .baseAttack = 55, - .baseDefense = 52, - .baseSpeed = 109, - .baseSpAttack = 109, - .baseSpDefense = 94, - .types = { TYPE_ELECTRIC, TYPE_NORMAL}, + .baseHP = 80, + .baseAttack = 70, + .baseDefense = 40, + .baseSpeed = 145, + .baseSpAttack = 100, + .baseSpDefense = 60, + .types = { TYPE_BUG, TYPE_BUG}, .catchRate = 75, - .expYield = 168, - .evYield_Speed = 1, - .evYield_SpAttack = 1, + .expYield = 173, + .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_DRY_SKIN, ABILITY_SAND_VEIL, ABILITY_SOLAR_POWER}, - .bodyColor = BODY_COLOR_YELLOW, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_HYDRATION, ABILITY_STICKY_HOLD, ABILITY_UNBURDEN}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, - }, + .speciesName = _("Accelgor"), + .cryId = CRY_ACCELGOR, + .natDexNum = NATIONAL_DEX_ACCELGOR, + .categoryName = _("Shell Out"), + .height = 8, + .weight = 253, + .description = COMPOUND_STRING( + "When its body dries out, it weakens. So, to\n" + "prevent dehydration, it wraps itself in\n" + "layers of thin membrane. It is very light\n" + "and fights with ninja-like movements."), + .pokemonScale = 366, + .pokemonOffset = 9, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Accelgor, 64, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Accelgor, + .frontAnimId = ANIM_H_JUMPS_V_STRETCH, + BACK_PIC(Accelgor, 64, 64), + .backPicYOffset = 2, + .backAnimId = BACK_ANIM_H_SPRING_REPEATED, + PALETTE(Accelgor), + ICON(Accelgor, 1), + .footprint = gMonFootprint_Accelgor, + LEARNSETS(Accelgor), + }, +#endif //P_FAMILY_SHELMET + +#if P_FAMILY_STUNFISK +#define STUNFISK_MISC_INFO \ + .catchRate = 75, \ + .expYield = 165, \ + .evYield_HP = 2, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_AMORPHOUS}, \ + .noFlip = FALSE, \ + .speciesName = _("Stunfisk"), \ + .cryId = CRY_STUNFISK, \ + .natDexNum = NATIONAL_DEX_STUNFISK, \ + .categoryName = _("Trap"), \ + .height = 7, \ + .pokemonScale = 365, \ + .pokemonOffset = 14, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Stunfisk, \ + .formSpeciesIdTable = sStunfiskFormSpeciesIdTable - [SPECIES_TYRUNT] = + [SPECIES_STUNFISK] = { - .baseHP = 58, - .baseAttack = 89, - .baseDefense = 77, - .baseSpeed = 48, - .baseSpAttack = 45, - .baseSpDefense = 45, - .types = { TYPE_ROCK, TYPE_DRAGON}, - .catchRate = 45, - .expYield = 72, - .evYield_Attack = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 30, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_STRONG_JAW, ABILITY_NONE, ABILITY_STURDY}, + STUNFISK_MISC_INFO, + .baseHP = 109, + .baseAttack = 66, + .baseDefense = 84, + .baseSpeed = 32, + .baseSpAttack = 81, + .baseSpDefense = 99, + .types = { TYPE_GROUND, TYPE_ELECTRIC}, + .itemRare = ITEM_SOFT_SAND, + .friendship = 70, + .abilities = {ABILITY_STATIC, ABILITY_LIMBER, ABILITY_SAND_VEIL}, .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_TYRANTRUM] = + .weight = 110, + .description = COMPOUND_STRING( + "It conceals itself in the mud of the\n" + "seashore. Then it waits. When prey touch\n" + "it, it delivers a jolt of electricity.\n" + "It smiles when transmitting electricity."), + FRONT_PIC(Stunfisk, 56, 48), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Stunfisk, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Stunfisk, 64, 24), + .backPicYOffset = 22, + .backAnimId = BACK_ANIM_H_STRETCH, + PALETTE(Stunfisk), + ICON(Stunfisk, 2), + LEARNSETS(Stunfisk), + }, + +#if P_GALARIAN_FORMS + [SPECIES_STUNFISK_GALARIAN] = { - .baseHP = 82, - .baseAttack = 121, - .baseDefense = 119, - .baseSpeed = 71, - .baseSpAttack = 69, - .baseSpDefense = 59, - .types = { TYPE_ROCK, TYPE_DRAGON}, - .catchRate = 45, - .expYield = 182, - .evYield_Attack = 2, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 30, + STUNFISK_MISC_INFO, + .baseHP = 109, + .baseAttack = 81, + .baseDefense = 99, + .baseSpeed = 32, + .baseSpAttack = 66, + .baseSpDefense = 84, + .types = { TYPE_GROUND, TYPE_STEEL}, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_STRONG_JAW, ABILITY_NONE, ABILITY_ROCK_HEAD}, - .bodyColor = BODY_COLOR_RED, + .abilities = {ABILITY_MIMICRY, ABILITY_NONE}, + .bodyColor = BODY_COLOR_GREEN, + .weight = 205, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(StunfiskGalarian, 48, 40), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_StunfiskGalarian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(StunfiskGalarian, 64, 24), + .backPicYOffset = 23, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(StunfiskGalarian), + ICON(StunfiskGalarian, 1), + LEARNSETS(StunfiskGalarian), + .isGalarianForm = TRUE, + }, +#endif //P_GALARIAN_FORMS +#endif //P_FAMILY_STUNFISK + +#if P_FAMILY_MIENFOO + [SPECIES_MIENFOO] = + { + .baseHP = 45, + .baseAttack = 85, + .baseDefense = 50, + .baseSpeed = 65, + .baseSpAttack = 55, + .baseSpDefense = 50, + .types = { TYPE_FIGHTING, TYPE_FIGHTING}, + .catchRate = 180, + .expYield = 70, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_INNER_FOCUS, ABILITY_REGENERATOR, ABILITY_RECKLESS}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, + .speciesName = _("Mienfoo"), + .cryId = CRY_MIENFOO, + .natDexNum = NATIONAL_DEX_MIENFOO, + .categoryName = _("Martial Arts"), + .height = 9, + .weight = 200, + .description = COMPOUND_STRING( + "They have mastered elegant combos.\n" + "As they concentrate, their battle moves\n" + "become swifter and more precise. What it\n" + "lacks in power, it makes up for in quantity."), + .pokemonScale = 338, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Mienfoo, 40, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Mienfoo, + .frontAnimId = ANIM_H_VIBRATE, + BACK_PIC(Mienfoo, 56, 40), + .backPicYOffset = 14, + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, + PALETTE(Mienfoo), + ICON(Mienfoo, 1), + .footprint = gMonFootprint_Mienfoo, + LEARNSETS(Mienfoo), + .evolutions = EVOLUTION({EVO_LEVEL, 50, SPECIES_MIENSHAO}), }, - [SPECIES_AMAURA] = + [SPECIES_MIENSHAO] = { - .baseHP = 77, - .baseAttack = 59, - .baseDefense = 50, - .baseSpeed = 46, - .baseSpAttack = 67, - .baseSpDefense = 63, - .types = { TYPE_ROCK, TYPE_ICE}, + .baseHP = 65, + .baseAttack = 125, + .baseDefense = 60, + .baseSpeed = 105, + .baseSpAttack = 95, + .baseSpDefense = 60, + .types = { TYPE_FIGHTING, TYPE_FIGHTING}, .catchRate = 45, - .expYield = 72, - .evYield_HP = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 30, + .expYield = 179, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, - .abilities = {ABILITY_REFRIGERATE, ABILITY_NONE, ABILITY_SNOW_WARNING}, - .bodyColor = BODY_COLOR_BLUE, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_INNER_FOCUS, ABILITY_REGENERATOR, ABILITY_RECKLESS}, + .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, - }, - - [SPECIES_AURORUS] = + .speciesName = _("Mienshao"), + .cryId = CRY_MIENSHAO, + .natDexNum = NATIONAL_DEX_MIENSHAO, + .categoryName = _("Martial Arts"), + .height = 14, + .weight = 355, + .description = COMPOUND_STRING( + "They use the long fur on their arms as\n" + "a whip to strike their opponents. Its arm\n" + "attacks come with such rapidity that they\n" + "cannot even be seen."), + .pokemonScale = 265, + .pokemonOffset = 2, + .trainerScale = 262, + .trainerOffset = 0, + FRONT_PIC(Mienshao, 64, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Mienshao, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Mienshao, 56, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_V_STRETCH, + PALETTE(Mienshao), + ICON(Mienshao, 2), + .footprint = gMonFootprint_Mienshao, + LEARNSETS(Mienshao), + }, +#endif //P_FAMILY_MIENFOO + +#if P_FAMILY_DRUDDIGON + [SPECIES_DRUDDIGON] = { - .baseHP = 123, - .baseAttack = 77, - .baseDefense = 72, - .baseSpeed = 58, - .baseSpAttack = 99, - .baseSpDefense = 92, - .types = { TYPE_ROCK, TYPE_ICE}, + .baseHP = 77, + .baseAttack = 120, + .baseDefense = 90, + .baseSpeed = 48, + .baseSpAttack = 60, + .baseSpDefense = 90, + .types = { TYPE_DRAGON, TYPE_DRAGON}, .catchRate = 45, - .expYield = 104, - .evYield_HP = 2, - .genderRatio = PERCENT_FEMALE(12.5), + .expYield = 170, + .evYield_Attack = 2, + .itemRare = ITEM_DRAGON_FANG, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, - .abilities = {ABILITY_REFRIGERATE, ABILITY_NONE, ABILITY_SNOW_WARNING}, - .bodyColor = BODY_COLOR_BLUE, + .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_MONSTER}, + .abilities = {ABILITY_ROUGH_SKIN, ABILITY_SHEER_FORCE, ABILITY_MOLD_BREAKER}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, - }, - - [SPECIES_SYLVEON] = + .speciesName = _("Druddigon"), + .cryId = CRY_DRUDDIGON, + .natDexNum = NATIONAL_DEX_DRUDDIGON, + .categoryName = _("Cave"), + .height = 16, + .weight = 1390, + .description = COMPOUND_STRING( + "It warms its body by absorbing sunlight\n" + "with its wings. When its body temperature\n" + "falls, it can no longer move. It uses its\n" + "sharp claws to catch prey."), + .pokemonScale = 259, + .pokemonOffset = 1, + .trainerScale = 296, + .trainerOffset = 1, + FRONT_PIC(Druddigon, 64, 64), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Druddigon, + .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL_SLOW, + BACK_PIC(Druddigon, 64, 56), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(Druddigon), + ICON(Druddigon, 0), + .footprint = gMonFootprint_Druddigon, + LEARNSETS(Druddigon), + }, +#endif //P_FAMILY_DRUDDIGON + +#if P_FAMILY_GOLETT + [SPECIES_GOLETT] = { - .baseHP = 95, - .baseAttack = 65, - .baseDefense = 65, - .baseSpeed = 60, - .baseSpAttack = 110, - .baseSpDefense = 130, - .types = { TYPE_FAIRY, TYPE_FAIRY}, - .catchRate = 45, - .expYield = 184, - .evYield_SpDefense = 2, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 35, + .baseHP = 59, + .baseAttack = 74, + .baseDefense = 50, + .baseSpeed = 35, + .baseSpAttack = 35, + .baseSpDefense = 50, + .types = { TYPE_GROUND, TYPE_GHOST}, + .catchRate = 190, + .expYield = 61, + .evYield_Attack = 1, + .itemRare = ITEM_LIGHT_CLAY, + .genderRatio = MON_GENDERLESS, + .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_CUTE_CHARM, ABILITY_CUTE_CHARM, ABILITY_PIXILATE}, - .bodyColor = BODY_COLOR_PINK, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_IRON_FIST, ABILITY_KLUTZ, ABILITY_NO_GUARD}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = TRUE, + .speciesName = _("Golett"), + .cryId = CRY_GOLETT, + .natDexNum = NATIONAL_DEX_GOLETT, + .categoryName = _("Automaton"), + .height = 10, + .weight = 920, + .description = COMPOUND_STRING( + "These Pokémon are thought to have\n" + "been created by the science of an\n" + "ancient and mysterious civilization.\n" + "It's been active for thousands of years."), + .pokemonScale = 305, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Golett, 56, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Golett, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(Golett, 64, 56), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Golett), + ICON(Golett, 0), + .footprint = gMonFootprint_Golett, + LEARNSETS(Golett), + .evolutions = EVOLUTION({EVO_LEVEL, 43, SPECIES_GOLURK}), }, - [SPECIES_HAWLUCHA] = + [SPECIES_GOLURK] = { - .baseHP = 78, - .baseAttack = 92, - .baseDefense = 75, - .baseSpeed = 118, - .baseSpAttack = 74, - .baseSpDefense = 63, - .types = { TYPE_FIGHTING, TYPE_FLYING}, - .catchRate = 100, - .expYield = 175, + .baseHP = 89, + .baseAttack = 124, + .baseDefense = 80, + .baseSpeed = 55, + .baseSpAttack = 55, + .baseSpDefense = 80, + .types = { TYPE_GROUND, TYPE_GHOST}, + .catchRate = 90, + .expYield = 169, .evYield_Attack = 2, - .itemRare = ITEM_KINGS_ROCK, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .itemRare = ITEM_LIGHT_CLAY, + .genderRatio = MON_GENDERLESS, + .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - #if P_UPDATED_EGG_GROUPS >= GEN_8 - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_HUMAN_LIKE}, - #else - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - #endif - .abilities = {ABILITY_LIMBER, ABILITY_UNBURDEN, ABILITY_MOLD_BREAKER}, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_IRON_FIST, ABILITY_KLUTZ, ABILITY_NO_GUARD}, .bodyColor = BODY_COLOR_GREEN, + .noFlip = TRUE, + .speciesName = _("Golurk"), + .cryId = CRY_GOLURK, + .natDexNum = NATIONAL_DEX_GOLURK, + .categoryName = _("Automaton"), + .height = 28, + .weight = 3300, + .description = COMPOUND_STRING( + "Golurk were created to protect people\n" + "and Pokémon by an ancient civilisation.\n" + "Removing the seal on its chest makes its\n" + "internal energy go out of control."), + .pokemonScale = 275, + .pokemonOffset = 3, + .trainerScale = 300, + .trainerOffset = 0, + FRONT_PIC(Golurk, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Golurk, + .frontAnimId = ANIM_V_SHAKE_TWICE, + BACK_PIC(Golurk, 64, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Golurk), + ICON(Golurk, 0), + .footprint = gMonFootprint_Golurk, + LEARNSETS(Golurk), + }, +#endif //P_FAMILY_GOLETT + +#if P_FAMILY_PAWNIARD + [SPECIES_PAWNIARD] = + { + .baseHP = 45, + .baseAttack = 85, + .baseDefense = 70, + .baseSpeed = 60, + .baseSpAttack = 40, + .baseSpDefense = 40, + .types = { TYPE_DARK, TYPE_STEEL}, + .catchRate = 120, + .expYield = 68, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = 35, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_DEFIANT, ABILITY_INNER_FOCUS, ABILITY_PRESSURE}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, + .speciesName = _("Pawniard"), + .cryId = CRY_PAWNIARD, + .natDexNum = NATIONAL_DEX_PAWNIARD, + .categoryName = _("Sharp Blade"), + .height = 5, + .weight = 102, + .description = COMPOUND_STRING( + "Ignoring their injuries, groups attack by\n" + "sinking the blades that cover their bodies\n" + "into their prey. If battling dulls them, it\n" + "sharpens them on stones by the river."), + .pokemonScale = 432, + .pokemonOffset = 15, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Pawniard, 56, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Pawniard, + .frontAnimId = ANIM_H_VIBRATE, + BACK_PIC(Pawniard, 64, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Pawniard), + ICON(Pawniard, 0), + .footprint = gMonFootprint_Pawniard, + LEARNSETS(Pawniard), + .evolutions = EVOLUTION({EVO_LEVEL, 52, SPECIES_BISHARP}), }, - [SPECIES_DEDENNE] = + [SPECIES_BISHARP] = { - .baseHP = 67, - .baseAttack = 58, - .baseDefense = 57, - .baseSpeed = 101, - .baseSpAttack = 81, - .baseSpDefense = 67, - .types = { TYPE_ELECTRIC, TYPE_FAIRY}, - .catchRate = 180, - .expYield = 151, - .evYield_Speed = 2, + .baseHP = 65, + .baseAttack = 125, + .baseDefense = 100, + .baseSpeed = 70, + .baseSpAttack = 60, + .baseSpDefense = 70, + .types = { TYPE_DARK, TYPE_STEEL}, + .catchRate = 45, + .expYield = 172, + .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, + .friendship = 35, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_CHEEK_POUCH, ABILITY_PICKUP, ABILITY_PLUS}, - .bodyColor = BODY_COLOR_YELLOW, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_DEFIANT, ABILITY_INNER_FOCUS, ABILITY_PRESSURE}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, - }, - - [SPECIES_CARBINK] = + .speciesName = _("Bisharp"), + .cryId = CRY_BISHARP, + .natDexNum = NATIONAL_DEX_BISHARP, + .categoryName = _("Sword Blade"), + .height = 16, + .weight = 700, + .description = COMPOUND_STRING( + "This pitiless Pokémon commands a group\n" + "of Pawniard to hound prey into immobility.\n" + "It battles to become the boss, but will be\n" + "driven from the group if it loses."), + .pokemonScale = 259, + .pokemonOffset = 1, + .trainerScale = 296, + .trainerOffset = 1, + FRONT_PIC(Bisharp, 48, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Bisharp, + .frontAnimId = ANIM_H_STRETCH, + BACK_PIC(Bisharp, 64, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_GROW_STUTTER, + PALETTE(Bisharp), + ICON(Bisharp, 0), + .footprint = gMonFootprint_Bisharp, + LEARNSETS(Bisharp), + .evolutions = EVOLUTION({EVO_NONE, 0, SPECIES_KINGAMBIT}), + }, + +#if P_GEN_9_CROSS_EVOS + [SPECIES_KINGAMBIT] = { - .baseHP = 50, - .baseAttack = 50, - .baseDefense = 150, + .baseHP = 100, + .baseAttack = 135, + .baseDefense = 120, .baseSpeed = 50, - .baseSpAttack = 50, - .baseSpDefense = 150, - .types = { TYPE_ROCK, TYPE_FAIRY}, - .catchRate = 60, - .expYield = 100, - .evYield_Defense = 1, - .evYield_SpDefense = 1, - .genderRatio = MON_GENDERLESS, - .eggCycles = 25, + .baseSpAttack = 60, + .baseSpDefense = 85, + .types = { TYPE_DARK, TYPE_STEEL }, + .catchRate = 25, + .expYield = 275, + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_CLEAR_BODY, ABILITY_NONE, ABILITY_STURDY}, - .bodyColor = BODY_COLOR_GRAY, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_DEFIANT, ABILITY_SUPREME_OVERLORD, ABILITY_PRESSURE}, + .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, - }, - - [SPECIES_GOOMY] = + .speciesName = _("Kingambit"), + .cryId = CRY_KINGAMBIT, + .natDexNum = NATIONAL_DEX_KINGAMBIT, + .categoryName = _("Big Blade"), + .height = 20, + .weight = 1200, + .description = COMPOUND_STRING( + "Though it commands a massive army\n" + "in battle, it's not skilled at\n" + "devising complex strategies. It just uses\n" + "brute strength to keep pushing."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Kingambit, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Kingambit, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Kingambit, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Kingambit), + ICON(Kingambit, 3), + //.footprint = gMonFootprint_Kingambit, + LEARNSETS(Kingambit), + }, +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_PAWNIARD + +#if P_FAMILY_BOUFFALANT + [SPECIES_BOUFFALANT] = { - .baseHP = 45, - .baseAttack = 50, - .baseDefense = 35, - .baseSpeed = 40, - .baseSpAttack = 55, - .baseSpDefense = 75, - .types = { TYPE_DRAGON, TYPE_DRAGON}, + .baseHP = 95, + .baseAttack = 110, + .baseDefense = 95, + .baseSpeed = 55, + .baseSpAttack = 40, + .baseSpDefense = 95, + .types = { TYPE_NORMAL, TYPE_NORMAL}, .catchRate = 45, - .expYield = 60, - .evYield_SpDefense = 1, - .itemRare = ITEM_SHED_SHELL, + .expYield = 172, + .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 40, - .friendship = 35, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_RECKLESS, ABILITY_SAP_SIPPER, ABILITY_SOUNDPROOF}, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + .speciesName = _("Bouffalant"), + .cryId = CRY_BOUFFALANT, + .natDexNum = NATIONAL_DEX_BOUFFALANT, + .categoryName = _("Bash Buffalo"), + .height = 16, + .weight = 946, + .description = COMPOUND_STRING( + "Their fluffy fur absorbs damage, even\n" + "if they strike foes with a fierce headbutt.\n" + "Their headbutts have enough destructive\n" + "force to derail a train."), + .pokemonScale = 259, + .pokemonOffset = 1, + .trainerScale = 296, + .trainerOffset = 1, + FRONT_PIC(Bouffalant, 64, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Bouffalant, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + BACK_PIC(Bouffalant, 64, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(Bouffalant), + ICON(Bouffalant, 2), + .footprint = gMonFootprint_Bouffalant, + LEARNSETS(Bouffalant), + }, +#endif //P_FAMILY_BOUFFALANT + +#if P_FAMILY_RUFFLET + [SPECIES_RUFFLET] = + { + .baseHP = 70, + .baseAttack = 83, + .baseDefense = 50, + .baseSpeed = 60, + .baseSpAttack = 37, + .baseSpDefense = 50, + .types = { TYPE_NORMAL, TYPE_FLYING}, + .catchRate = 190, + .expYield = 70, + .evYield_Attack = 1, + .genderRatio = MON_MALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_SAP_SIPPER, ABILITY_HYDRATION, ABILITY_GOOEY}, - .bodyColor = BODY_COLOR_PURPLE, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + .abilities = {ABILITY_KEEN_EYE, ABILITY_SHEER_FORCE, ABILITY_HUSTLE}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - }, + .speciesName = _("Rufflet"), + .cryId = CRY_RUFFLET, + .natDexNum = NATIONAL_DEX_RUFFLET, + .categoryName = _("Eaglet"), + .height = 5, + .weight = 105, + .description = COMPOUND_STRING( + "With its sharp claws, this Pokémon pierces\n" + "its prey, and then it pecks at them.\n" + "Although it also consumes berries, it's a\n" + "carnivore at heart."), + .pokemonScale = 432, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Rufflet, 32, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Rufflet, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Rufflet, 48, 56), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Rufflet), + ICON(Rufflet, 2), + .footprint = gMonFootprint_Rufflet, + LEARNSETS(Rufflet), + .evolutions = EVOLUTION({EVO_LEVEL, 54, SPECIES_BRAVIARY}, + {EVO_NONE, 0, SPECIES_BRAVIARY_HISUIAN}), + }, + +#define BRAVIARY_MISC_INFO \ + .catchRate = 60, \ + .expYield = 179, \ + .genderRatio = MON_MALE, \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, \ + .noFlip = FALSE, \ + .speciesName = _("Braviary"), \ + .cryId = CRY_BRAVIARY, \ + .natDexNum = NATIONAL_DEX_BRAVIARY, \ + .footprint = gMonFootprint_Braviary, \ + .formSpeciesIdTable = sBraviaryFormSpeciesIdTable - [SPECIES_SLIGGOO] = + [SPECIES_BRAVIARY] = { - .baseHP = 68, - .baseAttack = 75, - .baseDefense = 53, + BRAVIARY_MISC_INFO, + .baseHP = 100, + .baseAttack = 123, + .baseDefense = 75, + .baseSpeed = 80, + .baseSpAttack = 57, + .baseSpDefense = 75, + .types = { TYPE_NORMAL, TYPE_FLYING}, + .evYield_Attack = 2, + .abilities = {ABILITY_KEEN_EYE, ABILITY_SHEER_FORCE, ABILITY_DEFIANT}, + .bodyColor = BODY_COLOR_RED, + .categoryName = _("Valiant"), + .height = 15, + .weight = 410, + .description = COMPOUND_STRING( + "For the sake of its friends, this brave\n" + "warrior of the sky will not stop battling,\n" + "even if it is injured. One can carry a car\n" + "while flying."), + .pokemonScale = 268, + .pokemonOffset = 2, + .trainerScale = 271, + .trainerOffset = 0, + FRONT_PIC(Braviary, 64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Braviary, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 8, + BACK_PIC(Braviary, 64, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(Braviary), + ICON(Braviary, 0), + LEARNSETS(Braviary), + }, + +#if P_HISUIAN_FORMS + [SPECIES_BRAVIARY_HISUIAN] = + { + BRAVIARY_MISC_INFO, + .baseHP = 110, + .baseAttack = 83, + .baseDefense = 70, + .baseSpeed = 65, + .baseSpAttack = 112, + .baseSpDefense = 70, + .types = { TYPE_PSYCHIC, TYPE_FLYING}, + .evYield_SpAttack = 2, + .abilities = {ABILITY_KEEN_EYE, ABILITY_SHEER_FORCE, ABILITY_TINTED_LENS}, + .bodyColor = BODY_COLOR_WHITE, + .categoryName = _("Battle Cry"), + .height = 17, + .weight = 434, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 268, + .pokemonOffset = 2, + .trainerScale = 271, + .trainerOffset = 0, + FRONT_PIC(BraviaryHisuian, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_BraviaryHisuian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 3, + BACK_PIC(BraviaryHisuian, 64, 56), + .backPicYOffset = 7, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(BraviaryHisuian), + ICON(BraviaryHisuian, 2), + LEARNSETS(BraviaryHisuian), + .isHisuianForm = TRUE, + }, +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_RUFFLET + +#if P_FAMILY_VULLABY + [SPECIES_VULLABY] = + { + .baseHP = 70, + .baseAttack = 55, + .baseDefense = 75, .baseSpeed = 60, - .baseSpAttack = 83, - .baseSpDefense = 113, - .types = { TYPE_DRAGON, TYPE_DRAGON}, - .catchRate = 45, - .expYield = 158, - .evYield_SpDefense = 2, - .itemRare = ITEM_SHED_SHELL, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 40, + .baseSpAttack = 45, + .baseSpDefense = 65, + .types = { TYPE_DARK, TYPE_FLYING}, + .catchRate = 190, + .expYield = 74, + .evYield_Defense = 1, + .genderRatio = MON_FEMALE, + .eggCycles = 20, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_SAP_SIPPER, ABILITY_HYDRATION, ABILITY_GOOEY}, - .bodyColor = BODY_COLOR_PURPLE, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + .abilities = {ABILITY_BIG_PECKS, ABILITY_OVERCOAT, ABILITY_WEAK_ARMOR}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .speciesName = _("Vullaby"), + .cryId = CRY_VULLABY, + .natDexNum = NATIONAL_DEX_VULLABY, + .categoryName = _("Diapered"), + .height = 5, + .weight = 90, + .description = COMPOUND_STRING( + "It can't fly yet and must wait until its\n" + "wings have developed more. They guard\n" + "their posteriors with bones that were\n" + "gathered by Mandibuzz."), + .pokemonScale = 432, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Vullaby, 56, 56), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Vullaby, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Vullaby, 64, 48), + .backPicYOffset = 14, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Vullaby), + ICON(Vullaby, 0), + .footprint = gMonFootprint_Vullaby, + LEARNSETS(Vullaby), + .evolutions = EVOLUTION({EVO_LEVEL, 54, SPECIES_MANDIBUZZ}), }, - [SPECIES_GOODRA] = + [SPECIES_MANDIBUZZ] = { - .baseHP = 90, - .baseAttack = 100, - .baseDefense = 70, + .baseHP = 110, + .baseAttack = 65, + .baseDefense = 105, .baseSpeed = 80, - .baseSpAttack = 110, - .baseSpDefense = 150, - .types = { TYPE_DRAGON, TYPE_DRAGON}, - .catchRate = 45, - .expYield = 270, - .evYield_SpDefense = 3, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 40, + .baseSpAttack = 55, + .baseSpDefense = 95, + .types = { TYPE_DARK, TYPE_FLYING}, + .catchRate = 60, + .expYield = 179, + .evYield_SpAttack = 2, + .genderRatio = MON_FEMALE, + .eggCycles = 20, .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_SAP_SIPPER, ABILITY_HYDRATION, ABILITY_GOOEY}, - .bodyColor = BODY_COLOR_PURPLE, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + .abilities = {ABILITY_BIG_PECKS, ABILITY_OVERCOAT, ABILITY_WEAK_ARMOR}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - }, - - [SPECIES_KLEFKI] = - { - .baseHP = 57, - .baseAttack = 80, - .baseDefense = 91, - .baseSpeed = 75, - .baseSpAttack = 80, - .baseSpDefense = 87, - .types = { TYPE_STEEL, TYPE_FAIRY}, - .catchRate = 75, - .expYield = 165, - .evYield_Defense = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_PRANKSTER, ABILITY_NONE, ABILITY_MAGICIAN}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = TRUE, - }, - - [SPECIES_PHANTUMP] = + .speciesName = _("Mandibuzz"), + .cryId = CRY_MANDIBUZZ, + .natDexNum = NATIONAL_DEX_MANDIBUZZ, + .categoryName = _("Bone Vulture"), + .height = 12, + .weight = 395, + .description = COMPOUND_STRING( + "They adorn themselves beautifully with\n" + "bones. This is supposedly an effort to\n" + "attract males, but no male Mandibuzz\n" + "have ever been found."), + .pokemonScale = 282, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Mandibuzz, 48, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Mandibuzz, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Mandibuzz, 64, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Mandibuzz), + ICON(Mandibuzz, 1), + .footprint = gMonFootprint_Mandibuzz, + LEARNSETS(Mandibuzz), + }, +#endif //P_FAMILY_VULLABY + +#if P_FAMILY_HEATMOR + [SPECIES_HEATMOR] = { - .baseHP = 43, - .baseAttack = 70, - .baseDefense = 48, - .baseSpeed = 38, - .baseSpAttack = 50, - .baseSpDefense = 60, - .types = { TYPE_GHOST, TYPE_GRASS}, - .catchRate = 120, - .expYield = 62, - .evYield_Attack = 1, + .baseHP = 85, + .baseAttack = 97, + .baseDefense = 66, + .baseSpeed = 65, + .baseSpAttack = 105, + .baseSpDefense = 66, + .types = { TYPE_FIRE, TYPE_FIRE}, + .catchRate = 90, + .expYield = 169, + .evYield_SpAttack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_NATURAL_CURE, ABILITY_FRISK, ABILITY_HARVEST}, - .bodyColor = BODY_COLOR_BROWN, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_GLUTTONY, ABILITY_FLASH_FIRE, ABILITY_WHITE_SMOKE}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, - }, - - [SPECIES_TREVENANT] = + .speciesName = _("Heatmor"), + .cryId = CRY_HEATMOR, + .natDexNum = NATIONAL_DEX_HEATMOR, + .categoryName = _("Anteater"), + .height = 14, + .weight = 580, + .description = COMPOUND_STRING( + "It draws in air through its tail, transforms\n" + "it into fire, and uses it like a tongue.\n" + "They burn through Durant's steel bodies\n" + "and consume their insides."), + .pokemonScale = 265, + .pokemonOffset = 2, + .trainerScale = 262, + .trainerOffset = 0, + FRONT_PIC(Heatmor, 64, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Heatmor, + .frontAnimId = ANIM_H_SHAKE, + BACK_PIC(Heatmor, 64, 24), + .backPicYOffset = 21, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Heatmor), + ICON(Heatmor, 2), + .footprint = gMonFootprint_Heatmor, + LEARNSETS(Heatmor), + }, +#endif //P_FAMILY_HEATMOR + +#if P_FAMILY_DURANT + [SPECIES_DURANT] = { - .baseHP = 85, - .baseAttack = 110, - .baseDefense = 76, - .baseSpeed = 56, - .baseSpAttack = 65, - .baseSpDefense = 82, - .types = { TYPE_GHOST, TYPE_GRASS}, - .catchRate = 60, - .expYield = 166, - .evYield_Attack = 2, + .baseHP = 58, + .baseAttack = 109, + .baseDefense = 112, + .baseSpeed = 109, + .baseSpAttack = 48, + .baseSpDefense = 48, + .types = { TYPE_BUG, TYPE_STEEL}, + .catchRate = 90, + .expYield = 169, + .evYield_Defense = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_NATURAL_CURE, ABILITY_FRISK, ABILITY_HARVEST}, - .bodyColor = BODY_COLOR_BROWN, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_SWARM, ABILITY_HUSTLE, ABILITY_TRUANT}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, - }, - - [SPECIES_PUMPKABOO_AVERAGE] = - { - .baseHP = 49, - .baseAttack = 66, - .baseDefense = 70, - .baseSpeed = 51, - .baseSpAttack = 44, - .baseSpDefense = 55, - PUMKPABOO_MISC_INFO, - }, - - [SPECIES_GOURGEIST_AVERAGE] = - { - .baseHP = 65, - .baseAttack = 90, - .baseDefense = 122, - .baseSpeed = 84, - .baseSpAttack = 58, - .baseSpDefense = 75, - GOURGEIST_MISC_INFO, - }, - - [SPECIES_BERGMITE] = + .speciesName = _("Durant"), + .cryId = CRY_DURANT, + .natDexNum = NATIONAL_DEX_DURANT, + .categoryName = _("Iron Ant"), + .height = 3, + .weight = 330, + .description = COMPOUND_STRING( + "Durant dig nests in mountains.\n" + "Individuals each play different roles in\n" + "driving Heatmor, their natural predator,\n" + "away from their colony."), + .pokemonScale = 530, + .pokemonOffset = 19, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Durant, 48, 32), + .frontPicYOffset = 17, + .frontAnimFrames = sAnims_Durant, + .frontAnimId = ANIM_RAPID_H_HOPS, + BACK_PIC(Durant, 64, 32), + .backPicYOffset = 17, + .backAnimId = BACK_ANIM_H_VIBRATE, + PALETTE(Durant), + ICON(Durant, 0), + .footprint = gMonFootprint_Durant, + LEARNSETS(Durant), + }, +#endif //P_FAMILY_DURANT + +#if P_FAMILY_DEINO + [SPECIES_DEINO] = { - .baseHP = 55, - .baseAttack = 69, - .baseDefense = 85, - .baseSpeed = 28, - .baseSpAttack = 32, - .baseSpDefense = 35, - .types = { TYPE_ICE, TYPE_ICE}, - .catchRate = 190, - .expYield = 61, - .evYield_Defense = 1, + .baseHP = 52, + .baseAttack = 65, + .baseDefense = 50, + .baseSpeed = 38, + .baseSpAttack = 45, + .baseSpDefense = 50, + .types = { TYPE_DARK, TYPE_DRAGON}, + .catchRate = 45, + .expYield = 60, + .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - #if P_UPDATED_EGG_GROUPS >= GEN_8 - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MINERAL}, - #else - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, - #endif - .abilities = {ABILITY_OWN_TEMPO, ABILITY_ICE_BODY, ABILITY_STURDY}, + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_HUSTLE, ABILITY_NONE}, .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Deino"), + .cryId = CRY_DEINO, + .natDexNum = NATIONAL_DEX_DEINO, + .categoryName = _("Irate"), + .height = 8, + .weight = 173, + .description = COMPOUND_STRING( + "Lacking sight, it's unaware of its\n" + "surroundings, so it bumps into things and\n" + "eats anything that moves. Approaching\n" + "it carelessly is dangerous."), + .pokemonScale = 366, + .pokemonOffset = 12, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Deino, 40, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Deino, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Deino, 48, 48), + .backPicYOffset = 14, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Deino), + ICON(Deino, 2), + .footprint = gMonFootprint_Deino, + LEARNSETS(Deino), + .evolutions = EVOLUTION({EVO_LEVEL, 50, SPECIES_ZWEILOUS}), }, - [SPECIES_AVALUGG] = + [SPECIES_ZWEILOUS] = { - .baseHP = 95, - .baseAttack = 117, - .baseDefense = 184, - .baseSpeed = 28, - .baseSpAttack = 44, - .baseSpDefense = 46, - .types = { TYPE_ICE, TYPE_ICE}, - .catchRate = 55, - .expYield = 180, - .evYield_Defense = 2, + .baseHP = 72, + .baseAttack = 85, + .baseDefense = 70, + .baseSpeed = 58, + .baseSpAttack = 65, + .baseSpDefense = 70, + .types = { TYPE_DARK, TYPE_DRAGON}, + .catchRate = 45, + .expYield = 147, + .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - #if P_UPDATED_EGG_GROUPS >= GEN_8 - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MINERAL}, - #else - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, - #endif - .abilities = {ABILITY_OWN_TEMPO, ABILITY_ICE_BODY, ABILITY_STURDY}, + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_HUSTLE, ABILITY_NONE}, .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Zweilous"), + .cryId = CRY_ZWEILOUS, + .natDexNum = NATIONAL_DEX_ZWEILOUS, + .categoryName = _("Hostile"), + .height = 14, + .weight = 500, + .description = COMPOUND_STRING( + "After it has eaten up all the food in its\n" + "territory, it moves on to another area.\n" + "Whichever head eats more than the other\n" + "gets to be the leader."), + .pokemonScale = 265, + .pokemonOffset = 3, + .trainerScale = 262, + .trainerOffset = 0, + FRONT_PIC(Zweilous, 64, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Zweilous, + .frontAnimId = ANIM_H_STRETCH, + BACK_PIC(Zweilous, 64, 56), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_H_SHAKE, + PALETTE(Zweilous), + ICON(Zweilous, 2), + .footprint = gMonFootprint_Zweilous, + LEARNSETS(Zweilous), + .evolutions = EVOLUTION({EVO_LEVEL, 64, SPECIES_HYDREIGON}), }, - [SPECIES_NOIBAT] = + [SPECIES_HYDREIGON] = { - .baseHP = 40, - .baseAttack = 30, - .baseDefense = 35, - .baseSpeed = 55, - .baseSpAttack = 45, - .baseSpDefense = 40, - .types = { TYPE_FLYING, TYPE_DRAGON}, - .catchRate = 190, - .expYield = 49, - .evYield_Speed = 1, + .baseHP = 92, + .baseAttack = 105, + .baseDefense = 90, + .baseSpeed = 98, + .baseSpAttack = 125, + .baseSpDefense = 90, + .types = { TYPE_DARK, TYPE_DRAGON}, + .catchRate = 45, + .expYield = 270, + .evYield_SpAttack = 3, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .eggCycles = 40, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + .speciesName = _("Hydreigon"), + .cryId = CRY_HYDREIGON, + .natDexNum = NATIONAL_DEX_HYDREIGON, + .categoryName = _("Brutal"), + .height = 18, + .weight = 1600, + .description = COMPOUND_STRING( + "This brutal Pokémon travels the skies on\n" + "its six wings. The heads on their arms do\n" + "not have brains. They use all three heads\n" + "to consume and destroy everything."), + .pokemonScale = 267, + .pokemonOffset = 2, + .trainerScale = 286, + .trainerOffset = 1, + FRONT_PIC(Hydreigon, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Hydreigon, + .frontAnimId = ANIM_RISING_WOBBLE, + .enemyMonElevation = 3, + BACK_PIC(Hydreigon, 64, 56), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_GROW_STUTTER, + PALETTE(Hydreigon), + ICON(Hydreigon, 2), + .footprint = gMonFootprint_Hydreigon, + LEARNSETS(Hydreigon), + }, +#endif //P_FAMILY_DEINO + +#if P_FAMILY_LARVESTA + [SPECIES_LARVESTA] = + { + .baseHP = 55, + .baseAttack = 85, + .baseDefense = 55, + .baseSpeed = 60, + .baseSpAttack = 50, + .baseSpDefense = 55, + .types = { TYPE_BUG, TYPE_FIRE}, + .catchRate = 45, + .expYield = 72, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - #if P_UPDATED_EGG_GROUPS >= GEN_8 - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_DRAGON}, - #else - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - #endif - .abilities = {ABILITY_FRISK, ABILITY_INFILTRATOR, ABILITY_TELEPATHY}, - .bodyColor = BODY_COLOR_PURPLE, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_FLAME_BODY, ABILITY_NONE, ABILITY_SWARM}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, + .speciesName = _("Larvesta"), + .cryId = CRY_LARVESTA, + .natDexNum = NATIONAL_DEX_LARVESTA, + .categoryName = _("Torch"), + .height = 11, + .weight = 288, + .description = COMPOUND_STRING( + "This Pokémon was believed to have\n" + "been born from the sun. It spews fire from\n" + "its horns and encases itself in a cocoon\n" + "of fire when it evolves."), + .pokemonScale = 320, + .pokemonOffset = 10, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Larvesta, 40, 48), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_Larvesta, + .frontAnimId = ANIM_GLOW_ORANGE, + BACK_PIC(Larvesta, 64, 48), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Larvesta), + ICON(Larvesta, 0), + .footprint = gMonFootprint_Larvesta, + LEARNSETS(Larvesta), + .evolutions = EVOLUTION({EVO_LEVEL, 59, SPECIES_VOLCARONA}), }, - [SPECIES_NOIVERN] = + [SPECIES_VOLCARONA] = { .baseHP = 85, - .baseAttack = 70, - .baseDefense = 80, - .baseSpeed = 123, - .baseSpAttack = 97, - .baseSpDefense = 80, - .types = { TYPE_FLYING, TYPE_DRAGON}, - .catchRate = 45, - .expYield = 187, - .evYield_Speed = 2, + .baseAttack = 60, + .baseDefense = 65, + .baseSpeed = 100, + .baseSpAttack = 135, + .baseSpDefense = 105, + .types = { TYPE_BUG, TYPE_FIRE}, + .catchRate = 15, + .expYield = 248, + .evYield_SpAttack = 3, + .itemCommon = ITEM_SILVER_POWDER, + .itemRare = ITEM_SILVER_POWDER, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - #if P_UPDATED_EGG_GROUPS >= GEN_8 - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_DRAGON}, - #else - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - #endif - .abilities = {ABILITY_FRISK, ABILITY_INFILTRATOR, ABILITY_TELEPATHY}, - .bodyColor = BODY_COLOR_PURPLE, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_FLAME_BODY, ABILITY_NONE, ABILITY_SWARM}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - }, - - [SPECIES_XERNEAS_NEUTRAL] = XERNEAS_SPECIES_INFO, - - [SPECIES_YVELTAL] = + .speciesName = _("Volcarona"), + .cryId = CRY_VOLCARONA, + .natDexNum = NATIONAL_DEX_VOLCARONA, + .categoryName = _("Sun"), + .height = 16, + .weight = 460, + .description = COMPOUND_STRING( + "When volcanic ash darkened the\n" + "atmosphere, it appeared and saved Pokémon\n" + "from freezing, Volcarona's fire provided a\n" + "replacement for the sun."), + .pokemonScale = 259, + .pokemonOffset = 1, + .trainerScale = 296, + .trainerOffset = 1, + FRONT_PIC(Volcarona, 64, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Volcarona, + .frontAnimId = ANIM_V_SLIDE_WOBBLE, + .enemyMonElevation = 6, + BACK_PIC(Volcarona, 64, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, + PALETTE(Volcarona), + ICON(Volcarona, 0), + .footprint = gMonFootprint_Volcarona, + LEARNSETS(Volcarona), + }, +#endif //P_FAMILY_LARVESTA + +#if P_FAMILY_COBALION + [SPECIES_COBALION] = { - .baseHP = 126, - .baseAttack = 131, - .baseDefense = 95, - .baseSpeed = 99, - .baseSpAttack = 131, - .baseSpDefense = 98, - .types = { TYPE_DARK, TYPE_FLYING}, - .catchRate = 45, - .expYield = 306, - .evYield_HP = 3, + .baseHP = 91, + .baseAttack = 90, + .baseDefense = 129, + .baseSpeed = 108, + .baseSpAttack = 90, + .baseSpDefense = 72, + .types = { TYPE_STEEL, TYPE_FIGHTING}, + .catchRate = 3, + .expYield = 261, + .evYield_Defense = 3, .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, + .eggCycles = 80, + .friendship = 35, .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_DARK_AURA, ABILITY_NONE}, - .bodyColor = BODY_COLOR_RED, + .abilities = {ABILITY_JUSTIFIED, ABILITY_NONE}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_ZYGARDE_50_AURA_BREAK] = ZYGARDE_50_SPECIES_INFO(ABILITY_AURA_BREAK), - - [SPECIES_DIANCIE] = + .isLegendary = TRUE, + .speciesName = _("Cobalion"), + .cryId = CRY_COBALION, + .natDexNum = NATIONAL_DEX_COBALION, + .categoryName = _("Iron Will"), + .height = 21, + .weight = 2500, + .description = COMPOUND_STRING( + "It has a body and heart of steel. This\n" + "legendary Pokémon battled against humans\n" + "to protect Pokémon. Its personality\n" + "is calm and composed."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 365, + .trainerOffset = 7, + FRONT_PIC(Cobalion, 48, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Cobalion, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Cobalion, 48, 64), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_V_STRETCH, + PALETTE(Cobalion), + ICON(Cobalion, 0), + .footprint = gMonFootprint_Cobalion, + LEARNSETS(Cobalion), + }, +#endif //P_FAMILY_COBALION + +#if P_FAMILY_TERRAKION + [SPECIES_TERRAKION] = { - .baseHP = 50, - .baseAttack = 100, - .baseDefense = 150, - .baseSpeed = 50, - .baseSpAttack = 100, - .baseSpDefense = 150, - .types = { TYPE_ROCK, TYPE_FAIRY}, + .baseHP = 91, + .baseAttack = 129, + .baseDefense = 90, + .baseSpeed = 108, + .baseSpAttack = 72, + .baseSpDefense = 90, + .types = { TYPE_ROCK, TYPE_FIGHTING}, .catchRate = 3, - .expYield = 270, - .evYield_Defense = 1, - .evYield_SpDefense = 2, + .expYield = 261, + .evYield_Attack = 3, .genderRatio = MON_GENDERLESS, - .eggCycles = 25, - .friendship = STANDARD_FRIENDSHIP, + .eggCycles = 80, + .friendship = 35, .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_CLEAR_BODY, ABILITY_NONE}, - .bodyColor = BODY_COLOR_PINK, + .abilities = {ABILITY_JUSTIFIED, ABILITY_NONE}, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + .isLegendary = TRUE, + .speciesName = _("Terrakion"), + .cryId = CRY_TERRAKION, + .natDexNum = NATIONAL_DEX_TERRAKION, + .categoryName = _("Cavern"), + .height = 19, + .weight = 2600, + .description = COMPOUND_STRING( + "Spoken of in legend, this Pokémon used\n" + "its phenomenal power to destroy a castle\n" + "in its effort to protect Pokémon that had\n" + "lost their homes in a war among humans."), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 336, + .trainerOffset = 4, + FRONT_PIC(Terrakion, 64, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Terrakion, + .frontAnimId = ANIM_V_SHAKE_TWICE, + BACK_PIC(Terrakion, 64, 48), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(Terrakion), + ICON(Terrakion, 2), + .footprint = gMonFootprint_Terrakion, + LEARNSETS(Terrakion), + }, +#endif //P_FAMILY_TERRAKION + +#if P_FAMILY_VIRIZION + [SPECIES_VIRIZION] = + { + .baseHP = 91, + .baseAttack = 90, + .baseDefense = 72, + .baseSpeed = 108, + .baseSpAttack = 90, + .baseSpDefense = 129, + .types = { TYPE_GRASS, TYPE_FIGHTING}, + .catchRate = 3, + .expYield = 261, + .evYield_SpDefense = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 80, + .friendship = 35, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_JUSTIFIED, ABILITY_NONE}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - .flags = SPECIES_FLAG_MYTHICAL, + .isLegendary = TRUE, + .speciesName = _("Virizion"), + .cryId = CRY_VIRIZION, + .natDexNum = NATIONAL_DEX_VIRIZION, + .categoryName = _("Grassland"), + .height = 20, + .weight = 2000, + .description = COMPOUND_STRING( + "Its head sprouts horns as sharp as blades.\n" + "Legends say this Pokémon used\n" + "whirlwind-like movements to confound\n" + "and swiftly cut its opponents."), + .pokemonScale = 261, + .pokemonOffset = 1, + .trainerScale = 344, + .trainerOffset = 4, + FRONT_PIC(Virizion, 48, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Virizion, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Virizion, 64, 56), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_H_SHAKE, + PALETTE(Virizion), + ICON(Virizion, 1), + .footprint = gMonFootprint_Virizion, + LEARNSETS(Virizion), + }, +#endif //P_FAMILY_VIRIZION + +#if P_FAMILY_TORNADUS +#define TORNADUS_MISC_INFO \ + .types = { TYPE_FLYING, TYPE_FLYING}, \ + .catchRate = 3, \ + .expYield = 261, \ + .evYield_Attack = 3, \ + .genderRatio = MON_MALE, \ + .eggCycles = 120, \ + .friendship = 90, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ + .bodyColor = BODY_COLOR_GREEN, \ + .noFlip = FALSE, \ + .isLegendary = TRUE, \ + .speciesName = _("Tornadus"), \ + .natDexNum = NATIONAL_DEX_TORNADUS, \ + .categoryName = _("Cyclone"), \ + .weight = 630, \ + .footprint = gMonFootprint_Tornadus, \ + LEARNSETS(Tornadus), \ + .formSpeciesIdTable = sTornadusFormSpeciesIdTable, \ + .formChangeTable = sTornadusFormChangeTable + + [SPECIES_TORNADUS_INCARNATE] = + { + TORNADUS_MISC_INFO, + .baseHP = 79, + .baseAttack = 115, + .baseDefense = 70, + .baseSpeed = 111, + .baseSpAttack = 125, + .baseSpDefense = 80, + .abilities = {ABILITY_PRANKSTER, ABILITY_NONE, ABILITY_DEFIANT}, + .cryId = CRY_TORNADUS_INCARNATE, + .height = 15, + .description = COMPOUND_STRING( + "Tornadus expels massive energy from\n" + "its tail, causing severe storms.\n" + "Its power can blow entire houses away.\n" + "It zooms through the sky at 200 mph."), + .pokemonScale = 268, + .pokemonOffset = 2, + .trainerScale = 271, + .trainerOffset = 0, + FRONT_PIC(TornadusIncarnate, 64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_TornadusIncarnate, + .frontAnimId = ANIM_FIGURE_8, + .enemyMonElevation = 7, + BACK_PIC(TornadusIncarnate, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(TornadusIncarnate), + ICON(TornadusIncarnate, 1), }, - [SPECIES_HOOPA_CONFINED] = + [SPECIES_TORNADUS_THERIAN] = { - .baseHP = 80, - .baseAttack = 110, - .baseDefense = 60, - .baseSpeed = 70, + TORNADUS_MISC_INFO, + .baseHP = 79, + .baseAttack = 100, + .baseDefense = 80, + .baseSpeed = 121, + .baseSpAttack = 110, + .baseSpDefense = 90, + .abilities = {ABILITY_REGENERATOR, ABILITY_NONE, ABILITY_REGENERATOR}, + .cryId = CRY_TORNADUS_THERIAN, + .height = 14, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 268, + .pokemonOffset = 2, + .trainerScale = 271, + .trainerOffset = 0, + FRONT_PIC(TornadusTherian, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_TornadusTherian, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(TornadusTherian, 56, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(TornadusTherian), + ICON(TornadusTherian, 1), + }, +#endif //P_FAMILY_TORNADUS + +#if P_FAMILY_THUNDURUS +#define THUNDURUS_MISC_INFO \ + .types = { TYPE_ELECTRIC, TYPE_FLYING}, \ + .catchRate = 3, \ + .expYield = 261, \ + .genderRatio = MON_MALE, \ + .eggCycles = 120, \ + .friendship = 90, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ + .bodyColor = BODY_COLOR_BLUE, \ + .noFlip = FALSE, \ + .isLegendary = TRUE, \ + .speciesName = _("Thundurus"), \ + .natDexNum = NATIONAL_DEX_THUNDURUS, \ + .categoryName = _("Bolt Strike"), \ + .weight = 610, \ + .footprint = gMonFootprint_Thundurus, \ + LEARNSETS(Thundurus), \ + .formSpeciesIdTable = sThundurusFormSpeciesIdTable, \ + .formChangeTable = sThundurusFormChangeTable + + [SPECIES_THUNDURUS_INCARNATE] = + { + THUNDURUS_MISC_INFO, + .baseHP = 79, + .baseAttack = 115, + .baseDefense = 70, + .baseSpeed = 111, + .baseSpAttack = 125, + .baseSpDefense = 80, + .evYield_Attack = 3, + .abilities = {ABILITY_PRANKSTER, ABILITY_NONE, ABILITY_DEFIANT}, + .cryId = CRY_THUNDURUS_INCARNATE, + .height = 15, + .description = COMPOUND_STRING( + "The spikes on its tail discharge immense\n" + "bolts of lightning. Countless charred\n" + "remains mar the landscape of places\n" + "through which Thundurus has passed."), + .pokemonScale = 268, + .pokemonOffset = 2, + .trainerScale = 271, + .trainerOffset = 0, + FRONT_PIC(ThundurusIncarnate, 64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_ThundurusIncarnate, + .frontAnimId = ANIM_FIGURE_8, + .enemyMonElevation = 7, + BACK_PIC(ThundurusIncarnate, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(ThundurusIncarnate), + ICON(ThundurusIncarnate, 0), + }, + + [SPECIES_THUNDURUS_THERIAN] = + { + THUNDURUS_MISC_INFO, + .baseHP = 79, + .baseAttack = 105, + .baseDefense = 70, + .baseSpeed = 101, + .baseSpAttack = 145, + .baseSpDefense = 80, + .evYield_SpAttack = 3, + .abilities = {ABILITY_VOLT_ABSORB, ABILITY_NONE, ABILITY_VOLT_ABSORB}, + .cryId = CRY_THUNDURUS_THERIAN, + .height = 30, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 268, + .pokemonOffset = 2, + .trainerScale = 271, + .trainerOffset = 0, + FRONT_PIC(ThundurusTherian, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_ThundurusTherian, + .frontAnimId = ANIM_RISING_WOBBLE, + .enemyMonElevation = 7, + BACK_PIC(ThundurusTherian, 64, 64), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, + PALETTE(ThundurusTherian), + ICON(ThundurusTherian, 0), + }, +#endif //P_FAMILY_THUNDURUS + +#if P_FAMILY_RESHIRAM + [SPECIES_RESHIRAM] = + { + .baseHP = 100, + .baseAttack = 120, + .baseDefense = 100, + .baseSpeed = 90, .baseSpAttack = 150, - .baseSpDefense = 130, - .types = { TYPE_PSYCHIC, TYPE_GHOST}, + .baseSpDefense = 120, + .types = { TYPE_DRAGON, TYPE_FIRE}, .catchRate = 3, - .expYield = 270, + .expYield = 306, .evYield_SpAttack = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, - .friendship = 100, + .friendship = 0, .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_MAGICIAN, ABILITY_NONE}, - .bodyColor = BODY_COLOR_PURPLE, + .abilities = {ABILITY_TURBOBLAZE, ABILITY_NONE}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - .flags = SPECIES_FLAG_MYTHICAL, - }, - - [SPECIES_VOLCANION] = + .isLegendary = TRUE, + .speciesName = _("Reshiram"), + .cryId = CRY_RESHIRAM, + .natDexNum = NATIONAL_DEX_RESHIRAM, + .categoryName = _("Vast White"), + .height = 32, + .weight = 3300, + .description = COMPOUND_STRING( + "This Pokémon appears in legends. It\n" + "sends flames into the air from its tail,\n" + "burning up everything around it. It helps\n" + "those who want to build a world of truth."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 445, + .trainerOffset = 8, + FRONT_PIC(Reshiram, 64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Reshiram, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(Reshiram, 64, 64), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, + PALETTE(Reshiram), + ICON(Reshiram, 0), + .footprint = gMonFootprint_Reshiram, + LEARNSETS(Reshiram), + }, +#endif //P_FAMILY_RESHIRAM + +#if P_FAMILY_ZEKROM + [SPECIES_ZEKROM] = { - .baseHP = 80, - .baseAttack = 110, + .baseHP = 100, + .baseAttack = 150, .baseDefense = 120, - .baseSpeed = 70, - .baseSpAttack = 130, - .baseSpDefense = 90, - .types = { TYPE_FIRE, TYPE_WATER}, + .baseSpeed = 90, + .baseSpAttack = 120, + .baseSpDefense = 100, + .types = { TYPE_DRAGON, TYPE_ELECTRIC}, .catchRate = 3, - .expYield = 270, - .evYield_SpAttack = 3, + .expYield = 306, + .evYield_Attack = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, - .friendship = 100, + .friendship = 0, .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_WATER_ABSORB, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - .flags = SPECIES_FLAG_MYTHICAL, - }, -#endif - -#if P_GEN_7_POKEMON == TRUE - [SPECIES_ROWLET] = - { - .baseHP = 68, - .baseAttack = 55, - .baseDefense = 55, - .baseSpeed = 42, - .baseSpAttack = 50, - .baseSpDefense = 50, - .types = { TYPE_GRASS, TYPE_FLYING}, - .catchRate = 45, - .expYield = 64, - .evYield_HP = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_LONG_REACH}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_DARTRIX] = - { - .baseHP = 78, - .baseAttack = 75, - .baseDefense = 75, - .baseSpeed = 52, - .baseSpAttack = 70, - .baseSpDefense = 70, - .types = { TYPE_GRASS, TYPE_FLYING}, - .catchRate = 45, - .expYield = 147, - .evYield_HP = 2, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_LONG_REACH}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = TRUE, - }, - - [SPECIES_DECIDUEYE] = - { - .baseHP = 78, - .baseAttack = 107, - .baseDefense = 75, - .baseSpeed = 70, - .baseSpAttack = 100, - .baseSpDefense = 100, - .types = { TYPE_GRASS, TYPE_GHOST}, - .catchRate = 45, - .expYield = 239, - .evYield_Attack = 3, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_LONG_REACH}, - .bodyColor = BODY_COLOR_BROWN, + .abilities = {ABILITY_TERAVOLT, ABILITY_NONE}, + .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, - }, + .isLegendary = TRUE, + .speciesName = _("Zekrom"), + .cryId = CRY_ZEKROM, + .natDexNum = NATIONAL_DEX_ZEKROM, + .categoryName = _("Deep Black"), + .height = 29, + .weight = 3450, + .description = COMPOUND_STRING( + "This legendary Pokémon can scorch the\n" + "world with lightning. It has a generator\n" + "that creates electricity in its tail. It\n" + "assists those with strong ideals."), + .pokemonScale = 275, + .pokemonOffset = 2, + .trainerScale = 412, + .trainerOffset = 10, + FRONT_PIC(Zekrom, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Zekrom, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(Zekrom, 64, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, + PALETTE(Zekrom), + ICON(Zekrom, 2), + .footprint = gMonFootprint_Zekrom, + LEARNSETS(Zekrom), + }, +#endif //P_FAMILY_ZEKROM + +#if P_FAMILY_LANDORUS +#define LANDORUS_MISC_INFO \ + .types = { TYPE_GROUND, TYPE_FLYING}, \ + .catchRate = 3, \ + .expYield = 270, \ + .genderRatio = MON_MALE, \ + .eggCycles = 120, \ + .friendship = 90, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ + .bodyColor = BODY_COLOR_BROWN, \ + .noFlip = FALSE, \ + .isLegendary = TRUE, \ + .speciesName = _("Landorus"), \ + .natDexNum = NATIONAL_DEX_LANDORUS, \ + .categoryName = _("Abundance"), \ + .weight = 680, \ + .footprint = gMonFootprint_Landorus, \ + LEARNSETS(Landorus), \ + .formSpeciesIdTable = sLandorusFormSpeciesIdTable, \ + .formChangeTable = sLandorusFormChangeTable - [SPECIES_LITTEN] = + [SPECIES_LANDORUS_INCARNATE] = { - .baseHP = 45, - .baseAttack = 65, - .baseDefense = 40, - .baseSpeed = 70, - .baseSpAttack = 60, - .baseSpDefense = 40, - .types = { TYPE_FIRE, TYPE_FIRE}, - .catchRate = 45, - .expYield = 64, - .evYield_Speed = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_INTIMIDATE}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, + LANDORUS_MISC_INFO, + .baseHP = 89, + .baseAttack = 125, + .baseDefense = 90, + .baseSpeed = 101, + .baseSpAttack = 115, + .baseSpDefense = 80, + .evYield_SpAttack = 3, + .abilities = {ABILITY_SAND_FORCE, ABILITY_NONE, ABILITY_SHEER_FORCE}, + .cryId = CRY_LANDORUS_INCARNATE, + .height = 15, + .description = COMPOUND_STRING( + "The energy that comes pouring from its tail\n" + "increases the nutrition in the soil, making\n" + "crops grow to great size. It has been\n" + "hailed as “The Guardian of the Fields.”"), + .pokemonScale = 268, + .pokemonOffset = 2, + .trainerScale = 271, + .trainerOffset = 0, + FRONT_PIC(LandorusIncarnate, 64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_LandorusIncarnate, + .frontAnimId = ANIM_FIGURE_8, + .enemyMonElevation = 7, + BACK_PIC(LandorusIncarnate, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(LandorusIncarnate), + ICON(LandorusIncarnate, 0), }, - [SPECIES_TORRACAT] = + [SPECIES_LANDORUS_THERIAN] = { - .baseHP = 65, - .baseAttack = 85, - .baseDefense = 50, - .baseSpeed = 90, - .baseSpAttack = 80, - .baseSpDefense = 50, - .types = { TYPE_FIRE, TYPE_FIRE}, - .catchRate = 45, - .expYield = 147, - .evYield_Speed = 2, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_INTIMIDATE}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, + LANDORUS_MISC_INFO, + .baseHP = 89, + .baseAttack = 145, + .baseDefense = 90, + .baseSpeed = 91, + .baseSpAttack = 105, + .baseSpDefense = 80, + .evYield_Attack = 3, + .abilities = {ABILITY_INTIMIDATE, ABILITY_NONE}, + .cryId = CRY_LANDORUS_THERIAN, + .height = 13, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 268, + .pokemonOffset = 2, + .trainerScale = 271, + .trainerOffset = 0, + FRONT_PIC(LandorusTherian, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_LandorusTherian, + .frontAnimId = ANIM_CIRCULAR_VIBRATE, + BACK_PIC(LandorusTherian, 64, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_GROW_STUTTER, + PALETTE(LandorusTherian), + ICON(LandorusTherian, 0), + }, +#endif //P_FAMILY_LANDORUS + +#if P_FAMILY_KYUREM +#define KYUREM_MISC_INFO \ + .types = { TYPE_DRAGON, TYPE_ICE}, \ + .catchRate = 3, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ + .bodyColor = BODY_COLOR_GRAY, \ + .noFlip = TRUE, \ + .speciesName = _("Kyurem"), \ + .natDexNum = NATIONAL_DEX_KYUREM, \ + .categoryName = _("Boundary"), \ + .weight = 3250, \ + .footprint = gMonFootprint_Kyurem, \ + .formSpeciesIdTable = sKyuremFormSpeciesIdTable, \ + .isLegendary = TRUE - [SPECIES_INCINEROAR] = + [SPECIES_KYUREM] = { - .baseHP = 95, - .baseAttack = 115, + KYUREM_MISC_INFO, + .baseHP = 125, + .baseAttack = 130, .baseDefense = 90, - .baseSpeed = 60, - .baseSpAttack = 80, + .baseSpeed = 95, + .baseSpAttack = 130, .baseSpDefense = 90, - .types = { TYPE_FIRE, TYPE_DARK}, - .catchRate = 45, - .expYield = 239, - .evYield_Attack = 3, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_INTIMIDATE}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, - - [SPECIES_POPPLIO] = - { - .baseHP = 50, - .baseAttack = 54, - .baseDefense = 54, - .baseSpeed = 40, - .baseSpAttack = 66, - .baseSpDefense = 56, - .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 45, - .expYield = 64, + .expYield = 297, + .evYield_HP = 1, + .evYield_Attack = 1, .evYield_SpAttack = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, - .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_LIQUID_VOICE}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_BRIONNE] = - { - .baseHP = 60, - .baseAttack = 69, - .baseDefense = 69, - .baseSpeed = 50, - .baseSpAttack = 91, - .baseSpDefense = 81, - .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 45, - .expYield = 147, - .evYield_SpAttack = 2, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, - .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_LIQUID_VOICE}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_PRIMARINA] = + .abilities = {ABILITY_PRESSURE, ABILITY_NONE}, + .cryId = CRY_KYUREM, + .height = 30, + .description = COMPOUND_STRING( + "This legendary ice Pokémon waits for a\n" + "hero to fill in the missing parts of its\n" + "body with truth or ideals. Its body became\n" + "frozen when its energy leaked out."), + .pokemonScale = 275, + .pokemonOffset = 7, + .trainerScale = 356, + .trainerOffset = 0, + FRONT_PIC(Kyurem, 64, 64), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Kyurem, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Kyurem, 64, 40), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(Kyurem), + ICON(Kyurem, 0), + LEARNSETS(Kyurem), + }, + +#if P_FUSION_FORMS + [SPECIES_KYUREM_WHITE] = { - .baseHP = 80, - .baseAttack = 74, - .baseDefense = 74, - .baseSpeed = 60, - .baseSpAttack = 126, - .baseSpDefense = 116, - .types = { TYPE_WATER, TYPE_FAIRY}, - .catchRate = 45, - .expYield = 239, + KYUREM_MISC_INFO, + .baseHP = 125, + .baseAttack = 120, + .baseDefense = 90, + .baseSpeed = 95, + .baseSpAttack = 170, + .baseSpDefense = 100, + .expYield = 315, .evYield_SpAttack = 3, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, - .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_LIQUID_VOICE}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, + .abilities = {ABILITY_TURBOBLAZE, ABILITY_NONE}, + .cryId = CRY_KYUREM_WHITE, + .height = 36, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 275, + .pokemonOffset = 7, + .trainerScale = 356, + .trainerOffset = 0, + FRONT_PIC(KyuremWhite, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_KyuremWhite, + .frontAnimId = ANIM_H_SHAKE, + BACK_PIC(KyuremWhite, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, + PALETTE(KyuremWhite), + ICON(KyuremWhite, 0), + .levelUpLearnset = sKyuremWhiteLevelUpLearnset, + .teachableLearnset = sKyuremTeachableLearnset, + .cannotBeTraded = TRUE, }, - [SPECIES_PIKIPEK] = + [SPECIES_KYUREM_BLACK] = { - .baseHP = 35, - .baseAttack = 75, - .baseDefense = 30, - .baseSpeed = 65, - .baseSpAttack = 30, - .baseSpDefense = 30, - .types = { TYPE_NORMAL, TYPE_FLYING}, - .catchRate = 255, - .expYield = 53, - .evYield_Attack = 1, - .itemRare = ITEM_ORAN_BERRY, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_KEEN_EYE, ABILITY_SKILL_LINK, ABILITY_PICKUP}, - .bodyColor = BODY_COLOR_BLACK, - .noFlip = FALSE, - }, + KYUREM_MISC_INFO, + .baseHP = 125, + .baseAttack = 170, + .baseDefense = 100, + .baseSpeed = 95, + .baseSpAttack = 120, + .baseSpDefense = 90, + .expYield = 315, + .evYield_Attack = 3, + .abilities = {ABILITY_TERAVOLT, ABILITY_NONE}, + .cryId = CRY_KYUREM_BLACK, + .height = 33, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 275, + .pokemonOffset = 7, + .trainerScale = 356, + .trainerOffset = 0, + FRONT_PIC(KyuremBlack, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_KyuremBlack, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(KyuremBlack, 64, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, + PALETTE(KyuremBlack), + ICON(KyuremBlack, 0), + .levelUpLearnset = sKyuremBlackLevelUpLearnset, + .teachableLearnset = sKyuremTeachableLearnset, + .cannotBeTraded = TRUE, + }, +#endif //P_FUSION_FORMS +#endif //P_FAMILY_KYUREM + +#if P_FAMILY_KELDEO +#define KELDEO_MISC_INFO \ + .baseHP = 91, \ + .baseAttack = 72, \ + .baseDefense = 90, \ + .baseSpeed = 108, \ + .baseSpAttack = 129, \ + .baseSpDefense = 90, \ + .types = { TYPE_WATER, TYPE_FIGHTING}, \ + .catchRate = 3, \ + .expYield = 261, \ + .evYield_SpAttack = 3, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 80, \ + .friendship = 35, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ + .abilities = {ABILITY_JUSTIFIED, ABILITY_NONE}, \ + .bodyColor = BODY_COLOR_YELLOW, \ + .isMythical = TRUE, \ + .speciesName = _("Keldeo"), \ + .cryId = CRY_KELDEO, \ + .natDexNum = NATIONAL_DEX_KELDEO, \ + .categoryName = _("Colt"), \ + .height = 14, \ + .weight = 485, \ + .pokemonScale = 265, \ + .pokemonOffset = 2, \ + .trainerScale = 262, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Keldeo, \ + LEARNSETS(Keldeo), \ + .formSpeciesIdTable = sKeldeoFormSpeciesIdTable, \ + .formChangeTable = sKeldeoFormChangeTable - [SPECIES_TRUMBEAK] = + [SPECIES_KELDEO_ORDINARY] = { - .baseHP = 55, - .baseAttack = 85, - .baseDefense = 50, - .baseSpeed = 75, - .baseSpAttack = 40, - .baseSpDefense = 50, - .types = { TYPE_NORMAL, TYPE_FLYING}, - .catchRate = 120, - .expYield = 124, - .evYield_Attack = 2, - .itemRare = ITEM_SITRUS_BERRY, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_KEEN_EYE, ABILITY_SKILL_LINK, ABILITY_PICKUP}, - .bodyColor = BODY_COLOR_BLACK, + KELDEO_MISC_INFO, .noFlip = FALSE, + .description = COMPOUND_STRING( + "When it is resolute, its body fills with\n" + "power and it becomes swifter. It crosses\n" + "the world, running over the surfaces of\n" + "oceans and rivers."), + FRONT_PIC(KeldeoOrdinary, 56, 56), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_KeldeoOrdinary, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(KeldeoOrdinary, 56, 64), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(KeldeoOrdinary), + ICON(KeldeoOrdinary, 0), }, - [SPECIES_TOUCANNON] = + [SPECIES_KELDEO_RESOLUTE] = { - .baseHP = 80, - .baseAttack = 120, - .baseDefense = 75, - .baseSpeed = 60, - .baseSpAttack = 75, - .baseSpDefense = 75, - .types = { TYPE_NORMAL, TYPE_FLYING}, - .catchRate = 45, - .expYield = 218, - .evYield_Attack = 3, - .itemRare = ITEM_RAWST_BERRY, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_KEEN_EYE, ABILITY_SKILL_LINK, ABILITY_SHEER_FORCE}, - .bodyColor = BODY_COLOR_BLACK, - .noFlip = FALSE, + KELDEO_MISC_INFO, + .noFlip = TRUE, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(KeldeoResolute, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_KeldeoResolute, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(KeldeoResolute, 64, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_GROW_STUTTER, + PALETTE(KeldeoResolute), + ICON(KeldeoResolute, 0), + }, +#endif //P_FAMILY_KELDEO + +#if P_FAMILY_MELOETTA +#define MELOETTA_MISC_INFO \ + .catchRate = 3, \ + .expYield = 270, \ + .evYield_Speed = 1, \ + .itemCommon = ITEM_STAR_PIECE, \ + .itemRare = ITEM_STAR_PIECE, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 100, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ + .abilities = {ABILITY_SERENE_GRACE, ABILITY_NONE}, \ + .bodyColor = BODY_COLOR_WHITE, \ + .noFlip = TRUE, \ + .isMythical = TRUE, \ + .speciesName = _("Meloetta"), \ + .cryId = CRY_MELOETTA, \ + .natDexNum = NATIONAL_DEX_MELOETTA, \ + .categoryName = _("Melody"), \ + .height = 6, \ + .weight = 65, \ + .pokemonScale = 422, \ + .pokemonOffset = 12, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Meloetta, \ + LEARNSETS(Meloetta), \ + .formSpeciesIdTable = sMeloettaFormSpeciesIdTable, \ + .formChangeTable = sMeloettaFormChangeTable + + [SPECIES_MELOETTA_ARIA] = + { + MELOETTA_MISC_INFO, + .baseHP = 100, + .baseAttack = 77, + .baseDefense = 77, + .baseSpeed = 90, + .baseSpAttack = 128, + .baseSpDefense = 128, + .types = { TYPE_NORMAL, TYPE_PSYCHIC}, + .evYield_SpAttack = 1, + .evYield_SpDefense = 1, + .description = COMPOUND_STRING( + "The melodies sung by Meloetta have the\n" + "power to make Pokémon that hear them\n" + "happy or sad. Many famous songs have been\n" + "inspired by the tunes that Meloetta plays."), + FRONT_PIC(MeloettaAria, 32, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_MeloettaAria, + .frontAnimId = ANIM_GROW_VIBRATE, + .enemyMonElevation = 8, + BACK_PIC(MeloettaAria, 48, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(MeloettaAria), + ICON(MeloettaAria, 4), }, - [SPECIES_YUNGOOS] = + [SPECIES_MELOETTA_PIROUETTE] = { - .baseHP = 48, - .baseAttack = 70, - .baseDefense = 30, - .baseSpeed = 45, - .baseSpAttack = 30, - .baseSpDefense = 30, - .types = { TYPE_NORMAL, TYPE_NORMAL}, - .catchRate = 255, - .expYield = 51, - .evYield_Attack = 1, - .itemRare = ITEM_PECHA_BERRY, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + MELOETTA_MISC_INFO, + .baseHP = 100, + .baseAttack = 128, + .baseDefense = 90, + .baseSpeed = 128, + .baseSpAttack = 77, + .baseSpDefense = 77, + .types = { TYPE_NORMAL, TYPE_FIGHTING}, + .evYield_Attack = 1, + .evYield_Defense = 1, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(MeloettaPirouette, 40, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_MeloettaPirouette, + .frontAnimId = ANIM_H_SLIDE_SLOW, + .enemyMonElevation = 5, + BACK_PIC(MeloettaPirouette, 56, 64), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(MeloettaPirouette), + ICON(MeloettaPirouette, 0), + }, +#endif //P_FAMILY_MELOETTA + +#if P_FAMILY_GENESECT +#define GENESECT_SPECIES_INFO(form) \ + { \ + .baseHP = 71, \ + .baseAttack = 120, \ + .baseDefense = 95, \ + .baseSpeed = 99, \ + .baseSpAttack = 120, \ + .baseSpDefense = 95, \ + .types = { TYPE_BUG, TYPE_STEEL}, \ + .catchRate = 3, \ + .expYield = 270, \ + .evYield_Attack = 1, \ + .evYield_Speed = 1, \ + .evYield_SpAttack = 1, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ + .abilities = {ABILITY_DOWNLOAD, ABILITY_NONE}, \ + .bodyColor = BODY_COLOR_PURPLE, \ + .noFlip = FALSE, \ + .speciesName = _("Genesect"), \ + .cryId = CRY_GENESECT, \ + .natDexNum = NATIONAL_DEX_GENESECT, \ + .categoryName = _("Paleozoic"), \ + .height = 15, \ + .weight = 825, \ + .description = gGenesectPokedexText, \ + .pokemonScale = 268, \ + .pokemonOffset = 2, \ + .trainerScale = 271, \ + .trainerOffset = 0, \ + FRONT_PIC(Genesect, 56, 64), \ + .frontPicYOffset = 0, \ + .frontAnimFrames = sAnims_Genesect, \ + .frontAnimId = ANIM_H_VIBRATE, \ + BACK_PIC(Genesect, 64, 48), \ + .backPicYOffset = 8, \ + .backAnimId = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, \ + PALETTE(form), \ + ICON(Genesect, 2), \ + .footprint = gMonFootprint_Genesect, \ + LEARNSETS(Genesect), \ + .formSpeciesIdTable = sGenesectFormSpeciesIdTable, \ + .formChangeTable = sGenesectFormChangeTable, \ + .isMythical = TRUE, \ + } + + [SPECIES_GENESECT] = GENESECT_SPECIES_INFO(Genesect), + [SPECIES_GENESECT_DOUSE_DRIVE] = GENESECT_SPECIES_INFO(GenesectDouseDrive), + [SPECIES_GENESECT_SHOCK_DRIVE] = GENESECT_SPECIES_INFO(GenesectShockDrive), + [SPECIES_GENESECT_BURN_DRIVE] = GENESECT_SPECIES_INFO(GenesectBurnDrive), + [SPECIES_GENESECT_CHILL_DRIVE] = GENESECT_SPECIES_INFO(GenesectChillDrive), +#endif //P_FAMILY_GENESECT + +#if P_FAMILY_CHESPIN + [SPECIES_CHESPIN] = + { + .baseHP = 56, + .baseAttack = 61, + .baseDefense = 65, + .baseSpeed = 38, + .baseSpAttack = 48, + .baseSpDefense = 45, + .types = { TYPE_GRASS, TYPE_GRASS}, + .catchRate = 45, + .expYield = 63, + .evYield_Defense = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, + .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_STAKEOUT, ABILITY_STRONG_JAW, ABILITY_ADAPTABILITY}, - .bodyColor = BODY_COLOR_BROWN, + .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_BULLETPROOF}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, + .speciesName = _("Chespin"), + .cryId = CRY_CHESPIN, + .natDexNum = NATIONAL_DEX_CHESPIN, + .categoryName = _("Spiny Nut"), + .height = 4, + .weight = 90, + .description = COMPOUND_STRING( + "The quills on its head are usually soft.\n" + "When it flexes them, the points become\n" + "so hard and sharp that they can pierce\n" + "rock without any effort."), + .pokemonScale = 491, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Chespin, 40, 48), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Chespin, + .frontAnimId = ANIM_H_SLIDE_SLOW, + BACK_PIC(Chespin, 56, 64), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Chespin), + ICON(Chespin, 1), + .footprint = gMonFootprint_Chespin, + LEARNSETS(Chespin), + .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_QUILLADIN}), }, - [SPECIES_GUMSHOOS] = + [SPECIES_QUILLADIN] = { - .baseHP = 88, - .baseAttack = 110, - .baseDefense = 60, - .baseSpeed = 45, - .baseSpAttack = 55, - .baseSpDefense = 60, - .types = { TYPE_NORMAL, TYPE_NORMAL}, - .catchRate = 127, - .expYield = 146, - .evYield_Attack = 2, - .itemRare = ITEM_PECHA_BERRY, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .baseHP = 61, + .baseAttack = 78, + .baseDefense = 95, + .baseSpeed = 57, + .baseSpAttack = 56, + .baseSpDefense = 58, + .types = { TYPE_GRASS, TYPE_GRASS}, + .catchRate = 45, + .expYield = 142, + .evYield_Defense = 2, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, + .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_STAKEOUT, ABILITY_STRONG_JAW, ABILITY_ADAPTABILITY}, - .bodyColor = BODY_COLOR_BROWN, + .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_BULLETPROOF}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, + .speciesName = _("Quilladin"), + .cryId = CRY_QUILLADIN, + .natDexNum = NATIONAL_DEX_QUILLADIN, + .categoryName = _("Spiny Armor"), + .height = 7, + .weight = 290, + .description = COMPOUND_STRING( + "They strengthen the sturdy shell covering\n" + "their bodies by running into one another.\n" + "They are very kind and won't start fights,\n" + "but will counterattack with sharp quills."), + .pokemonScale = 365, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Quilladin, 48, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Quilladin, + .frontAnimId = ANIM_LUNGE_GROW, + BACK_PIC(Quilladin, 64, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_GROW, + PALETTE(Quilladin), + ICON(Quilladin, 1), + .footprint = gMonFootprint_Quilladin, + LEARNSETS(Quilladin), + .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_CHESNAUGHT}), }, - [SPECIES_GRUBBIN] = + [SPECIES_CHESNAUGHT] = { - .baseHP = 47, - .baseAttack = 62, - .baseDefense = 45, - .baseSpeed = 46, - .baseSpAttack = 55, - .baseSpDefense = 45, - .types = { TYPE_BUG, TYPE_BUG}, - .catchRate = 255, - .expYield = 60, - .evYield_Attack = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .baseHP = 88, + .baseAttack = 107, + .baseDefense = 122, + .baseSpeed = 64, + .baseSpAttack = 74, + .baseSpDefense = 75, + .types = { TYPE_GRASS, TYPE_FIGHTING}, + .catchRate = 45, + .expYield = 239, + .evYield_Defense = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SWARM, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GRAY, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_BULLETPROOF}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - }, - - [SPECIES_CHARJABUG] = + .speciesName = _("Chesnaught"), + .cryId = CRY_CHESNAUGHT, + .natDexNum = NATIONAL_DEX_CHESNAUGHT, + .categoryName = _("Spiny Armor"), + .height = 16, + .weight = 900, + .description = COMPOUND_STRING( + "It shields its allies from danger with\n" + "its own body. When it takes a defensive\n" + "posture with its fists guarding its face,\n" + "it can withstand a bomb blast."), + .pokemonScale = 259, + .pokemonOffset = 1, + .trainerScale = 296, + .trainerOffset = 1, + FRONT_PIC(Chesnaught, 64, 64), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Chesnaught, + .frontAnimId = ANIM_GROW_IN_STAGES, + BACK_PIC(Chesnaught, 64, 56), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(Chesnaught), + ICON(Chesnaught, 1), + .footprint = gMonFootprint_Chesnaught, + LEARNSETS(Chesnaught), + }, +#endif //P_FAMILY_CHESPIN + +#if P_FAMILY_FENNEKIN + [SPECIES_FENNEKIN] = { - .baseHP = 57, - .baseAttack = 82, - .baseDefense = 95, - .baseSpeed = 36, - .baseSpAttack = 55, - .baseSpDefense = 75, - .types = { TYPE_BUG, TYPE_ELECTRIC}, - .catchRate = 120, - .expYield = 140, - .evYield_Defense = 2, - .itemRare = ITEM_CELL_BATTERY, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .baseHP = 40, + .baseAttack = 45, + .baseDefense = 40, + .baseSpeed = 60, + .baseSpAttack = 62, + .baseSpDefense = 60, + .types = { TYPE_FIRE, TYPE_FIRE}, + .catchRate = 45, + .expYield = 61, + .evYield_SpAttack = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_BATTERY, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GREEN, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_MAGICIAN}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, + .speciesName = _("Fennekin"), + .cryId = CRY_FENNEKIN, + .natDexNum = NATIONAL_DEX_FENNEKIN, + .categoryName = _("Fox"), + .height = 4, + .weight = 94, + .description = COMPOUND_STRING( + "As it walks, it munches on a twig to fill\n" + "itself with energy in place of a snack.\n" + "It intimidates opponents by puffing hot\n" + "air out of its roomy ears."), + .pokemonScale = 491, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Fennekin, 40, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Fennekin, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Fennekin, 56, 48), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Fennekin), + ICON(Fennekin, 0), + .footprint = gMonFootprint_Fennekin, + LEARNSETS(Fennekin), + .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_BRAIXEN}), }, - [SPECIES_VIKAVOLT] = + [SPECIES_BRAIXEN] = { - .baseHP = 77, - .baseAttack = 70, - .baseDefense = 90, - .baseSpeed = 43, - .baseSpAttack = 145, - .baseSpDefense = 75, - .types = { TYPE_BUG, TYPE_ELECTRIC}, + .baseHP = 59, + .baseAttack = 59, + .baseDefense = 58, + .baseSpeed = 73, + .baseSpAttack = 90, + .baseSpDefense = 70, + .types = { TYPE_FIRE, TYPE_FIRE}, .catchRate = 45, - .expYield = 225, - .evYield_SpAttack = 3, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .expYield = 143, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLUE, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_MAGICIAN}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, + .speciesName = _("Braixen"), + .cryId = CRY_BRAIXEN, + .natDexNum = NATIONAL_DEX_BRAIXEN, + .categoryName = _("Fox"), + .height = 10, + .weight = 145, + .description = COMPOUND_STRING( + "Braixen has a twig stuck in its tail.\n" + "When the twig is plucked from its tail,\n" + "friction sets the twig alight. The flame\n" + "is used to send signals to its allies."), + .pokemonScale = 305, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Braixen, 48, 64), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Braixen, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Braixen, 64, 56), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, + PALETTE(Braixen), + ICON(Braixen, 0), + .footprint = gMonFootprint_Braixen, + LEARNSETS(Braixen), + .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_DELPHOX}), }, - [SPECIES_CRABRAWLER] = + [SPECIES_DELPHOX] = { - .baseHP = 47, - .baseAttack = 82, - .baseDefense = 57, - .baseSpeed = 63, - .baseSpAttack = 42, - .baseSpDefense = 47, - .types = { TYPE_FIGHTING, TYPE_FIGHTING}, - .catchRate = 225, - .expYield = 68, - .evYield_Attack = 1, - .itemRare = ITEM_ASPEAR_BERRY, - .genderRatio = PERCENT_FEMALE(50), + .baseHP = 75, + .baseAttack = 69, + .baseDefense = 72, + .baseSpeed = 104, + .baseSpAttack = 114, + .baseSpDefense = 100, + .types = { TYPE_FIRE, TYPE_PSYCHIC}, + .catchRate = 45, + .expYield = 240, + .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, - .abilities = {ABILITY_HYPER_CUTTER, ABILITY_IRON_FIST, ABILITY_ANGER_POINT}, - .bodyColor = BODY_COLOR_PURPLE, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_MAGICIAN}, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + .speciesName = _("Delphox"), + .cryId = CRY_DELPHOX, + .natDexNum = NATIONAL_DEX_DELPHOX, + .categoryName = _("Fox"), + .height = 15, + .weight = 390, + .description = COMPOUND_STRING( + "It gazes into the flame at the tip of its\n" + "branch to achieve a focused state, which\n" + "allows it to see into the future. It uses\n" + "psychic power to incinerate its foes."), + .pokemonScale = 268, + .pokemonOffset = 2, + .trainerScale = 271, + .trainerOffset = 0, + FRONT_PIC(Delphox, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Delphox, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Delphox, 64, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_GROW_STUTTER, + PALETTE(Delphox), + ICON(Delphox, 0), + .footprint = gMonFootprint_Delphox, + LEARNSETS(Delphox), + }, +#endif //P_FAMILY_FENNEKIN + +#if P_FAMILY_FROAKIE + [SPECIES_FROAKIE] = + { + .baseHP = 41, + .baseAttack = 56, + .baseDefense = 40, + .baseSpeed = 71, + .baseSpAttack = 62, + .baseSpDefense = 44, + .types = { TYPE_WATER, TYPE_WATER}, + .catchRate = 45, + .expYield = 63, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, + .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_PROTEAN}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Froakie"), + .cryId = CRY_FROAKIE, + .natDexNum = NATIONAL_DEX_FROAKIE, + .categoryName = _("Bubble Frog"), + .height = 3, + .weight = 70, + .description = COMPOUND_STRING( + "It protects its skin by covering its body\n" + "in bubbles it secretes from its chest and\n" + "back. Beneath its happy-go-lucky air, it\n" + "keeps a watchful eye on its surroundings."), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Froakie, 40, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Froakie, + .frontAnimId = ANIM_H_JUMPS, + BACK_PIC(Froakie, 56, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_SHRINK_GROW, + PALETTE(Froakie), + ICON(Froakie, 0), + .footprint = gMonFootprint_Froakie, + LEARNSETS(Froakie), + .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_FROGADIER}), }, - [SPECIES_CRABOMINABLE] = + [SPECIES_FROGADIER] = { - .baseHP = 97, - .baseAttack = 132, - .baseDefense = 77, - .baseSpeed = 43, - .baseSpAttack = 62, - .baseSpDefense = 67, - .types = { TYPE_FIGHTING, TYPE_ICE}, - .catchRate = 60, - .expYield = 167, - .evYield_Attack = 2, - .itemRare = ITEM_CHERI_BERRY, - .genderRatio = PERCENT_FEMALE(50), + .baseHP = 54, + .baseAttack = 63, + .baseDefense = 52, + .baseSpeed = 97, + .baseSpAttack = 83, + .baseSpDefense = 56, + .types = { TYPE_WATER, TYPE_WATER}, + .catchRate = 45, + .expYield = 142, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, - .abilities = {ABILITY_HYPER_CUTTER, ABILITY_IRON_FIST, ABILITY_ANGER_POINT}, - .bodyColor = BODY_COLOR_WHITE, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, + .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_PROTEAN}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Frogadier"), + .cryId = CRY_FROGADIER, + .natDexNum = NATIONAL_DEX_FROGADIER, + .categoryName = _("Bubble Frog"), + .height = 6, + .weight = 109, + .description = COMPOUND_STRING( + "It can throw bubble-covered pebbles with\n" + "precise control, hitting empty cans up to\n" + "a hundred feet away. Frogadier's swiftness\n" + "is unparalleled."), + .pokemonScale = 422, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Frogadier, 56, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Frogadier, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + BACK_PIC(Frogadier, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_GROW_STUTTER, + PALETTE(Frogadier), + ICON(Frogadier, 0), + .footprint = gMonFootprint_Frogadier, + LEARNSETS(Frogadier), + .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_GRENINJA}), + }, + +#define GRENINJA_NORMAL_MISC_INFO \ + .baseHP = 72, \ + .baseAttack = 95, \ + .baseDefense = 67, \ + .baseSpeed = 122, \ + .baseSpAttack = 103, \ + .baseSpDefense = 71, \ + .expYield = 239, \ + .description = gGreninjaPokedexText,\ + FRONT_PIC(Greninja, 64, 56), \ + .frontPicYOffset = 7, \ + .frontAnimFrames = sAnims_Greninja, \ + BACK_PIC(Greninja, 64, 48), \ + .backPicYOffset = 11, \ + PALETTE(Greninja), \ + ICON(Greninja, 0) + +#define GRENINJA_MISC_INFO \ + .types = { TYPE_WATER, TYPE_DARK}, \ + .catchRate = 45, \ + .evYield_Speed = 3, \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_SLOW, \ + .bodyColor = BODY_COLOR_BLUE, \ + .noFlip = TRUE, \ + .speciesName = _("Greninja"), \ + .cryId = CRY_GRENINJA, \ + .natDexNum = NATIONAL_DEX_GRENINJA, \ + .categoryName = _("Ninja"), \ + .height = 15, \ + .weight = 400, \ + .pokemonScale = 268, \ + .pokemonOffset = 2, \ + .trainerScale = 271, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Greninja, \ + LEARNSETS(Greninja), \ + .formSpeciesIdTable = sGreninjaFormSpeciesIdTable + + [SPECIES_GRENINJA] = + { + GRENINJA_MISC_INFO, + GRENINJA_NORMAL_MISC_INFO, + .genderRatio = PERCENT_FEMALE(12.5), + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, + .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_PROTEAN}, + .frontAnimId = ANIM_V_STRETCH, + .backAnimId = BACK_ANIM_JOLT_RIGHT, }, - [SPECIES_ORICORIO_BAILE] = ORICORIO_SPECIES_INFO(TYPE_FIRE, BODY_COLOR_RED), + [SPECIES_GRENINJA_BATTLE_BOND] = + { + GRENINJA_MISC_INFO, + GRENINJA_NORMAL_MISC_INFO, + .genderRatio = MON_MALE, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_BATTLE_BOND, ABILITY_NONE, ABILITY_NONE}, + .frontAnimId = ANIM_FLICKER_INCREASING, + .backAnimId = BACK_ANIM_V_STRETCH, + .formChangeTable = sGreninjaBattleBondFormChangeTable, + }, - [SPECIES_CUTIEFLY] = + [SPECIES_GRENINJA_ASH] = { - .baseHP = 40, - .baseAttack = 45, - .baseDefense = 40, - .baseSpeed = 84, - .baseSpAttack = 55, - .baseSpDefense = 40, - .types = { TYPE_BUG, TYPE_FAIRY}, - .catchRate = 190, - .expYield = 61, + GRENINJA_MISC_INFO, + .baseHP = 72, + .baseAttack = 145, + .baseDefense = 67, + .baseSpeed = 132, + .baseSpAttack = 153, + .baseSpDefense = 71, + .expYield = 288, + .genderRatio = MON_MALE, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_BATTLE_BOND, ABILITY_NONE, ABILITY_NONE}, + .description = COMPOUND_STRING( + "It appears and vanishes with a ninja's\n" + "grace. It toys with its enemies using swift\n" + "movements, while slicing them with throwing\n" + "stars made of compressed water."), + FRONT_PIC(GreninjaAsh, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_GreninjaAsh, + BACK_PIC(GreninjaAsh, 64, 48), + .backPicYOffset = 11, + PALETTE(GreninjaAsh), + ICON(GreninjaAsh, 0), + .frontAnimId = ANIM_FLICKER_INCREASING, + .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, + .formChangeTable = sGreninjaBattleBondFormChangeTable, + }, +#endif //P_FAMILY_FROAKIE + +#if P_FAMILY_BUNNELBY + [SPECIES_BUNNELBY] = + { + .baseHP = 38, + .baseAttack = 36, + .baseDefense = 38, + .baseSpeed = 57, + .baseSpAttack = 32, + .baseSpDefense = 36, + .types = { TYPE_NORMAL, TYPE_NORMAL}, + .catchRate = 255, + .expYield = 47, .evYield_Speed = 1, - .itemRare = ITEM_HONEY, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_HONEY_GATHER, ABILITY_SHIELD_DUST, ABILITY_SWEET_VEIL}, - .bodyColor = BODY_COLOR_YELLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_PICKUP, ABILITY_CHEEK_POUCH, ABILITY_HUGE_POWER}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .speciesName = _("Bunnelby"), + .cryId = CRY_BUNNELBY, + .natDexNum = NATIONAL_DEX_BUNNELBY, + .categoryName = _("Digging"), + .height = 4, + .weight = 50, + .description = COMPOUND_STRING( + "It has ears like shovels. Digging holes\n" + "strengthens its ears so much that they\n" + "can sever thick roots effortlessly.\n" + "Bunnelby dig the whole night through."), + .pokemonScale = 491, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Bunnelby, 48, 64), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Bunnelby, + .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, + BACK_PIC(Bunnelby, 48, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_V_STRETCH, + PALETTE(Bunnelby), + ICON(Bunnelby, 2), + .footprint = gMonFootprint_Bunnelby, + LEARNSETS(Bunnelby), + .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_DIGGERSBY}), }, - [SPECIES_RIBOMBEE] = + [SPECIES_DIGGERSBY] = { - .baseHP = 60, - .baseAttack = 55, - .baseDefense = 60, - .baseSpeed = 124, - .baseSpAttack = 95, - .baseSpDefense = 70, - .types = { TYPE_BUG, TYPE_FAIRY}, - .catchRate = 75, - .expYield = 162, - .evYield_Speed = 2, - .itemRare = ITEM_HONEY, + .baseHP = 85, + .baseAttack = 56, + .baseDefense = 77, + .baseSpeed = 78, + .baseSpAttack = 50, + .baseSpDefense = 77, + .types = { TYPE_NORMAL, TYPE_GROUND}, + .catchRate = 127, + .expYield = 148, + .evYield_HP = 2, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_HONEY_GATHER, ABILITY_SHIELD_DUST, ABILITY_SWEET_VEIL}, - .bodyColor = BODY_COLOR_YELLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_PICKUP, ABILITY_CHEEK_POUCH, ABILITY_HUGE_POWER}, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + .speciesName = _("Diggersby"), + .cryId = CRY_DIGGERSBY, + .natDexNum = NATIONAL_DEX_DIGGERSBY, + .categoryName = _("Digging"), + .height = 10, + .weight = 424, + .description = COMPOUND_STRING( + "With its powerful ears it reduces dense\n" + "bedrock to rubble. It can be a big help\n" + "at construction sites. When it's finished\n" + "digging, it lounges about lazily."), + .pokemonScale = 305, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Diggersby, 64, 64), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Diggersby, + .frontAnimId = ANIM_H_JUMPS_V_STRETCH, + BACK_PIC(Diggersby, 64, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, + PALETTE(Diggersby), + ICON(Diggersby, 2), + .footprint = gMonFootprint_Diggersby, + LEARNSETS(Diggersby), + }, +#endif //P_FAMILY_BUNNELBY + +#if P_FAMILY_FLETCHLING + [SPECIES_FLETCHLING] = + { + .baseHP = 45, + .baseAttack = 50, + .baseDefense = 43, + .baseSpeed = 62, + .baseSpAttack = 40, + .baseSpDefense = 38, + .types = { TYPE_NORMAL, TYPE_FLYING}, + .catchRate = 255, + .expYield = 56, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + .abilities = {ABILITY_BIG_PECKS, ABILITY_NONE, ABILITY_GALE_WINGS}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, + .speciesName = _("Fletchling"), + .cryId = CRY_FLETCHLING, + .natDexNum = NATIONAL_DEX_FLETCHLING, + .categoryName = _("Tiny Robin"), + .height = 3, + .weight = 17, + .description = COMPOUND_STRING( + "This amiable Pokémon is easy to train.\n" + "But when battle is joined, it shows its\n" + "ferocious side. It's merciless to\n" + "intruders that enter its territory."), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Fletchling, 40, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Fletchling, + .frontAnimId = ANIM_V_JUMPS_SMALL, + BACK_PIC(Fletchling, 64, 40), + .backPicYOffset = 14, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(Fletchling), + ICON(Fletchling, 2), + .footprint = gMonFootprint_Fletchling, + LEARNSETS(Fletchling), + .evolutions = EVOLUTION({EVO_LEVEL, 17, SPECIES_FLETCHINDER}), }, - [SPECIES_ROCKRUFF] = ROCKRUFF_SPECIES_INFO(ABILITY_KEEN_EYE, ABILITY_VITAL_SPIRIT, ABILITY_STEADFAST), - - [SPECIES_LYCANROC_MIDDAY] = + [SPECIES_FLETCHINDER] = { - .baseHP = 75, - .baseAttack = 115, - .baseDefense = 65, - .baseSpeed = 112, - .baseSpAttack = 55, - .baseSpDefense = 65, - .types = { TYPE_ROCK, TYPE_ROCK}, - .catchRate = 90, - .expYield = 170, - .evYield_Attack = 2, + .baseHP = 62, + .baseAttack = 73, + .baseDefense = 55, + .baseSpeed = 84, + .baseSpAttack = 56, + .baseSpDefense = 52, + .types = { TYPE_FIRE, TYPE_FLYING}, + .catchRate = 120, + .expYield = 134, + .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_KEEN_EYE, ABILITY_SAND_RUSH, ABILITY_STEADFAST}, - .bodyColor = BODY_COLOR_BROWN, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + .abilities = {ABILITY_FLAME_BODY, ABILITY_NONE, ABILITY_GALE_WINGS}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, + .speciesName = _("Flechinder"), + .cryId = CRY_FLETCHINDER, + .natDexNum = NATIONAL_DEX_FLETCHINDER, + .categoryName = _("Ember"), + .height = 7, + .weight = 160, + .description = COMPOUND_STRING( + "From its beak, it expels embers that set\n" + "the tall grass on fire. Then it pounces on\n" + "any bewildered Pokémon that pop out of\n" + "the grass."), + .pokemonScale = 365, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Fletchinder, 56, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Fletchinder, + .frontAnimId = ANIM_V_SLIDE_SLOW, + .enemyMonElevation = 9, + BACK_PIC(Fletchinder, 64, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Fletchinder), + ICON(Fletchinder, 2), + .footprint = gMonFootprint_Fletchinder, + LEARNSETS(Fletchinder), + .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_TALONFLAME}), }, - [SPECIES_WISHIWASHI_SOLO] = + [SPECIES_TALONFLAME] = { - .baseHP = 45, - .baseAttack = 20, - .baseDefense = 20, - .baseSpeed = 40, - .baseSpAttack = 25, - .baseSpDefense = 25, - .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 60, - .expYield = 61, - .evYield_HP = 1, + .baseHP = 78, + .baseAttack = 81, + .baseDefense = 71, + .baseSpeed = 126, + .baseSpAttack = 74, + .baseSpDefense = 69, + .types = { TYPE_FIRE, TYPE_FLYING}, + .catchRate = 45, + .expYield = 175, + .evYield_Speed = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, - .abilities = {ABILITY_SCHOOLING, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLUE, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + .abilities = {ABILITY_FLAME_BODY, ABILITY_NONE, ABILITY_GALE_WINGS}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, - }, - - [SPECIES_MAREANIE] = + .speciesName = _("Talonflame"), + .cryId = CRY_TALONFLAME, + .natDexNum = NATIONAL_DEX_TALONFLAME, + .categoryName = _("Scorching"), + .height = 12, + .weight = 245, + .description = COMPOUND_STRING( + "In the fever of an exciting battle, it\n" + "showers embers from the gaps between its\n" + "feathers and takes to the air. It finishes\n" + "its prey off with a colossal kick."), + .pokemonScale = 282, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Talonflame, 64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Talonflame, + .frontAnimId = ANIM_V_SLIDE_WOBBLE, + .enemyMonElevation = 7, + BACK_PIC(Talonflame, 64, 56), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(Talonflame), + ICON(Talonflame, 2), + .footprint = gMonFootprint_Talonflame, + LEARNSETS(Talonflame), + }, +#endif //P_FAMILY_FLETCHLING + +#if P_FAMILY_SCATTERBUG + [SPECIES_SCATTERBUG] = { - .baseHP = 50, - .baseAttack = 53, - .baseDefense = 62, - .baseSpeed = 45, - .baseSpAttack = 43, - .baseSpDefense = 52, - .types = { TYPE_POISON, TYPE_WATER}, - .catchRate = 190, - .expYield = 61, + .baseHP = 38, + .baseAttack = 35, + .baseDefense = 40, + .baseSpeed = 35, + .baseSpAttack = 27, + .baseSpDefense = 25, + .types = { TYPE_BUG, TYPE_BUG}, + .catchRate = 255, + .expYield = 40, .evYield_Defense = 1, - .itemRare = ITEM_POISON_BARB, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_MERCILESS, ABILITY_LIMBER, ABILITY_REGENERATOR}, - .bodyColor = BODY_COLOR_BLUE, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_SHIELD_DUST, ABILITY_COMPOUND_EYES, ABILITY_FRIEND_GUARD}, + .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, + .speciesName = _("Scatterbug"), + .cryId = CRY_SCATTERBUG, + .natDexNum = NATIONAL_DEX_SCATTERBUG, + .categoryName = _("Scatterdust"), + .height = 3, + .weight = 25, + .description = COMPOUND_STRING( + "When under attack from bird Pokémon,\n" + "it spews a poisonous black powder that\n" + "causes paralysis on contact. Scatterbug\n" + "can live in any region or climate."), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Scatterbug, 32, 48), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_Scatterbug, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Scatterbug, 40, 56), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Scatterbug), + ICON(Scatterbug, 1), + .footprint = gMonFootprint_Scatterbug, + LEARNSETS(Scatterbug), + .evolutions = EVOLUTION({EVO_LEVEL, 9, SPECIES_SPEWPA}), }, - [SPECIES_TOXAPEX] = + [SPECIES_SPEWPA] = { - .baseHP = 50, - .baseAttack = 63, - .baseDefense = 152, - .baseSpeed = 35, - .baseSpAttack = 53, - .baseSpDefense = 142, - .types = { TYPE_POISON, TYPE_WATER}, - .catchRate = 75, - .expYield = 173, + .baseHP = 45, + .baseAttack = 22, + .baseDefense = 60, + .baseSpeed = 29, + .baseSpAttack = 27, + .baseSpDefense = 30, + .types = { TYPE_BUG, TYPE_BUG}, + .catchRate = 120, + .expYield = 75, .evYield_Defense = 2, - .itemRare = ITEM_POISON_BARB, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_MERCILESS, ABILITY_LIMBER, ABILITY_REGENERATOR}, - .bodyColor = BODY_COLOR_BLUE, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_FRIEND_GUARD}, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + .speciesName = _("Spewpa"), + .cryId = CRY_SPEWPA, + .natDexNum = NATIONAL_DEX_SPEWPA, + .categoryName = _("Scatterdust"), + .height = 3, + .weight = 84, + .description = COMPOUND_STRING( + "It lives hidden within thicket shadows.\n" + "When predators attack, it quickly bristles\n" + "the fur covering its body in an effort to\n" + "threaten them."), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Spewpa, 40, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Spewpa, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(Spewpa, 48, 48), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_H_VIBRATE, + PALETTE(Spewpa), + ICON(Spewpa, 1), + .footprint = gMonFootprint_Spewpa, + LEARNSETS(Spewpa), + .evolutions = EVOLUTION({EVO_LEVEL, 12, SPECIES_VIVILLON_ICY_SNOW}), + }, + +#define VIVILLON_MISC_INFO(form, color, iconPal) \ + .baseHP = 80, \ + .baseAttack = 52, \ + .baseDefense = 50, \ + .baseSpeed = 89, \ + .baseSpAttack = 90, \ + .baseSpDefense = 50, \ + .types = { TYPE_BUG, TYPE_FLYING}, \ + .catchRate = 45, \ + .expYield = 185, \ + .evYield_HP = 1, \ + .evYield_Speed = 1, \ + .evYield_SpAttack = 1, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 15, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, \ + .abilities = {ABILITY_SHIELD_DUST, ABILITY_COMPOUND_EYES, ABILITY_FRIEND_GUARD},\ + .bodyColor = color, \ + .noFlip = FALSE, \ + .speciesName = _("Vivillon"), \ + .cryId = CRY_VIVILLON, \ + .natDexNum = NATIONAL_DEX_VIVILLON, \ + .categoryName = _("Scale"), \ + .height = 12, \ + .weight = 170, \ + .pokemonScale = 282, \ + .pokemonOffset = 4, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + FRONT_PIC(Vivillon ##form, 64, 64), \ + .frontPicYOffset = 0, \ + .frontAnimFrames = sAnims_Vivillon, \ + .frontAnimId = ANIM_ZIGZAG_SLOW, \ + .enemyMonElevation = 9, \ + BACK_PIC(Vivillon ##form, 64, 64), \ + .backPicYOffset = 0, \ + .backAnimId = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, \ + PALETTE(Vivillon ##form), \ + ICON(Vivillon ##form, iconPal), \ + .footprint = gMonFootprint_Vivillon, \ + LEARNSETS(Vivillon), \ + .formSpeciesIdTable = sVivillonFormSpeciesIdTable + + [SPECIES_VIVILLON_ICY_SNOW] = + { + VIVILLON_MISC_INFO(IcySnow, BODY_COLOR_WHITE, 0), + .description = COMPOUND_STRING( + "Its pattern depends on the climate and\n" + "topography of the land it was born in.\n" + "This form is from frigid lands.\n" + "It scatters toxic color scales in battle."), + }, + [SPECIES_VIVILLON_POLAR] = + { + VIVILLON_MISC_INFO(Polar, BODY_COLOR_BLUE, 0), + .description = COMPOUND_STRING( + "Its pattern depends on the climate and\n" + "topography of the land it was born in.\n" + "This form is from snowy lands.\n" + "It scatters toxic color scales in battle."), + }, + [SPECIES_VIVILLON_TUNDRA] = + { + VIVILLON_MISC_INFO(Tundra, BODY_COLOR_BLUE, 0), + .description = COMPOUND_STRING( + "Its pattern depends on the climate and\n" + "topography of the land it was born in.\n" + "This form is from lands of severe cold.\n" + "It scatters toxic color scales in battle."), + }, + [SPECIES_VIVILLON_CONTINENTAL] = + { + VIVILLON_MISC_INFO(Continental, BODY_COLOR_YELLOW, 2), + .description = COMPOUND_STRING( + "Its pattern depends on the climate and\n" + "topography of the land it was born in.\n" + "This form is from lands of vast space.\n" + "It scatters toxic color scales in battle."), + }, + [SPECIES_VIVILLON_GARDEN] = + { + VIVILLON_MISC_INFO(Garden, BODY_COLOR_GREEN, 1), + .description = COMPOUND_STRING( + "Its pattern depends on the climate and\n" + "topography of the land it was born in.\n" + "This form is from verdant lands.\n" + "It scatters toxic color scales in battle."), + }, + [SPECIES_VIVILLON_ELEGANT] = + { + VIVILLON_MISC_INFO(Elegant, BODY_COLOR_PURPLE, 0), + .description = COMPOUND_STRING( + "Its pattern depends on the climate and\n" + "topography of the land it was born in. This\n" + "form is from lands with distinct seasons.\n" + "It scatters toxic color scales in battle."), + }, + [SPECIES_VIVILLON_MEADOW] = + { + VIVILLON_MISC_INFO(Meadow, BODY_COLOR_PINK, 0), + .description = COMPOUND_STRING( + "Its pattern depends on the climate and\n" + "topography of the land it was born in. This\n" + "form is from lands where flowers bloom.\n" + "It scatters toxic color scales in battle."), + }, + [SPECIES_VIVILLON_MODERN] = + { + VIVILLON_MISC_INFO(Modern, BODY_COLOR_RED, 2), + .description = COMPOUND_STRING( + "Its pattern depends on the climate and\n" + "topography of the land it was born in.\n" + "This form is from sun-drenched lands.\n" + "It scatters toxic color scales in battle."), + }, + [SPECIES_VIVILLON_MARINE] = + { + VIVILLON_MISC_INFO(Marine, BODY_COLOR_BLUE, 0), + .description = COMPOUND_STRING( + "Its pattern depends on the climate and\n" + "topography of the land it was born in. This\n" + "form is from lands with ocean breezes.\n" + "It scatters toxic color scales in battle."), + }, + [SPECIES_VIVILLON_ARCHIPELAGO] = + { + VIVILLON_MISC_INFO(Archipelago, BODY_COLOR_BROWN, 0), + .description = COMPOUND_STRING( + "Its pattern depends on the climate and\n" + "topography of the land it was born in.\n" + "This form is from places with many islands.\n" + "It scatters toxic color scales in battle."), + }, + [SPECIES_VIVILLON_HIGH_PLAINS] = + { + VIVILLON_MISC_INFO(HighPlains, BODY_COLOR_BROWN, 0), + .description = COMPOUND_STRING( + "Its pattern depends on the climate and\n" + "topography of the land it was born in.\n" + "This form is from lands with little rain.\n" + "It scatters toxic color scales in battle."), + }, + [SPECIES_VIVILLON_SANDSTORM] = + { + VIVILLON_MISC_INFO(Sandstorm, BODY_COLOR_BROWN, 1), + .description = COMPOUND_STRING( + "Its pattern depends on the climate and\n" + "topography of the land it was born in.\n" + "This form is from parched lands.\n" + "It scatters toxic color scales in battle."), + }, + [SPECIES_VIVILLON_RIVER] = + { + VIVILLON_MISC_INFO(River, BODY_COLOR_BROWN, 2), + .description = COMPOUND_STRING( + "Its pattern depends on the climate and\n" + "topography of the land it was born in. This\n" + "form is from lands where large rivers flow.\n" + "It scatters toxic color scales in battle."), + }, + [SPECIES_VIVILLON_MONSOON] = + { + VIVILLON_MISC_INFO(Monsoon, BODY_COLOR_GRAY, 0), + .description = COMPOUND_STRING( + "Its pattern depends on the climate and\n" + "topography of the land it was born in. This\n" + "form is from lands with intense rainfall.\n" + "It scatters toxic color scales in battle."), + }, + [SPECIES_VIVILLON_SAVANNA] = + { + VIVILLON_MISC_INFO(Savanna, BODY_COLOR_GREEN, 0), + .description = COMPOUND_STRING( + "Its pattern depends on the climate and\n" + "topography of the land it was born in. This\n" + "form is from lands with a tropical climate.\n" + "It scatters toxic color scales in battle."), + }, + [SPECIES_VIVILLON_SUN] = + { + VIVILLON_MISC_INFO(Sun, BODY_COLOR_RED, 0), + .description = COMPOUND_STRING( + "Its pattern depends on the climate and\n" + "topography of the land it was born in.\n" + "This form is from lands bathed in light.\n" + "It scatters toxic color scales in battle."), + }, + [SPECIES_VIVILLON_OCEAN] = + { + VIVILLON_MISC_INFO(Ocean, BODY_COLOR_RED, 0), + .description = COMPOUND_STRING( + "Its pattern depends on the climate and\n" + "topography of the land it was born in. This\n" + "form is from lands of perpetual summer.\n" + "It scatters toxic color scales in battle."), + }, + [SPECIES_VIVILLON_JUNGLE] = + { + VIVILLON_MISC_INFO(Jungle, BODY_COLOR_GREEN, 0), + .description = COMPOUND_STRING( + "Its pattern depends on the climate and\n" + "topography of the land it was born in. This\n" + "form is from lands of tropical rainforests.\n" + "It scatters toxic color scales in battle."), + }, + [SPECIES_VIVILLON_FANCY] = + { + VIVILLON_MISC_INFO(Fancy, BODY_COLOR_PINK, 1), + .description = COMPOUND_STRING( + "Its pattern depends on the climate and\n" + "topography of the land it was born in.\n" + "This form is from a mysterious land.\n" + "It scatters toxic color scales in battle."), + }, + [SPECIES_VIVILLON_POKE_BALL] = + { + VIVILLON_MISC_INFO(PokeBall, BODY_COLOR_RED, 2), + .description = COMPOUND_STRING( + "Its pattern depends on the climate and\n" + "topography of the land it was born in.\n" + "This form is from a special land.\n" + "It scatters toxic color scales in battle."), + }, +#endif //P_FAMILY_SCATTERBUG + +#if P_FAMILY_LITLEO + [SPECIES_LITLEO] = + { + .baseHP = 62, + .baseAttack = 50, + .baseDefense = 58, + .baseSpeed = 72, + .baseSpAttack = 73, + .baseSpDefense = 54, + .types = { TYPE_FIRE, TYPE_NORMAL}, + .catchRate = 220, + .expYield = 74, + .evYield_SpAttack = 1, + .genderRatio = PERCENT_FEMALE(87.5), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_RIVALRY, ABILITY_UNNERVE, ABILITY_MOXIE}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .speciesName = _("Litleo"), + .cryId = CRY_LITLEO, + .natDexNum = NATIONAL_DEX_LITLEO, + .categoryName = _("Lion Cub"), + .height = 6, + .weight = 135, + .description = COMPOUND_STRING( + "They set off on their own from their pride\n" + "and live by themselves to become stronger.\n" + "These hot-blooded Pokémon are quick\n" + "to start a fight."), + .pokemonScale = 422, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Litleo, 40, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Litleo, + .frontAnimId = ANIM_BACK_AND_LUNGE, + BACK_PIC(Litleo, 56, 48), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Litleo), + ICON(Litleo, 2), + .footprint = gMonFootprint_Litleo, + LEARNSETS(Litleo), + .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_PYROAR}), }, - [SPECIES_MUDBRAY] = + [SPECIES_PYROAR] = { - .baseHP = 70, - .baseAttack = 100, - .baseDefense = 70, - .baseSpeed = 45, - .baseSpAttack = 45, - .baseSpDefense = 55, - .types = { TYPE_GROUND, TYPE_GROUND}, - .catchRate = 190, - .expYield = 77, - .evYield_Attack = 1, - .itemRare = ITEM_LIGHT_CLAY, - .genderRatio = PERCENT_FEMALE(50), + .baseHP = 86, + .baseAttack = 68, + .baseDefense = 72, + .baseSpeed = 106, + .baseSpAttack = 109, + .baseSpDefense = 66, + .types = { TYPE_FIRE, TYPE_NORMAL}, + .catchRate = 65, + .expYield = 177, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(87.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, + .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_OWN_TEMPO, ABILITY_STAMINA, ABILITY_INNER_FOCUS}, + .abilities = {ABILITY_RIVALRY, ABILITY_UNNERVE, ABILITY_MOXIE}, .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - }, + .speciesName = _("Pyroar"), + .cryId = CRY_PYROAR, + .natDexNum = NATIONAL_DEX_PYROAR, + .categoryName = _("Royal"), + .height = 15, + .weight = 815, + .description = COMPOUND_STRING( + "The male with the largest mane of fire\n" + "is the leader of the pride. The females\n" + "protect the pride's cubs. They viciously\n" + "threaten any challenger."), + .pokemonScale = 268, + .pokemonOffset = 2, + .trainerScale = 271, + .trainerOffset = 0, + FRONT_PIC(Pyroar, 64, 64), + FRONT_PIC_FEMALE(Pyroar, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Pyroar, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(Pyroar, 64, 64), + BACK_PIC_FEMALE(Pyroar, 64, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_H_STRETCH, + PALETTE(Pyroar), + ICON(Pyroar, 2), + .iconSpriteFemale = gMonIcon_PyroarF, + .iconPalIndexFemale = 2, + .footprint = gMonFootprint_Pyroar, + LEARNSETS(Pyroar), + }, +#endif //P_FAMILY_LITLEO + +#if P_FAMILY_FLABEBE +#define FLABEBE_MISC_INFO(Form, FORM, iconPal) \ + .baseHP = 44, \ + .baseAttack = 38, \ + .baseDefense = 39, \ + .baseSpeed = 42, \ + .baseSpAttack = 61, \ + .baseSpDefense = 79, \ + .types = { TYPE_FAIRY, TYPE_FAIRY}, \ + .catchRate = 225, \ + .expYield = 61, \ + .evYield_SpDefense = 1, \ + .genderRatio = MON_FEMALE, \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, \ + .abilities = {ABILITY_FLOWER_VEIL, ABILITY_NONE, ABILITY_SYMBIOSIS},\ + .bodyColor = BODY_COLOR_WHITE, \ + .noFlip = FALSE, \ + .speciesName = _("Flabébé"), \ + .cryId = CRY_FLABEBE, \ + .natDexNum = NATIONAL_DEX_FLABEBE, \ + .categoryName = _("Single Bloom"), \ + .height = 1, \ + .weight = 1, \ + .pokemonScale = 682, \ + .pokemonOffset = 24, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + FRONT_PIC(Flabebe, 48, 56), \ + .frontPicYOffset = 6, \ + .frontAnimFrames = sAnims_Flabebe, \ + .frontAnimId = ANIM_H_SLIDE_SLOW, \ + .enemyMonElevation = 6, \ + BACK_PIC(Flabebe, 64, 40), \ + .backPicYOffset = 12, \ + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, \ + PALETTE(Flabebe##Form##Flower), \ + ICON(Flabebe##Form##Flower, iconPal), \ + .footprint = gMonFootprint_Flabebe, \ + LEARNSETS(Flabebe), \ + .formSpeciesIdTable = sFlabebeFormSpeciesIdTable, \ + .evolutions = EVOLUTION({EVO_LEVEL, 19, SPECIES_FLOETTE_ ##FORM##_FLOWER}) + + [SPECIES_FLABEBE_RED_FLOWER] = + { + FLABEBE_MISC_INFO(Red, RED, 1), + .description = COMPOUND_STRING( + "When it finds a flower it likes, it dwells\n" + "on that flower its whole life long.\n" + "It floats on the wind's embrace with\n" + "an untroubled heart."), + }, + [SPECIES_FLABEBE_YELLOW_FLOWER] = + { + FLABEBE_MISC_INFO(Yellow, YELLOW, 1), + .description = COMPOUND_STRING( + ""), + }, + [SPECIES_FLABEBE_ORANGE_FLOWER] = + { + FLABEBE_MISC_INFO(Orange, ORANGE, 0), + .description = COMPOUND_STRING( + ""), + }, + [SPECIES_FLABEBE_BLUE_FLOWER] = + { + FLABEBE_MISC_INFO(Blue, BLUE, 0), + .description = COMPOUND_STRING( + ""), + }, + [SPECIES_FLABEBE_WHITE_FLOWER] = + { + FLABEBE_MISC_INFO(White, WHITE, 1), + .description = COMPOUND_STRING( + ""), + }, + +#define FLOETTE_MISC_INFO(form, FORM, iconPal) \ + .types = { TYPE_FAIRY, TYPE_FAIRY}, \ + .catchRate = 120, \ + .evYield_SpDefense = 2, \ + .genderRatio = MON_FEMALE, \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .abilities = {ABILITY_FLOWER_VEIL, ABILITY_NONE, ABILITY_SYMBIOSIS},\ + .bodyColor = BODY_COLOR_WHITE, \ + .noFlip = FALSE, \ + .speciesName = _("Floette"), \ + .natDexNum = NATIONAL_DEX_FLOETTE, \ + .categoryName = _("Single Bloom"), \ + .height = 2, \ + .weight = 9, \ + .pokemonScale = 682, \ + .pokemonOffset = 24, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .frontAnimFrames = sAnims_Floette, \ + .frontAnimId = ANIM_V_SLIDE_WOBBLE, \ + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, \ + PALETTE(Floette ##form##Flower), \ + ICON(Floette##form##Flower, iconPal), \ + .footprint = gMonFootprint_Floette, \ + .formSpeciesIdTable = sFloetteFormSpeciesIdTable + +#define FLOETTE_NORMAL_INFO(form, FORM, iconPal) \ + .baseHP = 54, \ + .baseAttack = 45, \ + .baseDefense = 47, \ + .baseSpeed = 52, \ + .baseSpAttack = 75, \ + .baseSpDefense = 98, \ + .expYield = 130, \ + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, \ + .cryId = CRY_FLOETTE, \ + FRONT_PIC(Floette, 48, 64), \ + .frontPicYOffset = 3, \ + .enemyMonElevation = 4, \ + BACK_PIC(Floette, 64, 64), \ + .backPicYOffset = 2, \ + LEARNSETS(Floette), \ + .evolutions = EVOLUTION({EVO_ITEM, ITEM_SHINY_STONE, SPECIES_FLORGES_ ##FORM##_FLOWER}),\ + FLOETTE_MISC_INFO(form, FORM, iconPal) - [SPECIES_MUDSDALE] = + [SPECIES_FLOETTE_RED_FLOWER] = { - .baseHP = 100, - .baseAttack = 125, - .baseDefense = 100, - .baseSpeed = 35, - .baseSpAttack = 55, - .baseSpDefense = 85, - .types = { TYPE_GROUND, TYPE_GROUND}, - .catchRate = 60, - .expYield = 175, - .evYield_Attack = 2, - .itemRare = ITEM_LIGHT_CLAY, + FLOETTE_NORMAL_INFO(Red, RED, 1), + .description = COMPOUND_STRING( + "When the flowers of a well-tended flower\n" + "bed bloom, it appears and celebrates\n" + "with an elegant dance. It draws out the\n" + "power of flowers to battle.") + }, + [SPECIES_FLOETTE_YELLOW_FLOWER] = + { + FLOETTE_NORMAL_INFO(Yellow, YELLOW, 1), + .description = COMPOUND_STRING( + ""), + }, + [SPECIES_FLOETTE_ORANGE_FLOWER] = + { + FLOETTE_NORMAL_INFO(Orange, ORANGE, 0), + .description = COMPOUND_STRING( + ""), + }, + [SPECIES_FLOETTE_BLUE_FLOWER] = + { + FLOETTE_NORMAL_INFO(Blue, BLUE, 0), + .description = COMPOUND_STRING( + ""), + }, + [SPECIES_FLOETTE_WHITE_FLOWER] = + { + FLOETTE_NORMAL_INFO(White, WHITE, 1), + .description = COMPOUND_STRING( + ""), + }, + [SPECIES_FLOETTE_ETERNAL_FLOWER] = + { + FLOETTE_MISC_INFO(Eternal, ETERNAL, 0), + .baseHP = 74, + .baseAttack = 65, + .baseDefense = 67, + .baseSpeed = 92, + .baseSpAttack = 125, + .baseSpDefense = 128, + .expYield = 243, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .description = COMPOUND_STRING( + ""), + .cryId = CRY_FLOETTE_ETERNAL_FLOWER, + FRONT_PIC(FloetteEternalFlower, 64, 64), + .frontPicYOffset = 3, + .enemyMonElevation = 4, + BACK_PIC(FloetteEternalFlower, 64, 64), + .backPicYOffset = 2, + LEARNSETS(FloetteEternalFlower), + }, + +#define FLORGES_MISC_INFO(Form, iconPal) \ + .baseHP = 78, \ + .baseAttack = 65, \ + .baseDefense = 68, \ + .baseSpeed = 75, \ + .baseSpAttack = 112, \ + .baseSpDefense = 154, \ + .types = { TYPE_FAIRY, TYPE_FAIRY}, \ + .catchRate = 45, \ + .expYield = 248, \ + .evYield_SpDefense = 3, \ + .genderRatio = MON_FEMALE, \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, \ + .abilities = {ABILITY_FLOWER_VEIL, ABILITY_NONE, ABILITY_SYMBIOSIS},\ + .bodyColor = BODY_COLOR_WHITE, \ + .noFlip = FALSE, \ + .speciesName = _("Florges"), \ + .cryId = CRY_FLORGES, \ + .natDexNum = NATIONAL_DEX_FLORGES, \ + .categoryName = _("Garden"), \ + .height = 11, \ + .weight = 100, \ + .pokemonScale = 320, \ + .pokemonOffset = 7, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + FRONT_PIC(Florges, 64, 64), \ + .frontPicYOffset = 0, \ + .frontAnimFrames = sAnims_Florges, \ + .frontAnimId = ANIM_V_SLIDE_SLOW, \ + BACK_PIC(Florges, 64, 48), \ + .backPicYOffset = 9, \ + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, \ + PALETTE(Florges##Form##Flower), \ + ICON(Florges##Form##Flower, iconPal), \ + .footprint = gMonFootprint_Florges, \ + LEARNSETS(Florges), \ + .formSpeciesIdTable = sFlorgesFormSpeciesIdTable + + [SPECIES_FLORGES_RED_FLOWER] = + { + FLORGES_MISC_INFO(Red, 0), + .description = COMPOUND_STRING( + "It claims exquisite flower gardens as its\n" + "territory. In times long past, governors of\n" + "castles would invite Florges to create\n" + "gardens to embellish the castle domains."), + }, + [SPECIES_FLORGES_YELLOW_FLOWER] = + { + FLORGES_MISC_INFO(Yellow, 1), + .description = COMPOUND_STRING( + ""), + }, + [SPECIES_FLORGES_ORANGE_FLOWER] = + { + FLORGES_MISC_INFO(Orange, 0), + .description = COMPOUND_STRING( + ""), + }, + [SPECIES_FLORGES_BLUE_FLOWER] = + { + FLORGES_MISC_INFO(Blue, 0), + .description = COMPOUND_STRING( + ""), + }, + [SPECIES_FLORGES_WHITE_FLOWER] = + { + FLORGES_MISC_INFO(White, 0), + .description = COMPOUND_STRING( + ""), + }, +#endif //P_FAMILY_FLABEBE + +#if P_FAMILY_SKIDDO + [SPECIES_SKIDDO] = + { + .baseHP = 66, + .baseAttack = 65, + .baseDefense = 48, + .baseSpeed = 52, + .baseSpAttack = 62, + .baseSpDefense = 57, + .types = { TYPE_GRASS, TYPE_GRASS}, + .catchRate = 200, + .expYield = 70, + .evYield_HP = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_OWN_TEMPO, ABILITY_STAMINA, ABILITY_INNER_FOCUS}, + .abilities = {ABILITY_SAP_SIPPER, ABILITY_NONE, ABILITY_GRASS_PELT}, .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .speciesName = _("Skiddo"), + .cryId = CRY_SKIDDO, + .natDexNum = NATIONAL_DEX_SKIDDO, + .categoryName = _("Mount"), + .height = 9, + .weight = 310, + .description = COMPOUND_STRING( + "If it has sunshine and water, it doesn't\n" + "need to eat, because it can generate\n" + "energy from the leaves on its back.\n" + "It has a placid disposition."), + .pokemonScale = 338, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Skiddo, 48, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Skiddo, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Skiddo, 56, 48), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Skiddo), + ICON(Skiddo, 1), + .footprint = gMonFootprint_Skiddo, + LEARNSETS(Skiddo), + .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_GOGOAT}), }, - [SPECIES_DEWPIDER] = + [SPECIES_GOGOAT] = { - .baseHP = 38, - .baseAttack = 40, - .baseDefense = 52, - .baseSpeed = 27, - .baseSpAttack = 40, - .baseSpDefense = 72, - .types = { TYPE_WATER, TYPE_BUG}, - .catchRate = 200, - .expYield = 54, - .evYield_SpDefense = 1, - .itemRare = ITEM_MYSTIC_WATER, + .baseHP = 123, + .baseAttack = 100, + .baseDefense = 62, + .baseSpeed = 68, + .baseSpAttack = 97, + .baseSpDefense = 81, + .types = { TYPE_GRASS, TYPE_GRASS}, + .catchRate = 45, + .expYield = 186, + .evYield_HP = 2, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_BUG}, - .abilities = {ABILITY_WATER_BUBBLE, ABILITY_NONE, ABILITY_WATER_ABSORB}, - .bodyColor = BODY_COLOR_GREEN, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_SAP_SIPPER, ABILITY_NONE, ABILITY_GRASS_PELT}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - }, - - [SPECIES_ARAQUANID] = + .speciesName = _("Gogoat"), + .cryId = CRY_GOGOAT, + .natDexNum = NATIONAL_DEX_GOGOAT, + .categoryName = _("Mount"), + .height = 17, + .weight = 910, + .description = COMPOUND_STRING( + "It can tell how its trainer is feeling by\n" + "subtle shifts in the grip on its horns. This\n" + "empathetic sense lets them run as if one\n" + "being. They inhabit mountainous regions."), + .pokemonScale = 259, + .pokemonOffset = 0, + .trainerScale = 290, + .trainerOffset = 1, + FRONT_PIC(Gogoat, 56, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Gogoat, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Gogoat, 64, 56), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, + PALETTE(Gogoat), + ICON(Gogoat, 1), + .footprint = gMonFootprint_Gogoat, + LEARNSETS(Gogoat), + }, +#endif //P_FAMILY_SKIDDO + +#if P_FAMILY_PANCHAM + [SPECIES_PANCHAM] = { - .baseHP = 68, - .baseAttack = 70, - .baseDefense = 92, - .baseSpeed = 42, - .baseSpAttack = 50, - .baseSpDefense = 132, - .types = { TYPE_WATER, TYPE_BUG}, - .catchRate = 100, - .expYield = 159, - .evYield_SpDefense = 2, - .itemRare = ITEM_MYSTIC_WATER, + .baseHP = 67, + .baseAttack = 82, + .baseDefense = 62, + .baseSpeed = 43, + .baseSpAttack = 46, + .baseSpDefense = 48, + .types = { TYPE_FIGHTING, TYPE_FIGHTING}, + .catchRate = 220, + .expYield = 70, + .evYield_Attack = 1, + .itemRare = ITEM_MENTAL_HERB, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_BUG}, - .abilities = {ABILITY_WATER_BUBBLE, ABILITY_NONE, ABILITY_WATER_ABSORB}, - .bodyColor = BODY_COLOR_GREEN, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_IRON_FIST, ABILITY_MOLD_BREAKER, ABILITY_SCRAPPY}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, + .speciesName = _("Pancham"), + .cryId = CRY_PANCHAM, + .natDexNum = NATIONAL_DEX_PANCHAM, + .categoryName = _("Playful"), + .height = 6, + .weight = 80, + .description = COMPOUND_STRING( + "There's no point to the leaf in its mouth,\n" + "aside from an effort to look cool. It's\n" + "mischievous, so it's not well suited to\n" + "inexperienced Trainers."), + .pokemonScale = 422, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Pancham, 32, 48), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Pancham, + .frontAnimId = ANIM_H_STRETCH, + BACK_PIC(Pancham, 48, 56), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, + PALETTE(Pancham), + ICON(Pancham, 1), + .footprint = gMonFootprint_Pancham, + LEARNSETS(Pancham), + .evolutions = EVOLUTION({EVO_LEVEL_DARK_TYPE_MON_IN_PARTY, 32, SPECIES_PANGORO}), }, - [SPECIES_FOMANTIS] = + [SPECIES_PANGORO] = { - .baseHP = 40, - .baseAttack = 55, - .baseDefense = 35, - .baseSpeed = 35, - .baseSpAttack = 50, - .baseSpDefense = 35, - .types = { TYPE_GRASS, TYPE_GRASS}, - .catchRate = 190, - .expYield = 50, - .evYield_Attack = 1, - .itemRare = ITEM_MIRACLE_SEED, + .baseHP = 95, + .baseAttack = 124, + .baseDefense = 78, + .baseSpeed = 58, + .baseSpAttack = 69, + .baseSpDefense = 71, + .types = { TYPE_FIGHTING, TYPE_DARK}, + .catchRate = 65, + .expYield = 173, + .evYield_Attack = 2, + .itemRare = ITEM_MENTAL_HERB, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_LEAF_GUARD, ABILITY_NONE, ABILITY_CONTRARY}, - .bodyColor = BODY_COLOR_PINK, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_IRON_FIST, ABILITY_MOLD_BREAKER, ABILITY_SCRAPPY}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, + .speciesName = _("Pangoro"), + .cryId = CRY_PANGORO, + .natDexNum = NATIONAL_DEX_PANGORO, + .categoryName = _("Daunting"), + .height = 21, + .weight = 1360, + .description = COMPOUND_STRING( + "It boasts superb physical strength.\n" + "Those who wish to become Pangoro's\n" + "Trainer have no choice but to converse\n" + "with their fists."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 365, + .trainerOffset = 7, + FRONT_PIC(Pangoro, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Pangoro, + .frontAnimId = ANIM_BACK_AND_LUNGE, + BACK_PIC(Pangoro, 64, 56), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(Pangoro), + ICON(Pangoro, 1), + .footprint = gMonFootprint_Pangoro, + LEARNSETS(Pangoro), + }, +#endif //P_FAMILY_PANCHAM + +#if P_FAMILY_FURFROU +#define FURFROU_MISC_INFO \ + .baseHP = 75, \ + .baseAttack = 80, \ + .baseDefense = 60, \ + .baseSpeed = 102, \ + .baseSpAttack = 65, \ + .baseSpDefense = 90, \ + .types = { TYPE_NORMAL, TYPE_NORMAL}, \ + .catchRate = 160, \ + .expYield = 165, \ + .evYield_Speed = 1, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, \ + .abilities = {ABILITY_FUR_COAT, ABILITY_NONE}, \ + .bodyColor = BODY_COLOR_WHITE, \ + .speciesName = _("Furfrou"), \ + .cryId = CRY_FURFROU, \ + .natDexNum = NATIONAL_DEX_FURFROU, \ + .categoryName = _("Poodle"), \ + .height = 12, \ + .weight = 280, \ + .description = gFurfrouPokedexText, \ + .pokemonScale = 282, \ + .pokemonOffset = 4, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .frontAnimFrames = sAnims_Furfrou, \ + .frontAnimId = ANIM_H_SLIDE, \ + .backAnimId = BACK_ANIM_V_STRETCH, \ + .footprint = gMonFootprint_Furfrou, \ + LEARNSETS(Furfrou), \ + .formSpeciesIdTable = sFurfrouFormSpeciesIdTable + + [SPECIES_FURFROU_NATURAL] = + { + FURFROU_MISC_INFO, + .noFlip = FALSE, + FRONT_PIC(FurfrouNatural, 48, 64), + .frontPicYOffset = 3, + BACK_PIC(FurfrouNatural, 56, 64), + .backPicYOffset = 0, + PALETTE(FurfrouNatural), + ICON(FurfrouNatural, 0), + }, + [SPECIES_FURFROU_HEART_TRIM] = + { + FURFROU_MISC_INFO, + .noFlip = FALSE, + FRONT_PIC(FurfrouHeartTrim, 56, 64), + .frontPicYOffset = 2, + BACK_PIC(FurfrouHeartTrim, 56, 64), + .backPicYOffset = 1, + PALETTE(FurfrouHeartTrim), + ICON(FurfrouHeartTrim, 0), + }, + [SPECIES_FURFROU_STAR_TRIM] = + { + FURFROU_MISC_INFO, + .noFlip = FALSE, + FRONT_PIC(FurfrouStarTrim, 56, 64), + .frontPicYOffset = 2, + BACK_PIC(FurfrouStarTrim, 64, 64), + .backPicYOffset = 1, + PALETTE(FurfrouStarTrim), + ICON(FurfrouStarTrim, 0), + }, + [SPECIES_FURFROU_DIAMOND_TRIM] = + { + FURFROU_MISC_INFO, + .noFlip = FALSE, + FRONT_PIC(FurfrouDiamondTrim, 48, 64), + .frontPicYOffset = 2, + BACK_PIC(FurfrouDiamondTrim, 56, 64), + .backPicYOffset = 1, + PALETTE(FurfrouDiamondTrim), + ICON(FurfrouDiamondTrim, 0), + }, + [SPECIES_FURFROU_DEBUTANTE_TRIM] = + { + FURFROU_MISC_INFO, + .noFlip = TRUE, + FRONT_PIC(FurfrouDebutanteTrim, 48, 64), + .frontPicYOffset = 2, + BACK_PIC(FurfrouDebutanteTrim, 56, 64), + .backPicYOffset = 1, + PALETTE(FurfrouDebutanteTrim), + ICON(FurfrouDebutanteTrim, 2), }, - - [SPECIES_LURANTIS] = + [SPECIES_FURFROU_MATRON_TRIM] = { - .baseHP = 70, - .baseAttack = 105, - .baseDefense = 90, - .baseSpeed = 45, - .baseSpAttack = 80, - .baseSpDefense = 90, - .types = { TYPE_GRASS, TYPE_GRASS}, - .catchRate = 75, - .expYield = 168, - .evYield_Attack = 2, - .itemRare = ITEM_MIRACLE_SEED, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_LEAF_GUARD, ABILITY_NONE, ABILITY_CONTRARY}, - .bodyColor = BODY_COLOR_PINK, + FURFROU_MISC_INFO, .noFlip = FALSE, + FRONT_PIC(FurfrouMatronTrim, 48, 64), + .frontPicYOffset = 2, + BACK_PIC(FurfrouMatronTrim, 56, 64), + .backPicYOffset = 1, + PALETTE(FurfrouMatronTrim), + ICON(FurfrouMatronTrim, 2), }, - - [SPECIES_MORELULL] = + [SPECIES_FURFROU_DANDY_TRIM] = { - .baseHP = 40, - .baseAttack = 35, - .baseDefense = 55, - .baseSpeed = 15, - .baseSpAttack = 65, - .baseSpDefense = 75, - .types = { TYPE_GRASS, TYPE_FAIRY}, - .catchRate = 190, - .expYield = 57, - .evYield_SpDefense = 1, - .itemCommon = ITEM_TINY_MUSHROOM, - .itemRare = ITEM_BIG_MUSHROOM, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_ILLUMINATE, ABILITY_EFFECT_SPORE, ABILITY_RAIN_DISH}, - .bodyColor = BODY_COLOR_PURPLE, + FURFROU_MISC_INFO, .noFlip = FALSE, + FRONT_PIC(FurfrouDandyTrim, 48, 64), + .frontPicYOffset = 2, + BACK_PIC(FurfrouDandyTrim, 56, 64), + .backPicYOffset = 1, + PALETTE(FurfrouDandyTrim), + ICON(FurfrouDandyTrim, 1), }, - - [SPECIES_SHIINOTIC] = + [SPECIES_FURFROU_LA_REINE_TRIM] = { - .baseHP = 60, - .baseAttack = 45, - .baseDefense = 80, - .baseSpeed = 30, - .baseSpAttack = 90, - .baseSpDefense = 100, - .types = { TYPE_GRASS, TYPE_FAIRY}, - .catchRate = 75, - .expYield = 142, - .evYield_SpDefense = 2, - .itemCommon = ITEM_TINY_MUSHROOM, - .itemRare = ITEM_BIG_MUSHROOM, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_ILLUMINATE, ABILITY_EFFECT_SPORE, ABILITY_RAIN_DISH}, - .bodyColor = BODY_COLOR_PURPLE, + FURFROU_MISC_INFO, + .noFlip = FALSE, + FRONT_PIC(FurfrouLaReineTrim, 48, 64), + .frontPicYOffset = 2, + BACK_PIC(FurfrouLaReineTrim, 56, 64), + .backPicYOffset = 1, + PALETTE(FurfrouLaReineTrim), + ICON(FurfrouLaReineTrim, 0), + }, + [SPECIES_FURFROU_KABUKI_TRIM] = + { + FURFROU_MISC_INFO, + .noFlip = FALSE, + FRONT_PIC(FurfrouKabukiTrim, 56, 64), + .frontPicYOffset = 2, + BACK_PIC(FurfrouKabukiTrim, 56, 64), + .backPicYOffset = 1, + PALETTE(FurfrouKabukiTrim), + ICON(FurfrouKabukiTrim, 0), + }, + [SPECIES_FURFROU_PHARAOH_TRIM] = + { + FURFROU_MISC_INFO, .noFlip = FALSE, + FRONT_PIC(FurfrouPharaohTrim, 48, 64), + .frontPicYOffset = 2, + BACK_PIC(FurfrouPharaohTrim, 56, 64), + .backPicYOffset = 1, + PALETTE(FurfrouPharaohTrim), + ICON(FurfrouPharaohTrim, 0), }, +#endif //P_FAMILY_FURFROU - [SPECIES_SALANDIT] = +#if P_FAMILY_ESPURR + [SPECIES_ESPURR] = { - .baseHP = 48, - .baseAttack = 44, - .baseDefense = 40, - .baseSpeed = 77, - .baseSpAttack = 71, - .baseSpDefense = 40, - .types = { TYPE_POISON, TYPE_FIRE}, - .catchRate = 120, - .expYield = 64, + .baseHP = 62, + .baseAttack = 48, + .baseDefense = 54, + .baseSpeed = 68, + .baseSpAttack = 63, + .baseSpDefense = 60, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, + .catchRate = 190, + .expYield = 71, .evYield_Speed = 1, - .itemRare = ITEM_SMOKE_BALL, - .genderRatio = PERCENT_FEMALE(12.5), + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_CORROSION, ABILITY_NONE, ABILITY_OBLIVIOUS}, - .bodyColor = BODY_COLOR_BLACK, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_KEEN_EYE, ABILITY_INFILTRATOR, ABILITY_OWN_TEMPO}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, + .speciesName = _("Espurr"), + .cryId = CRY_ESPURR, + .natDexNum = NATIONAL_DEX_ESPURR, + .categoryName = _("Restraint"), + .height = 3, + .weight = 35, + .description = COMPOUND_STRING( + "It has enough psychic energy to blast\n" + "everything within 300 feet of itself.\n" + "The organ that emits its intense psychic\n" + "power is sheltered by its ears."), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Espurr, 32, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Espurr, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Espurr, 56, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Espurr), + ICON(Espurr, 2), + .footprint = gMonFootprint_Espurr, + LEARNSETS(Espurr), + .evolutions = EVOLUTION({EVO_LEVEL_MALE, 25, SPECIES_MEOWSTIC_MALE}, + {EVO_LEVEL_FEMALE, 25, SPECIES_MEOWSTIC_FEMALE}), + }, + +#define MEOWSTIC_MISC_INFO \ + .baseHP = 74, \ + .baseAttack = 48, \ + .baseDefense = 76, \ + .baseSpeed = 104, \ + .baseSpAttack = 83, \ + .baseSpDefense = 81, \ + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, \ + .catchRate = 75, \ + .expYield = 163, \ + .evYield_Speed = 2, \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, \ + .noFlip = FALSE, \ + .speciesName = _("Meowstic"), \ + .cryId = CRY_MEOWSTIC, \ + .natDexNum = NATIONAL_DEX_MEOWSTIC, \ + .categoryName = _("Constraint"), \ + .height = 6, \ + .weight = 85, \ + .pokemonScale = 422, \ + .pokemonOffset = 12, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .frontAnimFrames = sAnims_Meowstic, \ + .frontAnimId = ANIM_GROW_VIBRATE, \ + .backPicYOffset = 9, \ + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, \ + .footprint = gMonFootprint_Meowstic, \ + .formSpeciesIdTable = sMeowsticFormSpeciesIdTable + + [SPECIES_MEOWSTIC_MALE] = + { + MEOWSTIC_MISC_INFO, + .genderRatio = MON_MALE, + .abilities = {ABILITY_KEEN_EYE, ABILITY_INFILTRATOR, ABILITY_PRANKSTER}, + .bodyColor = BODY_COLOR_BLUE, + .description = COMPOUND_STRING( + "The eyeball patterns on the interior of\n" + "its ears emit psychic energy. It keeps the\n" + "patterns tightly covered because that\n" + "power is too immense."), + FRONT_PIC(MeowsticMale, 48, 64), + .frontPicYOffset = 3, + BACK_PIC(MeowsticMale, 64, 64), + PALETTE(MeowsticMale), + ICON(MeowsticMale, 0), + LEARNSETS(MeowsticMale), }, - [SPECIES_SALAZZLE] = + [SPECIES_MEOWSTIC_FEMALE] = { - .baseHP = 68, - .baseAttack = 64, - .baseDefense = 60, - .baseSpeed = 117, - .baseSpAttack = 111, - .baseSpDefense = 60, - .types = { TYPE_POISON, TYPE_FIRE}, - .catchRate = 45, - .expYield = 168, - .evYield_Speed = 2, - .itemRare = ITEM_SMOKE_BALL, + MEOWSTIC_MISC_INFO, .genderRatio = MON_FEMALE, + .abilities = {ABILITY_KEEN_EYE, ABILITY_INFILTRATOR, ABILITY_COMPETITIVE}, + .bodyColor = BODY_COLOR_WHITE, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(MeowsticFemale, 56, 64), + .frontPicYOffset = 2, + BACK_PIC(MeowsticFemale, 48, 64), + PALETTE(MeowsticFemale), + ICON(MeowsticFemale, 0), + LEARNSETS(MeowsticFemale), + }, +#endif //P_FAMILY_ESPURR + +#if P_FAMILY_HONEDGE + [SPECIES_HONEDGE] = + { + .baseHP = 45, + .baseAttack = 80, + .baseDefense = 100, + .baseSpeed = 28, + .baseSpAttack = 35, + .baseSpDefense = 37, + .types = { TYPE_STEEL, TYPE_GHOST}, + .catchRate = 180, + .expYield = 65, + .evYield_Defense = 1, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_CORROSION, ABILITY_NONE, ABILITY_OBLIVIOUS}, - .bodyColor = BODY_COLOR_BLACK, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_NO_GUARD, ABILITY_NONE}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .speciesName = _("Honedge"), + .cryId = CRY_HONEDGE, + .natDexNum = NATIONAL_DEX_HONEDGE, + .categoryName = _("Sword"), + .height = 8, + .weight = 20, + .description = COMPOUND_STRING( + "If anyone dares to grab its hilt, it\n" + "wraps a blue cloth around that person's\n" + "arm and drains that person's life\n" + "energy completely."), + .pokemonScale = 366, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Honedge, 64, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Honedge, + .frontAnimId = ANIM_SWING_CONVEX, + .enemyMonElevation = 4, + BACK_PIC(Honedge, 48, 56), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Honedge), + ICON(Honedge, 2), + .footprint = gMonFootprint_Honedge, + LEARNSETS(Honedge), + .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_DOUBLADE}), }, - [SPECIES_STUFFUL] = + [SPECIES_DOUBLADE] = { - .baseHP = 70, - .baseAttack = 75, - .baseDefense = 50, - .baseSpeed = 50, + .baseHP = 59, + .baseAttack = 110, + .baseDefense = 150, + .baseSpeed = 35, .baseSpAttack = 45, - .baseSpDefense = 50, - .types = { TYPE_NORMAL, TYPE_FIGHTING}, - .catchRate = 140, - .expYield = 68, - .evYield_Attack = 1, + .baseSpDefense = 49, + .types = { TYPE_STEEL, TYPE_GHOST}, + .catchRate = 90, + .expYield = 157, + .evYield_Defense = 2, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_FLUFFY, ABILITY_KLUTZ, ABILITY_CUTE_CHARM}, - .bodyColor = BODY_COLOR_PINK, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_NO_GUARD, ABILITY_NONE}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .speciesName = _("Doublade"), + .cryId = CRY_DOUBLADE, + .natDexNum = NATIONAL_DEX_DOUBLADE, + .categoryName = _("Sword"), + .height = 8, + .weight = 45, + .description = COMPOUND_STRING( + "When Honedge evolves, it divides into\n" + "two swords. The complex attack patterns\n" + "of its two swords are unstoppable, even\n" + "against those skilled at swordplay."), + .pokemonScale = 366, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Doublade, 64, 64), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Doublade, + .frontAnimId = ANIM_GROW_VIBRATE, + .enemyMonElevation = 5, + BACK_PIC(Doublade, 64, 64), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_H_SHAKE, + PALETTE(Doublade), + ICON(Doublade, 2), + .footprint = gMonFootprint_Doublade, + LEARNSETS(Doublade), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_DUSK_STONE, SPECIES_AEGISLASH_SHIELD}), + }, + +#define AEGISLASH_MISC_INFO \ + .types = { TYPE_STEEL, TYPE_GHOST}, \ + .catchRate = 45, \ + .expYield = 234, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, \ + .abilities = {ABILITY_STANCE_CHANGE, ABILITY_NONE}, \ + .bodyColor = BODY_COLOR_BROWN, \ + .noFlip = FALSE, \ + .speciesName = _("Aegislash"), \ + .cryId = CRY_AEGISLASH, \ + .natDexNum = NATIONAL_DEX_AEGISLASH, \ + .categoryName = _("Royal Sword"), \ + .height = 17, \ + .weight = 530, \ + .pokemonScale = 259, \ + .pokemonOffset = 0, \ + .trainerScale = 290, \ + .trainerOffset = 1, \ + .footprint = gMonFootprint_Aegislash, \ + LEARNSETS(Aegislash), \ + .formSpeciesIdTable = sAegislashFormSpeciesIdTable, \ + .formChangeTable = sAegislashFormChangeTable + +#define AEGISLASH_MAIN_STAT (P_UPDATED_STATS >= GEN_8 ? 140 : 150) + + [SPECIES_AEGISLASH_SHIELD] = + { + AEGISLASH_MISC_INFO, + .baseHP = 60, + .baseAttack = 50, + .baseDefense = AEGISLASH_MAIN_STAT, + .baseSpeed = 60, + .baseSpAttack = 50, + .baseSpDefense = AEGISLASH_MAIN_STAT, + .evYield_Defense = 2, + .evYield_SpDefense = 1, + .description = COMPOUND_STRING( + "Generations of kings were attended to\n" + "by these Pokémon, which used their\n" + "spectral power to manipulate and control\n" + "people and Pokémon."), + FRONT_PIC(AegislashShield, 56, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_AegislashShield, + .frontAnimId = ANIM_H_VIBRATE, + .enemyMonElevation = 3, + BACK_PIC(AegislashShield, 64, 64), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_H_VIBRATE, + PALETTE(AegislashShield), + ICON(AegislashShield, 2), }, - [SPECIES_BEWEAR] = + [SPECIES_AEGISLASH_BLADE] = { - .baseHP = 120, - .baseAttack = 125, - .baseDefense = 80, + AEGISLASH_MISC_INFO, + .baseHP = 60, + .baseAttack = AEGISLASH_MAIN_STAT, + .baseDefense = 50, .baseSpeed = 60, - .baseSpAttack = 55, - .baseSpDefense = 60, - .types = { TYPE_NORMAL, TYPE_FIGHTING}, - .catchRate = 70, - .expYield = 175, + .baseSpAttack = AEGISLASH_MAIN_STAT, + .baseSpDefense = 50, .evYield_Attack = 2, + .evYield_SpAttack = 1, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(AegislashBlade, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_AegislashBlade, + .frontAnimId = ANIM_CIRCLE_C_CLOCKWISE_SLOW, + .enemyMonElevation = 3, + BACK_PIC(AegislashBlade, 64, 64), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(AegislashBlade), + ICON(AegislashBlade, 2), + }, +#endif //P_FAMILY_HONEDGE + +#if P_FAMILY_SPRITZEE + [SPECIES_SPRITZEE] = + { + .baseHP = 78, + .baseAttack = 52, + .baseDefense = 60, + .baseSpeed = 23, + .baseSpAttack = 63, + .baseSpDefense = 65, + .types = { TYPE_FAIRY, TYPE_FAIRY}, + .catchRate = 200, + .expYield = 68, + .evYield_HP = 1, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_FLUFFY, ABILITY_KLUTZ, ABILITY_UNNERVE}, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, + .abilities = {ABILITY_HEALER, ABILITY_NONE, ABILITY_AROMA_VEIL}, .bodyColor = BODY_COLOR_PINK, .noFlip = FALSE, + .speciesName = _("Spritzee"), + .cryId = CRY_SPRITZEE, + .natDexNum = NATIONAL_DEX_SPRITZEE, + .categoryName = _("Perfume"), + .height = 2, + .weight = 5, + .description = COMPOUND_STRING( + "In the past, rather than using perfume,\n" + "royal ladies carried a Spritzee that would\n" + "waft a fragrance they liked. Its fragrance\n" + "changes depending on what it has eaten."), + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Spritzee, 48, 48), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Spritzee, + .frontAnimId = ANIM_V_SLIDE_WOBBLE, + .enemyMonElevation = 14, + BACK_PIC(Spritzee, 56, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(Spritzee), + ICON(Spritzee, 0), + .footprint = gMonFootprint_Spritzee, + LEARNSETS(Spritzee), + .evolutions = EVOLUTION({EVO_TRADE_ITEM, ITEM_SACHET, SPECIES_AROMATISSE}, + {EVO_ITEM, ITEM_SACHET, SPECIES_AROMATISSE}), }, - [SPECIES_BOUNSWEET] = + [SPECIES_AROMATISSE] = { - .baseHP = 42, - .baseAttack = 30, - .baseDefense = 38, - .baseSpeed = 32, - .baseSpAttack = 30, - .baseSpDefense = 38, - .types = { TYPE_GRASS, TYPE_GRASS}, - .catchRate = 235, - .expYield = 42, - .evYield_HP = 1, - .itemRare = ITEM_GRASSY_SEED, - .genderRatio = MON_FEMALE, + .baseHP = 101, + .baseAttack = 72, + .baseDefense = 72, + .baseSpeed = 29, + .baseSpAttack = 99, + .baseSpDefense = 89, + .types = { TYPE_FAIRY, TYPE_FAIRY}, + .catchRate = 140, + .expYield = 162, + .evYield_HP = 2, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_LEAF_GUARD, ABILITY_OBLIVIOUS, ABILITY_SWEET_VEIL}, - .bodyColor = BODY_COLOR_PURPLE, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, + .abilities = {ABILITY_HEALER, ABILITY_NONE, ABILITY_AROMA_VEIL}, + .bodyColor = BODY_COLOR_PINK, .noFlip = FALSE, - }, - - [SPECIES_STEENEE] = + .speciesName = _("Aromatisse"), + .cryId = CRY_AROMATISSE, + .natDexNum = NATIONAL_DEX_AROMATISSE, + .categoryName = _("Fragrance"), + .height = 8, + .weight = 155, + .description = COMPOUND_STRING( + "Its scent is so overpowering that,\n" + "unless a Trainer happens to really enjoy\n" + "the smell, he or she will have a hard time\n" + "walking alongside it."), + .pokemonScale = 366, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Aromatisse, 48, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Aromatisse, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + BACK_PIC(Aromatisse, 64, 64), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Aromatisse), + ICON(Aromatisse, 0), + .footprint = gMonFootprint_Aromatisse, + LEARNSETS(Aromatisse), + }, +#endif //P_FAMILY_SPRITZEE + +#if P_FAMILY_SWIRLIX + [SPECIES_SWIRLIX] = { - .baseHP = 52, - .baseAttack = 40, - .baseDefense = 48, - .baseSpeed = 62, - .baseSpAttack = 40, - .baseSpDefense = 48, - .types = { TYPE_GRASS, TYPE_GRASS}, - .catchRate = 120, - .expYield = 102, - .evYield_Speed = 2, - .itemRare = ITEM_GRASSY_SEED, - .genderRatio = MON_FEMALE, + .baseHP = 62, + .baseAttack = 48, + .baseDefense = 66, + .baseSpeed = 49, + .baseSpAttack = 59, + .baseSpDefense = 57, + .types = { TYPE_FAIRY, TYPE_FAIRY}, + .catchRate = 200, + .expYield = 68, + .evYield_Defense = 1, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_LEAF_GUARD, ABILITY_OBLIVIOUS, ABILITY_SWEET_VEIL}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = TRUE, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, + .abilities = {ABILITY_SWEET_VEIL, ABILITY_NONE, ABILITY_UNBURDEN}, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = FALSE, + .speciesName = _("Swirlix"), + .cryId = CRY_SWIRLIX, + .natDexNum = NATIONAL_DEX_SWIRLIX, + .categoryName = _("Cotton Candy"), + .height = 4, + .weight = 35, + .description = COMPOUND_STRING( + "Because it eats nothing but sweets, its\n" + "fur is as sticky sweet as cotton candy.\n" + "To entangle its opponents in battle, it\n" + "extrudes sticky white threads."), + .pokemonScale = 491, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Swirlix, 40, 40), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Swirlix, + .frontAnimId = ANIM_H_JUMPS_V_STRETCH, + BACK_PIC(Swirlix, 56, 40), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_H_SPRING, + PALETTE(Swirlix), + ICON(Swirlix, 1), + .footprint = gMonFootprint_Swirlix, + LEARNSETS(Swirlix), + .evolutions = EVOLUTION({EVO_TRADE_ITEM, ITEM_WHIPPED_DREAM, SPECIES_SLURPUFF}, + {EVO_ITEM, ITEM_WHIPPED_DREAM, SPECIES_SLURPUFF}), }, - [SPECIES_TSAREENA] = + [SPECIES_SLURPUFF] = { - .baseHP = 72, - .baseAttack = 120, - .baseDefense = 98, + .baseHP = 82, + .baseAttack = 80, + .baseDefense = 86, .baseSpeed = 72, - .baseSpAttack = 50, - .baseSpDefense = 98, - .types = { TYPE_GRASS, TYPE_GRASS}, - .catchRate = 45, - .expYield = 230, - .evYield_Attack = 3, - .itemCommon = ITEM_GRASSY_SEED, - .genderRatio = MON_FEMALE, - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_LEAF_GUARD, ABILITY_QUEENLY_MAJESTY, ABILITY_SWEET_VEIL}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = TRUE, - }, - - [SPECIES_COMFEY] = - { - .baseHP = 51, - .baseAttack = 52, - .baseDefense = 90, - .baseSpeed = 100, - .baseSpAttack = 82, - .baseSpDefense = 110, + .baseSpAttack = 85, + .baseSpDefense = 75, .types = { TYPE_FAIRY, TYPE_FAIRY}, - .catchRate = 60, - .expYield = 170, - .evYield_SpDefense = 2, - .itemRare = ITEM_MISTY_SEED, - .genderRatio = PERCENT_FEMALE(75), + .catchRate = 140, + .expYield = 168, + .evYield_Defense = 2, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_FLOWER_VEIL, ABILITY_TRIAGE, ABILITY_NATURAL_CURE}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = TRUE, - }, - - [SPECIES_ORANGURU] = + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, + .abilities = {ABILITY_SWEET_VEIL, ABILITY_NONE, ABILITY_UNBURDEN}, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = FALSE, + .speciesName = _("Slurpuff"), + .cryId = CRY_SLURPUFF, + .natDexNum = NATIONAL_DEX_SLURPUFF, + .categoryName = _("Meringue"), + .height = 8, + .weight = 50, + .description = COMPOUND_STRING( + "Slurpuff can distinguish even the\n" + "faintest of scents. It puts its sensitive\n" + "sense of smell to use by helping pastry\n" + "chefs in their work."), + .pokemonScale = 366, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Slurpuff, 48, 56), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Slurpuff, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Slurpuff, 64, 64), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, + PALETTE(Slurpuff), + ICON(Slurpuff, 1), + .footprint = gMonFootprint_Slurpuff, + LEARNSETS(Slurpuff), + }, +#endif //P_FAMILY_SWIRLIX + +#if P_FAMILY_INKAY + [SPECIES_INKAY] = { - .baseHP = 90, - .baseAttack = 60, - .baseDefense = 80, - .baseSpeed = 60, - .baseSpAttack = 90, - .baseSpDefense = 110, - .types = { TYPE_NORMAL, TYPE_PSYCHIC}, - .catchRate = 45, - .expYield = 172, - .evYield_SpDefense = 2, + .baseHP = 53, + .baseAttack = 54, + .baseDefense = 53, + .baseSpeed = 45, + .baseSpAttack = 37, + .baseSpDefense = 46, + .types = { TYPE_DARK, TYPE_PSYCHIC}, + .catchRate = 190, + .expYield = 58, + .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_INNER_FOCUS, ABILITY_TELEPATHY, ABILITY_SYMBIOSIS}, - .bodyColor = BODY_COLOR_WHITE, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_2}, + .abilities = {ABILITY_CONTRARY, ABILITY_SUCTION_CUPS, ABILITY_INFILTRATOR}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Inkay"), + .cryId = CRY_INKAY, + .natDexNum = NATIONAL_DEX_INKAY, + .categoryName = _("Revolving"), + .height = 4, + .weight = 35, + .description = COMPOUND_STRING( + "It flashes the light-emitting spots on its\n" + "body, which drains its opponent's will\n" + "to fight. It takes the opportunity to\n" + "scuttle away and hide."), + .pokemonScale = 491, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Inkay, 48, 48), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Inkay, + .frontAnimId = ANIM_V_SLIDE_WOBBLE, + .enemyMonElevation = 14, + BACK_PIC(Inkay, 56, 64), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_SHRINK_GROW, + PALETTE(Inkay), + ICON(Inkay, 0), + .footprint = gMonFootprint_Inkay, + LEARNSETS(Inkay), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_MALAMAR}), }, - [SPECIES_PASSIMIAN] = + [SPECIES_MALAMAR] = { - .baseHP = 100, - .baseAttack = 120, - .baseDefense = 90, - .baseSpeed = 80, - .baseSpAttack = 40, - .baseSpDefense = 60, - .types = { TYPE_FIGHTING, TYPE_FIGHTING}, - .catchRate = 45, - .expYield = 172, + .baseHP = 86, + .baseAttack = 92, + .baseDefense = 88, + .baseSpeed = 73, + .baseSpAttack = 68, + .baseSpDefense = 75, + .types = { TYPE_DARK, TYPE_PSYCHIC}, + .catchRate = 80, + .expYield = 169, .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_RECEIVER, ABILITY_NONE, ABILITY_DEFIANT}, - .bodyColor = BODY_COLOR_WHITE, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_2}, + .abilities = {ABILITY_CONTRARY, ABILITY_SUCTION_CUPS, ABILITY_INFILTRATOR}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - }, - - [SPECIES_WIMPOD] = + .speciesName = _("Malamar"), + .cryId = CRY_MALAMAR, + .natDexNum = NATIONAL_DEX_MALAMAR, + .categoryName = _("Overturning"), + .height = 15, + .weight = 470, + .description = COMPOUND_STRING( + "It lures prey close with hypnotic motions,\n" + "then wraps its tentacles around it before\n" + "finishing it off with digestive fluids. It\n" + "forces others to do whatever it wants."), + .pokemonScale = 268, + .pokemonOffset = 2, + .trainerScale = 271, + .trainerOffset = 0, + FRONT_PIC(Malamar, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Malamar, + .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, + BACK_PIC(Malamar, 64, 56), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_V_STRETCH, + PALETTE(Malamar), + ICON(Malamar, 2), + .footprint = gMonFootprint_Malamar, + LEARNSETS(Malamar), + }, +#endif //P_FAMILY_INKAY + +#if P_FAMILY_BINACLE + [SPECIES_BINACLE] = { - .baseHP = 25, - .baseAttack = 35, - .baseDefense = 40, - .baseSpeed = 80, - .baseSpAttack = 20, - .baseSpDefense = 30, - .types = { TYPE_BUG, TYPE_WATER}, - .catchRate = 90, - .expYield = 46, - .evYield_Speed = 1, + .baseHP = 42, + .baseAttack = 52, + .baseDefense = 67, + .baseSpeed = 50, + .baseSpAttack = 39, + .baseSpDefense = 56, + .types = { TYPE_ROCK, TYPE_WATER}, + .catchRate = 120, + .expYield = 61, + .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_WATER_3}, - .abilities = {ABILITY_WIMP_OUT, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GRAY, + .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, + .abilities = {ABILITY_TOUGH_CLAWS, ABILITY_SNIPER, ABILITY_PICKPOCKET}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .speciesName = _("Binacle"), + .cryId = CRY_BINACLE, + .natDexNum = NATIONAL_DEX_BINACLE, + .categoryName = _("Two-Handed"), + .height = 5, + .weight = 310, + .description = COMPOUND_STRING( + "They stretch and then contract, yanking\n" + "their rocks along with them in bold hops.\n" + "They eat seaweed that washes up on\n" + "the shoreline."), + .pokemonScale = 432, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Binacle, 48, 56), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Binacle, + .frontAnimId = ANIM_H_SLIDE, + BACK_PIC(Binacle, 64, 64), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Binacle), + ICON(Binacle, 2), + .footprint = gMonFootprint_Binacle, + LEARNSETS(Binacle), + .evolutions = EVOLUTION({EVO_LEVEL, 39, SPECIES_BARBARACLE}), }, - [SPECIES_GOLISOPOD] = + [SPECIES_BARBARACLE] = { - .baseHP = 75, - .baseAttack = 125, - .baseDefense = 140, - .baseSpeed = 40, - .baseSpAttack = 60, - .baseSpDefense = 90, - .types = { TYPE_BUG, TYPE_WATER}, + .baseHP = 72, + .baseAttack = 105, + .baseDefense = 115, + .baseSpeed = 68, + .baseSpAttack = 54, + .baseSpDefense = 86, + .types = { TYPE_ROCK, TYPE_WATER}, .catchRate = 45, - .expYield = 186, - .evYield_Defense = 2, + .expYield = 175, + .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_WATER_3}, - .abilities = {ABILITY_EMERGENCY_EXIT, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, - - [SPECIES_SANDYGAST] = + .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, + .abilities = {ABILITY_TOUGH_CLAWS, ABILITY_SNIPER, ABILITY_PICKPOCKET}, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = TRUE, + .speciesName = _("Barbaracle"), + .cryId = CRY_BARBARACLE, + .natDexNum = NATIONAL_DEX_BARBARACLE, + .categoryName = _("Collective"), + .height = 13, + .weight = 960, + .description = COMPOUND_STRING( + "Barbaracle's legs and hands have minds\n" + "of their own, and they will move\n" + "independently. But they usually follow\n" + "the head's orders."), + .pokemonScale = 272, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Barbaracle, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Barbaracle, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Barbaracle, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, + PALETTE(Barbaracle), + ICON(Barbaracle, 2), + .footprint = gMonFootprint_Barbaracle, + LEARNSETS(Barbaracle), + }, +#endif //P_FAMILY_BINACLE + +#if P_FAMILY_SKRELP + [SPECIES_SKRELP] = { - .baseHP = 55, - .baseAttack = 55, - .baseDefense = 80, - .baseSpeed = 15, - .baseSpAttack = 70, - .baseSpDefense = 45, - .types = { TYPE_GHOST, TYPE_GROUND}, - .catchRate = 140, + .baseHP = 50, + .baseAttack = 60, + .baseDefense = 60, + .baseSpeed = 30, + .baseSpAttack = 60, + .baseSpDefense = 60, + .types = { TYPE_POISON, TYPE_WATER}, + .catchRate = 225, .expYield = 64, - .evYield_Defense = 1, - .itemRare = ITEM_SPELL_TAG, + .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_WATER_COMPACTION, ABILITY_NONE, ABILITY_SAND_VEIL}, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_POISON_POINT, ABILITY_POISON_TOUCH, ABILITY_ADAPTABILITY}, .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .speciesName = _("Skrelp"), + .cryId = CRY_SKRELP, + .natDexNum = NATIONAL_DEX_SKRELP, + .categoryName = _("Mock Kelp"), + .height = 5, + .weight = 73, + .description = COMPOUND_STRING( + "Camouflaged as rotten kelp, it hides\n" + "from foes while storing up power for its\n" + "evolution. They spray liquid poison on\n" + "prey that approach unawares."), + .pokemonScale = 432, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Skrelp, 40, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Skrelp, + .frontAnimId = ANIM_V_SLIDE_WOBBLE_SMALL, + BACK_PIC(Skrelp, 64, 64), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_V_STRETCH, + PALETTE(Skrelp), + ICON(Skrelp, 2), + .footprint = gMonFootprint_Skrelp, + LEARNSETS(Skrelp), + .evolutions = EVOLUTION({EVO_LEVEL, 48, SPECIES_DRAGALGE}), }, - [SPECIES_PALOSSAND] = + [SPECIES_DRAGALGE] = { - .baseHP = 85, + .baseHP = 65, .baseAttack = 75, - .baseDefense = 110, - .baseSpeed = 35, - .baseSpAttack = 100, - .baseSpDefense = 75, - .types = { TYPE_GHOST, TYPE_GROUND}, - .catchRate = 60, - .expYield = 168, - .evYield_Defense = 2, - .itemRare = ITEM_SPELL_TAG, + .baseDefense = 90, + .baseSpeed = 44, + .baseSpAttack = 97, + .baseSpDefense = 123, + .types = { TYPE_POISON, TYPE_DRAGON}, + .catchRate = 55, + .expYield = 173, + .evYield_SpDefense = 2, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_WATER_COMPACTION, ABILITY_NONE, ABILITY_SAND_VEIL}, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_POISON_POINT, ABILITY_POISON_TOUCH, ABILITY_ADAPTABILITY}, .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - }, - - [SPECIES_PYUKUMUKU] = + .speciesName = _("Dragalge"), + .cryId = CRY_DRAGALGE, + .natDexNum = NATIONAL_DEX_DRAGALGE, + .categoryName = _("Mock Kelp"), + .height = 18, + .weight = 815, + .description = COMPOUND_STRING( + "Their poison is strong enough to eat\n" + "through the hull of a tanker. Tales are\n" + "told of ships that wander into seas where\n" + "Dragalge live, never to return."), + .pokemonScale = 267, + .pokemonOffset = 2, + .trainerScale = 286, + .trainerOffset = 1, + FRONT_PIC(Dragalge, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Dragalge, + .frontAnimId = ANIM_FRONT_FLIP, + BACK_PIC(Dragalge, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_H_STRETCH, + PALETTE(Dragalge), + ICON(Dragalge, 5), + .footprint = gMonFootprint_Dragalge, + LEARNSETS(Dragalge), + }, +#endif //P_FAMILY_SKRELP + +#if P_FAMILY_CLAUNCHER + [SPECIES_CLAUNCHER] = { - .baseHP = 55, - .baseAttack = 60, - .baseDefense = 130, - .baseSpeed = 5, - .baseSpAttack = 30, - .baseSpDefense = 130, + .baseHP = 50, + .baseAttack = 53, + .baseDefense = 62, + .baseSpeed = 44, + .baseSpAttack = 58, + .baseSpDefense = 63, .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 60, - .expYield = 144, - .evYield_SpDefense = 2, + .catchRate = 225, + .expYield = 66, + .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_INNARDS_OUT, ABILITY_NONE, ABILITY_UNAWARE}, - .bodyColor = BODY_COLOR_BLACK, - .noFlip = FALSE, - }, - - [SPECIES_TYPE_NULL] = - { - .baseHP = 95, - .baseAttack = 95, - .baseDefense = 95, - .baseSpeed = 59, - .baseSpAttack = 95, - .baseSpDefense = 95, - .types = { TYPE_NORMAL, TYPE_NORMAL}, - .catchRate = 3, - .expYield = 107, - .evYield_HP = 2, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_BATTLE_ARMOR, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3}, + .abilities = {ABILITY_MEGA_LAUNCHER, ABILITY_NONE}, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = TRUE, + .speciesName = _("Clauncher"), + .cryId = CRY_CLAUNCHER, + .natDexNum = NATIONAL_DEX_CLAUNCHER, + .categoryName = _("Water Gun"), + .height = 5, + .weight = 83, + .description = COMPOUND_STRING( + "Through controlled expulsions of internal\n" + "gas, it can expel water like a pistol shot.\n" + "At close distances, it can even shatter\n" + "large rocks."), + .pokemonScale = 432, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Clauncher, 56, 40), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Clauncher, + .frontAnimId = ANIM_TIP_MOVE_FORWARD, + BACK_PIC(Clauncher, 64, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Clauncher), + ICON(Clauncher, 0), + .footprint = gMonFootprint_Clauncher, + LEARNSETS(Clauncher), + .evolutions = EVOLUTION({EVO_LEVEL, 37, SPECIES_CLAWITZER}), }, - [SPECIES_SILVALLY_NORMAL] = SILVALLY_SPECIES_INFO(TYPE_NORMAL), - - [SPECIES_MINIOR_METEOR_RED] = MINIOR_METEOR_SPECIES_INFO, - - [SPECIES_KOMALA] = + [SPECIES_CLAWITZER] = { - .baseHP = 65, - .baseAttack = 115, - .baseDefense = 65, - .baseSpeed = 65, - .baseSpAttack = 75, - .baseSpDefense = 95, - .types = { TYPE_NORMAL, TYPE_NORMAL}, - .catchRate = 45, - .expYield = 168, - .evYield_Attack = 2, + .baseHP = 71, + .baseAttack = 73, + .baseDefense = 88, + .baseSpeed = 59, + .baseSpAttack = 120, + .baseSpDefense = 89, + .types = { TYPE_WATER, TYPE_WATER}, + .catchRate = 55, + .expYield = 100, + .evYield_SpAttack = 2, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_COMATOSE, ABILITY_NONE}, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3}, + .abilities = {ABILITY_MEGA_LAUNCHER, ABILITY_NONE}, .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - }, - - [SPECIES_TURTONATOR] = - { - .baseHP = 60, - .baseAttack = 78, - .baseDefense = 135, - .baseSpeed = 36, - .baseSpAttack = 91, - .baseSpDefense = 85, - .types = { TYPE_FIRE, TYPE_DRAGON}, - .catchRate = 70, - .expYield = 170, - .evYield_Defense = 2, - .itemRare = ITEM_CHARCOAL, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_SHELL_ARMOR, ABILITY_NONE}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, - - [SPECIES_TOGEDEMARU] = - { - .baseHP = 65, - .baseAttack = 98, - .baseDefense = 63, - .baseSpeed = 96, - .baseSpAttack = 40, - .baseSpDefense = 73, - .types = { TYPE_ELECTRIC, TYPE_STEEL}, - .catchRate = 180, - .expYield = 152, - .evYield_Attack = 2, - .itemRare = ITEM_ELECTRIC_SEED, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 10, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_IRON_BARBS, ABILITY_LIGHTNING_ROD, ABILITY_STURDY}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - }, - - [SPECIES_MIMIKYU_DISGUISED] = MIMIKYU_SPECIES_INFO, - - [SPECIES_BRUXISH] = + .noFlip = TRUE, + .speciesName = _("Clawitzer"), + .cryId = CRY_CLAWITZER, + .natDexNum = NATIONAL_DEX_CLAWITZER, + .categoryName = _("Howitzer"), + .height = 13, + .weight = 353, + .description = COMPOUND_STRING( + "By expelling water from the nozzle in the\n" + "back of its enormous claw, it can move\n" + "at a speed of 60 knots. They launch\n" + "cannonballs made of water."), + .pokemonScale = 272, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Clawitzer, 64, 64), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Clawitzer, + .frontAnimId = ANIM_CIRCLE_C_CLOCKWISE_SLOW, + BACK_PIC(Clawitzer, 64, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(Clawitzer), + ICON(Clawitzer, 0), + .footprint = gMonFootprint_Clawitzer, + LEARNSETS(Clawitzer), + }, +#endif //P_FAMILY_CLAUNCHER + +#if P_FAMILY_HELIOPTILE + [SPECIES_HELIOPTILE] = { - .baseHP = 68, - .baseAttack = 105, - .baseDefense = 70, - .baseSpeed = 92, - .baseSpAttack = 70, - .baseSpDefense = 70, - .types = { TYPE_WATER, TYPE_PSYCHIC}, - .catchRate = 80, - .expYield = 166, - .evYield_Attack = 2, - .itemRare = ITEM_RAZOR_FANG, + .baseHP = 44, + .baseAttack = 38, + .baseDefense = 33, + .baseSpeed = 70, + .baseSpAttack = 61, + .baseSpDefense = 43, + .types = { TYPE_ELECTRIC, TYPE_NORMAL}, + .catchRate = 190, + .expYield = 58, + .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, - .abilities = {ABILITY_DAZZLING, ABILITY_STRONG_JAW, ABILITY_WONDER_SKIN}, - .bodyColor = BODY_COLOR_PINK, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_DRY_SKIN, ABILITY_SAND_VEIL, ABILITY_SOLAR_POWER}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, + .speciesName = _("Helioptile"), + .cryId = CRY_HELIOPTILE, + .natDexNum = NATIONAL_DEX_HELIOPTILE, + .categoryName = _("Generator"), + .height = 5, + .weight = 60, + .description = COMPOUND_STRING( + "They make their home in deserts.\n" + "They can generate their own energy from\n" + "basking in the sun, so eating food is not\n" + "a requirement."), + .pokemonScale = 432, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Helioptile, 40, 40), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_Helioptile, + .frontAnimId = ANIM_GLOW_YELLOW, + BACK_PIC(Helioptile, 64, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Helioptile), + ICON(Helioptile, 2), + .footprint = gMonFootprint_Helioptile, + LEARNSETS(Helioptile), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_SUN_STONE, SPECIES_HELIOLISK}), }, - [SPECIES_DRAMPA] = + [SPECIES_HELIOLISK] = { - .baseHP = 78, - .baseAttack = 60, - .baseDefense = 85, - .baseSpeed = 36, - .baseSpAttack = 135, - .baseSpDefense = 91, - .types = { TYPE_NORMAL, TYPE_DRAGON}, - .catchRate = 70, - .expYield = 170, - .evYield_SpAttack = 2, - .itemRare = ITEM_PERSIM_BERRY, + .baseHP = 62, + .baseAttack = 55, + .baseDefense = 52, + .baseSpeed = 109, + .baseSpAttack = 109, + .baseSpDefense = 94, + .types = { TYPE_ELECTRIC, TYPE_NORMAL}, + .catchRate = 75, + .expYield = 168, + .evYield_Speed = 1, + .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_BERSERK, ABILITY_SAP_SIPPER, ABILITY_CLOUD_NINE}, - .bodyColor = BODY_COLOR_WHITE, + .abilities = {ABILITY_DRY_SKIN, ABILITY_SAND_VEIL, ABILITY_SOLAR_POWER}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, - }, - - [SPECIES_DHELMISE] = - { - .baseHP = 70, - .baseAttack = 131, - .baseDefense = 100, - .baseSpeed = 40, - .baseSpAttack = 86, - .baseSpDefense = 90, - .types = { TYPE_GHOST, TYPE_GRASS}, - .catchRate = 25, - .expYield = 181, - .evYield_Attack = 2, - .genderRatio = MON_GENDERLESS, - .eggCycles = 25, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_STEELWORKER, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = TRUE, - }, - - [SPECIES_JANGMO_O] = + .speciesName = _("Heliolisk"), + .cryId = CRY_HELIOLISK, + .natDexNum = NATIONAL_DEX_HELIOLISK, + .categoryName = _("Generator"), + .height = 10, + .weight = 210, + .description = COMPOUND_STRING( + "A single Heliolisk can generate sufficient\n" + "electricity to power a skyscraper. It can\n" + "stimulate its muscles with electricity,\n" + "boosting the strength in its legs."), + .pokemonScale = 305, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Heliolisk, 64, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Heliolisk, + .frontAnimId = ANIM_RAPID_H_HOPS, + BACK_PIC(Heliolisk, 56, 64), + .backPicYOffset = 2, + .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, + PALETTE(Heliolisk), + ICON(Heliolisk, 2), + .footprint = gMonFootprint_Heliolisk, + LEARNSETS(Heliolisk), + }, +#endif //P_FAMILY_HELIOPTILE + +#if P_FAMILY_TYRUNT + [SPECIES_TYRUNT] = { - .baseHP = 45, - .baseAttack = 55, - .baseDefense = 65, - .baseSpeed = 45, + .baseHP = 58, + .baseAttack = 89, + .baseDefense = 77, + .baseSpeed = 48, .baseSpAttack = 45, .baseSpDefense = 45, - .types = { TYPE_DRAGON, TYPE_DRAGON}, + .types = { TYPE_ROCK, TYPE_DRAGON}, .catchRate = 45, - .expYield = 60, - .evYield_Defense = 1, - .itemRare = ITEM_RAZOR_CLAW, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 40, + .expYield = 72, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_BULLETPROOF, ABILITY_SOUNDPROOF, ABILITY_OVERCOAT}, - .bodyColor = BODY_COLOR_GRAY, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_STRONG_JAW, ABILITY_NONE, ABILITY_STURDY}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .speciesName = _("Tyrunt"), + .cryId = CRY_TYRUNT, + .natDexNum = NATIONAL_DEX_TYRUNT, + .categoryName = _("Royal Heir"), + .height = 8, + .weight = 260, + .description = COMPOUND_STRING( + "Its immense jaws have enough destructive\n" + "force that it can chew up a car. If\n" + "something happens that it doesn't like,\n" + "it throws a tantrum and runs wild."), + .pokemonScale = 366, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Tyrunt, 48, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Tyrunt, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(Tyrunt, 64, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_H_SHAKE, + PALETTE(Tyrunt), + ICON(Tyrunt, 2), + .footprint = gMonFootprint_Tyrunt, + LEARNSETS(Tyrunt), + .evolutions = EVOLUTION({EVO_LEVEL_DAY, 39, SPECIES_TYRANTRUM}), }, - [SPECIES_HAKAMO_O] = + [SPECIES_TYRANTRUM] = { - .baseHP = 55, - .baseAttack = 75, - .baseDefense = 90, - .baseSpeed = 65, - .baseSpAttack = 65, - .baseSpDefense = 70, - .types = { TYPE_DRAGON, TYPE_FIGHTING}, + .baseHP = 82, + .baseAttack = 121, + .baseDefense = 119, + .baseSpeed = 71, + .baseSpAttack = 69, + .baseSpDefense = 59, + .types = { TYPE_ROCK, TYPE_DRAGON}, .catchRate = 45, - .expYield = 147, - .evYield_Defense = 2, - .itemRare = ITEM_RAZOR_CLAW, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 40, + .expYield = 182, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_BULLETPROOF, ABILITY_SOUNDPROOF, ABILITY_OVERCOAT}, - .bodyColor = BODY_COLOR_GRAY, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_STRONG_JAW, ABILITY_NONE, ABILITY_ROCK_HEAD}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, - }, - - [SPECIES_KOMMO_O] = + .speciesName = _("Tyrantrum"), + .cryId = CRY_TYRANTRUM, + .natDexNum = NATIONAL_DEX_TYRANTRUM, + .categoryName = _("Despot"), + .height = 25, + .weight = 2700, + .description = COMPOUND_STRING( + "Thanks to its gargantuan jaws, which could\n" + "shred thick metal plates as if they were\n" + "paper, it was invincible in the ancient\n" + "world it once inhabited."), + .pokemonScale = 257, + .pokemonOffset = 10, + .trainerScale = 423, + .trainerOffset = 8, + FRONT_PIC(Tyrantrum, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Tyrantrum, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(Tyrantrum, 64, 56), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, + PALETTE(Tyrantrum), + ICON(Tyrantrum, 0), + .footprint = gMonFootprint_Tyrantrum, + LEARNSETS(Tyrantrum), + }, +#endif //P_FAMILY_TYRUNT + +#if P_FAMILY_AMAURA + [SPECIES_AMAURA] = { - .baseHP = 75, - .baseAttack = 110, - .baseDefense = 125, - .baseSpeed = 85, - .baseSpAttack = 100, - .baseSpDefense = 105, - .types = { TYPE_DRAGON, TYPE_FIGHTING}, + .baseHP = 77, + .baseAttack = 59, + .baseDefense = 50, + .baseSpeed = 46, + .baseSpAttack = 67, + .baseSpDefense = 63, + .types = { TYPE_ROCK, TYPE_ICE}, .catchRate = 45, - .expYield = 270, - .evYield_Defense = 3, - .itemCommon = ITEM_RAZOR_CLAW, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 40, + .expYield = 72, + .evYield_HP = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_BULLETPROOF, ABILITY_SOUNDPROOF, ABILITY_OVERCOAT}, - .bodyColor = BODY_COLOR_GRAY, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, + .abilities = {ABILITY_REFRIGERATE, ABILITY_NONE, ABILITY_SNOW_WARNING}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Amaura"), + .cryId = CRY_AMAURA, + .natDexNum = NATIONAL_DEX_AMAURA, + .categoryName = _("Tundra"), + .height = 13, + .weight = 252, + .description = COMPOUND_STRING( + "This ancient Pokémon was restored from\n" + "part of its body that had been frozen in\n" + "ice for over 100 million years. It lived in a\n" + "cold land where there were no predators."), + .pokemonScale = 272, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Amaura, 32, 56), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Amaura, + .frontAnimId = ANIM_CONCAVE_ARC_SMALL_TWICE, + BACK_PIC(Amaura, 40, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Amaura), + ICON(Amaura, 0), + .footprint = gMonFootprint_Amaura, + LEARNSETS(Amaura), + .evolutions = EVOLUTION({EVO_LEVEL_NIGHT, 39, SPECIES_AURORUS}), }, - [SPECIES_TAPU_KOKO] = + [SPECIES_AURORUS] = { - .baseHP = 70, - .baseAttack = 115, - .baseDefense = 85, - .baseSpeed = 130, - .baseSpAttack = 95, - .baseSpDefense = 75, - .types = { TYPE_ELECTRIC, TYPE_FAIRY}, - .catchRate = 3, - .expYield = 257, - .evYield_Speed = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 15, + .baseHP = 123, + .baseAttack = 77, + .baseDefense = 72, + .baseSpeed = 58, + .baseSpAttack = 99, + .baseSpDefense = 92, + .types = { TYPE_ROCK, TYPE_ICE}, + .catchRate = 45, + .expYield = 104, + .evYield_HP = 2, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_ELECTRIC_SURGE, ABILITY_NONE, ABILITY_TELEPATHY}, - .bodyColor = BODY_COLOR_YELLOW, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, + .abilities = {ABILITY_REFRIGERATE, ABILITY_NONE, ABILITY_SNOW_WARNING}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_TAPU_LELE] = + .speciesName = _("Aurorus"), + .cryId = CRY_AURORUS, + .natDexNum = NATIONAL_DEX_AURORUS, + .categoryName = _("Tundra"), + .height = 27, + .weight = 2250, + .description = COMPOUND_STRING( + "Using the diamond-shaped crystals on its\n" + "body it can instantly create a wall of ice\n" + "to block an opponent's attack, or encase\n" + "them in ice."), + .pokemonScale = 275, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Aurorus, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Aurorus, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Aurorus, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(Aurorus), + ICON(Aurorus, 0), + .footprint = gMonFootprint_Aurorus, + LEARNSETS(Aurorus), + }, +#endif //P_FAMILY_AMAURA + +#if P_FAMILY_HAWLUCHA + [SPECIES_HAWLUCHA] = { - .baseHP = 70, - .baseAttack = 85, + .baseHP = 78, + .baseAttack = 92, .baseDefense = 75, - .baseSpeed = 95, - .baseSpAttack = 130, - .baseSpDefense = 115, - .types = { TYPE_PSYCHIC, TYPE_FAIRY}, - .catchRate = 3, - .expYield = 257, - .evYield_SpAttack = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_PSYCHIC_SURGE, ABILITY_NONE, ABILITY_TELEPATHY}, - .bodyColor = BODY_COLOR_PINK, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_TAPU_BULU] = - { - .baseHP = 70, - .baseAttack = 130, - .baseDefense = 115, - .baseSpeed = 75, - .baseSpAttack = 85, - .baseSpDefense = 95, - .types = { TYPE_GRASS, TYPE_FAIRY}, - .catchRate = 3, - .expYield = 257, - .evYield_Attack = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_GRASSY_SURGE, ABILITY_NONE, ABILITY_TELEPATHY}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_TAPU_FINI] = - { - .baseHP = 70, - .baseAttack = 75, - .baseDefense = 115, - .baseSpeed = 85, - .baseSpAttack = 95, - .baseSpDefense = 130, - .types = { TYPE_WATER, TYPE_FAIRY}, - .catchRate = 3, - .expYield = 257, - .evYield_SpDefense = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 15, + .baseSpeed = 118, + .baseSpAttack = 74, + .baseSpDefense = 63, + .types = { TYPE_FIGHTING, TYPE_FLYING}, + .catchRate = 100, + .expYield = 175, + .evYield_Attack = 2, + .itemRare = ITEM_KINGS_ROCK, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_MISTY_SURGE, ABILITY_NONE, ABILITY_TELEPATHY}, - .bodyColor = BODY_COLOR_PURPLE, + .growthRate = GROWTH_MEDIUM_FAST, + #if P_UPDATED_EGG_GROUPS >= GEN_8 + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_HUMAN_LIKE}, + #else + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, + #endif + .abilities = {ABILITY_LIMBER, ABILITY_UNBURDEN, ABILITY_MOLD_BREAKER}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_COSMOG] = + .speciesName = _("Hawlucha"), + .cryId = CRY_HAWLUCHA, + .natDexNum = NATIONAL_DEX_HAWLUCHA, + .categoryName = _("Wrestling"), + .height = 8, + .weight = 215, + .description = COMPOUND_STRING( + "With its wings, it controls its position in\n" + "the air. Its proficient fighting skills\n" + "enable it to keep up with big bruisers\n" + "like Machamp and Hariyama."), + .pokemonScale = 366, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Hawlucha, 64, 56), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Hawlucha, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + BACK_PIC(Hawlucha, 64, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_GROW_STUTTER, + PALETTE(Hawlucha), + ICON(Hawlucha, 0), + .footprint = gMonFootprint_Hawlucha, + LEARNSETS(Hawlucha), + }, +#endif //P_FAMILY_HAWLUCHA + +#if P_FAMILY_DEDENNE + [SPECIES_DEDENNE] = { - .baseHP = 43, - .baseAttack = 29, - .baseDefense = 31, - .baseSpeed = 37, - .baseSpAttack = 29, - .baseSpDefense = 31, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - .catchRate = 45, - .expYield = 40, - .evYield_HP = 1, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_UNAWARE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLUE, + .baseHP = 67, + .baseAttack = 58, + .baseDefense = 57, + .baseSpeed = 101, + .baseSpAttack = 81, + .baseSpDefense = 67, + .types = { TYPE_ELECTRIC, TYPE_FAIRY}, + .catchRate = 180, + .expYield = 151, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY}, + .abilities = {ABILITY_CHEEK_POUCH, ABILITY_PICKUP, ABILITY_PLUS}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_COSMOEM] = + .speciesName = _("Dedenne"), + .cryId = CRY_DEDENNE, + .natDexNum = NATIONAL_DEX_DEDENNE, + .categoryName = _("Antenna"), + .height = 2, + .weight = 22, + .description = COMPOUND_STRING( + "Its whiskers serve as antennas.\n" + "By sending and receiving electrical\n" + "waves, it can communicate with others\n" + "over vast distances."), + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Dedenne, 64, 40), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_Dedenne, + .frontAnimId = ANIM_GLOW_YELLOW, + BACK_PIC(Dedenne, 64, 48), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, + PALETTE(Dedenne), + ICON(Dedenne, 0), + .footprint = gMonFootprint_Dedenne, + LEARNSETS(Dedenne), + }, +#endif //P_FAMILY_DEDENNE + +#if P_FAMILY_CARBINK + [SPECIES_CARBINK] = { - .baseHP = 43, - .baseAttack = 29, - .baseDefense = 131, - .baseSpeed = 37, - .baseSpAttack = 29, - .baseSpDefense = 131, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - .catchRate = 45, - .expYield = 140, + .baseHP = 50, + .baseAttack = 50, + .baseDefense = 150, + .baseSpeed = 50, + .baseSpAttack = 50, + .baseSpDefense = 150, + .types = { TYPE_ROCK, TYPE_FAIRY}, + .catchRate = 60, + .expYield = 100, .evYield_Defense = 1, .evYield_SpDefense = 1, .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_STURDY, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLUE, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_CLEAR_BODY, ABILITY_NONE, ABILITY_STURDY}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_SOLGALEO] = + .speciesName = _("Carbink"), + .cryId = CRY_CARBINK, + .natDexNum = NATIONAL_DEX_CARBINK, + .categoryName = _("Jewel"), + .height = 3, + .weight = 57, + .description = COMPOUND_STRING( + "Born from the high temperatures and\n" + "pressures deep underground, it defends\n" + "itself by firing beams from the jewel part\n" + "of its body."), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Carbink, 48, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Carbink, + .frontAnimId = ANIM_ZIGZAG_SLOW, + .enemyMonElevation = 4, + BACK_PIC(Carbink, 56, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_H_VIBRATE, + PALETTE(Carbink), + ICON(Carbink, 2), + .footprint = gMonFootprint_Carbink, + LEARNSETS(Carbink), + }, +#endif //P_FAMILY_CARBINK + +#if P_FAMILY_GOOMY + [SPECIES_GOOMY] = { - .baseHP = 137, - .baseAttack = 137, - .baseDefense = 107, - .baseSpeed = 97, - .baseSpAttack = 113, - .baseSpDefense = 89, - .types = { TYPE_PSYCHIC, TYPE_STEEL}, + .baseHP = 45, + .baseAttack = 50, + .baseDefense = 35, + .baseSpeed = 40, + .baseSpAttack = 55, + .baseSpDefense = 75, + .types = { TYPE_DRAGON, TYPE_DRAGON}, .catchRate = 45, - .expYield = 306, - .evYield_Attack = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, + .expYield = 60, + .evYield_SpDefense = 1, + .itemRare = ITEM_SHED_SHELL, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = 35, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_FULL_METAL_BODY, ABILITY_NONE}, - .bodyColor = BODY_COLOR_WHITE, + .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_SAP_SIPPER, ABILITY_HYDRATION, ABILITY_GOOEY}, + .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, + .speciesName = _("Goomy"), + .cryId = CRY_GOOMY, + .natDexNum = NATIONAL_DEX_GOOMY, + .categoryName = _("Soft Tissue"), + .height = 3, + .weight = 28, + .description = COMPOUND_STRING( + "Its source of protection is its slimy,\n" + "germ-laden mucous membrane. Anyone\n" + "who touches it will need some thorough\n" + "hand-washing."), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Goomy, 32, 40), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_Goomy, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + BACK_PIC(Goomy, 48, 56), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_H_SPRING, + PALETTE(Goomy), + ICON(Goomy, 5), + .footprint = gMonFootprint_Goomy, + LEARNSETS(Goomy), + .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_SLIGGOO}, + {EVO_NONE, 0, SPECIES_SLIGGOO_HISUIAN}), + }, + +#define SLIGGOO_MISC_INFO \ + .catchRate = 45, \ + .expYield = 158, \ + .evYield_SpDefense = 2, \ + .itemRare = ITEM_SHED_SHELL, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 40, \ + .friendship = 35, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON}, \ + .bodyColor = BODY_COLOR_PURPLE, \ + .noFlip = FALSE, \ + .speciesName = _("Sliggoo"), \ + .cryId = CRY_SLIGGOO, \ + .natDexNum = NATIONAL_DEX_SLIGGOO, \ + .footprint = gMonFootprint_Sliggoo, \ + .formSpeciesIdTable = sSliggooFormSpeciesIdTable - [SPECIES_LUNALA] = + [SPECIES_SLIGGOO] = { - .baseHP = 137, - .baseAttack = 113, - .baseDefense = 89, - .baseSpeed = 97, - .baseSpAttack = 137, - .baseSpDefense = 107, - .types = { TYPE_PSYCHIC, TYPE_GHOST}, - .catchRate = 45, - .expYield = 306, - .evYield_SpAttack = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_SHADOW_SHIELD, ABILITY_NONE}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, + SLIGGOO_MISC_INFO, + .baseHP = 68, + .baseAttack = 75, + .baseDefense = 53, + .baseSpeed = 60, + .baseSpAttack = 83, + .baseSpDefense = 113, + .types = { TYPE_DRAGON, TYPE_DRAGON}, + .abilities = {ABILITY_SAP_SIPPER, ABILITY_HYDRATION, ABILITY_GOOEY}, + .categoryName = _("Soft Tissue"), + .height = 8, + .weight = 175, + .description = COMPOUND_STRING( + "This Pokémon's mucous can dissolve\n" + "anything. Toothless, it sprays mucous\n" + "on its prey. Once they're nicely dissolved,\n" + "it slurps them up."), + .pokemonScale = 366, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Sliggoo, 32, 64), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Sliggoo, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Sliggoo, 48, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_SHRINK_GROW, + PALETTE(Sliggoo), + ICON(Sliggoo, 5), + LEARNSETS(Sliggoo), + .evolutions = EVOLUTION({EVO_LEVEL_RAIN, 50, SPECIES_GOODRA}, + {EVO_LEVEL_FOG, 50, SPECIES_GOODRA}), + }, + +#define GOODRA_MISC_INFO \ + .catchRate = 45, \ + .expYield = 270, \ + .evYield_SpDefense = 3, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 40, \ + .friendship = 35, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON}, \ + .bodyColor = BODY_COLOR_PURPLE, \ + .noFlip = FALSE, \ + .speciesName = _("Goodra"), \ + .cryId = CRY_GOODRA, \ + .natDexNum = NATIONAL_DEX_GOODRA, \ + .footprint = gMonFootprint_Goodra, \ + .formSpeciesIdTable = sGoodraFormSpeciesIdTable - [SPECIES_NIHILEGO] = + [SPECIES_GOODRA] = { - .baseHP = 109, - .baseAttack = 53, - .baseDefense = 47, - .baseSpeed = 103, - .baseSpAttack = 127, - .baseSpDefense = 131, - .types = { TYPE_ROCK, TYPE_POISON}, - .catchRate = 45, - .expYield = 257, - .evYield_SpDefense = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_BEAST_BOOST, ABILITY_NONE}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - .flags = SPECIES_FLAG_ULTRA_BEAST, + GOODRA_MISC_INFO, + .baseHP = 90, + .baseAttack = 100, + .baseDefense = 70, + .baseSpeed = 80, + .baseSpAttack = 110, + .baseSpDefense = 150, + .types = { TYPE_DRAGON, TYPE_DRAGON}, + .abilities = {ABILITY_SAP_SIPPER, ABILITY_HYDRATION, ABILITY_GOOEY}, + .categoryName = _("Dragon"), + .height = 20, + .weight = 1505, + .description = COMPOUND_STRING( + "It gets picked on because it's meek.\n" + "But then, whoever teased it gets to feel\n" + "the full force of its horns and a good\n" + "swatting from its thick tail."), + .pokemonScale = 261, + .pokemonOffset = 1, + .trainerScale = 334, + .trainerOffset = 4, + FRONT_PIC(Goodra, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Goodra, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(Goodra, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_SHRINK_GROW, + PALETTE(Goodra), + ICON(Goodra, 5), + LEARNSETS(Goodra), + }, + +#if P_HISUIAN_FORMS + [SPECIES_SLIGGOO_HISUIAN] = + { + SLIGGOO_MISC_INFO, + .baseHP = 58, + .baseAttack = 75, + .baseDefense = 83, + .baseSpeed = 40, + .baseSpAttack = 83, + .baseSpDefense = 113, + .types = { TYPE_DRAGON, TYPE_STEEL}, + .abilities = {ABILITY_SAP_SIPPER, ABILITY_SHELL_ARMOR, ABILITY_GOOEY}, + .categoryName = _("Snail"), + .height = 7, + .weight = 685, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 366, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(SliggooHisuian, 48, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_SliggooHisuian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(SliggooHisuian, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(SliggooHisuian), + ICON(SliggooHisuian, 2), + LEARNSETS(SliggooHisuian), + .isHisuianForm = TRUE, + .evolutions = EVOLUTION({EVO_LEVEL_RAIN, 50, SPECIES_GOODRA_HISUIAN}, + {EVO_LEVEL_FOG, 50, SPECIES_GOODRA_HISUIAN}), }, - [SPECIES_BUZZWOLE] = + [SPECIES_GOODRA_HISUIAN] = { - .baseHP = 107, - .baseAttack = 139, - .baseDefense = 139, - .baseSpeed = 79, - .baseSpAttack = 53, - .baseSpDefense = 53, - .types = { TYPE_BUG, TYPE_FIGHTING}, - .catchRate = 45, - .expYield = 257, + GOODRA_MISC_INFO, + .baseHP = 80, + .baseAttack = 100, + .baseDefense = 100, + .baseSpeed = 60, + .baseSpAttack = 110, + .baseSpDefense = 150, + .types = { TYPE_DRAGON, TYPE_STEEL}, + .abilities = {ABILITY_SAP_SIPPER, ABILITY_SHELL_ARMOR, ABILITY_GOOEY}, + .categoryName = _("Shell Bunker"), + .height = 17, + .weight = 3341, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 261, + .pokemonOffset = 1, + .trainerScale = 334, + .trainerOffset = 4, + FRONT_PIC(GoodraHisuian, 56, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_GoodraHisuian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(GoodraHisuian, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(GoodraHisuian), + ICON(GoodraHisuian, 2), + LEARNSETS(GoodraHisuian), + .isHisuianForm = TRUE, + }, +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_GOOMY + +#if P_FAMILY_KLEFKI + [SPECIES_KLEFKI] = + { + .baseHP = 57, + .baseAttack = 80, + .baseDefense = 91, + .baseSpeed = 75, + .baseSpAttack = 80, + .baseSpDefense = 87, + .types = { TYPE_STEEL, TYPE_FAIRY}, + .catchRate = 75, + .expYield = 165, + .evYield_Defense = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_PRANKSTER, ABILITY_NONE, ABILITY_MAGICIAN}, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = TRUE, + .speciesName = _("Klefki"), + .cryId = CRY_KLEFKI, + .natDexNum = NATIONAL_DEX_KLEFKI, + .categoryName = _("Key Ring"), + .height = 2, + .weight = 30, + .description = COMPOUND_STRING( + "These key collectors threaten any\n" + "attackers by fiercely jingling their keys\n" + "at them. It will sneak into people's homes\n" + "to steal their keys."), + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Klefki, 40, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Klefki, + .frontAnimId = ANIM_FOUR_PETAL, + .enemyMonElevation = 5, + BACK_PIC(Klefki, 56, 64), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(Klefki), + ICON(Klefki, 0), + .footprint = gMonFootprint_Klefki, + LEARNSETS(Klefki), + }, +#endif //P_FAMILY_KLEFKI + +#if P_FAMILY_PHANTUMP + [SPECIES_PHANTUMP] = + { + .baseHP = 43, + .baseAttack = 70, + .baseDefense = 48, + .baseSpeed = 38, + .baseSpAttack = 50, + .baseSpDefense = 60, + .types = { TYPE_GHOST, TYPE_GRASS}, + .catchRate = 120, + .expYield = 62, .evYield_Attack = 1, - .evYield_Defense = 2, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_BEAST_BOOST, ABILITY_NONE}, - .bodyColor = BODY_COLOR_RED, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_AMORPHOUS}, + .abilities = {ABILITY_NATURAL_CURE, ABILITY_FRISK, ABILITY_HARVEST}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - .flags = SPECIES_FLAG_ULTRA_BEAST, + .speciesName = _("Phantump"), + .cryId = CRY_PHANTUMP, + .natDexNum = NATIONAL_DEX_PHANTUMP, + .categoryName = _("Stump"), + .height = 4, + .weight = 70, + .description = COMPOUND_STRING( + "According to legend, medicine to cure\n" + "any illness can be made by plucking the\n" + "green leaves on its head, brewing them,\n" + "and boiling down the liquid."), + .pokemonScale = 491, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Phantump, 48, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Phantump, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 5, + BACK_PIC(Phantump, 64, 56), + .backPicYOffset = 9, + .backAnimId = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, + PALETTE(Phantump), + ICON(Phantump, 1), + .footprint = gMonFootprint_Phantump, + LEARNSETS(Phantump), + .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_TREVENANT}, + {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_TREVENANT}), }, - [SPECIES_PHEROMOSA] = + [SPECIES_TREVENANT] = { - .baseHP = 71, - .baseAttack = 137, - .baseDefense = 37, - .baseSpeed = 151, - .baseSpAttack = 137, - .baseSpDefense = 37, - .types = { TYPE_BUG, TYPE_FIGHTING}, - .catchRate = 45, - .expYield = 257, - .evYield_Speed = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_BEAST_BOOST, ABILITY_NONE}, - .bodyColor = BODY_COLOR_WHITE, + .baseHP = 85, + .baseAttack = 110, + .baseDefense = 76, + .baseSpeed = 56, + .baseSpAttack = 65, + .baseSpDefense = 82, + .types = { TYPE_GHOST, TYPE_GRASS}, + .catchRate = 60, + .expYield = 166, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_AMORPHOUS}, + .abilities = {ABILITY_NATURAL_CURE, ABILITY_FRISK, ABILITY_HARVEST}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - .flags = SPECIES_FLAG_ULTRA_BEAST, + .speciesName = _("Trevenant"), + .cryId = CRY_TREVENANT, + .natDexNum = NATIONAL_DEX_TREVENANT, + .categoryName = _("Elder Tree"), + .height = 15, + .weight = 710, + .description = COMPOUND_STRING( + "Through its roots, it exerts control over\n" + "other trees. A deadly curse falls upon\n" + "anyone cutting down trees in forests\n" + "where Trevenant dwell."), + .pokemonScale = 268, + .pokemonOffset = 2, + .trainerScale = 271, + .trainerOffset = 0, + FRONT_PIC(Trevenant, 64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Trevenant, + .frontAnimId = ANIM_H_SLIDE_SLOW, + BACK_PIC(Trevenant, 64, 64), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(Trevenant), + ICON(Trevenant, 1), + .footprint = gMonFootprint_Trevenant, + LEARNSETS(Trevenant), + }, +#endif //P_FAMILY_PHANTUMP + +#if P_FAMILY_PUMPKABOO +#define PUMPKABOO_MISC_INFO \ + .types = { TYPE_GHOST, TYPE_GRASS}, \ + .catchRate = 120, \ + .expYield = 67, \ + .evYield_Defense = 1, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, \ + .abilities = {ABILITY_PICKUP, ABILITY_FRISK, ABILITY_INSOMNIA}, \ + .bodyColor = BODY_COLOR_BROWN, \ + .noFlip = FALSE, \ + .speciesName = _("Pumpkaboo"), \ + .natDexNum = NATIONAL_DEX_PUMPKABOO, \ + .categoryName = _("Pumpkin"), \ + .frontAnimFrames = sAnims_Pumpkaboo, \ + .frontAnimId = ANIM_V_SLIDE_WOBBLE, \ + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, \ + PALETTE(Pumpkaboo), \ + ICON(Pumpkaboo, 2), \ + .footprint = gMonFootprint_Pumpkaboo, \ + LEARNSETS(Pumpkaboo), \ + .formSpeciesIdTable = sPumpkabooFormSpeciesIdTable + + [SPECIES_PUMPKABOO_AVERAGE] = + { + PUMPKABOO_MISC_INFO, + .baseHP = 49, + .baseAttack = 66, + .baseDefense = 70, + .baseSpeed = 51, + .baseSpAttack = 44, + .baseSpDefense = 55, + .cryId = CRY_PUMPKABOO, + .height = 4, + .weight = 50, + .description = COMPOUND_STRING( + "It is said to carry wandering spirits to\n" + "the place where they belong so they can\n" + "move on. As the sun sets, it becomes\n" + "restless and active."), + .pokemonScale = 491, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(PumpkabooAverage, 40, 40), + .frontPicYOffset = 13, + BACK_PIC(PumpkabooAverage, 56, 48), + .backPicYOffset = 13, + .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_GOURGEIST_AVERAGE}, + {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_GOURGEIST_AVERAGE}), }, - [SPECIES_XURKITREE] = + [SPECIES_PUMPKABOO_SMALL] = { - .baseHP = 83, - .baseAttack = 89, - .baseDefense = 71, - .baseSpeed = 83, - .baseSpAttack = 173, - .baseSpDefense = 71, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, - .catchRate = 45, - .expYield = 257, - .evYield_SpAttack = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_BEAST_BOOST, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLACK, - .noFlip = FALSE, - .flags = SPECIES_FLAG_ULTRA_BEAST, + PUMPKABOO_MISC_INFO, + .baseHP = 44, + .baseAttack = 66, + .baseDefense = 70, + .baseSpeed = 56, + .baseSpAttack = 44, + .baseSpDefense = 55, + .cryId = CRY_PUMPKABOO, + .height = 3, + .weight = 35, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 491, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(PumpkabooSmall, 40, 40), + .frontPicYOffset = 15, + BACK_PIC(PumpkabooSmall, 56, 48), + .backPicYOffset = 14, + .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_GOURGEIST_SMALL}, + {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_GOURGEIST_SMALL}), }, - [SPECIES_CELESTEELA] = + [SPECIES_PUMPKABOO_LARGE] = { - .baseHP = 97, - .baseAttack = 101, - .baseDefense = 103, - .baseSpeed = 61, - .baseSpAttack = 107, - .baseSpDefense = 101, - .types = { TYPE_STEEL, TYPE_FLYING}, - .catchRate = 45, - .expYield = 257, - .evYield_Attack = 1, - .evYield_Defense = 1, - .evYield_SpAttack = 1, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_BEAST_BOOST, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - .flags = SPECIES_FLAG_ULTRA_BEAST, + PUMPKABOO_MISC_INFO, + .baseHP = 54, + .baseAttack = 66, + .baseDefense = 70, + .baseSpeed = 46, + .baseSpAttack = 44, + .baseSpDefense = 55, + .cryId = CRY_PUMPKABOO, + .height = 5, + .weight = 75, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 491, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(PumpkabooLarge, 48, 48), + .frontPicYOffset = 12, + BACK_PIC(PumpkabooLarge, 56, 48), + .backPicYOffset = 13, + .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_GOURGEIST_LARGE}, + {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_GOURGEIST_LARGE}), }, - [SPECIES_KARTANA] = + [SPECIES_PUMPKABOO_SUPER] = { + PUMPKABOO_MISC_INFO, .baseHP = 59, - .baseAttack = 181, - .baseDefense = 131, - .baseSpeed = 109, - .baseSpAttack = 59, - .baseSpDefense = 31, - .types = { TYPE_GRASS, TYPE_STEEL}, - .catchRate = 45, - .expYield = 257, - .evYield_Attack = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_BEAST_BOOST, ABILITY_NONE}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - .flags = SPECIES_FLAG_ULTRA_BEAST, + .baseAttack = 66, + .baseDefense = 70, + .baseSpeed = 41, + .baseSpAttack = 44, + .baseSpDefense = 55, + .itemCommon = ITEM_MIRACLE_SEED, + .itemRare = ITEM_MIRACLE_SEED, + .cryId = CRY_PUMPKABOO_SUPER, + .height = 8, + .weight = 150, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 491, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(PumpkabooSuper, 48, 48), + .frontPicYOffset = 10, + BACK_PIC(PumpkabooSuper, 56, 48), + .backPicYOffset = 12, + .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_GOURGEIST_SUPER}, + {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_GOURGEIST_SUPER}), + }, + +#define GOURGEIST_MISC_INFO \ + .types = { TYPE_GHOST, TYPE_GRASS}, \ + .catchRate = 60, \ + .expYield = 173, \ + .evYield_Defense = 2, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, \ + .abilities = {ABILITY_PICKUP, ABILITY_FRISK, ABILITY_INSOMNIA}, \ + .bodyColor = BODY_COLOR_BROWN, \ + .noFlip = FALSE, \ + .speciesName = _("Gourgeist"), \ + .natDexNum = NATIONAL_DEX_GOURGEIST, \ + .categoryName = _("Pumpkin"), \ + .frontAnimFrames = sAnims_Gourgeist, \ + .frontAnimId = ANIM_SHRINK_GROW, \ + .backAnimId = BACK_ANIM_V_STRETCH, \ + PALETTE(Gourgeist), \ + ICON(Gourgeist, 2), \ + .footprint = gMonFootprint_Gourgeist, \ + LEARNSETS(Gourgeist), \ + .formSpeciesIdTable = sGourgeistFormSpeciesIdTable + + [SPECIES_GOURGEIST_AVERAGE] = + { + GOURGEIST_MISC_INFO, + .baseHP = 65, + .baseAttack = 90, + .baseDefense = 122, + .baseSpeed = 84, + .baseSpAttack = 58, + .baseSpDefense = 75, + .cryId = CRY_GOURGEIST, + .height = 9, + .weight = 125, + .description = COMPOUND_STRING( + "Singing in eerie voices, they wander town\n" + "streets on the night of the new moon.\n" + "Anyone who hears their song will become\n" + "inflicted with a curse."), + .pokemonScale = 338, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(GourgeistAverage, 64, 64), + .frontPicYOffset = 4, + BACK_PIC(GourgeistAverage, 48, 64), + .backPicYOffset = 3, }, - [SPECIES_GUZZLORD] = + [SPECIES_GOURGEIST_SMALL] = { - .baseHP = 223, - .baseAttack = 101, - .baseDefense = 53, - .baseSpeed = 43, - .baseSpAttack = 97, - .baseSpDefense = 53, - .types = { TYPE_DARK, TYPE_DRAGON}, - .catchRate = 45, - .expYield = 257, - .evYield_HP = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_BEAST_BOOST, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLACK, - .noFlip = FALSE, - .flags = SPECIES_FLAG_ULTRA_BEAST, + GOURGEIST_MISC_INFO, + .baseHP = 55, + .baseAttack = 85, + .baseDefense = 122, + .baseSpeed = 99, + .baseSpAttack = 58, + .baseSpDefense = 75, + .cryId = CRY_GOURGEIST, + .height = 7, + .weight = 95, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 338, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(GourgeistSmall, 56, 64), + .frontPicYOffset = 5, + BACK_PIC(GourgeistSmall, 48, 56), + .backPicYOffset = 4, }, - [SPECIES_NECROZMA] = + [SPECIES_GOURGEIST_LARGE] = { - .baseHP = 97, - .baseAttack = 107, - .baseDefense = 101, - .baseSpeed = 79, - .baseSpAttack = 127, - .baseSpDefense = 89, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - .catchRate = 255, - .expYield = 270, - .evYield_Attack = 1, - .evYield_SpAttack = 2, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_PRISM_ARMOR, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLACK, - .noFlip = TRUE, - .flags = SPECIES_FLAG_LEGENDARY, + GOURGEIST_MISC_INFO, + .baseHP = 75, + .baseAttack = 95, + .baseDefense = 122, + .baseSpeed = 69, + .baseSpAttack = 58, + .baseSpDefense = 75, + .cryId = CRY_GOURGEIST, + .height = 11, + .weight = 140, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 338, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(GourgeistLarge, 64, 64), + .frontPicYOffset = 2, + BACK_PIC(GourgeistLarge, 48, 64), + .backPicYOffset = 2, }, - [SPECIES_MAGEARNA] = MAGEARNA_SPECIES_INFO(BODY_COLOR_GRAY), + [SPECIES_GOURGEIST_SUPER] = + { + GOURGEIST_MISC_INFO, + .baseHP = 85, + .baseAttack = 100, + .baseDefense = 122, + .baseSpeed = 54, + .baseSpAttack = 58, + .baseSpDefense = 75, + .itemCommon = ITEM_MIRACLE_SEED, + .itemRare = ITEM_MIRACLE_SEED, + .cryId = CRY_GOURGEIST_SUPER, + .height = 17, + .weight = 390, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 338, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(GourgeistSuper, 64, 64), + .frontPicYOffset = 0, + BACK_PIC(GourgeistSuper, 56, 64), + .backPicYOffset = 1, + }, +#endif //P_FAMILY_PUMPKABOO + +#if P_FAMILY_BERGMITE +#if P_UPDATED_EGG_GROUPS >= GEN_8 + #define BERGMITE_EGG_GROUPS {EGG_GROUP_MONSTER, EGG_GROUP_MINERAL } +#else + #define BERGMITE_EGG_GROUPS {EGG_GROUP_MONSTER, EGG_GROUP_MONSTER } +#endif - [SPECIES_MARSHADOW] = + [SPECIES_BERGMITE] = { - .baseHP = 90, - .baseAttack = 125, - .baseDefense = 80, - .baseSpeed = 125, - .baseSpAttack = 90, - .baseSpDefense = 90, - .types = { TYPE_FIGHTING, TYPE_GHOST}, - .catchRate = 3, - .expYield = 270, - .evYield_Attack = 2, - .evYield_Speed = 1, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_TECHNICIAN, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = TRUE, - .flags = SPECIES_FLAG_MYTHICAL, - }, + .baseHP = 55, + .baseAttack = 69, + .baseDefense = 85, + .baseSpeed = 28, + .baseSpAttack = 32, + .baseSpDefense = 35, + .types = { TYPE_ICE, TYPE_ICE}, + .catchRate = 190, + .expYield = 61, + .evYield_Defense = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = BERGMITE_EGG_GROUPS, + .abilities = {ABILITY_OWN_TEMPO, ABILITY_ICE_BODY, ABILITY_STURDY}, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + .speciesName = _("Bergmite"), + .cryId = CRY_BERGMITE, + .natDexNum = NATIONAL_DEX_BERGMITE, + .categoryName = _("Ice Chunk"), + .height = 10, + .weight = 995, + .description = COMPOUND_STRING( + "It blocks opponents' attacks with the ice\n" + "that shields its body. It uses cold air to\n" + "repair any cracks with new ice. They live\n" + "in herds on snowy mountains."), + .pokemonScale = 305, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Bergmite, 40, 40), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Bergmite, + .frontAnimId = ANIM_LUNGE_GROW, + BACK_PIC(Bergmite, 56, 48), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_H_SHAKE, + PALETTE(Bergmite), + ICON(Bergmite, 0), + .footprint = gMonFootprint_Bergmite, + LEARNSETS(Bergmite), + .evolutions = EVOLUTION({EVO_LEVEL, 37, SPECIES_AVALUGG}, + {EVO_NONE, 0, SPECIES_AVALUGG_HISUIAN}), + }, + +#define AVALUGG_MISC_INFO \ + .catchRate = 55, \ + .expYield = 180, \ + .evYield_Defense = 2, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = BERGMITE_EGG_GROUPS, \ + .bodyColor = BODY_COLOR_BLUE, \ + .noFlip = FALSE, \ + .speciesName = _("Avalugg"), \ + .cryId = CRY_AVALUGG, \ + .natDexNum = NATIONAL_DEX_AVALUGG, \ + .categoryName = _("Iceberg"), \ + .footprint = gMonFootprint_Avalugg, \ + .formSpeciesIdTable = sAvaluggFormSpeciesIdTable - [SPECIES_POIPOLE] = + [SPECIES_AVALUGG] = { - .baseHP = 67, - .baseAttack = 73, - .baseDefense = 67, - .baseSpeed = 73, - .baseSpAttack = 73, - .baseSpDefense = 67, - .types = { TYPE_POISON, TYPE_POISON}, - .catchRate = 45, - .expYield = 189, + AVALUGG_MISC_INFO, + .baseHP = 95, + .baseAttack = 117, + .baseDefense = 184, + .baseSpeed = 28, + .baseSpAttack = 44, + .baseSpDefense = 46, + .types = { TYPE_ICE, TYPE_ICE}, + .abilities = {ABILITY_OWN_TEMPO, ABILITY_ICE_BODY, ABILITY_STURDY}, + .height = 20, + .weight = 5050, + .description = COMPOUND_STRING( + "The way several Bergmite huddle on its\n" + "back make it look like an aircraft carrier\n" + "made of ice. Its cumbersome frame crushes\n" + "anything that stands in its way.") +, + .pokemonScale = 261, + .pokemonOffset = 1, + .trainerScale = 334, + .trainerOffset = 4, + FRONT_PIC(Avalugg, 64, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Avalugg, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(Avalugg, 64, 40), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(Avalugg), + ICON(Avalugg, 0), + LEARNSETS(Avalugg), + }, + +#if P_HISUIAN_FORMS + [SPECIES_AVALUGG_HISUIAN] = + { + AVALUGG_MISC_INFO, + .baseHP = 95, + .baseAttack = 127, + .baseDefense = 184, + .baseSpeed = 38, + .baseSpAttack = 34, + .baseSpDefense = 36, + .types = { TYPE_ICE, TYPE_ROCK}, + .abilities = {ABILITY_STRONG_JAW, ABILITY_ICE_BODY, ABILITY_STURDY}, + .height = 14, + .weight = 2624, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 261, + .pokemonOffset = 1, + .trainerScale = 334, + .trainerOffset = 4, + FRONT_PIC(AvaluggHisuian, 64, 48), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_AvaluggHisuian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(AvaluggHisuian, 64, 32), + .backPicYOffset = 16, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(AvaluggHisuian), + ICON(AvaluggHisuian, 5), + LEARNSETS(AvaluggHisuian), + .isHisuianForm = TRUE, + }, +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_BERGMITE + +#if P_FAMILY_NOIBAT + [SPECIES_NOIBAT] = + { + .baseHP = 40, + .baseAttack = 30, + .baseDefense = 35, + .baseSpeed = 55, + .baseSpAttack = 45, + .baseSpDefense = 40, + .types = { TYPE_FLYING, TYPE_DRAGON}, + .catchRate = 190, + .expYield = 49, .evYield_Speed = 1, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_BEAST_BOOST, ABILITY_NONE}, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + #if P_UPDATED_EGG_GROUPS >= GEN_8 + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_DRAGON}, + #else + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + #endif + .abilities = {ABILITY_FRISK, ABILITY_INFILTRATOR, ABILITY_TELEPATHY}, .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, - .flags = SPECIES_FLAG_ULTRA_BEAST, + .speciesName = _("Noibat"), + .cryId = CRY_NOIBAT, + .natDexNum = NATIONAL_DEX_NOIBAT, + .categoryName = _("Sound Wave"), + .height = 5, + .weight = 80, + .description = COMPOUND_STRING( + "They live in pitch-black caves. Even a\n" + "robust wrestler will become dizzy and\n" + "unable to stand when exposed to its\n" + "200,000-hertz ultrasonic waves."), + .pokemonScale = 432, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Noibat, 64, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Noibat, + .frontAnimId = ANIM_RISING_WOBBLE, + .enemyMonElevation = 8, + BACK_PIC(Noibat, 56, 64), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_TRIANGLE_DOWN, + PALETTE(Noibat), + ICON(Noibat, 2), + .footprint = gMonFootprint_Noibat, + LEARNSETS(Noibat), + .evolutions = EVOLUTION({EVO_LEVEL, 48, SPECIES_NOIVERN}), }, - [SPECIES_NAGANADEL] = + [SPECIES_NOIVERN] = { - .baseHP = 73, - .baseAttack = 73, - .baseDefense = 73, - .baseSpeed = 121, - .baseSpAttack = 127, - .baseSpDefense = 73, - .types = { TYPE_POISON, TYPE_DRAGON}, + .baseHP = 85, + .baseAttack = 70, + .baseDefense = 80, + .baseSpeed = 123, + .baseSpAttack = 97, + .baseSpDefense = 80, + .types = { TYPE_FLYING, TYPE_DRAGON}, .catchRate = 45, - .expYield = 243, - .evYield_SpAttack = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_BEAST_BOOST, ABILITY_NONE}, + .expYield = 187, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + #if P_UPDATED_EGG_GROUPS >= GEN_8 + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_DRAGON}, + #else + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + #endif + .abilities = {ABILITY_FRISK, ABILITY_INFILTRATOR, ABILITY_TELEPATHY}, .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, - .flags = SPECIES_FLAG_ULTRA_BEAST, - }, + .speciesName = _("Noivern"), + .cryId = CRY_NOIVERN, + .natDexNum = NATIONAL_DEX_NOIVERN, + .categoryName = _("Sound Wave"), + .height = 15, + .weight = 850, + .description = COMPOUND_STRING( + "They fly around on moonless nights and\n" + "attack careless prey. The ultrasonic waves\n" + "it emits from its ears can reduce a large\n" + "boulder to pebbles."), + .pokemonScale = 268, + .pokemonOffset = 2, + .trainerScale = 271, + .trainerOffset = 0, + FRONT_PIC(Noivern, 64, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_Noivern, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Noivern, 64, 64), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_JOLT_RIGHT, + PALETTE(Noivern), + ICON(Noivern, 2), + .footprint = gMonFootprint_Noivern, + LEARNSETS(Noivern), + }, +#endif //P_FAMILY_NOIBAT + +#if P_FAMILY_XERNEAS +#define XERNEAS_MISC_INFO(Form) \ + { \ + .baseHP = 126, \ + .baseAttack = 131, \ + .baseDefense = 95, \ + .baseSpeed = 99, \ + .baseSpAttack = 131, \ + .baseSpDefense = 98, \ + .types = { TYPE_FAIRY, TYPE_FAIRY}, \ + .catchRate = 45, \ + .expYield = 306, \ + .evYield_HP = 3, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ + .abilities = {ABILITY_FAIRY_AURA, ABILITY_NONE}, \ + .bodyColor = BODY_COLOR_BLUE, \ + .noFlip = FALSE, \ + .speciesName = _("Xerneas"), \ + .cryId = CRY_XERNEAS, \ + .natDexNum = NATIONAL_DEX_XERNEAS, \ + .categoryName = _("Life"), \ + .height = 30, \ + .weight = 2150, \ + .description = gXerneasPokedexText, \ + .pokemonScale = 275, \ + .pokemonOffset = 7, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + FRONT_PIC(Xerneas##Form, 64, 64), \ + .frontPicYOffset = 0, \ + .frontAnimFrames = sAnims_Xerneas, \ + .frontAnimId = ANIM_GROW_VIBRATE, \ + BACK_PIC(Xerneas##Form, 64, 64), \ + .backPicYOffset = 0, \ + .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, \ + PALETTE(Xerneas##Form), \ + ICON(Xerneas##Form, 0), \ + .footprint = gMonFootprint_Xerneas, \ + LEARNSETS(Xerneas), \ + .formSpeciesIdTable = sXerneasFormSpeciesIdTable, \ + .formChangeTable = sXerneasFormChangeTable, \ + .isLegendary = TRUE, \ + } - [SPECIES_STAKATAKA] = + [SPECIES_XERNEAS_NEUTRAL] = XERNEAS_MISC_INFO(Neutral), + [SPECIES_XERNEAS_ACTIVE] = XERNEAS_MISC_INFO(Active), +#endif //P_FAMILY_XERNEAS + +#if P_FAMILY_YVELTAL + [SPECIES_YVELTAL] = { - .baseHP = 61, + .baseHP = 126, .baseAttack = 131, - .baseDefense = 211, - .baseSpeed = 13, - .baseSpAttack = 53, - .baseSpDefense = 101, - .types = { TYPE_ROCK, TYPE_STEEL}, - .catchRate = 30, - .expYield = 257, - .evYield_Defense = 3, + .baseDefense = 95, + .baseSpeed = 99, + .baseSpAttack = 131, + .baseSpDefense = 98, + .types = { TYPE_DARK, TYPE_FLYING}, + .catchRate = 45, + .expYield = 306, + .evYield_HP = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_BEAST_BOOST, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = TRUE, - .flags = SPECIES_FLAG_ULTRA_BEAST, - }, + .abilities = {ABILITY_DARK_AURA, ABILITY_NONE}, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + .isLegendary = TRUE, + .speciesName = _("Yveltal"), + .cryId = CRY_YVELTAL, + .natDexNum = NATIONAL_DEX_YVELTAL, + .categoryName = _("Destruction"), + .height = 58, + .weight = 2030, + .description = COMPOUND_STRING( + "When its life comes to an end, its wings\n" + "and tail spread wide and glow red, and\n" + "it absorbs the life energy of every living\n" + "thing and turns into a cocoon."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 360, + .trainerOffset = 7, + FRONT_PIC(Yveltal, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Yveltal, + .frontAnimId = ANIM_FRONT_FLIP, + .enemyMonElevation = 5, + BACK_PIC(Yveltal, 64, 48), + .backPicYOffset = 10, + .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, + PALETTE(Yveltal), + ICON(Yveltal, 0), + .footprint = gMonFootprint_Yveltal, + LEARNSETS(Yveltal), + }, +#endif //P_FAMILY_YVELTAL + +#if P_FAMILY_ZYGARDE +#define ZYGARDE_MISC_INFO(ability) \ + .types = { TYPE_DRAGON, TYPE_GROUND}, \ + .catchRate = 3, \ + .evYield_HP = 3, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ + .abilities = {ability, ABILITY_NONE}, \ + .noFlip = TRUE, \ + .speciesName = _("Zygarde"), \ + .natDexNum = NATIONAL_DEX_ZYGARDE, \ + .categoryName = _("Order"), \ + .footprint = gMonFootprint_Zygarde, \ + LEARNSETS(Zygarde), \ + .formSpeciesIdTable = sZygardeFormSpeciesIdTable, \ + .isLegendary = TRUE + +#define ZYGARDE_50_SPECIES_INFO(ability) \ + { \ + .baseHP = 108, \ + .baseAttack = 100, \ + .baseDefense = 121, \ + .baseSpeed = 95, \ + .baseSpAttack = 81, \ + .baseSpDefense = 95, \ + .expYield = 270, \ + .bodyColor = BODY_COLOR_GREEN, \ + .cryId = CRY_ZYGARDE_50, \ + .height = 50, \ + .weight = 3050, \ + .description = gZygarde50PokedexText, \ + .pokemonScale = 256, \ + .pokemonOffset = 0, \ + .trainerScale = 721, \ + .trainerOffset = 19, \ + FRONT_PIC(Zygarde50, 64, 64), \ + .frontPicYOffset = 0, \ + .frontAnimFrames = sAnims_Zygarde50, \ + .frontAnimId = ANIM_TIP_MOVE_FORWARD, \ + BACK_PIC(Zygarde50, 64, 64), \ + .backPicYOffset = 4, \ + .backAnimId = (ability == ABILITY_POWER_CONSTRUCT \ + ? BACK_ANIM_SHAKE_GLOW_GREEN \ + : BACK_ANIM_V_STRETCH), \ + PALETTE(Zygarde50), \ + ICON(Zygarde50, 1), \ + .formChangeTable = (ability == ABILITY_POWER_CONSTRUCT \ + ? sZygarde50PowerConstructFormChangeTable \ + : sZygarde50AuraBreakFormChangeTable), \ + ZYGARDE_MISC_INFO(ability), \ + } - [SPECIES_BLACEPHALON] = +#define ZYGARDE_10_SPECIES_INFO(ability) \ + { \ + .baseHP = 54, \ + .baseAttack = 100, \ + .baseDefense = 71, \ + .baseSpeed = 115, \ + .baseSpAttack = 61, \ + .baseSpDefense = 85, \ + .expYield = 219, \ + .bodyColor = BODY_COLOR_BLACK, \ + .cryId = CRY_ZYGARDE_10, \ + .height = 12, \ + .weight = 335, \ + .description = gZygarde10PokedexText, \ + .pokemonScale = 256, \ + .pokemonOffset = 0, \ + .trainerScale = 721, \ + .trainerOffset = 19, \ + FRONT_PIC(Zygarde10, 56, 64), \ + .frontPicYOffset = 2, \ + .frontAnimFrames = sAnims_Zygarde10, \ + BACK_PIC(Zygarde10, 64, 56), \ + .backPicYOffset = 8, \ + .backAnimId = (ability == ABILITY_POWER_CONSTRUCT \ + ? BACK_ANIM_SHAKE_GLOW_GREEN \ + : BACK_ANIM_JOLT_RIGHT), \ + PALETTE(Zygarde10), \ + ICON(Zygarde10, 1), \ + .formChangeTable = (ability == ABILITY_POWER_CONSTRUCT \ + ? sZygarde10PowerConstructFormChangeTable \ + : sZygarde10AuraBreakFormChangeTable), \ + ZYGARDE_MISC_INFO(ability), \ + } + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + + [SPECIES_ZYGARDE_50_AURA_BREAK] = ZYGARDE_50_SPECIES_INFO(ABILITY_AURA_BREAK), + [SPECIES_ZYGARDE_50_POWER_CONSTRUCT] = ZYGARDE_50_SPECIES_INFO(ABILITY_POWER_CONSTRUCT), + [SPECIES_ZYGARDE_10_AURA_BREAK] = ZYGARDE_10_SPECIES_INFO(ABILITY_AURA_BREAK), + [SPECIES_ZYGARDE_10_POWER_CONSTRUCT] = ZYGARDE_10_SPECIES_INFO(ABILITY_POWER_CONSTRUCT), + [SPECIES_ZYGARDE_COMPLETE] = { - .baseHP = 53, - .baseAttack = 127, - .baseDefense = 53, - .baseSpeed = 107, - .baseSpAttack = 151, - .baseSpDefense = 79, - .types = { TYPE_FIRE, TYPE_GHOST}, - .catchRate = 30, - .expYield = 257, - .evYield_SpAttack = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_BEAST_BOOST, ABILITY_NONE}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = TRUE, - .flags = SPECIES_FLAG_ULTRA_BEAST, - }, + ZYGARDE_MISC_INFO(ABILITY_POWER_CONSTRUCT), + .baseHP = 216, + .baseAttack = 100, + .baseDefense = 121, + .baseSpeed = 85, + .baseSpAttack = 91, + .baseSpDefense = 95, + .expYield = 319, + .bodyColor = BODY_COLOR_BLACK, + .cryId = CRY_ZYGARDE_COMPLETE, + .height = 45, + .weight = 6100, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 721, + .trainerOffset = 19, + FRONT_PIC(ZygardeComplete, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_ZygardeComplete, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(ZygardeComplete, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_SHAKE_GLOW_GREEN, + PALETTE(ZygardeComplete), + ICON(ZygardeComplete, 1), + .formChangeTable = sZygardeCompleteFormChangeTable, + }, +#endif //P_FAMILY_ZYGARDE + +#if P_FAMILY_DIANCIE +#define DIANCE_MISC_INFO \ + .types = { TYPE_ROCK, TYPE_FAIRY}, \ + .catchRate = 3, \ + .evYield_Defense = 1, \ + .evYield_SpDefense = 2, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 25, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ + .bodyColor = BODY_COLOR_PINK, \ + .noFlip = FALSE, \ + .speciesName = _("Diancie"), \ + .natDexNum = NATIONAL_DEX_DIANCIE, \ + .categoryName = _("Jewel"), \ + .footprint = gMonFootprint_Diancie, \ + LEARNSETS(Diancie), \ + .formSpeciesIdTable = sDiancieFormSpeciesIdTable, \ + .formChangeTable = sDiancieFormChangeTable, \ + .isMythical = TRUE - [SPECIES_ZERAORA] = + [SPECIES_DIANCIE] = { - .baseHP = 88, - .baseAttack = 112, - .baseDefense = 75, - .baseSpeed = 143, - .baseSpAttack = 102, - .baseSpDefense = 80, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, - .catchRate = 3, + DIANCE_MISC_INFO, + .baseHP = 50, + .baseAttack = 100, + .baseDefense = 150, + .baseSpeed = 50, + .baseSpAttack = 100, + .baseSpDefense = 150, .expYield = 270, - .evYield_Speed = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_VOLT_ABSORB, ABILITY_NONE}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, - .flags = SPECIES_FLAG_MYTHICAL, + .abilities = {ABILITY_CLEAR_BODY, ABILITY_NONE}, + .cryId = CRY_DIANCIE, + .height = 7, + .weight = 88, + .description = COMPOUND_STRING( + "A sudden transformation of Carbink,\n" + "its pink, glimmering body is said to be\n" + "the loveliest sight in the whole world.\n" + "It creates diamonds between its hands."), + .pokemonScale = 365, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Diancie, 40, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Diancie, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Diancie, 64, 64), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, + PALETTE(Diancie), + ICON(Diancie, 1), + }, + +#if P_MEGA_EVOLUTIONS + [SPECIES_DIANCIE_MEGA] = + { + DIANCE_MISC_INFO, + .baseHP = 50, + .baseAttack = 160, + .baseDefense = 110, + .baseSpeed = 110, + .baseSpAttack = 160, + .baseSpDefense = 110, + .expYield = 315, + .abilities = {ABILITY_MAGIC_BOUNCE, ABILITY_MAGIC_BOUNCE, ABILITY_MAGIC_BOUNCE}, + .cryId = CRY_DIANCIE_MEGA, + .height = 11, + .weight = 278, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 365, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(DiancieMega, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_DiancieMega, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(DiancieMega, 64, 56), + .backPicYOffset = 5, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(DiancieMega), + ICON(DiancieMega, 0), + .isMegaEvolution = TRUE, + }, +#endif //P_MEGA_EVOLUTIONS +#endif //P_FAMILY_DIANCIE + +#if P_FAMILY_HOOPA +#define HOOPA_MISC_INFO \ + .catchRate = 3, \ + .expYield = 270, \ + .evYield_SpAttack = 3, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ + .abilities = {ABILITY_MAGICIAN, ABILITY_NONE}, \ + .bodyColor = BODY_COLOR_PURPLE, \ + .noFlip = FALSE, \ + .speciesName = _("Hoopa"), \ + .natDexNum = NATIONAL_DEX_HOOPA, \ + .footprint = gMonFootprint_Hoopa, \ + .formSpeciesIdTable = sHoopaFormSpeciesIdTable, \ + .formChangeTable = sHoopaFormChangeTable, \ + .isMythical = TRUE + + [SPECIES_HOOPA_CONFINED] = + { + HOOPA_MISC_INFO, + .baseHP = 80, + .baseAttack = 110, + .baseDefense = 60, + .baseSpeed = 70, + .baseSpAttack = 150, + .baseSpDefense = 130, + .types = { TYPE_PSYCHIC, TYPE_GHOST}, + .friendship = 100, + .cryId = CRY_HOOPA_CONFINED, + .categoryName = _("Mischief"), + .height = 5, + .weight = 90, + .description = COMPOUND_STRING( + "In its true form, it possess a huge amount\n" + "of power. When its powers are sealed away,\n" + "it is transformed into a much smaller form.\n" + "It teleports things to a secret place."), + .pokemonScale = 432, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(HoopaConfined, 48, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Hoopa, + .frontAnimId = ANIM_ZIGZAG_SLOW, + .enemyMonElevation = 13, + BACK_PIC(HoopaConfined, 64, 56), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(HoopaConfined), + ICON(HoopaConfined, 0), + LEARNSETS(HoopaConfined), }, - [SPECIES_MELTAN] = + [SPECIES_HOOPA_UNBOUND] = { - .baseHP = 46, - .baseAttack = 65, - .baseDefense = 65, - .baseSpeed = 34, - .baseSpAttack = 55, - .baseSpDefense = 35, - .types = { TYPE_STEEL, TYPE_STEEL}, + HOOPA_MISC_INFO, + .baseHP = 80, + .baseAttack = 160, + .baseDefense = 60, + .baseSpeed = 80, + .baseSpAttack = 170, + .baseSpDefense = 130, + .types = { TYPE_PSYCHIC, TYPE_DARK}, + .friendship = P_UPDATED_FRIENDSHIP >= GEN_8 ? STANDARD_FRIENDSHIP : 100, + .cryId = CRY_HOOPA_UNBOUND, + .categoryName = _("Djinn"), + .height = 65, + .weight = 490, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 432, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(HoopaUnbound, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_HoopaUnbound, + .frontAnimId = ANIM_GROW_IN_STAGES, + .enemyMonElevation = 3, + BACK_PIC(HoopaUnbound, 64, 64), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_V_SHAKE_LOW, + PALETTE(HoopaUnbound), + ICON(HoopaUnbound, 0), + LEARNSETS(HoopaUnbound), + }, +#endif //P_FAMILY_HOOPA + +#if P_FAMILY_VOLCANION + [SPECIES_VOLCANION] = + { + .baseHP = 80, + .baseAttack = 110, + .baseDefense = 120, + .baseSpeed = 70, + .baseSpAttack = 130, + .baseSpDefense = 90, + .types = { TYPE_FIRE, TYPE_WATER}, .catchRate = 3, - .expYield = 135, - .evYield_Attack = 1, + .expYield = 270, + .evYield_SpAttack = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, - .friendship = 0, + .friendship = 100, .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_MAGNET_PULL, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GRAY, + .abilities = {ABILITY_WATER_ABSORB, ABILITY_NONE}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - .flags = SPECIES_FLAG_MYTHICAL, - }, - - [SPECIES_MELMETAL] = - { - MELMETAL_MISC_INFO, - }, -#endif - -#if P_GEN_8_POKEMON == TRUE - [SPECIES_GROOKEY] = + .isMythical = TRUE, + .speciesName = _("Volcanion"), + .cryId = CRY_VOLCANION, + .natDexNum = NATIONAL_DEX_VOLCANION, + .categoryName = _("Steam"), + .height = 17, + .weight = 1950, + .description = COMPOUND_STRING( + "It lets out billows of steam from the arms\n" + "on its back and disappears into the dense\n" + "fog. It's said to live in mountains where\n" + "humans do not tread."), + .pokemonScale = 259, + .pokemonOffset = 0, + .trainerScale = 290, + .trainerOffset = 1, + FRONT_PIC(Volcanion, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Volcanion, + .frontAnimId = ANIM_V_SHAKE_TWICE, + BACK_PIC(Volcanion, 64, 64), + .backPicYOffset = 3, + .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, + PALETTE(Volcanion), + ICON(Volcanion, 0), + .footprint = gMonFootprint_Volcanion, + LEARNSETS(Volcanion), + }, +#endif //P_FAMILY_VOLCANION + +#if P_FAMILY_ROWLET + [SPECIES_ROWLET] = { - .baseHP = 50, - .baseAttack = 65, - .baseDefense = 50, - .baseSpeed = 65, - .baseSpAttack = 40, - .baseSpDefense = 40, - .types = { TYPE_GRASS, TYPE_GRASS}, + .baseHP = 68, + .baseAttack = 55, + .baseDefense = 55, + .baseSpeed = 42, + .baseSpAttack = 50, + .baseSpDefense = 50, + .types = { TYPE_GRASS, TYPE_FLYING}, .catchRate = 45, - .expYield = 62, - .evYield_Attack = 1, + .expYield = 64, + .evYield_HP = 1, .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS}, - .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_GRASSY_SURGE}, - .bodyColor = BODY_COLOR_GREEN, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_LONG_REACH}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .speciesName = _("Rowlet"), + .cryId = CRY_ROWLET, + .natDexNum = NATIONAL_DEX_ROWLET, + .categoryName = _("Grass Quill"), + .height = 3, + .weight = 15, + .description = COMPOUND_STRING( + "This wary Pokémon uses photosynthesis\n" + "to store up energy during the day, while\n" + "becoming active at night. Silently it\n" + "glides, drawing near to its target."), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Rowlet, 31, 37), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Rowlet, + .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, + BACK_PIC(Rowlet, 43, 36), + .backPicYOffset = 15, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + PALETTE(Rowlet), + ICON(Rowlet, 0), + .footprint = gMonFootprint_Rowlet, + LEARNSETS(Rowlet), + .evolutions = EVOLUTION({EVO_LEVEL, 17, SPECIES_DARTRIX}), }, - [SPECIES_THWACKEY] = + [SPECIES_DARTRIX] = { - .baseHP = 70, - .baseAttack = 85, - .baseDefense = 70, - .baseSpeed = 80, - .baseSpAttack = 55, - .baseSpDefense = 60, - .types = { TYPE_GRASS, TYPE_GRASS}, + .baseHP = 78, + .baseAttack = 75, + .baseDefense = 75, + .baseSpeed = 52, + .baseSpAttack = 70, + .baseSpDefense = 70, + .types = { TYPE_GRASS, TYPE_FLYING}, .catchRate = 45, .expYield = 147, - .evYield_Attack = 2, + .evYield_HP = 2, .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS}, - .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_GRASSY_SURGE}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - }, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_LONG_REACH}, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = TRUE, + .speciesName = _("Dartrix"), + .cryId = CRY_DARTRIX, + .natDexNum = NATIONAL_DEX_DARTRIX, + .categoryName = _("Blade Quill"), + .height = 7, + .weight = 160, + .description = COMPOUND_STRING( + "A bit of a dandy, it spends its free time\n" + "preening its wings. Its preoccupation\n" + "with any dirt on its plumage can leave\n" + "it unable to battle."), + .pokemonScale = 365, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Dartrix, 34, 47), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Dartrix, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Dartrix, 56, 54), + .backPicYOffset = 4, + .backAnimId = BACK_ANIM_V_STRETCH, + PALETTE(Dartrix), + ICON(Dartrix, 1), + .footprint = gMonFootprint_Dartrix, + LEARNSETS(Dartrix), + .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_DECIDUEYE}, + {EVO_NONE, 0, SPECIES_DECIDUEYE_HISUIAN}), + }, + +#define DECIDUEYE_MISC_INFO \ + .catchRate = 45, \ + .expYield = 239, \ + .evYield_Attack = 3, \ + .genderRatio = PERCENT_FEMALE(12.5), \ + .eggCycles = 15, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_SLOW, \ + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, \ + .bodyColor = BODY_COLOR_BROWN, \ + .noFlip = FALSE, \ + .speciesName = _("Decidueye"), \ + .cryId = CRY_DECIDUEYE, \ + .natDexNum = NATIONAL_DEX_DECIDUEYE, \ + .categoryName = _("Arrow Quill"), \ + .height = 16, \ + .pokemonScale = 259, \ + .pokemonOffset = 1, \ + .trainerScale = 296, \ + .trainerOffset = 1, \ + .footprint = gMonFootprint_Decidueye, \ + .formSpeciesIdTable = sDecidueyeFormSpeciesIdTable - [SPECIES_RILLABOOM] = + [SPECIES_DECIDUEYE] = { - RILLABOOM_MISC_INFO, - }, - - [SPECIES_SCORBUNNY] = + DECIDUEYE_MISC_INFO, + .baseHP = 78, + .baseAttack = 107, + .baseDefense = 75, + .baseSpeed = 70, + .baseSpAttack = 100, + .baseSpDefense = 100, + .types = { TYPE_GRASS, TYPE_GHOST}, + .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_LONG_REACH}, + .weight = 366, + .description = COMPOUND_STRING( + "Decidueye is cool and cautious.\n" + "It fires arrow quills from its wings with\n" + "such precision, they can pierce a pebble\n" + "at distances of over a hundred yards."), + FRONT_PIC(Decidueye, 45, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Decidueye, + .frontAnimId = ANIM_SHRINK_GROW_VIBRATE_FAST, + BACK_PIC(Decidueye, 46, 62), + .backPicYOffset = 0, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(Decidueye), + ICON(Decidueye, 1), + LEARNSETS(Decidueye), + }, + +#if P_HISUIAN_FORMS + [SPECIES_DECIDUEYE_HISUIAN] = { - .baseHP = 50, - .baseAttack = 71, + DECIDUEYE_MISC_INFO, + .baseHP = 88, + .baseAttack = 112, + .baseDefense = 80, + .baseSpeed = 60, + .baseSpAttack = 95, + .baseSpDefense = 95, + .types = { TYPE_GRASS, TYPE_FIGHTING}, + .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_SCRAPPY}, + .weight = 370, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(DecidueyeHisuian, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_DecidueyeHisuian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(DecidueyeHisuian, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(DecidueyeHisuian), + ICON(DecidueyeHisuian, 0), + LEARNSETS(DecidueyeHisuian), + .isHisuianForm = TRUE, + }, +#endif //P_HISUIAN_FORMS +#endif //P_FAMILY_ROWLET + +#if P_FAMILY_LITTEN + [SPECIES_LITTEN] = + { + .baseHP = 45, + .baseAttack = 65, .baseDefense = 40, - .baseSpeed = 69, - .baseSpAttack = 40, + .baseSpeed = 70, + .baseSpAttack = 60, .baseSpDefense = 40, .types = { TYPE_FIRE, TYPE_FIRE}, .catchRate = 45, - .expYield = 62, + .expYield = 64, .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_LIBERO}, - .bodyColor = BODY_COLOR_WHITE, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_INTIMIDATE}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, + .speciesName = _("Litten"), + .cryId = CRY_LITTEN, + .natDexNum = NATIONAL_DEX_LITTEN, + .categoryName = _("Fire Cat"), + .height = 4, + .weight = 43, + .description = COMPOUND_STRING( + "While grooming itself, it builds up fur\n" + "inside its stomach. It sets the fur alight\n" + "and spews fiery attacks, which change\n" + "based on how it coughs."), + .pokemonScale = 491, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Litten, 48, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Litten, + .frontAnimId = ANIM_H_STRETCH, + BACK_PIC(Litten, 64, 48), + .backPicYOffset = 11, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Litten), + ICON(Litten, 0), + .footprint = gMonFootprint_Litten, + LEARNSETS(Litten), + .evolutions = EVOLUTION({EVO_LEVEL, 17, SPECIES_TORRACAT}), }, - [SPECIES_RABOOT] = + [SPECIES_TORRACAT] = { .baseHP = 65, - .baseAttack = 86, - .baseDefense = 60, - .baseSpeed = 94, - .baseSpAttack = 55, - .baseSpDefense = 60, + .baseAttack = 85, + .baseDefense = 50, + .baseSpeed = 90, + .baseSpAttack = 80, + .baseSpDefense = 50, .types = { TYPE_FIRE, TYPE_FIRE}, .catchRate = 45, .expYield = 147, .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_LIBERO}, - .bodyColor = BODY_COLOR_GRAY, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_INTIMIDATE}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, + .speciesName = _("Torracat"), + .cryId = CRY_TORRACAT, + .natDexNum = NATIONAL_DEX_TORRACAT, + .categoryName = _("Fire Cat"), + .height = 7, + .weight = 250, + .description = COMPOUND_STRING( + "At its throat, it bears a bell of fire. The\n" + "bell rings brightly whenever this Pokémon\n" + "spits fire. With a single punch, it can bend\n" + "an iron bar right over."), + .pokemonScale = 365, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Torracat, 56, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Torracat, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Torracat, 64, 56), + .backPicYOffset = 7, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Torracat), + ICON(Torracat, 0), + .footprint = gMonFootprint_Torracat, + LEARNSETS(Torracat), + .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_INCINEROAR}), }, - [SPECIES_CINDERACE] = + [SPECIES_INCINEROAR] = { - CINDERACE_MISC_INFO, + .baseHP = 95, + .baseAttack = 115, + .baseDefense = 90, + .baseSpeed = 60, + .baseSpAttack = 80, + .baseSpDefense = 90, + .types = { TYPE_FIRE, TYPE_DARK}, + .catchRate = 45, + .expYield = 239, + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_INTIMIDATE}, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + .speciesName = _("Incineroar"), + .cryId = CRY_INCINEROAR, + .natDexNum = NATIONAL_DEX_INCINEROAR, + .categoryName = _("Heel"), + .height = 18, + .weight = 830, + .description = COMPOUND_STRING( + "This Pokémon has a violent, selfish\n" + "disposition. If it's not in the mood to\n" + "listen, it will ignore its Trainer's orders\n" + "with complete nonchalance."), + .pokemonScale = 267, + .pokemonOffset = 2, + .trainerScale = 286, + .trainerOffset = 1, + FRONT_PIC(Incineroar, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Incineroar, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(Incineroar, 64, 56), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Incineroar), + ICON(Incineroar, 0), + .footprint = gMonFootprint_Incineroar, + LEARNSETS(Incineroar), + }, +#endif //P_FAMILY_LITTEN + +#if P_FAMILY_POPPLIO + [SPECIES_POPPLIO] = + { + .baseHP = 50, + .baseAttack = 54, + .baseDefense = 54, + .baseSpeed = 40, + .baseSpAttack = 66, + .baseSpDefense = 56, + .types = { TYPE_WATER, TYPE_WATER}, + .catchRate = 45, + .expYield = 64, + .evYield_SpAttack = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, + .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_LIQUID_VOICE}, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + .speciesName = _("Popplio"), + .cryId = CRY_POPPLIO, + .natDexNum = NATIONAL_DEX_POPPLIO, + .categoryName = _("Sea Lion"), + .height = 4, + .weight = 75, + .description = COMPOUND_STRING( + "This Pokémon snorts body fluids from\n" + "its nose, blowing balloons to smash into\n" + "its foes. It practices diligently so it can\n" + "learn to make big bubbles."), + .pokemonScale = 491, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Popplio, 40, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Popplio, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + BACK_PIC(Popplio, 48, 48), + .backPicYOffset = 11, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Popplio), + ICON(Popplio, 0), + .footprint = gMonFootprint_Popplio, + LEARNSETS(Popplio), + .evolutions = EVOLUTION({EVO_LEVEL, 17, SPECIES_BRIONNE}), }, - [SPECIES_SOBBLE] = + [SPECIES_BRIONNE] = { - .baseHP = 50, - .baseAttack = 40, - .baseDefense = 40, - .baseSpeed = 70, - .baseSpAttack = 70, - .baseSpDefense = 40, + .baseHP = 60, + .baseAttack = 69, + .baseDefense = 69, + .baseSpeed = 50, + .baseSpAttack = 91, + .baseSpDefense = 81, .types = { TYPE_WATER, TYPE_WATER}, .catchRate = 45, - .expYield = 62, - .evYield_Speed = 1, - .evYield_SpDefense = 1, + .expYield = 147, + .evYield_SpAttack = 2, .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, + .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_LIQUID_VOICE}, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + .speciesName = _("Brionne"), + .cryId = CRY_BRIONNE, + .natDexNum = NATIONAL_DEX_BRIONNE, + .categoryName = _("Pop Star"), + .height = 6, + .weight = 175, + .description = COMPOUND_STRING( + "It cares deeply for its companions.\n" + "When its Trainer is feeling down, it\n" + "performs a cheery dance with a sequence\n" + "of water balloons to try and help."), + .pokemonScale = 422, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Brionne, 48, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Brionne, + .frontAnimId = ANIM_SHRINK_GROW, + BACK_PIC(Brionne, 48, 56), + .backPicYOffset = 9, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Brionne), + ICON(Brionne, 0), + .footprint = gMonFootprint_Brionne, + LEARNSETS(Brionne), + .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_PRIMARINA}), + }, + + [SPECIES_PRIMARINA] = + { + .baseHP = 80, + .baseAttack = 74, + .baseDefense = 74, + .baseSpeed = 60, + .baseSpAttack = 126, + .baseSpDefense = 116, + .types = { TYPE_WATER, TYPE_FAIRY}, + .catchRate = 45, + .expYield = 239, + .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, + .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_LIQUID_VOICE}, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + .speciesName = _("Primarina"), + .cryId = CRY_PRIMARINA, + .natDexNum = NATIONAL_DEX_PRIMARINA, + .categoryName = _("Soloist"), + .height = 18, + .weight = 440, + .description = COMPOUND_STRING( + "It controls its water balloons with song.\n" + "The melody is learned from others of\n" + "its kind and is passed down from one\n" + "generation to the next."), + .pokemonScale = 267, + .pokemonOffset = 2, + .trainerScale = 286, + .trainerOffset = 1, + FRONT_PIC(Primarina, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Primarina, + .frontAnimId = ANIM_SHAKE_GLOW_BLUE_SLOW, + BACK_PIC(Primarina, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Primarina), + ICON(Primarina, 0), + .footprint = gMonFootprint_Primarina, + LEARNSETS(Primarina), + }, +#endif //P_FAMILY_POPPLIO + +#if P_FAMILY_PIKIPEK + [SPECIES_PIKIPEK] = + { + .baseHP = 35, + .baseAttack = 75, + .baseDefense = 30, + .baseSpeed = 65, + .baseSpAttack = 30, + .baseSpDefense = 30, + .types = { TYPE_NORMAL, TYPE_FLYING}, + .catchRate = 255, + .expYield = 53, + .evYield_Attack = 1, + .itemRare = ITEM_ORAN_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + .abilities = {ABILITY_KEEN_EYE, ABILITY_SKILL_LINK, ABILITY_PICKUP}, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + .speciesName = _("Pikipek"), + .cryId = CRY_PIKIPEK, + .natDexNum = NATIONAL_DEX_PIKIPEK, + .categoryName = _("Woodpecker"), + .height = 3, + .weight = 12, + .description = COMPOUND_STRING( + "This Pokémon feeds on berries, whose\n" + "leftover seeds become the ammunition for\n" + "the attacks it fires off from its mouth.\n" + "It uses holes in trees for nesting."), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Pikipek, 29, 40), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Pikipek, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Pikipek, 48, 48), + .backPicYOffset = 8, + .backAnimId = BACK_ANIM_SHRINK_GROW, + PALETTE(Pikipek), + ICON(Pikipek, 2), + .footprint = gMonFootprint_Pikipek, + LEARNSETS(Pikipek), + .evolutions = EVOLUTION({EVO_LEVEL, 14, SPECIES_TRUMBEAK}), + }, + + [SPECIES_TRUMBEAK] = + { + .baseHP = 55, + .baseAttack = 85, + .baseDefense = 50, + .baseSpeed = 75, + .baseSpAttack = 40, + .baseSpDefense = 50, + .types = { TYPE_NORMAL, TYPE_FLYING}, + .catchRate = 120, + .expYield = 124, + .evYield_Attack = 2, + .itemRare = ITEM_SITRUS_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, - .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_SNIPER}, - .bodyColor = BODY_COLOR_BLUE, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + .abilities = {ABILITY_KEEN_EYE, ABILITY_SKILL_LINK, ABILITY_PICKUP}, + .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, + .speciesName = _("Trumbeak"), + .cryId = CRY_TRUMBEAK, + .natDexNum = NATIONAL_DEX_TRUMBEAK, + .categoryName = _("Bugle Beak"), + .height = 6, + .weight = 148, + .description = COMPOUND_STRING( + "By bending its beak, it can produce a\n" + "variety of calls and brand itself a noisy\n" + "nuisance for its neighbors. It eats\n" + "berries and stores their seeds in its beak."), + .pokemonScale = 422, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Trumbeak, 44, 53), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Trumbeak, + .frontAnimId = ANIM_H_STRETCH, + BACK_PIC(Trumbeak, 56, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_H_STRETCH, + PALETTE(Trumbeak), + ICON(Trumbeak, 0), + .footprint = gMonFootprint_Trumbeak, + LEARNSETS(Trumbeak), + .evolutions = EVOLUTION({EVO_LEVEL, 28, SPECIES_TOUCANNON}), }, - [SPECIES_DRIZZILE] = + [SPECIES_TOUCANNON] = { - .baseHP = 65, - .baseAttack = 60, - .baseDefense = 55, - .baseSpeed = 90, - .baseSpAttack = 95, - .baseSpDefense = 55, - .types = { TYPE_WATER, TYPE_WATER}, + .baseHP = 80, + .baseAttack = 120, + .baseDefense = 75, + .baseSpeed = 60, + .baseSpAttack = 75, + .baseSpDefense = 75, + .types = { TYPE_NORMAL, TYPE_FLYING}, .catchRate = 45, - .expYield = 147, - .evYield_SpAttack = 2, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, + .expYield = 218, + .evYield_Attack = 3, + .itemRare = ITEM_RAWST_BERRY, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, - .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_SNIPER}, - .bodyColor = BODY_COLOR_BLUE, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + .abilities = {ABILITY_KEEN_EYE, ABILITY_SKILL_LINK, ABILITY_SHEER_FORCE}, + .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, - }, - - [SPECIES_INTELEON] = - { - INTELEON_MISC_INFO, - }, - - [SPECIES_SKWOVET] = + .speciesName = _("Toucannon"), + .cryId = CRY_TOUCANNON, + .natDexNum = NATIONAL_DEX_TOUCANNON, + .categoryName = _("Cannon"), + .height = 11, + .weight = 260, + .description = COMPOUND_STRING( + "When it battles, within its beak, its\n" + "internal gases ignite, explosively\n" + "launching seeds with enough power to\n" + "pulverize boulders."), + .pokemonScale = 320, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Toucannon, 59, 59), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Toucannon, + .frontAnimId = ANIM_SHAKE_GLOW_RED_SLOW, + BACK_PIC(Toucannon, 64, 56), + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(Toucannon), + ICON(Toucannon, 0), + .footprint = gMonFootprint_Toucannon, + LEARNSETS(Toucannon), + }, +#endif //P_FAMILY_PIKIPEK + +#if P_FAMILY_YUNGOOS + [SPECIES_YUNGOOS] = { - .baseHP = 70, - .baseAttack = 55, - .baseDefense = 55, - .baseSpeed = 25, - .baseSpAttack = 35, - .baseSpDefense = 35, + .baseHP = 48, + .baseAttack = 70, + .baseDefense = 30, + .baseSpeed = 45, + .baseSpAttack = 30, + .baseSpDefense = 30, .types = { TYPE_NORMAL, TYPE_NORMAL}, .catchRate = 255, - .expYield = 55, - .evYield_HP = 1, - .itemRare = ITEM_ORAN_BERRY, + .expYield = 51, + .evYield_Attack = 1, + .itemRare = ITEM_PECHA_BERRY, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_CHEEK_POUCH, ABILITY_NONE, ABILITY_GLUTTONY}, + .abilities = {ABILITY_STAKEOUT, ABILITY_STRONG_JAW, ABILITY_ADAPTABILITY}, .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .speciesName = _("Yungoos"), + .cryId = CRY_YUNGOOS, + .natDexNum = NATIONAL_DEX_YUNGOOS, + .categoryName = _("Loitering"), + .height = 4, + .weight = 60, + .description = COMPOUND_STRING( + "With its sharp fangs, it will bite anything.\n" + "It wanders around in a never-ending\n" + "search for food. At dusk, it collapses\n" + "and falls asleep on the spot."), + .pokemonScale = 491, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Yungoos, 64, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Yungoos, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Yungoos, 48, 40), + .backPicYOffset = 14, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Yungoos), + ICON(Yungoos, 2), + .footprint = gMonFootprint_Yungoos, + LEARNSETS(Yungoos), + .evolutions = EVOLUTION({EVO_LEVEL_DAY, 20, SPECIES_GUMSHOOS}), }, - [SPECIES_GREEDENT] = + [SPECIES_GUMSHOOS] = { - .baseHP = 120, - .baseAttack = 95, - .baseDefense = 95, - .baseSpeed = 20, + .baseHP = 88, + .baseAttack = 110, + .baseDefense = 60, + .baseSpeed = 45, .baseSpAttack = 55, - .baseSpDefense = 75, + .baseSpDefense = 60, .types = { TYPE_NORMAL, TYPE_NORMAL}, - .catchRate = 90, - .expYield = 161, - .evYield_HP = 2, - .itemRare = ITEM_SITRUS_BERRY, + .catchRate = 127, + .expYield = 146, + .evYield_Attack = 2, + .itemRare = ITEM_PECHA_BERRY, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_CHEEK_POUCH, ABILITY_NONE, ABILITY_GLUTTONY}, + .abilities = {ABILITY_STAKEOUT, ABILITY_STRONG_JAW, ABILITY_ADAPTABILITY}, .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - }, - - [SPECIES_ROOKIDEE] = + .speciesName = _("Gumshoos"), + .cryId = CRY_GUMSHOOS, + .natDexNum = NATIONAL_DEX_GUMSHOOS, + .categoryName = _("Stakeout"), + .height = 7, + .weight = 142, + .description = COMPOUND_STRING( + "When it finds a trace of its prey, it\n" + "patiently stakes out the location...\n" + "but as it's diurnal, it's always snoozing\n" + "by nightfall."), + .pokemonScale = 365, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Gumshoos, 56, 56), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Gumshoos, + .frontAnimId = ANIM_H_SHAKE, + BACK_PIC(Gumshoos, 48, 56), + .backPicYOffset = 7, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Gumshoos), + ICON(Gumshoos, 2), + .footprint = gMonFootprint_Gumshoos, + LEARNSETS(Gumshoos), + }, +#endif //P_FAMILY_YUNGOOS + +#if P_FAMILY_GRUBBIN + [SPECIES_GRUBBIN] = { - .baseHP = 38, - .baseAttack = 47, - .baseDefense = 35, - .baseSpeed = 57, - .baseSpAttack = 33, - .baseSpDefense = 35, - .types = { TYPE_FLYING, TYPE_FLYING}, + .baseHP = 47, + .baseAttack = 62, + .baseDefense = 45, + .baseSpeed = 46, + .baseSpAttack = 55, + .baseSpDefense = 45, + .types = { TYPE_BUG, TYPE_BUG}, .catchRate = 255, - .expYield = 49, - .evYield_Speed = 1, + .expYield = 60, + .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_KEEN_EYE, ABILITY_UNNERVE, ABILITY_BIG_PECKS}, - .bodyColor = BODY_COLOR_BLUE, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_SWARM, ABILITY_NONE}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, + .speciesName = _("Grubbin"), + .cryId = CRY_GRUBBIN, + .natDexNum = NATIONAL_DEX_GRUBBIN, + .categoryName = _("Larva"), + .height = 4, + .weight = 44, + .description = COMPOUND_STRING( + "They often gather near places frequented\n" + "by electric Pokémon in order to avoid being\n" + "attacked by bird Pokémon, though it\n" + "normally lives underground."), + .pokemonScale = 491, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Grubbin, 48, 32), + .frontPicYOffset = 17, + .frontAnimFrames = sAnims_Grubbin, + .frontAnimId = ANIM_H_SLIDE, + BACK_PIC(Grubbin, 64, 32), + .backPicYOffset = 16, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Grubbin), + ICON(Grubbin, 0), + .footprint = gMonFootprint_Grubbin, + LEARNSETS(Grubbin), + .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_CHARJABUG}), }, - [SPECIES_CORVISQUIRE] = + [SPECIES_CHARJABUG] = { - .baseHP = 68, - .baseAttack = 67, - .baseDefense = 55, - .baseSpeed = 77, - .baseSpAttack = 43, - .baseSpDefense = 55, - .types = { TYPE_FLYING, TYPE_FLYING}, + .baseHP = 57, + .baseAttack = 82, + .baseDefense = 95, + .baseSpeed = 36, + .baseSpAttack = 55, + .baseSpDefense = 75, + .types = { TYPE_BUG, TYPE_ELECTRIC}, .catchRate = 120, - .expYield = 128, - .evYield_Speed = 2, + .expYield = 140, + .evYield_Defense = 2, + .itemRare = ITEM_CELL_BATTERY, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_KEEN_EYE, ABILITY_UNNERVE, ABILITY_BIG_PECKS}, - .bodyColor = BODY_COLOR_BLUE, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_BATTERY, ABILITY_NONE}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, + .speciesName = _("Charjabug"), + .cryId = CRY_CHARJABUG, + .natDexNum = NATIONAL_DEX_CHARJABUG, + .categoryName = _("Battery"), + .height = 5, + .weight = 105, + .description = COMPOUND_STRING( + "From the food it digests, it generates\n" + "electricity, and it stores this energy in\n" + "its electric sac. On camping trips, people\n" + "are grateful to have one around."), + .pokemonScale = 432, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Charjabug, 40, 40), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Charjabug, + .frontAnimId = ANIM_SHAKE_FLASH_YELLOW_SLOW, + BACK_PIC(Charjabug, 64, 40), + .backPicYOffset = 15, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Charjabug), + ICON(Charjabug, 1), + .footprint = gMonFootprint_Charjabug, + LEARNSETS(Charjabug), + .evolutions = EVOLUTION({EVO_MAPSEC, MAPSEC_NEW_MAUVILLE, SPECIES_VIKAVOLT}, + {EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_VIKAVOLT}), }, - [SPECIES_CORVIKNIGHT] = - { - CORVIKNIGHT_MISC_INFO, - }, - - [SPECIES_BLIPBUG] = + [SPECIES_VIKAVOLT] = { - .baseHP = 25, - .baseAttack = 20, - .baseDefense = 20, - .baseSpeed = 45, - .baseSpAttack = 25, - .baseSpDefense = 45, - .types = { TYPE_BUG, TYPE_BUG}, - .catchRate = 255, - .expYield = 36, - .evYield_SpDefense = 1, + .baseHP = 77, + .baseAttack = 70, + .baseDefense = 90, + .baseSpeed = 43, + .baseSpAttack = 145, + .baseSpDefense = 75, + .types = { TYPE_BUG, TYPE_ELECTRIC}, + .catchRate = 45, + .expYield = 225, + .evYield_SpAttack = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SWARM, ABILITY_COMPOUND_EYES, ABILITY_TELEPATHY}, + .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - }, - - [SPECIES_DOTTLER] = + .speciesName = _("Vikavolt"), + .cryId = CRY_VIKAVOLT, + .natDexNum = NATIONAL_DEX_VIKAVOLT, + .categoryName = _("Stag Beetle"), + .height = 15, + .weight = 450, + .description = COMPOUND_STRING( + "It concentrates electrical energy within\n" + "its large jaws and uses it to zap its foes.\n" + "It overwhelms bird Pokémon with shocking\n" + "beams of electrical energy."), + .pokemonScale = 268, + .pokemonOffset = 2, + .trainerScale = 271, + .trainerOffset = 0, + FRONT_PIC(Vikavolt, 64, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Vikavolt, + .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES, + .enemyMonElevation = 8, + BACK_PIC(Vikavolt, 64, 56), + .backPicYOffset = 7, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Vikavolt), + ICON(Vikavolt, 0), + .footprint = gMonFootprint_Vikavolt, + LEARNSETS(Vikavolt), + }, +#endif //P_FAMILY_GRUBBIN + +#if P_FAMILY_CRABRAWLER + [SPECIES_CRABRAWLER] = { - .baseHP = 50, - .baseAttack = 35, - .baseDefense = 80, - .baseSpeed = 30, - .baseSpAttack = 50, - .baseSpDefense = 90, - .types = { TYPE_BUG, TYPE_PSYCHIC}, - .catchRate = 120, - .expYield = 117, - .evYield_SpDefense = 2, - .itemRare = ITEM_PSYCHIC_SEED, + .baseHP = 47, + .baseAttack = 82, + .baseDefense = 57, + .baseSpeed = 63, + .baseSpAttack = 42, + .baseSpDefense = 47, + .types = { TYPE_FIGHTING, TYPE_FIGHTING}, + .catchRate = 225, + .expYield = 68, + .evYield_Attack = 1, + .itemRare = ITEM_ASPEAR_BERRY, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SWARM, ABILITY_COMPOUND_EYES, ABILITY_TELEPATHY}, - .bodyColor = BODY_COLOR_YELLOW, + .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, + .abilities = {ABILITY_HYPER_CUTTER, ABILITY_IRON_FIST, ABILITY_ANGER_POINT}, + .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, + .speciesName = _("Crabrawler"), + .cryId = CRY_CRABRAWLER, + .natDexNum = NATIONAL_DEX_CRABRAWLER, + .categoryName = _("Boxing"), + .height = 6, + .weight = 70, + .description = COMPOUND_STRING( + "While guarding its weak points with its\n" + "pincers, it looks for an opening and\n" + "unleashes punches. When it loses, it\n" + "foams at the mouth and faints."), + .pokemonScale = 422, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Crabrawler, 64, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Crabrawler, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(Crabrawler, 64, 48), + .backPicYOffset = 9, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Crabrawler), + ICON(Crabrawler, 2), + .footprint = gMonFootprint_Crabrawler, + LEARNSETS(Crabrawler), + .evolutions = EVOLUTION({EVO_SPECIFIC_MAP, MAP_SHOAL_CAVE_LOW_TIDE_ICE_ROOM, SPECIES_CRABOMINABLE}, + {EVO_ITEM, ITEM_ICE_STONE, SPECIES_CRABOMINABLE}), }, - [SPECIES_ORBEETLE] = - { - ORBEETLE_MISC_INFO, - }, - - [SPECIES_NICKIT] = + [SPECIES_CRABOMINABLE] = { - .baseHP = 40, - .baseAttack = 28, - .baseDefense = 28, - .baseSpeed = 50, - .baseSpAttack = 47, - .baseSpDefense = 52, - .types = { TYPE_DARK, TYPE_DARK}, - .catchRate = 255, - .expYield = 49, - .evYield_SpDefense = 1, + .baseHP = 97, + .baseAttack = 132, + .baseDefense = 77, + .baseSpeed = 43, + .baseSpAttack = 62, + .baseSpDefense = 67, + .types = { TYPE_FIGHTING, TYPE_ICE}, + .catchRate = 60, + .expYield = 167, + .evYield_Attack = 2, + .itemRare = ITEM_CHERI_BERRY, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_RUN_AWAY, ABILITY_UNBURDEN, ABILITY_STAKEOUT}, - .bodyColor = BODY_COLOR_BROWN, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, + .abilities = {ABILITY_HYPER_CUTTER, ABILITY_IRON_FIST, ABILITY_ANGER_POINT}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, + .speciesName = _("Crabminabl"), + .cryId = CRY_CRABOMINABLE, + .natDexNum = NATIONAL_DEX_CRABOMINABLE, + .categoryName = _("Woolly Crab"), + .height = 17, + .weight = 1800, + .description = COMPOUND_STRING( + "It aimed for the top but got lost and\n" + "ended up on a snowy mountain. Being forced\n" + "to endure the cold, this Pokémon evolved\n" + "and grew thick fur."), + .pokemonScale = 259, + .pokemonOffset = 0, + .trainerScale = 290, + .trainerOffset = 1, + FRONT_PIC(Crabominable, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Crabominable, + .frontAnimId = ANIM_SHRINK_GROW_VIBRATE_FAST, + BACK_PIC(Crabominable, 64, 64), + .backPicYOffset = 3, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Crabominable), + ICON(Crabominable, 2), + .footprint = gMonFootprint_Crabominable, + LEARNSETS(Crabominable), + }, +#endif //P_FAMILY_CRABRAWLER + +#if P_FAMILY_ORICORIO +#define ORICORIO_MISC_INFO \ + .baseHP = 75, \ + .baseAttack = 70, \ + .baseDefense = 70, \ + .baseSpeed = 93, \ + .baseSpAttack = 98, \ + .baseSpDefense = 70, \ + .catchRate = 45, \ + .expYield = 167, \ + .evYield_SpAttack = 2, \ + .itemRare = ITEM_HONEY, \ + .genderRatio = PERCENT_FEMALE(75), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, \ + .abilities = {ABILITY_DANCER, ABILITY_NONE}, \ + .noFlip = FALSE, \ + .speciesName = _("Oricorio"), \ + .natDexNum = NATIONAL_DEX_ORICORIO, \ + .categoryName = _("Dancing"), \ + .height = 6, \ + .weight = 34, \ + .pokemonScale = 422, \ + .pokemonOffset = 12, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .frontAnimFrames = sAnims_Oricorio, \ + .backPicYOffset = 0, \ + .footprint = gMonFootprint_Oricorio, \ + LEARNSETS(Oricorio), \ + .formSpeciesIdTable = sOricorioFormSpeciesIdTable, \ + .formChangeTable = sOricorioFormChangeTable + //.backAnimId = BACK_ANIM_NONE, \ + + [SPECIES_ORICORIO_BAILE] = + { + ORICORIO_MISC_INFO, + .types = { TYPE_FIRE, TYPE_FLYING }, + .bodyColor = BODY_COLOR_RED, + .cryId = CRY_ORICORIO_BAILE, + .description = COMPOUND_STRING( + "Oricorio can change its body by sipping\n" + "different coloured nectar. It's enemies'\n" + "hearts melt at the sight of its varying,\n" + "beautiful dances."), + FRONT_PIC(OricorioBaile, 56, 64), + .frontPicYOffset = 2, + .frontAnimId = ANIM_CONCAVE_ARC_SMALL, + BACK_PIC(OricorioBaile, 64, 64), + //.backAnimId = BACK_ANIM_NONE, + PALETTE(OricorioBaile), + ICON(OricorioBaile, 0), + }, + + [SPECIES_ORICORIO_POM_POM] = + { + ORICORIO_MISC_INFO, + .types = { TYPE_ELECTRIC, TYPE_FLYING }, + .bodyColor = BODY_COLOR_YELLOW, + .cryId = CRY_ORICORIO_POM_POM, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(OricorioPomPom, 56, 56), + .frontPicYOffset = 5, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(OricorioPomPom, 64, 64), + //.backAnimId = BACK_ANIM_NONE, + PALETTE(OricorioPomPom), + ICON(OricorioPomPom, 1), }, - [SPECIES_THIEVUL] = + [SPECIES_ORICORIO_PAU] = { - .baseHP = 70, - .baseAttack = 58, - .baseDefense = 58, - .baseSpeed = 90, - .baseSpAttack = 87, - .baseSpDefense = 92, - .types = { TYPE_DARK, TYPE_DARK}, - .catchRate = 127, - .expYield = 159, - .evYield_SpDefense = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_RUN_AWAY, ABILITY_UNBURDEN, ABILITY_STAKEOUT}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_GOSSIFLEUR] = + ORICORIO_MISC_INFO, + .types = { TYPE_PSYCHIC, TYPE_FLYING }, + .bodyColor = BODY_COLOR_PINK, + .cryId = CRY_ORICORIO_PAU, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(OricorioPau, 56, 64), + .frontPicYOffset = 3, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(OricorioPau, 64, 64), + //.backAnimId = BACK_ANIM_NONE, + PALETTE(OricorioPau), + ICON(OricorioPau, 1), + }, + + [SPECIES_ORICORIO_SENSU] = + { + ORICORIO_MISC_INFO, + .types = { TYPE_GHOST, TYPE_FLYING }, + .bodyColor = BODY_COLOR_PURPLE, + .cryId = CRY_ORICORIO_SENSU, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(OricorioSensu, 64, 56), + .frontPicYOffset = 4, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(OricorioSensu, 64, 64), + //.backAnimId = BACK_ANIM_NONE, + PALETTE(OricorioSensu), + ICON(OricorioSensu, 0), + }, +#endif //P_FAMILY_ORICORIO + +#if P_FAMILY_CUTIEFLY + [SPECIES_CUTIEFLY] = { .baseHP = 40, - .baseAttack = 40, - .baseDefense = 60, - .baseSpeed = 10, - .baseSpAttack = 40, - .baseSpDefense = 60, - .types = { TYPE_GRASS, TYPE_GRASS}, + .baseAttack = 45, + .baseDefense = 40, + .baseSpeed = 84, + .baseSpAttack = 55, + .baseSpDefense = 40, + .types = { TYPE_BUG, TYPE_FAIRY}, .catchRate = 190, - .expYield = 50, - .evYield_SpDefense = 1, + .expYield = 61, + .evYield_Speed = 1, + .itemRare = ITEM_HONEY, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_COTTON_DOWN, ABILITY_REGENERATOR, ABILITY_EFFECT_SPORE}, - .bodyColor = BODY_COLOR_GREEN, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_FAIRY}, + .abilities = {ABILITY_HONEY_GATHER, ABILITY_SHIELD_DUST, ABILITY_SWEET_VEIL}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, + .speciesName = _("Cutiefly"), + .cryId = CRY_CUTIEFLY, + .natDexNum = NATIONAL_DEX_CUTIEFLY, + .categoryName = _("Bee Fly"), + .height = 1, + .weight = 2, + .description = COMPOUND_STRING( + "Myriads of Cutiefly flutter above the\n" + "heads of people who have auras resembling\n" + "those of flowers. It can identify which\n" + "flowers are about to bloom."), + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Cutiefly, 33, 35), + .frontPicYOffset = 16, + .frontAnimFrames = sAnims_Cutiefly, + .frontAnimId = ANIM_H_SLIDE_WOBBLE, + .enemyMonElevation = 10, + BACK_PIC(Cutiefly, 56, 48), + .backPicYOffset = 15, + .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, + PALETTE(Cutiefly), + ICON(Cutiefly, 2), + .footprint = gMonFootprint_Cutiefly, + LEARNSETS(Cutiefly), + .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_RIBOMBEE}), }, - [SPECIES_ELDEGOSS] = + [SPECIES_RIBOMBEE] = { .baseHP = 60, - .baseAttack = 50, - .baseDefense = 90, - .baseSpeed = 60, - .baseSpAttack = 80, - .baseSpDefense = 120, - .types = { TYPE_GRASS, TYPE_GRASS}, + .baseAttack = 55, + .baseDefense = 60, + .baseSpeed = 124, + .baseSpAttack = 95, + .baseSpDefense = 70, + .types = { TYPE_BUG, TYPE_FAIRY}, .catchRate = 75, - .expYield = 161, - .evYield_SpDefense = 2, + .expYield = 162, + .evYield_Speed = 2, + .itemRare = ITEM_HONEY, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_COTTON_DOWN, ABILITY_REGENERATOR, ABILITY_EFFECT_SPORE}, - .bodyColor = BODY_COLOR_GREEN, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_FAIRY}, + .abilities = {ABILITY_HONEY_GATHER, ABILITY_SHIELD_DUST, ABILITY_SWEET_VEIL}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, + .speciesName = _("Ribombee"), + .cryId = CRY_RIBOMBEE, + .natDexNum = NATIONAL_DEX_RIBOMBEE, + .categoryName = _("Bee Fly"), + .height = 2, + .weight = 5, + .description = COMPOUND_STRING( + "Ribombee rolls up pollen into puffs.\n" + "It makes many different varieties, some\n" + "used as food and others used in battle.\n" + "They are sometimes sold as supplements."), + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Ribombee, 32, 47), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Ribombee, + .frontAnimId = ANIM_CONVEX_DOUBLE_ARC_TWICE, + .enemyMonElevation = 6, + BACK_PIC(Ribombee, 56, 48), + .backPicYOffset = 11, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + PALETTE(Ribombee), + ICON(Ribombee, 2), + .footprint = gMonFootprint_Ribombee, + LEARNSETS(Ribombee), + }, +#endif //P_FAMILY_CUTIEFLY + +#if P_FAMILY_ROCKRUFF +#define ROCKRUFF_MISC_INFO \ + .baseHP = 45, \ + .baseAttack = 65, \ + .baseDefense = 40, \ + .baseSpeed = 60, \ + .baseSpAttack = 30, \ + .baseSpDefense = 40, \ + .types = { TYPE_ROCK, TYPE_ROCK}, \ + .catchRate = 190, \ + .expYield = 56, \ + .evYield_Attack = 1, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 15, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, \ + .bodyColor = BODY_COLOR_BROWN, \ + .noFlip = FALSE, \ + .speciesName = _("Rockruff"), \ + .cryId = CRY_ROCKRUFF, \ + .natDexNum = NATIONAL_DEX_ROCKRUFF, \ + .categoryName = _("Puppy"), \ + .height = 5, \ + .weight = 92, \ + .description = gRockruffPokedexText, \ + .pokemonScale = 432, \ + .pokemonOffset = 13, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .frontPicYOffset = 11, \ + .frontAnimFrames = sAnims_Rockruff, \ + .frontAnimId = ANIM_V_STRETCH, \ + .backPicYOffset = 7, \ + PALETTE(Rockruff), \ + ICON(Rockruff, 2), \ + .footprint = gMonFootprint_Rockruff, \ + LEARNSETS(Rockruff), \ + .formSpeciesIdTable = sRockruffFormSpeciesIdTable + + [SPECIES_ROCKRUFF] = + { + ROCKRUFF_MISC_INFO, + .abilities = {ABILITY_KEEN_EYE, ABILITY_VITAL_SPIRIT, ABILITY_STEADFAST}, + FRONT_PIC(Rockruff, 37, 39), + BACK_PIC(Rockruff, 64, 56), + .backAnimId = BACK_ANIM_V_STRETCH, + .evolutions = EVOLUTION({EVO_LEVEL_DAY, 25, SPECIES_LYCANROC_MIDDAY}, + {EVO_LEVEL_NIGHT, 25, SPECIES_LYCANROC_MIDNIGHT}), + }, + + [SPECIES_ROCKRUFF_OWN_TEMPO] = + { + ROCKRUFF_MISC_INFO, + .abilities = {ABILITY_OWN_TEMPO, ABILITY_NONE, ABILITY_NONE}, + FRONT_PIC(Rockruff, 40, 48), + BACK_PIC(Rockruff, 64, 56), + //.backAnimId = BACK_ANIM_NONE, + .evolutions = EVOLUTION({EVO_LEVEL_DUSK, 25, SPECIES_LYCANROC_DUSK}), + }, + +#define LYCANROC_MISC_INFO \ + .types = { TYPE_ROCK, TYPE_ROCK}, \ + .catchRate = 90, \ + .expYield = 170, \ + .evYield_Attack = 2, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 15, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, \ + .noFlip = FALSE, \ + .speciesName = _("Lycanroc"), \ + .natDexNum = NATIONAL_DEX_LYCANROC, \ + .categoryName = _("Wolf"), \ + .weight = 250, \ + .pokemonScale = 366, \ + .pokemonOffset = 7, \ + .trainerScale = 257, \ + .trainerOffset = 0, \ + BACK_PIC(LycanrocMidday, 64, 56), \ + .footprint = gMonFootprint_Lycanroc, \ + .formSpeciesIdTable = sLycanrocFormSpeciesIdTable + + [SPECIES_LYCANROC_MIDDAY] = + { + LYCANROC_MISC_INFO, + .baseHP = 75, + .baseAttack = 115, + .baseDefense = 65, + .baseSpeed = 112, + .baseSpAttack = 55, + .baseSpDefense = 65, + .abilities = {ABILITY_KEEN_EYE, ABILITY_SAND_RUSH, ABILITY_STEADFAST}, + .bodyColor = BODY_COLOR_BROWN, + .cryId = CRY_LYCANROC_MIDDAY, + .height = 8, + .description = COMPOUND_STRING( + "Well equipped with claws and fangs, it\n" + "also uses the sharp rocks in its mane\n" + "as weapons. It will attack with no regard\n" + "for its own safety."), + FRONT_PIC(LycanrocMidday, 57, 53), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_LycanrocMidday, + .frontAnimId = ANIM_V_SHAKE, + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(LycanrocMidday), + ICON(LycanrocMidday, 2), + LEARNSETS(LycanrocMidday), }, - [SPECIES_WOOLOO] = + [SPECIES_LYCANROC_MIDNIGHT] = { - .baseHP = 42, - .baseAttack = 40, - .baseDefense = 55, - .baseSpeed = 48, - .baseSpAttack = 40, - .baseSpDefense = 45, - .types = { TYPE_NORMAL, TYPE_NORMAL}, - .catchRate = 255, - .expYield = 122, - .evYield_Defense = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_FLUFFY, ABILITY_RUN_AWAY, ABILITY_BULLETPROOF}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, + LYCANROC_MISC_INFO, + .baseHP = 85, + .baseAttack = 115, + .baseDefense = 75, + .baseSpeed = 82, + .baseSpAttack = 55, + .baseSpDefense = 75, + .abilities = {ABILITY_KEEN_EYE, ABILITY_VITAL_SPIRIT, ABILITY_NO_GUARD}, + .bodyColor = BODY_COLOR_RED, + .cryId = CRY_LYCANROC_MIDNIGHT, + .height = 11, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(LycanrocMidnight, 56, 61), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_LycanrocMidnight, + .frontAnimId = ANIM_SHRINK_GROW_VIBRATE_SLOW, + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(LycanrocMidnight), + ICON(LycanrocMidnight, 0), + LEARNSETS(LycanrocMidnight), }, - [SPECIES_DUBWOOL] = + [SPECIES_LYCANROC_DUSK] = { - .baseHP = 72, - .baseAttack = 80, - .baseDefense = 100, - .baseSpeed = 88, - .baseSpAttack = 60, - .baseSpDefense = 90, - .types = { TYPE_NORMAL, TYPE_NORMAL}, - .catchRate = 127, - .expYield = 172, - .evYield_Defense = 2, + LYCANROC_MISC_INFO, + .baseHP = 75, + .baseAttack = 117, + .baseDefense = 65, + .baseSpeed = 110, + .baseSpAttack = 55, + .baseSpDefense = 65, + .abilities = {ABILITY_TOUGH_CLAWS, ABILITY_NONE}, + .bodyColor = BODY_COLOR_BROWN, + .cryId = CRY_LYCANROC_DUSK, + .height = 8, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(LycanrocDusk, 57, 58), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_LycanrocDusk, + .frontAnimId = ANIM_V_SHAKE, + .backPicYOffset = 6, + .backAnimId = BACK_ANIM_V_SHAKE, + PALETTE(LycanrocDusk), + ICON(LycanrocDusk, 0), + LEARNSETS(LycanrocDusk), + }, +#endif //P_FAMILY_ROCKRUFF + +#if P_FAMILY_WISHIWASHI +#define WISHIWASHI_MISC_INFO \ + .types = { TYPE_WATER, TYPE_WATER}, \ + .catchRate = 60, \ + .expYield = 61, \ + .evYield_HP = 1, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 15, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_FAST, \ + .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, \ + .abilities = {ABILITY_SCHOOLING, ABILITY_NONE}, \ + .bodyColor = BODY_COLOR_BLUE, \ + .noFlip = FALSE, \ + .speciesName = _("Wishiwashi"), \ + .natDexNum = NATIONAL_DEX_WISHIWASHI, \ + .categoryName = _("Small Fry"), \ + .pokemonScale = 682, \ + .pokemonOffset = 24, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Wishiwashi, \ + LEARNSETS(Wishiwashi), \ + .formSpeciesIdTable = sWishiwashiFormSpeciesIdTable, \ + .formChangeTable = sWishiwashiFormChangeTable + + [SPECIES_WISHIWASHI_SOLO] = + { + WISHIWASHI_MISC_INFO, + .baseHP = 45, + .baseAttack = 20, + .baseDefense = 20, + .baseSpeed = 40, + .baseSpAttack = 25, + .baseSpDefense = 25, + .cryId = CRY_WISHIWASHI_SOLO, + .height = 2, + .weight = 3, + .description = COMPOUND_STRING( + "When it's in trouble, its eyes moisten and\n" + "begin to shine. The shining light attracts\n" + "its comrades, and they stand together\n" + "against their enemies."), + FRONT_PIC(WishiwashiSolo, 40, 24), + .frontPicYOffset = 15, + .frontAnimFrames = sAnims_WishiwashiSolo, + .frontAnimId = ANIM_V_SLIDE_WOBBLE_SMALL, + BACK_PIC(WishiwashiSolo, 56, 32), + .backPicYOffset = 18, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(WishiwashiSolo), + ICON(WishiwashiSolo, 2), + }, + + [SPECIES_WISHIWASHI_SCHOOL] = + { + WISHIWASHI_MISC_INFO, + .baseHP = 45, + .baseAttack = 140, + .baseDefense = 130, + .baseSpeed = 30, + .baseSpAttack = 140, + .baseSpDefense = 135, + .cryId = CRY_WISHIWASHI_SCHOOL, + .height = 82, + .weight = 786, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(WishiwashiSchool, 64, 64), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_WishiwashiSchool, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, //Todo + BACK_PIC(WishiwashiSchool, 64, 56), + .backPicYOffset = 5, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(WishiwashiSchool), + ICON(WishiwashiSchool, 0), + }, +#endif //P_FAMILY_WISHIWASHI + +#if P_FAMILY_MAREANIE + [SPECIES_MAREANIE] = + { + .baseHP = 50, + .baseAttack = 53, + .baseDefense = 62, + .baseSpeed = 45, + .baseSpAttack = 43, + .baseSpDefense = 52, + .types = { TYPE_POISON, TYPE_WATER}, + .catchRate = 190, + .expYield = 61, + .evYield_Defense = 1, + .itemRare = ITEM_POISON_BARB, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_FLUFFY, ABILITY_STEADFAST, ABILITY_BULLETPROOF}, - .bodyColor = BODY_COLOR_WHITE, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, + .abilities = {ABILITY_MERCILESS, ABILITY_LIMBER, ABILITY_REGENERATOR}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .speciesName = _("Mareanie"), + .cryId = CRY_MAREANIE, + .natDexNum = NATIONAL_DEX_MAREANIE, + .categoryName = _("Brutal Star"), + .height = 4, + .weight = 80, + .description = COMPOUND_STRING( + "It's found crawling on beaches and\n" + "seafloors. The coral that grows on\n" + "Corsola's head is as good as a five-star\n" + "banquet to this Pokémon."), + .pokemonScale = 491, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Mareanie, 48, 40), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Mareanie, + .frontAnimId = ANIM_GLOW_PURPLE, + BACK_PIC(Mareanie, 64, 48), + .backPicYOffset = 15, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Mareanie), + ICON(Mareanie, 2), + .footprint = gMonFootprint_Mareanie, + LEARNSETS(Mareanie), + .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_TOXAPEX}), }, - [SPECIES_CHEWTLE] = + [SPECIES_TOXAPEX] = { .baseHP = 50, - .baseAttack = 64, - .baseDefense = 50, - .baseSpeed = 44, - .baseSpAttack = 38, - .baseSpDefense = 38, - .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 255, - .expYield = 57, - .evYield_Attack = 1, + .baseAttack = 63, + .baseDefense = 152, + .baseSpeed = 35, + .baseSpAttack = 53, + .baseSpDefense = 142, + .types = { TYPE_POISON, TYPE_WATER}, + .catchRate = 75, + .expYield = 173, + .evYield_Defense = 2, + .itemRare = ITEM_POISON_BARB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_STRONG_JAW, ABILITY_SHELL_ARMOR, ABILITY_SWIFT_SWIM}, - .bodyColor = BODY_COLOR_GREEN, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, + .abilities = {ABILITY_MERCILESS, ABILITY_LIMBER, ABILITY_REGENERATOR}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - }, - - [SPECIES_DREDNAW] = - { - DREDNAW_MISC_INFO, - }, - - [SPECIES_YAMPER] = + .speciesName = _("Toxapex"), + .cryId = CRY_TOXAPEX, + .natDexNum = NATIONAL_DEX_TOXAPEX, + .categoryName = _("Brutal Star"), + .height = 7, + .weight = 145, + .description = COMPOUND_STRING( + "Those attacked by Toxapex's poison will\n" + "suffer intense pain for three days and\n" + "three nights. Post-recovery, there will be\n" + "some aftereffects."), + .pokemonScale = 365, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Toxapex, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Toxapex, + .frontAnimId = ANIM_SHAKE_GLOW_PURPLE_SLOW, + BACK_PIC(Toxapex, 64, 56), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Toxapex), + ICON(Toxapex, 0), + .footprint = gMonFootprint_Toxapex, + LEARNSETS(Toxapex), + }, +#endif //P_FAMILY_MAREANIE + +#if P_FAMILY_MUDBRAY + [SPECIES_MUDBRAY] = { - .baseHP = 59, - .baseAttack = 45, - .baseDefense = 50, - .baseSpeed = 26, - .baseSpAttack = 40, - .baseSpDefense = 50, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, - .catchRate = 255, - .expYield = 54, - .evYield_HP = 1, + .baseHP = 70, + .baseAttack = 100, + .baseDefense = 70, + .baseSpeed = 45, + .baseSpAttack = 45, + .baseSpDefense = 55, + .types = { TYPE_GROUND, TYPE_GROUND}, + .catchRate = 190, + .expYield = 77, + .evYield_Attack = 1, + .itemRare = ITEM_LIGHT_CLAY, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, + .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_BALL_FETCH, ABILITY_NONE, ABILITY_RATTLED}, - .bodyColor = BODY_COLOR_YELLOW, + .abilities = {ABILITY_OWN_TEMPO, ABILITY_STAMINA, ABILITY_INNER_FOCUS}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .speciesName = _("Mudbray"), + .cryId = CRY_MUDBRAY, + .natDexNum = NATIONAL_DEX_MUDBRAY, + .categoryName = _("Donkey"), + .height = 10, + .weight = 1100, + .description = COMPOUND_STRING( + "The mud stuck to Mudbray's hooves\n" + "enhances its grip and its powerful running\n" + "gait. Eating dirt, making mud, and playing\n" + "in the mire form its daily routine."), + .pokemonScale = 305, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Mudbray, 48, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Mudbray, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(Mudbray, 64, 56), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Mudbray), + ICON(Mudbray, 2), + .footprint = gMonFootprint_Mudbray, + LEARNSETS(Mudbray), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_MUDSDALE}), }, - [SPECIES_BOLTUND] = + [SPECIES_MUDSDALE] = { - .baseHP = 69, - .baseAttack = 90, - .baseDefense = 60, - .baseSpeed = 121, - .baseSpAttack = 90, - .baseSpDefense = 60, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, - .catchRate = 45, - .expYield = 172, - .evYield_Speed = 2, + .baseHP = 100, + .baseAttack = 125, + .baseDefense = 100, + .baseSpeed = 35, + .baseSpAttack = 55, + .baseSpDefense = 85, + .types = { TYPE_GROUND, TYPE_GROUND}, + .catchRate = 60, + .expYield = 175, + .evYield_Attack = 2, + .itemRare = ITEM_LIGHT_CLAY, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, + .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_STRONG_JAW, ABILITY_NONE, ABILITY_COMPETITIVE}, - .bodyColor = BODY_COLOR_YELLOW, + .abilities = {ABILITY_OWN_TEMPO, ABILITY_STAMINA, ABILITY_INNER_FOCUS}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - }, - - [SPECIES_ROLYCOLY] = + .speciesName = _("Mudsdale"), + .cryId = CRY_MUDSDALE, + .natDexNum = NATIONAL_DEX_MUDSDALE, + .categoryName = _("Draft Horse"), + .height = 25, + .weight = 9200, + .description = COMPOUND_STRING( + "Its heavy, mud-covered kicks are its\n" + "best means of attack, and it can reduce\n" + "large trucks to scrap without breaking\n" + "a sweat."), + .pokemonScale = 257, + .pokemonOffset = 10, + .trainerScale = 423, + .trainerOffset = 8, + FRONT_PIC(Mudsdale, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Mudsdale, + .frontAnimId = ANIM_V_SHAKE_TWICE, + BACK_PIC(Mudsdale, 64, 56), + .backPicYOffset = 5, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Mudsdale), + ICON(Mudsdale, 0), + .footprint = gMonFootprint_Mudsdale, + LEARNSETS(Mudsdale), + }, +#endif //P_FAMILY_MUDBRAY + +#if P_FAMILY_DEWPIDER + [SPECIES_DEWPIDER] = { - .baseHP = 30, + .baseHP = 38, .baseAttack = 40, - .baseDefense = 50, - .baseSpeed = 30, + .baseDefense = 52, + .baseSpeed = 27, .baseSpAttack = 40, - .baseSpDefense = 50, - .types = { TYPE_ROCK, TYPE_ROCK}, - .catchRate = 255, - .expYield = 48, - .evYield_Defense = 1, + .baseSpDefense = 72, + .types = { TYPE_WATER, TYPE_BUG}, + .catchRate = 200, + .expYield = 54, + .evYield_SpDefense = 1, + .itemRare = ITEM_MYSTIC_WATER, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_STEAM_ENGINE, ABILITY_HEATPROOF, ABILITY_FLASH_FIRE}, - .bodyColor = BODY_COLOR_BLACK, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_BUG}, + .abilities = {ABILITY_WATER_BUBBLE, ABILITY_NONE, ABILITY_WATER_ABSORB}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, + .speciesName = _("Dewpider"), + .cryId = CRY_DEWPIDER, + .natDexNum = NATIONAL_DEX_DEWPIDER, + .categoryName = _("Water Bubble"), + .height = 3, + .weight = 40, + .description = COMPOUND_STRING( + "It crawls onto the land in search of food.\n" + "When it comes across enemies or potential\n" + "prey, this Pokémon smashes its\n" + "water-bubble-covered head into them."), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Dewpider, 32, 48), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_Dewpider, + .frontAnimId = ANIM_SHRINK_GROW, + BACK_PIC(Dewpider, 40, 48), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Dewpider), + ICON(Dewpider, 0), + .footprint = gMonFootprint_Dewpider, + LEARNSETS(Dewpider), + .evolutions = EVOLUTION({EVO_LEVEL, 22, SPECIES_ARAQUANID}), }, - [SPECIES_CARKOL] = + [SPECIES_ARAQUANID] = { - .baseHP = 80, - .baseAttack = 60, - .baseDefense = 90, - .baseSpeed = 50, - .baseSpAttack = 60, - .baseSpDefense = 70, - .types = { TYPE_ROCK, TYPE_FIRE}, - .catchRate = 120, - .expYield = 144, - .evYield_Defense = 2, + .baseHP = 68, + .baseAttack = 70, + .baseDefense = 92, + .baseSpeed = 42, + .baseSpAttack = 50, + .baseSpDefense = 132, + .types = { TYPE_WATER, TYPE_BUG}, + .catchRate = 100, + .expYield = 159, + .evYield_SpDefense = 2, + .itemRare = ITEM_MYSTIC_WATER, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_STEAM_ENGINE, ABILITY_FLAME_BODY, ABILITY_FLASH_FIRE}, - .bodyColor = BODY_COLOR_BLACK, - .noFlip = FALSE, - }, - - [SPECIES_COALOSSAL] = - { - COALOSSAL_MISC_INFO, - }, - - [SPECIES_APPLIN] = - { - .baseHP = 40, - .baseAttack = 40, - .baseDefense = 80, - .baseSpeed = 20, - .baseSpAttack = 40, - .baseSpDefense = 40, - .types = { TYPE_GRASS, TYPE_DRAGON}, - .catchRate = 255, - .expYield = 52, - .evYield_Defense = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_RIPEN, ABILITY_GLUTTONY, ABILITY_BULLETPROOF}, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_BUG}, + .abilities = {ABILITY_WATER_BUBBLE, ABILITY_NONE, ABILITY_WATER_ABSORB}, .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - }, - - [SPECIES_FLAPPLE] = - { - FLAPPLE_MISC_INFO, - }, - - [SPECIES_APPLETUN] = - { - APPLETUN_MISC_INFO, - }, - - [SPECIES_SILICOBRA] = + .speciesName = _("Araquanid"), + .cryId = CRY_ARAQUANID, + .natDexNum = NATIONAL_DEX_ARAQUANID, + .categoryName = _("Water Bubble"), + .height = 18, + .weight = 820, + .description = COMPOUND_STRING( + "Despite what its appearance suggests,\n" + "it cares for others. If it finds vulnerable,\n" + "weak Pokémon, it protectively brings\n" + "them into its water bubble."), + .pokemonScale = 267, + .pokemonOffset = 2, + .trainerScale = 286, + .trainerOffset = 1, + FRONT_PIC(Araquanid, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Araquanid, + .frontAnimId = ANIM_H_SHAKE, + BACK_PIC(Araquanid, 64, 48), + .backPicYOffset = 12, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Araquanid), + ICON(Araquanid, 2), + .footprint = gMonFootprint_Araquanid, + LEARNSETS(Araquanid), + }, +#endif //P_FAMILY_DEWPIDER + +#if P_FAMILY_FOMANTIS + [SPECIES_FOMANTIS] = { - .baseHP = 52, - .baseAttack = 57, - .baseDefense = 75, - .baseSpeed = 46, - .baseSpAttack = 35, - .baseSpDefense = 50, - .types = { TYPE_GROUND, TYPE_GROUND}, - .catchRate = 255, - .expYield = 63, - .evYield_Defense = 1, + .baseHP = 40, + .baseAttack = 55, + .baseDefense = 35, + .baseSpeed = 35, + .baseSpAttack = 50, + .baseSpDefense = 35, + .types = { TYPE_GRASS, TYPE_GRASS}, + .catchRate = 190, + .expYield = 50, + .evYield_Attack = 1, + .itemRare = ITEM_MIRACLE_SEED, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_SAND_SPIT, ABILITY_SHED_SKIN, ABILITY_SAND_VEIL}, - .bodyColor = BODY_COLOR_GREEN, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, + .abilities = {ABILITY_LEAF_GUARD, ABILITY_NONE, ABILITY_CONTRARY}, + .bodyColor = BODY_COLOR_PINK, .noFlip = FALSE, + .speciesName = _("Fomantis"), + .cryId = CRY_FOMANTIS, + .natDexNum = NATIONAL_DEX_FOMANTIS, + .categoryName = _("Sickle Grass"), + .height = 3, + .weight = 15, + .description = COMPOUND_STRING( + "During the day, it sleeps and soaks up\n" + "light. They give off a sweet and refreshing\n" + "scent. Cutiefly often gather near the tall\n" + "grass where Fomantis are hiding."), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Fomantis, 40, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Fomantis, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + BACK_PIC(Fomantis, 40, 56), + .backPicYOffset = 5, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Fomantis), + ICON(Fomantis, 1), + .footprint = gMonFootprint_Fomantis, + LEARNSETS(Fomantis), + .evolutions = EVOLUTION({EVO_LEVEL_DAY, 34, SPECIES_LURANTIS}), }, - [SPECIES_SANDACONDA] = - { - SANDACONDA_MISC_INFO, - }, - - [SPECIES_CRAMORANT] = CRAMORANT_SPECIES_INFO, - - [SPECIES_ARROKUDA] = + [SPECIES_LURANTIS] = { - .baseHP = 41, - .baseAttack = 63, - .baseDefense = 40, - .baseSpeed = 66, - .baseSpAttack = 40, - .baseSpDefense = 30, - .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 255, - .expYield = 56, - .evYield_Speed = 1, + .baseHP = 70, + .baseAttack = 105, + .baseDefense = 90, + .baseSpeed = 45, + .baseSpAttack = 80, + .baseSpDefense = 90, + .types = { TYPE_GRASS, TYPE_GRASS}, + .catchRate = 75, + .expYield = 168, + .evYield_Attack = 2, + .itemRare = ITEM_MIRACLE_SEED, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, - .abilities = {ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_PROPELLER_TAIL}, - .bodyColor = BODY_COLOR_BROWN, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, + .abilities = {ABILITY_LEAF_GUARD, ABILITY_NONE, ABILITY_CONTRARY}, + .bodyColor = BODY_COLOR_PINK, .noFlip = FALSE, - }, - - [SPECIES_BARRASKEWDA] = + .speciesName = _("Lurantis"), + .cryId = CRY_LURANTIS, + .natDexNum = NATIONAL_DEX_LURANTIS, + .categoryName = _("Bloom Sickle"), + .height = 9, + .weight = 185, + .description = COMPOUND_STRING( + "It requires a lot of effort to maintain\n" + "Lurantis's vivid coloring, but some\n" + "collectors enjoy this work and treat it\n" + "as their hobby."), + .pokemonScale = 338, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Lurantis, 48, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Lurantis, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Lurantis, 56, 64), + .backPicYOffset = 1, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Lurantis), + ICON(Lurantis, 1), + .footprint = gMonFootprint_Lurantis, + LEARNSETS(Lurantis), + }, +#endif //P_FAMILY_FOMANTIS + +#if P_FAMILY_MORELULL + [SPECIES_MORELULL] = { - .baseHP = 61, - .baseAttack = 123, - .baseDefense = 60, - .baseSpeed = 136, - .baseSpAttack = 60, - .baseSpDefense = 50, - .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 60, - .expYield = 172, - .evYield_Speed = 2, + .baseHP = 40, + .baseAttack = 35, + .baseDefense = 55, + .baseSpeed = 15, + .baseSpAttack = 65, + .baseSpDefense = 75, + .types = { TYPE_GRASS, TYPE_FAIRY}, + .catchRate = 190, + .expYield = 57, + .evYield_SpDefense = 1, + .itemCommon = ITEM_TINY_MUSHROOM, + .itemRare = ITEM_BIG_MUSHROOM, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, - .abilities = {ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_PROPELLER_TAIL}, - .bodyColor = BODY_COLOR_BROWN, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, + .abilities = {ABILITY_ILLUMINATE, ABILITY_EFFECT_SPORE, ABILITY_RAIN_DISH}, + .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, + .speciesName = _("Morelull"), + .cryId = CRY_MORELULL, + .natDexNum = NATIONAL_DEX_MORELULL, + .categoryName = _("Illuminate"), + .height = 2, + .weight = 15, + .description = COMPOUND_STRING( + "As it drowses the day away, it nourishes\n" + "itself by sucking from tree roots.\n" + "It wakens at the fall of night, wandering\n" + "off in search of a new tree."), + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Morelull, 24, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Morelull, + .frontAnimId = ANIM_SHAKE_FLASH_YELLOW, + BACK_PIC(Morelull, 40, 48), + .backPicYOffset = 9, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Morelull), + ICON(Morelull, 0), + .footprint = gMonFootprint_Morelull, + LEARNSETS(Morelull), + .evolutions = EVOLUTION({EVO_LEVEL, 24, SPECIES_SHIINOTIC}), }, - [SPECIES_TOXEL] = + [SPECIES_SHIINOTIC] = { - .baseHP = 40, - .baseAttack = 38, - .baseDefense = 35, - .baseSpeed = 40, - .baseSpAttack = 54, - .baseSpDefense = 35, - .types = { TYPE_ELECTRIC, TYPE_POISON}, + .baseHP = 60, + .baseAttack = 45, + .baseDefense = 80, + .baseSpeed = 30, + .baseSpAttack = 90, + .baseSpDefense = 100, + .types = { TYPE_GRASS, TYPE_FAIRY}, .catchRate = 75, - .expYield = 48, - .evYield_SpAttack = 1, + .expYield = 142, + .evYield_SpDefense = 2, + .itemCommon = ITEM_TINY_MUSHROOM, + .itemRare = ITEM_BIG_MUSHROOM, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_RATTLED, ABILITY_STATIC, ABILITY_KLUTZ}, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, + .abilities = {ABILITY_ILLUMINATE, ABILITY_EFFECT_SPORE, ABILITY_RAIN_DISH}, .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, - }, - - [SPECIES_TOXTRICITY_AMPED] = - { - TOXTRICITY_MISC_INFO(ABILITY_PLUS), - }, - - [SPECIES_SIZZLIPEDE] = + .speciesName = _("Shiinotic"), + .cryId = CRY_SHIINOTIC, + .natDexNum = NATIONAL_DEX_SHIINOTIC, + .categoryName = _("Illuminate"), + .height = 10, + .weight = 115, + .description = COMPOUND_STRING( + "Forests where Shiinotic live are\n" + "treacherous to enter at night.\n" + "People confused by its strange lights\n" + "can never find their way home again."), + .pokemonScale = 305, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Shiinotic, 56, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Shiinotic, + .frontAnimId = ANIM_SHAKE_GLOW_WHITE_SLOW, + BACK_PIC(Shiinotic, 64, 48), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Shiinotic), + ICON(Shiinotic, 1), + .footprint = gMonFootprint_Shiinotic, + LEARNSETS(Shiinotic), + }, +#endif //P_FAMILY_MORELULL + +#if P_FAMILY_SALANDIT + [SPECIES_SALANDIT] = { - .baseHP = 50, - .baseAttack = 65, - .baseDefense = 45, - .baseSpeed = 45, - .baseSpAttack = 50, - .baseSpDefense = 50, - .types = { TYPE_FIRE, TYPE_BUG}, - .catchRate = 190, - .expYield = 61, - .evYield_Attack = 1, - .genderRatio = PERCENT_FEMALE(50), + .baseHP = 48, + .baseAttack = 44, + .baseDefense = 40, + .baseSpeed = 77, + .baseSpAttack = 71, + .baseSpDefense = 40, + .types = { TYPE_POISON, TYPE_FIRE}, + .catchRate = 120, + .expYield = 64, + .evYield_Speed = 1, + .itemRare = ITEM_SMOKE_BALL, + .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_FLASH_FIRE, ABILITY_WHITE_SMOKE, ABILITY_FLAME_BODY}, - .bodyColor = BODY_COLOR_RED, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_CORROSION, ABILITY_NONE, ABILITY_OBLIVIOUS}, + .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, + .speciesName = _("Salandit"), + .cryId = CRY_SALANDIT, + .natDexNum = NATIONAL_DEX_SALANDIT, + .categoryName = _("Toxic Lizard"), + .height = 6, + .weight = 48, + .description = COMPOUND_STRING( + "It burns its bodily fluids to create a\n" + "sweet-smelling poisonous gas. When its\n" + "enemies become disoriented from inhaling\n" + "the gas, it attacks them."), + .pokemonScale = 422, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Salandit, 56, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Salandit, + .frontAnimId = ANIM_GLOW_RED, + BACK_PIC(Salandit, 56, 40), + .backPicYOffset = 12, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Salandit), + ICON(Salandit, 2), + .footprint = gMonFootprint_Salandit, + LEARNSETS(Salandit), + .evolutions = EVOLUTION({EVO_LEVEL_FEMALE, 33, SPECIES_SALAZZLE}), }, - [SPECIES_CENTISKORCH] = - { - CENTISKORCH_MISC_INFO, - }, - - [SPECIES_CLOBBOPUS] = + [SPECIES_SALAZZLE] = { - .baseHP = 50, - .baseAttack = 68, + .baseHP = 68, + .baseAttack = 64, .baseDefense = 60, - .baseSpeed = 32, - .baseSpAttack = 50, + .baseSpeed = 117, + .baseSpAttack = 111, + .baseSpDefense = 60, + .types = { TYPE_POISON, TYPE_FIRE}, + .catchRate = 45, + .expYield = 168, + .evYield_Speed = 2, + .itemRare = ITEM_SMOKE_BALL, + .genderRatio = MON_FEMALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_CORROSION, ABILITY_NONE, ABILITY_OBLIVIOUS}, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + .speciesName = _("Salazzle"), + .cryId = CRY_SALAZZLE, + .natDexNum = NATIONAL_DEX_SALAZZLE, + .categoryName = _("Toxic Lizard"), + .height = 12, + .weight = 222, + .description = COMPOUND_STRING( + "For some reason, only females have\n" + "been found. It creates a reverse harem of\n" + "male Salandit to live with. Its poisonous\n" + "gas is filled with pheromones."), + .pokemonScale = 282, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Salazzle, 64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Salazzle, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Salazzle, 48, 64), + .backPicYOffset = 3, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Salazzle), + ICON(Salazzle, 0), + .footprint = gMonFootprint_Salazzle, + LEARNSETS(Salazzle), + }, +#endif //P_FAMILY_SALANDIT + +#if P_FAMILY_STUFFUL + [SPECIES_STUFFUL] = + { + .baseHP = 70, + .baseAttack = 75, + .baseDefense = 50, + .baseSpeed = 50, + .baseSpAttack = 45, .baseSpDefense = 50, - .types = { TYPE_FIGHTING, TYPE_FIGHTING}, - .catchRate = 180, - .expYield = 62, + .types = { TYPE_NORMAL, TYPE_FIGHTING}, + .catchRate = 140, + .expYield = 68, .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_LIMBER, ABILITY_NONE, ABILITY_TECHNICIAN}, - .bodyColor = BODY_COLOR_BROWN, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_FLUFFY, ABILITY_KLUTZ, ABILITY_CUTE_CHARM}, + .bodyColor = BODY_COLOR_PINK, .noFlip = FALSE, + .speciesName = _("Stufful"), + .cryId = CRY_STUFFUL, + .natDexNum = NATIONAL_DEX_STUFFUL, + .categoryName = _("Flailing"), + .height = 5, + .weight = 68, + .description = COMPOUND_STRING( + "Despite its adorable appearance, when it\n" + "gets angry and flails about, its arms and\n" + "legs could knock a pro wrestler sprawling.\n" + "It's an incredibly dangerous Pokémon."), + .pokemonScale = 432, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Stufful, 48, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Stufful, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(Stufful, 56, 40), + .backPicYOffset = 12, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Stufful), + ICON(Stufful, 0), + .footprint = gMonFootprint_Stufful, + LEARNSETS(Stufful), + .evolutions = EVOLUTION({EVO_LEVEL, 27, SPECIES_BEWEAR}), }, - [SPECIES_GRAPPLOCT] = + [SPECIES_BEWEAR] = { - .baseHP = 80, - .baseAttack = 118, - .baseDefense = 90, - .baseSpeed = 42, - .baseSpAttack = 70, - .baseSpDefense = 80, - .types = { TYPE_FIGHTING, TYPE_FIGHTING}, - .catchRate = 45, - .expYield = 168, + .baseHP = 120, + .baseAttack = 125, + .baseDefense = 80, + .baseSpeed = 60, + .baseSpAttack = 55, + .baseSpDefense = 60, + .types = { TYPE_NORMAL, TYPE_FIGHTING}, + .catchRate = 70, + .expYield = 175, .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_LIMBER, ABILITY_NONE, ABILITY_TECHNICIAN}, - .bodyColor = BODY_COLOR_BLUE, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_FLUFFY, ABILITY_KLUTZ, ABILITY_UNNERVE}, + .bodyColor = BODY_COLOR_PINK, .noFlip = FALSE, - }, - - [SPECIES_SINISTEA_PHONY] = SINISTEA_SPECIES_INFO, - - [SPECIES_POLTEAGEIST_PHONY] = POLTEAGEIST_SPECIES_INFO, - - [SPECIES_HATENNA] = + .speciesName = _("Bewear"), + .cryId = CRY_BEWEAR, + .natDexNum = NATIONAL_DEX_BEWEAR, + .categoryName = _("Strong Arm"), + .height = 21, + .weight = 1350, + .description = COMPOUND_STRING( + "This Pokémon has the habit of hugging its\n" + "companions. Many Trainers have left this\n" + "world after their spines were squashed\n" + "by its hug."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 365, + .trainerOffset = 7, + FRONT_PIC(Bewear, 56, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Bewear, + .frontAnimId = ANIM_H_STRETCH, + BACK_PIC(Bewear, 64, 64), + .backPicYOffset = 2, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Bewear), + ICON(Bewear, 0), + .footprint = gMonFootprint_Bewear, + LEARNSETS(Bewear), + }, +#endif //P_FAMILY_STUFFUL + +#if P_FAMILY_BOUNSWEET + [SPECIES_BOUNSWEET] = { .baseHP = 42, .baseAttack = 30, - .baseDefense = 45, - .baseSpeed = 39, - .baseSpAttack = 56, - .baseSpDefense = 53, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, + .baseDefense = 38, + .baseSpeed = 32, + .baseSpAttack = 30, + .baseSpDefense = 38, + .types = { TYPE_GRASS, TYPE_GRASS}, .catchRate = 235, - .expYield = 53, - .evYield_SpAttack = 1, + .expYield = 42, + .evYield_HP = 1, + .itemRare = ITEM_GRASSY_SEED, .genderRatio = MON_FEMALE, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_HEALER, ABILITY_ANTICIPATION, ABILITY_MAGIC_BOUNCE}, - .bodyColor = BODY_COLOR_PINK, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, + .abilities = {ABILITY_LEAF_GUARD, ABILITY_OBLIVIOUS, ABILITY_SWEET_VEIL}, + .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, + .speciesName = _("Bounsweet"), + .cryId = CRY_BOUNSWEET, + .natDexNum = NATIONAL_DEX_BOUNSWEET, + .categoryName = _("Fruit"), + .height = 3, + .weight = 32, + .description = COMPOUND_STRING( + "A delectable aroma pours from its body. \n" + "Bounsweet's sweat can be watered down\n" + "into a juice with just the right amount\n" + "of sweetness."), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Bounsweet, 32, 40), + .frontPicYOffset = 16, + .frontAnimFrames = sAnims_Bounsweet, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Bounsweet, 48, 40), + .backPicYOffset = 14, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Bounsweet), + ICON(Bounsweet, 1), + .footprint = gMonFootprint_Bounsweet, + LEARNSETS(Bounsweet), + .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_STEENEE}), }, - [SPECIES_HATTREM] = + [SPECIES_STEENEE] = { - .baseHP = 57, + .baseHP = 52, .baseAttack = 40, - .baseDefense = 65, - .baseSpeed = 49, - .baseSpAttack = 86, - .baseSpDefense = 73, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, + .baseDefense = 48, + .baseSpeed = 62, + .baseSpAttack = 40, + .baseSpDefense = 48, + .types = { TYPE_GRASS, TYPE_GRASS}, .catchRate = 120, - .expYield = 130, - .evYield_SpAttack = 2, + .expYield = 102, + .evYield_Speed = 2, + .itemRare = ITEM_GRASSY_SEED, + .genderRatio = MON_FEMALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, + .abilities = {ABILITY_LEAF_GUARD, ABILITY_OBLIVIOUS, ABILITY_SWEET_VEIL}, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = TRUE, + .speciesName = _("Steenee"), + .cryId = CRY_STEENEE, + .natDexNum = NATIONAL_DEX_STEENEE, + .categoryName = _("Fruit"), + .height = 7, + .weight = 82, + .description = COMPOUND_STRING( + "The sepals on its head developed to\n" + "protect its body. These are quite hard, so\n" + "even if pecked by bird Pokémon, this\n" + "Pokémon is totally fine."), + .pokemonScale = 365, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Steenee, 48, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Steenee, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Steenee, 56, 56), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Steenee), + ICON(Steenee, 1), + .footprint = gMonFootprint_Steenee, + LEARNSETS(Steenee), + .evolutions = EVOLUTION({EVO_MOVE, MOVE_STOMP, SPECIES_TSAREENA}), + }, + + [SPECIES_TSAREENA] = + { + .baseHP = 72, + .baseAttack = 120, + .baseDefense = 98, + .baseSpeed = 72, + .baseSpAttack = 50, + .baseSpDefense = 98, + .types = { TYPE_GRASS, TYPE_GRASS}, + .catchRate = 45, + .expYield = 230, + .evYield_Attack = 3, + .itemCommon = ITEM_GRASSY_SEED, .genderRatio = MON_FEMALE, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, + .abilities = {ABILITY_LEAF_GUARD, ABILITY_QUEENLY_MAJESTY, ABILITY_SWEET_VEIL}, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = TRUE, + .speciesName = _("Tsareena"), + .cryId = CRY_TSAREENA, + .natDexNum = NATIONAL_DEX_TSAREENA, + .categoryName = _("Fruit"), + .height = 12, + .weight = 214, + .description = COMPOUND_STRING( + "Its long, striking legs aren't just for\n" + "show but to be used to kick with skill.\n" + "In victory, it shows off by kicking the\n" + "defeated, laughing boisterously."), + .pokemonScale = 282, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Tsareena, 56, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Tsareena, + .frontAnimId = ANIM_SHRINK_GROW, + BACK_PIC(Tsareena, 56, 56), + .backPicYOffset = 6, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Tsareena), + ICON(Tsareena, 1), + .footprint = gMonFootprint_Tsareena, + LEARNSETS(Tsareena), + }, +#endif //P_FAMILY_BOUNSWEET + +#if P_FAMILY_COMFEY + [SPECIES_COMFEY] = + { + .baseHP = 51, + .baseAttack = 52, + .baseDefense = 90, + .baseSpeed = 100, + .baseSpAttack = 82, + .baseSpDefense = 110, + .types = { TYPE_FAIRY, TYPE_FAIRY}, + .catchRate = 60, + .expYield = 170, + .evYield_SpDefense = 2, + .itemRare = ITEM_MISTY_SEED, + .genderRatio = PERCENT_FEMALE(75), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, + .abilities = {ABILITY_FLOWER_VEIL, ABILITY_TRIAGE, ABILITY_NATURAL_CURE}, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = TRUE, + .speciesName = _("Comfey"), + .cryId = CRY_COMFEY, + .natDexNum = NATIONAL_DEX_COMFEY, + .categoryName = _("Posy Picker"), + .height = 1, + .weight = 3, + .description = COMPOUND_STRING( + "It attaches flowers to its nutritious\n" + "vine. Baths prepared with the flowers\n" + "from its vine have a relaxing effect, so\n" + "this Pokémon is a hit with many people."), + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Comfey, 48, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Comfey, + .frontAnimId = ANIM_H_SLIDE_WOBBLE, + .enemyMonElevation = 8, + BACK_PIC(Comfey, 64, 56), + .backPicYOffset = 11, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Comfey), + ICON(Comfey, 1), + .footprint = gMonFootprint_Comfey, + LEARNSETS(Comfey), + }, +#endif //P_FAMILY_COMFEY + +#if P_FAMILY_ORANGURU + [SPECIES_ORANGURU] = + { + .baseHP = 90, + .baseAttack = 60, + .baseDefense = 80, + .baseSpeed = 60, + .baseSpAttack = 90, + .baseSpDefense = 110, + .types = { TYPE_NORMAL, TYPE_PSYCHIC}, + .catchRate = 45, + .expYield = 172, + .evYield_SpDefense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_INNER_FOCUS, ABILITY_TELEPATHY, ABILITY_SYMBIOSIS}, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = FALSE, + .speciesName = _("Oranguru"), + .cryId = CRY_ORANGURU, + .natDexNum = NATIONAL_DEX_ORANGURU, + .categoryName = _("Sage"), + .height = 15, + .weight = 760, + .description = COMPOUND_STRING( + "Deep in the jungle, high in the lofty\n" + "canopy, this Pokémon abides. On rare\n" + "occasions, it shows up at the beach to\n" + "match wits with Slowking."), + .pokemonScale = 268, + .pokemonOffset = 2, + .trainerScale = 271, + .trainerOffset = 0, + FRONT_PIC(Oranguru, 56, 56), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Oranguru, + .frontAnimId = ANIM_SHRINK_GROW_SLOW, + BACK_PIC(Oranguru, 64, 48), + .backPicYOffset = 12, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Oranguru), + ICON(Oranguru, 0), + .footprint = gMonFootprint_Oranguru, + LEARNSETS(Oranguru), + }, +#endif //P_FAMILY_ORANGURU + +#if P_FAMILY_PASSIMIAN + [SPECIES_PASSIMIAN] = + { + .baseHP = 100, + .baseAttack = 120, + .baseDefense = 90, + .baseSpeed = 80, + .baseSpAttack = 40, + .baseSpDefense = 60, + .types = { TYPE_FIGHTING, TYPE_FIGHTING}, + .catchRate = 45, + .expYield = 172, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_HEALER, ABILITY_ANTICIPATION, ABILITY_MAGIC_BOUNCE}, - .bodyColor = BODY_COLOR_PINK, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_RECEIVER, ABILITY_NONE, ABILITY_DEFIANT}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - }, - - [SPECIES_HATTERENE] = - { - HATTERENE_MISC_INFO, - }, - - [SPECIES_IMPIDIMP] = + .speciesName = _("Passimian"), + .cryId = CRY_PASSIMIAN, + .natDexNum = NATIONAL_DEX_PASSIMIAN, + .categoryName = _("Teamwork"), + .height = 20, + .weight = 828, + .description = COMPOUND_STRING( + "They battle with hard berries for weapons.\n" + "They form groups of about 20 individuals.\n" + "Their techniques are passed from the boss\n" + "to the group, generation upon generation."), + .pokemonScale = 261, + .pokemonOffset = 1, + .trainerScale = 334, + .trainerOffset = 4, + FRONT_PIC(Passimian, 57, 60), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Passimian, + .frontAnimId = ANIM_H_SHAKE, + BACK_PIC(Passimian, 51, 52), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_H_SHAKE, + PALETTE(Passimian), + ICON(Passimian, 1), + .footprint = gMonFootprint_Passimian, + LEARNSETS(Passimian), + }, +#endif //P_FAMILY_PASSIMIAN + +#if P_FAMILY_WIMPOD + [SPECIES_WIMPOD] = { - .baseHP = 45, - .baseAttack = 45, - .baseDefense = 30, - .baseSpeed = 50, - .baseSpAttack = 55, - .baseSpDefense = 40, - .types = { TYPE_DARK, TYPE_FAIRY}, - .catchRate = 255, - .expYield = 53, - .evYield_SpAttack = 1, - .genderRatio = MON_MALE, + .baseHP = 25, + .baseAttack = 35, + .baseDefense = 40, + .baseSpeed = 80, + .baseSpAttack = 20, + .baseSpDefense = 30, + .types = { TYPE_BUG, TYPE_WATER}, + .catchRate = 90, + .expYield = 46, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_PRANKSTER, ABILITY_FRISK, ABILITY_PICKPOCKET}, - .bodyColor = BODY_COLOR_PINK, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_WATER_3}, + .abilities = {ABILITY_WIMP_OUT, ABILITY_NONE}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, + .speciesName = _("Wimpod"), + .cryId = CRY_WIMPOD, + .natDexNum = NATIONAL_DEX_WIMPOD, + .categoryName = _("Turn Tail"), + .height = 5, + .weight = 120, + .description = COMPOUND_STRING( + "This Pokémon is a coward. As it desperately\n" + "dashes off, the flailing of its many legs\n" + "leaves a sparkling clean path in its wake.\n" + "It lives on beaches and seabeds."), + .pokemonScale = 432, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Wimpod, 40, 40), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Wimpod, + .frontAnimId = ANIM_V_SHAKE_H_SLIDE_FAST, + BACK_PIC(Wimpod, 64, 48), + .backPicYOffset = 10, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Wimpod), + ICON(Wimpod, 2), + .footprint = gMonFootprint_Wimpod, + LEARNSETS(Wimpod), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_GOLISOPOD}), }, - [SPECIES_MORGREM] = + [SPECIES_GOLISOPOD] = { - .baseHP = 65, - .baseAttack = 60, - .baseDefense = 45, - .baseSpeed = 70, - .baseSpAttack = 75, - .baseSpDefense = 55, - .types = { TYPE_DARK, TYPE_FAIRY}, - .catchRate = 120, - .expYield = 130, - .evYield_SpAttack = 2, - .genderRatio = MON_MALE, + .baseHP = 75, + .baseAttack = 125, + .baseDefense = 140, + .baseSpeed = 40, + .baseSpAttack = 60, + .baseSpDefense = 90, + .types = { TYPE_BUG, TYPE_WATER}, + .catchRate = 45, + .expYield = 186, + .evYield_Defense = 2, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_PRANKSTER, ABILITY_FRISK, ABILITY_PICKPOCKET}, - .bodyColor = BODY_COLOR_PINK, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_WATER_3}, + .abilities = {ABILITY_EMERGENCY_EXIT, ABILITY_NONE}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, - }, - - [SPECIES_GRIMMSNARL] = - { - GRIMMSNARL_MISC_INFO, - }, - - [SPECIES_OBSTAGOON] = + .speciesName = _("Golisopod"), + .cryId = CRY_GOLISOPOD, + .natDexNum = NATIONAL_DEX_GOLISOPOD, + .categoryName = _("Hard Scale"), + .height = 20, + .weight = 1080, + .description = COMPOUND_STRING( + "It battles skillfully with its six arms,\n" + "with a flashing slash of its giant sharp\n" + "claws, it cleaves seawater--or even\n" + "air--right in two."), + .pokemonScale = 261, + .pokemonOffset = 1, + .trainerScale = 334, + .trainerOffset = 4, + FRONT_PIC(Golisopod, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Golisopod, + .frontAnimId = ANIM_SHRINK_GROW_VIBRATE_FAST, + BACK_PIC(Golisopod, 64, 48), + .backPicYOffset = 9, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Golisopod), + ICON(Golisopod, 2), + .footprint = gMonFootprint_Golisopod, + LEARNSETS(Golisopod), + }, +#endif //P_FAMILY_WIMPOD + +#if P_FAMILY_SANDYGAST + [SPECIES_SANDYGAST] = { - .baseHP = 93, - .baseAttack = 90, - .baseDefense = 101, - .baseSpeed = 95, - .baseSpAttack = 60, - .baseSpDefense = 81, - .types = { TYPE_DARK, TYPE_NORMAL}, - .catchRate = 45, - .expYield = 260, - .evYield_Defense = 3, + .baseHP = 55, + .baseAttack = 55, + .baseDefense = 80, + .baseSpeed = 15, + .baseSpAttack = 70, + .baseSpDefense = 45, + .types = { TYPE_GHOST, TYPE_GROUND}, + .catchRate = 140, + .expYield = 64, + .evYield_Defense = 1, + .itemRare = ITEM_SPELL_TAG, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_RECKLESS, ABILITY_GUTS, ABILITY_DEFIANT}, - .bodyColor = BODY_COLOR_GRAY, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, + .abilities = {ABILITY_WATER_COMPACTION, ABILITY_NONE, ABILITY_SAND_VEIL}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, + .speciesName = _("Sandygast"), + .cryId = CRY_SANDYGAST, + .natDexNum = NATIONAL_DEX_SANDYGAST, + .categoryName = _("Sand Heap"), + .height = 5, + .weight = 700, + .description = COMPOUND_STRING( + "It takes control of anyone who puts a hand\n" + "in its mouth, to add to the accumulation\n" + "of its sand-mound body. This Pokémon\n" + "embodies the grudges of the departed."), + .pokemonScale = 432, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Sandygast, 48, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Sandygast, + .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, + BACK_PIC(Sandygast, 40, 48), + .backPicYOffset = 11, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Sandygast), + ICON(Sandygast, 1), + .footprint = gMonFootprint_Sandygast, + LEARNSETS(Sandygast), + .evolutions = EVOLUTION({EVO_LEVEL, 42, SPECIES_PALOSSAND}), }, - [SPECIES_PERRSERKER] = + [SPECIES_PALOSSAND] = { - .baseHP = 70, - .baseAttack = 110, - .baseDefense = 100, - .baseSpeed = 50, - .baseSpAttack = 50, - .baseSpDefense = 60, - .types = { TYPE_STEEL, TYPE_STEEL}, - .catchRate = 90, - .expYield = 154, - .evYield_Attack = 2, + .baseHP = 85, + .baseAttack = 75, + .baseDefense = 110, + .baseSpeed = 35, + .baseSpAttack = 100, + .baseSpDefense = 75, + .types = { TYPE_GHOST, TYPE_GROUND}, + .catchRate = 60, + .expYield = 168, + .evYield_Defense = 2, + .itemRare = ITEM_SPELL_TAG, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_BATTLE_ARMOR, ABILITY_TOUGH_CLAWS, ABILITY_STEELY_SPIRIT}, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, + .abilities = {ABILITY_WATER_COMPACTION, ABILITY_NONE, ABILITY_SAND_VEIL}, .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - }, - - [SPECIES_CURSOLA] = + .speciesName = _("Palossand"), + .cryId = CRY_PALOSSAND, + .natDexNum = NATIONAL_DEX_PALOSSAND, + .categoryName = _("Sand Castle"), + .height = 13, + .weight = 2500, + .description = COMPOUND_STRING( + "Possessed people controlled by this\n" + "Pokémon transformed its sand mound into\n" + "a castle. As it evolved, its power to curse\n" + "grew ever stronger."), + .pokemonScale = 272, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Palossand, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Palossand, + .frontAnimId = ANIM_H_VIBRATE, + BACK_PIC(Palossand, 64, 64), + .backPicYOffset = 2, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Palossand), + ICON(Palossand, 2), + .footprint = gMonFootprint_Palossand, + LEARNSETS(Palossand), + }, +#endif //P_FAMILY_SANDYGAST + +#if P_FAMILY_PYUKUMUKU + [SPECIES_PYUKUMUKU] = { - .baseHP = 60, - .baseAttack = 95, - .baseDefense = 50, - .baseSpeed = 30, - .baseSpAttack = 145, + .baseHP = 55, + .baseAttack = 60, + .baseDefense = 130, + .baseSpeed = 5, + .baseSpAttack = 30, .baseSpDefense = 130, - .types = { TYPE_GHOST, TYPE_GHOST}, - .catchRate = 30, - .expYield = 179, - .evYield_SpAttack = 2, - .genderRatio = PERCENT_FEMALE(75), - .eggCycles = 20, + .types = { TYPE_WATER, TYPE_WATER}, + .catchRate = 60, + .expYield = 144, + .evYield_SpDefense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3}, - .abilities = {ABILITY_WEAK_ARMOR, ABILITY_NONE, ABILITY_PERISH_BODY}, - .bodyColor = BODY_COLOR_WHITE, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, + .abilities = {ABILITY_INNARDS_OUT, ABILITY_NONE, ABILITY_UNAWARE}, + .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, - }, - - [SPECIES_SIRFETCHD] = + .speciesName = _("Pyukumuku"), + .cryId = CRY_PYUKUMUKU, + .natDexNum = NATIONAL_DEX_PYUKUMUKU, + .categoryName = _("Sea Cucumber"), + .height = 3, + .weight = 12, + .description = COMPOUND_STRING( + "It lives in shallow seas, such as areas\n" + "near a beach. The sticky mucous that\n" + "covers their bodies can be used to soothe\n" + "sunburned skin. How convenient!"), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Pyukumuku, 40, 40), + .frontPicYOffset = 15, + .frontAnimFrames = sAnims_Pyukumuku, + .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Pyukumuku, 48, 32), + .backPicYOffset = 16, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Pyukumuku), + ICON(Pyukumuku, 0), + .footprint = gMonFootprint_Pyukumuku, + LEARNSETS(Pyukumuku), + }, +#endif //P_FAMILY_PYUKUMUKU + +#if P_FAMILY_TYPE_NULL + [SPECIES_TYPE_NULL] = { - .baseHP = 62, - .baseAttack = 135, + .baseHP = 95, + .baseAttack = 95, .baseDefense = 95, + .baseSpeed = 59, + .baseSpAttack = 95, + .baseSpDefense = 95, + .types = { TYPE_NORMAL, TYPE_NORMAL}, + .catchRate = 3, + .expYield = 107, + .evYield_HP = 2, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_BATTLE_ARMOR, ABILITY_NONE}, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + .isLegendary = TRUE, + .speciesName = _("Type: Null"), + .cryId = CRY_TYPE_NULL, + .natDexNum = NATIONAL_DEX_TYPE_NULL, + .categoryName = _("Synthetic"), + .height = 19, + .weight = 1205, + .description = COMPOUND_STRING( + "Due to the danger that this synthetic\n" + "Pokémon may go on a rampage, it wears a\n" + "control mask to restrain its capabilities.\n" + "It has some hidden special power."), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 326, + .trainerOffset = 4, + FRONT_PIC(TypeNull, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_TypeNull, + .frontAnimId = ANIM_H_SHAKE, + BACK_PIC(TypeNull, 56, 64), + .backPicYOffset = 1, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(TypeNull), + ICON(TypeNull, 0), + .footprint = gMonFootprint_Type_Null, + LEARNSETS(TypeNull), + .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_SILVALLY_NORMAL}), + }, + +#define SILVALLY_SPECIES_INFO(type, palette) \ + { \ + .baseHP = 95, \ + .baseAttack = 95, \ + .baseDefense = 95, \ + .baseSpeed = 95, \ + .baseSpAttack = 95, \ + .baseSpDefense = 95, \ + .types = { type, type }, \ + .catchRate = 3, \ + .expYield = 257, \ + .evYield_HP = 3, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ + .abilities = {ABILITY_RKS_SYSTEM, ABILITY_NONE}, \ + .bodyColor = BODY_COLOR_GRAY, \ + .noFlip = FALSE, \ + .isLegendary = TRUE, \ + .speciesName = _("Silvally"), \ + .cryId = CRY_SILVALLY, \ + .natDexNum = NATIONAL_DEX_SILVALLY, \ + .categoryName = _("Synthetic"), \ + .height = 23, \ + .weight = 1005, \ + .description = (type == TYPE_NORMAL \ + ? gSilvallyNormalPokedexText \ + : gSilvallyMemoryPokedexText), \ + .pokemonScale = 256, \ + .pokemonOffset = 0, \ + .trainerScale = 342, \ + .trainerOffset = 7, \ + FRONT_PIC(Silvally, 64, 64), \ + .frontPicYOffset = 0, \ + .frontAnimFrames = sAnims_Silvally, \ + .frontAnimId = ANIM_V_SHAKE, \ + BACK_PIC(Silvally, 56, 64), \ + .backPicYOffset = 0, \ + PALETTE(palette), \ + ICON(Silvally, 0), \ + .footprint = gMonFootprint_Silvally, \ + LEARNSETS(Silvally), \ + .formSpeciesIdTable = sSilvallyFormSpeciesIdTable, \ + .formChangeTable = sSilvallyFormChangeTable, \ + } + //.backAnimId = BACK_ANIM_NONE, + + [SPECIES_SILVALLY_NORMAL] = SILVALLY_SPECIES_INFO(TYPE_NORMAL, SilvallyNormal), + [SPECIES_SILVALLY_FIGHTING] = SILVALLY_SPECIES_INFO(TYPE_FIGHTING, SilvallyFighting), + [SPECIES_SILVALLY_FLYING] = SILVALLY_SPECIES_INFO(TYPE_FLYING, SilvallyFlying), + [SPECIES_SILVALLY_POISON] = SILVALLY_SPECIES_INFO(TYPE_POISON, SilvallyPoison), + [SPECIES_SILVALLY_GROUND] = SILVALLY_SPECIES_INFO(TYPE_GROUND, SilvallyGround), + [SPECIES_SILVALLY_ROCK] = SILVALLY_SPECIES_INFO(TYPE_ROCK, SilvallyRock), + [SPECIES_SILVALLY_BUG] = SILVALLY_SPECIES_INFO(TYPE_BUG, SilvallyBug), + [SPECIES_SILVALLY_GHOST] = SILVALLY_SPECIES_INFO(TYPE_GHOST, SilvallyGhost), + [SPECIES_SILVALLY_STEEL] = SILVALLY_SPECIES_INFO(TYPE_STEEL, SilvallySteel), + [SPECIES_SILVALLY_FIRE] = SILVALLY_SPECIES_INFO(TYPE_FIRE, SilvallyFire), + [SPECIES_SILVALLY_WATER] = SILVALLY_SPECIES_INFO(TYPE_WATER, SilvallyWater), + [SPECIES_SILVALLY_GRASS] = SILVALLY_SPECIES_INFO(TYPE_GRASS, SilvallyGrass), + [SPECIES_SILVALLY_ELECTRIC] = SILVALLY_SPECIES_INFO(TYPE_ELECTRIC, SilvallyElectric), + [SPECIES_SILVALLY_PSYCHIC] = SILVALLY_SPECIES_INFO(TYPE_PSYCHIC, SilvallyPsychic), + [SPECIES_SILVALLY_ICE] = SILVALLY_SPECIES_INFO(TYPE_ICE, SilvallyIce), + [SPECIES_SILVALLY_DRAGON] = SILVALLY_SPECIES_INFO(TYPE_DRAGON, SilvallyDragon), + [SPECIES_SILVALLY_DARK] = SILVALLY_SPECIES_INFO(TYPE_DARK, SilvallyDark), + [SPECIES_SILVALLY_FAIRY] = SILVALLY_SPECIES_INFO(TYPE_FAIRY, SilvallyFairy), +#endif //P_FAMILY_TYPE_NULL + +#if P_FAMILY_MINIOR +#define MINIOR_MISC_INFO(color) \ + .types = { TYPE_ROCK, TYPE_FLYING}, \ + .catchRate = 30, \ + .expYield = 154, \ + .evYield_Defense = 1, \ + .evYield_SpDefense = 1, \ + .itemRare = ITEM_STAR_PIECE, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 25, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_SLOW, \ + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, \ + .abilities = {ABILITY_SHIELDS_DOWN, ABILITY_NONE}, \ + .bodyColor = color, \ + .noFlip = TRUE, \ + .speciesName = _("Minior"), \ + .cryId = CRY_MINIOR, \ + .natDexNum = NATIONAL_DEX_MINIOR, \ + .categoryName = _("Meteor"), \ + .height = 3, \ + .pokemonScale = 530, \ + .pokemonOffset = 13, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Minior, \ + LEARNSETS(Minior), \ + .formSpeciesIdTable = sMiniorFormSpeciesIdTable + +#define MINIOR_METEOR_SPECIES_INFO(Form) \ + { \ + .baseHP = 60, \ + .baseAttack = 60, \ + .baseDefense = 100, \ + .baseSpeed = 60, \ + .baseSpAttack = 60, \ + .baseSpDefense = 100, \ + .weight = 400, \ + FRONT_PIC(MiniorMeteor, 48, 40), \ + .frontPicYOffset = 14, \ + .frontAnimFrames = sAnims_MiniorMeteor, \ + .frontAnimId = ANIM_TUMBLING_FRONT_FLIP_TWICE, \ + .enemyMonElevation = 17, \ + BACK_PIC(MiniorMeteor, 56, 40), \ + .backPicYOffset = 14, \ + PALETTE(MiniorMeteor), \ + ICON(MiniorMeteor, 0), \ + .formChangeTable = sMinior ##Form##FormChangeTable, \ + MINIOR_MISC_INFO(BODY_COLOR_BROWN), \ + } + //.backAnimId = BACK_ANIM_NONE, + +#define MINIOR_CORE_SPECIES_INFO(Form, color, iconPal) \ + { \ + .baseHP = 60, \ + .baseAttack = 100, \ + .baseDefense = 60, \ + .baseSpeed = 120, \ + .baseSpAttack = 100, \ + .baseSpDefense = 60, \ + .weight = 3, \ + .description = gMiniorCorePokedexText, \ + FRONT_PIC(MiniorCore, 48, 40), \ + .frontPicYOffset = 14, \ + .frontAnimFrames = sAnims_MiniorMeteor, \ + .frontAnimId = ANIM_TUMBLING_FRONT_FLIP_TWICE, \ + .enemyMonElevation = 17, \ + BACK_PIC(MiniorCore, 56, 40), \ + .backPicYOffset = 15, \ + .palette = gMonPalette_MiniorCore##Form, \ + .shinyPalette = gMonShinyPalette_MiniorCore, \ + ICON(MiniorCore##Form, iconPal), \ + .formChangeTable = sMinior ##Form##FormChangeTable, \ + MINIOR_MISC_INFO(color), \ + } + //.backAnimId = BACK_ANIM_NONE, + + [SPECIES_MINIOR_METEOR_RED] = MINIOR_METEOR_SPECIES_INFO(Red), + [SPECIES_MINIOR_METEOR_ORANGE] = MINIOR_METEOR_SPECIES_INFO(Orange), + [SPECIES_MINIOR_METEOR_YELLOW] = MINIOR_METEOR_SPECIES_INFO(Yellow), + [SPECIES_MINIOR_METEOR_GREEN] = MINIOR_METEOR_SPECIES_INFO(Green), + [SPECIES_MINIOR_METEOR_BLUE] = MINIOR_METEOR_SPECIES_INFO(Blue), + [SPECIES_MINIOR_METEOR_INDIGO] = MINIOR_METEOR_SPECIES_INFO(Indigo), + [SPECIES_MINIOR_METEOR_VIOLET] = MINIOR_METEOR_SPECIES_INFO(Violet), + [SPECIES_MINIOR_CORE_RED] = MINIOR_CORE_SPECIES_INFO(Red, BODY_COLOR_RED, 0), + [SPECIES_MINIOR_CORE_ORANGE] = MINIOR_CORE_SPECIES_INFO(Orange, BODY_COLOR_RED, 0), + [SPECIES_MINIOR_CORE_YELLOW] = MINIOR_CORE_SPECIES_INFO(Yellow, BODY_COLOR_YELLOW, 0), + [SPECIES_MINIOR_CORE_GREEN] = MINIOR_CORE_SPECIES_INFO(Green, BODY_COLOR_GREEN, 1), + [SPECIES_MINIOR_CORE_BLUE] = MINIOR_CORE_SPECIES_INFO(Blue, BODY_COLOR_BLUE, 0), + [SPECIES_MINIOR_CORE_INDIGO] = MINIOR_CORE_SPECIES_INFO(Indigo, BODY_COLOR_BLUE, 0), + [SPECIES_MINIOR_CORE_VIOLET] = MINIOR_CORE_SPECIES_INFO(Violet, BODY_COLOR_PURPLE, 2), +#endif //P_FAMILY_MINIOR + +#if P_FAMILY_KOMALA + [SPECIES_KOMALA] = + { + .baseHP = 65, + .baseAttack = 115, + .baseDefense = 65, .baseSpeed = 65, - .baseSpAttack = 68, - .baseSpDefense = 82, - .types = { TYPE_FIGHTING, TYPE_FIGHTING}, + .baseSpAttack = 75, + .baseSpDefense = 95, + .types = { TYPE_NORMAL, TYPE_NORMAL}, .catchRate = 45, - .expYield = 177, + .expYield = 168, .evYield_Attack = 2, - .itemRare = ITEM_LEEK, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_COMATOSE, ABILITY_NONE}, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + .speciesName = _("Komala"), + .cryId = CRY_KOMALA, + .natDexNum = NATIONAL_DEX_KOMALA, + .categoryName = _("Drowsing"), + .height = 4, + .weight = 199, + .description = COMPOUND_STRING( + "It is born asleep, and it dies asleep.\n" + "All its movements are apparently no more\n" + "than the results of it tossing and turning\n" + "in its dreams."), + .pokemonScale = 491, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Komala, 48, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Komala, + .frontAnimId = ANIM_H_DIP, + BACK_PIC(Komala, 64, 48), + .backPicYOffset = 9, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Komala), + ICON(Komala, 2), + .footprint = gMonFootprint_Komala, + LEARNSETS(Komala), + }, +#endif //P_FAMILY_KOMALA + +#if P_FAMILY_TURTONATOR + [SPECIES_TURTONATOR] = + { + .baseHP = 60, + .baseAttack = 78, + .baseDefense = 135, + .baseSpeed = 36, + .baseSpAttack = 91, + .baseSpDefense = 85, + .types = { TYPE_FIRE, TYPE_DRAGON}, + .catchRate = 70, + .expYield = 170, + .evYield_Defense = 2, + .itemRare = ITEM_CHARCOAL, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FIELD}, - .abilities = {ABILITY_STEADFAST, ABILITY_NONE, ABILITY_SCRAPPY}, - .bodyColor = BODY_COLOR_WHITE, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_SHELL_ARMOR, ABILITY_NONE}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, - }, - - [SPECIES_MR_RIME] = + .speciesName = _("Turtonator"), + .cryId = CRY_TURTONATOR, + .natDexNum = NATIONAL_DEX_TURTONATOR, + .categoryName = _("Blast Turtle"), + .height = 20, + .weight = 2120, + .description = COMPOUND_STRING( + "The shell on its back is chemically\n" + "unstable and explodes violently if struck.\n" + "The hole in its stomach is its weak point.\n" + "It gushes fire from its nostrils."), + .pokemonScale = 261, + .pokemonOffset = 1, + .trainerScale = 334, + .trainerOffset = 4, + FRONT_PIC(Turtonator, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Turtonator, + .frontAnimId = ANIM_SHAKE_GLOW_RED, + BACK_PIC(Turtonator, 64, 56), + .backPicYOffset = 9, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Turtonator), + ICON(Turtonator, 0), + .footprint = gMonFootprint_Turtonator, + LEARNSETS(Turtonator), + }, +#endif //P_FAMILY_TURTONATOR + +#if P_FAMILY_TOGEDEMARU + [SPECIES_TOGEDEMARU] = { - .baseHP = 80, - .baseAttack = 85, - .baseDefense = 75, - .baseSpeed = 70, - .baseSpAttack = 110, - .baseSpDefense = 100, - .types = { TYPE_ICE, TYPE_PSYCHIC}, - .catchRate = 45, - .expYield = 182, - .evYield_SpAttack = 3, + .baseHP = 65, + .baseAttack = 98, + .baseDefense = 63, + .baseSpeed = 96, + .baseSpAttack = 40, + .baseSpDefense = 73, + .types = { TYPE_ELECTRIC, TYPE_STEEL}, + .catchRate = 180, + .expYield = 152, + .evYield_Attack = 2, + .itemRare = ITEM_ELECTRIC_SEED, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, + .eggCycles = 10, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_TANGLED_FEET, ABILITY_SCREEN_CLEANER, ABILITY_ICE_BODY}, - .bodyColor = BODY_COLOR_PURPLE, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY}, + .abilities = {ABILITY_IRON_BARBS, ABILITY_LIGHTNING_ROD, ABILITY_STURDY}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, - }, - - [SPECIES_RUNERIGUS] = + .speciesName = _("Togedemaru"), + .cryId = CRY_TOGEDEMARU, + .natDexNum = NATIONAL_DEX_TOGEDEMARU, + .categoryName = _("Roly-Poly"), + .height = 3, + .weight = 33, + .description = COMPOUND_STRING( + "The spiny fur on its back is normally\n" + "at rest. When this Pokémon becomes\n" + "agitated, its fur stands on end and stabs\n" + "into its attackers."), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Togedemaru, 40, 40), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Togedemaru, + .frontAnimId = ANIM_FLASH_YELLOW, + BACK_PIC(Togedemaru, 64, 48), + .backPicYOffset = 13, + .backAnimId = BACK_ANIM_GROW_STUTTER, + PALETTE(Togedemaru), + ICON(Togedemaru, 2), + .footprint = gMonFootprint_Togedemaru, + LEARNSETS(Togedemaru), + }, +#endif //P_FAMILY_TOGEDEMARU + +#if P_FAMILY_MIMIKYU +#define MIMIKYU_MISC_INFO \ + .baseHP = 55, \ + .baseAttack = 90, \ + .baseDefense = 80, \ + .baseSpeed = 96, \ + .baseSpAttack = 50, \ + .baseSpDefense = 105, \ + .types = { TYPE_GHOST, TYPE_FAIRY}, \ + .catchRate = 45, \ + .expYield = 167, \ + .evYield_SpDefense = 2, \ + .itemRare = ITEM_CHESTO_BERRY, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, \ + .abilities = {ABILITY_DISGUISE, ABILITY_NONE}, \ + .bodyColor = BODY_COLOR_YELLOW, \ + .noFlip = FALSE, \ + .speciesName = _("Mimikyu"), \ + .cryId = CRY_MIMIKYU, \ + .natDexNum = NATIONAL_DEX_MIMIKYU, \ + .categoryName = _("Disguise"), \ + .height = 2, \ + .weight = 7, \ + .pokemonScale = 682, \ + .pokemonOffset = 24, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Mimikyu, \ + LEARNSETS(Mimikyu), \ + .formSpeciesIdTable = sMimikyuFormSpeciesIdTable, \ + .formChangeTable = sMimikyuFormChangeTable + + [SPECIES_MIMIKYU_DISGUISED] = + { + MIMIKYU_MISC_INFO, + .description = COMPOUND_STRING( + "A lonely Pokémon, it hides its terrifying\n" + "appearance beneath an old rag so it can\n" + "get closer to people and other Pokémon.\n" + "Its actual appearance is unknown."), + FRONT_PIC(MimikyuDisguised, 48, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_MimikyuDisguised, + .frontAnimId = ANIM_DEEP_V_SQUISH_AND_BOUNCE, + BACK_PIC(MimikyuDisguised, 56, 56), + .backPicYOffset = 7, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(MimikyuDisguised), + ICON(MimikyuDisguised, 1), + }, + + [SPECIES_MIMIKYU_BUSTED] = + { + MIMIKYU_MISC_INFO, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(MimikyuBusted, 48, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_MimikyuBusted, + .frontAnimId = ANIM_DEEP_V_SQUISH_AND_BOUNCE, + BACK_PIC(MimikyuBusted, 64, 40), + .backPicYOffset = 15, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(MimikyuBusted), + ICON(MimikyuBusted, 1), + }, +#endif //P_FAMILY_MIMIKYU + +#if P_FAMILY_BRUXISH + [SPECIES_BRUXISH] = { - .baseHP = 58, - .baseAttack = 95, - .baseDefense = 145, - .baseSpeed = 30, - .baseSpAttack = 50, - .baseSpDefense = 105, - .types = { TYPE_GROUND, TYPE_GHOST}, - .catchRate = 90, - .expYield = 169, - .evYield_Defense = 2, + .baseHP = 68, + .baseAttack = 105, + .baseDefense = 70, + .baseSpeed = 92, + .baseSpAttack = 70, + .baseSpDefense = 70, + .types = { TYPE_WATER, TYPE_PSYCHIC}, + .catchRate = 80, + .expYield = 166, + .evYield_Attack = 2, + .itemRare = ITEM_RAZOR_FANG, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_WANDERING_SPIRIT, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GRAY, + .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, + .abilities = {ABILITY_DAZZLING, ABILITY_STRONG_JAW, ABILITY_WONDER_SKIN}, + .bodyColor = BODY_COLOR_PINK, .noFlip = FALSE, - }, - - [SPECIES_MILCERY] = + .speciesName = _("Bruxish"), + .cryId = CRY_BRUXISH, + .natDexNum = NATIONAL_DEX_BRUXISH, + .categoryName = _("Gnash Teeth"), + .height = 9, + .weight = 190, + .description = COMPOUND_STRING( + "It stuns its prey with its psychic powers\n" + "and then grinds them to mush with its\n" + "strong teeth. Even Shellder's shell is no\n" + "match for it."), + .pokemonScale = 338, + .pokemonOffset = 8, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Bruxish, 56, 40), + .frontPicYOffset = 15, + .frontAnimFrames = sAnims_Bruxish, + .frontAnimId = ANIM_RISING_WOBBLE, + BACK_PIC(Bruxish, 64, 48), + .backPicYOffset = 14, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Bruxish), + ICON(Bruxish, 0), + .footprint = gMonFootprint_Bruxish, + LEARNSETS(Bruxish), + }, +#endif //P_FAMILY_BRUXISH + +#if P_FAMILY_DRAMPA + [SPECIES_DRAMPA] = { - .baseHP = 45, - .baseAttack = 40, - .baseDefense = 40, - .baseSpeed = 34, - .baseSpAttack = 50, - .baseSpDefense = 61, - .types = { TYPE_FAIRY, TYPE_FAIRY}, - .catchRate = 200, - .expYield = 54, - .evYield_SpDefense = 1, - .genderRatio = MON_FEMALE, + .baseHP = 78, + .baseAttack = 60, + .baseDefense = 85, + .baseSpeed = 36, + .baseSpAttack = 135, + .baseSpDefense = 91, + .types = { TYPE_NORMAL, TYPE_DRAGON}, + .catchRate = 70, + .expYield = 170, + .evYield_SpAttack = 2, + .itemRare = ITEM_PERSIM_BERRY, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_SWEET_VEIL, ABILITY_NONE, ABILITY_AROMA_VEIL}, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_BERSERK, ABILITY_SAP_SIPPER, ABILITY_CLOUD_NINE}, .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - }, - - [SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM] = { ALCREMIE_MISC_INFO(BODY_COLOR_WHITE) }, - - [SPECIES_FALINKS] = + .speciesName = _("Drampa"), + .cryId = CRY_DRAMPA, + .natDexNum = NATIONAL_DEX_DRAMPA, + .categoryName = _("Placid"), + .height = 30, + .weight = 1850, + .description = COMPOUND_STRING( + "This Pokémon is friendly to people and\n" + "loves children most of all. It comes from\n" + "deep in the mountains to play with\n" + "children it likes in town."), + .pokemonScale = 275, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Drampa, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Drampa, + .frontAnimId = ANIM_V_SHAKE_TWICE, + BACK_PIC(Drampa, 64, 56), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_H_SLIDE, + PALETTE(Drampa), + ICON(Drampa, 0), + .footprint = gMonFootprint_Drampa, + LEARNSETS(Drampa), + }, +#endif //P_FAMILY_DRAMPA + +#if P_FAMILY_DHELMISE + [SPECIES_DHELMISE] = { - .baseHP = 65, - .baseAttack = 100, + .baseHP = 70, + .baseAttack = 131, .baseDefense = 100, - .baseSpeed = 75, - .baseSpAttack = 70, - .baseSpDefense = 60, - .types = { TYPE_FIGHTING, TYPE_FIGHTING}, - .catchRate = 45, - .expYield = 165, + .baseSpeed = 40, + .baseSpAttack = 86, + .baseSpDefense = 90, + .types = { TYPE_GHOST, TYPE_GRASS}, + .catchRate = 25, + .expYield = 181, .evYield_Attack = 2, - .evYield_SpDefense = 1, .genderRatio = MON_GENDERLESS, .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_BATTLE_ARMOR, ABILITY_NONE, ABILITY_DEFIANT}, - .bodyColor = BODY_COLOR_YELLOW, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_STEELWORKER, ABILITY_NONE}, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = TRUE, + .speciesName = _("Dhelmise"), + .cryId = CRY_DHELMISE, + .natDexNum = NATIONAL_DEX_DHELMISE, + .categoryName = _("Sea Creeper"), + .height = 39, + .weight = 2100, + .description = COMPOUND_STRING( + "The soul of seaweed adrift in the waves\n" + "became reborn as this Pokémon.\n" + "It maintains itself with new infusions of\n" + "seabed detritus and seaweed."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 510, + .trainerOffset = 11, + FRONT_PIC(Dhelmise, 48, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Dhelmise, + .frontAnimId = ANIM_SWING_CONVEX, + .enemyMonElevation = 2, + BACK_PIC(Dhelmise, 64, 64), + .backPicYOffset = 3, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Dhelmise), + ICON(Dhelmise, 1), + .footprint = gMonFootprint_Dhelmise, + LEARNSETS(Dhelmise), + }, +#endif //P_FAMILY_DHELMISE + +#if P_FAMILY_JANGMO_O + [SPECIES_JANGMO_O] = + { + .baseHP = 45, + .baseAttack = 55, + .baseDefense = 65, + .baseSpeed = 45, + .baseSpAttack = 45, + .baseSpDefense = 45, + .types = { TYPE_DRAGON, TYPE_DRAGON}, + .catchRate = 45, + .expYield = 60, + .evYield_Defense = 1, + .itemRare = ITEM_RAZOR_CLAW, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_BULLETPROOF, ABILITY_SOUNDPROOF, ABILITY_OVERCOAT}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, + .speciesName = _("Jangmo-o"), + .cryId = CRY_JANGMO_O, + .natDexNum = NATIONAL_DEX_JANGMO_O, + .categoryName = _("Scaly"), + .height = 6, + .weight = 297, + .description = COMPOUND_STRING( + "It expresses its feelings by smacking its\n" + "scales. Metallic sounds echo through the\n" + "tall mountains where Jangmo-o live. They\n" + "grow little by little battling one another."), + .pokemonScale = 422, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(JangmoO, 36, 43), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_JANGMO_O, + .frontAnimId = ANIM_H_STRETCH, + BACK_PIC(JangmoO, 42, 56), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_GROW_STUTTER, + PALETTE(JangmoO), + ICON(JangmoO, 2), + .footprint = gMonFootprint_JangmoO, + LEARNSETS(JangmoO), + .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_HAKAMO_O}), }, - [SPECIES_PINCURCHIN] = + [SPECIES_HAKAMO_O] = { - .baseHP = 48, - .baseAttack = 101, - .baseDefense = 95, - .baseSpeed = 15, - .baseSpAttack = 91, - .baseSpDefense = 85, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, - .catchRate = 75, - .expYield = 152, - .evYield_Attack = 2, + .baseHP = 55, + .baseAttack = 75, + .baseDefense = 90, + .baseSpeed = 65, + .baseSpAttack = 65, + .baseSpDefense = 70, + .types = { TYPE_DRAGON, TYPE_FIGHTING}, + .catchRate = 45, + .expYield = 147, + .evYield_Defense = 2, + .itemRare = ITEM_RAZOR_CLAW, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_LIGHTNING_ROD, ABILITY_NONE, ABILITY_ELECTRIC_SURGE}, - .bodyColor = BODY_COLOR_PURPLE, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_BULLETPROOF, ABILITY_SOUNDPROOF, ABILITY_OVERCOAT}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, + .speciesName = _("Hakamo-o"), + .cryId = CRY_HAKAMO_O, + .natDexNum = NATIONAL_DEX_HAKAMO_O, + .categoryName = _("Scaly"), + .height = 12, + .weight = 470, + .description = COMPOUND_STRING( + "It sheds and regrows its scales on a\n" + "continuous basis. The scales become\n" + "harder each time they're regrown. Its\n" + "scaly punches tear its foes to shreds."), + .pokemonScale = 282, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(HakamoO, 53, 61), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_HAKAMO_O, + .frontAnimId = ANIM_H_STRETCH, + BACK_PIC(HakamoO, 49, 56), + .backPicYOffset = 5, + .backAnimId = BACK_ANIM_H_STRETCH, + PALETTE(HakamoO), + ICON(HakamoO, 2), + .footprint = gMonFootprint_HakamoO, + LEARNSETS(HakamoO), + .evolutions = EVOLUTION({EVO_LEVEL, 45, SPECIES_KOMMO_O}), }, - [SPECIES_SNOM] = + [SPECIES_KOMMO_O] = { - .baseHP = 30, - .baseAttack = 25, - .baseDefense = 35, - .baseSpeed = 20, - .baseSpAttack = 45, - .baseSpDefense = 30, - .types = { TYPE_ICE, TYPE_BUG}, - .catchRate = 190, - .expYield = 37, - .evYield_SpAttack = 1, - .itemRare = ITEM_SNOWBALL, + .baseHP = 75, + .baseAttack = 110, + .baseDefense = 125, + .baseSpeed = 85, + .baseSpAttack = 100, + .baseSpDefense = 105, + .types = { TYPE_DRAGON, TYPE_FIGHTING}, + .catchRate = 45, + .expYield = 270, + .evYield_Defense = 3, + .itemCommon = ITEM_RAZOR_CLAW, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SHIELD_DUST, ABILITY_NONE, ABILITY_ICE_SCALES}, - .bodyColor = BODY_COLOR_WHITE, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_BULLETPROOF, ABILITY_SOUNDPROOF, ABILITY_OVERCOAT}, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + .speciesName = _("Kommo-o"), + .cryId = CRY_KOMMO_O, + .natDexNum = NATIONAL_DEX_KOMMO_O, + .categoryName = _("Scaly"), + .height = 16, + .weight = 782, + .description = COMPOUND_STRING( + "Its rigid scales function as offense and\n" + "defense. In the past, its scales were\n" + "processed and used to make weapons\n" + "and other valuable commodities."), + .pokemonScale = 259, + .pokemonOffset = 1, + .trainerScale = 296, + .trainerOffset = 1, + FRONT_PIC(KommoO, 63, 63), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_KOMMO_O, + .frontAnimId = ANIM_SHRINK_GROW_VIBRATE_FAST, + BACK_PIC(KommoO, 60, 60), + .backPicYOffset = 2, + .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, + PALETTE(KommoO), + ICON(KommoO, 2), + .footprint = gMonFootprint_KommoO, + LEARNSETS(KommoO), + }, +#endif //P_FAMILY_JANGMO_O + +#if P_FAMILY_TAPU_KOKO + [SPECIES_TAPU_KOKO] = + { + .baseHP = 70, + .baseAttack = 115, + .baseDefense = 85, + .baseSpeed = 130, + .baseSpAttack = 95, + .baseSpDefense = 75, + .types = { TYPE_ELECTRIC, TYPE_FAIRY}, + .catchRate = 3, + .expYield = 257, + .evYield_Speed = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_ELECTRIC_SURGE, ABILITY_NONE, ABILITY_TELEPATHY}, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + .isLegendary = TRUE, + .speciesName = _("Tapu Koko"), + .cryId = CRY_TAPU_KOKO, + .natDexNum = NATIONAL_DEX_TAPU_KOKO, + .categoryName = _("Land Spirit"), + .height = 18, + .weight = 205, + .description = COMPOUND_STRING( + "It confuses its enemies by flying too\n" + "quickly for the eye to follow. It has a\n" + "hair-trigger temper but forgets what\n" + "made it angry an instant later."), + .pokemonScale = 267, + .pokemonOffset = 2, + .trainerScale = 286, + .trainerOffset = 1, + FRONT_PIC(TapuKoko, 64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_TapuKoko, + .frontAnimId = ANIM_TRIANGLE_DOWN_TWICE, + .enemyMonElevation = 9, + BACK_PIC(TapuKoko, 64, 64), + .backPicYOffset = 2, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(TapuKoko), + ICON(TapuKoko, 0), + .footprint = gMonFootprint_Tapu_Koko, + LEARNSETS(TapuKoko), + }, +#endif //P_FAMILY_TAPU_KOKO + +#if P_FAMILY_TAPU_LELE + [SPECIES_TAPU_LELE] = + { + .baseHP = 70, + .baseAttack = 85, + .baseDefense = 75, + .baseSpeed = 95, + .baseSpAttack = 130, + .baseSpDefense = 115, + .types = { TYPE_PSYCHIC, TYPE_FAIRY}, + .catchRate = 3, + .expYield = 257, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_PSYCHIC_SURGE, ABILITY_NONE, ABILITY_TELEPATHY}, + .bodyColor = BODY_COLOR_PINK, .noFlip = FALSE, - }, - - [SPECIES_FROSMOTH] = + .isLegendary = TRUE, + .speciesName = _("Tapu Lele"), + .cryId = CRY_TAPU_LELE, + .natDexNum = NATIONAL_DEX_TAPU_LELE, + .categoryName = _("Land Spirit"), + .height = 12, + .weight = 186, + .description = COMPOUND_STRING( + "A fragrant aroma of flowers follows it.\n" + "As it flutters about, it scatters its\n" + "strangely glowing scales. Touching them\n" + "is said to restore good health."), + .pokemonScale = 282, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(TapuLele, 48, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_TapuLele, + .frontAnimId = ANIM_V_SLIDE_WOBBLE_SMALL, + .enemyMonElevation = 8, + BACK_PIC(TapuLele, 56, 56), + .backPicYOffset = 6, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(TapuLele), + ICON(TapuLele, 0), + .footprint = gMonFootprint_Tapu_Lele, + LEARNSETS(TapuLele), + }, +#endif //P_FAMILY_TAPU_LELE + +#if P_FAMILY_TAPU_BULU + [SPECIES_TAPU_BULU] = { .baseHP = 70, - .baseAttack = 65, - .baseDefense = 60, - .baseSpeed = 65, - .baseSpAttack = 125, - .baseSpDefense = 90, - .types = { TYPE_ICE, TYPE_BUG}, - .catchRate = 75, - .expYield = 166, - .evYield_SpAttack = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .baseAttack = 130, + .baseDefense = 115, + .baseSpeed = 75, + .baseSpAttack = 85, + .baseSpDefense = 95, + .types = { TYPE_GRASS, TYPE_FAIRY}, + .catchRate = 3, + .expYield = 257, + .evYield_Attack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SHIELD_DUST, ABILITY_NONE, ABILITY_ICE_SCALES}, - .bodyColor = BODY_COLOR_WHITE, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_GRASSY_SURGE, ABILITY_NONE, ABILITY_TELEPATHY}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, - }, - - [SPECIES_STONJOURNER] = + .isLegendary = TRUE, + .speciesName = _("Tapu Bulu"), + .cryId = CRY_TAPU_BULU, + .natDexNum = NATIONAL_DEX_TAPU_BULU, + .categoryName = _("Land Spirit"), + .height = 19, + .weight = 455, + .description = COMPOUND_STRING( + "It causes vegetation to grow, and then\n" + "it absorbs energy from the growth.\n" + "It pulls large trees up by the roots and\n" + "swings them around at its enemies."), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 326, + .trainerOffset = 4, + FRONT_PIC(TapuBulu, 56, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_TapuBulu, + .frontAnimId = ANIM_V_SHAKE_TWICE, + .enemyMonElevation = 5, + BACK_PIC(TapuBulu, 64, 64), + .backPicYOffset = 1, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(TapuBulu), + ICON(TapuBulu, 2), + .footprint = gMonFootprint_Tapu_Bulu, + LEARNSETS(TapuBulu), + }, +#endif //P_FAMILY_TAPU_BULU + +#if P_FAMILY_TAPU_FINI + [SPECIES_TAPU_FINI] = { - .baseHP = 100, - .baseAttack = 125, - .baseDefense = 135, - .baseSpeed = 70, - .baseSpAttack = 20, - .baseSpDefense = 20, - .types = { TYPE_ROCK, TYPE_ROCK}, - .catchRate = 60, - .expYield = 165, - .evYield_Defense = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, + .baseHP = 70, + .baseAttack = 75, + .baseDefense = 115, + .baseSpeed = 85, + .baseSpAttack = 95, + .baseSpDefense = 130, + .types = { TYPE_WATER, TYPE_FAIRY}, + .catchRate = 3, + .expYield = 257, + .evYield_SpDefense = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_POWER_SPOT, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GRAY, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_MISTY_SURGE, ABILITY_NONE, ABILITY_TELEPATHY}, + .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, - }, - - [SPECIES_EISCUE_ICE_FACE] = + .isLegendary = TRUE, + .speciesName = _("Tapu Fini"), + .cryId = CRY_TAPU_FINI, + .natDexNum = NATIONAL_DEX_TAPU_FINI, + .categoryName = _("Land Spirit"), + .height = 13, + .weight = 212, + .description = COMPOUND_STRING( + "People say it can create pure water that\n" + "will wash away any corruption. The dense\n" + "fog it creates brings the downfall and\n" + "destruction of its confused enemies."), + .pokemonScale = 272, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(TapuFini, 56, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_TapuFini, + .frontAnimId = ANIM_SHAKE_GLOW_BLUE_SLOW, + .frontAnimDelay = 5, + .enemyMonElevation = 6, + BACK_PIC(TapuFini, 64, 56), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(TapuFini), + ICON(TapuFini, 0), + .footprint = gMonFootprint_Tapu_Fini, + LEARNSETS(TapuFini), + }, +#endif //P_FAMILY_TAPU_FINI + +#if P_FAMILY_COSMOG + [SPECIES_COSMOG] = { - .baseHP = 75, - .baseAttack = 80, - .baseDefense = 110, - .baseSpeed = 50, - .baseSpAttack = 65, - .baseSpDefense = 90, - .types = { TYPE_ICE, TYPE_ICE}, - .catchRate = 60, - .expYield = 165, - .evYield_Defense = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, - .friendship = STANDARD_FRIENDSHIP, + .baseHP = 43, + .baseAttack = 29, + .baseDefense = 31, + .baseSpeed = 37, + .baseSpAttack = 29, + .baseSpDefense = 31, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, + .catchRate = 45, + .expYield = 40, + .evYield_HP = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, - .abilities = {ABILITY_ICE_FACE, ABILITY_NONE}, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_UNAWARE, ABILITY_NONE}, .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .isLegendary = TRUE, + .speciesName = _("Cosmog"), + .cryId = CRY_COSMOG, + .natDexNum = NATIONAL_DEX_COSMOG, + .categoryName = _("Nebula"), + .height = 2, + .weight = 1, + .description = COMPOUND_STRING( + "In ages past, it was called the child of\n" + "the stars. It's said to be a Pokémon from\n" + "another world, but no specific details\n" + "are known."), + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Cosmog, 56, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Cosmog, + .frontAnimId = ANIM_H_JUMPS_V_STRETCH, + .enemyMonElevation = 7, + BACK_PIC(Cosmog, 64, 48), + .backPicYOffset = 10, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Cosmog), + ICON(Cosmog, 2), + .footprint = gMonFootprint_Cosmog, + LEARNSETS(Cosmog), + .evolutions = EVOLUTION({EVO_LEVEL, 43, SPECIES_COSMOEM}), }, - [SPECIES_INDEEDEE_MALE] = + [SPECIES_COSMOEM] = { - .baseHP = 60, - .baseAttack = 65, - .baseDefense = 55, - .baseSpeed = 95, - .baseSpAttack = 105, - .baseSpDefense = 95, - .types = { TYPE_PSYCHIC, TYPE_NORMAL}, - .catchRate = 30, - .expYield = 166, - .evYield_SpAttack = 2, - .genderRatio = MON_MALE, - .eggCycles = 40, - .friendship = 140, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_INNER_FOCUS, ABILITY_SYNCHRONIZE, ABILITY_PSYCHIC_SURGE}, - .bodyColor = BODY_COLOR_PURPLE, + .baseHP = 43, + .baseAttack = 29, + .baseDefense = 131, + .baseSpeed = 37, + .baseSpAttack = 29, + .baseSpDefense = 131, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, + .catchRate = 45, + .expYield = 140, + .evYield_Defense = 1, + .evYield_SpDefense = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_STURDY, ABILITY_NONE}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, + .isLegendary = TRUE, + .speciesName = _("Cosmoem"), + .cryId = CRY_COSMOEM, + .natDexNum = NATIONAL_DEX_COSMOEM, + .categoryName = _("Protostar"), + .height = 1, + .weight = 9999, + .description = COMPOUND_STRING( + "Motionless as if dead, its body is faintly\n" + "warm to the touch. There's something\n" + "accumulating around the black core\n" + "within its hard shell."), + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Cosmoem, 48, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Cosmoem, + .frontAnimId = ANIM_RISING_WOBBLE, + .enemyMonElevation = 3, + BACK_PIC(Cosmoem, 64, 40), + .backPicYOffset = 17, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Cosmoem), + ICON(Cosmoem, 0), + .footprint = gMonFootprint_Cosmoem, + LEARNSETS(Cosmoem), + .evolutions = EVOLUTION({EVO_LEVEL_DAY, 53, SPECIES_SOLGALEO}, + {EVO_LEVEL_NIGHT, 53, SPECIES_LUNALA}), }, - [SPECIES_MORPEKO_FULL_BELLY] = MORPEKO_SPECIES_INFO, - - [SPECIES_CUFANT] = + [SPECIES_SOLGALEO] = { - .baseHP = 72, - .baseAttack = 80, - .baseDefense = 49, - .baseSpeed = 40, - .baseSpAttack = 40, - .baseSpDefense = 49, - .types = { TYPE_STEEL, TYPE_STEEL}, - .catchRate = 190, - .expYield = 66, - .evYield_Attack = 1, - .itemRare = ITEM_LAGGING_TAIL, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_SHEER_FORCE, ABILITY_NONE, ABILITY_HEAVY_METAL}, - .bodyColor = BODY_COLOR_YELLOW, + .baseHP = 137, + .baseAttack = 137, + .baseDefense = 107, + .baseSpeed = 97, + .baseSpAttack = 113, + .baseSpDefense = 89, + .types = { TYPE_PSYCHIC, TYPE_STEEL}, + .catchRate = 45, + .expYield = 306, + .evYield_Attack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_FULL_METAL_BODY, ABILITY_NONE}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, + .isLegendary = TRUE, + .speciesName = _("Solgaleo"), + .cryId = CRY_SOLGALEO, + .natDexNum = NATIONAL_DEX_SOLGALEO, + .categoryName = _("Sunne"), + .height = 34, + .weight = 2300, + .description = COMPOUND_STRING( + "It is said to live in another world.\n" + "The intense light it radiates from the\n" + "surface of its body can make the darkest\n" + "of nights light up like midday."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 405, + .trainerOffset = 8, + FRONT_PIC(Solgaleo, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Solgaleo, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Solgaleo, 64, 64), + .backPicYOffset = 3, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Solgaleo), + ICON(Solgaleo, 0), + .footprint = gMonFootprint_Solgaleo, + LEARNSETS(Solgaleo), }, - [SPECIES_COPPERAJAH] = + [SPECIES_LUNALA] = { - COPPERAJAH_MISC_INFO, - }, - - [SPECIES_DRACOZOLT] = + .baseHP = 137, + .baseAttack = 113, + .baseDefense = 89, + .baseSpeed = 97, + .baseSpAttack = 137, + .baseSpDefense = 107, + .types = { TYPE_PSYCHIC, TYPE_GHOST}, + .catchRate = 45, + .expYield = 306, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_SHADOW_SHIELD, ABILITY_NONE}, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + .isLegendary = TRUE, + .speciesName = _("Lunala"), + .cryId = CRY_LUNALA, + .natDexNum = NATIONAL_DEX_LUNALA, + .categoryName = _("Moone"), + .height = 40, + .weight = 1200, + .description = COMPOUND_STRING( + "When its third eye activates, away it flies\n" + "to another world. This Pokémon devours\n" + "light, drawing the moonless dark veil of\n" + "night over the brightness of day."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 411, + .trainerOffset = 5, + FRONT_PIC(Lunala, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Lunala, + .frontAnimId = ANIM_CIRCULAR_VIBRATE, + .enemyMonElevation = 6, + BACK_PIC(Lunala, 64, 64), + .backPicYOffset = 2, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Lunala), + ICON(Lunala, 2), + .footprint = gMonFootprint_Lunala, + LEARNSETS(Lunala), + }, +#endif //P_FAMILY_COSMOG + +#if P_FAMILY_NIHILEGO + [SPECIES_NIHILEGO] = { - .baseHP = 90, - .baseAttack = 100, - .baseDefense = 90, - .baseSpeed = 75, - .baseSpAttack = 80, - .baseSpDefense = 70, - .types = { TYPE_ELECTRIC, TYPE_DRAGON}, + .baseHP = 109, + .baseAttack = 53, + .baseDefense = 47, + .baseSpeed = 103, + .baseSpAttack = 127, + .baseSpDefense = 131, + .types = { TYPE_ROCK, TYPE_POISON}, + .catchRate = 45, + .expYield = 257, + .evYield_SpDefense = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_BEAST_BOOST, ABILITY_NONE}, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = FALSE, + .isUltraBeast = TRUE, + .speciesName = _("Nihilego"), + .cryId = CRY_NIHILEGO, + .natDexNum = NATIONAL_DEX_NIHILEGO, + .categoryName = _("Parasite"), + .height = 12, + .weight = 555, + .description = COMPOUND_STRING( + "One of several mysterious Ultra Beasts.\n" + "It's unclear whether or not this Pokémon\n" + "is sentient, but sometimes it can be\n" + "observed behaving like a young girl."), + .pokemonScale = 282, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Nihilego, 48, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_Nihilego, + .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, + .enemyMonElevation = 6, + BACK_PIC(Nihilego, 64, 48), + .backPicYOffset = 9, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Nihilego), + ICON(Nihilego, 0), + .footprint = gMonFootprint_Nihilego, + LEARNSETS(Nihilego), + }, +#endif //P_FAMILY_NIHILEGO + +#if P_FAMILY_BUZZWOLE + [SPECIES_BUZZWOLE] = + { + .baseHP = 107, + .baseAttack = 139, + .baseDefense = 139, + .baseSpeed = 79, + .baseSpAttack = 53, + .baseSpDefense = 53, + .types = { TYPE_BUG, TYPE_FIGHTING}, + .catchRate = 45, + .expYield = 257, + .evYield_Attack = 1, + .evYield_Defense = 2, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_BEAST_BOOST, ABILITY_NONE}, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + .isUltraBeast = TRUE, + .speciesName = _("Buzzwole"), + .cryId = CRY_BUZZWOLE, + .natDexNum = NATIONAL_DEX_BUZZWOLE, + .categoryName = _("Swollen"), + .height = 24, + .weight = 3336, + .description = COMPOUND_STRING( + "This life-form called an Ultra Beast\n" + "appeared from another world. It shows\n" + "off its body, but whether that display\n" + "is a boast or a threat remains unclear."), + .pokemonScale = 256, + .pokemonOffset = 3, + .trainerScale = 369, + .trainerOffset = 7, + FRONT_PIC(Buzzwole, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Buzzwole, + .frontAnimId = ANIM_SHRINK_GROW_VIBRATE_FAST, + BACK_PIC(Buzzwole, 64, 56), + .backPicYOffset = 14, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Buzzwole), + ICON(Buzzwole, 0), + .footprint = gMonFootprint_Buzzwole, + LEARNSETS(Buzzwole), + }, +#endif //P_FAMILY_BUZZWOLE + +#if P_FAMILY_PHEROMOSA + [SPECIES_PHEROMOSA] = + { + .baseHP = 71, + .baseAttack = 137, + .baseDefense = 37, + .baseSpeed = 151, + .baseSpAttack = 137, + .baseSpDefense = 37, + .types = { TYPE_BUG, TYPE_FIGHTING}, .catchRate = 45, - .expYield = 177, - .evYield_Attack = 2, + .expYield = 257, + .evYield_Speed = 3, .genderRatio = MON_GENDERLESS, - .eggCycles = 35, - .friendship = STANDARD_FRIENDSHIP, + .eggCycles = 120, + .friendship = 0, .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_VOLT_ABSORB, ABILITY_HUSTLE, ABILITY_SAND_RUSH}, - .bodyColor = BODY_COLOR_GREEN, + .abilities = {ABILITY_BEAST_BOOST, ABILITY_NONE}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - }, - - [SPECIES_ARCTOZOLT] = + .isUltraBeast = TRUE, + .speciesName = _("Pheromosa"), + .cryId = CRY_PHEROMOSA, + .natDexNum = NATIONAL_DEX_PHEROMOSA, + .categoryName = _("Lissome"), + .height = 18, + .weight = 250, + .description = COMPOUND_STRING( + "One of the dangerous Ultra Beasts,\n" + "it refuses to touch anything, perhaps\n" + "because it senses some uncleanness\n" + "in this world."), + .pokemonScale = 267, + .pokemonOffset = 2, + .trainerScale = 286, + .trainerOffset = 1, + FRONT_PIC(Pheromosa, 56, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Pheromosa, + .frontAnimId = ANIM_SHRINK_GROW, + BACK_PIC(Pheromosa, 64, 64), + .backPicYOffset = 2, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Pheromosa), + ICON(Pheromosa, 2), + .footprint = gMonFootprint_Pheromosa, + LEARNSETS(Pheromosa), + }, +#endif //P_FAMILY_PHEROMOSA + +#if P_FAMILY_XURKITREE + [SPECIES_XURKITREE] = { - .baseHP = 90, - .baseAttack = 100, - .baseDefense = 90, - .baseSpeed = 55, - .baseSpAttack = 90, - .baseSpDefense = 80, - .types = { TYPE_ELECTRIC, TYPE_ICE}, + .baseHP = 83, + .baseAttack = 89, + .baseDefense = 71, + .baseSpeed = 83, + .baseSpAttack = 173, + .baseSpDefense = 71, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, .catchRate = 45, - .expYield = 177, - .evYield_Attack = 2, + .expYield = 257, + .evYield_SpAttack = 3, .genderRatio = MON_GENDERLESS, - .eggCycles = 35, - .friendship = STANDARD_FRIENDSHIP, + .eggCycles = 120, + .friendship = 0, .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_VOLT_ABSORB, ABILITY_STATIC, ABILITY_SLUSH_RUSH}, - .bodyColor = BODY_COLOR_BLUE, + .abilities = {ABILITY_BEAST_BOOST, ABILITY_NONE}, + .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, - }, - - [SPECIES_DRACOVISH] = + .isUltraBeast = TRUE, + .speciesName = _("Xurkitree"), + .cryId = CRY_XURKITREE, + .natDexNum = NATIONAL_DEX_XURKITREE, + .categoryName = _("Glowing"), + .height = 38, + .weight = 1000, + .description = COMPOUND_STRING( + "One of the mysterious life-forms known\n" + "as Ultra Beasts. Astonishing electric\n" + "shocks emanate from its entire body,\n" + "according to witnesses."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 610, + .trainerOffset = 17, + FRONT_PIC(Xurkitree, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Xurkitree, + .frontAnimId = ANIM_SHAKE_FLASH_YELLOW_FAST, + BACK_PIC(Xurkitree, 64, 64), + .backPicYOffset = 2, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Xurkitree), + ICON(Xurkitree, 0), + .footprint = gMonFootprint_Xurkitree, + LEARNSETS(Xurkitree), + }, +#endif //P_FAMILY_XURKITREE + +#if P_FAMILY_CELESTEELA + [SPECIES_CELESTEELA] = { - .baseHP = 90, - .baseAttack = 90, - .baseDefense = 100, - .baseSpeed = 75, - .baseSpAttack = 70, - .baseSpDefense = 80, - .types = { TYPE_WATER, TYPE_DRAGON}, + .baseHP = 97, + .baseAttack = 101, + .baseDefense = 103, + .baseSpeed = 61, + .baseSpAttack = 107, + .baseSpDefense = 101, + .types = { TYPE_STEEL, TYPE_FLYING}, .catchRate = 45, - .expYield = 177, - .evYield_Defense = 2, + .expYield = 257, + .evYield_Attack = 1, + .evYield_Defense = 1, + .evYield_SpAttack = 1, .genderRatio = MON_GENDERLESS, - .eggCycles = 35, - .friendship = STANDARD_FRIENDSHIP, + .eggCycles = 120, + .friendship = 0, .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_WATER_ABSORB, ABILITY_STRONG_JAW, ABILITY_SAND_RUSH}, + .abilities = {ABILITY_BEAST_BOOST, ABILITY_NONE}, .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - }, - - [SPECIES_ARCTOVISH] = + .isUltraBeast = TRUE, + .speciesName = _("Celesteela"), + .cryId = CRY_CELESTEELA, + .natDexNum = NATIONAL_DEX_CELESTEELA, + .categoryName = _("Launch"), + .height = 92, + .weight = 9999, + .description = COMPOUND_STRING( + "It appeared from the Ultra Wormhole.\n" + "One kind of Ultra Beast, witnesses saw\n" + "it flying across the sky by expelling gas\n" + "from its two arms."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 516, + .trainerOffset = 13, + FRONT_PIC(Celesteela, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Celesteela, + .frontAnimId = ANIM_GROW_STUTTER_SLOW, + BACK_PIC(Celesteela, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Celesteela), + ICON(Celesteela, 0), + .footprint = gMonFootprint_Celesteela, + LEARNSETS(Celesteela), + }, +#endif //P_FAMILY_CELESTEELA + +#if P_FAMILY_KARTANA + [SPECIES_KARTANA] = { - .baseHP = 90, - .baseAttack = 90, - .baseDefense = 100, - .baseSpeed = 55, - .baseSpAttack = 80, - .baseSpDefense = 90, - .types = { TYPE_WATER, TYPE_ICE}, + .baseHP = 59, + .baseAttack = 181, + .baseDefense = 131, + .baseSpeed = 109, + .baseSpAttack = 59, + .baseSpDefense = 31, + .types = { TYPE_GRASS, TYPE_STEEL}, .catchRate = 45, - .expYield = 177, - .evYield_Defense = 2, + .expYield = 257, + .evYield_Attack = 3, .genderRatio = MON_GENDERLESS, - .eggCycles = 35, - .friendship = STANDARD_FRIENDSHIP, + .eggCycles = 120, + .friendship = 0, .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_WATER_ABSORB, ABILITY_ICE_BODY, ABILITY_SLUSH_RUSH}, - .bodyColor = BODY_COLOR_BLUE, + .abilities = {ABILITY_BEAST_BOOST, ABILITY_NONE}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - }, - - [SPECIES_DURALUDON] = - { - DURALUDON_MISC_INFO, - }, - - [SPECIES_DREEPY] = + .isUltraBeast = TRUE, + .speciesName = _("Kartana"), + .cryId = CRY_KARTANA, + .natDexNum = NATIONAL_DEX_KARTANA, + .categoryName = _("Drawn Sword"), + .height = 3, + .weight = 1, + .description = COMPOUND_STRING( + "This Ultra Beast came from the\n" + "Ultra Wormhole. It seems not to attack\n" + "enemies on its own, but its sharp body is\n" + "a dangerous weapon in itself."), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Kartana, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Kartana, + .frontAnimId = ANIM_H_VIBRATE, + .enemyMonElevation = 3, + BACK_PIC(Kartana, 64, 48), + .backPicYOffset = 11, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Kartana), + ICON(Kartana, 0), + .footprint = gMonFootprint_Kartana, + LEARNSETS(Kartana), + }, +#endif //P_FAMILY_KARTANA + +#if P_FAMILY_GUZZLORD + [SPECIES_GUZZLORD] = { - .baseHP = 28, - .baseAttack = 60, - .baseDefense = 30, - .baseSpeed = 82, - .baseSpAttack = 40, - .baseSpDefense = 30, - .types = { TYPE_DRAGON, TYPE_GHOST}, + .baseHP = 223, + .baseAttack = 101, + .baseDefense = 53, + .baseSpeed = 43, + .baseSpAttack = 97, + .baseSpDefense = 53, + .types = { TYPE_DARK, TYPE_DRAGON}, .catchRate = 45, - .expYield = 54, - .evYield_Speed = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 40, - .friendship = STANDARD_FRIENDSHIP, + .expYield = 257, + .evYield_HP = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_CLEAR_BODY, ABILITY_INFILTRATOR, ABILITY_CURSED_BODY}, - .bodyColor = BODY_COLOR_GREEN, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_BEAST_BOOST, ABILITY_NONE}, + .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, - }, + .isUltraBeast = TRUE, + .speciesName = _("Guzzlord"), + .cryId = CRY_GUZZLORD, + .natDexNum = NATIONAL_DEX_GUZZLORD, + .categoryName = _("Junkivore"), + .height = 55, + .weight = 8880, + .description = COMPOUND_STRING( + "A dangerous Ultra Beast, it has gobbled\n" + "mountains and swallowed whole buildings,\n" + "according to reports. But for some reason\n" + "its droppings have never been found."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 721, + .trainerOffset = 19, + FRONT_PIC(Guzzlord, 64, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_Guzzlord, + .frontAnimId = ANIM_SHRINK_GROW_VIBRATE_FAST, + BACK_PIC(Guzzlord, 64, 56), + .backPicYOffset = 10, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Guzzlord), + ICON(Guzzlord, 0), + .footprint = gMonFootprint_Guzzlord, + LEARNSETS(Guzzlord), + }, +#endif //P_FAMILY_GUZZLORD + +#if P_FAMILY_NECROZMA +#define NECROZMA_MISC_INFO \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ + .noFlip = TRUE, \ + .speciesName = _("Necrozma"), \ + .cryId = CRY_NECROZMA_DUSK_MANE, \ + .natDexNum = NATIONAL_DEX_NECROZMA, \ + .categoryName = _("Prism"), \ + .pokemonScale = 256, \ + .pokemonOffset = 3, \ + .trainerScale = 369, \ + .trainerOffset = 7, \ + .footprint = gMonFootprint_Necrozma, \ + LEARNSETS(Necrozma), \ + .formSpeciesIdTable = sNecrozmaFormSpeciesIdTable, \ + .isLegendary = TRUE - [SPECIES_DRAKLOAK] = + [SPECIES_NECROZMA] = { - .baseHP = 68, - .baseAttack = 80, - .baseDefense = 50, - .baseSpeed = 102, - .baseSpAttack = 60, - .baseSpDefense = 50, - .types = { TYPE_DRAGON, TYPE_GHOST}, - .catchRate = 45, - .expYield = 144, - .evYield_Speed = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 40, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_CLEAR_BODY, ABILITY_INFILTRATOR, ABILITY_CURSED_BODY}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, + NECROZMA_MISC_INFO, + .baseHP = 97, + .baseAttack = 107, + .baseDefense = 101, + .baseSpeed = 79, + .baseSpAttack = 127, + .baseSpDefense = 89, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, + .catchRate = 255, + .expYield = 270, + .evYield_Attack = 1, + .evYield_SpAttack = 2, + .abilities = {ABILITY_PRISM_ARMOR, ABILITY_NONE}, + .bodyColor = BODY_COLOR_BLACK, + .height = 24, + .weight = 2300, + .description = COMPOUND_STRING( + "Reminiscent of the Ultra Beasts, this\n" + "life-form, apparently asleep underground,\n" + "is thought to have come from another\n" + "world in ancient times."), + FRONT_PIC(Necrozma, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Necrozma, + .frontAnimId = ANIM_GROW_VIBRATE, + .enemyMonElevation = 6, + BACK_PIC(Necrozma, 64, 64), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Necrozma), + ICON(Necrozma, 0), + }, + +#if P_FUSION_FORMS + [SPECIES_NECROZMA_DUSK_MANE] = + { + NECROZMA_MISC_INFO, + .baseHP = 97, + .baseAttack = 157, + .baseDefense = 127, + .baseSpeed = 77, + .baseSpAttack = 113, + .baseSpDefense = 109, + .types = { TYPE_PSYCHIC, TYPE_STEEL}, + .catchRate = 255, + .expYield = 306, + .evYield_Attack = 3, + .abilities = {ABILITY_PRISM_ARMOR, ABILITY_NONE}, + .bodyColor = BODY_COLOR_YELLOW, + .cannotBeTraded = TRUE, + .height = 38, + .weight = 4600, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(NecrozmaDuskMane, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Necrozma, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(NecrozmaDuskMane, 64, 64), + .backPicYOffset = 1, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(NecrozmaDuskMane), + ICON(NecrozmaDuskMane, 0), + .formChangeTable = sNecrozmaDuskManeFormChangeTable, }, - [SPECIES_DRAGAPULT] = + [SPECIES_NECROZMA_DAWN_WINGS] = { - .baseHP = 88, - .baseAttack = 120, - .baseDefense = 75, - .baseSpeed = 142, - .baseSpAttack = 100, - .baseSpDefense = 75, - .types = { TYPE_DRAGON, TYPE_GHOST}, - .catchRate = 45, - .expYield = 300, - .evYield_Speed = 3, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 40, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_CLEAR_BODY, ABILITY_INFILTRATOR, ABILITY_CURSED_BODY}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, + NECROZMA_MISC_INFO, + .baseHP = 97, + .baseAttack = 113, + .baseDefense = 109, + .baseSpeed = 77, + .baseSpAttack = 157, + .baseSpDefense = 127, + .types = { TYPE_PSYCHIC, TYPE_GHOST}, + .catchRate = 255, + .expYield = 306, + .evYield_SpAttack = 3, + .abilities = {ABILITY_PRISM_ARMOR, ABILITY_NONE}, + .bodyColor = BODY_COLOR_BLUE, + .cannotBeTraded = TRUE, + .height = 42, + .weight = 3500, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(NecrozmaDawnWings, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Necrozma, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 6, + BACK_PIC(NecrozmaDawnWings, 64, 64), + .backPicYOffset = 2, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(NecrozmaDawnWings), + ICON(NecrozmaDawnWings, 0), + .formChangeTable = sNecrozmaDawnWingsFormChangeTable, + }, + +#if P_ULTRA_BURST_FORMS + [SPECIES_NECROZMA_ULTRA] = + { + NECROZMA_MISC_INFO, + .baseHP = 97, + .baseAttack = 167, + .baseDefense = 97, + .baseSpeed = 129, + .baseSpAttack = 167, + .baseSpDefense = 97, + .types = { TYPE_PSYCHIC, TYPE_DRAGON}, + .catchRate = 255, + .expYield = 339, + .evYield_Attack = 1, + .evYield_Speed = 1, + .evYield_SpAttack = 1, + .abilities = {ABILITY_NEUROFORCE, ABILITY_NONE}, + .bodyColor = BODY_COLOR_YELLOW, + .isUltraBurst = TRUE, + .height = 75, + .weight = 2300, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(NecrozmaUltra, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Necrozma, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 5, + BACK_PIC(NecrozmaUltra, 64, 64), + .backPicYOffset = 3, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(NecrozmaUltra), + ICON(NecrozmaUltra, 2), + }, +#endif //P_ULTRA_BURST_FORMS +#endif //P_FUSION_FORMS +#endif //P_FAMILY_NECROZMA + +#if P_FAMILY_MAGEARNA +#define MAGEARNA_MISC_INFO(Form) \ + .baseHP = 80, \ + .baseAttack = 95, \ + .baseDefense = 115, \ + .baseSpeed = 65, \ + .baseSpAttack = 130, \ + .baseSpDefense = 115, \ + .types = { TYPE_STEEL, TYPE_FAIRY}, \ + .catchRate = 3, \ + .expYield = 270, \ + .evYield_SpAttack = 3, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ + .abilities = {ABILITY_SOUL_HEART, ABILITY_NONE}, \ + .noFlip = FALSE, \ + .speciesName = _("Magearna"), \ + .cryId = CRY_MAGEARNA, \ + .natDexNum = NATIONAL_DEX_MAGEARNA, \ + .categoryName = _("Artificial"), \ + .height = 10, \ + .weight = 805, \ + .pokemonScale = 305, \ + .pokemonOffset = 7, \ + .trainerScale = 257, \ + .trainerOffset = 0, \ + FRONT_PIC(Form, 56, 64), \ + .frontPicYOffset = 0, \ + .frontAnimFrames = sAnims_Magearna, \ + .frontAnimId = ANIM_H_SLIDE_SLOW, \ + BACK_PIC(Form, 64, 56), \ + .backPicYOffset = 4, \ + PALETTE(Form), \ + ICON(Form, 0), \ + .footprint = gMonFootprint_Magearna, \ + LEARNSETS(Magearna), \ + .formSpeciesIdTable = sMagearnaFormSpeciesIdTable, \ + .isMythical = TRUE + //.backAnimId = BACK_ANIM_NONE, + + [SPECIES_MAGEARNA] = + { + MAGEARNA_MISC_INFO(Magearna), + .bodyColor = BODY_COLOR_GRAY, + .description = COMPOUND_STRING( + "This artificial Pokémon, constructed more\n" + "than 500 years ago, can understand human\n" + "speech but cannot itself speak. Its true\n" + "self is its Soul-Heart, an artificial soul."), + }, + [SPECIES_MAGEARNA_ORIGINAL_COLOR] = + { + MAGEARNA_MISC_INFO(MagearnaOriginalColor), + .bodyColor = BODY_COLOR_RED, + .description = COMPOUND_STRING( + ""), }, +#endif //P_FAMILY_MAGEARNA - [SPECIES_ZACIAN_HERO_OF_MANY_BATTLES] = +#if P_FAMILY_MARSHADOW + [SPECIES_MARSHADOW] = { - .baseHP = 92, - .baseAttack = P_UPDATED_STATS >= GEN_9 ? 120 : 130, - .baseDefense = 115, - .baseSpeed = 138, - .baseSpAttack = 80, - .baseSpDefense = 115, - .types = { TYPE_FAIRY, TYPE_FAIRY}, - .catchRate = 10, - .expYield = 335, - .evYield_Speed = 3, + .baseHP = 90, + .baseAttack = 125, + .baseDefense = 80, + .baseSpeed = 125, + .baseSpAttack = 90, + .baseSpDefense = 90, + .types = { TYPE_FIGHTING, TYPE_GHOST}, + .catchRate = 3, + .expYield = 270, + .evYield_Attack = 2, + .evYield_Speed = 1, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_INTREPID_SWORD, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_ZAMAZENTA_HERO_OF_MANY_BATTLES] = + .abilities = {ABILITY_TECHNICIAN, ABILITY_NONE}, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = TRUE, + .speciesName = _("Marshadow"), + .cryId = CRY_MARSHADOW, + .natDexNum = NATIONAL_DEX_MARSHADOW, + .categoryName = _("Gloomdwellr"), + .height = 7, + .weight = 222, + .description = COMPOUND_STRING( + "Able to conceal itself in the shadows of\n" + "others, it never appears before humans,\n" + "so its very existence is the stuff of myth.\n" + "This Pokémon is craven and cowering."), + .pokemonScale = 365, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Marshadow, 32, 56), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Marshadow, + .frontAnimId = ANIM_V_SHAKE, + BACK_PIC(Marshadow, 40, 56), + .backPicYOffset = 6, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Marshadow), + ICON(Marshadow, 0), + .footprint = gMonFootprint_Marshadow, + LEARNSETS(Marshadow), + .isMythical = TRUE, + }, +#endif //P_FAMILY_MARSHADOW + +#if P_FAMILY_POIPOLE + [SPECIES_POIPOLE] = { - .baseHP = 92, - .baseAttack = P_UPDATED_STATS >= GEN_9 ? 120 : 130, - .baseDefense = 115, - .baseSpeed = 138, - .baseSpAttack = 80, - .baseSpDefense = 115, - .types = { TYPE_FIGHTING, TYPE_FIGHTING}, - .catchRate = 10, - .expYield = 335, - .evYield_Speed = 3, + .baseHP = 67, + .baseAttack = 73, + .baseDefense = 67, + .baseSpeed = 73, + .baseSpAttack = 73, + .baseSpDefense = 67, + .types = { TYPE_POISON, TYPE_POISON}, + .catchRate = 45, + .expYield = 189, + .evYield_Speed = 1, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_DAUNTLESS_SHIELD, ABILITY_NONE}, - .bodyColor = BODY_COLOR_RED, + .abilities = {ABILITY_BEAST_BOOST, ABILITY_NONE}, + .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, + .isUltraBeast = TRUE, + .speciesName = _("Poipole"), + .cryId = CRY_POIPOLE, + .natDexNum = NATIONAL_DEX_POIPOLE, + .categoryName = _("Poison Pin"), + .height = 6, + .weight = 18, + .description = COMPOUND_STRING( + "This Ultra Beast is well enough\n" + "liked to be chosen as a\n" + "first partner in its own world."), + .pokemonScale = 422, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Poipole, 40, 56), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Poipole, + .frontAnimId = ANIM_SHAKE_GLOW_PURPLE_SLOW, + .enemyMonElevation = 9, + BACK_PIC(Poipole, 48, 56), + .backPicYOffset = 6, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Poipole), + ICON(Poipole, 0), + .footprint = gMonFootprint_Poipole, + LEARNSETS(Poipole), + .evolutions = EVOLUTION({EVO_MOVE, MOVE_DRAGON_PULSE, SPECIES_NAGANADEL}), }, - [SPECIES_ETERNATUS] = + [SPECIES_NAGANADEL] = { - .baseHP = 140, - .baseAttack = 85, - .baseDefense = 95, - .baseSpeed = 130, - .baseSpAttack = 145, - .baseSpDefense = 95, + .baseHP = 73, + .baseAttack = 73, + .baseDefense = 73, + .baseSpeed = 121, + .baseSpAttack = 127, + .baseSpDefense = 73, .types = { TYPE_POISON, TYPE_DRAGON}, - .catchRate = 255, - .expYield = 345, - .evYield_HP = 3, + .catchRate = 45, + .expYield = 243, + .evYield_SpAttack = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, .friendship = 0, .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_PRESSURE, ABILITY_NONE}, + .abilities = {ABILITY_BEAST_BOOST, ABILITY_NONE}, .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_KUBFU] = + .isUltraBeast = TRUE, + .speciesName = _("Naganadel"), + .cryId = CRY_NAGANADEL, + .natDexNum = NATIONAL_DEX_NAGANADEL, + .categoryName = _("Poison Pin"), + .height = 36, + .weight = 1500, + .description = COMPOUND_STRING( + "It stores hundreds of liters of poisonous\n" + "liquid inside its body. It is one of the\n" + "organisms known as UBs."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 405, + .trainerOffset = 8, + FRONT_PIC(Naganadel, 64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Naganadel, + .frontAnimId = ANIM_TRIANGLE_DOWN_TWICE, + .enemyMonElevation = 7, + BACK_PIC(Naganadel, 64, 56), + .backPicYOffset = 6, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Naganadel), + ICON(Naganadel, 0), + .footprint = gMonFootprint_Naganadel, + LEARNSETS(Naganadel), + }, +#endif //P_FAMILY_POIPOLE + +#if P_FAMILY_STAKATAKA + [SPECIES_STAKATAKA] = { - .baseHP = 60, - .baseAttack = 90, - .baseDefense = 60, - .baseSpeed = 72, + .baseHP = 61, + .baseAttack = 131, + .baseDefense = 211, + .baseSpeed = 13, .baseSpAttack = 53, - .baseSpDefense = 50, - .types = { TYPE_FIGHTING, TYPE_FIGHTING}, - .catchRate = 3, - .expYield = 77, - .evYield_Attack = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 120, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_INNER_FOCUS, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_URSHIFU_SINGLE_STRIKE_STYLE] = { URSHIFU_SINGLE_STRIKE_STYLE_MISC_INFO, }, - - [SPECIES_ZARUDE] = ZARUDE_SPECIES_INFO, - - [SPECIES_REGIELEKI] = - { - .baseHP = 80, - .baseAttack = 100, - .baseDefense = 50, - .baseSpeed = 200, - .baseSpAttack = 100, - .baseSpDefense = 50, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, - .catchRate = 3, - .expYield = 290, - .evYield_Speed = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_TRANSISTOR, ABILITY_NONE}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_REGIDRAGO] = - { - .baseHP = 200, - .baseAttack = 100, - .baseDefense = 50, - .baseSpeed = 80, - .baseSpAttack = 100, - .baseSpDefense = 50, - .types = { TYPE_DRAGON, TYPE_DRAGON}, - .catchRate = 3, - .expYield = 290, - .evYield_HP = 3, + .baseSpDefense = 101, + .types = { TYPE_ROCK, TYPE_STEEL}, + .catchRate = 30, + .expYield = 257, + .evYield_Defense = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, - .friendship = 35, + .friendship = 0, .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_DRAGONS_MAW, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_GLASTRIER] = + .abilities = {ABILITY_BEAST_BOOST, ABILITY_NONE}, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = TRUE, + .isUltraBeast = TRUE, + .speciesName = _("Stakataka"), + .cryId = CRY_STAKATAKA, + .natDexNum = NATIONAL_DEX_STAKATAKA, + .categoryName = _("Rampart"), + .height = 55, + .weight = 8200, + .description = COMPOUND_STRING( + "It appeared from an Ultra Wormhole. Each\n" + "one appears to be made up of many life-\n" + "forms stacked one on top of each other."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 721, + .trainerOffset = 19, + FRONT_PIC(Stakataka, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Stakataka, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Stakataka, 64, 48), + .backPicYOffset = 12, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Stakataka), + ICON(Stakataka, 0), + .footprint = gMonFootprint_Stakataka, + LEARNSETS(Stakataka), + }, +#endif //P_FAMILY_STAKATAKA + +#if P_FAMILY_BLACEPHALON + [SPECIES_BLACEPHALON] = { - .baseHP = 100, - .baseAttack = 145, - .baseDefense = 130, - .baseSpeed = 30, - .baseSpAttack = 65, - .baseSpDefense = 110, - .types = { TYPE_ICE, TYPE_ICE}, - .catchRate = 3, - .expYield = 290, - .evYield_Attack = 3, + .baseHP = 53, + .baseAttack = 127, + .baseDefense = 53, + .baseSpeed = 107, + .baseSpAttack = 151, + .baseSpDefense = 79, + .types = { TYPE_FIRE, TYPE_GHOST}, + .catchRate = 30, + .expYield = 257, + .evYield_SpAttack = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, - .friendship = 35, + .friendship = 0, .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_CHILLING_NEIGH, ABILITY_NONE}, + .abilities = {ABILITY_BEAST_BOOST, ABILITY_NONE}, .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_SPECTRIER] = + .noFlip = TRUE, + .isUltraBeast = TRUE, + .speciesName = _("Blacephaln"), + .cryId = CRY_BLACEPHALON, + .natDexNum = NATIONAL_DEX_BLACEPHALON, + .categoryName = _("Fireworks"), + .height = 18, + .weight = 130, + .description = COMPOUND_STRING( + "It slithers toward people and explode\n" + "its head without warning. It is\n" + "one kind of Ultra Beast."), + .pokemonScale = 267, + .pokemonOffset = 2, + .trainerScale = 286, + .trainerOffset = 1, + FRONT_PIC(Blacephalon, 56, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Blacephalon, + .frontAnimId = ANIM_SHAKE_GLOW_RED, + BACK_PIC(Blacephalon, 64, 48), + .backPicYOffset = 9, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Blacephalon), + ICON(Blacephalon, 0), + .footprint = gMonFootprint_Blacephalon, + LEARNSETS(Blacephalon), + }, +#endif //P_FAMILY_BLACEPHALON + +#if P_FAMILY_ZERAORA + [SPECIES_ZERAORA] = { - .baseHP = 100, - .baseAttack = 65, - .baseDefense = 60, - .baseSpeed = 130, - .baseSpAttack = 145, + .baseHP = 88, + .baseAttack = 112, + .baseDefense = 75, + .baseSpeed = 143, + .baseSpAttack = 102, .baseSpDefense = 80, - .types = { TYPE_GHOST, TYPE_GHOST}, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, .catchRate = 3, - .expYield = 290, - .evYield_SpAttack = 3, + .expYield = 270, + .evYield_Speed = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, - .friendship = 35, + .friendship = 0, .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_GRIM_NEIGH, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLACK, + .abilities = {ABILITY_VOLT_ABSORB, ABILITY_NONE}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_CALYREX] = + .isMythical = TRUE, + .speciesName = _("Zeraora"), + .cryId = CRY_ZERAORA, + .natDexNum = NATIONAL_DEX_ZERAORA, + .categoryName = _("Thunderclap"), + .height = 15, + .weight = 445, + .description = COMPOUND_STRING( + "It approaches its enemies at the speed\n" + "of lightning, then tears them limb from\n" + "limb with its sharp claws."), + .pokemonScale = 268, + .pokemonOffset = 2, + .trainerScale = 271, + .trainerOffset = 0, + FRONT_PIC(Zeraora, 64, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Zeraora, + .frontAnimId = ANIM_V_STRETCH, + BACK_PIC(Zeraora, 64, 56), + .backPicYOffset = 11, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Zeraora), + ICON(Zeraora, 0), + .footprint = gMonFootprint_Zeraora, + LEARNSETS(Zeraora), + }, +#endif //P_FAMILY_ZERAORA + +#if P_FAMILY_MELTAN + [SPECIES_MELTAN] = { - .baseHP = 100, - .baseAttack = 80, - .baseDefense = 80, - .baseSpeed = 80, - .baseSpAttack = 80, - .baseSpDefense = 80, - .types = { TYPE_PSYCHIC, TYPE_GRASS}, + .baseHP = 46, + .baseAttack = 65, + .baseDefense = 65, + .baseSpeed = 34, + .baseSpAttack = 55, + .baseSpDefense = 35, + .types = { TYPE_STEEL, TYPE_STEEL}, .catchRate = 3, - .expYield = 250, - .evYield_HP = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 100, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_UNNERVE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_WYRDEER] = - { - .baseHP = 103, - .baseAttack = 105, - .baseDefense = 72, - .baseSpeed = 65, - .baseSpAttack = 105, - .baseSpDefense = 75, - .types = { TYPE_NORMAL, TYPE_PSYCHIC}, - .catchRate = 45, - .expYield = 184, + .expYield = 135, .evYield_Attack = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_INTIMIDATE, ABILITY_FRISK, ABILITY_SAP_SIPPER}, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_MAGNET_PULL, ABILITY_NONE}, .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, + .isMythical = TRUE, + .speciesName = _("Meltan"), + .cryId = CRY_MELTAN, + .natDexNum = NATIONAL_DEX_MELTAN, + .categoryName = _("Hex Nut"), + .height = 2, + .weight = 80, + .description = COMPOUND_STRING( + "It melts particles of iron and other metals\n" + "found in the subsoil, so it can absorb them\n" + "into its body of molten steel."), + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Meltan, 32, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Meltan, + .frontAnimId = ANIM_GROW_STUTTER_SLOW, + BACK_PIC(Meltan, 40, 40), + .backPicYOffset = 12, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Meltan), + ICON(Meltan, 2), + .footprint = gMonFootprint_Meltan, + LEARNSETS(Meltan), }, - [SPECIES_KLEAVOR] = - { - .baseHP = 70, - .baseAttack = 135, - .baseDefense = 95, - .baseSpeed = 85, - .baseSpAttack = 45, - .baseSpDefense = 70, - .types = { TYPE_BUG, TYPE_ROCK}, - .catchRate = 25, - .expYield = 175, - .evYield_Attack = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SWARM, ABILITY_SHEER_FORCE, ABILITY_SHARPNESS}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, +#define MELMETAL_MISC_INFO \ + .baseHP = 135, \ + .baseAttack = 143, \ + .baseDefense = 143, \ + .baseSpeed = 34, \ + .baseSpAttack = 80, \ + .baseSpDefense = 65, \ + .types = {TYPE_STEEL, TYPE_STEEL}, \ + .catchRate = 3, \ + .expYield = 270, \ + .evYield_Attack = 3, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = {EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ + .abilities = {ABILITY_IRON_FIST, ABILITY_NONE}, \ + .bodyColor = BODY_COLOR_GRAY, \ + .noFlip = FALSE, \ + .speciesName = _("Melmetal"), \ + .cryId = CRY_MELMETAL, \ + .natDexNum = NATIONAL_DEX_MELMETAL, \ + .categoryName = _("Hex Nut"), \ + .pokemonScale = 257, \ + .pokemonOffset = 10, \ + .trainerScale = 423, \ + .trainerOffset = 8, \ + .footprint = gMonFootprint_Melmetal, \ + LEARNSETS(Melmetal), \ + .formChangeTable = sMelmetalFormChangeTable, \ + .isMythical = TRUE - [SPECIES_URSALUNA] = + [SPECIES_MELMETAL] = { - .baseHP = 130, - .baseAttack = 140, - .baseDefense = 105, - .baseSpeed = 50, - .baseSpAttack = 45, - .baseSpDefense = 80, - .types = { TYPE_GROUND, TYPE_NORMAL}, - .catchRate = 75, - .expYield = 194, - .evYield_Attack = 3, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_GUTS, ABILITY_BULLETPROOF, ABILITY_UNNERVE}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - }, - - [SPECIES_BASCULEGION_MALE] = + MELMETAL_MISC_INFO, + .height = 25, + .weight = 800, + .description = COMPOUND_STRING( + "Revered long ago for its capacity to create\n" + "iron from nothing, for some reason it has\n" + "come back to life after 3,000 years."), + FRONT_PIC(Melmetal, 64, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Melmetal, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Melmetal, 64, 40), + .backPicYOffset = 13, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Melmetal), + ICON(Melmetal, 2), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_MELMETAL_GIGANTAMAX] = { - .baseHP = 120, - .baseAttack = 112, - .baseDefense = 65, - .baseSpeed = 78, - .baseSpAttack = 80, - .baseSpDefense = 75, - .types = { TYPE_WATER, TYPE_GHOST}, - .catchRate = 25, - .expYield = 186, - .evYield_HP = 2, - .genderRatio = MON_MALE, - .eggCycles = 40, + MELMETAL_MISC_INFO, + .isGigantamax = TRUE, + .height = 250, + .weight = 0, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(MelmetalGigantamax, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_MelmetalGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(MelmetalGigantamax, 64, 64), + .backPicYOffset = 14, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(MelmetalGigantamax), + ICON(MelmetalGigantamax, 0), + }, +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_MELTAN + +#if P_FAMILY_GROOKEY + [SPECIES_GROOKEY] = + { + .baseHP = 50, + .baseAttack = 65, + .baseDefense = 50, + .baseSpeed = 65, + .baseSpAttack = 40, + .baseSpDefense = 40, + .types = { TYPE_GRASS, TYPE_GRASS}, + .catchRate = 45, + .expYield = 62, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, - .abilities = {ABILITY_RATTLED, ABILITY_ADAPTABILITY, ABILITY_MOLD_BREAKER}, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS}, + .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_GRASSY_SURGE}, .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, + .speciesName = _("Grookey"), + .cryId = CRY_GROOKEY, + .natDexNum = NATIONAL_DEX_GROOKEY, + .categoryName = _("Chimp"), + .height = 3, + .weight = 50, + .description = COMPOUND_STRING( + "When it uses its special stick to strike up\n" + "a beat, the sound waves produced carry\n" + "revitalizing energy to the plants and\n" + "flowers in the area."), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Grookey, 40, 48), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Grookey, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Grookey, 48, 56), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Grookey), + ICON(Grookey, 1), + .footprint = gMonFootprint_Grookey, + LEARNSETS(Grookey), + .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_THWACKEY}), }, - [SPECIES_BASCULEGION_FEMALE] = + [SPECIES_THWACKEY] = { - .baseHP = 120, - .baseAttack = 92, - .baseDefense = 65, - .baseSpeed = 78, - .baseSpAttack = 100, - .baseSpDefense = 75, - .types = { TYPE_WATER, TYPE_GHOST}, - .catchRate = 25, - .expYield = 186, - .evYield_HP = 2, - .genderRatio = MON_FEMALE, - .eggCycles = 40, + .baseHP = 70, + .baseAttack = 85, + .baseDefense = 70, + .baseSpeed = 80, + .baseSpAttack = 55, + .baseSpDefense = 60, + .types = { TYPE_GRASS, TYPE_GRASS}, + .catchRate = 45, + .expYield = 147, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, - .abilities = {ABILITY_RATTLED, ABILITY_ADAPTABILITY, ABILITY_MOLD_BREAKER}, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS}, + .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_GRASSY_SURGE}, .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, + .speciesName = _("Thwackey"), + .cryId = CRY_THWACKEY, + .natDexNum = NATIONAL_DEX_THWACKEY, + .categoryName = _("Beat"), + .height = 7, + .weight = 140, + .description = COMPOUND_STRING( + "The faster a Thwackey can beat out\n" + "a rhythm with its two sticks, the more\n" + "respect it wins from its peers."), + .pokemonScale = 365, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Thwackey, 48, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Thwackey, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Thwackey, 56, 56), + .backPicYOffset = 5, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Thwackey), + ICON(Thwackey, 1), + .footprint = gMonFootprint_Thwackey, + LEARNSETS(Thwackey), + .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_RILLABOOM}), }, - [SPECIES_SNEASLER] = +#define RILLABOOM_MISC_INFO \ + .baseHP = 100, \ + .baseAttack = 125, \ + .baseDefense = 90, \ + .baseSpeed = 85, \ + .baseSpAttack = 60, \ + .baseSpDefense = 70, \ + .types = {TYPE_GRASS, TYPE_GRASS}, \ + .catchRate = 45, \ + .expYield = 265, \ + .evYield_Attack = 3, \ + .genderRatio = PERCENT_FEMALE(12.5), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_SLOW, \ + .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_GRASS}, \ + .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_GRASSY_SURGE},\ + .bodyColor = BODY_COLOR_GREEN, \ + .noFlip = FALSE, \ + .speciesName = _("Rillaboom"), \ + .cryId = CRY_RILLABOOM, \ + .natDexNum = NATIONAL_DEX_RILLABOOM, \ + .categoryName = _("Drummer"), \ + .footprint = gMonFootprint_Rillaboom, \ + LEARNSETS(Rillaboom), \ + .formChangeTable = sRillaboomFormChangeTable + + [SPECIES_RILLABOOM] = { - .baseHP = 80, - .baseAttack = 130, - .baseDefense = 60, - .baseSpeed = 120, + RILLABOOM_MISC_INFO, + .height = 21, + .weight = 900, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 365, + .trainerOffset = 7, + .description = COMPOUND_STRING( + "By drumming, it taps into the power of\n" + "its special tree stump. The roots of the\n" + "stump follow its direction in battle."), + FRONT_PIC(Rillaboom, 64, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_Rillaboom, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Rillaboom, 64, 56), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Rillaboom), + ICON(Rillaboom, 1), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_RILLABOOM_GIGANTAMAX] = + { + RILLABOOM_MISC_INFO, + .height = 280, + .weight = 0, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 365, + .trainerOffset = 7, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(RillaboomGigantamax, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_RillaboomGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(RillaboomGigantamax, 64, 64), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(RillaboomGigantamax), + ICON(RillaboomGigantamax, 1), + .formSpeciesIdTable = sRillaboomFormSpeciesIdTable, + .isGigantamax = TRUE, + }, +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_GROOKEY + +#if P_FAMILY_SCORBUNNY + [SPECIES_SCORBUNNY] = + { + .baseHP = 50, + .baseAttack = 71, + .baseDefense = 40, + .baseSpeed = 69, .baseSpAttack = 40, - .baseSpDefense = 80, - .types = { TYPE_FIGHTING, TYPE_POISON}, - .catchRate = 135, - .expYield = 179, - .evYield_Attack = 1, + .baseSpDefense = 40, + .types = { TYPE_FIRE, TYPE_FIRE}, + .catchRate = 45, + .expYield = 62, .evYield_Speed = 1, - .genderRatio = PERCENT_FEMALE(50), + .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, - .friendship = 35, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_PRESSURE, ABILITY_UNBURDEN, ABILITY_POISON_TOUCH}, - .bodyColor = BODY_COLOR_BLUE, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_LIBERO}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, + .speciesName = _("Scorbunny"), + .cryId = CRY_SCORBUNNY, + .natDexNum = NATIONAL_DEX_SCORBUNNY, + .categoryName = _("Rabbit"), + .height = 3, + .weight = 45, + .description = COMPOUND_STRING( + "A warm-up of running around gets fire\n" + "energy coursing through this Pokémon's\n" + "body. Once that happens, it's ready to\n" + "fight at full power."), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Scorbunny, 40, 56), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Scorbunny, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Scorbunny, 48, 56), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Scorbunny), + ICON(Scorbunny, 0), + .footprint = gMonFootprint_Scorbunny, + LEARNSETS(Scorbunny), + .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_RABOOT}), }, - [SPECIES_OVERQWIL] = + [SPECIES_RABOOT] = { - .baseHP = 85, - .baseAttack = 115, - .baseDefense = 95, - .baseSpeed = 85, - .baseSpAttack = 65, - .baseSpDefense = 65, - .types = { TYPE_DARK, TYPE_POISON}, - .catchRate = 135, - .expYield = 180, - .evYield_Attack = 1, - .genderRatio = PERCENT_FEMALE(50), + .baseHP = 65, + .baseAttack = 86, + .baseDefense = 60, + .baseSpeed = 94, + .baseSpAttack = 55, + .baseSpDefense = 60, + .types = { TYPE_FIRE, TYPE_FIRE}, + .catchRate = 45, + .expYield = 147, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, - .abilities = {ABILITY_POISON_POINT, ABILITY_SWIFT_SWIM, ABILITY_INTIMIDATE}, - .bodyColor = BODY_COLOR_BLACK, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_LIBERO}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, + .speciesName = _("Raboot"), + .cryId = CRY_RABOOT, + .natDexNum = NATIONAL_DEX_RABOOT, + .categoryName = _("Rabbit"), + .height = 6, + .weight = 90, + .description = COMPOUND_STRING( + "Its thick and fluffy fur protects it\n" + "from the cold and enables it to use\n" + "hotter fire moves."), + .pokemonScale = 422, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Raboot, 40, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Raboot, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Raboot, 56, 56), + .backPicYOffset = 6, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Raboot), + ICON(Raboot, 0), + .footprint = gMonFootprint_Raboot, + LEARNSETS(Raboot), + .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_CINDERACE}), }, - [SPECIES_ENAMORUS_INCARNATE] = - { - .baseHP = 74, - .baseAttack = 115, - .baseDefense = 70, - .baseSpeed = 106, - .baseSpAttack = 135, - .baseSpDefense = 80, - .types = { TYPE_FAIRY, TYPE_FLYING}, - .catchRate = 3, - .expYield = 261, - .evYield_SpAttack = 3, - .genderRatio = MON_FEMALE, - .eggCycles = 120, - .friendship = 90, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_HEALER, ABILITY_NONE, ABILITY_CONTRARY}, - .bodyColor = BODY_COLOR_PINK, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, -#endif +#define CINDERACE_MISC_INFO \ + .baseHP = 80, \ + .baseAttack = 116, \ + .baseDefense = 75, \ + .baseSpeed = 119, \ + .baseSpAttack = 65, \ + .baseSpDefense = 75, \ + .types = {TYPE_FIRE, TYPE_FIRE}, \ + .catchRate = 45, \ + .expYield = 265, \ + .evYield_Speed = 3, \ + .genderRatio = PERCENT_FEMALE(12.5), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_SLOW, \ + .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE}, \ + .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_LIBERO}, \ + .bodyColor = BODY_COLOR_WHITE, \ + .noFlip = FALSE, \ + .speciesName = _("Cinderace"), \ + .cryId = CRY_CINDERACE, \ + .natDexNum = NATIONAL_DEX_CINDERACE, \ + .categoryName = _("Striker"), \ + .footprint = gMonFootprint_Cinderace, \ + LEARNSETS(Cinderace), \ + .formChangeTable = sCinderaceFormChangeTable - [SPECIES_VENUSAUR_MEGA] = + [SPECIES_CINDERACE] = { - .baseHP = 80, - .baseAttack = 100, - .baseDefense = 123, - .baseSpeed = 80, - .baseSpAttack = 122, - .baseSpDefense = 120, - .types = { TYPE_GRASS, TYPE_POISON}, + CINDERACE_MISC_INFO, + .height = 14, + .weight = 330, + .description = COMPOUND_STRING( + "It juggles a pebble with its feet,\n" + "turning it into a burning soccer ball.\n" + "Its shots strike opponents hard and\n" + "leave them scorched."), + .pokemonScale = 265, + .pokemonOffset = 2, + .trainerScale = 262, + .trainerOffset = 0, + FRONT_PIC(Cinderace, 40, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Cinderace, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Cinderace, 48, 56), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Cinderace), + ICON(Cinderace, 0), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_CINDERACE_GIGANTAMAX] = + { + CINDERACE_MISC_INFO, + .height = 270, + .weight = 0, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 265, + .pokemonOffset = 2, + .trainerScale = 262, + .trainerOffset = 0, + FRONT_PIC(CinderaceGigantamax, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_CinderaceGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(CinderaceGigantamax, 64, 64), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(CinderaceGigantamax), + ICON(CinderaceGigantamax, 0), + .formSpeciesIdTable = sCinderaceFormSpeciesIdTable, + .isGigantamax = TRUE, + }, +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_SCORBUNNY + +#if P_FAMILY_SOBBLE + [SPECIES_SOBBLE] = + { + .baseHP = 50, + .baseAttack = 40, + .baseDefense = 40, + .baseSpeed = 70, + .baseSpAttack = 70, + .baseSpDefense = 40, + .types = { TYPE_WATER, TYPE_WATER}, .catchRate = 45, - .expYield = 281, - .evYield_SpAttack = 2, + .expYield = 62, + .evYield_Speed = 1, .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS}, - .abilities = {ABILITY_THICK_FAT, ABILITY_THICK_FAT}, - .bodyColor = BODY_COLOR_GREEN, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, + .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_SNIPER}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, + .speciesName = _("Sobble"), + .cryId = CRY_SOBBLE, + .natDexNum = NATIONAL_DEX_SOBBLE, + .categoryName = _("Water Lizard"), + .height = 3, + .weight = 40, + .description = COMPOUND_STRING( + "When scared, this Pokémon cries.\n" + "Its tears pack the chemical punch of 100\n" + "onions, and attackers won't be\n" + "able to resist weeping."), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Sobble, 40, 56), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Sobble, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Sobble, 40, 56), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Sobble), + ICON(Sobble, 2), + .footprint = gMonFootprint_Sobble, + LEARNSETS(Sobble), + .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_DRIZZILE}), }, - [SPECIES_CHARIZARD_MEGA_X] = + [SPECIES_DRIZZILE] = { - .baseHP = 78, - .baseAttack = 130, - .baseDefense = 111, - .baseSpeed = 100, - .baseSpAttack = 130, - .baseSpDefense = 85, - .types = { TYPE_FIRE, TYPE_DRAGON}, + .baseHP = 65, + .baseAttack = 60, + .baseDefense = 55, + .baseSpeed = 90, + .baseSpAttack = 95, + .baseSpDefense = 55, + .types = { TYPE_WATER, TYPE_WATER}, .catchRate = 45, - .expYield = 285, - .evYield_SpAttack = 3, + .expYield = 147, + .evYield_SpAttack = 2, .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_TOUGH_CLAWS, ABILITY_TOUGH_CLAWS}, - .bodyColor = BODY_COLOR_BLACK, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, + .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_SNIPER}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, + .speciesName = _("Drizzile"), + .cryId = CRY_DRIZZILE, + .natDexNum = NATIONAL_DEX_DRIZZILE, + .categoryName = _("Water Lizard"), + .height = 7, + .weight = 115, + .description = COMPOUND_STRING( + "A clever combatant, this Pokémon battles\n" + "using water balloons created with\n" + "moisture secreted from its palms."), + .pokemonScale = 365, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Drizzile, 40, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Drizzile, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Drizzile, 56, 48), + .backPicYOffset = 9, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Drizzile), + ICON(Drizzile, 2), + .footprint = gMonFootprint_Drizzile, + LEARNSETS(Drizzile), + .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_INTELEON}), }, - [SPECIES_CHARIZARD_MEGA_Y] = +#define INTELEON_MISC_INFO \ + .baseHP = 70, \ + .baseAttack = 85, \ + .baseDefense = 65, \ + .baseSpeed = 120, \ + .baseSpAttack = 125, \ + .baseSpDefense = 65, \ + .types = {TYPE_WATER, TYPE_WATER}, \ + .catchRate = 45, \ + .expYield = 265, \ + .evYield_Speed = 3, \ + .genderRatio = PERCENT_FEMALE(12.5), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_SLOW, \ + .eggGroups = {EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, \ + .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_SNIPER}, \ + .bodyColor = BODY_COLOR_BLUE, \ + .noFlip = FALSE, \ + .speciesName = _("Inteleon"), \ + .cryId = CRY_INTELEON, \ + .natDexNum = NATIONAL_DEX_INTELEON, \ + .categoryName = _("Secret Agent"), \ + .footprint = gMonFootprint_Inteleon, \ + LEARNSETS(Inteleon), \ + .formChangeTable = sInteleonFormChangeTable + + [SPECIES_INTELEON] = { - .baseHP = 78, - .baseAttack = 104, - .baseDefense = 78, - .baseSpeed = 100, - .baseSpAttack = 159, - .baseSpDefense = 115, - .types = { TYPE_FIRE, TYPE_FLYING}, - .catchRate = 45, - .expYield = 285, - .evYield_SpAttack = 3, - .genderRatio = PERCENT_FEMALE(12.5), + INTELEON_MISC_INFO, + .height = 19, + .weight = 452, + .description = COMPOUND_STRING( + "It has many hidden capabilities, such as\n" + "fingertips that can shoot water and a\n" + "membrane on its back that it can use to\n" + "glide through the air."), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 326, + .trainerOffset = 4, + FRONT_PIC(Inteleon, 48, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Inteleon, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Inteleon, 56, 64), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Inteleon), + ICON(Inteleon, 0), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_INTELEON_GIGANTAMAX] = + { + INTELEON_MISC_INFO, + .height = 400, + .weight = 0, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 326, + .trainerOffset = 4, + FRONT_PIC(InteleonGigantamax, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_InteleonGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(InteleonGigantamax, 64, 64), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(InteleonGigantamax), + ICON(InteleonGigantamax, 0), + .isGigantamax = TRUE, + }, +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_SOBBLE + +#if P_FAMILY_SKWOVET + [SPECIES_SKWOVET] = + { + .baseHP = 70, + .baseAttack = 55, + .baseDefense = 55, + .baseSpeed = 25, + .baseSpAttack = 35, + .baseSpDefense = 35, + .types = { TYPE_NORMAL, TYPE_NORMAL}, + .catchRate = 255, + .expYield = 55, + .evYield_HP = 1, + .itemRare = ITEM_ORAN_BERRY, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_DROUGHT, ABILITY_DROUGHT}, - .bodyColor = BODY_COLOR_RED, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_CHEEK_POUCH, ABILITY_NONE, ABILITY_GLUTTONY}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, + .speciesName = _("Skwovet"), + .cryId = CRY_SKWOVET, + .natDexNum = NATIONAL_DEX_SKWOVET, + .categoryName = _("Cheeky"), + .height = 3, + .weight = 25, + .description = COMPOUND_STRING( + "Found throughout the Galar region, this\n" + "Pokémon becomes uneasy if its cheeks are\n" + "ever completely empty of berries."), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Skwovet, 40, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Skwovet, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Skwovet, 64, 56), + .backPicYOffset = 7, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Skwovet), + ICON(Skwovet, 2), + .footprint = gMonFootprint_Skwovet, + LEARNSETS(Skwovet), + .evolutions = EVOLUTION({EVO_LEVEL, 24, SPECIES_GREEDENT}), }, - [SPECIES_BLASTOISE_MEGA] = + [SPECIES_GREEDENT] = { - .baseHP = 79, - .baseAttack = 103, - .baseDefense = 120, - .baseSpeed = 78, - .baseSpAttack = 135, - .baseSpDefense = 115, - .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 45, - .expYield = 284, - .evYield_SpDefense = 3, - .genderRatio = PERCENT_FEMALE(12.5), + .baseHP = 120, + .baseAttack = 95, + .baseDefense = 95, + .baseSpeed = 20, + .baseSpAttack = 55, + .baseSpDefense = 75, + .types = { TYPE_NORMAL, TYPE_NORMAL}, + .catchRate = 90, + .expYield = 161, + .evYield_HP = 2, + .itemRare = ITEM_SITRUS_BERRY, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_CHEEK_POUCH, ABILITY_NONE, ABILITY_GLUTTONY}, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + .speciesName = _("Greedent"), + .cryId = CRY_GREEDENT, + .natDexNum = NATIONAL_DEX_GREEDENT, + .categoryName = _("Greedy"), + .height = 6, + .weight = 60, + .description = COMPOUND_STRING( + "It stashes berries in its tail--so many\n" + "berries that they fall out constantly.\n" + "But this Pokémon is a bit slow-witted,\n" + "so it doesn't notice the loss."), + .pokemonScale = 422, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Greedent, 56, 64), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Greedent, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Greedent, 64, 56), + .backPicYOffset = 5, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Greedent), + ICON(Greedent, 0), + .footprint = gMonFootprint_Greedent, + LEARNSETS(Greedent), + }, +#endif //P_FAMILY_SKWOVET + +#if P_FAMILY_ROOKIDEE + [SPECIES_ROOKIDEE] = + { + .baseHP = 38, + .baseAttack = 47, + .baseDefense = 35, + .baseSpeed = 57, + .baseSpAttack = 33, + .baseSpDefense = 35, + .types = { TYPE_FLYING, TYPE_FLYING}, + .catchRate = 255, + .expYield = 49, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_MEGA_LAUNCHER, ABILITY_MEGA_LAUNCHER}, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + .abilities = {ABILITY_KEEN_EYE, ABILITY_UNNERVE, ABILITY_BIG_PECKS}, .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, + .speciesName = _("Rookidee"), + .cryId = CRY_ROOKIDEE, + .natDexNum = NATIONAL_DEX_ROOKIDEE, + .categoryName = _("Tiny Bird"), + .height = 2, + .weight = 18, + .description = COMPOUND_STRING( + "It will bravely challenge any opponent,\n" + "no matter how powerful. This Pokémon\n" + "benefits from every battle--even a defeat\n" + "increases its strength a bit."), + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Rookidee, 40, 40), + .frontPicYOffset = 16, + .frontAnimFrames = sAnims_Rookidee, + .frontAnimId = ANIM_H_VIBRATE, + BACK_PIC(Rookidee, 64, 32), + .backPicYOffset = 17, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Rookidee), + ICON(Rookidee, 0), + .footprint = gMonFootprint_Rookidee, + LEARNSETS(Rookidee), + .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_CORVISQUIRE}), }, - [SPECIES_BEEDRILL_MEGA] = + [SPECIES_CORVISQUIRE] = { - .baseHP = 65, - .baseAttack = 150, - .baseDefense = 40, - .baseSpeed = 145, - .baseSpAttack = 15, - .baseSpDefense = 80, - .types = { TYPE_BUG, TYPE_POISON}, - .catchRate = 45, - .expYield = 223, - .evYield_Attack = 2, + .baseHP = 68, + .baseAttack = 67, + .baseDefense = 55, + .baseSpeed = 77, + .baseSpAttack = 43, + .baseSpDefense = 55, + .types = { TYPE_FLYING, TYPE_FLYING}, + .catchRate = 120, + .expYield = 128, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + .abilities = {ABILITY_KEEN_EYE, ABILITY_UNNERVE, ABILITY_BIG_PECKS}, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + .speciesName = _("Corvisquir"), + .cryId = CRY_CORVISQUIRE, + .natDexNum = NATIONAL_DEX_CORVISQUIRE, + .categoryName = _("Raven"), + .height = 8, + .weight = 160, + .description = COMPOUND_STRING( + "Smart enough to use tools in battle,\n" + "these Pokémon have been seen picking up\n" + "rocks and flinging them or using ropes\n" + "to wrap up enemies."), + .pokemonScale = 366, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Corvisquire, 64, 56), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Corvisquire, + .frontAnimId = ANIM_CIRCLE_INTO_BG, + .enemyMonElevation = 10, + BACK_PIC(Corvisquire, 56, 48), + .backPicYOffset = 9, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Corvisquire), + ICON(Corvisquire, 0), + .footprint = gMonFootprint_Corvisquire, + LEARNSETS(Corvisquire), + .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_CORVIKNIGHT}), + }, + +#define CORVIKNIGHT_MISC_INFO \ + .baseHP = 98, \ + .baseAttack = 87, \ + .baseDefense = 105, \ + .baseSpeed = 67, \ + .baseSpAttack = 53, \ + .baseSpDefense = 85, \ + .types = {TYPE_FLYING, TYPE_STEEL}, \ + .catchRate = 45, \ + .expYield = 248, \ + .evYield_Defense = 3, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 15, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_SLOW, \ + .eggGroups = {EGG_GROUP_FLYING, EGG_GROUP_FLYING}, \ + .abilities = {ABILITY_PRESSURE, ABILITY_UNNERVE, ABILITY_MIRROR_ARMOR}, \ + .bodyColor = BODY_COLOR_PURPLE, \ + .noFlip = FALSE, \ + .speciesName = _("Corviknigh"), \ + .cryId = CRY_CORVIKNIGHT, \ + .natDexNum = NATIONAL_DEX_CORVIKNIGHT, \ + .categoryName = _("Raven"), \ + .footprint = gMonFootprint_Corviknight, \ + LEARNSETS(Corviknight), \ + .formChangeTable = sCorviknightFormChangeTable + + [SPECIES_CORVIKNIGHT] = + { + CORVIKNIGHT_MISC_INFO, + .height = 22, + .weight = 750, + .description = COMPOUND_STRING( + "This Pokémon reigns supreme in the skies\n" + "of the Galar region. The black luster of\n" + "its steel body could drive terror into\n" + "the heart of any foe."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 348, + .trainerOffset = 6, + FRONT_PIC(Corviknight, 56, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Corviknight, + .frontAnimId = ANIM_H_VIBRATE, + BACK_PIC(Corviknight, 64, 64), + .backPicYOffset = 3, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Corviknight), + ICON(Corviknight, 0), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_CORVIKNIGHT_GIGANTAMAX] = + { + CORVIKNIGHT_MISC_INFO, + .height = 140, + .weight = 0, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 348, + .trainerOffset = 6, + FRONT_PIC(CorviknightGigantamax, 64, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_CorviknightGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(CorviknightGigantamax, 64, 64), + .backPicYOffset = 3, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(CorviknightGigantamax), + ICON(CorviknightGigantamax, 0), + .formSpeciesIdTable = sCorviknightFormSpeciesIdTable, + .isGigantamax = TRUE, + }, +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_ROOKIDEE + +#if P_FAMILY_BLIPBUG + [SPECIES_BLIPBUG] = + { + .baseHP = 25, + .baseAttack = 20, + .baseDefense = 20, + .baseSpeed = 45, + .baseSpAttack = 25, + .baseSpDefense = 45, + .types = { TYPE_BUG, TYPE_BUG}, + .catchRate = 255, + .expYield = 36, .evYield_SpDefense = 1, - .itemRare = ITEM_POISON_BARB, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_ADAPTABILITY, ABILITY_ADAPTABILITY}, + .abilities = {ABILITY_SWARM, ABILITY_COMPOUND_EYES, ABILITY_TELEPATHY}, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + .speciesName = _("Blipbug"), + .cryId = CRY_BLIPBUG, + .natDexNum = NATIONAL_DEX_BLIPBUG, + .categoryName = _("Larva"), + .height = 4, + .weight = 80, + .description = COMPOUND_STRING( + "A constant collector of information,\n" + "this Pokémon is very smart. Very strong\n" + "is what it isn't."), + .pokemonScale = 491, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Blipbug, 32, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Blipbug, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Blipbug, 40, 56), + .backPicYOffset = 7, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Blipbug), + ICON(Blipbug, 0), + .footprint = gMonFootprint_Blipbug, + LEARNSETS(Blipbug), + .evolutions = EVOLUTION({EVO_LEVEL, 10, SPECIES_DOTTLER}), + }, + + [SPECIES_DOTTLER] = + { + .baseHP = 50, + .baseAttack = 35, + .baseDefense = 80, + .baseSpeed = 30, + .baseSpAttack = 50, + .baseSpDefense = 90, + .types = { TYPE_BUG, TYPE_PSYCHIC}, + .catchRate = 120, + .expYield = 117, + .evYield_SpDefense = 2, + .itemRare = ITEM_PSYCHIC_SEED, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_SWARM, ABILITY_COMPOUND_EYES, ABILITY_TELEPATHY}, .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, + .speciesName = _("Dottler"), + .cryId = CRY_DOTTLER, + .natDexNum = NATIONAL_DEX_DOTTLER, + .categoryName = _("Radome"), + .height = 4, + .weight = 195, + .description = COMPOUND_STRING( + "It barely moves, but it's still alive.\n" + "Hiding in its shell without food or\n" + "water seems to have awakened its\n" + "psychic powers."), + .pokemonScale = 491, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Dottler, 48, 40), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_Dottler, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Dottler, 56, 32), + .backPicYOffset = 17, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Dottler), + ICON(Dottler, 2), + .footprint = gMonFootprint_Dottler, + LEARNSETS(Dottler), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_ORBEETLE}), }, - [SPECIES_PIDGEOT_MEGA] = +#define ORBEETLE_MISC_INFO \ + .baseHP = 60, \ + .baseAttack = 45, \ + .baseDefense = 110, \ + .baseSpeed = 90, \ + .baseSpAttack = 80, \ + .baseSpDefense = 120, \ + .types = {TYPE_BUG, TYPE_PSYCHIC}, \ + .catchRate = 45, \ + .expYield = 253, \ + .evYield_SpDefense = 3, \ + .itemRare = ITEM_PSYCHIC_SEED, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 15, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = {EGG_GROUP_BUG, EGG_GROUP_BUG}, \ + .abilities = {ABILITY_SWARM, ABILITY_FRISK, ABILITY_TELEPATHY}, \ + .bodyColor = BODY_COLOR_RED, \ + .noFlip = FALSE, \ + .speciesName = _("Orbeetle"), \ + .cryId = CRY_ORBEETLE, \ + .natDexNum = NATIONAL_DEX_ORBEETLE, \ + .categoryName = _("Seven Spot"), \ + .footprint = gMonFootprint_Orbeetle, \ + LEARNSETS(Orbeetle), \ + .formChangeTable = sOrbeetleFormChangeTable + + [SPECIES_ORBEETLE] = { - .baseHP = 83, - .baseAttack = 80, - .baseDefense = 80, - .baseSpeed = 121, - .baseSpAttack = 135, - .baseSpDefense = 80, - .types = { TYPE_NORMAL, TYPE_FLYING}, - .catchRate = 45, - .expYield = 261, - .evYield_Speed = 3, + ORBEETLE_MISC_INFO, + .height = 4, + .weight = 408, + .description = COMPOUND_STRING( + "It's famous for its high level of\n" + "intelligence, and the large size of its\n" + "brain is proof that it also possesses\n" + "immense psychic power."), + .pokemonScale = 491, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Orbeetle, 48, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Orbeetle, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 8, + BACK_PIC(Orbeetle, 64, 56), + .backPicYOffset = 6, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Orbeetle), + ICON(Orbeetle, 0), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_ORBEETLE_GIGANTAMAX] = + { + ORBEETLE_MISC_INFO, + .height = 140, + .weight = 0, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 491, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(OrbeetleGigantamax, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_OrbeetleGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(OrbeetleGigantamax, 64, 64), + .backPicYOffset = 6, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(OrbeetleGigantamax), + ICON(OrbeetleGigantamax, 0), + .formSpeciesIdTable = sOrbeetleFormSpeciesIdTable, + .isGigantamax = TRUE, + }, +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_BLIPBUG + +#if P_FAMILY_NICKIT + [SPECIES_NICKIT] = + { + .baseHP = 40, + .baseAttack = 28, + .baseDefense = 28, + .baseSpeed = 50, + .baseSpAttack = 47, + .baseSpDefense = 52, + .types = { TYPE_DARK, TYPE_DARK}, + .catchRate = 255, + .expYield = 49, + .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_NO_GUARD, ABILITY_NO_GUARD}, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_RUN_AWAY, ABILITY_UNBURDEN, ABILITY_STAKEOUT}, .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, + .speciesName = _("Nickit"), + .cryId = CRY_NICKIT, + .natDexNum = NATIONAL_DEX_NICKIT, + .categoryName = _("Fox"), + .height = 6, + .weight = 89, + .description = COMPOUND_STRING( + "Aided by the soft pads on its feet, it\n" + "silently raids the food stores of other\n" + "Pokémon. It survives off its\n" + "ill-gotten gains."), + .pokemonScale = 422, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Nickit, 56, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Nickit, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Nickit, 64, 56), + .backPicYOffset = 5, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Nickit), + ICON(Nickit, 2), + .footprint = gMonFootprint_Nickit, + LEARNSETS(Nickit), + .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_THIEVUL}), }, - [SPECIES_ALAKAZAM_MEGA] = + [SPECIES_THIEVUL] = { - .baseHP = 55, - .baseAttack = 50, - .baseDefense = 65, - .baseSpeed = 150, - .baseSpAttack = 175, - #if P_UPDATED_STATS >= GEN_7 - .baseSpDefense = 105, - #else - .baseSpDefense = 95, - #endif - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - .catchRate = 50, - .expYield = 270, - .evYield_SpAttack = 3, - .itemRare = ITEM_TWISTED_SPOON, - .genderRatio = PERCENT_FEMALE(25), - .eggCycles = 20, + .baseHP = 70, + .baseAttack = 58, + .baseDefense = 58, + .baseSpeed = 90, + .baseSpAttack = 87, + .baseSpDefense = 92, + .types = { TYPE_DARK, TYPE_DARK}, + .catchRate = 127, + .expYield = 159, + .evYield_SpDefense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_TRACE, ABILITY_TRACE}, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_RUN_AWAY, ABILITY_UNBURDEN, ABILITY_STAKEOUT}, .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, - - [SPECIES_SLOWBRO_MEGA] = + .speciesName = _("Thievul"), + .cryId = CRY_THIEVUL, + .natDexNum = NATIONAL_DEX_THIEVUL, + .categoryName = _("Fox"), + .height = 12, + .weight = 199, + .description = COMPOUND_STRING( + "It secretly marks potential targets with\n" + "a scent. By following the scent, it\n" + "stalks its targets and steals from them\n" + "when they least expect it."), + .pokemonScale = 282, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Thievul, 64, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Thievul, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Thievul, 56, 64), + .backPicYOffset = 2, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Thievul), + ICON(Thievul, 2), + .footprint = gMonFootprint_Thievul, + LEARNSETS(Thievul), + }, +#endif //P_FAMILY_NICKIT + +#if P_FAMILY_GOSSIFLEUR + [SPECIES_GOSSIFLEUR] = { - .baseHP = 95, - .baseAttack = 75, - .baseDefense = 180, - .baseSpeed = 30, - .baseSpAttack = 130, - .baseSpDefense = 80, - .types = { TYPE_WATER, TYPE_PSYCHIC}, - .catchRate = 75, - .expYield = 207, - .evYield_Defense = 2, - .itemRare = ITEM_KINGS_ROCK, + .baseHP = 40, + .baseAttack = 40, + .baseDefense = 60, + .baseSpeed = 10, + .baseSpAttack = 40, + .baseSpDefense = 60, + .types = { TYPE_GRASS, TYPE_GRASS}, + .catchRate = 190, + .expYield = 50, + .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_SHELL_ARMOR, ABILITY_SHELL_ARMOR}, - .bodyColor = BODY_COLOR_PINK, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, + .abilities = {ABILITY_COTTON_DOWN, ABILITY_REGENERATOR, ABILITY_EFFECT_SPORE}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, + .speciesName = _("Gossifleur"), + .cryId = CRY_GOSSIFLEUR, + .natDexNum = NATIONAL_DEX_GOSSIFLEUR, + .categoryName = _("Flowering"), + .height = 4, + .weight = 22, + .description = COMPOUND_STRING( + "It anchors itself in the ground with its\n" + "single leg, then basks in the sun. After\n" + "absorbing enough sunlight, its petals\n" + "spread as it blooms brilliantly."), + .pokemonScale = 491, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Gossifleur, 48, 56), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Gossifleur, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Gossifleur, 56, 48), + .backPicYOffset = 15, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Gossifleur), + ICON(Gossifleur, 1), + .footprint = gMonFootprint_Gossifleur, + LEARNSETS(Gossifleur), + .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_ELDEGOSS}), }, - [SPECIES_GENGAR_MEGA] = + [SPECIES_ELDEGOSS] = { .baseHP = 60, - .baseAttack = 65, - .baseDefense = 80, - .baseSpeed = 130, - .baseSpAttack = 170, - .baseSpDefense = 95, - .types = { TYPE_GHOST, TYPE_POISON}, - .catchRate = 45, - .expYield = 270, - .evYield_SpAttack = 3, + .baseAttack = 50, + .baseDefense = 90, + .baseSpeed = 60, + .baseSpAttack = 80, + .baseSpDefense = 120, + .types = { TYPE_GRASS, TYPE_GRASS}, + .catchRate = 75, + .expYield = 161, + .evYield_SpDefense = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_SHADOW_TAG, ABILITY_SHADOW_TAG}, - .bodyColor = BODY_COLOR_PURPLE, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, + .abilities = {ABILITY_COTTON_DOWN, ABILITY_REGENERATOR, ABILITY_EFFECT_SPORE}, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + .speciesName = _("Eldegoss"), + .cryId = CRY_ELDEGOSS, + .natDexNum = NATIONAL_DEX_ELDEGOSS, + .categoryName = _("Cotton Bloom"), + .height = 5, + .weight = 25, + .description = COMPOUND_STRING( + "The seeds attached to its cotton fluff\n" + "are full of nutrients. It spreads them\n" + "on the wind so that plants and other\n" + "Pokémon can benefit from them."), + .pokemonScale = 432, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Eldegoss, 48, 56), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Eldegoss, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Eldegoss, 64, 40), + .backPicYOffset = 15, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Eldegoss), + ICON(Eldegoss, 1), + .footprint = gMonFootprint_Eldegoss, + LEARNSETS(Eldegoss), + }, +#endif //P_FAMILY_GOSSIFLEUR + +#if P_FAMILY_WOOLOO + [SPECIES_WOOLOO] = + { + .baseHP = 42, + .baseAttack = 40, + .baseDefense = 55, + .baseSpeed = 48, + .baseSpAttack = 40, + .baseSpDefense = 45, + .types = { TYPE_NORMAL, TYPE_NORMAL}, + .catchRate = 255, + .expYield = 122, + .evYield_Defense = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_FLUFFY, ABILITY_RUN_AWAY, ABILITY_BULLETPROOF}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, + .speciesName = _("Wooloo"), + .cryId = CRY_WOOLOO, + .natDexNum = NATIONAL_DEX_WOOLOO, + .categoryName = _("Sheep"), + .height = 6, + .weight = 60, + .description = COMPOUND_STRING( + "Its curly fleece is such an effective\n" + "cushion that this Pokémon could fall off\n" + "a cliff and stand right back up at the\n" + "bottom, unharmed."), + .pokemonScale = 422, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Wooloo, 40, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Wooloo, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Wooloo, 56, 32), + .backPicYOffset = 18, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Wooloo), + ICON(Wooloo, 0), + .footprint = gMonFootprint_Wooloo, + LEARNSETS(Wooloo), + .evolutions = EVOLUTION({EVO_LEVEL, 24, SPECIES_DUBWOOL}), }, - [SPECIES_KANGASKHAN_MEGA] = + [SPECIES_DUBWOOL] = { - .baseHP = 105, - .baseAttack = 125, + .baseHP = 72, + .baseAttack = 80, .baseDefense = 100, - .baseSpeed = 100, + .baseSpeed = 88, .baseSpAttack = 60, - .baseSpDefense = 100, + .baseSpDefense = 90, .types = { TYPE_NORMAL, TYPE_NORMAL}, - .catchRate = 45, - .expYield = 207, - .evYield_HP = 2, - .genderRatio = MON_FEMALE, + .catchRate = 127, + .expYield = 172, + .evYield_Defense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_FLUFFY, ABILITY_STEADFAST, ABILITY_BULLETPROOF}, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = FALSE, + .speciesName = _("Dubwool"), + .cryId = CRY_DUBWOOL, + .natDexNum = NATIONAL_DEX_DUBWOOL, + .categoryName = _("Sheep"), + .height = 13, + .weight = 430, + .description = COMPOUND_STRING( + "Weave a carpet from its springy wool,\n" + "and you end up with something closer to\n" + "a trampoline. You'll start to bounce the\n" + "moment you set foot on it."), + .pokemonScale = 272, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Dubwool, 48, 56), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Dubwool, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Dubwool, 64, 40), + .backPicYOffset = 13, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Dubwool), + ICON(Dubwool, 2), + .footprint = gMonFootprint_Dubwool, + LEARNSETS(Dubwool), + }, +#endif //P_FAMILY_WOOLOO + +#if P_FAMILY_CHEWTLE + [SPECIES_CHEWTLE] = + { + .baseHP = 50, + .baseAttack = 64, + .baseDefense = 50, + .baseSpeed = 44, + .baseSpAttack = 38, + .baseSpDefense = 38, + .types = { TYPE_WATER, TYPE_WATER}, + .catchRate = 255, + .expYield = 57, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, - .abilities = {ABILITY_PARENTAL_BOND, ABILITY_PARENTAL_BOND}, - .bodyColor = BODY_COLOR_BROWN, + .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, + .abilities = {ABILITY_STRONG_JAW, ABILITY_SHELL_ARMOR, ABILITY_SWIFT_SWIM}, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + .speciesName = _("Chewtle"), + .cryId = CRY_CHEWTLE, + .natDexNum = NATIONAL_DEX_CHEWTLE, + .categoryName = _("Snapping"), + .height = 3, + .weight = 85, + .description = COMPOUND_STRING( + "Apparently the itch of its teething\n" + "impels it to snap its jaws at anything\n" + "in front of it."), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Chewtle, 32, 48), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_Chewtle, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Chewtle, 56, 56), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Chewtle), + ICON(Chewtle, 0), + .footprint = gMonFootprint_Chewtle, + LEARNSETS(Chewtle), + .evolutions = EVOLUTION({EVO_LEVEL, 22, SPECIES_DREDNAW}), + }, + +#define DREDNAW_MISC_INFO \ + .baseHP = 90, \ + .baseAttack = 115, \ + .baseDefense = 90, \ + .baseSpeed = 74, \ + .baseSpAttack = 48, \ + .baseSpDefense = 68, \ + .types = {TYPE_WATER, TYPE_ROCK}, \ + .catchRate = 75, \ + .expYield = 170, \ + .evYield_Attack = 2, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = {EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, \ + .abilities = {ABILITY_STRONG_JAW, ABILITY_SHELL_ARMOR, ABILITY_SWIFT_SWIM}, \ + .bodyColor = BODY_COLOR_GREEN, \ + .noFlip = FALSE, \ + .speciesName = _("Drednaw"), \ + .cryId = CRY_DREDNAW, \ + .natDexNum = NATIONAL_DEX_DREDNAW, \ + .categoryName = _("Bite"), \ + .footprint = gMonFootprint_Drednaw, \ + LEARNSETS(Drednaw), \ + .formChangeTable = sDrednawFormChangeTable + + [SPECIES_DREDNAW] = + { + DREDNAW_MISC_INFO, + .height = 10, + .weight = 1155, + .description = COMPOUND_STRING( + "With jaws that can shear through steel\n" + "rods, this highly aggressive Pokémon\n" + "chomps down on its unfortunate prey."), + .pokemonScale = 305, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Drednaw, 64, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Drednaw, + .frontAnimId = ANIM_GROW_VIBRATE, + BACK_PIC(Drednaw, 64, 40), + .backPicYOffset = 18, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Drednaw), + ICON(Drednaw, 0), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_DREDNAW_GIGANTAMAX] = + { + DREDNAW_MISC_INFO, + .height = 240, + .weight = 0, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 305, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(DrednawGigantamax, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_DrednawGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(DrednawGigantamax, 64, 64), + .backPicYOffset = 12, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(DrednawGigantamax), + ICON(DrednawGigantamax, 0), + .formSpeciesIdTable = sDrednawFormSpeciesIdTable, + .isGigantamax = TRUE, + }, +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_CHEWTLE + +#if P_FAMILY_YAMPER + [SPECIES_YAMPER] = + { + .baseHP = 59, + .baseAttack = 45, + .baseDefense = 50, + .baseSpeed = 26, + .baseSpAttack = 40, + .baseSpDefense = 50, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, + .catchRate = 255, + .expYield = 54, + .evYield_HP = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_BALL_FETCH, ABILITY_NONE, ABILITY_RATTLED}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, + .speciesName = _("Yamper"), + .cryId = CRY_YAMPER, + .natDexNum = NATIONAL_DEX_YAMPER, + .categoryName = _("Puppy"), + .height = 3, + .weight = 135, + .description = COMPOUND_STRING( + "This Pokémon is very popular as a\n" + "herding dog in the Galar region. As it\n" + "runs, it generates electricity from the\n" + "base of its tail."), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Yamper, 40, 48), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Yamper, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Yamper, 48, 48), + .backPicYOffset = 13, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Yamper), + ICON(Yamper, 1), + .footprint = gMonFootprint_Yamper, + LEARNSETS(Yamper), + .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_BOLTUND}), }, - [SPECIES_PINSIR_MEGA] = + [SPECIES_BOLTUND] = { - .baseHP = 65, - .baseAttack = 155, - .baseDefense = 120, - .baseSpeed = 105, - .baseSpAttack = 65, - .baseSpDefense = 90, - .types = { TYPE_BUG, TYPE_FLYING}, + .baseHP = 69, + .baseAttack = 90, + .baseDefense = 60, + .baseSpeed = 121, + .baseSpAttack = 90, + .baseSpDefense = 60, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, .catchRate = 45, - .expYield = 210, - .evYield_Attack = 2, + .expYield = 172, + .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_AERILATE, ABILITY_AERILATE}, - .bodyColor = BODY_COLOR_BROWN, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_STRONG_JAW, ABILITY_NONE, ABILITY_COMPETITIVE}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, - - [SPECIES_GYARADOS_MEGA] = + .speciesName = _("Boltund"), + .cryId = CRY_BOLTUND, + .natDexNum = NATIONAL_DEX_BOLTUND, + .categoryName = _("Dog"), + .height = 10, + .weight = 340, + .description = COMPOUND_STRING( + "This Pokémon generates electricity and\n" + "channels it into its legs to keep them\n" + "going strong. Boltund can run nonstop\n" + "for three full days."), + .pokemonScale = 305, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Boltund, 48, 56), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Boltund, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Boltund, 64, 56), + .backPicYOffset = 5, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Boltund), + ICON(Boltund, 1), + .footprint = gMonFootprint_Boltund, + LEARNSETS(Boltund), + }, +#endif //P_FAMILY_YAMPER + +#if P_FAMILY_ROLYCOLY + [SPECIES_ROLYCOLY] = { - .baseHP = 95, - .baseAttack = 155, - .baseDefense = 109, - .baseSpeed = 81, - .baseSpAttack = 70, - .baseSpDefense = 130, - .types = { TYPE_WATER, TYPE_DARK}, - .catchRate = 45, - .expYield = 224, - .evYield_Attack = 2, + .baseHP = 30, + .baseAttack = 40, + .baseDefense = 50, + .baseSpeed = 30, + .baseSpAttack = 40, + .baseSpDefense = 50, + .types = { TYPE_ROCK, TYPE_ROCK}, + .catchRate = 255, + .expYield = 48, + .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 5, + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_MOLD_BREAKER, ABILITY_MOLD_BREAKER}, - .bodyColor = BODY_COLOR_BLUE, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_STEAM_ENGINE, ABILITY_HEATPROOF, ABILITY_FLASH_FIRE}, + .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, + .speciesName = _("Rolycoly"), + .cryId = CRY_ROLYCOLY, + .natDexNum = NATIONAL_DEX_ROLYCOLY, + .categoryName = _("Coal"), + .height = 3, + .weight = 120, + .description = COMPOUND_STRING( + "Most of its body has the same composition\n" + "as coal. Fittingly, this Pokémon was\n" + "first discovered in coal mines about\n" + "400 years ago."), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Rolycoly, 40, 40), + .frontPicYOffset = 16, + .frontAnimFrames = sAnims_Rolycoly, + .frontAnimId = ANIM_H_SLIDE_SLOW, + BACK_PIC(Rolycoly, 64, 32), + .backPicYOffset = 17, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Rolycoly), + ICON(Rolycoly, 0), + .footprint = gMonFootprint_Rolycoly, + LEARNSETS(Rolycoly), + .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_CARKOL}), }, - [SPECIES_AERODACTYL_MEGA] = + [SPECIES_CARKOL] = { .baseHP = 80, - .baseAttack = 135, - .baseDefense = 85, - .baseSpeed = 150, - .baseSpAttack = 70, - .baseSpDefense = 95, - .types = { TYPE_ROCK, TYPE_FLYING}, - .catchRate = 45, - .expYield = 215, - .evYield_Speed = 2, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 35, + .baseAttack = 60, + .baseDefense = 90, + .baseSpeed = 50, + .baseSpAttack = 60, + .baseSpDefense = 70, + .types = { TYPE_ROCK, TYPE_FIRE}, + .catchRate = 120, + .expYield = 144, + .evYield_Defense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_TOUGH_CLAWS, ABILITY_TOUGH_CLAWS}, - .bodyColor = BODY_COLOR_PURPLE, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_STEAM_ENGINE, ABILITY_FLAME_BODY, ABILITY_FLASH_FIRE}, + .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, + .speciesName = _("Carkol"), + .cryId = CRY_CARKOL, + .natDexNum = NATIONAL_DEX_CARKOL, + .categoryName = _("Coal"), + .height = 11, + .weight = 780, + .description = COMPOUND_STRING( + "It forms coal inside its body. Coal\n" + "dropped by this Pokémon once helped fuel\n" + "the lives of people in the Galar region."), + .pokemonScale = 320, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Carkol, 48, 56), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Carkol, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Carkol, 64, 48), + .backPicYOffset = 11, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Carkol), + ICON(Carkol, 0), + .footprint = gMonFootprint_Carkol, + LEARNSETS(Carkol), + .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_COALOSSAL}), }, - [SPECIES_MEWTWO_MEGA_X] = - { - .baseHP = 106, - .baseAttack = 190, - .baseDefense = 100, - .baseSpeed = 130, - .baseSpAttack = 154, - .baseSpDefense = 100, - .types = { TYPE_PSYCHIC, TYPE_FIGHTING}, - .catchRate = 3, - .expYield = 351, - .evYield_SpAttack = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_STEADFAST, ABILITY_STEADFAST}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY | SPECIES_FLAG_MEGA_EVOLUTION, - }, +#define COALOSSAL_MISC_INFO \ + .baseHP = 110, \ + .baseAttack = 80, \ + .baseDefense = 120, \ + .baseSpeed = 30, \ + .baseSpAttack = 80, \ + .baseSpDefense = 90, \ + .types = {TYPE_ROCK, TYPE_FIRE}, \ + .catchRate = 45, \ + .expYield = 255, \ + .evYield_Defense = 3, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 15, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_SLOW, \ + .eggGroups = {EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, \ + .abilities = {ABILITY_STEAM_ENGINE, ABILITY_FLAME_BODY, ABILITY_FLASH_FIRE},\ + .bodyColor = BODY_COLOR_BLACK, \ + .noFlip = FALSE, \ + .speciesName = _("Coalossal"), \ + .cryId = CRY_COALOSSAL, \ + .natDexNum = NATIONAL_DEX_COALOSSAL, \ + .categoryName = _("Coal"), \ + .footprint = gMonFootprint_Coalossal, \ + LEARNSETS(Coalossal), \ + .formChangeTable = sCoalossalFormChangeTable - [SPECIES_MEWTWO_MEGA_Y] = + [SPECIES_COALOSSAL] = { - .baseHP = 106, - .baseAttack = 150, - .baseDefense = 70, - .baseSpeed = 140, - .baseSpAttack = 194, - .baseSpDefense = 120, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - .catchRate = 3, - .expYield = 351, - .evYield_SpAttack = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_INSOMNIA, ABILITY_INSOMNIA}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY | SPECIES_FLAG_MEGA_EVOLUTION, - }, - - [SPECIES_AMPHAROS_MEGA] = + COALOSSAL_MISC_INFO, + .height = 28, + .weight = 3105, + .description = COMPOUND_STRING( + "It's usually peaceful, but the vandalism\n" + "of mines enrages it. Offenders will be\n" + "incinerated with flames that reach\n" + "2,700 degrees Fahrenheit."), + .pokemonScale = 275, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Coalossal, 56, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Coalossal, + .frontAnimId = ANIM_GLOW_RED, + BACK_PIC(Coalossal, 64, 48), + .backPicYOffset = 11, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Coalossal), + ICON(Coalossal, 0), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_COALOSSAL_GIGANTAMAX] = { - .baseHP = 90, - .baseAttack = 95, - .baseDefense = 105, - .baseSpeed = 45, - .baseSpAttack = 165, - .baseSpDefense = 110, - .types = { TYPE_ELECTRIC, TYPE_DRAGON}, - .catchRate = 45, - .expYield = 275, - .evYield_SpAttack = 3, + COALOSSAL_MISC_INFO, + .height = 420, + .weight = 0, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 275, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(CoalossalGigantamax, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_CoalossalGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(CoalossalGigantamax, 64, 64), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(CoalossalGigantamax), + ICON(CoalossalGigantamax, 0), + .formSpeciesIdTable = sCoalossalFormSpeciesIdTable, + .isGigantamax = TRUE, + }, +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_ROLYCOLY + +#if P_FAMILY_APPLIN + [SPECIES_APPLIN] = + { + .baseHP = 40, + .baseAttack = 40, + .baseDefense = 80, + .baseSpeed = 20, + .baseSpAttack = 40, + .baseSpDefense = 40, + .types = { TYPE_GRASS, TYPE_DRAGON}, + .catchRate = 255, + .expYield = 52, + .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_FIELD}, - .abilities = {ABILITY_MOLD_BREAKER, ABILITY_MOLD_BREAKER}, - .bodyColor = BODY_COLOR_YELLOW, + .growthRate = GROWTH_ERRATIC, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_RIPEN, ABILITY_GLUTTONY, ABILITY_BULLETPROOF}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, + .speciesName = _("Applin"), + .cryId = CRY_APPLIN, + .natDexNum = NATIONAL_DEX_APPLIN, + .categoryName = _("Apple Core"), + .height = 2, + .weight = 5, + .description = COMPOUND_STRING( + "It spends its entire life inside an\n" + "apple. It hides from its natural enemies,\n" + "bird Pokémon, by pretending it's just an\n" + "apple and nothing more."), + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Applin, 32, 40), + .frontPicYOffset = 16, + .frontAnimFrames = sAnims_Applin, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Applin, 40, 48), + .backPicYOffset = 15, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Applin), + ICON(Applin, 1), + .footprint = gMonFootprint_Applin, + LEARNSETS(Applin), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_TART_APPLE, SPECIES_FLAPPLE}, + {EVO_ITEM, ITEM_SWEET_APPLE, SPECIES_APPLETUN}, + {EVO_ITEM, ITEM_SYRUPY_APPLE, SPECIES_DIPPLIN}), }, - [SPECIES_STEELIX_MEGA] = +#define FLAPPLE_MISC_INFO \ + .baseHP = 70, \ + .baseAttack = 110, \ + .baseDefense = 80, \ + .baseSpeed = 70, \ + .baseSpAttack = 95, \ + .baseSpDefense = 60, \ + .types = {TYPE_GRASS, TYPE_DRAGON}, \ + .catchRate = 45, \ + .expYield = 170, \ + .evYield_Attack = 2, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_ERRATIC, \ + .eggGroups = {EGG_GROUP_GRASS, EGG_GROUP_DRAGON}, \ + .abilities = {ABILITY_RIPEN, ABILITY_GLUTTONY, ABILITY_HUSTLE}, \ + .bodyColor = BODY_COLOR_GREEN, \ + .noFlip = FALSE, \ + .speciesName = _("Flapple"), \ + .cryId = CRY_FLAPPLE, \ + .natDexNum = NATIONAL_DEX_FLAPPLE, \ + .categoryName = _("Apple Wing"), \ + .footprint = gMonFootprint_Flapple, \ + LEARNSETS(Flapple), \ + .formChangeTable = sFlappleFormChangeTable + + [SPECIES_FLAPPLE] = { - .baseHP = 75, - .baseAttack = 125, - .baseDefense = 230, - .baseSpeed = 30, - .baseSpAttack = 55, - .baseSpDefense = 95, - .types = { TYPE_STEEL, TYPE_GROUND}, - .catchRate = 25, - .expYield = 214, - .evYield_Defense = 2, - .itemRare = ITEM_METAL_COAT, + FLAPPLE_MISC_INFO, + .height = 3, + .weight = 10, + .description = COMPOUND_STRING( + "It ate a sour apple, and that induced its\n" + "evolution. In its cheeks, it stores an acid\n" + "capable of causing chemical burns."), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Flapple, 56, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Flapple, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 9, + BACK_PIC(Flapple, 48, 56), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Flapple), + ICON(Flapple, 1), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_FLAPPLE_GIGANTAMAX] = + { + FLAPPLE_MISC_INFO, + .height = 240, + .weight = 0, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(FlappleGigantamax, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_FlappleGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(FlappleGigantamax, 64, 64), + .backPicYOffset = 2, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(FlappleGigantamax), + ICON(FlappleGigantamax, 1), + .formSpeciesIdTable = sFlappleFormSpeciesIdTable, + .isGigantamax = TRUE, + }, +#endif //P_GIGANTAMAX_FORMS + +#define APPLETUN_MISC_INFO \ + .baseHP = 110, \ + .baseAttack = 85, \ + .baseDefense = 80, \ + .baseSpeed = 30, \ + .baseSpAttack = 100, \ + .baseSpDefense = 80, \ + .types = {TYPE_GRASS, TYPE_DRAGON}, \ + .catchRate = 45, \ + .expYield = 170, \ + .evYield_HP = 2, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_ERRATIC, \ + .eggGroups = {EGG_GROUP_GRASS, EGG_GROUP_DRAGON}, \ + .abilities = {ABILITY_RIPEN, ABILITY_GLUTTONY, ABILITY_THICK_FAT}, \ + .bodyColor = BODY_COLOR_GREEN, \ + .noFlip = FALSE, \ + .speciesName = _("Appletun"), \ + .cryId = CRY_APPLETUN, \ + .natDexNum = NATIONAL_DEX_APPLETUN, \ + .categoryName = _("Apple Nectar"), \ + .footprint = gMonFootprint_Appletun, \ + LEARNSETS(Appletun), \ + .formChangeTable = sAppletunFormChangeTable + + [SPECIES_APPLETUN] = + { + APPLETUN_MISC_INFO, + .height = 4, + .weight = 130, + .description = COMPOUND_STRING( + "Eating a sweet apple caused its evolution.\n" + "A nectarous scent wafts from its body,\n" + "luring in the bug Pokémon it preys on."), + .pokemonScale = 491, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Appletun, 64, 56), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Appletun, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Appletun, 64, 56), + .backPicYOffset = 11, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Appletun), + ICON(Appletun, 1), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_APPLETUN_GIGANTAMAX] = + { + APPLETUN_MISC_INFO, + .height = 240, + .weight = 0, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 491, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(AppletunGigantamax, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_AppletunGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(AppletunGigantamax, 64, 64), + .backPicYOffset = 2, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(AppletunGigantamax), + ICON(AppletunGigantamax, 1), + .formSpeciesIdTable = sAppletunFormSpeciesIdTable, + .isGigantamax = TRUE, + }, +#endif //P_GIGANTAMAX_FORMS + +#if P_GEN_9_CROSS_EVOS + [SPECIES_DIPPLIN] = + { + .baseHP = 80, + .baseAttack = 80, + .baseDefense = 110, + .baseSpeed = 40, + .baseSpAttack = 95, + .baseSpDefense = 80, + .types = { TYPE_GRASS, TYPE_DRAGON }, + .catchRate = 45, + .expYield = 170, + .evYield_Defense = 2, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_SAND_FORCE, ABILITY_SAND_FORCE}, - .bodyColor = BODY_COLOR_GRAY, + .growthRate = GROWTH_ERRATIC, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_SUPERSWEET_SYRUP, ABILITY_GLUTTONY, ABILITY_STICKY_HOLD}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, - - [SPECIES_SCIZOR_MEGA] = + .speciesName = _("Dipplin"), + .cryId = CRY_DIPPLIN, + .natDexNum = NATIONAL_DEX_DIPPLIN, + .categoryName = _("Candy Apple"), + .height = 4, + .weight = 44, + .description = COMPOUND_STRING( + "Dipplin is two creatures in one Pokémon.\n" + "Its evolution was triggered by a special\n" + "apple grown only in one place."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Dipplin, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Dipplin, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Dipplin, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Dipplin), + ICON(Dipplin, 1), + //.footprint = gMonFootprint_Dipplin, + LEARNSETS(Dipplin), + }, +#endif //P_GEN_9_CROSS_EVOS +#endif //P_FAMILY_APPLIN + +#if P_FAMILY_SILICOBRA + [SPECIES_SILICOBRA] = { - .baseHP = 70, - .baseAttack = 150, - .baseDefense = 140, - .baseSpeed = 75, - .baseSpAttack = 65, - .baseSpDefense = 100, - .types = { TYPE_BUG, TYPE_STEEL}, - .catchRate = 25, - .expYield = 210, - .evYield_Attack = 2, + .baseHP = 52, + .baseAttack = 57, + .baseDefense = 75, + .baseSpeed = 46, + .baseSpAttack = 35, + .baseSpDefense = 50, + .types = { TYPE_GROUND, TYPE_GROUND}, + .catchRate = 255, + .expYield = 63, + .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_TECHNICIAN, ABILITY_TECHNICIAN}, - .bodyColor = BODY_COLOR_RED, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_SAND_SPIT, ABILITY_SHED_SKIN, ABILITY_SAND_VEIL}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, + .speciesName = _("Silicobra"), + .cryId = CRY_SILICOBRA, + .natDexNum = NATIONAL_DEX_SILICOBRA, + .categoryName = _("Sand Snake"), + .height = 22, + .weight = 76, + .description = COMPOUND_STRING( + "As it digs, it swallows sand and stores\n" + "it in its neck pouch. The pouch can hold\n" + "more than 17 pounds of sand."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 348, + .trainerOffset = 6, + FRONT_PIC(Silicobra, 40, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Silicobra, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Silicobra, 56, 48), + .backPicYOffset = 10, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Silicobra), + ICON(Silicobra, 1), + .footprint = gMonFootprint_Silicobra, + LEARNSETS(Silicobra), + .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_SANDACONDA}), + }, + +#define SANDACONDA_MISC_INFO \ + .baseHP = 72, \ + .baseAttack = 107, \ + .baseDefense = 125, \ + .baseSpeed = 71, \ + .baseSpAttack = 65, \ + .baseSpDefense = 70, \ + .types = {TYPE_GROUND, TYPE_GROUND}, \ + .catchRate = 120, \ + .expYield = 179, \ + .evYield_Defense = 2, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_DRAGON}, \ + .abilities = {ABILITY_SAND_SPIT, ABILITY_SHED_SKIN, ABILITY_SAND_VEIL}, \ + .bodyColor = BODY_COLOR_GREEN, \ + .noFlip = FALSE, \ + .speciesName = _("Sandaconda"), \ + .cryId = CRY_SANDACONDA, \ + .natDexNum = NATIONAL_DEX_SANDACONDA, \ + .categoryName = _("Sand Snake"), \ + .footprint = gMonFootprint_Sandaconda, \ + LEARNSETS(Sandaconda), \ + .formChangeTable = sSandacondaFormChangeTable - [SPECIES_HERACROSS_MEGA] = + [SPECIES_SANDACONDA] = { - .baseHP = 80, - .baseAttack = 185, - .baseDefense = 115, - .baseSpeed = 75, + SANDACONDA_MISC_INFO, + .height = 38, + .weight = 655, + .description = COMPOUND_STRING( + "When it contracts its body, over 220\n" + "pounds of sand sprays from its nose. If\n" + "it ever runs out of sand, it becomes\n" + "disheartened."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 610, + .trainerOffset = 17, + FRONT_PIC(Sandaconda, 64, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Sandaconda, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Sandaconda, 64, 40), + .backPicYOffset = 13, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Sandaconda), + ICON(Sandaconda, 1), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_SANDACONDA_GIGANTAMAX] = + { + SANDACONDA_MISC_INFO, + .height = 220, + .weight = 0, + .description = COMPOUND_STRING( + "") +, + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 610, + .trainerOffset = 17, + FRONT_PIC(SandacondaGigantamax, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_SandacondaGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(SandacondaGigantamax, 64, 64), + .backPicYOffset = 5, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(SandacondaGigantamax), + ICON(SandacondaGigantamax, 1), + .formSpeciesIdTable = sSandacondaFormSpeciesIdTable, + .isGigantamax = TRUE, + }, +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_SILICOBRA + +#if P_FAMILY_CRAMORANT +#define CRAMORANT_MISC_INFO \ + .baseHP = 70, \ + .baseAttack = 85, \ + .baseDefense = 55, \ + .baseSpeed = 85, \ + .baseSpAttack = 85, \ + .baseSpDefense = 95, \ + .types = { TYPE_FLYING, TYPE_WATER}, \ + .catchRate = 45, \ + .expYield = 166, \ + .evYield_SpDefense = 2, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FLYING},\ + .abilities = {ABILITY_GULP_MISSILE, ABILITY_NONE}, \ + .bodyColor = BODY_COLOR_BLUE, \ + .noFlip = FALSE, \ + .speciesName = _("Cramorant"), \ + .cryId = CRY_CRAMORANT, \ + .natDexNum = NATIONAL_DEX_CRAMORANT, \ + .categoryName = _("Gulp"), \ + .height = 8, \ + .weight = 180, \ + .pokemonScale = 366, \ + .pokemonOffset = 7, \ + .trainerScale = 257, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Cramorant, \ + LEARNSETS(Cramorant), \ + .formSpeciesIdTable = sCramorantFormSpeciesIdTable, \ + .formChangeTable = sCramorantFormChangeTable + + [SPECIES_CRAMORANT] = + { + CRAMORANT_MISC_INFO, + .description = COMPOUND_STRING( + "It's so strong that it can knock out some\n" + "opponents in a single hit, but it also may\n" + "forget what it's battling midfight."), + FRONT_PIC(Cramorant, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Cramorant, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Cramorant, 56, 64), + .backPicYOffset = 1, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Cramorant), + ICON(Cramorant, 0), + }, + + [SPECIES_CRAMORANT_GULPING] = + { + CRAMORANT_MISC_INFO, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(CramorantGulping, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Cramorant, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(CramorantGulping, 64, 64), + .backPicYOffset = 1, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(CramorantGulping), + ICON(CramorantGulping, 0), + }, + + [SPECIES_CRAMORANT_GORGING] = + { + CRAMORANT_MISC_INFO, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(CramorantGorging, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Cramorant, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(CramorantGorging, 64, 64), + .backPicYOffset = 1, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(CramorantGorging), + ICON(CramorantGorging, 0), + }, +#endif //P_FAMILY_CRAMORANT + +#if P_FAMILY_ARROKUDA + [SPECIES_ARROKUDA] = + { + .baseHP = 41, + .baseAttack = 63, + .baseDefense = 40, + .baseSpeed = 66, .baseSpAttack = 40, - .baseSpDefense = 105, - .types = { TYPE_BUG, TYPE_FIGHTING}, - .catchRate = 45, - .expYield = 210, - .evYield_Attack = 2, + .baseSpDefense = 30, + .types = { TYPE_WATER, TYPE_WATER}, + .catchRate = 255, + .expYield = 56, + .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_SKILL_LINK, ABILITY_SKILL_LINK}, - .bodyColor = BODY_COLOR_BLUE, + .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, + .abilities = {ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_PROPELLER_TAIL}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, + .speciesName = _("Arrokuda"), + .cryId = CRY_ARROKUDA, + .natDexNum = NATIONAL_DEX_ARROKUDA, + .categoryName = _("Rush"), + .height = 5, + .weight = 10, + .description = COMPOUND_STRING( + "If it sees any movement around it, this\n" + "Pokémon charges for it straightaway,\n" + "leading with its sharply pointed jaw.\n" + "It's very proud of that jaw."), + .pokemonScale = 432, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Arrokuda, 56, 32), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_Arrokuda, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Arrokuda, 48, 40), + .backPicYOffset = 15, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Arrokuda), + ICON(Arrokuda, 2), + .footprint = gMonFootprint_Arrokuda, + LEARNSETS(Arrokuda), + .evolutions = EVOLUTION({EVO_LEVEL, 26, SPECIES_BARRASKEWDA}), }, - [SPECIES_HOUNDOOM_MEGA] = + [SPECIES_BARRASKEWDA] = { - .baseHP = 75, - .baseAttack = 90, - .baseDefense = 90, - .baseSpeed = 115, - .baseSpAttack = 140, - .baseSpDefense = 90, - .types = { TYPE_DARK, TYPE_FIRE}, - .catchRate = 45, - .expYield = 210, - .evYield_SpAttack = 2, + .baseHP = 61, + .baseAttack = 123, + .baseDefense = 60, + .baseSpeed = 136, + .baseSpAttack = 60, + .baseSpDefense = 50, + .types = { TYPE_WATER, TYPE_WATER}, + .catchRate = 60, + .expYield = 172, + .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 35, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SOLAR_POWER, ABILITY_SOLAR_POWER}, - .bodyColor = BODY_COLOR_BLACK, + .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, + .abilities = {ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_PROPELLER_TAIL}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, + .speciesName = _("Barraskewd"), + .cryId = CRY_BARRASKEWDA, + .natDexNum = NATIONAL_DEX_BARRASKEWDA, + .categoryName = _("Skewer"), + .height = 13, + .weight = 300, + .description = COMPOUND_STRING( + "This Pokémon has a jaw that's as sharp\n" + "as a spear and as strong as steel.\n" + "Apparently Barraskewda's flesh is\n" + "surprisingly tasty, too."), + .pokemonScale = 272, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Barraskewda, 56, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Barraskewda, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Barraskewda, 64, 48), + .backPicYOffset = 11, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Barraskewda), + ICON(Barraskewda, 2), + .footprint = gMonFootprint_Barraskewda, + LEARNSETS(Barraskewda), + }, +#endif //P_FAMILY_ARROKUDA + +#if P_FAMILY_TOXEL + [SPECIES_TOXEL] = + { + .baseHP = 40, + .baseAttack = 38, + .baseDefense = 35, + .baseSpeed = 40, + .baseSpAttack = 54, + .baseSpDefense = 35, + .types = { TYPE_ELECTRIC, TYPE_POISON}, + .catchRate = 75, + .expYield = 48, + .evYield_SpAttack = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_RATTLED, ABILITY_STATIC, ABILITY_KLUTZ}, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + .speciesName = _("Toxel"), + .cryId = CRY_TOXEL, + .natDexNum = NATIONAL_DEX_TOXEL, + .categoryName = _("Baby"), + .height = 4, + .weight = 110, + .description = COMPOUND_STRING( + "It stores poison in an internal poison\n" + "sac and secretes that poison through its\n" + "skin. If you touch this Pokémon, a\n" + "tingling sensation follows."), + .pokemonScale = 491, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Toxel, 40, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Toxel, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Toxel, 48, 56), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Toxel), + ICON(Toxel, 2), + .footprint = gMonFootprint_Toxel, + LEARNSETS(Toxel), + .evolutions = EVOLUTION({EVO_LEVEL_NATURE_AMPED, 30, SPECIES_TOXTRICITY_AMPED}, + {EVO_LEVEL_NATURE_LOW_KEY, 30, SPECIES_TOXTRICITY_LOW_KEY}), + }, + +#define TOXTRICITY_MISC_INFO \ + .baseHP = 75, \ + .baseAttack = 98, \ + .baseDefense = 70, \ + .baseSpeed = 75, \ + .baseSpAttack = 114, \ + .baseSpDefense = 70, \ + .types = { TYPE_ELECTRIC, TYPE_POISON}, \ + .catchRate = 45, \ + .expYield = 176, \ + .evYield_SpAttack = 2, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 25, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_SLOW, \ + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, \ + .bodyColor = BODY_COLOR_PURPLE, \ + .noFlip = FALSE, \ + .speciesName = _("Toxtricity"), \ + .natDexNum = NATIONAL_DEX_TOXTRICITY, \ + .categoryName = _("Punk"), \ + .formSpeciesIdTable = sToxtricityFormSpeciesIdTable, \ + .formChangeTable = sToxtricityAmpedFormChangeTable - [SPECIES_TYRANITAR_MEGA] = + [SPECIES_TOXTRICITY_AMPED] = { - .baseHP = 100, - .baseAttack = 164, - .baseDefense = 150, - .baseSpeed = 71, - .baseSpAttack = 95, - .baseSpDefense = 120, - .types = { TYPE_ROCK, TYPE_DARK}, - .catchRate = 45, - .expYield = 315, - .evYield_Attack = 3, + TOXTRICITY_MISC_INFO, + .abilities = {ABILITY_PUNK_ROCK, ABILITY_PLUS, ABILITY_TECHNICIAN}, + .cryId = CRY_TOXTRICITY_AMPED, + .height = 16, + .weight = 400, + .description = COMPOUND_STRING( + "When this Pokémon sounds as if it's\n" + "strumming a guitar, it's actually clawing\n" + "at the protrusions on its chest to\n" + "generate electricity."), + .pokemonScale = 259, + .pokemonOffset = 1, + .trainerScale = 296, + .trainerOffset = 1, + FRONT_PIC(ToxtricityAmped, 48, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Toxtricity, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(ToxtricityAmped, 56, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(ToxtricityAmped), + ICON(ToxtricityAmped, 2), + .footprint = gMonFootprint_Toxtricity, + LEARNSETS(ToxtricityAmped), + + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_TOXTRICITY_AMPED_GIGANTAMAX] = + { + TOXTRICITY_MISC_INFO, + .abilities = {ABILITY_PUNK_ROCK, ABILITY_PLUS, ABILITY_TECHNICIAN}, + .cryId = CRY_TOXTRICITY_AMPED, + .height = 240, + .weight = 0, + .description = gToxtricityGigantamaxPokedexText, + .pokemonScale = 259, + .pokemonOffset = 1, + .trainerScale = 296, + .trainerOffset = 1, + FRONT_PIC(ToxtricityGigantamax, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_ToxtricityGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(ToxtricityGigantamax, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(ToxtricityGigantamax), + ICON(ToxtricityGigantamax, 0), + .footprint = gMonFootprint_Toxtricity, + LEARNSETS(ToxtricityAmped), + .isGigantamax = TRUE, + }, +#endif //P_GIGANTAMAX_FORMS + + [SPECIES_TOXTRICITY_LOW_KEY] = + { + TOXTRICITY_MISC_INFO, + .abilities = {ABILITY_PUNK_ROCK, ABILITY_MINUS, ABILITY_TECHNICIAN}, + .cryId = CRY_TOXTRICITY_LOW_KEY, + .height = 16, + .weight = 400, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 259, + .pokemonOffset = 1, + .trainerScale = 296, + .trainerOffset = 1, + FRONT_PIC(ToxtricityLowKey, 48, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Toxtricity, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(ToxtricityLowKey, 48, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(ToxtricityLowKey), + ICON(ToxtricityLowKey, 2), + .footprint = gMonFootprint_Toxtricity, + LEARNSETS(ToxtricityLowKey), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_TOXTRICITY_LOW_KEY_GIGANTAMAX] = + { + TOXTRICITY_MISC_INFO, + .abilities = {ABILITY_PUNK_ROCK, ABILITY_MINUS, ABILITY_TECHNICIAN}, + .cryId = CRY_TOXTRICITY_LOW_KEY, + .height = 240, + .weight = 0, + .description = gToxtricityGigantamaxPokedexText, + .pokemonScale = 259, + .pokemonOffset = 1, + .trainerScale = 296, + .trainerOffset = 1, + FRONT_PIC(ToxtricityGigantamax, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_ToxtricityGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(ToxtricityGigantamax, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(ToxtricityGigantamax), + ICON(ToxtricityGigantamax, 0), + .footprint = gMonFootprint_Toxtricity, + LEARNSETS(ToxtricityLowKey), + .isGigantamax = TRUE, + }, +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_TOXEL + +#if P_FAMILY_SIZZLIPEDE + [SPECIES_SIZZLIPEDE] = + { + .baseHP = 50, + .baseAttack = 65, + .baseDefense = 45, + .baseSpeed = 45, + .baseSpAttack = 50, + .baseSpDefense = 50, + .types = { TYPE_FIRE, TYPE_BUG}, + .catchRate = 190, + .expYield = 61, + .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 40, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, - .abilities = {ABILITY_SAND_STREAM, ABILITY_SAND_STREAM}, - .bodyColor = BODY_COLOR_GREEN, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_FLASH_FIRE, ABILITY_WHITE_SMOKE, ABILITY_FLAME_BODY}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, + .speciesName = _("Sizzlipede"), + .cryId = CRY_SIZZLIPEDE, + .natDexNum = NATIONAL_DEX_SIZZLIPEDE, + .categoryName = _("Radiator"), + .height = 7, + .weight = 10, + .description = COMPOUND_STRING( + "It stores flammable gas in its body and\n" + "uses it to generate heat. The yellow\n" + "sections on its belly get particularly hot."), + .pokemonScale = 365, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Sizzlipede, 48, 32), + .frontPicYOffset = 17, + .frontAnimFrames = sAnims_Sizzlipede, + .frontAnimId = ANIM_H_VIBRATE, + BACK_PIC(Sizzlipede, 40, 32), + .backPicYOffset = 16, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Sizzlipede), + ICON(Sizzlipede, 0), + .footprint = gMonFootprint_Sizzlipede, + LEARNSETS(Sizzlipede), + .evolutions = EVOLUTION({EVO_LEVEL, 28, SPECIES_CENTISKORCH}), }, - [SPECIES_SCEPTILE_MEGA] = +#define CENTISKORCH_MISC_INFO \ + .baseHP = 100, \ + .baseAttack = 115, \ + .baseDefense = 65, \ + .baseSpeed = 65, \ + .baseSpAttack = 90, \ + .baseSpDefense = 90, \ + .types = {TYPE_FIRE, TYPE_BUG}, \ + .catchRate = 75, \ + .expYield = 184, \ + .evYield_Attack = 2, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = {EGG_GROUP_BUG, EGG_GROUP_BUG}, \ + .abilities = {ABILITY_FLASH_FIRE, ABILITY_WHITE_SMOKE, ABILITY_FLAME_BODY}, \ + .bodyColor = BODY_COLOR_RED, \ + .noFlip = FALSE, \ + .speciesName = _("Centiskorc"), \ + .cryId = CRY_CENTISKORCH, \ + .natDexNum = NATIONAL_DEX_CENTISKORCH, \ + .categoryName = _("Radiator"), \ + .footprint = gMonFootprint_Centiskorch, \ + LEARNSETS(Centiskorch), \ + .formChangeTable = sCentiskorchFormChangeTable + + [SPECIES_CENTISKORCH] = { - .baseHP = 70, - .baseAttack = 110, - .baseDefense = 75, - .baseSpeed = 145, - .baseSpAttack = 145, - .baseSpDefense = 85, - .types = { TYPE_GRASS, TYPE_DRAGON}, - .catchRate = 45, - .expYield = 284, - .evYield_Speed = 3, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, + CENTISKORCH_MISC_INFO, + .height = 30, + .weight = 1200, + .description = COMPOUND_STRING( + "When it heats up, its body temperature\n" + "reaches about 1,500 degrees Fahrenheit.\n" + "It lashes its body like a whip and\n" + "launches itself at enemies."), + .pokemonScale = 275, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Centiskorch, 64, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Centiskorch, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Centiskorch, 56, 64), + .backPicYOffset = 2, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Centiskorch), + ICON(Centiskorch, 0), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_CENTISKORCH_GIGANTAMAX] = + { + CENTISKORCH_MISC_INFO, + .height = 750, + .weight = 0, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 275, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(CentiskorchGigantamax, 64, 64), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_CentiskorchGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(CentiskorchGigantamax, 64, 64), + .backPicYOffset = 1, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(CentiskorchGigantamax), + ICON(CentiskorchGigantamax, 0), + .formSpeciesIdTable = sCentiskorchFormSpeciesIdTable, + .isGigantamax = TRUE, + }, +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_SIZZLIPEDE + +#if P_FAMILY_CLOBBOPUS + [SPECIES_CLOBBOPUS] = + { + .baseHP = 50, + .baseAttack = 68, + .baseDefense = 60, + .baseSpeed = 32, + .baseSpAttack = 50, + .baseSpDefense = 50, + .types = { TYPE_FIGHTING, TYPE_FIGHTING}, + .catchRate = 180, + .expYield = 62, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_LIGHTNING_ROD, ABILITY_LIGHTNING_ROD}, - .bodyColor = BODY_COLOR_GREEN, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_LIMBER, ABILITY_NONE, ABILITY_TECHNICIAN}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, + .speciesName = _("Clobbopus"), + .cryId = CRY_CLOBBOPUS, + .natDexNum = NATIONAL_DEX_CLOBBOPUS, + .categoryName = _("Tantrum"), + .height = 6, + .weight = 40, + .description = COMPOUND_STRING( + "It's very curious, but its means of\n" + "investigating things is to try to punch\n" + "them with its tentacles. The search for\n" + "food is what brings it onto land."), + .pokemonScale = 422, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Clobbopus, 48, 40), + .frontPicYOffset = 15, + .frontAnimFrames = sAnims_Clobbopus, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Clobbopus, 64, 40), + .backPicYOffset = 14, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Clobbopus), + ICON(Clobbopus, 0), + .footprint = gMonFootprint_Clobbopus, + LEARNSETS(Clobbopus), + .evolutions = EVOLUTION({EVO_MOVE, MOVE_TAUNT, SPECIES_GRAPPLOCT}), }, - [SPECIES_BLAZIKEN_MEGA] = + [SPECIES_GRAPPLOCT] = { .baseHP = 80, - .baseAttack = 160, - .baseDefense = 80, - .baseSpeed = 100, - .baseSpAttack = 130, + .baseAttack = 118, + .baseDefense = 90, + .baseSpeed = 42, + .baseSpAttack = 70, .baseSpDefense = 80, - .types = { TYPE_FIRE, TYPE_FIGHTING}, + .types = { TYPE_FIGHTING, TYPE_FIGHTING}, .catchRate = 45, - .expYield = 284, - .evYield_Attack = 3, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 20, + .expYield = 168, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SPEED_BOOST, ABILITY_SPEED_BOOST}, - .bodyColor = BODY_COLOR_RED, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_LIMBER, ABILITY_NONE, ABILITY_TECHNICIAN}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, - - [SPECIES_SWAMPERT_MEGA] = + .speciesName = _("Grapploct"), + .cryId = CRY_GRAPPLOCT, + .natDexNum = NATIONAL_DEX_GRAPPLOCT, + .categoryName = _("Jujitsu"), + .height = 16, + .weight = 390, + .description = COMPOUND_STRING( + "A body made up of nothing but muscle makes\n" + "the grappling moves this Pokémon performs\n" + "with its tentacles tremendously powerful."), + .pokemonScale = 259, + .pokemonOffset = 1, + .trainerScale = 296, + .trainerOffset = 1, + FRONT_PIC(Grapploct, 48, 56), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Grapploct, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Grapploct, 56, 56), + .backPicYOffset = 5, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Grapploct), + ICON(Grapploct, 2), + .footprint = gMonFootprint_Grapploct, + LEARNSETS(Grapploct), + }, +#endif //P_FAMILY_CLOBBOPUS + +#if P_FAMILY_SINISTEA +#define SINISTEA_MISC_INFO \ + .baseHP = 40, \ + .baseAttack = 45, \ + .baseDefense = 45, \ + .baseSpeed = 50, \ + .baseSpAttack = 74, \ + .baseSpDefense = 54, \ + .types = { TYPE_GHOST, TYPE_GHOST}, \ + .catchRate = 120, \ + .expYield = 62, \ + .evYield_SpAttack = 1, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS}, \ + .abilities = {ABILITY_WEAK_ARMOR, ABILITY_NONE, ABILITY_CURSED_BODY},\ + .bodyColor = BODY_COLOR_PURPLE, \ + .noFlip = FALSE, \ + .speciesName = _("Sinistea"), \ + .cryId = CRY_SINISTEA, \ + .natDexNum = NATIONAL_DEX_SINISTEA, \ + .categoryName = _("Black Tea"), \ + .height = 1, \ + .weight = 2, \ + .pokemonScale = 682, \ + .pokemonOffset = 24, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + FRONT_PIC(Sinistea, 40, 32), \ + .frontPicYOffset = 17, \ + .frontAnimFrames = sAnims_Sinistea, \ + BACK_PIC(Sinistea, 48, 32), \ + .backPicYOffset = 16, \ + PALETTE(Sinistea), \ + ICON(Sinistea, 2), \ + .footprint = gMonFootprint_Sinistea, \ + LEARNSETS(Sinistea), \ + .formSpeciesIdTable = sSinisteaFormSpeciesIdTable + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + //.backAnimId = BACK_ANIM_NONE, + + [SPECIES_SINISTEA_PHONY] = + { + SINISTEA_MISC_INFO, + .description = COMPOUND_STRING( + "This Pokémon is said to have been born\n" + "when a lonely spirit possessed a cold,\n" + "leftover cup of tea."), + .enemyMonElevation = 9, + .evolutions = EVOLUTION({EVO_ITEM, ITEM_CRACKED_POT, SPECIES_POLTEAGEIST_PHONY}), + }, + + [SPECIES_SINISTEA_ANTIQUE] = + { + SINISTEA_MISC_INFO, + .description = COMPOUND_STRING( + ""), + .enemyMonElevation = 10, + .evolutions = EVOLUTION({EVO_ITEM, ITEM_CHIPPED_POT, SPECIES_POLTEAGEIST_ANTIQUE}), + }, + +#define POLTEAGEIST_MISC_INFO \ + .baseHP = 60, \ + .baseAttack = 65, \ + .baseDefense = 65, \ + .baseSpeed = 70, \ + .baseSpAttack = 134, \ + .baseSpDefense = 114, \ + .types = { TYPE_GHOST, TYPE_GHOST}, \ + .catchRate = 60, \ + .expYield = 178, \ + .evYield_SpAttack = 2, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS}, \ + .abilities = {ABILITY_WEAK_ARMOR, ABILITY_NONE, ABILITY_CURSED_BODY},\ + .bodyColor = BODY_COLOR_PURPLE, \ + .noFlip = FALSE, \ + .speciesName = _("Polteageis"), \ + .cryId = CRY_POLTEAGEIST, \ + .natDexNum = NATIONAL_DEX_POLTEAGEIST, \ + .categoryName = _("Black Tea"), \ + .height = 2, \ + .weight = 4, \ + .pokemonScale = 682, \ + .pokemonOffset = 24, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + FRONT_PIC(Polteageist, 48, 48), \ + .frontPicYOffset = 11, \ + .frontAnimFrames = sAnims_Polteageist, \ + BACK_PIC(Polteageist, 64, 40), \ + .backPicYOffset = 13, \ + PALETTE(Polteageist), \ + ICON(Polteageist, 2), \ + .footprint = gMonFootprint_Polteageist, \ + LEARNSETS(Polteageist), \ + .formSpeciesIdTable = sPolteageistFormSpeciesIdTable + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + //.backAnimId = BACK_ANIM_NONE, + + [SPECIES_POLTEAGEIST_PHONY] = + { + POLTEAGEIST_MISC_INFO, + .description = COMPOUND_STRING( + "This species lives in antique teapots.\n" + "Most pots are forgeries, but on rare\n" + "occasions, an authentic work is found."), + .enemyMonElevation = 12, + }, + + [SPECIES_POLTEAGEIST_ANTIQUE] = + { + POLTEAGEIST_MISC_INFO, + .description = COMPOUND_STRING( + ""), + .enemyMonElevation = 11, + }, +#endif //P_FAMILY_SINISTEA + +#if P_FAMILY_HATENNA + [SPECIES_HATENNA] = { - .baseHP = 100, - .baseAttack = 150, - .baseDefense = 110, - .baseSpeed = 70, - .baseSpAttack = 95, - .baseSpDefense = 110, - .types = { TYPE_WATER, TYPE_GROUND}, - .catchRate = 45, - .expYield = 286, - .evYield_Attack = 3, - .genderRatio = PERCENT_FEMALE(12.5), + .baseHP = 42, + .baseAttack = 30, + .baseDefense = 45, + .baseSpeed = 39, + .baseSpAttack = 56, + .baseSpDefense = 53, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, + .catchRate = 235, + .expYield = 53, + .evYield_SpAttack = 1, + .genderRatio = MON_FEMALE, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_SWIFT_SWIM, ABILITY_SWIFT_SWIM}, - .bodyColor = BODY_COLOR_BLUE, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, + .abilities = {ABILITY_HEALER, ABILITY_ANTICIPATION, ABILITY_MAGIC_BOUNCE}, + .bodyColor = BODY_COLOR_PINK, .noFlip = FALSE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, + .speciesName = _("Hatenna"), + .cryId = CRY_HATENNA, + .natDexNum = NATIONAL_DEX_HATENNA, + .categoryName = _("Calm"), + .height = 4, + .weight = 34, + .description = COMPOUND_STRING( + "Via the protrusion on its head, it senses\n" + "other creatures' emotions. If you don't\n" + "have a calm disposition, it will never\n" + "warm up to you."), + .pokemonScale = 491, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Hatenna, 48, 48), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Hatenna, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Hatenna, 40, 40), + .backPicYOffset = 12, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Hatenna), + ICON(Hatenna, 0), + .footprint = gMonFootprint_Hatenna, + LEARNSETS(Hatenna), + .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_HATTREM}), }, - [SPECIES_GARDEVOIR_MEGA] = + [SPECIES_HATTREM] = { - .baseHP = 68, - .baseAttack = 85, + .baseHP = 57, + .baseAttack = 40, .baseDefense = 65, - .baseSpeed = 100, - .baseSpAttack = 165, - .baseSpDefense = 135, - .types = { TYPE_PSYCHIC, TYPE_FAIRY}, - .catchRate = 45, - .expYield = 278, - .evYield_SpAttack = 3, - .genderRatio = PERCENT_FEMALE(50), + .baseSpeed = 49, + .baseSpAttack = 86, + .baseSpDefense = 73, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, + .catchRate = 120, + .expYield = 130, + .evYield_SpAttack = 2, + .genderRatio = MON_FEMALE, .eggCycles = 20, - .friendship = 35, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_PIXILATE, ABILITY_PIXILATE}, - .bodyColor = BODY_COLOR_WHITE, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, + .abilities = {ABILITY_HEALER, ABILITY_ANTICIPATION, ABILITY_MAGIC_BOUNCE}, + .bodyColor = BODY_COLOR_PINK, .noFlip = FALSE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, + .speciesName = _("Hattrem"), + .cryId = CRY_HATTREM, + .natDexNum = NATIONAL_DEX_HATTREM, + .categoryName = _("Serene"), + .height = 6, + .weight = 48, + .description = COMPOUND_STRING( + "No matter who you are, if you bring strong\n" + "emotions near this Pokémon, it will silence\n" + "you violently."), + .pokemonScale = 422, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Hattrem, 56, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Hattrem, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Hattrem, 56, 48), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Hattrem), + ICON(Hattrem, 0), + .footprint = gMonFootprint_Hattrem, + LEARNSETS(Hattrem), + .evolutions = EVOLUTION({EVO_LEVEL, 42, SPECIES_HATTERENE}), }, - [SPECIES_SABLEYE_MEGA] = - { - .baseHP = 50, - .baseAttack = 85, - .baseDefense = 125, - .baseSpeed = 20, - .baseSpAttack = 85, - .baseSpDefense = 115, - .types = { TYPE_DARK, TYPE_GHOST}, - .catchRate = 45, - .expYield = 168, - .evYield_Attack = 1, - .evYield_Defense = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, - .friendship = 35, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_MAGIC_BOUNCE, ABILITY_MAGIC_BOUNCE}, - .bodyColor = BODY_COLOR_PURPLE, - .noFlip = FALSE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, +#define HATTERENE_MISC_INFO \ + .baseHP = 57, \ + .baseAttack = 90, \ + .baseDefense = 95, \ + .baseSpeed = 29, \ + .baseSpAttack = 136, \ + .baseSpDefense = 103, \ + .types = {TYPE_PSYCHIC, TYPE_FAIRY}, \ + .catchRate = 45, \ + .expYield = 255, \ + .evYield_SpAttack = 3, \ + .genderRatio = MON_FEMALE, \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = {EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, \ + .abilities = {ABILITY_HEALER, ABILITY_ANTICIPATION, ABILITY_MAGIC_BOUNCE}, \ + .bodyColor = BODY_COLOR_PINK, \ + .noFlip = FALSE, \ + .speciesName = _("Hatterene"), \ + .cryId = CRY_HATTERENE, \ + .natDexNum = NATIONAL_DEX_HATTERENE, \ + .categoryName = _("Silent"), \ + .footprint = gMonFootprint_Hatterene, \ + LEARNSETS(Hatterene), \ + .formChangeTable = sHattereneFormChangeTable - [SPECIES_MAWILE_MEGA] = + [SPECIES_HATTERENE] = { - .baseHP = 50, - .baseAttack = 105, - .baseDefense = 125, + HATTERENE_MISC_INFO, + .height = 21, + .weight = 51, + .description = COMPOUND_STRING( + "It emits psychic power strong enough to\n" + "cause headaches as a deterrent to the\n" + "approach of others."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 365, + .trainerOffset = 7, + FRONT_PIC(Hatterene, 48, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Hatterene, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Hatterene, 56, 64), + .backPicYOffset = 3, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Hatterene), + ICON(Hatterene, 0), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_HATTERENE_GIGANTAMAX] = + { + HATTERENE_MISC_INFO, + .height = 260, + .weight = 0, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 365, + .trainerOffset = 7, + FRONT_PIC(HattereneGigantamax, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_HattereneGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(HattereneGigantamax, 64, 64), + .backPicYOffset = 3, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(HattereneGigantamax), + ICON(HattereneGigantamax, 0), + .formSpeciesIdTable = sHattereneFormSpeciesIdTable, + .isGigantamax = TRUE, + }, +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_HATENNA + +#if P_FAMILY_IMPIDIMP + [SPECIES_IMPIDIMP] = + { + .baseHP = 45, + .baseAttack = 45, + .baseDefense = 30, .baseSpeed = 50, .baseSpAttack = 55, - .baseSpDefense = 95, - .types = { TYPE_STEEL, TYPE_FAIRY}, - .catchRate = 45, - .expYield = 168, - .evYield_Attack = 1, - .evYield_Defense = 1, - .genderRatio = PERCENT_FEMALE(50), + .baseSpDefense = 40, + .types = { TYPE_DARK, TYPE_FAIRY}, + .catchRate = 255, + .expYield = 53, + .evYield_SpAttack = 1, + .genderRatio = MON_MALE, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_HUGE_POWER, ABILITY_HUGE_POWER}, - .bodyColor = BODY_COLOR_BLACK, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_PRANKSTER, ABILITY_FRISK, ABILITY_PICKPOCKET}, + .bodyColor = BODY_COLOR_PINK, .noFlip = FALSE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, + .speciesName = _("Impidimp"), + .cryId = CRY_IMPIDIMP, + .natDexNum = NATIONAL_DEX_IMPIDIMP, + .categoryName = _("Wily"), + .height = 4, + .weight = 55, + .description = COMPOUND_STRING( + "Through its nose, it sucks in the\n" + "emanations produced by people and Pokémon\n" + "when they feel annoyed. It thrives off\n" + "this negative energy."), + .pokemonScale = 491, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Impidimp, 48, 40), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Impidimp, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Impidimp, 48, 40), + .backPicYOffset = 13, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Impidimp), + ICON(Impidimp, 0), + .footprint = gMonFootprint_Impidimp, + LEARNSETS(Impidimp), + .evolutions = EVOLUTION({EVO_LEVEL, 32, SPECIES_MORGREM}), }, - [SPECIES_AGGRON_MEGA] = + [SPECIES_MORGREM] = { - .baseHP = 70, - .baseAttack = 140, - .baseDefense = 230, - .baseSpeed = 50, - .baseSpAttack = 60, - .baseSpDefense = 80, - .types = { TYPE_STEEL, TYPE_STEEL}, - .catchRate = 45, - .expYield = 284, - .evYield_Defense = 3, - .itemRare = ITEM_HARD_STONE, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 35, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, - .abilities = {ABILITY_FILTER, ABILITY_FILTER}, - .bodyColor = BODY_COLOR_GRAY, + .baseHP = 65, + .baseAttack = 60, + .baseDefense = 45, + .baseSpeed = 70, + .baseSpAttack = 75, + .baseSpDefense = 55, + .types = { TYPE_DARK, TYPE_FAIRY}, + .catchRate = 120, + .expYield = 130, + .evYield_SpAttack = 2, + .genderRatio = MON_MALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_PRANKSTER, ABILITY_FRISK, ABILITY_PICKPOCKET}, + .bodyColor = BODY_COLOR_PINK, .noFlip = FALSE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, + .speciesName = _("Morgrem"), + .cryId = CRY_MORGREM, + .natDexNum = NATIONAL_DEX_MORGREM, + .categoryName = _("Devious"), + .height = 8, + .weight = 125, + .description = COMPOUND_STRING( + "When it gets down on all fours as if to\n" + "beg for forgiveness, it's trying to lure\n" + "opponents in so that it can stab them\n" + "with its spear-like hair."), + .pokemonScale = 366, + .pokemonOffset = 7, + .trainerScale = 257, + .trainerOffset = 0, + FRONT_PIC(Morgrem, 48, 56), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Morgrem, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Morgrem, 56, 48), + .backPicYOffset = 11, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Morgrem), + ICON(Morgrem, 0), + .footprint = gMonFootprint_Morgrem, + LEARNSETS(Morgrem), + .evolutions = EVOLUTION({EVO_LEVEL, 42, SPECIES_GRIMMSNARL}), }, - [SPECIES_MEDICHAM_MEGA] = +#define GRIMMSNARL_MISC_INFO \ + .baseHP = 95, \ + .baseAttack = 120, \ + .baseDefense = 65, \ + .baseSpeed = 60, \ + .baseSpAttack = 95, \ + .baseSpDefense = 75, \ + .types = {TYPE_DARK, TYPE_FAIRY}, \ + .catchRate = 45, \ + .expYield = 255, \ + .evYield_Attack = 3, \ + .genderRatio = MON_MALE, \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = {EGG_GROUP_FAIRY, EGG_GROUP_HUMAN_LIKE}, \ + .abilities = {ABILITY_PRANKSTER, ABILITY_FRISK, ABILITY_PICKPOCKET},\ + .bodyColor = BODY_COLOR_PURPLE, \ + .noFlip = FALSE, \ + .speciesName = _("Grimmsnarl"), \ + .cryId = CRY_GRIMMSNARL, \ + .natDexNum = NATIONAL_DEX_GRIMMSNARL, \ + .categoryName = _("Bulk Up"), \ + .footprint = gMonFootprint_Grimmsnarl, \ + LEARNSETS(Grimmsnarl), \ + .formChangeTable = sGrimmsnarlFormChangeTable + + [SPECIES_GRIMMSNARL] = { - .baseHP = 60, - .baseAttack = 100, - .baseDefense = 85, - .baseSpeed = 100, - .baseSpAttack = 80, - .baseSpDefense = 85, - .types = { TYPE_FIGHTING, TYPE_PSYCHIC}, - .catchRate = 90, - .expYield = 179, - .evYield_Speed = 2, - .genderRatio = PERCENT_FEMALE(50), + GRIMMSNARL_MISC_INFO, + .height = 15, + .weight = 610, + .description = COMPOUND_STRING( + "With the hair wrapped around its body\n" + "helping to enhance its muscles, this\n" + "Pokémon can overwhelm even Machamp."), + .pokemonScale = 268, + .pokemonOffset = 2, + .trainerScale = 271, + .trainerOffset = 0, + FRONT_PIC(Grimmsnarl, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Grimmsnarl, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Grimmsnarl, 64, 48), + .backPicYOffset = 10, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Grimmsnarl), + ICON(Grimmsnarl, 0), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_GRIMMSNARL_GIGANTAMAX] = + { + GRIMMSNARL_MISC_INFO, + .height = 320, + .weight = 0, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 268, + .pokemonOffset = 2, + .trainerScale = 271, + .trainerOffset = 0, + FRONT_PIC(GrimmsnarlGigantamax, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_GrimmsnarlGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(GrimmsnarlGigantamax, 64, 64), + .backPicYOffset = 10, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(GrimmsnarlGigantamax), + ICON(GrimmsnarlGigantamax, 0), + .formSpeciesIdTable = sGrimmsnarlFormSpeciesIdTable, + .isGigantamax = TRUE, + }, +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_IMPIDIMP + +#if P_FAMILY_MILCERY + [SPECIES_MILCERY] = + { + .baseHP = 45, + .baseAttack = 40, + .baseDefense = 40, + .baseSpeed = 34, + .baseSpAttack = 50, + .baseSpDefense = 61, + .types = { TYPE_FAIRY, TYPE_FAIRY}, + .catchRate = 200, + .expYield = 54, + .evYield_SpDefense = 1, + .genderRatio = MON_FEMALE, .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_PURE_POWER, ABILITY_PURE_POWER}, - .bodyColor = BODY_COLOR_RED, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_AMORPHOUS}, + .abilities = {ABILITY_SWEET_VEIL, ABILITY_NONE, ABILITY_AROMA_VEIL}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, + .speciesName = _("Milcery"), + .cryId = CRY_MILCERY, + .natDexNum = NATIONAL_DEX_MILCERY, + .categoryName = _("Cream"), + .height = 2, + .weight = 3, + .description = COMPOUND_STRING( + "This Pokémon was born from sweet-smelling\n" + "particles in the air. Its body is made\n" + "of cream."), + .pokemonScale = 682, + .pokemonOffset = 24, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Milcery, 40, 40), + .frontPicYOffset = 15, + .frontAnimFrames = sAnims_Milcery, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 10, + BACK_PIC(Milcery, 56, 48), + .backPicYOffset = 16, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Milcery), + ICON(Milcery, 1), + .footprint = gMonFootprint_Milcery, + LEARNSETS(Milcery), + .evolutions = EVOLUTION({EVO_LEVEL, 0, SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM}, + {EVO_LEVEL, 0, SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM}, + {EVO_LEVEL, 0, SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM}, + {EVO_LEVEL, 0, SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM}, + {EVO_LEVEL, 0, SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM}, + {EVO_LEVEL, 0, SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM}, + {EVO_LEVEL, 0, SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL}, + {EVO_LEVEL, 0, SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL}, + {EVO_LEVEL, 0, SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL}), }, - [SPECIES_MANECTRIC_MEGA] = +#define ALCREMIE_MISC_INFO(color) \ + .baseHP = 65, \ + .baseAttack = 60, \ + .baseDefense = 75, \ + .baseSpeed = 64, \ + .baseSpAttack = 110, \ + .baseSpDefense = 121, \ + .types = { TYPE_FAIRY, TYPE_FAIRY}, \ + .catchRate = 100, \ + .expYield = 173, \ + .evYield_SpDefense = 2, \ + .genderRatio = MON_FEMALE, \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_AMORPHOUS}, \ + .abilities = {ABILITY_SWEET_VEIL, ABILITY_NONE, ABILITY_AROMA_VEIL},\ + .bodyColor = color, \ + .noFlip = FALSE + +// For later +#define ALCREMIE_REGULAR_SPECIES_INFO(sweet, cream, color) \ + { \ + ALCREMIE_MISC_INFO(color), \ + .speciesName = _("Alcremie"), \ + .cryId = CRY_ALCREMIE, \ + .natDexNum = NATIONAL_DEX_ALCREMIE, \ + .categoryName = _("Cream"), \ + .height = 3, \ + .weight = 5, \ + .description = gAlcremie ##cream##PokedexText, \ + .pokemonScale = 530, \ + .pokemonOffset = 13, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + FRONT_PIC(AlcremieStrawberry, 40, 56), \ + .frontPicYOffset = 7, \ + .frontAnimFrames = sAnims_Alcremie, \ + BACK_PIC(AlcremieStrawberry, 48, 56), \ + .backPicYOffset = 9, \ + .palette = gMonPalette_Alcremie ##sweet##cream, \ + .shinyPalette = gMonShinyPalette_Alcremie ##sweet, \ + ICON(AlcremieStrawberryVanillaCream, 1), \ + .footprint = gMonFootprint_Alcremie, \ + LEARNSETS(Alcremie), \ + .formSpeciesIdTable = sAlcremieFormSpeciesIdTable, \ + .formChangeTable = sAlcremieFormChangeTable, \ + } + //ICON(AlcremieStrawberry##cream##, 1), + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + //.backAnimId = BACK_ANIM_NONE, + + [SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Strawberry, VanillaCream, BODY_COLOR_WHITE), + [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Strawberry, RubyCream, BODY_COLOR_PINK), + [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Strawberry, MatchaCream, BODY_COLOR_GREEN), + [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Strawberry, MintCream, BODY_COLOR_BLUE), + [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Strawberry, LemonCream, BODY_COLOR_YELLOW), + [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Strawberry, SaltedCream, BODY_COLOR_WHITE), + [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL] = ALCREMIE_REGULAR_SPECIES_INFO(Strawberry, RubySwirl, BODY_COLOR_YELLOW), + [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL] = ALCREMIE_REGULAR_SPECIES_INFO(Strawberry, CaramelSwirl, BODY_COLOR_BROWN), + [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL] = ALCREMIE_REGULAR_SPECIES_INFO(Strawberry, RainbowSwirl, BODY_COLOR_YELLOW), + [SPECIES_ALCREMIE_BERRY_VANILLA_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Berry, VanillaCream, BODY_COLOR_WHITE), + [SPECIES_ALCREMIE_BERRY_RUBY_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Berry, RubyCream, BODY_COLOR_PINK), + [SPECIES_ALCREMIE_BERRY_MATCHA_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Berry, MatchaCream, BODY_COLOR_GREEN), + [SPECIES_ALCREMIE_BERRY_MINT_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Berry, MintCream, BODY_COLOR_BLUE), + [SPECIES_ALCREMIE_BERRY_LEMON_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Berry, LemonCream, BODY_COLOR_YELLOW), + [SPECIES_ALCREMIE_BERRY_SALTED_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Berry, SaltedCream, BODY_COLOR_WHITE), + [SPECIES_ALCREMIE_BERRY_RUBY_SWIRL] = ALCREMIE_REGULAR_SPECIES_INFO(Berry, RubySwirl, BODY_COLOR_YELLOW), + [SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL] = ALCREMIE_REGULAR_SPECIES_INFO(Berry, CaramelSwirl, BODY_COLOR_BROWN), + [SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL] = ALCREMIE_REGULAR_SPECIES_INFO(Berry, RainbowSwirl, BODY_COLOR_YELLOW), + [SPECIES_ALCREMIE_LOVE_VANILLA_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Love, VanillaCream, BODY_COLOR_WHITE), + [SPECIES_ALCREMIE_LOVE_RUBY_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Love, RubyCream, BODY_COLOR_PINK), + [SPECIES_ALCREMIE_LOVE_MATCHA_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Love, MatchaCream, BODY_COLOR_GREEN), + [SPECIES_ALCREMIE_LOVE_MINT_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Love, MintCream, BODY_COLOR_BLUE), + [SPECIES_ALCREMIE_LOVE_LEMON_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Love, LemonCream, BODY_COLOR_YELLOW), + [SPECIES_ALCREMIE_LOVE_SALTED_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Love, SaltedCream, BODY_COLOR_WHITE), + [SPECIES_ALCREMIE_LOVE_RUBY_SWIRL] = ALCREMIE_REGULAR_SPECIES_INFO(Love, RubySwirl, BODY_COLOR_YELLOW), + [SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL] = ALCREMIE_REGULAR_SPECIES_INFO(Love, CaramelSwirl, BODY_COLOR_BROWN), + [SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL] = ALCREMIE_REGULAR_SPECIES_INFO(Love, RainbowSwirl, BODY_COLOR_YELLOW), + [SPECIES_ALCREMIE_STAR_VANILLA_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Star, VanillaCream, BODY_COLOR_WHITE), + [SPECIES_ALCREMIE_STAR_RUBY_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Star, RubyCream, BODY_COLOR_PINK), + [SPECIES_ALCREMIE_STAR_MATCHA_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Star, MatchaCream, BODY_COLOR_GREEN), + [SPECIES_ALCREMIE_STAR_MINT_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Star, MintCream, BODY_COLOR_BLUE), + [SPECIES_ALCREMIE_STAR_LEMON_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Star, LemonCream, BODY_COLOR_YELLOW), + [SPECIES_ALCREMIE_STAR_SALTED_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Star, SaltedCream, BODY_COLOR_WHITE), + [SPECIES_ALCREMIE_STAR_RUBY_SWIRL] = ALCREMIE_REGULAR_SPECIES_INFO(Star, RubySwirl, BODY_COLOR_YELLOW), + [SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL] = ALCREMIE_REGULAR_SPECIES_INFO(Star, CaramelSwirl, BODY_COLOR_BROWN), + [SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL] = ALCREMIE_REGULAR_SPECIES_INFO(Star, RainbowSwirl, BODY_COLOR_YELLOW), + [SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Clover, VanillaCream, BODY_COLOR_WHITE), + [SPECIES_ALCREMIE_CLOVER_RUBY_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Clover, RubyCream, BODY_COLOR_PINK), + [SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Clover, MatchaCream, BODY_COLOR_GREEN), + [SPECIES_ALCREMIE_CLOVER_MINT_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Clover, MintCream, BODY_COLOR_BLUE), + [SPECIES_ALCREMIE_CLOVER_LEMON_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Clover, LemonCream, BODY_COLOR_YELLOW), + [SPECIES_ALCREMIE_CLOVER_SALTED_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Clover, SaltedCream, BODY_COLOR_WHITE), + [SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL] = ALCREMIE_REGULAR_SPECIES_INFO(Clover, RubySwirl, BODY_COLOR_YELLOW), + [SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL] = ALCREMIE_REGULAR_SPECIES_INFO(Clover, CaramelSwirl, BODY_COLOR_BROWN), + [SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL] = ALCREMIE_REGULAR_SPECIES_INFO(Clover, RainbowSwirl, BODY_COLOR_YELLOW), + [SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Flower, VanillaCream, BODY_COLOR_WHITE), + [SPECIES_ALCREMIE_FLOWER_RUBY_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Flower, RubyCream, BODY_COLOR_PINK), + [SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Flower, MatchaCream, BODY_COLOR_GREEN), + [SPECIES_ALCREMIE_FLOWER_MINT_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Flower, MintCream, BODY_COLOR_BLUE), + [SPECIES_ALCREMIE_FLOWER_LEMON_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Flower, LemonCream, BODY_COLOR_YELLOW), + [SPECIES_ALCREMIE_FLOWER_SALTED_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Flower, SaltedCream, BODY_COLOR_WHITE), + [SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL] = ALCREMIE_REGULAR_SPECIES_INFO(Flower, RubySwirl, BODY_COLOR_YELLOW), + [SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL] = ALCREMIE_REGULAR_SPECIES_INFO(Flower, CaramelSwirl, BODY_COLOR_BROWN), + [SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL] = ALCREMIE_REGULAR_SPECIES_INFO(Flower, RainbowSwirl, BODY_COLOR_YELLOW), + [SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Ribbon, VanillaCream, BODY_COLOR_WHITE), + [SPECIES_ALCREMIE_RIBBON_RUBY_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Ribbon, RubyCream, BODY_COLOR_PINK), + [SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Ribbon, MatchaCream, BODY_COLOR_GREEN), + [SPECIES_ALCREMIE_RIBBON_MINT_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Ribbon, MintCream, BODY_COLOR_BLUE), + [SPECIES_ALCREMIE_RIBBON_LEMON_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Ribbon, LemonCream, BODY_COLOR_YELLOW), + [SPECIES_ALCREMIE_RIBBON_SALTED_CREAM] = ALCREMIE_REGULAR_SPECIES_INFO(Ribbon, SaltedCream, BODY_COLOR_WHITE), + [SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL] = ALCREMIE_REGULAR_SPECIES_INFO(Ribbon, RubySwirl, BODY_COLOR_YELLOW), + [SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL] = ALCREMIE_REGULAR_SPECIES_INFO(Ribbon, CaramelSwirl, BODY_COLOR_BROWN), + [SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL] = ALCREMIE_REGULAR_SPECIES_INFO(Ribbon, RainbowSwirl, BODY_COLOR_YELLOW), +#if P_GIGANTAMAX_FORMS + [SPECIES_ALCREMIE_GIGANTAMAX] = { - .baseHP = 70, - .baseAttack = 75, - .baseDefense = 80, - .baseSpeed = 135, - .baseSpAttack = 135, - .baseSpDefense = 80, - .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, + ALCREMIE_MISC_INFO(BODY_COLOR_PINK), + .isGigantamax = TRUE, + .speciesName = _("Alcremie"), + .cryId = CRY_ALCREMIE, + .natDexNum = NATIONAL_DEX_ALCREMIE, + .categoryName = _("Cream"), + .height = 3, + .weight = 5, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(AlcremieStrawberry, 40, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Alcremie, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(AlcremieStrawberry, 48, 56), + .backPicYOffset = 9, + //.backAnimId = BACK_ANIM_NONE, + .palette = gMonPalette_AlcremieStrawberryVanillaCream, + .shinyPalette = gMonShinyPalette_AlcremieStrawberry, + ICON(AlcremieStrawberryVanillaCream, 1), + .footprint = gMonFootprint_Alcremie, + LEARNSETS(Alcremie), + .formSpeciesIdTable = sAlcremieFormSpeciesIdTable, + .formChangeTable = sAlcremieFormChangeTable, + }, +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_MILCERY + +#if P_FAMILY_FALINKS + [SPECIES_FALINKS] = + { + .baseHP = 65, + .baseAttack = 100, + .baseDefense = 100, + .baseSpeed = 75, + .baseSpAttack = 70, + .baseSpDefense = 60, + .types = { TYPE_FIGHTING, TYPE_FIGHTING}, .catchRate = 45, - .expYield = 201, - .evYield_Speed = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .expYield = 165, + .evYield_Attack = 2, + .evYield_SpDefense = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 25, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_INTIMIDATE, ABILITY_INTIMIDATE}, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_BATTLE_ARMOR, ABILITY_NONE, ABILITY_DEFIANT}, .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, - - [SPECIES_SHARPEDO_MEGA] = + .speciesName = _("Falinks"), + .cryId = CRY_FALINKS, + .natDexNum = NATIONAL_DEX_FALINKS, + .categoryName = _("Formation"), + .height = 30, + .weight = 620, + .description = COMPOUND_STRING( + "Five of them are troopers, and one is the\n" + "brass. The brass's orders are absolute."), + .pokemonScale = 275, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Falinks, 56, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Falinks, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Falinks, 64, 40), + .backPicYOffset = 15, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Falinks), + ICON(Falinks, 0), + .footprint = gMonFootprint_Falinks, + LEARNSETS(Falinks), + }, +#endif //P_FAMILY_FALINKS + +#if P_FAMILY_PINCURCHIN + [SPECIES_PINCURCHIN] = { - .baseHP = 70, - .baseAttack = 140, - .baseDefense = 70, - .baseSpeed = 105, - .baseSpAttack = 110, - .baseSpDefense = 65, - .types = { TYPE_WATER, TYPE_DARK}, - .catchRate = 60, - .expYield = 196, + .baseHP = 48, + .baseAttack = 101, + .baseDefense = 95, + .baseSpeed = 15, + .baseSpAttack = 91, + .baseSpDefense = 85, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, + .catchRate = 75, + .expYield = 152, .evYield_Attack = 2, - .itemRare = ITEM_DEEP_SEA_TOOTH, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, - .abilities = {ABILITY_STRONG_JAW, ABILITY_STRONG_JAW}, - .bodyColor = BODY_COLOR_BLUE, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_AMORPHOUS}, + .abilities = {ABILITY_LIGHTNING_ROD, ABILITY_NONE, ABILITY_ELECTRIC_SURGE}, + .bodyColor = BODY_COLOR_PURPLE, .noFlip = FALSE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, - - [SPECIES_CAMERUPT_MEGA] = + .speciesName = _("Pincurchin"), + .cryId = CRY_PINCURCHIN, + .natDexNum = NATIONAL_DEX_PINCURCHIN, + .categoryName = _("Sea Urchin"), + .height = 3, + .weight = 10, + .description = COMPOUND_STRING( + "It feeds on seaweed, using its teeth to\n" + "scrape it off rocks. Electric current\n" + "flows from the tips of its spines."), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Pincurchin, 40, 40), + .frontPicYOffset = 15, + .frontAnimFrames = sAnims_Pincurchin, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Pincurchin, 56, 40), + .backPicYOffset = 13, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Pincurchin), + ICON(Pincurchin, 0), + .footprint = gMonFootprint_Pincurchin, + LEARNSETS(Pincurchin), + }, +#endif //P_FAMILY_PINCURCHIN + +#if P_FAMILY_SNOM + [SPECIES_SNOM] = { - .baseHP = 70, - .baseAttack = 120, - .baseDefense = 100, + .baseHP = 30, + .baseAttack = 25, + .baseDefense = 35, .baseSpeed = 20, - .baseSpAttack = 145, - .baseSpDefense = 105, - .types = { TYPE_FIRE, TYPE_GROUND}, - .catchRate = 150, - .expYield = 196, - .evYield_Attack = 1, + .baseSpAttack = 45, + .baseSpDefense = 30, + .types = { TYPE_ICE, TYPE_BUG}, + .catchRate = 190, + .expYield = 37, .evYield_SpAttack = 1, + .itemRare = ITEM_SNOWBALL, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SHEER_FORCE, ABILITY_SHEER_FORCE}, - .bodyColor = BODY_COLOR_RED, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_SHIELD_DUST, ABILITY_NONE, ABILITY_ICE_SCALES}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, + .speciesName = _("Snom"), + .cryId = CRY_SNOM, + .natDexNum = NATIONAL_DEX_SNOM, + .categoryName = _("Worm"), + .height = 3, + .weight = 38, + .description = COMPOUND_STRING( + "It spits out thread imbued with a frigid\n" + "sort of energy and uses it to tie its body\n" + "to branches, disguising itself as an\n" + "icicle while it sleeps."), + .pokemonScale = 530, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Snom, 40, 32), + .frontPicYOffset = 20, + .frontAnimFrames = sAnims_Snom, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Snom, 48, 32), + .backPicYOffset = 17, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Snom), + ICON(Snom, 0), + .footprint = gMonFootprint_Snom, + LEARNSETS(Snom), + .evolutions = EVOLUTION({EVO_FRIENDSHIP_NIGHT, 0, SPECIES_FROSMOTH}), }, - [SPECIES_ALTARIA_MEGA] = + [SPECIES_FROSMOTH] = { - .baseHP = 75, - .baseAttack = 110, - .baseDefense = 110, - .baseSpeed = 80, - .baseSpAttack = 110, - .baseSpDefense = 105, - .types = { TYPE_DRAGON, TYPE_FAIRY}, - .catchRate = 45, - .expYield = 207, - .evYield_SpDefense = 2, + .baseHP = 70, + .baseAttack = 65, + .baseDefense = 60, + .baseSpeed = 65, + .baseSpAttack = 125, + .baseSpDefense = 90, + .types = { TYPE_ICE, TYPE_BUG}, + .catchRate = 75, + .expYield = 166, + .evYield_SpAttack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_ERRATIC, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_PIXILATE, ABILITY_PIXILATE}, - .bodyColor = BODY_COLOR_BLUE, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_SHIELD_DUST, ABILITY_NONE, ABILITY_ICE_SCALES}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, - - [SPECIES_BANETTE_MEGA] = + .speciesName = _("Frosmoth"), + .cryId = CRY_FROSMOTH, + .natDexNum = NATIONAL_DEX_FROSMOTH, + .categoryName = _("Frost Moth"), + .height = 13, + .weight = 420, + .description = COMPOUND_STRING( + "Icy scales fall from its wings like snow\n" + "as it flies over fields and mountains.\n" + "The temperature of its wings is less than\n" + "-290 degrees Fahrenheit."), + .pokemonScale = 272, + .pokemonOffset = 3, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Frosmoth, 64, 56), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Frosmoth, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 7, + BACK_PIC(Frosmoth, 64, 64), + .backPicYOffset = 3, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Frosmoth), + ICON(Frosmoth, 0), + .footprint = gMonFootprint_Frosmoth, + LEARNSETS(Frosmoth), + }, +#endif //P_FAMILY_SNOM + +#if P_FAMILY_STONJOURNER + [SPECIES_STONJOURNER] = { - .baseHP = 64, - .baseAttack = 165, - .baseDefense = 75, - .baseSpeed = 75, - .baseSpAttack = 93, - .baseSpDefense = 83, - .types = { TYPE_GHOST, TYPE_GHOST}, - .catchRate = 45, - .expYield = 194, - .evYield_Attack = 2, - .itemRare = ITEM_SPELL_TAG, + .baseHP = 100, + .baseAttack = 125, + .baseDefense = 135, + .baseSpeed = 70, + .baseSpAttack = 20, + .baseSpDefense = 20, + .types = { TYPE_ROCK, TYPE_ROCK}, + .catchRate = 60, + .expYield = 165, + .evYield_Defense = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, - .friendship = 35, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_PRANKSTER, ABILITY_PRANKSTER}, - .bodyColor = BODY_COLOR_BLACK, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_POWER_SPOT, ABILITY_NONE}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, + .speciesName = _("Stonjourne"), + .cryId = CRY_STONJOURNER, + .natDexNum = NATIONAL_DEX_STONJOURNER, + .categoryName = _("Big Rock"), + .height = 25, + .weight = 5200, + .description = COMPOUND_STRING( + "It stands in grasslands, watching the\n" + "sun's descent from zenith to horizon. This\n" + "Pokémon has a talent for delivering\n" + "dynamic kicks."), + .pokemonScale = 257, + .pokemonOffset = 10, + .trainerScale = 423, + .trainerOffset = 8, + FRONT_PIC(Stonjourner, 48, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Stonjourner, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Stonjourner, 64, 56), + .backPicYOffset = 5, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Stonjourner), + ICON(Stonjourner, 2), + .footprint = gMonFootprint_Stonjourner, + LEARNSETS(Stonjourner), + }, +#endif //P_FAMILY_STONJOURNER + +#if P_FAMILY_EISCUE +#define EISCUE_MISC_INFO \ + .types = { TYPE_ICE, TYPE_ICE}, \ + .catchRate = 60, \ + .expYield = 165, \ + .evYield_Defense = 2, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 25, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, \ + .abilities = {ABILITY_ICE_FACE, ABILITY_NONE}, \ + .bodyColor = BODY_COLOR_BLUE, \ + .noFlip = FALSE, \ + .speciesName = _("Eiscue"), \ + .natDexNum = NATIONAL_DEX_EISCUE, \ + .categoryName = _("Penguin"), \ + .height = 14, \ + .weight = 890, \ + .pokemonScale = 265, \ + .pokemonOffset = 2, \ + .trainerScale = 262, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Eiscue, \ + LEARNSETS(Eiscue), \ + .formSpeciesIdTable = sEiscueFormSpeciesIdTable, \ + .formChangeTable = sEiscueFormChangeTable + + [SPECIES_EISCUE_ICE_FACE] = + { + EISCUE_MISC_INFO, + .baseHP = 75, + .baseAttack = 80, + .baseDefense = 110, + .baseSpeed = 50, + .baseSpAttack = 65, + .baseSpDefense = 90, + .cryId = CRY_EISCUE_ICE_FACE, + .description = COMPOUND_STRING( + "It drifted in on the flow of ocean waters\n" + "from a frigid place. It keeps its head\n" + "iced constantly to make sure it stays\n" + "nice and cold."), + FRONT_PIC(EiscueIceFace, 40, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Eiscue, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(EiscueIceFace, 48, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(EiscueIceFace), + ICON(EiscueIceFace, 0), }, - [SPECIES_ABSOL_MEGA] = + [SPECIES_EISCUE_NOICE_FACE] = + { + EISCUE_MISC_INFO, + .baseHP = 75, + .baseAttack = 80, + .baseDefense = 70, + .baseSpeed = 130, + .baseSpAttack = 65, + .baseSpDefense = 50, + .cryId = CRY_EISCUE_NOICE_FACE, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(EiscueNoiceFace, 40, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Eiscue, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(EiscueNoiceFace, 40, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(EiscueNoiceFace), + ICON(EiscueNoiceFace, 0), + }, +#endif //P_FAMILY_EISCUE + +#if P_FAMILY_INDEEDEE +#define INDEEDEE_MISC_INFO \ + .types = { TYPE_PSYCHIC, TYPE_NORMAL}, \ + .catchRate = 30, \ + .expYield = 166, \ + .eggCycles = 40, \ + .friendship = 140, \ + .growthRate = GROWTH_FAST, \ + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, \ + .bodyColor = BODY_COLOR_PURPLE, \ + .noFlip = FALSE, \ + .speciesName = _("Indeedee"), \ + .natDexNum = NATIONAL_DEX_INDEEDEE, \ + .categoryName = _("Emotion"), \ + .height = 9, \ + .weight = 280, \ + .pokemonScale = 338, \ + .pokemonOffset = 8, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Indeedee, \ + .formSpeciesIdTable = sIndeedeeFormSpeciesIdTable + + [SPECIES_INDEEDEE_MALE] = + { + INDEEDEE_MISC_INFO, + .baseHP = 60, + .baseAttack = 65, + .baseDefense = 55, + .baseSpeed = 95, + .baseSpAttack = 105, + .baseSpDefense = 95, + .evYield_SpAttack = 2, + .genderRatio = MON_MALE, + .abilities = {ABILITY_INNER_FOCUS, ABILITY_SYNCHRONIZE, ABILITY_PSYCHIC_SURGE}, + .cryId = CRY_INDEEDEE_MALE, + .description = COMPOUND_STRING( + "It uses the horns on its head to sense the\n" + "emotions of others. Males will act as\n" + "valets for those they serve, looking\n" + "after their every need."), + FRONT_PIC(IndeedeeMale, 40, 56), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Indeedee, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(IndeedeeMale, 56, 56), + .backPicYOffset = 7, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(IndeedeeMale), + ICON(IndeedeeMale, 2), + LEARNSETS(IndeedeeMale), + }, + + [SPECIES_INDEEDEE_FEMALE] = + { + INDEEDEE_MISC_INFO, + .baseHP = 70, + .baseAttack = 55, + .baseDefense = 65, + .baseSpeed = 85, + .baseSpAttack = 95, + .baseSpDefense = 105, + .evYield_SpDefense = 2, + .genderRatio = MON_FEMALE, + .abilities = {ABILITY_OWN_TEMPO, ABILITY_SYNCHRONIZE, ABILITY_PSYCHIC_SURGE}, + .cryId = CRY_INDEEDEE_FEMALE, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(IndeedeeFemale, 40, 48), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Indeedee, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(IndeedeeFemale, 64, 56), + .backPicYOffset = 7, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(IndeedeeFemale), + ICON(IndeedeeFemale, 2), + LEARNSETS(IndeedeeFemale), + }, +#endif //P_FAMILY_INDEEDEE + +#if P_FAMILY_MORPEKO +#define MORPEKO_MISC_INFO \ + .baseHP = 58, \ + .baseAttack = 95, \ + .baseDefense = 58, \ + .baseSpeed = 97, \ + .baseSpAttack = 70, \ + .baseSpDefense = 58, \ + .types = { TYPE_ELECTRIC, TYPE_DARK}, \ + .catchRate = 180, \ + .expYield = 153, \ + .evYield_Speed = 2, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 10, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_FAIRY}, \ + .abilities = {ABILITY_HUNGER_SWITCH, ABILITY_NONE},\ + .bodyColor = BODY_COLOR_YELLOW, \ + .noFlip = FALSE, \ + .speciesName = _("Morpeko"), \ + .natDexNum = NATIONAL_DEX_MORPEKO, \ + .categoryName = _("Two-Sided"), \ + .height = 3, \ + .weight = 30, \ + .pokemonScale = 530, \ + .pokemonOffset = 13, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Morpeko, \ + LEARNSETS(Morpeko), \ + .formSpeciesIdTable = sMorpekoFormSpeciesIdTable, \ + .formChangeTable = sMorpekoFormChangeTable + + [SPECIES_MORPEKO_FULL_BELLY] = + { + MORPEKO_MISC_INFO, + .cryId = CRY_MORPEKO_FULL_BELLY, + .description = COMPOUND_STRING( + "As it eats the seeds stored up in its\n" + "pocket-like pouches, this Pokémon is not\n" + "just satisfying its constant hunger. It's\n" + "also generating electricity."), + FRONT_PIC(MorpekoFullBelly, 32, 40), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Morpeko, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(MorpekoFullBelly, 48, 56), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(MorpekoFullBelly), + ICON(MorpekoFullBelly, 2), + }, + + [SPECIES_MORPEKO_HANGRY] = + { + MORPEKO_MISC_INFO, + .cryId = CRY_MORPEKO_HANGRY, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(MorpekoHangry, 32, 40), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Morpeko, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(MorpekoHangry, 48, 56), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(MorpekoHangry), + ICON(MorpekoHangry, 2), + }, +#endif //P_FAMILY_MORPEKO + +#if P_FAMILY_CUFANT + [SPECIES_CUFANT] = { - .baseHP = 65, - .baseAttack = 150, - .baseDefense = 60, - .baseSpeed = 115, - .baseSpAttack = 115, - .baseSpDefense = 60, - .types = { TYPE_DARK, TYPE_DARK}, - .catchRate = 30, - .expYield = 198, - .evYield_Attack = 2, + .baseHP = 72, + .baseAttack = 80, + .baseDefense = 49, + .baseSpeed = 40, + .baseSpAttack = 40, + .baseSpDefense = 49, + .types = { TYPE_STEEL, TYPE_STEEL}, + .catchRate = 190, + .expYield = 66, + .evYield_Attack = 1, + .itemRare = ITEM_LAGGING_TAIL, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 25, - .friendship = 35, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_MAGIC_BOUNCE, ABILITY_MAGIC_BOUNCE}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = TRUE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, - - [SPECIES_GLALIE_MEGA] = - { - .baseHP = 80, - .baseAttack = 120, - .baseDefense = 80, - .baseSpeed = 100, - .baseSpAttack = 120, - .baseSpDefense = 80, - .types = { TYPE_ICE, TYPE_ICE}, - .catchRate = 75, - .expYield = 203, - .evYield_HP = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_REFRIGERATE, ABILITY_REFRIGERATE}, - .bodyColor = BODY_COLOR_GRAY, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_SHEER_FORCE, ABILITY_NONE, ABILITY_HEAVY_METAL}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, + .speciesName = _("Cufant"), + .cryId = CRY_CUFANT, + .natDexNum = NATIONAL_DEX_CUFANT, + .categoryName = _("Copperderm"), + .height = 12, + .weight = 1000, + .description = COMPOUND_STRING( + "It digs up the ground with its trunk.\n" + "It's also very strong, being able to\n" + "carry loads of over five tons without any\n" + "problem at all."), + .pokemonScale = 282, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Cufant, 56, 48), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Cufant, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Cufant, 64, 48), + .backPicYOffset = 11, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Cufant), + ICON(Cufant, 0), + .footprint = gMonFootprint_Cufant, + LEARNSETS(Cufant), + .evolutions = EVOLUTION({EVO_LEVEL, 34, SPECIES_COPPERAJAH}), }, - [SPECIES_SALAMENCE_MEGA] = +#define COPPERAJAH_MISC_INFO \ + .baseHP = 122, \ + .baseAttack = 130, \ + .baseDefense = 69, \ + .baseSpeed = 30, \ + .baseSpAttack = 80, \ + .baseSpDefense = 69, \ + .types = {TYPE_STEEL, TYPE_STEEL}, \ + .catchRate = 90, \ + .expYield = 175, \ + .evYield_Attack = 2, \ + .itemRare = ITEM_LAGGING_TAIL, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 25, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = {EGG_GROUP_FIELD, EGG_GROUP_MINERAL}, \ + .abilities = {ABILITY_SHEER_FORCE, ABILITY_NONE, ABILITY_HEAVY_METAL}, \ + .bodyColor = BODY_COLOR_GREEN, \ + .noFlip = FALSE, \ + .speciesName = _("Copperajah"), \ + .cryId = CRY_COPPERAJAH, \ + .natDexNum = NATIONAL_DEX_COPPERAJAH, \ + .categoryName = _("Copperderm"), \ + .footprint = gMonFootprint_Copperajah, \ + LEARNSETS(Copperajah), \ + .formChangeTable = sCopperajahFormChangeTable + + [SPECIES_COPPERAJAH] = { - .baseHP = 95, - .baseAttack = 145, - .baseDefense = 130, - .baseSpeed = 120, - .baseSpAttack = 120, - .baseSpDefense = 90, - .types = { TYPE_DRAGON, TYPE_FLYING}, + COPPERAJAH_MISC_INFO, + .height = 30, + .weight = 6500, + .description = COMPOUND_STRING( + "They came over from another region long\n" + "ago and worked together with humans.\n" + "Their green skin is resistant to water."), + .pokemonScale = 275, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Copperajah, 64, 56), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Copperajah, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Copperajah, 64, 32), + .backPicYOffset = 16, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Copperajah), + ICON(Copperajah, 0), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_COPPERAJAH_GIGANTAMAX] = + { + COPPERAJAH_MISC_INFO, + .height = 230, + .weight = 0, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 275, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(CopperajahGigantamax, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_CopperajahGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(CopperajahGigantamax, 64, 64), + .backPicYOffset = 7, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(CopperajahGigantamax), + ICON(CopperajahGigantamax, 0), + .formSpeciesIdTable = sCopperajahFormSpeciesIdTable, + + .isGigantamax = TRUE, + }, +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_CUFANT + +#if P_FAMILY_DRACOZOLT + [SPECIES_DRACOZOLT] = + { + .baseHP = 90, + .baseAttack = 100, + .baseDefense = 90, + .baseSpeed = 75, + .baseSpAttack = 80, + .baseSpDefense = 70, + .types = { TYPE_ELECTRIC, TYPE_DRAGON}, .catchRate = 45, - .expYield = 315, - .evYield_Attack = 3, - .itemRare = ITEM_DRAGON_FANG, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 40, - .friendship = 35, + .expYield = 177, + .evYield_Attack = 2, + .genderRatio = MON_GENDERLESS, + .eggCycles = 35, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_AERILATE, ABILITY_AERILATE}, - .bodyColor = BODY_COLOR_BLUE, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_VOLT_ABSORB, ABILITY_HUSTLE, ABILITY_SAND_RUSH}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, - - [SPECIES_METAGROSS_MEGA] = + .speciesName = _("Dracozolt"), + .cryId = CRY_DRACOZOLT, + .natDexNum = NATIONAL_DEX_DRACOZOLT, + .categoryName = _("Fossil"), + .height = 18, + .weight = 1900, + .description = COMPOUND_STRING( + "In ancient times, it was unbeatable thanks\n" + "to its powerful lower body, but it went\n" + "extinct anyway after it depleted all its\n" + "plant-based food sources."), + .pokemonScale = 267, + .pokemonOffset = 2, + .trainerScale = 286, + .trainerOffset = 1, + FRONT_PIC(Dracozolt, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Dracozolt, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Dracozolt, 64, 56), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Dracozolt), + ICON(Dracozolt, 1), + .footprint = gMonFootprint_Dracozolt, + LEARNSETS(Dracozolt), + }, +#endif //P_FAMILY_DRACOZOLT + +#if P_FAMILY_ARCTOZOLT + [SPECIES_ARCTOZOLT] = { - .baseHP = 80, - .baseAttack = 145, - .baseDefense = 150, - .baseSpeed = 110, - .baseSpAttack = 105, - .baseSpDefense = 110, - .types = { TYPE_STEEL, TYPE_PSYCHIC}, - .catchRate = 3, - .expYield = 315, - .evYield_Defense = 3, - .itemRare = ITEM_METAL_COAT, + .baseHP = 90, + .baseAttack = 100, + .baseDefense = 90, + .baseSpeed = 55, + .baseSpAttack = 90, + .baseSpDefense = 80, + .types = { TYPE_ELECTRIC, TYPE_ICE}, + .catchRate = 45, + .expYield = 177, + .evYield_Attack = 2, .genderRatio = MON_GENDERLESS, - .eggCycles = 40, - .friendship = 35, + .eggCycles = 35, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_TOUGH_CLAWS, ABILITY_TOUGH_CLAWS}, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_VOLT_ABSORB, ABILITY_STATIC, ABILITY_SLUSH_RUSH}, .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, - - [SPECIES_LATIAS_MEGA] = + .speciesName = _("Arctozolt"), + .cryId = CRY_ARCTOZOLT, + .natDexNum = NATIONAL_DEX_ARCTOZOLT, + .categoryName = _("Fossil"), + .height = 23, + .weight = 1500, + .description = COMPOUND_STRING( + "The shaking of its freezing upper half is\n" + "what generates its electricity. It has a\n" + "hard time walking around."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 342, + .trainerOffset = 7, + FRONT_PIC(Arctozolt, 56, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Arctozolt, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Arctozolt, 56, 48), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Arctozolt), + ICON(Arctozolt, 2), + .footprint = gMonFootprint_Arctozolt, + LEARNSETS(Arctozolt), + }, +#endif //P_FAMILY_ARCTOZOLT + +#if P_FAMILY_DRACOVISH + [SPECIES_DRACOVISH] = { - .baseHP = 80, - .baseAttack = 100, - .baseDefense = 120, - .baseSpeed = 110, - .baseSpAttack = 140, - .baseSpDefense = 150, - .types = { TYPE_DRAGON, TYPE_PSYCHIC}, - .catchRate = 3, - .expYield = 315, - .evYield_SpDefense = 3, - .genderRatio = MON_FEMALE, - .eggCycles = 120, - .friendship = 90, + .baseHP = 90, + .baseAttack = 90, + .baseDefense = 100, + .baseSpeed = 75, + .baseSpAttack = 70, + .baseSpDefense = 80, + .types = { TYPE_WATER, TYPE_DRAGON}, + .catchRate = 45, + .expYield = 177, + .evYield_Defense = 2, + .genderRatio = MON_GENDERLESS, + .eggCycles = 35, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_LEVITATE, ABILITY_LEVITATE}, - .bodyColor = BODY_COLOR_PURPLE, + .abilities = {ABILITY_WATER_ABSORB, ABILITY_STRONG_JAW, ABILITY_SAND_RUSH}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY | SPECIES_FLAG_MEGA_EVOLUTION, - }, - - [SPECIES_LATIOS_MEGA] = + .speciesName = _("Dracovish"), + .cryId = CRY_DRACOVISH, + .natDexNum = NATIONAL_DEX_DRACOVISH, + .categoryName = _("Fossil"), + .height = 23, + .weight = 2150, + .description = COMPOUND_STRING( + "Powerful legs and jaws made it the apex\n" + "predator of its time. Its own overhunting\n" + "of its prey was what drove it to\n" + "extinction."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 342, + .trainerOffset = 7, + FRONT_PIC(Dracovish, 48, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Dracovish, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Dracovish, 64, 64), + .backPicYOffset = 2, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Dracovish), + ICON(Dracovish, 0), + .footprint = gMonFootprint_Dracovish, + LEARNSETS(Dracovish), + }, +#endif //P_FAMILY_DRACOVISH + +#if P_FAMILY_ARCTOVISH + [SPECIES_ARCTOVISH] = { - .baseHP = 80, - .baseAttack = 130, + .baseHP = 90, + .baseAttack = 90, .baseDefense = 100, - .baseSpeed = 110, - .baseSpAttack = 160, - .baseSpDefense = 120, - .types = { TYPE_DRAGON, TYPE_PSYCHIC}, - .catchRate = 3, - .expYield = 315, - .evYield_SpAttack = 3, - .genderRatio = MON_MALE, - .eggCycles = 120, - .friendship = 90, + .baseSpeed = 55, + .baseSpAttack = 80, + .baseSpDefense = 90, + .types = { TYPE_WATER, TYPE_ICE}, + .catchRate = 45, + .expYield = 177, + .evYield_Defense = 2, + .genderRatio = MON_GENDERLESS, + .eggCycles = 35, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_LEVITATE, ABILITY_LEVITATE}, - .bodyColor = BODY_COLOR_PURPLE, + .abilities = {ABILITY_WATER_ABSORB, ABILITY_ICE_BODY, ABILITY_SLUSH_RUSH}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY | SPECIES_FLAG_MEGA_EVOLUTION, - }, + .speciesName = _("Arctovish"), + .cryId = CRY_ARCTOVISH, + .natDexNum = NATIONAL_DEX_ARCTOVISH, + .categoryName = _("Fossil"), + .height = 20, + .weight = 1750, + .description = COMPOUND_STRING( + "Though it's able to capture prey by\n" + "freezing its surroundings, it has trouble\n" + "eating the prey afterward because its\n" + "mouth is on top of its head."), + .pokemonScale = 261, + .pokemonOffset = 1, + .trainerScale = 334, + .trainerOffset = 4, + FRONT_PIC(Arctovish, 64, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_Arctovish, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Arctovish, 64, 48), + .backPicYOffset = 11, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Arctovish), + ICON(Arctovish, 0), + .footprint = gMonFootprint_Arctovish, + LEARNSETS(Arctovish), + }, +#endif //P_FAMILY_ARCTOVISH + +#if P_FAMILY_DURALUDON +#define DURALUDON_MISC_INFO \ + .baseHP = 70, \ + .baseAttack = 95, \ + .baseDefense = 115, \ + .baseSpeed = 85, \ + .baseSpAttack = 120, \ + .baseSpDefense = 50, \ + .types = {TYPE_STEEL, TYPE_DRAGON}, \ + .catchRate = 45, \ + .expYield = 187, \ + .evYield_SpAttack = 2, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 30, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = {EGG_GROUP_MINERAL, EGG_GROUP_DRAGON}, \ + .abilities = {ABILITY_LIGHT_METAL, ABILITY_HEAVY_METAL, ABILITY_STALWART}, \ + .bodyColor = BODY_COLOR_WHITE, \ + .noFlip = FALSE, \ + .speciesName = _("Duraludon"), \ + .cryId = CRY_DURALUDON, \ + .natDexNum = NATIONAL_DEX_DURALUDON, \ + .categoryName = _("Alloy"), \ + .footprint = gMonFootprint_Duraludon, \ + LEARNSETS(Duraludon), \ + .formChangeTable = sDuraludonFormChangeTable -#if P_GEN_4_POKEMON == TRUE - [SPECIES_LOPUNNY_MEGA] = + [SPECIES_DURALUDON] = { - .baseHP = 65, - .baseAttack = 136, - .baseDefense = 94, - .baseSpeed = 135, - .baseSpAttack = 54, - .baseSpDefense = 96, - .types = { TYPE_NORMAL, TYPE_FIGHTING}, - .catchRate = 60, - .expYield = 203, - .evYield_Speed = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = 140, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_SCRAPPY, ABILITY_SCRAPPY}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, - - [SPECIES_GARCHOMP_MEGA] = + DURALUDON_MISC_INFO, + .height = 18, + .weight = 400, + .description = COMPOUND_STRING( + "Its body resembles polished metal, and\n" + "it's both lightweight and strong. The only\n" + "drawback is that it rusts easily."), + .pokemonScale = 267, + .pokemonOffset = 2, + .trainerScale = 286, + .trainerOffset = 1, + FRONT_PIC(Duraludon, 56, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Duraludon, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Duraludon, 64, 64), + .backPicYOffset = 1, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Duraludon), + ICON(Duraludon, 0), + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_DURALUDON_GIGANTAMAX] = { - .baseHP = 108, - .baseAttack = 170, - .baseDefense = 115, - .baseSpeed = 92, - .baseSpAttack = 120, - .baseSpDefense = 95, - .types = { TYPE_DRAGON, TYPE_GROUND}, + DURALUDON_MISC_INFO, + .height = 430, + .weight = 0, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 267, + .pokemonOffset = 2, + .trainerScale = 286, + .trainerOffset = 1, + FRONT_PIC(DuraludonGigantamax, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_DuraludonGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(DuraludonGigantamax, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(DuraludonGigantamax), + ICON(DuraludonGigantamax, 0), + .formSpeciesIdTable = sDuraludonFormSpeciesIdTable, + .isGigantamax = TRUE, + }, +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_DURALUDON + +#if P_FAMILY_DREEPY + [SPECIES_DREEPY] = + { + .baseHP = 28, + .baseAttack = 60, + .baseDefense = 30, + .baseSpeed = 82, + .baseSpAttack = 40, + .baseSpDefense = 30, + .types = { TYPE_DRAGON, TYPE_GHOST}, .catchRate = 45, - .expYield = 315, - .evYield_Attack = 3, + .expYield = 54, + .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_SAND_FORCE, ABILITY_SAND_FORCE}, - .bodyColor = BODY_COLOR_BLUE, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_CLEAR_BODY, ABILITY_INFILTRATOR, ABILITY_CURSED_BODY}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, + .speciesName = _("Dreepy"), + .cryId = CRY_DREEPY, + .natDexNum = NATIONAL_DEX_DREEPY, + .categoryName = _("Lingering"), + .height = 5, + .weight = 20, + .description = COMPOUND_STRING( + "After being reborn as a ghost Pokémon,\n" + "Dreepy wanders the areas it used to\n" + "inhabit back when it was alive in\n" + "prehistoric seas."), + .pokemonScale = 432, + .pokemonOffset = 13, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Dreepy, 48, 40), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Dreepy, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 5, + BACK_PIC(Dreepy, 56, 40), + .backPicYOffset = 15, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Dreepy), + ICON(Dreepy, 0), + .footprint = gMonFootprint_Dreepy, + LEARNSETS(Dreepy), + .evolutions = EVOLUTION({EVO_LEVEL, 50, SPECIES_DRAKLOAK}), }, - [SPECIES_LUCARIO_MEGA] = + [SPECIES_DRAKLOAK] = { - .baseHP = 70, - .baseAttack = 145, - .baseDefense = 88, - .baseSpeed = 112, - .baseSpAttack = 140, - .baseSpDefense = 70, - .types = { TYPE_FIGHTING, TYPE_STEEL}, + .baseHP = 68, + .baseAttack = 80, + .baseDefense = 50, + .baseSpeed = 102, + .baseSpAttack = 60, + .baseSpDefense = 50, + .types = { TYPE_DRAGON, TYPE_GHOST}, .catchRate = 45, - .expYield = 219, - .evYield_Attack = 1, - .evYield_SpAttack = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 25, + .expYield = 144, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_ADAPTABILITY, ABILITY_ADAPTABILITY}, - .bodyColor = BODY_COLOR_BLUE, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_CLEAR_BODY, ABILITY_INFILTRATOR, ABILITY_CURSED_BODY}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, + .speciesName = _("Drakloak"), + .cryId = CRY_DRAKLOAK, + .natDexNum = NATIONAL_DEX_DRAKLOAK, + .categoryName = _("Caretaker"), + .height = 14, + .weight = 110, + .description = COMPOUND_STRING( + "It's capable of flying faster than 120 mph.\n" + "It battles alongside Dreepy and dotes\n" + "on them until they successfully evolve."), + .pokemonScale = 265, + .pokemonOffset = 2, + .trainerScale = 262, + .trainerOffset = 0, + FRONT_PIC(Drakloak, 64, 56), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Drakloak, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 5, + BACK_PIC(Drakloak, 64, 48), + .backPicYOffset = 11, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Drakloak), + ICON(Drakloak, 0), + .footprint = gMonFootprint_Drakloak, + LEARNSETS(Drakloak), + .evolutions = EVOLUTION({EVO_LEVEL, 60, SPECIES_DRAGAPULT}), }, - [SPECIES_ABOMASNOW_MEGA] = + [SPECIES_DRAGAPULT] = { - .baseHP = 90, - .baseAttack = 132, - .baseDefense = 105, - .baseSpeed = 30, - .baseSpAttack = 132, - .baseSpDefense = 105, - .types = { TYPE_GRASS, TYPE_ICE}, - .catchRate = 60, - .expYield = 208, - .evYield_Attack = 1, - .evYield_SpAttack = 1, - .itemRare = ITEM_NEVER_MELT_ICE, + .baseHP = 88, + .baseAttack = 120, + .baseDefense = 75, + .baseSpeed = 142, + .baseSpAttack = 100, + .baseSpDefense = 75, + .types = { TYPE_DRAGON, TYPE_GHOST}, + .catchRate = 45, + .expYield = 300, + .evYield_Speed = 3, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_GRASS}, - .abilities = {ABILITY_SNOW_WARNING, ABILITY_SNOW_WARNING}, - .bodyColor = BODY_COLOR_WHITE, + .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_DRAGON}, + .abilities = {ABILITY_CLEAR_BODY, ABILITY_INFILTRATOR, ABILITY_CURSED_BODY}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, + .speciesName = _("Dragapult"), + .cryId = CRY_DRAGAPULT, + .natDexNum = NATIONAL_DEX_DRAGAPULT, + .categoryName = _("Stealth"), + .height = 30, + .weight = 500, + .description = COMPOUND_STRING( + "When it isn't battling, it keeps Dreepy\n" + "in the holes on its horns. Once a fight\n" + "starts, it launches the Dreepy like\n" + "supersonic missiles."), + .pokemonScale = 275, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Dragapult, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Dragapult, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 3, + BACK_PIC(Dragapult, 64, 56), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Dragapult), + ICON(Dragapult, 0), + .footprint = gMonFootprint_Dragapult, + LEARNSETS(Dragapult), + }, +#endif //P_FAMILY_DREEPY + +#if P_FAMILY_ZACIAN +#define ZACIAN_MISC_INFO \ + .catchRate = 10, \ + .evYield_Speed = 3, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ + .abilities = {ABILITY_INTREPID_SWORD, ABILITY_NONE}, \ + .bodyColor = BODY_COLOR_BLUE, \ + .noFlip = FALSE, \ + .isLegendary = TRUE, \ + .speciesName = _("Zacian"), \ + .natDexNum = NATIONAL_DEX_ZACIAN, \ + .categoryName = _("Warrior"), \ + .height = 28, \ + .pokemonScale = 275, \ + .pokemonOffset = 7, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Zacian, \ + LEARNSETS(Zacian), \ + .formSpeciesIdTable = sZacianFormSpeciesIdTable, \ + .formChangeTable = sZacianFormChangeTable + + [SPECIES_ZACIAN_HERO_OF_MANY_BATTLES] = + { + ZACIAN_MISC_INFO, + .baseHP = 92, + .baseAttack = P_UPDATED_STATS >= GEN_9 ? 120 : 130, + .baseDefense = 115, + .baseSpeed = 138, + .baseSpAttack = 80, + .baseSpDefense = 115, + .types = { TYPE_FAIRY, TYPE_FAIRY}, + .expYield = 335, + .cryId = CRY_ZACIAN_HERO_OF_MANY_BATTLES, + .weight = 1100, + .description = COMPOUND_STRING( + "Known as a legendary hero, this Pokémon\n" + "absorbs metal particles, transforming them\n" + "into a weapon it uses to battle."), + FRONT_PIC(ZacianHeroOfManyBattles, 64, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_Zacian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(ZacianHeroOfManyBattles, 64, 56), + .backPicYOffset = 6, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(ZacianHeroOfManyBattles), + ICON(ZacianHeroOfManyBattles, 2), }, - [SPECIES_GALLADE_MEGA] = + [SPECIES_ZACIAN_CROWNED_SWORD] = { - .baseHP = 68, - .baseAttack = 165, - .baseDefense = 95, - .baseSpeed = 110, - .baseSpAttack = 65, + ZACIAN_MISC_INFO, + .baseHP = 92, + .baseAttack = P_UPDATED_STATS >= GEN_9 ? 150 : 170, + .baseDefense = 115, + .baseSpeed = 148, + .baseSpAttack = 80, .baseSpDefense = 115, - .types = { TYPE_PSYCHIC, TYPE_FIGHTING}, - .catchRate = 45, - .expYield = 278, - .evYield_Attack = 3, - .genderRatio = MON_MALE, - .eggCycles = 20, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_INNER_FOCUS, ABILITY_INNER_FOCUS}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, + .types = { TYPE_FAIRY, TYPE_STEEL}, + .expYield = 360, + .cryId = CRY_ZACIAN_CROWNED_SWORD, + .weight = 3550, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(ZacianCrownedSword, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Zacian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(ZacianCrownedSword, 64, 56), + .backPicYOffset = 6, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(ZacianCrownedSword), + ICON(ZacianCrownedSword, 2), + }, +#endif //P_FAMILY_ZACIAN + +#if P_FAMILY_ZAMAZENTA +#define ZAMAZENTA_MISC_INFO \ + .catchRate = 10, \ + .evYield_Speed = 3, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ + .abilities = {ABILITY_DAUNTLESS_SHIELD, ABILITY_NONE}, \ + .bodyColor = BODY_COLOR_RED, \ + .noFlip = FALSE, \ + .isLegendary = TRUE, \ + .speciesName = _("Zamazenta"), \ + .natDexNum = NATIONAL_DEX_ZAMAZENTA, \ + .categoryName = _("Warrior"), \ + .height = 29, \ + .pokemonScale = 275, \ + .pokemonOffset = 7, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .footprint = gMonFootprint_Zamazenta, \ + LEARNSETS(Zamazenta), \ + .formSpeciesIdTable = sZamazentaFormSpeciesIdTable, \ + .formChangeTable = sZamazentaFormChangeTable + + [SPECIES_ZAMAZENTA_HERO_OF_MANY_BATTLES] = + { + ZAMAZENTA_MISC_INFO, + .baseHP = 92, + .baseAttack = P_UPDATED_STATS >= GEN_9 ? 120 : 130, + .baseDefense = 115, + .baseSpeed = 138, + .baseSpAttack = 80, + .baseSpDefense = 115, + .types = { TYPE_FIGHTING, TYPE_FIGHTING}, + .expYield = 335, + .cryId = CRY_ZAMAZENTA_HERO_OF_MANY_BATTLES, + .weight = 2100, + .description = COMPOUND_STRING( + "In times past, it worked together with a\n" + "king of the people to save the Galar\n" + "region. It absorbs metal that it then\n" + "uses in battle."), + FRONT_PIC(ZamazentaHeroOfManyBattles, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Zamazenta, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(ZamazentaHeroOfManyBattles, 64, 56), + .backPicYOffset = 5, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(ZamazentaHeroOfManyBattles), + ICON(ZamazentaHeroOfManyBattles, 2), }, -#endif -#if P_GEN_5_POKEMON == TRUE - [SPECIES_AUDINO_MEGA] = + [SPECIES_ZAMAZENTA_CROWNED_SHIELD] = { - .baseHP = 103, - .baseAttack = 60, - .baseDefense = 126, - .baseSpeed = 50, + ZAMAZENTA_MISC_INFO, + .baseHP = 92, + .baseAttack = P_UPDATED_STATS >= GEN_9 ? 120 : 130, + .baseDefense = P_UPDATED_STATS >= GEN_9 ? 140 : 145, + .baseSpeed = 128, .baseSpAttack = 80, - .baseSpDefense = 126, - .types = { TYPE_NORMAL, TYPE_FAIRY}, - .catchRate = 255, - .expYield = 425, - .evYield_HP = 2, - .itemCommon = ITEM_ORAN_BERRY, - .itemRare = ITEM_SITRUS_BERRY, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .baseSpDefense = P_UPDATED_STATS >= GEN_9 ? 140 : 145, + .types = { TYPE_FIGHTING, TYPE_STEEL}, + .expYield = 360, + .cryId = CRY_ZAMAZENTA_CROWNED_SHIELD, + .weight = 7850, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(ZamazentaCrownedShield, 56, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Zamazenta, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(ZamazentaCrownedShield, 64, 64), + .backPicYOffset = 3, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(ZamazentaCrownedShield), + ICON(ZamazentaCrownedShield, 2), + }, +#endif //P_FAMILY_ZAMAZENTA + +#if P_FAMILY_ETERNATUS +#define ETERNATUS_MISC_INFO \ + .types = { TYPE_POISON, TYPE_DRAGON}, \ + .catchRate = 255, \ + .evYield_HP = 3, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ + .abilities = {ABILITY_PRESSURE, ABILITY_NONE}, \ + .bodyColor = BODY_COLOR_PURPLE, \ + .noFlip = FALSE, \ + .isLegendary = TRUE, \ + .speciesName = _("Eternatus"), \ + .natDexNum = NATIONAL_DEX_ETERNATUS, \ + .categoryName = _("Gigantic"), \ + .footprint = gMonFootprint_Eternatus, \ + LEARNSETS(Eternatus), \ + .formSpeciesIdTable = sEternatusFormSpeciesIdTable + + [SPECIES_ETERNATUS] = + { + ETERNATUS_MISC_INFO, + .baseHP = 140, + .baseAttack = 85, + .baseDefense = 95, + .baseSpeed = 130, + .baseSpAttack = 145, + .baseSpDefense = 95, + .expYield = 345, + .cryId = CRY_ETERNATUS, + .height = 200, + .weight = 9500, + .pokemonScale = 230, + .pokemonOffset = 0, + .trainerScale = 4852, + .trainerOffset = 20, + .description = COMPOUND_STRING( + "The core on its chest absorbs energy\n" + "emanating from the lands of the Galar\n" + "region. This energy is what allows\n" + "Eternatus to stay active."), + FRONT_PIC(Eternatus, 64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Eternatus, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 4, + BACK_PIC(Eternatus, 64, 64), + .backPicYOffset = 2, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Eternatus), + ICON(Eternatus, 0), + }, + + [SPECIES_ETERNATUS_ETERNAMAX] = + { + ETERNATUS_MISC_INFO, + .baseHP = 255, + .baseAttack = 115, + .baseDefense = 250, + .baseSpeed = 130, + .baseSpAttack = 125, + .baseSpDefense = 250, + .expYield = 563, + .cryId = CRY_ETERNATUS_ETERNAMAX, + .height = 1000, + .weight = 0, + .pokemonScale = 230, + .pokemonOffset = 0, + .trainerScale = 4852, + .trainerOffset = 20, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(EternatusEternamax, 64, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_Eternatus, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 13, + BACK_PIC(EternatusEternamax, 64, 56), + .backPicYOffset = 7, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(EternatusEternamax), + ICON(EternatusEternamax, 0), + }, +#endif //P_FAMILY_ETERNATUS + +#if P_FAMILY_KUBFU + [SPECIES_KUBFU] = + { + .baseHP = 60, + .baseAttack = 90, + .baseDefense = 60, + .baseSpeed = 72, + .baseSpAttack = 53, + .baseSpDefense = 50, + .types = { TYPE_FIGHTING, TYPE_FIGHTING}, + .catchRate = 3, + .expYield = 77, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 120, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_HEALER, ABILITY_HEALER}, - .bodyColor = BODY_COLOR_WHITE, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_INNER_FOCUS, ABILITY_NONE}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, - .flags = SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif + .isLegendary = TRUE, + .speciesName = _("Kubfu"), + .cryId = CRY_KUBFU, + .natDexNum = NATIONAL_DEX_KUBFU, + .categoryName = _("Wushu"), + .height = 6, + .weight = 120, + .description = COMPOUND_STRING( + "Kubfu trains hard to perfect its moves.\n" + "The moves it masters will determine which\n" + "form it takes when it evolves."), + .pokemonScale = 422, + .pokemonOffset = 12, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Kubfu, 40, 48), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Kubfu, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Kubfu, 56, 48), + .backPicYOffset = 9, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Kubfu), + ICON(Kubfu, 1), + .footprint = gMonFootprint_Kubfu, + LEARNSETS(Kubfu), + .evolutions = EVOLUTION({EVO_DARK_SCROLL, 0, SPECIES_URSHIFU_SINGLE_STRIKE_STYLE}, + {EVO_ITEM, ITEM_SCROLL_OF_DARKNESS, SPECIES_URSHIFU_SINGLE_STRIKE_STYLE}, + {EVO_WATER_SCROLL, 0, SPECIES_URSHIFU_RAPID_STRIKE_STYLE}, + {EVO_ITEM, ITEM_SCROLL_OF_WATERS, SPECIES_URSHIFU_RAPID_STRIKE_STYLE}), + }, + +#define URSHIFU_MISC_INFO(style) \ + .baseHP = 100, \ + .baseAttack = 130, \ + .baseDefense = 100, \ + .baseSpeed = 97, \ + .baseSpAttack = 63, \ + .baseSpDefense = 60, \ + .catchRate = 3, \ + .expYield = 275, \ + .evYield_Attack = 3, \ + .genderRatio = PERCENT_FEMALE(12.5), \ + .eggCycles = 120, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = {EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ + .abilities = {ABILITY_UNSEEN_FIST, ABILITY_NONE}, \ + .bodyColor = BODY_COLOR_GRAY, \ + .noFlip = FALSE, \ + .isLegendary = TRUE, \ + .speciesName = _("Urshifu"), \ + .natDexNum = NATIONAL_DEX_URSHIFU, \ + .categoryName = _("Wushu"), \ + .footprint = gMonFootprint_Urshifu, \ + .formSpeciesIdTable = sUrshifuFormSpeciesIdTable -#if P_GEN_6_POKEMON == TRUE - [SPECIES_DIANCIE_MEGA] = +#define URSHIFU_SINGLE_STRIKE_STYLE_MISC_INFO \ + .types = {TYPE_FIGHTING, TYPE_DARK}, \ + .cryId = CRY_URSHIFU_SINGLE_STRIKE_STYLE, \ + LEARNSETS(UrshifuSingleStrikeStyle), \ + URSHIFU_MISC_INFO(SingleStrike) + + [SPECIES_URSHIFU_SINGLE_STRIKE_STYLE] = + { + URSHIFU_SINGLE_STRIKE_STYLE_MISC_INFO, + .height = 19, + .weight = 1050, + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 326, + .trainerOffset = 4, + .description = COMPOUND_STRING( + "This form of Urshifu is a strong believer\n" + "in the one-hit KO. Its strategy is to leap\n" + "in close to foes and land a devastating\n" + "blow with a hardened fist."), + FRONT_PIC(UrshifuSingleStrikeStyle, 56, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Urshifu, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(UrshifuSingleStrikeStyle, 64, 56), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(UrshifuSingleStrikeStyle), + ICON(Urshifu, 2), + .formChangeTable = sUrshifuSingleStrikeFormChangeTable, + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_URSHIFU_SINGLE_STRIKE_STYLE_GIGANTAMAX] = + { + URSHIFU_SINGLE_STRIKE_STYLE_MISC_INFO, + .height = 290, + .weight = 0, + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 326, + .trainerOffset = 4, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(UrshifuSingleStrikeStyleGigantamax, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_UrshifuSingleStrikeStyleGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(UrshifuSingleStrikeStyleGigantamax, 64, 64), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(UrshifuSingleStrikeStyleGigantamax), + ICON(UrshifuSingleStrikeStyleGigantamax, 0), + .isGigantamax = TRUE, + }, +#endif //P_GIGANTAMAX_FORMS + +#define URSHIFU_RAPID_STRIKE_STYLE_MISC_INFO \ + .types = {TYPE_FIGHTING, TYPE_WATER}, \ + .cryId = CRY_URSHIFU_RAPID_STRIKE_STYLE, \ + LEARNSETS(UrshifuRapidStrikeStyle), \ + URSHIFU_MISC_INFO(RapidStrike) + + [SPECIES_URSHIFU_RAPID_STRIKE_STYLE] = + { + URSHIFU_RAPID_STRIKE_STYLE_MISC_INFO, + .height = 19, + .weight = 1050, + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 326, + .trainerOffset = 4, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(UrshifuRapidStrikeStyle, 56, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Urshifu, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(UrshifuRapidStrikeStyle, 64, 56), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(UrshifuRapidStrikeStyle), + ICON(Urshifu, 2), + .formChangeTable = sUrshifuRapidStrikeFormChangeTable, + }, + +#if P_GIGANTAMAX_FORMS + [SPECIES_URSHIFU_RAPID_STRIKE_STYLE_GIGANTAMAX] = + { + URSHIFU_RAPID_STRIKE_STYLE_MISC_INFO, + .height = 260, + .weight = 0, + .pokemonScale = 256, + .pokemonOffset = 1, + .trainerScale = 326, + .trainerOffset = 4, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(UrshifuRapidStrikeStyleGigantamax, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_UrshifuRapidStrikeStyleGigantamax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(UrshifuRapidStrikeStyleGigantamax, 64, 64), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(UrshifuRapidStrikeStyleGigantamax), + ICON(UrshifuRapidStrikeStyleGigantamax, 0), + .isGigantamax = TRUE, + }, +#endif //P_GIGANTAMAX_FORMS +#endif //P_FAMILY_KUBFU + + +#if P_FAMILY_ZARUDE +#define ZARUDE_MISC_INFO \ + .baseHP = 105, \ + .baseAttack = 120, \ + .baseDefense = 105, \ + .baseSpeed = 105, \ + .baseSpAttack = 70, \ + .baseSpDefense = 95, \ + .types = { TYPE_DARK, TYPE_GRASS}, \ + .catchRate = 3, \ + .expYield = 300, \ + .evYield_Attack = 3, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 120, \ + .friendship = 0, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ + .abilities = {ABILITY_LEAF_GUARD, ABILITY_NONE}, \ + .bodyColor = BODY_COLOR_GREEN, \ + .noFlip = FALSE, \ + .isMythical = TRUE, \ + .speciesName = _("Zarude"), \ + .cryId = CRY_ZARUDE, \ + .natDexNum = NATIONAL_DEX_ZARUDE, \ + .categoryName = _("Rogue Monkey"), \ + .height = 18, \ + .weight = 700, \ + .pokemonScale = 267, \ + .pokemonOffset = 2, \ + .trainerScale = 286, \ + .trainerOffset = 1, \ + .footprint = gMonFootprint_Zarude, \ + LEARNSETS(Zarude), \ + .formSpeciesIdTable = sZarudeFormSpeciesIdTable + + [SPECIES_ZARUDE] = + { + ZARUDE_MISC_INFO, + .description = COMPOUND_STRING( + "Within dense forests, this Pokémon lives\n" + "in a pack with others of its kind. It's\n" + "incredibly aggressive, and the other\n" + "Pokémon of the forest fear it."), + FRONT_PIC(Zarude, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Zarude, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Zarude, 64, 56), + .backPicYOffset = 5, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Zarude), + ICON(Zarude, 1), + }, + [SPECIES_ZARUDE_DADA] = + { + ZARUDE_MISC_INFO, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(ZarudeDada, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Zarude, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(ZarudeDada, 64, 56), + .backPicYOffset = 5, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(ZarudeDada), + ICON(ZarudeDada, 1), + }, +#endif //P_FAMILY_ZARUDE + +#if P_FAMILY_REGIELEKI + [SPECIES_REGIELEKI] = { - .baseHP = 50, - .baseAttack = 160, - .baseDefense = 110, - .baseSpeed = 110, - .baseSpAttack = 160, - .baseSpDefense = 110, - .types = { TYPE_ROCK, TYPE_FAIRY}, + .baseHP = 80, + .baseAttack = 100, + .baseDefense = 50, + .baseSpeed = 200, + .baseSpAttack = 100, + .baseSpDefense = 50, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC}, .catchRate = 3, - .expYield = 315, - .evYield_Defense = 1, - .evYield_SpDefense = 2, + .expYield = 290, + .evYield_Speed = 3, .genderRatio = MON_GENDERLESS, - .eggCycles = 25, - .friendship = STANDARD_FRIENDSHIP, + .eggCycles = 120, + .friendship = 35, .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_MAGIC_BOUNCE, ABILITY_MAGIC_BOUNCE}, - .bodyColor = BODY_COLOR_PINK, + .abilities = {ABILITY_TRANSISTOR, ABILITY_NONE}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, - .flags = SPECIES_FLAG_MYTHICAL | SPECIES_FLAG_MEGA_EVOLUTION, - }, -#endif - - [SPECIES_RAYQUAZA_MEGA] = + .speciesName = _("Regieleki"), + .cryId = CRY_REGIELEKI, + .natDexNum = NATIONAL_DEX_REGIELEKI, + .categoryName = _("Electron"), + .height = 12, + .weight = 1450, + .description = COMPOUND_STRING( + "This Pokémon is a cluster of electrical\n" + "energy. It's said that removing the rings\n" + "on Regieleki's body will unleash the\n" + "Pokémon's latent power."), + .pokemonScale = 282, + .pokemonOffset = 4, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Regieleki, 64, 56), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Regieleki, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 8, + BACK_PIC(Regieleki, 64, 48), + .backPicYOffset = 9, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Regieleki), + ICON(Regieleki, 0), + .footprint = gMonFootprint_Regieleki, + LEARNSETS(Regieleki), + .isLegendary = TRUE, + }, +#endif //P_FAMILY_REGIELEKI + +#if P_FAMILY_REGIDRAGO + [SPECIES_REGIDRAGO] = { - .baseHP = 105, - .baseAttack = 180, - .baseDefense = 100, - .baseSpeed = 115, - .baseSpAttack = 180, - .baseSpDefense = 100, - .types = { TYPE_DRAGON, TYPE_FLYING}, - .catchRate = 45, - .expYield = 306, - .evYield_Attack = 2, - .evYield_SpAttack = 1, + .baseHP = 200, + .baseAttack = 100, + .baseDefense = 50, + .baseSpeed = 80, + .baseSpAttack = 100, + .baseSpDefense = 50, + .types = { TYPE_DRAGON, TYPE_DRAGON}, + .catchRate = 3, + .expYield = 290, + .evYield_HP = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, - .friendship = 0, + .friendship = 35, .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_DELTA_STREAM, ABILITY_DELTA_STREAM}, + .abilities = {ABILITY_DRAGONS_MAW, ABILITY_NONE}, .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY | SPECIES_FLAG_MEGA_EVOLUTION, - }, - - [SPECIES_KYOGRE_PRIMAL] = + .isLegendary = TRUE, + .speciesName = _("Regidrago"), + .cryId = CRY_REGIDRAGO, + .natDexNum = NATIONAL_DEX_REGIDRAGO, + .categoryName = _("Dragon Orb"), + .height = 21, + .weight = 2000, + .description = COMPOUND_STRING( + "An academic theory proposes that\n" + "Regidrago's arms were once the head of an\n" + "ancient dragon Pokémon. The theory\n" + "remains unproven."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 365, + .trainerOffset = 7, + FRONT_PIC(Regidrago, 64, 64), + .frontPicYOffset = 1, + .frontAnimFrames = sAnims_Regidrago, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 5, + BACK_PIC(Regidrago, 64, 56), + .backPicYOffset = 7, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Regidrago), + ICON(Regidrago, 0), + .footprint = gMonFootprint_Regidrago, + LEARNSETS(Regidrago), + }, +#endif //P_FAMILY_REGIDRAGO + +#if P_FAMILY_GLASTRIER + [SPECIES_GLASTRIER] = { .baseHP = 100, - .baseAttack = 150, - .baseDefense = 90, - .baseSpeed = 90, - .baseSpAttack = 180, - .baseSpDefense = 160, - .types = { TYPE_WATER, TYPE_WATER}, + .baseAttack = 145, + .baseDefense = 130, + .baseSpeed = 30, + .baseSpAttack = 65, + .baseSpDefense = 110, + .types = { TYPE_ICE, TYPE_ICE}, .catchRate = 3, - .expYield = 302, - .evYield_SpAttack = 3, + .expYield = 290, + .evYield_Attack = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, - .friendship = 0, + .friendship = 35, .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_PRIMORDIAL_SEA, ABILITY_PRIMORDIAL_SEA}, - .bodyColor = BODY_COLOR_BLUE, + .abilities = {ABILITY_CHILLING_NEIGH, ABILITY_NONE}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY | SPECIES_FLAG_PRIMAL_REVERSION, - }, - - [SPECIES_GROUDON_PRIMAL] = + .isLegendary = TRUE, + .speciesName = _("Glastrier"), + .cryId = CRY_GLASTRIER, + .natDexNum = NATIONAL_DEX_GLASTRIER, + .categoryName = _("Wild Horse"), + .height = 22, + .weight = 8000, + .description = COMPOUND_STRING( + "Glastrier emits intense cold from its\n" + "hooves. It's also a belligerent Pokémon--\n" + "anything it wants, it takes by force."), + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 348, + .trainerOffset = 6, + FRONT_PIC(Glastrier, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Glastrier, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Glastrier, 56, 64), + .backPicYOffset = 5, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Glastrier), + ICON(Glastrier, 0), + .footprint = gMonFootprint_Glastrier, + LEARNSETS(Glastrier), + }, +#endif //P_FAMILY_GLASTRIER + +#if P_FAMILY_SPECTRIER + [SPECIES_SPECTRIER] = { .baseHP = 100, - .baseAttack = 180, - .baseDefense = 160, - .baseSpeed = 90, - .baseSpAttack = 150, - .baseSpDefense = 90, - .types = { TYPE_GROUND, TYPE_FIRE}, + .baseAttack = 65, + .baseDefense = 60, + .baseSpeed = 130, + .baseSpAttack = 145, + .baseSpDefense = 80, + .types = { TYPE_GHOST, TYPE_GHOST}, .catchRate = 3, - .expYield = 302, - .evYield_Attack = 3, + .expYield = 290, + .evYield_SpAttack = 3, .genderRatio = MON_GENDERLESS, .eggCycles = 120, - .friendship = 0, + .friendship = 35, .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_DESOLATE_LAND, ABILITY_DESOLATE_LAND}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY | SPECIES_FLAG_PRIMAL_REVERSION, - }, - - [SPECIES_RATTATA_ALOLAN] = - { - .baseHP = 30, - .baseAttack = 56, - .baseDefense = 35, - .baseSpeed = 72, - .baseSpAttack = 25, - .baseSpDefense = 35, - .types = { TYPE_DARK, TYPE_NORMAL}, - .catchRate = 255, - .expYield = 51, - .evYield_Speed = 1, - .itemRare = ITEM_PECHA_BERRY, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_GLUTTONY, ABILITY_HUSTLE, ABILITY_THICK_FAT}, + .abilities = {ABILITY_GRIM_NEIGH, ABILITY_NONE}, .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, - .flags = SPECIES_FLAG_ALOLAN_FORM, - }, - - [SPECIES_RATICATE_ALOLAN] = + .isLegendary = TRUE, + .speciesName = _("Spectrier"), + .cryId = CRY_SPECTRIER, + .natDexNum = NATIONAL_DEX_SPECTRIER, + .categoryName = _("Swift Horse"), + .height = 20, + .weight = 445, + .description = COMPOUND_STRING( + "It probes its surroundings with all its\n" + "senses save one--it doesn't use its sense\n" + "of sight. Spectrier's kicks are said to\n" + "separate soul from body."), + .pokemonScale = 261, + .pokemonOffset = 1, + .trainerScale = 334, + .trainerOffset = 4, + FRONT_PIC(Spectrier, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Spectrier, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Spectrier, 56, 56), + .backPicYOffset = 5, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Spectrier), + ICON(Spectrier, 0), + .footprint = gMonFootprint_Spectrier, + LEARNSETS(Spectrier), + }, +#endif //P_FAMILY_SPECTRIER + +#define CALYREX_MISC_INFO \ + .noFlip = FALSE, \ + .speciesName = _("Calyrex"), \ + .natDexNum = NATIONAL_DEX_CALYREX, \ + .footprint = gMonFootprint_Calyrex, \ + .formSpeciesIdTable = sCalyrexFormSpeciesIdTable, \ + .isLegendary = TRUE + +#if P_FAMILY_CALYREX + [SPECIES_CALYREX] = { - .baseHP = 75, - .baseAttack = 71, - .baseDefense = 70, - .baseSpeed = 77, - .baseSpAttack = 40, + CALYREX_MISC_INFO, + .baseHP = 100, + .baseAttack = 80, + .baseDefense = 80, + .baseSpeed = 80, + .baseSpAttack = 80, .baseSpDefense = 80, - .types = { TYPE_DARK, TYPE_NORMAL}, - .catchRate = 127, - .expYield = 145, - .evYield_Speed = 2, - .itemRare = ITEM_PECHA_BERRY, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_GLUTTONY, ABILITY_HUSTLE, ABILITY_THICK_FAT}, - .bodyColor = BODY_COLOR_BLACK, - .noFlip = FALSE, - .flags = SPECIES_FLAG_ALOLAN_FORM, - }, - - [SPECIES_RAICHU_ALOLAN] = - { - .baseHP = 60, - .baseAttack = 85, - .baseDefense = 50, - .baseSpeed = 110, - .baseSpAttack = 95, - .baseSpDefense = 85, - .types = { TYPE_ELECTRIC, TYPE_PSYCHIC}, - .catchRate = 75, - .expYield = 218, - .evYield_Speed = 3, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 10, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_SURGE_SURFER, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - .flags = SPECIES_FLAG_ALOLAN_FORM, - }, - - [SPECIES_SANDSHREW_ALOLAN] = - { - .baseHP = 50, - .baseAttack = 75, - .baseDefense = 90, - .baseSpeed = 40, - .baseSpAttack = 10, - .baseSpDefense = 35, - .types = { TYPE_ICE, TYPE_STEEL}, - .catchRate = 255, - .expYield = 60, - .evYield_Defense = 1, - .itemRare = ITEM_GRIP_CLAW, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SNOW_CLOAK, ABILITY_NONE, ABILITY_SLUSH_RUSH}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - .flags = SPECIES_FLAG_ALOLAN_FORM, - }, - - [SPECIES_SANDSLASH_ALOLAN] = - { - .baseHP = 75, - .baseAttack = 100, - .baseDefense = 120, - .baseSpeed = 65, - .baseSpAttack = 25, - .baseSpDefense = 65, - .types = { TYPE_ICE, TYPE_STEEL}, - .catchRate = 90, - .expYield = 158, - .evYield_Defense = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SNOW_CLOAK, ABILITY_NONE, ABILITY_SLUSH_RUSH}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - .flags = SPECIES_FLAG_ALOLAN_FORM, - }, - - [SPECIES_VULPIX_ALOLAN] = + .types = { TYPE_PSYCHIC, TYPE_GRASS}, + .catchRate = 3, + .expYield = 250, + .evYield_HP = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 100, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_UNNERVE, ABILITY_NONE}, + .bodyColor = BODY_COLOR_GREEN, + .cryId = CRY_CALYREX, + .categoryName = _("King"), + .height = 11, + .weight = 77, + .description = COMPOUND_STRING( + "Calyrex is a merciful Pokémon, capable of\n" + "providing healing and blessings. It\n" + "reigned over the Galar region in times\n" + "of yore."), + .pokemonScale = 320, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Calyrex, 48, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Calyrex, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Calyrex, 56, 48), + .backPicYOffset = 10, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Calyrex), + ICON(Calyrex, 0), + LEARNSETS(Calyrex), + }, + +#if P_FUSION_FORMS + [SPECIES_CALYREX_ICE_RIDER] = { - .baseHP = 38, - .baseAttack = 41, - .baseDefense = 40, - .baseSpeed = 65, - .baseSpAttack = 50, - .baseSpDefense = 65, - .types = { TYPE_ICE, TYPE_ICE}, - .catchRate = 190, - .expYield = 60, - .evYield_Speed = 1, - .itemRare = ITEM_SNOWBALL, - .genderRatio = PERCENT_FEMALE(75), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SNOW_CLOAK, ABILITY_NONE, ABILITY_SNOW_WARNING}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - .flags = SPECIES_FLAG_ALOLAN_FORM, + CALYREX_MISC_INFO, + .baseHP = 100, + .baseAttack = 165, + .baseDefense = 150, + .baseSpeed = 50, + .baseSpAttack = 85, + .baseSpDefense = 130, + .types = { TYPE_PSYCHIC, TYPE_ICE}, + .catchRate = 3, + .expYield = 340, + .evYield_Attack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 100, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_AS_ONE_ICE_RIDER, ABILITY_NONE}, + .bodyColor = BODY_COLOR_WHITE, + .cryId = CRY_CALYREX_ICE_RIDER, + .categoryName = _("High King"), + .height = 24, + .weight = 8091, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 320, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(CalyrexIceRider, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Calyrex, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(CalyrexIceRider, 64, 64), + .backPicYOffset = 7, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(CalyrexIceRider), + ICON(CalyrexIceRider, 0), + LEARNSETS(CalyrexIceRider), + .cannotBeTraded = TRUE, }, - [SPECIES_NINETALES_ALOLAN] = + [SPECIES_CALYREX_SHADOW_RIDER] = { - .baseHP = 73, - .baseAttack = 67, - .baseDefense = 75, - .baseSpeed = 109, - .baseSpAttack = 81, + CALYREX_MISC_INFO, + .baseHP = 100, + .baseAttack = 85, + .baseDefense = 80, + .baseSpeed = 150, + .baseSpAttack = 165, .baseSpDefense = 100, - .types = { TYPE_ICE, TYPE_FAIRY}, - .catchRate = 75, - .expYield = 177, - .evYield_Speed = 1, - .evYield_SpDefense = 1, - .genderRatio = PERCENT_FEMALE(75), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SNOW_CLOAK, ABILITY_NONE, ABILITY_SNOW_WARNING}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = FALSE, - .flags = SPECIES_FLAG_ALOLAN_FORM, - }, + .types = { TYPE_PSYCHIC, TYPE_GHOST}, + .catchRate = 3, + .expYield = 340, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 100, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_AS_ONE_SHADOW_RIDER, ABILITY_NONE}, + .bodyColor = BODY_COLOR_BLACK, + .cryId = CRY_CALYREX_SHADOW_RIDER, + .categoryName = _("High King"), + .height = 24, + .weight = 536, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 320, + .pokemonOffset = 7, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(CalyrexShadowRider, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Calyrex, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(CalyrexShadowRider, 64, 56), + .backPicYOffset = 7, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(CalyrexShadowRider), + ICON(CalyrexShadowRider, 0), + LEARNSETS(CalyrexShadowRider), + .cannotBeTraded = TRUE, + }, +#endif //P_FUSION_FORMS +#endif //P_FAMILY_CALYREX + +#if P_FAMILY_ENAMORUS +#define ENAMORUS_MISC_INFO \ + .types = { TYPE_FAIRY, TYPE_FLYING}, \ + .catchRate = 3, \ + .expYield = 116, \ + .evYield_SpAttack = 3, \ + .genderRatio = MON_FEMALE, \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ + .bodyColor = BODY_COLOR_PINK, \ + .noFlip = FALSE, \ + .isLegendary = TRUE, \ + .speciesName = _("Enamorus"), \ + .natDexNum = NATIONAL_DEX_ENAMORUS, \ + .categoryName = _("Love-Hate"), \ + .height = 16, \ + .weight = 480, \ + .pokemonScale = 259, \ + .pokemonOffset = 1, \ + .trainerScale = 296, \ + .trainerOffset = 1, \ + LEARNSETS(Enamorus), \ + .formSpeciesIdTable = sEnamorusFormSpeciesIdTable - [SPECIES_DIGLETT_ALOLAN] = + [SPECIES_ENAMORUS_INCARNATE] = { - .baseHP = 10, - .baseAttack = 55, - .baseDefense = 30, - .baseSpeed = 90, - .baseSpAttack = 35, - .baseSpDefense = 45, - .types = { TYPE_GROUND, TYPE_STEEL}, - .catchRate = 255, - .expYield = 53, - .evYield_Speed = 1, - .itemRare = ITEM_SOFT_SAND, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SAND_VEIL, ABILITY_TANGLING_HAIR, ABILITY_SAND_FORCE}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - .flags = SPECIES_FLAG_ALOLAN_FORM, + ENAMORUS_MISC_INFO, + .baseHP = 74, + .baseAttack = 115, + .baseDefense = 70, + .baseSpeed = 106, + .baseSpAttack = 135, + .baseSpDefense = 80, + .abilities = {ABILITY_CUTE_CHARM, ABILITY_NONE, ABILITY_CONTRARY}, + .cryId = CRY_ENAMORUS_INCARNATE, + .description = COMPOUND_STRING( + "Its arrival brings an end to the winter.\n" + "According to legend, this Pokémon's love\n" + "gives rise to the budding of fresh life\n" + "across the land."), + FRONT_PIC(EnamorusIncarnate, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_EnamorusIncarnate, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(EnamorusIncarnate, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(EnamorusIncarnate), + ICON(EnamorusIncarnate, 1), + //.footprint = gMonFootprint_EnamorusIncarnate, }, - [SPECIES_DUGTRIO_ALOLAN] = + [SPECIES_ENAMORUS_THERIAN] = { - .baseHP = 35, - .baseAttack = 100, - .baseDefense = 60, - .baseSpeed = 110, - .baseSpAttack = 50, - .baseSpDefense = 70, - .types = { TYPE_GROUND, TYPE_STEEL}, - .catchRate = 50, - .expYield = 149, - .evYield_Speed = 2, - .itemRare = ITEM_SOFT_SAND, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SAND_VEIL, ABILITY_TANGLING_HAIR, ABILITY_SAND_FORCE}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = TRUE, - .flags = SPECIES_FLAG_ALOLAN_FORM, - }, - - [SPECIES_MEOWTH_ALOLAN] = + ENAMORUS_MISC_INFO, + .baseHP = 74, + .baseAttack = 115, + .baseDefense = 110, + .baseSpeed = 46, + .baseSpAttack = 135, + .baseSpDefense = 100, + .abilities = {ABILITY_OVERCOAT, ABILITY_NONE, ABILITY_NONE}, + .cryId = CRY_ENAMORUS_THERIAN, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(EnamorusTherian, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_EnamorusTherian, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(EnamorusTherian, 64, 64), + .backPicYOffset = 2, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(EnamorusTherian), + ICON(EnamorusTherian, 1), + //.footprint = gMonFootprint_Enamorus, + }, +#endif //P_FAMILY_ENAMORUS + +#if P_FAMILY_SPRIGATITO + [SPECIES_SPRIGATITO] = { .baseHP = 40, - .baseAttack = 35, - .baseDefense = 35, - .baseSpeed = 90, - .baseSpAttack = 50, - .baseSpDefense = 40, - .types = { TYPE_DARK, TYPE_DARK}, - .catchRate = 255, - .expYield = 58, - .evYield_Speed = 1, - .itemRare = ITEM_QUICK_CLAW, - .genderRatio = PERCENT_FEMALE(50), + .baseAttack = 61, + .baseDefense = 54, + .baseSpeed = 65, + .baseSpAttack = 45, + .baseSpDefense = 45, + .types = { TYPE_GRASS, TYPE_GRASS }, + .catchRate = 45, + .expYield = 62, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_PICKUP, ABILITY_TECHNICIAN, ABILITY_RATTLED}, - .bodyColor = BODY_COLOR_GRAY, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS}, + .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_PROTEAN}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - .flags = SPECIES_FLAG_ALOLAN_FORM, - }, - - [SPECIES_PERSIAN_ALOLAN] = + .speciesName = _("Sprigatito"), + .cryId = CRY_SPRIGATITO, + .natDexNum = NATIONAL_DEX_SPRIGATITO, + .categoryName = _("Grass Cat"), + .height = 4, + .weight = 41, + .description = COMPOUND_STRING( + "The sweet scent its body gives off\n" + "mesmerizes those around it. The\n" + "scent grows stronger when this\n" + "Pokémon is in the sun."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Sprigatito, 64, 64), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Sprigatito, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Sprigatito, 64, 64), + .backPicYOffset = 7, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Sprigatito), + ICON(Sprigatito, 4), + //.footprint = gMonFootprint_Sprigatito, + LEARNSETS(Sprigatito), + .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_FLORAGATO}), + }, + + [SPECIES_FLORAGATO] = { - .baseHP = 65, - .baseAttack = 60, - .baseDefense = 60, - .baseSpeed = 115, - .baseSpAttack = 75, - .baseSpDefense = 65, - .types = { TYPE_DARK, TYPE_DARK}, - .catchRate = 90, - .expYield = 154, - .evYield_Speed = 2, - .itemRare = ITEM_QUICK_CLAW, - .genderRatio = PERCENT_FEMALE(50), + .baseHP = 61, + .baseAttack = 80, + .baseDefense = 63, + .baseSpeed = 83, + .baseSpAttack = 60, + .baseSpDefense = 63, + .types = { TYPE_GRASS, TYPE_GRASS }, + .catchRate = 45, + .expYield = 144, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_FUR_COAT, ABILITY_TECHNICIAN, ABILITY_RATTLED}, - .bodyColor = BODY_COLOR_GRAY, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS}, + .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_PROTEAN}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - .flags = SPECIES_FLAG_ALOLAN_FORM, - }, - - [SPECIES_GEODUDE_ALOLAN] = + .speciesName = _("Floragato"), + .cryId = CRY_FLORAGATO, + .natDexNum = NATIONAL_DEX_FLORAGATO, + .categoryName = _("Grass Cat"), + .height = 9, + .weight = 122, + .description = COMPOUND_STRING( + "Floragato deftly wields the vine\n" + "hidden beneath its long fur, slamming\n" + "the hard flower bud against its\n" + "opponents."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Floragato, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Floragato, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Floragato, 64, 64), + .backPicYOffset = 6, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Floragato), + ICON(Floragato, 1), + //.footprint = gMonFootprint_Floragato, + LEARNSETS(Floragato), + .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_MEOWSCARADA}), + }, + + [SPECIES_MEOWSCARADA] = { - .baseHP = 40, - .baseAttack = 80, - .baseDefense = 100, - .baseSpeed = 20, - .baseSpAttack = 30, - .baseSpDefense = 30, - .types = { TYPE_ROCK, TYPE_ELECTRIC}, - .catchRate = 255, - .expYield = 60, - .evYield_Defense = 1, - .itemRare = ITEM_CELL_BATTERY, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .baseHP = 76, + .baseAttack = 110, + .baseDefense = 70, + .baseSpeed = 123, + .baseSpAttack = 81, + .baseSpDefense = 70, + .types = { TYPE_GRASS, TYPE_DARK }, + .catchRate = 45, + .expYield = 265, + .evYield_Speed = 3, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_MAGNET_PULL, ABILITY_STURDY, ABILITY_GALVANIZE}, - .bodyColor = BODY_COLOR_BROWN, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_GRASS}, + .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_PROTEAN}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - .flags = SPECIES_FLAG_ALOLAN_FORM, - }, - - [SPECIES_GRAVELER_ALOLAN] = + .speciesName = _("Meowscarad"), + .cryId = CRY_MEOWSCARADA, + .natDexNum = NATIONAL_DEX_MEOWSCARADA, + .categoryName = _("Magician"), + .height = 15, + .weight = 312, + .description = COMPOUND_STRING( + "This Pokémon uses the reflective\n" + "fur lining its cape to camouflage the\n" + "stem of its flower, creating the\n" + "illusion that the flower is floating."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Meowscarada, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Meowscarada, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Meowscarada, 64, 64), + .backPicYOffset = 2, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Meowscarada), + ICON(Meowscarada, 1), + //.footprint = gMonFootprint_Meowscarada, + LEARNSETS(Meowscarada), + }, +#endif //P_FAMILY_SPRIGATITO + +#if P_FAMILY_FUECOCO + [SPECIES_FUECOCO] = { - .baseHP = 55, - .baseAttack = 95, - .baseDefense = 115, - .baseSpeed = 35, - .baseSpAttack = 45, - .baseSpDefense = 45, - .types = { TYPE_ROCK, TYPE_ELECTRIC}, - .catchRate = 120, - .expYield = 137, - .evYield_Defense = 2, - .itemRare = ITEM_CELL_BATTERY, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .baseHP = 67, + .baseAttack = 45, + .baseDefense = 59, + .baseSpeed = 36, + .baseSpAttack = 63, + .baseSpDefense = 40, + .types = { TYPE_FIRE, TYPE_FIRE }, + .catchRate = 45, + .expYield = 62, + .evYield_HP = 1, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_MAGNET_PULL, ABILITY_STURDY, ABILITY_GALVANIZE}, - .bodyColor = BODY_COLOR_BROWN, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_UNAWARE}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, - .flags = SPECIES_FLAG_ALOLAN_FORM, - }, - - [SPECIES_GOLEM_ALOLAN] = + .speciesName = _("Fuecoco"), + .cryId = CRY_FUECOCO, + .natDexNum = NATIONAL_DEX_FUECOCO, + .categoryName = _("Fire Croc"), + .height = 4, + .weight = 98, + .description = COMPOUND_STRING( + "Its flame sac is small, so energy is\n" + "always leaking out. This energy is\n" + "released from the dent atop\n" + "Fuecoco's head and flickers to and fro."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Fuecoco, 64, 64), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Fuecoco, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Fuecoco, 64, 64), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Fuecoco), + ICON(Fuecoco, 0), + //.footprint = gMonFootprint_Fuecoco, + LEARNSETS(Fuecoco), + .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_CROCALOR}), + }, + + [SPECIES_CROCALOR] = { - .baseHP = 80, - .baseAttack = 120, - .baseDefense = 130, - .baseSpeed = 45, - .baseSpAttack = 55, - .baseSpDefense = 65, - .types = { TYPE_ROCK, TYPE_ELECTRIC}, - .catchRate = 45, - .expYield = 223, - .evYield_Defense = 3, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .baseHP = 81, + .baseAttack = 55, + .baseDefense = 78, + .baseSpeed = 49, + .baseSpAttack = 90, + .baseSpDefense = 58, + .types = { TYPE_FIRE, TYPE_FIRE }, + .catchRate = 45, + .expYield = 144, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(12.5), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_MAGNET_PULL, ABILITY_STURDY, ABILITY_GALVANIZE}, - .bodyColor = BODY_COLOR_BROWN, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_UNAWARE}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, - .flags = SPECIES_FLAG_ALOLAN_FORM, - }, - - [SPECIES_GRIMER_ALOLAN] = + .speciesName = _("Crocalor"), + .cryId = CRY_CROCALOR, + .natDexNum = NATIONAL_DEX_CROCALOR, + .categoryName = _("Fire Croc"), + .height = 10, + .weight = 307, + .description = COMPOUND_STRING( + "The combination of Crocalor's fire\n" + "energy and overflowing vitality has\n" + "caused an egg-shaped fireball to\n" + "appear on the Pokémon's head."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Crocalor, 64, 64), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Crocalor, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Crocalor, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Crocalor), + ICON(Crocalor, 0), + //.footprint = gMonFootprint_Crocalor, + LEARNSETS(Crocalor), + .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_SKELEDIRGE}), + }, + + [SPECIES_SKELEDIRGE] = { - .baseHP = 80, - .baseAttack = 80, - .baseDefense = 50, - .baseSpeed = 25, - .baseSpAttack = 40, - .baseSpDefense = 50, - .types = { TYPE_POISON, TYPE_DARK}, - .catchRate = 190, - .expYield = 65, - .evYield_HP = 1, - .itemRare = ITEM_BLACK_SLUDGE, - .genderRatio = PERCENT_FEMALE(50), + .baseHP = 104, + .baseAttack = 75, + .baseDefense = 100, + .baseSpeed = 66, + .baseSpAttack = 110, + .baseSpDefense = 75, + .types = { TYPE_FIRE, TYPE_GHOST }, + .catchRate = 45, + .expYield = 265, + .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_POISON_TOUCH, ABILITY_GLUTTONY, ABILITY_POWER_OF_ALCHEMY}, - .bodyColor = BODY_COLOR_GREEN, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_UNAWARE}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, - .flags = SPECIES_FLAG_ALOLAN_FORM, - }, - - [SPECIES_MUK_ALOLAN] = + .speciesName = _("Skeledirge"), + .cryId = CRY_SKELEDIRGE, + .natDexNum = NATIONAL_DEX_SKELEDIRGE, + .categoryName = _("Singer"), + .height = 16, + .weight = 3265, + .description = COMPOUND_STRING( + "Skeledirge's gentle singing\n" + "soothes the souls of all that hear it. It\n" + "burns its enemies to a crisp with\n" + "flames of over 5,400 degrees Fahrenheit."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Skeledirge, 64, 64), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Skeledirge, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Skeledirge, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Skeledirge), + ICON(Skeledirge, 0), + //.footprint = gMonFootprint_Skeledirge, + LEARNSETS(Skeledirge), + }, +#endif //P_FAMILY_FUECOCO + +#if P_FAMILY_QUAXLY + [SPECIES_QUAXLY] = { - .baseHP = 105, - .baseAttack = 105, - .baseDefense = 75, + .baseHP = 55, + .baseAttack = 65, + .baseDefense = 45, .baseSpeed = 50, - .baseSpAttack = 65, - .baseSpDefense = 100, - .types = { TYPE_POISON, TYPE_DARK}, - .catchRate = 75, - .expYield = 175, - .evYield_HP = 1, - .evYield_Attack = 1, - .genderRatio = PERCENT_FEMALE(50), + .baseSpAttack = 50, + .baseSpDefense = 45, + .types = { TYPE_WATER, TYPE_WATER }, + .catchRate = 45, + .expYield = 62, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_POISON_TOUCH, ABILITY_GLUTTONY, ABILITY_POWER_OF_ALCHEMY}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = TRUE, - .flags = SPECIES_FLAG_ALOLAN_FORM, - }, - - [SPECIES_EXEGGUTOR_ALOLAN] = + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_WATER_1}, + .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_MOXIE}, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = FALSE, + .speciesName = _("Quaxly"), + .cryId = CRY_QUAXLY, + .natDexNum = NATIONAL_DEX_QUAXLY, + .categoryName = _("Duckling"), + .height = 5, + .weight = 61, + .description = COMPOUND_STRING( + "Its strong legs let it easily swim\n" + "around in even fast-flowing rivers.\n" + "It likes to keep things tidy and is\n" + "prone to overthinking things."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Quaxly, 64, 64), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Quaxly, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Quaxly, 64, 64), + .backPicYOffset = 7, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Quaxly), + ICON(Quaxly, 2), + //.footprint = gMonFootprint_Quaxly, + LEARNSETS(Quaxly), + .evolutions = EVOLUTION({EVO_LEVEL, 16, SPECIES_QUAXWELL}), + }, + + [SPECIES_QUAXWELL] = { - .baseHP = 95, - .baseAttack = 105, - .baseDefense = 85, - .baseSpeed = 45, - .baseSpAttack = 125, - .baseSpDefense = 75, - .types = { TYPE_GRASS, TYPE_DRAGON}, + .baseHP = 70, + .baseAttack = 85, + .baseDefense = 65, + .baseSpeed = 65, + .baseSpAttack = 65, + .baseSpDefense = 60, + .types = { TYPE_WATER, TYPE_WATER }, .catchRate = 45, - .expYield = 186, - .evYield_SpAttack = 2, - .genderRatio = PERCENT_FEMALE(50), + .expYield = 144, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_FRISK, ABILITY_NONE, ABILITY_HARVEST}, - .bodyColor = BODY_COLOR_YELLOW, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_WATER_1}, + .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_MOXIE}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - .flags = SPECIES_FLAG_ALOLAN_FORM, - }, - - [SPECIES_MAROWAK_ALOLAN] = + .speciesName = _("Quaxwell"), + .cryId = CRY_QUAXWELL, + .natDexNum = NATIONAL_DEX_QUAXWELL, + .categoryName = _("Practicing"), + .height = 12, + .weight = 215, + .description = COMPOUND_STRING( + "The hardworking Quaxwell observes\n" + "people and Pokémon from various\n" + "regions and incorporates their\n" + "movements into its own dance routines."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Quaxwell, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Quaxwell, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Quaxwell, 64, 64), + .backPicYOffset = 3, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Quaxwell), + ICON(Quaxwell, 0), + //.footprint = gMonFootprint_Quaxwell, + LEARNSETS(Quaxwell), + .evolutions = EVOLUTION({EVO_LEVEL, 36, SPECIES_QUAQUAVAL}), + }, + + [SPECIES_QUAQUAVAL] = { - .baseHP = 60, - .baseAttack = 80, - .baseDefense = 110, - .baseSpeed = 45, - .baseSpAttack = 50, - .baseSpDefense = 80, - .types = { TYPE_FIRE, TYPE_GHOST}, - .catchRate = 75, - .expYield = 149, - .evYield_Defense = 2, - .genderRatio = PERCENT_FEMALE(50), + .baseHP = 85, + .baseAttack = 120, + .baseDefense = 80, + .baseSpeed = 85, + .baseSpAttack = 85, + .baseSpDefense = 75, + .types = { TYPE_WATER, TYPE_FIGHTING }, + .catchRate = 45, + .expYield = 265, + .evYield_Attack = 3, + .genderRatio = PERCENT_FEMALE(12.5), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MONSTER}, - .abilities = {ABILITY_CURSED_BODY, ABILITY_LIGHTNING_ROD, ABILITY_ROCK_HEAD}, - .bodyColor = BODY_COLOR_PURPLE, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_WATER_1}, + .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_MOXIE}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - .flags = SPECIES_FLAG_ALOLAN_FORM, - }, - - [SPECIES_MEOWTH_GALARIAN] = + .speciesName = _("Quaquaval"), + .cryId = CRY_QUAQUAVAL, + .natDexNum = NATIONAL_DEX_QUAQUAVAL, + .categoryName = _("Dancer"), + .height = 18, + .weight = 619, + .description = COMPOUND_STRING( + "A single kick from a Quaquaval can\n" + "send a truck rolling. This Pokémon\n" + "uses its powerful legs to perform\n" + "striking dances from far-off lands."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Quaquaval, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Quaquaval, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Quaquaval, 64, 64), + .backPicYOffset = 1, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Quaquaval), + ICON(Quaquaval, 0), + //.footprint = gMonFootprint_Quaquaval, + LEARNSETS(Quaquaval), + }, +#endif //P_FAMILY_QUAXLY + +#if P_FAMILY_LECHONK + [SPECIES_LECHONK] = { - .baseHP = 50, - .baseAttack = 65, - .baseDefense = 55, - .baseSpeed = 40, - .baseSpAttack = 40, - .baseSpDefense = 40, - .types = { TYPE_STEEL, TYPE_STEEL}, + .baseHP = 54, + .baseAttack = 45, + .baseDefense = 40, + .baseSpeed = 35, + .baseSpAttack = 35, + .baseSpDefense = 45, + .types = { TYPE_NORMAL, TYPE_NORMAL }, .catchRate = 255, - .expYield = 58, - .evYield_Attack = 1, + .expYield = 51, + .evYield_HP = 1, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_PICKUP, ABILITY_TOUGH_CLAWS, ABILITY_UNNERVE}, - .bodyColor = BODY_COLOR_BROWN, + .abilities = {ABILITY_AROMA_VEIL, ABILITY_GLUTTONY, ABILITY_THICK_FAT}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, - .flags = SPECIES_FLAG_GALARIAN_FORM, - }, - - [SPECIES_PONYTA_GALARIAN] = + .speciesName = _("Lechonk"), + .cryId = CRY_LECHONK, + .natDexNum = NATIONAL_DEX_LECHONK, + .categoryName = _("Hog"), + .height = 5, + .weight = 102, + .description = COMPOUND_STRING( + "It searches for food all day. It\n" + "possesses a keen sense of smell but\n" + "doesn't use it for anything other\n" + "than foraging."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Lechonk, 64, 64), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Lechonk, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Lechonk, 64, 64), + .backPicYOffset = 11, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Lechonk), + ICON(Lechonk, 1), + //.footprint = gMonFootprint_Lechonk, + LEARNSETS(Lechonk), + .evolutions = EVOLUTION({EVO_LEVEL_MALE, 18, SPECIES_OINKOLOGNE_MALE}, + {EVO_LEVEL_FEMALE, 18, SPECIES_OINKOLOGNE_FEMALE}), + }, + +#define OINKOLOGNE_MISC_INFO \ + .types = { TYPE_NORMAL, TYPE_NORMAL }, \ + .catchRate = 100, \ + .expYield = 171, \ + .evYield_HP = 2, \ + .eggCycles = 15, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, \ + .bodyColor = BODY_COLOR_GRAY, \ + .noFlip = FALSE, \ + .speciesName = _("Oinkologne"), \ + .natDexNum = NATIONAL_DEX_OINKOLOGNE, \ + .categoryName = _("Hog"), \ + .height = 10, \ + .weight = 1200, \ + .pokemonScale = 356, \ + .pokemonOffset = 17, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .formSpeciesIdTable = sOinkologneFormSpeciesIdTable + + [SPECIES_OINKOLOGNE_MALE] = + { + OINKOLOGNE_MISC_INFO, + .baseHP = 110, + .baseAttack = 100, + .baseDefense = 75, + .baseSpeed = 65, + .baseSpAttack = 59, + .baseSpDefense = 80, + .genderRatio = PERCENT_FEMALE(0), + .abilities = {ABILITY_LINGERING_AROMA, ABILITY_GLUTTONY, ABILITY_THICK_FAT}, + .cryId = CRY_OINKOLOGNE_MALE, + .description = COMPOUND_STRING( + "Oinkologne is proud of its fine,\n" + "glossy skin. It emits a concentrated\n" + "scent from the tip of its tail."), + FRONT_PIC(OinkologneMale, 64, 64), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Oinkologne, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(OinkologneMale, 64, 64), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(OinkologneMale), + ICON(OinkologneMale, 1), + //.footprint = gMonFootprint_Oinkologne, + LEARNSETS(OinkologneMale), + + }, + + [SPECIES_OINKOLOGNE_FEMALE] = + { + OINKOLOGNE_MISC_INFO, + .baseHP = 115, + .baseAttack = 90, + .baseDefense = 70, + .baseSpeed = 65, + .baseSpAttack = 59, + .baseSpDefense = 90, + .genderRatio = PERCENT_FEMALE(100), + .abilities = {ABILITY_AROMA_VEIL, ABILITY_GLUTTONY, ABILITY_THICK_FAT}, + .cryId = CRY_OINKOLOGNE_FEMALE, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(OinkologneFemale, 64, 64), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Oinkologne, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(OinkologneFemale, 64, 64), + .backPicYOffset = 7, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(OinkologneFemale), + ICON(OinkologneFemale, 2), + //.footprint = gMonFootprint_Oinkologne, + LEARNSETS(OinkologneFemale), + }, +#endif //P_FAMILY_LECHONK + +#if P_FAMILY_TAROUNTULA + [SPECIES_TAROUNTULA] = { - .baseHP = 50, - .baseAttack = 85, - .baseDefense = 55, - .baseSpeed = 90, - .baseSpAttack = 65, - .baseSpDefense = 65, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - .catchRate = 190, - .expYield = 82, - .evYield_Speed = 1, + .baseHP = 35, + .baseAttack = 41, + .baseDefense = 45, + .baseSpeed = 20, + .baseSpAttack = 29, + .baseSpDefense = 40, + .types = { TYPE_BUG, TYPE_BUG }, + .catchRate = 255, + .expYield = 42, + .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_RUN_AWAY, ABILITY_PASTEL_VEIL, ABILITY_ANTICIPATION}, + .growthRate = GROWTH_ERRATIC, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_INSOMNIA, ABILITY_NONE, ABILITY_STAKEOUT}, .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - .flags = SPECIES_FLAG_GALARIAN_FORM, - }, - - [SPECIES_RAPIDASH_GALARIAN] = + .speciesName = _("Tarountula"), + .cryId = CRY_TAROUNTULA, + .natDexNum = NATIONAL_DEX_TAROUNTULA, + .categoryName = _("String Ball"), + .height = 3, + .weight = 40, + .description = COMPOUND_STRING( + "The thread it secretes from its\n" + "rear is as strong as wire. The secret\n" + "behind the thread's strength is the\n" + "topic of ongoing research."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Tarountula, 64, 64), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Tarountula, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Tarountula, 64, 64), + .backPicYOffset = 11, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Tarountula), + ICON(Tarountula, 1), + //.footprint = gMonFootprint_Tarountula, + LEARNSETS(Tarountula), + .evolutions = EVOLUTION({EVO_LEVEL, 15, SPECIES_SPIDOPS}), + }, + + [SPECIES_SPIDOPS] = { - .baseHP = 65, - .baseAttack = 100, - .baseDefense = 70, - .baseSpeed = 105, - .baseSpAttack = 80, - .baseSpDefense = 80, - .types = { TYPE_PSYCHIC, TYPE_FAIRY}, - .catchRate = 60, - .expYield = 175, - .evYield_Speed = 2, + .baseHP = 60, + .baseAttack = 79, + .baseDefense = 92, + .baseSpeed = 35, + .baseSpAttack = 52, + .baseSpDefense = 86, + .types = { TYPE_BUG, TYPE_BUG }, + .catchRate = 120, + .expYield = 141, + .evYield_Defense = 2, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_RUN_AWAY, ABILITY_PASTEL_VEIL, ABILITY_ANTICIPATION}, - .bodyColor = BODY_COLOR_WHITE, + .growthRate = GROWTH_ERRATIC, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_INSOMNIA, ABILITY_NONE, ABILITY_STAKEOUT}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - .flags = SPECIES_FLAG_GALARIAN_FORM, - }, - - [SPECIES_SLOWPOKE_GALARIAN] = - { - .baseHP = 90, - .baseAttack = 65, - .baseDefense = 65, - .baseSpeed = 15, - .baseSpAttack = 40, - .baseSpDefense = 40, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, + .speciesName = _("Spidops"), + .cryId = CRY_SPIDOPS, + .natDexNum = NATIONAL_DEX_SPIDOPS, + .categoryName = _("Trap"), + .height = 10, + .weight = 165, + .description = COMPOUND_STRING( + "It clings to branches and ceilings\n" + "using its threads and moves without\n" + "a sound. It takes out its prey\n" + "before the prey even notices it."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Spidops, 64, 64), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Spidops, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Spidops, 64, 64), + .backPicYOffset = 11, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Spidops), + ICON(Spidops, 1), + //.footprint = gMonFootprint_Spidops, + LEARNSETS(Spidops), + }, +#endif //P_FAMILY_TAROUNTULA + +#if P_FAMILY_NYMBLE + [SPECIES_NYMBLE] = + { + .baseHP = 33, + .baseAttack = 46, + .baseDefense = 40, + .baseSpeed = 45, + .baseSpAttack = 21, + .baseSpDefense = 25, + .types = { TYPE_BUG, TYPE_BUG }, .catchRate = 190, - .expYield = 63, - .evYield_HP = 1, + .expYield = 42, + .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, + .friendship = 20, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_GLUTTONY, ABILITY_OWN_TEMPO, ABILITY_REGENERATOR}, - .bodyColor = BODY_COLOR_PINK, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_SWARM, ABILITY_NONE, ABILITY_TINTED_LENS}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, - .flags = SPECIES_FLAG_GALARIAN_FORM, - }, - - [SPECIES_SLOWBRO_GALARIAN] = + .speciesName = _("Nymble"), + .cryId = CRY_NYMBLE, + .natDexNum = NATIONAL_DEX_NYMBLE, + .categoryName = _("Grasshopper"), + .height = 2, + .weight = 10, + .description = COMPOUND_STRING( + "It has its third set of legs folded\n" + "up. When it's in a tough spot, this\n" + "Pokémon jumps over 30 feet using the\n" + "strength of its legs."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Nymble, 64, 64), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Nymble, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Nymble, 64, 64), + .backPicYOffset = 14, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Nymble), + ICON(Nymble, 0), + //.footprint = gMonFootprint_Nymble, + LEARNSETS(Nymble), + .evolutions = EVOLUTION({EVO_LEVEL, 24, SPECIES_LOKIX}), + }, + + [SPECIES_LOKIX] = { - .baseHP = 95, - .baseAttack = 100, - .baseDefense = 95, - .baseSpeed = 30, - .baseSpAttack = 100, - .baseSpDefense = 70, - .types = { TYPE_POISON, TYPE_PSYCHIC}, - .catchRate = 75, - .expYield = 172, - .evYield_Attack = 2, + .baseHP = 71, + .baseAttack = 102, + .baseDefense = 78, + .baseSpeed = 92, + .baseSpAttack = 52, + .baseSpDefense = 55, + .types = { TYPE_BUG, TYPE_DARK }, + .catchRate = 30, + .expYield = 158, + .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = STANDARD_FRIENDSHIP, + .friendship = 0, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_QUICK_DRAW, ABILITY_OWN_TEMPO, ABILITY_REGENERATOR}, - .bodyColor = BODY_COLOR_PINK, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_SWARM, ABILITY_NONE, ABILITY_TINTED_LENS}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, - .flags = SPECIES_FLAG_GALARIAN_FORM, - }, - - [SPECIES_FARFETCHD_GALARIAN] = + .speciesName = _("Lokix"), + .cryId = CRY_LOKIX, + .natDexNum = NATIONAL_DEX_LOKIX, + .categoryName = _("Grasshopper"), + .height = 10, + .weight = 175, + .description = COMPOUND_STRING( + "When it decides to fight all out, it\n" + "stands on its previously folded\n" + "legs to enter Showdown Mode. It\n" + "neutralizes its enemies in short order."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Lokix, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Lokix, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Lokix, 64, 64), + .backPicYOffset = 7, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Lokix), + ICON(Lokix, 0), + //.footprint = gMonFootprint_Lokix, + LEARNSETS(Lokix), + }, +#endif //P_FAMILY_NYMBLE + +#if P_FAMILY_PAWMI + [SPECIES_PAWMI] = { - .baseHP = 52, - .baseAttack = 95, - .baseDefense = 55, - .baseSpeed = 55, - .baseSpAttack = 58, - .baseSpDefense = 62, - .types = { TYPE_FIGHTING, TYPE_FIGHTING}, - .catchRate = 45, - .expYield = 132, - .evYield_Attack = 1, - .itemCommon = ITEM_LEEK, + .baseHP = 45, + .baseAttack = 50, + .baseDefense = 20, + .baseSpeed = 60, + .baseSpAttack = 40, + .baseSpDefense = 25, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .catchRate = 190, + .expYield = 48, + .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FIELD}, - .abilities = {ABILITY_STEADFAST, ABILITY_NONE, ABILITY_SCRAPPY}, - .bodyColor = BODY_COLOR_BROWN, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_STATIC, ABILITY_NATURAL_CURE, ABILITY_IRON_FIST}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, - .flags = SPECIES_FLAG_GALARIAN_FORM, - }, - - [SPECIES_WEEZING_GALARIAN] = + .speciesName = _("Pawmi"), + .cryId = CRY_PAWMI, + .natDexNum = NATIONAL_DEX_PAWMI, + .categoryName = _("Mouse"), + .height = 3, + .weight = 25, + .description = COMPOUND_STRING( + "The pads of its paws are\n" + "electricity-discharging organs. Pawmi fires\n" + "electricity from its forepaws while\n" + "standing unsteadily on its hind legs."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Pawmi, 64, 64), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Pawmi, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Pawmi, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Pawmi), + ICON(Pawmi, 3), + //.footprint = gMonFootprint_Pawmi, + LEARNSETS(Pawmi), + .evolutions = EVOLUTION({EVO_LEVEL, 18, SPECIES_PAWMO}), + }, + + [SPECIES_PAWMO] = { - .baseHP = 65, - .baseAttack = 90, - .baseDefense = 120, - .baseSpeed = 60, - .baseSpAttack = 85, - .baseSpDefense = 70, - .types = { TYPE_POISON, TYPE_FAIRY}, - .catchRate = 60, - .expYield = 172, - .evYield_Defense = 2, - .itemRare = ITEM_MISTY_SEED, + .baseHP = 60, + .baseAttack = 75, + .baseDefense = 40, + .baseSpeed = 85, + .baseSpAttack = 50, + .baseSpDefense = 40, + .types = { TYPE_ELECTRIC, TYPE_FIGHTING }, + .catchRate = 80, + .expYield = 123, + .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_AMORPHOUS, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_LEVITATE, ABILITY_NEUTRALIZING_GAS, ABILITY_MISTY_SURGE}, - .bodyColor = BODY_COLOR_GRAY, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_VOLT_ABSORB, ABILITY_NATURAL_CURE, ABILITY_IRON_FIST}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, - .flags = SPECIES_FLAG_GALARIAN_FORM, - }, - - [SPECIES_MR_MIME_GALARIAN] = + .speciesName = _("Pawmo"), + .cryId = CRY_PAWMO, + .natDexNum = NATIONAL_DEX_PAWMO, + .categoryName = _("Mouse"), + .height = 4, + .weight = 65, + .description = COMPOUND_STRING( + "When its group is attacked, Pawmo\n" + "is the first to leap into battle,\n" + "defeating enemies with a fighting\n" + "technique that utilizes electric shocks."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Pawmo, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Pawmo, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Pawmo, 64, 64), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Pawmo), + ICON(Pawmo, 3), + //.footprint = gMonFootprint_Pawmo, + LEARNSETS(Pawmo), + .evolutions = EVOLUTION({EVO_NONE, 0, SPECIES_PAWMOT}), + }, + + [SPECIES_PAWMOT] = { - .baseHP = 50, - .baseAttack = 65, - .baseDefense = 65, - .baseSpeed = 100, - .baseSpAttack = 90, - .baseSpDefense = 90, - .types = { TYPE_ICE, TYPE_PSYCHIC}, + .baseHP = 70, + .baseAttack = 115, + .baseDefense = 70, + .baseSpeed = 105, + .baseSpAttack = 70, + .baseSpDefense = 60, + .types = { TYPE_ELECTRIC, TYPE_FIGHTING }, .catchRate = 45, - .expYield = 161, - .evYield_Speed = 2, + .expYield = 245, + .evYield_Attack = 3, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, + .eggCycles = 15, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, - .abilities = {ABILITY_VITAL_SPIRIT, ABILITY_SCREEN_CLEANER, ABILITY_ICE_BODY}, - .bodyColor = BODY_COLOR_WHITE, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_VOLT_ABSORB, ABILITY_NATURAL_CURE, ABILITY_IRON_FIST}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, - .flags = SPECIES_FLAG_GALARIAN_FORM, - }, - - [SPECIES_ARTICUNO_GALARIAN] = + .speciesName = _("Pawmot"), + .cryId = CRY_PAWMOT, + .natDexNum = NATIONAL_DEX_PAWMOT, + .categoryName = _("Hands-On"), + .height = 9, + .weight = 410, + .description = COMPOUND_STRING( + "This Pokémon normally is slow to\n" + "react, but once it enters battle, it\n" + "will strike down its enemies with\n" + "lightning-fast movements."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Pawmot, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Pawmot, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Pawmot, 64, 64), + .backPicYOffset = 6, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Pawmot), + ICON(Pawmot, 3), + //.footprint = gMonFootprint_Pawmot, + LEARNSETS(Pawmot), + }, +#endif //P_FAMILY_PAWMI + +#if P_FAMILY_TANDEMAUS + [SPECIES_TANDEMAUS] = { - .baseHP = 90, - .baseAttack = 85, - .baseDefense = 85, - .baseSpeed = 95, - .baseSpAttack = 125, - .baseSpDefense = 100, - .types = { TYPE_PSYCHIC, TYPE_FLYING}, - .catchRate = 3, - .expYield = 290, - .evYield_SpAttack = 3, + .baseHP = 50, + .baseAttack = 50, + .baseDefense = 45, + .baseSpeed = 75, + .baseSpAttack = 40, + .baseSpDefense = 45, + .types = { TYPE_NORMAL, TYPE_NORMAL }, + .catchRate = 150, + .expYield = 61, + .evYield_Speed = 1, .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_COMPETITIVE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_PURPLE, + .eggCycles = 10, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY}, + .abilities = {ABILITY_RUN_AWAY, ABILITY_PICKUP, ABILITY_OWN_TEMPO}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY | SPECIES_FLAG_GALARIAN_FORM, - }, - - [SPECIES_ZAPDOS_GALARIAN] = + .speciesName = _("Tandemaus"), + .cryId = CRY_TANDEMAUS, + .natDexNum = NATIONAL_DEX_TANDEMAUS, + .categoryName = _("Couple"), + .height = 3, + .weight = 18, + .description = COMPOUND_STRING( + "Exhibiting great teamwork, they\n" + "use their incisors to cut pieces out\n" + "of any material that might be useful\n" + "for a nest, then make off with them."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Tandemaus, 64, 64), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Tandemaus, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Tandemaus, 64, 64), + .backPicYOffset = 15, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Tandemaus), + ICON(Tandemaus, 0), + //.footprint = gMonFootprint_Tandemaus, + LEARNSETS(Tandemaus), + .evolutions = EVOLUTION({EVO_LEVEL_FAMILY_OF_FOUR, 25, SPECIES_MAUSHOLD_FAMILY_OF_FOUR}, + {EVO_LEVEL_FAMILY_OF_THREE, 25, SPECIES_MAUSHOLD_FAMILY_OF_THREE}), + }, + +#define MAUSHOLD_SPECIES_INFO \ + .baseHP = 74, \ + .baseAttack = 75, \ + .baseDefense = 70, \ + .baseSpeed = 111, \ + .baseSpAttack = 65, \ + .baseSpDefense = 75, \ + .types = { TYPE_NORMAL, TYPE_NORMAL }, \ + .catchRate = 75, \ + .expYield = 165, \ + .evYield_Speed = 2, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 10, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_FAST, \ + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FAIRY}, \ + .abilities = {ABILITY_FRIEND_GUARD, ABILITY_CHEEK_POUCH, ABILITY_TECHNICIAN}, \ + .bodyColor = BODY_COLOR_WHITE, \ + .noFlip = FALSE, \ + .speciesName = _("Maushold"), \ + .natDexNum = NATIONAL_DEX_MAUSHOLD, \ + .categoryName = _("Family"), \ + .height = 3, \ + .pokemonScale = 356, \ + .pokemonOffset = 17, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .frontPicYOffset = 10, \ + .frontAnimFrames = sAnims_Maushold, \ + .backPicYOffset = 15, \ + PALETTE(Maushold), \ + LEARNSETS(Maushold), \ + .formSpeciesIdTable = sMausholdFormSpeciesIdTable + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + //.backAnimId = BACK_ANIM_NONE, + //.footprint = gMonFootprint_Maushold, + + [SPECIES_MAUSHOLD_FAMILY_OF_THREE] = + { + MAUSHOLD_SPECIES_INFO, + .cryId = CRY_MAUSHOLD_FAMILY_OF_THREE, + .weight = 23, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(MausholdFamilyOfThree, 64, 64), + BACK_PIC(MausholdFamilyOfThree, 64, 64), + ICON(MausholdFamilyOfThree, 0), + }, + [SPECIES_MAUSHOLD_FAMILY_OF_FOUR] = + { + MAUSHOLD_SPECIES_INFO, + .cryId = CRY_MAUSHOLD_FAMILY_OF_FOUR, + .weight = 28, + .description = COMPOUND_STRING( + "The larger pair protects the little\n" + "ones during battles. When facing\n" + "strong opponents, the whole group\n" + "will join the fight."), + FRONT_PIC(MausholdFamilyOfFour, 64, 64), + BACK_PIC(MausholdFamilyOfFour, 64, 64), + ICON(MausholdFamilyOfFour, 0), + }, +#endif //P_FAMILY_TANDEMAUS + +#if P_FAMILY_FIDOUGH + [SPECIES_FIDOUGH] = { - .baseHP = 90, - .baseAttack = 125, - .baseDefense = 90, - .baseSpeed = 100, - .baseSpAttack = 85, - .baseSpDefense = 90, - .types = { TYPE_FIGHTING, TYPE_FLYING}, - .catchRate = 3, - .expYield = 290, - .evYield_Attack = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_DEFIANT, ABILITY_NONE}, + .baseHP = 37, + .baseAttack = 55, + .baseDefense = 70, + .baseSpeed = 65, + .baseSpAttack = 30, + .baseSpDefense = 55, + .types = { TYPE_FAIRY, TYPE_FAIRY }, + .catchRate = 190, + .expYield = 62, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_OWN_TEMPO, ABILITY_NONE, ABILITY_KLUTZ}, .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY | SPECIES_FLAG_GALARIAN_FORM, - }, - - [SPECIES_MOLTRES_GALARIAN] = + .speciesName = _("Fidough"), + .cryId = CRY_FIDOUGH, + .natDexNum = NATIONAL_DEX_FIDOUGH, + .categoryName = _("Puppy"), + .height = 3, + .weight = 109, + .description = COMPOUND_STRING( + "This Pokémon is smooth and moist\n" + "to the touch. Yeast in Fidough's\n" + "breath induces fermentation in the\n" + "Pokémon's vicinity."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Fidough, 64, 64), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_Fidough, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Fidough, 64, 64), + .backPicYOffset = 12, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Fidough), + ICON(Fidough, 1), + //.footprint = gMonFootprint_Fidough, + LEARNSETS(Fidough), + .evolutions = EVOLUTION({EVO_LEVEL, 26, SPECIES_DACHSBUN}), + }, + + [SPECIES_DACHSBUN] = { - .baseHP = 90, - .baseAttack = 85, - .baseDefense = 90, - .baseSpeed = 90, - .baseSpAttack = 100, - .baseSpDefense = 125, - .types = { TYPE_DARK, TYPE_FLYING}, - .catchRate = 3, - .expYield = 290, - .evYield_SpDefense = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_BERSERK, ABILITY_NONE}, - .bodyColor = BODY_COLOR_RED, + .baseHP = 57, + .baseAttack = 80, + .baseDefense = 115, + .baseSpeed = 95, + .baseSpAttack = 50, + .baseSpDefense = 80, + .types = { TYPE_FAIRY, TYPE_FAIRY }, + .catchRate = 90, + .expYield = 167, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_WELL_BAKED_BODY, ABILITY_NONE, ABILITY_AROMA_VEIL}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY | SPECIES_FLAG_GALARIAN_FORM, - }, - - [SPECIES_SLOWKING_GALARIAN] = + .speciesName = _("Dachsbun"), + .cryId = CRY_DACHSBUN, + .natDexNum = NATIONAL_DEX_DACHSBUN, + .categoryName = _("Dog"), + .height = 5, + .weight = 149, + .description = COMPOUND_STRING( + "The pleasant aroma that emanates\n" + "from this Pokémon's body helps\n" + "wheat grow, so Dachsbun has been\n" + "treasured by farming villages."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Dachsbun, 64, 64), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Dachsbun, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Dachsbun, 64, 64), + .backPicYOffset = 9, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Dachsbun), + ICON(Dachsbun, 0), // TODO + //.footprint = gMonFootprint_Dachsbun, + LEARNSETS(Dachsbun), + }, +#endif //P_FAMILY_FIDOUGH + +#if P_FAMILY_SMOLIV + [SPECIES_SMOLIV] = { - .baseHP = 95, - .baseAttack = 65, - .baseDefense = 80, + .baseHP = 41, + .baseAttack = 35, + .baseDefense = 45, .baseSpeed = 30, - .baseSpAttack = 110, - .baseSpDefense = 110, - .types = { TYPE_POISON, TYPE_PSYCHIC}, - .catchRate = 70, - .expYield = 172, - .evYield_SpDefense = 2, + .baseSpAttack = 58, + .baseSpDefense = 51, + .types = { TYPE_GRASS, TYPE_NORMAL }, + .catchRate = 255, + .expYield = 52, + .evYield_SpAttack = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_WATER_1}, - .abilities = {ABILITY_CURIOUS_MEDICINE, ABILITY_OWN_TEMPO, ABILITY_REGENERATOR}, - .bodyColor = BODY_COLOR_PINK, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, + .abilities = {ABILITY_EARLY_BIRD, ABILITY_NONE, ABILITY_HARVEST}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - .flags = SPECIES_FLAG_GALARIAN_FORM, - }, - - [SPECIES_CORSOLA_GALARIAN] = + .speciesName = _("Smoliv"), + .cryId = CRY_SMOLIV, + .natDexNum = NATIONAL_DEX_SMOLIV, + .categoryName = _("Olive"), + .height = 3, + .weight = 65, + .description = COMPOUND_STRING( + "This Pokémon converts nutrients\n" + "into oil, which it stores in the fruit\n" + "on its head. It can easily go a whole\n" + "week without eating or drinking."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Smoliv, 64, 64), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_Smoliv, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Smoliv, 64, 64), + .backPicYOffset = 13, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Smoliv), + ICON(Smoliv, 1), + //.footprint = gMonFootprint_Smoliv, + LEARNSETS(Smoliv), + .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_DOLLIV}), + }, + + [SPECIES_DOLLIV] = { - .baseHP = 60, - .baseAttack = 55, - .baseDefense = 100, - .baseSpeed = 30, - .baseSpAttack = 65, - .baseSpDefense = 100, - .types = { TYPE_GHOST, TYPE_GHOST}, - .catchRate = 60, - .expYield = 144, - .evYield_SpDefense = 1, - .genderRatio = PERCENT_FEMALE(75), + .baseHP = 52, + .baseAttack = 53, + .baseDefense = 60, + .baseSpeed = 33, + .baseSpAttack = 78, + .baseSpDefense = 78, + .types = { TYPE_GRASS, TYPE_NORMAL }, + .catchRate = 120, + .expYield = 124, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, + .abilities = {ABILITY_EARLY_BIRD, ABILITY_NONE, ABILITY_HARVEST}, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + .speciesName = _("Dolliv"), + .cryId = CRY_DOLLIV, + .natDexNum = NATIONAL_DEX_DOLLIV, + .categoryName = _("Olive"), + .height = 6, + .weight = 119, + .description = COMPOUND_STRING( + "Dolliv shares its tasty, fresh-\n" + "scented oil with others. This species\n" + "has coexisted with humans since\n" + "times long gone."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Dolliv, 64, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_Dolliv, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Dolliv, 64, 64), + .backPicYOffset = 2, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Dolliv), + ICON(Dolliv, 1), + //.footprint = gMonFootprint_Dolliv, + LEARNSETS(Dolliv), + .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_ARBOLIVA}), + }, + + [SPECIES_ARBOLIVA] = + { + .baseHP = 78, + .baseAttack = 69, + .baseDefense = 90, + .baseSpeed = 39, + .baseSpAttack = 125, + .baseSpDefense = 109, + .types = { TYPE_GRASS, TYPE_NORMAL }, + .catchRate = 45, + .expYield = 255, + .evYield_SpAttack = 3, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_3}, - .abilities = {ABILITY_WEAK_ARMOR, ABILITY_NONE, ABILITY_CURSED_BODY}, - .bodyColor = BODY_COLOR_WHITE, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, + .abilities = {ABILITY_SEED_SOWER, ABILITY_NONE, ABILITY_HARVEST}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - .flags = SPECIES_FLAG_GALARIAN_FORM, + .speciesName = _("Arboliva"), + .cryId = CRY_ARBOLIVA, + .natDexNum = NATIONAL_DEX_ARBOLIVA, + .categoryName = _("Olive"), + .height = 14, + .weight = 482, + .description = COMPOUND_STRING( + "This Pokémon drives back enemies\n" + "by launching its rich, aromatic oil at\n" + "them with enough force to smash a\n" + "boulder."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Arboliva, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Arboliva, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Arboliva, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Arboliva), + ICON(Arboliva, 5), + //.footprint = gMonFootprint_Arboliva, + LEARNSETS(Arboliva), + }, +#endif //P_FAMILY_SMOLIV + +#if P_FAMILY_SQUAWKABILLY +#define SQUAWKABILLY_MISC_INFO \ + .baseHP = 82, \ + .baseAttack = 96, \ + .baseDefense = 51, \ + .baseSpeed = 92, \ + .baseSpAttack = 45, \ + .baseSpDefense = 51, \ + .types = { TYPE_NORMAL, TYPE_FLYING }, \ + .catchRate = 190, \ + .expYield = 146, \ + .evYield_Attack = 1, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 15, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_ERRATIC, \ + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, \ + .noFlip = FALSE, \ + .speciesName = _("Sqawkabily"), \ + .cryId = CRY_SQUAWKABILLY, \ + .natDexNum = NATIONAL_DEX_SQUAWKABILLY, \ + .categoryName = _("Parrot"), \ + .height = 6, \ + .weight = 24, \ + .pokemonScale = 356, \ + .pokemonOffset = 17, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + FRONT_PIC(Squawkabilly, 64, 64), \ + .frontPicYOffset = 0, \ + .frontAnimFrames = sAnims_Squawkabilly, \ + BACK_PIC(Squawkabilly, 64, 64), \ + .backPicYOffset = 4, \ + LEARNSETS(Squawkabilly), \ + .formSpeciesIdTable = sSquawkabillyFormSpeciesIdTable + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + //.backAnimId = BACK_ANIM_NONE, + //.footprint = gMonFootprint_Squawkabilly, + + [SPECIES_SQUAWKABILLY_GREEN_PLUMAGE] = + { + SQUAWKABILLY_MISC_INFO, + .abilities = {ABILITY_INTIMIDATE, ABILITY_HUSTLE, ABILITY_GUTS}, + .bodyColor = BODY_COLOR_GREEN, + .description = COMPOUND_STRING( + "Green-feathered flocks hold the\n" + "most sway. When they're out\n" + "searching for food in the mornings and\n" + "evenings, it gets very noisy."), + PALETTE(SquawkabillyGreenPlumage), + ICON(SquawkabillyGreenPlumage, 1), }, - [SPECIES_ZIGZAGOON_GALARIAN] = + [SPECIES_SQUAWKABILLY_BLUE_PLUMAGE] = { - .baseHP = 38, - .baseAttack = 30, - .baseDefense = 41, - .baseSpeed = 60, - .baseSpAttack = 30, - .baseSpDefense = 41, - .types = { TYPE_DARK, TYPE_NORMAL}, - .catchRate = 255, - .expYield = 56, - .evYield_Speed = 1, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_PICKUP, ABILITY_GLUTTONY, ABILITY_QUICK_FEET}, + SQUAWKABILLY_MISC_INFO, + .abilities = {ABILITY_INTIMIDATE, ABILITY_HUSTLE, ABILITY_GUTS}, + .bodyColor = BODY_COLOR_BLUE, + .description = COMPOUND_STRING( + ""), + PALETTE(SquawkabillyBluePlumage), + ICON(SquawkabillyBluePlumage, 2), + }, + + [SPECIES_SQUAWKABILLY_YELLOW_PLUMAGE] = + { + SQUAWKABILLY_MISC_INFO, + .abilities = {ABILITY_INTIMIDATE, ABILITY_HUSTLE, ABILITY_SHEER_FORCE}, + .bodyColor = BODY_COLOR_YELLOW, + .description = COMPOUND_STRING( + ""), + PALETTE(SquawkabillyYellowPlumage), + ICON(SquawkabillyYellowPlumage, 1), + }, + + [SPECIES_SQUAWKABILLY_WHITE_PLUMAGE] = + { + SQUAWKABILLY_MISC_INFO, + .abilities = {ABILITY_INTIMIDATE, ABILITY_HUSTLE, ABILITY_SHEER_FORCE}, .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - .flags = SPECIES_FLAG_GALARIAN_FORM, + .description = COMPOUND_STRING( + ""), + PALETTE(SquawkabillyWhitePlumage), + ICON(SquawkabillyWhitePlumage, 1), }, +#endif //P_FAMILY_SQUAWKABILLY - [SPECIES_LINOONE_GALARIAN] = +#if P_FAMILY_NACLI + [SPECIES_NACLI] = { - .baseHP = 78, - .baseAttack = 70, - .baseDefense = 61, - .baseSpeed = 100, - .baseSpAttack = 50, - .baseSpDefense = 61, - .types = { TYPE_DARK, TYPE_NORMAL}, - .catchRate = 90, - .expYield = 147, - .evYield_Speed = 2, + .baseHP = 55, + .baseAttack = 55, + .baseDefense = 75, + .baseSpeed = 25, + .baseSpAttack = 35, + .baseSpDefense = 35, + .types = { TYPE_ROCK, TYPE_ROCK }, + .catchRate = 255, + .expYield = 56, + .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_PICKUP, ABILITY_GLUTTONY, ABILITY_QUICK_FEET}, - .bodyColor = BODY_COLOR_WHITE, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_PURIFYING_SALT, ABILITY_STURDY, ABILITY_CLEAR_BODY}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - .flags = SPECIES_FLAG_GALARIAN_FORM, - }, - -#if P_GEN_5_POKEMON == TRUE - [SPECIES_DARUMAKA_GALARIAN] = + .speciesName = _("Nacli"), + .cryId = CRY_NACLI, + .natDexNum = NATIONAL_DEX_NACLI, + .categoryName = _("Rock Salt"), + .height = 4, + .weight = 160, + .description = COMPOUND_STRING( + "The ground scrapes its body as it\n" + "travels, causing it to leave salt\n" + "behind. Salt is constantly being created\n" + "and replenished inside Nacli's body."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Nacli, 64, 64), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Nacli, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Nacli, 64, 64), + .backPicYOffset = 10, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Nacli), + ICON(Nacli, 2), + //.footprint = gMonFootprint_Nacli, + LEARNSETS(Nacli), + .evolutions = EVOLUTION({EVO_LEVEL, 24, SPECIES_NACLSTACK}), + }, + + [SPECIES_NACLSTACK] = { - .baseHP = 70, - .baseAttack = 90, - .baseDefense = 45, - .baseSpeed = 50, - .baseSpAttack = 15, - .baseSpDefense = 45, - .types = { TYPE_ICE, TYPE_ICE}, + .baseHP = 60, + .baseAttack = 60, + .baseDefense = 100, + .baseSpeed = 35, + .baseSpAttack = 35, + .baseSpDefense = 65, + .types = { TYPE_ROCK, TYPE_ROCK }, .catchRate = 120, - .expYield = 63, - .evYield_Attack = 1, + .expYield = 124, + .evYield_Defense = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_HUSTLE, ABILITY_NONE, ABILITY_INNER_FOCUS}, - .bodyColor = BODY_COLOR_WHITE, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_PURIFYING_SALT, ABILITY_STURDY, ABILITY_CLEAR_BODY}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - .flags = SPECIES_FLAG_GALARIAN_FORM, - }, - - [SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE] = + .speciesName = _("Naclstack"), + .cryId = CRY_NACLSTACK, + .natDexNum = NATIONAL_DEX_NACLSTACK, + .categoryName = _("Rock Salt"), + .height = 6, + .weight = 1050, + .description = COMPOUND_STRING( + "It compresses rock salt inside its\n" + "body and shoots out hardened salt\n" + "pellets with enough force to\n" + "perforate an iron sheet."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Naclstack, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Naclstack, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Naclstack, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Naclstack), + ICON(Naclstack, 2), // TODO: recolor + //.footprint = gMonFootprint_Naclstack, + LEARNSETS(Naclstack), + .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_GARGANACL}), + }, + + [SPECIES_GARGANACL] = { - .baseHP = 105, - .baseAttack = 140, - .baseDefense = 55, - .baseSpeed = 95, - .baseSpAttack = 30, - .baseSpDefense = 55, - .types = { TYPE_ICE, TYPE_ICE}, - .catchRate = 60, - .expYield = 168, - .evYield_Attack = 2, + .baseHP = 100, + .baseAttack = 100, + .baseDefense = 130, + .baseSpeed = 35, + .baseSpAttack = 45, + .baseSpDefense = 90, + .types = { TYPE_ROCK, TYPE_ROCK }, + .catchRate = 45, + .expYield = 250, + .evYield_Defense = 3, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_GORILLA_TACTICS, ABILITY_NONE, ABILITY_ZEN_MODE}, - .bodyColor = BODY_COLOR_WHITE, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_PURIFYING_SALT, ABILITY_STURDY, ABILITY_CLEAR_BODY}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - .flags = SPECIES_FLAG_GALARIAN_FORM, - }, - - [SPECIES_YAMASK_GALARIAN] = + .speciesName = _("Garganacl"), + .cryId = CRY_GARGANACL, + .natDexNum = NATIONAL_DEX_GARGANACL, + .categoryName = _("Rock Salt"), + .height = 23, + .weight = 2400, + .description = COMPOUND_STRING( + "Garganacl will rub its fingertips\n" + "together and sprinkle injured\n" + "Pokémon with salt. Even severe wounds will\n" + "promptly heal afterward."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Garganacl, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Garganacl, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Garganacl, 64, 64), + .backPicYOffset = 2, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Garganacl), + ICON(Garganacl, 2), + //.footprint = gMonFootprint_Garganacl, + LEARNSETS(Garganacl), + }, +#endif //P_FAMILY_NACLI + +#if P_FAMILY_CHARCADET + [SPECIES_CHARCADET] = { - .baseHP = 38, - .baseAttack = 55, - .baseDefense = 85, - .baseSpeed = 30, - .baseSpAttack = 30, - .baseSpDefense = 65, - .types = { TYPE_GROUND, TYPE_GHOST}, + .baseHP = 40, + .baseAttack = 50, + .baseDefense = 40, + .baseSpeed = 35, + .baseSpAttack = 50, + .baseSpDefense = 40, + .types = { TYPE_FIRE, TYPE_FIRE }, + .catchRate = 90, + .expYield = 51, + .evYield_SpAttack = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 35, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_FLASH_FIRE, ABILITY_NONE, ABILITY_FLAME_BODY}, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + .speciesName = _("Charcadet"), + .cryId = CRY_CHARCADET, + .natDexNum = NATIONAL_DEX_CHARCADET, + .categoryName = _("Fire Child"), + .height = 6, + .weight = 105, + .description = COMPOUND_STRING( + "Burnt charcoal came to life and\n" + "became a Pokémon. Possessing a fiery\n" + "fighting spirit, Charcadet will\n" + "battle even tough opponents."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Charcadet, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_Charcadet, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Charcadet, 64, 64), + .backPicYOffset = 3, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Charcadet), + ICON(Charcadet, 1), + //.footprint = gMonFootprint_Charcadet, + LEARNSETS(Charcadet), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_AUSPICIOUS_ARMOR, SPECIES_ARMAROUGE}, + {EVO_ITEM, ITEM_MALICIOUS_ARMOR, SPECIES_CERULEDGE}), + }, + + [SPECIES_ARMAROUGE] = + { + .baseHP = 85, + .baseAttack = 60, + .baseDefense = 100, + .baseSpeed = 75, + .baseSpAttack = 125, + .baseSpDefense = 80, + .types = { TYPE_FIRE, TYPE_PSYCHIC }, + .catchRate = 25, + .expYield = 263, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 35, + .friendship = 20, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_FLASH_FIRE, ABILITY_NONE, ABILITY_WEAK_ARMOR}, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + .speciesName = _("Armarouge"), + .cryId = CRY_ARMAROUGE, + .natDexNum = NATIONAL_DEX_ARMAROUGE, + .categoryName = _("Fire Warrior"), + .height = 15, + .weight = 850, + .description = COMPOUND_STRING( + "Armarouge evolved through the use\n" + "of a set of armor that belonged to\n" + "a distinguished warrior. This\n" + "Pokémon is incredibly loyal."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Armarouge, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Armarouge, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Armarouge, 64, 64), + .backPicYOffset = 3, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Armarouge), + ICON(Armarouge, 0), + //.footprint = gMonFootprint_Armarouge, + LEARNSETS(Armarouge), + }, + + [SPECIES_CERULEDGE] = + { + .baseHP = 75, + .baseAttack = 125, + .baseDefense = 80, + .baseSpeed = 85, + .baseSpAttack = 60, + .baseSpDefense = 100, + .types = { TYPE_FIRE, TYPE_GHOST }, + .catchRate = 25, + .expYield = 263, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 35, + .friendship = 20, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_HUMAN_LIKE, EGG_GROUP_HUMAN_LIKE}, + .abilities = {ABILITY_FLASH_FIRE, ABILITY_NONE, ABILITY_WEAK_ARMOR}, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + .speciesName = _("Ceruledge"), + .cryId = CRY_CERULEDGE, + .natDexNum = NATIONAL_DEX_CERULEDGE, + .categoryName = _("Fire Blades"), + .height = 16, + .weight = 620, + .description = COMPOUND_STRING( + "The fiery blades on its arms burn\n" + "fiercely with the lingering\n" + "resentment of a sword wielder who fell\n" + "before accomplishing their goal."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Ceruledge, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Ceruledge, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Ceruledge, 64, 64), + .backPicYOffset = 5, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Ceruledge), + ICON(Ceruledge, 2), + //.footprint = gMonFootprint_Ceruledge, + LEARNSETS(Ceruledge), + }, +#endif //P_FAMILY_CHARCADET + +#if P_FAMILY_TADBULB + [SPECIES_TADBULB] = + { + .baseHP = 61, + .baseAttack = 31, + .baseDefense = 41, + .baseSpeed = 45, + .baseSpAttack = 59, + .baseSpDefense = 35, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, .catchRate = 190, - .expYield = 61, - .evYield_Defense = 1, + .expYield = 54, + .evYield_HP = 1, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_WANDERING_SPIRIT, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLACK, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, + .abilities = {ABILITY_OWN_TEMPO, ABILITY_STATIC, ABILITY_DAMP}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, - .flags = SPECIES_FLAG_GALARIAN_FORM, - }, - - [SPECIES_STUNFISK_GALARIAN] = + .speciesName = _("Tadbulb"), + .cryId = CRY_TADBULB, + .natDexNum = NATIONAL_DEX_TADBULB, + .categoryName = _("EleTadpole"), + .height = 3, + .weight = 4, + .description = COMPOUND_STRING( + "Tadbulb shakes its tail to\n" + "generate electricity. If it senses danger,\n" + "it will make its head blink on and off\n" + "to alert its allies."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Tadbulb, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Tadbulb, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 12, + BACK_PIC(Tadbulb, 64, 64), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Tadbulb), + ICON(Tadbulb, 5), // TODO: Redo to 0 + //.footprint = gMonFootprint_Tadbulb, + LEARNSETS(Tadbulb), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_BELLIBOLT}), + }, + + [SPECIES_BELLIBOLT] = { .baseHP = 109, - .baseAttack = 81, - .baseDefense = 99, - .baseSpeed = 32, - .baseSpAttack = 66, - .baseSpDefense = 84, - .types = { TYPE_GROUND, TYPE_STEEL}, - .catchRate = 75, - .expYield = 165, - .evYield_HP = 2, + .baseAttack = 64, + .baseDefense = 91, + .baseSpeed = 45, + .baseSpAttack = 103, + .baseSpDefense = 83, + .types = { TYPE_ELECTRIC, TYPE_ELECTRIC }, + .catchRate = 50, + .expYield = 173, + .evYield_HP = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_AMORPHOUS}, - .abilities = {ABILITY_MIMICRY, ABILITY_NONE}, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_WATER_1}, + .abilities = {ABILITY_ELECTROMORPHOSIS, ABILITY_STATIC, ABILITY_DAMP}, .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - .flags = SPECIES_FLAG_GALARIAN_FORM, - }, -#endif - - [SPECIES_GROWLITHE_HISUIAN] = + .speciesName = _("Bellibolt"), + .cryId = CRY_BELLIBOLT, + .natDexNum = NATIONAL_DEX_BELLIBOLT, + .categoryName = _("EleFrog"), + .height = 12, + .weight = 1130, + .description = COMPOUND_STRING( + "When this Pokémon expands and\n" + "contracts its wobbly body, the belly-\n" + "button dynamo in its stomach\n" + "produces a huge amount of electricity."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Bellibolt, 64, 64), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Bellibolt, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Bellibolt, 64, 64), + .backPicYOffset = 10, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Bellibolt), + ICON(Bellibolt, 0), + //.footprint = gMonFootprint_Bellibolt, + LEARNSETS(Bellibolt), + }, +#endif //P_FAMILY_TADBULB + +#if P_FAMILY_WATTREL + [SPECIES_WATTREL] = + { + .baseHP = 40, + .baseAttack = 40, + .baseDefense = 35, + .baseSpeed = 70, + .baseSpAttack = 55, + .baseSpDefense = 40, + .types = { TYPE_ELECTRIC, TYPE_FLYING }, + .catchRate = 180, + .expYield = 56, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FLYING}, + .abilities = {ABILITY_WIND_POWER, ABILITY_VOLT_ABSORB, ABILITY_COMPETITIVE}, + .bodyColor = BODY_COLOR_BLACK, + .noFlip = FALSE, + .speciesName = _("Wattrel"), + .cryId = CRY_WATTREL, + .natDexNum = NATIONAL_DEX_WATTREL, + .categoryName = _("Storm Petrel"), + .height = 4, + .weight = 36, + .description = COMPOUND_STRING( + "When its wings catch the wind, the\n" + "bones within produce electricity.\n" + "This Pokémon dives into the ocean,\n" + "catching prey by electrocuting them."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Wattrel, 64, 64), + .frontPicYOffset = 11, + .frontAnimFrames = sAnims_Wattrel, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Wattrel, 64, 64), + .backPicYOffset = 14, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Wattrel), + ICON(Wattrel, 3), + //.footprint = gMonFootprint_Wattrel, + LEARNSETS(Wattrel), + .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_KILOWATTREL}), + }, + + [SPECIES_KILOWATTREL] = + { + .baseHP = 70, + .baseAttack = 70, + .baseDefense = 60, + .baseSpeed = 125, + .baseSpAttack = 105, + .baseSpDefense = 60, + .types = { TYPE_ELECTRIC, TYPE_FLYING }, + .catchRate = 90, + .expYield = 172, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FLYING}, + .abilities = {ABILITY_WIND_POWER, ABILITY_VOLT_ABSORB, ABILITY_COMPETITIVE}, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + .speciesName = _("Kilowatrel"), + .cryId = CRY_KILOWATTREL, + .natDexNum = NATIONAL_DEX_KILOWATTREL, + .categoryName = _("Frigatebird"), + .height = 14, + .weight = 386, + .description = COMPOUND_STRING( + "It uses its throat sac to store\n" + "electricity generated by its wings.\n" + "There's hardly any oil in its feathers,\n" + "so it is a poor swimmer."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Kilowattrel, 64, 64), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Kilowattrel, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Kilowattrel, 64, 64), + .backPicYOffset = 7, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Kilowattrel), + ICON(Kilowattrel, 3), + //.footprint = gMonFootprint_Kilowattrel, + LEARNSETS(Kilowattrel), + }, +#endif //P_FAMILY_WATTREL + +#if P_FAMILY_MASCHIFF + [SPECIES_MASCHIFF] = { .baseHP = 60, - .baseAttack = 75, - .baseDefense = 45, - .baseSpeed = 55, - .baseSpAttack = 65, - .baseSpDefense = 50, - .types = { TYPE_FIRE, TYPE_ROCK}, - .catchRate = 190, - .expYield = 70, - .evYield_Attack = 1, - .genderRatio = PERCENT_FEMALE(25), + .baseAttack = 78, + .baseDefense = 60, + .baseSpeed = 51, + .baseSpAttack = 40, + .baseSpDefense = 51, + .types = { TYPE_DARK, TYPE_DARK }, + .catchRate = 150, + .expYield = 68, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, + .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_INTIMIDATE, ABILITY_FLASH_FIRE, ABILITY_ROCK_HEAD}, + .abilities = {ABILITY_INTIMIDATE, ABILITY_RUN_AWAY, ABILITY_STAKEOUT}, .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - .flags = SPECIES_FLAG_HISUIAN_FORM, - }, - - [SPECIES_ARCANINE_HISUIAN] = + .speciesName = _("Maschiff"), + .cryId = CRY_MASCHIFF, + .natDexNum = NATIONAL_DEX_MASCHIFF, + .categoryName = _("Rascal"), + .height = 5, + .weight = 160, + .description = COMPOUND_STRING( + "Its well-developed jaw and fangs\n" + "are strong enough to crunch through\n" + "boulders, and its thick fat makes\n" + "for an excellent defense."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Maschiff, 64, 64), + .frontPicYOffset = 6, + .frontAnimFrames = sAnims_Maschiff, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Maschiff, 64, 64), + .backPicYOffset = 10, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Maschiff), + ICON(Maschiff, 3), + //.footprint = gMonFootprint_Maschiff, + LEARNSETS(Maschiff), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_MABOSSTIFF}), + }, + + [SPECIES_MABOSSTIFF] = { - .baseHP = 95, - .baseAttack = 115, - .baseDefense = 80, - .baseSpeed = 90, - .baseSpAttack = 95, - .baseSpDefense = 80, - .types = { TYPE_FIRE, TYPE_ROCK}, + .baseHP = 80, + .baseAttack = 120, + .baseDefense = 90, + .baseSpeed = 85, + .baseSpAttack = 60, + .baseSpDefense = 70, + .types = { TYPE_DARK, TYPE_DARK }, .catchRate = 75, - .expYield = 194, - .evYield_Attack = 2, - .genderRatio = PERCENT_FEMALE(25), + .expYield = 177, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, + .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_INTIMIDATE, ABILITY_FLASH_FIRE, ABILITY_ROCK_HEAD}, - .bodyColor = BODY_COLOR_BROWN, + .abilities = {ABILITY_INTIMIDATE, ABILITY_GUARD_DOG, ABILITY_STAKEOUT}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, - .flags = SPECIES_FLAG_HISUIAN_FORM, - }, - - [SPECIES_VOLTORB_HISUIAN] = + .speciesName = _("Mabosstiff"), + .cryId = CRY_MABOSSTIFF, + .natDexNum = NATIONAL_DEX_MABOSSTIFF, + .categoryName = _("Boss"), + .height = 11, + .weight = 610, + .description = COMPOUND_STRING( + "Mabosstiff loves playing with\n" + "children. Though usually gentle, it\n" + "takes on an intimidating look when\n" + "protecting its family."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Mabosstiff, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Mabosstiff, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Mabosstiff, 64, 64), + .backPicYOffset = 14, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Mabosstiff), + ICON(Mabosstiff, 5), + //.footprint = gMonFootprint_Mabosstiff, + LEARNSETS(Mabosstiff), + }, +#endif //P_FAMILY_MASCHIFF + +#if P_FAMILY_SHROODLE + [SPECIES_SHROODLE] = { .baseHP = 40, - .baseAttack = 30, - .baseDefense = 50, - .baseSpeed = 100, - .baseSpAttack = 55, - .baseSpDefense = 55, - .types = { TYPE_ELECTRIC, TYPE_GRASS}, + .baseAttack = 65, + .baseDefense = 35, + .baseSpeed = 75, + .baseSpAttack = 40, + .baseSpDefense = 35, + .types = { TYPE_POISON, TYPE_NORMAL }, .catchRate = 190, - .expYield = 66, - .evYield_Speed = 1, - .genderRatio = MON_GENDERLESS, + .expYield = 58, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_SOUNDPROOF, ABILITY_STATIC, ABILITY_AFTERMATH}, - .bodyColor = BODY_COLOR_RED, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_UNBURDEN, ABILITY_PICKPOCKET, ABILITY_PRANKSTER}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, - .flags = SPECIES_FLAG_HISUIAN_FORM, - }, - - [SPECIES_ELECTRODE_HISUIAN] = + .speciesName = _("Shroodle"), + .cryId = CRY_SHROODLE, + .natDexNum = NATIONAL_DEX_SHROODLE, + .categoryName = _("Toxic Mouse"), + .height = 2, + .weight = 7, + .description = COMPOUND_STRING( + "To keep enemies away from its\n" + "territory, it paints markings around its\n" + "nest using a poisonous liquid that\n" + "has an acrid odor."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Shroodle, 64, 64), + .frontPicYOffset = 15, + .frontAnimFrames = sAnims_Shroodle, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Shroodle, 64, 64), + .backPicYOffset = 16, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Shroodle), + ICON(Shroodle, 0), + //.footprint = gMonFootprint_Shroodle, + LEARNSETS(Shroodle), + .evolutions = EVOLUTION({EVO_LEVEL, 28, SPECIES_GRAFAIAI}), + }, + + [SPECIES_GRAFAIAI] = { - .baseHP = 60, - .baseAttack = 50, - .baseDefense = 70, + .baseHP = 63, + .baseAttack = 95, + .baseDefense = 65, + .baseSpeed = 110, .baseSpAttack = 80, - .baseSpDefense = 80, - .baseSpeed = 150, - .types = { TYPE_ELECTRIC, TYPE_GRASS}, - .catchRate = 60, - .expYield = 172, - .evYield_Speed = 2, - .genderRatio = MON_GENDERLESS, + .baseSpDefense = 72, + .types = { TYPE_POISON, TYPE_NORMAL }, + .catchRate = 90, + .expYield = 170, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_SOUNDPROOF, ABILITY_STATIC, ABILITY_AFTERMATH}, - .bodyColor = BODY_COLOR_RED, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_UNBURDEN, ABILITY_POISON_TOUCH, ABILITY_PRANKSTER}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, - .flags = SPECIES_FLAG_HISUIAN_FORM, - }, - - [SPECIES_TYPHLOSION_HISUIAN] = + .speciesName = _("Grafaiai"), + .cryId = CRY_GRAFAIAI, + .natDexNum = NATIONAL_DEX_GRAFAIAI, + .categoryName = _("Toxic Monkey"), + .height = 7, + .weight = 272, + .description = COMPOUND_STRING( + "Each Grafaiai paints its own\n" + "individual pattern, and it will paint that\n" + "same pattern over and over again\n" + "throughout its life."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Grafaiai, 64, 64), + .frontPicYOffset = 9, + .frontAnimFrames = sAnims_Grafaiai, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Grafaiai, 64, 64), + .backPicYOffset = 12, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Grafaiai), + ICON(Grafaiai, 0), + //.footprint = gMonFootprint_Grafaiai, + LEARNSETS(Grafaiai), + }, +#endif //P_FAMILY_SHROODLE + +#if P_FAMILY_BRAMBLIN + [SPECIES_BRAMBLIN] = { - .baseHP = 73, - .baseAttack = 84, - .baseDefense = 78, - .baseSpeed = 95, - .baseSpAttack = 119, - .baseSpDefense = 85, - .types = { TYPE_FIRE, TYPE_GHOST}, - .catchRate = 45, - .expYield = 240, - .evYield_SpAttack = 3, - .genderRatio = PERCENT_FEMALE(12.5), + .baseHP = 40, + .baseAttack = 65, + .baseDefense = 30, + .baseSpeed = 60, + .baseSpAttack = 45, + .baseSpDefense = 35, + .types = { TYPE_GRASS, TYPE_GHOST }, + .catchRate = 190, + .expYield = 55, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_FRISK}, - .bodyColor = BODY_COLOR_YELLOW, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, + .abilities = {ABILITY_WIND_RIDER, ABILITY_NONE, ABILITY_INFILTRATOR}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - .flags = SPECIES_FLAG_HISUIAN_FORM, - }, - - [SPECIES_QWILFISH_HISUIAN] = + .speciesName = _("Bramblin"), + .cryId = CRY_BRAMBLIN, + .natDexNum = NATIONAL_DEX_BRAMBLIN, + .categoryName = _("Tumbleweed"), + .height = 6, + .weight = 6, + .description = COMPOUND_STRING( + "A soul unable to move on to the\n" + "afterlife was blown around by the wind\n" + "until it got tangled up with dried\n" + "grass and became a Pokémon."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Bramblin, 64, 64), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_Bramblin, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 1, + BACK_PIC(Bramblin, 64, 64), + .backPicYOffset = 14, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Bramblin), + ICON(Bramblin, 3), + //.footprint = gMonFootprint_Bramblin, + LEARNSETS(Bramblin), + .evolutions = EVOLUTION({EVO_NONE, 0, SPECIES_BRAMBLEGHAST}), + }, + + [SPECIES_BRAMBLEGHAST] = { - .baseHP = 65, - .baseAttack = 95, - .baseDefense = 85, - .baseSpeed = 85, - .baseSpAttack = 55, - .baseSpDefense = 55, - .types = { TYPE_DARK, TYPE_POISON}, + .baseHP = 55, + .baseAttack = 115, + .baseDefense = 70, + .baseSpeed = 90, + .baseSpAttack = 80, + .baseSpDefense = 70, + .types = { TYPE_GRASS, TYPE_GHOST }, .catchRate = 45, - .expYield = 88, - .evYield_Attack = 1, - .itemRare = ITEM_POISON_BARB, + .expYield = 168, + .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, - .abilities = {ABILITY_POISON_POINT, ABILITY_SWIFT_SWIM, ABILITY_INTIMIDATE}, - .bodyColor = BODY_COLOR_GRAY, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, + .abilities = {ABILITY_WIND_RIDER, ABILITY_NONE, ABILITY_INFILTRATOR}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - .flags = SPECIES_FLAG_HISUIAN_FORM, - }, - - [SPECIES_SNEASEL_HISUIAN] = + .speciesName = _("Brmblghast"), + .cryId = CRY_BRAMBLEGHAST, + .natDexNum = NATIONAL_DEX_BRAMBLEGHAST, + .categoryName = _("Tumbleweed"), + .height = 12, + .weight = 60, + .description = COMPOUND_STRING( + "It will open the branches of its\n" + "head to envelop its prey. Once it\n" + "absorbs all the life energy it needs, it\n" + "expels the prey and discards it."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Brambleghast, 64, 64), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_Brambleghast, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 1, + BACK_PIC(Brambleghast, 64, 64), + .backPicYOffset = 7, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Brambleghast), + ICON(Brambleghast, 5), + //.footprint = gMonFootprint_Brambleghast, + LEARNSETS(Brambleghast), + }, +#endif //P_FAMILY_BRAMBLIN + +#if P_FAMILY_TOEDSCOOL + [SPECIES_TOEDSCOOL] = { - .baseHP = 55, - .baseAttack = 95, - .baseDefense = 55, - .baseSpeed = 115, - .baseSpAttack = 35, - .baseSpDefense = 75, - .types = { TYPE_POISON, TYPE_FIGHTING}, - .catchRate = 60, - .expYield = 86, - .evYield_Speed = 1, - .itemRare = ITEM_QUICK_CLAW, + .baseHP = 40, + .baseAttack = 40, + .baseDefense = 35, + .baseSpeed = 70, + .baseSpAttack = 50, + .baseSpDefense = 100, + .types = { TYPE_GROUND, TYPE_GRASS }, + .catchRate = 190, + .expYield = 67, + .evYield_SpDefense = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, - .friendship = 35, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_INNER_FOCUS, ABILITY_KEEN_EYE, ABILITY_PICKPOCKET}, - .bodyColor = BODY_COLOR_BLACK, - .noFlip = TRUE, - .flags = SPECIES_FLAG_HISUIAN_FORM, - }, - -#if P_GEN_5_POKEMON == TRUE - [SPECIES_SAMUROTT_HISUIAN] = + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, + .abilities = {ABILITY_MYCELIUM_MIGHT, ABILITY_NONE}, + .bodyColor = BODY_COLOR_YELLOW, + .noFlip = FALSE, + .speciesName = _("Toedscool"), + .cryId = CRY_TOEDSCOOL, + .natDexNum = NATIONAL_DEX_TOEDSCOOL, + .categoryName = _("Woodear"), + .height = 9, + .weight = 330, + .description = COMPOUND_STRING( + "Though it looks like Tentacool,\n" + "Toedscool is a completely different\n" + "species. Its legs may be thin, but it\n" + "can run at a speed of 30 mph."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Toedscool, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Toedscool, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Toedscool, 64, 64), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Toedscool), + ICON(Toedscool, 0), + //.footprint = gMonFootprint_Toedscool, + LEARNSETS(Toedscool), + .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_TOEDSCRUEL}), + }, + + [SPECIES_TOEDSCRUEL] = { - .baseHP = 90, - .baseAttack = 108, - .baseDefense = 80, - .baseSpeed = 85, - .baseSpAttack = 100, - .baseSpDefense = 65, - .types = { TYPE_WATER, TYPE_DARK}, - .catchRate = 45, - .expYield = 238, - .evYield_SpAttack = 3, - .genderRatio = PERCENT_FEMALE(12.5), + .baseHP = 80, + .baseAttack = 70, + .baseDefense = 65, + .baseSpeed = 100, + .baseSpAttack = 80, + .baseSpDefense = 120, + .types = { TYPE_GROUND, TYPE_GRASS }, + .catchRate = 90, + .expYield = 180, + .evYield_SpDefense = 2, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_TORRENT, ABILITY_NONE, ABILITY_SHARPNESS}, - .bodyColor = BODY_COLOR_BLUE, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, + .abilities = {ABILITY_MYCELIUM_MIGHT, ABILITY_NONE}, + .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, - .flags = SPECIES_FLAG_HISUIAN_FORM, - }, - - [SPECIES_LILLIGANT_HISUIAN] = + .speciesName = _("Toedscruel"), + .cryId = CRY_TOEDSCRUEL, + .natDexNum = NATIONAL_DEX_TOEDSCRUEL, + .categoryName = _("Woodear"), + .height = 19, + .weight = 580, + .description = COMPOUND_STRING( + "These Pokémon gather into groups\n" + "and form colonies deep within\n" + "forests. They absolutely hate it when\n" + "strangers approach."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Toedscruel, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Toedscruel, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Toedscruel, 64, 64), + .backPicYOffset = 11, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Toedscruel), + ICON(Toedscruel, 0), + //.footprint = gMonFootprint_Toedscruel, + LEARNSETS(Toedscruel), + }, +#endif //P_FAMILY_TOEDSCOOL + +#if P_FAMILY_KLAWF + [SPECIES_KLAWF] = { .baseHP = 70, - .baseAttack = 105, - .baseDefense = 75, - .baseSpeed = 105, - .baseSpAttack = 50, - .baseSpDefense = 75, - .types = { TYPE_GRASS, TYPE_FIGHTING}, - .catchRate = 75, - .expYield = 168, - .evYield_Attack = 2, - .itemRare = ITEM_ABSORB_BULB, - .genderRatio = MON_FEMALE, - .eggCycles = 20, + .baseAttack = 100, + .baseDefense = 115, + .baseSpeed = 75, + .baseSpAttack = 35, + .baseSpDefense = 55, + .types = { TYPE_ROCK, TYPE_ROCK }, + .catchRate = 120, + .expYield = 158, + .evYield_Defense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 35, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, - .abilities = {ABILITY_CHLOROPHYLL, ABILITY_HUSTLE, ABILITY_LEAF_GUARD}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = TRUE, - .flags = SPECIES_FLAG_HISUIAN_FORM, - }, - - [SPECIES_ZORUA_HISUIAN] = - { - .baseHP = 35, - .baseAttack = 60, - .baseDefense = 40, - .baseSpeed = 70, - .baseSpAttack = 85, - .baseSpDefense = 40, - .types = { TYPE_NORMAL, TYPE_GHOST}, - .catchRate = 75, - .expYield = 66, - .evYield_SpAttack = 1, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 25, - .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_ILLUSION, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GRAY, + .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, + .abilities = {ABILITY_ANGER_SHELL, ABILITY_SHELL_ARMOR, ABILITY_REGENERATOR}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, - .flags = SPECIES_FLAG_HISUIAN_FORM, - }, - - [SPECIES_ZOROARK_HISUIAN] = + .speciesName = _("Klawf"), + .cryId = CRY_KLAWF, + .natDexNum = NATIONAL_DEX_KLAWF, + .categoryName = _("Ambush"), + .height = 13, + .weight = 790, + .description = COMPOUND_STRING( + "Klawf hangs upside-down from\n" + "cliffs, waiting for prey. But Klawf can't\n" + "remain in this position for long\n" + "because its blood rushes to its head."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Klawf, 64, 64), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Klawf, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Klawf, 64, 64), + .backPicYOffset = 20, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Klawf), + ICON(Klawf, 0), + //.footprint = gMonFootprint_Klawf, + LEARNSETS(Klawf), + }, +#endif //P_FAMILY_KLAWF + +#if P_FAMILY_CAPSAKID + [SPECIES_CAPSAKID] = { - .baseHP = 55, - .baseAttack = 100, - .baseDefense = 60, - .baseSpeed = 110, - .baseSpAttack = 125, - .baseSpDefense = 60, - .types = { TYPE_NORMAL, TYPE_GHOST}, - .catchRate = 45, - .expYield = 179, - .evYield_SpAttack = 2, - .genderRatio = PERCENT_FEMALE(12.5), + .baseHP = 50, + .baseAttack = 62, + .baseDefense = 40, + .baseSpeed = 50, + .baseSpAttack = 62, + .baseSpDefense = 40, + .types = { TYPE_GRASS, TYPE_GRASS }, + .catchRate = 190, + .expYield = 61, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_ILLUSION, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GRAY, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, + .abilities = {ABILITY_CHLOROPHYLL, ABILITY_INSOMNIA, ABILITY_KLUTZ}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - .flags = SPECIES_FLAG_HISUIAN_FORM, - }, - - [SPECIES_BRAVIARY_HISUIAN] = + .speciesName = _("Capsakid"), + .cryId = CRY_CAPSAKID, + .natDexNum = NATIONAL_DEX_CAPSAKID, + .categoryName = _("Spicy Pepper"), + .height = 3, + .weight = 30, + .description = COMPOUND_STRING( + "The more sunlight this Pokémon\n" + "bathes in, the more spicy chemicals are\n" + "produced by its body, and thus the\n" + "spicier its moves become."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Capsakid, 64, 64), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Capsakid, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Capsakid, 64, 64), + .backPicYOffset = 12, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Capsakid), + ICON(Capsakid, 1), + //.footprint = gMonFootprint_Capsakid, + LEARNSETS(Capsakid), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_FIRE_STONE, SPECIES_SCOVILLAIN}), + }, + + [SPECIES_SCOVILLAIN] = { - .baseHP = 110, - .baseAttack = 83, - .baseDefense = 70, - .baseSpeed = 65, - .baseSpAttack = 112, - .baseSpDefense = 70, - .types = { TYPE_PSYCHIC, TYPE_FLYING}, - .catchRate = 60, - .expYield = 179, - .evYield_SpAttack = 2, - .genderRatio = MON_MALE, + .baseHP = 65, + .baseAttack = 108, + .baseDefense = 65, + .baseSpeed = 75, + .baseSpAttack = 108, + .baseSpDefense = 65, + .types = { TYPE_GRASS, TYPE_FIRE }, + .catchRate = 75, + .expYield = 170, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_KEEN_EYE, ABILITY_SHEER_FORCE, ABILITY_TINTED_LENS}, - .bodyColor = BODY_COLOR_RED, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_GRASS, EGG_GROUP_GRASS}, + .abilities = {ABILITY_CHLOROPHYLL, ABILITY_INSOMNIA, ABILITY_MOODY}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - .flags = SPECIES_FLAG_HISUIAN_FORM, - }, -#endif - -#if P_GEN_6_POKEMON == TRUE - [SPECIES_SLIGGOO_HISUIAN] = + .speciesName = _("Scovillain"), + .cryId = CRY_SCOVILLAIN, + .natDexNum = NATIONAL_DEX_SCOVILLAIN, + .categoryName = _("Spicy Pepper"), + .height = 9, + .weight = 150, + .description = COMPOUND_STRING( + "The green head has turned vicious\n" + "due to the spicy chemicals\n" + "stimulating its brain. Once it goes on a\n" + "rampage, there is no stopping it."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Scovillain, 64, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_Scovillain, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Scovillain, 64, 64), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Scovillain), + ICON(Scovillain, 1), + //.footprint = gMonFootprint_Scovillain, + LEARNSETS(Scovillain), + }, +#endif //P_FAMILY_CAPSAKID + +#if P_FAMILY_RELLOR + [SPECIES_RELLOR] = { - .baseHP = 58, - .baseAttack = 75, - .baseDefense = 83, - .baseSpeed = 40, - .baseSpAttack = 83, - .baseSpDefense = 113, - .types = { TYPE_DRAGON, TYPE_STEEL}, - .catchRate = 45, - .expYield = 158, - .evYield_SpDefense = 2, - .itemRare = ITEM_SHED_SHELL, + .baseHP = 41, + .baseAttack = 50, + .baseDefense = 60, + .baseSpeed = 30, + .baseSpAttack = 31, + .baseSpDefense = 58, + .types = { TYPE_BUG, TYPE_BUG }, + .catchRate = 190, + .expYield = 54, + .evYield_Defense = 1, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 40, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_SAP_SIPPER, ABILITY_SHELL_ARMOR, ABILITY_GOOEY}, - .bodyColor = BODY_COLOR_PURPLE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_COMPOUND_EYES, ABILITY_NONE, ABILITY_SHED_SKIN}, + .bodyColor = BODY_COLOR_BROWN, .noFlip = FALSE, - .flags = SPECIES_FLAG_HISUIAN_FORM, - }, - - [SPECIES_GOODRA_HISUIAN] = + .speciesName = _("Rellor"), + .cryId = CRY_RELLOR, + .natDexNum = NATIONAL_DEX_RELLOR, + .categoryName = _("Rolling"), + .height = 2, + .weight = 10, + .description = COMPOUND_STRING( + "This Pokémon creates a mud ball by\n" + "mixing sand and dirt with psychic\n" + "energy. It treasures its mud ball more\n" + "than its own life."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Rellor, 64, 64), + .frontPicYOffset = 10, + .frontAnimFrames = sAnims_Rellor, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Rellor, 64, 64), + .backPicYOffset = 15, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Rellor), + ICON(Rellor, 5), + //.footprint = gMonFootprint_Rellor, + LEARNSETS(Rellor), + .evolutions = EVOLUTION({EVO_NONE, 0, SPECIES_RABSCA}), + }, + + [SPECIES_RABSCA] = { - .baseHP = 80, - .baseAttack = 100, - .baseDefense = 100, - .baseSpeed = 60, - .baseSpAttack = 110, - .baseSpDefense = 150, - .types = { TYPE_DRAGON, TYPE_STEEL}, + .baseHP = 75, + .baseAttack = 50, + .baseDefense = 85, + .baseSpeed = 45, + .baseSpAttack = 115, + .baseSpDefense = 100, + .types = { TYPE_BUG, TYPE_PSYCHIC }, .catchRate = 45, - .expYield = 270, - .evYield_SpDefense = 3, + .expYield = 165, + .evYield_SpAttack = 2, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 40, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_DRAGON}, - .abilities = {ABILITY_SAP_SIPPER, ABILITY_SHELL_ARMOR, ABILITY_GOOEY}, - .bodyColor = BODY_COLOR_PURPLE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, + .abilities = {ABILITY_SYNCHRONIZE, ABILITY_NONE, ABILITY_TELEPATHY}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - .flags = SPECIES_FLAG_HISUIAN_FORM, - }, - - [SPECIES_AVALUGG_HISUIAN] = + .speciesName = _("Rabsca"), + .cryId = CRY_RABSCA, + .natDexNum = NATIONAL_DEX_RABSCA, + .categoryName = _("Rolling"), + .height = 3, + .weight = 35, + .description = COMPOUND_STRING( + "The body that supports the ball\n" + "barely moves. Therefore, it is thought\n" + "that the true body of this Pokémon\n" + "is actually inside the ball."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Rabsca, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Rabsca, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Rabsca, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Rabsca), + ICON(Rabsca, 0), + //.footprint = gMonFootprint_Rabsca, + LEARNSETS(Rabsca), + }, +#endif //P_FAMILY_RELLOR + +#if P_FAMILY_FLITTLE + [SPECIES_FLITTLE] = { - .baseHP = 95, - .baseAttack = 127, - .baseDefense = 184, - .baseSpeed = 38, - .baseSpAttack = 34, - .baseSpDefense = 36, - .types = { TYPE_ICE, TYPE_ROCK}, - .catchRate = 55, - .expYield = 180, - .evYield_Defense = 2, + .baseHP = 30, + .baseAttack = 35, + .baseDefense = 30, + .baseSpeed = 75, + .baseSpAttack = 55, + .baseSpDefense = 30, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .catchRate = 120, + .expYield = 51, + .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MONSTER, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_STRONG_JAW, ABILITY_ICE_BODY, ABILITY_STURDY}, - .bodyColor = BODY_COLOR_BLUE, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + .abilities = {ABILITY_ANTICIPATION, ABILITY_FRISK, ABILITY_SPEED_BOOST}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, - .flags = SPECIES_FLAG_HISUIAN_FORM, - }, -#endif - -#if P_GEN_7_POKEMON == TRUE - [SPECIES_DECIDUEYE_HISUIAN] = + .speciesName = _("Flittle"), + .cryId = CRY_FLITTLE, + .natDexNum = NATIONAL_DEX_FLITTLE, + .categoryName = _("Frill"), + .height = 2, + .weight = 15, + .description = COMPOUND_STRING( + "Flittle's toes levitate about half\n" + "an inch above the ground because of\n" + "the psychic power emitted from the\n" + "frills on the Pokémon's belly."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Flittle, 64, 64), + .frontPicYOffset = 12, + .frontAnimFrames = sAnims_Flittle, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Flittle, 64, 64), + .backPicYOffset = 9, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Flittle), + ICON(Flittle, 3), + //.footprint = gMonFootprint_Flittle, + LEARNSETS(Flittle), + .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_ESPATHRA}), + }, + + [SPECIES_ESPATHRA] = { - .baseHP = 88, - .baseAttack = 112, - .baseDefense = 80, - .baseSpeed = 60, - .baseSpAttack = 95, - .baseSpDefense = 95, - .types = { TYPE_GRASS, TYPE_FIGHTING}, - .catchRate = 45, - .expYield = 239, - .evYield_Attack = 3, - .genderRatio = PERCENT_FEMALE(12.5), - .eggCycles = 15, + .baseHP = 95, + .baseAttack = 60, + .baseDefense = 60, + .baseSpeed = 105, + .baseSpAttack = 101, + .baseSpDefense = 60, + .types = { TYPE_PSYCHIC, TYPE_PSYCHIC }, + .catchRate = 60, + .expYield = 168, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, - .abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_SCRAPPY}, - .bodyColor = BODY_COLOR_BROWN, - .noFlip = FALSE, - .flags = SPECIES_FLAG_HISUIAN_FORM, - }, -#endif - - [SPECIES_PIKACHU_COSPLAY] = COSPLAY_PIKACHU_SPECIES_INFO(FLIP), - [SPECIES_PIKACHU_ROCK_STAR] = COSPLAY_PIKACHU_SPECIES_INFO(FLIP), - [SPECIES_PIKACHU_BELLE] = COSPLAY_PIKACHU_SPECIES_INFO(NO_FLIP), - [SPECIES_PIKACHU_POP_STAR] = COSPLAY_PIKACHU_SPECIES_INFO(NO_FLIP), - [SPECIES_PIKACHU_PH_D] = COSPLAY_PIKACHU_SPECIES_INFO(FLIP), - [SPECIES_PIKACHU_LIBRE] = COSPLAY_PIKACHU_SPECIES_INFO(FLIP), - - [SPECIES_PIKACHU_ORIGINAL_CAP] = CAP_PIKACHU_SPECIES_INFO(NO_FLIP), - [SPECIES_PIKACHU_HOENN_CAP] = CAP_PIKACHU_SPECIES_INFO(FLIP), - [SPECIES_PIKACHU_SINNOH_CAP] = CAP_PIKACHU_SPECIES_INFO(FLIP), - [SPECIES_PIKACHU_UNOVA_CAP] = CAP_PIKACHU_SPECIES_INFO(FLIP), - [SPECIES_PIKACHU_KALOS_CAP] = CAP_PIKACHU_SPECIES_INFO(FLIP), - [SPECIES_PIKACHU_ALOLA_CAP] = CAP_PIKACHU_SPECIES_INFO(FLIP), - [SPECIES_PIKACHU_PARTNER_CAP] = CAP_PIKACHU_SPECIES_INFO(NO_FLIP), - [SPECIES_PIKACHU_WORLD_CAP] = CAP_PIKACHU_SPECIES_INFO(FLIP), - - [SPECIES_PICHU_SPIKY_EARED] = PICHU_SPECIES_INFO(NO_FLIP), - - [SPECIES_UNOWN_B] = UNOWN_SPECIES_INFO(NO_FLIP), - [SPECIES_UNOWN_C] = UNOWN_SPECIES_INFO(NO_FLIP), - [SPECIES_UNOWN_D] = UNOWN_SPECIES_INFO(NO_FLIP), - [SPECIES_UNOWN_E] = UNOWN_SPECIES_INFO(NO_FLIP), - [SPECIES_UNOWN_F] = UNOWN_SPECIES_INFO(NO_FLIP), - [SPECIES_UNOWN_G] = UNOWN_SPECIES_INFO(NO_FLIP), - [SPECIES_UNOWN_H] = UNOWN_SPECIES_INFO(NO_FLIP), - [SPECIES_UNOWN_I] = UNOWN_SPECIES_INFO(FLIP), - [SPECIES_UNOWN_J] = UNOWN_SPECIES_INFO(NO_FLIP), - [SPECIES_UNOWN_K] = UNOWN_SPECIES_INFO(NO_FLIP), - [SPECIES_UNOWN_L] = UNOWN_SPECIES_INFO(NO_FLIP), - [SPECIES_UNOWN_M] = UNOWN_SPECIES_INFO(FLIP), - [SPECIES_UNOWN_N] = UNOWN_SPECIES_INFO(NO_FLIP), - [SPECIES_UNOWN_O] = UNOWN_SPECIES_INFO(FLIP), - [SPECIES_UNOWN_P] = UNOWN_SPECIES_INFO(NO_FLIP), - [SPECIES_UNOWN_Q] = UNOWN_SPECIES_INFO(NO_FLIP), - [SPECIES_UNOWN_R] = UNOWN_SPECIES_INFO(NO_FLIP), - [SPECIES_UNOWN_S] = UNOWN_SPECIES_INFO(NO_FLIP), - [SPECIES_UNOWN_T] = UNOWN_SPECIES_INFO(FLIP), - [SPECIES_UNOWN_U] = UNOWN_SPECIES_INFO(FLIP), - [SPECIES_UNOWN_V] = UNOWN_SPECIES_INFO(NO_FLIP), - [SPECIES_UNOWN_W] = UNOWN_SPECIES_INFO(FLIP), - [SPECIES_UNOWN_X] = UNOWN_SPECIES_INFO(FLIP), - [SPECIES_UNOWN_Y] = UNOWN_SPECIES_INFO(FLIP), - [SPECIES_UNOWN_Z] = UNOWN_SPECIES_INFO(NO_FLIP), - [SPECIES_UNOWN_EMARK] = UNOWN_SPECIES_INFO(FLIP), - [SPECIES_UNOWN_QMARK] = UNOWN_SPECIES_INFO(NO_FLIP), - - [SPECIES_CASTFORM_SUNNY] = CASTFORM_SPECIES_INFO(TYPE_FIRE, BODY_COLOR_RED), - [SPECIES_CASTFORM_RAINY] = CASTFORM_SPECIES_INFO(TYPE_WATER, BODY_COLOR_BLUE), - [SPECIES_CASTFORM_SNOWY] = CASTFORM_SPECIES_INFO(TYPE_ICE, BODY_COLOR_WHITE), - - [SPECIES_DEOXYS_ATTACK] = - { - .baseHP = 50, - .baseAttack = 180, - .baseDefense = 20, - .baseSpeed = 150, - .baseSpAttack = 180, - .baseSpDefense = 20, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - .catchRate = 3, - .expYield = 270, - .evYield_Attack = 2, - .evYield_SpAttack = 1, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_PRESSURE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_RED, - .noFlip = FALSE, - }, - - [SPECIES_DEOXYS_DEFENSE] = - { - .baseHP = 50, - .baseAttack = 70, - .baseDefense = 160, - .baseSpeed = 90, - .baseSpAttack = 70, - .baseSpDefense = 160, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - .catchRate = 3, - .expYield = 270, - .evYield_Defense = 2, - .evYield_SpDefense = 1, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_PRESSURE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_RED, + .abilities = {ABILITY_OPPORTUNIST, ABILITY_FRISK, ABILITY_SPEED_BOOST}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, - }, - - [SPECIES_DEOXYS_SPEED] = + .speciesName = _("Espathra"), + .cryId = CRY_ESPATHRA, + .natDexNum = NATIONAL_DEX_ESPATHRA, + .categoryName = _("Ostrich"), + .height = 19, + .weight = 900, + .description = COMPOUND_STRING( + "It immobilizes opponents by\n" + "bathing them in psychic power from its\n" + "large eyes. Despite its appearance, it\n" + "has a vicious temperament."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Espathra, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Espathra, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Espathra, 64, 64), + .backPicYOffset = 11, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Espathra), + ICON(Espathra, 5), + //.footprint = gMonFootprint_Espathra, + LEARNSETS(Espathra), + }, +#endif //P_FAMILY_FLITTLE + +#if P_FAMILY_TINKATINK + [SPECIES_TINKATINK] = { .baseHP = 50, - .baseAttack = 95, - .baseDefense = 90, - .baseSpeed = 180, - .baseSpAttack = 95, - .baseSpDefense = 90, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - .catchRate = 3, - .expYield = 270, - .evYield_Speed = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_PRESSURE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_RED, - .noFlip = TRUE, - }, - -#if P_GEN_4_POKEMON == TRUE - [SPECIES_BURMY_SANDY_CLOAK] = BURMY_SPECIES_INFO(BODY_COLOR_BROWN), - [SPECIES_BURMY_TRASH_CLOAK] = BURMY_SPECIES_INFO(BODY_COLOR_RED), - - [SPECIES_WORMADAM_SANDY_CLOAK] = + .baseAttack = 45, + .baseDefense = 45, + .baseSpeed = 58, + .baseSpAttack = 35, + .baseSpDefense = 64, + .types = { TYPE_FAIRY, TYPE_STEEL }, + .catchRate = 190, + .expYield = 59, + .evYield_SpDefense = 1, + .genderRatio = MON_FEMALE, + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, + .abilities = {ABILITY_MOLD_BREAKER, ABILITY_OWN_TEMPO, ABILITY_PICKPOCKET}, + .bodyColor = BODY_COLOR_PINK, + .noFlip = FALSE, + .speciesName = _("Tinkatink"), + .cryId = CRY_TINKATINK, + .natDexNum = NATIONAL_DEX_TINKATINK, + .categoryName = _("Metalsmith"), + .height = 4, + .weight = 89, + .description = COMPOUND_STRING( + "This Pokémon pounds iron scraps\n" + "together to make a hammer. It will\n" + "remake the hammer again and again until\n" + "it's satisfied with the result."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Tinkatink, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Tinkatink, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Tinkatink, 64, 64), + .backPicYOffset = 12, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Tinkatink), + ICON(Tinkatink, 1), + //.footprint = gMonFootprint_Tinkatink, + LEARNSETS(Tinkatink), + .evolutions = EVOLUTION({EVO_LEVEL, 24, SPECIES_TINKATUFF}), + }, + + [SPECIES_TINKATUFF] = { - .baseHP = 60, - .baseAttack = 79, - .baseDefense = 105, - .baseSpeed = 36, - .baseSpAttack = 59, - .baseSpDefense = 85, - .types = { TYPE_BUG, TYPE_GROUND}, - .catchRate = 45, - .expYield = 148, - .evYield_Defense = 2, - .itemRare = ITEM_SILVER_POWDER, + .baseHP = 65, + .baseAttack = 55, + .baseDefense = 55, + .baseSpeed = 78, + .baseSpAttack = 45, + .baseSpDefense = 82, + .types = { TYPE_FAIRY, TYPE_STEEL }, + .catchRate = 90, + .expYield = 133, + .evYield_SpDefense = 2, .genderRatio = MON_FEMALE, - .eggCycles = 15, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_ANTICIPATION, ABILITY_NONE, ABILITY_OVERCOAT}, - .bodyColor = BODY_COLOR_BROWN, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, + .abilities = {ABILITY_MOLD_BREAKER, ABILITY_OWN_TEMPO, ABILITY_PICKPOCKET}, + .bodyColor = BODY_COLOR_PINK, .noFlip = FALSE, - }, - - [SPECIES_WORMADAM_TRASH_CLOAK] = + .speciesName = _("Tinkatuff"), + .cryId = CRY_TINKATUFF, + .natDexNum = NATIONAL_DEX_TINKATUFF, + .categoryName = _("Hammer"), + .height = 7, + .weight = 591, + .description = COMPOUND_STRING( + "These Pokémon make their homes in\n" + "piles of scrap metal. They test the\n" + "strength of each other's hammers by\n" + "smashing them together."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Tinkatuff, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Tinkatuff, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Tinkatuff, 64, 64), + .backPicYOffset = 2, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Tinkatuff), + ICON(Tinkatuff, 4), + //.footprint = gMonFootprint_Tinkatuff, + LEARNSETS(Tinkatuff), + .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_TINKATON}), + }, + + [SPECIES_TINKATON] = { - .baseHP = 60, - .baseAttack = 69, - .baseDefense = 95, - .baseSpeed = 36, - .baseSpAttack = 69, - .baseSpDefense = 95, - .types = { TYPE_BUG, TYPE_STEEL}, + .baseHP = 85, + .baseAttack = 75, + .baseDefense = 77, + .baseSpeed = 94, + .baseSpAttack = 70, + .baseSpDefense = 105, + .types = { TYPE_FAIRY, TYPE_STEEL }, .catchRate = 45, - .expYield = 148, - .evYield_Defense = 1, - .evYield_SpDefense = 1, - .itemRare = ITEM_SILVER_POWDER, + .expYield = 253, + .evYield_SpDefense = 3, .genderRatio = MON_FEMALE, - .eggCycles = 15, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_BUG, EGG_GROUP_BUG}, - .abilities = {ABILITY_ANTICIPATION, ABILITY_NONE, ABILITY_OVERCOAT}, - .bodyColor = BODY_COLOR_RED, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, + .abilities = {ABILITY_MOLD_BREAKER, ABILITY_OWN_TEMPO, ABILITY_PICKPOCKET}, + .bodyColor = BODY_COLOR_PINK, .noFlip = FALSE, - }, - - [SPECIES_CHERRIM_SUNSHINE] = CHERRIM_SPECIES_INFO(BODY_COLOR_PINK), - - [SPECIES_SHELLOS_EAST_SEA] = SHELLOS_SPECIES_INFO(BODY_COLOR_BLUE), - - [SPECIES_GASTRODON_EAST_SEA] = GASTRODON_SPECIES_INFO(BODY_COLOR_BLUE), - - [SPECIES_ROTOM_HEAT] = ROTOM_FORM_SPECIES_INFO(TYPE_FIRE, FLIP), - [SPECIES_ROTOM_WASH] = ROTOM_FORM_SPECIES_INFO(TYPE_WATER, NO_FLIP), - [SPECIES_ROTOM_FROST] = ROTOM_FORM_SPECIES_INFO(TYPE_ICE, FLIP), - [SPECIES_ROTOM_FAN] = ROTOM_FORM_SPECIES_INFO(TYPE_FLYING, FLIP), - [SPECIES_ROTOM_MOW] = ROTOM_FORM_SPECIES_INFO(TYPE_GRASS, FLIP), - - [SPECIES_DIALGA_ORIGIN] = + .speciesName = _("Tinkaton"), + .cryId = CRY_TINKATON, + .natDexNum = NATIONAL_DEX_TINKATON, + .categoryName = _("Hammer"), + .height = 7, + .weight = 1128, + .description = COMPOUND_STRING( + "The hammer tops 220 pounds, yet it\n" + "gets swung around easily by\n" + "Tinkaton as it steals whatever it pleases\n" + "and carries its plunder back home."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Tinkaton, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Tinkaton, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Tinkaton, 64, 64), + .backPicYOffset = 15, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Tinkaton), + ICON(Tinkaton, 4), + //.footprint = gMonFootprint_Tinkaton, + LEARNSETS(Tinkaton), + }, +#endif //P_FAMILY_TINKATINK + +#if P_FAMILY_WIGLETT + [SPECIES_WIGLETT] = { - .baseHP = 100, - .baseAttack = 100, - .baseDefense = 120, - .baseSpeed = 90, - .baseSpAttack = 150, - .baseSpDefense = 120, - .types = { TYPE_STEEL, TYPE_DRAGON}, - .catchRate = 3, - .expYield = 306, - .evYield_SpAttack = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_TELEPATHY}, + .baseHP = 10, + .baseAttack = 55, + .baseDefense = 25, + .baseSpeed = 95, + .baseSpAttack = 35, + .baseSpDefense = 25, + .types = { TYPE_WATER, TYPE_WATER }, + .catchRate = 255, + .expYield = 49, + .evYield_Speed = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, + .abilities = {ABILITY_GOOEY, ABILITY_RATTLED, ABILITY_SAND_VEIL}, .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_PALKIA_ORIGIN] = + .speciesName = _("Wiglett"), + .cryId = CRY_WIGLETT, + .natDexNum = NATIONAL_DEX_WIGLETT, + .categoryName = _("Garden Eel"), + .height = 12, + .weight = 18, + .description = COMPOUND_STRING( + "This Pokémon can pick up the scent\n" + "of a Veluza just over 65 feet away\n" + "and will hide itself in the sand."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Wiglett, 64, 64), + .frontPicYOffset = 17, + .frontAnimFrames = sAnims_Wiglett, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Wiglett, 64, 64), + .backPicYOffset = 14, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Wiglett), + ICON(Wiglett, 0), + //.footprint = gMonFootprint_Wiglett, + LEARNSETS(Wiglett), + .evolutions = EVOLUTION({EVO_LEVEL, 26, SPECIES_WUGTRIO}), + }, + + [SPECIES_WUGTRIO] = { - .baseHP = 90, + .baseHP = 35, .baseAttack = 100, - .baseDefense = 100, + .baseDefense = 50, .baseSpeed = 120, - .baseSpAttack = 150, - .baseSpDefense = 120, - .types = { TYPE_WATER, TYPE_DRAGON}, - .catchRate = 3, - .expYield = 306, - .evYield_SpAttack = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_PRESSURE, ABILITY_NONE, ABILITY_TELEPATHY}, - .bodyColor = BODY_COLOR_PURPLE, + .baseSpAttack = 50, + .baseSpDefense = 70, + .types = { TYPE_WATER, TYPE_WATER }, + .catchRate = 50, + .expYield = 149, + .evYield_Speed = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 20, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_WATER_3, EGG_GROUP_WATER_3}, + .abilities = {ABILITY_GOOEY, ABILITY_RATTLED, ABILITY_SAND_VEIL}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_GIRATINA_ORIGIN] = + .speciesName = _("Wugtrio"), + .cryId = CRY_WUGTRIO, + .natDexNum = NATIONAL_DEX_WUGTRIO, + .categoryName = _("Garden Eel"), + .height = 12, + .weight = 54, + .description = COMPOUND_STRING( + "A variety of fish Pokémon, Wugtrio\n" + "was once considered to be a\n" + "regional form of Dugtrio."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Wugtrio, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Wugtrio, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Wugtrio, 64, 64), + .backPicYOffset = 11, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Wugtrio), + ICON(Wugtrio, 0), + //.footprint = gMonFootprint_Wugtrio, + LEARNSETS(Wugtrio), + }, +#endif //P_FAMILY_WIGLETT + +#if P_FAMILY_BOMBIRDIER + [SPECIES_BOMBIRDIER] = { - .baseHP = 150, - .baseAttack = 120, - .baseDefense = 100, - .baseSpeed = 90, - .baseSpAttack = 120, - .baseSpDefense = 100, - .types = { TYPE_GHOST, TYPE_DRAGON}, - .catchRate = 3, - .expYield = 306, - .evYield_HP = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, + .baseHP = 70, + .baseAttack = 103, + .baseDefense = 85, + .baseSpeed = 82, + .baseSpAttack = 60, + .baseSpDefense = 85, + .types = { TYPE_FLYING, TYPE_DARK }, + .catchRate = 25, + .expYield = 243, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 35, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_LEVITATE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLACK, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + .abilities = {ABILITY_BIG_PECKS, ABILITY_KEEN_EYE, ABILITY_ROCKY_PAYLOAD}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - }, - - [SPECIES_SHAYMIN_SKY] = - { - .baseHP = 100, - .baseAttack = 103, - .baseDefense = 75, - .baseSpeed = 127, - .baseSpAttack = 120, - .baseSpDefense = 75, - .types = { TYPE_GRASS, TYPE_FLYING}, - .catchRate = 45, - .expYield = 270, - .evYield_HP = 3, - .itemCommon = ITEM_LUM_BERRY, - .itemRare = ITEM_LUM_BERRY, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 100, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_SERENE_GRACE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GREEN, - .noFlip = TRUE, - }, - - [SPECIES_ARCEUS_FIGHTING] = ARCEUS_SPECIES_INFO(TYPE_FIGHTING), - [SPECIES_ARCEUS_FLYING] = ARCEUS_SPECIES_INFO(TYPE_FLYING), - [SPECIES_ARCEUS_POISON] = ARCEUS_SPECIES_INFO(TYPE_POISON), - [SPECIES_ARCEUS_GROUND] = ARCEUS_SPECIES_INFO(TYPE_GROUND), - [SPECIES_ARCEUS_ROCK] = ARCEUS_SPECIES_INFO(TYPE_ROCK), - [SPECIES_ARCEUS_BUG] = ARCEUS_SPECIES_INFO(TYPE_BUG), - [SPECIES_ARCEUS_GHOST] = ARCEUS_SPECIES_INFO(TYPE_GHOST), - [SPECIES_ARCEUS_STEEL] = ARCEUS_SPECIES_INFO(TYPE_STEEL), - [SPECIES_ARCEUS_FIRE] = ARCEUS_SPECIES_INFO(TYPE_FIRE), - [SPECIES_ARCEUS_WATER] = ARCEUS_SPECIES_INFO(TYPE_WATER), - [SPECIES_ARCEUS_GRASS] = ARCEUS_SPECIES_INFO(TYPE_GRASS), - [SPECIES_ARCEUS_ELECTRIC] = ARCEUS_SPECIES_INFO(TYPE_ELECTRIC), - [SPECIES_ARCEUS_PSYCHIC] = ARCEUS_SPECIES_INFO(TYPE_PSYCHIC), - [SPECIES_ARCEUS_ICE] = ARCEUS_SPECIES_INFO(TYPE_ICE), - [SPECIES_ARCEUS_DRAGON] = ARCEUS_SPECIES_INFO(TYPE_DRAGON), - [SPECIES_ARCEUS_DARK] = ARCEUS_SPECIES_INFO(TYPE_DARK), - [SPECIES_ARCEUS_FAIRY] = ARCEUS_SPECIES_INFO(TYPE_FAIRY), -#endif - -#if P_GEN_5_POKEMON == TRUE - [SPECIES_BASCULIN_BLUE_STRIPED] = + .speciesName = _("Bombirdier"), + .cryId = CRY_BOMBIRDIER, + .natDexNum = NATIONAL_DEX_BOMBIRDIER, + .categoryName = _("Item Drop"), + .height = 15, + .weight = 429, + .description = COMPOUND_STRING( + "Bombirdier uses the apron on its\n" + "chest to bundle up food, which it\n" + "carries back to its nest. It enjoys\n" + "dropping things that make loud noises."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Bombirdier, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Bombirdier, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 11, + BACK_PIC(Bombirdier, 64, 64), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Bombirdier), + ICON(Bombirdier, 0), + //.footprint = gMonFootprint_Bombirdier, + LEARNSETS(Bombirdier), + }, +#endif //P_FAMILY_BOMBIRDIER + +#if P_FAMILY_FINIZEN + [SPECIES_FINIZEN] = { .baseHP = 70, - .baseAttack = 92, - .baseDefense = 65, - .baseSpeed = 98, - .baseSpAttack = 80, - .baseSpDefense = 55, - .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 25, - .expYield = 161, - .evYield_Speed = 2, - .itemRare = ITEM_DEEP_SEA_SCALE, + .baseAttack = 45, + .baseDefense = 40, + .baseSpeed = 75, + .baseSpAttack = 45, + .baseSpDefense = 40, + .types = { TYPE_WATER, TYPE_WATER }, + .catchRate = 200, + .expYield = 63, + .evYield_Speed = 1, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, - .abilities = {ABILITY_ROCK_HEAD, ABILITY_ADAPTABILITY, ABILITY_MOLD_BREAKER}, - .bodyColor = BODY_COLOR_GREEN, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_WATER_2}, + .abilities = {ABILITY_WATER_VEIL, ABILITY_NONE}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - }, - - [SPECIES_BASCULIN_WHITE_STRIPED] = + .speciesName = _("Finizen"), + .cryId = CRY_FINIZEN, + .natDexNum = NATIONAL_DEX_FINIZEN, + .categoryName = _("Dolphin"), + .height = 13, + .weight = 602, + .description = COMPOUND_STRING( + "Its water ring is made from\n" + "seawater mixed with a sticky fluid that\n" + "Finizen secretes from its blowhole."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Finizen, 64, 64), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Finizen, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Finizen, 64, 64), + .backPicYOffset = 15, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Finizen), + ICON(Finizen, 0), + //.footprint = gMonFootprint_Finizen, + LEARNSETS(Finizen), + .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_PALAFIN_ZERO}), + }, + +#define PALAFIN_MISC_INFO \ + .types = { TYPE_WATER, TYPE_WATER }, \ + .catchRate = 45, \ + .evYield_HP = 2, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 40, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_WATER_2}, \ + .abilities = {ABILITY_ZERO_TO_HERO, ABILITY_NONE}, \ + .bodyColor = BODY_COLOR_BLUE, \ + .noFlip = FALSE, \ + .speciesName = _("Palafin"), \ + .natDexNum = NATIONAL_DEX_PALAFIN, \ + .pokemonScale = 356, \ + .pokemonOffset = 17, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .frontPicYOffset = 4, \ + .frontAnimFrames = sAnims_Palafin, \ + LEARNSETS(Palafin), \ + .formSpeciesIdTable = sPalafinFormSpeciesIdTable, \ + .formChangeTable = sPalafinZeroFormChangeTable + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + //.footprint = gMonFootprint_Palafin, + + [SPECIES_PALAFIN_ZERO] = + { + PALAFIN_MISC_INFO, + .baseHP = 100, + .baseAttack = 70, + .baseDefense = 72, + .baseSpeed = 100, + .baseSpAttack = 53, + .baseSpDefense = 62, + .expYield = 160, + .cryId = CRY_PALAFIN_ZERO, + .categoryName = _("Dolphin"), + .height = 13, + .weight = 602, + .description = COMPOUND_STRING( + "This Pokémon changes its\n" + "appearance if it hears its allies calling for\n" + "help. Palafin will never show\n" + "anybody its moment of transformation."), + FRONT_PIC(PalafinZero, 64, 64), + BACK_PIC(PalafinZero, 64, 64), + .backPicYOffset = 15, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(PalafinZero), + ICON(PalafinZero, 0), + }, + + [SPECIES_PALAFIN_HERO] = + { + PALAFIN_MISC_INFO, + .baseHP = 100, + .baseAttack = 160, + .baseDefense = 97, + .baseSpeed = 100, + .baseSpAttack = 106, + .baseSpDefense = 87, + .expYield = 228, + .cryId = CRY_PALAFIN_HERO, + .categoryName = _("Hero"), + .height = 18, + .weight = 974, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(PalafinHero, 64, 64), + BACK_PIC(PalafinHero, 64, 64), + .backPicYOffset = 1, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(PalafinHero), + ICON(PalafinHero, 0), + }, +#endif //P_FAMILY_FINIZEN + +#if P_FAMILY_VAROOM + [SPECIES_VAROOM] = { - .baseHP = 70, - .baseAttack = 92, - .baseDefense = 65, - .baseSpeed = 98, - .baseSpAttack = 80, - .baseSpDefense = 55, - .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 25, - .expYield = 161, - .evYield_Speed = 2, - .itemRare = ITEM_DEEP_SEA_SCALE, + .baseHP = 45, + .baseAttack = 70, + .baseDefense = 63, + .baseSpeed = 47, + .baseSpAttack = 30, + .baseSpDefense = 45, + .types = { TYPE_STEEL, TYPE_POISON }, + .catchRate = 190, + .expYield = 60, + .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 40, + .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, - .abilities = {ABILITY_RATTLED, ABILITY_ADAPTABILITY, ABILITY_MOLD_BREAKER}, - .bodyColor = BODY_COLOR_GREEN, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_OVERCOAT, ABILITY_NONE, ABILITY_SLOW_START}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, - }, - - [SPECIES_DARMANITAN_ZEN_MODE] = + .speciesName = _("Varoom"), + .cryId = CRY_VAROOM, + .natDexNum = NATIONAL_DEX_VAROOM, + .categoryName = _("Single-Cyl"), + .height = 10, + .weight = 350, + .description = COMPOUND_STRING( + "The steel section is Varoom's\n" + "actual body. This Pokémon clings to\n" + "rocks and converts the minerals within\n" + "into energy to fuel its activities."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Varoom, 64, 64), + .frontPicYOffset = 13, + .frontAnimFrames = sAnims_Varoom, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Varoom, 64, 64), + .backPicYOffset = 13, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Varoom), + ICON(Varoom, 5), + //.footprint = gMonFootprint_Varoom, + LEARNSETS(Varoom), + .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_REVAVROOM}), + }, + + [SPECIES_REVAVROOM] = { - .baseHP = 105, - .baseAttack = 30, - .baseDefense = 105, - .baseSpeed = 55, - .baseSpAttack = 140, - .baseSpDefense = 105, - .types = { TYPE_FIRE, TYPE_PSYCHIC}, - .catchRate = 60, - .expYield = 189, - .evYield_SpAttack = 2, + .baseHP = 80, + .baseAttack = 119, + .baseDefense = 90, + .baseSpeed = 90, + .baseSpAttack = 54, + .baseSpDefense = 67, + .types = { TYPE_STEEL, TYPE_POISON }, + .catchRate = 75, + .expYield = 175, + .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_SHEER_FORCE, ABILITY_NONE, ABILITY_ZEN_MODE}, - .bodyColor = BODY_COLOR_BLUE, + .growthRate = GROWTH_MEDIUM_FAST, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_OVERCOAT, ABILITY_NONE, ABILITY_FILTER}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, - }, - - [SPECIES_DARMANITAN_GALARIAN_ZEN_MODE] = + .speciesName = _("Revavroom"), + .cryId = CRY_REVAVROOM, + .natDexNum = NATIONAL_DEX_REVAVROOM, + .categoryName = _("Multi-Cyl"), + .height = 18, + .weight = 1200, + .description = COMPOUND_STRING( + "It creates a gas out of poison and\n" + "minerals from rocks. It then\n" + "detonates the gas in its cylinders- now\n" + "numbering eight-to generate energy."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Revavroom, 64, 64), + .frontPicYOffset = 8, + .frontAnimFrames = sAnims_Revavroom, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Revavroom, 64, 64), + .backPicYOffset = 16, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Revavroom), + ICON(Revavroom, 5), + //.footprint = gMonFootprint_Revavroom, + LEARNSETS(Revavroom), + }, +#endif //P_FAMILY_VAROOM + +#if P_FAMILY_CYCLIZAR + [SPECIES_CYCLIZAR] = { - .baseHP = 105, - .baseAttack = 160, - .baseDefense = 55, - .baseSpeed = 135, - .baseSpAttack = 30, - .baseSpDefense = 55, - .types = { TYPE_ICE, TYPE_FIRE}, - .catchRate = 60, - .expYield = 189, - .evYield_SpAttack = 2, + .baseHP = 70, + .baseAttack = 95, + .baseDefense = 65, + .baseSpeed = 121, + .baseSpAttack = 85, + .baseSpDefense = 65, + .types = { TYPE_DRAGON, TYPE_NORMAL }, + .catchRate = 190, + .expYield = 175, + .evYield_Speed = 2, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 20, + .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_GORILLA_TACTICS, ABILITY_NONE, ABILITY_ZEN_MODE}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = FALSE, - .flags = SPECIES_FLAG_GALARIAN_FORM, - }, - - [SPECIES_DEERLING_SUMMER] = DEERLING_SPECIES_INFO(BODY_COLOR_GREEN), - [SPECIES_DEERLING_AUTUMN] = DEERLING_SPECIES_INFO(BODY_COLOR_RED), - [SPECIES_DEERLING_WINTER] = DEERLING_SPECIES_INFO(BODY_COLOR_BROWN), - - [SPECIES_SAWSBUCK_SUMMER] = SAWSBUCK_SPECIES_INFO, - [SPECIES_SAWSBUCK_AUTUMN] = SAWSBUCK_SPECIES_INFO, - [SPECIES_SAWSBUCK_WINTER] = SAWSBUCK_SPECIES_INFO, - - [SPECIES_TORNADUS_THERIAN] = - { - .baseHP = 79, - .baseAttack = 100, - .baseDefense = 80, - .baseSpeed = 121, - .baseSpAttack = 110, - .baseSpDefense = 90, - .types = { TYPE_FLYING, TYPE_FLYING}, - .catchRate = 3, - .expYield = 261, - .evYield_Attack = 3, - .genderRatio = MON_MALE, - .eggCycles = 120, - .friendship = 90, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_REGENERATOR, ABILITY_NONE}, + .abilities = {ABILITY_SHED_SKIN, ABILITY_NONE, ABILITY_REGENERATOR}, .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_THUNDURUS_THERIAN] = + .speciesName = _("Cyclizar"), + .cryId = CRY_CYCLIZAR, + .natDexNum = NATIONAL_DEX_CYCLIZAR, + .categoryName = _("Mount"), + .height = 16, + .weight = 630, + .description = COMPOUND_STRING( + "It can sprint at over 70 mph while\n" + "carrying a human. The rider's body\n" + "heat warms Cyclizar's back and lifts\n" + "the Pokémon's spirit."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Cyclizar, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Cyclizar, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Cyclizar, 64, 64), + .backPicYOffset = 6, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Cyclizar), + ICON(Cyclizar, 1), + //.footprint = gMonFootprint_Cyclizar, + LEARNSETS(Cyclizar), + }, +#endif //P_FAMILY_CYCLIZAR + +#if P_FAMILY_ORTHWORM + [SPECIES_ORTHWORM] = { - .baseHP = 79, - .baseAttack = 105, - .baseDefense = 70, - .baseSpeed = 101, - .baseSpAttack = 145, - .baseSpDefense = 80, - .types = { TYPE_ELECTRIC, TYPE_FLYING}, - .catchRate = 3, - .expYield = 261, - .evYield_SpAttack = 3, - .genderRatio = MON_MALE, - .eggCycles = 120, - .friendship = 90, + .baseHP = 70, + .baseAttack = 85, + .baseDefense = 145, + .baseSpeed = 65, + .baseSpAttack = 60, + .baseSpDefense = 55, + .types = { TYPE_STEEL, TYPE_STEEL }, + .catchRate = 25, + .expYield = 240, + .evYield_Defense = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 35, + .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_VOLT_ABSORB, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLUE, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_EARTH_EATER, ABILITY_NONE, ABILITY_SAND_VEIL}, + .bodyColor = BODY_COLOR_PINK, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_LANDORUS_THERIAN] = + .speciesName = _("Orthworm"), + .cryId = CRY_ORTHWORM, + .natDexNum = NATIONAL_DEX_ORTHWORM, + .categoryName = _("Earthworm"), + .height = 25, + .weight = 3100, + .description = COMPOUND_STRING( + "When attacked, this Pokémon will\n" + "wield the tendrils on its body like\n" + "fists and pelt the opponent with a\n" + "storm of punches."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Orthworm, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Orthworm, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Orthworm, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Orthworm), + ICON(Orthworm, 4), + //.footprint = gMonFootprint_Orthworm, + LEARNSETS(Orthworm), + }, +#endif //P_FAMILY_ORTHWORM + +#if P_FAMILY_GLIMMET + [SPECIES_GLIMMET] = { - .baseHP = 89, - .baseAttack = 145, - .baseDefense = 90, - .baseSpeed = 91, + .baseHP = 48, + .baseAttack = 35, + .baseDefense = 42, + .baseSpeed = 60, .baseSpAttack = 105, - .baseSpDefense = 80, - .types = { TYPE_GROUND, TYPE_FLYING}, - .catchRate = 3, - .expYield = 270, - .evYield_Attack = 3, - .genderRatio = MON_MALE, - .eggCycles = 120, - .friendship = 90, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_INTIMIDATE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BROWN, + .baseSpDefense = 60, + .types = { TYPE_ROCK, TYPE_POISON }, + .catchRate = 70, + .expYield = 70, + .evYield_SpAttack = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 30, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_TOXIC_DEBRIS, ABILITY_NONE, ABILITY_CORROSION}, + .bodyColor = BODY_COLOR_BLUE, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_KYUREM_WHITE] = - { - .baseHP = 125, - .baseAttack = 120, - .baseDefense = 90, - .baseSpeed = 95, - .baseSpAttack = 170, - .baseSpDefense = 100, - .types = { TYPE_DRAGON, TYPE_ICE}, - .catchRate = 3, - .expYield = 315, - .evYield_SpAttack = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_TURBOBLAZE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = TRUE, - .flags = SPECIES_FLAG_LEGENDARY | SPECIES_FLAG_CANNOT_BE_TRADED, - }, - - [SPECIES_KYUREM_BLACK] = - { - .baseHP = 125, - .baseAttack = 170, - .baseDefense = 100, - .baseSpeed = 95, - .baseSpAttack = 120, - .baseSpDefense = 90, - .types = { TYPE_DRAGON, TYPE_ICE}, - .catchRate = 3, - .expYield = 315, - .evYield_Attack = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 0, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_TERAVOLT, ABILITY_NONE}, - .bodyColor = BODY_COLOR_GRAY, - .noFlip = TRUE, - .flags = SPECIES_FLAG_LEGENDARY | SPECIES_FLAG_CANNOT_BE_TRADED, - }, - - [SPECIES_KELDEO_RESOLUTE] = - { - .baseHP = 91, - .baseAttack = 72, - .baseDefense = 90, - .baseSpeed = 108, - .baseSpAttack = 129, - .baseSpDefense = 90, - .types = { TYPE_WATER, TYPE_FIGHTING}, - .catchRate = 3, - .expYield = 261, - .evYield_SpAttack = 3, - .genderRatio = MON_GENDERLESS, - .eggCycles = 80, - .friendship = 35, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_JUSTIFIED, ABILITY_NONE}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = TRUE, - .flags = SPECIES_FLAG_MYTHICAL, - }, - - [SPECIES_MELOETTA_PIROUETTE] = + .speciesName = _("Glimmet"), + .cryId = CRY_GLIMMET, + .natDexNum = NATIONAL_DEX_GLIMMET, + .categoryName = _("Ore"), + .height = 7, + .weight = 80, + .description = COMPOUND_STRING( + "Glimmet's toxic mineral crystals\n" + "look just like flower petals. This\n" + "Pokémon scatters poisonous powder like\n" + "pollen to protect itself."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Glimmet, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Glimmet, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 1, + BACK_PIC(Glimmet, 64, 64), + .backPicYOffset = 14, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Glimmet), + ICON(Glimmet, 0), + //.footprint = gMonFootprint_Glimmet, + LEARNSETS(Glimmet), + .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_GLIMMORA}), + }, + + [SPECIES_GLIMMORA] = { - .baseHP = 100, - .baseAttack = 128, + .baseHP = 83, + .baseAttack = 55, .baseDefense = 90, - .baseSpeed = 128, - .baseSpAttack = 77, - .baseSpDefense = 77, - .types = { TYPE_NORMAL, TYPE_FIGHTING}, - .catchRate = 3, - .expYield = 270, - .evYield_Attack = 1, - .evYield_Defense = 1, - .evYield_Speed = 1, - .itemCommon = ITEM_STAR_PIECE, - .itemRare = ITEM_STAR_PIECE, - .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 100, - .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_SERENE_GRACE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_WHITE, - .noFlip = TRUE, - .flags = SPECIES_FLAG_MYTHICAL, - }, - - [SPECIES_GENESECT_DOUSE_DRIVE] = GENESECT_SPECIES_INFO, - [SPECIES_GENESECT_SHOCK_DRIVE] = GENESECT_SPECIES_INFO, - [SPECIES_GENESECT_BURN_DRIVE] = GENESECT_SPECIES_INFO, - [SPECIES_GENESECT_CHILL_DRIVE] = GENESECT_SPECIES_INFO, -#endif - -#if P_GEN_6_POKEMON == TRUE - [SPECIES_GRENINJA_BATTLE_BOND] = - { - .baseHP = 72, - .baseAttack = 95, - .baseDefense = 67, - .baseSpeed = 122, - .baseSpAttack = 103, - .baseSpDefense = 71, - .types = { TYPE_WATER, TYPE_DARK}, - .catchRate = 45, - .expYield = 239, - .evYield_Speed = 3, - .genderRatio = MON_MALE, - .eggCycles = 20, + .baseSpeed = 86, + .baseSpAttack = 130, + .baseSpDefense = 81, + .types = { TYPE_ROCK, TYPE_POISON }, + .catchRate = 25, + .expYield = 184, + .evYield_SpAttack = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 30, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_BATTLE_BOND, ABILITY_NONE}, + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_TOXIC_DEBRIS, ABILITY_NONE, ABILITY_CORROSION}, .bodyColor = BODY_COLOR_BLUE, - .noFlip = TRUE, - }, - - [SPECIES_GRENINJA_ASH] = + .noFlip = FALSE, + .speciesName = _("Glimmora"), + .cryId = CRY_GLIMMORA, + .natDexNum = NATIONAL_DEX_GLIMMORA, + .categoryName = _("Ore"), + .height = 15, + .weight = 450, + .description = COMPOUND_STRING( + "Glimmora's petals are made of\n" + "crystallized poison energy. It has\n" + "recently become evident that these\n" + "petals resemble Tera Jewels."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Glimmora, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Glimmora, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 10, + BACK_PIC(Glimmora, 64, 64), + .backPicYOffset = 11, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Glimmora), + ICON(Glimmora, 0), + //.footprint = gMonFootprint_Glimmora, + LEARNSETS(Glimmora), + }, +#endif //P_FAMILY_GLIMMET + +#if P_FAMILY_GREAVARD + [SPECIES_GREAVARD] = { - .baseHP = 72, - .baseAttack = 145, - .baseDefense = 67, - .baseSpeed = 132, - .baseSpAttack = 153, - .baseSpDefense = 71, - .types = { TYPE_WATER, TYPE_DARK}, - .catchRate = 45, - .expYield = 288, - .evYield_Speed = 3, - .genderRatio = MON_MALE, + .baseHP = 50, + .baseAttack = 61, + .baseDefense = 60, + .baseSpeed = 34, + .baseSpAttack = 30, + .baseSpDefense = 55, + .types = { TYPE_GHOST, TYPE_GHOST }, + .catchRate = 120, + .expYield = 58, + .evYield_Attack = 1, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, .growthRate = GROWTH_MEDIUM_SLOW, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_BATTLE_BOND, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = TRUE, - }, - - [SPECIES_VIVILLON_POLAR] = VIVILLON_SPECIES_INFO(BODY_COLOR_BLUE), - [SPECIES_VIVILLON_TUNDRA] = VIVILLON_SPECIES_INFO(BODY_COLOR_BLUE), - [SPECIES_VIVILLON_CONTINENTAL] = VIVILLON_SPECIES_INFO(BODY_COLOR_YELLOW), - [SPECIES_VIVILLON_GARDEN] = VIVILLON_SPECIES_INFO(BODY_COLOR_GREEN), - [SPECIES_VIVILLON_ELEGANT] = VIVILLON_SPECIES_INFO(BODY_COLOR_PURPLE), - [SPECIES_VIVILLON_MEADOW] = VIVILLON_SPECIES_INFO(BODY_COLOR_PINK), - [SPECIES_VIVILLON_MODERN] = VIVILLON_SPECIES_INFO(BODY_COLOR_RED), - [SPECIES_VIVILLON_MARINE] = VIVILLON_SPECIES_INFO(BODY_COLOR_BLUE), - [SPECIES_VIVILLON_ARCHIPELAGO] = VIVILLON_SPECIES_INFO(BODY_COLOR_BROWN), - [SPECIES_VIVILLON_HIGH_PLAINS] = VIVILLON_SPECIES_INFO(BODY_COLOR_BROWN), - [SPECIES_VIVILLON_SANDSTORM] = VIVILLON_SPECIES_INFO(BODY_COLOR_BROWN), - [SPECIES_VIVILLON_RIVER] = VIVILLON_SPECIES_INFO(BODY_COLOR_BROWN), - [SPECIES_VIVILLON_MONSOON] = VIVILLON_SPECIES_INFO(BODY_COLOR_GRAY), - [SPECIES_VIVILLON_SAVANNA] = VIVILLON_SPECIES_INFO(BODY_COLOR_GREEN), - [SPECIES_VIVILLON_SUN] = VIVILLON_SPECIES_INFO(BODY_COLOR_RED), - [SPECIES_VIVILLON_OCEAN] = VIVILLON_SPECIES_INFO(BODY_COLOR_RED), - [SPECIES_VIVILLON_JUNGLE] = VIVILLON_SPECIES_INFO(BODY_COLOR_GREEN), - [SPECIES_VIVILLON_FANCY] = VIVILLON_SPECIES_INFO(BODY_COLOR_PINK), - [SPECIES_VIVILLON_POKE_BALL] = VIVILLON_SPECIES_INFO(BODY_COLOR_RED), - - [SPECIES_FLABEBE_YELLOW_FLOWER] = FLABEBE_SPECIES_INFO, - [SPECIES_FLABEBE_ORANGE_FLOWER] = FLABEBE_SPECIES_INFO, - [SPECIES_FLABEBE_BLUE_FLOWER] = FLABEBE_SPECIES_INFO, - [SPECIES_FLABEBE_WHITE_FLOWER] = FLABEBE_SPECIES_INFO, - - [SPECIES_FLOETTE_YELLOW_FLOWER] = FLOETTE_SPECIES_INFO, - [SPECIES_FLOETTE_ORANGE_FLOWER] = FLOETTE_SPECIES_INFO, - [SPECIES_FLOETTE_BLUE_FLOWER] = FLOETTE_SPECIES_INFO, - [SPECIES_FLOETTE_WHITE_FLOWER] = FLOETTE_SPECIES_INFO, - - [SPECIES_FLOETTE_ETERNAL_FLOWER] = + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_PICKUP, ABILITY_NONE, ABILITY_FLUFFY}, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = FALSE, + .speciesName = _("Greavard"), + .cryId = CRY_GREAVARD, + .natDexNum = NATIONAL_DEX_GREAVARD, + .categoryName = _("Ghost Dog"), + .height = 6, + .weight = 350, + .description = COMPOUND_STRING( + "This friendly Pokémon doesn't like\n" + "being alone. Pay it even the\n" + "slightest bit of attention, and it will\n" + "follow you forever."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Greavard, 64, 64), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_Greavard, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Greavard, 64, 64), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Greavard), + ICON(Greavard, 2), + //.footprint = gMonFootprint_Greavard, + LEARNSETS(Greavard), + .evolutions = EVOLUTION({EVO_LEVEL_NIGHT, 30, SPECIES_HOUNDSTONE}), + }, + + [SPECIES_HOUNDSTONE] = { - .baseHP = 74, - .baseAttack = 65, - .baseDefense = 67, - .baseSpeed = 92, - .baseSpAttack = 125, - .baseSpDefense = 128, - .types = { TYPE_FAIRY, TYPE_FAIRY}, - .catchRate = 120, - .expYield = 243, - .evYield_SpDefense = 2, - .genderRatio = MON_FEMALE, + .baseHP = 72, + .baseAttack = 101, + .baseDefense = 100, + .baseSpeed = 68, + .baseSpAttack = 50, + .baseSpDefense = 97, + .types = { TYPE_GHOST, TYPE_GHOST }, + .catchRate = 60, + .expYield = 171, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_FLOWER_VEIL, ABILITY_NONE, ABILITY_SYMBIOSIS}, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_SAND_RUSH, ABILITY_NONE, ABILITY_FLUFFY}, .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - }, - - [SPECIES_FLORGES_YELLOW_FLOWER] = FLORGES_SPECIES_INFO, - [SPECIES_FLORGES_ORANGE_FLOWER] = FLORGES_SPECIES_INFO, - [SPECIES_FLORGES_BLUE_FLOWER] = FLORGES_SPECIES_INFO, - [SPECIES_FLORGES_WHITE_FLOWER] = FLORGES_SPECIES_INFO, - - [SPECIES_FURFROU_HEART_TRIM] = FURFROU_SPECIES_INFO(FLIP), - [SPECIES_FURFROU_STAR_TRIM] = FURFROU_SPECIES_INFO(FLIP), - [SPECIES_FURFROU_DIAMOND_TRIM] = FURFROU_SPECIES_INFO(FLIP), - [SPECIES_FURFROU_DEBUTANTE_TRIM] = FURFROU_SPECIES_INFO(NO_FLIP), - [SPECIES_FURFROU_MATRON_TRIM] = FURFROU_SPECIES_INFO(FLIP), - [SPECIES_FURFROU_DANDY_TRIM] = FURFROU_SPECIES_INFO(FLIP), - [SPECIES_FURFROU_LA_REINE_TRIM] = FURFROU_SPECIES_INFO(FLIP), - [SPECIES_FURFROU_KABUKI_TRIM] = FURFROU_SPECIES_INFO(FLIP), - [SPECIES_FURFROU_PHARAOH_TRIM] = FURFROU_SPECIES_INFO(FLIP), - - [SPECIES_MEOWSTIC_FEMALE] = + .speciesName = _("Houndstone"), + .cryId = CRY_HOUNDSTONE, + .natDexNum = NATIONAL_DEX_HOUNDSTONE, + .categoryName = _("Ghost Dog"), + .height = 20, + .weight = 150, + .description = COMPOUND_STRING( + "Houndstone spends most of its\n" + "time sleeping in graveyards. Among all\n" + "the dog Pokémon, this one is most\n" + "loyal to its master."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Houndstone, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Houndstone, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Houndstone, 64, 64), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Houndstone), + ICON(Houndstone, 5), + //.footprint = gMonFootprint_Houndstone, + LEARNSETS(Houndstone), + }, +#endif //P_FAMILY_GREAVARD + +#if P_FAMILY_FLAMIGO + [SPECIES_FLAMIGO] = { - .baseHP = 74, - .baseAttack = 48, - .baseDefense = 76, - .baseSpeed = 104, - .baseSpAttack = 83, - .baseSpDefense = 81, - .types = { TYPE_PSYCHIC, TYPE_PSYCHIC}, - .catchRate = 75, - .expYield = 163, - .evYield_Speed = 2, - .genderRatio = MON_FEMALE, + .baseHP = 82, + .baseAttack = 115, + .baseDefense = 74, + .baseSpeed = 90, + .baseSpAttack = 75, + .baseSpDefense = 64, + .types = { TYPE_FLYING, TYPE_FIGHTING }, + .catchRate = 100, + .expYield = 175, + .evYield_Attack = 2, + .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FLYING, EGG_GROUP_FLYING}, + .abilities = {ABILITY_SCRAPPY, ABILITY_TANGLED_FEET, ABILITY_COSTAR}, + .bodyColor = BODY_COLOR_PINK, + .noFlip = FALSE, + .speciesName = _("Flamigo"), + .cryId = CRY_FLAMIGO, + .natDexNum = NATIONAL_DEX_FLAMIGO, + .categoryName = _("Synchronize"), + .height = 16, + .weight = 370, + .description = COMPOUND_STRING( + "Thanks to a behavior of theirs\n" + "known as “synchronizing,” an entire\n" + "flock of these Pokémon can attack\n" + "simultaneously in perfect harmony."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Flamigo, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Flamigo, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Flamigo, 64, 64), + .backPicYOffset = 3, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Flamigo), + ICON(Flamigo, 4), + //.footprint = gMonFootprint_Flamigo, + LEARNSETS(Flamigo), + }, +#endif //P_FAMILY_FLAMIGO + +#if P_FAMILY_CETODDLE + [SPECIES_CETODDLE] = + { + .baseHP = 108, + .baseAttack = 68, + .baseDefense = 45, + .baseSpeed = 43, + .baseSpAttack = 30, + .baseSpDefense = 40, + .types = { TYPE_ICE, TYPE_ICE }, + .catchRate = 150, + .expYield = 67, + .evYield_HP = 1, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_KEEN_EYE, ABILITY_INFILTRATOR, ABILITY_COMPETITIVE}, + .abilities = {ABILITY_THICK_FAT, ABILITY_SNOW_CLOAK, ABILITY_SHEER_FORCE}, .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - }, - - [SPECIES_AEGISLASH_BLADE] = + .speciesName = _("Cetoddle"), + .cryId = CRY_CETODDLE, + .natDexNum = NATIONAL_DEX_CETODDLE, + .categoryName = _("Terra Whale"), + .height = 12, + .weight = 450, + .description = COMPOUND_STRING( + "This species left the ocean and\n" + "began living on land a very long time\n" + "ago. It seems to be closely related\n" + "to Wailmer."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Cetoddle, 64, 64), + .frontPicYOffset = 14, + .frontAnimFrames = sAnims_Cetoddle, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Cetoddle, 64, 64), + .backPicYOffset = 16, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Cetoddle), + ICON(Cetoddle, 0), + //.footprint = gMonFootprint_Cetoddle, + LEARNSETS(Cetoddle), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_ICE_STONE, SPECIES_CETITAN}), + }, + + [SPECIES_CETITAN] = { - .baseHP = 60, - .baseDefense = 50, - .baseSpeed = 60, - #if P_UPDATED_STATS >= GEN_8 - .baseAttack = 140, - .baseSpAttack = 140, - #else - .baseAttack = 150, - .baseSpAttack = 150, - #endif - .baseSpDefense = 50, - .types = { TYPE_STEEL, TYPE_GHOST}, - .catchRate = 45, - .expYield = 234, - .evYield_Defense = 2, - .evYield_SpDefense = 1, + .baseHP = 170, + .baseAttack = 113, + .baseDefense = 65, + .baseSpeed = 73, + .baseSpAttack = 45, + .baseSpDefense = 55, + .types = { TYPE_ICE, TYPE_ICE }, + .catchRate = 50, + .expYield = 182, + .evYield_HP = 2, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 25, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, + .abilities = {ABILITY_THICK_FAT, ABILITY_SLUSH_RUSH, ABILITY_SHEER_FORCE}, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = FALSE, + .speciesName = _("Cetitan"), + .cryId = CRY_CETITAN, + .natDexNum = NATIONAL_DEX_CETITAN, + .categoryName = _("Terra Whale"), + .height = 45, + .weight = 7000, + .description = COMPOUND_STRING( + "Ice energy builds up in the horn on\n" + "its upper jaw, causing the horn to\n" + "reach cryogenic temperatures that\n" + "freeze its surroundings."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Cetitan, 64, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_Cetitan, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Cetitan, 64, 64), + .backPicYOffset = 13, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Cetitan), + ICON(Cetitan, 0), + //.footprint = gMonFootprint_Cetitan, + LEARNSETS(Cetitan), + }, +#endif //P_FAMILY_CETODDLE + +#if P_FAMILY_VELUZA + [SPECIES_VELUZA] = + { + .baseHP = 90, + .baseAttack = 102, + .baseDefense = 73, + .baseSpeed = 70, + .baseSpAttack = 78, + .baseSpDefense = 65, + .types = { TYPE_WATER, TYPE_PSYCHIC }, + .catchRate = 100, + .expYield = 167, + .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), .eggCycles = 20, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_MINERAL}, - .abilities = {ABILITY_STANCE_CHANGE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BROWN, + .growthRate = GROWTH_FAST, + .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, + .abilities = {ABILITY_MOLD_BREAKER, ABILITY_NONE, ABILITY_SHARPNESS}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, - }, - - [SPECIES_PUMPKABOO_SMALL] = + .speciesName = _("Veluza"), + .cryId = CRY_VELUZA, + .natDexNum = NATIONAL_DEX_VELUZA, + .categoryName = _("Jettison"), + .height = 25, + .weight = 900, + .description = COMPOUND_STRING( + "Veluza has excellent regenerative\n" + "capabilities. It sheds spare flesh\n" + "from its body to boost its agility,\n" + "then charges at its prey."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Veluza, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Veluza, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 1, + BACK_PIC(Veluza, 64, 64), + .backPicYOffset = 14, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Veluza), + ICON(Veluza, 4), + //.footprint = gMonFootprint_Veluza, + LEARNSETS(Veluza), + }, +#endif //P_FAMILY_VELUZA + +#if P_FAMILY_DONDOZO + [SPECIES_DONDOZO] = { - .baseHP = 44, - .baseAttack = 66, - .baseDefense = 70, - .baseSpeed = 56, - .baseSpAttack = 44, - .baseSpDefense = 55, - PUMKPABOO_MISC_INFO, + .baseHP = 150, + .baseAttack = 100, + .baseDefense = 115, + .baseSpeed = 35, + .baseSpAttack = 65, + .baseSpDefense = 65, + .types = { TYPE_WATER, TYPE_WATER }, + .catchRate = 25, + .expYield = 265, + .evYield_HP = 3, + .genderRatio = PERCENT_FEMALE(50), + .eggCycles = 40, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, + .abilities = {ABILITY_UNAWARE, ABILITY_OBLIVIOUS, ABILITY_WATER_VEIL}, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + .speciesName = _("Dondozo"), + .cryId = CRY_DONDOZO, + .natDexNum = NATIONAL_DEX_DONDOZO, + .categoryName = _("Big Catfish"), + .height = 120, + .weight = 2200, + .description = COMPOUND_STRING( + "It treats Tatsugiri like its boss\n" + "and follows it loyally. Though\n" + "powerful, Dondozo is apparently not very\n" + "smart."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Dondozo, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Dondozo, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 1, + BACK_PIC(Dondozo, 64, 64), + .backPicYOffset = 11, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Dondozo), + ICON(Dondozo, 0), + //.footprint = gMonFootprint_Dondozo, + LEARNSETS(Dondozo), + }, +#endif //P_FAMILY_DONDOZO + +#if P_FAMILY_TATSUGIRI +#define TATSUGIRI_MISC_INFO \ + .baseHP = 68, \ + .baseAttack = 50, \ + .baseDefense = 60, \ + .baseSpeed = 82, \ + .baseSpAttack = 120, \ + .baseSpDefense = 95, \ + .types = { TYPE_DRAGON, TYPE_WATER }, \ + .catchRate = 100, \ + .expYield = 166, \ + .evYield_SpAttack = 2, \ + .genderRatio = PERCENT_FEMALE(50), \ + .eggCycles = 35, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_SLOW, \ + .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, \ + .abilities = {ABILITY_COMMANDER, ABILITY_NONE, ABILITY_STORM_DRAIN},\ + .noFlip = FALSE, \ + .speciesName = _("Tatsugiri"), \ + .natDexNum = NATIONAL_DEX_TATSUGIRI, \ + .categoryName = _("Mimicry"), \ + .height = 3, \ + .weight = 80, \ + .pokemonScale = 356, \ + .pokemonOffset = 17, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + .frontPicYOffset = 12, \ + .frontAnimFrames = sAnims_Tatsugiri, \ + .backPicYOffset = 17, \ + LEARNSETS(Tatsugiri), \ + .formSpeciesIdTable = sTatsugiriFormSpeciesIdTable + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + //.backAnimId = BACK_ANIM_NONE, + //.footprint = gMonFootprint_Tatsugiri, + + [SPECIES_TATSUGIRI_CURLY] = + { + TATSUGIRI_MISC_INFO, + .bodyColor = BODY_COLOR_PINK, + .cryId = CRY_TATSUGIRI_CURLY, + .description = COMPOUND_STRING( + "This is a small dragon Pokémon. It\n" + "lives inside the mouth of Dondozo to\n" + "protect itself from enemies on the\n" + "outside."), + FRONT_PIC(TatsugiriCurly, 64, 64), + BACK_PIC(TatsugiriCurly, 64, 64), + PALETTE(TatsugiriCurly), + ICON(TatsugiriCurly, 0), }, - [SPECIES_PUMPKABOO_LARGE] = + [SPECIES_TATSUGIRI_DROOPY] = { - .baseHP = 54, - .baseAttack = 66, - .baseDefense = 70, - .baseSpeed = 46, - .baseSpAttack = 44, - .baseSpDefense = 55, - PUMKPABOO_MISC_INFO, + TATSUGIRI_MISC_INFO, + .bodyColor = BODY_COLOR_RED, + .cryId = CRY_TATSUGIRI_DROOPY, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(TatsugiriDroopy, 64, 64), + BACK_PIC(TatsugiriDroopy, 64, 64), + PALETTE(TatsugiriDroopy), + ICON(TatsugiriDroopy, 0), }, - [SPECIES_PUMPKABOO_SUPER] = + [SPECIES_TATSUGIRI_STRETCHY] = { - .baseHP = 59, - .baseAttack = 66, - .baseDefense = 70, - .baseSpeed = 41, - .baseSpAttack = 44, - .baseSpDefense = 55, - .itemCommon = ITEM_MIRACLE_SEED, - .itemRare = ITEM_MIRACLE_SEED, - PUMKPABOO_MISC_INFO, + TATSUGIRI_MISC_INFO, + .bodyColor = BODY_COLOR_YELLOW, + .description = COMPOUND_STRING( + ""), + FRONT_PIC(TatsugiriStretchy, 64, 64), + BACK_PIC(TatsugiriStretchy, 64, 64), + PALETTE(TatsugiriStretchy), + ICON(TatsugiriStretchy, 0), }, +#endif //P_FAMILY_TATSUGIRI - [SPECIES_GOURGEIST_SMALL] = +#if P_FAMILY_GREAT_TUSK + [SPECIES_GREAT_TUSK] = + { + .baseHP = 115, + .baseAttack = 131, + .baseDefense = 131, + .baseSpeed = 87, + .baseSpAttack = 53, + .baseSpDefense = 53, + .types = { TYPE_GROUND, TYPE_FIGHTING }, + .catchRate = 30, + .expYield = 285, + .evYield_Attack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 50, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_PROTOSYNTHESIS, ABILITY_NONE}, + .bodyColor = BODY_COLOR_PURPLE, + .noFlip = FALSE, + .isParadoxForm = TRUE, + .speciesName = _("Great Tusk"), + .cryId = CRY_GREAT_TUSK, + .natDexNum = NATIONAL_DEX_GREAT_TUSK, + .categoryName = _("Paradox"), + .height = 22, + .weight = 3200, + .description = COMPOUND_STRING( + "Sightings of this Pokémon have\n" + "occurred in recent years. The name\n" + "Great Tusk was taken from a creature\n" + "listed in a certain book."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(GreatTusk, 64, 64), + .frontPicYOffset = 4, + .frontAnimFrames = sAnims_GreatTusk, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(GreatTusk, 64, 64), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(GreatTusk), + ICON(GreatTusk, 0), + //.footprint = gMonFootprint_GreatTusk, + LEARNSETS(GreatTusk), + }, +#endif //P_FAMILY_GREAT_TUSK + +#if P_FAMILY_SCREAM_TAIL + [SPECIES_SCREAM_TAIL] = + { + .baseHP = 115, + .baseAttack = 65, + .baseDefense = 99, + .baseSpeed = 111, + .baseSpAttack = 65, + .baseSpDefense = 115, + .types = { TYPE_FAIRY, TYPE_PSYCHIC }, + .catchRate = 50, + .expYield = 285, + .evYield_HP = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 50, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_PROTOSYNTHESIS, ABILITY_NONE}, + .bodyColor = BODY_COLOR_PINK, + .noFlip = FALSE, + .isParadoxForm = TRUE, + .speciesName = _("ScreamTail"), + .cryId = CRY_SCREAM_TAIL, + .natDexNum = NATIONAL_DEX_SCREAM_TAIL, + .categoryName = _("Paradox"), + .height = 12, + .weight = 80, + .description = COMPOUND_STRING( + "There has been only one reported\n" + "sighting of this Pokémon. It\n" + "resembles a mysterious creature depicted\n" + "in an old expedition journal."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(ScreamTail, 64, 64), + .frontPicYOffset = 7, + .frontAnimFrames = sAnims_ScreamTail, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(ScreamTail, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(ScreamTail), + ICON(ScreamTail, 0), + //.footprint = gMonFootprint_ScreamTail, + LEARNSETS(ScreamTail), + }, +#endif //P_FAMILY_SCREAM_TAIL + +#if P_FAMILY_BRUTE_BONNET + [SPECIES_BRUTE_BONNET] = + { + .baseHP = 111, + .baseAttack = 127, + .baseDefense = 99, + .baseSpeed = 55, + .baseSpAttack = 79, + .baseSpDefense = 99, + .types = { TYPE_GRASS, TYPE_DARK }, + .catchRate = 50, + .expYield = 285, + .evYield_Attack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 50, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_PROTOSYNTHESIS, ABILITY_NONE}, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + .isParadoxForm = TRUE, + .speciesName = _("BruteBonet"), + .cryId = CRY_BRUTE_BONNET, + .natDexNum = NATIONAL_DEX_BRUTE_BONNET, + .categoryName = _("Paradox"), + .height = 12, + .weight = 210, + .description = COMPOUND_STRING( + "It bears a slight resemblance to a\n" + "Pokémon described in a dubious\n" + "magazine as a cross between a dinosaur\n" + "and a mushroom."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(BruteBonnet, 64, 64), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_BruteBonnet, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(BruteBonnet, 64, 64), + .backPicYOffset = 12, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(BruteBonnet), + ICON(BruteBonnet, 1), + //.footprint = gMonFootprint_BruteBonnet, + LEARNSETS(BruteBonnet), + }, +#endif //P_FAMILY_BRUTE_BONNET + +#if P_FAMILY_FLUTTER_MANE + [SPECIES_FLUTTER_MANE] = { .baseHP = 55, - .baseAttack = 85, - .baseDefense = 122, - .baseSpeed = 99, - .baseSpAttack = 58, - .baseSpDefense = 75, - GOURGEIST_MISC_INFO, - }, - - [SPECIES_GOURGEIST_LARGE] = + .baseAttack = 55, + .baseDefense = 55, + .baseSpeed = 135, + .baseSpAttack = 135, + .baseSpDefense = 135, + .types = { TYPE_GHOST, TYPE_FAIRY }, + .catchRate = 30, + .expYield = 285, + .evYield_Speed = 1, + .evYield_SpAttack = 1, + .evYield_SpDefense = 1, + .genderRatio = MON_GENDERLESS, + .eggCycles = 50, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_PROTOSYNTHESIS, ABILITY_NONE}, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + .isParadoxForm = TRUE, + .speciesName = _("FluttrMane"), + .cryId = CRY_FLUTTER_MANE, + .natDexNum = NATIONAL_DEX_FLUTTER_MANE, + .categoryName = _("Paradox"), + .height = 14, + .weight = 40, + .description = COMPOUND_STRING( + "It has similar features to a\n" + "ghostly pterosaur that was covered in a\n" + "paranormal magazine, but the two\n" + "have little else in common."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(FlutterMane, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_FlutterMane, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 5, + BACK_PIC(FlutterMane, 64, 64), + .backPicYOffset = 10, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(FlutterMane), + ICON(FlutterMane, 4), + //.footprint = gMonFootprint_FlutterMane, + LEARNSETS(FlutterMane), + }, +#endif //P_FAMILY_FLUTTER_MANE + +#if P_FAMILY_SLITHER_WING + [SPECIES_SLITHER_WING] = { - .baseHP = 75, - .baseAttack = 95, - .baseDefense = 122, - .baseSpeed = 69, - .baseSpAttack = 58, - .baseSpDefense = 75, - GOURGEIST_MISC_INFO, - }, - - [SPECIES_GOURGEIST_SUPER] = + .baseHP = 85, + .baseAttack = 135, + .baseDefense = 79, + .baseSpeed = 81, + .baseSpAttack = 85, + .baseSpDefense = 105, + .types = { TYPE_BUG, TYPE_FIGHTING }, + .catchRate = 30, + .expYield = 285, + .evYield_Attack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 50, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_PROTOSYNTHESIS, ABILITY_NONE}, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + .isParadoxForm = TRUE, + .speciesName = _("SlithrWing"), + .cryId = CRY_SLITHER_WING, + .natDexNum = NATIONAL_DEX_SLITHER_WING, + .categoryName = _("Paradox"), + .height = 32, + .weight = 920, + .description = COMPOUND_STRING( + "This mysterious Pokémon has some\n" + "similarities to a creature that an\n" + "old book introduced as Slither Wing."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(SlitherWing, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_SlitherWing, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(SlitherWing, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(SlitherWing), + ICON(SlitherWing, 3), + //.footprint = gMonFootprint_SlitherWing, + LEARNSETS(SlitherWing), + }, +#endif //P_FAMILY_SLITHER_WING + +#if P_FAMILY_SANDY_SHOCKS + [SPECIES_SANDY_SHOCKS] = { .baseHP = 85, - .baseAttack = 100, - .baseDefense = 122, - .baseSpeed = 54, - .baseSpAttack = 58, - .baseSpDefense = 75, - .itemCommon = ITEM_MIRACLE_SEED, - .itemRare = ITEM_MIRACLE_SEED, - GOURGEIST_MISC_INFO, - }, - - [SPECIES_XERNEAS_ACTIVE] = XERNEAS_SPECIES_INFO, - - [SPECIES_ZYGARDE_10_AURA_BREAK] = ZYGARDE_10_SPECIES_INFO(ABILITY_AURA_BREAK), - [SPECIES_ZYGARDE_10_POWER_CONSTRUCT] = ZYGARDE_50_SPECIES_INFO(ABILITY_POWER_CONSTRUCT), - [SPECIES_ZYGARDE_50_POWER_CONSTRUCT] = ZYGARDE_50_SPECIES_INFO(ABILITY_POWER_CONSTRUCT), - - [SPECIES_ZYGARDE_COMPLETE] = + .baseAttack = 81, + .baseDefense = 97, + .baseSpeed = 101, + .baseSpAttack = 121, + .baseSpDefense = 85, + .types = { TYPE_ELECTRIC, TYPE_GROUND }, + .catchRate = 30, + .expYield = 285, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 50, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_PROTOSYNTHESIS, ABILITY_NONE}, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + .isParadoxForm = TRUE, + .speciesName = _("SndyShocks"), + .cryId = CRY_SANDY_SHOCKS, + .natDexNum = NATIONAL_DEX_SANDY_SHOCKS, + .categoryName = _("Paradox"), + .height = 23, + .weight = 600, + .description = COMPOUND_STRING( + "It slightly resembles a Magneton\n" + "that lived for 10,000 years and was\n" + "featured in an article in a\n" + "paranormal magazine."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(SandyShocks, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_SandyShocks, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(SandyShocks, 64, 64), + .backPicYOffset = 10, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(SandyShocks), + ICON(SandyShocks, 0), + //.footprint = gMonFootprint_SandyShocks, + LEARNSETS(SandyShocks), + }, +#endif //P_FAMILY_SANDY_SHOCKS + +#if P_FAMILY_IRON_TREADS + [SPECIES_IRON_TREADS] = { - .baseHP = 216, - .baseAttack = 100, - .baseDefense = 121, - .baseSpeed = 85, - .baseSpAttack = 91, - .baseSpDefense = 95, - .types = { TYPE_DRAGON, TYPE_GROUND}, - .catchRate = 3, - .expYield = 319, - .evYield_HP = 3, + .baseHP = 90, + .baseAttack = 112, + .baseDefense = 120, + .baseSpeed = 106, + .baseSpAttack = 72, + .baseSpDefense = 70, + .types = { TYPE_GROUND, TYPE_STEEL }, + .catchRate = 30, + .expYield = 285, + .evYield_Defense = 3, .genderRatio = MON_GENDERLESS, - .eggCycles = 120, + .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_POWER_CONSTRUCT, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLACK, - .noFlip = TRUE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_HOOPA_UNBOUND] = + .abilities = {ABILITY_QUARK_DRIVE, ABILITY_NONE}, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + .isParadoxForm = TRUE, + .speciesName = _("IronTreads"), + .cryId = CRY_IRON_TREADS, + .natDexNum = NATIONAL_DEX_IRON_TREADS, + .categoryName = _("Paradox"), + .height = 9, + .weight = 2400, + .description = COMPOUND_STRING( + "Sightings of this Pokémon have\n" + "occurred in recent years. It resembles\n" + "a mysterious object described in an\n" + "old expedition journal."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(IronTreads, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_IronTreads, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(IronTreads, 64, 64), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(IronTreads), + ICON(IronTreads, 0), + //.footprint = gMonFootprint_IronTreads, + LEARNSETS(IronTreads), + }, +#endif //P_FAMILY_IRON_TREADS + +#if P_FAMILY_IRON_BUNDLE + [SPECIES_IRON_BUNDLE] = + { + .baseHP = 56, + .baseAttack = 80, + .baseDefense = 114, + .baseSpeed = 136, + .baseSpAttack = 124, + .baseSpDefense = 60, + .types = { TYPE_ICE, TYPE_WATER }, + .catchRate = 50, + .expYield = 285, + .evYield_Speed = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 50, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_QUARK_DRIVE, ABILITY_NONE}, + .bodyColor = BODY_COLOR_RED, + .noFlip = FALSE, + .isParadoxForm = TRUE, + .speciesName = _("IronBundle"), + .cryId = CRY_IRON_BUNDLE, + .natDexNum = NATIONAL_DEX_IRON_BUNDLE, + .categoryName = _("Paradox"), + .height = 6, + .weight = 110, + .description = COMPOUND_STRING( + "Its shape is similar to a robot\n" + "featured in a paranormal magazine\n" + "article. The robot was said to have been\n" + "created by an ancient civilization."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(IronBundle, 64, 64), + .frontPicYOffset = 2, + .frontAnimFrames = sAnims_IronBundle, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(IronBundle, 64, 64), + .backPicYOffset = 9, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(IronBundle), + ICON(IronBundle, 0), + //.footprint = gMonFootprint_IronBundle, + LEARNSETS(IronBundle), + }, +#endif //P_FAMILY_IRON_BUNDLE + +#if P_FAMILY_IRON_HANDS + [SPECIES_IRON_HANDS] = + { + .baseHP = 154, + .baseAttack = 140, + .baseDefense = 108, + .baseSpeed = 50, + .baseSpAttack = 50, + .baseSpDefense = 68, + .types = { TYPE_FIGHTING, TYPE_ELECTRIC }, + .catchRate = 50, + .expYield = 285, + .evYield_Attack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 50, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_QUARK_DRIVE, ABILITY_NONE}, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + .isParadoxForm = TRUE, + .speciesName = _("Iron Hands"), + .cryId = CRY_IRON_HANDS, + .natDexNum = NATIONAL_DEX_IRON_HANDS, + .categoryName = _("Paradox"), + .height = 18, + .weight = 3807, + .description = COMPOUND_STRING( + "It is very similar to a cyborg\n" + "covered exclusively by a paranormal\n" + "magazine. The cyborg was said to be the\n" + "modified form of a certain athlete."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(IronHands, 64, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_IronHands, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(IronHands, 64, 64), + .backPicYOffset = 10, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(IronHands), + ICON(IronHands, 0), + //.footprint = gMonFootprint_IronHands, + LEARNSETS(IronHands), + }, +#endif //P_FAMILY_IRON_HANDS + +#if P_FAMILY_IRON_JUGULIS + [SPECIES_IRON_JUGULIS] = + { + .baseHP = 94, + .baseAttack = 80, + .baseDefense = 86, + .baseSpeed = 108, + .baseSpAttack = 122, + .baseSpDefense = 80, + .types = { TYPE_DARK, TYPE_FLYING }, + .catchRate = 30, + .expYield = 285, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 50, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_QUARK_DRIVE, ABILITY_NONE}, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + .isParadoxForm = TRUE, + .speciesName = _("IronJuguls"), + .cryId = CRY_IRON_JUGULIS, + .natDexNum = NATIONAL_DEX_IRON_JUGULIS, + .categoryName = _("Paradox"), + .height = 13, + .weight = 1110, + .description = COMPOUND_STRING( + "It resembles a certain Pokémon\n" + "introduced in a paranormal magazine,\n" + "described as the offspring of a\n" + "Hydreigon that fell in love with a robot."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(IronJugulis, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_IronJugulis, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 7, + BACK_PIC(IronJugulis, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(IronJugulis), + ICON(IronJugulis, 2), + //.footprint = gMonFootprint_IronJugulis, + LEARNSETS(IronJugulis), + }, +#endif //P_FAMILY_IRON_JUGULIS + +#if P_FAMILY_IRON_MOTH + [SPECIES_IRON_MOTH] = { .baseHP = 80, - .baseAttack = 160, + .baseAttack = 70, .baseDefense = 60, - .baseSpeed = 80, - .baseSpAttack = 170, - .baseSpDefense = 130, - .types = { TYPE_PSYCHIC, TYPE_DARK}, - .catchRate = 3, - .expYield = 270, - .evYield_SpAttack = 3, + .baseSpeed = 110, + .baseSpAttack = 140, + .baseSpDefense = 110, + .types = { TYPE_FIRE, TYPE_POISON }, + .catchRate = 30, + .expYield = 285, + .evYield_SpAttack = 3, .genderRatio = MON_GENDERLESS, - .eggCycles = 120, - .friendship = 100, + .eggCycles = 50, + .friendship = 0, .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_MAGICIAN, ABILITY_NONE}, - .bodyColor = BODY_COLOR_PURPLE, + .abilities = {ABILITY_QUARK_DRIVE, ABILITY_NONE}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, - .flags = SPECIES_FLAG_MYTHICAL, - }, -#endif - -#if P_GEN_7_POKEMON == TRUE - [SPECIES_ORICORIO_POM_POM] = ORICORIO_SPECIES_INFO(TYPE_ELECTRIC, BODY_COLOR_YELLOW), - [SPECIES_ORICORIO_PAU] = ORICORIO_SPECIES_INFO(TYPE_PSYCHIC, BODY_COLOR_PINK), - [SPECIES_ORICORIO_SENSU] = ORICORIO_SPECIES_INFO(TYPE_GHOST, BODY_COLOR_PURPLE), - - [SPECIES_ROCKRUFF_OWN_TEMPO] = ROCKRUFF_SPECIES_INFO(ABILITY_OWN_TEMPO, ABILITY_NONE, ABILITY_NONE), - - [SPECIES_LYCANROC_MIDNIGHT] = + .isParadoxForm = TRUE, + .speciesName = _("Iron Moth"), + .cryId = CRY_IRON_MOTH, + .natDexNum = NATIONAL_DEX_IRON_MOTH, + .categoryName = _("Paradox"), + .height = 12, + .weight = 360, + .description = COMPOUND_STRING( + "No records exist of this species\n" + "being caught. Data is lacking, but\n" + "the Pokémon's traits match up with an\n" + "object described in an old book."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(IronMoth, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_IronMoth, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 4, + BACK_PIC(IronMoth, 64, 64), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(IronMoth), + ICON(IronMoth, 3), + //.footprint = gMonFootprint_IronMoth, + LEARNSETS(IronMoth), + }, +#endif //P_FAMILY_IRON_MOTH + +#if P_FAMILY_IRON_THORNS + [SPECIES_IRON_THORNS] = { - .baseHP = 85, - .baseAttack = 115, - .baseDefense = 75, - .baseSpeed = 82, - .baseSpAttack = 55, - .baseSpDefense = 75, - .types = { TYPE_ROCK, TYPE_ROCK}, - .catchRate = 90, - .expYield = 170, - .evYield_Attack = 2, + .baseHP = 100, + .baseAttack = 134, + .baseDefense = 110, + .baseSpeed = 72, + .baseSpAttack = 70, + .baseSpDefense = 84, + .types = { TYPE_ROCK, TYPE_ELECTRIC }, + .catchRate = 30, + .expYield = 285, + .evYield_Attack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 50, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_QUARK_DRIVE, ABILITY_NONE}, + .bodyColor = BODY_COLOR_GREEN, + .noFlip = FALSE, + .isParadoxForm = TRUE, + .speciesName = _("IronThorns"), + .cryId = CRY_IRON_THORNS, + .natDexNum = NATIONAL_DEX_IRON_THORNS, + .categoryName = _("Paradox"), + .height = 16, + .weight = 3030, + .description = COMPOUND_STRING( + "It has some similarities to a\n" + "Pokémon introduced in a dubious magazine\n" + "as a Tyranitar from one billion\n" + "years into the future."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(IronThorns, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_IronThorns, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(IronThorns, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(IronThorns), + ICON(IronThorns, 1), + //.footprint = gMonFootprint_IronThorns, + LEARNSETS(IronThorns), + }, +#endif //P_FAMILY_IRON_THORNS + +#if P_FAMILY_FRIGIBAX + [SPECIES_FRIGIBAX] = + { + .baseHP = 65, + .baseAttack = 75, + .baseDefense = 45, + .baseSpeed = 55, + .baseSpAttack = 35, + .baseSpDefense = 45, + .types = { TYPE_DRAGON, TYPE_ICE }, + .catchRate = 45, + .expYield = 64, + .evYield_Attack = 1, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_KEEN_EYE, ABILITY_VITAL_SPIRIT, ABILITY_NO_GUARD}, - .bodyColor = BODY_COLOR_RED, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_THERMAL_EXCHANGE, ABILITY_NONE, ABILITY_ICE_BODY}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, - }, - - [SPECIES_LYCANROC_DUSK] = + .speciesName = _("Frigibax"), + .cryId = CRY_FRIGIBAX, + .natDexNum = NATIONAL_DEX_FRIGIBAX, + .categoryName = _("Ice Fin"), + .height = 5, + .weight = 170, + .description = COMPOUND_STRING( + "This Pokémon lives in forests and\n" + "craggy areas. Using the power of its\n" + "dorsal fin, it cools the inside of its\n" + "nest like a refrigerator."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Frigibax, 64, 64), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Frigibax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Frigibax, 64, 64), + .backPicYOffset = 11, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Frigibax), + ICON(Frigibax, 3), + //.footprint = gMonFootprint_Frigibax, + LEARNSETS(Frigibax), + .evolutions = EVOLUTION({EVO_LEVEL, 35, SPECIES_ARCTIBAX}), + }, + + [SPECIES_ARCTIBAX] = { - .baseHP = 75, - .baseAttack = 117, - .baseDefense = 65, - .baseSpeed = 110, - .baseSpAttack = 55, + .baseHP = 90, + .baseAttack = 95, + .baseDefense = 66, + .baseSpeed = 62, + .baseSpAttack = 45, .baseSpDefense = 65, - .types = { TYPE_ROCK, TYPE_ROCK}, - .catchRate = 90, - .expYield = 170, - .evYield_Attack = 2, + .types = { TYPE_DRAGON, TYPE_ICE }, + .catchRate = 25, + .expYield = 148, + .evYield_Attack = 2, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_MEDIUM_FAST, - .eggGroups = { EGG_GROUP_FIELD, EGG_GROUP_FIELD}, - .abilities = {ABILITY_TOUGH_CLAWS, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BROWN, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_THERMAL_EXCHANGE, ABILITY_NONE, ABILITY_ICE_BODY}, + .bodyColor = BODY_COLOR_GRAY, .noFlip = FALSE, - }, - - [SPECIES_WISHIWASHI_SCHOOL] = + .speciesName = _("Arctibax"), + .cryId = CRY_ARCTIBAX, + .natDexNum = NATIONAL_DEX_ARCTIBAX, + .categoryName = _("Ice Fin"), + .height = 8, + .weight = 300, + .description = COMPOUND_STRING( + "Arctibax freezes the air around it,\n" + "protecting its face with an ice\n" + "mask and turning its dorsal fin into a\n" + "blade of ice."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Arctibax, 64, 64), + .frontPicYOffset = 3, + .frontAnimFrames = sAnims_Arctibax, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Arctibax, 64, 64), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Arctibax), + ICON(Arctibax, 0), + //.footprint = gMonFootprint_Arctibax, + LEARNSETS(Arctibax), + .evolutions = EVOLUTION({EVO_LEVEL, 54, SPECIES_BAXCALIBUR}), + }, + + [SPECIES_BAXCALIBUR] = { - .baseHP = 45, - .baseAttack = 140, - .baseDefense = 130, - .baseSpeed = 30, - .baseSpAttack = 140, - .baseSpDefense = 135, - .types = { TYPE_WATER, TYPE_WATER}, - .catchRate = 60, - .expYield = 61, - .evYield_HP = 1, + .baseHP = 115, + .baseAttack = 145, + .baseDefense = 92, + .baseSpeed = 87, + .baseSpAttack = 75, + .baseSpDefense = 86, + .types = { TYPE_DRAGON, TYPE_ICE }, + .catchRate = 10, + .expYield = 300, + .evYield_Attack = 3, .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 15, + .eggCycles = 40, .friendship = STANDARD_FRIENDSHIP, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_WATER_2, EGG_GROUP_WATER_2}, - .abilities = {ABILITY_SCHOOLING, ABILITY_NONE}, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_DRAGON, EGG_GROUP_MINERAL}, + .abilities = {ABILITY_THERMAL_EXCHANGE, ABILITY_NONE, ABILITY_ICE_BODY}, + .bodyColor = BODY_COLOR_GRAY, + .noFlip = FALSE, + .speciesName = _("Baxcalibur"), + .cryId = CRY_BAXCALIBUR, + .natDexNum = NATIONAL_DEX_BAXCALIBUR, + .categoryName = _("Ice Dragon"), + .height = 21, + .weight = 2100, + .description = COMPOUND_STRING( + "It launches itself into battle by\n" + "flipping upside down and spewing\n" + "frigid air from its mouth. It finishes\n" + "opponents off with its dorsal blade."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Baxcalibur, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Baxcalibur, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Baxcalibur, 64, 64), + .backPicYOffset = 5, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Baxcalibur), + ICON(Baxcalibur, 0), + //.footprint = gMonFootprint_Baxcalibur, + LEARNSETS(Baxcalibur), + }, +#endif //P_FAMILY_FRIGIBAX + +#if P_FAMILY_GIMMIGHOUL +#define GIMMIGHOUL_MISC_INFO \ + .types = { TYPE_GHOST, TYPE_GHOST }, \ + .catchRate = 45, \ + .expYield = 60, \ + .evYield_SpAttack = 1, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 50, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, \ + .noFlip = FALSE, \ + .speciesName = _("Gimmighoul"), \ + .cryId = CRY_GIMMIGHOUL, \ + .natDexNum = NATIONAL_DEX_GIMMIGHOUL, \ + .frontAnimFrames = sAnims_Gimmighoul, \ + LEARNSETS(Gimmighoul), \ + .formSpeciesIdTable = sGimmighoulFormSpeciesIdTable, \ + .evolutions = EVOLUTION({EVO_NONE, 0, SPECIES_GHOLDENGO}) + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + //.backAnimId = BACK_ANIM_NONE, + //.footprint = gMonFootprint_Gimmighoul, + + [SPECIES_GIMMIGHOUL_CHEST] = + { + GIMMIGHOUL_MISC_INFO, + .baseHP = 45, + .baseAttack = 30, + .baseDefense = 70, + .baseSpeed = 10, + .baseSpAttack = 75, + .baseSpDefense = 70, + .abilities = {ABILITY_RATTLED, ABILITY_NONE}, + .bodyColor = BODY_COLOR_BROWN, + .categoryName = _("Coin Chest"), + .height = 3, + .weight = 50, + .description = COMPOUND_STRING( + "It lives inside an old treasure\n" + "chest. Sometimes it gets left in shop\n" + "corners since no one realizes it's\n" + "actually a Pokémon."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(GimmighoulChest, 64, 64), + .frontPicYOffset = 3, + BACK_PIC(GimmighoulChest, 64, 64), + .backPicYOffset = 0, + PALETTE(GimmighoulChest), + ICON(GimmighoulChest, 0), + }, + + [SPECIES_GIMMIGHOUL_ROAMING] = + { + GIMMIGHOUL_MISC_INFO, + .baseHP = 45, + .baseAttack = 30, + .baseDefense = 25, + .baseSpeed = 80, + .baseSpAttack = 75, + .baseSpDefense = 45, + .abilities = {ABILITY_RUN_AWAY, ABILITY_NONE}, .bodyColor = BODY_COLOR_BLUE, + .categoryName = _("Coin Hunter"), + .height = 1, + .weight = 1, + .description = COMPOUND_STRING( + ""), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(GimmighoulRoaming, 64, 64), + .frontPicYOffset = 7, + BACK_PIC(GimmighoulRoaming, 64, 64), + .backPicYOffset = 3, + PALETTE(GimmighoulRoaming), + ICON(GimmighoulRoaming, 0), + }, + + [SPECIES_GHOLDENGO] = + { + .baseHP = 87, + .baseAttack = 60, + .baseDefense = 95, + .baseSpeed = 84, + .baseSpAttack = 133, + .baseSpDefense = 91, + .types = { TYPE_STEEL, TYPE_GHOST }, + .catchRate = 45, + .expYield = 275, + .evYield_SpAttack = 2, + .genderRatio = MON_GENDERLESS, + .eggCycles = 50, + .friendship = STANDARD_FRIENDSHIP, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_GOOD_AS_GOLD, ABILITY_NONE}, + .bodyColor = BODY_COLOR_YELLOW, .noFlip = FALSE, - }, - - [SPECIES_SILVALLY_FIGHTING] = SILVALLY_SPECIES_INFO(TYPE_FIGHTING), - [SPECIES_SILVALLY_FLYING] = SILVALLY_SPECIES_INFO(TYPE_FLYING), - [SPECIES_SILVALLY_POISON] = SILVALLY_SPECIES_INFO(TYPE_POISON), - [SPECIES_SILVALLY_GROUND] = SILVALLY_SPECIES_INFO(TYPE_GROUND), - [SPECIES_SILVALLY_ROCK] = SILVALLY_SPECIES_INFO(TYPE_ROCK), - [SPECIES_SILVALLY_BUG] = SILVALLY_SPECIES_INFO(TYPE_BUG), - [SPECIES_SILVALLY_GHOST] = SILVALLY_SPECIES_INFO(TYPE_GHOST), - [SPECIES_SILVALLY_STEEL] = SILVALLY_SPECIES_INFO(TYPE_STEEL), - [SPECIES_SILVALLY_FIRE] = SILVALLY_SPECIES_INFO(TYPE_FIRE), - [SPECIES_SILVALLY_WATER] = SILVALLY_SPECIES_INFO(TYPE_WATER), - [SPECIES_SILVALLY_GRASS] = SILVALLY_SPECIES_INFO(TYPE_GRASS), - [SPECIES_SILVALLY_ELECTRIC] = SILVALLY_SPECIES_INFO(TYPE_ELECTRIC), - [SPECIES_SILVALLY_PSYCHIC] = SILVALLY_SPECIES_INFO(TYPE_PSYCHIC), - [SPECIES_SILVALLY_ICE] = SILVALLY_SPECIES_INFO(TYPE_ICE), - [SPECIES_SILVALLY_DRAGON] = SILVALLY_SPECIES_INFO(TYPE_DRAGON), - [SPECIES_SILVALLY_DARK] = SILVALLY_SPECIES_INFO(TYPE_DARK), - [SPECIES_SILVALLY_FAIRY] = SILVALLY_SPECIES_INFO(TYPE_FAIRY), - - [SPECIES_MINIOR_METEOR_ORANGE] = MINIOR_METEOR_SPECIES_INFO, - [SPECIES_MINIOR_METEOR_YELLOW] = MINIOR_METEOR_SPECIES_INFO, - [SPECIES_MINIOR_METEOR_GREEN] = MINIOR_METEOR_SPECIES_INFO, - [SPECIES_MINIOR_METEOR_BLUE] = MINIOR_METEOR_SPECIES_INFO, - [SPECIES_MINIOR_METEOR_INDIGO] = MINIOR_METEOR_SPECIES_INFO, - [SPECIES_MINIOR_METEOR_VIOLET] = MINIOR_METEOR_SPECIES_INFO, - - [SPECIES_MINIOR_CORE_RED] = MINIOR_CORE_SPECIES_INFO(BODY_COLOR_RED), - [SPECIES_MINIOR_CORE_ORANGE] = MINIOR_CORE_SPECIES_INFO(BODY_COLOR_RED), - [SPECIES_MINIOR_CORE_YELLOW] = MINIOR_CORE_SPECIES_INFO(BODY_COLOR_YELLOW), - [SPECIES_MINIOR_CORE_GREEN] = MINIOR_CORE_SPECIES_INFO(BODY_COLOR_GREEN), - [SPECIES_MINIOR_CORE_BLUE] = MINIOR_CORE_SPECIES_INFO(BODY_COLOR_BLUE), - [SPECIES_MINIOR_CORE_INDIGO] = MINIOR_CORE_SPECIES_INFO(BODY_COLOR_BLUE), - [SPECIES_MINIOR_CORE_VIOLET] = MINIOR_CORE_SPECIES_INFO(BODY_COLOR_PURPLE), - - [SPECIES_MIMIKYU_BUSTED] = MIMIKYU_SPECIES_INFO, - - [SPECIES_NECROZMA_DUSK_MANE] = + .speciesName = _("Gholdengo"), + .cryId = CRY_GHOLDENGO, + .natDexNum = NATIONAL_DEX_GHOLDENGO, + .categoryName = _("Coin Entity"), + .height = 12, + .weight = 300, + .description = COMPOUND_STRING( + "It has a sturdy body made up of\n" + "stacked coins. Gholdengo overwhelms\n" + "its enemies by firing coin after coin\n" + "at them in quick succession."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Gholdengo, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Gholdengo, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Gholdengo, 64, 64), + .backPicYOffset = 6, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Gholdengo), + ICON(Gholdengo, 0), + //.footprint = gMonFootprint_Gholdengo, + LEARNSETS(Gholdengo), + }, +#endif //P_FAMILY_GIMMIGHOUL + +#if P_FAMILY_WO_CHIEN + [SPECIES_WO_CHIEN] = { - .baseHP = 97, - .baseAttack = 157, - .baseDefense = 127, - .baseSpeed = 77, - .baseSpAttack = 113, - .baseSpDefense = 109, - .types = { TYPE_PSYCHIC, TYPE_STEEL}, - .catchRate = 255, - .expYield = 306, - .evYield_Attack = 3, + .baseHP = 85, + .baseAttack = 85, + .baseDefense = 100, + .baseSpeed = 70, + .baseSpAttack = 95, + .baseSpDefense = 135, + .types = { TYPE_DARK, TYPE_GRASS }, + .catchRate = 6, + .expYield = 285, + .evYield_SpDefense = 3, .genderRatio = MON_GENDERLESS, - .eggCycles = 120, + .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_PRISM_ARMOR, ABILITY_NONE}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = TRUE, - .flags = SPECIES_FLAG_LEGENDARY | SPECIES_FLAG_CANNOT_BE_TRADED, - }, - - [SPECIES_NECROZMA_DAWN_WINGS] = + .abilities = {ABILITY_TABLETS_OF_RUIN, ABILITY_NONE, ABILITY_NONE}, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + .isLegendary = TRUE, + .speciesName = _("Wo-Chien"), + .cryId = CRY_WO_CHIEN, + .natDexNum = NATIONAL_DEX_WO_CHIEN, + .categoryName = _("Ruinous"), + .height = 15, + .weight = 742, + .description = COMPOUND_STRING( + "The grudge of a person punished\n" + "for writing the king's evil deeds upon\n" + "wooden tablets has clad itself in\n" + "dead leaves to become a Pokémon."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(WoChien, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_WoChien, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(WoChien, 64, 64), + .backPicYOffset = 10, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(WoChien), + ICON(WoChien, 5), + //.footprint = gMonFootprint_WoChien, + LEARNSETS(WoChien), + }, +#endif //P_FAMILY_WO_CHIEN + +#if P_FAMILY_CHIEN_PAO + [SPECIES_CHIEN_PAO] = { - .baseHP = 97, - .baseAttack = 113, - .baseDefense = 109, - .baseSpeed = 77, - .baseSpAttack = 157, - .baseSpDefense = 127, - .types = { TYPE_PSYCHIC, TYPE_GHOST}, - .catchRate = 255, - .expYield = 306, - .evYield_SpAttack = 3, + .baseHP = 80, + .baseAttack = 120, + .baseDefense = 80, + .baseSpeed = 135, + .baseSpAttack = 90, + .baseSpDefense = 65, + .types = { TYPE_DARK, TYPE_ICE }, + .catchRate = 6, + .expYield = 285, + .evYield_Speed = 3, .genderRatio = MON_GENDERLESS, - .eggCycles = 120, + .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_PRISM_ARMOR, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLUE, - .noFlip = TRUE, - .flags = SPECIES_FLAG_LEGENDARY | SPECIES_FLAG_CANNOT_BE_TRADED, - }, - - [SPECIES_NECROZMA_ULTRA] = - { - .baseHP = 97, - .baseAttack = 167, - .baseDefense = 97, - .baseSpeed = 129, - .baseSpAttack = 167, - .baseSpDefense = 97, - .types = { TYPE_PSYCHIC, TYPE_DRAGON}, - .catchRate = 255, - .expYield = 339, - .evYield_Attack = 1, - .evYield_Speed = 1, - .evYield_SpAttack = 1, + .abilities = {ABILITY_SWORD_OF_RUIN, ABILITY_NONE, ABILITY_NONE}, + .bodyColor = BODY_COLOR_WHITE, + .noFlip = FALSE, + .isLegendary = TRUE, + .speciesName = _("Chien-Pao"), + .cryId = CRY_CHIEN_PAO, + .natDexNum = NATIONAL_DEX_CHIEN_PAO, + .categoryName = _("Ruinous"), + .height = 19, + .weight = 1522, + .description = COMPOUND_STRING( + "This Pokémon can control 100 tons\n" + "of fallen snow. It plays around\n" + "innocently by leaping in and out of\n" + "avalanches it has caused."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(ChienPao, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_ChienPao, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(ChienPao, 64, 64), + .backPicYOffset = 5, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(ChienPao), + ICON(ChienPao, 0), + //.footprint = gMonFootprint_ChienPao, + LEARNSETS(ChienPao), + }, +#endif //P_FAMILY_CHIEN_PAO + +#if P_FAMILY_TING_LU + [SPECIES_TING_LU] = + { + .baseHP = 155, + .baseAttack = 110, + .baseDefense = 125, + .baseSpeed = 45, + .baseSpAttack = 55, + .baseSpDefense = 80, + .types = { TYPE_DARK, TYPE_GROUND }, + .catchRate = 6, + .expYield = 285, + .evYield_Defense = 3, .genderRatio = MON_GENDERLESS, - .eggCycles = 120, + .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_NEUROFORCE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_YELLOW, - .noFlip = TRUE, - .flags = SPECIES_FLAG_LEGENDARY | SPECIES_FLAG_ULTRA_BURST, - }, - - [SPECIES_MAGEARNA_ORIGINAL_COLOR] = MAGEARNA_SPECIES_INFO(BODY_COLOR_RED), -#endif - -#if P_GEN_8_POKEMON == TRUE - [SPECIES_CRAMORANT_GULPING] = CRAMORANT_SPECIES_INFO, - [SPECIES_CRAMORANT_GORGING] = CRAMORANT_SPECIES_INFO, - - [SPECIES_TOXTRICITY_LOW_KEY] = - { - TOXTRICITY_MISC_INFO(ABILITY_MINUS), - }, - - [SPECIES_SINISTEA_ANTIQUE] = SINISTEA_SPECIES_INFO, - - [SPECIES_POLTEAGEIST_ANTIQUE] = POLTEAGEIST_SPECIES_INFO, - - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM] = { ALCREMIE_MISC_INFO(BODY_COLOR_PINK) }, - [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM] = { ALCREMIE_MISC_INFO(BODY_COLOR_GREEN) }, - [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM] = { ALCREMIE_MISC_INFO(BODY_COLOR_BLUE) }, - [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM] = { ALCREMIE_MISC_INFO(BODY_COLOR_YELLOW) }, - [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM] = { ALCREMIE_MISC_INFO(BODY_COLOR_WHITE) }, - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL] = { ALCREMIE_MISC_INFO(BODY_COLOR_YELLOW) }, - [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL] = { ALCREMIE_MISC_INFO(BODY_COLOR_BROWN) }, - [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL] = { ALCREMIE_MISC_INFO(BODY_COLOR_YELLOW) }, - - [SPECIES_EISCUE_NOICE_FACE] = + .abilities = {ABILITY_VESSEL_OF_RUIN, ABILITY_NONE, ABILITY_NONE}, + .bodyColor = BODY_COLOR_BROWN, + .noFlip = FALSE, + .isLegendary = TRUE, + .speciesName = _("Ting-Lu"), + .cryId = CRY_TING_LU, + .natDexNum = NATIONAL_DEX_TING_LU, + .categoryName = _("Ruinous"), + .height = 27, + .weight = 6997, + .description = COMPOUND_STRING( + "It slowly brings its exceedingly\n" + "heavy head down upon the ground,\n" + "splitting the earth open with huge\n" + "fissures that run over 160 feet deep."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(TingLu, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_TingLu, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(TingLu, 64, 64), + .backPicYOffset = 5, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(TingLu), + ICON(TingLu, 0), + //.footprint = gMonFootprint_TingLu, + LEARNSETS(TingLu), + }, +#endif //P_FAMILY_TING_LU + +#if P_FAMILY_CHI_YU + [SPECIES_CHI_YU] = { - .baseHP = 75, + .baseHP = 55, .baseAttack = 80, - .baseDefense = 70, - .baseSpeed = 130, - .baseSpAttack = 65, - .baseSpDefense = 50, - .types = { TYPE_ICE, TYPE_ICE}, - .catchRate = 60, - .expYield = 165, - .evYield_Defense = 2, - .genderRatio = PERCENT_FEMALE(50), - .eggCycles = 25, - .friendship = STANDARD_FRIENDSHIP, + .baseDefense = 80, + .baseSpeed = 100, + .baseSpAttack = 135, + .baseSpDefense = 120, + .types = { TYPE_DARK, TYPE_FIRE }, + .catchRate = 6, + .expYield = 285, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 50, + .friendship = 0, .growthRate = GROWTH_SLOW, - .eggGroups = { EGG_GROUP_WATER_1, EGG_GROUP_FIELD}, - .abilities = {ABILITY_ICE_FACE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLUE, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_BEADS_OF_RUIN, ABILITY_NONE, ABILITY_NONE}, + .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, - }, - - [SPECIES_INDEEDEE_FEMALE] = + .isLegendary = TRUE, + .speciesName = _("Chi-Yu"), + .cryId = CRY_CHI_YU, + .natDexNum = NATIONAL_DEX_CHI_YU, + .categoryName = _("Ruinous"), + .height = 4, + .weight = 49, + .description = COMPOUND_STRING( + "It controls flames burning at over\n" + "5,400 degrees Fahrenheit. It\n" + "casually swims through the sea of lava it\n" + "creates by melting rock and sand."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(ChiYu, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_ChiYu, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 2, + BACK_PIC(ChiYu, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(ChiYu), + ICON(ChiYu, 0), + //.footprint = gMonFootprint_ChiYu, + LEARNSETS(ChiYu), + }, +#endif //P_FAMILY_CHI_YU + +#if P_FAMILY_ROARING_MOON + [SPECIES_ROARING_MOON] = { - .baseHP = 70, - .baseAttack = 55, - .baseDefense = 65, - .baseSpeed = 85, - .baseSpAttack = 95, - .baseSpDefense = 105, - .types = { TYPE_PSYCHIC, TYPE_NORMAL}, - .catchRate = 30, - .expYield = 166, - .evYield_SpDefense = 2, - .genderRatio = MON_FEMALE, - .eggCycles = 40, - .friendship = 140, - .growthRate = GROWTH_FAST, - .eggGroups = { EGG_GROUP_FAIRY, EGG_GROUP_FAIRY}, - .abilities = {ABILITY_OWN_TEMPO, ABILITY_SYNCHRONIZE, ABILITY_PSYCHIC_SURGE}, - .bodyColor = BODY_COLOR_PURPLE, + .baseHP = 105, + .baseAttack = 139, + .baseDefense = 71, + .baseSpeed = 119, + .baseSpAttack = 55, + .baseSpDefense = 101, + .types = { TYPE_DRAGON, TYPE_DARK }, + .catchRate = 10, + .expYield = 295, + .evYield_Attack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 50, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_PROTOSYNTHESIS, ABILITY_NONE}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - }, - - [SPECIES_MORPEKO_HANGRY] = MORPEKO_SPECIES_INFO, - - [SPECIES_ZACIAN_CROWNED_SWORD] = + .isParadoxForm = TRUE, + .speciesName = _("RoarngMoon"), + .cryId = CRY_ROARING_MOON, + .natDexNum = NATIONAL_DEX_ROARING_MOON, + .categoryName = _("Paradox"), + .height = 20, + .weight = 3800, + .description = COMPOUND_STRING( + "According to an article in a\n" + "dubious magazine, this Pokémon has some\n" + "connection to Mega Evolution that\n" + "occurs in Hoenn."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(RoaringMoon, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_RoaringMoon, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .enemyMonElevation = 20, + BACK_PIC(RoaringMoon, 64, 64), + .backPicYOffset = 7, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(RoaringMoon), + ICON(RoaringMoon, 3), + //.footprint = gMonFootprint_RoaringMoon, + LEARNSETS(RoaringMoon), + }, +#endif //P_FAMILY_ROARING_MOON + +#if P_FAMILY_IRON_VALIANT + [SPECIES_IRON_VALIANT] = { - .baseHP = 92, - .baseAttack = P_UPDATED_STATS >= GEN_9 ? 150 : 170, - .baseDefense = 115, - .baseSpeed = 148, - .baseSpAttack = 80, - .baseSpDefense = 115, - .types = { TYPE_FAIRY, TYPE_STEEL}, + .baseHP = 74, + .baseAttack = 130, + .baseDefense = 90, + .baseSpeed = 116, + .baseSpAttack = 120, + .baseSpDefense = 60, + .types = { TYPE_FAIRY, TYPE_FIGHTING }, .catchRate = 10, - .expYield = 360, - .evYield_Speed = 3, + .expYield = 295, + .evYield_Attack = 3, .genderRatio = MON_GENDERLESS, - .eggCycles = 120, + .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_INTREPID_SWORD, ABILITY_NONE}, - .bodyColor = BODY_COLOR_BLUE, + .abilities = {ABILITY_QUARK_DRIVE, ABILITY_NONE}, + .bodyColor = BODY_COLOR_WHITE, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_ZAMAZENTA_CROWNED_SHIELD] = + .isParadoxForm = TRUE, + .speciesName = _("IronVliant"), + .cryId = CRY_IRON_VALIANT, + .natDexNum = NATIONAL_DEX_IRON_VALIANT, + .categoryName = _("Paradox"), + .height = 14, + .weight = 350, + .description = COMPOUND_STRING( + "It has some similarities to a mad\n" + "scientist's invention covered in a\n" + "paranormal magazine."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(IronValiant, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_IronValiant, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(IronValiant, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(IronValiant), + ICON(IronValiant, 4), + //.footprint = gMonFootprint_IronValiant, + LEARNSETS(IronValiant), + }, +#endif //P_FAMILY_IRON_VALIANT + +#if P_FAMILY_KORAIDON + [SPECIES_KORAIDON] = { - .baseHP = 92, - .baseAttack = P_UPDATED_STATS >= GEN_9 ? 120 : 130, - .baseDefense = P_UPDATED_STATS >= GEN_9 ? 140 : 145, - .baseSpeed = 128, - .baseSpAttack = 80, - .baseSpDefense = P_UPDATED_STATS >= GEN_9 ? 140 : 145, - .types = { TYPE_FIGHTING, TYPE_STEEL}, - .catchRate = 10, - .expYield = 360, - .evYield_Speed = 3, + .baseHP = 100, + .baseAttack = 135, + .baseDefense = 115, + .baseSpeed = 135, + .baseSpAttack = 85, + .baseSpDefense = 100, + .types = { TYPE_FIGHTING, TYPE_DRAGON }, + .catchRate = 3, + .expYield = 335, + .evYield_Attack = 3, .genderRatio = MON_GENDERLESS, - .eggCycles = 120, + .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_DAUNTLESS_SHIELD, ABILITY_NONE}, + .abilities = {ABILITY_ORICHALCUM_PULSE, ABILITY_NONE, ABILITY_NONE}, .bodyColor = BODY_COLOR_RED, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_ETERNATUS_ETERNAMAX] = + .isLegendary = TRUE, + .isParadoxForm = TRUE, + .speciesName = _("Koraidon"), + .cryId = CRY_KORAIDON, + .natDexNum = NATIONAL_DEX_KORAIDON, + .categoryName = _("Paradox"), + .height = 25, + .weight = 3030, + .description = COMPOUND_STRING( + "This Pokémon resembles Cyclizar,\n" + "but it is far burlier and more\n" + "ferocious. Nothing is known about its\n" + "ecology or other features."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Koraidon, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Koraidon, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Koraidon, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Koraidon), + ICON(Koraidon, 0), + //.footprint = gMonFootprint_Koraidon, + LEARNSETS(Koraidon), + }, +#endif //P_FAMILY_KORAIDON + +#if P_FAMILY_MIRAIDON + [SPECIES_MIRAIDON] = { - .baseHP = 255, - .baseAttack = 115, - .baseDefense = 250, - .baseSpeed = 130, + .baseHP = 100, + .baseAttack = 85, + .baseDefense = 100, + .baseSpeed = 135, + .baseSpAttack = 135, + .baseSpDefense = 115, + .types = { TYPE_ELECTRIC, TYPE_DRAGON }, + .catchRate = 3, + .expYield = 335, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 50, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_HADRON_ENGINE, ABILITY_NONE, ABILITY_NONE}, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + .isLegendary = TRUE, + .isParadoxForm = TRUE, + .speciesName = _("Miraidon"), + .cryId = CRY_MIRAIDON, + .natDexNum = NATIONAL_DEX_MIRAIDON, + .categoryName = _("Paradox"), + .height = 35, + .weight = 2400, + .description = COMPOUND_STRING( + "This seems to be the Iron Serpent\n" + "mentioned in an Violet Book. The\n" + "Iron Serpent is said to have turned the\n" + "land to ash with its lightning."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Miraidon, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Miraidon, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Miraidon, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Miraidon), + ICON(Miraidon, 2), + //.footprint = gMonFootprint_Miraidon, + LEARNSETS(Miraidon), + }, +#endif //P_FAMILY_MIRAIDON + +#if P_FAMILY_WALKING_WAKE + [SPECIES_WALKING_WAKE] = + { + .baseHP = 99, + .baseAttack = 83, + .baseDefense = 91, + .baseSpeed = 109, .baseSpAttack = 125, - .baseSpDefense = 250, - .types = { TYPE_POISON, TYPE_DRAGON}, - .catchRate = 255, - .expYield = 563, - .evYield_HP = 3, + .baseSpDefense = 83, + .types = { TYPE_WATER, TYPE_DRAGON }, + .catchRate = 5, + .expYield = 295, + .evYield_SpAttack = 3, + .genderRatio = MON_GENDERLESS, + .eggCycles = 50, + .friendship = 0, + .growthRate = GROWTH_SLOW, + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, + .abilities = {ABILITY_PROTOSYNTHESIS, ABILITY_NONE}, + .bodyColor = BODY_COLOR_BLUE, + .noFlip = FALSE, + .isParadoxForm = TRUE, + .speciesName = _("WalkngWake"), + .cryId = CRY_WALKING_WAKE, + .natDexNum = NATIONAL_DEX_WALKING_WAKE, + .categoryName = _("Paradox"), + .height = 35, + .weight = 2800, + .description = COMPOUND_STRING( + "Ecology under research."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(WalkingWake, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_WalkingWake, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(WalkingWake, 64, 64), + .backPicYOffset = 3, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(WalkingWake), + ICON(WalkingWake, 2), + //.footprint = gMonFootprint_WalkingWake, + LEARNSETS(WalkingWake), + }, +#endif //P_FAMILY_WALKING_WAKE + +#if P_FAMILY_IRON_LEAVES + [SPECIES_IRON_LEAVES] = + { + .baseHP = 90, + .baseAttack = 130, + .baseDefense = 88, + .baseSpeed = 104, + .baseSpAttack = 70, + .baseSpDefense = 108, + .types = { TYPE_GRASS, TYPE_PSYCHIC }, + .catchRate = 5, + .expYield = 295, + .evYield_Attack = 3, .genderRatio = MON_GENDERLESS, - .eggCycles = 120, + .eggCycles = 50, .friendship = 0, .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_PRESSURE, ABILITY_NONE}, - .bodyColor = BODY_COLOR_PURPLE, + .abilities = {ABILITY_QUARK_DRIVE, ABILITY_NONE}, + .bodyColor = BODY_COLOR_GREEN, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - [SPECIES_URSHIFU_RAPID_STRIKE_STYLE] = - { - URSHIFU_RAPID_STRIKE_STYLE_MISC_INFO, - }, - - [SPECIES_ZARUDE_DADA] = ZARUDE_SPECIES_INFO, - - [SPECIES_CALYREX_ICE_RIDER] = + .isParadoxForm = TRUE, + .speciesName = _("IronLeaves"), + .cryId = CRY_IRON_LEAVES, + .natDexNum = NATIONAL_DEX_IRON_LEAVES, + .categoryName = _("Paradox"), + .height = 15, + .weight = 1250, + .description = COMPOUND_STRING( + "Ecology under analysis."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(IronLeaves, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_IronLeaves, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(IronLeaves, 64, 64), + .backPicYOffset = 8, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(IronLeaves), + ICON(IronLeaves, 1), + //.footprint = gMonFootprint_IronLeaves, + LEARNSETS(IronLeaves), + }, +#endif //P_FAMILY_IRON_LEAVES + +#if P_FAMILY_POLTCHAGEIST +#define POLTCHAGEIST_MISC_INFO \ + .baseHP = 40, \ + .baseAttack = 45, \ + .baseDefense = 45, \ + .baseSpeed = 50, \ + .baseSpAttack = 74, \ + .baseSpDefense = 54, \ + .types = { TYPE_GRASS, TYPE_GHOST}, \ + .catchRate = 120, \ + .expYield = 62, \ + .evYield_SpAttack = 1, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS}, \ + .abilities = {ABILITY_HOSPITALITY, ABILITY_NONE, ABILITY_HEATPROOF}, \ + .bodyColor = BODY_COLOR_GREEN, \ + .noFlip = FALSE, \ + .speciesName = _("Ptchageist"), \ + .cryId = CRY_POLTCHAGEIST, \ + .natDexNum = NATIONAL_DEX_POLTCHAGEIST, \ + .categoryName = _("Matcha"), \ + .height = 1, \ + .weight = 11, \ + .pokemonScale = 356, \ + .pokemonOffset = 17, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + FRONT_PIC(Poltchageist, 64, 64), \ + .frontPicYOffset = 0, \ + .frontAnimFrames = sAnims_Poltchageist, \ + BACK_PIC(Poltchageist, 64, 64), \ + .backPicYOffset = 5, \ + PALETTE(Poltchageist), \ + ICON(Poltchageist, 4), \ + LEARNSETS(Poltchageist) + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + //.backAnimId = BACK_ANIM_NONE, + //.footprint = gMonFootprint_Poltchageist, + + [SPECIES_POLTCHAGEIST_COUNTERFEIT] = + { + POLTCHAGEIST_MISC_INFO, + .description = COMPOUND_STRING( + "Supposedly, the regrets of a tea\n" + "ceremony master who died before\n" + "perfecting his craft lingered in some\n" + "matcha and became a Pokémon."), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_UNREMARKABLE_TEACUP, SPECIES_SINISTCHA_UNREMARKABLE}), + }, + [SPECIES_POLTCHAGEIST_ARTISAN] = + { + POLTCHAGEIST_MISC_INFO, + .description = COMPOUND_STRING( + ""), + .evolutions = EVOLUTION({EVO_ITEM, ITEM_MASTERPIECE_TEACUP, SPECIES_SINISTCHA_MASTERPIECE}), + }, + +#define SINISTCHA_MISC_INFO \ + .baseHP = 71, \ + .baseAttack = 60, \ + .baseDefense = 106, \ + .baseSpeed = 70, \ + .baseSpAttack = 121, \ + .baseSpDefense = 80, \ + .types = { TYPE_GRASS, TYPE_GHOST}, \ + .catchRate = 60, \ + .expYield = 178, \ + .evYield_SpAttack = 2, \ + .genderRatio = MON_GENDERLESS, \ + .eggCycles = 20, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_MEDIUM_FAST, \ + .eggGroups = { EGG_GROUP_MINERAL, EGG_GROUP_AMORPHOUS}, \ + .abilities = {ABILITY_HOSPITALITY, ABILITY_NONE, ABILITY_HEATPROOF}, \ + .bodyColor = BODY_COLOR_GREEN, \ + .noFlip = FALSE, \ + .speciesName = _("Sinistcha"), \ + .cryId = CRY_SINISTCHA, \ + .natDexNum = NATIONAL_DEX_SINISTCHA, \ + .categoryName = _("Matcha"), \ + .height = 2, \ + .weight = 22, \ + .pokemonScale = 356, \ + .pokemonOffset = 17, \ + .trainerScale = 256, \ + .trainerOffset = 0, \ + FRONT_PIC(Sinistcha, 64, 64), \ + .frontPicYOffset = 0, \ + .frontAnimFrames = sAnims_Sinistcha, \ + BACK_PIC(Sinistcha, 64, 64), \ + .backPicYOffset = 13, \ + PALETTE(Sinistcha), \ + ICON(Sinistcha, 1), \ + LEARNSETS(Sinistcha) + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + //.backAnimId = BACK_ANIM_NONE, + //.footprint = gMonFootprint_Sinistcha, + + [SPECIES_SINISTCHA_UNREMARKABLE] = + { + SINISTCHA_MISC_INFO, + .description = COMPOUND_STRING( + "It pretends to be tea, trying to fool\n" + "people into drinking it so it can\n" + "drain their life-force. Its ruse is\n" + "generally unsuccessful."), + }, + [SPECIES_SINISTCHA_MASTERPIECE] = + { + SINISTCHA_MISC_INFO, + .description = COMPOUND_STRING( + ""), + }, +#endif //P_FAMILY_POLTCHAGEIST + +#if P_FAMILY_OKIDOGI + [SPECIES_OKIDOGI] = { - .baseHP = 100, - .baseAttack = 165, - .baseDefense = 150, - .baseSpeed = 50, - .baseSpAttack = 85, - .baseSpDefense = 130, - .types = { TYPE_PSYCHIC, TYPE_ICE}, + .baseHP = 88, + .baseAttack = 128, + .baseDefense = 115, + .baseSpeed = 80, + .baseSpAttack = 58, + .baseSpDefense = 86, + .types = { TYPE_POISON, TYPE_FIGHTING }, .catchRate = 3, - .expYield = 340, - .evYield_Attack = 3, - .genderRatio = MON_GENDERLESS, + .expYield = 278, + .evYield_Attack = 3, + .genderRatio = MON_MALE, .eggCycles = 120, - .friendship = 100, + .friendship = 0, .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_AS_ONE_ICE_RIDER, ABILITY_NONE}, - .bodyColor = BODY_COLOR_WHITE, + .abilities = {ABILITY_TOXIC_CHAIN, ABILITY_NONE, ABILITY_GUARD_DOG}, + .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY | SPECIES_FLAG_CANNOT_BE_TRADED, - }, - - [SPECIES_CALYREX_SHADOW_RIDER] = + .speciesName = _("Okidogi"), + .cryId = CRY_OKIDOGI, + .natDexNum = NATIONAL_DEX_OKIDOGI, + .categoryName = _("Retainer"), + .height = 18, + .weight = 920, + .description = COMPOUND_STRING( + "After all its muscles were stimulated\n" + "by the toxic chain around its neck,\n" + "Okidogi transformed and gained\n" + "a powerful physique."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Okidogi, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Okidogi, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Okidogi, 64, 64), + .backPicYOffset = 16, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Okidogi), + ICON(Okidogi, 1), + //.footprint = gMonFootprint_Okidogi, + LEARNSETS(Okidogi), + .isLegendary = TRUE, + }, +#endif //P_FAMILY_OKIDOGI + +#if P_FAMILY_MUNKIDORI + [SPECIES_MUNKIDORI] = { - .baseHP = 100, - .baseAttack = 85, - .baseDefense = 80, - .baseSpeed = 150, - .baseSpAttack = 165, - .baseSpDefense = 100, - .types = { TYPE_PSYCHIC, TYPE_GHOST}, + .baseHP = 88, + .baseAttack = 75, + .baseDefense = 66, + .baseSpeed = 106, + .baseSpAttack = 130, + .baseSpDefense = 90, + .types = { TYPE_POISON, TYPE_PSYCHIC }, .catchRate = 3, - .expYield = 340, - .evYield_SpAttack = 3, - .genderRatio = MON_GENDERLESS, + .expYield = 278, + .evYield_SpAttack = 3, + .genderRatio = MON_MALE, .eggCycles = 120, - .friendship = 100, + .friendship = 0, .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_AS_ONE_SHADOW_RIDER, ABILITY_NONE}, + .abilities = {ABILITY_TOXIC_CHAIN, ABILITY_NONE, ABILITY_FRISK}, .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY | SPECIES_FLAG_CANNOT_BE_TRADED, - }, - - [SPECIES_ENAMORUS_THERIAN] = + .isLegendary = TRUE, + .speciesName = _("Munkidori"), + .cryId = CRY_MUNKIDORI, + .natDexNum = NATIONAL_DEX_MUNKIDORI, + .categoryName = _("Retainer"), + .height = 10, + .weight = 122, + .description = COMPOUND_STRING( + "The chain is made from toxins that\n" + "enhance capabilities. It stimulated\n" + "Munkidori's brain and caused the\n" + "Pokémon's psychic powers to bloom."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Munkidori, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Munkidori, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Munkidori, 64, 64), + .backPicYOffset = 0, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Munkidori), + ICON(Munkidori, 0), + //.footprint = gMonFootprint_Munkidori, + LEARNSETS(Munkidori), + }, +#endif //P_FAMILY_MUNKIDORI + +#if P_FAMILY_FEZANDIPITI + [SPECIES_FEZANDIPITI] = { - .baseHP = 74, - .baseAttack = 115, - .baseDefense = 110, - .baseSpeed = 46, - .baseSpAttack = 135, - .baseSpDefense = 100, - .types = { TYPE_FAIRY, TYPE_FLYING}, + .baseHP = 88, + .baseAttack = 91, + .baseDefense = 82, + .baseSpeed = 99, + .baseSpAttack = 70, + .baseSpDefense = 125, + .types = { TYPE_POISON, TYPE_FAIRY }, .catchRate = 3, - .expYield = 270, - .evYield_SpAttack = 3, - .genderRatio = MON_FEMALE, + .expYield = 278, + .evYield_SpDefense = 3, + .genderRatio = MON_MALE, .eggCycles = 120, - .friendship = 90, + .friendship = 0, .growthRate = GROWTH_SLOW, .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED}, - .abilities = {ABILITY_OVERCOAT, ABILITY_NONE}, - .bodyColor = BODY_COLOR_PINK, + .abilities = {ABILITY_TOXIC_CHAIN, ABILITY_NONE, ABILITY_TECHNICIAN}, + .bodyColor = BODY_COLOR_BLACK, .noFlip = FALSE, - .flags = SPECIES_FLAG_LEGENDARY, - }, - - // Gigantamax Forms - [SPECIES_VENUSAUR_GIGANTAMAX] = - { - VENUSAUR_MISC_INFO, - .gigantamax = TRUE, - }, - [SPECIES_CHARIZARD_GIGANTAMAX] = - { - CHARIZARD_MISC_INFO, - .gigantamax = TRUE, - }, - [SPECIES_BLASTOISE_GIGANTAMAX] = - { - BLASTOISE_MISC_INFO, - .gigantamax = TRUE, - }, - [SPECIES_BUTTERFREE_GIGANTAMAX] = - { - BUTTERFREE_MISC_INFO, - .gigantamax = TRUE, - }, - [SPECIES_PIKACHU_GIGANTAMAX] = - { - PIKACHU_MISC_INFO(PERCENT_FEMALE(50), FLIP), - .gigantamax = TRUE, - }, - [SPECIES_MEOWTH_GIGANTAMAX] = - { - MEOWTH_MISC_INFO, - .gigantamax = TRUE, - }, - [SPECIES_MACHAMP_GIGANTAMAX] = - { - MACHAMP_MISC_INFO, - .gigantamax = TRUE, - }, - [SPECIES_GENGAR_GIGANTAMAX] = - { - GENGAR_MISC_INFO, - .gigantamax = TRUE, - }, - [SPECIES_KINGLER_GIGANTAMAX] = - { - KINGLER_MISC_INFO, - .gigantamax = TRUE, - }, - [SPECIES_LAPRAS_GIGANTAMAX] = - { - LAPRAS_MISC_INFO, - .gigantamax = TRUE, - }, - [SPECIES_EEVEE_GIGANTAMAX] = - { - EEVEE_MISC_INFO, - .gigantamax = TRUE, - }, - [SPECIES_SNORLAX_GIGANTAMAX] = - { - SNORLAX_MISC_INFO, - .gigantamax = TRUE, - }, - [SPECIES_GARBODOR_GIGANTAMAX] = - { - GARBODOR_MISC_INFO, - .gigantamax = TRUE, - }, - [SPECIES_MELMETAL_GIGANTAMAX] = - { - MELMETAL_MISC_INFO, - .gigantamax = TRUE, - }, - [SPECIES_RILLABOOM_GIGANTAMAX] = - { - RILLABOOM_MISC_INFO, - .gigantamax = TRUE, - }, - [SPECIES_CINDERACE_GIGANTAMAX] = - { - CINDERACE_MISC_INFO, - .gigantamax = TRUE, - }, - [SPECIES_INTELEON_GIGANTAMAX] = - { - INTELEON_MISC_INFO, - .gigantamax = TRUE, - }, - [SPECIES_CORVIKNIGHT_GIGANTAMAX] = - { - CORVIKNIGHT_MISC_INFO, - .gigantamax = TRUE, - }, - [SPECIES_ORBEETLE_GIGANTAMAX] = - { - ORBEETLE_MISC_INFO, - .gigantamax = TRUE, - }, - [SPECIES_DREDNAW_GIGANTAMAX] = - { - DREDNAW_MISC_INFO, - .gigantamax = TRUE, - }, - [SPECIES_COALOSSAL_GIGANTAMAX] = - { - COALOSSAL_MISC_INFO, - .gigantamax = TRUE, - }, - [SPECIES_FLAPPLE_GIGANTAMAX] = - { - FLAPPLE_MISC_INFO, - .gigantamax = TRUE, - }, - [SPECIES_APPLETUN_GIGANTAMAX] = - { - APPLETUN_MISC_INFO, - .gigantamax = TRUE, - }, - [SPECIES_SANDACONDA_GIGANTAMAX] = - { - SANDACONDA_MISC_INFO, - .gigantamax = TRUE, - }, - [SPECIES_TOXTRICITY_AMPED_GIGANTAMAX] = - { - TOXTRICITY_MISC_INFO(ABILITY_PLUS), - .gigantamax = TRUE, - }, - [SPECIES_TOXTRICITY_LOW_KEY_GIGANTAMAX] = - { - TOXTRICITY_MISC_INFO(ABILITY_MINUS), - .gigantamax = TRUE, - }, - [SPECIES_CENTISKORCH_GIGANTAMAX] = - { - CENTISKORCH_MISC_INFO, - .gigantamax = TRUE, - }, - [SPECIES_HATTERENE_GIGANTAMAX] = - { - HATTERENE_MISC_INFO, - .gigantamax = TRUE, - }, - [SPECIES_GRIMMSNARL_GIGANTAMAX] = - { - GRIMMSNARL_MISC_INFO, - .gigantamax = TRUE, - }, - [SPECIES_ALCREMIE_GIGANTAMAX] = - { - ALCREMIE_MISC_INFO(BODY_COLOR_PINK), - .gigantamax = TRUE, - }, - [SPECIES_COPPERAJAH_GIGANTAMAX] = - { - COPPERAJAH_MISC_INFO, - .gigantamax = TRUE, - }, - [SPECIES_DURALUDON_GIGANTAMAX] = - { - DURALUDON_MISC_INFO, - .gigantamax = TRUE, - }, - [SPECIES_URSHIFU_SINGLE_STRIKE_STYLE_GIGANTAMAX] = - { - URSHIFU_SINGLE_STRIKE_STYLE_MISC_INFO, - .gigantamax = TRUE, - }, - [SPECIES_URSHIFU_RAPID_STRIKE_STYLE_GIGANTAMAX] = - { - URSHIFU_RAPID_STRIKE_STYLE_MISC_INFO, - .gigantamax = TRUE, - }, + .isLegendary = TRUE, + .speciesName = _("Fezndipiti"), + .cryId = CRY_FEZANDIPITI, + .natDexNum = NATIONAL_DEX_FEZANDIPITI, + .categoryName = _("Retainer"), + .height = 14, + .weight = 301, + .description = COMPOUND_STRING( + "Fezandipiti owes its beautiful looks and\n" + "lovely voice to the toxic stimulants\n" + "emanating from the chain wrapped around\n" + "its body."), + .pokemonScale = 356, + .pokemonOffset = 17, + .trainerScale = 256, + .trainerOffset = 0, + FRONT_PIC(Fezandipiti, 64, 64), + .frontPicYOffset = 0, + .frontAnimFrames = sAnims_Fezandipiti, + //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + BACK_PIC(Fezandipiti, 64, 64), + .backPicYOffset = 4, + //.backAnimId = BACK_ANIM_NONE, + PALETTE(Fezandipiti), + ICON(Fezandipiti, 0), + //.footprint = gMonFootprint_Fezandipiti, + LEARNSETS(Fezandipiti), + }, +#endif //P_FAMILY_FEZANDIPITI + +#if P_FAMILY_OGERPON +#define OGERPON_SPECIES_INFO(type, ability, color) \ + { \ + .baseHP = 80, \ + .baseAttack = 120, \ + .baseDefense = 84, \ + .baseSpeed = 110, \ + .baseSpAttack = 60, \ + .baseSpDefense = 96, \ + .types = { TYPE_GRASS, type }, \ + .catchRate = 5, \ + .expYield = 275, \ + .evYield_Attack = 3, \ + .genderRatio = MON_FEMALE, \ + .eggCycles = 10, \ + .friendship = STANDARD_FRIENDSHIP, \ + .growthRate = GROWTH_SLOW, \ + .eggGroups = { EGG_GROUP_UNDISCOVERED, EGG_GROUP_UNDISCOVERED },\ + .abilities = {ability, ABILITY_NONE}, \ + .bodyColor = color, \ + .noFlip = FALSE, \ + .isLegendary = TRUE, \ + } -#endif + [SPECIES_OGERPON_TEAL_MASK] = OGERPON_SPECIES_INFO(TYPE_GRASS, ABILITY_DEFIANT, BODY_COLOR_GREEN), + [SPECIES_OGERPON_WELLSPRING_MASK] = OGERPON_SPECIES_INFO(TYPE_WATER, ABILITY_WATER_ABSORB, BODY_COLOR_BLUE), + [SPECIES_OGERPON_HEARTHFLAME_MASK] = OGERPON_SPECIES_INFO(TYPE_FIRE, ABILITY_MOLD_BREAKER, BODY_COLOR_RED), + [SPECIES_OGERPON_CORNERSTONE_MASK] = OGERPON_SPECIES_INFO(TYPE_ROCK, ABILITY_STURDY, BODY_COLOR_GRAY), + [SPECIES_OGERPON_TEAL_MASK_TERA] = OGERPON_SPECIES_INFO(TYPE_GRASS, ABILITY_EMBODY_ASPECT_TEAL, BODY_COLOR_GREEN), + [SPECIES_OGERPON_WELLSPRING_MASK_TERA] = OGERPON_SPECIES_INFO(TYPE_WATER, ABILITY_EMBODY_ASPECT_WELLSPRING, BODY_COLOR_BLUE), + [SPECIES_OGERPON_HEARTHFLAME_MASK_TERA] = OGERPON_SPECIES_INFO(TYPE_FIRE, ABILITY_EMBODY_ASPECT_HEARTHFLAME, BODY_COLOR_RED), + [SPECIES_OGERPON_CORNERSTONE_MASK_TERA] = OGERPON_SPECIES_INFO(TYPE_ROCK, ABILITY_EMBODY_ASPECT_CORNERSTONE, BODY_COLOR_GRAY), +#endif //P_FAMILY_OGERPON }; diff --git a/src/data/pokemon/teachable_learnset_pointers.h b/src/data/pokemon/teachable_learnset_pointers.h deleted file mode 100644 index 8d00b8f05c9b..000000000000 --- a/src/data/pokemon/teachable_learnset_pointers.h +++ /dev/null @@ -1,1375 +0,0 @@ -const u16 *const gTeachableLearnsets[NUM_SPECIES] = -{ - [SPECIES_NONE] = sBulbasaurTeachableLearnset, - [SPECIES_BULBASAUR] = sBulbasaurTeachableLearnset, - [SPECIES_IVYSAUR] = sIvysaurTeachableLearnset, - [SPECIES_VENUSAUR] = sVenusaurTeachableLearnset, - [SPECIES_CHARMANDER] = sCharmanderTeachableLearnset, - [SPECIES_CHARMELEON] = sCharmeleonTeachableLearnset, - [SPECIES_CHARIZARD] = sCharizardTeachableLearnset, - [SPECIES_SQUIRTLE] = sSquirtleTeachableLearnset, - [SPECIES_WARTORTLE] = sWartortleTeachableLearnset, - [SPECIES_BLASTOISE] = sBlastoiseTeachableLearnset, - [SPECIES_CATERPIE] = sCaterpieTeachableLearnset, - [SPECIES_METAPOD] = sMetapodTeachableLearnset, - [SPECIES_BUTTERFREE] = sButterfreeTeachableLearnset, - [SPECIES_WEEDLE] = sWeedleTeachableLearnset, - [SPECIES_KAKUNA] = sKakunaTeachableLearnset, - [SPECIES_BEEDRILL] = sBeedrillTeachableLearnset, - [SPECIES_PIDGEY] = sPidgeyTeachableLearnset, - [SPECIES_PIDGEOTTO] = sPidgeottoTeachableLearnset, - [SPECIES_PIDGEOT] = sPidgeotTeachableLearnset, - [SPECIES_RATTATA] = sRattataTeachableLearnset, - [SPECIES_RATICATE] = sRaticateTeachableLearnset, - [SPECIES_SPEAROW] = sSpearowTeachableLearnset, - [SPECIES_FEAROW] = sFearowTeachableLearnset, - [SPECIES_EKANS] = sEkansTeachableLearnset, - [SPECIES_ARBOK] = sArbokTeachableLearnset, - [SPECIES_PIKACHU] = sPikachuTeachableLearnset, - [SPECIES_RAICHU] = sRaichuTeachableLearnset, - [SPECIES_SANDSHREW] = sSandshrewTeachableLearnset, - [SPECIES_SANDSLASH] = sSandslashTeachableLearnset, - [SPECIES_NIDORAN_F] = sNidoranFTeachableLearnset, - [SPECIES_NIDORINA] = sNidorinaTeachableLearnset, - [SPECIES_NIDOQUEEN] = sNidoqueenTeachableLearnset, - [SPECIES_NIDORAN_M] = sNidoranMTeachableLearnset, - [SPECIES_NIDORINO] = sNidorinoTeachableLearnset, - [SPECIES_NIDOKING] = sNidokingTeachableLearnset, - [SPECIES_CLEFAIRY] = sClefairyTeachableLearnset, - [SPECIES_CLEFABLE] = sClefableTeachableLearnset, - [SPECIES_VULPIX] = sVulpixTeachableLearnset, - [SPECIES_NINETALES] = sNinetalesTeachableLearnset, - [SPECIES_JIGGLYPUFF] = sJigglypuffTeachableLearnset, - [SPECIES_WIGGLYTUFF] = sWigglytuffTeachableLearnset, - [SPECIES_ZUBAT] = sZubatTeachableLearnset, - [SPECIES_GOLBAT] = sGolbatTeachableLearnset, - [SPECIES_ODDISH] = sOddishTeachableLearnset, - [SPECIES_GLOOM] = sGloomTeachableLearnset, - [SPECIES_VILEPLUME] = sVileplumeTeachableLearnset, - [SPECIES_PARAS] = sParasTeachableLearnset, - [SPECIES_PARASECT] = sParasectTeachableLearnset, - [SPECIES_VENONAT] = sVenonatTeachableLearnset, - [SPECIES_VENOMOTH] = sVenomothTeachableLearnset, - [SPECIES_DIGLETT] = sDiglettTeachableLearnset, - [SPECIES_DUGTRIO] = sDugtrioTeachableLearnset, - [SPECIES_MEOWTH] = sMeowthTeachableLearnset, - [SPECIES_PERSIAN] = sPersianTeachableLearnset, - [SPECIES_PSYDUCK] = sPsyduckTeachableLearnset, - [SPECIES_GOLDUCK] = sGolduckTeachableLearnset, - [SPECIES_MANKEY] = sMankeyTeachableLearnset, - [SPECIES_PRIMEAPE] = sPrimeapeTeachableLearnset, - [SPECIES_GROWLITHE] = sGrowlitheTeachableLearnset, - [SPECIES_ARCANINE] = sArcanineTeachableLearnset, - [SPECIES_POLIWAG] = sPoliwagTeachableLearnset, - [SPECIES_POLIWHIRL] = sPoliwhirlTeachableLearnset, - [SPECIES_POLIWRATH] = sPoliwrathTeachableLearnset, - [SPECIES_ABRA] = sAbraTeachableLearnset, - [SPECIES_KADABRA] = sKadabraTeachableLearnset, - [SPECIES_ALAKAZAM] = sAlakazamTeachableLearnset, - [SPECIES_MACHOP] = sMachopTeachableLearnset, - [SPECIES_MACHOKE] = sMachokeTeachableLearnset, - [SPECIES_MACHAMP] = sMachampTeachableLearnset, - [SPECIES_BELLSPROUT] = sBellsproutTeachableLearnset, - [SPECIES_WEEPINBELL] = sWeepinbellTeachableLearnset, - [SPECIES_VICTREEBEL] = sVictreebelTeachableLearnset, - [SPECIES_TENTACOOL] = sTentacoolTeachableLearnset, - [SPECIES_TENTACRUEL] = sTentacruelTeachableLearnset, - [SPECIES_GEODUDE] = sGeodudeTeachableLearnset, - [SPECIES_GRAVELER] = sGravelerTeachableLearnset, - [SPECIES_GOLEM] = sGolemTeachableLearnset, - [SPECIES_PONYTA] = sPonytaTeachableLearnset, - [SPECIES_RAPIDASH] = sRapidashTeachableLearnset, - [SPECIES_SLOWPOKE] = sSlowpokeTeachableLearnset, - [SPECIES_SLOWBRO] = sSlowbroTeachableLearnset, - [SPECIES_MAGNEMITE] = sMagnemiteTeachableLearnset, - [SPECIES_MAGNETON] = sMagnetonTeachableLearnset, - [SPECIES_FARFETCHD] = sFarfetchdTeachableLearnset, - [SPECIES_DODUO] = sDoduoTeachableLearnset, - [SPECIES_DODRIO] = sDodrioTeachableLearnset, - [SPECIES_SEEL] = sSeelTeachableLearnset, - [SPECIES_DEWGONG] = sDewgongTeachableLearnset, - [SPECIES_GRIMER] = sGrimerTeachableLearnset, - [SPECIES_MUK] = sMukTeachableLearnset, - [SPECIES_SHELLDER] = sShellderTeachableLearnset, - [SPECIES_CLOYSTER] = sCloysterTeachableLearnset, - [SPECIES_GASTLY] = sGastlyTeachableLearnset, - [SPECIES_HAUNTER] = sHaunterTeachableLearnset, - [SPECIES_GENGAR] = sGengarTeachableLearnset, - [SPECIES_ONIX] = sOnixTeachableLearnset, - [SPECIES_DROWZEE] = sDrowzeeTeachableLearnset, - [SPECIES_HYPNO] = sHypnoTeachableLearnset, - [SPECIES_KRABBY] = sKrabbyTeachableLearnset, - [SPECIES_KINGLER] = sKinglerTeachableLearnset, - [SPECIES_VOLTORB] = sVoltorbTeachableLearnset, - [SPECIES_ELECTRODE] = sElectrodeTeachableLearnset, - [SPECIES_EXEGGCUTE] = sExeggcuteTeachableLearnset, - [SPECIES_EXEGGUTOR] = sExeggutorTeachableLearnset, - [SPECIES_CUBONE] = sCuboneTeachableLearnset, - [SPECIES_MAROWAK] = sMarowakTeachableLearnset, - [SPECIES_HITMONLEE] = sHitmonleeTeachableLearnset, - [SPECIES_HITMONCHAN] = sHitmonchanTeachableLearnset, - [SPECIES_LICKITUNG] = sLickitungTeachableLearnset, - [SPECIES_KOFFING] = sKoffingTeachableLearnset, - [SPECIES_WEEZING] = sWeezingTeachableLearnset, - [SPECIES_RHYHORN] = sRhyhornTeachableLearnset, - [SPECIES_RHYDON] = sRhydonTeachableLearnset, - [SPECIES_CHANSEY] = sChanseyTeachableLearnset, - [SPECIES_TANGELA] = sTangelaTeachableLearnset, - [SPECIES_KANGASKHAN] = sKangaskhanTeachableLearnset, - [SPECIES_HORSEA] = sHorseaTeachableLearnset, - [SPECIES_SEADRA] = sSeadraTeachableLearnset, - [SPECIES_GOLDEEN] = sGoldeenTeachableLearnset, - [SPECIES_SEAKING] = sSeakingTeachableLearnset, - [SPECIES_STARYU] = sStaryuTeachableLearnset, - [SPECIES_STARMIE] = sStarmieTeachableLearnset, - [SPECIES_MR_MIME] = sMrMimeTeachableLearnset, - [SPECIES_SCYTHER] = sScytherTeachableLearnset, - [SPECIES_JYNX] = sJynxTeachableLearnset, - [SPECIES_ELECTABUZZ] = sElectabuzzTeachableLearnset, - [SPECIES_MAGMAR] = sMagmarTeachableLearnset, - [SPECIES_PINSIR] = sPinsirTeachableLearnset, - [SPECIES_TAUROS] = sTaurosTeachableLearnset, - [SPECIES_MAGIKARP] = sMagikarpTeachableLearnset, - [SPECIES_GYARADOS] = sGyaradosTeachableLearnset, - [SPECIES_LAPRAS] = sLaprasTeachableLearnset, - [SPECIES_DITTO] = sDittoTeachableLearnset, - [SPECIES_EEVEE] = sEeveeTeachableLearnset, - [SPECIES_VAPOREON] = sVaporeonTeachableLearnset, - [SPECIES_JOLTEON] = sJolteonTeachableLearnset, - [SPECIES_FLAREON] = sFlareonTeachableLearnset, - [SPECIES_PORYGON] = sPorygonTeachableLearnset, - [SPECIES_OMANYTE] = sOmanyteTeachableLearnset, - [SPECIES_OMASTAR] = sOmastarTeachableLearnset, - [SPECIES_KABUTO] = sKabutoTeachableLearnset, - [SPECIES_KABUTOPS] = sKabutopsTeachableLearnset, - [SPECIES_AERODACTYL] = sAerodactylTeachableLearnset, - [SPECIES_SNORLAX] = sSnorlaxTeachableLearnset, - [SPECIES_ARTICUNO] = sArticunoTeachableLearnset, - [SPECIES_ZAPDOS] = sZapdosTeachableLearnset, - [SPECIES_MOLTRES] = sMoltresTeachableLearnset, - [SPECIES_DRATINI] = sDratiniTeachableLearnset, - [SPECIES_DRAGONAIR] = sDragonairTeachableLearnset, - [SPECIES_DRAGONITE] = sDragoniteTeachableLearnset, - [SPECIES_MEWTWO] = sMewtwoTeachableLearnset, - [SPECIES_MEW] = sMewTeachableLearnset, - [SPECIES_CHIKORITA] = sChikoritaTeachableLearnset, - [SPECIES_BAYLEEF] = sBayleefTeachableLearnset, - [SPECIES_MEGANIUM] = sMeganiumTeachableLearnset, - [SPECIES_CYNDAQUIL] = sCyndaquilTeachableLearnset, - [SPECIES_QUILAVA] = sQuilavaTeachableLearnset, - [SPECIES_TYPHLOSION] = sTyphlosionTeachableLearnset, - [SPECIES_TOTODILE] = sTotodileTeachableLearnset, - [SPECIES_CROCONAW] = sCroconawTeachableLearnset, - [SPECIES_FERALIGATR] = sFeraligatrTeachableLearnset, - [SPECIES_SENTRET] = sSentretTeachableLearnset, - [SPECIES_FURRET] = sFurretTeachableLearnset, - [SPECIES_HOOTHOOT] = sHoothootTeachableLearnset, - [SPECIES_NOCTOWL] = sNoctowlTeachableLearnset, - [SPECIES_LEDYBA] = sLedybaTeachableLearnset, - [SPECIES_LEDIAN] = sLedianTeachableLearnset, - [SPECIES_SPINARAK] = sSpinarakTeachableLearnset, - [SPECIES_ARIADOS] = sAriadosTeachableLearnset, - [SPECIES_CROBAT] = sCrobatTeachableLearnset, - [SPECIES_CHINCHOU] = sChinchouTeachableLearnset, - [SPECIES_LANTURN] = sLanturnTeachableLearnset, - [SPECIES_PICHU] = sPichuTeachableLearnset, - [SPECIES_CLEFFA] = sCleffaTeachableLearnset, - [SPECIES_IGGLYBUFF] = sIgglybuffTeachableLearnset, - [SPECIES_TOGEPI] = sTogepiTeachableLearnset, - [SPECIES_TOGETIC] = sTogeticTeachableLearnset, - [SPECIES_NATU] = sNatuTeachableLearnset, - [SPECIES_XATU] = sXatuTeachableLearnset, - [SPECIES_MAREEP] = sMareepTeachableLearnset, - [SPECIES_FLAAFFY] = sFlaaffyTeachableLearnset, - [SPECIES_AMPHAROS] = sAmpharosTeachableLearnset, - [SPECIES_BELLOSSOM] = sBellossomTeachableLearnset, - [SPECIES_MARILL] = sMarillTeachableLearnset, - [SPECIES_AZUMARILL] = sAzumarillTeachableLearnset, - [SPECIES_SUDOWOODO] = sSudowoodoTeachableLearnset, - [SPECIES_POLITOED] = sPolitoedTeachableLearnset, - [SPECIES_HOPPIP] = sHoppipTeachableLearnset, - [SPECIES_SKIPLOOM] = sSkiploomTeachableLearnset, - [SPECIES_JUMPLUFF] = sJumpluffTeachableLearnset, - [SPECIES_AIPOM] = sAipomTeachableLearnset, - [SPECIES_SUNKERN] = sSunkernTeachableLearnset, - [SPECIES_SUNFLORA] = sSunfloraTeachableLearnset, - [SPECIES_YANMA] = sYanmaTeachableLearnset, - [SPECIES_WOOPER] = sWooperTeachableLearnset, - [SPECIES_QUAGSIRE] = sQuagsireTeachableLearnset, - [SPECIES_ESPEON] = sEspeonTeachableLearnset, - [SPECIES_UMBREON] = sUmbreonTeachableLearnset, - [SPECIES_MURKROW] = sMurkrowTeachableLearnset, - [SPECIES_SLOWKING] = sSlowkingTeachableLearnset, - [SPECIES_MISDREAVUS] = sMisdreavusTeachableLearnset, - [SPECIES_UNOWN] = sUnownTeachableLearnset, - [SPECIES_WOBBUFFET] = sWobbuffetTeachableLearnset, - [SPECIES_GIRAFARIG] = sGirafarigTeachableLearnset, - [SPECIES_PINECO] = sPinecoTeachableLearnset, - [SPECIES_FORRETRESS] = sForretressTeachableLearnset, - [SPECIES_DUNSPARCE] = sDunsparceTeachableLearnset, - [SPECIES_GLIGAR] = sGligarTeachableLearnset, - [SPECIES_STEELIX] = sSteelixTeachableLearnset, - [SPECIES_SNUBBULL] = sSnubbullTeachableLearnset, - [SPECIES_GRANBULL] = sGranbullTeachableLearnset, - [SPECIES_QWILFISH] = sQwilfishTeachableLearnset, - [SPECIES_SCIZOR] = sScizorTeachableLearnset, - [SPECIES_SHUCKLE] = sShuckleTeachableLearnset, - [SPECIES_HERACROSS] = sHeracrossTeachableLearnset, - [SPECIES_SNEASEL] = sSneaselTeachableLearnset, - [SPECIES_TEDDIURSA] = sTeddiursaTeachableLearnset, - [SPECIES_URSARING] = sUrsaringTeachableLearnset, - [SPECIES_SLUGMA] = sSlugmaTeachableLearnset, - [SPECIES_MAGCARGO] = sMagcargoTeachableLearnset, - [SPECIES_SWINUB] = sSwinubTeachableLearnset, - [SPECIES_PILOSWINE] = sPiloswineTeachableLearnset, - [SPECIES_CORSOLA] = sCorsolaTeachableLearnset, - [SPECIES_REMORAID] = sRemoraidTeachableLearnset, - [SPECIES_OCTILLERY] = sOctilleryTeachableLearnset, - [SPECIES_DELIBIRD] = sDelibirdTeachableLearnset, - [SPECIES_MANTINE] = sMantineTeachableLearnset, - [SPECIES_SKARMORY] = sSkarmoryTeachableLearnset, - [SPECIES_HOUNDOUR] = sHoundourTeachableLearnset, - [SPECIES_HOUNDOOM] = sHoundoomTeachableLearnset, - [SPECIES_KINGDRA] = sKingdraTeachableLearnset, - [SPECIES_PHANPY] = sPhanpyTeachableLearnset, - [SPECIES_DONPHAN] = sDonphanTeachableLearnset, - [SPECIES_PORYGON2] = sPorygon2TeachableLearnset, - [SPECIES_STANTLER] = sStantlerTeachableLearnset, - [SPECIES_SMEARGLE] = sSmeargleTeachableLearnset, - [SPECIES_TYROGUE] = sTyrogueTeachableLearnset, - [SPECIES_HITMONTOP] = sHitmontopTeachableLearnset, - [SPECIES_SMOOCHUM] = sSmoochumTeachableLearnset, - [SPECIES_ELEKID] = sElekidTeachableLearnset, - [SPECIES_MAGBY] = sMagbyTeachableLearnset, - [SPECIES_MILTANK] = sMiltankTeachableLearnset, - [SPECIES_BLISSEY] = sBlisseyTeachableLearnset, - [SPECIES_RAIKOU] = sRaikouTeachableLearnset, - [SPECIES_ENTEI] = sEnteiTeachableLearnset, - [SPECIES_SUICUNE] = sSuicuneTeachableLearnset, - [SPECIES_LARVITAR] = sLarvitarTeachableLearnset, - [SPECIES_PUPITAR] = sPupitarTeachableLearnset, - [SPECIES_TYRANITAR] = sTyranitarTeachableLearnset, - [SPECIES_LUGIA] = sLugiaTeachableLearnset, - [SPECIES_HO_OH] = sHoOhTeachableLearnset, - [SPECIES_CELEBI] = sCelebiTeachableLearnset, - [SPECIES_TREECKO] = sTreeckoTeachableLearnset, - [SPECIES_GROVYLE] = sGrovyleTeachableLearnset, - [SPECIES_SCEPTILE] = sSceptileTeachableLearnset, - [SPECIES_TORCHIC] = sTorchicTeachableLearnset, - [SPECIES_COMBUSKEN] = sCombuskenTeachableLearnset, - [SPECIES_BLAZIKEN] = sBlazikenTeachableLearnset, - [SPECIES_MUDKIP] = sMudkipTeachableLearnset, - [SPECIES_MARSHTOMP] = sMarshtompTeachableLearnset, - [SPECIES_SWAMPERT] = sSwampertTeachableLearnset, - [SPECIES_POOCHYENA] = sPoochyenaTeachableLearnset, - [SPECIES_MIGHTYENA] = sMightyenaTeachableLearnset, - [SPECIES_ZIGZAGOON] = sZigzagoonTeachableLearnset, - [SPECIES_LINOONE] = sLinooneTeachableLearnset, - [SPECIES_WURMPLE] = sWurmpleTeachableLearnset, - [SPECIES_SILCOON] = sSilcoonTeachableLearnset, - [SPECIES_BEAUTIFLY] = sBeautiflyTeachableLearnset, - [SPECIES_CASCOON] = sCascoonTeachableLearnset, - [SPECIES_DUSTOX] = sDustoxTeachableLearnset, - [SPECIES_LOTAD] = sLotadTeachableLearnset, - [SPECIES_LOMBRE] = sLombreTeachableLearnset, - [SPECIES_LUDICOLO] = sLudicoloTeachableLearnset, - [SPECIES_SEEDOT] = sSeedotTeachableLearnset, - [SPECIES_NUZLEAF] = sNuzleafTeachableLearnset, - [SPECIES_SHIFTRY] = sShiftryTeachableLearnset, - [SPECIES_NINCADA] = sNincadaTeachableLearnset, - [SPECIES_NINJASK] = sNinjaskTeachableLearnset, - [SPECIES_SHEDINJA] = sShedinjaTeachableLearnset, - [SPECIES_TAILLOW] = sTaillowTeachableLearnset, - [SPECIES_SWELLOW] = sSwellowTeachableLearnset, - [SPECIES_SHROOMISH] = sShroomishTeachableLearnset, - [SPECIES_BRELOOM] = sBreloomTeachableLearnset, - [SPECIES_SPINDA] = sSpindaTeachableLearnset, - [SPECIES_WINGULL] = sWingullTeachableLearnset, - [SPECIES_PELIPPER] = sPelipperTeachableLearnset, - [SPECIES_SURSKIT] = sSurskitTeachableLearnset, - [SPECIES_MASQUERAIN] = sMasquerainTeachableLearnset, - [SPECIES_WAILMER] = sWailmerTeachableLearnset, - [SPECIES_WAILORD] = sWailordTeachableLearnset, - [SPECIES_SKITTY] = sSkittyTeachableLearnset, - [SPECIES_DELCATTY] = sDelcattyTeachableLearnset, - [SPECIES_KECLEON] = sKecleonTeachableLearnset, - [SPECIES_BALTOY] = sBaltoyTeachableLearnset, - [SPECIES_CLAYDOL] = sClaydolTeachableLearnset, - [SPECIES_NOSEPASS] = sNosepassTeachableLearnset, - [SPECIES_TORKOAL] = sTorkoalTeachableLearnset, - [SPECIES_SABLEYE] = sSableyeTeachableLearnset, - [SPECIES_BARBOACH] = sBarboachTeachableLearnset, - [SPECIES_WHISCASH] = sWhiscashTeachableLearnset, - [SPECIES_LUVDISC] = sLuvdiscTeachableLearnset, - [SPECIES_CORPHISH] = sCorphishTeachableLearnset, - [SPECIES_CRAWDAUNT] = sCrawdauntTeachableLearnset, - [SPECIES_FEEBAS] = sFeebasTeachableLearnset, - [SPECIES_MILOTIC] = sMiloticTeachableLearnset, - [SPECIES_CARVANHA] = sCarvanhaTeachableLearnset, - [SPECIES_SHARPEDO] = sSharpedoTeachableLearnset, - [SPECIES_TRAPINCH] = sTrapinchTeachableLearnset, - [SPECIES_VIBRAVA] = sVibravaTeachableLearnset, - [SPECIES_FLYGON] = sFlygonTeachableLearnset, - [SPECIES_MAKUHITA] = sMakuhitaTeachableLearnset, - [SPECIES_HARIYAMA] = sHariyamaTeachableLearnset, - [SPECIES_ELECTRIKE] = sElectrikeTeachableLearnset, - [SPECIES_MANECTRIC] = sManectricTeachableLearnset, - [SPECIES_NUMEL] = sNumelTeachableLearnset, - [SPECIES_CAMERUPT] = sCameruptTeachableLearnset, - [SPECIES_SPHEAL] = sSphealTeachableLearnset, - [SPECIES_SEALEO] = sSealeoTeachableLearnset, - [SPECIES_WALREIN] = sWalreinTeachableLearnset, - [SPECIES_CACNEA] = sCacneaTeachableLearnset, - [SPECIES_CACTURNE] = sCacturneTeachableLearnset, - [SPECIES_SNORUNT] = sSnoruntTeachableLearnset, - [SPECIES_GLALIE] = sGlalieTeachableLearnset, - [SPECIES_LUNATONE] = sLunatoneTeachableLearnset, - [SPECIES_SOLROCK] = sSolrockTeachableLearnset, - [SPECIES_AZURILL] = sAzurillTeachableLearnset, - [SPECIES_SPOINK] = sSpoinkTeachableLearnset, - [SPECIES_GRUMPIG] = sGrumpigTeachableLearnset, - [SPECIES_PLUSLE] = sPlusleTeachableLearnset, - [SPECIES_MINUN] = sMinunTeachableLearnset, - [SPECIES_MAWILE] = sMawileTeachableLearnset, - [SPECIES_MEDITITE] = sMedititeTeachableLearnset, - [SPECIES_MEDICHAM] = sMedichamTeachableLearnset, - [SPECIES_SWABLU] = sSwabluTeachableLearnset, - [SPECIES_ALTARIA] = sAltariaTeachableLearnset, - [SPECIES_WYNAUT] = sWynautTeachableLearnset, - [SPECIES_DUSKULL] = sDuskullTeachableLearnset, - [SPECIES_DUSCLOPS] = sDusclopsTeachableLearnset, - [SPECIES_ROSELIA] = sRoseliaTeachableLearnset, - [SPECIES_SLAKOTH] = sSlakothTeachableLearnset, - [SPECIES_VIGOROTH] = sVigorothTeachableLearnset, - [SPECIES_SLAKING] = sSlakingTeachableLearnset, - [SPECIES_GULPIN] = sGulpinTeachableLearnset, - [SPECIES_SWALOT] = sSwalotTeachableLearnset, - [SPECIES_TROPIUS] = sTropiusTeachableLearnset, - [SPECIES_WHISMUR] = sWhismurTeachableLearnset, - [SPECIES_LOUDRED] = sLoudredTeachableLearnset, - [SPECIES_EXPLOUD] = sExploudTeachableLearnset, - [SPECIES_CLAMPERL] = sClamperlTeachableLearnset, - [SPECIES_HUNTAIL] = sHuntailTeachableLearnset, - [SPECIES_GOREBYSS] = sGorebyssTeachableLearnset, - [SPECIES_ABSOL] = sAbsolTeachableLearnset, - [SPECIES_SHUPPET] = sShuppetTeachableLearnset, - [SPECIES_BANETTE] = sBanetteTeachableLearnset, - [SPECIES_SEVIPER] = sSeviperTeachableLearnset, - [SPECIES_ZANGOOSE] = sZangooseTeachableLearnset, - [SPECIES_RELICANTH] = sRelicanthTeachableLearnset, - [SPECIES_ARON] = sAronTeachableLearnset, - [SPECIES_LAIRON] = sLaironTeachableLearnset, - [SPECIES_AGGRON] = sAggronTeachableLearnset, - [SPECIES_CASTFORM_NORMAL] = sCastformTeachableLearnset, - [SPECIES_VOLBEAT] = sVolbeatTeachableLearnset, - [SPECIES_ILLUMISE] = sIllumiseTeachableLearnset, - [SPECIES_LILEEP] = sLileepTeachableLearnset, - [SPECIES_CRADILY] = sCradilyTeachableLearnset, - [SPECIES_ANORITH] = sAnorithTeachableLearnset, - [SPECIES_ARMALDO] = sArmaldoTeachableLearnset, - [SPECIES_RALTS] = sRaltsTeachableLearnset, - [SPECIES_KIRLIA] = sKirliaTeachableLearnset, - [SPECIES_GARDEVOIR] = sGardevoirTeachableLearnset, - [SPECIES_BAGON] = sBagonTeachableLearnset, - [SPECIES_SHELGON] = sShelgonTeachableLearnset, - [SPECIES_SALAMENCE] = sSalamenceTeachableLearnset, - [SPECIES_BELDUM] = sBeldumTeachableLearnset, - [SPECIES_METANG] = sMetangTeachableLearnset, - [SPECIES_METAGROSS] = sMetagrossTeachableLearnset, - [SPECIES_REGIROCK] = sRegirockTeachableLearnset, - [SPECIES_REGICE] = sRegiceTeachableLearnset, - [SPECIES_REGISTEEL] = sRegisteelTeachableLearnset, - [SPECIES_KYOGRE] = sKyogreTeachableLearnset, - [SPECIES_GROUDON] = sGroudonTeachableLearnset, - [SPECIES_RAYQUAZA] = sRayquazaTeachableLearnset, - [SPECIES_LATIAS] = sLatiasTeachableLearnset, - [SPECIES_LATIOS] = sLatiosTeachableLearnset, - [SPECIES_JIRACHI] = sJirachiTeachableLearnset, - [SPECIES_DEOXYS_NORMAL] = sDeoxysNormalTeachableLearnset, - [SPECIES_CHIMECHO] = sChimechoTeachableLearnset, -#if P_GEN_4_POKEMON == TRUE - [SPECIES_TURTWIG] = sTurtwigTeachableLearnset, - [SPECIES_GROTLE] = sGrotleTeachableLearnset, - [SPECIES_TORTERRA] = sTorterraTeachableLearnset, - [SPECIES_CHIMCHAR] = sChimcharTeachableLearnset, - [SPECIES_MONFERNO] = sMonfernoTeachableLearnset, - [SPECIES_INFERNAPE] = sInfernapeTeachableLearnset, - [SPECIES_PIPLUP] = sPiplupTeachableLearnset, - [SPECIES_PRINPLUP] = sPrinplupTeachableLearnset, - [SPECIES_EMPOLEON] = sEmpoleonTeachableLearnset, - [SPECIES_STARLY] = sStarlyTeachableLearnset, - [SPECIES_STARAVIA] = sStaraviaTeachableLearnset, - [SPECIES_STARAPTOR] = sStaraptorTeachableLearnset, - [SPECIES_BIDOOF] = sBidoofTeachableLearnset, - [SPECIES_BIBAREL] = sBibarelTeachableLearnset, - [SPECIES_KRICKETOT] = sKricketotTeachableLearnset, - [SPECIES_KRICKETUNE] = sKricketuneTeachableLearnset, - [SPECIES_SHINX] = sShinxTeachableLearnset, - [SPECIES_LUXIO] = sLuxioTeachableLearnset, - [SPECIES_LUXRAY] = sLuxrayTeachableLearnset, - [SPECIES_BUDEW] = sBudewTeachableLearnset, - [SPECIES_ROSERADE] = sRoseradeTeachableLearnset, - [SPECIES_CRANIDOS] = sCranidosTeachableLearnset, - [SPECIES_RAMPARDOS] = sRampardosTeachableLearnset, - [SPECIES_SHIELDON] = sShieldonTeachableLearnset, - [SPECIES_BASTIODON] = sBastiodonTeachableLearnset, - [SPECIES_BURMY_PLANT_CLOAK] = sBurmyTeachableLearnset, - [SPECIES_WORMADAM_PLANT_CLOAK] = sWormadamPlantCloakTeachableLearnset, - [SPECIES_MOTHIM] = sMothimTeachableLearnset, - [SPECIES_COMBEE] = sCombeeTeachableLearnset, - [SPECIES_VESPIQUEN] = sVespiquenTeachableLearnset, - [SPECIES_PACHIRISU] = sPachirisuTeachableLearnset, - [SPECIES_BUIZEL] = sBuizelTeachableLearnset, - [SPECIES_FLOATZEL] = sFloatzelTeachableLearnset, - [SPECIES_CHERUBI] = sCherubiTeachableLearnset, - [SPECIES_CHERRIM_OVERCAST] = sCherrimTeachableLearnset, - [SPECIES_SHELLOS_WEST_SEA] = sShellosTeachableLearnset, - [SPECIES_GASTRODON_WEST_SEA] = sGastrodonTeachableLearnset, - [SPECIES_AMBIPOM] = sAmbipomTeachableLearnset, - [SPECIES_DRIFLOON] = sDrifloonTeachableLearnset, - [SPECIES_DRIFBLIM] = sDrifblimTeachableLearnset, - [SPECIES_BUNEARY] = sBunearyTeachableLearnset, - [SPECIES_LOPUNNY] = sLopunnyTeachableLearnset, - [SPECIES_MISMAGIUS] = sMismagiusTeachableLearnset, - [SPECIES_HONCHKROW] = sHonchkrowTeachableLearnset, - [SPECIES_GLAMEOW] = sGlameowTeachableLearnset, - [SPECIES_PURUGLY] = sPuruglyTeachableLearnset, - [SPECIES_CHINGLING] = sChinglingTeachableLearnset, - [SPECIES_STUNKY] = sStunkyTeachableLearnset, - [SPECIES_SKUNTANK] = sSkuntankTeachableLearnset, - [SPECIES_BRONZOR] = sBronzorTeachableLearnset, - [SPECIES_BRONZONG] = sBronzongTeachableLearnset, - [SPECIES_BONSLY] = sBonslyTeachableLearnset, - [SPECIES_MIME_JR] = sMimeJrTeachableLearnset, - [SPECIES_HAPPINY] = sHappinyTeachableLearnset, - [SPECIES_CHATOT] = sChatotTeachableLearnset, - [SPECIES_SPIRITOMB] = sSpiritombTeachableLearnset, - [SPECIES_GIBLE] = sGibleTeachableLearnset, - [SPECIES_GABITE] = sGabiteTeachableLearnset, - [SPECIES_GARCHOMP] = sGarchompTeachableLearnset, - [SPECIES_MUNCHLAX] = sMunchlaxTeachableLearnset, - [SPECIES_RIOLU] = sRioluTeachableLearnset, - [SPECIES_LUCARIO] = sLucarioTeachableLearnset, - [SPECIES_HIPPOPOTAS] = sHippopotasTeachableLearnset, - [SPECIES_HIPPOWDON] = sHippowdonTeachableLearnset, - [SPECIES_SKORUPI] = sSkorupiTeachableLearnset, - [SPECIES_DRAPION] = sDrapionTeachableLearnset, - [SPECIES_CROAGUNK] = sCroagunkTeachableLearnset, - [SPECIES_TOXICROAK] = sToxicroakTeachableLearnset, - [SPECIES_CARNIVINE] = sCarnivineTeachableLearnset, - [SPECIES_FINNEON] = sFinneonTeachableLearnset, - [SPECIES_LUMINEON] = sLumineonTeachableLearnset, - [SPECIES_MANTYKE] = sMantykeTeachableLearnset, - [SPECIES_SNOVER] = sSnoverTeachableLearnset, - [SPECIES_ABOMASNOW] = sAbomasnowTeachableLearnset, - [SPECIES_WEAVILE] = sWeavileTeachableLearnset, - [SPECIES_MAGNEZONE] = sMagnezoneTeachableLearnset, - [SPECIES_LICKILICKY] = sLickilickyTeachableLearnset, - [SPECIES_RHYPERIOR] = sRhyperiorTeachableLearnset, - [SPECIES_TANGROWTH] = sTangrowthTeachableLearnset, - [SPECIES_ELECTIVIRE] = sElectivireTeachableLearnset, - [SPECIES_MAGMORTAR] = sMagmortarTeachableLearnset, - [SPECIES_TOGEKISS] = sTogekissTeachableLearnset, - [SPECIES_YANMEGA] = sYanmegaTeachableLearnset, - [SPECIES_LEAFEON] = sLeafeonTeachableLearnset, - [SPECIES_GLACEON] = sGlaceonTeachableLearnset, - [SPECIES_GLISCOR] = sGliscorTeachableLearnset, - [SPECIES_MAMOSWINE] = sMamoswineTeachableLearnset, - [SPECIES_PORYGON_Z] = sPorygonZTeachableLearnset, - [SPECIES_GALLADE] = sGalladeTeachableLearnset, - [SPECIES_PROBOPASS] = sProbopassTeachableLearnset, - [SPECIES_DUSKNOIR] = sDusknoirTeachableLearnset, - [SPECIES_FROSLASS] = sFroslassTeachableLearnset, - [SPECIES_ROTOM] = sRotomTeachableLearnset, - [SPECIES_UXIE] = sUxieTeachableLearnset, - [SPECIES_MESPRIT] = sMespritTeachableLearnset, - [SPECIES_AZELF] = sAzelfTeachableLearnset, - [SPECIES_DIALGA] = sDialgaTeachableLearnset, - [SPECIES_PALKIA] = sPalkiaTeachableLearnset, - [SPECIES_HEATRAN] = sHeatranTeachableLearnset, - [SPECIES_REGIGIGAS] = sRegigigasTeachableLearnset, - [SPECIES_GIRATINA_ALTERED] = sGiratinaTeachableLearnset, - [SPECIES_CRESSELIA] = sCresseliaTeachableLearnset, - [SPECIES_PHIONE] = sPhioneTeachableLearnset, - [SPECIES_MANAPHY] = sManaphyTeachableLearnset, - [SPECIES_DARKRAI] = sDarkraiTeachableLearnset, - [SPECIES_SHAYMIN_LAND] = sShayminLandTeachableLearnset, - [SPECIES_ARCEUS_NORMAL] = sArceusTeachableLearnset, -#endif -#if P_GEN_5_POKEMON == TRUE - [SPECIES_VICTINI] = sVictiniTeachableLearnset, - [SPECIES_SNIVY] = sSnivyTeachableLearnset, - [SPECIES_SERVINE] = sServineTeachableLearnset, - [SPECIES_SERPERIOR] = sSerperiorTeachableLearnset, - [SPECIES_TEPIG] = sTepigTeachableLearnset, - [SPECIES_PIGNITE] = sPigniteTeachableLearnset, - [SPECIES_EMBOAR] = sEmboarTeachableLearnset, - [SPECIES_OSHAWOTT] = sOshawottTeachableLearnset, - [SPECIES_DEWOTT] = sDewottTeachableLearnset, - [SPECIES_SAMUROTT] = sSamurottTeachableLearnset, - [SPECIES_PATRAT] = sPatratTeachableLearnset, - [SPECIES_WATCHOG] = sWatchogTeachableLearnset, - [SPECIES_LILLIPUP] = sLillipupTeachableLearnset, - [SPECIES_HERDIER] = sHerdierTeachableLearnset, - [SPECIES_STOUTLAND] = sStoutlandTeachableLearnset, - [SPECIES_PURRLOIN] = sPurrloinTeachableLearnset, - [SPECIES_LIEPARD] = sLiepardTeachableLearnset, - [SPECIES_PANSAGE] = sPansageTeachableLearnset, - [SPECIES_SIMISAGE] = sSimisageTeachableLearnset, - [SPECIES_PANSEAR] = sPansearTeachableLearnset, - [SPECIES_SIMISEAR] = sSimisearTeachableLearnset, - [SPECIES_PANPOUR] = sPanpourTeachableLearnset, - [SPECIES_SIMIPOUR] = sSimipourTeachableLearnset, - [SPECIES_MUNNA] = sMunnaTeachableLearnset, - [SPECIES_MUSHARNA] = sMusharnaTeachableLearnset, - [SPECIES_PIDOVE] = sPidoveTeachableLearnset, - [SPECIES_TRANQUILL] = sTranquillTeachableLearnset, - [SPECIES_UNFEZANT] = sUnfezantTeachableLearnset, - [SPECIES_BLITZLE] = sBlitzleTeachableLearnset, - [SPECIES_ZEBSTRIKA] = sZebstrikaTeachableLearnset, - [SPECIES_ROGGENROLA] = sRoggenrolaTeachableLearnset, - [SPECIES_BOLDORE] = sBoldoreTeachableLearnset, - [SPECIES_GIGALITH] = sGigalithTeachableLearnset, - [SPECIES_WOOBAT] = sWoobatTeachableLearnset, - [SPECIES_SWOOBAT] = sSwoobatTeachableLearnset, - [SPECIES_DRILBUR] = sDrilburTeachableLearnset, - [SPECIES_EXCADRILL] = sExcadrillTeachableLearnset, - [SPECIES_AUDINO] = sAudinoTeachableLearnset, - [SPECIES_TIMBURR] = sTimburrTeachableLearnset, - [SPECIES_GURDURR] = sGurdurrTeachableLearnset, - [SPECIES_CONKELDURR] = sConkeldurrTeachableLearnset, - [SPECIES_TYMPOLE] = sTympoleTeachableLearnset, - [SPECIES_PALPITOAD] = sPalpitoadTeachableLearnset, - [SPECIES_SEISMITOAD] = sSeismitoadTeachableLearnset, - [SPECIES_THROH] = sThrohTeachableLearnset, - [SPECIES_SAWK] = sSawkTeachableLearnset, - [SPECIES_SEWADDLE] = sSewaddleTeachableLearnset, - [SPECIES_SWADLOON] = sSwadloonTeachableLearnset, - [SPECIES_LEAVANNY] = sLeavannyTeachableLearnset, - [SPECIES_VENIPEDE] = sVenipedeTeachableLearnset, - [SPECIES_WHIRLIPEDE] = sWhirlipedeTeachableLearnset, - [SPECIES_SCOLIPEDE] = sScolipedeTeachableLearnset, - [SPECIES_COTTONEE] = sCottoneeTeachableLearnset, - [SPECIES_WHIMSICOTT] = sWhimsicottTeachableLearnset, - [SPECIES_PETILIL] = sPetililTeachableLearnset, - [SPECIES_LILLIGANT] = sLilligantTeachableLearnset, - [SPECIES_BASCULIN_RED_STRIPED] = sBasculinTeachableLearnset, - [SPECIES_SANDILE] = sSandileTeachableLearnset, - [SPECIES_KROKOROK] = sKrokorokTeachableLearnset, - [SPECIES_KROOKODILE] = sKrookodileTeachableLearnset, - [SPECIES_DARUMAKA] = sDarumakaTeachableLearnset, - [SPECIES_DARMANITAN_STANDARD_MODE] = sDarmanitanTeachableLearnset, - [SPECIES_MARACTUS] = sMaractusTeachableLearnset, - [SPECIES_DWEBBLE] = sDwebbleTeachableLearnset, - [SPECIES_CRUSTLE] = sCrustleTeachableLearnset, - [SPECIES_SCRAGGY] = sScraggyTeachableLearnset, - [SPECIES_SCRAFTY] = sScraftyTeachableLearnset, - [SPECIES_SIGILYPH] = sSigilyphTeachableLearnset, - [SPECIES_YAMASK] = sYamaskTeachableLearnset, - [SPECIES_COFAGRIGUS] = sCofagrigusTeachableLearnset, - [SPECIES_TIRTOUGA] = sTirtougaTeachableLearnset, - [SPECIES_CARRACOSTA] = sCarracostaTeachableLearnset, - [SPECIES_ARCHEN] = sArchenTeachableLearnset, - [SPECIES_ARCHEOPS] = sArcheopsTeachableLearnset, - [SPECIES_TRUBBISH] = sTrubbishTeachableLearnset, - [SPECIES_GARBODOR] = sGarbodorTeachableLearnset, - [SPECIES_ZORUA] = sZoruaTeachableLearnset, - [SPECIES_ZOROARK] = sZoroarkTeachableLearnset, - [SPECIES_MINCCINO] = sMinccinoTeachableLearnset, - [SPECIES_CINCCINO] = sCinccinoTeachableLearnset, - [SPECIES_GOTHITA] = sGothitaTeachableLearnset, - [SPECIES_GOTHORITA] = sGothoritaTeachableLearnset, - [SPECIES_GOTHITELLE] = sGothitelleTeachableLearnset, - [SPECIES_SOLOSIS] = sSolosisTeachableLearnset, - [SPECIES_DUOSION] = sDuosionTeachableLearnset, - [SPECIES_REUNICLUS] = sReuniclusTeachableLearnset, - [SPECIES_DUCKLETT] = sDucklettTeachableLearnset, - [SPECIES_SWANNA] = sSwannaTeachableLearnset, - [SPECIES_VANILLITE] = sVanilliteTeachableLearnset, - [SPECIES_VANILLISH] = sVanillishTeachableLearnset, - [SPECIES_VANILLUXE] = sVanilluxeTeachableLearnset, - [SPECIES_DEERLING_SPRING] = sDeerlingTeachableLearnset, - [SPECIES_SAWSBUCK_SPRING] = sSawsbuckTeachableLearnset, - [SPECIES_EMOLGA] = sEmolgaTeachableLearnset, - [SPECIES_KARRABLAST] = sKarrablastTeachableLearnset, - [SPECIES_ESCAVALIER] = sEscavalierTeachableLearnset, - [SPECIES_FOONGUS] = sFoongusTeachableLearnset, - [SPECIES_AMOONGUSS] = sAmoongussTeachableLearnset, - [SPECIES_FRILLISH] = sFrillishTeachableLearnset, - [SPECIES_JELLICENT] = sJellicentTeachableLearnset, - [SPECIES_ALOMOMOLA] = sAlomomolaTeachableLearnset, - [SPECIES_JOLTIK] = sJoltikTeachableLearnset, - [SPECIES_GALVANTULA] = sGalvantulaTeachableLearnset, - [SPECIES_FERROSEED] = sFerroseedTeachableLearnset, - [SPECIES_FERROTHORN] = sFerrothornTeachableLearnset, - [SPECIES_KLINK] = sKlinkTeachableLearnset, - [SPECIES_KLANG] = sKlangTeachableLearnset, - [SPECIES_KLINKLANG] = sKlinklangTeachableLearnset, - [SPECIES_TYNAMO] = sTynamoTeachableLearnset, - [SPECIES_EELEKTRIK] = sEelektrikTeachableLearnset, - [SPECIES_EELEKTROSS] = sEelektrossTeachableLearnset, - [SPECIES_ELGYEM] = sElgyemTeachableLearnset, - [SPECIES_BEHEEYEM] = sBeheeyemTeachableLearnset, - [SPECIES_LITWICK] = sLitwickTeachableLearnset, - [SPECIES_LAMPENT] = sLampentTeachableLearnset, - [SPECIES_CHANDELURE] = sChandelureTeachableLearnset, - [SPECIES_AXEW] = sAxewTeachableLearnset, - [SPECIES_FRAXURE] = sFraxureTeachableLearnset, - [SPECIES_HAXORUS] = sHaxorusTeachableLearnset, - [SPECIES_CUBCHOO] = sCubchooTeachableLearnset, - [SPECIES_BEARTIC] = sBearticTeachableLearnset, - [SPECIES_CRYOGONAL] = sCryogonalTeachableLearnset, - [SPECIES_SHELMET] = sShelmetTeachableLearnset, - [SPECIES_ACCELGOR] = sAccelgorTeachableLearnset, - [SPECIES_STUNFISK] = sStunfiskTeachableLearnset, - [SPECIES_MIENFOO] = sMienfooTeachableLearnset, - [SPECIES_MIENSHAO] = sMienshaoTeachableLearnset, - [SPECIES_DRUDDIGON] = sDruddigonTeachableLearnset, - [SPECIES_GOLETT] = sGolettTeachableLearnset, - [SPECIES_GOLURK] = sGolurkTeachableLearnset, - [SPECIES_PAWNIARD] = sPawniardTeachableLearnset, - [SPECIES_BISHARP] = sBisharpTeachableLearnset, - [SPECIES_BOUFFALANT] = sBouffalantTeachableLearnset, - [SPECIES_RUFFLET] = sRuffletTeachableLearnset, - [SPECIES_BRAVIARY] = sBraviaryTeachableLearnset, - [SPECIES_VULLABY] = sVullabyTeachableLearnset, - [SPECIES_MANDIBUZZ] = sMandibuzzTeachableLearnset, - [SPECIES_HEATMOR] = sHeatmorTeachableLearnset, - [SPECIES_DURANT] = sDurantTeachableLearnset, - [SPECIES_DEINO] = sDeinoTeachableLearnset, - [SPECIES_ZWEILOUS] = sZweilousTeachableLearnset, - [SPECIES_HYDREIGON] = sHydreigonTeachableLearnset, - [SPECIES_LARVESTA] = sLarvestaTeachableLearnset, - [SPECIES_VOLCARONA] = sVolcaronaTeachableLearnset, - [SPECIES_COBALION] = sCobalionTeachableLearnset, - [SPECIES_TERRAKION] = sTerrakionTeachableLearnset, - [SPECIES_VIRIZION] = sVirizionTeachableLearnset, - [SPECIES_TORNADUS_INCARNATE] = sTornadusTeachableLearnset, - [SPECIES_THUNDURUS_INCARNATE] = sThundurusTeachableLearnset, - [SPECIES_RESHIRAM] = sReshiramTeachableLearnset, - [SPECIES_ZEKROM] = sZekromTeachableLearnset, - [SPECIES_LANDORUS_INCARNATE] = sLandorusTeachableLearnset, - [SPECIES_KYUREM] = sKyuremTeachableLearnset, - [SPECIES_KELDEO_ORDINARY] = sKeldeoTeachableLearnset, - [SPECIES_MELOETTA_ARIA] = sMeloettaTeachableLearnset, - [SPECIES_GENESECT] = sGenesectTeachableLearnset, -#endif -#if P_GEN_6_POKEMON == TRUE - [SPECIES_CHESPIN] = sChespinTeachableLearnset, - [SPECIES_QUILLADIN] = sQuilladinTeachableLearnset, - [SPECIES_CHESNAUGHT] = sChesnaughtTeachableLearnset, - [SPECIES_FENNEKIN] = sFennekinTeachableLearnset, - [SPECIES_BRAIXEN] = sBraixenTeachableLearnset, - [SPECIES_DELPHOX] = sDelphoxTeachableLearnset, - [SPECIES_FROAKIE] = sFroakieTeachableLearnset, - [SPECIES_FROGADIER] = sFrogadierTeachableLearnset, - [SPECIES_GRENINJA] = sGreninjaTeachableLearnset, - [SPECIES_BUNNELBY] = sBunnelbyTeachableLearnset, - [SPECIES_DIGGERSBY] = sDiggersbyTeachableLearnset, - [SPECIES_FLETCHLING] = sFletchlingTeachableLearnset, - [SPECIES_FLETCHINDER] = sFletchinderTeachableLearnset, - [SPECIES_TALONFLAME] = sTalonflameTeachableLearnset, - [SPECIES_SCATTERBUG] = sScatterbugTeachableLearnset, - [SPECIES_SPEWPA] = sSpewpaTeachableLearnset, - [SPECIES_VIVILLON_ICY_SNOW] = sVivillonTeachableLearnset, - [SPECIES_LITLEO] = sLitleoTeachableLearnset, - [SPECIES_PYROAR] = sPyroarTeachableLearnset, - [SPECIES_FLABEBE_RED_FLOWER] = sFlabebeTeachableLearnset, - [SPECIES_FLOETTE_RED_FLOWER] = sFloetteTeachableLearnset, - [SPECIES_FLORGES_RED_FLOWER] = sFlorgesTeachableLearnset, - [SPECIES_SKIDDO] = sSkiddoTeachableLearnset, - [SPECIES_GOGOAT] = sGogoatTeachableLearnset, - [SPECIES_PANCHAM] = sPanchamTeachableLearnset, - [SPECIES_PANGORO] = sPangoroTeachableLearnset, - [SPECIES_FURFROU_NATURAL] = sFurfrouTeachableLearnset, - [SPECIES_ESPURR] = sEspurrTeachableLearnset, - [SPECIES_MEOWSTIC] = sMeowsticMaleTeachableLearnset, - [SPECIES_HONEDGE] = sHonedgeTeachableLearnset, - [SPECIES_DOUBLADE] = sDoubladeTeachableLearnset, - [SPECIES_AEGISLASH_SHIELD] = sAegislashTeachableLearnset, - [SPECIES_SPRITZEE] = sSpritzeeTeachableLearnset, - [SPECIES_AROMATISSE] = sAromatisseTeachableLearnset, - [SPECIES_SWIRLIX] = sSwirlixTeachableLearnset, - [SPECIES_SLURPUFF] = sSlurpuffTeachableLearnset, - [SPECIES_INKAY] = sInkayTeachableLearnset, - [SPECIES_MALAMAR] = sMalamarTeachableLearnset, - [SPECIES_BINACLE] = sBinacleTeachableLearnset, - [SPECIES_BARBARACLE] = sBarbaracleTeachableLearnset, - [SPECIES_SKRELP] = sSkrelpTeachableLearnset, - [SPECIES_DRAGALGE] = sDragalgeTeachableLearnset, - [SPECIES_CLAUNCHER] = sClauncherTeachableLearnset, - [SPECIES_CLAWITZER] = sClawitzerTeachableLearnset, - [SPECIES_HELIOPTILE] = sHelioptileTeachableLearnset, - [SPECIES_HELIOLISK] = sHelioliskTeachableLearnset, - [SPECIES_TYRUNT] = sTyruntTeachableLearnset, - [SPECIES_TYRANTRUM] = sTyrantrumTeachableLearnset, - [SPECIES_AMAURA] = sAmauraTeachableLearnset, - [SPECIES_AURORUS] = sAurorusTeachableLearnset, - [SPECIES_SYLVEON] = sSylveonTeachableLearnset, - [SPECIES_HAWLUCHA] = sHawluchaTeachableLearnset, - [SPECIES_DEDENNE] = sDedenneTeachableLearnset, - [SPECIES_CARBINK] = sCarbinkTeachableLearnset, - [SPECIES_GOOMY] = sGoomyTeachableLearnset, - [SPECIES_SLIGGOO] = sSliggooTeachableLearnset, - [SPECIES_GOODRA] = sGoodraTeachableLearnset, - [SPECIES_KLEFKI] = sKlefkiTeachableLearnset, - [SPECIES_PHANTUMP] = sPhantumpTeachableLearnset, - [SPECIES_TREVENANT] = sTrevenantTeachableLearnset, - [SPECIES_PUMPKABOO_AVERAGE] = sPumpkabooTeachableLearnset, - [SPECIES_GOURGEIST_AVERAGE] = sGourgeistTeachableLearnset, - [SPECIES_BERGMITE] = sBergmiteTeachableLearnset, - [SPECIES_AVALUGG] = sAvaluggTeachableLearnset, - [SPECIES_NOIBAT] = sNoibatTeachableLearnset, - [SPECIES_NOIVERN] = sNoivernTeachableLearnset, - [SPECIES_XERNEAS_NEUTRAL] = sXerneasTeachableLearnset, - [SPECIES_YVELTAL] = sYveltalTeachableLearnset, - [SPECIES_ZYGARDE_50_AURA_BREAK] = sZygardeTeachableLearnset, - [SPECIES_DIANCIE] = sDiancieTeachableLearnset, - [SPECIES_HOOPA_CONFINED] = sHoopaConfinedTeachableLearnset, - [SPECIES_VOLCANION] = sVolcanionTeachableLearnset, -#endif -#if P_GEN_7_POKEMON == TRUE - [SPECIES_ROWLET] = sRowletTeachableLearnset, - [SPECIES_DARTRIX] = sDartrixTeachableLearnset, - [SPECIES_DECIDUEYE] = sDecidueyeTeachableLearnset, - [SPECIES_LITTEN] = sLittenTeachableLearnset, - [SPECIES_TORRACAT] = sTorracatTeachableLearnset, - [SPECIES_INCINEROAR] = sIncineroarTeachableLearnset, - [SPECIES_POPPLIO] = sPopplioTeachableLearnset, - [SPECIES_BRIONNE] = sBrionneTeachableLearnset, - [SPECIES_PRIMARINA] = sPrimarinaTeachableLearnset, - [SPECIES_PIKIPEK] = sPikipekTeachableLearnset, - [SPECIES_TRUMBEAK] = sTrumbeakTeachableLearnset, - [SPECIES_TOUCANNON] = sToucannonTeachableLearnset, - [SPECIES_YUNGOOS] = sYungoosTeachableLearnset, - [SPECIES_GUMSHOOS] = sGumshoosTeachableLearnset, - [SPECIES_GRUBBIN] = sGrubbinTeachableLearnset, - [SPECIES_CHARJABUG] = sCharjabugTeachableLearnset, - [SPECIES_VIKAVOLT] = sVikavoltTeachableLearnset, - [SPECIES_CRABRAWLER] = sCrabrawlerTeachableLearnset, - [SPECIES_CRABOMINABLE] = sCrabominableTeachableLearnset, - [SPECIES_ORICORIO_BAILE] = sOricorioTeachableLearnset, - [SPECIES_CUTIEFLY] = sCutieflyTeachableLearnset, - [SPECIES_RIBOMBEE] = sRibombeeTeachableLearnset, - [SPECIES_ROCKRUFF] = sRockruffTeachableLearnset, - [SPECIES_LYCANROC_MIDDAY] = sLycanrocMiddayTeachableLearnset, - [SPECIES_WISHIWASHI_SOLO] = sWishiwashiTeachableLearnset, - [SPECIES_MAREANIE] = sMareanieTeachableLearnset, - [SPECIES_TOXAPEX] = sToxapexTeachableLearnset, - [SPECIES_MUDBRAY] = sMudbrayTeachableLearnset, - [SPECIES_MUDSDALE] = sMudsdaleTeachableLearnset, - [SPECIES_DEWPIDER] = sDewpiderTeachableLearnset, - [SPECIES_ARAQUANID] = sAraquanidTeachableLearnset, - [SPECIES_FOMANTIS] = sFomantisTeachableLearnset, - [SPECIES_LURANTIS] = sLurantisTeachableLearnset, - [SPECIES_MORELULL] = sMorelullTeachableLearnset, - [SPECIES_SHIINOTIC] = sShiinoticTeachableLearnset, - [SPECIES_SALANDIT] = sSalanditTeachableLearnset, - [SPECIES_SALAZZLE] = sSalazzleTeachableLearnset, - [SPECIES_STUFFUL] = sStuffulTeachableLearnset, - [SPECIES_BEWEAR] = sBewearTeachableLearnset, - [SPECIES_BOUNSWEET] = sBounsweetTeachableLearnset, - [SPECIES_STEENEE] = sSteeneeTeachableLearnset, - [SPECIES_TSAREENA] = sTsareenaTeachableLearnset, - [SPECIES_COMFEY] = sComfeyTeachableLearnset, - [SPECIES_ORANGURU] = sOranguruTeachableLearnset, - [SPECIES_PASSIMIAN] = sPassimianTeachableLearnset, - [SPECIES_WIMPOD] = sWimpodTeachableLearnset, - [SPECIES_GOLISOPOD] = sGolisopodTeachableLearnset, - [SPECIES_SANDYGAST] = sSandygastTeachableLearnset, - [SPECIES_PALOSSAND] = sPalossandTeachableLearnset, - [SPECIES_PYUKUMUKU] = sPyukumukuTeachableLearnset, - [SPECIES_TYPE_NULL] = sTypeNullTeachableLearnset, - [SPECIES_SILVALLY_NORMAL] = sSilvallyTeachableLearnset, - [SPECIES_MINIOR_METEOR_RED] = sMiniorTeachableLearnset, - [SPECIES_KOMALA] = sKomalaTeachableLearnset, - [SPECIES_TURTONATOR] = sTurtonatorTeachableLearnset, - [SPECIES_TOGEDEMARU] = sTogedemaruTeachableLearnset, - [SPECIES_MIMIKYU_DISGUISED] = sMimikyuTeachableLearnset, - [SPECIES_BRUXISH] = sBruxishTeachableLearnset, - [SPECIES_DRAMPA] = sDrampaTeachableLearnset, - [SPECIES_DHELMISE] = sDhelmiseTeachableLearnset, - [SPECIES_JANGMO_O] = sJangmoOTeachableLearnset, - [SPECIES_HAKAMO_O] = sHakamoOTeachableLearnset, - [SPECIES_KOMMO_O] = sKommoOTeachableLearnset, - [SPECIES_TAPU_KOKO] = sTapuKokoTeachableLearnset, - [SPECIES_TAPU_LELE] = sTapuLeleTeachableLearnset, - [SPECIES_TAPU_BULU] = sTapuBuluTeachableLearnset, - [SPECIES_TAPU_FINI] = sTapuFiniTeachableLearnset, - [SPECIES_COSMOG] = sCosmogTeachableLearnset, - [SPECIES_COSMOEM] = sCosmoemTeachableLearnset, - [SPECIES_SOLGALEO] = sSolgaleoTeachableLearnset, - [SPECIES_LUNALA] = sLunalaTeachableLearnset, - [SPECIES_NIHILEGO] = sNihilegoTeachableLearnset, - [SPECIES_BUZZWOLE] = sBuzzwoleTeachableLearnset, - [SPECIES_PHEROMOSA] = sPheromosaTeachableLearnset, - [SPECIES_XURKITREE] = sXurkitreeTeachableLearnset, - [SPECIES_CELESTEELA] = sCelesteelaTeachableLearnset, - [SPECIES_KARTANA] = sKartanaTeachableLearnset, - [SPECIES_GUZZLORD] = sGuzzlordTeachableLearnset, - [SPECIES_NECROZMA] = sNecrozmaTeachableLearnset, - [SPECIES_MAGEARNA] = sMagearnaTeachableLearnset, - [SPECIES_MARSHADOW] = sMarshadowTeachableLearnset, - [SPECIES_POIPOLE] = sPoipoleTeachableLearnset, - [SPECIES_NAGANADEL] = sNaganadelTeachableLearnset, - [SPECIES_STAKATAKA] = sStakatakaTeachableLearnset, - [SPECIES_BLACEPHALON] = sBlacephalonTeachableLearnset, - [SPECIES_ZERAORA] = sZeraoraTeachableLearnset, - [SPECIES_MELTAN] = sMeltanTeachableLearnset, - [SPECIES_MELMETAL] = sMelmetalTeachableLearnset, -#endif -#if P_GEN_8_POKEMON == TRUE - [SPECIES_GROOKEY] = sGrookeyTeachableLearnset, - [SPECIES_THWACKEY] = sThwackeyTeachableLearnset, - [SPECIES_RILLABOOM] = sRillaboomTeachableLearnset, - [SPECIES_SCORBUNNY] = sScorbunnyTeachableLearnset, - [SPECIES_RABOOT] = sRabootTeachableLearnset, - [SPECIES_CINDERACE] = sCinderaceTeachableLearnset, - [SPECIES_SOBBLE] = sSobbleTeachableLearnset, - [SPECIES_DRIZZILE] = sDrizzileTeachableLearnset, - [SPECIES_INTELEON] = sInteleonTeachableLearnset, - [SPECIES_SKWOVET] = sSkwovetTeachableLearnset, - [SPECIES_GREEDENT] = sGreedentTeachableLearnset, - [SPECIES_ROOKIDEE] = sRookideeTeachableLearnset, - [SPECIES_CORVISQUIRE] = sCorvisquireTeachableLearnset, - [SPECIES_CORVIKNIGHT] = sCorviknightTeachableLearnset, - [SPECIES_BLIPBUG] = sBlipbugTeachableLearnset, - [SPECIES_DOTTLER] = sDottlerTeachableLearnset, - [SPECIES_ORBEETLE] = sOrbeetleTeachableLearnset, - [SPECIES_NICKIT] = sNickitTeachableLearnset, - [SPECIES_THIEVUL] = sThievulTeachableLearnset, - [SPECIES_GOSSIFLEUR] = sGossifleurTeachableLearnset, - [SPECIES_ELDEGOSS] = sEldegossTeachableLearnset, - [SPECIES_WOOLOO] = sWoolooTeachableLearnset, - [SPECIES_DUBWOOL] = sDubwoolTeachableLearnset, - [SPECIES_CHEWTLE] = sChewtleTeachableLearnset, - [SPECIES_DREDNAW] = sDrednawTeachableLearnset, - [SPECIES_YAMPER] = sYamperTeachableLearnset, - [SPECIES_BOLTUND] = sBoltundTeachableLearnset, - [SPECIES_ROLYCOLY] = sRolycolyTeachableLearnset, - [SPECIES_CARKOL] = sCarkolTeachableLearnset, - [SPECIES_COALOSSAL] = sCoalossalTeachableLearnset, - [SPECIES_APPLIN] = sApplinTeachableLearnset, - [SPECIES_FLAPPLE] = sFlappleTeachableLearnset, - [SPECIES_APPLETUN] = sAppletunTeachableLearnset, - [SPECIES_SILICOBRA] = sSilicobraTeachableLearnset, - [SPECIES_SANDACONDA] = sSandacondaTeachableLearnset, - [SPECIES_CRAMORANT] = sCramorantTeachableLearnset, - [SPECIES_ARROKUDA] = sArrokudaTeachableLearnset, - [SPECIES_BARRASKEWDA] = sBarraskewdaTeachableLearnset, - [SPECIES_TOXEL] = sToxelTeachableLearnset, - [SPECIES_TOXTRICITY_AMPED] = sToxtricityAmpedTeachableLearnset, - [SPECIES_SIZZLIPEDE] = sSizzlipedeTeachableLearnset, - [SPECIES_CENTISKORCH] = sCentiskorchTeachableLearnset, - [SPECIES_CLOBBOPUS] = sClobbopusTeachableLearnset, - [SPECIES_GRAPPLOCT] = sGrapploctTeachableLearnset, - [SPECIES_SINISTEA_PHONY] = sSinisteaTeachableLearnset, - [SPECIES_POLTEAGEIST_PHONY] = sPolteageistTeachableLearnset, - [SPECIES_HATENNA] = sHatennaTeachableLearnset, - [SPECIES_HATTREM] = sHattremTeachableLearnset, - [SPECIES_HATTERENE] = sHattereneTeachableLearnset, - [SPECIES_IMPIDIMP] = sImpidimpTeachableLearnset, - [SPECIES_MORGREM] = sMorgremTeachableLearnset, - [SPECIES_GRIMMSNARL] = sGrimmsnarlTeachableLearnset, - [SPECIES_OBSTAGOON] = sObstagoonTeachableLearnset, - [SPECIES_PERRSERKER] = sPerrserkerTeachableLearnset, - [SPECIES_CURSOLA] = sCursolaTeachableLearnset, - [SPECIES_SIRFETCHD] = sSirfetchdTeachableLearnset, - [SPECIES_MR_RIME] = sMrRimeTeachableLearnset, - [SPECIES_RUNERIGUS] = sRunerigusTeachableLearnset, - [SPECIES_MILCERY] = sMilceryTeachableLearnset, - [SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_FALINKS] = sFalinksTeachableLearnset, - [SPECIES_PINCURCHIN] = sPincurchinTeachableLearnset, - [SPECIES_SNOM] = sSnomTeachableLearnset, - [SPECIES_FROSMOTH] = sFrosmothTeachableLearnset, - [SPECIES_STONJOURNER] = sStonjournerTeachableLearnset, - [SPECIES_EISCUE_ICE_FACE] = sEiscueTeachableLearnset, - [SPECIES_INDEEDEE_MALE] = sIndeedeeMaleTeachableLearnset, - [SPECIES_MORPEKO_FULL_BELLY] = sMorpekoTeachableLearnset, - [SPECIES_CUFANT] = sCufantTeachableLearnset, - [SPECIES_COPPERAJAH] = sCopperajahTeachableLearnset, - [SPECIES_DRACOZOLT] = sDracozoltTeachableLearnset, - [SPECIES_ARCTOZOLT] = sArctozoltTeachableLearnset, - [SPECIES_DRACOVISH] = sDracovishTeachableLearnset, - [SPECIES_ARCTOVISH] = sArctovishTeachableLearnset, - [SPECIES_DURALUDON] = sDuraludonTeachableLearnset, - [SPECIES_DREEPY] = sDreepyTeachableLearnset, - [SPECIES_DRAKLOAK] = sDrakloakTeachableLearnset, - [SPECIES_DRAGAPULT] = sDragapultTeachableLearnset, - [SPECIES_ZACIAN_HERO_OF_MANY_BATTLES] = sZacianTeachableLearnset, - [SPECIES_ZAMAZENTA_HERO_OF_MANY_BATTLES] = sZamazentaTeachableLearnset, - [SPECIES_ETERNATUS] = sEternatusTeachableLearnset, - [SPECIES_KUBFU] = sKubfuTeachableLearnset, - [SPECIES_URSHIFU_SINGLE_STRIKE_STYLE] = sUrshifuSingleStrikeStyleTeachableLearnset, - [SPECIES_ZARUDE] = sZarudeTeachableLearnset, - [SPECIES_REGIELEKI] = sRegielekiTeachableLearnset, - [SPECIES_REGIDRAGO] = sRegidragoTeachableLearnset, - [SPECIES_GLASTRIER] = sGlastrierTeachableLearnset, - [SPECIES_SPECTRIER] = sSpectrierTeachableLearnset, - [SPECIES_CALYREX] = sCalyrexTeachableLearnset, - [SPECIES_WYRDEER] = sWyrdeerTeachableLearnset, - [SPECIES_KLEAVOR] = sKleavorTeachableLearnset, - [SPECIES_URSALUNA] = sUrsalunaTeachableLearnset, - [SPECIES_BASCULEGION_MALE] = sBasculegionTeachableLearnset, - [SPECIES_SNEASLER] = sSneaslerTeachableLearnset, - [SPECIES_OVERQWIL] = sOverqwilTeachableLearnset, - [SPECIES_ENAMORUS_INCARNATE] = sEnamorusTeachableLearnset, -#endif - // Megas - [SPECIES_VENUSAUR_MEGA] = sVenusaurTeachableLearnset, - [SPECIES_CHARIZARD_MEGA_X] = sCharizardTeachableLearnset, - [SPECIES_CHARIZARD_MEGA_Y] = sCharizardTeachableLearnset, - [SPECIES_BLASTOISE_MEGA] = sBlastoiseTeachableLearnset, - [SPECIES_BEEDRILL_MEGA] = sBeedrillTeachableLearnset, - [SPECIES_PIDGEOT_MEGA] = sPidgeotTeachableLearnset, - [SPECIES_ALAKAZAM_MEGA] = sAlakazamTeachableLearnset, - [SPECIES_SLOWBRO_MEGA] = sSlowbroTeachableLearnset, - [SPECIES_GENGAR_MEGA] = sGengarTeachableLearnset, - [SPECIES_KANGASKHAN_MEGA] = sKangaskhanTeachableLearnset, - [SPECIES_PINSIR_MEGA] = sPinsirTeachableLearnset, - [SPECIES_GYARADOS_MEGA] = sGyaradosTeachableLearnset, - [SPECIES_AERODACTYL_MEGA] = sAerodactylTeachableLearnset, - [SPECIES_MEWTWO_MEGA_X] = sMewtwoTeachableLearnset, - [SPECIES_MEWTWO_MEGA_Y] = sMewtwoTeachableLearnset, - [SPECIES_AMPHAROS_MEGA] = sAmpharosTeachableLearnset, - [SPECIES_STEELIX_MEGA] = sSteelixTeachableLearnset, - [SPECIES_SCIZOR_MEGA] = sScizorTeachableLearnset, - [SPECIES_HERACROSS_MEGA] = sHeracrossTeachableLearnset, - [SPECIES_HOUNDOOM_MEGA] = sHoundoomTeachableLearnset, - [SPECIES_TYRANITAR_MEGA] = sTyranitarTeachableLearnset, - [SPECIES_SCEPTILE_MEGA] = sSceptileTeachableLearnset, - [SPECIES_BLAZIKEN_MEGA] = sBlazikenTeachableLearnset, - [SPECIES_SWAMPERT_MEGA] = sSwampertTeachableLearnset, - [SPECIES_GARDEVOIR_MEGA] = sGardevoirTeachableLearnset, - [SPECIES_SABLEYE_MEGA] = sSableyeTeachableLearnset, - [SPECIES_MAWILE_MEGA] = sMawileTeachableLearnset, - [SPECIES_AGGRON_MEGA] = sAggronTeachableLearnset, - [SPECIES_MEDICHAM_MEGA] = sMedichamTeachableLearnset, - [SPECIES_MANECTRIC_MEGA] = sManectricTeachableLearnset, - [SPECIES_SHARPEDO_MEGA] = sSharpedoTeachableLearnset, - [SPECIES_CAMERUPT_MEGA] = sCameruptTeachableLearnset, - [SPECIES_ALTARIA_MEGA] = sAltariaTeachableLearnset, - [SPECIES_BANETTE_MEGA] = sBanetteTeachableLearnset, - [SPECIES_ABSOL_MEGA] = sAbsolTeachableLearnset, - [SPECIES_GLALIE_MEGA] = sGlalieTeachableLearnset, - [SPECIES_SALAMENCE_MEGA] = sSalamenceTeachableLearnset, - [SPECIES_METAGROSS_MEGA] = sMetagrossTeachableLearnset, - [SPECIES_LATIAS_MEGA] = sLatiasTeachableLearnset, - [SPECIES_LATIOS_MEGA] = sLatiosTeachableLearnset, -#if P_GEN_4_POKEMON == TRUE - [SPECIES_LOPUNNY_MEGA] = sLopunnyTeachableLearnset, - [SPECIES_GARCHOMP_MEGA] = sGarchompTeachableLearnset, - [SPECIES_LUCARIO_MEGA] = sLucarioTeachableLearnset, - [SPECIES_ABOMASNOW_MEGA] = sAbomasnowTeachableLearnset, - [SPECIES_GALLADE_MEGA] = sGalladeTeachableLearnset, -#endif -#if P_GEN_5_POKEMON == TRUE - [SPECIES_AUDINO_MEGA] = sAudinoTeachableLearnset, -#endif -#if P_GEN_6_POKEMON == TRUE - [SPECIES_DIANCIE_MEGA] = sDiancieTeachableLearnset, -#endif - // Special Mega + Primals - [SPECIES_RAYQUAZA_MEGA] = sRayquazaTeachableLearnset, - [SPECIES_KYOGRE_PRIMAL] = sKyogreTeachableLearnset, - [SPECIES_GROUDON_PRIMAL] = sGroudonTeachableLearnset, - // Alolan Forms - [SPECIES_RATTATA_ALOLAN] = sRattataAlolanTeachableLearnset, - [SPECIES_RATICATE_ALOLAN] = sRaticateAlolanTeachableLearnset, - [SPECIES_RAICHU_ALOLAN] = sRaichuAlolanTeachableLearnset, - [SPECIES_SANDSHREW_ALOLAN] = sSandshrewAlolanTeachableLearnset, - [SPECIES_SANDSLASH_ALOLAN] = sSandslashAlolanTeachableLearnset, - [SPECIES_VULPIX_ALOLAN] = sVulpixAlolanTeachableLearnset, - [SPECIES_NINETALES_ALOLAN] = sNinetalesAlolanTeachableLearnset, - [SPECIES_DIGLETT_ALOLAN] = sDiglettAlolanTeachableLearnset, - [SPECIES_DUGTRIO_ALOLAN] = sDugtrioAlolanTeachableLearnset, - [SPECIES_MEOWTH_ALOLAN] = sMeowthAlolanTeachableLearnset, - [SPECIES_PERSIAN_ALOLAN] = sPersianAlolanTeachableLearnset, - [SPECIES_GEODUDE_ALOLAN] = sGeodudeAlolanTeachableLearnset, - [SPECIES_GRAVELER_ALOLAN] = sGravelerAlolanTeachableLearnset, - [SPECIES_GOLEM_ALOLAN] = sGolemAlolanTeachableLearnset, - [SPECIES_GRIMER_ALOLAN] = sGrimerAlolanTeachableLearnset, - [SPECIES_MUK_ALOLAN] = sMukAlolanTeachableLearnset, - [SPECIES_EXEGGUTOR_ALOLAN] = sExeggutorAlolanTeachableLearnset, - [SPECIES_MAROWAK_ALOLAN] = sMarowakAlolanTeachableLearnset, - // Galarian Forms - [SPECIES_MEOWTH_GALARIAN] = sMeowthGalarianTeachableLearnset, - [SPECIES_PONYTA_GALARIAN] = sPonytaGalarianTeachableLearnset, - [SPECIES_RAPIDASH_GALARIAN] = sRapidashGalarianTeachableLearnset, - [SPECIES_SLOWPOKE_GALARIAN] = sSlowpokeGalarianTeachableLearnset, - [SPECIES_SLOWBRO_GALARIAN] = sSlowbroGalarianTeachableLearnset, - [SPECIES_FARFETCHD_GALARIAN] = sFarfetchdGalarianTeachableLearnset, - [SPECIES_WEEZING_GALARIAN] = sWeezingGalarianTeachableLearnset, - [SPECIES_MR_MIME_GALARIAN] = sMrMimeGalarianTeachableLearnset, - [SPECIES_ARTICUNO_GALARIAN] = sArticunoGalarianTeachableLearnset, - [SPECIES_ZAPDOS_GALARIAN] = sZapdosGalarianTeachableLearnset, - [SPECIES_MOLTRES_GALARIAN] = sMoltresGalarianTeachableLearnset, - [SPECIES_SLOWKING_GALARIAN] = sSlowkingGalarianTeachableLearnset, - [SPECIES_CORSOLA_GALARIAN] = sCorsolaGalarianTeachableLearnset, - [SPECIES_ZIGZAGOON_GALARIAN] = sZigzagoonGalarianTeachableLearnset, - [SPECIES_LINOONE_GALARIAN] = sLinooneGalarianTeachableLearnset, -#if P_GEN_5_POKEMON == TRUE - [SPECIES_DARUMAKA_GALARIAN] = sDarumakaGalarianTeachableLearnset, - [SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE] = sDarmanitanGalarianTeachableLearnset, - [SPECIES_YAMASK_GALARIAN] = sYamaskGalarianTeachableLearnset, - [SPECIES_STUNFISK_GALARIAN] = sStunfiskGalarianTeachableLearnset, -#endif - // Hisuian Forms - [SPECIES_GROWLITHE_HISUIAN] = sGrowlitheHisuianTeachableLearnset, - [SPECIES_ARCANINE_HISUIAN] = sArcanineHisuianTeachableLearnset, - [SPECIES_VOLTORB_HISUIAN] = sVoltorbHisuianTeachableLearnset, - [SPECIES_ELECTRODE_HISUIAN] = sElectrodeHisuianTeachableLearnset, - [SPECIES_TYPHLOSION_HISUIAN] = sTyphlosionHisuianTeachableLearnset, - [SPECIES_QWILFISH_HISUIAN] = sQwilfishHisuianTeachableLearnset, - [SPECIES_SNEASEL_HISUIAN] = sSneaselHisuianTeachableLearnset, -#if P_GEN_5_POKEMON == TRUE - [SPECIES_SAMUROTT_HISUIAN] = sSamurottHisuianTeachableLearnset, - [SPECIES_LILLIGANT_HISUIAN] = sLilligantHisuianTeachableLearnset, - [SPECIES_ZORUA_HISUIAN] = sZoruaHisuianTeachableLearnset, - [SPECIES_ZOROARK_HISUIAN] = sZoroarkHisuianTeachableLearnset, - [SPECIES_BRAVIARY_HISUIAN] = sBraviaryHisuianTeachableLearnset, -#endif -#if P_GEN_6_POKEMON == TRUE - [SPECIES_SLIGGOO_HISUIAN] = sSliggooHisuianTeachableLearnset, - [SPECIES_GOODRA_HISUIAN] = sGoodraHisuianTeachableLearnset, - [SPECIES_AVALUGG_HISUIAN] = sAvaluggHisuianTeachableLearnset, -#endif -#if P_GEN_7_POKEMON == TRUE - [SPECIES_DECIDUEYE_HISUIAN] = sDecidueyeHisuianTeachableLearnset, -#endif - // Misc Forms - // Cosplay Pikachu - [SPECIES_PIKACHU_COSPLAY] = sPikachuTeachableLearnset, - [SPECIES_PIKACHU_ROCK_STAR] = sPikachuTeachableLearnset, - [SPECIES_PIKACHU_BELLE] = sPikachuTeachableLearnset, - [SPECIES_PIKACHU_POP_STAR] = sPikachuTeachableLearnset, - [SPECIES_PIKACHU_PH_D] = sPikachuTeachableLearnset, - [SPECIES_PIKACHU_LIBRE] = sPikachuTeachableLearnset, - // Cap Pikachu - [SPECIES_PIKACHU_ORIGINAL_CAP] = sPikachuTeachableLearnset, - [SPECIES_PIKACHU_HOENN_CAP] = sPikachuTeachableLearnset, - [SPECIES_PIKACHU_SINNOH_CAP] = sPikachuTeachableLearnset, - [SPECIES_PIKACHU_UNOVA_CAP] = sPikachuTeachableLearnset, - [SPECIES_PIKACHU_KALOS_CAP] = sPikachuTeachableLearnset, - [SPECIES_PIKACHU_ALOLA_CAP] = sPikachuTeachableLearnset, - [SPECIES_PIKACHU_PARTNER_CAP] = sPikachuTeachableLearnset, - [SPECIES_PIKACHU_WORLD_CAP] = sPikachuTeachableLearnset, - // Pichu - [SPECIES_PICHU_SPIKY_EARED] = sPichuTeachableLearnset, - // Unown - [SPECIES_UNOWN_B] = sUnownTeachableLearnset, - [SPECIES_UNOWN_C] = sUnownTeachableLearnset, - [SPECIES_UNOWN_D] = sUnownTeachableLearnset, - [SPECIES_UNOWN_E] = sUnownTeachableLearnset, - [SPECIES_UNOWN_F] = sUnownTeachableLearnset, - [SPECIES_UNOWN_G] = sUnownTeachableLearnset, - [SPECIES_UNOWN_H] = sUnownTeachableLearnset, - [SPECIES_UNOWN_I] = sUnownTeachableLearnset, - [SPECIES_UNOWN_J] = sUnownTeachableLearnset, - [SPECIES_UNOWN_K] = sUnownTeachableLearnset, - [SPECIES_UNOWN_L] = sUnownTeachableLearnset, - [SPECIES_UNOWN_M] = sUnownTeachableLearnset, - [SPECIES_UNOWN_N] = sUnownTeachableLearnset, - [SPECIES_UNOWN_O] = sUnownTeachableLearnset, - [SPECIES_UNOWN_P] = sUnownTeachableLearnset, - [SPECIES_UNOWN_Q] = sUnownTeachableLearnset, - [SPECIES_UNOWN_R] = sUnownTeachableLearnset, - [SPECIES_UNOWN_S] = sUnownTeachableLearnset, - [SPECIES_UNOWN_T] = sUnownTeachableLearnset, - [SPECIES_UNOWN_U] = sUnownTeachableLearnset, - [SPECIES_UNOWN_V] = sUnownTeachableLearnset, - [SPECIES_UNOWN_W] = sUnownTeachableLearnset, - [SPECIES_UNOWN_X] = sUnownTeachableLearnset, - [SPECIES_UNOWN_Y] = sUnownTeachableLearnset, - [SPECIES_UNOWN_Z] = sUnownTeachableLearnset, - [SPECIES_UNOWN_EMARK] = sUnownTeachableLearnset, - [SPECIES_UNOWN_QMARK] = sUnownTeachableLearnset, - // Castform - [SPECIES_CASTFORM_SUNNY] = sCastformTeachableLearnset, - [SPECIES_CASTFORM_RAINY] = sCastformTeachableLearnset, - [SPECIES_CASTFORM_SNOWY] = sCastformTeachableLearnset, - // Deoxys - [SPECIES_DEOXYS_ATTACK] = sDeoxysAttackTeachableLearnset, - [SPECIES_DEOXYS_DEFENSE] = sDeoxysDefenseTeachableLearnset, - [SPECIES_DEOXYS_SPEED] = sDeoxysSpeedTeachableLearnset, -#if P_GEN_4_POKEMON == TRUE - // Burmy - [SPECIES_BURMY_SANDY_CLOAK] = sBurmyTeachableLearnset, - [SPECIES_BURMY_TRASH_CLOAK] = sBurmyTeachableLearnset, - // Wormadam - [SPECIES_WORMADAM_SANDY_CLOAK] = sWormadamSandyCloakTeachableLearnset, - [SPECIES_WORMADAM_TRASH_CLOAK] = sWormadamTrashCloakTeachableLearnset, - // Cherrim - [SPECIES_CHERRIM_SUNSHINE] = sCherrimTeachableLearnset, - // Shellos - [SPECIES_SHELLOS_EAST_SEA] = sShellosTeachableLearnset, - // Gastrodon - [SPECIES_GASTRODON_EAST_SEA] = sGastrodonTeachableLearnset, - // Rotom - [SPECIES_ROTOM_HEAT] = sRotomTeachableLearnset, - [SPECIES_ROTOM_WASH] = sRotomTeachableLearnset, - [SPECIES_ROTOM_FROST] = sRotomTeachableLearnset, - [SPECIES_ROTOM_FAN] = sRotomTeachableLearnset, - [SPECIES_ROTOM_MOW] = sRotomTeachableLearnset, - // Origin Forme - [SPECIES_DIALGA_ORIGIN] = sDialgaTeachableLearnset, - [SPECIES_PALKIA_ORIGIN] = sPalkiaTeachableLearnset, - [SPECIES_GIRATINA_ORIGIN] = sGiratinaTeachableLearnset, - // Shaymin - [SPECIES_SHAYMIN_SKY] = sShayminSkyTeachableLearnset, - // Arceus - [SPECIES_ARCEUS_FIGHTING] = sArceusTeachableLearnset, - [SPECIES_ARCEUS_FLYING] = sArceusTeachableLearnset, - [SPECIES_ARCEUS_POISON] = sArceusTeachableLearnset, - [SPECIES_ARCEUS_GROUND] = sArceusTeachableLearnset, - [SPECIES_ARCEUS_ROCK] = sArceusTeachableLearnset, - [SPECIES_ARCEUS_BUG] = sArceusTeachableLearnset, - [SPECIES_ARCEUS_GHOST] = sArceusTeachableLearnset, - [SPECIES_ARCEUS_STEEL] = sArceusTeachableLearnset, - [SPECIES_ARCEUS_FIRE] = sArceusTeachableLearnset, - [SPECIES_ARCEUS_WATER] = sArceusTeachableLearnset, - [SPECIES_ARCEUS_GRASS] = sArceusTeachableLearnset, - [SPECIES_ARCEUS_ELECTRIC] = sArceusTeachableLearnset, - [SPECIES_ARCEUS_PSYCHIC] = sArceusTeachableLearnset, - [SPECIES_ARCEUS_ICE] = sArceusTeachableLearnset, - [SPECIES_ARCEUS_DRAGON] = sArceusTeachableLearnset, - [SPECIES_ARCEUS_DARK] = sArceusTeachableLearnset, - [SPECIES_ARCEUS_FAIRY] = sArceusTeachableLearnset, -#endif -#if P_GEN_5_POKEMON == TRUE - // Basculin - [SPECIES_BASCULIN_BLUE_STRIPED] = sBasculinTeachableLearnset, - [SPECIES_BASCULIN_WHITE_STRIPED] = sBasculinTeachableLearnset, - // Darmanitan - [SPECIES_DARMANITAN_ZEN_MODE] = sDarmanitanTeachableLearnset, - [SPECIES_DARMANITAN_GALARIAN_ZEN_MODE] = sDarmanitanGalarianTeachableLearnset, - // Deerling - [SPECIES_DEERLING_SUMMER] = sDeerlingTeachableLearnset, - [SPECIES_DEERLING_AUTUMN] = sDeerlingTeachableLearnset, - [SPECIES_DEERLING_WINTER] = sDeerlingTeachableLearnset, - // Sawsbuck - [SPECIES_SAWSBUCK_SUMMER] = sSawsbuckTeachableLearnset, - [SPECIES_SAWSBUCK_AUTUMN] = sSawsbuckTeachableLearnset, - [SPECIES_SAWSBUCK_WINTER] = sSawsbuckTeachableLearnset, - // Therian Forms - [SPECIES_TORNADUS_THERIAN] = sTornadusTeachableLearnset, - [SPECIES_THUNDURUS_THERIAN] = sThundurusTeachableLearnset, - [SPECIES_LANDORUS_THERIAN] = sLandorusTeachableLearnset, - // Kyurem - [SPECIES_KYUREM_WHITE] = sKyuremTeachableLearnset, - [SPECIES_KYUREM_BLACK] = sKyuremTeachableLearnset, - // Keldeo - [SPECIES_KELDEO_RESOLUTE] = sKeldeoTeachableLearnset, - // Meloetta - [SPECIES_MELOETTA_PIROUETTE] = sMeloettaTeachableLearnset, - // Genesect - [SPECIES_GENESECT_DOUSE_DRIVE] = sGenesectTeachableLearnset, - [SPECIES_GENESECT_SHOCK_DRIVE] = sGenesectTeachableLearnset, - [SPECIES_GENESECT_BURN_DRIVE] = sGenesectTeachableLearnset, - [SPECIES_GENESECT_CHILL_DRIVE] = sGenesectTeachableLearnset, -#endif -#if P_GEN_6_POKEMON == TRUE - // Greninja - [SPECIES_GRENINJA_BATTLE_BOND] = sGreninjaTeachableLearnset, - [SPECIES_GRENINJA_ASH] = sGreninjaTeachableLearnset, - // Vivillon - [SPECIES_VIVILLON_POLAR] = sVivillonTeachableLearnset, - [SPECIES_VIVILLON_TUNDRA] = sVivillonTeachableLearnset, - [SPECIES_VIVILLON_CONTINENTAL] = sVivillonTeachableLearnset, - [SPECIES_VIVILLON_GARDEN] = sVivillonTeachableLearnset, - [SPECIES_VIVILLON_ELEGANT] = sVivillonTeachableLearnset, - [SPECIES_VIVILLON_MEADOW] = sVivillonTeachableLearnset, - [SPECIES_VIVILLON_MODERN] = sVivillonTeachableLearnset, - [SPECIES_VIVILLON_MARINE] = sVivillonTeachableLearnset, - [SPECIES_VIVILLON_ARCHIPELAGO] = sVivillonTeachableLearnset, - [SPECIES_VIVILLON_HIGH_PLAINS] = sVivillonTeachableLearnset, - [SPECIES_VIVILLON_SANDSTORM] = sVivillonTeachableLearnset, - [SPECIES_VIVILLON_RIVER] = sVivillonTeachableLearnset, - [SPECIES_VIVILLON_MONSOON] = sVivillonTeachableLearnset, - [SPECIES_VIVILLON_SAVANNA] = sVivillonTeachableLearnset, - [SPECIES_VIVILLON_SUN] = sVivillonTeachableLearnset, - [SPECIES_VIVILLON_OCEAN] = sVivillonTeachableLearnset, - [SPECIES_VIVILLON_JUNGLE] = sVivillonTeachableLearnset, - [SPECIES_VIVILLON_FANCY] = sVivillonTeachableLearnset, - [SPECIES_VIVILLON_POKE_BALL] = sVivillonTeachableLearnset, - // Flabébé - [SPECIES_FLABEBE_YELLOW_FLOWER] = sFlabebeTeachableLearnset, - [SPECIES_FLABEBE_ORANGE_FLOWER] = sFlabebeTeachableLearnset, - [SPECIES_FLABEBE_BLUE_FLOWER] = sFlabebeTeachableLearnset, - [SPECIES_FLABEBE_WHITE_FLOWER] = sFlabebeTeachableLearnset, - // Floette - [SPECIES_FLOETTE_YELLOW_FLOWER] = sFloetteTeachableLearnset, - [SPECIES_FLOETTE_ORANGE_FLOWER] = sFloetteTeachableLearnset, - [SPECIES_FLOETTE_BLUE_FLOWER] = sFloetteTeachableLearnset, - [SPECIES_FLOETTE_WHITE_FLOWER] = sFloetteTeachableLearnset, - [SPECIES_FLOETTE_ETERNAL_FLOWER] = sFloetteEternalFlowerTeachableLearnset, - // Florges - [SPECIES_FLORGES_YELLOW_FLOWER] = sFlorgesTeachableLearnset, - [SPECIES_FLORGES_ORANGE_FLOWER] = sFlorgesTeachableLearnset, - [SPECIES_FLORGES_BLUE_FLOWER] = sFlorgesTeachableLearnset, - [SPECIES_FLORGES_WHITE_FLOWER] = sFlorgesTeachableLearnset, - //Furfrou - [SPECIES_FURFROU_HEART_TRIM] = sFurfrouTeachableLearnset, - [SPECIES_FURFROU_STAR_TRIM] = sFurfrouTeachableLearnset, - [SPECIES_FURFROU_DIAMOND_TRIM] = sFurfrouTeachableLearnset, - [SPECIES_FURFROU_DEBUTANTE_TRIM] = sFurfrouTeachableLearnset, - [SPECIES_FURFROU_MATRON_TRIM] = sFurfrouTeachableLearnset, - [SPECIES_FURFROU_DANDY_TRIM] = sFurfrouTeachableLearnset, - [SPECIES_FURFROU_LA_REINE_TRIM] = sFurfrouTeachableLearnset, - [SPECIES_FURFROU_KABUKI_TRIM] = sFurfrouTeachableLearnset, - [SPECIES_FURFROU_PHARAOH_TRIM] = sFurfrouTeachableLearnset, - // Meowstic - [SPECIES_MEOWSTIC_FEMALE] = sMeowsticFemaleTeachableLearnset, - // Aegislash - [SPECIES_AEGISLASH_BLADE] = sAegislashTeachableLearnset, - // Pumpkaboo - [SPECIES_PUMPKABOO_SMALL] = sPumpkabooTeachableLearnset, - [SPECIES_PUMPKABOO_LARGE] = sPumpkabooTeachableLearnset, - [SPECIES_PUMPKABOO_SUPER] = sPumpkabooTeachableLearnset, - // Gourgeist - [SPECIES_GOURGEIST_SMALL] = sGourgeistTeachableLearnset, - [SPECIES_GOURGEIST_LARGE] = sGourgeistTeachableLearnset, - [SPECIES_GOURGEIST_SUPER] = sGourgeistTeachableLearnset, - // Xerneas - [SPECIES_XERNEAS_ACTIVE] = sXerneasTeachableLearnset, - // Zygarde - [SPECIES_ZYGARDE_10_AURA_BREAK] = sZygardeTeachableLearnset, - [SPECIES_ZYGARDE_10_POWER_CONSTRUCT] = sZygardeTeachableLearnset, - [SPECIES_ZYGARDE_50_POWER_CONSTRUCT] = sZygardeTeachableLearnset, - [SPECIES_ZYGARDE_COMPLETE] = sZygardeTeachableLearnset, - // Hoopa - [SPECIES_HOOPA_UNBOUND] = sHoopaUnboundTeachableLearnset, -#endif -#if P_GEN_7_POKEMON == TRUE - // Oricorio - [SPECIES_ORICORIO_POM_POM] = sOricorioTeachableLearnset, - [SPECIES_ORICORIO_PAU] = sOricorioTeachableLearnset, - [SPECIES_ORICORIO_SENSU] = sOricorioTeachableLearnset, - // Rockruff - [SPECIES_ROCKRUFF_OWN_TEMPO] = sRockruffTeachableLearnset, - // Lycanroc - [SPECIES_LYCANROC_MIDNIGHT] = sLycanrocMidnightTeachableLearnset, - [SPECIES_LYCANROC_DUSK] = sLycanrocDuskTeachableLearnset, - // Wishiwashi - [SPECIES_WISHIWASHI_SCHOOL] = sWishiwashiTeachableLearnset, - // Silvally - [SPECIES_SILVALLY_FIGHTING] = sSilvallyTeachableLearnset, - [SPECIES_SILVALLY_FLYING] = sSilvallyTeachableLearnset, - [SPECIES_SILVALLY_POISON] = sSilvallyTeachableLearnset, - [SPECIES_SILVALLY_GROUND] = sSilvallyTeachableLearnset, - [SPECIES_SILVALLY_ROCK] = sSilvallyTeachableLearnset, - [SPECIES_SILVALLY_BUG] = sSilvallyTeachableLearnset, - [SPECIES_SILVALLY_GHOST] = sSilvallyTeachableLearnset, - [SPECIES_SILVALLY_STEEL] = sSilvallyTeachableLearnset, - [SPECIES_SILVALLY_FIRE] = sSilvallyTeachableLearnset, - [SPECIES_SILVALLY_WATER] = sSilvallyTeachableLearnset, - [SPECIES_SILVALLY_GRASS] = sSilvallyTeachableLearnset, - [SPECIES_SILVALLY_ELECTRIC] = sSilvallyTeachableLearnset, - [SPECIES_SILVALLY_PSYCHIC] = sSilvallyTeachableLearnset, - [SPECIES_SILVALLY_ICE] = sSilvallyTeachableLearnset, - [SPECIES_SILVALLY_DRAGON] = sSilvallyTeachableLearnset, - [SPECIES_SILVALLY_DARK] = sSilvallyTeachableLearnset, - [SPECIES_SILVALLY_FAIRY] = sSilvallyTeachableLearnset, - // Minior - [SPECIES_MINIOR_METEOR_ORANGE] = sMiniorTeachableLearnset, - [SPECIES_MINIOR_METEOR_YELLOW] = sMiniorTeachableLearnset, - [SPECIES_MINIOR_METEOR_GREEN] = sMiniorTeachableLearnset, - [SPECIES_MINIOR_METEOR_BLUE] = sMiniorTeachableLearnset, - [SPECIES_MINIOR_METEOR_INDIGO] = sMiniorTeachableLearnset, - [SPECIES_MINIOR_METEOR_VIOLET] = sMiniorTeachableLearnset, - [SPECIES_MINIOR_CORE_RED] = sMiniorTeachableLearnset, - [SPECIES_MINIOR_CORE_ORANGE] = sMiniorTeachableLearnset, - [SPECIES_MINIOR_CORE_YELLOW] = sMiniorTeachableLearnset, - [SPECIES_MINIOR_CORE_GREEN] = sMiniorTeachableLearnset, - [SPECIES_MINIOR_CORE_BLUE] = sMiniorTeachableLearnset, - [SPECIES_MINIOR_CORE_INDIGO] = sMiniorTeachableLearnset, - [SPECIES_MINIOR_CORE_VIOLET] = sMiniorTeachableLearnset, - // Mimikyu - [SPECIES_MIMIKYU_BUSTED] = sMimikyuTeachableLearnset, - // Necrozma - [SPECIES_NECROZMA_DUSK_MANE] = sNecrozmaTeachableLearnset, - [SPECIES_NECROZMA_DAWN_WINGS] = sNecrozmaTeachableLearnset, - [SPECIES_NECROZMA_ULTRA] = sNecrozmaTeachableLearnset, - // Magearna - [SPECIES_MAGEARNA_ORIGINAL_COLOR] = sMagearnaTeachableLearnset, -#endif -#if P_GEN_8_POKEMON == TRUE - // Cramorant - [SPECIES_CRAMORANT_GULPING] = sCramorantTeachableLearnset, - [SPECIES_CRAMORANT_GORGING] = sCramorantTeachableLearnset, - // Toxtricity - [SPECIES_TOXTRICITY_LOW_KEY] = sToxtricityLowKeyTeachableLearnset, - // Sinistea - [SPECIES_SINISTEA_ANTIQUE] = sSinisteaTeachableLearnset, - // Polteageist - [SPECIES_POLTEAGEIST_ANTIQUE] = sPolteageistTeachableLearnset, - // Alcremie - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL] = sAlcremieTeachableLearnset, - [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL] = sAlcremieTeachableLearnset, - // Eiscue - [SPECIES_EISCUE_NOICE_FACE] = sEiscueTeachableLearnset, - // Indeedee - [SPECIES_INDEEDEE_FEMALE] = sIndeedeeFemaleTeachableLearnset, - // Morpeko - [SPECIES_MORPEKO_HANGRY] = sMorpekoTeachableLearnset, - // Zacian - [SPECIES_ZACIAN_CROWNED_SWORD] = sZacianTeachableLearnset, - // Zamazenta - [SPECIES_ZAMAZENTA_CROWNED_SHIELD] = sZamazentaTeachableLearnset, - // Eternatus - [SPECIES_ETERNATUS_ETERNAMAX] = sEternatusTeachableLearnset, - // Urshifu - [SPECIES_URSHIFU_RAPID_STRIKE_STYLE] = sUrshifuRapidStrikeStyleTeachableLearnset, - // Zarude - [SPECIES_ZARUDE_DADA] = sZarudeTeachableLearnset, - // Calyrex - [SPECIES_CALYREX_ICE_RIDER] = sCalyrexIceRiderTeachableLearnset, - [SPECIES_CALYREX_SHADOW_RIDER] = sCalyrexShadowRiderTeachableLearnset, - // Enamorus - [SPECIES_ENAMORUS_THERIAN] = sEnamorusTeachableLearnset, - // Basculegion - [SPECIES_BASCULEGION_FEMALE] = sBasculegionTeachableLearnset, - // Gigantamax Forms - [SPECIES_VENUSAUR_GIGANTAMAX] = sVenusaurTeachableLearnset, - [SPECIES_CHARIZARD_GIGANTAMAX] = sCharizardTeachableLearnset, - [SPECIES_BLASTOISE_GIGANTAMAX] = sBlastoiseTeachableLearnset, - [SPECIES_BUTTERFREE_GIGANTAMAX] = sButterfreeTeachableLearnset, - [SPECIES_PIKACHU_GIGANTAMAX] = sPikachuTeachableLearnset, - [SPECIES_MEOWTH_GIGANTAMAX] = sMeowthTeachableLearnset, - [SPECIES_MACHAMP_GIGANTAMAX] = sMachampTeachableLearnset, - [SPECIES_GENGAR_GIGANTAMAX] = sGengarTeachableLearnset, - [SPECIES_KINGLER_GIGANTAMAX] = sKinglerTeachableLearnset, - [SPECIES_LAPRAS_GIGANTAMAX] = sLaprasTeachableLearnset, - [SPECIES_EEVEE_GIGANTAMAX] = sEeveeTeachableLearnset, - [SPECIES_SNORLAX_GIGANTAMAX] = sSnorlaxTeachableLearnset, - [SPECIES_GARBODOR_GIGANTAMAX] = sGarbodorTeachableLearnset, - [SPECIES_MELMETAL_GIGANTAMAX] = sMelmetalTeachableLearnset, - [SPECIES_RILLABOOM_GIGANTAMAX] = sRillaboomTeachableLearnset, - [SPECIES_CINDERACE_GIGANTAMAX] = sCinderaceTeachableLearnset, - [SPECIES_INTELEON_GIGANTAMAX] = sInteleonTeachableLearnset, - [SPECIES_CORVIKNIGHT_GIGANTAMAX] = sCorviknightTeachableLearnset, - [SPECIES_ORBEETLE_GIGANTAMAX] = sOrbeetleTeachableLearnset, - [SPECIES_DREDNAW_GIGANTAMAX] = sDrednawTeachableLearnset, - [SPECIES_COALOSSAL_GIGANTAMAX] = sCoalossalTeachableLearnset, - [SPECIES_FLAPPLE_GIGANTAMAX] = sFlappleTeachableLearnset, - [SPECIES_APPLETUN_GIGANTAMAX] = sAppletunTeachableLearnset, - [SPECIES_SANDACONDA_GIGANTAMAX] = sSandacondaTeachableLearnset, - [SPECIES_TOXTRICITY_AMPED_GIGANTAMAX] = sToxtricityAmpedTeachableLearnset, - [SPECIES_TOXTRICITY_LOW_KEY_GIGANTAMAX] = sToxtricityLowKeyTeachableLearnset, - [SPECIES_CENTISKORCH_GIGANTAMAX] = sCentiskorchTeachableLearnset, - [SPECIES_HATTERENE_GIGANTAMAX] = sHattereneTeachableLearnset, - [SPECIES_GRIMMSNARL_GIGANTAMAX] = sGrimmsnarlTeachableLearnset, - [SPECIES_ALCREMIE_GIGANTAMAX] = sAlcremieTeachableLearnset, - [SPECIES_COPPERAJAH_GIGANTAMAX] = sCopperajahTeachableLearnset, - [SPECIES_DURALUDON_GIGANTAMAX] = sDuraludonTeachableLearnset, - [SPECIES_URSHIFU_SINGLE_STRIKE_STYLE_GIGANTAMAX] = sUrshifuSingleStrikeStyleTeachableLearnset, - [SPECIES_URSHIFU_RAPID_STRIKE_STYLE_GIGANTAMAX] = sUrshifuRapidStrikeStyleTeachableLearnset, -#endif -}; diff --git a/src/data/pokemon/teachable_learnsets.h b/src/data/pokemon/teachable_learnsets.h index 471d658f3890..5c4de9c7d387 100644 --- a/src/data/pokemon/teachable_learnsets.h +++ b/src/data/pokemon/teachable_learnsets.h @@ -32081,6 +32081,10 @@ static const u16 sUrsalunaTeachableLearnset[] = { MOVE_UNAVAILABLE, }; +static const u16 sUrsalunaBloodmoonTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; + static const u16 sBasculegionTeachableLearnset[] = { MOVE_UNAVAILABLE, }; @@ -33008,6 +33012,213 @@ static const u16 sDecidueyeHisuianTeachableLearnset[] = { }; #endif +static const u16 sWooperPaldeanTeachableLearnset[] = { + MOVE_ACID_SPRAY, + MOVE_AMNESIA, + MOVE_ATTRACT, + MOVE_AVALANCHE, + MOVE_BLIZZARD, + MOVE_BODY_SLAM, + MOVE_BULLDOZE, + MOVE_CHILLING_WATER, + MOVE_DIG, + MOVE_EARTH_POWER, + MOVE_EARTHQUAKE, + MOVE_ENCORE, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FRUSTRATION, + MOVE_HELPING_HAND, + MOVE_HIDDEN_POWER, + MOVE_HYDRO_PUMP, + MOVE_ICE_BEAM, + MOVE_ICY_WIND, + MOVE_LIQUIDATION, + MOVE_MUD_SHOT, + MOVE_MUD_SLAP, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_ROCK_SLIDE, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SECRET_POWER, + MOVE_SLEEP_TALK, + MOVE_SLUDGE_BOMB, + MOVE_SNOWSCAPE, + MOVE_SPIKES, + MOVE_STEALTH_ROCK, + MOVE_STOMPING_TANTRUM, + MOVE_STONE_EDGE, + MOVE_SUBSTITUTE, + MOVE_SURF, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_TOXIC, + MOVE_TRAILBLAZE, + MOVE_WATER_PULSE, + MOVE_WATERFALL, + MOVE_UNAVAILABLE, +}; + +static const u16 sTaurosPaldeanCombatBreedTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BODY_SLAM, + MOVE_BULLDOZE, + MOVE_CLOSE_COMBAT, + MOVE_DIG, + MOVE_EARTHQUAKE, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_GIGA_IMPACT, + MOVE_HELPING_HAND, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_ICY_WIND, + MOVE_IRON_HEAD, + MOVE_OUTRAGE, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_REVERSAL, + MOVE_ROCK_SLIDE, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SCARY_FACE, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SLEEP_TALK, + MOVE_SMART_STRIKE, + MOVE_SOLAR_BEAM, + MOVE_STOMPING_TANTRUM, + MOVE_STONE_EDGE, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_TRAILBLAZE, + MOVE_WILD_CHARGE, + MOVE_ZEN_HEADBUTT, + MOVE_UNAVAILABLE, +}; + +static const u16 sTaurosPaldeanBlazeBreedTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BODY_SLAM, + MOVE_BULLDOZE, + MOVE_CLOSE_COMBAT, + MOVE_DIG, + MOVE_EARTHQUAKE, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_GIGA_IMPACT, + MOVE_HELPING_HAND, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_ICY_WIND, + MOVE_IRON_HEAD, + MOVE_OUTRAGE, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_REVERSAL, + MOVE_ROCK_SLIDE, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SCARY_FACE, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SLEEP_TALK, + MOVE_SMART_STRIKE, + MOVE_SOLAR_BEAM, + MOVE_STOMPING_TANTRUM, + MOVE_STONE_EDGE, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_TRAILBLAZE, + MOVE_WILD_CHARGE, + MOVE_ZEN_HEADBUTT, + MOVE_UNAVAILABLE, +}; + +static const u16 sTaurosPaldeanAquaBreedTeachableLearnset[] = { + MOVE_ATTRACT, + MOVE_BLIZZARD, + MOVE_BODY_SLAM, + MOVE_BULLDOZE, + MOVE_CLOSE_COMBAT, + MOVE_DIG, + MOVE_EARTHQUAKE, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_FRUSTRATION, + MOVE_GIGA_IMPACT, + MOVE_HELPING_HAND, + MOVE_HIDDEN_POWER, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_ICY_WIND, + MOVE_IRON_HEAD, + MOVE_OUTRAGE, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_RETURN, + MOVE_REVERSAL, + MOVE_ROCK_SLIDE, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SCARY_FACE, + MOVE_SECRET_POWER, + MOVE_SHADOW_BALL, + MOVE_SLEEP_TALK, + MOVE_SMART_STRIKE, + MOVE_SOLAR_BEAM, + MOVE_STOMPING_TANTRUM, + MOVE_STONE_EDGE, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_TOXIC, + MOVE_TRAILBLAZE, + MOVE_WILD_CHARGE, + MOVE_ZEN_HEADBUTT, + MOVE_UNAVAILABLE, +}; + + static const u16 sDeoxysAttackTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_BRICK_BREAK, @@ -33541,3 +33752,4173 @@ static const u16 sCalyrexShadowRiderTeachableLearnset[] = { MOVE_UNAVAILABLE, }; #endif + +#if P_GEN_9_POKEMON == TRUE +static const u16 sSprigatitoTeachableLearnset[] = { + MOVE_ACROBATICS, + MOVE_AGILITY, + MOVE_BULLET_SEED, + MOVE_CHARM, + MOVE_DISARMING_VOICE, + MOVE_ENDURE, + MOVE_ENERGY_BALL, + MOVE_FACADE, + MOVE_FAKE_TEARS, + MOVE_GIGA_DRAIN, + MOVE_GRASSY_TERRAIN, + MOVE_GRASS_KNOT, + MOVE_GRASS_PLEDGE, + MOVE_HELPING_HAND, + MOVE_LEAF_STORM, + MOVE_MAGICAL_LEAF, + MOVE_MUD_SLAP, + MOVE_NASTY_PLOT, + MOVE_PLAY_ROUGH, + MOVE_PROTECT, + MOVE_REST, + MOVE_SEED_BOMB, + MOVE_SHADOW_CLAW, + MOVE_SLEEP_TALK, + MOVE_SOLAR_BEAM, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_TAKE_DOWN, + MOVE_TAUNT, + MOVE_TERA_BLAST, + MOVE_TRAILBLAZE, + MOVE_U_TURN, + MOVE_UNAVAILABLE, +}; + +static const u16 sFloragatoTeachableLearnset[] = { + MOVE_ACROBATICS, + MOVE_AERIAL_ACE, + MOVE_AGILITY, + MOVE_BULLET_SEED, + MOVE_CHARM, + MOVE_DISARMING_VOICE, + MOVE_ENDURE, + MOVE_ENERGY_BALL, + MOVE_FACADE, + MOVE_FAKE_TEARS, + MOVE_FLING, + MOVE_GIGA_DRAIN, + MOVE_GRASSY_TERRAIN, + MOVE_GRASS_KNOT, + MOVE_GRASS_PLEDGE, + MOVE_HELPING_HAND, + MOVE_LEAF_STORM, + MOVE_LOW_KICK, + MOVE_LOW_SWEEP, + MOVE_MAGICAL_LEAF, + MOVE_MUD_SLAP, + MOVE_NASTY_PLOT, + MOVE_PLAY_ROUGH, + MOVE_PROTECT, + MOVE_REST, + MOVE_SEED_BOMB, + MOVE_SHADOW_CLAW, + MOVE_SLEEP_TALK, + MOVE_SOLAR_BEAM, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_TAKE_DOWN, + MOVE_TAUNT, + MOVE_TERA_BLAST, + MOVE_THUNDER_PUNCH, + MOVE_TRAILBLAZE, + MOVE_U_TURN, + MOVE_UNAVAILABLE, +}; + +static const u16 sMeowscaradaTeachableLearnset[] = { + MOVE_ACROBATICS, + MOVE_AERIAL_ACE, + MOVE_AGILITY, + MOVE_AURA_SPHERE, + MOVE_BRICK_BREAK, + MOVE_BULLET_SEED, + MOVE_CHARM, + MOVE_CHILLING_WATER, + MOVE_DARK_PULSE, + MOVE_DISARMING_VOICE, + MOVE_ENDURE, + MOVE_ENERGY_BALL, + MOVE_FACADE, + MOVE_FAKE_TEARS, + MOVE_FLING, + MOVE_FOUL_PLAY, + MOVE_FRENZY_PLANT, + MOVE_GIGA_DRAIN, + MOVE_GIGA_IMPACT, + MOVE_GRASSY_TERRAIN, + MOVE_GRASS_KNOT, + MOVE_GRASS_PLEDGE, + MOVE_HELPING_HAND, + MOVE_HYPER_BEAM, + MOVE_LEAF_STORM, + MOVE_LOW_KICK, + MOVE_LOW_SWEEP, + MOVE_MAGICAL_LEAF, + MOVE_MUD_SLAP, + MOVE_NASTY_PLOT, + MOVE_PLAY_ROUGH, + MOVE_POLLEN_PUFF, + MOVE_POWER_GEM, + MOVE_PROTECT, + MOVE_REST, + MOVE_SEED_BOMB, + MOVE_SHADOW_BALL, + MOVE_SHADOW_CLAW, + MOVE_SKILL_SWAP, + MOVE_SLEEP_TALK, + MOVE_SOLAR_BEAM, + MOVE_SPIKES, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_TAKE_DOWN, + MOVE_TAUNT, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_THUNDER_PUNCH, + MOVE_TOXIC_SPIKES, + MOVE_TRAILBLAZE, + MOVE_TRICK, + MOVE_TRICK_ROOM, + MOVE_U_TURN, + MOVE_UNAVAILABLE, +}; + +static const u16 sFuecocoTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_CRUNCH, + MOVE_DIG, + MOVE_DISARMING_VOICE, + MOVE_ENCORE, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FIRE_FANG, + MOVE_FIRE_PLEDGE, + MOVE_FIRE_SPIN, + MOVE_FLAMETHROWER, + MOVE_FLAME_CHARGE, + MOVE_FLARE_BLITZ, + MOVE_HEAT_WAVE, + MOVE_HELPING_HAND, + MOVE_HYPER_VOICE, + MOVE_MUD_SLAP, + MOVE_OUTRAGE, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_SEED_BOMB, + MOVE_SLEEP_TALK, + MOVE_SNARL, + MOVE_STOMPING_TANTRUM, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_THUNDER_FANG, + MOVE_WILL_O_WISP, + MOVE_ZEN_HEADBUTT, + MOVE_UNAVAILABLE, +}; + +static const u16 sCrocalorTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_CRUNCH, + MOVE_DIG, + MOVE_DISARMING_VOICE, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FIRE_FANG, + MOVE_FIRE_PLEDGE, + MOVE_FIRE_SPIN, + MOVE_FLAMETHROWER, + MOVE_FLAME_CHARGE, + MOVE_FLARE_BLITZ, + MOVE_HEAT_WAVE, + MOVE_HELPING_HAND, + MOVE_HYPER_VOICE, + MOVE_MUD_SLAP, + MOVE_OUTRAGE, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_SEED_BOMB, + MOVE_SLEEP_TALK, + MOVE_SNARL, + MOVE_STOMPING_TANTRUM, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_THUNDER_FANG, + MOVE_WILL_O_WISP, + MOVE_ZEN_HEADBUTT, + MOVE_UNAVAILABLE, +}; + +static const u16 sSkeledirgeTeachableLearnset[] = { + MOVE_BLAST_BURN, + MOVE_BODY_SLAM, + MOVE_CRUNCH, + MOVE_DIG, + MOVE_DISARMING_VOICE, + MOVE_EARTHQUAKE, + MOVE_EARTH_POWER, + MOVE_ENCORE, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FIRE_FANG, + MOVE_FIRE_PLEDGE, + MOVE_FIRE_SPIN, + MOVE_FLAMETHROWER, + MOVE_FLAME_CHARGE, + MOVE_FLARE_BLITZ, + MOVE_GIGA_IMPACT, + MOVE_HEAT_WAVE, + MOVE_HELPING_HAND, + MOVE_HEX, + MOVE_HYPER_BEAM, + MOVE_HYPER_VOICE, + MOVE_IMPRISON, + MOVE_MUD_SLAP, + MOVE_NIGHT_SHADE, + MOVE_OUTRAGE, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_SCARY_FACE, + MOVE_SEED_BOMB, + MOVE_SHADOW_BALL, + MOVE_SHADOW_CLAW, + MOVE_SLEEP_TALK, + MOVE_SNARL, + MOVE_SOLAR_BEAM, + MOVE_STOMPING_TANTRUM, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_THUNDER_FANG, + MOVE_WILL_O_WISP, + MOVE_ZEN_HEADBUTT, + MOVE_UNAVAILABLE, +}; + +static const u16 sQuaxlyTeachableLearnset[] = { + MOVE_ACROBATICS, + MOVE_AERIAL_ACE, + MOVE_AIR_CUTTER, + MOVE_AIR_SLASH, + MOVE_BATON_PASS, + MOVE_BRAVE_BIRD, + MOVE_CHILLING_WATER, + MOVE_DISARMING_VOICE, + MOVE_ENCORE, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_HELPING_HAND, + MOVE_HYDRO_PUMP, + MOVE_LIQUIDATION, + MOVE_LOW_KICK, + MOVE_MISTY_TERRAIN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SURF, + MOVE_SWIFT, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_WATER_PLEDGE, + MOVE_UNAVAILABLE, +}; + +static const u16 sQuaxwellTeachableLearnset[] = { + MOVE_ACROBATICS, + MOVE_AERIAL_ACE, + MOVE_AIR_CUTTER, + MOVE_AIR_SLASH, + MOVE_BATON_PASS, + MOVE_BRAVE_BIRD, + MOVE_CHILLING_WATER, + MOVE_DISARMING_VOICE, + MOVE_ENCORE, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_HELPING_HAND, + MOVE_HYDRO_PUMP, + MOVE_LIQUIDATION, + MOVE_LOW_KICK, + MOVE_LOW_SWEEP, + MOVE_MISTY_TERRAIN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SURF, + MOVE_SWIFT, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_WATER_PLEDGE, + MOVE_WATER_PULSE, + MOVE_UNAVAILABLE, +}; + +static const u16 sQuaquavalTeachableLearnset[] = { + MOVE_ACROBATICS, + MOVE_AERIAL_ACE, + MOVE_AGILITY, + MOVE_AIR_CUTTER, + MOVE_AIR_SLASH, + MOVE_BATON_PASS, + MOVE_BRAVE_BIRD, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CHILLING_WATER, + MOVE_CLOSE_COMBAT, + MOVE_DISARMING_VOICE, + MOVE_ENCORE, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FLING, + MOVE_GIGA_IMPACT, + MOVE_HELPING_HAND, + MOVE_HURRICANE, + MOVE_HYDRO_CANNON, + MOVE_HYDRO_PUMP, + MOVE_HYPER_BEAM, + MOVE_ICE_SPINNER, + MOVE_ICY_WIND, + MOVE_LIQUIDATION, + MOVE_LOW_KICK, + MOVE_LOW_SWEEP, + MOVE_MISTY_TERRAIN, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_REVERSAL, + MOVE_SLEEP_TALK, + MOVE_SUBSTITUTE, + MOVE_SURF, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_TAKE_DOWN, + MOVE_TAUNT, + MOVE_TERA_BLAST, + MOVE_U_TURN, + MOVE_WATER_PLEDGE, + MOVE_WATER_PULSE, + MOVE_UNAVAILABLE, +}; + +static const u16 sLechonkTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_BULLDOZE, + MOVE_BULLET_SEED, + MOVE_CHILLING_WATER, + MOVE_DIG, + MOVE_DISARMING_VOICE, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_HELPING_HAND, + MOVE_HYPER_VOICE, + MOVE_IRON_HEAD, + MOVE_MUD_SHOT, + MOVE_MUD_SLAP, + MOVE_PLAY_ROUGH, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SEED_BOMB, + MOVE_SLEEP_TALK, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_TRAILBLAZE, + MOVE_ZEN_HEADBUTT, + MOVE_UNAVAILABLE, +}; + +static const u16 sOinkologneMaleTeachableLearnset[] = { + MOVE_BODY_PRESS, + MOVE_BODY_SLAM, + MOVE_BULLDOZE, + MOVE_BULLET_SEED, + MOVE_CHILLING_WATER, + MOVE_DIG, + MOVE_DISARMING_VOICE, + MOVE_EARTH_POWER, + MOVE_ENDURE, + MOVE_ENERGY_BALL, + MOVE_FACADE, + MOVE_GIGA_IMPACT, + MOVE_HELPING_HAND, + MOVE_HYPER_BEAM, + MOVE_HYPER_VOICE, + MOVE_IRON_HEAD, + MOVE_MUD_SHOT, + MOVE_MUD_SLAP, + MOVE_PLAY_ROUGH, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SEED_BOMB, + MOVE_SLEEP_TALK, + MOVE_STOMPING_TANTRUM, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_TRAILBLAZE, + MOVE_ZEN_HEADBUTT, + MOVE_UNAVAILABLE, +}; + +static const u16 sOinkologneFemaleTeachableLearnset[] = { + MOVE_BODY_PRESS, + MOVE_BODY_SLAM, + MOVE_BULLDOZE, + MOVE_BULLET_SEED, + MOVE_CHILLING_WATER, + MOVE_DIG, + MOVE_DISARMING_VOICE, + MOVE_EARTH_POWER, + MOVE_ENDURE, + MOVE_ENERGY_BALL, + MOVE_FACADE, + MOVE_GIGA_IMPACT, + MOVE_HELPING_HAND, + MOVE_HYPER_BEAM, + MOVE_HYPER_VOICE, + MOVE_IRON_HEAD, + MOVE_MUD_SHOT, + MOVE_MUD_SLAP, + MOVE_PLAY_ROUGH, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SEED_BOMB, + MOVE_SLEEP_TALK, + MOVE_STOMPING_TANTRUM, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_TRAILBLAZE, + MOVE_ZEN_HEADBUTT, + MOVE_UNAVAILABLE, +}; + +static const u16 sTarountulaTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_BUG_BUZZ, + MOVE_BULLET_SEED, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FALSE_SWIPE, + MOVE_GIGA_DRAIN, + MOVE_GRASS_KNOT, + MOVE_LEECH_LIFE, + MOVE_POISON_JAB, + MOVE_POUNCE, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SHADOW_CLAW, + MOVE_SLEEP_TALK, + MOVE_SPIKES, + MOVE_STRUGGLE_BUG, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_TOXIC_SPIKES, + MOVE_TRAILBLAZE, + MOVE_X_SCISSOR, + MOVE_UNAVAILABLE, +}; + +static const u16 sSpidopsTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_BODY_SLAM, + MOVE_BRICK_BREAK, + MOVE_BUG_BUZZ, + MOVE_BULLET_SEED, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FALSE_SWIPE, + MOVE_FLING, + MOVE_GIGA_DRAIN, + MOVE_GIGA_IMPACT, + MOVE_GRASS_KNOT, + MOVE_LEECH_LIFE, + MOVE_LOW_KICK, + MOVE_POISON_JAB, + MOVE_POUNCE, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_REVERSAL, + MOVE_ROCK_TOMB, + MOVE_SCARY_FACE, + MOVE_SHADOW_CLAW, + MOVE_SLEEP_TALK, + MOVE_SPIKES, + MOVE_STRUGGLE_BUG, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_TAKE_DOWN, + MOVE_TAUNT, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_TOXIC_SPIKES, + MOVE_TRAILBLAZE, + MOVE_U_TURN, + MOVE_X_SCISSOR, + MOVE_UNAVAILABLE, +}; + +static const u16 sNymbleTeachableLearnset[] = { + MOVE_AGILITY, + MOVE_BUG_BUZZ, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_LEECH_LIFE, + MOVE_POUNCE, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SLEEP_TALK, + MOVE_STRUGGLE_BUG, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_TRAILBLAZE, + MOVE_U_TURN, + MOVE_X_SCISSOR, + MOVE_UNAVAILABLE, +}; + +static const u16 sLokixTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_AGILITY, + MOVE_BRICK_BREAK, + MOVE_BUG_BUZZ, + MOVE_DARK_PULSE, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FLING, + MOVE_GIGA_IMPACT, + MOVE_LEECH_LIFE, + MOVE_LOW_KICK, + MOVE_LOW_SWEEP, + MOVE_POUNCE, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_REVERSAL, + MOVE_SCARY_FACE, + MOVE_SLEEP_TALK, + MOVE_STRUGGLE_BUG, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_SWORDS_DANCE, + MOVE_TAKE_DOWN, + MOVE_TAUNT, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_TRAILBLAZE, + MOVE_U_TURN, + MOVE_X_SCISSOR, + MOVE_UNAVAILABLE, +}; + +static const u16 sPawmiTeachableLearnset[] = { + MOVE_AGILITY, + MOVE_BATON_PASS, + MOVE_CHARGE_BEAM, + MOVE_CHARM, + MOVE_CRUNCH, + MOVE_DIG, + MOVE_EERIE_IMPULSE, + MOVE_ELECTRIC_TERRAIN, + MOVE_ELECTRO_BALL, + MOVE_ENCORE, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FLING, + MOVE_HELPING_HAND, + MOVE_METAL_CLAW, + MOVE_PLAY_ROUGH, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SLEEP_TALK, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_SWIFT, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_THUNDER_FANG, + MOVE_THUNDER_WAVE, + MOVE_VOLT_SWITCH, + MOVE_WILD_CHARGE, + MOVE_UNAVAILABLE, +}; + +static const u16 sPawmoTeachableLearnset[] = { + MOVE_AGILITY, + MOVE_BATON_PASS, + MOVE_CHARGE_BEAM, + MOVE_CHARM, + MOVE_CRUNCH, + MOVE_DIG, + MOVE_EERIE_IMPULSE, + MOVE_ELECTRIC_TERRAIN, + MOVE_ELECTRO_BALL, + MOVE_ENCORE, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FLING, + MOVE_HELPING_HAND, + MOVE_LOW_KICK, + MOVE_LOW_SWEEP, + MOVE_METAL_CLAW, + MOVE_PLAY_ROUGH, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SLEEP_TALK, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_SWIFT, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_THUNDER_FANG, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_VOLT_SWITCH, + MOVE_WILD_CHARGE, + MOVE_UNAVAILABLE, +}; + +static const u16 sPawmotTeachableLearnset[] = { + MOVE_AGILITY, + MOVE_BATON_PASS, + MOVE_BODY_PRESS, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CHARGE_BEAM, + MOVE_CHARM, + MOVE_CLOSE_COMBAT, + MOVE_CRUNCH, + MOVE_DIG, + MOVE_EERIE_IMPULSE, + MOVE_ELECTRIC_TERRAIN, + MOVE_ELECTRO_BALL, + MOVE_ENCORE, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FIRE_PUNCH, + MOVE_FLING, + MOVE_FOCUS_BLAST, + MOVE_GIGA_IMPACT, + MOVE_GRASS_KNOT, + MOVE_HELPING_HAND, + MOVE_HYPER_BEAM, + MOVE_ICE_PUNCH, + MOVE_LOW_KICK, + MOVE_LOW_SWEEP, + MOVE_METAL_CLAW, + MOVE_METRONOME, + MOVE_PLAY_ROUGH, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SEED_BOMB, + MOVE_SLEEP_TALK, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_SWIFT, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_THUNDER_FANG, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_VOLT_SWITCH, + MOVE_WILD_CHARGE, + MOVE_UNAVAILABLE, +}; + +static const u16 sTandemausTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_AGILITY, + MOVE_BATON_PASS, + MOVE_BULLET_SEED, + MOVE_CHARM, + MOVE_CRUNCH, + MOVE_DIG, + MOVE_ENCORE, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FAKE_TEARS, + MOVE_GRASS_KNOT, + MOVE_HELPING_HAND, + MOVE_HYPER_VOICE, + MOVE_LOW_KICK, + MOVE_LOW_SWEEP, + MOVE_MUD_SHOT, + MOVE_MUD_SLAP, + MOVE_PLAY_ROUGH, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SEED_BOMB, + MOVE_SHADOW_CLAW, + MOVE_SLEEP_TALK, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_SWIFT, + MOVE_TAKE_DOWN, + MOVE_TAUNT, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_THUNDER_WAVE, + MOVE_U_TURN, + MOVE_WATER_PULSE, + MOVE_UNAVAILABLE, +}; + +static const u16 sMausholdTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_AGILITY, + MOVE_BULLET_SEED, + MOVE_CHARM, + MOVE_CHILLING_WATER, + MOVE_CRUNCH, + MOVE_DIG, + MOVE_ENCORE, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FAKE_TEARS, + MOVE_GIGA_IMPACT, + MOVE_GRASS_KNOT, + MOVE_HELPING_HAND, + MOVE_HYPER_BEAM, + MOVE_HYPER_VOICE, + MOVE_LOW_KICK, + MOVE_LOW_SWEEP, + MOVE_MUD_SHOT, + MOVE_MUD_SLAP, + MOVE_PLAY_ROUGH, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SEED_BOMB, + MOVE_SHADOW_CLAW, + MOVE_SLEEP_TALK, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_SWIFT, + MOVE_TAKE_DOWN, + MOVE_TAUNT, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_THUNDER_WAVE, + MOVE_TRAILBLAZE, + MOVE_U_TURN, + MOVE_WATER_PULSE, + MOVE_UNAVAILABLE, +}; + +static const u16 sFidoughTeachableLearnset[] = { + MOVE_AGILITY, + MOVE_BATON_PASS, + MOVE_BODY_SLAM, + MOVE_CHARM, + MOVE_CRUNCH, + MOVE_DAZZLING_GLEAM, + MOVE_DIG, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FIRE_FANG, + MOVE_HELPING_HAND, + MOVE_ICE_FANG, + MOVE_MISTY_TERRAIN, + MOVE_MUD_SHOT, + MOVE_MUD_SLAP, + MOVE_PLAY_ROUGH, + MOVE_PROTECT, + MOVE_PSYCHIC_FANGS, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SLEEP_TALK, + MOVE_SNARL, + MOVE_STOMPING_TANTRUM, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_THUNDER_FANG, + MOVE_TRAILBLAZE, + MOVE_UNAVAILABLE, +}; + +static const u16 sDachsbunTeachableLearnset[] = { + MOVE_AGILITY, + MOVE_BATON_PASS, + MOVE_BODY_PRESS, + MOVE_BODY_SLAM, + MOVE_CHARM, + MOVE_CRUNCH, + MOVE_DAZZLING_GLEAM, + MOVE_DIG, + MOVE_DRAINING_KISS, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FIRE_FANG, + MOVE_GIGA_IMPACT, + MOVE_HELPING_HAND, + MOVE_HYPER_BEAM, + MOVE_ICE_FANG, + MOVE_MISTY_TERRAIN, + MOVE_MUD_SHOT, + MOVE_MUD_SLAP, + MOVE_PLAY_ROUGH, + MOVE_PROTECT, + MOVE_PSYCHIC_FANGS, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SCARY_FACE, + MOVE_SLEEP_TALK, + MOVE_SNARL, + MOVE_STOMPING_TANTRUM, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_THUNDER_FANG, + MOVE_TRAILBLAZE, + MOVE_UNAVAILABLE, +}; + +static const u16 sSmolivTeachableLearnset[] = { + MOVE_BULLET_SEED, + MOVE_CHARM, + MOVE_EARTH_POWER, + MOVE_ENDURE, + MOVE_ENERGY_BALL, + MOVE_FACADE, + MOVE_GIGA_DRAIN, + MOVE_GRASSY_TERRAIN, + MOVE_GRASS_KNOT, + MOVE_HELPING_HAND, + MOVE_LEAF_STORM, + MOVE_MAGICAL_LEAF, + MOVE_PROTECT, + MOVE_REST, + MOVE_SEED_BOMB, + MOVE_SLEEP_TALK, + MOVE_SOLAR_BEAM, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_SWIFT, + MOVE_TERA_BLAST, + MOVE_TRAILBLAZE, + MOVE_UNAVAILABLE, +}; + +static const u16 sDollivTeachableLearnset[] = { + MOVE_BULLET_SEED, + MOVE_CHARM, + MOVE_EARTH_POWER, + MOVE_ENDURE, + MOVE_ENERGY_BALL, + MOVE_FACADE, + MOVE_GIGA_DRAIN, + MOVE_GRASSY_TERRAIN, + MOVE_GRASS_KNOT, + MOVE_HELPING_HAND, + MOVE_LEAF_STORM, + MOVE_MAGICAL_LEAF, + MOVE_PROTECT, + MOVE_REST, + MOVE_SEED_BOMB, + MOVE_SLEEP_TALK, + MOVE_SOLAR_BEAM, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_SWIFT, + MOVE_TERA_BLAST, + MOVE_TRAILBLAZE, + MOVE_UNAVAILABLE, +}; + +static const u16 sArbolivaTeachableLearnset[] = { + MOVE_BULLET_SEED, + MOVE_CHARM, + MOVE_DAZZLING_GLEAM, + MOVE_EARTH_POWER, + MOVE_ENCORE, + MOVE_ENDURE, + MOVE_ENERGY_BALL, + MOVE_FACADE, + MOVE_FLING, + MOVE_GIGA_DRAIN, + MOVE_GIGA_IMPACT, + MOVE_GRASSY_TERRAIN, + MOVE_GRASS_KNOT, + MOVE_HELPING_HAND, + MOVE_HYPER_BEAM, + MOVE_HYPER_VOICE, + MOVE_LEAF_STORM, + MOVE_LIGHT_SCREEN, + MOVE_MAGICAL_LEAF, + MOVE_METRONOME, + MOVE_POLLEN_PUFF, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_SEED_BOMB, + MOVE_SLEEP_TALK, + MOVE_SOLAR_BEAM, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_SWIFT, + MOVE_TERA_BLAST, + MOVE_TRAILBLAZE, + MOVE_UNAVAILABLE, +}; + +static const u16 sSquawkabillyTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_AIR_CUTTER, + MOVE_AIR_SLASH, + MOVE_BRAVE_BIRD, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FAKE_TEARS, + MOVE_FLY, + MOVE_FOUL_PLAY, + MOVE_GIGA_IMPACT, + MOVE_HEAT_WAVE, + MOVE_HELPING_HAND, + MOVE_HURRICANE, + MOVE_HYPER_BEAM, + MOVE_HYPER_VOICE, + MOVE_POUNCE, + MOVE_PROTECT, + MOVE_REST, + MOVE_REVERSAL, + MOVE_SCARY_FACE, + MOVE_SLEEP_TALK, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_TAILWIND, + MOVE_TAKE_DOWN, + MOVE_TAUNT, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_U_TURN, + MOVE_UNAVAILABLE, +}; + +static const u16 sNacliTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_BULLDOZE, + MOVE_DIG, + MOVE_EARTHQUAKE, + MOVE_EARTH_POWER, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FLASH_CANNON, + MOVE_HEAVY_SLAM, + MOVE_HELPING_HAND, + MOVE_IRON_DEFENSE, + MOVE_IRON_HEAD, + MOVE_MUD_SHOT, + MOVE_POWER_GEM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_SLIDE, + MOVE_SANDSTORM, + MOVE_SLEEP_TALK, + MOVE_STEALTH_ROCK, + MOVE_STOMPING_TANTRUM, + MOVE_STONE_EDGE, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_ZEN_HEADBUTT, + MOVE_UNAVAILABLE, +}; + +static const u16 sNaclstackTeachableLearnset[] = { + MOVE_BODY_PRESS, + MOVE_BODY_SLAM, + MOVE_BULLDOZE, + MOVE_DIG, + MOVE_EARTHQUAKE, + MOVE_EARTH_POWER, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FLASH_CANNON, + MOVE_GIGA_IMPACT, + MOVE_HEAVY_SLAM, + MOVE_HELPING_HAND, + MOVE_HYPER_BEAM, + MOVE_IRON_DEFENSE, + MOVE_IRON_HEAD, + MOVE_MUD_SHOT, + MOVE_POWER_GEM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_SLIDE, + MOVE_SANDSTORM, + MOVE_SLEEP_TALK, + MOVE_STEALTH_ROCK, + MOVE_STOMPING_TANTRUM, + MOVE_STONE_EDGE, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_ZEN_HEADBUTT, + MOVE_UNAVAILABLE, +}; + +static const u16 sGarganaclTeachableLearnset[] = { + MOVE_AVALANCHE, + MOVE_BODY_PRESS, + MOVE_BODY_SLAM, + MOVE_BRICK_BREAK, + MOVE_BULLDOZE, + MOVE_DIG, + MOVE_EARTHQUAKE, + MOVE_EARTH_POWER, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FIRE_PUNCH, + MOVE_FLASH_CANNON, + MOVE_FLING, + MOVE_GIGA_IMPACT, + MOVE_HEAVY_SLAM, + MOVE_HELPING_HAND, + MOVE_HYPER_BEAM, + MOVE_ICE_PUNCH, + MOVE_IRON_DEFENSE, + MOVE_IRON_HEAD, + MOVE_MUD_SHOT, + MOVE_POWER_GEM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_BLAST, + MOVE_ROCK_SLIDE, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SLEEP_TALK, + MOVE_STEALTH_ROCK, + MOVE_STOMPING_TANTRUM, + MOVE_STONE_EDGE, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_THUNDER_PUNCH, + MOVE_ZEN_HEADBUTT, + MOVE_UNAVAILABLE, +}; + +static const u16 sCharcadetTeachableLearnset[] = { + MOVE_CONFUSE_RAY, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FIRE_SPIN, + MOVE_FLAMETHROWER, + MOVE_FLAME_CHARGE, + MOVE_FLARE_BLITZ, + MOVE_HEAT_WAVE, + MOVE_HELPING_HAND, + MOVE_NIGHT_SHADE, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_SLEEP_TALK, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_WILL_O_WISP, + MOVE_UNAVAILABLE, +}; + +static const u16 sArmarougeTeachableLearnset[] = { + MOVE_ACID_SPRAY, + MOVE_AURA_SPHERE, + MOVE_CALM_MIND, + MOVE_CONFUSE_RAY, + MOVE_DARK_PULSE, + MOVE_DRAGON_PULSE, + MOVE_ENDURE, + MOVE_ENERGY_BALL, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FIRE_SPIN, + MOVE_FLAMETHROWER, + MOVE_FLAME_CHARGE, + MOVE_FLARE_BLITZ, + MOVE_FLASH_CANNON, + MOVE_FLING, + MOVE_FOCUS_BLAST, + MOVE_HEAT_WAVE, + MOVE_HELPING_HAND, + MOVE_IRON_DEFENSE, + MOVE_LIGHT_SCREEN, + MOVE_NIGHT_SHADE, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_PSYBEAM, + MOVE_PSYCHIC, + MOVE_PSYCHIC_TERRAIN, + MOVE_PSYSHOCK, + MOVE_REFLECT, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_SLEEP_TALK, + MOVE_SOLAR_BEAM, + MOVE_STORED_POWER, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_TAKE_DOWN, + MOVE_TAUNT, + MOVE_TERA_BLAST, + MOVE_TRICK, + MOVE_TRICK_ROOM, + MOVE_WILL_O_WISP, + MOVE_UNAVAILABLE, +}; + +static const u16 sCeruledgeTeachableLearnset[] = { + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_CLOSE_COMBAT, + MOVE_CONFUSE_RAY, + MOVE_DRAGON_CLAW, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FALSE_SWIPE, + MOVE_FIRE_BLAST, + MOVE_FIRE_SPIN, + MOVE_FLAMETHROWER, + MOVE_FLAME_CHARGE, + MOVE_FLARE_BLITZ, + MOVE_FLING, + MOVE_HEAT_WAVE, + MOVE_HELPING_HAND, + MOVE_HEX, + MOVE_IRON_DEFENSE, + MOVE_IRON_HEAD, + MOVE_LIGHT_SCREEN, + MOVE_NIGHT_SHADE, + MOVE_OVERHEAT, + MOVE_PHANTOM_FORCE, + MOVE_POISON_JAB, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_SHADOW_CLAW, + MOVE_SLEEP_TALK, + MOVE_STORED_POWER, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_SWORDS_DANCE, + MOVE_TAKE_DOWN, + MOVE_TAUNT, + MOVE_TERA_BLAST, + MOVE_WILL_O_WISP, + MOVE_X_SCISSOR, + MOVE_UNAVAILABLE, +}; + +static const u16 sTadbulbTeachableLearnset[] = { + MOVE_ACID_SPRAY, + MOVE_CHARGE_BEAM, + MOVE_CHILLING_WATER, + MOVE_CONFUSE_RAY, + MOVE_EERIE_IMPULSE, + MOVE_ELECTRIC_TERRAIN, + MOVE_ELECTRO_BALL, + MOVE_ENDURE, + MOVE_HYPER_VOICE, + MOVE_LIGHT_SCREEN, + MOVE_MUD_SHOT, + MOVE_MUD_SLAP, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_SLEEP_TALK, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_TERA_BLAST, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_THUNDER_WAVE, + MOVE_VOLT_SWITCH, + MOVE_WATER_PULSE, + MOVE_WILD_CHARGE, + MOVE_UNAVAILABLE, +}; + +static const u16 sBelliboltTeachableLearnset[] = { + MOVE_ACID_SPRAY, + MOVE_CHARGE_BEAM, + MOVE_CHILLING_WATER, + MOVE_CONFUSE_RAY, + MOVE_EERIE_IMPULSE, + MOVE_ELECTRIC_TERRAIN, + MOVE_ELECTRO_BALL, + MOVE_ENDURE, + MOVE_GIGA_IMPACT, + MOVE_HYPER_BEAM, + MOVE_HYPER_VOICE, + MOVE_LIGHT_SCREEN, + MOVE_MUD_SHOT, + MOVE_MUD_SLAP, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_SLEEP_TALK, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_TERA_BLAST, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_THUNDER_WAVE, + MOVE_VOLT_SWITCH, + MOVE_WATER_PULSE, + MOVE_WILD_CHARGE, + MOVE_UNAVAILABLE, +}; + +static const u16 sWattrelTeachableLearnset[] = { + MOVE_ACROBATICS, + MOVE_AERIAL_ACE, + MOVE_AGILITY, + MOVE_AIR_CUTTER, + MOVE_AIR_SLASH, + MOVE_BRAVE_BIRD, + MOVE_CHARGE_BEAM, + MOVE_EERIE_IMPULSE, + MOVE_ELECTRIC_TERRAIN, + MOVE_ELECTRO_BALL, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FLY, + MOVE_HURRICANE, + MOVE_PROTECT, + MOVE_REST, + MOVE_SLEEP_TALK, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_TAILWIND, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_THUNDER_WAVE, + MOVE_U_TURN, + MOVE_VOLT_SWITCH, + MOVE_WILD_CHARGE, + MOVE_UNAVAILABLE, +}; + +static const u16 sKilowattrelTeachableLearnset[] = { + MOVE_ACROBATICS, + MOVE_AERIAL_ACE, + MOVE_AGILITY, + MOVE_AIR_CUTTER, + MOVE_AIR_SLASH, + MOVE_BRAVE_BIRD, + MOVE_CHARGE_BEAM, + MOVE_EERIE_IMPULSE, + MOVE_ELECTRIC_TERRAIN, + MOVE_ELECTRO_BALL, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FLY, + MOVE_GIGA_IMPACT, + MOVE_HURRICANE, + MOVE_HYPER_BEAM, + MOVE_PROTECT, + MOVE_REST, + MOVE_SCARY_FACE, + MOVE_SLEEP_TALK, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_TAILWIND, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_THUNDER_WAVE, + MOVE_U_TURN, + MOVE_VOLT_SWITCH, + MOVE_WILD_CHARGE, + MOVE_UNAVAILABLE, +}; + +static const u16 sMaschiffTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_CHARM, + MOVE_CRUNCH, + MOVE_DARK_PULSE, + MOVE_DIG, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FAKE_TEARS, + MOVE_FIRE_FANG, + MOVE_HELPING_HAND, + MOVE_ICE_FANG, + MOVE_PLAY_ROUGH, + MOVE_PROTECT, + MOVE_PSYCHIC_FANGS, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_REVERSAL, + MOVE_SCARY_FACE, + MOVE_SLEEP_TALK, + MOVE_SNARL, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_TAKE_DOWN, + MOVE_TAUNT, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_THUNDER_FANG, + MOVE_TRAILBLAZE, + MOVE_UNAVAILABLE, +}; + +static const u16 sMabosstiffTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_CHARM, + MOVE_CRUNCH, + MOVE_DARK_PULSE, + MOVE_DIG, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FAKE_TEARS, + MOVE_FIRE_FANG, + MOVE_GIGA_IMPACT, + MOVE_HELPING_HAND, + MOVE_HYPER_BEAM, + MOVE_HYPER_VOICE, + MOVE_ICE_FANG, + MOVE_OUTRAGE, + MOVE_PLAY_ROUGH, + MOVE_PROTECT, + MOVE_PSYCHIC_FANGS, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_REVERSAL, + MOVE_SCARY_FACE, + MOVE_SLEEP_TALK, + MOVE_SNARL, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_TAKE_DOWN, + MOVE_TAUNT, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_THUNDER_FANG, + MOVE_TRAILBLAZE, + MOVE_WILD_CHARGE, + MOVE_UNAVAILABLE, +}; + +static const u16 sShroodleTeachableLearnset[] = { + MOVE_ACID_SPRAY, + MOVE_ACROBATICS, + MOVE_BATON_PASS, + MOVE_DIG, + MOVE_ENCORE, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FLING, + MOVE_FOUL_PLAY, + MOVE_GUNK_SHOT, + MOVE_HELPING_HAND, + MOVE_METRONOME, + MOVE_MUD_SHOT, + MOVE_MUD_SLAP, + MOVE_NASTY_PLOT, + MOVE_POISON_JAB, + MOVE_POUNCE, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SLEEP_TALK, + MOVE_SLUDGE_BOMB, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_SWORDS_DANCE, + MOVE_TAKE_DOWN, + MOVE_TAUNT, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_TRAILBLAZE, + MOVE_U_TURN, + MOVE_VENOSHOCK, + MOVE_UNAVAILABLE, +}; + +static const u16 sGrafaiaiTeachableLearnset[] = { + MOVE_ACID_SPRAY, + MOVE_ACROBATICS, + MOVE_BATON_PASS, + MOVE_DIG, + MOVE_ENCORE, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FLING, + MOVE_FOUL_PLAY, + MOVE_GIGA_IMPACT, + MOVE_GUNK_SHOT, + MOVE_HELPING_HAND, + MOVE_LOW_KICK, + MOVE_LOW_SWEEP, + MOVE_METRONOME, + MOVE_MUD_SHOT, + MOVE_MUD_SLAP, + MOVE_NASTY_PLOT, + MOVE_POISON_JAB, + MOVE_POISON_TAIL, + MOVE_POUNCE, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SCARY_FACE, + MOVE_SHADOW_CLAW, + MOVE_SLEEP_TALK, + MOVE_SLUDGE_BOMB, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_SWORDS_DANCE, + MOVE_TAKE_DOWN, + MOVE_TAUNT, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_TRAILBLAZE, + MOVE_U_TURN, + MOVE_VENOSHOCK, + MOVE_X_SCISSOR, + MOVE_UNAVAILABLE, +}; + +static const u16 sBramblinTeachableLearnset[] = { + MOVE_BULLET_SEED, + MOVE_CONFUSE_RAY, + MOVE_ENDURE, + MOVE_ENERGY_BALL, + MOVE_FACADE, + MOVE_GIGA_DRAIN, + MOVE_GRASSY_TERRAIN, + MOVE_GRASS_KNOT, + MOVE_HEX, + MOVE_LEAF_STORM, + MOVE_NIGHT_SHADE, + MOVE_PHANTOM_FORCE, + MOVE_POUNCE, + MOVE_PROTECT, + MOVE_REST, + MOVE_SCARY_FACE, + MOVE_SEED_BOMB, + MOVE_SHADOW_BALL, + MOVE_SLEEP_TALK, + MOVE_SOLAR_BEAM, + MOVE_SPIKES, + MOVE_SUBSTITUTE, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_TRAILBLAZE, + MOVE_UNAVAILABLE, +}; + +static const u16 sBrambleghastTeachableLearnset[] = { + MOVE_BULLET_SEED, + MOVE_CONFUSE_RAY, + MOVE_ENDURE, + MOVE_ENERGY_BALL, + MOVE_FACADE, + MOVE_GIGA_DRAIN, + MOVE_GIGA_IMPACT, + MOVE_GRASSY_TERRAIN, + MOVE_GRASS_KNOT, + MOVE_HEX, + MOVE_HYPER_BEAM, + MOVE_LEAF_STORM, + MOVE_NIGHT_SHADE, + MOVE_PHANTOM_FORCE, + MOVE_POUNCE, + MOVE_PROTECT, + MOVE_REST, + MOVE_SCARY_FACE, + MOVE_SEED_BOMB, + MOVE_SHADOW_BALL, + MOVE_SLEEP_TALK, + MOVE_SOLAR_BEAM, + MOVE_SPIKES, + MOVE_SUBSTITUTE, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_TRAILBLAZE, + MOVE_UNAVAILABLE, +}; + +static const u16 sToedscoolTeachableLearnset[] = { + MOVE_ACID_SPRAY, + MOVE_BULLET_SEED, + MOVE_CONFUSE_RAY, + MOVE_DAZZLING_GLEAM, + MOVE_EARTH_POWER, + MOVE_ENDURE, + MOVE_ENERGY_BALL, + MOVE_FLASH_CANNON, + MOVE_FOUL_PLAY, + MOVE_GIGA_DRAIN, + MOVE_GRASSY_TERRAIN, + MOVE_GRASS_KNOT, + MOVE_HEX, + MOVE_LEAF_STORM, + MOVE_LIGHT_SCREEN, + MOVE_MAGICAL_LEAF, + MOVE_MUD_SHOT, + MOVE_MUD_SLAP, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_SCARY_FACE, + MOVE_SEED_BOMB, + MOVE_SLEEP_TALK, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_SPIKES, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_TAUNT, + MOVE_TERA_BLAST, + MOVE_TOXIC_SPIKES, + MOVE_TRAILBLAZE, + MOVE_TRICK_ROOM, + MOVE_VENOSHOCK, + MOVE_UNAVAILABLE, +}; + +static const u16 sToedscruelTeachableLearnset[] = { + MOVE_ACID_SPRAY, + MOVE_BULLET_SEED, + MOVE_CONFUSE_RAY, + MOVE_DAZZLING_GLEAM, + MOVE_EARTH_POWER, + MOVE_ENDURE, + MOVE_ENERGY_BALL, + MOVE_FLASH_CANNON, + MOVE_FOUL_PLAY, + MOVE_GIGA_DRAIN, + MOVE_GIGA_IMPACT, + MOVE_GRASSY_TERRAIN, + MOVE_GRASS_KNOT, + MOVE_HEX, + MOVE_HYPER_BEAM, + MOVE_LEAF_STORM, + MOVE_LIGHT_SCREEN, + MOVE_MAGICAL_LEAF, + MOVE_MUD_SHOT, + MOVE_MUD_SLAP, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_SCARY_FACE, + MOVE_SEED_BOMB, + MOVE_SLEEP_TALK, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_SPIKES, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_TAUNT, + MOVE_TERA_BLAST, + MOVE_TOXIC_SPIKES, + MOVE_TRAILBLAZE, + MOVE_TRICK_ROOM, + MOVE_VENOSHOCK, + MOVE_UNAVAILABLE, +}; + +static const u16 sKlawfTeachableLearnset[] = { + MOVE_BODY_SLAM, + MOVE_BRICK_BREAK, + MOVE_BULLDOZE, + MOVE_DIG, + MOVE_EARTH_POWER, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FLING, + MOVE_GIGA_IMPACT, + MOVE_HELPING_HAND, + MOVE_HYPER_BEAM, + MOVE_IRON_DEFENSE, + MOVE_METAL_CLAW, + MOVE_MUD_SHOT, + MOVE_MUD_SLAP, + MOVE_POWER_GEM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_REVERSAL, + MOVE_ROCK_BLAST, + MOVE_ROCK_SLIDE, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SCARY_FACE, + MOVE_SHADOW_CLAW, + MOVE_SLEEP_TALK, + MOVE_STEALTH_ROCK, + MOVE_STOMPING_TANTRUM, + MOVE_STONE_EDGE, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_SWORDS_DANCE, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_TRAILBLAZE, + MOVE_X_SCISSOR, + MOVE_UNAVAILABLE, +}; + +static const u16 sCapsakidTeachableLearnset[] = { + MOVE_BULLET_SEED, + MOVE_CRUNCH, + MOVE_ENDURE, + MOVE_ENERGY_BALL, + MOVE_FACADE, + MOVE_GIGA_DRAIN, + MOVE_GRASSY_TERRAIN, + MOVE_GRASS_KNOT, + MOVE_HELPING_HAND, + MOVE_LEAF_STORM, + MOVE_MAGICAL_LEAF, + MOVE_PROTECT, + MOVE_REST, + MOVE_SANDSTORM, + MOVE_SEED_BOMB, + MOVE_SLEEP_TALK, + MOVE_SOLAR_BEAM, + MOVE_STOMPING_TANTRUM, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_TRAILBLAZE, + MOVE_ZEN_HEADBUTT, + MOVE_UNAVAILABLE, +}; + +static const u16 sScovillainTeachableLearnset[] = { + MOVE_BULLET_SEED, + MOVE_CRUNCH, + MOVE_ENDURE, + MOVE_ENERGY_BALL, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FIRE_FANG, + MOVE_FLAMETHROWER, + MOVE_GIGA_DRAIN, + MOVE_GIGA_IMPACT, + MOVE_GRASSY_TERRAIN, + MOVE_GRASS_KNOT, + MOVE_HELPING_HAND, + MOVE_HYPER_BEAM, + MOVE_LEAF_STORM, + MOVE_MAGICAL_LEAF, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_SANDSTORM, + MOVE_SCARY_FACE, + MOVE_SEED_BOMB, + MOVE_SLEEP_TALK, + MOVE_SOLAR_BEAM, + MOVE_STOMPING_TANTRUM, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_TRAILBLAZE, + MOVE_WILL_O_WISP, + MOVE_ZEN_HEADBUTT, + MOVE_UNAVAILABLE, +}; + +static const u16 sRellorTeachableLearnset[] = { + MOVE_BUG_BUZZ, + MOVE_DIG, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FLING, + MOVE_GUNK_SHOT, + MOVE_IRON_DEFENSE, + MOVE_LEECH_LIFE, + MOVE_MUD_SHOT, + MOVE_MUD_SLAP, + MOVE_POUNCE, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SLEEP_TALK, + MOVE_SLUDGE_BOMB, + MOVE_STRUGGLE_BUG, + MOVE_SUBSTITUTE, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_X_SCISSOR, + MOVE_UNAVAILABLE, +}; + +static const u16 sRabscaTeachableLearnset[] = { + MOVE_BUG_BUZZ, + MOVE_CALM_MIND, + MOVE_CONFUSE_RAY, + MOVE_DAZZLING_GLEAM, + MOVE_DIG, + MOVE_EARTH_POWER, + MOVE_ELECTRO_BALL, + MOVE_ENDURE, + MOVE_ENERGY_BALL, + MOVE_FACADE, + MOVE_FLING, + MOVE_GIGA_IMPACT, + MOVE_GUNK_SHOT, + MOVE_HYPER_BEAM, + MOVE_IMPRISON, + MOVE_IRON_DEFENSE, + MOVE_LEECH_LIFE, + MOVE_LIGHT_SCREEN, + MOVE_MUD_SHOT, + MOVE_MUD_SLAP, + MOVE_POUNCE, + MOVE_POWER_GEM, + MOVE_PROTECT, + MOVE_PSYBEAM, + MOVE_PSYCHIC, + MOVE_PSYCHIC_TERRAIN, + MOVE_PSYSHOCK, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_SLEEP_TALK, + MOVE_SLUDGE_BOMB, + MOVE_STORED_POWER, + MOVE_STRUGGLE_BUG, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_TRICK, + MOVE_TRICK_ROOM, + MOVE_X_SCISSOR, + MOVE_ZEN_HEADBUTT, + MOVE_UNAVAILABLE, +}; + +static const u16 sFlittleTeachableLearnset[] = { + MOVE_AGILITY, + MOVE_BATON_PASS, + MOVE_CALM_MIND, + MOVE_CONFUSE_RAY, + MOVE_DISARMING_VOICE, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FOUL_PLAY, + MOVE_HELPING_HAND, + MOVE_LIGHT_SCREEN, + MOVE_MUD_SLAP, + MOVE_POUNCE, + MOVE_PROTECT, + MOVE_PSYBEAM, + MOVE_PSYCHIC, + MOVE_PSYCHIC_TERRAIN, + MOVE_PSYSHOCK, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_SANDSTORM, + MOVE_SEED_BOMB, + MOVE_SKILL_SWAP, + MOVE_SLEEP_TALK, + MOVE_STORED_POWER, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_SWIFT, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_TRICK, + MOVE_TRICK_ROOM, + MOVE_U_TURN, + MOVE_ZEN_HEADBUTT, + MOVE_UNAVAILABLE, +}; + +static const u16 sEspathraTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_AGILITY, + MOVE_BATON_PASS, + MOVE_BODY_SLAM, + MOVE_BRAVE_BIRD, + MOVE_CALM_MIND, + MOVE_CONFUSE_RAY, + MOVE_DAZZLING_GLEAM, + MOVE_DISARMING_VOICE, + MOVE_ENDURE, + MOVE_ENERGY_BALL, + MOVE_FACADE, + MOVE_FLASH_CANNON, + MOVE_FOUL_PLAY, + MOVE_GIGA_IMPACT, + MOVE_HELPING_HAND, + MOVE_HEX, + MOVE_HYPER_BEAM, + MOVE_HYPER_VOICE, + MOVE_LIGHT_SCREEN, + MOVE_LOW_KICK, + MOVE_MUD_SLAP, + MOVE_NIGHT_SHADE, + MOVE_POUNCE, + MOVE_PROTECT, + MOVE_PSYBEAM, + MOVE_PSYCHIC, + MOVE_PSYCHIC_TERRAIN, + MOVE_PSYSHOCK, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_SANDSTORM, + MOVE_SEED_BOMB, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_SLEEP_TALK, + MOVE_STORED_POWER, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_SWIFT, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_TRICK, + MOVE_TRICK_ROOM, + MOVE_U_TURN, + MOVE_ZEN_HEADBUTT, + MOVE_UNAVAILABLE, +}; + +static const u16 sTinkatinkTeachableLearnset[] = { + MOVE_DRAINING_KISS, + MOVE_ENCORE, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FAKE_TEARS, + MOVE_FLASH_CANNON, + MOVE_FLING, + MOVE_FOUL_PLAY, + MOVE_HELPING_HAND, + MOVE_LIGHT_SCREEN, + MOVE_METAL_CLAW, + MOVE_METRONOME, + MOVE_PLAY_ROUGH, + MOVE_POUNCE, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_ROCK_SLIDE, + MOVE_ROCK_TOMB, + MOVE_SKILL_SWAP, + MOVE_SLEEP_TALK, + MOVE_STEALTH_ROCK, + MOVE_STEEL_BEAM, + MOVE_STONE_EDGE, + MOVE_SUBSTITUTE, + MOVE_SWORDS_DANCE, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sTinkatuffTeachableLearnset[] = { + MOVE_BRICK_BREAK, + MOVE_DRAINING_KISS, + MOVE_ENCORE, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FAKE_TEARS, + MOVE_FLASH_CANNON, + MOVE_FLING, + MOVE_FOUL_PLAY, + MOVE_HELPING_HAND, + MOVE_LIGHT_SCREEN, + MOVE_METAL_CLAW, + MOVE_METRONOME, + MOVE_PLAY_ROUGH, + MOVE_POUNCE, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_ROCK_SLIDE, + MOVE_ROCK_TOMB, + MOVE_SKILL_SWAP, + MOVE_SLEEP_TALK, + MOVE_STEALTH_ROCK, + MOVE_STEEL_BEAM, + MOVE_STONE_EDGE, + MOVE_SUBSTITUTE, + MOVE_SWORDS_DANCE, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sTinkatonTeachableLearnset[] = { + MOVE_BRICK_BREAK, + MOVE_BULLDOZE, + MOVE_DRAINING_KISS, + MOVE_ENCORE, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FAKE_TEARS, + MOVE_FLASH_CANNON, + MOVE_FLING, + MOVE_FOUL_PLAY, + MOVE_HEAVY_SLAM, + MOVE_HELPING_HAND, + MOVE_LIGHT_SCREEN, + MOVE_METAL_CLAW, + MOVE_METRONOME, + MOVE_PLAY_ROUGH, + MOVE_POUNCE, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_ROCK_SLIDE, + MOVE_ROCK_TOMB, + MOVE_SKILL_SWAP, + MOVE_SLEEP_TALK, + MOVE_STEALTH_ROCK, + MOVE_STEEL_BEAM, + MOVE_STONE_EDGE, + MOVE_SUBSTITUTE, + MOVE_SWORDS_DANCE, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_THUNDER_WAVE, + MOVE_UNAVAILABLE, +}; + +static const u16 sWiglettTeachableLearnset[] = { + MOVE_AGILITY, + MOVE_BLIZZARD, + MOVE_BULLDOZE, + MOVE_CHILLING_WATER, + MOVE_DIG, + MOVE_EARTH_POWER, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FOUL_PLAY, + MOVE_HELPING_HAND, + MOVE_HYDRO_PUMP, + MOVE_ICE_BEAM, + MOVE_LIQUIDATION, + MOVE_MUD_SHOT, + MOVE_MUD_SLAP, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SANDSTORM, + MOVE_SLEEP_TALK, + MOVE_STOMPING_TANTRUM, + MOVE_SUBSTITUTE, + MOVE_SURF, + MOVE_SWIFT, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_WATER_PULSE, + MOVE_UNAVAILABLE, +}; + +static const u16 sWugtrioTeachableLearnset[] = { + MOVE_AGILITY, + MOVE_BLIZZARD, + MOVE_BULLDOZE, + MOVE_CHILLING_WATER, + MOVE_DIG, + MOVE_EARTH_POWER, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FOUL_PLAY, + MOVE_GIGA_IMPACT, + MOVE_HELPING_HAND, + MOVE_HYDRO_PUMP, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_LIQUIDATION, + MOVE_MUD_SHOT, + MOVE_MUD_SLAP, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SANDSTORM, + MOVE_SLEEP_TALK, + MOVE_STOMPING_TANTRUM, + MOVE_SUBSTITUTE, + MOVE_SURF, + MOVE_SWIFT, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_WATER_PULSE, + MOVE_UNAVAILABLE, +}; + +static const u16 sBombirdierTeachableLearnset[] = { + MOVE_ACROBATICS, + MOVE_AERIAL_ACE, + MOVE_AIR_CUTTER, + MOVE_AIR_SLASH, + MOVE_BRAVE_BIRD, + MOVE_DARK_PULSE, + MOVE_DRILL_RUN, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FLY, + MOVE_FOUL_PLAY, + MOVE_GIGA_IMPACT, + MOVE_HEAT_WAVE, + MOVE_HURRICANE, + MOVE_HYPER_BEAM, + MOVE_HYPER_VOICE, + MOVE_ICY_WIND, + MOVE_NASTY_PLOT, + MOVE_POWER_GEM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_ROCK_BLAST, + MOVE_ROCK_SLIDE, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SCARY_FACE, + MOVE_SLEEP_TALK, + MOVE_SNARL, + MOVE_STEALTH_ROCK, + MOVE_STONE_EDGE, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_TAILWIND, + MOVE_TAKE_DOWN, + MOVE_TAUNT, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_U_TURN, + MOVE_UNAVAILABLE, +}; + +static const u16 sFinizenTeachableLearnset[] = { + MOVE_ACROBATICS, + MOVE_AGILITY, + MOVE_BLIZZARD, + MOVE_BODY_SLAM, + MOVE_CHARM, + MOVE_CHILLING_WATER, + MOVE_DISARMING_VOICE, + MOVE_DRAINING_KISS, + MOVE_ENCORE, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FLING, + MOVE_HELPING_HAND, + MOVE_HYDRO_PUMP, + MOVE_ICE_BEAM, + MOVE_ICY_WIND, + MOVE_LIQUIDATION, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SLEEP_TALK, + MOVE_SUBSTITUTE, + MOVE_SURF, + MOVE_SWIFT, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_ZEN_HEADBUTT, + MOVE_UNAVAILABLE, +}; + +static const u16 sPalafinTeachableLearnset[] = { + MOVE_ACROBATICS, + MOVE_AGILITY, + MOVE_AURA_SPHERE, + MOVE_BLIZZARD, + MOVE_BODY_SLAM, + MOVE_BULK_UP, + MOVE_CHARM, + MOVE_CHILLING_WATER, + MOVE_CLOSE_COMBAT, + MOVE_DISARMING_VOICE, + MOVE_DRAINING_KISS, + MOVE_DRAIN_PUNCH, + MOVE_ENCORE, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FLING, + MOVE_FOCUS_BLAST, + MOVE_GIGA_IMPACT, + MOVE_GRASS_KNOT, + MOVE_HELPING_HAND, + MOVE_HYDRO_PUMP, + MOVE_HYPER_BEAM, + MOVE_HYPER_VOICE, + MOVE_ICE_BEAM, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_IRON_HEAD, + MOVE_LIQUIDATION, + MOVE_OUTRAGE, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_REVERSAL, + MOVE_SLEEP_TALK, + MOVE_SUBSTITUTE, + MOVE_SURF, + MOVE_SWIFT, + MOVE_TAKE_DOWN, + MOVE_TAUNT, + MOVE_TERA_BLAST, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_ZEN_HEADBUTT, + MOVE_UNAVAILABLE, +}; + +static const u16 sVaroomTeachableLearnset[] = { + MOVE_ACID_SPRAY, + MOVE_BODY_SLAM, + MOVE_BULLDOZE, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FLASH_CANNON, + MOVE_GUNK_SHOT, + MOVE_IRON_DEFENSE, + MOVE_IRON_HEAD, + MOVE_POISON_JAB, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_SANDSTORM, + MOVE_SCARY_FACE, + MOVE_SLEEP_TALK, + MOVE_SLUDGE_BOMB, + MOVE_STEEL_BEAM, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_TAKE_DOWN, + MOVE_TAUNT, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_TOXIC_SPIKES, + MOVE_VENOSHOCK, + MOVE_ZEN_HEADBUTT, + MOVE_UNAVAILABLE, +}; + +static const u16 sRevavroomTeachableLearnset[] = { + MOVE_ACID_SPRAY, + MOVE_BODY_SLAM, + MOVE_BULLDOZE, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FLASH_CANNON, + MOVE_GIGA_IMPACT, + MOVE_GUNK_SHOT, + MOVE_HEAVY_SLAM, + MOVE_HYPER_BEAM, + MOVE_IRON_DEFENSE, + MOVE_IRON_HEAD, + MOVE_OVERHEAT, + MOVE_POISON_JAB, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SANDSTORM, + MOVE_SCARY_FACE, + MOVE_SLEEP_TALK, + MOVE_SLUDGE_BOMB, + MOVE_STEEL_BEAM, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_TAKE_DOWN, + MOVE_TAUNT, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_TOXIC_SPIKES, + MOVE_VENOSHOCK, + MOVE_ZEN_HEADBUTT, + MOVE_UNAVAILABLE, +}; + +static const u16 sCyclizarTeachableLearnset[] = { + MOVE_ACROBATICS, + MOVE_AERIAL_ACE, + MOVE_AGILITY, + MOVE_BODY_SLAM, + MOVE_CRUNCH, + MOVE_DRACO_METEOR, + MOVE_DRAGON_CLAW, + MOVE_DRAGON_PULSE, + MOVE_DRAGON_TAIL, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FIRE_FANG, + MOVE_GIGA_IMPACT, + MOVE_HYPER_BEAM, + MOVE_HYPER_VOICE, + MOVE_ICE_SPINNER, + MOVE_IRON_HEAD, + MOVE_MUD_SHOT, + MOVE_MUD_SLAP, + MOVE_OUTRAGE, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SLEEP_TALK, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_TAKE_DOWN, + MOVE_TAUNT, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_THUNDERBOLT, + MOVE_THUNDER_FANG, + MOVE_TRAILBLAZE, + MOVE_U_TURN, + MOVE_WILD_CHARGE, + MOVE_UNAVAILABLE, +}; + +static const u16 sOrthwormTeachableLearnset[] = { + MOVE_BODY_PRESS, + MOVE_BODY_SLAM, + MOVE_BULLDOZE, + MOVE_DIG, + MOVE_EARTHQUAKE, + MOVE_EARTH_POWER, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FLASH_CANNON, + MOVE_GIGA_IMPACT, + MOVE_HEAVY_SLAM, + MOVE_HELPING_HAND, + MOVE_HYPER_BEAM, + MOVE_IRON_DEFENSE, + MOVE_IRON_HEAD, + MOVE_MUD_SHOT, + MOVE_MUD_SLAP, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROCK_BLAST, + MOVE_ROCK_SLIDE, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SLEEP_TALK, + MOVE_SPIKES, + MOVE_STEALTH_ROCK, + MOVE_STEEL_BEAM, + MOVE_STOMPING_TANTRUM, + MOVE_SUBSTITUTE, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_UNAVAILABLE, +}; + +static const u16 sGlimmetTeachableLearnset[] = { + MOVE_ACID_SPRAY, + MOVE_CONFUSE_RAY, + MOVE_DAZZLING_GLEAM, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_GUNK_SHOT, + MOVE_IRON_DEFENSE, + MOVE_LIGHT_SCREEN, + MOVE_MUD_SHOT, + MOVE_POWER_GEM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_ROCK_BLAST, + MOVE_ROCK_SLIDE, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SLEEP_TALK, + MOVE_SLUDGE_BOMB, + MOVE_SPIKES, + MOVE_STEALTH_ROCK, + MOVE_STONE_EDGE, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_TERA_BLAST, + MOVE_TOXIC_SPIKES, + MOVE_VENOSHOCK, + MOVE_UNAVAILABLE, +}; + +static const u16 sGlimmoraTeachableLearnset[] = { + MOVE_ACID_SPRAY, + MOVE_CONFUSE_RAY, + MOVE_DAZZLING_GLEAM, + MOVE_EARTH_POWER, + MOVE_ENDURE, + MOVE_ENERGY_BALL, + MOVE_FACADE, + MOVE_FLASH_CANNON, + MOVE_GIGA_IMPACT, + MOVE_GUNK_SHOT, + MOVE_HYPER_BEAM, + MOVE_IRON_DEFENSE, + MOVE_LIGHT_SCREEN, + MOVE_MUD_SHOT, + MOVE_POWER_GEM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_ROCK_BLAST, + MOVE_ROCK_SLIDE, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SLEEP_TALK, + MOVE_SLUDGE_BOMB, + MOVE_SOLAR_BEAM, + MOVE_SPIKES, + MOVE_STEALTH_ROCK, + MOVE_STONE_EDGE, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_TERA_BLAST, + MOVE_TOXIC_SPIKES, + MOVE_VENOSHOCK, + MOVE_UNAVAILABLE, +}; + +static const u16 sGreavardTeachableLearnset[] = { + MOVE_BULLDOZE, + MOVE_CHARM, + MOVE_CONFUSE_RAY, + MOVE_CRUNCH, + MOVE_DIG, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FIRE_FANG, + MOVE_HELPING_HAND, + MOVE_HEX, + MOVE_ICE_FANG, + MOVE_MUD_SHOT, + MOVE_MUD_SLAP, + MOVE_NIGHT_SHADE, + MOVE_PHANTOM_FORCE, + MOVE_PLAY_ROUGH, + MOVE_PROTECT, + MOVE_PSYCHIC_FANGS, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SANDSTORM, + MOVE_SCARY_FACE, + MOVE_SHADOW_BALL, + MOVE_SLEEP_TALK, + MOVE_SNARL, + MOVE_STOMPING_TANTRUM, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_THUNDER_FANG, + MOVE_TRICK, + MOVE_UNAVAILABLE, +}; + +static const u16 sHoundstoneTeachableLearnset[] = { + MOVE_BODY_PRESS, + MOVE_BULLDOZE, + MOVE_CHARM, + MOVE_CONFUSE_RAY, + MOVE_CRUNCH, + MOVE_DIG, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FIRE_FANG, + MOVE_GIGA_IMPACT, + MOVE_HELPING_HAND, + MOVE_HEX, + MOVE_HYPER_BEAM, + MOVE_ICE_FANG, + MOVE_MUD_SHOT, + MOVE_MUD_SLAP, + MOVE_NIGHT_SHADE, + MOVE_PHANTOM_FORCE, + MOVE_PLAY_ROUGH, + MOVE_PROTECT, + MOVE_PSYCHIC_FANGS, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SANDSTORM, + MOVE_SCARY_FACE, + MOVE_SHADOW_BALL, + MOVE_SLEEP_TALK, + MOVE_SNARL, + MOVE_STOMPING_TANTRUM, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_THUNDER_FANG, + MOVE_TRICK, + MOVE_WILL_O_WISP, + MOVE_UNAVAILABLE, +}; + +static const u16 sFlamigoTeachableLearnset[] = { + MOVE_ACROBATICS, + MOVE_AERIAL_ACE, + MOVE_AGILITY, + MOVE_AIR_CUTTER, + MOVE_AIR_SLASH, + MOVE_BRAVE_BIRD, + MOVE_BULK_UP, + MOVE_CHILLING_WATER, + MOVE_CLOSE_COMBAT, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FLING, + MOVE_FLY, + MOVE_GIGA_IMPACT, + MOVE_HURRICANE, + MOVE_HYPER_BEAM, + MOVE_LIQUIDATION, + MOVE_LOW_KICK, + MOVE_LOW_SWEEP, + MOVE_POUNCE, + MOVE_PROTECT, + MOVE_REST, + MOVE_REVERSAL, + MOVE_SLEEP_TALK, + MOVE_SUBSTITUTE, + MOVE_SWORDS_DANCE, + MOVE_TAILWIND, + MOVE_TAKE_DOWN, + MOVE_TAUNT, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_U_TURN, + MOVE_WATER_PULSE, + MOVE_UNAVAILABLE, +}; + +static const u16 sCetoddleTeachableLearnset[] = { + MOVE_AMNESIA, + MOVE_AVALANCHE, + MOVE_BLIZZARD, + MOVE_BODY_PRESS, + MOVE_BODY_SLAM, + MOVE_BULLDOZE, + MOVE_CHARM, + MOVE_CHILLING_WATER, + MOVE_EARTHQUAKE, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_HEAVY_SLAM, + MOVE_HELPING_HAND, + MOVE_HYPER_BEAM, + MOVE_HYPER_VOICE, + MOVE_ICE_BEAM, + MOVE_ICE_FANG, + MOVE_ICE_SPINNER, + MOVE_ICY_WIND, + MOVE_LIQUIDATION, + MOVE_PLAY_ROUGH, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SLEEP_TALK, + MOVE_SNOWSCAPE, + MOVE_STOMPING_TANTRUM, + MOVE_SUBSTITUTE, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_WATER_PULSE, + MOVE_UNAVAILABLE, +}; + +static const u16 sCetitanTeachableLearnset[] = { + MOVE_AMNESIA, + MOVE_AVALANCHE, + MOVE_BLIZZARD, + MOVE_BODY_PRESS, + MOVE_BODY_SLAM, + MOVE_BULLDOZE, + MOVE_CHARM, + MOVE_CHILLING_WATER, + MOVE_EARTHQUAKE, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_GIGA_IMPACT, + MOVE_HEAVY_SLAM, + MOVE_HELPING_HAND, + MOVE_HYPER_BEAM, + MOVE_HYPER_VOICE, + MOVE_ICE_BEAM, + MOVE_ICE_FANG, + MOVE_ICE_PUNCH, + MOVE_ICE_SPINNER, + MOVE_ICY_WIND, + MOVE_LIQUIDATION, + MOVE_PLAY_ROUGH, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SLEEP_TALK, + MOVE_SNOWSCAPE, + MOVE_STOMPING_TANTRUM, + MOVE_SUBSTITUTE, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_WATER_PULSE, + MOVE_UNAVAILABLE, +}; + +static const u16 sVeluzaTeachableLearnset[] = { + MOVE_AGILITY, + MOVE_BLIZZARD, + MOVE_BODY_SLAM, + MOVE_CHILLING_WATER, + MOVE_CRUNCH, + MOVE_DRILL_RUN, + MOVE_ENDURE, + MOVE_GIGA_IMPACT, + MOVE_HYDRO_PUMP, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_ICE_FANG, + MOVE_ICY_WIND, + MOVE_LIQUIDATION, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_PSYCHIC_FANGS, + MOVE_PSYCHIC_TERRAIN, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SLEEP_TALK, + MOVE_SNOWSCAPE, + MOVE_STORED_POWER, + MOVE_SUBSTITUTE, + MOVE_SURF, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_ZEN_HEADBUTT, + MOVE_UNAVAILABLE, +}; + +static const u16 sDondozoTeachableLearnset[] = { + MOVE_AVALANCHE, + MOVE_BODY_PRESS, + MOVE_BODY_SLAM, + MOVE_BULLDOZE, + MOVE_CHILLING_WATER, + MOVE_CRUNCH, + MOVE_EARTHQUAKE, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_GIGA_IMPACT, + MOVE_HEAVY_SLAM, + MOVE_HYDRO_PUMP, + MOVE_HYPER_BEAM, + MOVE_ICE_FANG, + MOVE_LIQUIDATION, + MOVE_OUTRAGE, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_SLIDE, + MOVE_SCARY_FACE, + MOVE_SLEEP_TALK, + MOVE_STOMPING_TANTRUM, + MOVE_SUBSTITUTE, + MOVE_SURF, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_ZEN_HEADBUTT, + MOVE_UNAVAILABLE, +}; + +static const u16 sTatsugiriTeachableLearnset[] = { + MOVE_BATON_PASS, + MOVE_CHILLING_WATER, + MOVE_DRACO_METEOR, + MOVE_DRAGON_DANCE, + MOVE_DRAGON_PULSE, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_GIGA_IMPACT, + MOVE_HELPING_HAND, + MOVE_HYDRO_PUMP, + MOVE_HYPER_BEAM, + MOVE_ICY_WIND, + MOVE_NASTY_PLOT, + MOVE_OUTRAGE, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SLEEP_TALK, + MOVE_SUBSTITUTE, + MOVE_SURF, + MOVE_TAKE_DOWN, + MOVE_TAUNT, + MOVE_TERA_BLAST, + MOVE_WATER_PULSE, + MOVE_UNAVAILABLE, +}; + +static const u16 sAnnihilapeTeachableLearnset[] = { + MOVE_ACROBATICS, + MOVE_BODY_SLAM, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_BULLDOZE, + MOVE_CLOSE_COMBAT, + MOVE_DIG, + MOVE_DRAIN_PUNCH, + MOVE_EARTHQUAKE, + MOVE_ENCORE, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FIRE_PUNCH, + MOVE_FLING, + MOVE_FOCUS_BLAST, + MOVE_GIGA_IMPACT, + MOVE_GUNK_SHOT, + MOVE_HELPING_HAND, + MOVE_HYPER_BEAM, + MOVE_ICE_PUNCH, + MOVE_LOW_KICK, + MOVE_LOW_SWEEP, + MOVE_METRONOME, + MOVE_NIGHT_SHADE, + MOVE_OUTRAGE, + MOVE_OVERHEAT, + MOVE_PHANTOM_FORCE, + MOVE_POISON_JAB, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_REVERSAL, + MOVE_ROCK_SLIDE, + MOVE_ROCK_TOMB, + MOVE_SCARY_FACE, + MOVE_SEED_BOMB, + MOVE_SHADOW_BALL, + MOVE_SHADOW_CLAW, + MOVE_SLEEP_TALK, + MOVE_STEALTH_ROCK, + MOVE_STOMPING_TANTRUM, + MOVE_STONE_EDGE, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_SWIFT, + MOVE_TAKE_DOWN, + MOVE_TAUNT, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_THUNDER_PUNCH, + MOVE_U_TURN, + MOVE_UNAVAILABLE, +}; + +static const u16 sClodsireTeachableLearnset[] = { + MOVE_ACID_SPRAY, + MOVE_AMNESIA, + MOVE_BODY_PRESS, + MOVE_BODY_SLAM, + MOVE_BULLDOZE, + MOVE_CHILLING_WATER, + MOVE_DIG, + MOVE_EARTHQUAKE, + MOVE_EARTH_POWER, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_GIGA_IMPACT, + MOVE_GUNK_SHOT, + MOVE_HEAVY_SLAM, + MOVE_HELPING_HAND, + MOVE_HYDRO_PUMP, + MOVE_HYPER_BEAM, + MOVE_IRON_HEAD, + MOVE_LIQUIDATION, + MOVE_LOW_KICK, + MOVE_MUD_SHOT, + MOVE_MUD_SLAP, + MOVE_POISON_JAB, + MOVE_POISON_TAIL, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_SLIDE, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SLEEP_TALK, + MOVE_SLUDGE_BOMB, + MOVE_SPIKES, + MOVE_STEALTH_ROCK, + MOVE_STOMPING_TANTRUM, + MOVE_STONE_EDGE, + MOVE_SUBSTITUTE, + MOVE_SURF, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_TOXIC_SPIKES, + MOVE_TRAILBLAZE, + MOVE_VENOSHOCK, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_ZEN_HEADBUTT, + MOVE_UNAVAILABLE, +}; + +static const u16 sFarigirafTeachableLearnset[] = { + MOVE_AGILITY, + MOVE_AMNESIA, + MOVE_BATON_PASS, + MOVE_BODY_SLAM, + MOVE_BULLDOZE, + MOVE_CALM_MIND, + MOVE_CHARGE_BEAM, + MOVE_CONFUSE_RAY, + MOVE_CRUNCH, + MOVE_DAZZLING_GLEAM, + MOVE_EARTHQUAKE, + MOVE_ENDURE, + MOVE_ENERGY_BALL, + MOVE_FACADE, + MOVE_FOUL_PLAY, + MOVE_GIGA_IMPACT, + MOVE_GRASS_KNOT, + MOVE_HELPING_HAND, + MOVE_HYPER_BEAM, + MOVE_HYPER_VOICE, + MOVE_IMPRISON, + MOVE_IRON_HEAD, + MOVE_LIGHT_SCREEN, + MOVE_LOW_KICK, + MOVE_NASTY_PLOT, + MOVE_NIGHT_SHADE, + MOVE_PROTECT, + MOVE_PSYBEAM, + MOVE_PSYCHIC, + MOVE_PSYCHIC_FANGS, + MOVE_PSYCHIC_TERRAIN, + MOVE_PSYSHOCK, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_SKILL_SWAP, + MOVE_SLEEP_TALK, + MOVE_STOMPING_TANTRUM, + MOVE_STORED_POWER, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_SWIFT, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_THUNDER_WAVE, + MOVE_TRAILBLAZE, + MOVE_TRICK, + MOVE_TRICK_ROOM, + MOVE_ZEN_HEADBUTT, + MOVE_UNAVAILABLE, +}; + +static const u16 sDudunsparceTeachableLearnset[] = { + MOVE_AGILITY, + MOVE_AIR_SLASH, + MOVE_AMNESIA, + MOVE_BATON_PASS, + MOVE_BLIZZARD, + MOVE_BODY_PRESS, + MOVE_BODY_SLAM, + MOVE_BULLDOZE, + MOVE_CALM_MIND, + MOVE_CHILLING_WATER, + MOVE_DIG, + MOVE_DRAGON_TAIL, + MOVE_DRILL_RUN, + MOVE_EARTHQUAKE, + MOVE_EARTH_POWER, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FLAMETHROWER, + MOVE_GIGA_IMPACT, + MOVE_HEAVY_SLAM, + MOVE_HELPING_HAND, + MOVE_HEX, + MOVE_HURRICANE, + MOVE_HYPER_BEAM, + MOVE_HYPER_VOICE, + MOVE_ICE_BEAM, + MOVE_ICE_SPINNER, + MOVE_MUD_SHOT, + MOVE_MUD_SLAP, + MOVE_OUTRAGE, + MOVE_POISON_JAB, + MOVE_POISON_TAIL, + MOVE_POUNCE, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_SLIDE, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SCARY_FACE, + MOVE_SHADOW_BALL, + MOVE_SLEEP_TALK, + MOVE_SMART_STRIKE, + MOVE_SOLAR_BEAM, + MOVE_STEALTH_ROCK, + MOVE_STOMPING_TANTRUM, + MOVE_STONE_EDGE, + MOVE_STORED_POWER, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_TAILWIND, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_WILD_CHARGE, + MOVE_ZEN_HEADBUTT, + MOVE_UNAVAILABLE, +}; + +static const u16 sKingambitTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_AIR_SLASH, + MOVE_BRICK_BREAK, + MOVE_DARK_PULSE, + MOVE_DIG, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FALSE_SWIPE, + MOVE_FLASH_CANNON, + MOVE_FLING, + MOVE_FOCUS_BLAST, + MOVE_FOUL_PLAY, + MOVE_GIGA_IMPACT, + MOVE_GRASS_KNOT, + MOVE_HYPER_BEAM, + MOVE_IRON_DEFENSE, + MOVE_IRON_HEAD, + MOVE_LOW_KICK, + MOVE_LOW_SWEEP, + MOVE_METAL_CLAW, + MOVE_POISON_JAB, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_REVERSAL, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SCARY_FACE, + MOVE_SHADOW_CLAW, + MOVE_SLEEP_TALK, + MOVE_SNARL, + MOVE_STEALTH_ROCK, + MOVE_STEEL_BEAM, + MOVE_STONE_EDGE, + MOVE_SUBSTITUTE, + MOVE_SWORDS_DANCE, + MOVE_TAKE_DOWN, + MOVE_TAUNT, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_THUNDER_WAVE, + MOVE_X_SCISSOR, + MOVE_ZEN_HEADBUTT, + MOVE_UNAVAILABLE, +}; + +static const u16 sGreatTuskTeachableLearnset[] = { + MOVE_BODY_PRESS, + MOVE_BODY_SLAM, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_BULLDOZE, + MOVE_CLOSE_COMBAT, + MOVE_DIG, + MOVE_EARTHQUAKE, + MOVE_EARTH_POWER, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FIRE_FANG, + MOVE_FLASH_CANNON, + MOVE_GIGA_IMPACT, + MOVE_HEAVY_SLAM, + MOVE_HYPER_BEAM, + MOVE_ICE_FANG, + MOVE_ICE_SPINNER, + MOVE_IRON_HEAD, + MOVE_MUD_SHOT, + MOVE_MUD_SLAP, + MOVE_PLAY_ROUGH, + MOVE_PROTECT, + MOVE_PSYSHOCK, + MOVE_REST, + MOVE_REVERSAL, + MOVE_ROCK_SLIDE, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SCARY_FACE, + MOVE_SLEEP_TALK, + MOVE_SMART_STRIKE, + MOVE_STEALTH_ROCK, + MOVE_STOMPING_TANTRUM, + MOVE_STONE_EDGE, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_TAKE_DOWN, + MOVE_TAUNT, + MOVE_TERA_BLAST, + MOVE_THUNDER_FANG, + MOVE_ZEN_HEADBUTT, + MOVE_UNAVAILABLE, +}; + +static const u16 sScreamTailTeachableLearnset[] = { + MOVE_AMNESIA, + MOVE_BATON_PASS, + MOVE_BLIZZARD, + MOVE_BODY_SLAM, + MOVE_BULK_UP, + MOVE_CALM_MIND, + MOVE_CRUNCH, + MOVE_DAZZLING_GLEAM, + MOVE_DIG, + MOVE_DRAIN_PUNCH, + MOVE_ENCORE, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FAKE_TEARS, + MOVE_FIRE_BLAST, + MOVE_FIRE_FANG, + MOVE_FIRE_PUNCH, + MOVE_FLAMETHROWER, + MOVE_FLING, + MOVE_FOCUS_BLAST, + MOVE_GIGA_IMPACT, + MOVE_GRASS_KNOT, + MOVE_HELPING_HAND, + MOVE_HYPER_BEAM, + MOVE_HYPER_VOICE, + MOVE_ICE_BEAM, + MOVE_ICE_FANG, + MOVE_ICE_PUNCH, + MOVE_IMPRISON, + MOVE_LIGHT_SCREEN, + MOVE_METRONOME, + MOVE_MISTY_TERRAIN, + MOVE_PLAY_ROUGH, + MOVE_PROTECT, + MOVE_PSYBEAM, + MOVE_PSYCHIC, + MOVE_PSYCHIC_FANGS, + MOVE_PSYCHIC_TERRAIN, + MOVE_PSYSHOCK, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SCARY_FACE, + MOVE_SLEEP_TALK, + MOVE_SNOWSCAPE, + MOVE_STEALTH_ROCK, + MOVE_STOMPING_TANTRUM, + MOVE_STORED_POWER, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_THUNDER_FANG, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_TRICK, + MOVE_TRICK_ROOM, + MOVE_WATER_PULSE, + MOVE_ZEN_HEADBUTT, + MOVE_UNAVAILABLE, +}; + +static const u16 sBruteBonnetTeachableLearnset[] = { + MOVE_BODY_PRESS, + MOVE_BODY_SLAM, + MOVE_BULLET_SEED, + MOVE_CLOSE_COMBAT, + MOVE_CONFUSE_RAY, + MOVE_CRUNCH, + MOVE_DARK_PULSE, + MOVE_EARTH_POWER, + MOVE_ENDURE, + MOVE_ENERGY_BALL, + MOVE_FACADE, + MOVE_GIGA_DRAIN, + MOVE_GIGA_IMPACT, + MOVE_GRASSY_TERRAIN, + MOVE_GRASS_KNOT, + MOVE_HEX, + MOVE_HYPER_BEAM, + MOVE_LEAF_STORM, + MOVE_MAGICAL_LEAF, + MOVE_OUTRAGE, + MOVE_POLLEN_PUFF, + MOVE_PROTECT, + MOVE_REST, + MOVE_SCARY_FACE, + MOVE_SEED_BOMB, + MOVE_SLEEP_TALK, + MOVE_SOLAR_BEAM, + MOVE_STOMPING_TANTRUM, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_TAUNT, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_TRAILBLAZE, + MOVE_VENOSHOCK, + MOVE_ZEN_HEADBUTT, + MOVE_UNAVAILABLE, +}; + +static const u16 sFlutterManeTeachableLearnset[] = { + MOVE_CALM_MIND, + MOVE_CHARGE_BEAM, + MOVE_CHARM, + MOVE_CONFUSE_RAY, + MOVE_DARK_PULSE, + MOVE_DAZZLING_GLEAM, + MOVE_DISARMING_VOICE, + MOVE_DRAINING_KISS, + MOVE_ENDURE, + MOVE_ENERGY_BALL, + MOVE_FAKE_TEARS, + MOVE_GIGA_IMPACT, + MOVE_HELPING_HAND, + MOVE_HEX, + MOVE_HYPER_BEAM, + MOVE_HYPER_VOICE, + MOVE_ICY_WIND, + MOVE_IMPRISON, + MOVE_MAGICAL_LEAF, + MOVE_MISTY_TERRAIN, + MOVE_NIGHT_SHADE, + MOVE_PHANTOM_FORCE, + MOVE_POWER_GEM, + MOVE_PROTECT, + MOVE_PSYBEAM, + MOVE_PSYSHOCK, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_SLEEP_TALK, + MOVE_STORED_POWER, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_SWIFT, + MOVE_TAUNT, + MOVE_TERA_BLAST, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_THUNDER_WAVE, + MOVE_TRICK_ROOM, + MOVE_UNAVAILABLE, +}; + +static const u16 sSlitherWingTeachableLearnset[] = { + MOVE_ACROBATICS, + MOVE_AERIAL_ACE, + MOVE_BODY_PRESS, + MOVE_BODY_SLAM, + MOVE_BRICK_BREAK, + MOVE_BUG_BUZZ, + MOVE_BULK_UP, + MOVE_CLOSE_COMBAT, + MOVE_EARTHQUAKE, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FLAME_CHARGE, + MOVE_FLARE_BLITZ, + MOVE_GIGA_DRAIN, + MOVE_GIGA_IMPACT, + MOVE_HEAT_WAVE, + MOVE_HEAVY_SLAM, + MOVE_HURRICANE, + MOVE_HYPER_BEAM, + MOVE_LEECH_LIFE, + MOVE_LOW_KICK, + MOVE_LOW_SWEEP, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_REVERSAL, + MOVE_SANDSTORM, + MOVE_SLEEP_TALK, + MOVE_STOMPING_TANTRUM, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_TRAILBLAZE, + MOVE_U_TURN, + MOVE_WILD_CHARGE, + MOVE_WILL_O_WISP, + MOVE_ZEN_HEADBUTT, + MOVE_UNAVAILABLE, +}; + +static const u16 sSandyShocksTeachableLearnset[] = { + MOVE_BODY_PRESS, + MOVE_BODY_SLAM, + MOVE_BULLDOZE, + MOVE_CHARGE_BEAM, + MOVE_EARTHQUAKE, + MOVE_EARTH_POWER, + MOVE_EERIE_IMPULSE, + MOVE_ELECTRIC_TERRAIN, + MOVE_ELECTRO_BALL, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FLASH_CANNON, + MOVE_GIGA_IMPACT, + MOVE_HEAVY_SLAM, + MOVE_HYPER_BEAM, + MOVE_IRON_DEFENSE, + MOVE_LIGHT_SCREEN, + MOVE_MUD_SHOT, + MOVE_POWER_GEM, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_SANDSTORM, + MOVE_SLEEP_TALK, + MOVE_SPIKES, + MOVE_STEALTH_ROCK, + MOVE_STOMPING_TANTRUM, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_SWIFT, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_THUNDER_WAVE, + MOVE_VOLT_SWITCH, + MOVE_WILD_CHARGE, + MOVE_UNAVAILABLE, +}; + +static const u16 sIronTreadsTeachableLearnset[] = { + MOVE_BODY_PRESS, + MOVE_BODY_SLAM, + MOVE_BULLDOZE, + MOVE_EARTHQUAKE, + MOVE_EARTH_POWER, + MOVE_ELECTRIC_TERRAIN, + MOVE_ELECTRO_BALL, + MOVE_FACADE, + MOVE_FLASH_CANNON, + MOVE_GIGA_IMPACT, + MOVE_HEAVY_SLAM, + MOVE_HYPER_BEAM, + MOVE_ICE_FANG, + MOVE_ICE_SPINNER, + MOVE_IRON_DEFENSE, + MOVE_IRON_HEAD, + MOVE_MUD_SHOT, + MOVE_MUD_SLAP, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROCK_SLIDE, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SCARY_FACE, + MOVE_SMART_STRIKE, + MOVE_STEALTH_ROCK, + MOVE_STEEL_BEAM, + MOVE_STOMPING_TANTRUM, + MOVE_STONE_EDGE, + MOVE_SUBSTITUTE, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_THUNDER, + MOVE_THUNDER_FANG, + MOVE_VOLT_SWITCH, + MOVE_WILD_CHARGE, + MOVE_ZEN_HEADBUTT, + MOVE_UNAVAILABLE, +}; + +static const u16 sIronBundleTeachableLearnset[] = { + MOVE_ACROBATICS, + MOVE_AGILITY, + MOVE_AIR_CUTTER, + MOVE_AVALANCHE, + MOVE_BLIZZARD, + MOVE_BODY_SLAM, + MOVE_CHILLING_WATER, + MOVE_ELECTRIC_TERRAIN, + MOVE_ENCORE, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FLING, + MOVE_GIGA_IMPACT, + MOVE_HELPING_HAND, + MOVE_HYDRO_PUMP, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_ICE_PUNCH, + MOVE_ICE_SPINNER, + MOVE_ICY_WIND, + MOVE_PLAY_ROUGH, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SLEEP_TALK, + MOVE_SNOWSCAPE, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_TAKE_DOWN, + MOVE_TAUNT, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_U_TURN, + MOVE_WATER_PULSE, + MOVE_UNAVAILABLE, +}; + +static const u16 sIronHandsTeachableLearnset[] = { + MOVE_BODY_PRESS, + MOVE_BODY_SLAM, + MOVE_BRICK_BREAK, + MOVE_BULLDOZE, + MOVE_CLOSE_COMBAT, + MOVE_DRAIN_PUNCH, + MOVE_EARTHQUAKE, + MOVE_ELECTRIC_TERRAIN, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FIRE_PUNCH, + MOVE_FLING, + MOVE_FOCUS_BLAST, + MOVE_GIGA_IMPACT, + MOVE_HEAVY_SLAM, + MOVE_HYPER_BEAM, + MOVE_ICE_PUNCH, + MOVE_IRON_DEFENSE, + MOVE_IRON_HEAD, + MOVE_LOW_KICK, + MOVE_LOW_SWEEP, + MOVE_METRONOME, + MOVE_PLAY_ROUGH, + MOVE_PROTECT, + MOVE_REST, + MOVE_REVERSAL, + MOVE_ROCK_SLIDE, + MOVE_ROCK_TOMB, + MOVE_SCARY_FACE, + MOVE_SLEEP_TALK, + MOVE_STOMPING_TANTRUM, + MOVE_SUBSTITUTE, + MOVE_SWORDS_DANCE, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_THUNDER_PUNCH, + MOVE_VOLT_SWITCH, + MOVE_WILD_CHARGE, + MOVE_UNAVAILABLE, +}; + +static const u16 sIronJugulisTeachableLearnset[] = { + MOVE_ACROBATICS, + MOVE_AIR_CUTTER, + MOVE_AIR_SLASH, + MOVE_BODY_SLAM, + MOVE_CHARGE_BEAM, + MOVE_CRUNCH, + MOVE_DARK_PULSE, + MOVE_DRAGON_PULSE, + MOVE_DRAGON_TAIL, + MOVE_EARTH_POWER, + MOVE_ELECTRIC_TERRAIN, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FIRE_FANG, + MOVE_FLAMETHROWER, + MOVE_FLASH_CANNON, + MOVE_FLY, + MOVE_FOCUS_BLAST, + MOVE_GIGA_IMPACT, + MOVE_HEAT_WAVE, + MOVE_HURRICANE, + MOVE_HYDRO_PUMP, + MOVE_HYPER_BEAM, + MOVE_HYPER_VOICE, + MOVE_IRON_HEAD, + MOVE_OUTRAGE, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_TOMB, + MOVE_SCARY_FACE, + MOVE_SLEEP_TALK, + MOVE_SNARL, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_TAILWIND, + MOVE_TAKE_DOWN, + MOVE_TAUNT, + MOVE_TERA_BLAST, + MOVE_U_TURN, + MOVE_ZEN_HEADBUTT, + MOVE_UNAVAILABLE, +}; + +static const u16 sIronMothTeachableLearnset[] = { + MOVE_ACID_SPRAY, + MOVE_ACROBATICS, + MOVE_AGILITY, + MOVE_AIR_SLASH, + MOVE_BUG_BUZZ, + MOVE_CHARGE_BEAM, + MOVE_CONFUSE_RAY, + MOVE_DAZZLING_GLEAM, + MOVE_ELECTRIC_TERRAIN, + MOVE_ENDURE, + MOVE_ENERGY_BALL, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FIRE_SPIN, + MOVE_FLAMETHROWER, + MOVE_FLAME_CHARGE, + MOVE_FLARE_BLITZ, + MOVE_FLASH_CANNON, + MOVE_GIGA_IMPACT, + MOVE_HEAT_WAVE, + MOVE_HELPING_HAND, + MOVE_HURRICANE, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_OVERHEAT, + MOVE_POUNCE, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REST, + MOVE_SLEEP_TALK, + MOVE_SOLAR_BEAM, + MOVE_STRUGGLE_BUG, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_SWIFT, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_TOXIC_SPIKES, + MOVE_U_TURN, + MOVE_VENOSHOCK, + MOVE_UNAVAILABLE, +}; + +static const u16 sIronThornsTeachableLearnset[] = { + MOVE_BLIZZARD, + MOVE_BODY_PRESS, + MOVE_BODY_SLAM, + MOVE_BRICK_BREAK, + MOVE_BULLDOZE, + MOVE_CHARGE_BEAM, + MOVE_CRUNCH, + MOVE_DIG, + MOVE_DRAGON_CLAW, + MOVE_DRAGON_DANCE, + MOVE_DRAGON_TAIL, + MOVE_EARTHQUAKE, + MOVE_EARTH_POWER, + MOVE_EERIE_IMPULSE, + MOVE_ELECTRIC_TERRAIN, + MOVE_ELECTRO_BALL, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FIRE_FANG, + MOVE_FIRE_PUNCH, + MOVE_FLAMETHROWER, + MOVE_FLING, + MOVE_FOCUS_BLAST, + MOVE_GIGA_IMPACT, + MOVE_HEAVY_SLAM, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_ICE_FANG, + MOVE_ICE_PUNCH, + MOVE_IRON_DEFENSE, + MOVE_IRON_HEAD, + MOVE_LOW_KICK, + MOVE_METAL_CLAW, + MOVE_POWER_GEM, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_ROCK_BLAST, + MOVE_ROCK_SLIDE, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SCARY_FACE, + MOVE_SNARL, + MOVE_SPIKES, + MOVE_STEALTH_ROCK, + MOVE_STOMPING_TANTRUM, + MOVE_STONE_EDGE, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_SWORDS_DANCE, + MOVE_TAKE_DOWN, + MOVE_TAUNT, + MOVE_TERA_BLAST, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_THUNDER_FANG, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_VOLT_SWITCH, + MOVE_WILD_CHARGE, + MOVE_UNAVAILABLE, +}; + +static const u16 sFrigibaxTeachableLearnset[] = { + MOVE_AVALANCHE, + MOVE_BLIZZARD, + MOVE_BODY_SLAM, + MOVE_CRUNCH, + MOVE_DIG, + MOVE_DRACO_METEOR, + MOVE_DRAGON_CLAW, + MOVE_DRAGON_PULSE, + MOVE_DRAGON_TAIL, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_HELPING_HAND, + MOVE_ICE_BEAM, + MOVE_ICE_FANG, + MOVE_ICY_WIND, + MOVE_OUTRAGE, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SLEEP_TALK, + MOVE_SNOWSCAPE, + MOVE_SUBSTITUTE, + MOVE_SWORDS_DANCE, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_UNAVAILABLE, +}; + +static const u16 sArctibaxTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_AVALANCHE, + MOVE_BLIZZARD, + MOVE_BODY_SLAM, + MOVE_BRICK_BREAK, + MOVE_CRUNCH, + MOVE_DIG, + MOVE_DRACO_METEOR, + MOVE_DRAGON_CLAW, + MOVE_DRAGON_PULSE, + MOVE_DRAGON_TAIL, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_HELPING_HAND, + MOVE_ICE_BEAM, + MOVE_ICE_FANG, + MOVE_ICY_WIND, + MOVE_IRON_HEAD, + MOVE_OUTRAGE, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SCARY_FACE, + MOVE_SLEEP_TALK, + MOVE_SNOWSCAPE, + MOVE_SUBSTITUTE, + MOVE_SWORDS_DANCE, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_UNAVAILABLE, +}; + +static const u16 sBaxcaliburTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_AVALANCHE, + MOVE_BLIZZARD, + MOVE_BODY_PRESS, + MOVE_BODY_SLAM, + MOVE_BRICK_BREAK, + MOVE_BULLDOZE, + MOVE_CRUNCH, + MOVE_DIG, + MOVE_DRACO_METEOR, + MOVE_DRAGON_CLAW, + MOVE_DRAGON_DANCE, + MOVE_DRAGON_PULSE, + MOVE_DRAGON_TAIL, + MOVE_EARTHQUAKE, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FALSE_SWIPE, + MOVE_GIGA_IMPACT, + MOVE_HELPING_HAND, + MOVE_HYPER_BEAM, + MOVE_ICE_BEAM, + MOVE_ICE_FANG, + MOVE_ICY_WIND, + MOVE_IRON_HEAD, + MOVE_OUTRAGE, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SCARY_FACE, + MOVE_SLEEP_TALK, + MOVE_SNOWSCAPE, + MOVE_STOMPING_TANTRUM, + MOVE_SUBSTITUTE, + MOVE_SWORDS_DANCE, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_THUNDER_FANG, + MOVE_ZEN_HEADBUTT, + MOVE_UNAVAILABLE, +}; + +static const u16 sGimmighoulTeachableLearnset[] = { + MOVE_CONFUSE_RAY, + MOVE_ENDURE, + MOVE_HEX, + MOVE_LIGHT_SCREEN, + MOVE_NASTY_PLOT, + MOVE_NIGHT_SHADE, + MOVE_POWER_GEM, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_SHADOW_BALL, + MOVE_SLEEP_TALK, + MOVE_SUBSTITUTE, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_UNAVAILABLE, +}; + +static const u16 sGholdengoTeachableLearnset[] = { + MOVE_CHARGE_BEAM, + MOVE_CONFUSE_RAY, + MOVE_DAZZLING_GLEAM, + MOVE_ELECTRO_BALL, + MOVE_ENDURE, + MOVE_FLASH_CANNON, + MOVE_FLING, + MOVE_FOCUS_BLAST, + MOVE_GIGA_IMPACT, + MOVE_HEAVY_SLAM, + MOVE_HEX, + MOVE_HYPER_BEAM, + MOVE_IRON_HEAD, + MOVE_LIGHT_SCREEN, + MOVE_LOW_KICK, + MOVE_LOW_SWEEP, + MOVE_NASTY_PLOT, + MOVE_NIGHT_SHADE, + MOVE_POWER_GEM, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_PSYSHOCK, + MOVE_REFLECT, + MOVE_REST, + MOVE_SANDSTORM, + MOVE_SHADOW_BALL, + MOVE_SLEEP_TALK, + MOVE_STEEL_BEAM, + MOVE_SUBSTITUTE, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_THIEF, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_TRICK, + MOVE_UNAVAILABLE, +}; + +static const u16 sWoChienTeachableLearnset[] = { + MOVE_BODY_PRESS, + MOVE_BODY_SLAM, + MOVE_BULLET_SEED, + MOVE_DARK_PULSE, + MOVE_ENDURE, + MOVE_ENERGY_BALL, + MOVE_FACADE, + MOVE_FOUL_PLAY, + MOVE_GIGA_DRAIN, + MOVE_GIGA_IMPACT, + MOVE_GRASSY_TERRAIN, + MOVE_GRASS_KNOT, + MOVE_HEX, + MOVE_HYPER_BEAM, + MOVE_LEAF_STORM, + MOVE_LIGHT_SCREEN, + MOVE_MAGICAL_LEAF, + MOVE_MUD_SHOT, + MOVE_MUD_SLAP, + MOVE_POLLEN_PUFF, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REFLECT, + MOVE_REST, + MOVE_SCARY_FACE, + MOVE_SEED_BOMB, + MOVE_SLEEP_TALK, + MOVE_SNARL, + MOVE_SOLAR_BEAM, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_TAKE_DOWN, + MOVE_TAUNT, + MOVE_TERA_BLAST, + MOVE_TRAILBLAZE, + MOVE_ZEN_HEADBUTT, + MOVE_UNAVAILABLE, +}; + +static const u16 sChienPaoTeachableLearnset[] = { + MOVE_ACROBATICS, + MOVE_AERIAL_ACE, + MOVE_AVALANCHE, + MOVE_BLIZZARD, + MOVE_BRICK_BREAK, + MOVE_CRUNCH, + MOVE_DARK_PULSE, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FALSE_SWIPE, + MOVE_GIGA_IMPACT, + MOVE_HEX, + MOVE_HYPER_BEAM, + MOVE_ICE_FANG, + MOVE_ICE_SPINNER, + MOVE_ICY_WIND, + MOVE_PROTECT, + MOVE_PSYCHIC_FANGS, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SCARY_FACE, + MOVE_SLEEP_TALK, + MOVE_SNARL, + MOVE_SNOWSCAPE, + MOVE_SUBSTITUTE, + MOVE_SWORDS_DANCE, + MOVE_TAKE_DOWN, + MOVE_TAUNT, + MOVE_TERA_BLAST, + MOVE_UNAVAILABLE, +}; + +static const u16 sTingLuTeachableLearnset[] = { + MOVE_BODY_PRESS, + MOVE_BODY_SLAM, + MOVE_BULLDOZE, + MOVE_DARK_PULSE, + MOVE_DIG, + MOVE_EARTHQUAKE, + MOVE_EARTH_POWER, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_GIGA_IMPACT, + MOVE_HEAVY_SLAM, + MOVE_HEX, + MOVE_HYPER_BEAM, + MOVE_MUD_SHOT, + MOVE_MUD_SLAP, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROCK_SLIDE, + MOVE_ROCK_TOMB, + MOVE_SANDSTORM, + MOVE_SCARY_FACE, + MOVE_SLEEP_TALK, + MOVE_SNARL, + MOVE_SPIKES, + MOVE_STEALTH_ROCK, + MOVE_STOMPING_TANTRUM, + MOVE_STONE_EDGE, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_TAKE_DOWN, + MOVE_TAUNT, + MOVE_TERA_BLAST, + MOVE_ZEN_HEADBUTT, + MOVE_UNAVAILABLE, +}; + +static const u16 sChiYuTeachableLearnset[] = { + MOVE_CONFUSE_RAY, + MOVE_CRUNCH, + MOVE_DARK_PULSE, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FIRE_SPIN, + MOVE_FLAMETHROWER, + MOVE_FLAME_CHARGE, + MOVE_FLARE_BLITZ, + MOVE_GIGA_IMPACT, + MOVE_HEAT_WAVE, + MOVE_HEX, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_NASTY_PLOT, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_PSYCHIC, + MOVE_REFLECT, + MOVE_REST, + MOVE_SCARY_FACE, + MOVE_SLEEP_TALK, + MOVE_SNARL, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_TAKE_DOWN, + MOVE_TAUNT, + MOVE_TERA_BLAST, + MOVE_WILL_O_WISP, + MOVE_ZEN_HEADBUTT, + MOVE_UNAVAILABLE, +}; + +static const u16 sRoaringMoonTeachableLearnset[] = { + MOVE_ACROBATICS, + MOVE_AERIAL_ACE, + MOVE_AIR_SLASH, + MOVE_BODY_PRESS, + MOVE_BODY_SLAM, + MOVE_BRICK_BREAK, + MOVE_CRUNCH, + MOVE_DARK_PULSE, + MOVE_DIG, + MOVE_DRACO_METEOR, + MOVE_DRAGON_CLAW, + MOVE_DRAGON_DANCE, + MOVE_DRAGON_PULSE, + MOVE_DRAGON_TAIL, + MOVE_EARTHQUAKE, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FIRE_FANG, + MOVE_FIRE_SPIN, + MOVE_FLAMETHROWER, + MOVE_FLY, + MOVE_GIGA_IMPACT, + MOVE_HEAT_WAVE, + MOVE_HURRICANE, + MOVE_HYDRO_PUMP, + MOVE_HYPER_BEAM, + MOVE_HYPER_VOICE, + MOVE_IRON_HEAD, + MOVE_METAL_CLAW, + MOVE_OUTRAGE, + MOVE_PROTECT, + MOVE_REST, + MOVE_ROCK_SLIDE, + MOVE_SCARY_FACE, + MOVE_SHADOW_CLAW, + MOVE_SLEEP_TALK, + MOVE_SNARL, + MOVE_STOMPING_TANTRUM, + MOVE_STONE_EDGE, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_TAILWIND, + MOVE_TAKE_DOWN, + MOVE_TAUNT, + MOVE_TERA_BLAST, + MOVE_THUNDER_FANG, + MOVE_U_TURN, + MOVE_X_SCISSOR, + MOVE_ZEN_HEADBUTT, + MOVE_UNAVAILABLE, +}; + +static const u16 sIronValiantTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_AGILITY, + MOVE_AURA_SPHERE, + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_CHARGE_BEAM, + MOVE_CLOSE_COMBAT, + MOVE_CONFUSE_RAY, + MOVE_DAZZLING_GLEAM, + MOVE_DRAIN_PUNCH, + MOVE_ELECTRIC_TERRAIN, + MOVE_ENCORE, + MOVE_ENDURE, + MOVE_ENERGY_BALL, + MOVE_FALSE_SWIPE, + MOVE_FIRE_PUNCH, + MOVE_FLING, + MOVE_FOCUS_BLAST, + MOVE_GIGA_IMPACT, + MOVE_GRASS_KNOT, + MOVE_HELPING_HAND, + MOVE_HEX, + MOVE_HYPER_BEAM, + MOVE_HYPER_VOICE, + MOVE_ICE_PUNCH, + MOVE_ICY_WIND, + MOVE_IMPRISON, + MOVE_LIGHT_SCREEN, + MOVE_LIQUIDATION, + MOVE_LOW_KICK, + MOVE_MAGICAL_LEAF, + MOVE_METRONOME, + MOVE_MISTY_TERRAIN, + MOVE_POISON_JAB, + MOVE_PROTECT, + MOVE_PSYBEAM, + MOVE_PSYCHIC, + MOVE_PSYCHIC_TERRAIN, + MOVE_PSYSHOCK, + MOVE_REFLECT, + MOVE_REST, + MOVE_REVERSAL, + MOVE_SHADOW_BALL, + MOVE_SHADOW_CLAW, + MOVE_SKILL_SWAP, + MOVE_SLEEP_TALK, + MOVE_STORED_POWER, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_TAUNT, + MOVE_TERA_BLAST, + MOVE_THUNDERBOLT, + MOVE_THUNDER_PUNCH, + MOVE_THUNDER_WAVE, + MOVE_TRICK, + MOVE_TRICK_ROOM, + MOVE_X_SCISSOR, + MOVE_ZEN_HEADBUTT, + MOVE_UNAVAILABLE, +}; + +static const u16 sKoraidonTeachableLearnset[] = { + MOVE_ACROBATICS, + MOVE_AGILITY, + MOVE_BODY_PRESS, + MOVE_BODY_SLAM, + MOVE_BRICK_BREAK, + MOVE_BULK_UP, + MOVE_BULLDOZE, + MOVE_CLOSE_COMBAT, + MOVE_CRUNCH, + MOVE_DIG, + MOVE_DRACO_METEOR, + MOVE_DRAGON_CLAW, + MOVE_DRAGON_PULSE, + MOVE_DRAGON_TAIL, + MOVE_DRAIN_PUNCH, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FIRE_BLAST, + MOVE_FIRE_FANG, + MOVE_FIRE_SPIN, + MOVE_FLAMETHROWER, + MOVE_FLAME_CHARGE, + MOVE_FLARE_BLITZ, + MOVE_FOCUS_BLAST, + MOVE_GIGA_IMPACT, + MOVE_HEAT_WAVE, + MOVE_HEAVY_SLAM, + MOVE_HELPING_HAND, + MOVE_HYPER_BEAM, + MOVE_ICE_FANG, + MOVE_IRON_HEAD, + MOVE_LOW_KICK, + MOVE_LOW_SWEEP, + MOVE_MUD_SHOT, + MOVE_MUD_SLAP, + MOVE_OUTRAGE, + MOVE_OVERHEAT, + MOVE_PROTECT, + MOVE_REST, + MOVE_REVERSAL, + MOVE_SCARY_FACE, + MOVE_SHADOW_CLAW, + MOVE_SLEEP_TALK, + MOVE_SNARL, + MOVE_SOLAR_BEAM, + MOVE_STOMPING_TANTRUM, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_SWORDS_DANCE, + MOVE_TAKE_DOWN, + MOVE_TAUNT, + MOVE_TERA_BLAST, + MOVE_THUNDER_FANG, + MOVE_U_TURN, + MOVE_WILD_CHARGE, + MOVE_ZEN_HEADBUTT, + MOVE_UNAVAILABLE, +}; + +static const u16 sMiraidonTeachableLearnset[] = { + MOVE_ACROBATICS, + MOVE_AGILITY, + MOVE_BODY_SLAM, + MOVE_CALM_MIND, + MOVE_CHARGE_BEAM, + MOVE_CONFUSE_RAY, + MOVE_CRUNCH, + MOVE_DAZZLING_GLEAM, + MOVE_DRACO_METEOR, + MOVE_DRAGON_CLAW, + MOVE_DRAGON_PULSE, + MOVE_DRAGON_TAIL, + MOVE_EERIE_IMPULSE, + MOVE_ELECTRIC_TERRAIN, + MOVE_ELECTRO_BALL, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FLASH_CANNON, + MOVE_GIGA_IMPACT, + MOVE_HEAVY_SLAM, + MOVE_HELPING_HAND, + MOVE_HYPER_BEAM, + MOVE_LIGHT_SCREEN, + MOVE_OUTRAGE, + MOVE_OVERHEAT, + MOVE_POWER_GEM, + MOVE_PROTECT, + MOVE_REFLECT, + MOVE_REST, + MOVE_SCARY_FACE, + MOVE_SLEEP_TALK, + MOVE_SNARL, + MOVE_SOLAR_BEAM, + MOVE_SUBSTITUTE, + MOVE_SWORDS_DANCE, + MOVE_TAKE_DOWN, + MOVE_TAUNT, + MOVE_TERA_BLAST, + MOVE_THUNDER, + MOVE_THUNDERBOLT, + MOVE_THUNDER_WAVE, + MOVE_U_TURN, + MOVE_VOLT_SWITCH, + MOVE_WILD_CHARGE, + MOVE_ZEN_HEADBUTT, + MOVE_UNAVAILABLE, +}; + +static const u16 sWalkingWakeTeachableLearnset[] = { + MOVE_AGILITY, + MOVE_BODY_SLAM, + MOVE_CHILLING_WATER, + MOVE_CRUNCH, + MOVE_DRACO_METEOR, + MOVE_DRAGON_CLAW, + MOVE_DRAGON_DANCE, + MOVE_DRAGON_PULSE, + MOVE_DRAGON_TAIL, + MOVE_ENDURE, + MOVE_FACADE, + MOVE_FIRE_FANG, + MOVE_FLAMETHROWER, + MOVE_GIGA_IMPACT, + MOVE_HURRICANE, + MOVE_HYDRO_PUMP, + MOVE_HYPER_BEAM, + MOVE_LIQUIDATION, + MOVE_LOW_KICK, + MOVE_MUD_SHOT, + MOVE_OUTRAGE, + MOVE_PROTECT, + MOVE_RAIN_DANCE, + MOVE_REST, + MOVE_SCARY_FACE, + MOVE_SLEEP_TALK, + MOVE_SNARL, + MOVE_SUBSTITUTE, + MOVE_SUNNY_DAY, + MOVE_SURF, + MOVE_SWIFT, + MOVE_TAKE_DOWN, + MOVE_TERA_BLAST, + MOVE_WATERFALL, + MOVE_WATER_PULSE, + MOVE_UNAVAILABLE, +}; + +static const u16 sIronLeavesTeachableLearnset[] = { + MOVE_AERIAL_ACE, + MOVE_AGILITY, + MOVE_AIR_SLASH, + MOVE_BRICK_BREAK, + MOVE_CALM_MIND, + MOVE_CLOSE_COMBAT, + MOVE_ELECTRIC_TERRAIN, + MOVE_ENDURE, + MOVE_ENERGY_BALL, + MOVE_FACADE, + MOVE_FALSE_SWIPE, + MOVE_FOCUS_BLAST, + MOVE_GIGA_DRAIN, + MOVE_GIGA_IMPACT, + MOVE_GRASSY_TERRAIN, + MOVE_GRASS_KNOT, + MOVE_HELPING_HAND, + MOVE_HYPER_BEAM, + MOVE_IMPRISON, + MOVE_IRON_DEFENSE, + MOVE_LEAF_STORM, + MOVE_MAGICAL_LEAF, + MOVE_PROTECT, + MOVE_PSYCHIC_TERRAIN, + MOVE_REST, + MOVE_REVERSAL, + MOVE_SCARY_FACE, + MOVE_SLEEP_TALK, + MOVE_SMART_STRIKE, + MOVE_SOLAR_BEAM, + MOVE_SUBSTITUTE, + MOVE_SWIFT, + MOVE_SWORDS_DANCE, + MOVE_TAKE_DOWN, + MOVE_TAUNT, + MOVE_TERA_BLAST, + MOVE_TRAILBLAZE, + MOVE_WILD_CHARGE, + MOVE_X_SCISSOR, + MOVE_UNAVAILABLE, +}; + +static const u16 sDipplinTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; + +static const u16 sPoltchageistTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; + +static const u16 sSinistchaTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; + +static const u16 sOkidogiTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; + +static const u16 sMunkidoriTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; + +static const u16 sFezandipitiTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; + +static const u16 sOgerponTeachableLearnset[] = { + MOVE_UNAVAILABLE, +}; +#endif diff --git a/src/data/pokemon_graphics/back_pic_coordinates.h b/src/data/pokemon_graphics/back_pic_coordinates.h deleted file mode 100644 index 8937606fa841..000000000000 --- a/src/data/pokemon_graphics/back_pic_coordinates.h +++ /dev/null @@ -1,1398 +0,0 @@ - -#define PIKACHU_BACK_PIC_COORDS \ -{ \ - .size = MON_COORDS_SIZE(64, 56), \ - .y_offset = 4, \ -} - -#define ARCEUS_BACK_PIC_COORDS \ -{ \ - .size = MON_COORDS_SIZE(64, 64), \ - .y_offset = 3, \ -} - -#define DEERLING_BACK_PIC_COORDS \ -{ \ - .size = MON_COORDS_SIZE(48, 56), \ - .y_offset = 9, \ -} - -// All Pokémon pics are 64x64, but this data table defines where in this 64x64 frame -// the sprite's non-transparent pixels actually are. -// .size is the dimensions of this drawn pixel area. -// .y_offset is the number of pixels between the drawn pixel area and the bottom edge. -const struct MonCoords gMonBackPicCoords[NUM_SPECIES + 1] = -{ - [SPECIES_NONE] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 12 }, - [SPECIES_BULBASAUR] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 13 }, - [SPECIES_IVYSAUR] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 9 }, - [SPECIES_VENUSAUR] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 10 }, - [SPECIES_CHARMANDER] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, - [SPECIES_CHARMELEON] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 8 }, - [SPECIES_CHARIZARD] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_SQUIRTLE] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, - [SPECIES_WARTORTLE] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_BLASTOISE] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_CATERPIE] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 12 }, - [SPECIES_METAPOD] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 8 }, - [SPECIES_BUTTERFREE] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_WEEDLE] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 7 }, - [SPECIES_KAKUNA] = { .size = MON_COORDS_SIZE(32, 40), .y_offset = 12 }, - [SPECIES_BEEDRILL] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_PIDGEY] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 11 }, - [SPECIES_PIDGEOTTO] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_PIDGEOT] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_RATTATA] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_RATICATE] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 10 }, - [SPECIES_SPEAROW] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 6 }, - [SPECIES_FEAROW] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_EKANS] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 10 }, - [SPECIES_ARBOK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_PIKACHU] = PIKACHU_BACK_PIC_COORDS, - [SPECIES_RAICHU] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_SANDSHREW] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 13 }, - [SPECIES_SANDSLASH] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 11 }, - [SPECIES_NIDORAN_F] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 13 }, - [SPECIES_NIDORINA] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 5 }, - [SPECIES_NIDOQUEEN] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_NIDORAN_M] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, - [SPECIES_NIDORINO] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 8 }, - [SPECIES_NIDOKING] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_CLEFAIRY] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 14 }, - [SPECIES_CLEFABLE] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 10 }, - [SPECIES_VULPIX] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_NINETALES] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_JIGGLYPUFF] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 12 }, - [SPECIES_WIGGLYTUFF] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_ZUBAT] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 7 }, - [SPECIES_GOLBAT] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 13 }, - [SPECIES_ODDISH] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 10 }, - [SPECIES_GLOOM] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 11 }, - [SPECIES_VILEPLUME] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_PARAS] = { .size = MON_COORDS_SIZE(64, 32), .y_offset = 18 }, - [SPECIES_PARASECT] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 13 }, - [SPECIES_VENONAT] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_VENOMOTH] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_DIGLETT] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 14 }, - [SPECIES_DUGTRIO] = { .size = MON_COORDS_SIZE(48, 32), .y_offset = 17 }, - [SPECIES_MEOWTH] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 6 }, - [SPECIES_PERSIAN] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_PSYDUCK] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, - [SPECIES_GOLDUCK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_MANKEY] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 8 }, - [SPECIES_PRIMEAPE] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 10 }, - [SPECIES_GROWLITHE] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 8 }, - [SPECIES_ARCANINE] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_POLIWAG] = { .size = MON_COORDS_SIZE(48, 32), .y_offset = 18 }, - [SPECIES_POLIWHIRL] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 13 }, - [SPECIES_POLIWRATH] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_ABRA] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 12 }, - [SPECIES_KADABRA] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 8 }, - [SPECIES_ALAKAZAM] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_MACHOP] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 6 }, - [SPECIES_MACHOKE] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 8 }, - [SPECIES_MACHAMP] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_BELLSPROUT] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 11 }, - [SPECIES_WEEPINBELL] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 11 }, - [SPECIES_VICTREEBEL] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_TENTACOOL] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_TENTACRUEL] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 11 }, - [SPECIES_GEODUDE] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 11 }, - [SPECIES_GRAVELER] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 10 }, - [SPECIES_GOLEM] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 11 }, - [SPECIES_PONYTA] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_RAPIDASH] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SLOWPOKE] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 13 }, - [SPECIES_SLOWBRO] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_MAGNEMITE] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 15 }, - [SPECIES_MAGNETON] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_FARFETCHD] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_DODUO] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_DODRIO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_SEEL] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 13 }, - [SPECIES_DEWGONG] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_GRIMER] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 13 }, - [SPECIES_MUK] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 9 }, - [SPECIES_SHELLDER] = { .size = MON_COORDS_SIZE(48, 24), .y_offset = 21 }, - [SPECIES_CLOYSTER] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_GASTLY] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_HAUNTER] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_GENGAR] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 8 }, - [SPECIES_ONIX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_DROWZEE] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 9 }, - [SPECIES_HYPNO] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_KRABBY] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 15 }, - [SPECIES_KINGLER] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_VOLTORB] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 14 }, - [SPECIES_ELECTRODE] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 13 }, - [SPECIES_EXEGGCUTE] = { .size = MON_COORDS_SIZE(64, 32), .y_offset = 18 }, - [SPECIES_EXEGGUTOR] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 8 }, - [SPECIES_CUBONE] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 10 }, - [SPECIES_MAROWAK] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 8 }, - [SPECIES_HITMONLEE] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_HITMONCHAN] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 6 }, - [SPECIES_LICKITUNG] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 13 }, - [SPECIES_KOFFING] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_WEEZING] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_RHYHORN] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 11 }, - [SPECIES_RHYDON] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_CHANSEY] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 11 }, - [SPECIES_TANGELA] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 12 }, - [SPECIES_KANGASKHAN] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_HORSEA] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 14 }, - [SPECIES_SEADRA] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_GOLDEEN] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_SEAKING] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_STARYU] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 6 }, - [SPECIES_STARMIE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_MR_MIME] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 8 }, - [SPECIES_SCYTHER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_JYNX] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 3 }, - [SPECIES_ELECTABUZZ] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_MAGMAR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_PINSIR] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_TAUROS] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 13 }, - [SPECIES_MAGIKARP] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_GYARADOS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 5 }, - [SPECIES_LAPRAS] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 3 }, - [SPECIES_DITTO] = { .size = MON_COORDS_SIZE(48, 32), .y_offset = 17 }, - [SPECIES_EEVEE] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 10 }, - [SPECIES_VAPOREON] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_JOLTEON] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 7 }, - [SPECIES_FLAREON] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 9 }, - [SPECIES_PORYGON] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 13 }, - [SPECIES_OMANYTE] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 12 }, - [SPECIES_OMASTAR] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 7 }, - [SPECIES_KABUTO] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 13 }, - [SPECIES_KABUTOPS] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_AERODACTYL] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 10 }, - [SPECIES_SNORLAX] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 13 }, - [SPECIES_ARTICUNO] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_ZAPDOS] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 12 }, - [SPECIES_MOLTRES] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_DRATINI] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 8 }, - [SPECIES_DRAGONAIR] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 4 }, - [SPECIES_DRAGONITE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_MEWTWO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_MEW] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_CHIKORITA] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 10 }, - [SPECIES_BAYLEEF] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_MEGANIUM] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, - [SPECIES_CYNDAQUIL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_QUILAVA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_TYPHLOSION] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_TOTODILE] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 10 }, - [SPECIES_CROCONAW] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, - [SPECIES_FERALIGATR] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, - [SPECIES_SENTRET] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 0 }, - [SPECIES_FURRET] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_HOOTHOOT] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 4 }, - [SPECIES_NOCTOWL] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 3 }, - [SPECIES_LEDYBA] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 8 }, - [SPECIES_LEDIAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_SPINARAK] = { .size = MON_COORDS_SIZE(64, 32), .y_offset = 16 }, - [SPECIES_ARIADOS] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_CROBAT] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_CHINCHOU] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 11 }, - [SPECIES_LANTURN] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_PICHU] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 8 }, - [SPECIES_CLEFFA] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 13 }, - [SPECIES_IGGLYBUFF] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 13 }, - [SPECIES_TOGEPI] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 12 }, - [SPECIES_TOGETIC] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 6 }, - [SPECIES_NATU] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 15 }, - [SPECIES_XATU] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_MAREEP] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 15 }, - [SPECIES_FLAAFFY] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 7 }, - [SPECIES_AMPHAROS] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 3 }, - [SPECIES_BELLOSSOM] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 11 }, - [SPECIES_MARILL] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 13 }, - [SPECIES_AZUMARILL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_SUDOWOODO] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 5 }, - [SPECIES_POLITOED] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 5 }, - [SPECIES_HOPPIP] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 8 }, - [SPECIES_SKIPLOOM] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_JUMPLUFF] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 3 }, - [SPECIES_AIPOM] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_SUNKERN] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 10 }, - [SPECIES_SUNFLORA] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 7 }, - [SPECIES_YANMA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_WOOPER] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 12 }, - [SPECIES_QUAGSIRE] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_ESPEON] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 8 }, - [SPECIES_UMBREON] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_MURKROW] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 10 }, - [SPECIES_SLOWKING] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 3 }, - [SPECIES_MISDREAVUS] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 9 }, - [SPECIES_UNOWN] = { .size = MON_COORDS_SIZE(24, 48), .y_offset = 8 }, - [SPECIES_WOBBUFFET] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 10 }, - [SPECIES_GIRAFARIG] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_PINECO] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 13 }, - [SPECIES_FORRETRESS] = { .size = MON_COORDS_SIZE(64, 32), .y_offset = 16 }, - [SPECIES_DUNSPARCE] = { .size = MON_COORDS_SIZE(56, 32), .y_offset = 17 }, - [SPECIES_GLIGAR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_STEELIX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_SNUBBULL] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 12 }, - [SPECIES_GRANBULL] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 8 }, - [SPECIES_QWILFISH] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 6 }, - [SPECIES_SCIZOR] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_SHUCKLE] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 11 }, - [SPECIES_HERACROSS] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 2 }, - [SPECIES_SNEASEL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_TEDDIURSA] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 10 }, - [SPECIES_URSARING] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, - [SPECIES_SLUGMA] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_MAGCARGO] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_SWINUB] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 15 }, - [SPECIES_PILOSWINE] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 8 }, - [SPECIES_CORSOLA] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 8 }, - [SPECIES_REMORAID] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 12 }, - [SPECIES_OCTILLERY] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 8 }, - [SPECIES_DELIBIRD] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 6 }, - [SPECIES_MANTINE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_SKARMORY] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 1 }, - [SPECIES_HOUNDOUR] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 10 }, - [SPECIES_HOUNDOOM] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_KINGDRA] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_PHANPY] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 12 }, - [SPECIES_DONPHAN] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_PORYGON2] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 11 }, - [SPECIES_STANTLER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_SMEARGLE] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 9 }, - [SPECIES_TYROGUE] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 10 }, - [SPECIES_HITMONTOP] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_SMOOCHUM] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 9 }, - [SPECIES_ELEKID] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 10 }, - [SPECIES_MAGBY] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 10 }, - [SPECIES_MILTANK] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_BLISSEY] = { .size = MON_COORDS_SIZE(64, 32), .y_offset = 16 }, - [SPECIES_RAIKOU] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_ENTEI] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 11 }, - [SPECIES_SUICUNE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_LARVITAR] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 8 }, - [SPECIES_PUPITAR] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_TYRANITAR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_LUGIA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_HO_OH] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_CELEBI] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 7 }, - [SPECIES_TREECKO] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 8 }, - [SPECIES_GROVYLE] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_SCEPTILE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 6 }, - [SPECIES_TORCHIC] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 10 }, - [SPECIES_COMBUSKEN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_BLAZIKEN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_MUDKIP] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 10 }, - [SPECIES_MARSHTOMP] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_SWAMPERT] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 6 }, - [SPECIES_POOCHYENA] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 11 }, - [SPECIES_MIGHTYENA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_ZIGZAGOON] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 6 }, - [SPECIES_LINOONE] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 12 }, - [SPECIES_WURMPLE] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_SILCOON] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 13 }, - [SPECIES_BEAUTIFLY] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_CASCOON] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 15 }, - [SPECIES_DUSTOX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_LOTAD] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 12 }, - [SPECIES_LOMBRE] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 6 }, - [SPECIES_LUDICOLO] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_SEEDOT] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 10 }, - [SPECIES_NUZLEAF] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 9 }, - [SPECIES_SHIFTRY] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 9 }, - [SPECIES_NINCADA] = { .size = MON_COORDS_SIZE(64, 32), .y_offset = 18 }, - [SPECIES_NINJASK] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 13 }, - [SPECIES_SHEDINJA] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_TAILLOW] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 15 }, - [SPECIES_SWELLOW] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 6 }, - [SPECIES_SHROOMISH] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 9 }, - [SPECIES_BRELOOM] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_SPINDA] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 4 }, - [SPECIES_WINGULL] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 13 }, - [SPECIES_PELIPPER] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_SURSKIT] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 13 }, - [SPECIES_MASQUERAIN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_WAILMER] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_WAILORD] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 14 }, - [SPECIES_SKITTY] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_DELCATTY] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_KECLEON] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 6 }, - [SPECIES_BALTOY] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 8 }, - [SPECIES_CLAYDOL] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_NOSEPASS] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 10 }, - [SPECIES_TORKOAL] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 8 }, - [SPECIES_SABLEYE] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 13 }, - [SPECIES_BARBOACH] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 9 }, - [SPECIES_WHISCASH] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 11 }, - [SPECIES_LUVDISC] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 10 }, - [SPECIES_CORPHISH] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 8 }, - [SPECIES_CRAWDAUNT] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_FEEBAS] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 6 }, - [SPECIES_MILOTIC] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_CARVANHA] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 10 }, - [SPECIES_SHARPEDO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_TRAPINCH] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 10 }, - [SPECIES_VIBRAVA] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 12 }, - [SPECIES_FLYGON] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_MAKUHITA] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 8 }, - [SPECIES_HARIYAMA] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_ELECTRIKE] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 13 }, - [SPECIES_MANECTRIC] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_NUMEL] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 6 }, - [SPECIES_CAMERUPT] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 13 }, - [SPECIES_SPHEAL] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 15 }, - [SPECIES_SEALEO] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 11 }, - [SPECIES_WALREIN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_CACNEA] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 12 }, - [SPECIES_CACTURNE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SNORUNT] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 10 }, - [SPECIES_GLALIE] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 10 }, - [SPECIES_LUNATONE] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 8 }, - [SPECIES_SOLROCK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_AZURILL] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_SPOINK] = { .size = MON_COORDS_SIZE(40, 64), .y_offset = 4 }, - [SPECIES_GRUMPIG] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_PLUSLE] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 3 }, - [SPECIES_MINUN] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 4 }, - [SPECIES_MAWILE] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_MEDITITE] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, - [SPECIES_MEDICHAM] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_SWABLU] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 11 }, - [SPECIES_ALTARIA] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 10 }, - [SPECIES_WYNAUT] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 11 }, - [SPECIES_DUSKULL] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 8 }, - [SPECIES_DUSCLOPS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_ROSELIA] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 8 }, - [SPECIES_SLAKOTH] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 12 }, - [SPECIES_VIGOROTH] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_SLAKING] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_GULPIN] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 9 }, - [SPECIES_SWALOT] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_TROPIUS] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_WHISMUR] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 12 }, - [SPECIES_LOUDRED] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 8 }, - [SPECIES_EXPLOUD] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_CLAMPERL] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 13 }, - [SPECIES_HUNTAIL] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_GOREBYSS] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_ABSOL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_SHUPPET] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 5 }, - [SPECIES_BANETTE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 5 }, - [SPECIES_SEVIPER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_ZANGOOSE] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_RELICANTH] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 12 }, - [SPECIES_ARON] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 12 }, - [SPECIES_LAIRON] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 15 }, - [SPECIES_AGGRON] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_CASTFORM_NORMAL] = { .size = MON_COORDS_SIZE(32, 64), .y_offset = 0 }, - [SPECIES_VOLBEAT] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 3 }, - [SPECIES_ILLUMISE] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 8 }, - [SPECIES_LILEEP] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 8 }, - [SPECIES_CRADILY] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_ANORITH] = { .size = MON_COORDS_SIZE(56, 32), .y_offset = 19 }, - [SPECIES_ARMALDO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_RALTS] = { .size = MON_COORDS_SIZE(32, 40), .y_offset = 13 }, - [SPECIES_KIRLIA] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 6 }, - [SPECIES_GARDEVOIR] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 6 }, - [SPECIES_BAGON] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 6 }, - [SPECIES_SHELGON] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 12 }, - [SPECIES_SALAMENCE] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 4 }, - [SPECIES_BELDUM] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_METANG] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 13 }, - [SPECIES_METAGROSS] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_REGIROCK] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 10 }, - [SPECIES_REGICE] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 11 }, - [SPECIES_REGISTEEL] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 11 }, - [SPECIES_KYOGRE] = { .size = MON_COORDS_SIZE(64, 32), .y_offset = 18 }, - [SPECIES_GROUDON] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 8 }, - [SPECIES_RAYQUAZA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_LATIAS] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_LATIOS] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_JIRACHI] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_DEOXYS_NORMAL] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_CHIMECHO] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 9 }, -#if P_GEN_4_POKEMON == TRUE - [SPECIES_TURTWIG] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 6 }, - [SPECIES_GROTLE] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 10 }, - [SPECIES_TORTERRA] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_CHIMCHAR] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 6 }, - [SPECIES_MONFERNO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_INFERNAPE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_PIPLUP] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 10 }, - [SPECIES_PRINPLUP] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 7 }, - [SPECIES_EMPOLEON] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_STARLY] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 11 }, - [SPECIES_STARAVIA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 6 }, - [SPECIES_STARAPTOR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_BIDOOF] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 13 }, - [SPECIES_BIBAREL] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_KRICKETOT] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 6 }, - [SPECIES_KRICKETUNE] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 3 }, - [SPECIES_SHINX] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 8 }, - [SPECIES_LUXIO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_LUXRAY] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_BUDEW] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 11 }, - [SPECIES_ROSERADE] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_CRANIDOS] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_RAMPARDOS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 6 }, - [SPECIES_SHIELDON] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 11 }, - [SPECIES_BASTIODON] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_BURMY_PLANT_CLOAK] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 6 }, - [SPECIES_WORMADAM_PLANT_CLOAK] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, - [SPECIES_MOTHIM] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 8 }, - [SPECIES_COMBEE] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 22 }, - [SPECIES_VESPIQUEN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_PACHIRISU] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_BUIZEL] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_FLOATZEL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 6 }, - [SPECIES_CHERUBI] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 13 }, - [SPECIES_CHERRIM_OVERCAST] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 9 }, - [SPECIES_SHELLOS_WEST_SEA] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 8 }, - [SPECIES_GASTRODON_WEST_SEA] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 3 }, - [SPECIES_AMBIPOM] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_DRIFLOON] = { .size = MON_COORDS_SIZE(40, 64), .y_offset = 0 }, - [SPECIES_DRIFBLIM] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 6 }, - [SPECIES_BUNEARY] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_LOPUNNY] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_MISMAGIUS] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 3 }, - [SPECIES_HONCHKROW] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 8 }, - [SPECIES_GLAMEOW] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_PURUGLY] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 8 }, - [SPECIES_CHINGLING] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 13 }, - [SPECIES_STUNKY] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 6 }, - [SPECIES_SKUNTANK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_BRONZOR] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 9 }, - [SPECIES_BRONZONG] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_BONSLY] = { .size = MON_COORDS_SIZE(40, 64), .y_offset = 6 }, - [SPECIES_MIME_JR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_HAPPINY] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_CHATOT] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, - [SPECIES_SPIRITOMB] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_GIBLE] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 9 }, - [SPECIES_GABITE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_GARCHOMP] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_MUNCHLAX] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 7 }, - [SPECIES_RIOLU] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 8 }, - [SPECIES_LUCARIO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_HIPPOPOTAS] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 14 }, - [SPECIES_HIPPOWDON] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_SKORUPI] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_DRAPION] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_CROAGUNK] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 6 }, - [SPECIES_TOXICROAK] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 6 }, - [SPECIES_CARNIVINE] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_FINNEON] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 12 }, - [SPECIES_LUMINEON] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_MANTYKE] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_SNOVER] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_ABOMASNOW] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_WEAVILE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 6 }, - [SPECIES_MAGNEZONE] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 12 }, - [SPECIES_LICKILICKY] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_RHYPERIOR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_TANGROWTH] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_ELECTIVIRE] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_MAGMORTAR] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_TOGEKISS] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 10 }, - [SPECIES_YANMEGA] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_LEAFEON] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 0 }, - [SPECIES_GLACEON] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 6 }, - [SPECIES_GLISCOR] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 11 }, - [SPECIES_MAMOSWINE] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_PORYGON_Z] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_GALLADE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 5 }, - [SPECIES_PROBOPASS] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_DUSKNOIR] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_FROSLASS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_ROTOM] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 5 }, - [SPECIES_UXIE] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 8 }, - [SPECIES_MESPRIT] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 8 }, - [SPECIES_AZELF] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_DIALGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_PALKIA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 6 }, - [SPECIES_HEATRAN] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 13 }, - [SPECIES_REGIGIGAS] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 13 }, - [SPECIES_GIRATINA_ALTERED] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_CRESSELIA] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_PHIONE] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_MANAPHY] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 10 }, - [SPECIES_DARKRAI] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SHAYMIN_LAND] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 15 }, - [SPECIES_ARCEUS_NORMAL] = ARCEUS_BACK_PIC_COORDS, -#endif -#if P_GEN_5_POKEMON == TRUE - [SPECIES_VICTINI] = { .size = MON_COORDS_SIZE(40, 64), .y_offset = 7 }, - [SPECIES_SNIVY] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 11 }, - [SPECIES_SERVINE] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 5 }, - [SPECIES_SERPERIOR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_TEPIG] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 8 }, - [SPECIES_PIGNITE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 9 }, - [SPECIES_EMBOAR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 6 }, - [SPECIES_OSHAWOTT] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 14 }, - [SPECIES_DEWOTT] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 5 }, - [SPECIES_SAMUROTT] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 8 }, - [SPECIES_PATRAT] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 12 }, - [SPECIES_WATCHOG] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, - [SPECIES_LILLIPUP] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 12 }, - [SPECIES_HERDIER] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 10 }, - [SPECIES_STOUTLAND] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_PURRLOIN] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 9 }, - [SPECIES_LIEPARD] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 9 }, - [SPECIES_PANSAGE] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, - [SPECIES_SIMISAGE] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 6 }, - [SPECIES_PANSEAR] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 10 }, - [SPECIES_SIMISEAR] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 8 }, - [SPECIES_PANPOUR] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, - [SPECIES_SIMIPOUR] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_MUNNA] = { .size = MON_COORDS_SIZE(48, 32), .y_offset = 16 }, - [SPECIES_MUSHARNA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 8 }, - [SPECIES_PIDOVE] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 13 }, - [SPECIES_TRANQUILL] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 9 }, - [SPECIES_UNFEZANT] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_BLITZLE] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 7 }, - [SPECIES_ZEBSTRIKA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 7 }, - [SPECIES_ROGGENROLA] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 13 }, - [SPECIES_BOLDORE] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 16 }, - [SPECIES_GIGALITH] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, - [SPECIES_WOOBAT] = { .size = MON_COORDS_SIZE(64, 32), .y_offset = 16 }, - [SPECIES_SWOOBAT] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 7 }, - [SPECIES_DRILBUR] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 13 }, - [SPECIES_EXCADRILL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 11 }, - [SPECIES_AUDINO] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 9 }, - [SPECIES_TIMBURR] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 15 }, - [SPECIES_GURDURR] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_CONKELDURR] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 13 }, - [SPECIES_TYMPOLE] = { .size = MON_COORDS_SIZE(40, 32), .y_offset = 17 }, - [SPECIES_PALPITOAD] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 12 }, - [SPECIES_SEISMITOAD] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 12 }, - [SPECIES_THROH] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 11 }, - [SPECIES_SAWK] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 13 }, - [SPECIES_SEWADDLE] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 13 }, - [SPECIES_SWADLOON] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 10 }, - [SPECIES_LEAVANNY] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_VENIPEDE] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 14 }, - [SPECIES_WHIRLIPEDE] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 15 }, - [SPECIES_SCOLIPEDE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_COTTONEE] = { .size = MON_COORDS_SIZE(64, 32), .y_offset = 18 }, - [SPECIES_WHIMSICOTT] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_PETILIL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 9 }, - [SPECIES_LILLIGANT] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 8 }, - [SPECIES_BASCULIN_RED_STRIPED] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 16 }, - [SPECIES_SANDILE] = { .size = MON_COORDS_SIZE(64, 32), .y_offset = 18 }, - [SPECIES_KROKOROK] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 3 }, - [SPECIES_KROOKODILE] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_DARUMAKA] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 12 }, - [SPECIES_DARMANITAN_STANDARD_MODE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_MARACTUS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_DWEBBLE] = { .size = MON_COORDS_SIZE(56, 32), .y_offset = 17 }, - [SPECIES_CRUSTLE] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 9 }, - [SPECIES_SCRAGGY] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 7 }, - [SPECIES_SCRAFTY] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 5 }, - [SPECIES_SIGILYPH] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 7 }, - [SPECIES_YAMASK] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 14 }, - [SPECIES_COFAGRIGUS] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 6 }, - [SPECIES_TIRTOUGA] = { .size = MON_COORDS_SIZE(64, 32), .y_offset = 16 }, - [SPECIES_CARRACOSTA] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 13 }, - [SPECIES_ARCHEN] = { .size = MON_COORDS_SIZE(64, 32), .y_offset = 16 }, - [SPECIES_ARCHEOPS] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 12 }, - [SPECIES_TRUBBISH] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 13 }, - [SPECIES_GARBODOR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 5 }, - [SPECIES_ZORUA] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_ZOROARK] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 10 }, - [SPECIES_MINCCINO] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 6 }, - [SPECIES_CINCCINO] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_GOTHITA] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 10 }, - [SPECIES_GOTHORITA] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_GOTHITELLE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SOLOSIS] = { .size = MON_COORDS_SIZE(48, 32), .y_offset = 19 }, - [SPECIES_DUOSION] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 13 }, - [SPECIES_REUNICLUS] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 13 }, - [SPECIES_DUCKLETT] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 10 }, - [SPECIES_SWANNA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_VANILLITE] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 9 }, - [SPECIES_VANILLISH] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 4 }, - [SPECIES_VANILLUXE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 6 }, - [SPECIES_DEERLING_SPRING] = DEERLING_BACK_PIC_COORDS, - [SPECIES_SAWSBUCK_SPRING] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 5 }, - [SPECIES_EMOLGA] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 16 }, - [SPECIES_KARRABLAST] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 14 }, - [SPECIES_ESCAVALIER] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 9 }, - [SPECIES_FOONGUS] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 13 }, - [SPECIES_AMOONGUSS] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 12 }, - [SPECIES_FRILLISH] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_JELLICENT] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 10 }, - [SPECIES_ALOMOMOLA] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 0 }, - [SPECIES_JOLTIK] = { .size = MON_COORDS_SIZE(48, 32), .y_offset = 19 }, - [SPECIES_GALVANTULA] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 18 }, - [SPECIES_FERROSEED] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 15 }, - [SPECIES_FERROTHORN] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 14 }, - [SPECIES_KLINK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 17 }, - [SPECIES_KLANG] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 7 }, - [SPECIES_KLINKLANG] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 7 }, - [SPECIES_TYNAMO] = { .size = MON_COORDS_SIZE(64, 24), .y_offset = 21 }, - [SPECIES_EELEKTRIK] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 4 }, - [SPECIES_EELEKTROSS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_ELGYEM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 10 }, - [SPECIES_BEHEEYEM] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_LITWICK] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 14 }, - [SPECIES_LAMPENT] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 12 }, - [SPECIES_CHANDELURE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_AXEW] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 8 }, - [SPECIES_FRAXURE] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 13 }, - [SPECIES_HAXORUS] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 8 }, - [SPECIES_CUBCHOO] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 12 }, - [SPECIES_BEARTIC] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 5 }, - [SPECIES_CRYOGONAL] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 4 }, - [SPECIES_SHELMET] = { .size = MON_COORDS_SIZE(64, 32), .y_offset = 19 }, - [SPECIES_ACCELGOR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_STUNFISK] = { .size = MON_COORDS_SIZE(64, 24), .y_offset = 22 }, - [SPECIES_MIENFOO] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 14 }, - [SPECIES_MIENSHAO] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 7 }, - [SPECIES_DRUDDIGON] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 8 }, - [SPECIES_GOLETT] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 8 }, - [SPECIES_GOLURK] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_PAWNIARD] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 10 }, - [SPECIES_BISHARP] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_BOUFFALANT] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_RUFFLET] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_BRAVIARY] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 10 }, - [SPECIES_VULLABY] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 14 }, - [SPECIES_MANDIBUZZ] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 10 }, - [SPECIES_HEATMOR] = { .size = MON_COORDS_SIZE(64, 24), .y_offset = 21 }, - [SPECIES_DURANT] = { .size = MON_COORDS_SIZE(64, 32), .y_offset = 17 }, - [SPECIES_DEINO] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 14 }, - [SPECIES_ZWEILOUS] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 9 }, - [SPECIES_HYDREIGON] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 11 }, - [SPECIES_LARVESTA] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 12 }, - [SPECIES_VOLCARONA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_COBALION] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 6 }, - [SPECIES_TERRAKION] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 8 }, - [SPECIES_VIRIZION] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 8 }, - [SPECIES_TORNADUS_INCARNATE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_THUNDURUS_INCARNATE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_RESHIRAM] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 7 }, - [SPECIES_ZEKROM] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_LANDORUS_INCARNATE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_KYUREM] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 12 }, - [SPECIES_KELDEO_ORDINARY] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 4 }, - [SPECIES_MELOETTA_ARIA] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 7 }, - [SPECIES_GENESECT] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 8 }, -#endif -#if P_GEN_6_POKEMON == TRUE - [SPECIES_CHESPIN] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 6 }, - [SPECIES_QUILLADIN] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_CHESNAUGHT] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 10 }, - [SPECIES_FENNEKIN] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 8 }, - [SPECIES_BRAIXEN] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 10 }, - [SPECIES_DELPHOX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_FROAKIE] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 7 }, - [SPECIES_FROGADIER] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_GRENINJA] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 11 }, - [SPECIES_BUNNELBY] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 0 }, - [SPECIES_DIGGERSBY] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_FLETCHLING] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 14 }, - [SPECIES_FLETCHINDER] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 11 }, - [SPECIES_TALONFLAME] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_SCATTERBUG] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 12 }, - [SPECIES_SPEWPA] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 12 }, - [SPECIES_VIVILLON_ICY_SNOW] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_LITLEO] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 9 }, - [SPECIES_PYROAR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_FLABEBE_RED_FLOWER] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 12 }, - [SPECIES_FLOETTE_RED_FLOWER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_FLORGES_RED_FLOWER] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_SKIDDO] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 8 }, - [SPECIES_GOGOAT] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 9 }, - [SPECIES_PANCHAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_PANGORO] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_FURFROU_NATURAL] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_ESPURR] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 7 }, - [SPECIES_MEOWSTIC_MALE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 9 }, - [SPECIES_HONEDGE] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 4 }, - [SPECIES_DOUBLADE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 7 }, - [SPECIES_AEGISLASH_SHIELD] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 9 }, - [SPECIES_SPRITZEE] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 11 }, - [SPECIES_AROMATISSE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 5 }, - [SPECIES_SWIRLIX] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 12 }, - [SPECIES_SLURPUFF] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_INKAY] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 9 }, - [SPECIES_MALAMAR] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 8 }, - [SPECIES_BINACLE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 5 }, - [SPECIES_BARBARACLE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SKRELP] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 5 }, - [SPECIES_DRAGALGE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_CLAUNCHER] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 11 }, - [SPECIES_CLAWITZER] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 11 }, - [SPECIES_HELIOPTILE] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 11 }, - [SPECIES_HELIOLISK] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, - [SPECIES_TYRUNT] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 11 }, - [SPECIES_TYRANTRUM] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 11 }, - [SPECIES_AMAURA] = { .size = MON_COORDS_SIZE(40, 64), .y_offset = 3 }, - [SPECIES_AURORUS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SYLVEON] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_HAWLUCHA] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 10 }, - [SPECIES_DEDENNE] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 12 }, - [SPECIES_CARBINK] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 7 }, - [SPECIES_GOOMY] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_SLIGGOO] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 0 }, - [SPECIES_GOODRA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_KLEFKI] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 8 }, - [SPECIES_PHANTUMP] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 9 }, - [SPECIES_TREVENANT] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 5 }, - [SPECIES_PUMPKABOO_AVERAGE] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 13 }, - [SPECIES_GOURGEIST_AVERAGE] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 3 }, - [SPECIES_BERGMITE] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 13 }, - [SPECIES_AVALUGG] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 12 }, - [SPECIES_NOIBAT] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 7 }, - [SPECIES_NOIVERN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_XERNEAS_NEUTRAL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_YVELTAL] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 10 }, - [SPECIES_ZYGARDE_50_AURA_BREAK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_DIANCIE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 7 }, - [SPECIES_HOOPA_CONFINED] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 8 }, - [SPECIES_VOLCANION] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, -#endif -#if P_GEN_7_POKEMON == TRUE - [SPECIES_ROWLET] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 15 }, - [SPECIES_DARTRIX] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 4 }, - [SPECIES_DECIDUEYE] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 0 }, - [SPECIES_LITTEN] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 11 }, - [SPECIES_TORRACAT] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_INCINEROAR] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_POPPLIO] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 11 }, - [SPECIES_BRIONNE] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_PRIMARINA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_PIKIPEK] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 8 }, - [SPECIES_TRUMBEAK] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 6 }, - [SPECIES_TOUCANNON] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_YUNGOOS] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 14 }, - [SPECIES_GUMSHOOS] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 7 }, - [SPECIES_GRUBBIN] = { .size = MON_COORDS_SIZE(64, 32), .y_offset = 16 }, - [SPECIES_CHARJABUG] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 15 }, - [SPECIES_VIKAVOLT] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_CRABRAWLER] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_CRABOMINABLE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_ORICORIO_BAILE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_CUTIEFLY] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 15 }, - [SPECIES_RIBOMBEE] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 11 }, - [SPECIES_ROCKRUFF] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_LYCANROC_MIDDAY] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_WISHIWASHI_SOLO] = { .size = MON_COORDS_SIZE(56, 32), .y_offset = 18 }, - [SPECIES_MAREANIE] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 15 }, - [SPECIES_TOXAPEX] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 8 }, - [SPECIES_MUDBRAY] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 8 }, - [SPECIES_MUDSDALE] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_DEWPIDER] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 8 }, - [SPECIES_ARAQUANID] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 12 }, - [SPECIES_FOMANTIS] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 5 }, - [SPECIES_LURANTIS] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 1 }, - [SPECIES_MORELULL] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 9 }, - [SPECIES_SHIINOTIC] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 8 }, - [SPECIES_SALANDIT] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 12 }, - [SPECIES_SALAZZLE] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 3 }, - [SPECIES_STUFFUL] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 12 }, - [SPECIES_BEWEAR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_BOUNSWEET] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 14 }, - [SPECIES_STEENEE] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 8 }, - [SPECIES_TSAREENA] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 6 }, - [SPECIES_COMFEY] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 11 }, - [SPECIES_ORANGURU] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 12 }, - [SPECIES_PASSIMIAN] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 7 }, - [SPECIES_WIMPOD] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 10 }, - [SPECIES_GOLISOPOD] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_SANDYGAST] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 11 }, - [SPECIES_PALOSSAND] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_PYUKUMUKU] = { .size = MON_COORDS_SIZE(48, 32), .y_offset = 16 }, - [SPECIES_TYPE_NULL] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 1 }, - [SPECIES_SILVALLY_NORMAL] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_MINIOR_METEOR_RED] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 14 }, - [SPECIES_KOMALA] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_TURTONATOR] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 9 }, - [SPECIES_TOGEDEMARU] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 13 }, - [SPECIES_MIMIKYU_DISGUISED] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 7 }, - [SPECIES_BRUXISH] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 14 }, - [SPECIES_DRAMPA] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_DHELMISE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_JANGMO_O] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 7 }, - [SPECIES_HAKAMO_O] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 5 }, - [SPECIES_KOMMO_O] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_TAPU_KOKO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_TAPU_LELE] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 6 }, - [SPECIES_TAPU_BULU] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_TAPU_FINI] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_COSMOG] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 10 }, - [SPECIES_COSMOEM] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 17 }, - [SPECIES_SOLGALEO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_LUNALA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_NIHILEGO] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_BUZZWOLE] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 14 }, - [SPECIES_PHEROMOSA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_XURKITREE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_CELESTEELA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_KARTANA] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 11 }, - [SPECIES_GUZZLORD] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 10 }, - [SPECIES_NECROZMA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_MAGEARNA] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_MARSHADOW] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 6 }, - [SPECIES_POIPOLE] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 6 }, - [SPECIES_NAGANADEL] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_STAKATAKA] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 12 }, - [SPECIES_BLACEPHALON] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_ZERAORA] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 11 }, - [SPECIES_MELTAN] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 12 }, - [SPECIES_MELMETAL] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 13 }, -#endif -#if P_GEN_8_POKEMON == TRUE - [SPECIES_GROOKEY] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 8 }, - [SPECIES_THWACKEY] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 5 }, - [SPECIES_RILLABOOM] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_SCORBUNNY] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 4 }, - [SPECIES_RABOOT] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 6 }, - [SPECIES_CINDERACE] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 4 }, - [SPECIES_SOBBLE] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 8 }, - [SPECIES_DRIZZILE] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 9 }, - [SPECIES_INTELEON] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 4 }, - [SPECIES_SKWOVET] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_GREEDENT] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_ROOKIDEE] = { .size = MON_COORDS_SIZE(64, 32), .y_offset = 17 }, - [SPECIES_CORVISQUIRE] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 9 }, - [SPECIES_CORVIKNIGHT] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_BLIPBUG] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_DOTTLER] = { .size = MON_COORDS_SIZE(56, 32), .y_offset = 17 }, - [SPECIES_ORBEETLE] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_NICKIT] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_THIEVUL] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, - [SPECIES_GOSSIFLEUR] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 15 }, - [SPECIES_ELDEGOSS] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 15 }, - [SPECIES_WOOLOO] = { .size = MON_COORDS_SIZE(56, 32), .y_offset = 18 }, - [SPECIES_DUBWOOL] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 13 }, - [SPECIES_CHEWTLE] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 8 }, - [SPECIES_DREDNAW] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 18 }, - [SPECIES_YAMPER] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 13 }, - [SPECIES_BOLTUND] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_ROLYCOLY] = { .size = MON_COORDS_SIZE(64, 32), .y_offset = 17 }, - [SPECIES_CARKOL] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 11 }, - [SPECIES_COALOSSAL] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 11 }, - [SPECIES_APPLIN] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 15 }, - [SPECIES_FLAPPLE] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 8 }, - [SPECIES_APPLETUN] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 11 }, - [SPECIES_SILICOBRA] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 10 }, - [SPECIES_SANDACONDA] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 13 }, - [SPECIES_CRAMORANT] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 1 }, - [SPECIES_ARROKUDA] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 15 }, - [SPECIES_BARRASKEWDA] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 11 }, - [SPECIES_TOXEL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 8 }, - [SPECIES_TOXTRICITY_AMPED] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_SIZZLIPEDE] = { .size = MON_COORDS_SIZE(40, 32), .y_offset = 16 }, - [SPECIES_CENTISKORCH] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, - [SPECIES_CLOBBOPUS] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 14 }, - [SPECIES_GRAPPLOCT] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 5 }, - [SPECIES_SINISTEA_PHONY] = { .size = MON_COORDS_SIZE(48, 32), .y_offset = 16 }, - [SPECIES_POLTEAGEIST_PHONY] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 13 }, - [SPECIES_HATENNA] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 12 }, - [SPECIES_HATTREM] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 8 }, - [SPECIES_HATTERENE] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 3 }, - [SPECIES_IMPIDIMP] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 13 }, - [SPECIES_MORGREM] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 11 }, - [SPECIES_GRIMMSNARL] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 10 }, - [SPECIES_OBSTAGOON] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_PERRSERKER] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_CURSOLA] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_SIRFETCHD] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 8 }, - [SPECIES_MR_RIME] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_RUNERIGUS] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_MILCERY] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 16 }, - [SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_FALINKS] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 15 }, - [SPECIES_PINCURCHIN] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 13 }, - [SPECIES_SNOM] = { .size = MON_COORDS_SIZE(48, 32), .y_offset = 17 }, - [SPECIES_FROSMOTH] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_STONJOURNER] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_EISCUE_ICE_FACE] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 0 }, - [SPECIES_INDEEDEE_MALE] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 7 }, - [SPECIES_MORPEKO_FULL_BELLY] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 8 }, - [SPECIES_CUFANT] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 11 }, - [SPECIES_COPPERAJAH] = { .size = MON_COORDS_SIZE(64, 32), .y_offset = 16 }, - [SPECIES_DRACOZOLT] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 8 }, - [SPECIES_ARCTOZOLT] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 8 }, - [SPECIES_DRACOVISH] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_ARCTOVISH] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 11 }, - [SPECIES_DURALUDON] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_DREEPY] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 15 }, - [SPECIES_DRAKLOAK] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 11 }, - [SPECIES_DRAGAPULT] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_ZACIAN_HERO_OF_MANY_BATTLES] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_ZAMAZENTA_HERO_OF_MANY_BATTLES] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_ETERNATUS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_KUBFU] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 9 }, - [SPECIES_URSHIFU_SINGLE_STRIKE_STYLE] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_ZARUDE] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_REGIELEKI] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_REGIDRAGO] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_GLASTRIER] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 5 }, - [SPECIES_SPECTRIER] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 5 }, - [SPECIES_CALYREX] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 10 }, - [SPECIES_WYRDEER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_KLEAVOR] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_URSALUNA] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 14 }, - [SPECIES_BASCULEGION_MALE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SNEASLER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_OVERQWIL] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_ENAMORUS_INCARNATE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, -#endif - [SPECIES_VENUSAUR_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 8 }, - [SPECIES_CHARIZARD_MEGA_X] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_CHARIZARD_MEGA_Y] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_BLASTOISE_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_BEEDRILL_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 5 }, - [SPECIES_PIDGEOT_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 7 }, - [SPECIES_ALAKAZAM_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SLOWBRO_MEGA] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_GENGAR_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_KANGASKHAN_MEGA] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_PINSIR_MEGA] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_GYARADOS_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_AERODACTYL_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 8 }, - [SPECIES_MEWTWO_MEGA_X] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 1 }, - [SPECIES_MEWTWO_MEGA_Y] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_AMPHAROS_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_STEELIX_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SCIZOR_MEGA] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_HERACROSS_MEGA] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_HOUNDOOM_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_TYRANITAR_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SCEPTILE_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_BLAZIKEN_MEGA] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_SWAMPERT_MEGA] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_GARDEVOIR_MEGA] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 6 }, - [SPECIES_SABLEYE_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 13 }, - [SPECIES_MAWILE_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 6 }, - [SPECIES_AGGRON_MEGA] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_MEDICHAM_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_MANECTRIC_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SHARPEDO_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_CAMERUPT_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 9 }, - [SPECIES_ALTARIA_MEGA] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 10 }, - [SPECIES_BANETTE_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_ABSOL_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_GLALIE_MEGA] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 10 }, - [SPECIES_SALAMENCE_MEGA] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 1 }, - [SPECIES_METAGROSS_MEGA] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_LATIAS_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_LATIOS_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, -#if P_GEN_4_POKEMON == TRUE - [SPECIES_LOPUNNY_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_GARCHOMP_MEGA] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_LUCARIO_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_ABOMASNOW_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_GALLADE_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, -#endif -#if P_GEN_5_POKEMON == TRUE - [SPECIES_AUDINO_MEGA] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, -#endif -#if P_GEN_6_POKEMON == TRUE - [SPECIES_DIANCIE_MEGA] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, -#endif - // Special Mega + Primals - [SPECIES_RAYQUAZA_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_KYOGRE_PRIMAL] = { .size = MON_COORDS_SIZE(64, 32), .y_offset = 18 }, - [SPECIES_GROUDON_PRIMAL] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 8 }, - // Alolan Forms - [SPECIES_RATTATA_ALOLAN] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_RATICATE_ALOLAN] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 8 }, - [SPECIES_RAICHU_ALOLAN] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 6 }, - [SPECIES_SANDSHREW_ALOLAN] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 13 }, - [SPECIES_SANDSLASH_ALOLAN] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_VULPIX_ALOLAN] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_NINETALES_ALOLAN] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_DIGLETT_ALOLAN] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 14 }, - [SPECIES_DUGTRIO_ALOLAN] = { .size = MON_COORDS_SIZE(64, 32), .y_offset = 17 }, - [SPECIES_MEOWTH_ALOLAN] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_PERSIAN_ALOLAN] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 8 }, - [SPECIES_GEODUDE_ALOLAN] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 13 }, - [SPECIES_GRAVELER_ALOLAN] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 10 }, - [SPECIES_GOLEM_ALOLAN] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 13 }, - [SPECIES_GRIMER_ALOLAN] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 14 }, - [SPECIES_MUK_ALOLAN] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_EXEGGUTOR_ALOLAN] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 0 }, - [SPECIES_MAROWAK_ALOLAN] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 6 }, - // Galarian Forms - [SPECIES_MEOWTH_GALARIAN] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 8 }, - [SPECIES_PONYTA_GALARIAN] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_RAPIDASH_GALARIAN] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_SLOWPOKE_GALARIAN] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 13 }, - [SPECIES_SLOWBRO_GALARIAN] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_FARFETCHD_GALARIAN] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 8 }, - [SPECIES_WEEZING_GALARIAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_MR_MIME_GALARIAN] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 8 }, - [SPECIES_ARTICUNO_GALARIAN] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_ZAPDOS_GALARIAN] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 9 }, - [SPECIES_MOLTRES_GALARIAN] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 5 }, - [SPECIES_SLOWKING_GALARIAN] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 3 }, - [SPECIES_CORSOLA_GALARIAN] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 8 }, - [SPECIES_ZIGZAGOON_GALARIAN] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 12 }, - [SPECIES_LINOONE_GALARIAN] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 13 }, -#if P_GEN_5_POKEMON == TRUE - [SPECIES_DARUMAKA_GALARIAN] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 11 }, - [SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, - [SPECIES_YAMASK_GALARIAN] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 13 }, - [SPECIES_STUNFISK_GALARIAN] = { .size = MON_COORDS_SIZE(64, 24), .y_offset = 23 }, -#endif - // Hisuian Forms - [SPECIES_GROWLITHE_HISUIAN] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 8 }, - [SPECIES_ARCANINE_HISUIAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_VOLTORB_HISUIAN] = { .size = MON_COORDS_SIZE(48, 32), .y_offset = 10 }, - [SPECIES_ELECTRODE_HISUIAN] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 7 }, - [SPECIES_TYPHLOSION_HISUIAN] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 2 }, - [SPECIES_QWILFISH_HISUIAN] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 6 }, - [SPECIES_SNEASEL_HISUIAN] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 3 }, -#if P_GEN_5_POKEMON == TRUE - [SPECIES_SAMUROTT_HISUIAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 8 }, - [SPECIES_LILLIGANT_HISUIAN] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 5 }, - [SPECIES_ZORUA_HISUIAN] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 1 }, - [SPECIES_ZOROARK_HISUIAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_BRAVIARY_HISUIAN] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, -#endif -#if P_GEN_6_POKEMON == TRUE - [SPECIES_SLIGGOO_HISUIAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_GOODRA_HISUIAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_AVALUGG_HISUIAN] = { .size = MON_COORDS_SIZE(64, 32), .y_offset = 16 }, -#endif -#if P_GEN_7_POKEMON == TRUE - [SPECIES_DECIDUEYE_HISUIAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, -#endif - // Misc Forms - // Cosplay Pikachu - [SPECIES_PIKACHU_COSPLAY] = PIKACHU_BACK_PIC_COORDS, - [SPECIES_PIKACHU_ROCK_STAR] = PIKACHU_BACK_PIC_COORDS, - [SPECIES_PIKACHU_BELLE] = PIKACHU_BACK_PIC_COORDS, - [SPECIES_PIKACHU_POP_STAR] = PIKACHU_BACK_PIC_COORDS, - [SPECIES_PIKACHU_PH_D] = PIKACHU_BACK_PIC_COORDS, - [SPECIES_PIKACHU_LIBRE] = PIKACHU_BACK_PIC_COORDS, - // Cap Pikachu - [SPECIES_PIKACHU_ORIGINAL_CAP] = PIKACHU_BACK_PIC_COORDS, - [SPECIES_PIKACHU_HOENN_CAP] = PIKACHU_BACK_PIC_COORDS, - [SPECIES_PIKACHU_SINNOH_CAP] = PIKACHU_BACK_PIC_COORDS, - [SPECIES_PIKACHU_UNOVA_CAP] = PIKACHU_BACK_PIC_COORDS, - [SPECIES_PIKACHU_KALOS_CAP] = PIKACHU_BACK_PIC_COORDS, - [SPECIES_PIKACHU_ALOLA_CAP] = PIKACHU_BACK_PIC_COORDS, - [SPECIES_PIKACHU_PARTNER_CAP] = PIKACHU_BACK_PIC_COORDS, - [SPECIES_PIKACHU_WORLD_CAP] = PIKACHU_BACK_PIC_COORDS, - // Pichu - [SPECIES_PICHU_SPIKY_EARED] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 8 }, - // Unown - [SPECIES_UNOWN_B] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 9 }, - [SPECIES_UNOWN_C] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 6 }, - [SPECIES_UNOWN_D] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 8 }, - [SPECIES_UNOWN_E] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 10 }, - [SPECIES_UNOWN_F] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 10 }, - [SPECIES_UNOWN_G] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 5 }, - [SPECIES_UNOWN_H] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 8 }, - [SPECIES_UNOWN_I] = { .size = MON_COORDS_SIZE(24, 56), .y_offset = 7 }, - [SPECIES_UNOWN_J] = { .size = MON_COORDS_SIZE(32, 48), .y_offset = 9 }, - [SPECIES_UNOWN_K] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_UNOWN_L] = { .size = MON_COORDS_SIZE(32, 48), .y_offset = 10 }, - [SPECIES_UNOWN_M] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 13 }, - [SPECIES_UNOWN_N] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 13 }, - [SPECIES_UNOWN_O] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 8 }, - [SPECIES_UNOWN_P] = { .size = MON_COORDS_SIZE(32, 48), .y_offset = 10 }, - [SPECIES_UNOWN_Q] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 15 }, - [SPECIES_UNOWN_R] = { .size = MON_COORDS_SIZE(32, 40), .y_offset = 12 }, - [SPECIES_UNOWN_S] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 4 }, - [SPECIES_UNOWN_T] = { .size = MON_COORDS_SIZE(32, 40), .y_offset = 13 }, - [SPECIES_UNOWN_U] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 13 }, - [SPECIES_UNOWN_V] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 11 }, - [SPECIES_UNOWN_W] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 13 }, - [SPECIES_UNOWN_X] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 15 }, - [SPECIES_UNOWN_Y] = { .size = MON_COORDS_SIZE(32, 48), .y_offset = 10 }, - [SPECIES_UNOWN_Z] = { .size = MON_COORDS_SIZE(32, 48), .y_offset = 10 }, - [SPECIES_UNOWN_EMARK] = { .size = MON_COORDS_SIZE(24, 56), .y_offset = 6 }, - [SPECIES_UNOWN_QMARK] = { .size = MON_COORDS_SIZE(32, 56), .y_offset = 6 }, - // Castform - [SPECIES_CASTFORM_SUNNY] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_CASTFORM_RAINY] = { .size = MON_COORDS_SIZE(40, 64), .y_offset = 0 }, - [SPECIES_CASTFORM_SNOWY] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - // Deoxys - [SPECIES_DEOXYS_ATTACK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_DEOXYS_DEFENSE] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 8 }, - [SPECIES_DEOXYS_SPEED] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, -#if P_GEN_4_POKEMON == TRUE - // Burmy - [SPECIES_BURMY_SANDY_CLOAK] = { .size = MON_COORDS_SIZE(32, 56), .y_offset = 7 }, - [SPECIES_BURMY_TRASH_CLOAK] = { .size = MON_COORDS_SIZE(40, 64), .y_offset = 0 }, - // Wormadam - [SPECIES_WORMADAM_SANDY_CLOAK] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, - [SPECIES_WORMADAM_TRASH_CLOAK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - // Cherrim - [SPECIES_CHERRIM_SUNSHINE] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - // Shellos - [SPECIES_SHELLOS_EAST_SEA] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 8 }, - // Gastrodon - [SPECIES_GASTRODON_EAST_SEA] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 3 }, - // Rotom - [SPECIES_ROTOM_HEAT] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 12 }, - [SPECIES_ROTOM_WASH] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 11 }, - [SPECIES_ROTOM_FROST] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_ROTOM_FAN] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 8 }, - [SPECIES_ROTOM_MOW] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 10 }, - // Origin Forme - [SPECIES_DIALGA_ORIGIN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_PALKIA_ORIGIN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_GIRATINA_ORIGIN] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - // Shaymin - [SPECIES_SHAYMIN_SKY] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, - // Arceus - [SPECIES_ARCEUS_FIGHTING] = ARCEUS_BACK_PIC_COORDS, - [SPECIES_ARCEUS_FLYING] = ARCEUS_BACK_PIC_COORDS, - [SPECIES_ARCEUS_POISON] = ARCEUS_BACK_PIC_COORDS, - [SPECIES_ARCEUS_GROUND] = ARCEUS_BACK_PIC_COORDS, - [SPECIES_ARCEUS_ROCK] = ARCEUS_BACK_PIC_COORDS, - [SPECIES_ARCEUS_BUG] = ARCEUS_BACK_PIC_COORDS, - [SPECIES_ARCEUS_GHOST] = ARCEUS_BACK_PIC_COORDS, - [SPECIES_ARCEUS_STEEL] = ARCEUS_BACK_PIC_COORDS, - [SPECIES_ARCEUS_FIRE] = ARCEUS_BACK_PIC_COORDS, - [SPECIES_ARCEUS_WATER] = ARCEUS_BACK_PIC_COORDS, - [SPECIES_ARCEUS_GRASS] = ARCEUS_BACK_PIC_COORDS, - [SPECIES_ARCEUS_ELECTRIC] = ARCEUS_BACK_PIC_COORDS, - [SPECIES_ARCEUS_PSYCHIC] = ARCEUS_BACK_PIC_COORDS, - [SPECIES_ARCEUS_ICE] = ARCEUS_BACK_PIC_COORDS, - [SPECIES_ARCEUS_DRAGON] = ARCEUS_BACK_PIC_COORDS, - [SPECIES_ARCEUS_DARK] = ARCEUS_BACK_PIC_COORDS, - [SPECIES_ARCEUS_FAIRY] = ARCEUS_BACK_PIC_COORDS, -#endif -#if P_GEN_5_POKEMON == TRUE - // Basculin - [SPECIES_BASCULIN_BLUE_STRIPED] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 16 }, - [SPECIES_BASCULIN_WHITE_STRIPED] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 16 }, - // Darmanitan - [SPECIES_DARMANITAN_ZEN_MODE] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 11 }, - [SPECIES_DARMANITAN_GALARIAN_ZEN_MODE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - // Deerling - [SPECIES_DEERLING_SUMMER] = DEERLING_BACK_PIC_COORDS, - [SPECIES_DEERLING_AUTUMN] = DEERLING_BACK_PIC_COORDS, - [SPECIES_DEERLING_WINTER] = DEERLING_BACK_PIC_COORDS, - // Sawsbuck - [SPECIES_SAWSBUCK_SUMMER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 5 }, - [SPECIES_SAWSBUCK_AUTUMN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 5 }, - [SPECIES_SAWSBUCK_WINTER] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 5 }, - // Therian Forms - [SPECIES_TORNADUS_THERIAN] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_THUNDURUS_THERIAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 5 }, - [SPECIES_LANDORUS_THERIAN] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - // Kyurem - [SPECIES_KYUREM_WHITE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_KYUREM_BLACK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - // Keldeo - [SPECIES_KELDEO_RESOLUTE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - // Meloetta - [SPECIES_MELOETTA_PIROUETTE] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 4 }, - // Genesect - [SPECIES_GENESECT_DOUSE_DRIVE] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 8 }, - [SPECIES_GENESECT_SHOCK_DRIVE] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 8 }, - [SPECIES_GENESECT_BURN_DRIVE] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 8 }, - [SPECIES_GENESECT_CHILL_DRIVE] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 8 }, -#endif -#if P_GEN_6_POKEMON == TRUE - // Greninja - [SPECIES_GRENINJA_BATTLE_BOND] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 11 }, - [SPECIES_GRENINJA_ASH] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 11 }, - // Vivillon - [SPECIES_VIVILLON_POLAR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_VIVILLON_TUNDRA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_VIVILLON_CONTINENTAL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_VIVILLON_GARDEN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_VIVILLON_ELEGANT] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_VIVILLON_MEADOW] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_VIVILLON_MODERN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_VIVILLON_MARINE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_VIVILLON_ARCHIPELAGO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_VIVILLON_HIGH_PLAINS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_VIVILLON_SANDSTORM] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_VIVILLON_RIVER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_VIVILLON_MONSOON] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_VIVILLON_SAVANNA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_VIVILLON_SUN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_VIVILLON_OCEAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_VIVILLON_JUNGLE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_VIVILLON_FANCY] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_VIVILLON_POKE_BALL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Flabébé - [SPECIES_FLABEBE_YELLOW_FLOWER] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 12 }, - [SPECIES_FLABEBE_ORANGE_FLOWER] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 12 }, - [SPECIES_FLABEBE_BLUE_FLOWER] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 12 }, - [SPECIES_FLABEBE_WHITE_FLOWER] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 12 }, - // Floette - [SPECIES_FLOETTE_YELLOW_FLOWER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_FLOETTE_ORANGE_FLOWER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_FLOETTE_BLUE_FLOWER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_FLOETTE_WHITE_FLOWER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_FLOETTE_ETERNAL_FLOWER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - // Florges - [SPECIES_FLORGES_YELLOW_FLOWER] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_FLORGES_ORANGE_FLOWER] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_FLORGES_BLUE_FLOWER] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_FLORGES_WHITE_FLOWER] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - // Furfrou - [SPECIES_FURFROU_HEART_TRIM] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 1 }, - [SPECIES_FURFROU_STAR_TRIM] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_FURFROU_DIAMOND_TRIM] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 1 }, - [SPECIES_FURFROU_DEBUTANTE_TRIM] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 1 }, - [SPECIES_FURFROU_MATRON_TRIM] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 1 }, - [SPECIES_FURFROU_DANDY_TRIM] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 1 }, - [SPECIES_FURFROU_LA_REINE_TRIM] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 1 }, - [SPECIES_FURFROU_KABUKI_TRIM] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 1 }, - [SPECIES_FURFROU_PHARAOH_TRIM] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 1 }, - // Meowstic - [SPECIES_MEOWSTIC_FEMALE] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 9 }, - // Aegislash - [SPECIES_AEGISLASH_BLADE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 9 }, - // Pumpkaboo - [SPECIES_PUMPKABOO_SMALL] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 14 }, - [SPECIES_PUMPKABOO_LARGE] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 13 }, - [SPECIES_PUMPKABOO_SUPER] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 12 }, - // Gourgeist - [SPECIES_GOURGEIST_SMALL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 4 }, - [SPECIES_GOURGEIST_LARGE] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 2 }, - [SPECIES_GOURGEIST_SUPER] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 1 }, - // Xerneas - [SPECIES_XERNEAS_ACTIVE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Zygarde - [SPECIES_ZYGARDE_10_AURA_BREAK] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 8 }, - [SPECIES_ZYGARDE_10_POWER_CONSTRUCT] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 8 }, - [SPECIES_ZYGARDE_50_POWER_CONSTRUCT] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_ZYGARDE_COMPLETE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Hoopa - [SPECIES_HOOPA_UNBOUND] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, -#endif -#if P_GEN_7_POKEMON == TRUE - // Oricorio - [SPECIES_ORICORIO_POM_POM] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_ORICORIO_PAU] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_ORICORIO_SENSU] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Rockruff - [SPECIES_ROCKRUFF_OWN_TEMPO] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - // Lycanroc - [SPECIES_LYCANROC_MIDNIGHT] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_LYCANROC_DUSK] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - // Wishiwashi - [SPECIES_WISHIWASHI_SCHOOL] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - // Silvally - [SPECIES_SILVALLY_FIGHTING] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_SILVALLY_FLYING] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_SILVALLY_POISON] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_SILVALLY_GROUND] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_SILVALLY_ROCK] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_SILVALLY_BUG] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_SILVALLY_GHOST] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_SILVALLY_STEEL] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_SILVALLY_FIRE] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_SILVALLY_WATER] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_SILVALLY_GRASS] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_SILVALLY_ELECTRIC] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_SILVALLY_PSYCHIC] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_SILVALLY_ICE] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_SILVALLY_DRAGON] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_SILVALLY_DARK] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_SILVALLY_FAIRY] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - // Minior - [SPECIES_MINIOR_METEOR_ORANGE] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 14 }, - [SPECIES_MINIOR_METEOR_YELLOW] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 14 }, - [SPECIES_MINIOR_METEOR_GREEN] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 14 }, - [SPECIES_MINIOR_METEOR_BLUE] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 14 }, - [SPECIES_MINIOR_METEOR_INDIGO] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 14 }, - [SPECIES_MINIOR_METEOR_VIOLET] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 14 }, - [SPECIES_MINIOR_CORE_RED] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 15 }, - [SPECIES_MINIOR_CORE_ORANGE] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 15 }, - [SPECIES_MINIOR_CORE_YELLOW] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 15 }, - [SPECIES_MINIOR_CORE_GREEN] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 15 }, - [SPECIES_MINIOR_CORE_BLUE] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 15 }, - [SPECIES_MINIOR_CORE_INDIGO] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 15 }, - [SPECIES_MINIOR_CORE_VIOLET] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 15 }, - // Mimikyu - [SPECIES_MIMIKYU_BUSTED] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 15 }, - // Necrozma - [SPECIES_NECROZMA_DUSK_MANE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_NECROZMA_DAWN_WINGS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_NECROZMA_ULTRA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - // Magearna - [SPECIES_MAGEARNA_ORIGINAL_COLOR] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, -#endif -#if P_GEN_8_POKEMON == TRUE - // Cramorant - [SPECIES_CRAMORANT_GULPING] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_CRAMORANT_GORGING] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - // Toxtricity - [SPECIES_TOXTRICITY_LOW_KEY] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 0 }, - // Sinistea - [SPECIES_SINISTEA_ANTIQUE] = { .size = MON_COORDS_SIZE(48, 32), .y_offset = 16 }, - // Polteageist - [SPECIES_POLTEAGEIST_ANTIQUE] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 13 }, - // Alcremie - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - // Eiscue - [SPECIES_EISCUE_NOICE_FACE] = { .size = MON_COORDS_SIZE(40, 64), .y_offset = 0 }, - // Indeedee - [SPECIES_INDEEDEE_FEMALE] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - // Morpeko - [SPECIES_MORPEKO_HANGRY] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 8 }, - // Zacian - [SPECIES_ZACIAN_CROWNED_SWORD] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - // Zamazenta - [SPECIES_ZAMAZENTA_CROWNED_SHIELD] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - // Eternatus - [SPECIES_ETERNATUS_ETERNAMAX] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - // Urshifu - [SPECIES_URSHIFU_RAPID_STRIKE_STYLE] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - // Zarude - [SPECIES_ZARUDE_DADA] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - // Calyrex - [SPECIES_CALYREX_ICE_RIDER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 7 }, - [SPECIES_CALYREX_SHADOW_RIDER] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - // Enamorus - [SPECIES_ENAMORUS_THERIAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - // Basculegion - [SPECIES_BASCULEGION_FEMALE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Gigantamax Forms - [SPECIES_VENUSAUR_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 11 }, - [SPECIES_CHARIZARD_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_BLASTOISE_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 5 }, - [SPECIES_BUTTERFREE_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_PIKACHU_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_MEOWTH_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 5 }, - [SPECIES_MACHAMP_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_GENGAR_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 6 }, - [SPECIES_KINGLER_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 5 }, - [SPECIES_LAPRAS_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_EEVEE_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 7 }, - [SPECIES_SNORLAX_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 5 }, - [SPECIES_GARBODOR_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_MELMETAL_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 14 }, - [SPECIES_RILLABOOM_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_CINDERACE_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_INTELEON_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_CORVIKNIGHT_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_ORBEETLE_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 6 }, - [SPECIES_DREDNAW_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 12 }, - [SPECIES_COALOSSAL_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 8 }, - [SPECIES_FLAPPLE_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_APPLETUN_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_SANDACONDA_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 5 }, - [SPECIES_TOXTRICITY_AMPED_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_TOXTRICITY_LOW_KEY_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_CENTISKORCH_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_HATTERENE_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_GRIMMSNARL_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 10 }, - [SPECIES_ALCREMIE_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 8 }, - [SPECIES_COPPERAJAH_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 7 }, - [SPECIES_DURALUDON_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_URSHIFU_SINGLE_STRIKE_STYLE_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_URSHIFU_RAPID_STRIKE_STYLE_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, -#endif - [SPECIES_EGG] = { .size = MON_COORDS_SIZE(24, 24), .y_offset = 20 }, -}; diff --git a/src/data/pokemon_graphics/back_pic_table.h b/src/data/pokemon_graphics/back_pic_table.h deleted file mode 100644 index bdab1335ea2d..000000000000 --- a/src/data/pokemon_graphics/back_pic_table.h +++ /dev/null @@ -1,1472 +0,0 @@ -const struct CompressedSpriteSheet gMonBackPicTable[NUM_SPECIES + 1] = -{ - SPECIES_SPRITE(NONE, gMonBackPic_CircledQuestionMark), - SPECIES_SPRITE(BULBASAUR, gMonBackPic_Bulbasaur), - SPECIES_SPRITE(IVYSAUR, gMonBackPic_Ivysaur), - SPECIES_SPRITE(VENUSAUR, gMonBackPic_Venusaur), - SPECIES_SPRITE(CHARMANDER, gMonBackPic_Charmander), - SPECIES_SPRITE(CHARMELEON, gMonBackPic_Charmeleon), - SPECIES_SPRITE(CHARIZARD, gMonBackPic_Charizard), - SPECIES_SPRITE(SQUIRTLE, gMonBackPic_Squirtle), - SPECIES_SPRITE(WARTORTLE, gMonBackPic_Wartortle), - SPECIES_SPRITE(BLASTOISE, gMonBackPic_Blastoise), - SPECIES_SPRITE(CATERPIE, gMonBackPic_Caterpie), - SPECIES_SPRITE(METAPOD, gMonBackPic_Metapod), - SPECIES_SPRITE(BUTTERFREE, gMonBackPic_Butterfree), - SPECIES_SPRITE(WEEDLE, gMonBackPic_Weedle), - SPECIES_SPRITE(KAKUNA, gMonBackPic_Kakuna), - SPECIES_SPRITE(BEEDRILL, gMonBackPic_Beedrill), - SPECIES_SPRITE(PIDGEY, gMonBackPic_Pidgey), - SPECIES_SPRITE(PIDGEOTTO, gMonBackPic_Pidgeotto), - SPECIES_SPRITE(PIDGEOT, gMonBackPic_Pidgeot), - SPECIES_SPRITE(RATTATA, gMonBackPic_Rattata), - SPECIES_SPRITE(RATICATE, gMonBackPic_Raticate), - SPECIES_SPRITE(SPEAROW, gMonBackPic_Spearow), - SPECIES_SPRITE(FEAROW, gMonBackPic_Fearow), - SPECIES_SPRITE(EKANS, gMonBackPic_Ekans), - SPECIES_SPRITE(ARBOK, gMonBackPic_Arbok), - SPECIES_SPRITE(PIKACHU, gMonBackPic_Pikachu), - SPECIES_SPRITE(RAICHU, gMonBackPic_Raichu), - SPECIES_SPRITE(SANDSHREW, gMonBackPic_Sandshrew), - SPECIES_SPRITE(SANDSLASH, gMonBackPic_Sandslash), - SPECIES_SPRITE(NIDORAN_F, gMonBackPic_NidoranF), - SPECIES_SPRITE(NIDORINA, gMonBackPic_Nidorina), - SPECIES_SPRITE(NIDOQUEEN, gMonBackPic_Nidoqueen), - SPECIES_SPRITE(NIDORAN_M, gMonBackPic_NidoranM), - SPECIES_SPRITE(NIDORINO, gMonBackPic_Nidorino), - SPECIES_SPRITE(NIDOKING, gMonBackPic_Nidoking), - SPECIES_SPRITE(CLEFAIRY, gMonBackPic_Clefairy), - SPECIES_SPRITE(CLEFABLE, gMonBackPic_Clefable), - SPECIES_SPRITE(VULPIX, gMonBackPic_Vulpix), - SPECIES_SPRITE(NINETALES, gMonBackPic_Ninetales), - SPECIES_SPRITE(JIGGLYPUFF, gMonBackPic_Jigglypuff), - SPECIES_SPRITE(WIGGLYTUFF, gMonBackPic_Wigglytuff), - SPECIES_SPRITE(ZUBAT, gMonBackPic_Zubat), - SPECIES_SPRITE(GOLBAT, gMonBackPic_Golbat), - SPECIES_SPRITE(ODDISH, gMonBackPic_Oddish), - SPECIES_SPRITE(GLOOM, gMonBackPic_Gloom), - SPECIES_SPRITE(VILEPLUME, gMonBackPic_Vileplume), - SPECIES_SPRITE(PARAS, gMonBackPic_Paras), - SPECIES_SPRITE(PARASECT, gMonBackPic_Parasect), - SPECIES_SPRITE(VENONAT, gMonBackPic_Venonat), - SPECIES_SPRITE(VENOMOTH, gMonBackPic_Venomoth), - SPECIES_SPRITE(DIGLETT, gMonBackPic_Diglett), - SPECIES_SPRITE(DUGTRIO, gMonBackPic_Dugtrio), - SPECIES_SPRITE(MEOWTH, gMonBackPic_Meowth), - SPECIES_SPRITE(PERSIAN, gMonBackPic_Persian), - SPECIES_SPRITE(PSYDUCK, gMonBackPic_Psyduck), - SPECIES_SPRITE(GOLDUCK, gMonBackPic_Golduck), - SPECIES_SPRITE(MANKEY, gMonBackPic_Mankey), - SPECIES_SPRITE(PRIMEAPE, gMonBackPic_Primeape), - SPECIES_SPRITE(GROWLITHE, gMonBackPic_Growlithe), - SPECIES_SPRITE(ARCANINE, gMonBackPic_Arcanine), - SPECIES_SPRITE(POLIWAG, gMonBackPic_Poliwag), - SPECIES_SPRITE(POLIWHIRL, gMonBackPic_Poliwhirl), - SPECIES_SPRITE(POLIWRATH, gMonBackPic_Poliwrath), - SPECIES_SPRITE(ABRA, gMonBackPic_Abra), - SPECIES_SPRITE(KADABRA, gMonBackPic_Kadabra), - SPECIES_SPRITE(ALAKAZAM, gMonBackPic_Alakazam), - SPECIES_SPRITE(MACHOP, gMonBackPic_Machop), - SPECIES_SPRITE(MACHOKE, gMonBackPic_Machoke), - SPECIES_SPRITE(MACHAMP, gMonBackPic_Machamp), - SPECIES_SPRITE(BELLSPROUT, gMonBackPic_Bellsprout), - SPECIES_SPRITE(WEEPINBELL, gMonBackPic_Weepinbell), - SPECIES_SPRITE(VICTREEBEL, gMonBackPic_Victreebel), - SPECIES_SPRITE(TENTACOOL, gMonBackPic_Tentacool), - SPECIES_SPRITE(TENTACRUEL, gMonBackPic_Tentacruel), - SPECIES_SPRITE(GEODUDE, gMonBackPic_Geodude), - SPECIES_SPRITE(GRAVELER, gMonBackPic_Graveler), - SPECIES_SPRITE(GOLEM, gMonBackPic_Golem), - SPECIES_SPRITE(PONYTA, gMonBackPic_Ponyta), - SPECIES_SPRITE(RAPIDASH, gMonBackPic_Rapidash), - SPECIES_SPRITE(SLOWPOKE, gMonBackPic_Slowpoke), - SPECIES_SPRITE(SLOWBRO, gMonBackPic_Slowbro), - SPECIES_SPRITE(MAGNEMITE, gMonBackPic_Magnemite), - SPECIES_SPRITE(MAGNETON, gMonBackPic_Magneton), - SPECIES_SPRITE(FARFETCHD, gMonBackPic_Farfetchd), - SPECIES_SPRITE(DODUO, gMonBackPic_Doduo), - SPECIES_SPRITE(DODRIO, gMonBackPic_Dodrio), - SPECIES_SPRITE(SEEL, gMonBackPic_Seel), - SPECIES_SPRITE(DEWGONG, gMonBackPic_Dewgong), - SPECIES_SPRITE(GRIMER, gMonBackPic_Grimer), - SPECIES_SPRITE(MUK, gMonBackPic_Muk), - SPECIES_SPRITE(SHELLDER, gMonBackPic_Shellder), - SPECIES_SPRITE(CLOYSTER, gMonBackPic_Cloyster), - SPECIES_SPRITE(GASTLY, gMonBackPic_Gastly), - SPECIES_SPRITE(HAUNTER, gMonBackPic_Haunter), - SPECIES_SPRITE(GENGAR, gMonBackPic_Gengar), - SPECIES_SPRITE(ONIX, gMonBackPic_Onix), - SPECIES_SPRITE(DROWZEE, gMonBackPic_Drowzee), - SPECIES_SPRITE(HYPNO, gMonBackPic_Hypno), - SPECIES_SPRITE(KRABBY, gMonBackPic_Krabby), - SPECIES_SPRITE(KINGLER, gMonBackPic_Kingler), - SPECIES_SPRITE(VOLTORB, gMonBackPic_Voltorb), - SPECIES_SPRITE(ELECTRODE, gMonBackPic_Electrode), - SPECIES_SPRITE(EXEGGCUTE, gMonBackPic_Exeggcute), - SPECIES_SPRITE(EXEGGUTOR, gMonBackPic_Exeggutor), - SPECIES_SPRITE(CUBONE, gMonBackPic_Cubone), - SPECIES_SPRITE(MAROWAK, gMonBackPic_Marowak), - SPECIES_SPRITE(HITMONLEE, gMonBackPic_Hitmonlee), - SPECIES_SPRITE(HITMONCHAN, gMonBackPic_Hitmonchan), - SPECIES_SPRITE(LICKITUNG, gMonBackPic_Lickitung), - SPECIES_SPRITE(KOFFING, gMonBackPic_Koffing), - SPECIES_SPRITE(WEEZING, gMonBackPic_Weezing), - SPECIES_SPRITE(RHYHORN, gMonBackPic_Rhyhorn), - SPECIES_SPRITE(RHYDON, gMonBackPic_Rhydon), - SPECIES_SPRITE(CHANSEY, gMonBackPic_Chansey), - SPECIES_SPRITE(TANGELA, gMonBackPic_Tangela), - SPECIES_SPRITE(KANGASKHAN, gMonBackPic_Kangaskhan), - SPECIES_SPRITE(HORSEA, gMonBackPic_Horsea), - SPECIES_SPRITE(SEADRA, gMonBackPic_Seadra), - SPECIES_SPRITE(GOLDEEN, gMonBackPic_Goldeen), - SPECIES_SPRITE(SEAKING, gMonBackPic_Seaking), - SPECIES_SPRITE(STARYU, gMonBackPic_Staryu), - SPECIES_SPRITE(STARMIE, gMonBackPic_Starmie), - SPECIES_SPRITE(MR_MIME, gMonBackPic_MrMime), - SPECIES_SPRITE(SCYTHER, gMonBackPic_Scyther), - SPECIES_SPRITE(JYNX, gMonBackPic_Jynx), - SPECIES_SPRITE(ELECTABUZZ, gMonBackPic_Electabuzz), - SPECIES_SPRITE(MAGMAR, gMonBackPic_Magmar), - SPECIES_SPRITE(PINSIR, gMonBackPic_Pinsir), - SPECIES_SPRITE(TAUROS, gMonBackPic_Tauros), - SPECIES_SPRITE(MAGIKARP, gMonBackPic_Magikarp), - SPECIES_SPRITE(GYARADOS, gMonBackPic_Gyarados), - SPECIES_SPRITE(LAPRAS, gMonBackPic_Lapras), - SPECIES_SPRITE(DITTO, gMonBackPic_Ditto), - SPECIES_SPRITE(EEVEE, gMonBackPic_Eevee), - SPECIES_SPRITE(VAPOREON, gMonBackPic_Vaporeon), - SPECIES_SPRITE(JOLTEON, gMonBackPic_Jolteon), - SPECIES_SPRITE(FLAREON, gMonBackPic_Flareon), - SPECIES_SPRITE(PORYGON, gMonBackPic_Porygon), - SPECIES_SPRITE(OMANYTE, gMonBackPic_Omanyte), - SPECIES_SPRITE(OMASTAR, gMonBackPic_Omastar), - SPECIES_SPRITE(KABUTO, gMonBackPic_Kabuto), - SPECIES_SPRITE(KABUTOPS, gMonBackPic_Kabutops), - SPECIES_SPRITE(AERODACTYL, gMonBackPic_Aerodactyl), - SPECIES_SPRITE(SNORLAX, gMonBackPic_Snorlax), - SPECIES_SPRITE(ARTICUNO, gMonBackPic_Articuno), - SPECIES_SPRITE(ZAPDOS, gMonBackPic_Zapdos), - SPECIES_SPRITE(MOLTRES, gMonBackPic_Moltres), - SPECIES_SPRITE(DRATINI, gMonBackPic_Dratini), - SPECIES_SPRITE(DRAGONAIR, gMonBackPic_Dragonair), - SPECIES_SPRITE(DRAGONITE, gMonBackPic_Dragonite), - SPECIES_SPRITE(MEWTWO, gMonBackPic_Mewtwo), - SPECIES_SPRITE(MEW, gMonBackPic_Mew), - SPECIES_SPRITE(CHIKORITA, gMonBackPic_Chikorita), - SPECIES_SPRITE(BAYLEEF, gMonBackPic_Bayleef), - SPECIES_SPRITE(MEGANIUM, gMonBackPic_Meganium), - SPECIES_SPRITE(CYNDAQUIL, gMonBackPic_Cyndaquil), - SPECIES_SPRITE(QUILAVA, gMonBackPic_Quilava), - SPECIES_SPRITE(TYPHLOSION, gMonBackPic_Typhlosion), - SPECIES_SPRITE(TOTODILE, gMonBackPic_Totodile), - SPECIES_SPRITE(CROCONAW, gMonBackPic_Croconaw), - SPECIES_SPRITE(FERALIGATR, gMonBackPic_Feraligatr), - SPECIES_SPRITE(SENTRET, gMonBackPic_Sentret), - SPECIES_SPRITE(FURRET, gMonBackPic_Furret), - SPECIES_SPRITE(HOOTHOOT, gMonBackPic_Hoothoot), - SPECIES_SPRITE(NOCTOWL, gMonBackPic_Noctowl), - SPECIES_SPRITE(LEDYBA, gMonBackPic_Ledyba), - SPECIES_SPRITE(LEDIAN, gMonBackPic_Ledian), - SPECIES_SPRITE(SPINARAK, gMonBackPic_Spinarak), - SPECIES_SPRITE(ARIADOS, gMonBackPic_Ariados), - SPECIES_SPRITE(CROBAT, gMonBackPic_Crobat), - SPECIES_SPRITE(CHINCHOU, gMonBackPic_Chinchou), - SPECIES_SPRITE(LANTURN, gMonBackPic_Lanturn), - SPECIES_SPRITE(PICHU, gMonBackPic_Pichu), - SPECIES_SPRITE(CLEFFA, gMonBackPic_Cleffa), - SPECIES_SPRITE(IGGLYBUFF, gMonBackPic_Igglybuff), - SPECIES_SPRITE(TOGEPI, gMonBackPic_Togepi), - SPECIES_SPRITE(TOGETIC, gMonBackPic_Togetic), - SPECIES_SPRITE(NATU, gMonBackPic_Natu), - SPECIES_SPRITE(XATU, gMonBackPic_Xatu), - SPECIES_SPRITE(MAREEP, gMonBackPic_Mareep), - SPECIES_SPRITE(FLAAFFY, gMonBackPic_Flaaffy), - SPECIES_SPRITE(AMPHAROS, gMonBackPic_Ampharos), - SPECIES_SPRITE(BELLOSSOM, gMonBackPic_Bellossom), - SPECIES_SPRITE(MARILL, gMonBackPic_Marill), - SPECIES_SPRITE(AZUMARILL, gMonBackPic_Azumarill), - SPECIES_SPRITE(SUDOWOODO, gMonBackPic_Sudowoodo), - SPECIES_SPRITE(POLITOED, gMonBackPic_Politoed), - SPECIES_SPRITE(HOPPIP, gMonBackPic_Hoppip), - SPECIES_SPRITE(SKIPLOOM, gMonBackPic_Skiploom), - SPECIES_SPRITE(JUMPLUFF, gMonBackPic_Jumpluff), - SPECIES_SPRITE(AIPOM, gMonBackPic_Aipom), - SPECIES_SPRITE(SUNKERN, gMonBackPic_Sunkern), - SPECIES_SPRITE(SUNFLORA, gMonBackPic_Sunflora), - SPECIES_SPRITE(YANMA, gMonBackPic_Yanma), - SPECIES_SPRITE(WOOPER, gMonBackPic_Wooper), - SPECIES_SPRITE(QUAGSIRE, gMonBackPic_Quagsire), - SPECIES_SPRITE(ESPEON, gMonBackPic_Espeon), - SPECIES_SPRITE(UMBREON, gMonBackPic_Umbreon), - SPECIES_SPRITE(MURKROW, gMonBackPic_Murkrow), - SPECIES_SPRITE(SLOWKING, gMonBackPic_Slowking), - SPECIES_SPRITE(MISDREAVUS, gMonBackPic_Misdreavus), - SPECIES_SPRITE(UNOWN, gMonBackPic_Unown), - SPECIES_SPRITE(WOBBUFFET, gMonBackPic_Wobbuffet), - SPECIES_SPRITE(GIRAFARIG, gMonBackPic_Girafarig), - SPECIES_SPRITE(PINECO, gMonBackPic_Pineco), - SPECIES_SPRITE(FORRETRESS, gMonBackPic_Forretress), - SPECIES_SPRITE(DUNSPARCE, gMonBackPic_Dunsparce), - SPECIES_SPRITE(GLIGAR, gMonBackPic_Gligar), - SPECIES_SPRITE(STEELIX, gMonBackPic_Steelix), - SPECIES_SPRITE(SNUBBULL, gMonBackPic_Snubbull), - SPECIES_SPRITE(GRANBULL, gMonBackPic_Granbull), - SPECIES_SPRITE(QWILFISH, gMonBackPic_Qwilfish), - SPECIES_SPRITE(SCIZOR, gMonBackPic_Scizor), - SPECIES_SPRITE(SHUCKLE, gMonBackPic_Shuckle), - SPECIES_SPRITE(HERACROSS, gMonBackPic_Heracross), - SPECIES_SPRITE(SNEASEL, gMonBackPic_Sneasel), - SPECIES_SPRITE(TEDDIURSA, gMonBackPic_Teddiursa), - SPECIES_SPRITE(URSARING, gMonBackPic_Ursaring), - SPECIES_SPRITE(SLUGMA, gMonBackPic_Slugma), - SPECIES_SPRITE(MAGCARGO, gMonBackPic_Magcargo), - SPECIES_SPRITE(SWINUB, gMonBackPic_Swinub), - SPECIES_SPRITE(PILOSWINE, gMonBackPic_Piloswine), - SPECIES_SPRITE(CORSOLA, gMonBackPic_Corsola), - SPECIES_SPRITE(REMORAID, gMonBackPic_Remoraid), - SPECIES_SPRITE(OCTILLERY, gMonBackPic_Octillery), - SPECIES_SPRITE(DELIBIRD, gMonBackPic_Delibird), - SPECIES_SPRITE(MANTINE, gMonBackPic_Mantine), - SPECIES_SPRITE(SKARMORY, gMonBackPic_Skarmory), - SPECIES_SPRITE(HOUNDOUR, gMonBackPic_Houndour), - SPECIES_SPRITE(HOUNDOOM, gMonBackPic_Houndoom), - SPECIES_SPRITE(KINGDRA, gMonBackPic_Kingdra), - SPECIES_SPRITE(PHANPY, gMonBackPic_Phanpy), - SPECIES_SPRITE(DONPHAN, gMonBackPic_Donphan), - SPECIES_SPRITE(PORYGON2, gMonBackPic_Porygon2), - SPECIES_SPRITE(STANTLER, gMonBackPic_Stantler), - SPECIES_SPRITE(SMEARGLE, gMonBackPic_Smeargle), - SPECIES_SPRITE(TYROGUE, gMonBackPic_Tyrogue), - SPECIES_SPRITE(HITMONTOP, gMonBackPic_Hitmontop), - SPECIES_SPRITE(SMOOCHUM, gMonBackPic_Smoochum), - SPECIES_SPRITE(ELEKID, gMonBackPic_Elekid), - SPECIES_SPRITE(MAGBY, gMonBackPic_Magby), - SPECIES_SPRITE(MILTANK, gMonBackPic_Miltank), - SPECIES_SPRITE(BLISSEY, gMonBackPic_Blissey), - SPECIES_SPRITE(RAIKOU, gMonBackPic_Raikou), - SPECIES_SPRITE(ENTEI, gMonBackPic_Entei), - SPECIES_SPRITE(SUICUNE, gMonBackPic_Suicune), - SPECIES_SPRITE(LARVITAR, gMonBackPic_Larvitar), - SPECIES_SPRITE(PUPITAR, gMonBackPic_Pupitar), - SPECIES_SPRITE(TYRANITAR, gMonBackPic_Tyranitar), - SPECIES_SPRITE(LUGIA, gMonBackPic_Lugia), - SPECIES_SPRITE(HO_OH, gMonBackPic_HoOh), - SPECIES_SPRITE(CELEBI, gMonBackPic_Celebi), - SPECIES_SPRITE(TREECKO, gMonBackPic_Treecko), - SPECIES_SPRITE(GROVYLE, gMonBackPic_Grovyle), - SPECIES_SPRITE(SCEPTILE, gMonBackPic_Sceptile), - SPECIES_SPRITE(TORCHIC, gMonBackPic_Torchic), - SPECIES_SPRITE(COMBUSKEN, gMonBackPic_Combusken), - SPECIES_SPRITE(BLAZIKEN, gMonBackPic_Blaziken), - SPECIES_SPRITE(MUDKIP, gMonBackPic_Mudkip), - SPECIES_SPRITE(MARSHTOMP, gMonBackPic_Marshtomp), - SPECIES_SPRITE(SWAMPERT, gMonBackPic_Swampert), - SPECIES_SPRITE(POOCHYENA, gMonBackPic_Poochyena), - SPECIES_SPRITE(MIGHTYENA, gMonBackPic_Mightyena), - SPECIES_SPRITE(ZIGZAGOON, gMonBackPic_Zigzagoon), - SPECIES_SPRITE(LINOONE, gMonBackPic_Linoone), - SPECIES_SPRITE(WURMPLE, gMonBackPic_Wurmple), - SPECIES_SPRITE(SILCOON, gMonBackPic_Silcoon), - SPECIES_SPRITE(BEAUTIFLY, gMonBackPic_Beautifly), - SPECIES_SPRITE(CASCOON, gMonBackPic_Cascoon), - SPECIES_SPRITE(DUSTOX, gMonBackPic_Dustox), - SPECIES_SPRITE(LOTAD, gMonBackPic_Lotad), - SPECIES_SPRITE(LOMBRE, gMonBackPic_Lombre), - SPECIES_SPRITE(LUDICOLO, gMonBackPic_Ludicolo), - SPECIES_SPRITE(SEEDOT, gMonBackPic_Seedot), - SPECIES_SPRITE(NUZLEAF, gMonBackPic_Nuzleaf), - SPECIES_SPRITE(SHIFTRY, gMonBackPic_Shiftry), - SPECIES_SPRITE(NINCADA, gMonBackPic_Nincada), - SPECIES_SPRITE(NINJASK, gMonBackPic_Ninjask), - SPECIES_SPRITE(SHEDINJA, gMonBackPic_Shedinja), - SPECIES_SPRITE(TAILLOW, gMonBackPic_Taillow), - SPECIES_SPRITE(SWELLOW, gMonBackPic_Swellow), - SPECIES_SPRITE(SHROOMISH, gMonBackPic_Shroomish), - SPECIES_SPRITE(BRELOOM, gMonBackPic_Breloom), - SPECIES_SPRITE(SPINDA, gMonBackPic_Spinda), - SPECIES_SPRITE(WINGULL, gMonBackPic_Wingull), - SPECIES_SPRITE(PELIPPER, gMonBackPic_Pelipper), - SPECIES_SPRITE(SURSKIT, gMonBackPic_Surskit), - SPECIES_SPRITE(MASQUERAIN, gMonBackPic_Masquerain), - SPECIES_SPRITE(WAILMER, gMonBackPic_Wailmer), - SPECIES_SPRITE(WAILORD, gMonBackPic_Wailord), - SPECIES_SPRITE(SKITTY, gMonBackPic_Skitty), - SPECIES_SPRITE(DELCATTY, gMonBackPic_Delcatty), - SPECIES_SPRITE(KECLEON, gMonBackPic_Kecleon), - SPECIES_SPRITE(BALTOY, gMonBackPic_Baltoy), - SPECIES_SPRITE(CLAYDOL, gMonBackPic_Claydol), - SPECIES_SPRITE(NOSEPASS, gMonBackPic_Nosepass), - SPECIES_SPRITE(TORKOAL, gMonBackPic_Torkoal), - SPECIES_SPRITE(SABLEYE, gMonBackPic_Sableye), - SPECIES_SPRITE(BARBOACH, gMonBackPic_Barboach), - SPECIES_SPRITE(WHISCASH, gMonBackPic_Whiscash), - SPECIES_SPRITE(LUVDISC, gMonBackPic_Luvdisc), - SPECIES_SPRITE(CORPHISH, gMonBackPic_Corphish), - SPECIES_SPRITE(CRAWDAUNT, gMonBackPic_Crawdaunt), - SPECIES_SPRITE(FEEBAS, gMonBackPic_Feebas), - SPECIES_SPRITE(MILOTIC, gMonBackPic_Milotic), - SPECIES_SPRITE(CARVANHA, gMonBackPic_Carvanha), - SPECIES_SPRITE(SHARPEDO, gMonBackPic_Sharpedo), - SPECIES_SPRITE(TRAPINCH, gMonBackPic_Trapinch), - SPECIES_SPRITE(VIBRAVA, gMonBackPic_Vibrava), - SPECIES_SPRITE(FLYGON, gMonBackPic_Flygon), - SPECIES_SPRITE(MAKUHITA, gMonBackPic_Makuhita), - SPECIES_SPRITE(HARIYAMA, gMonBackPic_Hariyama), - SPECIES_SPRITE(ELECTRIKE, gMonBackPic_Electrike), - SPECIES_SPRITE(MANECTRIC, gMonBackPic_Manectric), - SPECIES_SPRITE(NUMEL, gMonBackPic_Numel), - SPECIES_SPRITE(CAMERUPT, gMonBackPic_Camerupt), - SPECIES_SPRITE(SPHEAL, gMonBackPic_Spheal), - SPECIES_SPRITE(SEALEO, gMonBackPic_Sealeo), - SPECIES_SPRITE(WALREIN, gMonBackPic_Walrein), - SPECIES_SPRITE(CACNEA, gMonBackPic_Cacnea), - SPECIES_SPRITE(CACTURNE, gMonBackPic_Cacturne), - SPECIES_SPRITE(SNORUNT, gMonBackPic_Snorunt), - SPECIES_SPRITE(GLALIE, gMonBackPic_Glalie), - SPECIES_SPRITE(LUNATONE, gMonBackPic_Lunatone), - SPECIES_SPRITE(SOLROCK, gMonBackPic_Solrock), - SPECIES_SPRITE(AZURILL, gMonBackPic_Azurill), - SPECIES_SPRITE(SPOINK, gMonBackPic_Spoink), - SPECIES_SPRITE(GRUMPIG, gMonBackPic_Grumpig), - SPECIES_SPRITE(PLUSLE, gMonBackPic_Plusle), - SPECIES_SPRITE(MINUN, gMonBackPic_Minun), - SPECIES_SPRITE(MAWILE, gMonBackPic_Mawile), - SPECIES_SPRITE(MEDITITE, gMonBackPic_Meditite), - SPECIES_SPRITE(MEDICHAM, gMonBackPic_Medicham), - SPECIES_SPRITE(SWABLU, gMonBackPic_Swablu), - SPECIES_SPRITE(ALTARIA, gMonBackPic_Altaria), - SPECIES_SPRITE(WYNAUT, gMonBackPic_Wynaut), - SPECIES_SPRITE(DUSKULL, gMonBackPic_Duskull), - SPECIES_SPRITE(DUSCLOPS, gMonBackPic_Dusclops), - SPECIES_SPRITE(ROSELIA, gMonBackPic_Roselia), - SPECIES_SPRITE(SLAKOTH, gMonBackPic_Slakoth), - SPECIES_SPRITE(VIGOROTH, gMonBackPic_Vigoroth), - SPECIES_SPRITE(SLAKING, gMonBackPic_Slaking), - SPECIES_SPRITE(GULPIN, gMonBackPic_Gulpin), - SPECIES_SPRITE(SWALOT, gMonBackPic_Swalot), - SPECIES_SPRITE(TROPIUS, gMonBackPic_Tropius), - SPECIES_SPRITE(WHISMUR, gMonBackPic_Whismur), - SPECIES_SPRITE(LOUDRED, gMonBackPic_Loudred), - SPECIES_SPRITE(EXPLOUD, gMonBackPic_Exploud), - SPECIES_SPRITE(CLAMPERL, gMonBackPic_Clamperl), - SPECIES_SPRITE(HUNTAIL, gMonBackPic_Huntail), - SPECIES_SPRITE(GOREBYSS, gMonBackPic_Gorebyss), - SPECIES_SPRITE(ABSOL, gMonBackPic_Absol), - SPECIES_SPRITE(SHUPPET, gMonBackPic_Shuppet), - SPECIES_SPRITE(BANETTE, gMonBackPic_Banette), - SPECIES_SPRITE(SEVIPER, gMonBackPic_Seviper), - SPECIES_SPRITE(ZANGOOSE, gMonBackPic_Zangoose), - SPECIES_SPRITE(RELICANTH, gMonBackPic_Relicanth), - SPECIES_SPRITE(ARON, gMonBackPic_Aron), - SPECIES_SPRITE(LAIRON, gMonBackPic_Lairon), - SPECIES_SPRITE(AGGRON, gMonBackPic_Aggron), - SPECIES_SPRITE(CASTFORM_NORMAL, gMonBackPic_CastformNormal), - SPECIES_SPRITE(VOLBEAT, gMonBackPic_Volbeat), - SPECIES_SPRITE(ILLUMISE, gMonBackPic_Illumise), - SPECIES_SPRITE(LILEEP, gMonBackPic_Lileep), - SPECIES_SPRITE(CRADILY, gMonBackPic_Cradily), - SPECIES_SPRITE(ANORITH, gMonBackPic_Anorith), - SPECIES_SPRITE(ARMALDO, gMonBackPic_Armaldo), - SPECIES_SPRITE(RALTS, gMonBackPic_Ralts), - SPECIES_SPRITE(KIRLIA, gMonBackPic_Kirlia), - SPECIES_SPRITE(GARDEVOIR, gMonBackPic_Gardevoir), - SPECIES_SPRITE(BAGON, gMonBackPic_Bagon), - SPECIES_SPRITE(SHELGON, gMonBackPic_Shelgon), - SPECIES_SPRITE(SALAMENCE, gMonBackPic_Salamence), - SPECIES_SPRITE(BELDUM, gMonBackPic_Beldum), - SPECIES_SPRITE(METANG, gMonBackPic_Metang), - SPECIES_SPRITE(METAGROSS, gMonBackPic_Metagross), - SPECIES_SPRITE(REGIROCK, gMonBackPic_Regirock), - SPECIES_SPRITE(REGICE, gMonBackPic_Regice), - SPECIES_SPRITE(REGISTEEL, gMonBackPic_Registeel), - SPECIES_SPRITE(KYOGRE, gMonBackPic_Kyogre), - SPECIES_SPRITE(GROUDON, gMonBackPic_Groudon), - SPECIES_SPRITE(RAYQUAZA, gMonBackPic_Rayquaza), - SPECIES_SPRITE(LATIAS, gMonBackPic_Latias), - SPECIES_SPRITE(LATIOS, gMonBackPic_Latios), - SPECIES_SPRITE(JIRACHI, gMonBackPic_Jirachi), - SPECIES_SPRITE(DEOXYS_NORMAL, gMonBackPic_DeoxysNormal), - SPECIES_SPRITE(CHIMECHO, gMonBackPic_Chimecho), -#if P_GEN_4_POKEMON == TRUE - SPECIES_SPRITE(TURTWIG, gMonBackPic_Turtwig), - SPECIES_SPRITE(GROTLE, gMonBackPic_Grotle), - SPECIES_SPRITE(TORTERRA, gMonBackPic_Torterra), - SPECIES_SPRITE(CHIMCHAR, gMonBackPic_Chimchar), - SPECIES_SPRITE(MONFERNO, gMonBackPic_Monferno), - SPECIES_SPRITE(INFERNAPE, gMonBackPic_Infernape), - SPECIES_SPRITE(PIPLUP, gMonBackPic_Piplup), - SPECIES_SPRITE(PRINPLUP, gMonBackPic_Prinplup), - SPECIES_SPRITE(EMPOLEON, gMonBackPic_Empoleon), - SPECIES_SPRITE(STARLY, gMonBackPic_Starly), - SPECIES_SPRITE(STARAVIA, gMonBackPic_Staravia), - SPECIES_SPRITE(STARAPTOR, gMonBackPic_Staraptor), - SPECIES_SPRITE(BIDOOF, gMonBackPic_Bidoof), - SPECIES_SPRITE(BIBAREL, gMonBackPic_Bibarel), - SPECIES_SPRITE(KRICKETOT, gMonBackPic_Kricketot), - SPECIES_SPRITE(KRICKETUNE, gMonBackPic_Kricketune), - SPECIES_SPRITE(SHINX, gMonBackPic_Shinx), - SPECIES_SPRITE(LUXIO, gMonBackPic_Luxio), - SPECIES_SPRITE(LUXRAY, gMonBackPic_Luxray), - SPECIES_SPRITE(BUDEW, gMonBackPic_Budew), - SPECIES_SPRITE(ROSERADE, gMonBackPic_Roserade), - SPECIES_SPRITE(CRANIDOS, gMonBackPic_Cranidos), - SPECIES_SPRITE(RAMPARDOS, gMonBackPic_Rampardos), - SPECIES_SPRITE(SHIELDON, gMonBackPic_Shieldon), - SPECIES_SPRITE(BASTIODON, gMonBackPic_Bastiodon), - SPECIES_SPRITE(BURMY_PLANT_CLOAK, gMonBackPic_BurmyPlantCloak), - SPECIES_SPRITE(WORMADAM_PLANT_CLOAK, gMonBackPic_WormadamPlantCloak), - SPECIES_SPRITE(MOTHIM, gMonBackPic_Mothim), - SPECIES_SPRITE(COMBEE, gMonBackPic_Combee), - SPECIES_SPRITE(VESPIQUEN, gMonBackPic_Vespiquen), - SPECIES_SPRITE(PACHIRISU, gMonBackPic_Pachirisu), - SPECIES_SPRITE(BUIZEL, gMonBackPic_Buizel), - SPECIES_SPRITE(FLOATZEL, gMonBackPic_Floatzel), - SPECIES_SPRITE(CHERUBI, gMonBackPic_Cherubi), - SPECIES_SPRITE(CHERRIM_OVERCAST, gMonBackPic_CherrimOvercast), - SPECIES_SPRITE(SHELLOS_WEST_SEA, gMonBackPic_ShellosWestSea), - SPECIES_SPRITE(GASTRODON_WEST_SEA, gMonBackPic_GastrodonWestSea), - SPECIES_SPRITE(AMBIPOM, gMonBackPic_Ambipom), - SPECIES_SPRITE(DRIFLOON, gMonBackPic_Drifloon), - SPECIES_SPRITE(DRIFBLIM, gMonBackPic_Drifblim), - SPECIES_SPRITE(BUNEARY, gMonBackPic_Buneary), - SPECIES_SPRITE(LOPUNNY, gMonBackPic_Lopunny), - SPECIES_SPRITE(MISMAGIUS, gMonBackPic_Mismagius), - SPECIES_SPRITE(HONCHKROW, gMonBackPic_Honchkrow), - SPECIES_SPRITE(GLAMEOW, gMonBackPic_Glameow), - SPECIES_SPRITE(PURUGLY, gMonBackPic_Purugly), - SPECIES_SPRITE(CHINGLING, gMonBackPic_Chingling), - SPECIES_SPRITE(STUNKY, gMonBackPic_Stunky), - SPECIES_SPRITE(SKUNTANK, gMonBackPic_Skuntank), - SPECIES_SPRITE(BRONZOR, gMonBackPic_Bronzor), - SPECIES_SPRITE(BRONZONG, gMonBackPic_Bronzong), - SPECIES_SPRITE(BONSLY, gMonBackPic_Bonsly), - SPECIES_SPRITE(MIME_JR, gMonBackPic_MimeJr), - SPECIES_SPRITE(HAPPINY, gMonBackPic_Happiny), - SPECIES_SPRITE(CHATOT, gMonBackPic_Chatot), - SPECIES_SPRITE(SPIRITOMB, gMonBackPic_Spiritomb), - SPECIES_SPRITE(GIBLE, gMonBackPic_Gible), - SPECIES_SPRITE(GABITE, gMonBackPic_Gabite), - SPECIES_SPRITE(GARCHOMP, gMonBackPic_Garchomp), - SPECIES_SPRITE(MUNCHLAX, gMonBackPic_Munchlax), - SPECIES_SPRITE(RIOLU, gMonBackPic_Riolu), - SPECIES_SPRITE(LUCARIO, gMonBackPic_Lucario), - SPECIES_SPRITE(HIPPOPOTAS, gMonBackPic_Hippopotas), - SPECIES_SPRITE(HIPPOWDON, gMonBackPic_Hippowdon), - SPECIES_SPRITE(SKORUPI, gMonBackPic_Skorupi), - SPECIES_SPRITE(DRAPION, gMonBackPic_Drapion), - SPECIES_SPRITE(CROAGUNK, gMonBackPic_Croagunk), - SPECIES_SPRITE(TOXICROAK, gMonBackPic_Toxicroak), - SPECIES_SPRITE(CARNIVINE, gMonBackPic_Carnivine), - SPECIES_SPRITE(FINNEON, gMonBackPic_Finneon), - SPECIES_SPRITE(LUMINEON, gMonBackPic_Lumineon), - SPECIES_SPRITE(MANTYKE, gMonBackPic_Mantyke), - SPECIES_SPRITE(SNOVER, gMonBackPic_Snover), - SPECIES_SPRITE(ABOMASNOW, gMonBackPic_Abomasnow), - SPECIES_SPRITE(WEAVILE, gMonBackPic_Weavile), - SPECIES_SPRITE(MAGNEZONE, gMonBackPic_Magnezone), - SPECIES_SPRITE(LICKILICKY, gMonBackPic_Lickilicky), - SPECIES_SPRITE(RHYPERIOR, gMonBackPic_Rhyperior), - SPECIES_SPRITE(TANGROWTH, gMonBackPic_Tangrowth), - SPECIES_SPRITE(ELECTIVIRE, gMonBackPic_Electivire), - SPECIES_SPRITE(MAGMORTAR, gMonBackPic_Magmortar), - SPECIES_SPRITE(TOGEKISS, gMonBackPic_Togekiss), - SPECIES_SPRITE(YANMEGA, gMonBackPic_Yanmega), - SPECIES_SPRITE(LEAFEON, gMonBackPic_Leafeon), - SPECIES_SPRITE(GLACEON, gMonBackPic_Glaceon), - SPECIES_SPRITE(GLISCOR, gMonBackPic_Gliscor), - SPECIES_SPRITE(MAMOSWINE, gMonBackPic_Mamoswine), - SPECIES_SPRITE(PORYGON_Z, gMonBackPic_PorygonZ), - SPECIES_SPRITE(GALLADE, gMonBackPic_Gallade), - SPECIES_SPRITE(PROBOPASS, gMonBackPic_Probopass), - SPECIES_SPRITE(DUSKNOIR, gMonBackPic_Dusknoir), - SPECIES_SPRITE(FROSLASS, gMonBackPic_Froslass), - SPECIES_SPRITE(ROTOM, gMonBackPic_Rotom), - SPECIES_SPRITE(UXIE, gMonBackPic_Uxie), - SPECIES_SPRITE(MESPRIT, gMonBackPic_Mesprit), - SPECIES_SPRITE(AZELF, gMonBackPic_Azelf), - SPECIES_SPRITE(DIALGA, gMonBackPic_Dialga), - SPECIES_SPRITE(PALKIA, gMonBackPic_Palkia), - SPECIES_SPRITE(HEATRAN, gMonBackPic_Heatran), - SPECIES_SPRITE(REGIGIGAS, gMonBackPic_Regigigas), - SPECIES_SPRITE(GIRATINA_ALTERED, gMonBackPic_GiratinaAltered), - SPECIES_SPRITE(CRESSELIA, gMonBackPic_Cresselia), - SPECIES_SPRITE(PHIONE, gMonBackPic_Phione), - SPECIES_SPRITE(MANAPHY, gMonBackPic_Manaphy), - SPECIES_SPRITE(DARKRAI, gMonBackPic_Darkrai), - SPECIES_SPRITE(SHAYMIN_LAND, gMonBackPic_ShayminLand), - SPECIES_SPRITE(ARCEUS, gMonBackPic_Arceus), -#endif -#if P_GEN_5_POKEMON == TRUE - SPECIES_SPRITE(VICTINI, gMonBackPic_Victini), - SPECIES_SPRITE(SNIVY, gMonBackPic_Snivy), - SPECIES_SPRITE(SERVINE, gMonBackPic_Servine), - SPECIES_SPRITE(SERPERIOR, gMonBackPic_Serperior), - SPECIES_SPRITE(TEPIG, gMonBackPic_Tepig), - SPECIES_SPRITE(PIGNITE, gMonBackPic_Pignite), - SPECIES_SPRITE(EMBOAR, gMonBackPic_Emboar), - SPECIES_SPRITE(OSHAWOTT, gMonBackPic_Oshawott), - SPECIES_SPRITE(DEWOTT, gMonBackPic_Dewott), - SPECIES_SPRITE(SAMUROTT, gMonBackPic_Samurott), - SPECIES_SPRITE(PATRAT, gMonBackPic_Patrat), - SPECIES_SPRITE(WATCHOG, gMonBackPic_Watchog), - SPECIES_SPRITE(LILLIPUP, gMonBackPic_Lillipup), - SPECIES_SPRITE(HERDIER, gMonBackPic_Herdier), - SPECIES_SPRITE(STOUTLAND, gMonBackPic_Stoutland), - SPECIES_SPRITE(PURRLOIN, gMonBackPic_Purrloin), - SPECIES_SPRITE(LIEPARD, gMonBackPic_Liepard), - SPECIES_SPRITE(PANSAGE, gMonBackPic_Pansage), - SPECIES_SPRITE(SIMISAGE, gMonBackPic_Simisage), - SPECIES_SPRITE(PANSEAR, gMonBackPic_Pansear), - SPECIES_SPRITE(SIMISEAR, gMonBackPic_Simisear), - SPECIES_SPRITE(PANPOUR, gMonBackPic_Panpour), - SPECIES_SPRITE(SIMIPOUR, gMonBackPic_Simipour), - SPECIES_SPRITE(MUNNA, gMonBackPic_Munna), - SPECIES_SPRITE(MUSHARNA, gMonBackPic_Musharna), - SPECIES_SPRITE(PIDOVE, gMonBackPic_Pidove), - SPECIES_SPRITE(TRANQUILL, gMonBackPic_Tranquill), - SPECIES_SPRITE(UNFEZANT, gMonBackPic_Unfezant), - SPECIES_SPRITE(BLITZLE, gMonBackPic_Blitzle), - SPECIES_SPRITE(ZEBSTRIKA, gMonBackPic_Zebstrika), - SPECIES_SPRITE(ROGGENROLA, gMonBackPic_Roggenrola), - SPECIES_SPRITE(BOLDORE, gMonBackPic_Boldore), - SPECIES_SPRITE(GIGALITH, gMonBackPic_Gigalith), - SPECIES_SPRITE(WOOBAT, gMonBackPic_Woobat), - SPECIES_SPRITE(SWOOBAT, gMonBackPic_Swoobat), - SPECIES_SPRITE(DRILBUR, gMonBackPic_Drilbur), - SPECIES_SPRITE(EXCADRILL, gMonBackPic_Excadrill), - SPECIES_SPRITE(AUDINO, gMonBackPic_Audino), - SPECIES_SPRITE(TIMBURR, gMonBackPic_Timburr), - SPECIES_SPRITE(GURDURR, gMonBackPic_Gurdurr), - SPECIES_SPRITE(CONKELDURR, gMonBackPic_Conkeldurr), - SPECIES_SPRITE(TYMPOLE, gMonBackPic_Tympole), - SPECIES_SPRITE(PALPITOAD, gMonBackPic_Palpitoad), - SPECIES_SPRITE(SEISMITOAD, gMonBackPic_Seismitoad), - SPECIES_SPRITE(THROH, gMonBackPic_Throh), - SPECIES_SPRITE(SAWK, gMonBackPic_Sawk), - SPECIES_SPRITE(SEWADDLE, gMonBackPic_Sewaddle), - SPECIES_SPRITE(SWADLOON, gMonBackPic_Swadloon), - SPECIES_SPRITE(LEAVANNY, gMonBackPic_Leavanny), - SPECIES_SPRITE(VENIPEDE, gMonBackPic_Venipede), - SPECIES_SPRITE(WHIRLIPEDE, gMonBackPic_Whirlipede), - SPECIES_SPRITE(SCOLIPEDE, gMonBackPic_Scolipede), - SPECIES_SPRITE(COTTONEE, gMonBackPic_Cottonee), - SPECIES_SPRITE(WHIMSICOTT, gMonBackPic_Whimsicott), - SPECIES_SPRITE(PETILIL, gMonBackPic_Petilil), - SPECIES_SPRITE(LILLIGANT, gMonBackPic_Lilligant), - SPECIES_SPRITE(BASCULIN, gMonBackPic_BasculinRedStriped), - SPECIES_SPRITE(SANDILE, gMonBackPic_Sandile), - SPECIES_SPRITE(KROKOROK, gMonBackPic_Krokorok), - SPECIES_SPRITE(KROOKODILE, gMonBackPic_Krookodile), - SPECIES_SPRITE(DARUMAKA, gMonBackPic_Darumaka), - SPECIES_SPRITE(DARMANITAN_STANDARD_MODE, gMonBackPic_DarmanitanStandardMode), - SPECIES_SPRITE(MARACTUS, gMonBackPic_Maractus), - SPECIES_SPRITE(DWEBBLE, gMonBackPic_Dwebble), - SPECIES_SPRITE(CRUSTLE, gMonBackPic_Crustle), - SPECIES_SPRITE(SCRAGGY, gMonBackPic_Scraggy), - SPECIES_SPRITE(SCRAFTY, gMonBackPic_Scrafty), - SPECIES_SPRITE(SIGILYPH, gMonBackPic_Sigilyph), - SPECIES_SPRITE(YAMASK, gMonBackPic_Yamask), - SPECIES_SPRITE(COFAGRIGUS, gMonBackPic_Cofagrigus), - SPECIES_SPRITE(TIRTOUGA, gMonBackPic_Tirtouga), - SPECIES_SPRITE(CARRACOSTA, gMonBackPic_Carracosta), - SPECIES_SPRITE(ARCHEN, gMonBackPic_Archen), - SPECIES_SPRITE(ARCHEOPS, gMonBackPic_Archeops), - SPECIES_SPRITE(TRUBBISH, gMonBackPic_Trubbish), - SPECIES_SPRITE(GARBODOR, gMonBackPic_Garbodor), - SPECIES_SPRITE(ZORUA, gMonBackPic_Zorua), - SPECIES_SPRITE(ZOROARK, gMonBackPic_Zoroark), - SPECIES_SPRITE(MINCCINO, gMonBackPic_Minccino), - SPECIES_SPRITE(CINCCINO, gMonBackPic_Cinccino), - SPECIES_SPRITE(GOTHITA, gMonBackPic_Gothita), - SPECIES_SPRITE(GOTHORITA, gMonBackPic_Gothorita), - SPECIES_SPRITE(GOTHITELLE, gMonBackPic_Gothitelle), - SPECIES_SPRITE(SOLOSIS, gMonBackPic_Solosis), - SPECIES_SPRITE(DUOSION, gMonBackPic_Duosion), - SPECIES_SPRITE(REUNICLUS, gMonBackPic_Reuniclus), - SPECIES_SPRITE(DUCKLETT, gMonBackPic_Ducklett), - SPECIES_SPRITE(SWANNA, gMonBackPic_Swanna), - SPECIES_SPRITE(VANILLITE, gMonBackPic_Vanillite), - SPECIES_SPRITE(VANILLISH, gMonBackPic_Vanillish), - SPECIES_SPRITE(VANILLUXE, gMonBackPic_Vanilluxe), - SPECIES_SPRITE(DEERLING_SPRING, gMonBackPic_Deerling), - SPECIES_SPRITE(SAWSBUCK_SPRING, gMonBackPic_SawsbuckSpring), - SPECIES_SPRITE(EMOLGA, gMonBackPic_Emolga), - SPECIES_SPRITE(KARRABLAST, gMonBackPic_Karrablast), - SPECIES_SPRITE(ESCAVALIER, gMonBackPic_Escavalier), - SPECIES_SPRITE(FOONGUS, gMonBackPic_Foongus), - SPECIES_SPRITE(AMOONGUSS, gMonBackPic_Amoonguss), - SPECIES_SPRITE(FRILLISH, gMonBackPic_Frillish), - SPECIES_SPRITE(JELLICENT, gMonBackPic_Jellicent), - SPECIES_SPRITE(ALOMOMOLA, gMonBackPic_Alomomola), - SPECIES_SPRITE(JOLTIK, gMonBackPic_Joltik), - SPECIES_SPRITE(GALVANTULA, gMonBackPic_Galvantula), - SPECIES_SPRITE(FERROSEED, gMonBackPic_Ferroseed), - SPECIES_SPRITE(FERROTHORN, gMonBackPic_Ferrothorn), - SPECIES_SPRITE(KLINK, gMonBackPic_Klink), - SPECIES_SPRITE(KLANG, gMonBackPic_Klang), - SPECIES_SPRITE(KLINKLANG, gMonBackPic_Klinklang), - SPECIES_SPRITE(TYNAMO, gMonBackPic_Tynamo), - SPECIES_SPRITE(EELEKTRIK, gMonBackPic_Eelektrik), - SPECIES_SPRITE(EELEKTROSS, gMonBackPic_Eelektross), - SPECIES_SPRITE(ELGYEM, gMonBackPic_Elgyem), - SPECIES_SPRITE(BEHEEYEM, gMonBackPic_Beheeyem), - SPECIES_SPRITE(LITWICK, gMonBackPic_Litwick), - SPECIES_SPRITE(LAMPENT, gMonBackPic_Lampent), - SPECIES_SPRITE(CHANDELURE, gMonBackPic_Chandelure), - SPECIES_SPRITE(AXEW, gMonBackPic_Axew), - SPECIES_SPRITE(FRAXURE, gMonBackPic_Fraxure), - SPECIES_SPRITE(HAXORUS, gMonBackPic_Haxorus), - SPECIES_SPRITE(CUBCHOO, gMonBackPic_Cubchoo), - SPECIES_SPRITE(BEARTIC, gMonBackPic_Beartic), - SPECIES_SPRITE(CRYOGONAL, gMonBackPic_Cryogonal), - SPECIES_SPRITE(SHELMET, gMonBackPic_Shelmet), - SPECIES_SPRITE(ACCELGOR, gMonBackPic_Accelgor), - SPECIES_SPRITE(STUNFISK, gMonBackPic_Stunfisk), - SPECIES_SPRITE(MIENFOO, gMonBackPic_Mienfoo), - SPECIES_SPRITE(MIENSHAO, gMonBackPic_Mienshao), - SPECIES_SPRITE(DRUDDIGON, gMonBackPic_Druddigon), - SPECIES_SPRITE(GOLETT, gMonBackPic_Golett), - SPECIES_SPRITE(GOLURK, gMonBackPic_Golurk), - SPECIES_SPRITE(PAWNIARD, gMonBackPic_Pawniard), - SPECIES_SPRITE(BISHARP, gMonBackPic_Bisharp), - SPECIES_SPRITE(BOUFFALANT, gMonBackPic_Bouffalant), - SPECIES_SPRITE(RUFFLET, gMonBackPic_Rufflet), - SPECIES_SPRITE(BRAVIARY, gMonBackPic_Braviary), - SPECIES_SPRITE(VULLABY, gMonBackPic_Vullaby), - SPECIES_SPRITE(MANDIBUZZ, gMonBackPic_Mandibuzz), - SPECIES_SPRITE(HEATMOR, gMonBackPic_Heatmor), - SPECIES_SPRITE(DURANT, gMonBackPic_Durant), - SPECIES_SPRITE(DEINO, gMonBackPic_Deino), - SPECIES_SPRITE(ZWEILOUS, gMonBackPic_Zweilous), - SPECIES_SPRITE(HYDREIGON, gMonBackPic_Hydreigon), - SPECIES_SPRITE(LARVESTA, gMonBackPic_Larvesta), - SPECIES_SPRITE(VOLCARONA, gMonBackPic_Volcarona), - SPECIES_SPRITE(COBALION, gMonBackPic_Cobalion), - SPECIES_SPRITE(TERRAKION, gMonBackPic_Terrakion), - SPECIES_SPRITE(VIRIZION, gMonBackPic_Virizion), - SPECIES_SPRITE(TORNADUS_INCARNATE, gMonBackPic_TornadusIncarnate), - SPECIES_SPRITE(THUNDURUS_INCARNATE, gMonBackPic_ThundurusIncarnate), - SPECIES_SPRITE(RESHIRAM, gMonBackPic_Reshiram), - SPECIES_SPRITE(ZEKROM, gMonBackPic_Zekrom), - SPECIES_SPRITE(LANDORUS_INCARNATE, gMonBackPic_LandorusIncarnate), - SPECIES_SPRITE(KYUREM, gMonBackPic_Kyurem), - SPECIES_SPRITE(KELDEO_ORDINARY, gMonBackPic_KeldeoOrdinary), - SPECIES_SPRITE(MELOETTA, gMonBackPic_MeloettaAria), - SPECIES_SPRITE(GENESECT, gMonBackPic_Genesect), -#endif -#if P_GEN_6_POKEMON == TRUE - SPECIES_SPRITE(CHESPIN, gMonBackPic_Chespin), - SPECIES_SPRITE(QUILLADIN, gMonBackPic_Quilladin), - SPECIES_SPRITE(CHESNAUGHT, gMonBackPic_Chesnaught), - SPECIES_SPRITE(FENNEKIN, gMonBackPic_Fennekin), - SPECIES_SPRITE(BRAIXEN, gMonBackPic_Braixen), - SPECIES_SPRITE(DELPHOX, gMonBackPic_Delphox), - SPECIES_SPRITE(FROAKIE, gMonBackPic_Froakie), - SPECIES_SPRITE(FROGADIER, gMonBackPic_Frogadier), - SPECIES_SPRITE(GRENINJA, gMonBackPic_Greninja), - SPECIES_SPRITE(BUNNELBY, gMonBackPic_Bunnelby), - SPECIES_SPRITE(DIGGERSBY, gMonBackPic_Diggersby), - SPECIES_SPRITE(FLETCHLING, gMonBackPic_Fletchling), - SPECIES_SPRITE(FLETCHINDER, gMonBackPic_Fletchinder), - SPECIES_SPRITE(TALONFLAME, gMonBackPic_Talonflame), - SPECIES_SPRITE(SCATTERBUG, gMonBackPic_Scatterbug), - SPECIES_SPRITE(SPEWPA, gMonBackPic_Spewpa), - SPECIES_SPRITE(VIVILLON_ICY_SNOW, gMonBackPic_VivillonIcySnow), - SPECIES_SPRITE(LITLEO, gMonBackPic_Litleo), - SPECIES_SPRITE(PYROAR, gMonBackPic_Pyroar), - SPECIES_SPRITE(FLABEBE_RED_FLOWER, gMonBackPic_Flabebe), - SPECIES_SPRITE(FLOETTE_RED_FLOWER, gMonBackPic_Floette), - SPECIES_SPRITE(FLORGES_RED_FLOWER, gMonBackPic_Florges), - SPECIES_SPRITE(SKIDDO, gMonBackPic_Skiddo), - SPECIES_SPRITE(GOGOAT, gMonBackPic_Gogoat), - SPECIES_SPRITE(PANCHAM, gMonBackPic_Pancham), - SPECIES_SPRITE(PANGORO, gMonBackPic_Pangoro), - SPECIES_SPRITE(FURFROU_NATURAL, gMonBackPic_FurfrouNatural), - SPECIES_SPRITE(ESPURR, gMonBackPic_Espurr), - SPECIES_SPRITE(MEOWSTIC_MALE, gMonBackPic_MeowsticMale), - SPECIES_SPRITE(HONEDGE, gMonBackPic_Honedge), - SPECIES_SPRITE(DOUBLADE, gMonBackPic_Doublade), - SPECIES_SPRITE(AEGISLASH_SHIELD, gMonBackPic_AegislashShield), - SPECIES_SPRITE(SPRITZEE, gMonBackPic_Spritzee), - SPECIES_SPRITE(AROMATISSE, gMonBackPic_Aromatisse), - SPECIES_SPRITE(SWIRLIX, gMonBackPic_Swirlix), - SPECIES_SPRITE(SLURPUFF, gMonBackPic_Slurpuff), - SPECIES_SPRITE(INKAY, gMonBackPic_Inkay), - SPECIES_SPRITE(MALAMAR, gMonBackPic_Malamar), - SPECIES_SPRITE(BINACLE, gMonBackPic_Binacle), - SPECIES_SPRITE(BARBARACLE, gMonBackPic_Barbaracle), - SPECIES_SPRITE(SKRELP, gMonBackPic_Skrelp), - SPECIES_SPRITE(DRAGALGE, gMonBackPic_Dragalge), - SPECIES_SPRITE(CLAUNCHER, gMonBackPic_Clauncher), - SPECIES_SPRITE(CLAWITZER, gMonBackPic_Clawitzer), - SPECIES_SPRITE(HELIOPTILE, gMonBackPic_Helioptile), - SPECIES_SPRITE(HELIOLISK, gMonBackPic_Heliolisk), - SPECIES_SPRITE(TYRUNT, gMonBackPic_Tyrunt), - SPECIES_SPRITE(TYRANTRUM, gMonBackPic_Tyrantrum), - SPECIES_SPRITE(AMAURA, gMonBackPic_Amaura), - SPECIES_SPRITE(AURORUS, gMonBackPic_Aurorus), - SPECIES_SPRITE(SYLVEON, gMonBackPic_Sylveon), - SPECIES_SPRITE(HAWLUCHA, gMonBackPic_Hawlucha), - SPECIES_SPRITE(DEDENNE, gMonBackPic_Dedenne), - SPECIES_SPRITE(CARBINK, gMonBackPic_Carbink), - SPECIES_SPRITE(GOOMY, gMonBackPic_Goomy), - SPECIES_SPRITE(SLIGGOO, gMonBackPic_Sliggoo), - SPECIES_SPRITE(GOODRA, gMonBackPic_Goodra), - SPECIES_SPRITE(KLEFKI, gMonBackPic_Klefki), - SPECIES_SPRITE(PHANTUMP, gMonBackPic_Phantump), - SPECIES_SPRITE(TREVENANT, gMonBackPic_Trevenant), - SPECIES_SPRITE(PUMPKABOO_AVERAGE, gMonBackPic_PumpkabooAverage), - SPECIES_SPRITE(GOURGEIST_AVERAGE, gMonBackPic_GourgeistAverage), - SPECIES_SPRITE(BERGMITE, gMonBackPic_Bergmite), - SPECIES_SPRITE(AVALUGG, gMonBackPic_Avalugg), - SPECIES_SPRITE(NOIBAT, gMonBackPic_Noibat), - SPECIES_SPRITE(NOIVERN, gMonBackPic_Noivern), - SPECIES_SPRITE(XERNEAS_NEUTRAL, gMonBackPic_XerneasNeutral), - SPECIES_SPRITE(YVELTAL, gMonBackPic_Yveltal), - SPECIES_SPRITE(ZYGARDE_50_AURA_BREAK, gMonBackPic_Zygarde50), - SPECIES_SPRITE(DIANCIE, gMonBackPic_Diancie), - SPECIES_SPRITE(HOOPA_CONFINED, gMonBackPic_HoopaConfined), - SPECIES_SPRITE(VOLCANION, gMonBackPic_Volcanion), -#endif -#if P_GEN_7_POKEMON == TRUE - SPECIES_SPRITE(ROWLET, gMonBackPic_Rowlet), - SPECIES_SPRITE(DARTRIX, gMonBackPic_Dartrix), - SPECIES_SPRITE(DECIDUEYE, gMonBackPic_Decidueye), - SPECIES_SPRITE(LITTEN, gMonBackPic_Litten), - SPECIES_SPRITE(TORRACAT, gMonBackPic_Torracat), - SPECIES_SPRITE(INCINEROAR, gMonBackPic_Incineroar), - SPECIES_SPRITE(POPPLIO, gMonBackPic_Popplio), - SPECIES_SPRITE(BRIONNE, gMonBackPic_Brionne), - SPECIES_SPRITE(PRIMARINA, gMonBackPic_Primarina), - SPECIES_SPRITE(PIKIPEK, gMonBackPic_Pikipek), - SPECIES_SPRITE(TRUMBEAK, gMonBackPic_Trumbeak), - SPECIES_SPRITE(TOUCANNON, gMonBackPic_Toucannon), - SPECIES_SPRITE(YUNGOOS, gMonBackPic_Yungoos), - SPECIES_SPRITE(GUMSHOOS, gMonBackPic_Gumshoos), - SPECIES_SPRITE(GRUBBIN, gMonBackPic_Grubbin), - SPECIES_SPRITE(CHARJABUG, gMonBackPic_Charjabug), - SPECIES_SPRITE(VIKAVOLT, gMonBackPic_Vikavolt), - SPECIES_SPRITE(CRABRAWLER, gMonBackPic_Crabrawler), - SPECIES_SPRITE(CRABOMINABLE, gMonBackPic_Crabominable), - SPECIES_SPRITE(ORICORIO_BAILE, gMonBackPic_OricorioBaile), - SPECIES_SPRITE(CUTIEFLY, gMonBackPic_Cutiefly), - SPECIES_SPRITE(RIBOMBEE, gMonBackPic_Ribombee), - SPECIES_SPRITE(ROCKRUFF, gMonBackPic_Rockruff), - SPECIES_SPRITE(LYCANROC_MIDDAY, gMonBackPic_LycanrocMidday), - SPECIES_SPRITE(WISHIWASHI_SOLO, gMonBackPic_WishiwashiSolo), - SPECIES_SPRITE(MAREANIE, gMonBackPic_Mareanie), - SPECIES_SPRITE(TOXAPEX, gMonBackPic_Toxapex), - SPECIES_SPRITE(MUDBRAY, gMonBackPic_Mudbray), - SPECIES_SPRITE(MUDSDALE, gMonBackPic_Mudsdale), - SPECIES_SPRITE(DEWPIDER, gMonBackPic_Dewpider), - SPECIES_SPRITE(ARAQUANID, gMonBackPic_Araquanid), - SPECIES_SPRITE(FOMANTIS, gMonBackPic_Fomantis), - SPECIES_SPRITE(LURANTIS, gMonBackPic_Lurantis), - SPECIES_SPRITE(MORELULL, gMonBackPic_Morelull), - SPECIES_SPRITE(SHIINOTIC, gMonBackPic_Shiinotic), - SPECIES_SPRITE(SALANDIT, gMonBackPic_Salandit), - SPECIES_SPRITE(SALAZZLE, gMonBackPic_Salazzle), - SPECIES_SPRITE(STUFFUL, gMonBackPic_Stufful), - SPECIES_SPRITE(BEWEAR, gMonBackPic_Bewear), - SPECIES_SPRITE(BOUNSWEET, gMonBackPic_Bounsweet), - SPECIES_SPRITE(STEENEE, gMonBackPic_Steenee), - SPECIES_SPRITE(TSAREENA, gMonBackPic_Tsareena), - SPECIES_SPRITE(COMFEY, gMonBackPic_Comfey), - SPECIES_SPRITE(ORANGURU, gMonBackPic_Oranguru), - SPECIES_SPRITE(PASSIMIAN, gMonBackPic_Passimian), - SPECIES_SPRITE(WIMPOD, gMonBackPic_Wimpod), - SPECIES_SPRITE(GOLISOPOD, gMonBackPic_Golisopod), - SPECIES_SPRITE(SANDYGAST, gMonBackPic_Sandygast), - SPECIES_SPRITE(PALOSSAND, gMonBackPic_Palossand), - SPECIES_SPRITE(PYUKUMUKU, gMonBackPic_Pyukumuku), - SPECIES_SPRITE(TYPE_NULL, gMonBackPic_TypeNull), - SPECIES_SPRITE(SILVALLY, gMonBackPic_Silvally), - SPECIES_SPRITE(MINIOR_METEOR_RED, gMonBackPic_MiniorMeteor), - SPECIES_SPRITE(KOMALA, gMonBackPic_Komala), - SPECIES_SPRITE(TURTONATOR, gMonBackPic_Turtonator), - SPECIES_SPRITE(TOGEDEMARU, gMonBackPic_Togedemaru), - SPECIES_SPRITE(MIMIKYU_DISGUISED, gMonBackPic_MimikyuDisguised), - SPECIES_SPRITE(BRUXISH, gMonBackPic_Bruxish), - SPECIES_SPRITE(DRAMPA, gMonBackPic_Drampa), - SPECIES_SPRITE(DHELMISE, gMonBackPic_Dhelmise), - SPECIES_SPRITE(JANGMO_O, gMonBackPic_JangmoO), - SPECIES_SPRITE(HAKAMO_O, gMonBackPic_HakamoO), - SPECIES_SPRITE(KOMMO_O, gMonBackPic_KommoO), - SPECIES_SPRITE(TAPU_KOKO, gMonBackPic_TapuKoko), - SPECIES_SPRITE(TAPU_LELE, gMonBackPic_TapuLele), - SPECIES_SPRITE(TAPU_BULU, gMonBackPic_TapuBulu), - SPECIES_SPRITE(TAPU_FINI, gMonBackPic_TapuFini), - SPECIES_SPRITE(COSMOG, gMonBackPic_Cosmog), - SPECIES_SPRITE(COSMOEM, gMonBackPic_Cosmoem), - SPECIES_SPRITE(SOLGALEO, gMonBackPic_Solgaleo), - SPECIES_SPRITE(LUNALA, gMonBackPic_Lunala), - SPECIES_SPRITE(NIHILEGO, gMonBackPic_Nihilego), - SPECIES_SPRITE(BUZZWOLE, gMonBackPic_Buzzwole), - SPECIES_SPRITE(PHEROMOSA, gMonBackPic_Pheromosa), - SPECIES_SPRITE(XURKITREE, gMonBackPic_Xurkitree), - SPECIES_SPRITE(CELESTEELA, gMonBackPic_Celesteela), - SPECIES_SPRITE(KARTANA, gMonBackPic_Kartana), - SPECIES_SPRITE(GUZZLORD, gMonBackPic_Guzzlord), - SPECIES_SPRITE(NECROZMA, gMonBackPic_Necrozma), - SPECIES_SPRITE(MAGEARNA, gMonBackPic_Magearna), - SPECIES_SPRITE(MARSHADOW, gMonBackPic_Marshadow), - SPECIES_SPRITE(POIPOLE, gMonBackPic_Poipole), - SPECIES_SPRITE(NAGANADEL, gMonBackPic_Naganadel), - SPECIES_SPRITE(STAKATAKA, gMonBackPic_Stakataka), - SPECIES_SPRITE(BLACEPHALON, gMonBackPic_Blacephalon), - SPECIES_SPRITE(ZERAORA, gMonBackPic_Zeraora), - SPECIES_SPRITE(MELTAN, gMonBackPic_Meltan), - SPECIES_SPRITE(MELMETAL, gMonBackPic_Melmetal), -#endif -#if P_GEN_8_POKEMON == TRUE - SPECIES_SPRITE(GROOKEY, gMonBackPic_Grookey), - SPECIES_SPRITE(THWACKEY, gMonBackPic_Thwackey), - SPECIES_SPRITE(RILLABOOM, gMonBackPic_Rillaboom), - SPECIES_SPRITE(SCORBUNNY, gMonBackPic_Scorbunny), - SPECIES_SPRITE(RABOOT, gMonBackPic_Raboot), - SPECIES_SPRITE(CINDERACE, gMonBackPic_Cinderace), - SPECIES_SPRITE(SOBBLE, gMonBackPic_Sobble), - SPECIES_SPRITE(DRIZZILE, gMonBackPic_Drizzile), - SPECIES_SPRITE(INTELEON, gMonBackPic_Inteleon), - SPECIES_SPRITE(SKWOVET, gMonBackPic_Skwovet), - SPECIES_SPRITE(GREEDENT, gMonBackPic_Greedent), - SPECIES_SPRITE(ROOKIDEE, gMonBackPic_Rookidee), - SPECIES_SPRITE(CORVISQUIRE, gMonBackPic_Corvisquire), - SPECIES_SPRITE(CORVIKNIGHT, gMonBackPic_Corviknight), - SPECIES_SPRITE(BLIPBUG, gMonBackPic_Blipbug), - SPECIES_SPRITE(DOTTLER, gMonBackPic_Dottler), - SPECIES_SPRITE(ORBEETLE, gMonBackPic_Orbeetle), - SPECIES_SPRITE(NICKIT, gMonBackPic_Nickit), - SPECIES_SPRITE(THIEVUL, gMonBackPic_Thievul), - SPECIES_SPRITE(GOSSIFLEUR, gMonBackPic_Gossifleur), - SPECIES_SPRITE(ELDEGOSS, gMonBackPic_Eldegoss), - SPECIES_SPRITE(WOOLOO, gMonBackPic_Wooloo), - SPECIES_SPRITE(DUBWOOL, gMonBackPic_Dubwool), - SPECIES_SPRITE(CHEWTLE, gMonBackPic_Chewtle), - SPECIES_SPRITE(DREDNAW, gMonBackPic_Drednaw), - SPECIES_SPRITE(YAMPER, gMonBackPic_Yamper), - SPECIES_SPRITE(BOLTUND, gMonBackPic_Boltund), - SPECIES_SPRITE(ROLYCOLY, gMonBackPic_Rolycoly), - SPECIES_SPRITE(CARKOL, gMonBackPic_Carkol), - SPECIES_SPRITE(COALOSSAL, gMonBackPic_Coalossal), - SPECIES_SPRITE(APPLIN, gMonBackPic_Applin), - SPECIES_SPRITE(FLAPPLE, gMonBackPic_Flapple), - SPECIES_SPRITE(APPLETUN, gMonBackPic_Appletun), - SPECIES_SPRITE(SILICOBRA, gMonBackPic_Silicobra), - SPECIES_SPRITE(SANDACONDA, gMonBackPic_Sandaconda), - SPECIES_SPRITE(CRAMORANT, gMonBackPic_Cramorant), - SPECIES_SPRITE(ARROKUDA, gMonBackPic_Arrokuda), - SPECIES_SPRITE(BARRASKEWDA, gMonBackPic_Barraskewda), - SPECIES_SPRITE(TOXEL, gMonBackPic_Toxel), - SPECIES_SPRITE(TOXTRICITY_AMPED, gMonBackPic_ToxtricityAmped), - SPECIES_SPRITE(SIZZLIPEDE, gMonBackPic_Sizzlipede), - SPECIES_SPRITE(CENTISKORCH, gMonBackPic_Centiskorch), - SPECIES_SPRITE(CLOBBOPUS, gMonBackPic_Clobbopus), - SPECIES_SPRITE(GRAPPLOCT, gMonBackPic_Grapploct), - SPECIES_SPRITE(SINISTEA_PHONY, gMonBackPic_Sinistea), - SPECIES_SPRITE(POLTEAGEIST_PHONY, gMonBackPic_Polteageist), - SPECIES_SPRITE(HATENNA, gMonBackPic_Hatenna), - SPECIES_SPRITE(HATTREM, gMonBackPic_Hattrem), - SPECIES_SPRITE(HATTERENE, gMonBackPic_Hatterene), - SPECIES_SPRITE(IMPIDIMP, gMonBackPic_Impidimp), - SPECIES_SPRITE(MORGREM, gMonBackPic_Morgrem), - SPECIES_SPRITE(GRIMMSNARL, gMonBackPic_Grimmsnarl), - SPECIES_SPRITE(OBSTAGOON, gMonBackPic_Obstagoon), - SPECIES_SPRITE(PERRSERKER, gMonBackPic_Perrserker), - SPECIES_SPRITE(CURSOLA, gMonBackPic_Cursola), - SPECIES_SPRITE(SIRFETCHD, gMonBackPic_Sirfetchd), - SPECIES_SPRITE(MR_RIME, gMonBackPic_MrRime), - SPECIES_SPRITE(RUNERIGUS, gMonBackPic_Runerigus), - SPECIES_SPRITE(MILCERY, gMonBackPic_Milcery), - SPECIES_SPRITE(ALCREMIE, gMonBackPic_Alcremie), - SPECIES_SPRITE(FALINKS, gMonBackPic_Falinks), - SPECIES_SPRITE(PINCURCHIN, gMonBackPic_Pincurchin), - SPECIES_SPRITE(SNOM, gMonBackPic_Snom), - SPECIES_SPRITE(FROSMOTH, gMonBackPic_Frosmoth), - SPECIES_SPRITE(STONJOURNER, gMonBackPic_Stonjourner), - SPECIES_SPRITE(EISCUE_ICE_FACE, gMonBackPic_EiscueIceFace), - SPECIES_SPRITE(INDEEDEE_MALE, gMonBackPic_IndeedeeMale), - SPECIES_SPRITE(MORPEKO_FULL_BELLY, gMonBackPic_MorpekoFullBelly), - SPECIES_SPRITE(CUFANT, gMonBackPic_Cufant), - SPECIES_SPRITE(COPPERAJAH, gMonBackPic_Copperajah), - SPECIES_SPRITE(DRACOZOLT, gMonBackPic_Dracozolt), - SPECIES_SPRITE(ARCTOZOLT, gMonBackPic_Arctozolt), - SPECIES_SPRITE(DRACOVISH, gMonBackPic_Dracovish), - SPECIES_SPRITE(ARCTOVISH, gMonBackPic_Arctovish), - SPECIES_SPRITE(DURALUDON, gMonBackPic_Duraludon), - SPECIES_SPRITE(DREEPY, gMonBackPic_Dreepy), - SPECIES_SPRITE(DRAKLOAK, gMonBackPic_Drakloak), - SPECIES_SPRITE(DRAGAPULT, gMonBackPic_Dragapult), - SPECIES_SPRITE(ZACIAN_HERO_OF_MANY_BATTLES, gMonBackPic_ZacianHeroOfManyBattles), - SPECIES_SPRITE(ZAMAZENTA_HERO_OF_MANY_BATTLES, gMonBackPic_ZamazentaHeroOfManyBattles), - SPECIES_SPRITE(ETERNATUS, gMonBackPic_Eternatus), - SPECIES_SPRITE(KUBFU, gMonBackPic_Kubfu), - SPECIES_SPRITE(URSHIFU_SINGLE_STRIKE_STYLE, gMonBackPic_UrshifuSingleStrikeStyle), - SPECIES_SPRITE(ZARUDE, gMonBackPic_Zarude), - SPECIES_SPRITE(REGIELEKI, gMonBackPic_Regieleki), - SPECIES_SPRITE(REGIDRAGO, gMonBackPic_Regidrago), - SPECIES_SPRITE(GLASTRIER, gMonBackPic_Glastrier), - SPECIES_SPRITE(SPECTRIER, gMonBackPic_Spectrier), - SPECIES_SPRITE(CALYREX, gMonBackPic_Calyrex), - SPECIES_SPRITE(WYRDEER, gMonBackPic_Wyrdeer), - SPECIES_SPRITE(KLEAVOR, gMonBackPic_Kleavor), - SPECIES_SPRITE(URSALUNA, gMonBackPic_Ursaluna), - SPECIES_SPRITE(BASCULEGION_MALE, gMonBackPic_BasculegionMale), - SPECIES_SPRITE(SNEASLER, gMonBackPic_Sneasler), - SPECIES_SPRITE(OVERQWIL, gMonBackPic_Overqwil), - SPECIES_SPRITE(ENAMORUS_INCARNATE, gMonBackPic_EnamorusIncarnate), -#endif - - SPECIES_SPRITE(VENUSAUR_MEGA, gMonBackPic_VenusaurMega), - SPECIES_SPRITE(CHARIZARD_MEGA_X, gMonBackPic_CharizardMegaX), - SPECIES_SPRITE(CHARIZARD_MEGA_Y, gMonBackPic_CharizardMegaY), - SPECIES_SPRITE(BLASTOISE_MEGA, gMonBackPic_BlastoiseMega), - SPECIES_SPRITE(BEEDRILL_MEGA, gMonBackPic_BeedrillMega), - SPECIES_SPRITE(PIDGEOT_MEGA, gMonBackPic_PidgeotMega), - SPECIES_SPRITE(ALAKAZAM_MEGA, gMonBackPic_AlakazamMega), - SPECIES_SPRITE(SLOWBRO_MEGA, gMonBackPic_SlowbroMega), - SPECIES_SPRITE(GENGAR_MEGA, gMonBackPic_GengarMega), - SPECIES_SPRITE(KANGASKHAN_MEGA, gMonBackPic_KangaskhanMega), - SPECIES_SPRITE(PINSIR_MEGA, gMonBackPic_PinsirMega), - SPECIES_SPRITE(GYARADOS_MEGA, gMonBackPic_GyaradosMega), - SPECIES_SPRITE(AERODACTYL_MEGA, gMonBackPic_AerodactylMega), - SPECIES_SPRITE(MEWTWO_MEGA_X, gMonBackPic_MewtwoMegaX), - SPECIES_SPRITE(MEWTWO_MEGA_Y, gMonBackPic_MewtwoMegaY), - SPECIES_SPRITE(AMPHAROS_MEGA, gMonBackPic_AmpharosMega), - SPECIES_SPRITE(STEELIX_MEGA, gMonBackPic_SteelixMega), - SPECIES_SPRITE(SCIZOR_MEGA, gMonBackPic_ScizorMega), - SPECIES_SPRITE(HERACROSS_MEGA, gMonBackPic_HeracrossMega), - SPECIES_SPRITE(HOUNDOOM_MEGA, gMonBackPic_HoundoomMega), - SPECIES_SPRITE(TYRANITAR_MEGA, gMonBackPic_TyranitarMega), - SPECIES_SPRITE(SCEPTILE_MEGA, gMonBackPic_SceptileMega), - SPECIES_SPRITE(BLAZIKEN_MEGA, gMonBackPic_BlazikenMega), - SPECIES_SPRITE(SWAMPERT_MEGA, gMonBackPic_SwampertMega), - SPECIES_SPRITE(GARDEVOIR_MEGA, gMonBackPic_GardevoirMega), - SPECIES_SPRITE(SABLEYE_MEGA, gMonBackPic_SableyeMega), - SPECIES_SPRITE(MAWILE_MEGA, gMonBackPic_MawileMega), - SPECIES_SPRITE(AGGRON_MEGA, gMonBackPic_AggronMega), - SPECIES_SPRITE(MEDICHAM_MEGA, gMonBackPic_MedichamMega), - SPECIES_SPRITE(MANECTRIC_MEGA, gMonBackPic_ManectricMega), - SPECIES_SPRITE(SHARPEDO_MEGA, gMonBackPic_SharpedoMega), - SPECIES_SPRITE(CAMERUPT_MEGA, gMonBackPic_CameruptMega), - SPECIES_SPRITE(ALTARIA_MEGA, gMonBackPic_AltariaMega), - SPECIES_SPRITE(BANETTE_MEGA, gMonBackPic_BanetteMega), - SPECIES_SPRITE(ABSOL_MEGA, gMonBackPic_AbsolMega), - SPECIES_SPRITE(GLALIE_MEGA, gMonBackPic_GlalieMega), - SPECIES_SPRITE(SALAMENCE_MEGA, gMonBackPic_SalamenceMega), - SPECIES_SPRITE(METAGROSS_MEGA, gMonBackPic_MetagrossMega), - SPECIES_SPRITE(LATIAS_MEGA, gMonBackPic_LatiasMega), - SPECIES_SPRITE(LATIOS_MEGA, gMonBackPic_LatiosMega), -#if P_GEN_4_POKEMON == TRUE - SPECIES_SPRITE(LOPUNNY_MEGA, gMonBackPic_LopunnyMega), - SPECIES_SPRITE(GARCHOMP_MEGA, gMonBackPic_GarchompMega), - SPECIES_SPRITE(LUCARIO_MEGA, gMonBackPic_LucarioMega), - SPECIES_SPRITE(ABOMASNOW_MEGA, gMonBackPic_AbomasnowMega), - SPECIES_SPRITE(GALLADE_MEGA, gMonBackPic_GalladeMega), -#endif -#if P_GEN_5_POKEMON == TRUE - SPECIES_SPRITE(AUDINO_MEGA, gMonBackPic_AudinoMega), -#endif -#if P_GEN_6_POKEMON == TRUE - SPECIES_SPRITE(DIANCIE_MEGA, gMonBackPic_DiancieMega), -#endif - - SPECIES_SPRITE(RAYQUAZA_MEGA, gMonBackPic_RayquazaMega), - SPECIES_SPRITE(KYOGRE_PRIMAL, gMonBackPic_KyogrePrimal), - SPECIES_SPRITE(GROUDON_PRIMAL, gMonBackPic_GroudonPrimal), - - SPECIES_SPRITE(RATTATA_ALOLAN, gMonBackPic_RattataAlolan), - SPECIES_SPRITE(RATICATE_ALOLAN, gMonBackPic_RaticateAlolan), - SPECIES_SPRITE(RAICHU_ALOLAN, gMonBackPic_RaichuAlolan), - SPECIES_SPRITE(SANDSHREW_ALOLAN, gMonBackPic_SandshrewAlolan), - SPECIES_SPRITE(SANDSLASH_ALOLAN, gMonBackPic_SandslashAlolan), - SPECIES_SPRITE(VULPIX_ALOLAN, gMonBackPic_VulpixAlolan), - SPECIES_SPRITE(NINETALES_ALOLAN, gMonBackPic_NinetalesAlolan), - SPECIES_SPRITE(DIGLETT_ALOLAN, gMonBackPic_DiglettAlolan), - SPECIES_SPRITE(DUGTRIO_ALOLAN, gMonBackPic_DugtrioAlolan), - SPECIES_SPRITE(MEOWTH_ALOLAN, gMonBackPic_MeowthAlolan), - SPECIES_SPRITE(PERSIAN_ALOLAN, gMonBackPic_PersianAlolan), - SPECIES_SPRITE(GEODUDE_ALOLAN, gMonBackPic_GeodudeAlolan), - SPECIES_SPRITE(GRAVELER_ALOLAN, gMonBackPic_GravelerAlolan), - SPECIES_SPRITE(GOLEM_ALOLAN, gMonBackPic_GolemAlolan), - SPECIES_SPRITE(GRIMER_ALOLAN, gMonBackPic_GrimerAlolan), - SPECIES_SPRITE(MUK_ALOLAN, gMonBackPic_MukAlolan), - SPECIES_SPRITE(EXEGGUTOR_ALOLAN, gMonBackPic_ExeggutorAlolan), - SPECIES_SPRITE(MAROWAK_ALOLAN, gMonBackPic_MarowakAlolan), - - SPECIES_SPRITE(MEOWTH_GALARIAN, gMonBackPic_MeowthGalarian), - SPECIES_SPRITE(PONYTA_GALARIAN, gMonBackPic_PonytaGalarian), - SPECIES_SPRITE(RAPIDASH_GALARIAN, gMonBackPic_RapidashGalarian), - SPECIES_SPRITE(SLOWPOKE_GALARIAN, gMonBackPic_SlowpokeGalarian), - SPECIES_SPRITE(SLOWBRO_GALARIAN, gMonBackPic_SlowbroGalarian), - SPECIES_SPRITE(FARFETCHD_GALARIAN, gMonBackPic_FarfetchdGalarian), - SPECIES_SPRITE(WEEZING_GALARIAN, gMonBackPic_WeezingGalarian), - SPECIES_SPRITE(MR_MIME_GALARIAN, gMonBackPic_MrMimeGalarian), - SPECIES_SPRITE(ARTICUNO_GALARIAN, gMonBackPic_ArticunoGalarian), - SPECIES_SPRITE(ZAPDOS_GALARIAN, gMonBackPic_ZapdosGalarian), - SPECIES_SPRITE(MOLTRES_GALARIAN, gMonBackPic_MoltresGalarian), - SPECIES_SPRITE(SLOWKING_GALARIAN, gMonBackPic_SlowkingGalarian), - SPECIES_SPRITE(CORSOLA_GALARIAN, gMonBackPic_CorsolaGalarian), - SPECIES_SPRITE(ZIGZAGOON_GALARIAN, gMonBackPic_ZigzagoonGalarian), - SPECIES_SPRITE(LINOONE_GALARIAN, gMonBackPic_LinooneGalarian), -#if P_GEN_5_POKEMON == TRUE - SPECIES_SPRITE(DARUMAKA_GALARIAN, gMonBackPic_DarumakaGalarian), - SPECIES_SPRITE(DARMANITAN_GALARIAN_STANDARD_MODE, gMonBackPic_DarmanitanGalarianStandardMode), - SPECIES_SPRITE(YAMASK_GALARIAN, gMonBackPic_YamaskGalarian), - SPECIES_SPRITE(STUNFISK_GALARIAN, gMonBackPic_StunfiskGalarian), -#endif - - SPECIES_SPRITE(GROWLITHE_HISUIAN, gMonBackPic_GrowlitheHisuian), - SPECIES_SPRITE(ARCANINE_HISUIAN, gMonBackPic_ArcanineHisuian), - SPECIES_SPRITE(VOLTORB_HISUIAN, gMonBackPic_VoltorbHisuian), - SPECIES_SPRITE(ELECTRODE_HISUIAN, gMonBackPic_ElectrodeHisuian), - SPECIES_SPRITE(TYPHLOSION_HISUIAN, gMonBackPic_TyphlosionHisuian), - SPECIES_SPRITE(QWILFISH_HISUIAN, gMonBackPic_QwilfishHisuian), - SPECIES_SPRITE(SNEASEL_HISUIAN, gMonBackPic_SneaselHisuian), -#if P_GEN_5_POKEMON == TRUE - SPECIES_SPRITE(SAMUROTT_HISUIAN, gMonBackPic_SamurottHisuian), - SPECIES_SPRITE(LILLIGANT_HISUIAN, gMonBackPic_LilligantHisuian), - SPECIES_SPRITE(ZORUA_HISUIAN, gMonBackPic_ZoruaHisuian), - SPECIES_SPRITE(ZOROARK_HISUIAN, gMonBackPic_ZoroarkHisuian), - SPECIES_SPRITE(BRAVIARY_HISUIAN, gMonBackPic_BraviaryHisuian), -#endif -#if P_GEN_6_POKEMON == TRUE - SPECIES_SPRITE(SLIGGOO_HISUIAN, gMonBackPic_SliggooHisuian), - SPECIES_SPRITE(GOODRA_HISUIAN, gMonBackPic_GoodraHisuian), - SPECIES_SPRITE(AVALUGG_HISUIAN, gMonBackPic_AvaluggHisuian), -#endif -#if P_GEN_8_POKEMON == TRUE - SPECIES_SPRITE(DECIDUEYE_HISUIAN, gMonBackPic_DecidueyeHisuian), -#endif - - SPECIES_SPRITE(PIKACHU_COSPLAY, gMonBackPic_PikachuCosplay), - SPECIES_SPRITE(PIKACHU_ROCK_STAR, gMonBackPic_PikachuRockStar), - SPECIES_SPRITE(PIKACHU_BELLE, gMonBackPic_PikachuBelle), - SPECIES_SPRITE(PIKACHU_POP_STAR, gMonBackPic_PikachuPopStar), - SPECIES_SPRITE(PIKACHU_PH_D, gMonBackPic_PikachuPhD), - SPECIES_SPRITE(PIKACHU_LIBRE, gMonBackPic_PikachuLibre), - - SPECIES_SPRITE(PIKACHU_ORIGINAL_CAP, gMonBackPic_PikachuOriginalCap), - SPECIES_SPRITE(PIKACHU_HOENN_CAP, gMonBackPic_PikachuHoennCap), - SPECIES_SPRITE(PIKACHU_SINNOH_CAP, gMonBackPic_PikachuSinnohCap), - SPECIES_SPRITE(PIKACHU_UNOVA_CAP, gMonBackPic_PikachuUnovaCap), - SPECIES_SPRITE(PIKACHU_KALOS_CAP, gMonBackPic_PikachuKalosCap), - SPECIES_SPRITE(PIKACHU_ALOLA_CAP, gMonBackPic_PikachuAlolaCap), - SPECIES_SPRITE(PIKACHU_PARTNER_CAP, gMonBackPic_PikachuPartnerCap), - SPECIES_SPRITE(PIKACHU_WORLD_CAP, gMonBackPic_PikachuWorldCap), - - SPECIES_SPRITE(PICHU_SPIKY_EARED, gMonBackPic_PichuSpikyEared), - - SPECIES_SPRITE(UNOWN_B, gMonBackPic_UnownB), - SPECIES_SPRITE(UNOWN_C, gMonBackPic_UnownC), - SPECIES_SPRITE(UNOWN_D, gMonBackPic_UnownD), - SPECIES_SPRITE(UNOWN_E, gMonBackPic_UnownE), - SPECIES_SPRITE(UNOWN_F, gMonBackPic_UnownF), - SPECIES_SPRITE(UNOWN_G, gMonBackPic_UnownG), - SPECIES_SPRITE(UNOWN_H, gMonBackPic_UnownH), - SPECIES_SPRITE(UNOWN_I, gMonBackPic_UnownI), - SPECIES_SPRITE(UNOWN_J, gMonBackPic_UnownJ), - SPECIES_SPRITE(UNOWN_K, gMonBackPic_UnownK), - SPECIES_SPRITE(UNOWN_L, gMonBackPic_UnownL), - SPECIES_SPRITE(UNOWN_M, gMonBackPic_UnownM), - SPECIES_SPRITE(UNOWN_N, gMonBackPic_UnownN), - SPECIES_SPRITE(UNOWN_O, gMonBackPic_UnownO), - SPECIES_SPRITE(UNOWN_P, gMonBackPic_UnownP), - SPECIES_SPRITE(UNOWN_Q, gMonBackPic_UnownQ), - SPECIES_SPRITE(UNOWN_R, gMonBackPic_UnownR), - SPECIES_SPRITE(UNOWN_S, gMonBackPic_UnownS), - SPECIES_SPRITE(UNOWN_T, gMonBackPic_UnownT), - SPECIES_SPRITE(UNOWN_U, gMonBackPic_UnownU), - SPECIES_SPRITE(UNOWN_V, gMonBackPic_UnownV), - SPECIES_SPRITE(UNOWN_W, gMonBackPic_UnownW), - SPECIES_SPRITE(UNOWN_X, gMonBackPic_UnownX), - SPECIES_SPRITE(UNOWN_Y, gMonBackPic_UnownY), - SPECIES_SPRITE(UNOWN_Z, gMonBackPic_UnownZ), - SPECIES_SPRITE(UNOWN_EMARK, gMonBackPic_UnownExclamationMark), - SPECIES_SPRITE(UNOWN_QMARK, gMonBackPic_UnownQuestionMark), - - SPECIES_SPRITE(CASTFORM_SUNNY, gMonBackPic_CastformSunny), - SPECIES_SPRITE(CASTFORM_RAINY, gMonBackPic_CastformRainy), - SPECIES_SPRITE(CASTFORM_SNOWY, gMonBackPic_CastformSnowy), - - SPECIES_SPRITE(DEOXYS_ATTACK, gMonBackPic_DeoxysAttack), - SPECIES_SPRITE(DEOXYS_DEFENSE, gMonBackPic_DeoxysDefense), - SPECIES_SPRITE(DEOXYS_SPEED, gMonBackPic_DeoxysSpeed), -#if P_GEN_4_POKEMON == TRUE - SPECIES_SPRITE(BURMY_SANDY_CLOAK, gMonBackPic_BurmySandyCloak), - SPECIES_SPRITE(BURMY_TRASH_CLOAK, gMonBackPic_BurmyTrashCloak), - - SPECIES_SPRITE(WORMADAM_SANDY_CLOAK, gMonBackPic_WormadamSandyCloak), - SPECIES_SPRITE(WORMADAM_TRASH_CLOAK, gMonBackPic_WormadamTrashCloak), - - SPECIES_SPRITE(CHERRIM_SUNSHINE, gMonBackPic_CherrimSunshine), - - SPECIES_SPRITE(SHELLOS_EAST_SEA, gMonBackPic_ShellosEastSea), - - SPECIES_SPRITE(GASTRODON_EAST_SEA, gMonBackPic_GastrodonEastSea), - - SPECIES_SPRITE(ROTOM_HEAT, gMonBackPic_RotomHeat), - SPECIES_SPRITE(ROTOM_WASH, gMonBackPic_RotomWash), - SPECIES_SPRITE(ROTOM_FROST, gMonBackPic_RotomFrost), - SPECIES_SPRITE(ROTOM_FAN, gMonBackPic_RotomFan), - SPECIES_SPRITE(ROTOM_MOW, gMonBackPic_RotomMow), - - SPECIES_SPRITE(DIALGA_ORIGIN, gMonBackPic_DialgaOrigin), - SPECIES_SPRITE(PALKIA_ORIGIN, gMonBackPic_PalkiaOrigin), - SPECIES_SPRITE(GIRATINA_ORIGIN, gMonBackPic_GiratinaOrigin), - - SPECIES_SPRITE(SHAYMIN_SKY, gMonBackPic_ShayminSky), - - SPECIES_SPRITE(ARCEUS_FIGHTING, gMonBackPic_Arceus), - SPECIES_SPRITE(ARCEUS_FLYING, gMonBackPic_Arceus), - SPECIES_SPRITE(ARCEUS_POISON, gMonBackPic_Arceus), - SPECIES_SPRITE(ARCEUS_GROUND, gMonBackPic_Arceus), - SPECIES_SPRITE(ARCEUS_ROCK, gMonBackPic_Arceus), - SPECIES_SPRITE(ARCEUS_BUG, gMonBackPic_Arceus), - SPECIES_SPRITE(ARCEUS_GHOST, gMonBackPic_Arceus), - SPECIES_SPRITE(ARCEUS_STEEL, gMonBackPic_Arceus), - SPECIES_SPRITE(ARCEUS_FIRE, gMonBackPic_Arceus), - SPECIES_SPRITE(ARCEUS_WATER, gMonBackPic_Arceus), - SPECIES_SPRITE(ARCEUS_GRASS, gMonBackPic_Arceus), - SPECIES_SPRITE(ARCEUS_ELECTRIC, gMonBackPic_Arceus), - SPECIES_SPRITE(ARCEUS_PSYCHIC, gMonBackPic_Arceus), - SPECIES_SPRITE(ARCEUS_ICE, gMonBackPic_Arceus), - SPECIES_SPRITE(ARCEUS_DRAGON, gMonBackPic_Arceus), - SPECIES_SPRITE(ARCEUS_DARK, gMonBackPic_Arceus), - SPECIES_SPRITE(ARCEUS_FAIRY, gMonBackPic_Arceus), -#endif - -#if P_GEN_5_POKEMON == TRUE - SPECIES_SPRITE(BASCULIN_BLUE_STRIPED, gMonBackPic_BasculinBlueStriped), - SPECIES_SPRITE(BASCULIN_WHITE_STRIPED, gMonBackPic_BasculinWhiteStriped), - - SPECIES_SPRITE(DARMANITAN_ZEN_MODE, gMonBackPic_DarmanitanZenMode), - SPECIES_SPRITE(DARMANITAN_GALARIAN_ZEN_MODE, gMonBackPic_DarmanitanGalarianZenMode), - - SPECIES_SPRITE(DEERLING_SUMMER, gMonBackPic_Deerling), - SPECIES_SPRITE(DEERLING_AUTUMN, gMonBackPic_Deerling), - SPECIES_SPRITE(DEERLING_WINTER, gMonBackPic_Deerling), - - SPECIES_SPRITE(SAWSBUCK_SUMMER, gMonBackPic_SawsbuckSummer), - SPECIES_SPRITE(SAWSBUCK_AUTUMN, gMonBackPic_SawsbuckAutumn), - SPECIES_SPRITE(SAWSBUCK_WINTER, gMonBackPic_SawsbuckWinter), - - SPECIES_SPRITE(TORNADUS_THERIAN, gMonBackPic_TornadusTherian), - SPECIES_SPRITE(THUNDURUS_THERIAN, gMonBackPic_ThundurusTherian), - SPECIES_SPRITE(LANDORUS_THERIAN, gMonBackPic_LandorusTherian), - - SPECIES_SPRITE(KYUREM_WHITE, gMonBackPic_KyuremWhite), - SPECIES_SPRITE(KYUREM_BLACK, gMonBackPic_KyuremBlack), - - SPECIES_SPRITE(KELDEO_RESOLUTE, gMonBackPic_KeldeoResolute), - - SPECIES_SPRITE(MELOETTA_PIROUETTE, gMonBackPic_MeloettaPirouette), - - SPECIES_SPRITE(GENESECT_DOUSE_DRIVE, gMonBackPic_Genesect), - SPECIES_SPRITE(GENESECT_SHOCK_DRIVE, gMonBackPic_Genesect), - SPECIES_SPRITE(GENESECT_BURN_DRIVE, gMonBackPic_Genesect), - SPECIES_SPRITE(GENESECT_CHILL_DRIVE, gMonBackPic_Genesect), -#endif - -#if P_GEN_6_POKEMON == TRUE - SPECIES_SPRITE(GRENINJA_BATTLE_BOND, gMonBackPic_Greninja), - SPECIES_SPRITE(GRENINJA_ASH, gMonBackPic_GreninjaAsh), - - SPECIES_SPRITE(VIVILLON_POLAR, gMonBackPic_VivillonPolar), - SPECIES_SPRITE(VIVILLON_TUNDRA, gMonBackPic_VivillonTundra), - SPECIES_SPRITE(VIVILLON_CONTINENTAL, gMonBackPic_VivillonContinental), - SPECIES_SPRITE(VIVILLON_GARDEN, gMonBackPic_VivillonGarden), - SPECIES_SPRITE(VIVILLON_ELEGANT, gMonBackPic_VivillonElegant), - SPECIES_SPRITE(VIVILLON_MEADOW, gMonBackPic_VivillonMeadow), - SPECIES_SPRITE(VIVILLON_MODERN, gMonBackPic_VivillonModern), - SPECIES_SPRITE(VIVILLON_MARINE, gMonBackPic_VivillonMarine), - SPECIES_SPRITE(VIVILLON_ARCHIPELAGO, gMonBackPic_VivillonArchipelago), - SPECIES_SPRITE(VIVILLON_HIGH_PLAINS, gMonBackPic_VivillonHighPlains), - SPECIES_SPRITE(VIVILLON_SANDSTORM, gMonBackPic_VivillonSandstorm), - SPECIES_SPRITE(VIVILLON_RIVER, gMonBackPic_VivillonRiver), - SPECIES_SPRITE(VIVILLON_MONSOON, gMonBackPic_VivillonMonsoon), - SPECIES_SPRITE(VIVILLON_SAVANNA, gMonBackPic_VivillonSavanna), - SPECIES_SPRITE(VIVILLON_SUN, gMonBackPic_VivillonSun), - SPECIES_SPRITE(VIVILLON_OCEAN, gMonBackPic_VivillonOcean), - SPECIES_SPRITE(VIVILLON_JUNGLE, gMonBackPic_VivillonJungle), - SPECIES_SPRITE(VIVILLON_FANCY, gMonBackPic_VivillonFancy), - SPECIES_SPRITE(VIVILLON_POKE_BALL, gMonBackPic_VivillonPokeBall), - - SPECIES_SPRITE(FLABEBE_YELLOW_FLOWER, gMonBackPic_Flabebe), - SPECIES_SPRITE(FLABEBE_ORANGE_FLOWER, gMonBackPic_Flabebe), - SPECIES_SPRITE(FLABEBE_BLUE_FLOWER, gMonBackPic_Flabebe), - SPECIES_SPRITE(FLABEBE_WHITE_FLOWER, gMonBackPic_Flabebe), - - SPECIES_SPRITE(FLOETTE_YELLOW_FLOWER, gMonBackPic_Floette), - SPECIES_SPRITE(FLOETTE_ORANGE_FLOWER, gMonBackPic_Floette), - SPECIES_SPRITE(FLOETTE_BLUE_FLOWER, gMonBackPic_Floette), - SPECIES_SPRITE(FLOETTE_WHITE_FLOWER, gMonBackPic_Floette), - SPECIES_SPRITE(FLOETTE_ETERNAL_FLOWER, gMonBackPic_FloetteEternalFlower), - - SPECIES_SPRITE(FLORGES_YELLOW_FLOWER, gMonBackPic_Florges), - SPECIES_SPRITE(FLORGES_ORANGE_FLOWER, gMonBackPic_Florges), - SPECIES_SPRITE(FLORGES_BLUE_FLOWER, gMonBackPic_Florges), - SPECIES_SPRITE(FLORGES_WHITE_FLOWER, gMonBackPic_Florges), - - SPECIES_SPRITE(FURFROU_HEART_TRIM, gMonBackPic_FurfrouHeartTrim), - SPECIES_SPRITE(FURFROU_STAR_TRIM, gMonBackPic_FurfrouStarTrim), - SPECIES_SPRITE(FURFROU_DIAMOND_TRIM, gMonBackPic_FurfrouDiamondTrim), - SPECIES_SPRITE(FURFROU_DEBUTANTE_TRIM, gMonBackPic_FurfrouDebutanteTrim), - SPECIES_SPRITE(FURFROU_MATRON_TRIM, gMonBackPic_FurfrouMatronTrim), - SPECIES_SPRITE(FURFROU_DANDY_TRIM, gMonBackPic_FurfrouDandyTrim), - SPECIES_SPRITE(FURFROU_LA_REINE_TRIM, gMonBackPic_FurfrouLaReineTrim), - SPECIES_SPRITE(FURFROU_KABUKI_TRIM, gMonBackPic_FurfrouKabukiTrim), - SPECIES_SPRITE(FURFROU_PHARAOH_TRIM, gMonBackPic_FurfrouPharaohTrim), - - SPECIES_SPRITE(MEOWSTIC_FEMALE, gMonBackPic_MeowsticFemale), - - SPECIES_SPRITE(AEGISLASH_BLADE, gMonBackPic_AegislashBlade), - - SPECIES_SPRITE(PUMPKABOO_SMALL, gMonBackPic_PumpkabooSmall), - SPECIES_SPRITE(PUMPKABOO_LARGE, gMonBackPic_PumpkabooLarge), - SPECIES_SPRITE(PUMPKABOO_SUPER, gMonBackPic_PumpkabooSuper), - - SPECIES_SPRITE(GOURGEIST_SMALL, gMonBackPic_GourgeistSmall), - SPECIES_SPRITE(GOURGEIST_LARGE, gMonBackPic_GourgeistLarge), - SPECIES_SPRITE(GOURGEIST_SUPER, gMonBackPic_GourgeistSuper), - - SPECIES_SPRITE(XERNEAS_ACTIVE, gMonBackPic_XerneasActive), - - SPECIES_SPRITE(ZYGARDE_10, gMonBackPic_Zygarde10), - SPECIES_SPRITE(ZYGARDE_10_POWER_CONSTRUCT, gMonBackPic_Zygarde10), - SPECIES_SPRITE(ZYGARDE_50_POWER_CONSTRUCT, gMonBackPic_Zygarde50), - SPECIES_SPRITE(ZYGARDE_COMPLETE, gMonBackPic_ZygardeComplete), - - SPECIES_SPRITE(HOOPA_UNBOUND, gMonBackPic_HoopaUnbound), -#endif - -#if P_GEN_7_POKEMON == TRUE - SPECIES_SPRITE(ORICORIO_POM_POM, gMonBackPic_OricorioPomPom), - SPECIES_SPRITE(ORICORIO_PAU, gMonBackPic_OricorioPau), - SPECIES_SPRITE(ORICORIO_SENSU, gMonBackPic_OricorioSensu), - - SPECIES_SPRITE(ROCKRUFF_OWN_TEMPO, gMonBackPic_Rockruff), - - SPECIES_SPRITE(LYCANROC_MIDNIGHT, gMonBackPic_LycanrocMidnight), - SPECIES_SPRITE(LYCANROC_DUSK, gMonBackPic_LycanrocDusk), - - SPECIES_SPRITE(WISHIWASHI_SCHOOL, gMonBackPic_WishiwashiSchool), - - SPECIES_SPRITE(SILVALLY_FIGHTING, gMonBackPic_Silvally), - SPECIES_SPRITE(SILVALLY_FLYING, gMonBackPic_Silvally), - SPECIES_SPRITE(SILVALLY_POISON, gMonBackPic_Silvally), - SPECIES_SPRITE(SILVALLY_GROUND, gMonBackPic_Silvally), - SPECIES_SPRITE(SILVALLY_ROCK, gMonBackPic_Silvally), - SPECIES_SPRITE(SILVALLY_BUG, gMonBackPic_Silvally), - SPECIES_SPRITE(SILVALLY_GHOST, gMonBackPic_Silvally), - SPECIES_SPRITE(SILVALLY_STEEL, gMonBackPic_Silvally), - SPECIES_SPRITE(SILVALLY_FIRE, gMonBackPic_Silvally), - SPECIES_SPRITE(SILVALLY_WATER, gMonBackPic_Silvally), - SPECIES_SPRITE(SILVALLY_GRASS, gMonBackPic_Silvally), - SPECIES_SPRITE(SILVALLY_ELECTRIC, gMonBackPic_Silvally), - SPECIES_SPRITE(SILVALLY_PSYCHIC, gMonBackPic_Silvally), - SPECIES_SPRITE(SILVALLY_ICE, gMonBackPic_Silvally), - SPECIES_SPRITE(SILVALLY_DRAGON, gMonBackPic_Silvally), - SPECIES_SPRITE(SILVALLY_DARK, gMonBackPic_Silvally), - SPECIES_SPRITE(SILVALLY_FAIRY, gMonBackPic_Silvally), - - SPECIES_SPRITE(MINIOR_METEOR_ORANGE, gMonBackPic_MiniorMeteor), - SPECIES_SPRITE(MINIOR_METEOR_YELLOW, gMonBackPic_MiniorMeteor), - SPECIES_SPRITE(MINIOR_METEOR_GREEN, gMonBackPic_MiniorMeteor), - SPECIES_SPRITE(MINIOR_METEOR_BLUE, gMonBackPic_MiniorMeteor), - SPECIES_SPRITE(MINIOR_METEOR_INDIGO, gMonBackPic_MiniorMeteor), - SPECIES_SPRITE(MINIOR_METEOR_VIOLET, gMonBackPic_MiniorMeteor), - SPECIES_SPRITE(MINIOR_CORE_RED, gMonBackPic_MiniorCore), - SPECIES_SPRITE(MINIOR_CORE_ORANGE, gMonBackPic_MiniorCore), - SPECIES_SPRITE(MINIOR_CORE_YELLOW, gMonBackPic_MiniorCore), - SPECIES_SPRITE(MINIOR_CORE_GREEN, gMonBackPic_MiniorCore), - SPECIES_SPRITE(MINIOR_CORE_BLUE, gMonBackPic_MiniorCore), - SPECIES_SPRITE(MINIOR_CORE_INDIGO, gMonBackPic_MiniorCore), - SPECIES_SPRITE(MINIOR_CORE_VIOLET, gMonBackPic_MiniorCore), - - SPECIES_SPRITE(MIMIKYU_BUSTED, gMonBackPic_MimikyuBusted), - - SPECIES_SPRITE(NECROZMA_DUSK_MANE, gMonBackPic_NecrozmaDuskMane), - SPECIES_SPRITE(NECROZMA_DAWN_WINGS, gMonBackPic_NecrozmaDawnWings), - SPECIES_SPRITE(NECROZMA_ULTRA, gMonBackPic_NecrozmaUltra), - - SPECIES_SPRITE(MAGEARNA_ORIGINAL_COLOR, gMonBackPic_MagearnaOriginalColor), -#endif - -#if P_GEN_8_POKEMON == TRUE - SPECIES_SPRITE(CRAMORANT_GULPING, gMonBackPic_CramorantGulping), - SPECIES_SPRITE(CRAMORANT_GORGING, gMonBackPic_CramorantGorging), - - SPECIES_SPRITE(TOXTRICITY_LOW_KEY, gMonBackPic_ToxtricityLowKey), - - SPECIES_SPRITE(SINISTEA_ANTIQUE, gMonBackPic_Sinistea), - - SPECIES_SPRITE(POLTEAGEIST_ANTIQUE, gMonBackPic_Polteageist), - - SPECIES_SPRITE(ALCREMIE_RUBY_CREAM, gMonBackPic_AlcremieRubyCream), - SPECIES_SPRITE(ALCREMIE_MATCHA_CREAM, gMonBackPic_AlcremieMatchaCream), - SPECIES_SPRITE(ALCREMIE_MINT_CREAM, gMonBackPic_AlcremieMintCream), - SPECIES_SPRITE(ALCREMIE_LEMON_CREAM, gMonBackPic_AlcremieLemonCream), - SPECIES_SPRITE(ALCREMIE_SALTED_CREAM, gMonBackPic_AlcremieSaltedCream), - SPECIES_SPRITE(ALCREMIE_RUBY_SWIRL, gMonBackPic_AlcremieRubySwirl), - SPECIES_SPRITE(ALCREMIE_CARAMEL_SWIRL, gMonBackPic_AlcremieCaramelSwirl), - SPECIES_SPRITE(ALCREMIE_RAINBOW_SWIRL, gMonBackPic_AlcremieRainbowSwirl), - - SPECIES_SPRITE(EISCUE_NOICE_FACE, gMonBackPic_EiscueNoiceFace), - - SPECIES_SPRITE(INDEEDEE_FEMALE, gMonBackPic_IndeedeeFemale), - - SPECIES_SPRITE(MORPEKO_HANGRY, gMonBackPic_MorpekoHangry), - - SPECIES_SPRITE(ZACIAN_CROWNED_SWORD, gMonBackPic_ZacianCrownedSword), - - SPECIES_SPRITE(ZAMAZENTA_CROWNED_SHIELD, gMonBackPic_ZamazentaCrownedShield), - - SPECIES_SPRITE(ETERNATUS_ETERNAMAX, gMonBackPic_EternatusEternamax), - - SPECIES_SPRITE(URSHIFU_RAPID_STRIKE_STYLE, gMonBackPic_UrshifuRapidStrikeStyle), - - SPECIES_SPRITE(ZARUDE_DADA, gMonBackPic_ZarudeDada), - - SPECIES_SPRITE(CALYREX_ICE_RIDER, gMonBackPic_CalyrexIceRider), - SPECIES_SPRITE(CALYREX_SHADOW_RIDER, gMonBackPic_CalyrexShadowRider), - - SPECIES_SPRITE(ENAMORUS_THERIAN, gMonBackPic_EnamorusTherian), - - SPECIES_SPRITE(BASCULEGION_FEMALE, gMonBackPic_BasculegionFemale), - - // Gigantamax Forms - SPECIES_SPRITE(VENUSAUR_GIGANTAMAX, gMonBackPic_VenusaurGigantamax), - SPECIES_SPRITE(CHARIZARD_GIGANTAMAX, gMonBackPic_CharizardGigantamax), - SPECIES_SPRITE(BLASTOISE_GIGANTAMAX, gMonBackPic_BlastoiseGigantamax), - SPECIES_SPRITE(BUTTERFREE_GIGANTAMAX, gMonBackPic_ButterfreeGigantamax), - SPECIES_SPRITE(PIKACHU_GIGANTAMAX, gMonBackPic_PikachuGigantamax), - SPECIES_SPRITE(MEOWTH_GIGANTAMAX, gMonBackPic_MeowthGigantamax), - SPECIES_SPRITE(MACHAMP_GIGANTAMAX, gMonBackPic_MachampGigantamax), - SPECIES_SPRITE(GENGAR_GIGANTAMAX, gMonBackPic_GengarGigantamax), - SPECIES_SPRITE(KINGLER_GIGANTAMAX, gMonBackPic_KinglerGigantamax), - SPECIES_SPRITE(LAPRAS_GIGANTAMAX, gMonBackPic_LaprasGigantamax), - SPECIES_SPRITE(EEVEE_GIGANTAMAX, gMonBackPic_EeveeGigantamax), - SPECIES_SPRITE(SNORLAX_GIGANTAMAX, gMonBackPic_SnorlaxGigantamax), - SPECIES_SPRITE(GARBODOR_GIGANTAMAX, gMonBackPic_GarbodorGigantamax), - SPECIES_SPRITE(MELMETAL_GIGANTAMAX, gMonBackPic_MelmetalGigantamax), - SPECIES_SPRITE(RILLABOOM_GIGANTAMAX, gMonBackPic_RillaboomGigantamax), - SPECIES_SPRITE(CINDERACE_GIGANTAMAX, gMonBackPic_CinderaceGigantamax), - SPECIES_SPRITE(INTELEON_GIGANTAMAX, gMonBackPic_InteleonGigantamax), - SPECIES_SPRITE(CORVIKNIGHT_GIGANTAMAX, gMonBackPic_CorviknightGigantamax), - SPECIES_SPRITE(ORBEETLE_GIGANTAMAX, gMonBackPic_OrbeetleGigantamax), - SPECIES_SPRITE(DREDNAW_GIGANTAMAX, gMonBackPic_DrednawGigantamax), - SPECIES_SPRITE(COALOSSAL_GIGANTAMAX, gMonBackPic_CoalossalGigantamax), - SPECIES_SPRITE(FLAPPLE_GIGANTAMAX, gMonBackPic_FlappleGigantamax), - SPECIES_SPRITE(APPLETUN_GIGANTAMAX, gMonBackPic_AppletunGigantamax), - SPECIES_SPRITE(SANDACONDA_GIGANTAMAX, gMonBackPic_SandacondaGigantamax), - SPECIES_SPRITE(TOXTRICITY_AMPED_GIGANTAMAX, gMonBackPic_ToxtricityGigantamax), - SPECIES_SPRITE(TOXTRICITY_LOW_KEY_GIGANTAMAX, gMonBackPic_ToxtricityGigantamax), - SPECIES_SPRITE(CENTISKORCH_GIGANTAMAX, gMonBackPic_CentiskorchGigantamax), - SPECIES_SPRITE(HATTERENE_GIGANTAMAX, gMonBackPic_HattereneGigantamax), - SPECIES_SPRITE(GRIMMSNARL_GIGANTAMAX, gMonBackPic_GrimmsnarlGigantamax), - SPECIES_SPRITE(ALCREMIE_GIGANTAMAX, gMonBackPic_AlcremieGigantamax), - SPECIES_SPRITE(COPPERAJAH_GIGANTAMAX, gMonBackPic_CopperajahGigantamax), - SPECIES_SPRITE(DURALUDON_GIGANTAMAX, gMonBackPic_DuraludonGigantamax), - SPECIES_SPRITE(URSHIFU_SINGLE_STRIKE_STYLE_GIGANTAMAX, gMonBackPic_UrshifuSingleStrikeGigantamax), - SPECIES_SPRITE(URSHIFU_RAPID_STRIKE_STYLE_GIGANTAMAX, gMonBackPic_UrshifuRapidStrikeGigantamax), -#endif - SPECIES_SPRITE(EGG, gMonFrontPic_Egg), -}; - -const struct CompressedSpriteSheet gMonBackPicTableFemale[NUM_SPECIES + 1] = -{ - SPECIES_SPRITE(VENUSAUR, gMonBackPic_VenusaurF), - SPECIES_SPRITE(BUTTERFREE, gMonBackPic_ButterfreeF), - SPECIES_SPRITE(RATTATA, gMonBackPic_RattataF), - SPECIES_SPRITE(RATICATE, gMonBackPic_RaticateF), - SPECIES_SPRITE(PIKACHU, gMonBackPic_PikachuF), - SPECIES_SPRITE(ZUBAT, gMonBackPic_ZubatF), - SPECIES_SPRITE(GOLBAT, gMonBackPic_GolbatF), - SPECIES_SPRITE(GLOOM, gMonBackPic_GloomF), - SPECIES_SPRITE(VILEPLUME, gMonBackPic_VileplumeF), - SPECIES_SPRITE(KADABRA, gMonBackPic_KadabraF), - SPECIES_SPRITE(ALAKAZAM, gMonBackPic_AlakazamF), - SPECIES_SPRITE(DODUO, gMonBackPic_DoduoF), - SPECIES_SPRITE(DODRIO, gMonBackPic_DodrioF), - SPECIES_SPRITE(HYPNO, gMonBackPic_HypnoF), - SPECIES_SPRITE(RHYHORN, gMonBackPic_RhyhornF), - SPECIES_SPRITE(RHYDON, gMonBackPic_RhydonF), - SPECIES_SPRITE(GOLDEEN, gMonBackPic_GoldeenF), - SPECIES_SPRITE(SEAKING, gMonBackPic_SeakingF), - SPECIES_SPRITE(MAGIKARP, gMonBackPic_MagikarpF), - SPECIES_SPRITE(GYARADOS, gMonBackPic_GyaradosF), - SPECIES_SPRITE(EEVEE, gMonBackPic_EeveeF), - SPECIES_SPRITE(MEGANIUM, gMonBackPic_MeganiumF), - SPECIES_SPRITE(LEDYBA, gMonBackPic_LedybaF), - SPECIES_SPRITE(LEDIAN, gMonBackPic_LedianF), - SPECIES_SPRITE(SUDOWOODO, gMonBackPic_SudowoodoF), - SPECIES_SPRITE(POLITOED, gMonBackPic_PolitoedF), - SPECIES_SPRITE(AIPOM, gMonBackPic_AipomF), - SPECIES_SPRITE(WOOPER, gMonBackPic_WooperF), - SPECIES_SPRITE(QUAGSIRE, gMonBackPic_QuagsireF), - SPECIES_SPRITE(MURKROW, gMonBackPic_MurkrowF), - SPECIES_SPRITE(WOBBUFFET, gMonBackPic_WobbuffetF), - SPECIES_SPRITE(GIRAFARIG, gMonBackPic_GirafarigF), - SPECIES_SPRITE(GLIGAR, gMonBackPic_GligarF), - SPECIES_SPRITE(STEELIX, gMonBackPic_SteelixF), - SPECIES_SPRITE(HERACROSS, gMonBackPic_HeracrossF), - SPECIES_SPRITE(SNEASEL, gMonBackPic_SneaselF), - SPECIES_SPRITE(URSARING, gMonBackPic_UrsaringF), - SPECIES_SPRITE(PILOSWINE, gMonBackPic_PiloswineF), - SPECIES_SPRITE(OCTILLERY, gMonBackPic_OctilleryF), - SPECIES_SPRITE(HOUNDOOM, gMonBackPic_HoundoomF), - SPECIES_SPRITE(DONPHAN, gMonBackPic_DonphanF), - SPECIES_SPRITE(TORCHIC, gMonBackPic_TorchicF), - SPECIES_SPRITE(COMBUSKEN, gMonBackPic_CombuskenF), - SPECIES_SPRITE(BLAZIKEN, gMonBackPic_BlazikenF), - SPECIES_SPRITE(BEAUTIFLY, gMonBackPic_BeautiflyF), - SPECIES_SPRITE(DUSTOX, gMonBackPic_DustoxF), - SPECIES_SPRITE(LUDICOLO, gMonBackPic_LudicoloF), - SPECIES_SPRITE(NUZLEAF, gMonBackPic_NuzleafF), - SPECIES_SPRITE(SHIFTRY, gMonBackPic_ShiftryF), - SPECIES_SPRITE(MEDITITE, gMonBackPic_MedititeF), - SPECIES_SPRITE(MEDICHAM, gMonBackPic_MedichamF), - SPECIES_SPRITE(ROSELIA, gMonBackPic_RoseliaF), - SPECIES_SPRITE(GULPIN, gMonBackPic_GulpinF), - SPECIES_SPRITE(SWALOT, gMonBackPic_SwalotF), - SPECIES_SPRITE(NUMEL, gMonBackPic_NumelF), - SPECIES_SPRITE(CAMERUPT, gMonBackPic_CameruptF), - SPECIES_SPRITE(MILOTIC, gMonBackPic_MiloticF), - SPECIES_SPRITE(RELICANTH, gMonBackPic_RelicanthF), - -#if P_GEN_4_POKEMON == TRUE - SPECIES_SPRITE(STARLY, gMonBackPic_StarlyF), - SPECIES_SPRITE(STARAVIA, gMonBackPic_StaraviaF), - SPECIES_SPRITE(STARAPTOR, gMonBackPic_Staraptor), - SPECIES_SPRITE(BIDOOF, gMonBackPic_BidoofF), - SPECIES_SPRITE(KRICKETOT, gMonBackPic_KricketotF), - SPECIES_SPRITE(KRICKETUNE, gMonBackPic_KricketuneF), - SPECIES_SPRITE(SHINX, gMonBackPic_ShinxF), - SPECIES_SPRITE(LUXIO, gMonBackPic_LuxioF), - SPECIES_SPRITE(LUXRAY, gMonBackPic_LuxrayF), - SPECIES_SPRITE(ROSERADE, gMonBackPic_RoseradeF), - SPECIES_SPRITE(BUIZEL, gMonBackPic_BuizelF), - SPECIES_SPRITE(FLOATZEL, gMonBackPic_FloatzelF), - SPECIES_SPRITE(AMBIPOM, gMonBackPic_AmbipomF), - SPECIES_SPRITE(GIBLE, gMonBackPic_GibleF), - SPECIES_SPRITE(GABITE, gMonBackPic_GabiteF), - SPECIES_SPRITE(CROAGUNK, gMonBackPic_CroagunkF), - SPECIES_SPRITE(TOXICROAK, gMonBackPic_ToxicroakF), - SPECIES_SPRITE(FINNEON, gMonBackPic_FinneonF), - SPECIES_SPRITE(LUMINEON, gMonBackPic_LumineonF), - SPECIES_SPRITE(SNOVER, gMonBackPic_SnoverF), - SPECIES_SPRITE(WEAVILE, gMonBackPic_WeavileF), - SPECIES_SPRITE(RHYPERIOR, gMonBackPic_RhyperiorF), -#endif -#if P_GEN_5_POKEMON == TRUE - SPECIES_SPRITE(UNFEZANT, gMonBackPic_UnfezantF), - SPECIES_SPRITE(FRILLISH, gMonBackPic_FrillishF), - SPECIES_SPRITE(JELLICENT, gMonBackPic_JellicentF), -#endif -#if P_GEN_6_POKEMON == TRUE - SPECIES_SPRITE(PYROAR, gMonBackPic_PyroarF), -#endif - - SPECIES_SPRITE(SNEASEL_HISUIAN, gMonBackPic_SneaselHisuianF), -}; diff --git a/src/data/pokemon_graphics/enemy_mon_elevation.h b/src/data/pokemon_graphics/enemy_mon_elevation.h deleted file mode 100644 index 9f80b98a3a0a..000000000000 --- a/src/data/pokemon_graphics/enemy_mon_elevation.h +++ /dev/null @@ -1,272 +0,0 @@ -// This determines how much higher above the usual position the enemy Pokémon -// is during battle. Species that float or fly have nonzero values. -const u8 gEnemyMonElevation[NUM_SPECIES + 1] = -{ - [SPECIES_BUTTERFREE] = 10, - [SPECIES_BEEDRILL] = 9, - [SPECIES_PIDGEOT] = 5, - [SPECIES_FEAROW] = 6, - [SPECIES_ZUBAT] = 16, - [SPECIES_GOLBAT] = 10, - [SPECIES_VENOMOTH] = 16, - [SPECIES_GEODUDE] = 10, - [SPECIES_MAGNEMITE] = 17, - [SPECIES_MAGNETON] = 9, - [SPECIES_GASTLY] = 10, - [SPECIES_HAUNTER] = 11, - [SPECIES_KOFFING] = 14, - [SPECIES_WEEZING] = 6, - [SPECIES_AERODACTYL] = 9, - [SPECIES_ZAPDOS] = 8, - [SPECIES_MEW] = 11, - [SPECIES_LEDIAN] = 10, - [SPECIES_CROBAT] = 9, - [SPECIES_HOPPIP] = 15, - [SPECIES_SKIPLOOM] = 15, - [SPECIES_JUMPLUFF] = 9, - [SPECIES_YANMA] = 13, - [SPECIES_MURKROW] = 12, - [SPECIES_MISDREAVUS] = 12, - [SPECIES_UNOWN] = 8, - [SPECIES_GLIGAR] = 8, - [SPECIES_MANTINE] = 6, - [SPECIES_PORYGON2] = 9, - [SPECIES_LUGIA] = 6, - [SPECIES_HO_OH] = 6, - [SPECIES_CELEBI] = 15, - [SPECIES_BEAUTIFLY] = 10, - [SPECIES_DUSTOX] = 12, - [SPECIES_NINJASK] = 10, - [SPECIES_SHEDINJA] = 8, - [SPECIES_WINGULL] = 15, - [SPECIES_PELIPPER] = 8, - [SPECIES_MASQUERAIN] = 10, - [SPECIES_BALTOY] = 5, - [SPECIES_CLAYDOL] = 10, - [SPECIES_FLYGON] = 7, - [SPECIES_GLALIE] = 12, - [SPECIES_LUNATONE] = 13, - [SPECIES_SOLROCK] = 4, - [SPECIES_ALTARIA] = 8, - [SPECIES_DUSKULL] = 13, - [SPECIES_SHUPPET] = 14, - [SPECIES_BANETTE] = 8, - [SPECIES_CASTFORM_NORMAL] = 16, - [SPECIES_BELDUM] = 8, - [SPECIES_RAYQUAZA] = 6, - [SPECIES_LATIAS] = 12, - [SPECIES_LATIOS] = 6, - [SPECIES_JIRACHI] = 14, - [SPECIES_CHIMECHO] = 16, - // Gen 4 - [SPECIES_MOTHIM] = 10, - [SPECIES_COMBEE] = 8, - [SPECIES_VESPIQUEN] = 4, - [SPECIES_DRIFLOON] = 5, - [SPECIES_DRIFBLIM] = 7, - [SPECIES_MISMAGIUS] = 3, - [SPECIES_CHINGLING] = 5, - [SPECIES_BRONZONG] = 4, - [SPECIES_MAGNEZONE] = 4, - [SPECIES_TOGEKISS] = 14, - [SPECIES_YANMEGA] = 6, - [SPECIES_GLISCOR] = 9, - [SPECIES_PORYGON_Z] = 12, - [SPECIES_PROBOPASS] = 6, - [SPECIES_ROTOM] = 10, - [SPECIES_UXIE] = 6, - [SPECIES_MESPRIT] = 6, - [SPECIES_AZELF] = 6, - [SPECIES_CRESSELIA] = 3, - [SPECIES_DARKRAI] = 4, - // Gen 5 - [SPECIES_MUNNA] = 7, - [SPECIES_MUSHARNA] = 5, - [SPECIES_WOOBAT] = 19, - [SPECIES_SWOOBAT] = 12, - [SPECIES_PETILIL] = 7, - [SPECIES_SIGILYPH] = 7, - [SPECIES_YAMASK] = 10, - [SPECIES_ARCHEOPS] = 8, - [SPECIES_SOLOSIS] = 14, - [SPECIES_DUOSION] = 7, - [SPECIES_REUNICLUS] = 8, - [SPECIES_EMOLGA] = 19, - [SPECIES_TYNAMO] = 16, - [SPECIES_EELEKTRIK] = 8, - [SPECIES_EELEKTROSS] = 8, - [SPECIES_CRYOGONAL] = 3, - [SPECIES_BRAVIARY] = 8, - [SPECIES_HYDREIGON] = 3, - [SPECIES_VOLCARONA] = 6, - [SPECIES_TORNADUS_INCARNATE] = 7, - [SPECIES_THUNDURUS_INCARNATE] = 7, - [SPECIES_LANDORUS_INCARNATE] = 7, - [SPECIES_MELOETTA_ARIA] = 8, - // Gen 6 - [SPECIES_FLETCHINDER] = 9, - [SPECIES_TALONFLAME] = 7, - [SPECIES_VIVILLON_ICY_SNOW] = 9, - [SPECIES_FLABEBE_RED_FLOWER] = 6, - [SPECIES_FLOETTE_RED_FLOWER] = 4, - [SPECIES_HONEDGE] = 4, - [SPECIES_DOUBLADE] = 5, - [SPECIES_AEGISLASH_SHIELD] = 3, - [SPECIES_SPRITZEE] = 14, - [SPECIES_INKAY] = 14, - [SPECIES_CARBINK] = 4, - [SPECIES_KLEFKI] = 5, - [SPECIES_PHANTUMP] = 5, - [SPECIES_NOIBAT] = 8, - [SPECIES_YVELTAL] = 5, - [SPECIES_HOOPA_CONFINED] = 13, - // Gen 7 - [SPECIES_VIKAVOLT] = 8, - [SPECIES_CUTIEFLY] = 10, - [SPECIES_RIBOMBEE] = 6, - [SPECIES_COMFEY] = 8, - [SPECIES_MINIOR_METEOR_RED] = 17, - [SPECIES_DHELMISE] = 2, - [SPECIES_TAPU_KOKO] = 9, - [SPECIES_TAPU_LELE] = 8, - [SPECIES_TAPU_BULU] = 5, - [SPECIES_TAPU_FINI] = 6, - [SPECIES_COSMOG] = 7, - [SPECIES_COSMOEM] = 3, - [SPECIES_LUNALA] = 6, - [SPECIES_NIHILEGO] = 6, - [SPECIES_KARTANA] = 3, - [SPECIES_NECROZMA] = 6, - [SPECIES_POIPOLE] = 9, - [SPECIES_NAGANADEL] = 7, - // Gen 8 - [SPECIES_CORVISQUIRE] = 10, - [SPECIES_ORBEETLE] = 8, - [SPECIES_FLAPPLE] = 9, - [SPECIES_SINISTEA_PHONY] = 9, - [SPECIES_POLTEAGEIST_PHONY] = 11, - [SPECIES_RUNERIGUS] = 5, - [SPECIES_MILCERY] = 10, - [SPECIES_FROSMOTH] = 7, - [SPECIES_DREEPY] = 5, - [SPECIES_DRAKLOAK] = 5, - [SPECIES_DRAGAPULT] = 3, - [SPECIES_ETERNATUS] = 4, - [SPECIES_REGIELEKI] = 8, - [SPECIES_REGIDRAGO] = 5, - // Megas - [SPECIES_BEEDRILL_MEGA] = 5, - [SPECIES_PIDGEOT_MEGA] = 8, - [SPECIES_ALAKAZAM_MEGA] = 7, - [SPECIES_PINSIR_MEGA] = 4, - [SPECIES_GYARADOS_MEGA] = 6, - [SPECIES_AERODACTYL_MEGA] = 7, - [SPECIES_MEWTWO_MEGA_Y] = 3, - [SPECIES_SHARPEDO_MEGA] = 1, - [SPECIES_ALTARIA_MEGA] = 6, - [SPECIES_BANETTE_MEGA] = 5, - [SPECIES_GLALIE_MEGA] = 8, - [SPECIES_METAGROSS_MEGA] = 4, - [SPECIES_LATIAS_MEGA] = 8, - [SPECIES_LATIOS_MEGA] = 8, - [SPECIES_RAYQUAZA_MEGA] = 4, - // Alolan Forms - [SPECIES_RAICHU_ALOLAN] = 4, - [SPECIES_GEODUDE_ALOLAN] = 16, - // Galarian Forms - [SPECIES_WEEZING_GALARIAN] = 6, - [SPECIES_ARTICUNO_GALARIAN] = 10, - [SPECIES_YAMASK_GALARIAN] = 4, - // Hisuian Forms - [SPECIES_VOLTORB_HISUIAN] = 1, - [SPECIES_ELECTRODE_HISUIAN] = 4, - [SPECIES_BRAVIARY_HISUIAN] = 3, - // Other Forms - [SPECIES_UNOWN_B] = 8, - [SPECIES_UNOWN_C] = 8, - [SPECIES_UNOWN_D] = 8, - [SPECIES_UNOWN_E] = 8, - [SPECIES_UNOWN_F] = 8, - [SPECIES_UNOWN_G] = 8, - [SPECIES_UNOWN_H] = 8, - [SPECIES_UNOWN_I] = 8, - [SPECIES_UNOWN_J] = 8, - [SPECIES_UNOWN_K] = 8, - [SPECIES_UNOWN_L] = 8, - [SPECIES_UNOWN_M] = 8, - [SPECIES_UNOWN_N] = 8, - [SPECIES_UNOWN_O] = 8, - [SPECIES_UNOWN_P] = 8, - [SPECIES_UNOWN_Q] = 8, - [SPECIES_UNOWN_R] = 8, - [SPECIES_UNOWN_S] = 8, - [SPECIES_UNOWN_T] = 8, - [SPECIES_UNOWN_U] = 8, - [SPECIES_UNOWN_V] = 8, - [SPECIES_UNOWN_W] = 8, - [SPECIES_UNOWN_X] = 8, - [SPECIES_UNOWN_Y] = 8, - [SPECIES_UNOWN_Z] = 8, - [SPECIES_UNOWN_QMARK] = 8, - [SPECIES_UNOWN_EMARK] = 8, - [SPECIES_CASTFORM_SUNNY] = 5, - [SPECIES_CASTFORM_RAINY] = 5, - [SPECIES_CASTFORM_SNOWY] = 5, - [SPECIES_ROTOM_HEAT] = 6, - [SPECIES_ROTOM_WASH] = 6, - [SPECIES_ROTOM_FROST] = 6, - [SPECIES_ROTOM_FAN] = 6, - [SPECIES_ROTOM_MOW] = 6, - [SPECIES_GIRATINA_ORIGIN] = 7, - [SPECIES_THUNDURUS_THERIAN] = 7, - [SPECIES_MELOETTA_PIROUETTE] = 5, - [SPECIES_VIVILLON_POLAR] = 9, - [SPECIES_VIVILLON_TUNDRA] = 9, - [SPECIES_VIVILLON_CONTINENTAL] = 9, - [SPECIES_VIVILLON_GARDEN] = 9, - [SPECIES_VIVILLON_ELEGANT] = 9, - [SPECIES_VIVILLON_MEADOW] = 9, - [SPECIES_VIVILLON_MODERN] = 9, - [SPECIES_VIVILLON_MARINE] = 9, - [SPECIES_VIVILLON_ARCHIPELAGO] = 9, - [SPECIES_VIVILLON_HIGH_PLAINS] = 9, - [SPECIES_VIVILLON_SANDSTORM] = 9, - [SPECIES_VIVILLON_RIVER] = 9, - [SPECIES_VIVILLON_MONSOON] = 9, - [SPECIES_VIVILLON_SAVANNA] = 9, - [SPECIES_VIVILLON_SUN] = 9, - [SPECIES_VIVILLON_OCEAN] = 9, - [SPECIES_VIVILLON_JUNGLE] = 9, - [SPECIES_VIVILLON_FANCY] = 9, - [SPECIES_VIVILLON_POKE_BALL] = 9, - [SPECIES_FLABEBE_YELLOW_FLOWER] = 6, - [SPECIES_FLABEBE_ORANGE_FLOWER] = 6, - [SPECIES_FLABEBE_BLUE_FLOWER] = 6, - [SPECIES_FLABEBE_WHITE_FLOWER] = 6, - [SPECIES_FLOETTE_YELLOW_FLOWER] = 4, - [SPECIES_FLOETTE_ORANGE_FLOWER] = 4, - [SPECIES_FLOETTE_BLUE_FLOWER] = 4, - [SPECIES_FLOETTE_WHITE_FLOWER] = 4, - [SPECIES_FLOETTE_ETERNAL_FLOWER] = 4, - [SPECIES_AEGISLASH_BLADE] = 3, - [SPECIES_HOOPA_UNBOUND] = 3, - [SPECIES_MINIOR_METEOR_ORANGE] = 17, - [SPECIES_MINIOR_METEOR_YELLOW] = 17, - [SPECIES_MINIOR_METEOR_GREEN] = 17, - [SPECIES_MINIOR_METEOR_BLUE] = 17, - [SPECIES_MINIOR_METEOR_INDIGO] = 17, - [SPECIES_MINIOR_METEOR_VIOLET] = 17, - [SPECIES_MINIOR_CORE_RED] = 17, - [SPECIES_MINIOR_CORE_ORANGE] = 17, - [SPECIES_MINIOR_CORE_YELLOW] = 17, - [SPECIES_MINIOR_CORE_GREEN] = 17, - [SPECIES_MINIOR_CORE_BLUE] = 17, - [SPECIES_MINIOR_CORE_INDIGO] = 17, - [SPECIES_MINIOR_CORE_VIOLET] = 17, - [SPECIES_NECROZMA_DAWN_WINGS] = 6, - [SPECIES_NECROZMA_ULTRA] = 5, - [SPECIES_SINISTEA_ANTIQUE] = 10, - [SPECIES_POLTEAGEIST_ANTIQUE] = 12, - [SPECIES_ETERNATUS_ETERNAMAX] = 13, - [SPECIES_BUTTERFREE_GIGANTAMAX] = 10, -}; diff --git a/src/data/pokemon_graphics/footprint_table.h b/src/data/pokemon_graphics/footprint_table.h deleted file mode 100644 index 67e88c6d3df6..000000000000 --- a/src/data/pokemon_graphics/footprint_table.h +++ /dev/null @@ -1,913 +0,0 @@ -const u8 *const gMonFootprintTable[NUM_SPECIES + 1] = -{ - [SPECIES_NONE] = gMonFootprint_Bulbasaur, - [SPECIES_BULBASAUR] = gMonFootprint_Bulbasaur, - [SPECIES_IVYSAUR] = gMonFootprint_Ivysaur, - [SPECIES_VENUSAUR] = gMonFootprint_Venusaur, - [SPECIES_CHARMANDER] = gMonFootprint_Charmander, - [SPECIES_CHARMELEON] = gMonFootprint_Charmeleon, - [SPECIES_CHARIZARD] = gMonFootprint_Charizard, - [SPECIES_SQUIRTLE] = gMonFootprint_Squirtle, - [SPECIES_WARTORTLE] = gMonFootprint_Wartortle, - [SPECIES_BLASTOISE] = gMonFootprint_Blastoise, - [SPECIES_CATERPIE] = gMonFootprint_Caterpie, - [SPECIES_METAPOD] = gMonFootprint_Metapod, - [SPECIES_BUTTERFREE] = gMonFootprint_Butterfree, - [SPECIES_WEEDLE] = gMonFootprint_Weedle, - [SPECIES_KAKUNA] = gMonFootprint_Kakuna, - [SPECIES_BEEDRILL] = gMonFootprint_Beedrill, - [SPECIES_PIDGEY] = gMonFootprint_Pidgey, - [SPECIES_PIDGEOTTO] = gMonFootprint_Pidgeotto, - [SPECIES_PIDGEOT] = gMonFootprint_Pidgeot, - [SPECIES_RATTATA] = gMonFootprint_Rattata, - [SPECIES_RATICATE] = gMonFootprint_Raticate, - [SPECIES_SPEAROW] = gMonFootprint_Spearow, - [SPECIES_FEAROW] = gMonFootprint_Fearow, - [SPECIES_EKANS] = gMonFootprint_Ekans, - [SPECIES_ARBOK] = gMonFootprint_Arbok, - [SPECIES_PIKACHU] = gMonFootprint_Pikachu, - [SPECIES_RAICHU] = gMonFootprint_Raichu, - [SPECIES_SANDSHREW] = gMonFootprint_Sandshrew, - [SPECIES_SANDSLASH] = gMonFootprint_Sandslash, - [SPECIES_NIDORAN_F] = gMonFootprint_NidoranF, - [SPECIES_NIDORINA] = gMonFootprint_Nidorina, - [SPECIES_NIDOQUEEN] = gMonFootprint_Nidoqueen, - [SPECIES_NIDORAN_M] = gMonFootprint_NidoranM, - [SPECIES_NIDORINO] = gMonFootprint_Nidorino, - [SPECIES_NIDOKING] = gMonFootprint_Nidoking, - [SPECIES_CLEFAIRY] = gMonFootprint_Clefairy, - [SPECIES_CLEFABLE] = gMonFootprint_Clefable, - [SPECIES_VULPIX] = gMonFootprint_Vulpix, - [SPECIES_NINETALES] = gMonFootprint_Ninetales, - [SPECIES_JIGGLYPUFF] = gMonFootprint_Jigglypuff, - [SPECIES_WIGGLYTUFF] = gMonFootprint_Wigglytuff, - [SPECIES_ZUBAT] = gMonFootprint_Zubat, - [SPECIES_GOLBAT] = gMonFootprint_Golbat, - [SPECIES_ODDISH] = gMonFootprint_Oddish, - [SPECIES_GLOOM] = gMonFootprint_Gloom, - [SPECIES_VILEPLUME] = gMonFootprint_Vileplume, - [SPECIES_PARAS] = gMonFootprint_Paras, - [SPECIES_PARASECT] = gMonFootprint_Parasect, - [SPECIES_VENONAT] = gMonFootprint_Venonat, - [SPECIES_VENOMOTH] = gMonFootprint_Venomoth, - [SPECIES_DIGLETT] = gMonFootprint_Diglett, - [SPECIES_DUGTRIO] = gMonFootprint_Dugtrio, - [SPECIES_MEOWTH] = gMonFootprint_Meowth, - [SPECIES_PERSIAN] = gMonFootprint_Persian, - [SPECIES_PSYDUCK] = gMonFootprint_Psyduck, - [SPECIES_GOLDUCK] = gMonFootprint_Golduck, - [SPECIES_MANKEY] = gMonFootprint_Mankey, - [SPECIES_PRIMEAPE] = gMonFootprint_Primeape, - [SPECIES_GROWLITHE] = gMonFootprint_Growlithe, - [SPECIES_ARCANINE] = gMonFootprint_Arcanine, - [SPECIES_POLIWAG] = gMonFootprint_Poliwag, - [SPECIES_POLIWHIRL] = gMonFootprint_Poliwhirl, - [SPECIES_POLIWRATH] = gMonFootprint_Poliwrath, - [SPECIES_ABRA] = gMonFootprint_Abra, - [SPECIES_KADABRA] = gMonFootprint_Kadabra, - [SPECIES_ALAKAZAM] = gMonFootprint_Alakazam, - [SPECIES_MACHOP] = gMonFootprint_Machop, - [SPECIES_MACHOKE] = gMonFootprint_Machoke, - [SPECIES_MACHAMP] = gMonFootprint_Machamp, - [SPECIES_BELLSPROUT] = gMonFootprint_Bellsprout, - [SPECIES_WEEPINBELL] = gMonFootprint_Weepinbell, - [SPECIES_VICTREEBEL] = gMonFootprint_Victreebel, - [SPECIES_TENTACOOL] = gMonFootprint_Tentacool, - [SPECIES_TENTACRUEL] = gMonFootprint_Tentacruel, - [SPECIES_GEODUDE] = gMonFootprint_Geodude, - [SPECIES_GRAVELER] = gMonFootprint_Graveler, - [SPECIES_GOLEM] = gMonFootprint_Golem, - [SPECIES_PONYTA] = gMonFootprint_Ponyta, - [SPECIES_RAPIDASH] = gMonFootprint_Rapidash, - [SPECIES_SLOWPOKE] = gMonFootprint_Slowpoke, - [SPECIES_SLOWBRO] = gMonFootprint_Slowbro, - [SPECIES_MAGNEMITE] = gMonFootprint_Magnemite, - [SPECIES_MAGNETON] = gMonFootprint_Magneton, - [SPECIES_FARFETCHD] = gMonFootprint_Farfetchd, - [SPECIES_DODUO] = gMonFootprint_Doduo, - [SPECIES_DODRIO] = gMonFootprint_Dodrio, - [SPECIES_SEEL] = gMonFootprint_Seel, - [SPECIES_DEWGONG] = gMonFootprint_Dewgong, - [SPECIES_GRIMER] = gMonFootprint_Grimer, - [SPECIES_MUK] = gMonFootprint_Muk, - [SPECIES_SHELLDER] = gMonFootprint_Shellder, - [SPECIES_CLOYSTER] = gMonFootprint_Cloyster, - [SPECIES_GASTLY] = gMonFootprint_Gastly, - [SPECIES_HAUNTER] = gMonFootprint_Haunter, - [SPECIES_GENGAR] = gMonFootprint_Gengar, - [SPECIES_ONIX] = gMonFootprint_Onix, - [SPECIES_DROWZEE] = gMonFootprint_Drowzee, - [SPECIES_HYPNO] = gMonFootprint_Hypno, - [SPECIES_KRABBY] = gMonFootprint_Krabby, - [SPECIES_KINGLER] = gMonFootprint_Kingler, - [SPECIES_VOLTORB] = gMonFootprint_Voltorb, - [SPECIES_ELECTRODE] = gMonFootprint_Electrode, - [SPECIES_EXEGGCUTE] = gMonFootprint_Exeggcute, - [SPECIES_EXEGGUTOR] = gMonFootprint_Exeggutor, - [SPECIES_CUBONE] = gMonFootprint_Cubone, - [SPECIES_MAROWAK] = gMonFootprint_Marowak, - [SPECIES_HITMONLEE] = gMonFootprint_Hitmonlee, - [SPECIES_HITMONCHAN] = gMonFootprint_Hitmonchan, - [SPECIES_LICKITUNG] = gMonFootprint_Lickitung, - [SPECIES_KOFFING] = gMonFootprint_Koffing, - [SPECIES_WEEZING] = gMonFootprint_Weezing, - [SPECIES_RHYHORN] = gMonFootprint_Rhyhorn, - [SPECIES_RHYDON] = gMonFootprint_Rhydon, - [SPECIES_CHANSEY] = gMonFootprint_Chansey, - [SPECIES_TANGELA] = gMonFootprint_Tangela, - [SPECIES_KANGASKHAN] = gMonFootprint_Kangaskhan, - [SPECIES_HORSEA] = gMonFootprint_Horsea, - [SPECIES_SEADRA] = gMonFootprint_Seadra, - [SPECIES_GOLDEEN] = gMonFootprint_Goldeen, - [SPECIES_SEAKING] = gMonFootprint_Seaking, - [SPECIES_STARYU] = gMonFootprint_Staryu, - [SPECIES_STARMIE] = gMonFootprint_Starmie, - [SPECIES_MR_MIME] = gMonFootprint_MrMime, - [SPECIES_SCYTHER] = gMonFootprint_Scyther, - [SPECIES_JYNX] = gMonFootprint_Jynx, - [SPECIES_ELECTABUZZ] = gMonFootprint_Electabuzz, - [SPECIES_MAGMAR] = gMonFootprint_Magmar, - [SPECIES_PINSIR] = gMonFootprint_Pinsir, - [SPECIES_TAUROS] = gMonFootprint_Tauros, - [SPECIES_MAGIKARP] = gMonFootprint_Magikarp, - [SPECIES_GYARADOS] = gMonFootprint_Gyarados, - [SPECIES_LAPRAS] = gMonFootprint_Lapras, - [SPECIES_DITTO] = gMonFootprint_Ditto, - [SPECIES_EEVEE] = gMonFootprint_Eevee, - [SPECIES_VAPOREON] = gMonFootprint_Vaporeon, - [SPECIES_JOLTEON] = gMonFootprint_Jolteon, - [SPECIES_FLAREON] = gMonFootprint_Flareon, - [SPECIES_PORYGON] = gMonFootprint_Porygon, - [SPECIES_OMANYTE] = gMonFootprint_Omanyte, - [SPECIES_OMASTAR] = gMonFootprint_Omastar, - [SPECIES_KABUTO] = gMonFootprint_Kabuto, - [SPECIES_KABUTOPS] = gMonFootprint_Kabutops, - [SPECIES_AERODACTYL] = gMonFootprint_Aerodactyl, - [SPECIES_SNORLAX] = gMonFootprint_Snorlax, - [SPECIES_ARTICUNO] = gMonFootprint_Articuno, - [SPECIES_ZAPDOS] = gMonFootprint_Zapdos, - [SPECIES_MOLTRES] = gMonFootprint_Moltres, - [SPECIES_DRATINI] = gMonFootprint_Dratini, - [SPECIES_DRAGONAIR] = gMonFootprint_Dragonair, - [SPECIES_DRAGONITE] = gMonFootprint_Dragonite, - [SPECIES_MEWTWO] = gMonFootprint_Mewtwo, - [SPECIES_MEW] = gMonFootprint_Mew, - [SPECIES_CHIKORITA] = gMonFootprint_Chikorita, - [SPECIES_BAYLEEF] = gMonFootprint_Bayleef, - [SPECIES_MEGANIUM] = gMonFootprint_Meganium, - [SPECIES_CYNDAQUIL] = gMonFootprint_Cyndaquil, - [SPECIES_QUILAVA] = gMonFootprint_Quilava, - [SPECIES_TYPHLOSION] = gMonFootprint_Typhlosion, - [SPECIES_TOTODILE] = gMonFootprint_Totodile, - [SPECIES_CROCONAW] = gMonFootprint_Croconaw, - [SPECIES_FERALIGATR] = gMonFootprint_Feraligatr, - [SPECIES_SENTRET] = gMonFootprint_Sentret, - [SPECIES_FURRET] = gMonFootprint_Furret, - [SPECIES_HOOTHOOT] = gMonFootprint_Hoothoot, - [SPECIES_NOCTOWL] = gMonFootprint_Noctowl, - [SPECIES_LEDYBA] = gMonFootprint_Ledyba, - [SPECIES_LEDIAN] = gMonFootprint_Ledian, - [SPECIES_SPINARAK] = gMonFootprint_Spinarak, - [SPECIES_ARIADOS] = gMonFootprint_Ariados, - [SPECIES_CROBAT] = gMonFootprint_Crobat, - [SPECIES_CHINCHOU] = gMonFootprint_Chinchou, - [SPECIES_LANTURN] = gMonFootprint_Lanturn, - [SPECIES_PICHU] = gMonFootprint_Pichu, - [SPECIES_CLEFFA] = gMonFootprint_Cleffa, - [SPECIES_IGGLYBUFF] = gMonFootprint_Igglybuff, - [SPECIES_TOGEPI] = gMonFootprint_Togepi, - [SPECIES_TOGETIC] = gMonFootprint_Togetic, - [SPECIES_NATU] = gMonFootprint_Natu, - [SPECIES_XATU] = gMonFootprint_Xatu, - [SPECIES_MAREEP] = gMonFootprint_Mareep, - [SPECIES_FLAAFFY] = gMonFootprint_Flaaffy, - [SPECIES_AMPHAROS] = gMonFootprint_Ampharos, - [SPECIES_BELLOSSOM] = gMonFootprint_Bellossom, - [SPECIES_MARILL] = gMonFootprint_Marill, - [SPECIES_AZUMARILL] = gMonFootprint_Azumarill, - [SPECIES_SUDOWOODO] = gMonFootprint_Sudowoodo, - [SPECIES_POLITOED] = gMonFootprint_Politoed, - [SPECIES_HOPPIP] = gMonFootprint_Hoppip, - [SPECIES_SKIPLOOM] = gMonFootprint_Skiploom, - [SPECIES_JUMPLUFF] = gMonFootprint_Jumpluff, - [SPECIES_AIPOM] = gMonFootprint_Aipom, - [SPECIES_SUNKERN] = gMonFootprint_Sunkern, - [SPECIES_SUNFLORA] = gMonFootprint_Sunflora, - [SPECIES_YANMA] = gMonFootprint_Yanma, - [SPECIES_WOOPER] = gMonFootprint_Wooper, - [SPECIES_QUAGSIRE] = gMonFootprint_Quagsire, - [SPECIES_ESPEON] = gMonFootprint_Espeon, - [SPECIES_UMBREON] = gMonFootprint_Umbreon, - [SPECIES_MURKROW] = gMonFootprint_Murkrow, - [SPECIES_SLOWKING] = gMonFootprint_Slowking, - [SPECIES_MISDREAVUS] = gMonFootprint_Misdreavus, - [SPECIES_UNOWN] = gMonFootprint_Unown, - [SPECIES_WOBBUFFET] = gMonFootprint_Wobbuffet, - [SPECIES_GIRAFARIG] = gMonFootprint_Girafarig, - [SPECIES_PINECO] = gMonFootprint_Pineco, - [SPECIES_FORRETRESS] = gMonFootprint_Forretress, - [SPECIES_DUNSPARCE] = gMonFootprint_Dunsparce, - [SPECIES_GLIGAR] = gMonFootprint_Gligar, - [SPECIES_STEELIX] = gMonFootprint_Steelix, - [SPECIES_SNUBBULL] = gMonFootprint_Snubbull, - [SPECIES_GRANBULL] = gMonFootprint_Granbull, - [SPECIES_QWILFISH] = gMonFootprint_Qwilfish, - [SPECIES_SCIZOR] = gMonFootprint_Scizor, - [SPECIES_SHUCKLE] = gMonFootprint_Shuckle, - [SPECIES_HERACROSS] = gMonFootprint_Heracross, - [SPECIES_SNEASEL] = gMonFootprint_Sneasel, - [SPECIES_TEDDIURSA] = gMonFootprint_Teddiursa, - [SPECIES_URSARING] = gMonFootprint_Ursaring, - [SPECIES_SLUGMA] = gMonFootprint_Slugma, - [SPECIES_MAGCARGO] = gMonFootprint_Magcargo, - [SPECIES_SWINUB] = gMonFootprint_Swinub, - [SPECIES_PILOSWINE] = gMonFootprint_Piloswine, - [SPECIES_CORSOLA] = gMonFootprint_Corsola, - [SPECIES_REMORAID] = gMonFootprint_Remoraid, - [SPECIES_OCTILLERY] = gMonFootprint_Octillery, - [SPECIES_DELIBIRD] = gMonFootprint_Delibird, - [SPECIES_MANTINE] = gMonFootprint_Mantine, - [SPECIES_SKARMORY] = gMonFootprint_Skarmory, - [SPECIES_HOUNDOUR] = gMonFootprint_Houndour, - [SPECIES_HOUNDOOM] = gMonFootprint_Houndoom, - [SPECIES_KINGDRA] = gMonFootprint_Kingdra, - [SPECIES_PHANPY] = gMonFootprint_Phanpy, - [SPECIES_DONPHAN] = gMonFootprint_Donphan, - [SPECIES_PORYGON2] = gMonFootprint_Porygon2, - [SPECIES_STANTLER] = gMonFootprint_Stantler, - [SPECIES_SMEARGLE] = gMonFootprint_Smeargle, - [SPECIES_TYROGUE] = gMonFootprint_Tyrogue, - [SPECIES_HITMONTOP] = gMonFootprint_Hitmontop, - [SPECIES_SMOOCHUM] = gMonFootprint_Smoochum, - [SPECIES_ELEKID] = gMonFootprint_Elekid, - [SPECIES_MAGBY] = gMonFootprint_Magby, - [SPECIES_MILTANK] = gMonFootprint_Miltank, - [SPECIES_BLISSEY] = gMonFootprint_Blissey, - [SPECIES_RAIKOU] = gMonFootprint_Raikou, - [SPECIES_ENTEI] = gMonFootprint_Entei, - [SPECIES_SUICUNE] = gMonFootprint_Suicune, - [SPECIES_LARVITAR] = gMonFootprint_Larvitar, - [SPECIES_PUPITAR] = gMonFootprint_Pupitar, - [SPECIES_TYRANITAR] = gMonFootprint_Tyranitar, - [SPECIES_LUGIA] = gMonFootprint_Lugia, - [SPECIES_HO_OH] = gMonFootprint_HoOh, - [SPECIES_CELEBI] = gMonFootprint_Celebi, - [SPECIES_TREECKO] = gMonFootprint_Treecko, - [SPECIES_GROVYLE] = gMonFootprint_Grovyle, - [SPECIES_SCEPTILE] = gMonFootprint_Sceptile, - [SPECIES_TORCHIC] = gMonFootprint_Torchic, - [SPECIES_COMBUSKEN] = gMonFootprint_Combusken, - [SPECIES_BLAZIKEN] = gMonFootprint_Blaziken, - [SPECIES_MUDKIP] = gMonFootprint_Mudkip, - [SPECIES_MARSHTOMP] = gMonFootprint_Marshtomp, - [SPECIES_SWAMPERT] = gMonFootprint_Swampert, - [SPECIES_POOCHYENA] = gMonFootprint_Poochyena, - [SPECIES_MIGHTYENA] = gMonFootprint_Mightyena, - [SPECIES_ZIGZAGOON] = gMonFootprint_Zigzagoon, - [SPECIES_LINOONE] = gMonFootprint_Linoone, - [SPECIES_WURMPLE] = gMonFootprint_Wurmple, - [SPECIES_SILCOON] = gMonFootprint_Silcoon, - [SPECIES_BEAUTIFLY] = gMonFootprint_Beautifly, - [SPECIES_CASCOON] = gMonFootprint_Cascoon, - [SPECIES_DUSTOX] = gMonFootprint_Dustox, - [SPECIES_LOTAD] = gMonFootprint_Lotad, - [SPECIES_LOMBRE] = gMonFootprint_Lombre, - [SPECIES_LUDICOLO] = gMonFootprint_Ludicolo, - [SPECIES_SEEDOT] = gMonFootprint_Seedot, - [SPECIES_NUZLEAF] = gMonFootprint_Nuzleaf, - [SPECIES_SHIFTRY] = gMonFootprint_Shiftry, - [SPECIES_NINCADA] = gMonFootprint_Nincada, - [SPECIES_NINJASK] = gMonFootprint_Ninjask, - [SPECIES_SHEDINJA] = gMonFootprint_Shedinja, - [SPECIES_TAILLOW] = gMonFootprint_Taillow, - [SPECIES_SWELLOW] = gMonFootprint_Swellow, - [SPECIES_SHROOMISH] = gMonFootprint_Shroomish, - [SPECIES_BRELOOM] = gMonFootprint_Breloom, - [SPECIES_SPINDA] = gMonFootprint_Spinda, - [SPECIES_WINGULL] = gMonFootprint_Wingull, - [SPECIES_PELIPPER] = gMonFootprint_Pelipper, - [SPECIES_SURSKIT] = gMonFootprint_Surskit, - [SPECIES_MASQUERAIN] = gMonFootprint_Masquerain, - [SPECIES_WAILMER] = gMonFootprint_Wailmer, - [SPECIES_WAILORD] = gMonFootprint_Wailord, - [SPECIES_SKITTY] = gMonFootprint_Skitty, - [SPECIES_DELCATTY] = gMonFootprint_Delcatty, - [SPECIES_KECLEON] = gMonFootprint_Kecleon, - [SPECIES_BALTOY] = gMonFootprint_Baltoy, - [SPECIES_CLAYDOL] = gMonFootprint_Claydol, - [SPECIES_NOSEPASS] = gMonFootprint_Nosepass, - [SPECIES_TORKOAL] = gMonFootprint_Torkoal, - [SPECIES_SABLEYE] = gMonFootprint_Sableye, - [SPECIES_BARBOACH] = gMonFootprint_Barboach, - [SPECIES_WHISCASH] = gMonFootprint_Whiscash, - [SPECIES_LUVDISC] = gMonFootprint_Luvdisc, - [SPECIES_CORPHISH] = gMonFootprint_Corphish, - [SPECIES_CRAWDAUNT] = gMonFootprint_Crawdaunt, - [SPECIES_FEEBAS] = gMonFootprint_Feebas, - [SPECIES_MILOTIC] = gMonFootprint_Milotic, - [SPECIES_CARVANHA] = gMonFootprint_Carvanha, - [SPECIES_SHARPEDO] = gMonFootprint_Sharpedo, - [SPECIES_TRAPINCH] = gMonFootprint_Trapinch, - [SPECIES_VIBRAVA] = gMonFootprint_Vibrava, - [SPECIES_FLYGON] = gMonFootprint_Flygon, - [SPECIES_MAKUHITA] = gMonFootprint_Makuhita, - [SPECIES_HARIYAMA] = gMonFootprint_Hariyama, - [SPECIES_ELECTRIKE] = gMonFootprint_Electrike, - [SPECIES_MANECTRIC] = gMonFootprint_Manectric, - [SPECIES_NUMEL] = gMonFootprint_Numel, - [SPECIES_CAMERUPT] = gMonFootprint_Camerupt, - [SPECIES_SPHEAL] = gMonFootprint_Spheal, - [SPECIES_SEALEO] = gMonFootprint_Sealeo, - [SPECIES_WALREIN] = gMonFootprint_Walrein, - [SPECIES_CACNEA] = gMonFootprint_Cacnea, - [SPECIES_CACTURNE] = gMonFootprint_Cacturne, - [SPECIES_SNORUNT] = gMonFootprint_Snorunt, - [SPECIES_GLALIE] = gMonFootprint_Glalie, - [SPECIES_LUNATONE] = gMonFootprint_Lunatone, - [SPECIES_SOLROCK] = gMonFootprint_Solrock, - [SPECIES_AZURILL] = gMonFootprint_Azurill, - [SPECIES_SPOINK] = gMonFootprint_Spoink, - [SPECIES_GRUMPIG] = gMonFootprint_Grumpig, - [SPECIES_PLUSLE] = gMonFootprint_Plusle, - [SPECIES_MINUN] = gMonFootprint_Minun, - [SPECIES_MAWILE] = gMonFootprint_Mawile, - [SPECIES_MEDITITE] = gMonFootprint_Meditite, - [SPECIES_MEDICHAM] = gMonFootprint_Medicham, - [SPECIES_SWABLU] = gMonFootprint_Swablu, - [SPECIES_ALTARIA] = gMonFootprint_Altaria, - [SPECIES_WYNAUT] = gMonFootprint_Wynaut, - [SPECIES_DUSKULL] = gMonFootprint_Duskull, - [SPECIES_DUSCLOPS] = gMonFootprint_Dusclops, - [SPECIES_ROSELIA] = gMonFootprint_Roselia, - [SPECIES_SLAKOTH] = gMonFootprint_Slakoth, - [SPECIES_VIGOROTH] = gMonFootprint_Vigoroth, - [SPECIES_SLAKING] = gMonFootprint_Slaking, - [SPECIES_GULPIN] = gMonFootprint_Gulpin, - [SPECIES_SWALOT] = gMonFootprint_Swalot, - [SPECIES_TROPIUS] = gMonFootprint_Tropius, - [SPECIES_WHISMUR] = gMonFootprint_Whismur, - [SPECIES_LOUDRED] = gMonFootprint_Loudred, - [SPECIES_EXPLOUD] = gMonFootprint_Exploud, - [SPECIES_CLAMPERL] = gMonFootprint_Clamperl, - [SPECIES_HUNTAIL] = gMonFootprint_Huntail, - [SPECIES_GOREBYSS] = gMonFootprint_Gorebyss, - [SPECIES_ABSOL] = gMonFootprint_Absol, - [SPECIES_SHUPPET] = gMonFootprint_Shuppet, - [SPECIES_BANETTE] = gMonFootprint_Banette, - [SPECIES_SEVIPER] = gMonFootprint_Seviper, - [SPECIES_ZANGOOSE] = gMonFootprint_Zangoose, - [SPECIES_RELICANTH] = gMonFootprint_Relicanth, - [SPECIES_ARON] = gMonFootprint_Aron, - [SPECIES_LAIRON] = gMonFootprint_Lairon, - [SPECIES_AGGRON] = gMonFootprint_Aggron, - [SPECIES_CASTFORM_NORMAL] = gMonFootprint_Castform, - [SPECIES_VOLBEAT] = gMonFootprint_Volbeat, - [SPECIES_ILLUMISE] = gMonFootprint_Illumise, - [SPECIES_LILEEP] = gMonFootprint_Lileep, - [SPECIES_CRADILY] = gMonFootprint_Cradily, - [SPECIES_ANORITH] = gMonFootprint_Anorith, - [SPECIES_ARMALDO] = gMonFootprint_Armaldo, - [SPECIES_RALTS] = gMonFootprint_Ralts, - [SPECIES_KIRLIA] = gMonFootprint_Kirlia, - [SPECIES_GARDEVOIR] = gMonFootprint_Gardevoir, - [SPECIES_BAGON] = gMonFootprint_Bagon, - [SPECIES_SHELGON] = gMonFootprint_Shelgon, - [SPECIES_SALAMENCE] = gMonFootprint_Salamence, - [SPECIES_BELDUM] = gMonFootprint_Beldum, - [SPECIES_METANG] = gMonFootprint_Metang, - [SPECIES_METAGROSS] = gMonFootprint_Metagross, - [SPECIES_REGIROCK] = gMonFootprint_Regirock, - [SPECIES_REGICE] = gMonFootprint_Regice, - [SPECIES_REGISTEEL] = gMonFootprint_Registeel, - [SPECIES_KYOGRE] = gMonFootprint_Kyogre, - [SPECIES_GROUDON] = gMonFootprint_Groudon, - [SPECIES_RAYQUAZA] = gMonFootprint_Rayquaza, - [SPECIES_LATIAS] = gMonFootprint_Latias, - [SPECIES_LATIOS] = gMonFootprint_Latios, - [SPECIES_JIRACHI] = gMonFootprint_Jirachi, - [SPECIES_DEOXYS_NORMAL] = gMonFootprint_Deoxys, - [SPECIES_CHIMECHO] = gMonFootprint_Chimecho, -#if P_GEN_4_POKEMON == TRUE - [SPECIES_TURTWIG] = gMonFootprint_Turtwig, - [SPECIES_GROTLE] = gMonFootprint_Grotle, - [SPECIES_TORTERRA] = gMonFootprint_Torterra, - [SPECIES_CHIMCHAR] = gMonFootprint_Chimchar, - [SPECIES_MONFERNO] = gMonFootprint_Monferno, - [SPECIES_INFERNAPE] = gMonFootprint_Infernape, - [SPECIES_PIPLUP] = gMonFootprint_Piplup, - [SPECIES_PRINPLUP] = gMonFootprint_Prinplup, - [SPECIES_EMPOLEON] = gMonFootprint_Empoleon, - [SPECIES_STARLY] = gMonFootprint_Starly, - [SPECIES_STARAVIA] = gMonFootprint_Staravia, - [SPECIES_STARAPTOR] = gMonFootprint_Staraptor, - [SPECIES_BIDOOF] = gMonFootprint_Bidoof, - [SPECIES_BIBAREL] = gMonFootprint_Bibarel, - [SPECIES_KRICKETOT] = gMonFootprint_Kricketot, - [SPECIES_KRICKETUNE] = gMonFootprint_Kricketune, - [SPECIES_SHINX] = gMonFootprint_Shinx, - [SPECIES_LUXIO] = gMonFootprint_Luxio, - [SPECIES_LUXRAY] = gMonFootprint_Luxray, - [SPECIES_BUDEW] = gMonFootprint_Budew, - [SPECIES_ROSERADE] = gMonFootprint_Roserade, - [SPECIES_CRANIDOS] = gMonFootprint_Cranidos, - [SPECIES_RAMPARDOS] = gMonFootprint_Rampardos, - [SPECIES_SHIELDON] = gMonFootprint_Shieldon, - [SPECIES_BASTIODON] = gMonFootprint_Bastiodon, - [SPECIES_BURMY_PLANT_CLOAK] = gMonFootprint_Burmy, - [SPECIES_WORMADAM_PLANT_CLOAK] = gMonFootprint_Wormadam, - [SPECIES_MOTHIM] = gMonFootprint_Mothim, - [SPECIES_COMBEE] = gMonFootprint_Combee, - [SPECIES_VESPIQUEN] = gMonFootprint_Vespiquen, - [SPECIES_PACHIRISU] = gMonFootprint_Pachirisu, - [SPECIES_BUIZEL] = gMonFootprint_Buizel, - [SPECIES_FLOATZEL] = gMonFootprint_Floatzel, - [SPECIES_CHERUBI] = gMonFootprint_Cherubi, - [SPECIES_CHERRIM_OVERCAST] = gMonFootprint_Cherrim, - [SPECIES_SHELLOS_WEST_SEA] = gMonFootprint_Shellos, - [SPECIES_GASTRODON_WEST_SEA] = gMonFootprint_Gastrodon, - [SPECIES_AMBIPOM] = gMonFootprint_Ambipom, - [SPECIES_DRIFLOON] = gMonFootprint_Drifloon, - [SPECIES_DRIFBLIM] = gMonFootprint_Drifblim, - [SPECIES_BUNEARY] = gMonFootprint_Buneary, - [SPECIES_LOPUNNY] = gMonFootprint_Lopunny, - [SPECIES_MISMAGIUS] = gMonFootprint_Mismagius, - [SPECIES_HONCHKROW] = gMonFootprint_Honchkrow, - [SPECIES_GLAMEOW] = gMonFootprint_Glameow, - [SPECIES_PURUGLY] = gMonFootprint_Purugly, - [SPECIES_CHINGLING] = gMonFootprint_Chingling, - [SPECIES_STUNKY] = gMonFootprint_Stunky, - [SPECIES_SKUNTANK] = gMonFootprint_Skuntank, - [SPECIES_BRONZOR] = gMonFootprint_Bronzor, - [SPECIES_BRONZONG] = gMonFootprint_Bronzong, - [SPECIES_BONSLY] = gMonFootprint_Bonsly, - [SPECIES_MIME_JR] = gMonFootprint_MimeJr, - [SPECIES_HAPPINY] = gMonFootprint_Happiny, - [SPECIES_CHATOT] = gMonFootprint_Chatot, - [SPECIES_SPIRITOMB] = gMonFootprint_Spiritomb, - [SPECIES_GIBLE] = gMonFootprint_Gible, - [SPECIES_GABITE] = gMonFootprint_Gabite, - [SPECIES_GARCHOMP] = gMonFootprint_Garchomp, - [SPECIES_MUNCHLAX] = gMonFootprint_Munchlax, - [SPECIES_RIOLU] = gMonFootprint_Riolu, - [SPECIES_LUCARIO] = gMonFootprint_Lucario, - [SPECIES_HIPPOPOTAS] = gMonFootprint_Hippopotas, - [SPECIES_HIPPOWDON] = gMonFootprint_Hippowdon, - [SPECIES_SKORUPI] = gMonFootprint_Skorupi, - [SPECIES_DRAPION] = gMonFootprint_Drapion, - [SPECIES_CROAGUNK] = gMonFootprint_Croagunk, - [SPECIES_TOXICROAK] = gMonFootprint_Toxicroak, - [SPECIES_CARNIVINE] = gMonFootprint_Carnivine, - [SPECIES_FINNEON] = gMonFootprint_Finneon, - [SPECIES_LUMINEON] = gMonFootprint_Lumineon, - [SPECIES_MANTYKE] = gMonFootprint_Mantyke, - [SPECIES_SNOVER] = gMonFootprint_Snover, - [SPECIES_ABOMASNOW] = gMonFootprint_Abomasnow, - [SPECIES_WEAVILE] = gMonFootprint_Weavile, - [SPECIES_MAGNEZONE] = gMonFootprint_Magnezone, - [SPECIES_LICKILICKY] = gMonFootprint_Lickilicky, - [SPECIES_RHYPERIOR] = gMonFootprint_Rhyperior, - [SPECIES_TANGROWTH] = gMonFootprint_Tangrowth, - [SPECIES_ELECTIVIRE] = gMonFootprint_Electivire, - [SPECIES_MAGMORTAR] = gMonFootprint_Magmortar, - [SPECIES_TOGEKISS] = gMonFootprint_Togekiss, - [SPECIES_YANMEGA] = gMonFootprint_Yanmega, - [SPECIES_LEAFEON] = gMonFootprint_Leafeon, - [SPECIES_GLACEON] = gMonFootprint_Glaceon, - [SPECIES_GLISCOR] = gMonFootprint_Gliscor, - [SPECIES_MAMOSWINE] = gMonFootprint_Mamoswine, - [SPECIES_PORYGON_Z] = gMonFootprint_PorygonZ, - [SPECIES_GALLADE] = gMonFootprint_Gallade, - [SPECIES_PROBOPASS] = gMonFootprint_Probopass, - [SPECIES_DUSKNOIR] = gMonFootprint_Dusknoir, - [SPECIES_FROSLASS] = gMonFootprint_Froslass, - [SPECIES_ROTOM] = gMonFootprint_Rotom, - [SPECIES_UXIE] = gMonFootprint_Uxie, - [SPECIES_MESPRIT] = gMonFootprint_Mesprit, - [SPECIES_AZELF] = gMonFootprint_Azelf, - [SPECIES_DIALGA] = gMonFootprint_Dialga, - [SPECIES_PALKIA] = gMonFootprint_Palkia, - [SPECIES_HEATRAN] = gMonFootprint_Heatran, - [SPECIES_REGIGIGAS] = gMonFootprint_Regigigas, - [SPECIES_GIRATINA_ALTERED] = gMonFootprint_Giratina, - [SPECIES_CRESSELIA] = gMonFootprint_Cresselia, - [SPECIES_PHIONE] = gMonFootprint_Phione, - [SPECIES_MANAPHY] = gMonFootprint_Manaphy, - [SPECIES_DARKRAI] = gMonFootprint_Darkrai, - [SPECIES_SHAYMIN_LAND] = gMonFootprint_Shaymin, - [SPECIES_ARCEUS_NORMAL] = gMonFootprint_Arceus, -#endif -#if P_GEN_5_POKEMON == TRUE - [SPECIES_VICTINI] = gMonFootprint_Victini, - [SPECIES_SNIVY] = gMonFootprint_Snivy, - [SPECIES_SERVINE] = gMonFootprint_Servine, - [SPECIES_SERPERIOR] = gMonFootprint_Serperior, - [SPECIES_TEPIG] = gMonFootprint_Tepig, - [SPECIES_PIGNITE] = gMonFootprint_Pignite, - [SPECIES_EMBOAR] = gMonFootprint_Emboar, - [SPECIES_OSHAWOTT] = gMonFootprint_Oshawott, - [SPECIES_DEWOTT] = gMonFootprint_Dewott, - [SPECIES_SAMUROTT] = gMonFootprint_Samurott, - [SPECIES_PATRAT] = gMonFootprint_Patrat, - [SPECIES_WATCHOG] = gMonFootprint_Watchog, - [SPECIES_LILLIPUP] = gMonFootprint_Lillipup, - [SPECIES_HERDIER] = gMonFootprint_Herdier, - [SPECIES_STOUTLAND] = gMonFootprint_Stoutland, - [SPECIES_PURRLOIN] = gMonFootprint_Purrloin, - [SPECIES_LIEPARD] = gMonFootprint_Liepard, - [SPECIES_PANSAGE] = gMonFootprint_Pansage, - [SPECIES_SIMISAGE] = gMonFootprint_Simisage, - [SPECIES_PANSEAR] = gMonFootprint_Pansear, - [SPECIES_SIMISEAR] = gMonFootprint_Simisear, - [SPECIES_PANPOUR] = gMonFootprint_Panpour, - [SPECIES_SIMIPOUR] = gMonFootprint_Simipour, - [SPECIES_MUNNA] = gMonFootprint_Munna, - [SPECIES_MUSHARNA] = gMonFootprint_Musharna, - [SPECIES_PIDOVE] = gMonFootprint_Pidove, - [SPECIES_TRANQUILL] = gMonFootprint_Tranquill, - [SPECIES_UNFEZANT] = gMonFootprint_Unfezant, - [SPECIES_BLITZLE] = gMonFootprint_Blitzle, - [SPECIES_ZEBSTRIKA] = gMonFootprint_Zebstrika, - [SPECIES_ROGGENROLA] = gMonFootprint_Roggenrola, - [SPECIES_BOLDORE] = gMonFootprint_Boldore, - [SPECIES_GIGALITH] = gMonFootprint_Gigalith, - [SPECIES_WOOBAT] = gMonFootprint_Woobat, - [SPECIES_SWOOBAT] = gMonFootprint_Swoobat, - [SPECIES_DRILBUR] = gMonFootprint_Drilbur, - [SPECIES_EXCADRILL] = gMonFootprint_Excadrill, - [SPECIES_AUDINO] = gMonFootprint_Audino, - [SPECIES_TIMBURR] = gMonFootprint_Timburr, - [SPECIES_GURDURR] = gMonFootprint_Gurdurr, - [SPECIES_CONKELDURR] = gMonFootprint_Conkeldurr, - [SPECIES_TYMPOLE] = gMonFootprint_Tympole, - [SPECIES_PALPITOAD] = gMonFootprint_Palpitoad, - [SPECIES_SEISMITOAD] = gMonFootprint_Seismitoad, - [SPECIES_THROH] = gMonFootprint_Throh, - [SPECIES_SAWK] = gMonFootprint_Sawk, - [SPECIES_SEWADDLE] = gMonFootprint_Sewaddle, - [SPECIES_SWADLOON] = gMonFootprint_Swadloon, - [SPECIES_LEAVANNY] = gMonFootprint_Leavanny, - [SPECIES_VENIPEDE] = gMonFootprint_Venipede, - [SPECIES_WHIRLIPEDE] = gMonFootprint_Whirlipede, - [SPECIES_SCOLIPEDE] = gMonFootprint_Scolipede, - [SPECIES_COTTONEE] = gMonFootprint_Cottonee, - [SPECIES_WHIMSICOTT] = gMonFootprint_Whimsicott, - [SPECIES_PETILIL] = gMonFootprint_Petilil, - [SPECIES_LILLIGANT] = gMonFootprint_Lilligant, - [SPECIES_BASCULIN_RED_STRIPED] = gMonFootprint_Basculin, - [SPECIES_SANDILE] = gMonFootprint_Sandile, - [SPECIES_KROKOROK] = gMonFootprint_Krokorok, - [SPECIES_KROOKODILE] = gMonFootprint_Krookodile, - [SPECIES_DARUMAKA] = gMonFootprint_Darumaka, - [SPECIES_DARMANITAN_STANDARD_MODE] = gMonFootprint_Darmanitan, - [SPECIES_MARACTUS] = gMonFootprint_Maractus, - [SPECIES_DWEBBLE] = gMonFootprint_Dwebble, - [SPECIES_CRUSTLE] = gMonFootprint_Crustle, - [SPECIES_SCRAGGY] = gMonFootprint_Scraggy, - [SPECIES_SCRAFTY] = gMonFootprint_Scrafty, - [SPECIES_SIGILYPH] = gMonFootprint_Sigilyph, - [SPECIES_YAMASK] = gMonFootprint_Yamask, - [SPECIES_COFAGRIGUS] = gMonFootprint_Cofagrigus, - [SPECIES_TIRTOUGA] = gMonFootprint_Tirtouga, - [SPECIES_CARRACOSTA] = gMonFootprint_Carracosta, - [SPECIES_ARCHEN] = gMonFootprint_Archen, - [SPECIES_ARCHEOPS] = gMonFootprint_Archeops, - [SPECIES_TRUBBISH] = gMonFootprint_Trubbish, - [SPECIES_GARBODOR] = gMonFootprint_Garbodor, - [SPECIES_ZORUA] = gMonFootprint_Zorua, - [SPECIES_ZOROARK] = gMonFootprint_Zoroark, - [SPECIES_MINCCINO] = gMonFootprint_Minccino, - [SPECIES_CINCCINO] = gMonFootprint_Cinccino, - [SPECIES_GOTHITA] = gMonFootprint_Gothita, - [SPECIES_GOTHORITA] = gMonFootprint_Gothorita, - [SPECIES_GOTHITELLE] = gMonFootprint_Gothitelle, - [SPECIES_SOLOSIS] = gMonFootprint_Solosis, - [SPECIES_DUOSION] = gMonFootprint_Duosion, - [SPECIES_REUNICLUS] = gMonFootprint_Reuniclus, - [SPECIES_DUCKLETT] = gMonFootprint_Ducklett, - [SPECIES_SWANNA] = gMonFootprint_Swanna, - [SPECIES_VANILLITE] = gMonFootprint_Vanillite, - [SPECIES_VANILLISH] = gMonFootprint_Vanillish, - [SPECIES_VANILLUXE] = gMonFootprint_Vanilluxe, - [SPECIES_DEERLING_SPRING] = gMonFootprint_Deerling, - [SPECIES_SAWSBUCK_SPRING] = gMonFootprint_Sawsbuck, - [SPECIES_EMOLGA] = gMonFootprint_Emolga, - [SPECIES_KARRABLAST] = gMonFootprint_Karrablast, - [SPECIES_ESCAVALIER] = gMonFootprint_Escavalier, - [SPECIES_FOONGUS] = gMonFootprint_Foongus, - [SPECIES_AMOONGUSS] = gMonFootprint_Amoonguss, - [SPECIES_FRILLISH] = gMonFootprint_Frillish, - [SPECIES_JELLICENT] = gMonFootprint_Jellicent, - [SPECIES_ALOMOMOLA] = gMonFootprint_Alomomola, - [SPECIES_JOLTIK] = gMonFootprint_Joltik, - [SPECIES_GALVANTULA] = gMonFootprint_Galvantula, - [SPECIES_FERROSEED] = gMonFootprint_Ferroseed, - [SPECIES_FERROTHORN] = gMonFootprint_Ferrothorn, - [SPECIES_KLINK] = gMonFootprint_Klink, - [SPECIES_KLANG] = gMonFootprint_Klang, - [SPECIES_KLINKLANG] = gMonFootprint_Klinklang, - [SPECIES_TYNAMO] = gMonFootprint_Tynamo, - [SPECIES_EELEKTRIK] = gMonFootprint_Eelektrik, - [SPECIES_EELEKTROSS] = gMonFootprint_Eelektross, - [SPECIES_ELGYEM] = gMonFootprint_Elgyem, - [SPECIES_BEHEEYEM] = gMonFootprint_Beheeyem, - [SPECIES_LITWICK] = gMonFootprint_Litwick, - [SPECIES_LAMPENT] = gMonFootprint_Lampent, - [SPECIES_CHANDELURE] = gMonFootprint_Chandelure, - [SPECIES_AXEW] = gMonFootprint_Axew, - [SPECIES_FRAXURE] = gMonFootprint_Fraxure, - [SPECIES_HAXORUS] = gMonFootprint_Haxorus, - [SPECIES_CUBCHOO] = gMonFootprint_Cubchoo, - [SPECIES_BEARTIC] = gMonFootprint_Beartic, - [SPECIES_CRYOGONAL] = gMonFootprint_Cryogonal, - [SPECIES_SHELMET] = gMonFootprint_Shelmet, - [SPECIES_ACCELGOR] = gMonFootprint_Accelgor, - [SPECIES_STUNFISK] = gMonFootprint_Stunfisk, - [SPECIES_MIENFOO] = gMonFootprint_Mienfoo, - [SPECIES_MIENSHAO] = gMonFootprint_Mienshao, - [SPECIES_DRUDDIGON] = gMonFootprint_Druddigon, - [SPECIES_GOLETT] = gMonFootprint_Golett, - [SPECIES_GOLURK] = gMonFootprint_Golurk, - [SPECIES_PAWNIARD] = gMonFootprint_Pawniard, - [SPECIES_BISHARP] = gMonFootprint_Bisharp, - [SPECIES_BOUFFALANT] = gMonFootprint_Bouffalant, - [SPECIES_RUFFLET] = gMonFootprint_Rufflet, - [SPECIES_BRAVIARY] = gMonFootprint_Braviary, - [SPECIES_VULLABY] = gMonFootprint_Vullaby, - [SPECIES_MANDIBUZZ] = gMonFootprint_Mandibuzz, - [SPECIES_HEATMOR] = gMonFootprint_Heatmor, - [SPECIES_DURANT] = gMonFootprint_Durant, - [SPECIES_DEINO] = gMonFootprint_Deino, - [SPECIES_ZWEILOUS] = gMonFootprint_Zweilous, - [SPECIES_HYDREIGON] = gMonFootprint_Hydreigon, - [SPECIES_LARVESTA] = gMonFootprint_Larvesta, - [SPECIES_VOLCARONA] = gMonFootprint_Volcarona, - [SPECIES_COBALION] = gMonFootprint_Cobalion, - [SPECIES_TERRAKION] = gMonFootprint_Terrakion, - [SPECIES_VIRIZION] = gMonFootprint_Virizion, - [SPECIES_TORNADUS_INCARNATE] = gMonFootprint_Tornadus, - [SPECIES_THUNDURUS_INCARNATE] = gMonFootprint_Thundurus, - [SPECIES_RESHIRAM] = gMonFootprint_Reshiram, - [SPECIES_ZEKROM] = gMonFootprint_Zekrom, - [SPECIES_LANDORUS_INCARNATE] = gMonFootprint_Landorus, - [SPECIES_KYUREM] = gMonFootprint_Kyurem, - [SPECIES_KELDEO_ORDINARY] = gMonFootprint_Keldeo, - [SPECIES_MELOETTA_ARIA] = gMonFootprint_Meloetta, - [SPECIES_GENESECT] = gMonFootprint_Genesect, -#endif -#if P_GEN_6_POKEMON == TRUE - [SPECIES_CHESPIN] = gMonFootprint_Chespin, - [SPECIES_QUILLADIN] = gMonFootprint_Quilladin, - [SPECIES_CHESNAUGHT] = gMonFootprint_Chesnaught, - [SPECIES_FENNEKIN] = gMonFootprint_Fennekin, - [SPECIES_BRAIXEN] = gMonFootprint_Braixen, - [SPECIES_DELPHOX] = gMonFootprint_Delphox, - [SPECIES_FROAKIE] = gMonFootprint_Froakie, - [SPECIES_FROGADIER] = gMonFootprint_Frogadier, - [SPECIES_GRENINJA] = gMonFootprint_Greninja, - [SPECIES_BUNNELBY] = gMonFootprint_Bunnelby, - [SPECIES_DIGGERSBY] = gMonFootprint_Diggersby, - [SPECIES_FLETCHLING] = gMonFootprint_Fletchling, - [SPECIES_FLETCHINDER] = gMonFootprint_Fletchinder, - [SPECIES_TALONFLAME] = gMonFootprint_Talonflame, - [SPECIES_SCATTERBUG] = gMonFootprint_Scatterbug, - [SPECIES_SPEWPA] = gMonFootprint_Spewpa, - [SPECIES_VIVILLON_ICY_SNOW] = gMonFootprint_Vivillon, - [SPECIES_LITLEO] = gMonFootprint_Litleo, - [SPECIES_PYROAR] = gMonFootprint_Pyroar, - [SPECIES_FLABEBE_RED_FLOWER] = gMonFootprint_Flabebe, - [SPECIES_FLOETTE_RED_FLOWER] = gMonFootprint_Floette, - [SPECIES_FLORGES_RED_FLOWER] = gMonFootprint_Florges, - [SPECIES_SKIDDO] = gMonFootprint_Skiddo, - [SPECIES_GOGOAT] = gMonFootprint_Gogoat, - [SPECIES_PANCHAM] = gMonFootprint_Pancham, - [SPECIES_PANGORO] = gMonFootprint_Pangoro, - [SPECIES_FURFROU_NATURAL] = gMonFootprint_Furfrou, - [SPECIES_ESPURR] = gMonFootprint_Espurr, - [SPECIES_MEOWSTIC_MALE] = gMonFootprint_Meowstic, - [SPECIES_HONEDGE] = gMonFootprint_Honedge, - [SPECIES_DOUBLADE] = gMonFootprint_Doublade, - [SPECIES_AEGISLASH_SHIELD] = gMonFootprint_Aegislash, - [SPECIES_SPRITZEE] = gMonFootprint_Spritzee, - [SPECIES_AROMATISSE] = gMonFootprint_Aromatisse, - [SPECIES_SWIRLIX] = gMonFootprint_Swirlix, - [SPECIES_SLURPUFF] = gMonFootprint_Slurpuff, - [SPECIES_INKAY] = gMonFootprint_Inkay, - [SPECIES_MALAMAR] = gMonFootprint_Malamar, - [SPECIES_BINACLE] = gMonFootprint_Binacle, - [SPECIES_BARBARACLE] = gMonFootprint_Barbaracle, - [SPECIES_SKRELP] = gMonFootprint_Skrelp, - [SPECIES_DRAGALGE] = gMonFootprint_Dragalge, - [SPECIES_CLAUNCHER] = gMonFootprint_Clauncher, - [SPECIES_CLAWITZER] = gMonFootprint_Clawitzer, - [SPECIES_HELIOPTILE] = gMonFootprint_Helioptile, - [SPECIES_HELIOLISK] = gMonFootprint_Heliolisk, - [SPECIES_TYRUNT] = gMonFootprint_Tyrunt, - [SPECIES_TYRANTRUM] = gMonFootprint_Tyrantrum, - [SPECIES_AMAURA] = gMonFootprint_Amaura, - [SPECIES_AURORUS] = gMonFootprint_Aurorus, - [SPECIES_SYLVEON] = gMonFootprint_Sylveon, - [SPECIES_HAWLUCHA] = gMonFootprint_Hawlucha, - [SPECIES_DEDENNE] = gMonFootprint_Dedenne, - [SPECIES_CARBINK] = gMonFootprint_Carbink, - [SPECIES_GOOMY] = gMonFootprint_Goomy, - [SPECIES_SLIGGOO] = gMonFootprint_Sliggoo, - [SPECIES_GOODRA] = gMonFootprint_Goodra, - [SPECIES_KLEFKI] = gMonFootprint_Klefki, - [SPECIES_PHANTUMP] = gMonFootprint_Phantump, - [SPECIES_TREVENANT] = gMonFootprint_Trevenant, - [SPECIES_PUMPKABOO_AVERAGE] = gMonFootprint_Pumpkaboo, - [SPECIES_GOURGEIST_AVERAGE] = gMonFootprint_Gourgeist, - [SPECIES_BERGMITE] = gMonFootprint_Bergmite, - [SPECIES_AVALUGG] = gMonFootprint_Avalugg, - [SPECIES_NOIBAT] = gMonFootprint_Noibat, - [SPECIES_NOIVERN] = gMonFootprint_Noivern, - [SPECIES_XERNEAS_NEUTRAL] = gMonFootprint_Xerneas, - [SPECIES_YVELTAL] = gMonFootprint_Yveltal, - [SPECIES_ZYGARDE_50_AURA_BREAK] = gMonFootprint_Zygarde, - [SPECIES_DIANCIE] = gMonFootprint_Diancie, - [SPECIES_HOOPA_CONFINED] = gMonFootprint_Hoopa, - [SPECIES_VOLCANION] = gMonFootprint_Volcanion, -#endif -#if P_GEN_7_POKEMON == TRUE - [SPECIES_ROWLET] = gMonFootprint_Rowlet, - [SPECIES_DARTRIX] = gMonFootprint_Dartrix, - [SPECIES_DECIDUEYE] = gMonFootprint_Decidueye, - [SPECIES_LITTEN] = gMonFootprint_Litten, - [SPECIES_TORRACAT] = gMonFootprint_Torracat, - [SPECIES_INCINEROAR] = gMonFootprint_Incineroar, - [SPECIES_POPPLIO] = gMonFootprint_Popplio, - [SPECIES_BRIONNE] = gMonFootprint_Brionne, - [SPECIES_PRIMARINA] = gMonFootprint_Primarina, - [SPECIES_PIKIPEK] = gMonFootprint_Pikipek, - [SPECIES_TRUMBEAK] = gMonFootprint_Trumbeak, - [SPECIES_TOUCANNON] = gMonFootprint_Toucannon, - [SPECIES_YUNGOOS] = gMonFootprint_Yungoos, - [SPECIES_GUMSHOOS] = gMonFootprint_Gumshoos, - [SPECIES_GRUBBIN] = gMonFootprint_Grubbin, - [SPECIES_CHARJABUG] = gMonFootprint_Charjabug, - [SPECIES_VIKAVOLT] = gMonFootprint_Vikavolt, - [SPECIES_CRABRAWLER] = gMonFootprint_Crabrawler, - [SPECIES_CRABOMINABLE] = gMonFootprint_Crabominable, - [SPECIES_ORICORIO_BAILE] = gMonFootprint_Oricorio, - [SPECIES_CUTIEFLY] = gMonFootprint_Cutiefly, - [SPECIES_RIBOMBEE] = gMonFootprint_Ribombee, - [SPECIES_ROCKRUFF] = gMonFootprint_Rockruff, - [SPECIES_LYCANROC_MIDDAY] = gMonFootprint_Lycanroc, - [SPECIES_WISHIWASHI_SOLO] = gMonFootprint_Wishiwashi, - [SPECIES_MAREANIE] = gMonFootprint_Mareanie, - [SPECIES_TOXAPEX] = gMonFootprint_Toxapex, - [SPECIES_MUDBRAY] = gMonFootprint_Mudbray, - [SPECIES_MUDSDALE] = gMonFootprint_Mudsdale, - [SPECIES_DEWPIDER] = gMonFootprint_Dewpider, - [SPECIES_ARAQUANID] = gMonFootprint_Araquanid, - [SPECIES_FOMANTIS] = gMonFootprint_Fomantis, - [SPECIES_LURANTIS] = gMonFootprint_Lurantis, - [SPECIES_MORELULL] = gMonFootprint_Morelull, - [SPECIES_SHIINOTIC] = gMonFootprint_Shiinotic, - [SPECIES_SALANDIT] = gMonFootprint_Salandit, - [SPECIES_SALAZZLE] = gMonFootprint_Salazzle, - [SPECIES_STUFFUL] = gMonFootprint_Stufful, - [SPECIES_BEWEAR] = gMonFootprint_Bewear, - [SPECIES_BOUNSWEET] = gMonFootprint_Bounsweet, - [SPECIES_STEENEE] = gMonFootprint_Steenee, - [SPECIES_TSAREENA] = gMonFootprint_Tsareena, - [SPECIES_COMFEY] = gMonFootprint_Comfey, - [SPECIES_ORANGURU] = gMonFootprint_Oranguru, - [SPECIES_PASSIMIAN] = gMonFootprint_Passimian, - [SPECIES_WIMPOD] = gMonFootprint_Wimpod, - [SPECIES_GOLISOPOD] = gMonFootprint_Golisopod, - [SPECIES_SANDYGAST] = gMonFootprint_Sandygast, - [SPECIES_PALOSSAND] = gMonFootprint_Palossand, - [SPECIES_PYUKUMUKU] = gMonFootprint_Pyukumuku, - [SPECIES_TYPE_NULL] = gMonFootprint_Type_Null, - [SPECIES_SILVALLY_NORMAL] = gMonFootprint_Silvally, - [SPECIES_MINIOR_METEOR_RED] = gMonFootprint_Minior, - [SPECIES_KOMALA] = gMonFootprint_Komala, - [SPECIES_TURTONATOR] = gMonFootprint_Turtonator, - [SPECIES_TOGEDEMARU] = gMonFootprint_Togedemaru, - [SPECIES_MIMIKYU_DISGUISED] = gMonFootprint_Mimikyu, - [SPECIES_BRUXISH] = gMonFootprint_Bruxish, - [SPECIES_DRAMPA] = gMonFootprint_Drampa, - [SPECIES_DHELMISE] = gMonFootprint_Dhelmise, - [SPECIES_JANGMO_O] = gMonFootprint_JangmoO, - [SPECIES_HAKAMO_O] = gMonFootprint_HakamoO, - [SPECIES_KOMMO_O] = gMonFootprint_KommoO, - [SPECIES_TAPU_KOKO] = gMonFootprint_Tapu_Koko, - [SPECIES_TAPU_LELE] = gMonFootprint_Tapu_Lele, - [SPECIES_TAPU_BULU] = gMonFootprint_Tapu_Bulu, - [SPECIES_TAPU_FINI] = gMonFootprint_Tapu_Fini, - [SPECIES_COSMOG] = gMonFootprint_Cosmog, - [SPECIES_COSMOEM] = gMonFootprint_Cosmoem, - [SPECIES_SOLGALEO] = gMonFootprint_Solgaleo, - [SPECIES_LUNALA] = gMonFootprint_Lunala, - [SPECIES_NIHILEGO] = gMonFootprint_Nihilego, - [SPECIES_BUZZWOLE] = gMonFootprint_Buzzwole, - [SPECIES_PHEROMOSA] = gMonFootprint_Pheromosa, - [SPECIES_XURKITREE] = gMonFootprint_Xurkitree, - [SPECIES_CELESTEELA] = gMonFootprint_Celesteela, - [SPECIES_KARTANA] = gMonFootprint_Kartana, - [SPECIES_GUZZLORD] = gMonFootprint_Guzzlord, - [SPECIES_NECROZMA] = gMonFootprint_Necrozma, - [SPECIES_MAGEARNA] = gMonFootprint_Magearna, - [SPECIES_MARSHADOW] = gMonFootprint_Marshadow, - [SPECIES_POIPOLE] = gMonFootprint_Poipole, - [SPECIES_NAGANADEL] = gMonFootprint_Naganadel, - [SPECIES_STAKATAKA] = gMonFootprint_Stakataka, - [SPECIES_BLACEPHALON] = gMonFootprint_Blacephalon, - [SPECIES_ZERAORA] = gMonFootprint_Zeraora, - [SPECIES_MELTAN] = gMonFootprint_Meltan, - [SPECIES_MELMETAL] = gMonFootprint_Melmetal, -#endif -#if P_GEN_8_POKEMON == TRUE - [SPECIES_GROOKEY] = gMonFootprint_Grookey, - [SPECIES_THWACKEY] = gMonFootprint_Thwackey, - [SPECIES_RILLABOOM] = gMonFootprint_Rillaboom, - [SPECIES_SCORBUNNY] = gMonFootprint_Scorbunny, - [SPECIES_RABOOT] = gMonFootprint_Raboot, - [SPECIES_CINDERACE] = gMonFootprint_Cinderace, - [SPECIES_SOBBLE] = gMonFootprint_Sobble, - [SPECIES_DRIZZILE] = gMonFootprint_Drizzile, - [SPECIES_INTELEON] = gMonFootprint_Inteleon, - [SPECIES_SKWOVET] = gMonFootprint_Skwovet, - [SPECIES_GREEDENT] = gMonFootprint_Greedent, - [SPECIES_ROOKIDEE] = gMonFootprint_Rookidee, - [SPECIES_CORVISQUIRE] = gMonFootprint_Corvisquire, - [SPECIES_CORVIKNIGHT] = gMonFootprint_Corviknight, - [SPECIES_BLIPBUG] = gMonFootprint_Blipbug, - [SPECIES_DOTTLER] = gMonFootprint_Dottler, - [SPECIES_ORBEETLE] = gMonFootprint_Orbeetle, - [SPECIES_NICKIT] = gMonFootprint_Nickit, - [SPECIES_THIEVUL] = gMonFootprint_Thievul, - [SPECIES_GOSSIFLEUR] = gMonFootprint_Gossifleur, - [SPECIES_ELDEGOSS] = gMonFootprint_Eldegoss, - [SPECIES_WOOLOO] = gMonFootprint_Wooloo, - [SPECIES_DUBWOOL] = gMonFootprint_Dubwool, - [SPECIES_CHEWTLE] = gMonFootprint_Chewtle, - [SPECIES_DREDNAW] = gMonFootprint_Drednaw, - [SPECIES_YAMPER] = gMonFootprint_Yamper, - [SPECIES_BOLTUND] = gMonFootprint_Boltund, - [SPECIES_ROLYCOLY] = gMonFootprint_Rolycoly, - [SPECIES_CARKOL] = gMonFootprint_Carkol, - [SPECIES_COALOSSAL] = gMonFootprint_Coalossal, - [SPECIES_APPLIN] = gMonFootprint_Applin, - [SPECIES_FLAPPLE] = gMonFootprint_Flapple, - [SPECIES_APPLETUN] = gMonFootprint_Appletun, - [SPECIES_SILICOBRA] = gMonFootprint_Silicobra, - [SPECIES_SANDACONDA] = gMonFootprint_Sandaconda, - [SPECIES_CRAMORANT] = gMonFootprint_Cramorant, - [SPECIES_ARROKUDA] = gMonFootprint_Arrokuda, - [SPECIES_BARRASKEWDA] = gMonFootprint_Barraskewda, - [SPECIES_TOXEL] = gMonFootprint_Toxel, - [SPECIES_TOXTRICITY_AMPED] = gMonFootprint_Toxtricity, - [SPECIES_SIZZLIPEDE] = gMonFootprint_Sizzlipede, - [SPECIES_CENTISKORCH] = gMonFootprint_Centiskorch, - [SPECIES_CLOBBOPUS] = gMonFootprint_Clobbopus, - [SPECIES_GRAPPLOCT] = gMonFootprint_Grapploct, - [SPECIES_SINISTEA_PHONY] = gMonFootprint_Sinistea, - [SPECIES_POLTEAGEIST_PHONY] = gMonFootprint_Polteageist, - [SPECIES_HATENNA] = gMonFootprint_Hatenna, - [SPECIES_HATTREM] = gMonFootprint_Hattrem, - [SPECIES_HATTERENE] = gMonFootprint_Hatterene, - [SPECIES_IMPIDIMP] = gMonFootprint_Impidimp, - [SPECIES_MORGREM] = gMonFootprint_Morgrem, - [SPECIES_GRIMMSNARL] = gMonFootprint_Grimmsnarl, - [SPECIES_OBSTAGOON] = gMonFootprint_Obstagoon, - [SPECIES_PERRSERKER] = gMonFootprint_Perrserker, - [SPECIES_CURSOLA] = gMonFootprint_Cursola, - [SPECIES_SIRFETCHD] = gMonFootprint_Sirfetchd, - [SPECIES_MR_RIME] = gMonFootprint_Mr_Rime, - [SPECIES_RUNERIGUS] = gMonFootprint_Runerigus, - [SPECIES_MILCERY] = gMonFootprint_Milcery, - [SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM] = gMonFootprint_Alcremie, - [SPECIES_FALINKS] = gMonFootprint_Falinks, - [SPECIES_PINCURCHIN] = gMonFootprint_Pincurchin, - [SPECIES_SNOM] = gMonFootprint_Snom, - [SPECIES_FROSMOTH] = gMonFootprint_Frosmoth, - [SPECIES_STONJOURNER] = gMonFootprint_Stonjourner, - [SPECIES_EISCUE_ICE_FACE] = gMonFootprint_Eiscue, - [SPECIES_INDEEDEE_MALE] = gMonFootprint_Indeedee, - [SPECIES_MORPEKO_FULL_BELLY] = gMonFootprint_Morpeko, - [SPECIES_CUFANT] = gMonFootprint_Cufant, - [SPECIES_COPPERAJAH] = gMonFootprint_Copperajah, - [SPECIES_DRACOZOLT] = gMonFootprint_Dracozolt, - [SPECIES_ARCTOZOLT] = gMonFootprint_Arctozolt, - [SPECIES_DRACOVISH] = gMonFootprint_Dracovish, - [SPECIES_ARCTOVISH] = gMonFootprint_Arctovish, - [SPECIES_DURALUDON] = gMonFootprint_Duraludon, - [SPECIES_DREEPY] = gMonFootprint_Dreepy, - [SPECIES_DRAKLOAK] = gMonFootprint_Drakloak, - [SPECIES_DRAGAPULT] = gMonFootprint_Dragapult, - [SPECIES_ZACIAN_HERO_OF_MANY_BATTLES] = gMonFootprint_Zacian, - [SPECIES_ZAMAZENTA_HERO_OF_MANY_BATTLES] = gMonFootprint_Zamazenta, - [SPECIES_ETERNATUS] = gMonFootprint_Eternatus, - [SPECIES_KUBFU] = gMonFootprint_Kubfu, - [SPECIES_URSHIFU_SINGLE_STRIKE_STYLE] = gMonFootprint_Urshifu, - [SPECIES_ZARUDE] = gMonFootprint_Zarude, - [SPECIES_REGIELEKI] = gMonFootprint_Regieleki, - [SPECIES_REGIDRAGO] = gMonFootprint_Regidrago, - [SPECIES_GLASTRIER] = gMonFootprint_Glastrier, - [SPECIES_SPECTRIER] = gMonFootprint_Spectrier, - [SPECIES_CALYREX] = gMonFootprint_Calyrex, -#endif - [SPECIES_EGG] = gMonFootprint_Bulbasaur, -}; diff --git a/src/data/pokemon_graphics/front_pic_anims.h b/src/data/pokemon_graphics/front_pic_anims.h index cc2fae2884bc..e3c63cb14576 100644 --- a/src/data/pokemon_graphics/front_pic_anims.h +++ b/src/data/pokemon_graphics/front_pic_anims.h @@ -1,4 +1,11 @@ -#define PLACEHOLDER_TWO_FRAME_ANIMATION(name) \ +#define PLACEHOLDER_ANIM_SINGLE_FRAME(name) \ +static const union AnimCmd sAnim_##name##_1[] = \ +{ \ + ANIMCMD_FRAME(0, 1), \ + ANIMCMD_END, \ +} + +#define PLACEHOLDER_ANIM_TWO_FRAMES(name) \ static const union AnimCmd sAnim_##name##_1[] = \ { \ ANIMCMD_FRAME(0, 30), \ @@ -2319,7 +2326,7 @@ static const union AnimCmd sAnim_Misdreavus_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Unown_1[] = +static const union AnimCmd sAnim_UnownA_1[] = { ANIMCMD_FRAME(0, 30), ANIMCMD_FRAME(1, 30), @@ -4723,7 +4730,7 @@ static const union AnimCmd sAnim_UnownZ_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_UnownEMark_1[] = +static const union AnimCmd sAnim_UnownExclamationMark_1[] = { ANIMCMD_FRAME(0, 30), ANIMCMD_FRAME(1, 30), @@ -4731,7 +4738,7 @@ static const union AnimCmd sAnim_UnownEMark_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_UnownQMark_1[] = +static const union AnimCmd sAnim_UnownQuestionMark_1[] = { ANIMCMD_FRAME(0, 30), ANIMCMD_FRAME(1, 30), @@ -7724,10 +7731,8 @@ static const union AnimCmd sAnim_GreninjaAsh_1[] = static const union AnimCmd sAnim_Bunnelby_1[] = { - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; @@ -7740,41 +7745,31 @@ static const union AnimCmd sAnim_Diggersby_1[] = static const union AnimCmd sAnim_Fletchling_1[] = { + ANIMCMD_FRAME(1, 7), ANIMCMD_FRAME(0, 3), - ANIMCMD_FRAME(1, 50), - ANIMCMD_FRAME(1, 28), + ANIMCMD_FRAME(1, 7), + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(1, 10), ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; static const union AnimCmd sAnim_Fletchinder_1[] = { - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(1, 2), - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(1, 2), - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(1, 2), - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(1, 2), - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(1, 2), - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(1, 2), - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(1, 2), - ANIMCMD_FRAME(0, 2), - ANIMCMD_FRAME(1, 2), - ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; static const union AnimCmd sAnim_Talonflame_1[] = { - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 55), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; @@ -7836,11 +7831,10 @@ static const union AnimCmd sAnim_Pyroar_1[] = static const union AnimCmd sAnim_Flabebe_1[] = { - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 27), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 23), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; @@ -7855,21 +7849,16 @@ static const union AnimCmd sAnim_Flabebe_2[] = static const union AnimCmd sAnim_Floette_1[] = { - ANIMCMD_FRAME(0, 33), - ANIMCMD_FRAME(1, 33), - ANIMCMD_FRAME(0, 33), - ANIMCMD_FRAME(1, 33), - ANIMCMD_FRAME(0, 11), + ANIMCMD_FRAME(0, 25), + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; static const union AnimCmd sAnim_Florges_1[] = { - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 45), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; @@ -8141,10 +8130,15 @@ static const union AnimCmd sAnim_Tyrantrum_1[] = static const union AnimCmd sAnim_Amaura_1[] = { - ANIMCMD_FRAME(0, 5), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 35), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 11), + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 5), ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; @@ -8180,11 +8174,7 @@ static const union AnimCmd sAnim_Dedenne_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Carbink_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +PLACEHOLDER_ANIM_SINGLE_FRAME(Carbink); static const union AnimCmd sAnim_Goomy_1[] = { @@ -8371,87 +8361,58 @@ static const union AnimCmd sAnim_Volcanion_1[] = #if P_GEN_7_POKEMON == TRUE static const union AnimCmd sAnim_Rowlet_1[] = { - ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; static const union AnimCmd sAnim_Dartrix_1[] = { - ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; static const union AnimCmd sAnim_Decidueye_1[] = { - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Litten_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Torracat_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Incineroar_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Popplio_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Brionne_1[] = -{ - ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -static const union AnimCmd sAnim_Primarina_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +PLACEHOLDER_ANIM_SINGLE_FRAME(Litten); +PLACEHOLDER_ANIM_SINGLE_FRAME(Torracat); +PLACEHOLDER_ANIM_SINGLE_FRAME(Incineroar); +PLACEHOLDER_ANIM_SINGLE_FRAME(Popplio); +PLACEHOLDER_ANIM_SINGLE_FRAME(Brionne); +PLACEHOLDER_ANIM_SINGLE_FRAME(Primarina); static const union AnimCmd sAnim_Pikipek_1[] = { - ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; static const union AnimCmd sAnim_Trumbeak_1[] = { - ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; static const union AnimCmd sAnim_Toucannon_1[] = { - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Yungoos_1[] = -{ - ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -static const union AnimCmd sAnim_Gumshoos_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +PLACEHOLDER_ANIM_SINGLE_FRAME(Yungoos); +PLACEHOLDER_ANIM_SINGLE_FRAME(Gumshoos); static const union AnimCmd sAnim_Grubbin_1[] = { @@ -8481,78 +8442,86 @@ static const union AnimCmd sAnim_Vikavolt_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Crabrawler_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +PLACEHOLDER_ANIM_SINGLE_FRAME(Crabrawler); +PLACEHOLDER_ANIM_SINGLE_FRAME(Crabominable); +PLACEHOLDER_ANIM_SINGLE_FRAME(Oricorio); -static const union AnimCmd sAnim_Crabominable_1[] = +static const union AnimCmd sAnim_Cutiefly_1[] = { + ANIMCMD_FRAME(1, 1), ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Oricorio_1[] = -{ + ANIMCMD_FRAME(1, 1), ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Cutiefly_1[] = -{ + ANIMCMD_FRAME(1, 1), ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Ribombee_1[] = -{ + ANIMCMD_FRAME(1, 1), ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Rockruff_1[] = -{ + ANIMCMD_FRAME(1, 1), ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_LycanrocMidday_1[] = -{ + ANIMCMD_FRAME(1, 1), ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_WishiwashiSolo_1[] = -{ + ANIMCMD_FRAME(1, 1), ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Mareanie_1[] = -{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 35), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -static const union AnimCmd sAnim_Toxapex_1[] = +static const union AnimCmd sAnim_Ribombee_1[] = { - ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 8), ANIMCMD_END, }; -static const union AnimCmd sAnim_Mudbray_1[] = +static const union AnimCmd sAnim_Rockruff_1[] = { - ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 9), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(1, 8), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -static const union AnimCmd sAnim_Mudsdale_1[] = +static const union AnimCmd sAnim_LycanrocMidday_1[] = { - ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; +PLACEHOLDER_ANIM_SINGLE_FRAME(WishiwashiSolo); +PLACEHOLDER_ANIM_SINGLE_FRAME(Mareanie); +PLACEHOLDER_ANIM_SINGLE_FRAME(Toxapex); +PLACEHOLDER_ANIM_SINGLE_FRAME(Mudbray); +PLACEHOLDER_ANIM_SINGLE_FRAME(Mudsdale); + static const union AnimCmd sAnim_Dewpider_1[] = { ANIMCMD_FRAME(0, 1), @@ -8572,29 +8541,10 @@ static const union AnimCmd sAnim_Araquanid_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Fomantis_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Lurantis_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Morelull_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Shiinotic_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +PLACEHOLDER_ANIM_SINGLE_FRAME(Fomantis); +PLACEHOLDER_ANIM_SINGLE_FRAME(Lurantis); +PLACEHOLDER_ANIM_SINGLE_FRAME(Morelull); +PLACEHOLDER_ANIM_SINGLE_FRAME(Shiinotic); static const union AnimCmd sAnim_Salandit_1[] = { @@ -8628,1814 +8578,515 @@ static const union AnimCmd sAnim_Bewear_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_Bounsweet_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Steenee_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Tsareena_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Comfey_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +PLACEHOLDER_ANIM_SINGLE_FRAME(Bounsweet); +PLACEHOLDER_ANIM_SINGLE_FRAME(Steenee); +PLACEHOLDER_ANIM_SINGLE_FRAME(Tsareena); +PLACEHOLDER_ANIM_SINGLE_FRAME(Comfey); static const union AnimCmd sAnim_Oranguru_1[] = { - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Passimian_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Wimpod_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Golisopod_1[] = -{ - ANIMCMD_FRAME(0, 25), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Sandygast_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Palossand_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Pyukumuku_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_TypeNull_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Silvally_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_MiniorMeteor_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Komala_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Turtonator_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 44), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Togedemaru_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_MimikyuDisguised_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Bruxish_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Drampa_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Dhelmise_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_JANGMO_O_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_HAKAMO_O_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_KOMMO_O_1[] = -{ - ANIMCMD_FRAME(0, 10), ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 20), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_TapuKoko_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_FRAME(1, 40), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_TapuLele_1[] = -{ - ANIMCMD_FRAME(1, 50), - ANIMCMD_FRAME(1, 50), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_TapuBulu_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_FRAME(1, 40), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 40), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_TapuFini_1[] = -{ - ANIMCMD_FRAME(1, 60), - ANIMCMD_FRAME(1, 60), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Cosmog_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Cosmoem_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Solgaleo_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Lunala_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Nihilego_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Buzzwole_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Pheromosa_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Xurkitree_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Celesteela_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Kartana_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Guzzlord_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Necrozma_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Magearna_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Marshadow_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_FRAME(1, 54), - ANIMCMD_FRAME(0, 10), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Poipole_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Naganadel_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Stakataka_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Blacephalon_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Zeraora_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Meltan_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Melmetal_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; -#endif -#if P_GEN_8_POKEMON == TRUE -static const union AnimCmd sAnim_Grookey_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Thwackey_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Rillaboom_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Scorbunny_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Raboot_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Cinderace_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Sobble_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Drizzile_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Inteleon_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Skwovet_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Greedent_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Rookidee_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 15), - ANIMCMD_FRAME(0, 15), - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Corvisquire_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 10), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Corviknight_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_FRAME(1, 50), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Blipbug_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Dottler_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Orbeetle_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Nickit_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Thievul_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Gossifleur_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Eldegoss_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Wooloo_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Dubwool_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Chewtle_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 20), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Drednaw_1[] = -{ - ANIMCMD_FRAME(0, 10), - ANIMCMD_FRAME(1, 30), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Yamper_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Boltund_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -PLACEHOLDER_TWO_FRAME_ANIMATION(Rolycoly); -PLACEHOLDER_TWO_FRAME_ANIMATION(Carkol); -PLACEHOLDER_TWO_FRAME_ANIMATION(Coalossal); -PLACEHOLDER_TWO_FRAME_ANIMATION(Applin); -PLACEHOLDER_TWO_FRAME_ANIMATION(Flapple); -PLACEHOLDER_TWO_FRAME_ANIMATION(Appletun); - -static const union AnimCmd sAnim_Silicobra_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Sandaconda_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Cramorant_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Arrokuda_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Barraskewda_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Toxel_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Toxtricity_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Sizzlipede_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_FRAME(1, 25), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Centiskorch_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_FRAME(1, 35), - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Clobbopus_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Grapploct_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Sinistea_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Polteageist_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Hatenna_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Hattrem_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Hatterene_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Impidimp_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Morgrem_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Grimmsnarl_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Obstagoon_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Perrserker_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Cursola_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Sirfetchd_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_MrRime_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Runerigus_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Milcery_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Alcremie_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Falinks_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -PLACEHOLDER_TWO_FRAME_ANIMATION(Pincurchin); - -static const union AnimCmd sAnim_Snom_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Frosmoth_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Stonjourner_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Eiscue_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Indeedee_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Morpeko_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Cufant_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Copperajah_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Dracozolt_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Arctozolt_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Dracovish_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Arctovish_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Duraludon_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Dreepy_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Drakloak_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Dragapult_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Zacian_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Zamazenta_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Eternatus_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Kubfu_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Urshifu_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Zarude_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Regieleki_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Regidrago_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Glastrier_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Spectrier_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Calyrex_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Wyrdeer_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Kleavor_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Ursaluna_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Basculegion_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Sneasler_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_Overqwil_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_EnamorusIncarnate_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; -#endif - -static const union AnimCmd sAnim_VenusaurMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_CHARIZARD_MEGA_X_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_CHARIZARD_MEGA_Y_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_BlastoiseMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_BeedrillMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_PidgeotMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_AlakazamMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_SlowbroMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_GengarMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_KangaskhanMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_PinsirMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_GyaradosMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_AerodactylMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_MEWTWO_MEGA_X_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_MEWTWO_MEGA_Y_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_AmpharosMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_SteelixMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_ScizorMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_HeracrossMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_HoundoomMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_TyranitarMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_SceptileMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_BlazikenMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_SwampertMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_GardevoirMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_SableyeMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_MawileMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_AggronMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_MedichamMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_ManectricMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_SharpedoMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_CameruptMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_AltariaMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_BanetteMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_AbsolMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_GlalieMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_SalamenceMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_MetagrossMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_LatiasMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_LatiosMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_KyogrePrimal_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_GroudonPrimal_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_RayquazaMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -#if P_GEN_4_POKEMON == TRUE -static const union AnimCmd sAnim_LopunnyMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_GarchompMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_LucarioMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_AbomasnowMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_GalladeMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; -#endif -#if P_GEN_5_POKEMON == TRUE -static const union AnimCmd sAnim_AudinoMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; -#endif -#if P_GEN_6_POKEMON == TRUE -static const union AnimCmd sAnim_DiancieMega_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; -#endif - -static const union AnimCmd sAnim_RattataAlolan_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_RaticateAlolan_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_RaichuAlolan_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_SandshrewAlolan_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_SandslashAlolan_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_VulpixAlolan_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_NinetalesAlolan_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_DiglettAlolan_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_DugtrioAlolan_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_MeowthAlolan_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_PersianAlolan_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_GeodudeAlolan_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_GravelerAlolan_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_GolemAlolan_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_GrimerAlolan_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_MukAlolan_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -PLACEHOLDER_TWO_FRAME_ANIMATION(ExeggutorAlolan); - -static const union AnimCmd sAnim_MarowakAlolan_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_MeowthGalarian_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_PonytaGalarian_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_RapidashGalarian_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_SlowpokeGalarian_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_SlowbroGalarian_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_FarfetchdGalarian_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_WeezingGalarian_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_MrMimeGalarian_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_ArticunoGalarian_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_ZapdosGalarian_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_MoltresGalarian_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_SlowkingGalarian_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_CorsolaGalarian_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_ZigzagoonGalarian_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_LinooneGalarian_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -#if P_GEN_5_POKEMON == TRUE -static const union AnimCmd sAnim_DarumakaGalarian_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_DarmanitanGalarianStandardMode_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_YamaskGalarian_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_StunfiskGalarian_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; -#endif - -static const union AnimCmd sAnim_GrowlitheHisuian_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_ArcanineHisuian_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_VoltorbHisuian_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_ElectrodeHisuian_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_TyphlosionHisuian_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_QwilfishHisuian_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_SneaselHisuian_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -#if P_GEN_5_POKEMON == TRUE -static const union AnimCmd sAnim_SamurottHisuian_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_LilligantHisuian_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_ZoruaHisuian_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_ZoroarkHisuian_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_BraviaryHisuian_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; -#endif -#if P_GEN_6_POKEMON == TRUE -static const union AnimCmd sAnim_SliggooHisuian_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_GoodraHisuian_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_AvaluggHisuian_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; -#endif -#if P_GEN_7_POKEMON == TRUE -static const union AnimCmd sAnim_DecidueyeHisuian_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; -#endif - -static const union AnimCmd sAnim_VenusaurGigantamax_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_CharizardGigantamax_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_BlastoiseGigantamax_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_ButterfreeGigantamax_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_PikachuGigantamax_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_MeowthGigantamax_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_MachampGigantamax_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_GengarGigantamax_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_KinglerGigantamax_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_LaprasGigantamax_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_EeveeGigantamax_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_SnorlaxGigantamax_1[] = -{ - ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -#if P_GEN_5_POKEMON == TRUE -static const union AnimCmd sAnim_GarbodorGigantamax_1[] = +static const union AnimCmd sAnim_Passimian_1[] = { - ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -#endif -#if P_GEN_7_POKEMON == TRUE -static const union AnimCmd sAnim_MelmetalGigantamax_1[] = + +static const union AnimCmd sAnim_Wimpod_1[] = { ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; -#endif -#if P_GEN_8_POKEMON == TRUE -static const union AnimCmd sAnim_RillaboomGigantamax_1[] = -{ + ANIMCMD_FRAME(1, 25), ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_CinderaceGigantamax_1[] = +static const union AnimCmd sAnim_Golisopod_1[] = { + ANIMCMD_FRAME(0, 25), + ANIMCMD_FRAME(1, 15), ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_InteleonGigantamax_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +PLACEHOLDER_ANIM_SINGLE_FRAME(Sandygast); +PLACEHOLDER_ANIM_SINGLE_FRAME(Palossand); -static const union AnimCmd sAnim_CorviknightGigantamax_1[] = +static const union AnimCmd sAnim_Pyukumuku_1[] = { ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_OrbeetleGigantamax_1[] = -{ + ANIMCMD_FRAME(1, 25), ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_DrednawGigantamax_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +PLACEHOLDER_ANIM_SINGLE_FRAME(TypeNull); +PLACEHOLDER_ANIM_SINGLE_FRAME(Silvally); +PLACEHOLDER_ANIM_SINGLE_FRAME(MiniorMeteor); +PLACEHOLDER_ANIM_SINGLE_FRAME(Komala); -static const union AnimCmd sAnim_CoalossalGigantamax_1[] = +static const union AnimCmd sAnim_Turtonator_1[] = { - ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 44), + ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; -static const union AnimCmd sAnim_FlappleGigantamax_1[] = +static const union AnimCmd sAnim_Togedemaru_1[] = { - ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -static const union AnimCmd sAnim_AppletunGigantamax_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +PLACEHOLDER_ANIM_SINGLE_FRAME(MimikyuDisguised); +PLACEHOLDER_ANIM_SINGLE_FRAME(Bruxish); -static const union AnimCmd sAnim_SandacondaGigantamax_1[] = +static const union AnimCmd sAnim_Drampa_1[] = { - ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(0, 50), ANIMCMD_END, }; -static const union AnimCmd sAnim_ToxtricityGigantamax_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +PLACEHOLDER_ANIM_SINGLE_FRAME(Dhelmise); -static const union AnimCmd sAnim_CentiskorchGigantamax_1[] = +static const union AnimCmd sAnim_JANGMO_O_1[] = { - ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -static const union AnimCmd sAnim_HattereneGigantamax_1[] = +static const union AnimCmd sAnim_HAKAMO_O_1[] = { - ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; -static const union AnimCmd sAnim_GrimmsnarlGigantamax_1[] = +static const union AnimCmd sAnim_KOMMO_O_1[] = { + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 20), + ANIMCMD_FRAME(0, 20), + ANIMCMD_FRAME(1, 20), ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_AlcremieGigantamax_1[] = +static const union AnimCmd sAnim_TapuKoko_1[] = { + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_CopperajahGigantamax_1[] = +static const union AnimCmd sAnim_TapuLele_1[] = { + ANIMCMD_FRAME(1, 50), + ANIMCMD_FRAME(1, 50), ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_DuraludonGigantamax_1[] = +static const union AnimCmd sAnim_TapuBulu_1[] = { + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 40), ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_UrshifuSingleStrikeStyleGigantamax_1[] = +static const union AnimCmd sAnim_TapuFini_1[] = { + ANIMCMD_FRAME(1, 60), + ANIMCMD_FRAME(1, 60), ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_UrshifuRapidStrikeStyleGigantamax_1[] = +PLACEHOLDER_ANIM_SINGLE_FRAME(Cosmog); +PLACEHOLDER_ANIM_SINGLE_FRAME(Cosmoem); +PLACEHOLDER_ANIM_SINGLE_FRAME(Solgaleo); +PLACEHOLDER_ANIM_SINGLE_FRAME(Lunala); +PLACEHOLDER_ANIM_SINGLE_FRAME(Nihilego); +PLACEHOLDER_ANIM_SINGLE_FRAME(Buzzwole); +PLACEHOLDER_ANIM_SINGLE_FRAME(Pheromosa); +PLACEHOLDER_ANIM_SINGLE_FRAME(Xurkitree); +PLACEHOLDER_ANIM_SINGLE_FRAME(Celesteela); +PLACEHOLDER_ANIM_SINGLE_FRAME(Kartana); +PLACEHOLDER_ANIM_SINGLE_FRAME(Guzzlord); +PLACEHOLDER_ANIM_SINGLE_FRAME(Necrozma); +PLACEHOLDER_ANIM_SINGLE_FRAME(Magearna); + +static const union AnimCmd sAnim_Marshadow_1[] = { ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 54), + ANIMCMD_FRAME(0, 10), ANIMCMD_END, }; + +PLACEHOLDER_ANIM_SINGLE_FRAME(Poipole); +PLACEHOLDER_ANIM_SINGLE_FRAME(Naganadel); +PLACEHOLDER_ANIM_SINGLE_FRAME(Stakataka); +PLACEHOLDER_ANIM_SINGLE_FRAME(Blacephalon); +PLACEHOLDER_ANIM_SINGLE_FRAME(Zeraora); +PLACEHOLDER_ANIM_SINGLE_FRAME(Meltan); +PLACEHOLDER_ANIM_SINGLE_FRAME(Melmetal); #endif +#if P_GEN_8_POKEMON == TRUE +PLACEHOLDER_ANIM_SINGLE_FRAME(Grookey); +PLACEHOLDER_ANIM_SINGLE_FRAME(Thwackey); +PLACEHOLDER_ANIM_SINGLE_FRAME(Rillaboom); +PLACEHOLDER_ANIM_SINGLE_FRAME(Scorbunny); +PLACEHOLDER_ANIM_SINGLE_FRAME(Raboot); +PLACEHOLDER_ANIM_SINGLE_FRAME(Cinderace); +PLACEHOLDER_ANIM_SINGLE_FRAME(Sobble); +PLACEHOLDER_ANIM_SINGLE_FRAME(Drizzile); +PLACEHOLDER_ANIM_SINGLE_FRAME(Inteleon); +PLACEHOLDER_ANIM_SINGLE_FRAME(Skwovet); +PLACEHOLDER_ANIM_SINGLE_FRAME(Greedent); -static const union AnimCmd sAnim_PikachuCosplay_1[] = +static const union AnimCmd sAnim_Rookidee_1[] = { + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 15), + ANIMCMD_FRAME(0, 15), + ANIMCMD_FRAME(1, 25), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_PikachuRockStar_1[] = +static const union AnimCmd sAnim_Corvisquire_1[] = { + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 10), ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_PikachuBelle_1[] = +static const union AnimCmd sAnim_Corviknight_1[] = { ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_PikachuPopStar_1[] = -{ + ANIMCMD_FRAME(1, 50), ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_PIKACHU_PH_D_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +PLACEHOLDER_ANIM_SINGLE_FRAME(Blipbug); +PLACEHOLDER_ANIM_SINGLE_FRAME(Dottler); +PLACEHOLDER_ANIM_SINGLE_FRAME(Orbeetle); +PLACEHOLDER_ANIM_SINGLE_FRAME(Nickit); +PLACEHOLDER_ANIM_SINGLE_FRAME(Thievul); +PLACEHOLDER_ANIM_SINGLE_FRAME(Gossifleur); +PLACEHOLDER_ANIM_SINGLE_FRAME(Eldegoss); +PLACEHOLDER_ANIM_SINGLE_FRAME(Wooloo); +PLACEHOLDER_ANIM_SINGLE_FRAME(Dubwool); -static const union AnimCmd sAnim_PikachuLibre_1[] = +static const union AnimCmd sAnim_Chewtle_1[] = { + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 20), ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_PikachuOriginalCap_1[] = +static const union AnimCmd sAnim_Drednaw_1[] = { + ANIMCMD_FRAME(0, 10), + ANIMCMD_FRAME(1, 30), ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_PikachuHoennCap_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +PLACEHOLDER_ANIM_SINGLE_FRAME(Yamper); +PLACEHOLDER_ANIM_SINGLE_FRAME(Boltund); +PLACEHOLDER_ANIM_TWO_FRAMES(Rolycoly); +PLACEHOLDER_ANIM_TWO_FRAMES(Carkol); +PLACEHOLDER_ANIM_TWO_FRAMES(Coalossal); +PLACEHOLDER_ANIM_TWO_FRAMES(Applin); +PLACEHOLDER_ANIM_TWO_FRAMES(Flapple); +PLACEHOLDER_ANIM_TWO_FRAMES(Appletun); +PLACEHOLDER_ANIM_SINGLE_FRAME(Silicobra); +PLACEHOLDER_ANIM_SINGLE_FRAME(Sandaconda); +PLACEHOLDER_ANIM_SINGLE_FRAME(Cramorant); +PLACEHOLDER_ANIM_SINGLE_FRAME(Arrokuda); +PLACEHOLDER_ANIM_SINGLE_FRAME(Barraskewda); +PLACEHOLDER_ANIM_SINGLE_FRAME(Toxel); +PLACEHOLDER_ANIM_SINGLE_FRAME(Toxtricity); -static const union AnimCmd sAnim_PikachuSinnohCap_1[] = +static const union AnimCmd sAnim_Sizzlipede_1[] = { ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_PikachuUnovaCap_1[] = -{ + ANIMCMD_FRAME(1, 25), ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_PikachuKalosCap_1[] = +static const union AnimCmd sAnim_Centiskorch_1[] = { ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_PikachuAlolaCap_1[] = -{ + ANIMCMD_FRAME(1, 35), ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_PikachuPartnerCap_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +PLACEHOLDER_ANIM_SINGLE_FRAME(Clobbopus); +PLACEHOLDER_ANIM_SINGLE_FRAME(Grapploct); +PLACEHOLDER_ANIM_SINGLE_FRAME(Sinistea); +PLACEHOLDER_ANIM_SINGLE_FRAME(Polteageist); +PLACEHOLDER_ANIM_SINGLE_FRAME(Hatenna); +PLACEHOLDER_ANIM_SINGLE_FRAME(Hattrem); +PLACEHOLDER_ANIM_SINGLE_FRAME(Hatterene); +PLACEHOLDER_ANIM_SINGLE_FRAME(Impidimp); +PLACEHOLDER_ANIM_SINGLE_FRAME(Morgrem); +PLACEHOLDER_ANIM_SINGLE_FRAME(Grimmsnarl); +PLACEHOLDER_ANIM_SINGLE_FRAME(Obstagoon); +PLACEHOLDER_ANIM_SINGLE_FRAME(Perrserker); +PLACEHOLDER_ANIM_SINGLE_FRAME(Cursola); +PLACEHOLDER_ANIM_SINGLE_FRAME(Sirfetchd); +PLACEHOLDER_ANIM_SINGLE_FRAME(MrRime); +PLACEHOLDER_ANIM_SINGLE_FRAME(Runerigus); +PLACEHOLDER_ANIM_SINGLE_FRAME(Milcery); +PLACEHOLDER_ANIM_SINGLE_FRAME(Alcremie); +PLACEHOLDER_ANIM_SINGLE_FRAME(Falinks); +PLACEHOLDER_ANIM_TWO_FRAMES(Pincurchin); +PLACEHOLDER_ANIM_SINGLE_FRAME(Snom); +PLACEHOLDER_ANIM_SINGLE_FRAME(Frosmoth); +PLACEHOLDER_ANIM_SINGLE_FRAME(Stonjourner); +PLACEHOLDER_ANIM_SINGLE_FRAME(Eiscue); +PLACEHOLDER_ANIM_SINGLE_FRAME(Indeedee); +PLACEHOLDER_ANIM_SINGLE_FRAME(Morpeko); +PLACEHOLDER_ANIM_SINGLE_FRAME(Cufant); +PLACEHOLDER_ANIM_SINGLE_FRAME(Copperajah); +PLACEHOLDER_ANIM_SINGLE_FRAME(Dracozolt); +PLACEHOLDER_ANIM_SINGLE_FRAME(Arctozolt); +PLACEHOLDER_ANIM_SINGLE_FRAME(Dracovish); +PLACEHOLDER_ANIM_SINGLE_FRAME(Arctovish); +PLACEHOLDER_ANIM_SINGLE_FRAME(Duraludon); +PLACEHOLDER_ANIM_SINGLE_FRAME(Dreepy); +PLACEHOLDER_ANIM_SINGLE_FRAME(Drakloak); +PLACEHOLDER_ANIM_SINGLE_FRAME(Dragapult); +PLACEHOLDER_ANIM_SINGLE_FRAME(Zacian); +PLACEHOLDER_ANIM_SINGLE_FRAME(Zamazenta); +PLACEHOLDER_ANIM_SINGLE_FRAME(Eternatus); +PLACEHOLDER_ANIM_SINGLE_FRAME(Kubfu); +PLACEHOLDER_ANIM_SINGLE_FRAME(Urshifu); +PLACEHOLDER_ANIM_SINGLE_FRAME(Zarude); +PLACEHOLDER_ANIM_SINGLE_FRAME(Regieleki); +PLACEHOLDER_ANIM_SINGLE_FRAME(Regidrago); +PLACEHOLDER_ANIM_SINGLE_FRAME(Glastrier); +PLACEHOLDER_ANIM_SINGLE_FRAME(Spectrier); +PLACEHOLDER_ANIM_SINGLE_FRAME(Calyrex); +PLACEHOLDER_ANIM_SINGLE_FRAME(Wyrdeer); +PLACEHOLDER_ANIM_SINGLE_FRAME(Kleavor); +PLACEHOLDER_ANIM_SINGLE_FRAME(Ursaluna); +PLACEHOLDER_ANIM_SINGLE_FRAME(Basculegion); +PLACEHOLDER_ANIM_SINGLE_FRAME(Sneasler); +PLACEHOLDER_ANIM_SINGLE_FRAME(Overqwil); +PLACEHOLDER_ANIM_SINGLE_FRAME(EnamorusIncarnate); +#endif -static const union AnimCmd sAnim_PikachuWorldCap_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +PLACEHOLDER_ANIM_SINGLE_FRAME(VenusaurMega); +PLACEHOLDER_ANIM_SINGLE_FRAME(CharizardMegaX); +PLACEHOLDER_ANIM_SINGLE_FRAME(CharizardMegaY); +PLACEHOLDER_ANIM_SINGLE_FRAME(BlastoiseMega); +PLACEHOLDER_ANIM_SINGLE_FRAME(BeedrillMega); +PLACEHOLDER_ANIM_SINGLE_FRAME(PidgeotMega); +PLACEHOLDER_ANIM_SINGLE_FRAME(AlakazamMega); +PLACEHOLDER_ANIM_SINGLE_FRAME(SlowbroMega); +PLACEHOLDER_ANIM_SINGLE_FRAME(GengarMega); +PLACEHOLDER_ANIM_SINGLE_FRAME(KangaskhanMega); +PLACEHOLDER_ANIM_SINGLE_FRAME(PinsirMega); +PLACEHOLDER_ANIM_SINGLE_FRAME(GyaradosMega); +PLACEHOLDER_ANIM_SINGLE_FRAME(AerodactylMega); +PLACEHOLDER_ANIM_SINGLE_FRAME(MewtwoMegaX); +PLACEHOLDER_ANIM_SINGLE_FRAME(MewtwoMegaY); +PLACEHOLDER_ANIM_SINGLE_FRAME(AmpharosMega); +PLACEHOLDER_ANIM_SINGLE_FRAME(SteelixMega); +PLACEHOLDER_ANIM_SINGLE_FRAME(ScizorMega); +PLACEHOLDER_ANIM_SINGLE_FRAME(HeracrossMega); +PLACEHOLDER_ANIM_SINGLE_FRAME(HoundoomMega); +PLACEHOLDER_ANIM_SINGLE_FRAME(TyranitarMega); +PLACEHOLDER_ANIM_SINGLE_FRAME(SceptileMega); +PLACEHOLDER_ANIM_SINGLE_FRAME(BlazikenMega); +PLACEHOLDER_ANIM_SINGLE_FRAME(SwampertMega); +PLACEHOLDER_ANIM_SINGLE_FRAME(GardevoirMega); +PLACEHOLDER_ANIM_SINGLE_FRAME(SableyeMega); +PLACEHOLDER_ANIM_SINGLE_FRAME(MawileMega); +PLACEHOLDER_ANIM_SINGLE_FRAME(AggronMega); +PLACEHOLDER_ANIM_SINGLE_FRAME(MedichamMega); +PLACEHOLDER_ANIM_SINGLE_FRAME(ManectricMega); +PLACEHOLDER_ANIM_SINGLE_FRAME(SharpedoMega); +PLACEHOLDER_ANIM_SINGLE_FRAME(CameruptMega); +PLACEHOLDER_ANIM_SINGLE_FRAME(AltariaMega); +PLACEHOLDER_ANIM_SINGLE_FRAME(BanetteMega); +PLACEHOLDER_ANIM_SINGLE_FRAME(AbsolMega); +PLACEHOLDER_ANIM_SINGLE_FRAME(GlalieMega); +PLACEHOLDER_ANIM_SINGLE_FRAME(SalamenceMega); +PLACEHOLDER_ANIM_SINGLE_FRAME(MetagrossMega); +PLACEHOLDER_ANIM_SINGLE_FRAME(LatiasMega); +PLACEHOLDER_ANIM_SINGLE_FRAME(LatiosMega); +PLACEHOLDER_ANIM_SINGLE_FRAME(KyogrePrimal); +PLACEHOLDER_ANIM_SINGLE_FRAME(GroudonPrimal); +PLACEHOLDER_ANIM_SINGLE_FRAME(RayquazaMega); -static const union AnimCmd sAnim_PichuSpikyEared_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +#if P_GEN_4_POKEMON == TRUE +PLACEHOLDER_ANIM_SINGLE_FRAME(LopunnyMega); +PLACEHOLDER_ANIM_SINGLE_FRAME(GarchompMega); +PLACEHOLDER_ANIM_SINGLE_FRAME(LucarioMega); +PLACEHOLDER_ANIM_SINGLE_FRAME(AbomasnowMega); +PLACEHOLDER_ANIM_SINGLE_FRAME(GalladeMega); +#endif +#if P_GEN_5_POKEMON == TRUE +PLACEHOLDER_ANIM_SINGLE_FRAME(AudinoMega); +#endif +#if P_GEN_6_POKEMON == TRUE +PLACEHOLDER_ANIM_SINGLE_FRAME(DiancieMega); +#endif + +PLACEHOLDER_ANIM_SINGLE_FRAME(RattataAlolan); +PLACEHOLDER_ANIM_SINGLE_FRAME(RaticateAlolan); +PLACEHOLDER_ANIM_SINGLE_FRAME(RaichuAlolan); +PLACEHOLDER_ANIM_SINGLE_FRAME(SandshrewAlolan); +PLACEHOLDER_ANIM_SINGLE_FRAME(SandslashAlolan); +PLACEHOLDER_ANIM_SINGLE_FRAME(VulpixAlolan); +PLACEHOLDER_ANIM_SINGLE_FRAME(NinetalesAlolan); +PLACEHOLDER_ANIM_SINGLE_FRAME(DiglettAlolan); +PLACEHOLDER_ANIM_SINGLE_FRAME(DugtrioAlolan); +PLACEHOLDER_ANIM_SINGLE_FRAME(MeowthAlolan); +PLACEHOLDER_ANIM_SINGLE_FRAME(PersianAlolan); +PLACEHOLDER_ANIM_SINGLE_FRAME(GeodudeAlolan); +PLACEHOLDER_ANIM_SINGLE_FRAME(GravelerAlolan); +PLACEHOLDER_ANIM_SINGLE_FRAME(GolemAlolan); +PLACEHOLDER_ANIM_SINGLE_FRAME(GrimerAlolan); +PLACEHOLDER_ANIM_SINGLE_FRAME(MukAlolan); +PLACEHOLDER_ANIM_TWO_FRAMES(ExeggutorAlolan); +PLACEHOLDER_ANIM_SINGLE_FRAME(MarowakAlolan); +PLACEHOLDER_ANIM_SINGLE_FRAME(MeowthGalarian); +PLACEHOLDER_ANIM_SINGLE_FRAME(PonytaGalarian); +PLACEHOLDER_ANIM_SINGLE_FRAME(RapidashGalarian); +PLACEHOLDER_ANIM_SINGLE_FRAME(SlowpokeGalarian); +PLACEHOLDER_ANIM_SINGLE_FRAME(SlowbroGalarian); +PLACEHOLDER_ANIM_SINGLE_FRAME(FarfetchdGalarian); +PLACEHOLDER_ANIM_SINGLE_FRAME(WeezingGalarian); +PLACEHOLDER_ANIM_SINGLE_FRAME(MrMimeGalarian); +PLACEHOLDER_ANIM_SINGLE_FRAME(ArticunoGalarian); +PLACEHOLDER_ANIM_SINGLE_FRAME(ZapdosGalarian); +PLACEHOLDER_ANIM_SINGLE_FRAME(MoltresGalarian); +PLACEHOLDER_ANIM_SINGLE_FRAME(SlowkingGalarian); +PLACEHOLDER_ANIM_SINGLE_FRAME(CorsolaGalarian); +PLACEHOLDER_ANIM_SINGLE_FRAME(ZigzagoonGalarian); +PLACEHOLDER_ANIM_SINGLE_FRAME(LinooneGalarian); + +#if P_GEN_5_POKEMON == TRUE +PLACEHOLDER_ANIM_SINGLE_FRAME(DarumakaGalarian); +PLACEHOLDER_ANIM_SINGLE_FRAME(DarmanitanGalarianStandardMode); +PLACEHOLDER_ANIM_SINGLE_FRAME(YamaskGalarian); +PLACEHOLDER_ANIM_SINGLE_FRAME(StunfiskGalarian); +#endif + +PLACEHOLDER_ANIM_SINGLE_FRAME(GrowlitheHisuian); +PLACEHOLDER_ANIM_SINGLE_FRAME(ArcanineHisuian); +PLACEHOLDER_ANIM_SINGLE_FRAME(VoltorbHisuian); +PLACEHOLDER_ANIM_SINGLE_FRAME(ElectrodeHisuian); +PLACEHOLDER_ANIM_SINGLE_FRAME(TyphlosionHisuian); +PLACEHOLDER_ANIM_SINGLE_FRAME(QwilfishHisuian); +PLACEHOLDER_ANIM_SINGLE_FRAME(SneaselHisuian); + +#if P_GEN_5_POKEMON == TRUE +PLACEHOLDER_ANIM_SINGLE_FRAME(SamurottHisuian); +PLACEHOLDER_ANIM_SINGLE_FRAME(LilligantHisuian); +PLACEHOLDER_ANIM_SINGLE_FRAME(ZoruaHisuian); +PLACEHOLDER_ANIM_SINGLE_FRAME(ZoroarkHisuian); +PLACEHOLDER_ANIM_SINGLE_FRAME(BraviaryHisuian); +#endif +#if P_GEN_6_POKEMON == TRUE +PLACEHOLDER_ANIM_SINGLE_FRAME(SliggooHisuian); +PLACEHOLDER_ANIM_SINGLE_FRAME(GoodraHisuian); +PLACEHOLDER_ANIM_SINGLE_FRAME(AvaluggHisuian); +#endif +#if P_GEN_7_POKEMON == TRUE +PLACEHOLDER_ANIM_SINGLE_FRAME(DecidueyeHisuian); +#endif +PLACEHOLDER_ANIM_SINGLE_FRAME(WooperPaldean); +PLACEHOLDER_ANIM_SINGLE_FRAME(TaurosPaldean); +PLACEHOLDER_ANIM_SINGLE_FRAME(VenusaurGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(CharizardGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(BlastoiseGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(ButterfreeGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(PikachuGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(MeowthGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(MachampGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(GengarGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(KinglerGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(LaprasGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(EeveeGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(SnorlaxGigantamax); + +#if P_GEN_5_POKEMON == TRUE +PLACEHOLDER_ANIM_SINGLE_FRAME(GarbodorGigantamax); +#endif +#if P_GEN_7_POKEMON == TRUE +PLACEHOLDER_ANIM_SINGLE_FRAME(MelmetalGigantamax); +#endif +#if P_GEN_8_POKEMON == TRUE +PLACEHOLDER_ANIM_SINGLE_FRAME(RillaboomGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(CinderaceGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(InteleonGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(CorviknightGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(OrbeetleGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(DrednawGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(CoalossalGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(FlappleGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(AppletunGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(SandacondaGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(ToxtricityGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(CentiskorchGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(HattereneGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(GrimmsnarlGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(AlcremieGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(CopperajahGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(DuraludonGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(UrshifuSingleStrikeStyleGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(UrshifuRapidStrikeStyleGigantamax); +#endif + +PLACEHOLDER_ANIM_SINGLE_FRAME(PikachuCosplay); +PLACEHOLDER_ANIM_SINGLE_FRAME(PikachuRockStar); +PLACEHOLDER_ANIM_SINGLE_FRAME(PikachuBelle); +PLACEHOLDER_ANIM_SINGLE_FRAME(PikachuPopStar); +PLACEHOLDER_ANIM_SINGLE_FRAME(PikachuPhD); +PLACEHOLDER_ANIM_SINGLE_FRAME(PikachuLibre); +PLACEHOLDER_ANIM_SINGLE_FRAME(PikachuOriginalCap); +PLACEHOLDER_ANIM_SINGLE_FRAME(PikachuHoennCap); +PLACEHOLDER_ANIM_SINGLE_FRAME(PikachuSinnohCap); +PLACEHOLDER_ANIM_SINGLE_FRAME(PikachuUnovaCap); +PLACEHOLDER_ANIM_SINGLE_FRAME(PikachuKalosCap); +PLACEHOLDER_ANIM_SINGLE_FRAME(PikachuAlolaCap); +PLACEHOLDER_ANIM_SINGLE_FRAME(PikachuPartnerCap); +PLACEHOLDER_ANIM_SINGLE_FRAME(PikachuWorldCap); +PLACEHOLDER_ANIM_SINGLE_FRAME(PichuSpikyEared); static const union AnimCmd sAnim_DeoxysAttack_1[] = { ANIMCMD_FRAME(0, 16), @@ -10502,17 +9153,8 @@ static const union AnimCmd sAnim_ShayminSky_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_DialgaOrigin_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_PalkiaOrigin_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +PLACEHOLDER_ANIM_SINGLE_FRAME(DialgaOrigin); +PLACEHOLDER_ANIM_SINGLE_FRAME(PalkiaOrigin); static const union AnimCmd sAnim_GiratinaOrigin_1[] = { @@ -10541,11 +9183,7 @@ static const union AnimCmd sAnim_DarmanitanZenMode_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_DarmanitanGalarianZenMode_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +PLACEHOLDER_ANIM_SINGLE_FRAME(DarmanitanGalarianZenMode); static const union AnimCmd sAnim_TornadusTherian_1[] = { @@ -10656,43 +9294,142 @@ static const union AnimCmd sAnim_HoopaUnbound_1[] = }; #endif #if P_GEN_7_POKEMON == TRUE -static const union AnimCmd sAnim_MiniorCore_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_WishiwashiSchool_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; - -static const union AnimCmd sAnim_MimikyuBusted_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +PLACEHOLDER_ANIM_SINGLE_FRAME(MiniorCore); +PLACEHOLDER_ANIM_SINGLE_FRAME(WishiwashiSchool); +PLACEHOLDER_ANIM_SINGLE_FRAME(MimikyuBusted); static const union AnimCmd sAnim_LycanrocMidnight_1[] = { - ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 30), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; static const union AnimCmd sAnim_LycanrocDusk_1[] = { - ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(1, 40), + ANIMCMD_FRAME(0, 5), ANIMCMD_END, }; #endif #if P_GEN_8_POKEMON == TRUE -static const union AnimCmd sAnim_EnamorusTherian_1[] = -{ - ANIMCMD_FRAME(0, 1), - ANIMCMD_END, -}; +PLACEHOLDER_ANIM_SINGLE_FRAME(EnamorusTherian); +PLACEHOLDER_ANIM_SINGLE_FRAME(UrsalunaBloodmoon); +#endif +#if P_GEN_9_POKEMON == TRUE +PLACEHOLDER_ANIM_SINGLE_FRAME(Sprigatito); +PLACEHOLDER_ANIM_SINGLE_FRAME(Floragato); +PLACEHOLDER_ANIM_SINGLE_FRAME(Meowscarada); +PLACEHOLDER_ANIM_SINGLE_FRAME(Fuecoco); +PLACEHOLDER_ANIM_SINGLE_FRAME(Crocalor); +PLACEHOLDER_ANIM_SINGLE_FRAME(Skeledirge); +PLACEHOLDER_ANIM_SINGLE_FRAME(Quaxly); +PLACEHOLDER_ANIM_SINGLE_FRAME(Quaxwell); +PLACEHOLDER_ANIM_SINGLE_FRAME(Quaquaval); +PLACEHOLDER_ANIM_SINGLE_FRAME(Lechonk); +PLACEHOLDER_ANIM_SINGLE_FRAME(Oinkologne); +PLACEHOLDER_ANIM_SINGLE_FRAME(Tarountula); +PLACEHOLDER_ANIM_SINGLE_FRAME(Spidops); +PLACEHOLDER_ANIM_SINGLE_FRAME(Nymble); +PLACEHOLDER_ANIM_SINGLE_FRAME(Lokix); +PLACEHOLDER_ANIM_SINGLE_FRAME(Pawmi); +PLACEHOLDER_ANIM_SINGLE_FRAME(Pawmo); +PLACEHOLDER_ANIM_SINGLE_FRAME(Pawmot); +PLACEHOLDER_ANIM_SINGLE_FRAME(Tandemaus); +PLACEHOLDER_ANIM_SINGLE_FRAME(Maushold); +PLACEHOLDER_ANIM_SINGLE_FRAME(Fidough); +PLACEHOLDER_ANIM_SINGLE_FRAME(Dachsbun); +PLACEHOLDER_ANIM_SINGLE_FRAME(Smoliv); +PLACEHOLDER_ANIM_SINGLE_FRAME(Dolliv); +PLACEHOLDER_ANIM_SINGLE_FRAME(Arboliva); +PLACEHOLDER_ANIM_SINGLE_FRAME(Squawkabilly); +PLACEHOLDER_ANIM_SINGLE_FRAME(Nacli); +PLACEHOLDER_ANIM_SINGLE_FRAME(Naclstack); +PLACEHOLDER_ANIM_SINGLE_FRAME(Garganacl); +PLACEHOLDER_ANIM_SINGLE_FRAME(Charcadet); +PLACEHOLDER_ANIM_SINGLE_FRAME(Armarouge); +PLACEHOLDER_ANIM_SINGLE_FRAME(Ceruledge); +PLACEHOLDER_ANIM_SINGLE_FRAME(Tadbulb); +PLACEHOLDER_ANIM_SINGLE_FRAME(Bellibolt); +PLACEHOLDER_ANIM_SINGLE_FRAME(Wattrel); +PLACEHOLDER_ANIM_SINGLE_FRAME(Kilowattrel); +PLACEHOLDER_ANIM_SINGLE_FRAME(Maschiff); +PLACEHOLDER_ANIM_SINGLE_FRAME(Mabosstiff); +PLACEHOLDER_ANIM_SINGLE_FRAME(Shroodle); +PLACEHOLDER_ANIM_SINGLE_FRAME(Grafaiai); +PLACEHOLDER_ANIM_SINGLE_FRAME(Bramblin); +PLACEHOLDER_ANIM_SINGLE_FRAME(Brambleghast); +PLACEHOLDER_ANIM_SINGLE_FRAME(Toedscool); +PLACEHOLDER_ANIM_SINGLE_FRAME(Toedscruel); +PLACEHOLDER_ANIM_SINGLE_FRAME(Klawf); +PLACEHOLDER_ANIM_SINGLE_FRAME(Capsakid); +PLACEHOLDER_ANIM_SINGLE_FRAME(Scovillain); +PLACEHOLDER_ANIM_SINGLE_FRAME(Rellor); +PLACEHOLDER_ANIM_SINGLE_FRAME(Rabsca); +PLACEHOLDER_ANIM_SINGLE_FRAME(Flittle); +PLACEHOLDER_ANIM_SINGLE_FRAME(Espathra); +PLACEHOLDER_ANIM_SINGLE_FRAME(Tinkatink); +PLACEHOLDER_ANIM_SINGLE_FRAME(Tinkatuff); +PLACEHOLDER_ANIM_SINGLE_FRAME(Tinkaton); +PLACEHOLDER_ANIM_SINGLE_FRAME(Wiglett); +PLACEHOLDER_ANIM_SINGLE_FRAME(Wugtrio); +PLACEHOLDER_ANIM_SINGLE_FRAME(Bombirdier); +PLACEHOLDER_ANIM_SINGLE_FRAME(Finizen); +PLACEHOLDER_ANIM_SINGLE_FRAME(Palafin); +PLACEHOLDER_ANIM_SINGLE_FRAME(Varoom); +PLACEHOLDER_ANIM_SINGLE_FRAME(Revavroom); +PLACEHOLDER_ANIM_SINGLE_FRAME(Cyclizar); +PLACEHOLDER_ANIM_SINGLE_FRAME(Orthworm); +PLACEHOLDER_ANIM_SINGLE_FRAME(Glimmet); +PLACEHOLDER_ANIM_SINGLE_FRAME(Glimmora); +PLACEHOLDER_ANIM_SINGLE_FRAME(Greavard); +PLACEHOLDER_ANIM_SINGLE_FRAME(Houndstone); +PLACEHOLDER_ANIM_SINGLE_FRAME(Flamigo); +PLACEHOLDER_ANIM_SINGLE_FRAME(Cetoddle); +PLACEHOLDER_ANIM_SINGLE_FRAME(Cetitan); +PLACEHOLDER_ANIM_SINGLE_FRAME(Veluza); +PLACEHOLDER_ANIM_SINGLE_FRAME(Dondozo); +PLACEHOLDER_ANIM_SINGLE_FRAME(Tatsugiri); +PLACEHOLDER_ANIM_SINGLE_FRAME(Annihilape); +PLACEHOLDER_ANIM_SINGLE_FRAME(Clodsire); +PLACEHOLDER_ANIM_SINGLE_FRAME(Farigiraf); +PLACEHOLDER_ANIM_SINGLE_FRAME(Dudunsparce); +PLACEHOLDER_ANIM_SINGLE_FRAME(Kingambit); +PLACEHOLDER_ANIM_TWO_FRAMES(GreatTusk); +PLACEHOLDER_ANIM_SINGLE_FRAME(ScreamTail); +PLACEHOLDER_ANIM_SINGLE_FRAME(BruteBonnet); +PLACEHOLDER_ANIM_SINGLE_FRAME(FlutterMane); +PLACEHOLDER_ANIM_SINGLE_FRAME(SlitherWing); +PLACEHOLDER_ANIM_SINGLE_FRAME(SandyShocks); +PLACEHOLDER_ANIM_SINGLE_FRAME(IronTreads); +PLACEHOLDER_ANIM_SINGLE_FRAME(IronBundle); +PLACEHOLDER_ANIM_SINGLE_FRAME(IronHands); +PLACEHOLDER_ANIM_SINGLE_FRAME(IronJugulis); +PLACEHOLDER_ANIM_SINGLE_FRAME(IronMoth); +PLACEHOLDER_ANIM_SINGLE_FRAME(IronThorns); +PLACEHOLDER_ANIM_TWO_FRAMES(Frigibax); +PLACEHOLDER_ANIM_SINGLE_FRAME(Arctibax); +PLACEHOLDER_ANIM_SINGLE_FRAME(Baxcalibur); +PLACEHOLDER_ANIM_SINGLE_FRAME(Gimmighoul); +PLACEHOLDER_ANIM_SINGLE_FRAME(Gholdengo); +PLACEHOLDER_ANIM_SINGLE_FRAME(WoChien); +PLACEHOLDER_ANIM_SINGLE_FRAME(ChienPao); +PLACEHOLDER_ANIM_SINGLE_FRAME(TingLu); +PLACEHOLDER_ANIM_SINGLE_FRAME(ChiYu); +PLACEHOLDER_ANIM_SINGLE_FRAME(RoaringMoon); +PLACEHOLDER_ANIM_SINGLE_FRAME(IronValiant); +PLACEHOLDER_ANIM_SINGLE_FRAME(Koraidon); +PLACEHOLDER_ANIM_SINGLE_FRAME(Miraidon); +PLACEHOLDER_ANIM_SINGLE_FRAME(WalkingWake); +PLACEHOLDER_ANIM_SINGLE_FRAME(IronLeaves); +PLACEHOLDER_ANIM_SINGLE_FRAME(Dipplin); +PLACEHOLDER_ANIM_SINGLE_FRAME(Sinistcha); +PLACEHOLDER_ANIM_SINGLE_FRAME(Poltchageist); +PLACEHOLDER_ANIM_SINGLE_FRAME(Okidogi); +PLACEHOLDER_ANIM_SINGLE_FRAME(Munkidori); +PLACEHOLDER_ANIM_SINGLE_FRAME(Fezandipiti); +PLACEHOLDER_ANIM_SINGLE_FRAME(Ogerpon); #endif #define SINGLE_ANIMATION(name) \ @@ -10911,7 +9648,7 @@ SINGLE_ANIMATION(Umbreon); SINGLE_ANIMATION(Murkrow); SINGLE_ANIMATION(Slowking); SINGLE_ANIMATION(Misdreavus); -SINGLE_ANIMATION(Unown); +SINGLE_ANIMATION(UnownA); DOUBLE_ANIMATION(Wobbuffet); DOUBLE_ANIMATION(Girafarig); SINGLE_ANIMATION(Pineco); @@ -11133,8 +9870,8 @@ SINGLE_ANIMATION(UnownW); SINGLE_ANIMATION(UnownX); SINGLE_ANIMATION(UnownY); SINGLE_ANIMATION(UnownZ); -SINGLE_ANIMATION(UnownEMark); -SINGLE_ANIMATION(UnownQMark); +SINGLE_ANIMATION(UnownExclamationMark); +SINGLE_ANIMATION(UnownQuestionMark); #if P_GEN_4_POKEMON == TRUE SINGLE_ANIMATION(Turtwig); SINGLE_ANIMATION(Grotle); @@ -11671,9 +10408,123 @@ SINGLE_ANIMATION(Sneasler); SINGLE_ANIMATION(Overqwil); SINGLE_ANIMATION(EnamorusIncarnate); #endif +#if P_GEN_9_POKEMON == TRUE +SINGLE_ANIMATION(Sprigatito); +SINGLE_ANIMATION(Floragato); +SINGLE_ANIMATION(Meowscarada); +SINGLE_ANIMATION(Fuecoco); +SINGLE_ANIMATION(Crocalor); +SINGLE_ANIMATION(Skeledirge); +SINGLE_ANIMATION(Quaxly); +SINGLE_ANIMATION(Quaxwell); +SINGLE_ANIMATION(Quaquaval); +SINGLE_ANIMATION(Lechonk); +SINGLE_ANIMATION(Oinkologne); +SINGLE_ANIMATION(Tarountula); +SINGLE_ANIMATION(Spidops); +SINGLE_ANIMATION(Nymble); +SINGLE_ANIMATION(Lokix); +SINGLE_ANIMATION(Pawmi); +SINGLE_ANIMATION(Pawmo); +SINGLE_ANIMATION(Pawmot); +SINGLE_ANIMATION(Tandemaus); +SINGLE_ANIMATION(Maushold); +SINGLE_ANIMATION(Fidough); +SINGLE_ANIMATION(Dachsbun); +SINGLE_ANIMATION(Smoliv); +SINGLE_ANIMATION(Dolliv); +SINGLE_ANIMATION(Arboliva); +SINGLE_ANIMATION(Squawkabilly); +SINGLE_ANIMATION(Nacli); +SINGLE_ANIMATION(Naclstack); +SINGLE_ANIMATION(Garganacl); +SINGLE_ANIMATION(Charcadet); +SINGLE_ANIMATION(Armarouge); +SINGLE_ANIMATION(Ceruledge); +SINGLE_ANIMATION(Tadbulb); +SINGLE_ANIMATION(Bellibolt); +SINGLE_ANIMATION(Wattrel); +SINGLE_ANIMATION(Kilowattrel); +SINGLE_ANIMATION(Maschiff); +SINGLE_ANIMATION(Mabosstiff); +SINGLE_ANIMATION(Shroodle); +SINGLE_ANIMATION(Grafaiai); +SINGLE_ANIMATION(Bramblin); +SINGLE_ANIMATION(Brambleghast); +SINGLE_ANIMATION(Toedscool); +SINGLE_ANIMATION(Toedscruel); +SINGLE_ANIMATION(Klawf); +SINGLE_ANIMATION(Capsakid); +SINGLE_ANIMATION(Scovillain); +SINGLE_ANIMATION(Rellor); +SINGLE_ANIMATION(Rabsca); +SINGLE_ANIMATION(Flittle); +SINGLE_ANIMATION(Espathra); +SINGLE_ANIMATION(Tinkatink); +SINGLE_ANIMATION(Tinkatuff); +SINGLE_ANIMATION(Tinkaton); +SINGLE_ANIMATION(Wiglett); +SINGLE_ANIMATION(Wugtrio); +SINGLE_ANIMATION(Bombirdier); +SINGLE_ANIMATION(Finizen); +SINGLE_ANIMATION(Palafin); +SINGLE_ANIMATION(Varoom); +SINGLE_ANIMATION(Revavroom); +SINGLE_ANIMATION(Cyclizar); +SINGLE_ANIMATION(Orthworm); +SINGLE_ANIMATION(Glimmet); +SINGLE_ANIMATION(Glimmora); +SINGLE_ANIMATION(Greavard); +SINGLE_ANIMATION(Houndstone); +SINGLE_ANIMATION(Flamigo); +SINGLE_ANIMATION(Cetoddle); +SINGLE_ANIMATION(Cetitan); +SINGLE_ANIMATION(Veluza); +SINGLE_ANIMATION(Dondozo); +SINGLE_ANIMATION(Tatsugiri); +SINGLE_ANIMATION(Annihilape); +SINGLE_ANIMATION(Clodsire); +SINGLE_ANIMATION(Farigiraf); +SINGLE_ANIMATION(Dudunsparce); +SINGLE_ANIMATION(Kingambit); +SINGLE_ANIMATION(GreatTusk); +SINGLE_ANIMATION(ScreamTail); +SINGLE_ANIMATION(BruteBonnet); +SINGLE_ANIMATION(FlutterMane); +SINGLE_ANIMATION(SlitherWing); +SINGLE_ANIMATION(SandyShocks); +SINGLE_ANIMATION(IronTreads); +SINGLE_ANIMATION(IronBundle); +SINGLE_ANIMATION(IronHands); +SINGLE_ANIMATION(IronJugulis); +SINGLE_ANIMATION(IronMoth); +SINGLE_ANIMATION(IronThorns); +SINGLE_ANIMATION(Frigibax); +SINGLE_ANIMATION(Arctibax); +SINGLE_ANIMATION(Baxcalibur); +SINGLE_ANIMATION(Gimmighoul); +SINGLE_ANIMATION(Gholdengo); +SINGLE_ANIMATION(WoChien); +SINGLE_ANIMATION(ChienPao); +SINGLE_ANIMATION(TingLu); +SINGLE_ANIMATION(ChiYu); +SINGLE_ANIMATION(RoaringMoon); +SINGLE_ANIMATION(IronValiant); +SINGLE_ANIMATION(Koraidon); +SINGLE_ANIMATION(Miraidon); +SINGLE_ANIMATION(WalkingWake); +SINGLE_ANIMATION(IronLeaves); +SINGLE_ANIMATION(Dipplin); +SINGLE_ANIMATION(Sinistcha); +SINGLE_ANIMATION(Poltchageist); +SINGLE_ANIMATION(Okidogi); +SINGLE_ANIMATION(Munkidori); +SINGLE_ANIMATION(Fezandipiti); +SINGLE_ANIMATION(Ogerpon); +#endif SINGLE_ANIMATION(VenusaurMega); -SINGLE_ANIMATION(CHARIZARD_MEGA_X); -SINGLE_ANIMATION(CHARIZARD_MEGA_Y); +SINGLE_ANIMATION(CharizardMegaX); +SINGLE_ANIMATION(CharizardMegaY); SINGLE_ANIMATION(BlastoiseMega); SINGLE_ANIMATION(BeedrillMega); SINGLE_ANIMATION(PidgeotMega); @@ -11684,8 +10535,8 @@ SINGLE_ANIMATION(KangaskhanMega); SINGLE_ANIMATION(PinsirMega); SINGLE_ANIMATION(GyaradosMega); SINGLE_ANIMATION(AerodactylMega); -SINGLE_ANIMATION(MEWTWO_MEGA_X); -SINGLE_ANIMATION(MEWTWO_MEGA_Y); +SINGLE_ANIMATION(MewtwoMegaX); +SINGLE_ANIMATION(MewtwoMegaY); SINGLE_ANIMATION(AmpharosMega); SINGLE_ANIMATION(SteelixMega); SINGLE_ANIMATION(ScizorMega); @@ -11788,11 +10639,13 @@ SINGLE_ANIMATION(AvaluggHisuian); #if P_GEN_7_POKEMON == TRUE SINGLE_ANIMATION(DecidueyeHisuian); #endif +SINGLE_ANIMATION(WooperPaldean); +SINGLE_ANIMATION(TaurosPaldean); SINGLE_ANIMATION(PikachuCosplay); SINGLE_ANIMATION(PikachuRockStar); SINGLE_ANIMATION(PikachuBelle); SINGLE_ANIMATION(PikachuPopStar); -SINGLE_ANIMATION(PIKACHU_PH_D); +SINGLE_ANIMATION(PikachuPhD); SINGLE_ANIMATION(PikachuLibre); SINGLE_ANIMATION(PikachuOriginalCap); SINGLE_ANIMATION(PikachuHoennCap); @@ -11838,6 +10691,7 @@ SINGLE_ANIMATION(LycanrocDusk); #endif #if P_GEN_8_POKEMON == TRUE SINGLE_ANIMATION(EnamorusTherian); +SINGLE_ANIMATION(UrsalunaBloodmoon); #endif // Gigantamax Forms SINGLE_ANIMATION(VenusaurGigantamax); @@ -11879,1324 +10733,3 @@ SINGLE_ANIMATION(DuraludonGigantamax); SINGLE_ANIMATION(UrshifuSingleStrikeStyleGigantamax); SINGLE_ANIMATION(UrshifuRapidStrikeStyleGigantamax); #endif - -const union AnimCmd *const *const gMonFrontAnimsPtrTable[NUM_SPECIES + 1] = -{ // Gen 1 - [SPECIES_NONE] = sAnims_None, - [SPECIES_BULBASAUR] = sAnims_Bulbasaur, - [SPECIES_IVYSAUR] = sAnims_Ivysaur, - [SPECIES_VENUSAUR] = sAnims_Venusaur, - [SPECIES_CHARMANDER] = sAnims_Charmander, - [SPECIES_CHARMELEON] = sAnims_Charmeleon, - [SPECIES_CHARIZARD] = sAnims_Charizard, - [SPECIES_SQUIRTLE] = sAnims_Squirtle, - [SPECIES_WARTORTLE] = sAnims_Wartortle, - [SPECIES_BLASTOISE] = sAnims_Blastoise, - [SPECIES_CATERPIE] = sAnims_Caterpie, - [SPECIES_METAPOD] = sAnims_Metapod, - [SPECIES_BUTTERFREE] = sAnims_Butterfree, - [SPECIES_WEEDLE] = sAnims_Weedle, - [SPECIES_KAKUNA] = sAnims_Kakuna, - [SPECIES_BEEDRILL] = sAnims_Beedrill, - [SPECIES_PIDGEY] = sAnims_Pidgey, - [SPECIES_PIDGEOTTO] = sAnims_Pidgeotto, - [SPECIES_PIDGEOT] = sAnims_Pidgeot, - [SPECIES_RATTATA] = sAnims_Rattata, - [SPECIES_RATICATE] = sAnims_Raticate, - [SPECIES_SPEAROW] = sAnims_Spearow, - [SPECIES_FEAROW] = sAnims_Fearow, - [SPECIES_EKANS] = sAnims_Ekans, - [SPECIES_ARBOK] = sAnims_Arbok, - [SPECIES_PIKACHU] = sAnims_Pikachu, - [SPECIES_RAICHU] = sAnims_Raichu, - [SPECIES_SANDSHREW] = sAnims_Sandshrew, - [SPECIES_SANDSLASH] = sAnims_Sandslash, - [SPECIES_NIDORAN_F] = sAnims_NidoranF, - [SPECIES_NIDORINA] = sAnims_Nidorina, - [SPECIES_NIDOQUEEN] = sAnims_Nidoqueen, - [SPECIES_NIDORAN_M] = sAnims_NidoranM, - [SPECIES_NIDORINO] = sAnims_Nidorino, - [SPECIES_NIDOKING] = sAnims_Nidoking, - [SPECIES_CLEFAIRY] = sAnims_Clefairy, - [SPECIES_CLEFABLE] = sAnims_Clefable, - [SPECIES_VULPIX] = sAnims_Vulpix, - [SPECIES_NINETALES] = sAnims_Ninetales, - [SPECIES_JIGGLYPUFF] = sAnims_Jigglypuff, - [SPECIES_WIGGLYTUFF] = sAnims_Wigglytuff, - [SPECIES_ZUBAT] = sAnims_Zubat, - [SPECIES_GOLBAT] = sAnims_Golbat, - [SPECIES_ODDISH] = sAnims_Oddish, - [SPECIES_GLOOM] = sAnims_Gloom, - [SPECIES_VILEPLUME] = sAnims_Vileplume, - [SPECIES_PARAS] = sAnims_Paras, - [SPECIES_PARASECT] = sAnims_Parasect, - [SPECIES_VENONAT] = sAnims_Venonat, - [SPECIES_VENOMOTH] = sAnims_Venomoth, - [SPECIES_DIGLETT] = sAnims_Diglett, - [SPECIES_DUGTRIO] = sAnims_Dugtrio, - [SPECIES_MEOWTH] = sAnims_Meowth, - [SPECIES_PERSIAN] = sAnims_Persian, - [SPECIES_PSYDUCK] = sAnims_Psyduck, - [SPECIES_GOLDUCK] = sAnims_Golduck, - [SPECIES_MANKEY] = sAnims_Mankey, - [SPECIES_PRIMEAPE] = sAnims_Primeape, - [SPECIES_GROWLITHE] = sAnims_Growlithe, - [SPECIES_ARCANINE] = sAnims_Arcanine, - [SPECIES_POLIWAG] = sAnims_Poliwag, - [SPECIES_POLIWHIRL] = sAnims_Poliwhirl, - [SPECIES_POLIWRATH] = sAnims_Poliwrath, - [SPECIES_ABRA] = sAnims_Abra, - [SPECIES_KADABRA] = sAnims_Kadabra, - [SPECIES_ALAKAZAM] = sAnims_Alakazam, - [SPECIES_MACHOP] = sAnims_Machop, - [SPECIES_MACHOKE] = sAnims_Machoke, - [SPECIES_MACHAMP] = sAnims_Machamp, - [SPECIES_BELLSPROUT] = sAnims_Bellsprout, - [SPECIES_WEEPINBELL] = sAnims_Weepinbell, - [SPECIES_VICTREEBEL] = sAnims_Victreebel, - [SPECIES_TENTACOOL] = sAnims_Tentacool, - [SPECIES_TENTACRUEL] = sAnims_Tentacruel, - [SPECIES_GEODUDE] = sAnims_Geodude, - [SPECIES_GRAVELER] = sAnims_Graveler, - [SPECIES_GOLEM] = sAnims_Golem, - [SPECIES_PONYTA] = sAnims_Ponyta, - [SPECIES_RAPIDASH] = sAnims_Rapidash, - [SPECIES_SLOWPOKE] = sAnims_Slowpoke, - [SPECIES_SLOWBRO] = sAnims_Slowbro, - [SPECIES_MAGNEMITE] = sAnims_Magnemite, - [SPECIES_MAGNETON] = sAnims_Magneton, - [SPECIES_FARFETCHD] = sAnims_Farfetchd, - [SPECIES_DODUO] = sAnims_Doduo, - [SPECIES_DODRIO] = sAnims_Dodrio, - [SPECIES_SEEL] = sAnims_Seel, - [SPECIES_DEWGONG] = sAnims_Dewgong, - [SPECIES_GRIMER] = sAnims_Grimer, - [SPECIES_MUK] = sAnims_Muk, - [SPECIES_SHELLDER] = sAnims_Shellder, - [SPECIES_CLOYSTER] = sAnims_Cloyster, - [SPECIES_GASTLY] = sAnims_Gastly, - [SPECIES_HAUNTER] = sAnims_Haunter, - [SPECIES_GENGAR] = sAnims_Gengar, - [SPECIES_ONIX] = sAnims_Onix, - [SPECIES_DROWZEE] = sAnims_Drowzee, - [SPECIES_HYPNO] = sAnims_Hypno, - [SPECIES_KRABBY] = sAnims_Krabby, - [SPECIES_KINGLER] = sAnims_Kingler, - [SPECIES_VOLTORB] = sAnims_Voltorb, - [SPECIES_ELECTRODE] = sAnims_Electrode, - [SPECIES_EXEGGCUTE] = sAnims_Exeggcute, - [SPECIES_EXEGGUTOR] = sAnims_Exeggutor, - [SPECIES_CUBONE] = sAnims_Cubone, - [SPECIES_MAROWAK] = sAnims_Marowak, - [SPECIES_HITMONLEE] = sAnims_Hitmonlee, - [SPECIES_HITMONCHAN] = sAnims_Hitmonchan, - [SPECIES_LICKITUNG] = sAnims_Lickitung, - [SPECIES_KOFFING] = sAnims_Koffing, - [SPECIES_WEEZING] = sAnims_Weezing, - [SPECIES_RHYHORN] = sAnims_Rhyhorn, - [SPECIES_RHYDON] = sAnims_Rhydon, - [SPECIES_CHANSEY] = sAnims_Chansey, - [SPECIES_TANGELA] = sAnims_Tangela, - [SPECIES_KANGASKHAN] = sAnims_Kangaskhan, - [SPECIES_HORSEA] = sAnims_Horsea, - [SPECIES_SEADRA] = sAnims_Seadra, - [SPECIES_GOLDEEN] = sAnims_Goldeen, - [SPECIES_SEAKING] = sAnims_Seaking, - [SPECIES_STARYU] = sAnims_Staryu, - [SPECIES_STARMIE] = sAnims_Starmie, - [SPECIES_MR_MIME] = sAnims_MrMime, - [SPECIES_SCYTHER] = sAnims_Scyther, - [SPECIES_JYNX] = sAnims_Jynx, - [SPECIES_ELECTABUZZ] = sAnims_Electabuzz, - [SPECIES_MAGMAR] = sAnims_Magmar, - [SPECIES_PINSIR] = sAnims_Pinsir, - [SPECIES_TAUROS] = sAnims_Tauros, - [SPECIES_MAGIKARP] = sAnims_Magikarp, - [SPECIES_GYARADOS] = sAnims_Gyarados, - [SPECIES_LAPRAS] = sAnims_Lapras, - [SPECIES_DITTO] = sAnims_Ditto, - [SPECIES_EEVEE] = sAnims_Eevee, - [SPECIES_VAPOREON] = sAnims_Vaporeon, - [SPECIES_JOLTEON] = sAnims_Jolteon, - [SPECIES_FLAREON] = sAnims_Flareon, - [SPECIES_PORYGON] = sAnims_Porygon, - [SPECIES_OMANYTE] = sAnims_Omanyte, - [SPECIES_OMASTAR] = sAnims_Omastar, - [SPECIES_KABUTO] = sAnims_Kabuto, - [SPECIES_KABUTOPS] = sAnims_Kabutops, - [SPECIES_AERODACTYL] = sAnims_Aerodactyl, - [SPECIES_SNORLAX] = sAnims_Snorlax, - [SPECIES_ARTICUNO] = sAnims_Articuno, - [SPECIES_ZAPDOS] = sAnims_Zapdos, - [SPECIES_MOLTRES] = sAnims_Moltres, - [SPECIES_DRATINI] = sAnims_Dratini, - [SPECIES_DRAGONAIR] = sAnims_Dragonair, - [SPECIES_DRAGONITE] = sAnims_Dragonite, - [SPECIES_MEWTWO] = sAnims_Mewtwo, - [SPECIES_MEW] = sAnims_Mew, - // Gen 2 - [SPECIES_CHIKORITA] = sAnims_Chikorita, - [SPECIES_BAYLEEF] = sAnims_Bayleef, - [SPECIES_MEGANIUM] = sAnims_Meganium, - [SPECIES_CYNDAQUIL] = sAnims_Cyndaquil, - [SPECIES_QUILAVA] = sAnims_Quilava, - [SPECIES_TYPHLOSION] = sAnims_Typhlosion, - [SPECIES_TOTODILE] = sAnims_Totodile, - [SPECIES_CROCONAW] = sAnims_Croconaw, - [SPECIES_FERALIGATR] = sAnims_Feraligatr, - [SPECIES_SENTRET] = sAnims_Sentret, - [SPECIES_FURRET] = sAnims_Furret, - [SPECIES_HOOTHOOT] = sAnims_Hoothoot, - [SPECIES_NOCTOWL] = sAnims_Noctowl, - [SPECIES_LEDYBA] = sAnims_Ledyba, - [SPECIES_LEDIAN] = sAnims_Ledian, - [SPECIES_SPINARAK] = sAnims_Spinarak, - [SPECIES_ARIADOS] = sAnims_Ariados, - [SPECIES_CROBAT] = sAnims_Crobat, - [SPECIES_CHINCHOU] = sAnims_Chinchou, - [SPECIES_LANTURN] = sAnims_Lanturn, - [SPECIES_PICHU] = sAnims_Pichu, - [SPECIES_CLEFFA] = sAnims_Cleffa, - [SPECIES_IGGLYBUFF] = sAnims_Igglybuff, - [SPECIES_TOGEPI] = sAnims_Togepi, - [SPECIES_TOGETIC] = sAnims_Togetic, - [SPECIES_NATU] = sAnims_Natu, - [SPECIES_XATU] = sAnims_Xatu, - [SPECIES_MAREEP] = sAnims_Mareep, - [SPECIES_FLAAFFY] = sAnims_Flaaffy, - [SPECIES_AMPHAROS] = sAnims_Ampharos, - [SPECIES_BELLOSSOM] = sAnims_Bellossom, - [SPECIES_MARILL] = sAnims_Marill, - [SPECIES_AZUMARILL] = sAnims_Azumarill, - [SPECIES_SUDOWOODO] = sAnims_Sudowoodo, - [SPECIES_POLITOED] = sAnims_Politoed, - [SPECIES_HOPPIP] = sAnims_Hoppip, - [SPECIES_SKIPLOOM] = sAnims_Skiploom, - [SPECIES_JUMPLUFF] = sAnims_Jumpluff, - [SPECIES_AIPOM] = sAnims_Aipom, - [SPECIES_SUNKERN] = sAnims_Sunkern, - [SPECIES_SUNFLORA] = sAnims_Sunflora, - [SPECIES_YANMA] = sAnims_Yanma, - [SPECIES_WOOPER] = sAnims_Wooper, - [SPECIES_QUAGSIRE] = sAnims_Quagsire, - [SPECIES_ESPEON] = sAnims_Espeon, - [SPECIES_UMBREON] = sAnims_Umbreon, - [SPECIES_MURKROW] = sAnims_Murkrow, - [SPECIES_SLOWKING] = sAnims_Slowking, - [SPECIES_MISDREAVUS] = sAnims_Misdreavus, - [SPECIES_UNOWN] = sAnims_Unown, - [SPECIES_WOBBUFFET] = sAnims_Wobbuffet, - [SPECIES_GIRAFARIG] = sAnims_Girafarig, - [SPECIES_PINECO] = sAnims_Pineco, - [SPECIES_FORRETRESS] = sAnims_Forretress, - [SPECIES_DUNSPARCE] = sAnims_Dunsparce, - [SPECIES_GLIGAR] = sAnims_Gligar, - [SPECIES_STEELIX] = sAnims_Steelix, - [SPECIES_SNUBBULL] = sAnims_Snubbull, - [SPECIES_GRANBULL] = sAnims_Granbull, - [SPECIES_QWILFISH] = sAnims_Qwilfish, - [SPECIES_SCIZOR] = sAnims_Scizor, - [SPECIES_SHUCKLE] = sAnims_Shuckle, - [SPECIES_HERACROSS] = sAnims_Heracross, - [SPECIES_SNEASEL] = sAnims_Sneasel, - [SPECIES_TEDDIURSA] = sAnims_Teddiursa, - [SPECIES_URSARING] = sAnims_Ursaring, - [SPECIES_SLUGMA] = sAnims_Slugma, - [SPECIES_MAGCARGO] = sAnims_Magcargo, - [SPECIES_SWINUB] = sAnims_Swinub, - [SPECIES_PILOSWINE] = sAnims_Piloswine, - [SPECIES_CORSOLA] = sAnims_Corsola, - [SPECIES_REMORAID] = sAnims_Remoraid, - [SPECIES_OCTILLERY] = sAnims_Octillery, - [SPECIES_DELIBIRD] = sAnims_Delibird, - [SPECIES_MANTINE] = sAnims_Mantine, - [SPECIES_SKARMORY] = sAnims_Skarmory, - [SPECIES_HOUNDOUR] = sAnims_Houndour, - [SPECIES_HOUNDOOM] = sAnims_Houndoom, - [SPECIES_KINGDRA] = sAnims_Kingdra, - [SPECIES_PHANPY] = sAnims_Phanpy, - [SPECIES_DONPHAN] = sAnims_Donphan, - [SPECIES_PORYGON2] = sAnims_Porygon2, - [SPECIES_STANTLER] = sAnims_Stantler, - [SPECIES_SMEARGLE] = sAnims_Smeargle, - [SPECIES_TYROGUE] = sAnims_Tyrogue, - [SPECIES_HITMONTOP] = sAnims_Hitmontop, - [SPECIES_SMOOCHUM] = sAnims_Smoochum, - [SPECIES_ELEKID] = sAnims_Elekid, - [SPECIES_MAGBY] = sAnims_Magby, - [SPECIES_MILTANK] = sAnims_Miltank, - [SPECIES_BLISSEY] = sAnims_Blissey, - [SPECIES_RAIKOU] = sAnims_Raikou, - [SPECIES_ENTEI] = sAnims_Entei, - [SPECIES_SUICUNE] = sAnims_Suicune, - [SPECIES_LARVITAR] = sAnims_Larvitar, - [SPECIES_PUPITAR] = sAnims_Pupitar, - [SPECIES_TYRANITAR] = sAnims_Tyranitar, - [SPECIES_LUGIA] = sAnims_Lugia, - [SPECIES_HO_OH] = sAnims_HoOh, - [SPECIES_CELEBI] = sAnims_Celebi, - // Gen 3 - [SPECIES_TREECKO] = sAnims_Treecko, - [SPECIES_GROVYLE] = sAnims_Grovyle, - [SPECIES_SCEPTILE] = sAnims_Sceptile, - [SPECIES_TORCHIC] = sAnims_Torchic, - [SPECIES_COMBUSKEN] = sAnims_Combusken, - [SPECIES_BLAZIKEN] = sAnims_Blaziken, - [SPECIES_MUDKIP] = sAnims_Mudkip, - [SPECIES_MARSHTOMP] = sAnims_Marshtomp, - [SPECIES_SWAMPERT] = sAnims_Swampert, - [SPECIES_POOCHYENA] = sAnims_Poochyena, - [SPECIES_MIGHTYENA] = sAnims_Mightyena, - [SPECIES_ZIGZAGOON] = sAnims_Zigzagoon, - [SPECIES_LINOONE] = sAnims_Linoone, - [SPECIES_WURMPLE] = sAnims_Wurmple, - [SPECIES_SILCOON] = sAnims_Silcoon, - [SPECIES_BEAUTIFLY] = sAnims_Beautifly, - [SPECIES_CASCOON] = sAnims_Cascoon, - [SPECIES_DUSTOX] = sAnims_Dustox, - [SPECIES_LOTAD] = sAnims_Lotad, - [SPECIES_LOMBRE] = sAnims_Lombre, - [SPECIES_LUDICOLO] = sAnims_Ludicolo, - [SPECIES_SEEDOT] = sAnims_Seedot, - [SPECIES_NUZLEAF] = sAnims_Nuzleaf, - [SPECIES_SHIFTRY] = sAnims_Shiftry, - [SPECIES_NINCADA] = sAnims_Nincada, - [SPECIES_NINJASK] = sAnims_Ninjask, - [SPECIES_SHEDINJA] = sAnims_Shedinja, - [SPECIES_TAILLOW] = sAnims_Taillow, - [SPECIES_SWELLOW] = sAnims_Swellow, - [SPECIES_SHROOMISH] = sAnims_Shroomish, - [SPECIES_BRELOOM] = sAnims_Breloom, - [SPECIES_SPINDA] = sAnims_Spinda, - [SPECIES_WINGULL] = sAnims_Wingull, - [SPECIES_PELIPPER] = sAnims_Pelipper, - [SPECIES_SURSKIT] = sAnims_Surskit, - [SPECIES_MASQUERAIN] = sAnims_Masquerain, - [SPECIES_WAILMER] = sAnims_Wailmer, - [SPECIES_WAILORD] = sAnims_Wailord, - [SPECIES_SKITTY] = sAnims_Skitty, - [SPECIES_DELCATTY] = sAnims_Delcatty, - [SPECIES_KECLEON] = sAnims_Kecleon, - [SPECIES_BALTOY] = sAnims_Baltoy, - [SPECIES_CLAYDOL] = sAnims_Claydol, - [SPECIES_NOSEPASS] = sAnims_Nosepass, - [SPECIES_TORKOAL] = sAnims_Torkoal, - [SPECIES_SABLEYE] = sAnims_Sableye, - [SPECIES_BARBOACH] = sAnims_Barboach, - [SPECIES_WHISCASH] = sAnims_Whiscash, - [SPECIES_LUVDISC] = sAnims_Luvdisc, - [SPECIES_CORPHISH] = sAnims_Corphish, - [SPECIES_CRAWDAUNT] = sAnims_Crawdaunt, - [SPECIES_FEEBAS] = sAnims_Feebas, - [SPECIES_MILOTIC] = sAnims_Milotic, - [SPECIES_CARVANHA] = sAnims_Carvanha, - [SPECIES_SHARPEDO] = sAnims_Sharpedo, - [SPECIES_TRAPINCH] = sAnims_Trapinch, - [SPECIES_VIBRAVA] = sAnims_Vibrava, - [SPECIES_FLYGON] = sAnims_Flygon, - [SPECIES_MAKUHITA] = sAnims_Makuhita, - [SPECIES_HARIYAMA] = sAnims_Hariyama, - [SPECIES_ELECTRIKE] = sAnims_Electrike, - [SPECIES_MANECTRIC] = sAnims_Manectric, - [SPECIES_NUMEL] = sAnims_Numel, - [SPECIES_CAMERUPT] = sAnims_Camerupt, - [SPECIES_SPHEAL] = sAnims_Spheal, - [SPECIES_SEALEO] = sAnims_Sealeo, - [SPECIES_WALREIN] = sAnims_Walrein, - [SPECIES_CACNEA] = sAnims_Cacnea, - [SPECIES_CACTURNE] = sAnims_Cacturne, - [SPECIES_SNORUNT] = sAnims_Snorunt, - [SPECIES_GLALIE] = sAnims_Glalie, - [SPECIES_LUNATONE] = sAnims_Lunatone, - [SPECIES_SOLROCK] = sAnims_Solrock, - [SPECIES_AZURILL] = sAnims_Azurill, - [SPECIES_SPOINK] = sAnims_Spoink, - [SPECIES_GRUMPIG] = sAnims_Grumpig, - [SPECIES_PLUSLE] = sAnims_Plusle, - [SPECIES_MINUN] = sAnims_Minun, - [SPECIES_MAWILE] = sAnims_Mawile, - [SPECIES_MEDITITE] = sAnims_Meditite, - [SPECIES_MEDICHAM] = sAnims_Medicham, - [SPECIES_SWABLU] = sAnims_Swablu, - [SPECIES_ALTARIA] = sAnims_Altaria, - [SPECIES_WYNAUT] = sAnims_Wynaut, - [SPECIES_DUSKULL] = sAnims_Duskull, - [SPECIES_DUSCLOPS] = sAnims_Dusclops, - [SPECIES_ROSELIA] = sAnims_Roselia, - [SPECIES_SLAKOTH] = sAnims_Slakoth, - [SPECIES_VIGOROTH] = sAnims_Vigoroth, - [SPECIES_SLAKING] = sAnims_Slaking, - [SPECIES_GULPIN] = sAnims_Gulpin, - [SPECIES_SWALOT] = sAnims_Swalot, - [SPECIES_TROPIUS] = sAnims_Tropius, - [SPECIES_WHISMUR] = sAnims_Whismur, - [SPECIES_LOUDRED] = sAnims_Loudred, - [SPECIES_EXPLOUD] = sAnims_Exploud, - [SPECIES_CLAMPERL] = sAnims_Clamperl, - [SPECIES_HUNTAIL] = sAnims_Huntail, - [SPECIES_GOREBYSS] = sAnims_Gorebyss, - [SPECIES_ABSOL] = sAnims_Absol, - [SPECIES_SHUPPET] = sAnims_Shuppet, - [SPECIES_BANETTE] = sAnims_Banette, - [SPECIES_SEVIPER] = sAnims_Seviper, - [SPECIES_ZANGOOSE] = sAnims_Zangoose, - [SPECIES_RELICANTH] = sAnims_Relicanth, - [SPECIES_ARON] = sAnims_Aron, - [SPECIES_LAIRON] = sAnims_Lairon, - [SPECIES_AGGRON] = sAnims_Aggron, - [SPECIES_CASTFORM_NORMAL] = sAnims_CastformNormal, - [SPECIES_VOLBEAT] = sAnims_Volbeat, - [SPECIES_ILLUMISE] = sAnims_Illumise, - [SPECIES_LILEEP] = sAnims_Lileep, - [SPECIES_CRADILY] = sAnims_Cradily, - [SPECIES_ANORITH] = sAnims_Anorith, - [SPECIES_ARMALDO] = sAnims_Armaldo, - [SPECIES_RALTS] = sAnims_Ralts, - [SPECIES_KIRLIA] = sAnims_Kirlia, - [SPECIES_GARDEVOIR] = sAnims_Gardevoir, - [SPECIES_BAGON] = sAnims_Bagon, - [SPECIES_SHELGON] = sAnims_Shelgon, - [SPECIES_SALAMENCE] = sAnims_Salamence, - [SPECIES_BELDUM] = sAnims_Beldum, - [SPECIES_METANG] = sAnims_Metang, - [SPECIES_METAGROSS] = sAnims_Metagross, - [SPECIES_REGIROCK] = sAnims_Regirock, - [SPECIES_REGICE] = sAnims_Regice, - [SPECIES_REGISTEEL] = sAnims_Registeel, - [SPECIES_KYOGRE] = sAnims_Kyogre, - [SPECIES_GROUDON] = sAnims_Groudon, - [SPECIES_RAYQUAZA] = sAnims_Rayquaza, - [SPECIES_LATIAS] = sAnims_Latias, - [SPECIES_LATIOS] = sAnims_Latios, - [SPECIES_JIRACHI] = sAnims_Jirachi, - [SPECIES_DEOXYS_NORMAL] = sAnims_DeoxysNormal, - [SPECIES_CHIMECHO] = sAnims_Chimecho, -#if P_GEN_4_POKEMON == TRUE - [SPECIES_TURTWIG] = sAnims_Turtwig, - [SPECIES_GROTLE] = sAnims_Grotle, - [SPECIES_TORTERRA] = sAnims_Torterra, - [SPECIES_CHIMCHAR] = sAnims_Chimchar, - [SPECIES_MONFERNO] = sAnims_Monferno, - [SPECIES_INFERNAPE] = sAnims_Infernape, - [SPECIES_PIPLUP] = sAnims_Piplup, - [SPECIES_PRINPLUP] = sAnims_Prinplup, - [SPECIES_EMPOLEON] = sAnims_Empoleon, - [SPECIES_STARLY] = sAnims_Starly, - [SPECIES_STARAVIA] = sAnims_Staravia, - [SPECIES_STARAPTOR] = sAnims_Staraptor, - [SPECIES_BIDOOF] = sAnims_Bidoof, - [SPECIES_BIBAREL] = sAnims_Bibarel, - [SPECIES_KRICKETOT] = sAnims_Kricketot, - [SPECIES_KRICKETUNE] = sAnims_Kricketune, - [SPECIES_SHINX] = sAnims_Shinx, - [SPECIES_LUXIO] = sAnims_Luxio, - [SPECIES_LUXRAY] = sAnims_Luxray, - [SPECIES_BUDEW] = sAnims_Budew, - [SPECIES_ROSERADE] = sAnims_Roserade, - [SPECIES_CRANIDOS] = sAnims_Cranidos, - [SPECIES_RAMPARDOS] = sAnims_Rampardos, - [SPECIES_SHIELDON] = sAnims_Shieldon, - [SPECIES_BASTIODON] = sAnims_Bastiodon, - [SPECIES_BURMY_PLANT_CLOAK] = sAnims_Burmy, - [SPECIES_WORMADAM_PLANT_CLOAK] = sAnims_Wormadam, - [SPECIES_MOTHIM] = sAnims_Mothim, - [SPECIES_COMBEE] = sAnims_Combee, - [SPECIES_VESPIQUEN] = sAnims_Vespiquen, - [SPECIES_PACHIRISU] = sAnims_Pachirisu, - [SPECIES_BUIZEL] = sAnims_Buizel, - [SPECIES_FLOATZEL] = sAnims_Floatzel, - [SPECIES_CHERUBI] = sAnims_Cherubi, - [SPECIES_CHERRIM_OVERCAST] = sAnims_CherrimOvercast, - [SPECIES_SHELLOS_WEST_SEA] = sAnims_Shellos, - [SPECIES_GASTRODON_WEST_SEA] = sAnims_Gastrodon, - [SPECIES_AMBIPOM] = sAnims_Ambipom, - [SPECIES_DRIFLOON] = sAnims_Drifloon, - [SPECIES_DRIFBLIM] = sAnims_Drifblim, - [SPECIES_BUNEARY] = sAnims_Buneary, - [SPECIES_LOPUNNY] = sAnims_Lopunny, - [SPECIES_MISMAGIUS] = sAnims_Mismagius, - [SPECIES_HONCHKROW] = sAnims_Honchkrow, - [SPECIES_GLAMEOW] = sAnims_Glameow, - [SPECIES_PURUGLY] = sAnims_Purugly, - [SPECIES_CHINGLING] = sAnims_Chingling, - [SPECIES_STUNKY] = sAnims_Stunky, - [SPECIES_SKUNTANK] = sAnims_Skuntank, - [SPECIES_BRONZOR] = sAnims_Bronzor, - [SPECIES_BRONZONG] = sAnims_Bronzong, - [SPECIES_BONSLY] = sAnims_Bonsly, - [SPECIES_MIME_JR] = sAnims_MimeJr, - [SPECIES_HAPPINY] = sAnims_Happiny, - [SPECIES_CHATOT] = sAnims_Chatot, - [SPECIES_SPIRITOMB] = sAnims_Spiritomb, - [SPECIES_GIBLE] = sAnims_Gible, - [SPECIES_GABITE] = sAnims_Gabite, - [SPECIES_GARCHOMP] = sAnims_Garchomp, - [SPECIES_MUNCHLAX] = sAnims_Munchlax, - [SPECIES_RIOLU] = sAnims_Riolu, - [SPECIES_LUCARIO] = sAnims_Lucario, - [SPECIES_HIPPOPOTAS] = sAnims_Hippopotas, - [SPECIES_HIPPOWDON] = sAnims_Hippowdon, - [SPECIES_SKORUPI] = sAnims_Skorupi, - [SPECIES_DRAPION] = sAnims_Drapion, - [SPECIES_CROAGUNK] = sAnims_Croagunk, - [SPECIES_TOXICROAK] = sAnims_Toxicroak, - [SPECIES_CARNIVINE] = sAnims_Carnivine, - [SPECIES_FINNEON] = sAnims_Finneon, - [SPECIES_LUMINEON] = sAnims_Lumineon, - [SPECIES_MANTYKE] = sAnims_Mantyke, - [SPECIES_SNOVER] = sAnims_Snover, - [SPECIES_ABOMASNOW] = sAnims_Abomasnow, - [SPECIES_WEAVILE] = sAnims_Weavile, - [SPECIES_MAGNEZONE] = sAnims_Magnezone, - [SPECIES_LICKILICKY] = sAnims_Lickilicky, - [SPECIES_RHYPERIOR] = sAnims_Rhyperior, - [SPECIES_TANGROWTH] = sAnims_Tangrowth, - [SPECIES_ELECTIVIRE] = sAnims_Electivire, - [SPECIES_MAGMORTAR] = sAnims_Magmortar, - [SPECIES_TOGEKISS] = sAnims_Togekiss, - [SPECIES_YANMEGA] = sAnims_Yanmega, - [SPECIES_LEAFEON] = sAnims_Leafeon, - [SPECIES_GLACEON] = sAnims_Glaceon, - [SPECIES_GLISCOR] = sAnims_Gliscor, - [SPECIES_MAMOSWINE] = sAnims_Mamoswine, - [SPECIES_PORYGON_Z] = sAnims_PORYGON_Z, - [SPECIES_GALLADE] = sAnims_Gallade, - [SPECIES_PROBOPASS] = sAnims_Probopass, - [SPECIES_DUSKNOIR] = sAnims_Dusknoir, - [SPECIES_FROSLASS] = sAnims_Froslass, - [SPECIES_ROTOM] = sAnims_Rotom, - [SPECIES_UXIE] = sAnims_Uxie, - [SPECIES_MESPRIT] = sAnims_Mesprit, - [SPECIES_AZELF] = sAnims_Azelf, - [SPECIES_DIALGA] = sAnims_Dialga, - [SPECIES_PALKIA] = sAnims_Palkia, - [SPECIES_HEATRAN] = sAnims_Heatran, - [SPECIES_REGIGIGAS] = sAnims_Regigigas, - [SPECIES_GIRATINA_ALTERED] = sAnims_GiratinaAltered, - [SPECIES_CRESSELIA] = sAnims_Cresselia, - [SPECIES_PHIONE] = sAnims_Phione, - [SPECIES_MANAPHY] = sAnims_Manaphy, - [SPECIES_DARKRAI] = sAnims_Darkrai, - [SPECIES_SHAYMIN_LAND] = sAnims_ShayminLand, - [SPECIES_ARCEUS_NORMAL] = sAnims_Arceus, -#endif -#if P_GEN_5_POKEMON == TRUE - [SPECIES_VICTINI] = sAnims_Victini, - [SPECIES_SNIVY] = sAnims_Snivy, - [SPECIES_SERVINE] = sAnims_Servine, - [SPECIES_SERPERIOR] = sAnims_Serperior, - [SPECIES_TEPIG] = sAnims_Tepig, - [SPECIES_PIGNITE] = sAnims_Pignite, - [SPECIES_EMBOAR] = sAnims_Emboar, - [SPECIES_OSHAWOTT] = sAnims_Oshawott, - [SPECIES_DEWOTT] = sAnims_Dewott, - [SPECIES_SAMUROTT] = sAnims_Samurott, - [SPECIES_PATRAT] = sAnims_Patrat, - [SPECIES_WATCHOG] = sAnims_Watchog, - [SPECIES_LILLIPUP] = sAnims_Lillipup, - [SPECIES_HERDIER] = sAnims_Herdier, - [SPECIES_STOUTLAND] = sAnims_Stoutland, - [SPECIES_PURRLOIN] = sAnims_Purrloin, - [SPECIES_LIEPARD] = sAnims_Liepard, - [SPECIES_PANSAGE] = sAnims_Pansage, - [SPECIES_SIMISAGE] = sAnims_Simisage, - [SPECIES_PANSEAR] = sAnims_Pansear, - [SPECIES_SIMISEAR] = sAnims_Simisear, - [SPECIES_PANPOUR] = sAnims_Panpour, - [SPECIES_SIMIPOUR] = sAnims_Simipour, - [SPECIES_MUNNA] = sAnims_Munna, - [SPECIES_MUSHARNA] = sAnims_Musharna, - [SPECIES_PIDOVE] = sAnims_Pidove, - [SPECIES_TRANQUILL] = sAnims_Tranquill, - [SPECIES_UNFEZANT] = sAnims_Unfezant, - [SPECIES_BLITZLE] = sAnims_Blitzle, - [SPECIES_ZEBSTRIKA] = sAnims_Zebstrika, - [SPECIES_ROGGENROLA] = sAnims_Roggenrola, - [SPECIES_BOLDORE] = sAnims_Boldore, - [SPECIES_GIGALITH] = sAnims_Gigalith, - [SPECIES_WOOBAT] = sAnims_Woobat, - [SPECIES_SWOOBAT] = sAnims_Swoobat, - [SPECIES_DRILBUR] = sAnims_Drilbur, - [SPECIES_EXCADRILL] = sAnims_Excadrill, - [SPECIES_AUDINO] = sAnims_Audino, - [SPECIES_TIMBURR] = sAnims_Timburr, - [SPECIES_GURDURR] = sAnims_Gurdurr, - [SPECIES_CONKELDURR] = sAnims_Conkeldurr, - [SPECIES_TYMPOLE] = sAnims_Tympole, - [SPECIES_PALPITOAD] = sAnims_Palpitoad, - [SPECIES_SEISMITOAD] = sAnims_Seismitoad, - [SPECIES_THROH] = sAnims_Throh, - [SPECIES_SAWK] = sAnims_Sawk, - [SPECIES_SEWADDLE] = sAnims_Sewaddle, - [SPECIES_SWADLOON] = sAnims_Swadloon, - [SPECIES_LEAVANNY] = sAnims_Leavanny, - [SPECIES_VENIPEDE] = sAnims_Venipede, - [SPECIES_WHIRLIPEDE] = sAnims_Whirlipede, - [SPECIES_SCOLIPEDE] = sAnims_Scolipede, - [SPECIES_COTTONEE] = sAnims_Cottonee, - [SPECIES_WHIMSICOTT] = sAnims_Whimsicott, - [SPECIES_PETILIL] = sAnims_Petilil, - [SPECIES_LILLIGANT] = sAnims_Lilligant, - [SPECIES_BASCULIN_RED_STRIPED] = sAnims_Basculin, - [SPECIES_SANDILE] = sAnims_Sandile, - [SPECIES_KROKOROK] = sAnims_Krokorok, - [SPECIES_KROOKODILE] = sAnims_Krookodile, - [SPECIES_DARUMAKA] = sAnims_Darumaka, - [SPECIES_DARMANITAN_STANDARD_MODE] = sAnims_DarmanitanStandardMode, - [SPECIES_MARACTUS] = sAnims_Maractus, - [SPECIES_DWEBBLE] = sAnims_Dwebble, - [SPECIES_CRUSTLE] = sAnims_Crustle, - [SPECIES_SCRAGGY] = sAnims_Scraggy, - [SPECIES_SCRAFTY] = sAnims_Scrafty, - [SPECIES_SIGILYPH] = sAnims_Sigilyph, - [SPECIES_YAMASK] = sAnims_Yamask, - [SPECIES_COFAGRIGUS] = sAnims_Cofagrigus, - [SPECIES_TIRTOUGA] = sAnims_Tirtouga, - [SPECIES_CARRACOSTA] = sAnims_Carracosta, - [SPECIES_ARCHEN] = sAnims_Archen, - [SPECIES_ARCHEOPS] = sAnims_Archeops, - [SPECIES_TRUBBISH] = sAnims_Trubbish, - [SPECIES_GARBODOR] = sAnims_Garbodor, - [SPECIES_ZORUA] = sAnims_Zorua, - [SPECIES_ZOROARK] = sAnims_Zoroark, - [SPECIES_MINCCINO] = sAnims_Minccino, - [SPECIES_CINCCINO] = sAnims_Cinccino, - [SPECIES_GOTHITA] = sAnims_Gothita, - [SPECIES_GOTHORITA] = sAnims_Gothorita, - [SPECIES_GOTHITELLE] = sAnims_Gothitelle, - [SPECIES_SOLOSIS] = sAnims_Solosis, - [SPECIES_DUOSION] = sAnims_Duosion, - [SPECIES_REUNICLUS] = sAnims_Reuniclus, - [SPECIES_DUCKLETT] = sAnims_Ducklett, - [SPECIES_SWANNA] = sAnims_Swanna, - [SPECIES_VANILLITE] = sAnims_Vanillite, - [SPECIES_VANILLISH] = sAnims_Vanillish, - [SPECIES_VANILLUXE] = sAnims_Vanilluxe, - [SPECIES_DEERLING_SPRING] = sAnims_Deerling, - [SPECIES_SAWSBUCK_SPRING] = sAnims_Sawsbuck, - [SPECIES_EMOLGA] = sAnims_Emolga, - [SPECIES_KARRABLAST] = sAnims_Karrablast, - [SPECIES_ESCAVALIER] = sAnims_Escavalier, - [SPECIES_FOONGUS] = sAnims_Foongus, - [SPECIES_AMOONGUSS] = sAnims_Amoonguss, - [SPECIES_FRILLISH] = sAnims_Frillish, - [SPECIES_JELLICENT] = sAnims_Jellicent, - [SPECIES_ALOMOMOLA] = sAnims_Alomomola, - [SPECIES_JOLTIK] = sAnims_Joltik, - [SPECIES_GALVANTULA] = sAnims_Galvantula, - [SPECIES_FERROSEED] = sAnims_Ferroseed, - [SPECIES_FERROTHORN] = sAnims_Ferrothorn, - [SPECIES_KLINK] = sAnims_Klink, - [SPECIES_KLANG] = sAnims_Klang, - [SPECIES_KLINKLANG] = sAnims_Klinklang, - [SPECIES_TYNAMO] = sAnims_Tynamo, - [SPECIES_EELEKTRIK] = sAnims_Eelektrik, - [SPECIES_EELEKTROSS] = sAnims_Eelektross, - [SPECIES_ELGYEM] = sAnims_Elgyem, - [SPECIES_BEHEEYEM] = sAnims_Beheeyem, - [SPECIES_LITWICK] = sAnims_Litwick, - [SPECIES_LAMPENT] = sAnims_Lampent, - [SPECIES_CHANDELURE] = sAnims_Chandelure, - [SPECIES_AXEW] = sAnims_Axew, - [SPECIES_FRAXURE] = sAnims_Fraxure, - [SPECIES_HAXORUS] = sAnims_Haxorus, - [SPECIES_CUBCHOO] = sAnims_Cubchoo, - [SPECIES_BEARTIC] = sAnims_Beartic, - [SPECIES_CRYOGONAL] = sAnims_Cryogonal, - [SPECIES_SHELMET] = sAnims_Shelmet, - [SPECIES_ACCELGOR] = sAnims_Accelgor, - [SPECIES_STUNFISK] = sAnims_Stunfisk, - [SPECIES_MIENFOO] = sAnims_Mienfoo, - [SPECIES_MIENSHAO] = sAnims_Mienshao, - [SPECIES_DRUDDIGON] = sAnims_Druddigon, - [SPECIES_GOLETT] = sAnims_Golett, - [SPECIES_GOLURK] = sAnims_Golurk, - [SPECIES_PAWNIARD] = sAnims_Pawniard, - [SPECIES_BISHARP] = sAnims_Bisharp, - [SPECIES_BOUFFALANT] = sAnims_Bouffalant, - [SPECIES_RUFFLET] = sAnims_Rufflet, - [SPECIES_BRAVIARY] = sAnims_Braviary, - [SPECIES_VULLABY] = sAnims_Vullaby, - [SPECIES_MANDIBUZZ] = sAnims_Mandibuzz, - [SPECIES_HEATMOR] = sAnims_Heatmor, - [SPECIES_DURANT] = sAnims_Durant, - [SPECIES_DEINO] = sAnims_Deino, - [SPECIES_ZWEILOUS] = sAnims_Zweilous, - [SPECIES_HYDREIGON] = sAnims_Hydreigon, - [SPECIES_LARVESTA] = sAnims_Larvesta, - [SPECIES_VOLCARONA] = sAnims_Volcarona, - [SPECIES_COBALION] = sAnims_Cobalion, - [SPECIES_TERRAKION] = sAnims_Terrakion, - [SPECIES_VIRIZION] = sAnims_Virizion, - [SPECIES_TORNADUS_INCARNATE] = sAnims_TornadusIncarnate, - [SPECIES_THUNDURUS_INCARNATE] = sAnims_ThundurusIncarnate, - [SPECIES_RESHIRAM] = sAnims_Reshiram, - [SPECIES_ZEKROM] = sAnims_Zekrom, - [SPECIES_LANDORUS_INCARNATE] = sAnims_LandorusIncarnate, - [SPECIES_KYUREM] = sAnims_Kyurem, - [SPECIES_KELDEO_ORDINARY] = sAnims_KeldeoOrdinary, - [SPECIES_MELOETTA_ARIA] = sAnims_MeloettaAria, - [SPECIES_GENESECT] = sAnims_Genesect, -#endif -#if P_GEN_6_POKEMON == TRUE - [SPECIES_CHESPIN] = sAnims_Chespin, - [SPECIES_QUILLADIN] = sAnims_Quilladin, - [SPECIES_CHESNAUGHT] = sAnims_Chesnaught, - [SPECIES_FENNEKIN] = sAnims_Fennekin, - [SPECIES_BRAIXEN] = sAnims_Braixen, - [SPECIES_DELPHOX] = sAnims_Delphox, - [SPECIES_FROAKIE] = sAnims_Froakie, - [SPECIES_FROGADIER] = sAnims_Frogadier, - [SPECIES_GRENINJA] = sAnims_Greninja, - [SPECIES_BUNNELBY] = sAnims_Bunnelby, - [SPECIES_DIGGERSBY] = sAnims_Diggersby, - [SPECIES_FLETCHLING] = sAnims_Fletchling, - [SPECIES_FLETCHINDER] = sAnims_Fletchinder, - [SPECIES_TALONFLAME] = sAnims_Talonflame, - [SPECIES_SCATTERBUG] = sAnims_Scatterbug, - [SPECIES_SPEWPA] = sAnims_Spewpa, - [SPECIES_VIVILLON_ICY_SNOW] = sAnims_Vivillon, - [SPECIES_LITLEO] = sAnims_Litleo, - [SPECIES_PYROAR] = sAnims_Pyroar, - [SPECIES_FLABEBE_RED_FLOWER] = sAnims_Flabebe, - [SPECIES_FLOETTE_RED_FLOWER] = sAnims_Floette, - [SPECIES_FLORGES_RED_FLOWER] = sAnims_Florges, - [SPECIES_SKIDDO] = sAnims_Skiddo, - [SPECIES_GOGOAT] = sAnims_Gogoat, - [SPECIES_PANCHAM] = sAnims_Pancham, - [SPECIES_PANGORO] = sAnims_Pangoro, - [SPECIES_FURFROU_NATURAL] = sAnims_Furfrou, - [SPECIES_ESPURR] = sAnims_Espurr, - [SPECIES_MEOWSTIC_MALE] = sAnims_Meowstic, - [SPECIES_HONEDGE] = sAnims_Honedge, - [SPECIES_DOUBLADE] = sAnims_Doublade, - [SPECIES_AEGISLASH_SHIELD] = sAnims_AegislashShield, - [SPECIES_SPRITZEE] = sAnims_Spritzee, - [SPECIES_AROMATISSE] = sAnims_Aromatisse, - [SPECIES_SWIRLIX] = sAnims_Swirlix, - [SPECIES_SLURPUFF] = sAnims_Slurpuff, - [SPECIES_INKAY] = sAnims_Inkay, - [SPECIES_MALAMAR] = sAnims_Malamar, - [SPECIES_BINACLE] = sAnims_Binacle, - [SPECIES_BARBARACLE] = sAnims_Barbaracle, - [SPECIES_SKRELP] = sAnims_Skrelp, - [SPECIES_DRAGALGE] = sAnims_Dragalge, - [SPECIES_CLAUNCHER] = sAnims_Clauncher, - [SPECIES_CLAWITZER] = sAnims_Clawitzer, - [SPECIES_HELIOPTILE] = sAnims_Helioptile, - [SPECIES_HELIOLISK] = sAnims_Heliolisk, - [SPECIES_TYRUNT] = sAnims_Tyrunt, - [SPECIES_TYRANTRUM] = sAnims_Tyrantrum, - [SPECIES_AMAURA] = sAnims_Amaura, - [SPECIES_AURORUS] = sAnims_Aurorus, - [SPECIES_SYLVEON] = sAnims_Sylveon, - [SPECIES_HAWLUCHA] = sAnims_Hawlucha, - [SPECIES_DEDENNE] = sAnims_Dedenne, - [SPECIES_CARBINK] = sAnims_Carbink, - [SPECIES_GOOMY] = sAnims_Goomy, - [SPECIES_SLIGGOO] = sAnims_Sliggoo, - [SPECIES_GOODRA] = sAnims_Goodra, - [SPECIES_KLEFKI] = sAnims_Klefki, - [SPECIES_PHANTUMP] = sAnims_Phantump, - [SPECIES_TREVENANT] = sAnims_Trevenant, - [SPECIES_PUMPKABOO_AVERAGE] = sAnims_Pumpkaboo, - [SPECIES_GOURGEIST_AVERAGE] = sAnims_Gourgeist, - [SPECIES_BERGMITE] = sAnims_Bergmite, - [SPECIES_AVALUGG] = sAnims_Avalugg, - [SPECIES_NOIBAT] = sAnims_Noibat, - [SPECIES_NOIVERN] = sAnims_Noivern, - [SPECIES_XERNEAS_NEUTRAL] = sAnims_Xerneas, - [SPECIES_YVELTAL] = sAnims_Yveltal, - [SPECIES_ZYGARDE_50_AURA_BREAK] = sAnims_Zygarde50, - [SPECIES_DIANCIE] = sAnims_Diancie, - [SPECIES_HOOPA_CONFINED] = sAnims_Hoopa, - [SPECIES_VOLCANION] = sAnims_Volcanion, -#endif -#if P_GEN_7_POKEMON == TRUE - [SPECIES_ROWLET] = sAnims_Rowlet, - [SPECIES_DARTRIX] = sAnims_Dartrix, - [SPECIES_DECIDUEYE] = sAnims_Decidueye, - [SPECIES_LITTEN] = sAnims_Litten, - [SPECIES_TORRACAT] = sAnims_Torracat, - [SPECIES_INCINEROAR] = sAnims_Incineroar, - [SPECIES_POPPLIO] = sAnims_Popplio, - [SPECIES_BRIONNE] = sAnims_Brionne, - [SPECIES_PRIMARINA] = sAnims_Primarina, - [SPECIES_PIKIPEK] = sAnims_Pikipek, - [SPECIES_TRUMBEAK] = sAnims_Trumbeak, - [SPECIES_TOUCANNON] = sAnims_Toucannon, - [SPECIES_YUNGOOS] = sAnims_Yungoos, - [SPECIES_GUMSHOOS] = sAnims_Gumshoos, - [SPECIES_GRUBBIN] = sAnims_Grubbin, - [SPECIES_CHARJABUG] = sAnims_Charjabug, - [SPECIES_VIKAVOLT] = sAnims_Vikavolt, - [SPECIES_CRABRAWLER] = sAnims_Crabrawler, - [SPECIES_CRABOMINABLE] = sAnims_Crabominable, - [SPECIES_ORICORIO_BAILE] = sAnims_Oricorio, - [SPECIES_CUTIEFLY] = sAnims_Cutiefly, - [SPECIES_RIBOMBEE] = sAnims_Ribombee, - [SPECIES_ROCKRUFF] = sAnims_Rockruff, - [SPECIES_LYCANROC_MIDDAY] = sAnims_LycanrocMidday, - [SPECIES_WISHIWASHI_SOLO] = sAnims_WishiwashiSolo, - [SPECIES_MAREANIE] = sAnims_Mareanie, - [SPECIES_TOXAPEX] = sAnims_Toxapex, - [SPECIES_MUDBRAY] = sAnims_Mudbray, - [SPECIES_MUDSDALE] = sAnims_Mudsdale, - [SPECIES_DEWPIDER] = sAnims_Dewpider, - [SPECIES_ARAQUANID] = sAnims_Araquanid, - [SPECIES_FOMANTIS] = sAnims_Fomantis, - [SPECIES_LURANTIS] = sAnims_Lurantis, - [SPECIES_MORELULL] = sAnims_Morelull, - [SPECIES_SHIINOTIC] = sAnims_Shiinotic, - [SPECIES_SALANDIT] = sAnims_Salandit, - [SPECIES_SALAZZLE] = sAnims_Salazzle, - [SPECIES_STUFFUL] = sAnims_Stufful, - [SPECIES_BEWEAR] = sAnims_Bewear, - [SPECIES_BOUNSWEET] = sAnims_Bounsweet, - [SPECIES_STEENEE] = sAnims_Steenee, - [SPECIES_TSAREENA] = sAnims_Tsareena, - [SPECIES_COMFEY] = sAnims_Comfey, - [SPECIES_ORANGURU] = sAnims_Oranguru, - [SPECIES_PASSIMIAN] = sAnims_Passimian, - [SPECIES_WIMPOD] = sAnims_Wimpod, - [SPECIES_GOLISOPOD] = sAnims_Golisopod, - [SPECIES_SANDYGAST] = sAnims_Sandygast, - [SPECIES_PALOSSAND] = sAnims_Palossand, - [SPECIES_PYUKUMUKU] = sAnims_Pyukumuku, - [SPECIES_TYPE_NULL] = sAnims_TypeNull, - [SPECIES_SILVALLY_NORMAL] = sAnims_Silvally, - [SPECIES_MINIOR_METEOR_RED] = sAnims_MiniorMeteor, - [SPECIES_KOMALA] = sAnims_Komala, - [SPECIES_TURTONATOR] = sAnims_Turtonator, - [SPECIES_TOGEDEMARU] = sAnims_Togedemaru, - [SPECIES_MIMIKYU_DISGUISED] = sAnims_MimikyuDisguised, - [SPECIES_BRUXISH] = sAnims_Bruxish, - [SPECIES_DRAMPA] = sAnims_Drampa, - [SPECIES_DHELMISE] = sAnims_Dhelmise, - [SPECIES_JANGMO_O] = sAnims_JANGMO_O, - [SPECIES_HAKAMO_O] = sAnims_HAKAMO_O, - [SPECIES_KOMMO_O] = sAnims_KOMMO_O, - [SPECIES_TAPU_KOKO] = sAnims_TapuKoko, - [SPECIES_TAPU_LELE] = sAnims_TapuLele, - [SPECIES_TAPU_BULU] = sAnims_TapuBulu, - [SPECIES_TAPU_FINI] = sAnims_TapuFini, - [SPECIES_COSMOG] = sAnims_Cosmog, - [SPECIES_COSMOEM] = sAnims_Cosmoem, - [SPECIES_SOLGALEO] = sAnims_Solgaleo, - [SPECIES_LUNALA] = sAnims_Lunala, - [SPECIES_NIHILEGO] = sAnims_Nihilego, - [SPECIES_BUZZWOLE] = sAnims_Buzzwole, - [SPECIES_PHEROMOSA] = sAnims_Pheromosa, - [SPECIES_XURKITREE] = sAnims_Xurkitree, - [SPECIES_CELESTEELA] = sAnims_Celesteela, - [SPECIES_KARTANA] = sAnims_Kartana, - [SPECIES_GUZZLORD] = sAnims_Guzzlord, - [SPECIES_NECROZMA] = sAnims_Necrozma, - [SPECIES_MAGEARNA] = sAnims_Magearna, - [SPECIES_MARSHADOW] = sAnims_Marshadow, - [SPECIES_POIPOLE] = sAnims_Poipole, - [SPECIES_NAGANADEL] = sAnims_Naganadel, - [SPECIES_STAKATAKA] = sAnims_Stakataka, - [SPECIES_BLACEPHALON] = sAnims_Blacephalon, - [SPECIES_ZERAORA] = sAnims_Zeraora, - [SPECIES_MELTAN] = sAnims_Meltan, - [SPECIES_MELMETAL] = sAnims_Melmetal, -#endif -#if P_GEN_8_POKEMON == TRUE - [SPECIES_GROOKEY] = sAnims_Grookey, - [SPECIES_THWACKEY] = sAnims_Thwackey, - [SPECIES_RILLABOOM] = sAnims_Rillaboom, - [SPECIES_SCORBUNNY] = sAnims_Scorbunny, - [SPECIES_RABOOT] = sAnims_Raboot, - [SPECIES_CINDERACE] = sAnims_Cinderace, - [SPECIES_SOBBLE] = sAnims_Sobble, - [SPECIES_DRIZZILE] = sAnims_Drizzile, - [SPECIES_INTELEON] = sAnims_Inteleon, - [SPECIES_SKWOVET] = sAnims_Skwovet, - [SPECIES_GREEDENT] = sAnims_Greedent, - [SPECIES_ROOKIDEE] = sAnims_Rookidee, - [SPECIES_CORVISQUIRE] = sAnims_Corvisquire, - [SPECIES_CORVIKNIGHT] = sAnims_Corviknight, - [SPECIES_BLIPBUG] = sAnims_Blipbug, - [SPECIES_DOTTLER] = sAnims_Dottler, - [SPECIES_ORBEETLE] = sAnims_Orbeetle, - [SPECIES_NICKIT] = sAnims_Nickit, - [SPECIES_THIEVUL] = sAnims_Thievul, - [SPECIES_GOSSIFLEUR] = sAnims_Gossifleur, - [SPECIES_ELDEGOSS] = sAnims_Eldegoss, - [SPECIES_WOOLOO] = sAnims_Wooloo, - [SPECIES_DUBWOOL] = sAnims_Dubwool, - [SPECIES_CHEWTLE] = sAnims_Chewtle, - [SPECIES_DREDNAW] = sAnims_Drednaw, - [SPECIES_YAMPER] = sAnims_Yamper, - [SPECIES_BOLTUND] = sAnims_Boltund, - [SPECIES_ROLYCOLY] = sAnims_Rolycoly, - [SPECIES_CARKOL] = sAnims_Carkol, - [SPECIES_COALOSSAL] = sAnims_Coalossal, - [SPECIES_APPLIN] = sAnims_Applin, - [SPECIES_FLAPPLE] = sAnims_Flapple, - [SPECIES_APPLETUN] = sAnims_Appletun, - [SPECIES_SILICOBRA] = sAnims_Silicobra, - [SPECIES_SANDACONDA] = sAnims_Sandaconda, - [SPECIES_CRAMORANT] = sAnims_Cramorant, - [SPECIES_ARROKUDA] = sAnims_Arrokuda, - [SPECIES_BARRASKEWDA] = sAnims_Barraskewda, - [SPECIES_TOXEL] = sAnims_Toxel, - [SPECIES_TOXTRICITY_AMPED] = sAnims_Toxtricity, - [SPECIES_SIZZLIPEDE] = sAnims_Sizzlipede, - [SPECIES_CENTISKORCH] = sAnims_Centiskorch, - [SPECIES_CLOBBOPUS] = sAnims_Clobbopus, - [SPECIES_GRAPPLOCT] = sAnims_Grapploct, - [SPECIES_SINISTEA_PHONY] = sAnims_Sinistea, - [SPECIES_POLTEAGEIST_PHONY] = sAnims_Polteageist, - [SPECIES_HATENNA] = sAnims_Hatenna, - [SPECIES_HATTREM] = sAnims_Hattrem, - [SPECIES_HATTERENE] = sAnims_Hatterene, - [SPECIES_IMPIDIMP] = sAnims_Impidimp, - [SPECIES_MORGREM] = sAnims_Morgrem, - [SPECIES_GRIMMSNARL] = sAnims_Grimmsnarl, - [SPECIES_OBSTAGOON] = sAnims_Obstagoon, - [SPECIES_PERRSERKER] = sAnims_Perrserker, - [SPECIES_CURSOLA] = sAnims_Cursola, - [SPECIES_SIRFETCHD] = sAnims_Sirfetchd, - [SPECIES_MR_RIME] = sAnims_MrRime, - [SPECIES_RUNERIGUS] = sAnims_Runerigus, - [SPECIES_MILCERY] = sAnims_Milcery, - [SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM] = sAnims_Alcremie, - [SPECIES_FALINKS] = sAnims_Falinks, - [SPECIES_PINCURCHIN] = sAnims_Pincurchin, - [SPECIES_SNOM] = sAnims_Snom, - [SPECIES_FROSMOTH] = sAnims_Frosmoth, - [SPECIES_STONJOURNER] = sAnims_Stonjourner, - [SPECIES_EISCUE_ICE_FACE] = sAnims_Eiscue, - [SPECIES_INDEEDEE_MALE] = sAnims_Indeedee, - [SPECIES_MORPEKO_FULL_BELLY] = sAnims_Morpeko, - [SPECIES_CUFANT] = sAnims_Cufant, - [SPECIES_COPPERAJAH] = sAnims_Copperajah, - [SPECIES_DRACOZOLT] = sAnims_Dracozolt, - [SPECIES_ARCTOZOLT] = sAnims_Arctozolt, - [SPECIES_DRACOVISH] = sAnims_Dracovish, - [SPECIES_ARCTOVISH] = sAnims_Arctovish, - [SPECIES_DURALUDON] = sAnims_Duraludon, - [SPECIES_DREEPY] = sAnims_Dreepy, - [SPECIES_DRAKLOAK] = sAnims_Drakloak, - [SPECIES_DRAGAPULT] = sAnims_Dragapult, - [SPECIES_ZACIAN_HERO_OF_MANY_BATTLES] = sAnims_Zacian, - [SPECIES_ZAMAZENTA_HERO_OF_MANY_BATTLES] = sAnims_Zamazenta, - [SPECIES_ETERNATUS] = sAnims_Eternatus, - [SPECIES_KUBFU] = sAnims_Kubfu, - [SPECIES_URSHIFU_SINGLE_STRIKE_STYLE] = sAnims_Urshifu, - [SPECIES_ZARUDE] = sAnims_Zarude, - [SPECIES_REGIELEKI] = sAnims_Regieleki, - [SPECIES_REGIDRAGO] = sAnims_Regidrago, - [SPECIES_GLASTRIER] = sAnims_Glastrier, - [SPECIES_SPECTRIER] = sAnims_Spectrier, - [SPECIES_CALYREX] = sAnims_Calyrex, - [SPECIES_WYRDEER] = sAnims_Wyrdeer, - [SPECIES_KLEAVOR] = sAnims_Kleavor, - [SPECIES_URSALUNA] = sAnims_Ursaluna, - [SPECIES_BASCULEGION_MALE] = sAnims_Basculegion, - [SPECIES_SNEASLER] = sAnims_Sneasler, - [SPECIES_OVERQWIL] = sAnims_Overqwil, - [SPECIES_ENAMORUS_INCARNATE] = sAnims_EnamorusIncarnate, -#endif - // Mega/Primal Forms - [SPECIES_VENUSAUR_MEGA] = sAnims_VenusaurMega, - [SPECIES_CHARIZARD_MEGA_X] = sAnims_CHARIZARD_MEGA_X, - [SPECIES_CHARIZARD_MEGA_Y] = sAnims_CHARIZARD_MEGA_Y, - [SPECIES_BLASTOISE_MEGA] = sAnims_BlastoiseMega, - [SPECIES_BEEDRILL_MEGA] = sAnims_BeedrillMega, - [SPECIES_PIDGEOT_MEGA] = sAnims_PidgeotMega, - [SPECIES_ALAKAZAM_MEGA] = sAnims_AlakazamMega, - [SPECIES_SLOWBRO_MEGA] = sAnims_SlowbroMega, - [SPECIES_GENGAR_MEGA] = sAnims_GengarMega, - [SPECIES_KANGASKHAN_MEGA] = sAnims_KangaskhanMega, - [SPECIES_PINSIR_MEGA] = sAnims_PinsirMega, - [SPECIES_GYARADOS_MEGA] = sAnims_GyaradosMega, - [SPECIES_AERODACTYL_MEGA] = sAnims_AerodactylMega, - [SPECIES_MEWTWO_MEGA_X] = sAnims_MEWTWO_MEGA_X, - [SPECIES_MEWTWO_MEGA_Y] = sAnims_MEWTWO_MEGA_Y, - [SPECIES_AMPHAROS_MEGA] = sAnims_AmpharosMega, - [SPECIES_STEELIX_MEGA] = sAnims_SteelixMega, - [SPECIES_SCIZOR_MEGA] = sAnims_ScizorMega, - [SPECIES_HERACROSS_MEGA] = sAnims_HeracrossMega, - [SPECIES_HOUNDOOM_MEGA] = sAnims_HoundoomMega, - [SPECIES_TYRANITAR_MEGA] = sAnims_TyranitarMega, - [SPECIES_SCEPTILE_MEGA] = sAnims_SceptileMega, - [SPECIES_BLAZIKEN_MEGA] = sAnims_BlazikenMega, - [SPECIES_SWAMPERT_MEGA] = sAnims_SwampertMega, - [SPECIES_GARDEVOIR_MEGA] = sAnims_GardevoirMega, - [SPECIES_SABLEYE_MEGA] = sAnims_SableyeMega, - [SPECIES_MAWILE_MEGA] = sAnims_MawileMega, - [SPECIES_AGGRON_MEGA] = sAnims_AggronMega, - [SPECIES_MEDICHAM_MEGA] = sAnims_MedichamMega, - [SPECIES_MANECTRIC_MEGA] = sAnims_ManectricMega, - [SPECIES_SHARPEDO_MEGA] = sAnims_SharpedoMega, - [SPECIES_CAMERUPT_MEGA] = sAnims_CameruptMega, - [SPECIES_ALTARIA_MEGA] = sAnims_AltariaMega, - [SPECIES_BANETTE_MEGA] = sAnims_BanetteMega, - [SPECIES_ABSOL_MEGA] = sAnims_AbsolMega, - [SPECIES_GLALIE_MEGA] = sAnims_GlalieMega, - [SPECIES_SALAMENCE_MEGA] = sAnims_SalamenceMega, - [SPECIES_METAGROSS_MEGA] = sAnims_MetagrossMega, - [SPECIES_LATIAS_MEGA] = sAnims_LatiasMega, - [SPECIES_LATIOS_MEGA] = sAnims_LatiosMega, -#if P_GEN_4_POKEMON == TRUE - [SPECIES_LOPUNNY_MEGA] = sAnims_LopunnyMega, - [SPECIES_GARCHOMP_MEGA] = sAnims_GarchompMega, - [SPECIES_LUCARIO_MEGA] = sAnims_LucarioMega, - [SPECIES_ABOMASNOW_MEGA] = sAnims_AbomasnowMega, - [SPECIES_GALLADE_MEGA] = sAnims_GalladeMega, -#endif -#if P_GEN_5_POKEMON == TRUE - [SPECIES_AUDINO_MEGA] = sAnims_AudinoMega, -#endif -#if P_GEN_6_POKEMON == TRUE - [SPECIES_DIANCIE_MEGA] = sAnims_DiancieMega, -#endif - [SPECIES_RAYQUAZA_MEGA] = sAnims_RayquazaMega, - [SPECIES_KYOGRE_PRIMAL] = sAnims_KyogrePrimal, - [SPECIES_GROUDON_PRIMAL] = sAnims_GroudonPrimal, - // Alolan Forms - [SPECIES_RATTATA_ALOLAN] = sAnims_RattataAlolan, - [SPECIES_RATICATE_ALOLAN] = sAnims_RaticateAlolan, - [SPECIES_RAICHU_ALOLAN] = sAnims_RaichuAlolan, - [SPECIES_SANDSHREW_ALOLAN] = sAnims_SandshrewAlolan, - [SPECIES_SANDSLASH_ALOLAN] = sAnims_SandslashAlolan, - [SPECIES_VULPIX_ALOLAN] = sAnims_VulpixAlolan, - [SPECIES_NINETALES_ALOLAN] = sAnims_NinetalesAlolan, - [SPECIES_DIGLETT_ALOLAN] = sAnims_DiglettAlolan, - [SPECIES_DUGTRIO_ALOLAN] = sAnims_DugtrioAlolan, - [SPECIES_MEOWTH_ALOLAN] = sAnims_MeowthAlolan, - [SPECIES_PERSIAN_ALOLAN] = sAnims_PersianAlolan, - [SPECIES_GEODUDE_ALOLAN] = sAnims_GeodudeAlolan, - [SPECIES_GRAVELER_ALOLAN] = sAnims_GravelerAlolan, - [SPECIES_GOLEM_ALOLAN] = sAnims_GolemAlolan, - [SPECIES_GRIMER_ALOLAN] = sAnims_GrimerAlolan, - [SPECIES_MUK_ALOLAN] = sAnims_MukAlolan, - [SPECIES_EXEGGUTOR_ALOLAN] = sAnims_ExeggutorAlolan, - [SPECIES_MAROWAK_ALOLAN] = sAnims_MarowakAlolan, - // Galarian Forms - [SPECIES_MEOWTH_GALARIAN] = sAnims_MeowthGalarian, - [SPECIES_PONYTA_GALARIAN] = sAnims_PonytaGalarian, - [SPECIES_RAPIDASH_GALARIAN] = sAnims_RapidashGalarian, - [SPECIES_SLOWPOKE_GALARIAN] = sAnims_SlowpokeGalarian, - [SPECIES_SLOWBRO_GALARIAN] = sAnims_SlowbroGalarian, - [SPECIES_FARFETCHD_GALARIAN] = sAnims_FarfetchdGalarian, - [SPECIES_WEEZING_GALARIAN] = sAnims_WeezingGalarian, - [SPECIES_MR_MIME_GALARIAN] = sAnims_MrMimeGalarian, - [SPECIES_ARTICUNO_GALARIAN] = sAnims_ArticunoGalarian, - [SPECIES_ZAPDOS_GALARIAN] = sAnims_ZapdosGalarian, - [SPECIES_MOLTRES_GALARIAN] = sAnims_MoltresGalarian, - [SPECIES_SLOWKING_GALARIAN] = sAnims_SlowkingGalarian, - [SPECIES_CORSOLA_GALARIAN] = sAnims_CorsolaGalarian, - [SPECIES_ZIGZAGOON_GALARIAN] = sAnims_ZigzagoonGalarian, - [SPECIES_LINOONE_GALARIAN] = sAnims_LinooneGalarian, -#if P_GEN_5_POKEMON == TRUE - [SPECIES_DARUMAKA_GALARIAN] = sAnims_DarumakaGalarian, - [SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE] = sAnims_DarmanitanGalarianStandardMode, - [SPECIES_YAMASK_GALARIAN] = sAnims_YamaskGalarian, - [SPECIES_STUNFISK_GALARIAN] = sAnims_StunfiskGalarian, -#endif - // Hisuian Forms - [SPECIES_GROWLITHE_HISUIAN] = sAnims_GrowlitheHisuian, - [SPECIES_ARCANINE_HISUIAN] = sAnims_ArcanineHisuian, - [SPECIES_VOLTORB_HISUIAN] = sAnims_VoltorbHisuian, - [SPECIES_ELECTRODE_HISUIAN] = sAnims_ElectrodeHisuian, - [SPECIES_TYPHLOSION_HISUIAN] = sAnims_TyphlosionHisuian, - [SPECIES_QWILFISH_HISUIAN] = sAnims_QwilfishHisuian, - [SPECIES_SNEASEL_HISUIAN] = sAnims_SneaselHisuian, -#if P_GEN_5_POKEMON == TRUE - [SPECIES_SAMUROTT_HISUIAN] = sAnims_SamurottHisuian, - [SPECIES_LILLIGANT_HISUIAN] = sAnims_LilligantHisuian, - [SPECIES_ZORUA_HISUIAN] = sAnims_ZoruaHisuian, - [SPECIES_ZOROARK_HISUIAN] = sAnims_ZoroarkHisuian, - [SPECIES_BRAVIARY_HISUIAN] = sAnims_BraviaryHisuian, -#endif -#if P_GEN_6_POKEMON == TRUE - [SPECIES_SLIGGOO_HISUIAN] = sAnims_SliggooHisuian, - [SPECIES_GOODRA_HISUIAN] = sAnims_GoodraHisuian, - [SPECIES_AVALUGG_HISUIAN] = sAnims_AvaluggHisuian, -#endif -#if P_GEN_7_POKEMON == TRUE - [SPECIES_DECIDUEYE_HISUIAN] = sAnims_DecidueyeHisuian, -#endif - // Ungrouped - [SPECIES_PIKACHU_COSPLAY] = sAnims_PikachuCosplay, - [SPECIES_PIKACHU_ROCK_STAR] = sAnims_PikachuRockStar, - [SPECIES_PIKACHU_BELLE] = sAnims_PikachuBelle, - [SPECIES_PIKACHU_POP_STAR] = sAnims_PikachuPopStar, - [SPECIES_PIKACHU_PH_D] = sAnims_PIKACHU_PH_D, - [SPECIES_PIKACHU_LIBRE] = sAnims_PikachuLibre, - [SPECIES_PIKACHU_ORIGINAL_CAP] = sAnims_PikachuOriginalCap, - [SPECIES_PIKACHU_HOENN_CAP] = sAnims_PikachuHoennCap, - [SPECIES_PIKACHU_SINNOH_CAP] = sAnims_PikachuSinnohCap, - [SPECIES_PIKACHU_UNOVA_CAP] = sAnims_PikachuUnovaCap, - [SPECIES_PIKACHU_KALOS_CAP] = sAnims_PikachuKalosCap, - [SPECIES_PIKACHU_ALOLA_CAP] = sAnims_PikachuAlolaCap, - [SPECIES_PIKACHU_PARTNER_CAP] = sAnims_PikachuPartnerCap, - [SPECIES_PIKACHU_WORLD_CAP] = sAnims_PikachuWorldCap, - [SPECIES_PICHU_SPIKY_EARED] = sAnims_PichuSpikyEared, - [SPECIES_UNOWN_B] = sAnims_UnownB, - [SPECIES_UNOWN_C] = sAnims_UnownC, - [SPECIES_UNOWN_D] = sAnims_UnownD, - [SPECIES_UNOWN_E] = sAnims_UnownE, - [SPECIES_UNOWN_F] = sAnims_UnownF, - [SPECIES_UNOWN_G] = sAnims_UnownG, - [SPECIES_UNOWN_H] = sAnims_UnownH, - [SPECIES_UNOWN_I] = sAnims_UnownI, - [SPECIES_UNOWN_J] = sAnims_UnownJ, - [SPECIES_UNOWN_K] = sAnims_UnownK, - [SPECIES_UNOWN_L] = sAnims_UnownL, - [SPECIES_UNOWN_M] = sAnims_UnownM, - [SPECIES_UNOWN_N] = sAnims_UnownN, - [SPECIES_UNOWN_O] = sAnims_UnownO, - [SPECIES_UNOWN_P] = sAnims_UnownP, - [SPECIES_UNOWN_Q] = sAnims_UnownQ, - [SPECIES_UNOWN_R] = sAnims_UnownR, - [SPECIES_UNOWN_S] = sAnims_UnownS, - [SPECIES_UNOWN_T] = sAnims_UnownT, - [SPECIES_UNOWN_U] = sAnims_UnownU, - [SPECIES_UNOWN_V] = sAnims_UnownV, - [SPECIES_UNOWN_W] = sAnims_UnownW, - [SPECIES_UNOWN_X] = sAnims_UnownX, - [SPECIES_UNOWN_Y] = sAnims_UnownY, - [SPECIES_UNOWN_Z] = sAnims_UnownZ, - [SPECIES_UNOWN_EMARK] = sAnims_UnownEMark, - [SPECIES_UNOWN_QMARK] = sAnims_UnownQMark, - [SPECIES_CASTFORM_SUNNY] = sAnims_CastformSunny, - [SPECIES_CASTFORM_RAINY] = sAnims_CastformRainy, - [SPECIES_CASTFORM_SNOWY] = sAnims_CastformSnowy, - [SPECIES_DEOXYS_ATTACK] = sAnims_DeoxysAttack, - [SPECIES_DEOXYS_DEFENSE] = sAnims_DeoxysDefense, - [SPECIES_DEOXYS_SPEED] = sAnims_DeoxysSpeed, -#if P_GEN_4_POKEMON == TRUE - [SPECIES_BURMY_SANDY_CLOAK] = sAnims_Burmy, - [SPECIES_BURMY_TRASH_CLOAK] = sAnims_Burmy, - [SPECIES_WORMADAM_SANDY_CLOAK] = sAnims_Wormadam, - [SPECIES_WORMADAM_TRASH_CLOAK] = sAnims_Wormadam, - [SPECIES_CHERRIM_SUNSHINE] = sAnims_CherrimSunshine, - [SPECIES_SHELLOS_EAST_SEA] = sAnims_Shellos, - [SPECIES_GASTRODON_EAST_SEA] = sAnims_Gastrodon, - [SPECIES_ROTOM_HEAT] = sAnims_RotomHeat, - [SPECIES_ROTOM_WASH] = sAnims_RotomWash, - [SPECIES_ROTOM_FROST] = sAnims_RotomFrost, - [SPECIES_ROTOM_FAN] = sAnims_RotomFan, - [SPECIES_ROTOM_MOW] = sAnims_RotomMow, - [SPECIES_DIALGA_ORIGIN] = sAnims_DialgaOrigin, - [SPECIES_PALKIA_ORIGIN] = sAnims_PalkiaOrigin, - [SPECIES_GIRATINA_ORIGIN] = sAnims_GiratinaOrigin, - [SPECIES_SHAYMIN_SKY] = sAnims_ShayminSky, - [SPECIES_ARCEUS_FIGHTING] = sAnims_Arceus, - [SPECIES_ARCEUS_FLYING] = sAnims_Arceus, - [SPECIES_ARCEUS_POISON] = sAnims_Arceus, - [SPECIES_ARCEUS_GROUND] = sAnims_Arceus, - [SPECIES_ARCEUS_ROCK] = sAnims_Arceus, - [SPECIES_ARCEUS_BUG] = sAnims_Arceus, - [SPECIES_ARCEUS_GHOST] = sAnims_Arceus, - [SPECIES_ARCEUS_STEEL] = sAnims_Arceus, - [SPECIES_ARCEUS_FIRE] = sAnims_Arceus, - [SPECIES_ARCEUS_WATER] = sAnims_Arceus, - [SPECIES_ARCEUS_GRASS] = sAnims_Arceus, - [SPECIES_ARCEUS_ELECTRIC] = sAnims_Arceus, - [SPECIES_ARCEUS_PSYCHIC] = sAnims_Arceus, - [SPECIES_ARCEUS_ICE] = sAnims_Arceus, - [SPECIES_ARCEUS_DRAGON] = sAnims_Arceus, - [SPECIES_ARCEUS_DARK] = sAnims_Arceus, - [SPECIES_ARCEUS_FAIRY] = sAnims_Arceus, -#endif -#if P_GEN_5_POKEMON == TRUE - [SPECIES_BASCULIN_BLUE_STRIPED] = sAnims_Basculin, - [SPECIES_BASCULIN_WHITE_STRIPED] = sAnims_Basculin, - [SPECIES_DARMANITAN_ZEN_MODE] = sAnims_DarmanitanZenMode, - [SPECIES_DARMANITAN_GALARIAN_ZEN_MODE] = sAnims_DarmanitanGalarianZenMode, - [SPECIES_DEERLING_SUMMER] = sAnims_Deerling, - [SPECIES_DEERLING_AUTUMN] = sAnims_Deerling, - [SPECIES_DEERLING_WINTER] = sAnims_Deerling, - [SPECIES_SAWSBUCK_SUMMER] = sAnims_Sawsbuck, - [SPECIES_SAWSBUCK_AUTUMN] = sAnims_Sawsbuck, - [SPECIES_SAWSBUCK_WINTER] = sAnims_Sawsbuck, - [SPECIES_TORNADUS_THERIAN] = sAnims_TornadusTherian, - [SPECIES_THUNDURUS_THERIAN] = sAnims_ThundurusTherian, - [SPECIES_LANDORUS_THERIAN] = sAnims_LandorusTherian, - [SPECIES_KYUREM_WHITE] = sAnims_KyuremWhite, - [SPECIES_KYUREM_BLACK] = sAnims_KyuremBlack, - [SPECIES_KELDEO_RESOLUTE] = sAnims_KeldeoResolute, - [SPECIES_MELOETTA_PIROUETTE] = sAnims_MeloettaPirouette, - [SPECIES_GENESECT_DOUSE_DRIVE] = sAnims_Genesect, - [SPECIES_GENESECT_SHOCK_DRIVE] = sAnims_Genesect, - [SPECIES_GENESECT_BURN_DRIVE] = sAnims_Genesect, - [SPECIES_GENESECT_CHILL_DRIVE] = sAnims_Genesect, -#endif -#if P_GEN_6_POKEMON == TRUE - [SPECIES_GRENINJA_BATTLE_BOND] = sAnims_Greninja, - [SPECIES_GRENINJA_ASH] = sAnims_GreninjaAsh, - [SPECIES_VIVILLON_POLAR] = sAnims_Vivillon, - [SPECIES_VIVILLON_TUNDRA] = sAnims_Vivillon, - [SPECIES_VIVILLON_CONTINENTAL] = sAnims_Vivillon, - [SPECIES_VIVILLON_GARDEN] = sAnims_Vivillon, - [SPECIES_VIVILLON_ELEGANT] = sAnims_Vivillon, - [SPECIES_VIVILLON_MEADOW] = sAnims_Vivillon, - [SPECIES_VIVILLON_MODERN] = sAnims_Vivillon, - [SPECIES_VIVILLON_MARINE] = sAnims_Vivillon, - [SPECIES_VIVILLON_ARCHIPELAGO] = sAnims_Vivillon, - [SPECIES_VIVILLON_HIGH_PLAINS] = sAnims_Vivillon, - [SPECIES_VIVILLON_SANDSTORM] = sAnims_Vivillon, - [SPECIES_VIVILLON_RIVER] = sAnims_Vivillon, - [SPECIES_VIVILLON_MONSOON] = sAnims_Vivillon, - [SPECIES_VIVILLON_SAVANNA] = sAnims_Vivillon, - [SPECIES_VIVILLON_SUN] = sAnims_Vivillon, - [SPECIES_VIVILLON_OCEAN] = sAnims_Vivillon, - [SPECIES_VIVILLON_JUNGLE] = sAnims_Vivillon, - [SPECIES_VIVILLON_FANCY] = sAnims_Vivillon, - [SPECIES_VIVILLON_POKE_BALL] = sAnims_Vivillon, - [SPECIES_FLABEBE_YELLOW_FLOWER] = sAnims_Flabebe, - [SPECIES_FLABEBE_ORANGE_FLOWER] = sAnims_Flabebe, - [SPECIES_FLABEBE_BLUE_FLOWER] = sAnims_Flabebe, - [SPECIES_FLABEBE_WHITE_FLOWER] = sAnims_Flabebe, - [SPECIES_FLOETTE_YELLOW_FLOWER] = sAnims_Floette, - [SPECIES_FLOETTE_ORANGE_FLOWER] = sAnims_Floette, - [SPECIES_FLOETTE_BLUE_FLOWER] = sAnims_Floette, - [SPECIES_FLOETTE_WHITE_FLOWER] = sAnims_Floette, - [SPECIES_FLOETTE_ETERNAL_FLOWER] = sAnims_Floette, - [SPECIES_FLORGES_YELLOW_FLOWER] = sAnims_Florges, - [SPECIES_FLORGES_ORANGE_FLOWER] = sAnims_Florges, - [SPECIES_FLORGES_BLUE_FLOWER] = sAnims_Florges, - [SPECIES_FLORGES_WHITE_FLOWER] = sAnims_Florges, - [SPECIES_FURFROU_HEART_TRIM] = sAnims_Furfrou, - [SPECIES_FURFROU_STAR_TRIM] = sAnims_Furfrou, - [SPECIES_FURFROU_DIAMOND_TRIM] = sAnims_Furfrou, - [SPECIES_FURFROU_DEBUTANTE_TRIM] = sAnims_Furfrou, - [SPECIES_FURFROU_MATRON_TRIM] = sAnims_Furfrou, - [SPECIES_FURFROU_DANDY_TRIM] = sAnims_Furfrou, - [SPECIES_FURFROU_LA_REINE_TRIM] = sAnims_Furfrou, - [SPECIES_FURFROU_KABUKI_TRIM] = sAnims_Furfrou, - [SPECIES_FURFROU_PHARAOH_TRIM] = sAnims_Furfrou, - [SPECIES_MEOWSTIC_FEMALE] = sAnims_Meowstic, - [SPECIES_AEGISLASH_BLADE] = sAnims_AegislashBlade, - [SPECIES_PUMPKABOO_SMALL] = sAnims_Pumpkaboo, - [SPECIES_PUMPKABOO_LARGE] = sAnims_Pumpkaboo, - [SPECIES_PUMPKABOO_SUPER] = sAnims_Pumpkaboo, - [SPECIES_GOURGEIST_SMALL] = sAnims_Gourgeist, - [SPECIES_GOURGEIST_LARGE] = sAnims_Gourgeist, - [SPECIES_GOURGEIST_SUPER] = sAnims_Gourgeist, - [SPECIES_XERNEAS_ACTIVE] = sAnims_Xerneas, - [SPECIES_ZYGARDE_10_AURA_BREAK] = sAnims_Zygarde10, - [SPECIES_ZYGARDE_10_POWER_CONSTRUCT] = sAnims_Zygarde10, - [SPECIES_ZYGARDE_50_POWER_CONSTRUCT] = sAnims_Zygarde50, - [SPECIES_ZYGARDE_COMPLETE] = sAnims_ZygardeComplete, - [SPECIES_HOOPA_UNBOUND] = sAnims_HoopaUnbound, -#endif -#if P_GEN_7_POKEMON == TRUE - [SPECIES_ORICORIO_POM_POM] = sAnims_Oricorio, - [SPECIES_ORICORIO_PAU] = sAnims_Oricorio, - [SPECIES_ORICORIO_SENSU] = sAnims_Oricorio, - [SPECIES_ROCKRUFF_OWN_TEMPO] = sAnims_Rockruff, - [SPECIES_LYCANROC_MIDNIGHT] = sAnims_LycanrocMidnight, - [SPECIES_LYCANROC_DUSK] = sAnims_LycanrocDusk, - [SPECIES_WISHIWASHI_SCHOOL] = sAnims_WishiwashiSchool, - [SPECIES_SILVALLY_FIGHTING] = sAnims_Silvally, - [SPECIES_SILVALLY_FLYING] = sAnims_Silvally, - [SPECIES_SILVALLY_POISON] = sAnims_Silvally, - [SPECIES_SILVALLY_GROUND] = sAnims_Silvally, - [SPECIES_SILVALLY_ROCK] = sAnims_Silvally, - [SPECIES_SILVALLY_BUG] = sAnims_Silvally, - [SPECIES_SILVALLY_GHOST] = sAnims_Silvally, - [SPECIES_SILVALLY_STEEL] = sAnims_Silvally, - [SPECIES_SILVALLY_FIRE] = sAnims_Silvally, - [SPECIES_SILVALLY_WATER] = sAnims_Silvally, - [SPECIES_SILVALLY_GRASS] = sAnims_Silvally, - [SPECIES_SILVALLY_ELECTRIC] = sAnims_Silvally, - [SPECIES_SILVALLY_PSYCHIC] = sAnims_Silvally, - [SPECIES_SILVALLY_ICE] = sAnims_Silvally, - [SPECIES_SILVALLY_DRAGON] = sAnims_Silvally, - [SPECIES_SILVALLY_DARK] = sAnims_Silvally, - [SPECIES_SILVALLY_FAIRY] = sAnims_Silvally, - [SPECIES_MINIOR_METEOR_ORANGE] = sAnims_MiniorMeteor, - [SPECIES_MINIOR_METEOR_YELLOW] = sAnims_MiniorMeteor, - [SPECIES_MINIOR_METEOR_GREEN] = sAnims_MiniorMeteor, - [SPECIES_MINIOR_METEOR_BLUE] = sAnims_MiniorMeteor, - [SPECIES_MINIOR_METEOR_INDIGO] = sAnims_MiniorMeteor, - [SPECIES_MINIOR_METEOR_VIOLET] = sAnims_MiniorMeteor, - [SPECIES_MINIOR_CORE_RED] = sAnims_MiniorMeteor, - [SPECIES_MINIOR_CORE_ORANGE] = sAnims_MiniorMeteor, - [SPECIES_MINIOR_CORE_YELLOW] = sAnims_MiniorMeteor, - [SPECIES_MINIOR_CORE_GREEN] = sAnims_MiniorMeteor, - [SPECIES_MINIOR_CORE_BLUE] = sAnims_MiniorMeteor, - [SPECIES_MINIOR_CORE_INDIGO] = sAnims_MiniorMeteor, - [SPECIES_MINIOR_CORE_VIOLET] = sAnims_MiniorMeteor, - [SPECIES_MIMIKYU_BUSTED] = sAnims_MimikyuBusted, - [SPECIES_NECROZMA_DUSK_MANE] = sAnims_Necrozma, - [SPECIES_NECROZMA_DAWN_WINGS] = sAnims_Necrozma, - [SPECIES_NECROZMA_ULTRA] = sAnims_Necrozma, - [SPECIES_MAGEARNA_ORIGINAL_COLOR] = sAnims_Magearna, -#endif -#if P_GEN_8_POKEMON == TRUE - [SPECIES_CRAMORANT_GULPING] = sAnims_Cramorant, - [SPECIES_CRAMORANT_GORGING] = sAnims_Cramorant, - [SPECIES_TOXTRICITY_LOW_KEY] = sAnims_Toxtricity, - [SPECIES_SINISTEA_ANTIQUE] = sAnims_Sinistea, - [SPECIES_POLTEAGEIST_ANTIQUE] = sAnims_Polteageist, - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM] = sAnims_Alcremie, - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL] = sAnims_Alcremie, - [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL] = sAnims_Alcremie, - [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL] = sAnims_Alcremie, - [SPECIES_EISCUE_NOICE_FACE] = sAnims_Eiscue, - [SPECIES_INDEEDEE_FEMALE] = sAnims_Indeedee, - [SPECIES_MORPEKO_HANGRY] = sAnims_Morpeko, - [SPECIES_ZACIAN_CROWNED_SWORD] = sAnims_Zacian, - [SPECIES_ZAMAZENTA_CROWNED_SHIELD] = sAnims_Zamazenta, - [SPECIES_ETERNATUS_ETERNAMAX] = sAnims_Eternatus, - [SPECIES_URSHIFU_RAPID_STRIKE_STYLE] = sAnims_Urshifu, - [SPECIES_ZARUDE_DADA] = sAnims_Zarude, - [SPECIES_CALYREX_ICE_RIDER] = sAnims_Calyrex, - [SPECIES_CALYREX_SHADOW_RIDER] = sAnims_Calyrex, - [SPECIES_ENAMORUS_THERIAN] = sAnims_EnamorusTherian, - [SPECIES_BASCULEGION_FEMALE] = sAnims_Basculegion, -#endif - [SPECIES_VENUSAUR_GIGANTAMAX] = sAnims_VenusaurGigantamax, - [SPECIES_CHARIZARD_GIGANTAMAX] = sAnims_CharizardGigantamax, - [SPECIES_BLASTOISE_GIGANTAMAX] = sAnims_BlastoiseGigantamax, - [SPECIES_BUTTERFREE_GIGANTAMAX] = sAnims_ButterfreeGigantamax, - [SPECIES_PIKACHU_GIGANTAMAX] = sAnims_PikachuGigantamax, - [SPECIES_MEOWTH_GIGANTAMAX] = sAnims_MeowthGigantamax, - [SPECIES_MACHAMP_GIGANTAMAX] = sAnims_MachampGigantamax, - [SPECIES_GENGAR_GIGANTAMAX] = sAnims_GengarGigantamax, - [SPECIES_KINGLER_GIGANTAMAX] = sAnims_KinglerGigantamax, - [SPECIES_LAPRAS_GIGANTAMAX] = sAnims_LaprasGigantamax, - [SPECIES_EEVEE_GIGANTAMAX] = sAnims_EeveeGigantamax, - [SPECIES_SNORLAX_GIGANTAMAX] = sAnims_SnorlaxGigantamax, -#if P_GEN_5_POKEMON == TRUE - [SPECIES_GARBODOR_GIGANTAMAX] = sAnims_GarbodorGigantamax, -#endif -#if P_GEN_7_POKEMON == TRUE - [SPECIES_MELMETAL_GIGANTAMAX] = sAnims_MelmetalGigantamax, -#endif -#if P_GEN_8_POKEMON == TRUE - [SPECIES_RILLABOOM_GIGANTAMAX] = sAnims_RillaboomGigantamax, - [SPECIES_CINDERACE_GIGANTAMAX] = sAnims_CinderaceGigantamax, - [SPECIES_INTELEON_GIGANTAMAX] = sAnims_InteleonGigantamax, - [SPECIES_CORVIKNIGHT_GIGANTAMAX] = sAnims_CorviknightGigantamax, - [SPECIES_ORBEETLE_GIGANTAMAX] = sAnims_OrbeetleGigantamax, - [SPECIES_DREDNAW_GIGANTAMAX] = sAnims_DrednawGigantamax, - [SPECIES_COALOSSAL_GIGANTAMAX] = sAnims_CoalossalGigantamax, - [SPECIES_FLAPPLE_GIGANTAMAX] = sAnims_FlappleGigantamax, - [SPECIES_APPLETUN_GIGANTAMAX] = sAnims_AppletunGigantamax, - [SPECIES_SANDACONDA_GIGANTAMAX] = sAnims_SandacondaGigantamax, - [SPECIES_TOXTRICITY_AMPED_GIGANTAMAX] = sAnims_ToxtricityGigantamax, - [SPECIES_TOXTRICITY_LOW_KEY_GIGANTAMAX] = sAnims_ToxtricityGigantamax, - [SPECIES_CENTISKORCH_GIGANTAMAX] = sAnims_CentiskorchGigantamax, - [SPECIES_HATTERENE_GIGANTAMAX] = sAnims_HattereneGigantamax, - [SPECIES_GRIMMSNARL_GIGANTAMAX] = sAnims_GrimmsnarlGigantamax, - [SPECIES_ALCREMIE_GIGANTAMAX] = sAnims_AlcremieGigantamax, - [SPECIES_COPPERAJAH_GIGANTAMAX] = sAnims_CopperajahGigantamax, - [SPECIES_DURALUDON_GIGANTAMAX] = sAnims_DuraludonGigantamax, - [SPECIES_URSHIFU_SINGLE_STRIKE_STYLE_GIGANTAMAX] = sAnims_UrshifuSingleStrikeStyleGigantamax, - [SPECIES_URSHIFU_RAPID_STRIKE_STYLE_GIGANTAMAX] = sAnims_UrshifuRapidStrikeStyleGigantamax, -#endif - [SPECIES_EGG] = sAnims_Egg, -}; diff --git a/src/data/pokemon_graphics/front_pic_coordinates.h b/src/data/pokemon_graphics/front_pic_coordinates.h deleted file mode 100644 index e06e8f1e7bf1..000000000000 --- a/src/data/pokemon_graphics/front_pic_coordinates.h +++ /dev/null @@ -1,1382 +0,0 @@ -// All Pokémon pics are 64x64, but this data table defines where in this 64x64 frame -// the sprite's non-transparent pixels actually are. -// .size is the dimensions of this drawn pixel area. -// .y_offset is the number of pixels between the drawn pixel area and the bottom edge. -const struct MonCoords gMonFrontPicCoords[NUM_SPECIES + 1] = -{ - [SPECIES_NONE] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 12 }, - [SPECIES_BULBASAUR] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 13 }, - [SPECIES_IVYSAUR] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 9 }, - [SPECIES_VENUSAUR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_CHARMANDER] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 10 }, - [SPECIES_CHARMELEON] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 8 }, - [SPECIES_CHARIZARD] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SQUIRTLE] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 11 }, - [SPECIES_WARTORTLE] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 7 }, - [SPECIES_BLASTOISE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_CATERPIE] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 12 }, - [SPECIES_METAPOD] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 14 }, - [SPECIES_BUTTERFREE] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 10 }, - [SPECIES_WEEDLE] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 13 }, - [SPECIES_KAKUNA] = { .size = MON_COORDS_SIZE(24, 48), .y_offset = 11 }, - [SPECIES_BEEDRILL] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_PIDGEY] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 12 }, - [SPECIES_PIDGEOTTO] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 6 }, - [SPECIES_PIDGEOT] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_RATTATA] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 13 }, - [SPECIES_RATICATE] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_SPEAROW] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 12 }, - [SPECIES_FEAROW] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_EKANS] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 10 }, - [SPECIES_ARBOK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_PIKACHU] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, - [SPECIES_RAICHU] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_SANDSHREW] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 11 }, - [SPECIES_SANDSLASH] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_NIDORAN_F] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 13 }, - [SPECIES_NIDORINA] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 8 }, - [SPECIES_NIDOQUEEN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_NIDORAN_M] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 12 }, - [SPECIES_NIDORINO] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 8 }, - [SPECIES_NIDOKING] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_CLEFAIRY] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 12 }, - [SPECIES_CLEFABLE] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 6 }, - [SPECIES_VULPIX] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 11 }, - [SPECIES_NINETALES] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_JIGGLYPUFF] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 14 }, - [SPECIES_WIGGLYTUFF] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 4 }, - [SPECIES_ZUBAT] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 16 }, - [SPECIES_GOLBAT] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_ODDISH] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 15 }, - [SPECIES_GLOOM] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 11 }, - [SPECIES_VILEPLUME] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 7 }, - [SPECIES_PARAS] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 15 }, - [SPECIES_PARASECT] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 7 }, - [SPECIES_VENONAT] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 8 }, - [SPECIES_VENOMOTH] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_DIGLETT] = { .size = MON_COORDS_SIZE(32, 32), .y_offset = 17 }, - [SPECIES_DUGTRIO] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 11 }, - [SPECIES_MEOWTH] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 10 }, - [SPECIES_PERSIAN] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_PSYDUCK] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 11 }, - [SPECIES_GOLDUCK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_MANKEY] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 11 }, - [SPECIES_PRIMEAPE] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_GROWLITHE] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, - [SPECIES_ARCANINE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_POLIWAG] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 13 }, - [SPECIES_POLIWHIRL] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_POLIWRATH] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_ABRA] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 10 }, - [SPECIES_KADABRA] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_ALAKAZAM] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_MACHOP] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 8 }, - [SPECIES_MACHOKE] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 4 }, - [SPECIES_MACHAMP] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_BELLSPROUT] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 12 }, - [SPECIES_WEEPINBELL] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 11 }, - [SPECIES_VICTREEBEL] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_TENTACOOL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 7 }, - [SPECIES_TENTACRUEL] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_GEODUDE] = { .size = MON_COORDS_SIZE(64, 32), .y_offset = 19 }, - [SPECIES_GRAVELER] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_GOLEM] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_PONYTA] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 6 }, - [SPECIES_RAPIDASH] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SLOWPOKE] = { .size = MON_COORDS_SIZE(64, 32), .y_offset = 16 }, - [SPECIES_SLOWBRO] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 4 }, - [SPECIES_MAGNEMITE] = { .size = MON_COORDS_SIZE(48, 32), .y_offset = 20 }, - [SPECIES_MAGNETON] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_FARFETCHD] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 7 }, - [SPECIES_DODUO] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_DODRIO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SEEL] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 8 }, - [SPECIES_DEWGONG] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_GRIMER] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, - [SPECIES_MUK] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_SHELLDER] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 13 }, - [SPECIES_CLOYSTER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_GASTLY] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 13 }, - [SPECIES_HAUNTER] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 13 }, - [SPECIES_GENGAR] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 7 }, - [SPECIES_ONIX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_DROWZEE] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 7 }, - [SPECIES_HYPNO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_KRABBY] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 14 }, - [SPECIES_KINGLER] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 8 }, - [SPECIES_VOLTORB] = { .size = MON_COORDS_SIZE(32, 40), .y_offset = 11 }, - [SPECIES_ELECTRODE] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 8 }, - [SPECIES_EXEGGCUTE] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 12 }, - [SPECIES_EXEGGUTOR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_CUBONE] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 13 }, - [SPECIES_MAROWAK] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 8 }, - [SPECIES_HITMONLEE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_HITMONCHAN] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 3 }, - [SPECIES_LICKITUNG] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_KOFFING] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 10 }, - [SPECIES_WEEZING] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_RHYHORN] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 12 }, - [SPECIES_RHYDON] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_CHANSEY] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 9 }, - [SPECIES_TANGELA] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 12 }, - [SPECIES_KANGASKHAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_HORSEA] = { .size = MON_COORDS_SIZE(32, 40), .y_offset = 14 }, - [SPECIES_SEADRA] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_GOLDEEN] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 13 }, - [SPECIES_SEAKING] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_STARYU] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 11 }, - [SPECIES_STARMIE] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 6 }, - [SPECIES_MR_MIME] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 6 }, - [SPECIES_SCYTHER] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 1 }, - [SPECIES_JYNX] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_ELECTABUZZ] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_MAGMAR] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_PINSIR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 5 }, - [SPECIES_TAUROS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 5 }, - [SPECIES_MAGIKARP] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 4 }, - [SPECIES_GYARADOS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_LAPRAS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_DITTO] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 15 }, - [SPECIES_EEVEE] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 11 }, - [SPECIES_VAPOREON] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, - [SPECIES_JOLTEON] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 10 }, - [SPECIES_FLAREON] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 11 }, - [SPECIES_PORYGON] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 14 }, - [SPECIES_OMANYTE] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 14 }, - [SPECIES_OMASTAR] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 9 }, - [SPECIES_KABUTO] = { .size = MON_COORDS_SIZE(40, 32), .y_offset = 16 }, - [SPECIES_KABUTOPS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_AERODACTYL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_SNORLAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_ARTICUNO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_ZAPDOS] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_MOLTRES] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_DRATINI] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 9 }, - [SPECIES_DRAGONAIR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_DRAGONITE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_MEWTWO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_MEW] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_CHIKORITA] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 10 }, - [SPECIES_BAYLEEF] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 3 }, - [SPECIES_MEGANIUM] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 0 }, - [SPECIES_CYNDAQUIL] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 14 }, - [SPECIES_QUILAVA] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_TYPHLOSION] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_TOTODILE] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 14 }, - [SPECIES_CROCONAW] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 5 }, - [SPECIES_FERALIGATR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_SENTRET] = { .size = MON_COORDS_SIZE(40, 64), .y_offset = 2 }, - [SPECIES_FURRET] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 4 }, - [SPECIES_HOOTHOOT] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 12 }, - [SPECIES_NOCTOWL] = { .size = MON_COORDS_SIZE(40, 64), .y_offset = 2 }, - [SPECIES_LEDYBA] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 10 }, - [SPECIES_LEDIAN] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 6 }, - [SPECIES_SPINARAK] = { .size = MON_COORDS_SIZE(48, 32), .y_offset = 16 }, - [SPECIES_ARIADOS] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_CROBAT] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_CHINCHOU] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 12 }, - [SPECIES_LANTURN] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 11 }, - [SPECIES_PICHU] = { .size = MON_COORDS_SIZE(32, 40), .y_offset = 14 }, - [SPECIES_CLEFFA] = { .size = MON_COORDS_SIZE(32, 32), .y_offset = 18 }, - [SPECIES_IGGLYBUFF] = { .size = MON_COORDS_SIZE(32, 32), .y_offset = 17 }, - [SPECIES_TOGEPI] = { .size = MON_COORDS_SIZE(24, 32), .y_offset = 16 }, - [SPECIES_TOGETIC] = { .size = MON_COORDS_SIZE(32, 48), .y_offset = 8 }, - [SPECIES_NATU] = { .size = MON_COORDS_SIZE(32, 32), .y_offset = 17 }, - [SPECIES_XATU] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 5 }, - [SPECIES_MAREEP] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 12 }, - [SPECIES_FLAAFFY] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, - [SPECIES_AMPHAROS] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, - [SPECIES_BELLOSSOM] = { .size = MON_COORDS_SIZE(32, 40), .y_offset = 12 }, - [SPECIES_MARILL] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 14 }, - [SPECIES_AZUMARILL] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 6 }, - [SPECIES_SUDOWOODO] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 7 }, - [SPECIES_POLITOED] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 4 }, - [SPECIES_HOPPIP] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 14 }, - [SPECIES_SKIPLOOM] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 15 }, - [SPECIES_JUMPLUFF] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 9 }, - [SPECIES_AIPOM] = { .size = MON_COORDS_SIZE(32, 64), .y_offset = 1 }, - [SPECIES_SUNKERN] = { .size = MON_COORDS_SIZE(32, 40), .y_offset = 17 }, - [SPECIES_SUNFLORA] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 8 }, - [SPECIES_YANMA] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 14 }, - [SPECIES_WOOPER] = { .size = MON_COORDS_SIZE(40, 32), .y_offset = 16 }, - [SPECIES_QUAGSIRE] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_ESPEON] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_UMBREON] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 9 }, - [SPECIES_MURKROW] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 15 }, - [SPECIES_SLOWKING] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 1 }, - [SPECIES_MISDREAVUS] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 13 }, - [SPECIES_UNOWN] = { .size = MON_COORDS_SIZE(24, 40), .y_offset = 15 }, - [SPECIES_WOBBUFFET] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_GIRAFARIG] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_PINECO] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 12 }, - [SPECIES_FORRETRESS] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 8 }, - [SPECIES_DUNSPARCE] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, - [SPECIES_GLIGAR] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 4 }, - [SPECIES_STEELIX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SNUBBULL] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 12 }, - [SPECIES_GRANBULL] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 4 }, - [SPECIES_QWILFISH] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 8 }, - [SPECIES_SCIZOR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_SHUCKLE] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 8 }, - [SPECIES_HERACROSS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_SNEASEL] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 8 }, - [SPECIES_TEDDIURSA] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 12 }, - [SPECIES_URSARING] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SLUGMA] = { .size = MON_COORDS_SIZE(32, 48), .y_offset = 12 }, - [SPECIES_MAGCARGO] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 6 }, - [SPECIES_SWINUB] = { .size = MON_COORDS_SIZE(40, 32), .y_offset = 18 }, - [SPECIES_PILOSWINE] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 8 }, - [SPECIES_CORSOLA] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 12 }, - [SPECIES_REMORAID] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 11 }, - [SPECIES_OCTILLERY] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 8 }, - [SPECIES_DELIBIRD] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 7 }, - [SPECIES_MANTINE] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 9 }, - [SPECIES_SKARMORY] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_HOUNDOUR] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 9 }, - [SPECIES_HOUNDOOM] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_KINGDRA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_PHANPY] = { .size = MON_COORDS_SIZE(40, 32), .y_offset = 16 }, - [SPECIES_DONPHAN] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_PORYGON2] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 15 }, - [SPECIES_STANTLER] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 0 }, - [SPECIES_SMEARGLE] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_TYROGUE] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 9 }, - [SPECIES_HITMONTOP] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_SMOOCHUM] = { .size = MON_COORDS_SIZE(32, 40), .y_offset = 13 }, - [SPECIES_ELEKID] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 12 }, - [SPECIES_MAGBY] = { .size = MON_COORDS_SIZE(32, 48), .y_offset = 11 }, - [SPECIES_MILTANK] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 8 }, - [SPECIES_BLISSEY] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 5 }, - [SPECIES_RAIKOU] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_ENTEI] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_SUICUNE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_LARVITAR] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 10 }, - [SPECIES_PUPITAR] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 9 }, - [SPECIES_TYRANITAR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_LUGIA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_HO_OH] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_CELEBI] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 12 }, - [SPECIES_TREECKO] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 8 }, - [SPECIES_GROVYLE] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_SCEPTILE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_TORCHIC] = { .size = MON_COORDS_SIZE(32, 48), .y_offset = 12 }, - [SPECIES_COMBUSKEN] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 3 }, - [SPECIES_BLAZIKEN] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_MUDKIP] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 13 }, - [SPECIES_MARSHTOMP] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 7 }, - [SPECIES_SWAMPERT] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_POOCHYENA] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 11 }, - [SPECIES_MIGHTYENA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_ZIGZAGOON] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 12 }, - [SPECIES_LINOONE] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 13 }, - [SPECIES_WURMPLE] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 12 }, - [SPECIES_SILCOON] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 10 }, - [SPECIES_BEAUTIFLY] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 9 }, - [SPECIES_CASCOON] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 10 }, - [SPECIES_DUSTOX] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 12 }, - [SPECIES_LOTAD] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 13 }, - [SPECIES_LOMBRE] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 10 }, - [SPECIES_LUDICOLO] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_SEEDOT] = { .size = MON_COORDS_SIZE(32, 40), .y_offset = 12 }, - [SPECIES_NUZLEAF] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_SHIFTRY] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_NINCADA] = { .size = MON_COORDS_SIZE(56, 32), .y_offset = 16 }, - [SPECIES_NINJASK] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 11 }, - [SPECIES_SHEDINJA] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 10 }, - [SPECIES_TAILLOW] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 11 }, - [SPECIES_SWELLOW] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_SHROOMISH] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 14 }, - [SPECIES_BRELOOM] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 3 }, - [SPECIES_SPINDA] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 1 }, - [SPECIES_WINGULL] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 11 }, - [SPECIES_PELIPPER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_SURSKIT] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 8 }, - [SPECIES_MASQUERAIN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_WAILMER] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 10 }, - [SPECIES_WAILORD] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_SKITTY] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 12 }, - [SPECIES_DELCATTY] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 4 }, - [SPECIES_KECLEON] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 5 }, - [SPECIES_BALTOY] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 11 }, - [SPECIES_CLAYDOL] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 3 }, - [SPECIES_NOSEPASS] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 10 }, - [SPECIES_TORKOAL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_SABLEYE] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 10 }, - [SPECIES_BARBOACH] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 11 }, - [SPECIES_WHISCASH] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_LUVDISC] = { .size = MON_COORDS_SIZE(32, 40), .y_offset = 11 }, - [SPECIES_CORPHISH] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 8 }, - [SPECIES_CRAWDAUNT] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_FEEBAS] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 10 }, - [SPECIES_MILOTIC] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_CARVANHA] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 6 }, - [SPECIES_SHARPEDO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_TRAPINCH] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 12 }, - [SPECIES_VIBRAVA] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 10 }, - [SPECIES_FLYGON] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_MAKUHITA] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 8 }, - [SPECIES_HARIYAMA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_ELECTRIKE] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 14 }, - [SPECIES_MANECTRIC] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, - [SPECIES_NUMEL] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 9 }, - [SPECIES_CAMERUPT] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_SPHEAL] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 11 }, - [SPECIES_SEALEO] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 10 }, - [SPECIES_WALREIN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_CACNEA] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 13 }, - [SPECIES_CACTURNE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SNORUNT] = { .size = MON_COORDS_SIZE(32, 40), .y_offset = 12 }, - [SPECIES_GLALIE] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 8 }, - [SPECIES_LUNATONE] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, - [SPECIES_SOLROCK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_AZURILL] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 11 }, - [SPECIES_SPOINK] = { .size = MON_COORDS_SIZE(32, 48), .y_offset = 9 }, - [SPECIES_GRUMPIG] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, - [SPECIES_PLUSLE] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 11 }, - [SPECIES_MINUN] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 11 }, - [SPECIES_MAWILE] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 8 }, - [SPECIES_MEDITITE] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 10 }, - [SPECIES_MEDICHAM] = { .size = MON_COORDS_SIZE(40, 64), .y_offset = 0 }, - [SPECIES_SWABLU] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 12 }, - [SPECIES_ALTARIA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_WYNAUT] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 12 }, - [SPECIES_DUSKULL] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 12 }, - [SPECIES_DUSCLOPS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_ROSELIA] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 11 }, - [SPECIES_SLAKOTH] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 15 }, - [SPECIES_VIGOROTH] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_SLAKING] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_GULPIN] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 15 }, - [SPECIES_SWALOT] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 5 }, - [SPECIES_TROPIUS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_WHISMUR] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 13 }, - [SPECIES_LOUDRED] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 3 }, - [SPECIES_EXPLOUD] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_CLAMPERL] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 11 }, - [SPECIES_HUNTAIL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_GOREBYSS] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_ABSOL] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, - [SPECIES_SHUPPET] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 13 }, - [SPECIES_BANETTE] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 7 }, - [SPECIES_SEVIPER] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_ZANGOOSE] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 5 }, - [SPECIES_RELICANTH] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 10 }, - [SPECIES_ARON] = { .size = MON_COORDS_SIZE(32, 40), .y_offset = 14 }, - [SPECIES_LAIRON] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 8 }, - [SPECIES_AGGRON] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_CASTFORM_NORMAL] = { .size = MON_COORDS_SIZE(24, 32), .y_offset = 17 }, - [SPECIES_VOLBEAT] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 8 }, - [SPECIES_ILLUMISE] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 10 }, - [SPECIES_LILEEP] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 7 }, - [SPECIES_CRADILY] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_ANORITH] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 7 }, - [SPECIES_ARMALDO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_RALTS] = { .size = MON_COORDS_SIZE(24, 40), .y_offset = 12 }, - [SPECIES_KIRLIA] = { .size = MON_COORDS_SIZE(32, 56), .y_offset = 6 }, - [SPECIES_GARDEVOIR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_BAGON] = { .size = MON_COORDS_SIZE(32, 48), .y_offset = 9 }, - [SPECIES_SHELGON] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, - [SPECIES_SALAMENCE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_BELDUM] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 15 }, - [SPECIES_METANG] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_METAGROSS] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_REGIROCK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_REGICE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_REGISTEEL] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_KYOGRE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_GROUDON] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_RAYQUAZA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_LATIAS] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 8 }, - [SPECIES_LATIOS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_JIRACHI] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 13 }, - [SPECIES_DEOXYS_NORMAL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_CHIMECHO] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 11 }, -#if P_GEN_4_POKEMON == TRUE - [SPECIES_TURTWIG] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 11 }, - [SPECIES_GROTLE] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 7 }, - [SPECIES_TORTERRA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_CHIMCHAR] = { .size = MON_COORDS_SIZE(32, 48), .y_offset = 10 }, - [SPECIES_MONFERNO] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 8 }, - [SPECIES_INFERNAPE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_PIPLUP] = { .size = MON_COORDS_SIZE(24, 40), .y_offset = 14 }, - [SPECIES_PRINPLUP] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 7 }, - [SPECIES_EMPOLEON] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_STARLY] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 12 }, - [SPECIES_STARAVIA] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 8 }, - [SPECIES_STARAPTOR] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 3 }, - [SPECIES_BIDOOF] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 12 }, - [SPECIES_BIBAREL] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 8 }, - [SPECIES_KRICKETOT] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 11 }, - [SPECIES_KRICKETUNE] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 7 }, - [SPECIES_SHINX] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 13 }, - [SPECIES_LUXIO] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 10 }, - [SPECIES_LUXRAY] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_BUDEW] = { .size = MON_COORDS_SIZE(32, 40), .y_offset = 14 }, - [SPECIES_ROSERADE] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 7 }, - [SPECIES_CRANIDOS] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 10 }, - [SPECIES_RAMPARDOS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_SHIELDON] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 15 }, - [SPECIES_BASTIODON] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_BURMY_PLANT_CLOAK] = { .size = MON_COORDS_SIZE(32, 56), .y_offset = 13 }, - [SPECIES_WORMADAM_PLANT_CLOAK] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 10 }, - [SPECIES_MOTHIM] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 12 }, - [SPECIES_COMBEE] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 16 }, - [SPECIES_VESPIQUEN] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 4 }, - [SPECIES_PACHIRISU] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 12 }, - [SPECIES_BUIZEL] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 10 }, - [SPECIES_FLOATZEL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_CHERUBI] = { .size = MON_COORDS_SIZE(40, 32), .y_offset = 16 }, - [SPECIES_CHERRIM_OVERCAST] = { .size = MON_COORDS_SIZE(32, 48), .y_offset = 8 }, - [SPECIES_SHELLOS_WEST_SEA] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 13 }, - [SPECIES_GASTRODON_WEST_SEA] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 8 }, - [SPECIES_AMBIPOM] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_DRIFLOON] = { .size = MON_COORDS_SIZE(32, 56), .y_offset = 7 }, - [SPECIES_DRIFBLIM] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 7 }, - [SPECIES_BUNEARY] = { .size = MON_COORDS_SIZE(32, 64), .y_offset = 9 }, - [SPECIES_LOPUNNY] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 4 }, - [SPECIES_MISMAGIUS] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 3 }, - [SPECIES_HONCHKROW] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_GLAMEOW] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 8 }, - [SPECIES_PURUGLY] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_CHINGLING] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 12 }, - [SPECIES_STUNKY] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 13 }, - [SPECIES_SKUNTANK] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_BRONZOR] = { .size = MON_COORDS_SIZE(32, 40), .y_offset = 14 }, - [SPECIES_BRONZONG] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 6 }, - [SPECIES_BONSLY] = { .size = MON_COORDS_SIZE(32, 48), .y_offset = 9 }, - [SPECIES_MIME_JR] = { .size = MON_COORDS_SIZE(32, 56), .y_offset = 9 }, - [SPECIES_HAPPINY] = { .size = MON_COORDS_SIZE(32, 48), .y_offset = 12 }, - [SPECIES_CHATOT] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 11 }, - [SPECIES_SPIRITOMB] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 6 }, - [SPECIES_GIBLE] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, - [SPECIES_GABITE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_GARCHOMP] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_MUNCHLAX] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 10 }, - [SPECIES_RIOLU] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 10 }, - [SPECIES_LUCARIO] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 7 }, - [SPECIES_HIPPOPOTAS] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 12 }, - [SPECIES_HIPPOWDON] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_SKORUPI] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 11 }, - [SPECIES_DRAPION] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 8 }, - [SPECIES_CROAGUNK] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 9 }, - [SPECIES_TOXICROAK] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 5 }, - [SPECIES_CARNIVINE] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 10 }, - [SPECIES_FINNEON] = { .size = MON_COORDS_SIZE(32, 40), .y_offset = 14 }, - [SPECIES_LUMINEON] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 6 }, - [SPECIES_MANTYKE] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 12 }, - [SPECIES_SNOVER] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 10 }, - [SPECIES_ABOMASNOW] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_WEAVILE] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 4 }, - [SPECIES_MAGNEZONE] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_LICKILICKY] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_RHYPERIOR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_TANGROWTH] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_ELECTIVIRE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_MAGMORTAR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_TOGEKISS] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 10 }, - [SPECIES_YANMEGA] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_LEAFEON] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 9 }, - [SPECIES_GLACEON] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 10 }, - [SPECIES_GLISCOR] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_MAMOSWINE] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_PORYGON_Z] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 6 }, - [SPECIES_GALLADE] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 1 }, - [SPECIES_PROBOPASS] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 4 }, - [SPECIES_DUSKNOIR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_FROSLASS] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 8 }, - [SPECIES_ROTOM] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 11 }, - [SPECIES_UXIE] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 6 }, - [SPECIES_MESPRIT] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 4 }, - [SPECIES_AZELF] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 0 }, - [SPECIES_DIALGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_PALKIA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_HEATRAN] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_REGIGIGAS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_GIRATINA_ALTERED] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_CRESSELIA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_PHIONE] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 8 }, - [SPECIES_MANAPHY] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 10 }, - [SPECIES_DARKRAI] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_SHAYMIN_LAND] = { .size = MON_COORDS_SIZE(40, 32), .y_offset = 16 }, - [SPECIES_ARCEUS_NORMAL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, -#endif -#if P_GEN_5_POKEMON == TRUE - [SPECIES_VICTINI] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 10 }, - [SPECIES_SNIVY] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 12 }, - [SPECIES_SERVINE] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 7 }, - [SPECIES_SERPERIOR] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_TEPIG] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 15 }, - [SPECIES_PIGNITE] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 8 }, - [SPECIES_EMBOAR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_OSHAWOTT] = { .size = MON_COORDS_SIZE(32, 40), .y_offset = 14 }, - [SPECIES_DEWOTT] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_SAMUROTT] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_PATRAT] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 12 }, - [SPECIES_WATCHOG] = { .size = MON_COORDS_SIZE(32, 64), .y_offset = 2 }, - [SPECIES_LILLIPUP] = { .size = MON_COORDS_SIZE(32, 40), .y_offset = 12 }, - [SPECIES_HERDIER] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 8 }, - [SPECIES_STOUTLAND] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_PURRLOIN] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 11 }, - [SPECIES_LIEPARD] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_PANSAGE] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 11 }, - [SPECIES_SIMISAGE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_PANSEAR] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 11 }, - [SPECIES_SIMISEAR] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 6 }, - [SPECIES_PANPOUR] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 10 }, - [SPECIES_SIMIPOUR] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 6 }, - [SPECIES_MUNNA] = { .size = MON_COORDS_SIZE(32, 32), .y_offset = 14 }, - [SPECIES_MUSHARNA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 6 }, - [SPECIES_PIDOVE] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 12 }, - [SPECIES_TRANQUILL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_UNFEZANT] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_BLITZLE] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 5 }, - [SPECIES_ZEBSTRIKA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_ROGGENROLA] = { .size = MON_COORDS_SIZE(24, 40), .y_offset = 14 }, - [SPECIES_BOLDORE] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 10 }, - [SPECIES_GIGALITH] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_WOOBAT] = { .size = MON_COORDS_SIZE(64, 32), .y_offset = 16 }, - [SPECIES_SWOOBAT] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_DRILBUR] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 10 }, - [SPECIES_EXCADRILL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 5 }, - [SPECIES_AUDINO] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 8 }, - [SPECIES_TIMBURR] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 13 }, - [SPECIES_GURDURR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_CONKELDURR] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_TYMPOLE] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 14 }, - [SPECIES_PALPITOAD] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 11 }, - [SPECIES_SEISMITOAD] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_THROH] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 10 }, - [SPECIES_SAWK] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 7 }, - [SPECIES_SEWADDLE] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 14 }, - [SPECIES_SWADLOON] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 12 }, - [SPECIES_LEAVANNY] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 0 }, - [SPECIES_VENIPEDE] = { .size = MON_COORDS_SIZE(48, 32), .y_offset = 16 }, - [SPECIES_WHIRLIPEDE] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 13 }, - [SPECIES_SCOLIPEDE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_COTTONEE] = { .size = MON_COORDS_SIZE(48, 32), .y_offset = 18 }, - [SPECIES_WHIMSICOTT] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 6 }, - [SPECIES_PETILIL] = { .size = MON_COORDS_SIZE(32, 48), .y_offset = 12 }, - [SPECIES_LILLIGANT] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 1 }, - [SPECIES_BASCULIN_RED_STRIPED] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 13 }, - [SPECIES_SANDILE] = { .size = MON_COORDS_SIZE(48, 32), .y_offset = 18 }, - [SPECIES_KROKOROK] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_KROOKODILE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_DARUMAKA] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 13 }, - [SPECIES_DARMANITAN_STANDARD_MODE] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, - [SPECIES_MARACTUS] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_DWEBBLE] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 14 }, - [SPECIES_CRUSTLE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_SCRAGGY] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 11 }, - [SPECIES_SCRAFTY] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 4 }, - [SPECIES_SIGILYPH] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_YAMASK] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 15 }, - [SPECIES_COFAGRIGUS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_TIRTOUGA] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 16 }, - [SPECIES_CARRACOSTA] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_ARCHEN] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 14 }, - [SPECIES_ARCHEOPS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_TRUBBISH] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 15 }, - [SPECIES_GARBODOR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_ZORUA] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 11 }, - [SPECIES_ZOROARK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_MINCCINO] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 11 }, - [SPECIES_CINCCINO] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 7 }, - [SPECIES_GOTHITA] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 12 }, - [SPECIES_GOTHORITA] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 7 }, - [SPECIES_GOTHITELLE] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 0 }, - [SPECIES_SOLOSIS] = { .size = MON_COORDS_SIZE(32, 32), .y_offset = 17 }, - [SPECIES_DUOSION] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 12 }, - [SPECIES_REUNICLUS] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 11 }, - [SPECIES_DUCKLETT] = { .size = MON_COORDS_SIZE(32, 40), .y_offset = 12 }, - [SPECIES_SWANNA] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, - [SPECIES_VANILLITE] = { .size = MON_COORDS_SIZE(32, 40), .y_offset = 14 }, - [SPECIES_VANILLISH] = { .size = MON_COORDS_SIZE(32, 56), .y_offset = 5 }, - [SPECIES_VANILLUXE] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 4 }, - [SPECIES_DEERLING_SPRING] = { .size = MON_COORDS_SIZE(32, 48), .y_offset = 11 }, - [SPECIES_SAWSBUCK_SPRING] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_EMOLGA] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 17 }, - [SPECIES_KARRABLAST] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 13 }, - [SPECIES_ESCAVALIER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_FOONGUS] = { .size = MON_COORDS_SIZE(32, 32), .y_offset = 16 }, - [SPECIES_AMOONGUSS] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 8 }, - [SPECIES_FRILLISH] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 5 }, - [SPECIES_JELLICENT] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_ALOMOMOLA] = { .size = MON_COORDS_SIZE(32, 64), .y_offset = 0 }, - [SPECIES_JOLTIK] = { .size = MON_COORDS_SIZE(32, 32), .y_offset = 17 }, - [SPECIES_GALVANTULA] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 10 }, - [SPECIES_FERROSEED] = { .size = MON_COORDS_SIZE(32, 40), .y_offset = 12 }, - [SPECIES_FERROTHORN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_KLINK] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 12 }, - [SPECIES_KLANG] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_KLINKLANG] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_TYNAMO] = { .size = MON_COORDS_SIZE(40, 24), .y_offset = 22 }, - [SPECIES_EELEKTRIK] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 6 }, - [SPECIES_EELEKTROSS] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_ELGYEM] = { .size = MON_COORDS_SIZE(32, 48), .y_offset = 11 }, - [SPECIES_BEHEEYEM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 4 }, - [SPECIES_LITWICK] = { .size = MON_COORDS_SIZE(32, 40), .y_offset = 14 }, - [SPECIES_LAMPENT] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 8 }, - [SPECIES_CHANDELURE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_AXEW] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 12 }, - [SPECIES_FRAXURE] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 5 }, - [SPECIES_HAXORUS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_CUBCHOO] = { .size = MON_COORDS_SIZE(32, 40), .y_offset = 12 }, - [SPECIES_BEARTIC] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_CRYOGONAL] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_SHELMET] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 14 }, - [SPECIES_ACCELGOR] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_STUNFISK] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 14 }, - [SPECIES_MIENFOO] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 11 }, - [SPECIES_MIENSHAO] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_DRUDDIGON] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_GOLETT] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 7 }, - [SPECIES_GOLURK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_PAWNIARD] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 10 }, - [SPECIES_BISHARP] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 0 }, - [SPECIES_BOUFFALANT] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_RUFFLET] = { .size = MON_COORDS_SIZE(32, 48), .y_offset = 10 }, - [SPECIES_BRAVIARY] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_VULLABY] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 5 }, - [SPECIES_MANDIBUZZ] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 1 }, - [SPECIES_HEATMOR] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_DURANT] = { .size = MON_COORDS_SIZE(48, 32), .y_offset = 17 }, - [SPECIES_DEINO] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 10 }, - [SPECIES_ZWEILOUS] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_HYDREIGON] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_LARVESTA] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 13 }, - [SPECIES_VOLCARONA] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_COBALION] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 0 }, - [SPECIES_TERRAKION] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_VIRIZION] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 2 }, - [SPECIES_TORNADUS_INCARNATE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_THUNDURUS_INCARNATE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_RESHIRAM] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_ZEKROM] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_LANDORUS_INCARNATE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_KYUREM] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 6 }, - [SPECIES_KELDEO_ORDINARY] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 5 }, - [SPECIES_MELOETTA_ARIA] = { .size = MON_COORDS_SIZE(32, 48), .y_offset = 9 }, - [SPECIES_GENESECT] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, -#endif -#if P_GEN_6_POKEMON == TRUE - [SPECIES_CHESPIN] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 10 }, - [SPECIES_QUILLADIN] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 10 }, - [SPECIES_CHESNAUGHT] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_FENNEKIN] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 10 }, - [SPECIES_BRAIXEN] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 4 }, - [SPECIES_DELPHOX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_FROAKIE] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 12 }, - [SPECIES_FROGADIER] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 8 }, - [SPECIES_GRENINJA] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_BUNNELBY] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 5 }, - [SPECIES_DIGGERSBY] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_FLETCHLING] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 12 }, - [SPECIES_FLETCHINDER] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 8 }, - [SPECIES_TALONFLAME] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_SCATTERBUG] = { .size = MON_COORDS_SIZE(32, 48), .y_offset = 13 }, - [SPECIES_SPEWPA] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 11 }, - [SPECIES_VIVILLON_ICY_SNOW] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_LITLEO] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 10 }, - [SPECIES_PYROAR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_FLABEBE_RED_FLOWER] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 6 }, - [SPECIES_FLOETTE_RED_FLOWER] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 3 }, - [SPECIES_FLORGES_RED_FLOWER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SKIDDO] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 7 }, - [SPECIES_GOGOAT] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, - [SPECIES_PANCHAM] = { .size = MON_COORDS_SIZE(32, 48), .y_offset = 12 }, - [SPECIES_PANGORO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_FURFROU_NATURAL] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 3 }, - [SPECIES_ESPURR] = { .size = MON_COORDS_SIZE(32, 48), .y_offset = 10 }, - [SPECIES_MEOWSTIC_MALE] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 3 }, - [SPECIES_HONEDGE] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_DOUBLADE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 5 }, - [SPECIES_AEGISLASH_SHIELD] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_SPRITZEE] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 12 }, - [SPECIES_AROMATISSE] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 4 }, - [SPECIES_SWIRLIX] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 14 }, - [SPECIES_SLURPUFF] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 8 }, - [SPECIES_INKAY] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 14 }, - [SPECIES_MALAMAR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_BINACLE] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 9 }, - [SPECIES_BARBARACLE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SKRELP] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 8 }, - [SPECIES_DRAGALGE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_CLAUNCHER] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 14 }, - [SPECIES_CLAWITZER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 10 }, - [SPECIES_HELIOPTILE] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 13 }, - [SPECIES_HELIOLISK] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_TYRUNT] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 11 }, - [SPECIES_TYRANTRUM] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_AMAURA] = { .size = MON_COORDS_SIZE(32, 56), .y_offset = 8 }, - [SPECIES_AURORUS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SYLVEON] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 4 }, - [SPECIES_HAWLUCHA] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 8 }, - [SPECIES_DEDENNE] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 13 }, - [SPECIES_CARBINK] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 10 }, - [SPECIES_GOOMY] = { .size = MON_COORDS_SIZE(32, 40), .y_offset = 13 }, - [SPECIES_SLIGGOO] = { .size = MON_COORDS_SIZE(32, 64), .y_offset = 6 }, - [SPECIES_GOODRA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_KLEFKI] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 4 }, - [SPECIES_PHANTUMP] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 11 }, - [SPECIES_TREVENANT] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_PUMPKABOO_AVERAGE] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 13 }, - [SPECIES_GOURGEIST_AVERAGE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_BERGMITE] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 14 }, - [SPECIES_AVALUGG] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_NOIBAT] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 8 }, - [SPECIES_NOIVERN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_XERNEAS_NEUTRAL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_YVELTAL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_ZYGARDE_50_AURA_BREAK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_DIANCIE] = { .size = MON_COORDS_SIZE(40, 64), .y_offset = 1 }, - [SPECIES_HOOPA_CONFINED] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 11 }, - [SPECIES_VOLCANION] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, -#endif -#if P_GEN_7_POKEMON == TRUE - [SPECIES_ROWLET] = { .size = MON_COORDS_SIZE(32, 40), .y_offset = 12 }, - [SPECIES_DARTRIX] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 8 }, - [SPECIES_DECIDUEYE] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 0 }, - [SPECIES_LITTEN] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 12 }, - [SPECIES_TORRACAT] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, - [SPECIES_INCINEROAR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_POPPLIO] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 11 }, - [SPECIES_BRIONNE] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 6 }, - [SPECIES_PRIMARINA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_PIKIPEK] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 11 }, - [SPECIES_TRUMBEAK] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 6 }, - [SPECIES_TOUCANNON] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_YUNGOOS] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 12 }, - [SPECIES_GUMSHOOS] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 5 }, - [SPECIES_GRUBBIN] = { .size = MON_COORDS_SIZE(48, 32), .y_offset = 17 }, - [SPECIES_CHARJABUG] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 14 }, - [SPECIES_VIKAVOLT] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_CRABRAWLER] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_CRABOMINABLE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_ORICORIO_BAILE] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, - [SPECIES_CUTIEFLY] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 16 }, - [SPECIES_RIBOMBEE] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 5 }, - [SPECIES_ROCKRUFF] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 11 }, - [SPECIES_LYCANROC_MIDDAY] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 6 }, - [SPECIES_WISHIWASHI_SOLO] = { .size = MON_COORDS_SIZE(40, 24), .y_offset = 15 }, - [SPECIES_MAREANIE] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 14 }, - [SPECIES_TOXAPEX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_MUDBRAY] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 7 }, - [SPECIES_MUDSDALE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_DEWPIDER] = { .size = MON_COORDS_SIZE(32, 48), .y_offset = 13 }, - [SPECIES_ARAQUANID] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_FOMANTIS] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 11 }, - [SPECIES_LURANTIS] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 2 }, - [SPECIES_MORELULL] = { .size = MON_COORDS_SIZE(24, 48), .y_offset = 10 }, - [SPECIES_SHIINOTIC] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 4 }, - [SPECIES_SALANDIT] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 12 }, - [SPECIES_SALAZZLE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_STUFFUL] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 10 }, - [SPECIES_BEWEAR] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 1 }, - [SPECIES_BOUNSWEET] = { .size = MON_COORDS_SIZE(32, 40), .y_offset = 16 }, - [SPECIES_STEENEE] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 7 }, - [SPECIES_TSAREENA] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 1 }, - [SPECIES_COMFEY] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, - [SPECIES_ORANGURU] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 5 }, - [SPECIES_PASSIMIAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_WIMPOD] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 14 }, - [SPECIES_GOLISOPOD] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SANDYGAST] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 11 }, - [SPECIES_PALOSSAND] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_PYUKUMUKU] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 15 }, - [SPECIES_TYPE_NULL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_SILVALLY_NORMAL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_MINIOR_METEOR_RED] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 14 }, - [SPECIES_KOMALA] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 12 }, - [SPECIES_TURTONATOR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_TOGEDEMARU] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 12 }, - [SPECIES_MIMIKYU_DISGUISED] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 12 }, - [SPECIES_BRUXISH] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 15 }, - [SPECIES_DRAMPA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_DHELMISE] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 1 }, - [SPECIES_JANGMO_O] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 8 }, - [SPECIES_HAKAMO_O] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 1 }, - [SPECIES_KOMMO_O] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_TAPU_KOKO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_TAPU_LELE] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 6 }, - [SPECIES_TAPU_BULU] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_TAPU_FINI] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, - [SPECIES_COSMOG] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 10 }, - [SPECIES_COSMOEM] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, - [SPECIES_SOLGALEO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_LUNALA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_NIHILEGO] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 3 }, - [SPECIES_BUZZWOLE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_PHEROMOSA] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 1 }, - [SPECIES_XURKITREE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_CELESTEELA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_KARTANA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_GUZZLORD] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_NECROZMA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_MAGEARNA] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_MARSHADOW] = { .size = MON_COORDS_SIZE(32, 56), .y_offset = 9 }, - [SPECIES_POIPOLE] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 8 }, - [SPECIES_NAGANADEL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_STAKATAKA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_BLACEPHALON] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 1 }, - [SPECIES_ZERAORA] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_MELTAN] = { .size = MON_COORDS_SIZE(32, 48), .y_offset = 11 }, - [SPECIES_MELMETAL] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, -#endif -#if P_GEN_8_POKEMON == TRUE - [SPECIES_GROOKEY] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 12 }, - [SPECIES_THWACKEY] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 7 }, - [SPECIES_RILLABOOM] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_SCORBUNNY] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 8 }, - [SPECIES_RABOOT] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_CINDERACE] = { .size = MON_COORDS_SIZE(40, 64), .y_offset = 0 }, - [SPECIES_SOBBLE] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 11 }, - [SPECIES_DRIZZILE] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 9 }, - [SPECIES_INTELEON] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 1 }, - [SPECIES_SKWOVET] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 9 }, - [SPECIES_GREEDENT] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 4 }, - [SPECIES_ROOKIDEE] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 16 }, - [SPECIES_CORVISQUIRE] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_CORVIKNIGHT] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, - [SPECIES_BLIPBUG] = { .size = MON_COORDS_SIZE(32, 40), .y_offset = 12 }, - [SPECIES_DOTTLER] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 13 }, - [SPECIES_ORBEETLE] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 4 }, - [SPECIES_NICKIT] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 9 }, - [SPECIES_THIEVUL] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_GOSSIFLEUR] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 11 }, - [SPECIES_ELDEGOSS] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 4 }, - [SPECIES_WOOLOO] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 12 }, - [SPECIES_DUBWOOL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 5 }, - [SPECIES_CHEWTLE] = { .size = MON_COORDS_SIZE(32, 48), .y_offset = 13 }, - [SPECIES_DREDNAW] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_YAMPER] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 10 }, - [SPECIES_BOLTUND] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 5 }, - [SPECIES_ROLYCOLY] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 16 }, - [SPECIES_CARKOL] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 8 }, - [SPECIES_COALOSSAL] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_APPLIN] = { .size = MON_COORDS_SIZE(32, 40), .y_offset = 16 }, - [SPECIES_FLAPPLE] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 9 }, - [SPECIES_APPLETUN] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_SILICOBRA] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 12 }, - [SPECIES_SANDACONDA] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 12 }, - [SPECIES_CRAMORANT] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_ARROKUDA] = { .size = MON_COORDS_SIZE(56, 32), .y_offset = 13 }, - [SPECIES_BARRASKEWDA] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 8 }, - [SPECIES_TOXEL] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 11 }, - [SPECIES_TOXTRICITY_AMPED] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 1 }, - [SPECIES_SIZZLIPEDE] = { .size = MON_COORDS_SIZE(48, 32), .y_offset = 17 }, - [SPECIES_CENTISKORCH] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_CLOBBOPUS] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 15 }, - [SPECIES_GRAPPLOCT] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 5 }, - [SPECIES_SINISTEA_PHONY] = { .size = MON_COORDS_SIZE(40, 32), .y_offset = 17 }, - [SPECIES_POLTEAGEIST_PHONY] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 11 }, - [SPECIES_HATENNA] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 12 }, - [SPECIES_HATTREM] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 8 }, - [SPECIES_HATTERENE] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 0 }, - [SPECIES_IMPIDIMP] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 12 }, - [SPECIES_MORGREM] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 6 }, - [SPECIES_GRIMMSNARL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_OBSTAGOON] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_PERRSERKER] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 2 }, - [SPECIES_CURSOLA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SIRFETCHD] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_MR_RIME] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 4 }, - [SPECIES_RUNERIGUS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_MILCERY] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 15 }, - [SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_FALINKS] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 8 }, - [SPECIES_PINCURCHIN] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 15 }, - [SPECIES_SNOM] = { .size = MON_COORDS_SIZE(40, 32), .y_offset = 20 }, - [SPECIES_FROSMOTH] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_STONJOURNER] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 2 }, - [SPECIES_EISCUE_ICE_FACE] = { .size = MON_COORDS_SIZE(40, 64), .y_offset = 0 }, - [SPECIES_INDEEDEE_MALE] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 9 }, - [SPECIES_MORPEKO_FULL_BELLY] = { .size = MON_COORDS_SIZE(32, 40), .y_offset = 14 }, - [SPECIES_CUFANT] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 11 }, - [SPECIES_COPPERAJAH] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_DRACOZOLT] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_ARCTOZOLT] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 1 }, - [SPECIES_DRACOVISH] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 0 }, - [SPECIES_ARCTOVISH] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_DURALUDON] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_DREEPY] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 14 }, - [SPECIES_DRAKLOAK] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_DRAGAPULT] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_ZACIAN_HERO_OF_MANY_BATTLES] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_ZAMAZENTA_HERO_OF_MANY_BATTLES] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_ETERNATUS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_KUBFU] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 8 }, - [SPECIES_URSHIFU_SINGLE_STRIKE_STYLE] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_ZARUDE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_REGIELEKI] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 5 }, - [SPECIES_REGIDRAGO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_GLASTRIER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SPECTRIER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_CALYREX] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 2 }, - [SPECIES_WYRDEER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_KLEAVOR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_URSALUNA] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 4 }, - [SPECIES_BASCULEGION_MALE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SNEASLER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_OVERQWIL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_ENAMORUS_INCARNATE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, -#endif - // Megas - [SPECIES_VENUSAUR_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_CHARIZARD_MEGA_X] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_CHARIZARD_MEGA_Y] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_BLASTOISE_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_BEEDRILL_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_PIDGEOT_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_ALAKAZAM_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SLOWBRO_MEGA] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_GENGAR_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 7 }, - [SPECIES_KANGASKHAN_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_PINSIR_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_GYARADOS_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_AERODACTYL_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_MEWTWO_MEGA_X] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 0 }, - [SPECIES_MEWTWO_MEGA_Y] = { .size = MON_COORDS_SIZE(40, 64), .y_offset = 0 }, - [SPECIES_AMPHAROS_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_STEELIX_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SCIZOR_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_HERACROSS_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_HOUNDOOM_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_TYRANITAR_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SCEPTILE_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_BLAZIKEN_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SWAMPERT_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 6 }, - [SPECIES_GARDEVOIR_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SABLEYE_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 5 }, - [SPECIES_MAWILE_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 5 }, - [SPECIES_AGGRON_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_MEDICHAM_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_MANECTRIC_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_SHARPEDO_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_CAMERUPT_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_ALTARIA_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_BANETTE_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_ABSOL_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_GLALIE_MEGA] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 1 }, - [SPECIES_SALAMENCE_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_METAGROSS_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_LATIAS_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_LATIOS_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, -#if P_GEN_4_POKEMON == TRUE - [SPECIES_LOPUNNY_MEGA] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 1 }, - [SPECIES_GARCHOMP_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_LUCARIO_MEGA] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 2 }, - [SPECIES_ABOMASNOW_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_GALLADE_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, -#endif -#if P_GEN_5_POKEMON == TRUE - [SPECIES_AUDINO_MEGA] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 6 }, -#endif -#if P_GEN_6_POKEMON == TRUE - [SPECIES_DIANCIE_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, -#endif - // Special Mega + Primals - [SPECIES_RAYQUAZA_MEGA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_KYOGRE_PRIMAL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_GROUDON_PRIMAL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Alolan Forms - [SPECIES_RATTATA_ALOLAN] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 11 }, - [SPECIES_RATICATE_ALOLAN] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 8 }, - [SPECIES_RAICHU_ALOLAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SANDSHREW_ALOLAN] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 13 }, - [SPECIES_SANDSLASH_ALOLAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_VULPIX_ALOLAN] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 10 }, - [SPECIES_NINETALES_ALOLAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_DIGLETT_ALOLAN] = { .size = MON_COORDS_SIZE(32, 40), .y_offset = 19 }, - [SPECIES_DUGTRIO_ALOLAN] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 11 }, - [SPECIES_MEOWTH_ALOLAN] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 8 }, - [SPECIES_PERSIAN_ALOLAN] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 4 }, - [SPECIES_GEODUDE_ALOLAN] = { .size = MON_COORDS_SIZE(48, 32), .y_offset = 17 }, - [SPECIES_GRAVELER_ALOLAN] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 8 }, - [SPECIES_GOLEM_ALOLAN] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 1 }, - [SPECIES_GRIMER_ALOLAN] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 11 }, - [SPECIES_MUK_ALOLAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_EXEGGUTOR_ALOLAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_MAROWAK_ALOLAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - // Galarian Forms - [SPECIES_MEOWTH_GALARIAN] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, - [SPECIES_PONYTA_GALARIAN] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 8 }, - [SPECIES_RAPIDASH_GALARIAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SLOWPOKE_GALARIAN] = { .size = MON_COORDS_SIZE(56, 32), .y_offset = 19 }, - [SPECIES_SLOWBRO_GALARIAN] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - [SPECIES_FARFETCHD_GALARIAN] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 9 }, - [SPECIES_WEEZING_GALARIAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_MR_MIME_GALARIAN] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 7 }, - [SPECIES_ARTICUNO_GALARIAN] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_ZAPDOS_GALARIAN] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 0 }, - [SPECIES_MOLTRES_GALARIAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_SLOWKING_GALARIAN] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 0 }, - [SPECIES_CORSOLA_GALARIAN] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 11 }, - [SPECIES_ZIGZAGOON_GALARIAN] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 13 }, - [SPECIES_LINOONE_GALARIAN] = { .size = MON_COORDS_SIZE(64, 40), .y_offset = 13 }, -#if P_GEN_5_POKEMON == TRUE - [SPECIES_DARUMAKA_GALARIAN] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 15 }, - [SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_YAMASK_GALARIAN] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 13 }, - [SPECIES_STUNFISK_GALARIAN] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 14 }, -#endif - // Hisuian Forms - [SPECIES_GROWLITHE_HISUIAN] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 6 }, - [SPECIES_ARCANINE_HISUIAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_VOLTORB_HISUIAN] = { .size = MON_COORDS_SIZE(32, 32), .y_offset = 0 }, - [SPECIES_ELECTRODE_HISUIAN] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 0 }, - [SPECIES_TYPHLOSION_HISUIAN] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 0 }, - [SPECIES_QWILFISH_HISUIAN] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 8 }, - [SPECIES_SNEASEL_HISUIAN] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 7 }, -#if P_GEN_5_POKEMON == TRUE - [SPECIES_SAMUROTT_HISUIAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_LILLIGANT_HISUIAN] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 1 }, - [SPECIES_ZORUA_HISUIAN] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 2 }, - [SPECIES_ZOROARK_HISUIAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_BRAVIARY_HISUIAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, -#endif -#if P_GEN_6_POKEMON == TRUE - [SPECIES_SLIGGOO_HISUIAN] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 6 }, - [SPECIES_GOODRA_HISUIAN] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_AVALUGG_HISUIAN] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 5 }, -#endif -#if P_GEN_7_POKEMON == TRUE - [SPECIES_DECIDUEYE_HISUIAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, -#endif - // Misc Forms - // Cosplay Pikachu - [SPECIES_PIKACHU_COSPLAY] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, - [SPECIES_PIKACHU_ROCK_STAR] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, - [SPECIES_PIKACHU_BELLE] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, - [SPECIES_PIKACHU_POP_STAR] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, - [SPECIES_PIKACHU_PH_D] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, - [SPECIES_PIKACHU_LIBRE] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, - // Cap Pikachu - [SPECIES_PIKACHU_ORIGINAL_CAP] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, - [SPECIES_PIKACHU_HOENN_CAP] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, - [SPECIES_PIKACHU_SINNOH_CAP] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, - [SPECIES_PIKACHU_UNOVA_CAP] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, - [SPECIES_PIKACHU_KALOS_CAP] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, - [SPECIES_PIKACHU_ALOLA_CAP] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, - [SPECIES_PIKACHU_PARTNER_CAP] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, - [SPECIES_PIKACHU_WORLD_CAP] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, - // Pichu - [SPECIES_PICHU_SPIKY_EARED] = { .size = MON_COORDS_SIZE(32, 40), .y_offset = 14 }, - // Unown - [SPECIES_UNOWN_B] = { .size = MON_COORDS_SIZE(24, 32), .y_offset = 16 }, - [SPECIES_UNOWN_C] = { .size = MON_COORDS_SIZE(32, 32), .y_offset = 16 }, - [SPECIES_UNOWN_D] = { .size = MON_COORDS_SIZE(32, 32), .y_offset = 16 }, - [SPECIES_UNOWN_E] = { .size = MON_COORDS_SIZE(32, 32), .y_offset = 17 }, - [SPECIES_UNOWN_F] = { .size = MON_COORDS_SIZE(32, 32), .y_offset = 17 }, - [SPECIES_UNOWN_G] = { .size = MON_COORDS_SIZE(24, 40), .y_offset = 14 }, - [SPECIES_UNOWN_H] = { .size = MON_COORDS_SIZE(32, 32), .y_offset = 16 }, - [SPECIES_UNOWN_I] = { .size = MON_COORDS_SIZE(24, 32), .y_offset = 16 }, - [SPECIES_UNOWN_J] = { .size = MON_COORDS_SIZE(24, 32), .y_offset = 17 }, - [SPECIES_UNOWN_K] = { .size = MON_COORDS_SIZE(32, 32), .y_offset = 17 }, - [SPECIES_UNOWN_L] = { .size = MON_COORDS_SIZE(24, 32), .y_offset = 19 }, - [SPECIES_UNOWN_M] = { .size = MON_COORDS_SIZE(32, 32), .y_offset = 19 }, - [SPECIES_UNOWN_N] = { .size = MON_COORDS_SIZE(32, 24), .y_offset = 20 }, - [SPECIES_UNOWN_O] = { .size = MON_COORDS_SIZE(32, 32), .y_offset = 16 }, - [SPECIES_UNOWN_P] = { .size = MON_COORDS_SIZE(24, 32), .y_offset = 19 }, - [SPECIES_UNOWN_Q] = { .size = MON_COORDS_SIZE(32, 24), .y_offset = 21 }, - [SPECIES_UNOWN_R] = { .size = MON_COORDS_SIZE(24, 32), .y_offset = 19 }, - [SPECIES_UNOWN_S] = { .size = MON_COORDS_SIZE(32, 40), .y_offset = 12 }, - [SPECIES_UNOWN_T] = { .size = MON_COORDS_SIZE(24, 32), .y_offset = 18 }, - [SPECIES_UNOWN_U] = { .size = MON_COORDS_SIZE(32, 32), .y_offset = 18 }, - [SPECIES_UNOWN_V] = { .size = MON_COORDS_SIZE(32, 32), .y_offset = 18 }, - [SPECIES_UNOWN_W] = { .size = MON_COORDS_SIZE(32, 32), .y_offset = 19 }, - [SPECIES_UNOWN_X] = { .size = MON_COORDS_SIZE(24, 24), .y_offset = 21 }, - [SPECIES_UNOWN_Y] = { .size = MON_COORDS_SIZE(24, 32), .y_offset = 17 }, - [SPECIES_UNOWN_Z] = { .size = MON_COORDS_SIZE(24, 32), .y_offset = 16 }, - [SPECIES_UNOWN_EMARK] = { .size = MON_COORDS_SIZE(24, 40), .y_offset = 15 }, - [SPECIES_UNOWN_QMARK] = { .size = MON_COORDS_SIZE(24, 40), .y_offset = 13 }, - // Castform - [SPECIES_CASTFORM_SUNNY] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 9 }, - [SPECIES_CASTFORM_RAINY] = { .size = MON_COORDS_SIZE(32, 48), .y_offset = 9 }, - [SPECIES_CASTFORM_SNOWY] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 8 }, - // Deoxys - [SPECIES_DEOXYS_ATTACK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_DEOXYS_DEFENSE] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_DEOXYS_SPEED] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, -#if P_GEN_4_POKEMON == TRUE - // Burmy - [SPECIES_BURMY_SANDY_CLOAK] = { .size = MON_COORDS_SIZE(32, 56), .y_offset = 12 }, - [SPECIES_BURMY_TRASH_CLOAK] = { .size = MON_COORDS_SIZE(32, 56), .y_offset = 8 }, - // Wormadam - [SPECIES_WORMADAM_SANDY_CLOAK] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 10 }, - [SPECIES_WORMADAM_TRASH_CLOAK] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 10 }, - // Cherrim - [SPECIES_CHERRIM_SUNSHINE] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 12 }, - // Shellos - [SPECIES_SHELLOS_EAST_SEA] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 14 }, - // Gastrodon - [SPECIES_GASTRODON_EAST_SEA] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 8 }, - // Rotom - [SPECIES_ROTOM_HEAT] = { .size = MON_COORDS_SIZE(56, 48), .y_offset = 10 }, - [SPECIES_ROTOM_WASH] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_ROTOM_FROST] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_ROTOM_FAN] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 8 }, - [SPECIES_ROTOM_MOW] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 12 }, - // Origin Forme - [SPECIES_DIALGA_ORIGIN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_PALKIA_ORIGIN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_GIRATINA_ORIGIN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Shaymin - [SPECIES_SHAYMIN_SKY] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 7 }, - // Arceus - [SPECIES_ARCEUS_FIGHTING] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_ARCEUS_FLYING] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_ARCEUS_POISON] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_ARCEUS_GROUND] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_ARCEUS_ROCK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_ARCEUS_BUG] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_ARCEUS_GHOST] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_ARCEUS_STEEL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_ARCEUS_FIRE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_ARCEUS_WATER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_ARCEUS_GRASS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_ARCEUS_ELECTRIC] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_ARCEUS_PSYCHIC] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_ARCEUS_ICE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_ARCEUS_DRAGON] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_ARCEUS_DARK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_ARCEUS_FAIRY] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, -#endif -#if P_GEN_5_POKEMON == TRUE - // Basculin - [SPECIES_BASCULIN_BLUE_STRIPED] = { .size = MON_COORDS_SIZE(56, 40), .y_offset = 16 }, - [SPECIES_BASCULIN_WHITE_STRIPED] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 10 }, - // Darmanitan - [SPECIES_DARMANITAN_ZEN_MODE] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 14 }, - [SPECIES_DARMANITAN_GALARIAN_ZEN_MODE] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 2 }, - // Deerling - [SPECIES_DEERLING_SUMMER] = { .size = MON_COORDS_SIZE(32, 48), .y_offset = 11 }, - [SPECIES_DEERLING_AUTUMN] = { .size = MON_COORDS_SIZE(32, 48), .y_offset = 11 }, - [SPECIES_DEERLING_WINTER] = { .size = MON_COORDS_SIZE(32, 48), .y_offset = 11 }, - // Sawsbuck - [SPECIES_SAWSBUCK_SUMMER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SAWSBUCK_AUTUMN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SAWSBUCK_WINTER] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - // Therian Forms - [SPECIES_TORNADUS_THERIAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_THUNDURUS_THERIAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_LANDORUS_THERIAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Kyurem - [SPECIES_KYUREM_WHITE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_KYUREM_BLACK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Keldeo - [SPECIES_KELDEO_RESOLUTE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - // Meloetta - [SPECIES_MELOETTA_PIROUETTE] = { .size = MON_COORDS_SIZE(40, 64), .y_offset = 2 }, - // Genesect - [SPECIES_GENESECT_DOUSE_DRIVE] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_GENESECT_SHOCK_DRIVE] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_GENESECT_BURN_DRIVE] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - [SPECIES_GENESECT_CHILL_DRIVE] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, -#endif -#if P_GEN_6_POKEMON == TRUE - // Greninja - [SPECIES_GRENINJA_BATTLE_BOND] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 7 }, - [SPECIES_GRENINJA_ASH] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Vivillon - [SPECIES_VIVILLON_POLAR] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_VIVILLON_TUNDRA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_VIVILLON_CONTINENTAL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_VIVILLON_GARDEN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_VIVILLON_ELEGANT] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_VIVILLON_MEADOW] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_VIVILLON_MODERN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_VIVILLON_MARINE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_VIVILLON_ARCHIPELAGO] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_VIVILLON_HIGH_PLAINS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_VIVILLON_SANDSTORM] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_VIVILLON_RIVER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_VIVILLON_MONSOON] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_VIVILLON_SAVANNA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_VIVILLON_SUN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_VIVILLON_OCEAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_VIVILLON_JUNGLE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_VIVILLON_FANCY] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_VIVILLON_POKE_BALL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Flabébé - [SPECIES_FLABEBE_YELLOW_FLOWER] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 6 }, - [SPECIES_FLABEBE_ORANGE_FLOWER] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 6 }, - [SPECIES_FLABEBE_BLUE_FLOWER] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 6 }, - [SPECIES_FLABEBE_WHITE_FLOWER] = { .size = MON_COORDS_SIZE(48, 56), .y_offset = 6 }, - // Floette - [SPECIES_FLOETTE_YELLOW_FLOWER] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 3 }, - [SPECIES_FLOETTE_ORANGE_FLOWER] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 3 }, - [SPECIES_FLOETTE_BLUE_FLOWER] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 3 }, - [SPECIES_FLOETTE_WHITE_FLOWER] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 3 }, - [SPECIES_FLOETTE_ETERNAL_FLOWER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - // Florges - [SPECIES_FLORGES_YELLOW_FLOWER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_FLORGES_ORANGE_FLOWER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_FLORGES_BLUE_FLOWER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_FLORGES_WHITE_FLOWER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Furfrou - [SPECIES_FURFROU_HEART_TRIM] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, - [SPECIES_FURFROU_STAR_TRIM] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, - [SPECIES_FURFROU_DIAMOND_TRIM] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 2 }, - [SPECIES_FURFROU_DEBUTANTE_TRIM] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 2 }, - [SPECIES_FURFROU_MATRON_TRIM] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 2 }, - [SPECIES_FURFROU_DANDY_TRIM] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 2 }, - [SPECIES_FURFROU_LA_REINE_TRIM] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 2 }, - [SPECIES_FURFROU_KABUKI_TRIM] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, - [SPECIES_FURFROU_PHARAOH_TRIM] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 2 }, - // Meowstic - [SPECIES_MEOWSTIC_FEMALE] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, - // Aegislash - [SPECIES_AEGISLASH_BLADE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Pumpkaboo - [SPECIES_PUMPKABOO_SMALL] = { .size = MON_COORDS_SIZE(40, 40), .y_offset = 15 }, - [SPECIES_PUMPKABOO_LARGE] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 12 }, - [SPECIES_PUMPKABOO_SUPER] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 10 }, - // Gourgeist - [SPECIES_GOURGEIST_SMALL] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 5 }, - [SPECIES_GOURGEIST_LARGE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_GOURGEIST_SUPER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Xerneas - [SPECIES_XERNEAS_ACTIVE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Zygarde - [SPECIES_ZYGARDE_10_AURA_BREAK] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, - [SPECIES_ZYGARDE_10_POWER_CONSTRUCT] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 2 }, - [SPECIES_ZYGARDE_50_POWER_CONSTRUCT] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_ZYGARDE_COMPLETE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Hoopa - [SPECIES_HOOPA_UNBOUND] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, -#endif -#if P_GEN_7_POKEMON == TRUE - // Oricorio - [SPECIES_ORICORIO_POM_POM] = { .size = MON_COORDS_SIZE(56, 56), .y_offset = 5 }, - [SPECIES_ORICORIO_PAU] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 3 }, - [SPECIES_ORICORIO_SENSU] = { .size = MON_COORDS_SIZE(64, 56), .y_offset = 4 }, - // Rockruff - [SPECIES_ROCKRUFF_OWN_TEMPO] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 11 }, - // Lycanroc - [SPECIES_LYCANROC_MIDNIGHT] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 1 }, - [SPECIES_LYCANROC_DUSK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - // Wishiwashi - [SPECIES_WISHIWASHI_SCHOOL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - // Silvally - [SPECIES_SILVALLY_FIGHTING] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SILVALLY_FLYING] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SILVALLY_POISON] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SILVALLY_GROUND] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SILVALLY_ROCK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SILVALLY_BUG] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SILVALLY_GHOST] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SILVALLY_STEEL] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SILVALLY_FIRE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SILVALLY_WATER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SILVALLY_GRASS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SILVALLY_ELECTRIC] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SILVALLY_PSYCHIC] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SILVALLY_ICE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SILVALLY_DRAGON] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SILVALLY_DARK] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_SILVALLY_FAIRY] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Minior - [SPECIES_MINIOR_METEOR_ORANGE] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 14 }, - [SPECIES_MINIOR_METEOR_YELLOW] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 14 }, - [SPECIES_MINIOR_METEOR_GREEN] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 14 }, - [SPECIES_MINIOR_METEOR_BLUE] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 14 }, - [SPECIES_MINIOR_METEOR_INDIGO] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 14 }, - [SPECIES_MINIOR_METEOR_VIOLET] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 14 }, - [SPECIES_MINIOR_CORE_RED] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 14 }, - [SPECIES_MINIOR_CORE_ORANGE] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 14 }, - [SPECIES_MINIOR_CORE_YELLOW] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 14 }, - [SPECIES_MINIOR_CORE_GREEN] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 14 }, - [SPECIES_MINIOR_CORE_BLUE] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 14 }, - [SPECIES_MINIOR_CORE_INDIGO] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 14 }, - [SPECIES_MINIOR_CORE_VIOLET] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 14 }, - // Mimikyu - [SPECIES_MIMIKYU_BUSTED] = { .size = MON_COORDS_SIZE(48, 40), .y_offset = 12 }, - // Necrozma - [SPECIES_NECROZMA_DUSK_MANE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_NECROZMA_DAWN_WINGS] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_NECROZMA_ULTRA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Magearna - [SPECIES_MAGEARNA_ORIGINAL_COLOR] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, -#endif -#if P_GEN_8_POKEMON == TRUE - // Cramorant - [SPECIES_CRAMORANT_GULPING] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_CRAMORANT_GORGING] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Toxtricity - [SPECIES_TOXTRICITY_LOW_KEY] = { .size = MON_COORDS_SIZE(48, 64), .y_offset = 2 }, - // Sinistea - [SPECIES_SINISTEA_ANTIQUE] = { .size = MON_COORDS_SIZE(40, 32), .y_offset = 17 }, - // Polteageist - [SPECIES_POLTEAGEIST_ANTIQUE] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 11 }, - // Alcremie - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL] = { .size = MON_COORDS_SIZE(40, 56), .y_offset = 7 }, - // Eiscue - [SPECIES_EISCUE_NOICE_FACE] = { .size = MON_COORDS_SIZE(40, 64), .y_offset = 0 }, - // Indeedee - [SPECIES_INDEEDEE_FEMALE] = { .size = MON_COORDS_SIZE(40, 48), .y_offset = 9 }, - // Morpeko - [SPECIES_MORPEKO_HANGRY] = { .size = MON_COORDS_SIZE(32, 40), .y_offset = 14 }, - // Zacian - [SPECIES_ZACIAN_CROWNED_SWORD] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Zamazenta - [SPECIES_ZAMAZENTA_CROWNED_SHIELD] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - // Eternatus - [SPECIES_ETERNATUS_ETERNAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - // Urshifu - [SPECIES_URSHIFU_RAPID_STRIKE_STYLE] = { .size = MON_COORDS_SIZE(56, 64), .y_offset = 0 }, - // Zarude - [SPECIES_ZARUDE_DADA] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - // Calyrex - [SPECIES_CALYREX_ICE_RIDER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_CALYREX_SHADOW_RIDER] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Enamorus - [SPECIES_ENAMORUS_THERIAN] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Basculegion - [SPECIES_BASCULEGION_FEMALE] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - // Gigantamax Forms - [SPECIES_VENUSAUR_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 5 }, - [SPECIES_CHARIZARD_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_BLASTOISE_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 4 }, - [SPECIES_BUTTERFREE_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 10 }, - [SPECIES_PIKACHU_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 1 }, - [SPECIES_MEOWTH_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_MACHAMP_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_GENGAR_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 8 }, - [SPECIES_KINGLER_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_LAPRAS_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_EEVEE_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 6 }, - [SPECIES_SNORLAX_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_GARBODOR_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_MELMETAL_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_RILLABOOM_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_CINDERACE_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_INTELEON_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_CORVIKNIGHT_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 3 }, - [SPECIES_ORBEETLE_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_DREDNAW_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_COALOSSAL_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_FLAPPLE_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_APPLETUN_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 2 }, - [SPECIES_SANDACONDA_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_TOXTRICITY_AMPED_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_TOXTRICITY_LOW_KEY_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_CENTISKORCH_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 5 }, - [SPECIES_HATTERENE_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_GRIMMSNARL_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_ALCREMIE_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_COPPERAJAH_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_DURALUDON_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_URSHIFU_SINGLE_STRIKE_STYLE_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, - [SPECIES_URSHIFU_RAPID_STRIKE_STYLE_GIGANTAMAX] = { .size = MON_COORDS_SIZE(64, 64), .y_offset = 0 }, -#endif - // Egg - [SPECIES_EGG] = { .size = MON_COORDS_SIZE(24, 24), .y_offset = 20 }, - -}; diff --git a/src/data/pokemon_graphics/front_pic_table.h b/src/data/pokemon_graphics/front_pic_table.h deleted file mode 100644 index 33e82debfec1..000000000000 --- a/src/data/pokemon_graphics/front_pic_table.h +++ /dev/null @@ -1,1477 +0,0 @@ -const struct CompressedSpriteSheet gMonFrontPicTable[NUM_SPECIES + 1] = -{ - SPECIES_SPRITE(NONE, gMonFrontPic_CircledQuestionMark), - SPECIES_SPRITE(BULBASAUR, gMonFrontPic_Bulbasaur), - SPECIES_SPRITE(IVYSAUR, gMonFrontPic_Ivysaur), - SPECIES_SPRITE(VENUSAUR, gMonFrontPic_Venusaur), - SPECIES_SPRITE(CHARMANDER, gMonFrontPic_Charmander), - SPECIES_SPRITE(CHARMELEON, gMonFrontPic_Charmeleon), - SPECIES_SPRITE(CHARIZARD, gMonFrontPic_Charizard), - SPECIES_SPRITE(SQUIRTLE, gMonFrontPic_Squirtle), - SPECIES_SPRITE(WARTORTLE, gMonFrontPic_Wartortle), - SPECIES_SPRITE(BLASTOISE, gMonFrontPic_Blastoise), - SPECIES_SPRITE(CATERPIE, gMonFrontPic_Caterpie), - SPECIES_SPRITE(METAPOD, gMonFrontPic_Metapod), - SPECIES_SPRITE(BUTTERFREE, gMonFrontPic_Butterfree), - SPECIES_SPRITE(WEEDLE, gMonFrontPic_Weedle), - SPECIES_SPRITE(KAKUNA, gMonFrontPic_Kakuna), - SPECIES_SPRITE(BEEDRILL, gMonFrontPic_Beedrill), - SPECIES_SPRITE(PIDGEY, gMonFrontPic_Pidgey), - SPECIES_SPRITE(PIDGEOTTO, gMonFrontPic_Pidgeotto), - SPECIES_SPRITE(PIDGEOT, gMonFrontPic_Pidgeot), - SPECIES_SPRITE(RATTATA, gMonFrontPic_Rattata), - SPECIES_SPRITE(RATICATE, gMonFrontPic_Raticate), - SPECIES_SPRITE(SPEAROW, gMonFrontPic_Spearow), - SPECIES_SPRITE(FEAROW, gMonFrontPic_Fearow), - SPECIES_SPRITE(EKANS, gMonFrontPic_Ekans), - SPECIES_SPRITE(ARBOK, gMonFrontPic_Arbok), - SPECIES_SPRITE(PIKACHU, gMonFrontPic_Pikachu), - SPECIES_SPRITE(RAICHU, gMonFrontPic_Raichu), - SPECIES_SPRITE(SANDSHREW, gMonFrontPic_Sandshrew), - SPECIES_SPRITE(SANDSLASH, gMonFrontPic_Sandslash), - SPECIES_SPRITE(NIDORAN_F, gMonFrontPic_NidoranF), - SPECIES_SPRITE(NIDORINA, gMonFrontPic_Nidorina), - SPECIES_SPRITE(NIDOQUEEN, gMonFrontPic_Nidoqueen), - SPECIES_SPRITE(NIDORAN_M, gMonFrontPic_NidoranM), - SPECIES_SPRITE(NIDORINO, gMonFrontPic_Nidorino), - SPECIES_SPRITE(NIDOKING, gMonFrontPic_Nidoking), - SPECIES_SPRITE(CLEFAIRY, gMonFrontPic_Clefairy), - SPECIES_SPRITE(CLEFABLE, gMonFrontPic_Clefable), - SPECIES_SPRITE(VULPIX, gMonFrontPic_Vulpix), - SPECIES_SPRITE(NINETALES, gMonFrontPic_Ninetales), - SPECIES_SPRITE(JIGGLYPUFF, gMonFrontPic_Jigglypuff), - SPECIES_SPRITE(WIGGLYTUFF, gMonFrontPic_Wigglytuff), - SPECIES_SPRITE(ZUBAT, gMonFrontPic_Zubat), - SPECIES_SPRITE(GOLBAT, gMonFrontPic_Golbat), - SPECIES_SPRITE(ODDISH, gMonFrontPic_Oddish), - SPECIES_SPRITE(GLOOM, gMonFrontPic_Gloom), - SPECIES_SPRITE(VILEPLUME, gMonFrontPic_Vileplume), - SPECIES_SPRITE(PARAS, gMonFrontPic_Paras), - SPECIES_SPRITE(PARASECT, gMonFrontPic_Parasect), - SPECIES_SPRITE(VENONAT, gMonFrontPic_Venonat), - SPECIES_SPRITE(VENOMOTH, gMonFrontPic_Venomoth), - SPECIES_SPRITE(DIGLETT, gMonFrontPic_Diglett), - SPECIES_SPRITE(DUGTRIO, gMonFrontPic_Dugtrio), - SPECIES_SPRITE(MEOWTH, gMonFrontPic_Meowth), - SPECIES_SPRITE(PERSIAN, gMonFrontPic_Persian), - SPECIES_SPRITE(PSYDUCK, gMonFrontPic_Psyduck), - SPECIES_SPRITE(GOLDUCK, gMonFrontPic_Golduck), - SPECIES_SPRITE(MANKEY, gMonFrontPic_Mankey), - SPECIES_SPRITE(PRIMEAPE, gMonFrontPic_Primeape), - SPECIES_SPRITE(GROWLITHE, gMonFrontPic_Growlithe), - SPECIES_SPRITE(ARCANINE, gMonFrontPic_Arcanine), - SPECIES_SPRITE(POLIWAG, gMonFrontPic_Poliwag), - SPECIES_SPRITE(POLIWHIRL, gMonFrontPic_Poliwhirl), - SPECIES_SPRITE(POLIWRATH, gMonFrontPic_Poliwrath), - SPECIES_SPRITE(ABRA, gMonFrontPic_Abra), - SPECIES_SPRITE(KADABRA, gMonFrontPic_Kadabra), - SPECIES_SPRITE(ALAKAZAM, gMonFrontPic_Alakazam), - SPECIES_SPRITE(MACHOP, gMonFrontPic_Machop), - SPECIES_SPRITE(MACHOKE, gMonFrontPic_Machoke), - SPECIES_SPRITE(MACHAMP, gMonFrontPic_Machamp), - SPECIES_SPRITE(BELLSPROUT, gMonFrontPic_Bellsprout), - SPECIES_SPRITE(WEEPINBELL, gMonFrontPic_Weepinbell), - SPECIES_SPRITE(VICTREEBEL, gMonFrontPic_Victreebel), - SPECIES_SPRITE(TENTACOOL, gMonFrontPic_Tentacool), - SPECIES_SPRITE(TENTACRUEL, gMonFrontPic_Tentacruel), - SPECIES_SPRITE(GEODUDE, gMonFrontPic_Geodude), - SPECIES_SPRITE(GRAVELER, gMonFrontPic_Graveler), - SPECIES_SPRITE(GOLEM, gMonFrontPic_Golem), - SPECIES_SPRITE(PONYTA, gMonFrontPic_Ponyta), - SPECIES_SPRITE(RAPIDASH, gMonFrontPic_Rapidash), - SPECIES_SPRITE(SLOWPOKE, gMonFrontPic_Slowpoke), - SPECIES_SPRITE(SLOWBRO, gMonFrontPic_Slowbro), - SPECIES_SPRITE(MAGNEMITE, gMonFrontPic_Magnemite), - SPECIES_SPRITE(MAGNETON, gMonFrontPic_Magneton), - SPECIES_SPRITE(FARFETCHD, gMonFrontPic_Farfetchd), - SPECIES_SPRITE(DODUO, gMonFrontPic_Doduo), - SPECIES_SPRITE(DODRIO, gMonFrontPic_Dodrio), - SPECIES_SPRITE(SEEL, gMonFrontPic_Seel), - SPECIES_SPRITE(DEWGONG, gMonFrontPic_Dewgong), - SPECIES_SPRITE(GRIMER, gMonFrontPic_Grimer), - SPECIES_SPRITE(MUK, gMonFrontPic_Muk), - SPECIES_SPRITE(SHELLDER, gMonFrontPic_Shellder), - SPECIES_SPRITE(CLOYSTER, gMonFrontPic_Cloyster), - SPECIES_SPRITE(GASTLY, gMonFrontPic_Gastly), - SPECIES_SPRITE(HAUNTER, gMonFrontPic_Haunter), - SPECIES_SPRITE(GENGAR, gMonFrontPic_Gengar), - SPECIES_SPRITE(ONIX, gMonFrontPic_Onix), - SPECIES_SPRITE(DROWZEE, gMonFrontPic_Drowzee), - SPECIES_SPRITE(HYPNO, gMonFrontPic_Hypno), - SPECIES_SPRITE(KRABBY, gMonFrontPic_Krabby), - SPECIES_SPRITE(KINGLER, gMonFrontPic_Kingler), - SPECIES_SPRITE(VOLTORB, gMonFrontPic_Voltorb), - SPECIES_SPRITE(ELECTRODE, gMonFrontPic_Electrode), - SPECIES_SPRITE(EXEGGCUTE, gMonFrontPic_Exeggcute), - SPECIES_SPRITE(EXEGGUTOR, gMonFrontPic_Exeggutor), - SPECIES_SPRITE(CUBONE, gMonFrontPic_Cubone), - SPECIES_SPRITE(MAROWAK, gMonFrontPic_Marowak), - SPECIES_SPRITE(HITMONLEE, gMonFrontPic_Hitmonlee), - SPECIES_SPRITE(HITMONCHAN, gMonFrontPic_Hitmonchan), - SPECIES_SPRITE(LICKITUNG, gMonFrontPic_Lickitung), - SPECIES_SPRITE(KOFFING, gMonFrontPic_Koffing), - SPECIES_SPRITE(WEEZING, gMonFrontPic_Weezing), - SPECIES_SPRITE(RHYHORN, gMonFrontPic_Rhyhorn), - SPECIES_SPRITE(RHYDON, gMonFrontPic_Rhydon), - SPECIES_SPRITE(CHANSEY, gMonFrontPic_Chansey), - SPECIES_SPRITE(TANGELA, gMonFrontPic_Tangela), - SPECIES_SPRITE(KANGASKHAN, gMonFrontPic_Kangaskhan), - SPECIES_SPRITE(HORSEA, gMonFrontPic_Horsea), - SPECIES_SPRITE(SEADRA, gMonFrontPic_Seadra), - SPECIES_SPRITE(GOLDEEN, gMonFrontPic_Goldeen), - SPECIES_SPRITE(SEAKING, gMonFrontPic_Seaking), - SPECIES_SPRITE(STARYU, gMonFrontPic_Staryu), - SPECIES_SPRITE(STARMIE, gMonFrontPic_Starmie), - SPECIES_SPRITE(MR_MIME, gMonFrontPic_MrMime), - SPECIES_SPRITE(SCYTHER, gMonFrontPic_Scyther), - SPECIES_SPRITE(JYNX, gMonFrontPic_Jynx), - SPECIES_SPRITE(ELECTABUZZ, gMonFrontPic_Electabuzz), - SPECIES_SPRITE(MAGMAR, gMonFrontPic_Magmar), - SPECIES_SPRITE(PINSIR, gMonFrontPic_Pinsir), - SPECIES_SPRITE(TAUROS, gMonFrontPic_Tauros), - SPECIES_SPRITE(MAGIKARP, gMonFrontPic_Magikarp), - SPECIES_SPRITE(GYARADOS, gMonFrontPic_Gyarados), - SPECIES_SPRITE(LAPRAS, gMonFrontPic_Lapras), - SPECIES_SPRITE(DITTO, gMonFrontPic_Ditto), - SPECIES_SPRITE(EEVEE, gMonFrontPic_Eevee), - SPECIES_SPRITE(VAPOREON, gMonFrontPic_Vaporeon), - SPECIES_SPRITE(JOLTEON, gMonFrontPic_Jolteon), - SPECIES_SPRITE(FLAREON, gMonFrontPic_Flareon), - SPECIES_SPRITE(PORYGON, gMonFrontPic_Porygon), - SPECIES_SPRITE(OMANYTE, gMonFrontPic_Omanyte), - SPECIES_SPRITE(OMASTAR, gMonFrontPic_Omastar), - SPECIES_SPRITE(KABUTO, gMonFrontPic_Kabuto), - SPECIES_SPRITE(KABUTOPS, gMonFrontPic_Kabutops), - SPECIES_SPRITE(AERODACTYL, gMonFrontPic_Aerodactyl), - SPECIES_SPRITE(SNORLAX, gMonFrontPic_Snorlax), - SPECIES_SPRITE(ARTICUNO, gMonFrontPic_Articuno), - SPECIES_SPRITE(ZAPDOS, gMonFrontPic_Zapdos), - SPECIES_SPRITE(MOLTRES, gMonFrontPic_Moltres), - SPECIES_SPRITE(DRATINI, gMonFrontPic_Dratini), - SPECIES_SPRITE(DRAGONAIR, gMonFrontPic_Dragonair), - SPECIES_SPRITE(DRAGONITE, gMonFrontPic_Dragonite), - SPECIES_SPRITE(MEWTWO, gMonFrontPic_Mewtwo), - SPECIES_SPRITE(MEW, gMonFrontPic_Mew), - SPECIES_SPRITE(CHIKORITA, gMonFrontPic_Chikorita), - SPECIES_SPRITE(BAYLEEF, gMonFrontPic_Bayleef), - SPECIES_SPRITE(MEGANIUM, gMonFrontPic_Meganium), - SPECIES_SPRITE(CYNDAQUIL, gMonFrontPic_Cyndaquil), - SPECIES_SPRITE(QUILAVA, gMonFrontPic_Quilava), - SPECIES_SPRITE(TYPHLOSION, gMonFrontPic_Typhlosion), - SPECIES_SPRITE(TOTODILE, gMonFrontPic_Totodile), - SPECIES_SPRITE(CROCONAW, gMonFrontPic_Croconaw), - SPECIES_SPRITE(FERALIGATR, gMonFrontPic_Feraligatr), - SPECIES_SPRITE(SENTRET, gMonFrontPic_Sentret), - SPECIES_SPRITE(FURRET, gMonFrontPic_Furret), - SPECIES_SPRITE(HOOTHOOT, gMonFrontPic_Hoothoot), - SPECIES_SPRITE(NOCTOWL, gMonFrontPic_Noctowl), - SPECIES_SPRITE(LEDYBA, gMonFrontPic_Ledyba), - SPECIES_SPRITE(LEDIAN, gMonFrontPic_Ledian), - SPECIES_SPRITE(SPINARAK, gMonFrontPic_Spinarak), - SPECIES_SPRITE(ARIADOS, gMonFrontPic_Ariados), - SPECIES_SPRITE(CROBAT, gMonFrontPic_Crobat), - SPECIES_SPRITE(CHINCHOU, gMonFrontPic_Chinchou), - SPECIES_SPRITE(LANTURN, gMonFrontPic_Lanturn), - SPECIES_SPRITE(PICHU, gMonFrontPic_Pichu), - SPECIES_SPRITE(CLEFFA, gMonFrontPic_Cleffa), - SPECIES_SPRITE(IGGLYBUFF, gMonFrontPic_Igglybuff), - SPECIES_SPRITE(TOGEPI, gMonFrontPic_Togepi), - SPECIES_SPRITE(TOGETIC, gMonFrontPic_Togetic), - SPECIES_SPRITE(NATU, gMonFrontPic_Natu), - SPECIES_SPRITE(XATU, gMonFrontPic_Xatu), - SPECIES_SPRITE(MAREEP, gMonFrontPic_Mareep), - SPECIES_SPRITE(FLAAFFY, gMonFrontPic_Flaaffy), - SPECIES_SPRITE(AMPHAROS, gMonFrontPic_Ampharos), - SPECIES_SPRITE(BELLOSSOM, gMonFrontPic_Bellossom), - SPECIES_SPRITE(MARILL, gMonFrontPic_Marill), - SPECIES_SPRITE(AZUMARILL, gMonFrontPic_Azumarill), - SPECIES_SPRITE(SUDOWOODO, gMonFrontPic_Sudowoodo), - SPECIES_SPRITE(POLITOED, gMonFrontPic_Politoed), - SPECIES_SPRITE(HOPPIP, gMonFrontPic_Hoppip), - SPECIES_SPRITE(SKIPLOOM, gMonFrontPic_Skiploom), - SPECIES_SPRITE(JUMPLUFF, gMonFrontPic_Jumpluff), - SPECIES_SPRITE(AIPOM, gMonFrontPic_Aipom), - SPECIES_SPRITE(SUNKERN, gMonFrontPic_Sunkern), - SPECIES_SPRITE(SUNFLORA, gMonFrontPic_Sunflora), - SPECIES_SPRITE(YANMA, gMonFrontPic_Yanma), - SPECIES_SPRITE(WOOPER, gMonFrontPic_Wooper), - SPECIES_SPRITE(QUAGSIRE, gMonFrontPic_Quagsire), - SPECIES_SPRITE(ESPEON, gMonFrontPic_Espeon), - SPECIES_SPRITE(UMBREON, gMonFrontPic_Umbreon), - SPECIES_SPRITE(MURKROW, gMonFrontPic_Murkrow), - SPECIES_SPRITE(SLOWKING, gMonFrontPic_Slowking), - SPECIES_SPRITE(MISDREAVUS, gMonFrontPic_Misdreavus), - SPECIES_SPRITE(UNOWN, gMonFrontPic_Unown), - SPECIES_SPRITE(WOBBUFFET, gMonFrontPic_Wobbuffet), - SPECIES_SPRITE(GIRAFARIG, gMonFrontPic_Girafarig), - SPECIES_SPRITE(PINECO, gMonFrontPic_Pineco), - SPECIES_SPRITE(FORRETRESS, gMonFrontPic_Forretress), - SPECIES_SPRITE(DUNSPARCE, gMonFrontPic_Dunsparce), - SPECIES_SPRITE(GLIGAR, gMonFrontPic_Gligar), - SPECIES_SPRITE(STEELIX, gMonFrontPic_Steelix), - SPECIES_SPRITE(SNUBBULL, gMonFrontPic_Snubbull), - SPECIES_SPRITE(GRANBULL, gMonFrontPic_Granbull), - SPECIES_SPRITE(QWILFISH, gMonFrontPic_Qwilfish), - SPECIES_SPRITE(SCIZOR, gMonFrontPic_Scizor), - SPECIES_SPRITE(SHUCKLE, gMonFrontPic_Shuckle), - SPECIES_SPRITE(HERACROSS, gMonFrontPic_Heracross), - SPECIES_SPRITE(SNEASEL, gMonFrontPic_Sneasel), - SPECIES_SPRITE(TEDDIURSA, gMonFrontPic_Teddiursa), - SPECIES_SPRITE(URSARING, gMonFrontPic_Ursaring), - SPECIES_SPRITE(SLUGMA, gMonFrontPic_Slugma), - SPECIES_SPRITE(MAGCARGO, gMonFrontPic_Magcargo), - SPECIES_SPRITE(SWINUB, gMonFrontPic_Swinub), - SPECIES_SPRITE(PILOSWINE, gMonFrontPic_Piloswine), - SPECIES_SPRITE(CORSOLA, gMonFrontPic_Corsola), - SPECIES_SPRITE(REMORAID, gMonFrontPic_Remoraid), - SPECIES_SPRITE(OCTILLERY, gMonFrontPic_Octillery), - SPECIES_SPRITE(DELIBIRD, gMonFrontPic_Delibird), - SPECIES_SPRITE(MANTINE, gMonFrontPic_Mantine), - SPECIES_SPRITE(SKARMORY, gMonFrontPic_Skarmory), - SPECIES_SPRITE(HOUNDOUR, gMonFrontPic_Houndour), - SPECIES_SPRITE(HOUNDOOM, gMonFrontPic_Houndoom), - SPECIES_SPRITE(KINGDRA, gMonFrontPic_Kingdra), - SPECIES_SPRITE(PHANPY, gMonFrontPic_Phanpy), - SPECIES_SPRITE(DONPHAN, gMonFrontPic_Donphan), - SPECIES_SPRITE(PORYGON2, gMonFrontPic_Porygon2), - SPECIES_SPRITE(STANTLER, gMonFrontPic_Stantler), - SPECIES_SPRITE(SMEARGLE, gMonFrontPic_Smeargle), - SPECIES_SPRITE(TYROGUE, gMonFrontPic_Tyrogue), - SPECIES_SPRITE(HITMONTOP, gMonFrontPic_Hitmontop), - SPECIES_SPRITE(SMOOCHUM, gMonFrontPic_Smoochum), - SPECIES_SPRITE(ELEKID, gMonFrontPic_Elekid), - SPECIES_SPRITE(MAGBY, gMonFrontPic_Magby), - SPECIES_SPRITE(MILTANK, gMonFrontPic_Miltank), - SPECIES_SPRITE(BLISSEY, gMonFrontPic_Blissey), - SPECIES_SPRITE(RAIKOU, gMonFrontPic_Raikou), - SPECIES_SPRITE(ENTEI, gMonFrontPic_Entei), - SPECIES_SPRITE(SUICUNE, gMonFrontPic_Suicune), - SPECIES_SPRITE(LARVITAR, gMonFrontPic_Larvitar), - SPECIES_SPRITE(PUPITAR, gMonFrontPic_Pupitar), - SPECIES_SPRITE(TYRANITAR, gMonFrontPic_Tyranitar), - SPECIES_SPRITE(LUGIA, gMonFrontPic_Lugia), - SPECIES_SPRITE(HO_OH, gMonFrontPic_HoOh), - SPECIES_SPRITE(CELEBI, gMonFrontPic_Celebi), - SPECIES_SPRITE(TREECKO, gMonFrontPic_Treecko), - SPECIES_SPRITE(GROVYLE, gMonFrontPic_Grovyle), - SPECIES_SPRITE(SCEPTILE, gMonFrontPic_Sceptile), - SPECIES_SPRITE(TORCHIC, gMonFrontPic_Torchic), - SPECIES_SPRITE(COMBUSKEN, gMonFrontPic_Combusken), - SPECIES_SPRITE(BLAZIKEN, gMonFrontPic_Blaziken), - SPECIES_SPRITE(MUDKIP, gMonFrontPic_Mudkip), - SPECIES_SPRITE(MARSHTOMP, gMonFrontPic_Marshtomp), - SPECIES_SPRITE(SWAMPERT, gMonFrontPic_Swampert), - SPECIES_SPRITE(POOCHYENA, gMonFrontPic_Poochyena), - SPECIES_SPRITE(MIGHTYENA, gMonFrontPic_Mightyena), - SPECIES_SPRITE(ZIGZAGOON, gMonFrontPic_Zigzagoon), - SPECIES_SPRITE(LINOONE, gMonFrontPic_Linoone), - SPECIES_SPRITE(WURMPLE, gMonFrontPic_Wurmple), - SPECIES_SPRITE(SILCOON, gMonFrontPic_Silcoon), - SPECIES_SPRITE(BEAUTIFLY, gMonFrontPic_Beautifly), - SPECIES_SPRITE(CASCOON, gMonFrontPic_Cascoon), - SPECIES_SPRITE(DUSTOX, gMonFrontPic_Dustox), - SPECIES_SPRITE(LOTAD, gMonFrontPic_Lotad), - SPECIES_SPRITE(LOMBRE, gMonFrontPic_Lombre), - SPECIES_SPRITE(LUDICOLO, gMonFrontPic_Ludicolo), - SPECIES_SPRITE(SEEDOT, gMonFrontPic_Seedot), - SPECIES_SPRITE(NUZLEAF, gMonFrontPic_Nuzleaf), - SPECIES_SPRITE(SHIFTRY, gMonFrontPic_Shiftry), - SPECIES_SPRITE(NINCADA, gMonFrontPic_Nincada), - SPECIES_SPRITE(NINJASK, gMonFrontPic_Ninjask), - SPECIES_SPRITE(SHEDINJA, gMonFrontPic_Shedinja), - SPECIES_SPRITE(TAILLOW, gMonFrontPic_Taillow), - SPECIES_SPRITE(SWELLOW, gMonFrontPic_Swellow), - SPECIES_SPRITE(SHROOMISH, gMonFrontPic_Shroomish), - SPECIES_SPRITE(BRELOOM, gMonFrontPic_Breloom), - SPECIES_SPRITE(SPINDA, gMonFrontPic_Spinda), - SPECIES_SPRITE(WINGULL, gMonFrontPic_Wingull), - SPECIES_SPRITE(PELIPPER, gMonFrontPic_Pelipper), - SPECIES_SPRITE(SURSKIT, gMonFrontPic_Surskit), - SPECIES_SPRITE(MASQUERAIN, gMonFrontPic_Masquerain), - SPECIES_SPRITE(WAILMER, gMonFrontPic_Wailmer), - SPECIES_SPRITE(WAILORD, gMonFrontPic_Wailord), - SPECIES_SPRITE(SKITTY, gMonFrontPic_Skitty), - SPECIES_SPRITE(DELCATTY, gMonFrontPic_Delcatty), - SPECIES_SPRITE(KECLEON, gMonFrontPic_Kecleon), - SPECIES_SPRITE(BALTOY, gMonFrontPic_Baltoy), - SPECIES_SPRITE(CLAYDOL, gMonFrontPic_Claydol), - SPECIES_SPRITE(NOSEPASS, gMonFrontPic_Nosepass), - SPECIES_SPRITE(TORKOAL, gMonFrontPic_Torkoal), - SPECIES_SPRITE(SABLEYE, gMonFrontPic_Sableye), - SPECIES_SPRITE(BARBOACH, gMonFrontPic_Barboach), - SPECIES_SPRITE(WHISCASH, gMonFrontPic_Whiscash), - SPECIES_SPRITE(LUVDISC, gMonFrontPic_Luvdisc), - SPECIES_SPRITE(CORPHISH, gMonFrontPic_Corphish), - SPECIES_SPRITE(CRAWDAUNT, gMonFrontPic_Crawdaunt), - SPECIES_SPRITE(FEEBAS, gMonFrontPic_Feebas), - SPECIES_SPRITE(MILOTIC, gMonFrontPic_Milotic), - SPECIES_SPRITE(CARVANHA, gMonFrontPic_Carvanha), - SPECIES_SPRITE(SHARPEDO, gMonFrontPic_Sharpedo), - SPECIES_SPRITE(TRAPINCH, gMonFrontPic_Trapinch), - SPECIES_SPRITE(VIBRAVA, gMonFrontPic_Vibrava), - SPECIES_SPRITE(FLYGON, gMonFrontPic_Flygon), - SPECIES_SPRITE(MAKUHITA, gMonFrontPic_Makuhita), - SPECIES_SPRITE(HARIYAMA, gMonFrontPic_Hariyama), - SPECIES_SPRITE(ELECTRIKE, gMonFrontPic_Electrike), - SPECIES_SPRITE(MANECTRIC, gMonFrontPic_Manectric), - SPECIES_SPRITE(NUMEL, gMonFrontPic_Numel), - SPECIES_SPRITE(CAMERUPT, gMonFrontPic_Camerupt), - SPECIES_SPRITE(SPHEAL, gMonFrontPic_Spheal), - SPECIES_SPRITE(SEALEO, gMonFrontPic_Sealeo), - SPECIES_SPRITE(WALREIN, gMonFrontPic_Walrein), - SPECIES_SPRITE(CACNEA, gMonFrontPic_Cacnea), - SPECIES_SPRITE(CACTURNE, gMonFrontPic_Cacturne), - SPECIES_SPRITE(SNORUNT, gMonFrontPic_Snorunt), - SPECIES_SPRITE(GLALIE, gMonFrontPic_Glalie), - SPECIES_SPRITE(LUNATONE, gMonFrontPic_Lunatone), - SPECIES_SPRITE(SOLROCK, gMonFrontPic_Solrock), - SPECIES_SPRITE(AZURILL, gMonFrontPic_Azurill), - SPECIES_SPRITE(SPOINK, gMonFrontPic_Spoink), - SPECIES_SPRITE(GRUMPIG, gMonFrontPic_Grumpig), - SPECIES_SPRITE(PLUSLE, gMonFrontPic_Plusle), - SPECIES_SPRITE(MINUN, gMonFrontPic_Minun), - SPECIES_SPRITE(MAWILE, gMonFrontPic_Mawile), - SPECIES_SPRITE(MEDITITE, gMonFrontPic_Meditite), - SPECIES_SPRITE(MEDICHAM, gMonFrontPic_Medicham), - SPECIES_SPRITE(SWABLU, gMonFrontPic_Swablu), - SPECIES_SPRITE(ALTARIA, gMonFrontPic_Altaria), - SPECIES_SPRITE(WYNAUT, gMonFrontPic_Wynaut), - SPECIES_SPRITE(DUSKULL, gMonFrontPic_Duskull), - SPECIES_SPRITE(DUSCLOPS, gMonFrontPic_Dusclops), - SPECIES_SPRITE(ROSELIA, gMonFrontPic_Roselia), - SPECIES_SPRITE(SLAKOTH, gMonFrontPic_Slakoth), - SPECIES_SPRITE(VIGOROTH, gMonFrontPic_Vigoroth), - SPECIES_SPRITE(SLAKING, gMonFrontPic_Slaking), - SPECIES_SPRITE(GULPIN, gMonFrontPic_Gulpin), - SPECIES_SPRITE(SWALOT, gMonFrontPic_Swalot), - SPECIES_SPRITE(TROPIUS, gMonFrontPic_Tropius), - SPECIES_SPRITE(WHISMUR, gMonFrontPic_Whismur), - SPECIES_SPRITE(LOUDRED, gMonFrontPic_Loudred), - SPECIES_SPRITE(EXPLOUD, gMonFrontPic_Exploud), - SPECIES_SPRITE(CLAMPERL, gMonFrontPic_Clamperl), - SPECIES_SPRITE(HUNTAIL, gMonFrontPic_Huntail), - SPECIES_SPRITE(GOREBYSS, gMonFrontPic_Gorebyss), - SPECIES_SPRITE(ABSOL, gMonFrontPic_Absol), - SPECIES_SPRITE(SHUPPET, gMonFrontPic_Shuppet), - SPECIES_SPRITE(BANETTE, gMonFrontPic_Banette), - SPECIES_SPRITE(SEVIPER, gMonFrontPic_Seviper), - SPECIES_SPRITE(ZANGOOSE, gMonFrontPic_Zangoose), - SPECIES_SPRITE(RELICANTH, gMonFrontPic_Relicanth), - SPECIES_SPRITE(ARON, gMonFrontPic_Aron), - SPECIES_SPRITE(LAIRON, gMonFrontPic_Lairon), - SPECIES_SPRITE(AGGRON, gMonFrontPic_Aggron), - SPECIES_SPRITE(CASTFORM_NORMAL, gMonFrontPic_CastformNormal), - SPECIES_SPRITE(VOLBEAT, gMonFrontPic_Volbeat), - SPECIES_SPRITE(ILLUMISE, gMonFrontPic_Illumise), - SPECIES_SPRITE(LILEEP, gMonFrontPic_Lileep), - SPECIES_SPRITE(CRADILY, gMonFrontPic_Cradily), - SPECIES_SPRITE(ANORITH, gMonFrontPic_Anorith), - SPECIES_SPRITE(ARMALDO, gMonFrontPic_Armaldo), - SPECIES_SPRITE(RALTS, gMonFrontPic_Ralts), - SPECIES_SPRITE(KIRLIA, gMonFrontPic_Kirlia), - SPECIES_SPRITE(GARDEVOIR, gMonFrontPic_Gardevoir), - SPECIES_SPRITE(BAGON, gMonFrontPic_Bagon), - SPECIES_SPRITE(SHELGON, gMonFrontPic_Shelgon), - SPECIES_SPRITE(SALAMENCE, gMonFrontPic_Salamence), - SPECIES_SPRITE(BELDUM, gMonFrontPic_Beldum), - SPECIES_SPRITE(METANG, gMonFrontPic_Metang), - SPECIES_SPRITE(METAGROSS, gMonFrontPic_Metagross), - SPECIES_SPRITE(REGIROCK, gMonFrontPic_Regirock), - SPECIES_SPRITE(REGICE, gMonFrontPic_Regice), - SPECIES_SPRITE(REGISTEEL, gMonFrontPic_Registeel), - SPECIES_SPRITE(KYOGRE, gMonFrontPic_Kyogre), - SPECIES_SPRITE(GROUDON, gMonFrontPic_Groudon), - SPECIES_SPRITE(RAYQUAZA, gMonFrontPic_Rayquaza), - SPECIES_SPRITE(LATIAS, gMonFrontPic_Latias), - SPECIES_SPRITE(LATIOS, gMonFrontPic_Latios), - SPECIES_SPRITE(JIRACHI, gMonFrontPic_Jirachi), - SPECIES_SPRITE(DEOXYS_NORMAL, gMonFrontPic_DeoxysNormal), - SPECIES_SPRITE(CHIMECHO, gMonFrontPic_Chimecho), -#if P_GEN_4_POKEMON == TRUE - SPECIES_SPRITE(TURTWIG, gMonFrontPic_Turtwig), - SPECIES_SPRITE(GROTLE, gMonFrontPic_Grotle), - SPECIES_SPRITE(TORTERRA, gMonFrontPic_Torterra), - SPECIES_SPRITE(CHIMCHAR, gMonFrontPic_Chimchar), - SPECIES_SPRITE(MONFERNO, gMonFrontPic_Monferno), - SPECIES_SPRITE(INFERNAPE, gMonFrontPic_Infernape), - SPECIES_SPRITE(PIPLUP, gMonFrontPic_Piplup), - SPECIES_SPRITE(PRINPLUP, gMonFrontPic_Prinplup), - SPECIES_SPRITE(EMPOLEON, gMonFrontPic_Empoleon), - SPECIES_SPRITE(STARLY, gMonFrontPic_Starly), - SPECIES_SPRITE(STARAVIA, gMonFrontPic_Staravia), - SPECIES_SPRITE(STARAPTOR, gMonFrontPic_Staraptor), - SPECIES_SPRITE(BIDOOF, gMonFrontPic_Bidoof), - SPECIES_SPRITE(BIBAREL, gMonFrontPic_Bibarel), - SPECIES_SPRITE(KRICKETOT, gMonFrontPic_Kricketot), - SPECIES_SPRITE(KRICKETUNE, gMonFrontPic_Kricketune), - SPECIES_SPRITE(SHINX, gMonFrontPic_Shinx), - SPECIES_SPRITE(LUXIO, gMonFrontPic_Luxio), - SPECIES_SPRITE(LUXRAY, gMonFrontPic_Luxray), - SPECIES_SPRITE(BUDEW, gMonFrontPic_Budew), - SPECIES_SPRITE(ROSERADE, gMonFrontPic_Roserade), - SPECIES_SPRITE(CRANIDOS, gMonFrontPic_Cranidos), - SPECIES_SPRITE(RAMPARDOS, gMonFrontPic_Rampardos), - SPECIES_SPRITE(SHIELDON, gMonFrontPic_Shieldon), - SPECIES_SPRITE(BASTIODON, gMonFrontPic_Bastiodon), - SPECIES_SPRITE(BURMY_PLANT_CLOAK, gMonFrontPic_BurmyPlantCloak), - SPECIES_SPRITE(WORMADAM_PLANT_CLOAK, gMonFrontPic_WormadamPlantCloak), - SPECIES_SPRITE(MOTHIM, gMonFrontPic_Mothim), - SPECIES_SPRITE(COMBEE, gMonFrontPic_Combee), - SPECIES_SPRITE(VESPIQUEN, gMonFrontPic_Vespiquen), - SPECIES_SPRITE(PACHIRISU, gMonFrontPic_Pachirisu), - SPECIES_SPRITE(BUIZEL, gMonFrontPic_Buizel), - SPECIES_SPRITE(FLOATZEL, gMonFrontPic_Floatzel), - SPECIES_SPRITE(CHERUBI, gMonFrontPic_Cherubi), - SPECIES_SPRITE(CHERRIM_OVERCAST, gMonFrontPic_CherrimOvercast), - SPECIES_SPRITE(SHELLOS_WEST_SEA, gMonFrontPic_ShellosWestSea), - SPECIES_SPRITE(GASTRODON_WEST_SEA, gMonFrontPic_GastrodonWestSea), - SPECIES_SPRITE(AMBIPOM, gMonFrontPic_Ambipom), - SPECIES_SPRITE(DRIFLOON, gMonFrontPic_Drifloon), - SPECIES_SPRITE(DRIFBLIM, gMonFrontPic_Drifblim), - SPECIES_SPRITE(BUNEARY, gMonFrontPic_Buneary), - SPECIES_SPRITE(LOPUNNY, gMonFrontPic_Lopunny), - SPECIES_SPRITE(MISMAGIUS, gMonFrontPic_Mismagius), - SPECIES_SPRITE(HONCHKROW, gMonFrontPic_Honchkrow), - SPECIES_SPRITE(GLAMEOW, gMonFrontPic_Glameow), - SPECIES_SPRITE(PURUGLY, gMonFrontPic_Purugly), - SPECIES_SPRITE(CHINGLING, gMonFrontPic_Chingling), - SPECIES_SPRITE(STUNKY, gMonFrontPic_Stunky), - SPECIES_SPRITE(SKUNTANK, gMonFrontPic_Skuntank), - SPECIES_SPRITE(BRONZOR, gMonFrontPic_Bronzor), - SPECIES_SPRITE(BRONZONG, gMonFrontPic_Bronzong), - SPECIES_SPRITE(BONSLY, gMonFrontPic_Bonsly), - SPECIES_SPRITE(MIME_JR, gMonFrontPic_MimeJr), - SPECIES_SPRITE(HAPPINY, gMonFrontPic_Happiny), - SPECIES_SPRITE(CHATOT, gMonFrontPic_Chatot), - SPECIES_SPRITE(SPIRITOMB, gMonFrontPic_Spiritomb), - SPECIES_SPRITE(GIBLE, gMonFrontPic_Gible), - SPECIES_SPRITE(GABITE, gMonFrontPic_Gabite), - SPECIES_SPRITE(GARCHOMP, gMonFrontPic_Garchomp), - SPECIES_SPRITE(MUNCHLAX, gMonFrontPic_Munchlax), - SPECIES_SPRITE(RIOLU, gMonFrontPic_Riolu), - SPECIES_SPRITE(LUCARIO, gMonFrontPic_Lucario), - SPECIES_SPRITE(HIPPOPOTAS, gMonFrontPic_Hippopotas), - SPECIES_SPRITE(HIPPOWDON, gMonFrontPic_Hippowdon), - SPECIES_SPRITE(SKORUPI, gMonFrontPic_Skorupi), - SPECIES_SPRITE(DRAPION, gMonFrontPic_Drapion), - SPECIES_SPRITE(CROAGUNK, gMonFrontPic_Croagunk), - SPECIES_SPRITE(TOXICROAK, gMonFrontPic_Toxicroak), - SPECIES_SPRITE(CARNIVINE, gMonFrontPic_Carnivine), - SPECIES_SPRITE(FINNEON, gMonFrontPic_Finneon), - SPECIES_SPRITE(LUMINEON, gMonFrontPic_Lumineon), - SPECIES_SPRITE(MANTYKE, gMonFrontPic_Mantyke), - SPECIES_SPRITE(SNOVER, gMonFrontPic_Snover), - SPECIES_SPRITE(ABOMASNOW, gMonFrontPic_Abomasnow), - SPECIES_SPRITE(WEAVILE, gMonFrontPic_Weavile), - SPECIES_SPRITE(MAGNEZONE, gMonFrontPic_Magnezone), - SPECIES_SPRITE(LICKILICKY, gMonFrontPic_Lickilicky), - SPECIES_SPRITE(RHYPERIOR, gMonFrontPic_Rhyperior), - SPECIES_SPRITE(TANGROWTH, gMonFrontPic_Tangrowth), - SPECIES_SPRITE(ELECTIVIRE, gMonFrontPic_Electivire), - SPECIES_SPRITE(MAGMORTAR, gMonFrontPic_Magmortar), - SPECIES_SPRITE(TOGEKISS, gMonFrontPic_Togekiss), - SPECIES_SPRITE(YANMEGA, gMonFrontPic_Yanmega), - SPECIES_SPRITE(LEAFEON, gMonFrontPic_Leafeon), - SPECIES_SPRITE(GLACEON, gMonFrontPic_Glaceon), - SPECIES_SPRITE(GLISCOR, gMonFrontPic_Gliscor), - SPECIES_SPRITE(MAMOSWINE, gMonFrontPic_Mamoswine), - SPECIES_SPRITE(PORYGON_Z, gMonFrontPic_PorygonZ), - SPECIES_SPRITE(GALLADE, gMonFrontPic_Gallade), - SPECIES_SPRITE(PROBOPASS, gMonFrontPic_Probopass), - SPECIES_SPRITE(DUSKNOIR, gMonFrontPic_Dusknoir), - SPECIES_SPRITE(FROSLASS, gMonFrontPic_Froslass), - SPECIES_SPRITE(ROTOM, gMonFrontPic_Rotom), - SPECIES_SPRITE(UXIE, gMonFrontPic_Uxie), - SPECIES_SPRITE(MESPRIT, gMonFrontPic_Mesprit), - SPECIES_SPRITE(AZELF, gMonFrontPic_Azelf), - SPECIES_SPRITE(DIALGA, gMonFrontPic_Dialga), - SPECIES_SPRITE(PALKIA, gMonFrontPic_Palkia), - SPECIES_SPRITE(HEATRAN, gMonFrontPic_Heatran), - SPECIES_SPRITE(REGIGIGAS, gMonFrontPic_Regigigas), - SPECIES_SPRITE(GIRATINA_ALTERED, gMonFrontPic_GiratinaAltered), - SPECIES_SPRITE(CRESSELIA, gMonFrontPic_Cresselia), - SPECIES_SPRITE(PHIONE, gMonFrontPic_Phione), - SPECIES_SPRITE(MANAPHY, gMonFrontPic_Manaphy), - SPECIES_SPRITE(DARKRAI, gMonFrontPic_Darkrai), - SPECIES_SPRITE(SHAYMIN_LAND, gMonFrontPic_ShayminLand), - SPECIES_SPRITE(ARCEUS, gMonFrontPic_Arceus), -#endif -#if P_GEN_5_POKEMON == TRUE - SPECIES_SPRITE(VICTINI, gMonFrontPic_Victini), - SPECIES_SPRITE(SNIVY, gMonFrontPic_Snivy), - SPECIES_SPRITE(SERVINE, gMonFrontPic_Servine), - SPECIES_SPRITE(SERPERIOR, gMonFrontPic_Serperior), - SPECIES_SPRITE(TEPIG, gMonFrontPic_Tepig), - SPECIES_SPRITE(PIGNITE, gMonFrontPic_Pignite), - SPECIES_SPRITE(EMBOAR, gMonFrontPic_Emboar), - SPECIES_SPRITE(OSHAWOTT, gMonFrontPic_Oshawott), - SPECIES_SPRITE(DEWOTT, gMonFrontPic_Dewott), - SPECIES_SPRITE(SAMUROTT, gMonFrontPic_Samurott), - SPECIES_SPRITE(PATRAT, gMonFrontPic_Patrat), - SPECIES_SPRITE(WATCHOG, gMonFrontPic_Watchog), - SPECIES_SPRITE(LILLIPUP, gMonFrontPic_Lillipup), - SPECIES_SPRITE(HERDIER, gMonFrontPic_Herdier), - SPECIES_SPRITE(STOUTLAND, gMonFrontPic_Stoutland), - SPECIES_SPRITE(PURRLOIN, gMonFrontPic_Purrloin), - SPECIES_SPRITE(LIEPARD, gMonFrontPic_Liepard), - SPECIES_SPRITE(PANSAGE, gMonFrontPic_Pansage), - SPECIES_SPRITE(SIMISAGE, gMonFrontPic_Simisage), - SPECIES_SPRITE(PANSEAR, gMonFrontPic_Pansear), - SPECIES_SPRITE(SIMISEAR, gMonFrontPic_Simisear), - SPECIES_SPRITE(PANPOUR, gMonFrontPic_Panpour), - SPECIES_SPRITE(SIMIPOUR, gMonFrontPic_Simipour), - SPECIES_SPRITE(MUNNA, gMonFrontPic_Munna), - SPECIES_SPRITE(MUSHARNA, gMonFrontPic_Musharna), - SPECIES_SPRITE(PIDOVE, gMonFrontPic_Pidove), - SPECIES_SPRITE(TRANQUILL, gMonFrontPic_Tranquill), - SPECIES_SPRITE(UNFEZANT, gMonFrontPic_Unfezant), - SPECIES_SPRITE(BLITZLE, gMonFrontPic_Blitzle), - SPECIES_SPRITE(ZEBSTRIKA, gMonFrontPic_Zebstrika), - SPECIES_SPRITE(ROGGENROLA, gMonFrontPic_Roggenrola), - SPECIES_SPRITE(BOLDORE, gMonFrontPic_Boldore), - SPECIES_SPRITE(GIGALITH, gMonFrontPic_Gigalith), - SPECIES_SPRITE(WOOBAT, gMonFrontPic_Woobat), - SPECIES_SPRITE(SWOOBAT, gMonFrontPic_Swoobat), - SPECIES_SPRITE(DRILBUR, gMonFrontPic_Drilbur), - SPECIES_SPRITE(EXCADRILL, gMonFrontPic_Excadrill), - SPECIES_SPRITE(AUDINO, gMonFrontPic_Audino), - SPECIES_SPRITE(TIMBURR, gMonFrontPic_Timburr), - SPECIES_SPRITE(GURDURR, gMonFrontPic_Gurdurr), - SPECIES_SPRITE(CONKELDURR, gMonFrontPic_Conkeldurr), - SPECIES_SPRITE(TYMPOLE, gMonFrontPic_Tympole), - SPECIES_SPRITE(PALPITOAD, gMonFrontPic_Palpitoad), - SPECIES_SPRITE(SEISMITOAD, gMonFrontPic_Seismitoad), - SPECIES_SPRITE(THROH, gMonFrontPic_Throh), - SPECIES_SPRITE(SAWK, gMonFrontPic_Sawk), - SPECIES_SPRITE(SEWADDLE, gMonFrontPic_Sewaddle), - SPECIES_SPRITE(SWADLOON, gMonFrontPic_Swadloon), - SPECIES_SPRITE(LEAVANNY, gMonFrontPic_Leavanny), - SPECIES_SPRITE(VENIPEDE, gMonFrontPic_Venipede), - SPECIES_SPRITE(WHIRLIPEDE, gMonFrontPic_Whirlipede), - SPECIES_SPRITE(SCOLIPEDE, gMonFrontPic_Scolipede), - SPECIES_SPRITE(COTTONEE, gMonFrontPic_Cottonee), - SPECIES_SPRITE(WHIMSICOTT, gMonFrontPic_Whimsicott), - SPECIES_SPRITE(PETILIL, gMonFrontPic_Petilil), - SPECIES_SPRITE(LILLIGANT, gMonFrontPic_Lilligant), - SPECIES_SPRITE(BASCULIN, gMonFrontPic_BasculinRedStriped), - SPECIES_SPRITE(SANDILE, gMonFrontPic_Sandile), - SPECIES_SPRITE(KROKOROK, gMonFrontPic_Krokorok), - SPECIES_SPRITE(KROOKODILE, gMonFrontPic_Krookodile), - SPECIES_SPRITE(DARUMAKA, gMonFrontPic_Darumaka), - SPECIES_SPRITE(DARMANITAN_STANDARD_MODE, gMonFrontPic_DarmanitanStandardMode), - SPECIES_SPRITE(MARACTUS, gMonFrontPic_Maractus), - SPECIES_SPRITE(DWEBBLE, gMonFrontPic_Dwebble), - SPECIES_SPRITE(CRUSTLE, gMonFrontPic_Crustle), - SPECIES_SPRITE(SCRAGGY, gMonFrontPic_Scraggy), - SPECIES_SPRITE(SCRAFTY, gMonFrontPic_Scrafty), - SPECIES_SPRITE(SIGILYPH, gMonFrontPic_Sigilyph), - SPECIES_SPRITE(YAMASK, gMonFrontPic_Yamask), - SPECIES_SPRITE(COFAGRIGUS, gMonFrontPic_Cofagrigus), - SPECIES_SPRITE(TIRTOUGA, gMonFrontPic_Tirtouga), - SPECIES_SPRITE(CARRACOSTA, gMonFrontPic_Carracosta), - SPECIES_SPRITE(ARCHEN, gMonFrontPic_Archen), - SPECIES_SPRITE(ARCHEOPS, gMonFrontPic_Archeops), - SPECIES_SPRITE(TRUBBISH, gMonFrontPic_Trubbish), - SPECIES_SPRITE(GARBODOR, gMonFrontPic_Garbodor), - SPECIES_SPRITE(ZORUA, gMonFrontPic_Zorua), - SPECIES_SPRITE(ZOROARK, gMonFrontPic_Zoroark), - SPECIES_SPRITE(MINCCINO, gMonFrontPic_Minccino), - SPECIES_SPRITE(CINCCINO, gMonFrontPic_Cinccino), - SPECIES_SPRITE(GOTHITA, gMonFrontPic_Gothita), - SPECIES_SPRITE(GOTHORITA, gMonFrontPic_Gothorita), - SPECIES_SPRITE(GOTHITELLE, gMonFrontPic_Gothitelle), - SPECIES_SPRITE(SOLOSIS, gMonFrontPic_Solosis), - SPECIES_SPRITE(DUOSION, gMonFrontPic_Duosion), - SPECIES_SPRITE(REUNICLUS, gMonFrontPic_Reuniclus), - SPECIES_SPRITE(DUCKLETT, gMonFrontPic_Ducklett), - SPECIES_SPRITE(SWANNA, gMonFrontPic_Swanna), - SPECIES_SPRITE(VANILLITE, gMonFrontPic_Vanillite), - SPECIES_SPRITE(VANILLISH, gMonFrontPic_Vanillish), - SPECIES_SPRITE(VANILLUXE, gMonFrontPic_Vanilluxe), - SPECIES_SPRITE(DEERLING_SPRING, gMonFrontPic_Deerling), - SPECIES_SPRITE(SAWSBUCK_SPRING, gMonFrontPic_SawsbuckSpring), - SPECIES_SPRITE(EMOLGA, gMonFrontPic_Emolga), - SPECIES_SPRITE(KARRABLAST, gMonFrontPic_Karrablast), - SPECIES_SPRITE(ESCAVALIER, gMonFrontPic_Escavalier), - SPECIES_SPRITE(FOONGUS, gMonFrontPic_Foongus), - SPECIES_SPRITE(AMOONGUSS, gMonFrontPic_Amoonguss), - SPECIES_SPRITE(FRILLISH, gMonFrontPic_Frillish), - SPECIES_SPRITE(JELLICENT, gMonFrontPic_Jellicent), - SPECIES_SPRITE(ALOMOMOLA, gMonFrontPic_Alomomola), - SPECIES_SPRITE(JOLTIK, gMonFrontPic_Joltik), - SPECIES_SPRITE(GALVANTULA, gMonFrontPic_Galvantula), - SPECIES_SPRITE(FERROSEED, gMonFrontPic_Ferroseed), - SPECIES_SPRITE(FERROTHORN, gMonFrontPic_Ferrothorn), - SPECIES_SPRITE(KLINK, gMonFrontPic_Klink), - SPECIES_SPRITE(KLANG, gMonFrontPic_Klang), - SPECIES_SPRITE(KLINKLANG, gMonFrontPic_Klinklang), - SPECIES_SPRITE(TYNAMO, gMonFrontPic_Tynamo), - SPECIES_SPRITE(EELEKTRIK, gMonFrontPic_Eelektrik), - SPECIES_SPRITE(EELEKTROSS, gMonFrontPic_Eelektross), - SPECIES_SPRITE(ELGYEM, gMonFrontPic_Elgyem), - SPECIES_SPRITE(BEHEEYEM, gMonFrontPic_Beheeyem), - SPECIES_SPRITE(LITWICK, gMonFrontPic_Litwick), - SPECIES_SPRITE(LAMPENT, gMonFrontPic_Lampent), - SPECIES_SPRITE(CHANDELURE, gMonFrontPic_Chandelure), - SPECIES_SPRITE(AXEW, gMonFrontPic_Axew), - SPECIES_SPRITE(FRAXURE, gMonFrontPic_Fraxure), - SPECIES_SPRITE(HAXORUS, gMonFrontPic_Haxorus), - SPECIES_SPRITE(CUBCHOO, gMonFrontPic_Cubchoo), - SPECIES_SPRITE(BEARTIC, gMonFrontPic_Beartic), - SPECIES_SPRITE(CRYOGONAL, gMonFrontPic_Cryogonal), - SPECIES_SPRITE(SHELMET, gMonFrontPic_Shelmet), - SPECIES_SPRITE(ACCELGOR, gMonFrontPic_Accelgor), - SPECIES_SPRITE(STUNFISK, gMonFrontPic_Stunfisk), - SPECIES_SPRITE(MIENFOO, gMonFrontPic_Mienfoo), - SPECIES_SPRITE(MIENSHAO, gMonFrontPic_Mienshao), - SPECIES_SPRITE(DRUDDIGON, gMonFrontPic_Druddigon), - SPECIES_SPRITE(GOLETT, gMonFrontPic_Golett), - SPECIES_SPRITE(GOLURK, gMonFrontPic_Golurk), - SPECIES_SPRITE(PAWNIARD, gMonFrontPic_Pawniard), - SPECIES_SPRITE(BISHARP, gMonFrontPic_Bisharp), - SPECIES_SPRITE(BOUFFALANT, gMonFrontPic_Bouffalant), - SPECIES_SPRITE(RUFFLET, gMonFrontPic_Rufflet), - SPECIES_SPRITE(BRAVIARY, gMonFrontPic_Braviary), - SPECIES_SPRITE(VULLABY, gMonFrontPic_Vullaby), - SPECIES_SPRITE(MANDIBUZZ, gMonFrontPic_Mandibuzz), - SPECIES_SPRITE(HEATMOR, gMonFrontPic_Heatmor), - SPECIES_SPRITE(DURANT, gMonFrontPic_Durant), - SPECIES_SPRITE(DEINO, gMonFrontPic_Deino), - SPECIES_SPRITE(ZWEILOUS, gMonFrontPic_Zweilous), - SPECIES_SPRITE(HYDREIGON, gMonFrontPic_Hydreigon), - SPECIES_SPRITE(LARVESTA, gMonFrontPic_Larvesta), - SPECIES_SPRITE(VOLCARONA, gMonFrontPic_Volcarona), - SPECIES_SPRITE(COBALION, gMonFrontPic_Cobalion), - SPECIES_SPRITE(TERRAKION, gMonFrontPic_Terrakion), - SPECIES_SPRITE(VIRIZION, gMonFrontPic_Virizion), - SPECIES_SPRITE(TORNADUS_INCARNATE, gMonFrontPic_TornadusIncarnate), - SPECIES_SPRITE(THUNDURUS_INCARNATE, gMonFrontPic_ThundurusIncarnate), - SPECIES_SPRITE(RESHIRAM, gMonFrontPic_Reshiram), - SPECIES_SPRITE(ZEKROM, gMonFrontPic_Zekrom), - SPECIES_SPRITE(LANDORUS_INCARNATE, gMonFrontPic_LandorusIncarnate), - SPECIES_SPRITE(KYUREM, gMonFrontPic_Kyurem), - SPECIES_SPRITE(KELDEO_ORDINARY, gMonFrontPic_KeldeoOrdinary), - SPECIES_SPRITE(MELOETTA, gMonFrontPic_MeloettaAria), - SPECIES_SPRITE(GENESECT, gMonFrontPic_Genesect), -#endif -#if P_GEN_6_POKEMON == TRUE - SPECIES_SPRITE(CHESPIN, gMonFrontPic_Chespin), - SPECIES_SPRITE(QUILLADIN, gMonFrontPic_Quilladin), - SPECIES_SPRITE(CHESNAUGHT, gMonFrontPic_Chesnaught), - SPECIES_SPRITE(FENNEKIN, gMonFrontPic_Fennekin), - SPECIES_SPRITE(BRAIXEN, gMonFrontPic_Braixen), - SPECIES_SPRITE(DELPHOX, gMonFrontPic_Delphox), - SPECIES_SPRITE(FROAKIE, gMonFrontPic_Froakie), - SPECIES_SPRITE(FROGADIER, gMonFrontPic_Frogadier), - SPECIES_SPRITE(GRENINJA, gMonFrontPic_Greninja), - SPECIES_SPRITE(BUNNELBY, gMonFrontPic_Bunnelby), - SPECIES_SPRITE(DIGGERSBY, gMonFrontPic_Diggersby), - SPECIES_SPRITE(FLETCHLING, gMonFrontPic_Fletchling), - SPECIES_SPRITE(FLETCHINDER, gMonFrontPic_Fletchinder), - SPECIES_SPRITE(TALONFLAME, gMonFrontPic_Talonflame), - SPECIES_SPRITE(SCATTERBUG, gMonFrontPic_Scatterbug), - SPECIES_SPRITE(SPEWPA, gMonFrontPic_Spewpa), - SPECIES_SPRITE(VIVILLON_ICY_SNOW, gMonFrontPic_VivillonIcySnow), - SPECIES_SPRITE(LITLEO, gMonFrontPic_Litleo), - SPECIES_SPRITE(PYROAR, gMonFrontPic_Pyroar), - SPECIES_SPRITE(FLABEBE_RED_FLOWER, gMonFrontPic_Flabebe), - SPECIES_SPRITE(FLOETTE_RED_FLOWER, gMonFrontPic_Floette), - SPECIES_SPRITE(FLORGES_RED_FLOWER, gMonFrontPic_Florges), - SPECIES_SPRITE(SKIDDO, gMonFrontPic_Skiddo), - SPECIES_SPRITE(GOGOAT, gMonFrontPic_Gogoat), - SPECIES_SPRITE(PANCHAM, gMonFrontPic_Pancham), - SPECIES_SPRITE(PANGORO, gMonFrontPic_Pangoro), - SPECIES_SPRITE(FURFROU_NATURAL, gMonFrontPic_FurfrouNatural), - SPECIES_SPRITE(ESPURR, gMonFrontPic_Espurr), - SPECIES_SPRITE(MEOWSTIC_MALE, gMonFrontPic_MeowsticMale), - SPECIES_SPRITE(HONEDGE, gMonFrontPic_Honedge), - SPECIES_SPRITE(DOUBLADE, gMonFrontPic_Doublade), - SPECIES_SPRITE(AEGISLASH_SHIELD, gMonFrontPic_AegislashShield), - SPECIES_SPRITE(SPRITZEE, gMonFrontPic_Spritzee), - SPECIES_SPRITE(AROMATISSE, gMonFrontPic_Aromatisse), - SPECIES_SPRITE(SWIRLIX, gMonFrontPic_Swirlix), - SPECIES_SPRITE(SLURPUFF, gMonFrontPic_Slurpuff), - SPECIES_SPRITE(INKAY, gMonFrontPic_Inkay), - SPECIES_SPRITE(MALAMAR, gMonFrontPic_Malamar), - SPECIES_SPRITE(BINACLE, gMonFrontPic_Binacle), - SPECIES_SPRITE(BARBARACLE, gMonFrontPic_Barbaracle), - SPECIES_SPRITE(SKRELP, gMonFrontPic_Skrelp), - SPECIES_SPRITE(DRAGALGE, gMonFrontPic_Dragalge), - SPECIES_SPRITE(CLAUNCHER, gMonFrontPic_Clauncher), - SPECIES_SPRITE(CLAWITZER, gMonFrontPic_Clawitzer), - SPECIES_SPRITE(HELIOPTILE, gMonFrontPic_Helioptile), - SPECIES_SPRITE(HELIOLISK, gMonFrontPic_Heliolisk), - SPECIES_SPRITE(TYRUNT, gMonFrontPic_Tyrunt), - SPECIES_SPRITE(TYRANTRUM, gMonFrontPic_Tyrantrum), - SPECIES_SPRITE(AMAURA, gMonFrontPic_Amaura), - SPECIES_SPRITE(AURORUS, gMonFrontPic_Aurorus), - SPECIES_SPRITE(SYLVEON, gMonFrontPic_Sylveon), - SPECIES_SPRITE(HAWLUCHA, gMonFrontPic_Hawlucha), - SPECIES_SPRITE(DEDENNE, gMonFrontPic_Dedenne), - SPECIES_SPRITE(CARBINK, gMonFrontPic_Carbink), - SPECIES_SPRITE(GOOMY, gMonFrontPic_Goomy), - SPECIES_SPRITE(SLIGGOO, gMonFrontPic_Sliggoo), - SPECIES_SPRITE(GOODRA, gMonFrontPic_Goodra), - SPECIES_SPRITE(KLEFKI, gMonFrontPic_Klefki), - SPECIES_SPRITE(PHANTUMP, gMonFrontPic_Phantump), - SPECIES_SPRITE(TREVENANT, gMonFrontPic_Trevenant), - SPECIES_SPRITE(PUMPKABOO_AVERAGE, gMonFrontPic_PumpkabooAverage), - SPECIES_SPRITE(GOURGEIST_AVERAGE, gMonFrontPic_GourgeistAverage), - SPECIES_SPRITE(BERGMITE, gMonFrontPic_Bergmite), - SPECIES_SPRITE(AVALUGG, gMonFrontPic_Avalugg), - SPECIES_SPRITE(NOIBAT, gMonFrontPic_Noibat), - SPECIES_SPRITE(NOIVERN, gMonFrontPic_Noivern), - SPECIES_SPRITE(XERNEAS_NEUTRAL, gMonFrontPic_XerneasNeutral), - SPECIES_SPRITE(YVELTAL, gMonFrontPic_Yveltal), - SPECIES_SPRITE(ZYGARDE_50_AURA_BREAK, gMonFrontPic_Zygarde50), - SPECIES_SPRITE(DIANCIE, gMonFrontPic_Diancie), - SPECIES_SPRITE(HOOPA_CONFINED, gMonFrontPic_HoopaConfined), - SPECIES_SPRITE(VOLCANION, gMonFrontPic_Volcanion), -#endif -#if P_GEN_7_POKEMON == TRUE - SPECIES_SPRITE(ROWLET, gMonFrontPic_Rowlet), - SPECIES_SPRITE(DARTRIX, gMonFrontPic_Dartrix), - SPECIES_SPRITE(DECIDUEYE, gMonFrontPic_Decidueye), - SPECIES_SPRITE(LITTEN, gMonFrontPic_Litten), - SPECIES_SPRITE(TORRACAT, gMonFrontPic_Torracat), - SPECIES_SPRITE(INCINEROAR, gMonFrontPic_Incineroar), - SPECIES_SPRITE(POPPLIO, gMonFrontPic_Popplio), - SPECIES_SPRITE(BRIONNE, gMonFrontPic_Brionne), - SPECIES_SPRITE(PRIMARINA, gMonFrontPic_Primarina), - SPECIES_SPRITE(PIKIPEK, gMonFrontPic_Pikipek), - SPECIES_SPRITE(TRUMBEAK, gMonFrontPic_Trumbeak), - SPECIES_SPRITE(TOUCANNON, gMonFrontPic_Toucannon), - SPECIES_SPRITE(YUNGOOS, gMonFrontPic_Yungoos), - SPECIES_SPRITE(GUMSHOOS, gMonFrontPic_Gumshoos), - SPECIES_SPRITE(GRUBBIN, gMonFrontPic_Grubbin), - SPECIES_SPRITE(CHARJABUG, gMonFrontPic_Charjabug), - SPECIES_SPRITE(VIKAVOLT, gMonFrontPic_Vikavolt), - SPECIES_SPRITE(CRABRAWLER, gMonFrontPic_Crabrawler), - SPECIES_SPRITE(CRABOMINABLE, gMonFrontPic_Crabominable), - SPECIES_SPRITE(ORICORIO_BAILE, gMonFrontPic_OricorioBaile), - SPECIES_SPRITE(CUTIEFLY, gMonFrontPic_Cutiefly), - SPECIES_SPRITE(RIBOMBEE, gMonFrontPic_Ribombee), - SPECIES_SPRITE(ROCKRUFF, gMonFrontPic_Rockruff), - SPECIES_SPRITE(LYCANROC_MIDDAY, gMonFrontPic_LycanrocMidday), - SPECIES_SPRITE(WISHIWASHI_SOLO, gMonFrontPic_WishiwashiSolo), - SPECIES_SPRITE(MAREANIE, gMonFrontPic_Mareanie), - SPECIES_SPRITE(TOXAPEX, gMonFrontPic_Toxapex), - SPECIES_SPRITE(MUDBRAY, gMonFrontPic_Mudbray), - SPECIES_SPRITE(MUDSDALE, gMonFrontPic_Mudsdale), - SPECIES_SPRITE(DEWPIDER, gMonFrontPic_Dewpider), - SPECIES_SPRITE(ARAQUANID, gMonFrontPic_Araquanid), - SPECIES_SPRITE(FOMANTIS, gMonFrontPic_Fomantis), - SPECIES_SPRITE(LURANTIS, gMonFrontPic_Lurantis), - SPECIES_SPRITE(MORELULL, gMonFrontPic_Morelull), - SPECIES_SPRITE(SHIINOTIC, gMonFrontPic_Shiinotic), - SPECIES_SPRITE(SALANDIT, gMonFrontPic_Salandit), - SPECIES_SPRITE(SALAZZLE, gMonFrontPic_Salazzle), - SPECIES_SPRITE(STUFFUL, gMonFrontPic_Stufful), - SPECIES_SPRITE(BEWEAR, gMonFrontPic_Bewear), - SPECIES_SPRITE(BOUNSWEET, gMonFrontPic_Bounsweet), - SPECIES_SPRITE(STEENEE, gMonFrontPic_Steenee), - SPECIES_SPRITE(TSAREENA, gMonFrontPic_Tsareena), - SPECIES_SPRITE(COMFEY, gMonFrontPic_Comfey), - SPECIES_SPRITE(ORANGURU, gMonFrontPic_Oranguru), - SPECIES_SPRITE(PASSIMIAN, gMonFrontPic_Passimian), - SPECIES_SPRITE(WIMPOD, gMonFrontPic_Wimpod), - SPECIES_SPRITE(GOLISOPOD, gMonFrontPic_Golisopod), - SPECIES_SPRITE(SANDYGAST, gMonFrontPic_Sandygast), - SPECIES_SPRITE(PALOSSAND, gMonFrontPic_Palossand), - SPECIES_SPRITE(PYUKUMUKU, gMonFrontPic_Pyukumuku), - SPECIES_SPRITE(TYPE_NULL, gMonFrontPic_TypeNull), - SPECIES_SPRITE(SILVALLY, gMonFrontPic_Silvally), - SPECIES_SPRITE(MINIOR_METEOR_RED, gMonFrontPic_MiniorMeteor), - SPECIES_SPRITE(KOMALA, gMonFrontPic_Komala), - SPECIES_SPRITE(TURTONATOR, gMonFrontPic_Turtonator), - SPECIES_SPRITE(TOGEDEMARU, gMonFrontPic_Togedemaru), - SPECIES_SPRITE(MIMIKYU_DISGUISED, gMonFrontPic_MimikyuDisguised), - SPECIES_SPRITE(BRUXISH, gMonFrontPic_Bruxish), - SPECIES_SPRITE(DRAMPA, gMonFrontPic_Drampa), - SPECIES_SPRITE(DHELMISE, gMonFrontPic_Dhelmise), - SPECIES_SPRITE(JANGMO_O, gMonFrontPic_JangmoO), - SPECIES_SPRITE(HAKAMO_O, gMonFrontPic_HakamoO), - SPECIES_SPRITE(KOMMO_O, gMonFrontPic_KommoO), - SPECIES_SPRITE(TAPU_KOKO, gMonFrontPic_TapuKoko), - SPECIES_SPRITE(TAPU_LELE, gMonFrontPic_TapuLele), - SPECIES_SPRITE(TAPU_BULU, gMonFrontPic_TapuBulu), - SPECIES_SPRITE(TAPU_FINI, gMonFrontPic_TapuFini), - SPECIES_SPRITE(COSMOG, gMonFrontPic_Cosmog), - SPECIES_SPRITE(COSMOEM, gMonFrontPic_Cosmoem), - SPECIES_SPRITE(SOLGALEO, gMonFrontPic_Solgaleo), - SPECIES_SPRITE(LUNALA, gMonFrontPic_Lunala), - SPECIES_SPRITE(NIHILEGO, gMonFrontPic_Nihilego), - SPECIES_SPRITE(BUZZWOLE, gMonFrontPic_Buzzwole), - SPECIES_SPRITE(PHEROMOSA, gMonFrontPic_Pheromosa), - SPECIES_SPRITE(XURKITREE, gMonFrontPic_Xurkitree), - SPECIES_SPRITE(CELESTEELA, gMonFrontPic_Celesteela), - SPECIES_SPRITE(KARTANA, gMonFrontPic_Kartana), - SPECIES_SPRITE(GUZZLORD, gMonFrontPic_Guzzlord), - SPECIES_SPRITE(NECROZMA, gMonFrontPic_Necrozma), - SPECIES_SPRITE(MAGEARNA, gMonFrontPic_Magearna), - SPECIES_SPRITE(MARSHADOW, gMonFrontPic_Marshadow), - SPECIES_SPRITE(POIPOLE, gMonFrontPic_Poipole), - SPECIES_SPRITE(NAGANADEL, gMonFrontPic_Naganadel), - SPECIES_SPRITE(STAKATAKA, gMonFrontPic_Stakataka), - SPECIES_SPRITE(BLACEPHALON, gMonFrontPic_Blacephalon), - SPECIES_SPRITE(ZERAORA, gMonFrontPic_Zeraora), - SPECIES_SPRITE(MELTAN, gMonFrontPic_Meltan), - SPECIES_SPRITE(MELMETAL, gMonFrontPic_Melmetal), -#endif -#if P_GEN_8_POKEMON == TRUE - SPECIES_SPRITE(GROOKEY, gMonFrontPic_Grookey), - SPECIES_SPRITE(THWACKEY, gMonFrontPic_Thwackey), - SPECIES_SPRITE(RILLABOOM, gMonFrontPic_Rillaboom), - SPECIES_SPRITE(SCORBUNNY, gMonFrontPic_Scorbunny), - SPECIES_SPRITE(RABOOT, gMonFrontPic_Raboot), - SPECIES_SPRITE(CINDERACE, gMonFrontPic_Cinderace), - SPECIES_SPRITE(SOBBLE, gMonFrontPic_Sobble), - SPECIES_SPRITE(DRIZZILE, gMonFrontPic_Drizzile), - SPECIES_SPRITE(INTELEON, gMonFrontPic_Inteleon), - SPECIES_SPRITE(SKWOVET, gMonFrontPic_Skwovet), - SPECIES_SPRITE(GREEDENT, gMonFrontPic_Greedent), - SPECIES_SPRITE(ROOKIDEE, gMonFrontPic_Rookidee), - SPECIES_SPRITE(CORVISQUIRE, gMonFrontPic_Corvisquire), - SPECIES_SPRITE(CORVIKNIGHT, gMonFrontPic_Corviknight), - SPECIES_SPRITE(BLIPBUG, gMonFrontPic_Blipbug), - SPECIES_SPRITE(DOTTLER, gMonFrontPic_Dottler), - SPECIES_SPRITE(ORBEETLE, gMonFrontPic_Orbeetle), - SPECIES_SPRITE(NICKIT, gMonFrontPic_Nickit), - SPECIES_SPRITE(THIEVUL, gMonFrontPic_Thievul), - SPECIES_SPRITE(GOSSIFLEUR, gMonFrontPic_Gossifleur), - SPECIES_SPRITE(ELDEGOSS, gMonFrontPic_Eldegoss), - SPECIES_SPRITE(WOOLOO, gMonFrontPic_Wooloo), - SPECIES_SPRITE(DUBWOOL, gMonFrontPic_Dubwool), - SPECIES_SPRITE(CHEWTLE, gMonFrontPic_Chewtle), - SPECIES_SPRITE(DREDNAW, gMonFrontPic_Drednaw), - SPECIES_SPRITE(YAMPER, gMonFrontPic_Yamper), - SPECIES_SPRITE(BOLTUND, gMonFrontPic_Boltund), - SPECIES_SPRITE(ROLYCOLY, gMonFrontPic_Rolycoly), - SPECIES_SPRITE(CARKOL, gMonFrontPic_Carkol), - SPECIES_SPRITE(COALOSSAL, gMonFrontPic_Coalossal), - SPECIES_SPRITE(APPLIN, gMonFrontPic_Applin), - SPECIES_SPRITE(FLAPPLE, gMonFrontPic_Flapple), - SPECIES_SPRITE(APPLETUN, gMonFrontPic_Appletun), - SPECIES_SPRITE(SILICOBRA, gMonFrontPic_Silicobra), - SPECIES_SPRITE(SANDACONDA, gMonFrontPic_Sandaconda), - SPECIES_SPRITE(CRAMORANT, gMonFrontPic_Cramorant), - SPECIES_SPRITE(ARROKUDA, gMonFrontPic_Arrokuda), - SPECIES_SPRITE(BARRASKEWDA, gMonFrontPic_Barraskewda), - SPECIES_SPRITE(TOXEL, gMonFrontPic_Toxel), - SPECIES_SPRITE(TOXTRICITY_AMPED, gMonFrontPic_ToxtricityAmped), - SPECIES_SPRITE(SIZZLIPEDE, gMonFrontPic_Sizzlipede), - SPECIES_SPRITE(CENTISKORCH, gMonFrontPic_Centiskorch), - SPECIES_SPRITE(CLOBBOPUS, gMonFrontPic_Clobbopus), - SPECIES_SPRITE(GRAPPLOCT, gMonFrontPic_Grapploct), - SPECIES_SPRITE(SINISTEA_PHONY, gMonFrontPic_Sinistea), - SPECIES_SPRITE(POLTEAGEIST_PHONY, gMonFrontPic_Polteageist), - SPECIES_SPRITE(HATENNA, gMonFrontPic_Hatenna), - SPECIES_SPRITE(HATTREM, gMonFrontPic_Hattrem), - SPECIES_SPRITE(HATTERENE, gMonFrontPic_Hatterene), - SPECIES_SPRITE(IMPIDIMP, gMonFrontPic_Impidimp), - SPECIES_SPRITE(MORGREM, gMonFrontPic_Morgrem), - SPECIES_SPRITE(GRIMMSNARL, gMonFrontPic_Grimmsnarl), - SPECIES_SPRITE(OBSTAGOON, gMonFrontPic_Obstagoon), - SPECIES_SPRITE(PERRSERKER, gMonFrontPic_Perrserker), - SPECIES_SPRITE(CURSOLA, gMonFrontPic_Cursola), - SPECIES_SPRITE(SIRFETCHD, gMonFrontPic_Sirfetchd), - SPECIES_SPRITE(MR_RIME, gMonFrontPic_MrRime), - SPECIES_SPRITE(RUNERIGUS, gMonFrontPic_Runerigus), - SPECIES_SPRITE(MILCERY, gMonFrontPic_Milcery), - SPECIES_SPRITE(ALCREMIE, gMonFrontPic_Alcremie), - SPECIES_SPRITE(FALINKS, gMonFrontPic_Falinks), - SPECIES_SPRITE(PINCURCHIN, gMonFrontPic_Pincurchin), - SPECIES_SPRITE(SNOM, gMonFrontPic_Snom), - SPECIES_SPRITE(FROSMOTH, gMonFrontPic_Frosmoth), - SPECIES_SPRITE(STONJOURNER, gMonFrontPic_Stonjourner), - SPECIES_SPRITE(EISCUE_ICE_FACE, gMonFrontPic_EiscueFace), - SPECIES_SPRITE(INDEEDEE_MALE, gMonFrontPic_IndeedeeMale), - SPECIES_SPRITE(MORPEKO_FULL_BELLY, gMonFrontPic_MorpekoFullBelly), - SPECIES_SPRITE(CUFANT, gMonFrontPic_Cufant), - SPECIES_SPRITE(COPPERAJAH, gMonFrontPic_Copperajah), - SPECIES_SPRITE(DRACOZOLT, gMonFrontPic_Dracozolt), - SPECIES_SPRITE(ARCTOZOLT, gMonFrontPic_Arctozolt), - SPECIES_SPRITE(DRACOVISH, gMonFrontPic_Dracovish), - SPECIES_SPRITE(ARCTOVISH, gMonFrontPic_Arctovish), - SPECIES_SPRITE(DURALUDON, gMonFrontPic_Duraludon), - SPECIES_SPRITE(DREEPY, gMonFrontPic_Dreepy), - SPECIES_SPRITE(DRAKLOAK, gMonFrontPic_Drakloak), - SPECIES_SPRITE(DRAGAPULT, gMonFrontPic_Dragapult), - SPECIES_SPRITE(ZACIAN_HERO_OF_MANY_BATTLES, gMonFrontPic_ZacianHeroOfManyBattles), - SPECIES_SPRITE(ZAMAZENTA_HERO_OF_MANY_BATTLES, gMonFrontPic_ZamazentaHeroOfManyBattles), - SPECIES_SPRITE(ETERNATUS, gMonFrontPic_Eternatus), - SPECIES_SPRITE(KUBFU, gMonFrontPic_Kubfu), - SPECIES_SPRITE(URSHIFU_SINGLE_STRIKE_STYLE, gMonFrontPic_UrshifuSingleStrikeStyle), - SPECIES_SPRITE(ZARUDE, gMonFrontPic_Zarude), - SPECIES_SPRITE(REGIELEKI, gMonFrontPic_Regieleki), - SPECIES_SPRITE(REGIDRAGO, gMonFrontPic_Regidrago), - SPECIES_SPRITE(GLASTRIER, gMonFrontPic_Glastrier), - SPECIES_SPRITE(SPECTRIER, gMonFrontPic_Spectrier), - SPECIES_SPRITE(CALYREX, gMonFrontPic_Calyrex), - SPECIES_SPRITE(WYRDEER, gMonFrontPic_Wyrdeer), - SPECIES_SPRITE(KLEAVOR, gMonFrontPic_Kleavor), - SPECIES_SPRITE(URSALUNA, gMonFrontPic_Ursaluna), - SPECIES_SPRITE(BASCULEGION_MALE, gMonFrontPic_BasculegionMale), - SPECIES_SPRITE(SNEASLER, gMonFrontPic_Sneasler), - SPECIES_SPRITE(OVERQWIL, gMonFrontPic_Overqwil), - SPECIES_SPRITE(ENAMORUS_INCARNATE, gMonFrontPic_EnamorusIncarnate), -#endif - SPECIES_SPRITE(VENUSAUR_MEGA, gMonFrontPic_VenusaurMega), - SPECIES_SPRITE(CHARIZARD_MEGA_X, gMonFrontPic_CharizardMegaX), - SPECIES_SPRITE(CHARIZARD_MEGA_Y, gMonFrontPic_CharizardMegaY), - SPECIES_SPRITE(BLASTOISE_MEGA, gMonFrontPic_BlastoiseMega), - SPECIES_SPRITE(BEEDRILL_MEGA, gMonFrontPic_BeedrillMega), - SPECIES_SPRITE(PIDGEOT_MEGA, gMonFrontPic_PidgeotMega), - SPECIES_SPRITE(ALAKAZAM_MEGA, gMonFrontPic_AlakazamMega), - SPECIES_SPRITE(SLOWBRO_MEGA, gMonFrontPic_SlowbroMega), - SPECIES_SPRITE(GENGAR_MEGA, gMonFrontPic_GengarMega), - SPECIES_SPRITE(KANGASKHAN_MEGA, gMonFrontPic_KangaskhanMega), - SPECIES_SPRITE(PINSIR_MEGA, gMonFrontPic_PinsirMega), - SPECIES_SPRITE(GYARADOS_MEGA, gMonFrontPic_GyaradosMega), - SPECIES_SPRITE(AERODACTYL_MEGA, gMonFrontPic_AerodactylMega), - SPECIES_SPRITE(MEWTWO_MEGA_X, gMonFrontPic_MewtwoMegaX), - SPECIES_SPRITE(MEWTWO_MEGA_Y, gMonFrontPic_MewtwoMegaY), - SPECIES_SPRITE(AMPHAROS_MEGA, gMonFrontPic_AmpharosMega), - SPECIES_SPRITE(STEELIX_MEGA, gMonFrontPic_SteelixMega), - SPECIES_SPRITE(SCIZOR_MEGA, gMonFrontPic_ScizorMega), - SPECIES_SPRITE(HERACROSS_MEGA, gMonFrontPic_HeracrossMega), - SPECIES_SPRITE(HOUNDOOM_MEGA, gMonFrontPic_HoundoomMega), - SPECIES_SPRITE(TYRANITAR_MEGA, gMonFrontPic_TyranitarMega), - SPECIES_SPRITE(SCEPTILE_MEGA, gMonFrontPic_SceptileMega), - SPECIES_SPRITE(BLAZIKEN_MEGA, gMonFrontPic_BlazikenMega), - SPECIES_SPRITE(SWAMPERT_MEGA, gMonFrontPic_SwampertMega), - SPECIES_SPRITE(GARDEVOIR_MEGA, gMonFrontPic_GardevoirMega), - SPECIES_SPRITE(SABLEYE_MEGA, gMonFrontPic_SableyeMega), - SPECIES_SPRITE(MAWILE_MEGA, gMonFrontPic_MawileMega), - SPECIES_SPRITE(AGGRON_MEGA, gMonFrontPic_AggronMega), - SPECIES_SPRITE(MEDICHAM_MEGA, gMonFrontPic_MedichamMega), - SPECIES_SPRITE(MANECTRIC_MEGA, gMonFrontPic_ManectricMega), - SPECIES_SPRITE(SHARPEDO_MEGA, gMonFrontPic_SharpedoMega), - SPECIES_SPRITE(CAMERUPT_MEGA, gMonFrontPic_CameruptMega), - SPECIES_SPRITE(ALTARIA_MEGA, gMonFrontPic_AltariaMega), - SPECIES_SPRITE(BANETTE_MEGA, gMonFrontPic_BanetteMega), - SPECIES_SPRITE(ABSOL_MEGA, gMonFrontPic_AbsolMega), - SPECIES_SPRITE(GLALIE_MEGA, gMonFrontPic_GlalieMega), - SPECIES_SPRITE(SALAMENCE_MEGA, gMonFrontPic_SalamenceMega), - SPECIES_SPRITE(METAGROSS_MEGA, gMonFrontPic_MetagrossMega), - SPECIES_SPRITE(LATIAS_MEGA, gMonFrontPic_LatiasMega), - SPECIES_SPRITE(LATIOS_MEGA, gMonFrontPic_LatiosMega), -#if P_GEN_4_POKEMON == TRUE - SPECIES_SPRITE(LOPUNNY_MEGA, gMonFrontPic_LopunnyMega), - SPECIES_SPRITE(GARCHOMP_MEGA, gMonFrontPic_GarchompMega), - SPECIES_SPRITE(LUCARIO_MEGA, gMonFrontPic_LucarioMega), - SPECIES_SPRITE(ABOMASNOW_MEGA, gMonFrontPic_AbomasnowMega), - SPECIES_SPRITE(GALLADE_MEGA, gMonFrontPic_GalladeMega), -#endif -#if P_GEN_5_POKEMON == TRUE - SPECIES_SPRITE(AUDINO_MEGA, gMonFrontPic_AudinoMega), -#endif -#if P_GEN_6_POKEMON == TRUE - SPECIES_SPRITE(DIANCIE_MEGA, gMonFrontPic_DiancieMega), -#endif - - SPECIES_SPRITE(RAYQUAZA_MEGA, gMonFrontPic_RayquazaMega), - SPECIES_SPRITE(KYOGRE_PRIMAL, gMonFrontPic_KyogrePrimal), - SPECIES_SPRITE(GROUDON_PRIMAL, gMonFrontPic_GroudonPrimal), - - SPECIES_SPRITE(RATTATA_ALOLAN, gMonFrontPic_RattataAlolan), - SPECIES_SPRITE(RATICATE_ALOLAN, gMonFrontPic_RaticateAlolan), - SPECIES_SPRITE(RAICHU_ALOLAN, gMonFrontPic_RaichuAlolan), - SPECIES_SPRITE(SANDSHREW_ALOLAN, gMonFrontPic_SandshrewAlolan), - SPECIES_SPRITE(SANDSLASH_ALOLAN, gMonFrontPic_SandslashAlolan), - SPECIES_SPRITE(VULPIX_ALOLAN, gMonFrontPic_VulpixAlolan), - SPECIES_SPRITE(NINETALES_ALOLAN, gMonFrontPic_NinetalesAlolan), - SPECIES_SPRITE(DIGLETT_ALOLAN, gMonFrontPic_DiglettAlolan), - SPECIES_SPRITE(DUGTRIO_ALOLAN, gMonFrontPic_DugtrioAlolan), - SPECIES_SPRITE(MEOWTH_ALOLAN, gMonFrontPic_MeowthAlolan), - SPECIES_SPRITE(PERSIAN_ALOLAN, gMonFrontPic_PersianAlolan), - SPECIES_SPRITE(GEODUDE_ALOLAN, gMonFrontPic_GeodudeAlolan), - SPECIES_SPRITE(GRAVELER_ALOLAN, gMonFrontPic_GravelerAlolan), - SPECIES_SPRITE(GOLEM_ALOLAN, gMonFrontPic_GolemAlolan), - SPECIES_SPRITE(GRIMER_ALOLAN, gMonFrontPic_GrimerAlolan), - SPECIES_SPRITE(MUK_ALOLAN, gMonFrontPic_MukAlolan), - SPECIES_SPRITE(EXEGGUTOR_ALOLAN, gMonFrontPic_ExeggutorAlolan), - SPECIES_SPRITE(MAROWAK_ALOLAN, gMonFrontPic_MarowakAlolan), - - SPECIES_SPRITE(MEOWTH_GALARIAN, gMonFrontPic_MeowthGalarian), - SPECIES_SPRITE(PONYTA_GALARIAN, gMonFrontPic_PonytaGalarian), - SPECIES_SPRITE(RAPIDASH_GALARIAN, gMonFrontPic_RapidashGalarian), - SPECIES_SPRITE(SLOWPOKE_GALARIAN, gMonFrontPic_SlowpokeGalarian), - SPECIES_SPRITE(SLOWBRO_GALARIAN, gMonFrontPic_SlowbroGalarian), - SPECIES_SPRITE(FARFETCHD_GALARIAN, gMonFrontPic_FarfetchdGalarian), - SPECIES_SPRITE(WEEZING_GALARIAN, gMonFrontPic_WeezingGalarian), - SPECIES_SPRITE(MR_MIME_GALARIAN, gMonFrontPic_MrMimeGalarian), - SPECIES_SPRITE(ARTICUNO_GALARIAN, gMonFrontPic_ArticunoGalarian), - SPECIES_SPRITE(ZAPDOS_GALARIAN, gMonFrontPic_ZapdosGalarian), - SPECIES_SPRITE(MOLTRES_GALARIAN, gMonFrontPic_MoltresGalarian), - SPECIES_SPRITE(SLOWKING_GALARIAN, gMonFrontPic_SlowkingGalarian), - SPECIES_SPRITE(CORSOLA_GALARIAN, gMonFrontPic_CorsolaGalarian), - SPECIES_SPRITE(ZIGZAGOON_GALARIAN, gMonFrontPic_ZigzagoonGalarian), - SPECIES_SPRITE(LINOONE_GALARIAN, gMonFrontPic_LinooneGalarian), -#if P_GEN_5_POKEMON == TRUE - SPECIES_SPRITE(DARUMAKA_GALARIAN, gMonFrontPic_DarumakaGalarian), - SPECIES_SPRITE(DARMANITAN_GALARIAN_STANDARD_MODE, gMonFrontPic_DarmanitanGalarianStandardMode), - SPECIES_SPRITE(YAMASK_GALARIAN, gMonFrontPic_YamaskGalarian), - SPECIES_SPRITE(STUNFISK_GALARIAN, gMonFrontPic_StunfiskGalarian), -#endif - - SPECIES_SPRITE(GROWLITHE_HISUIAN, gMonFrontPic_GrowlitheHisuian), - SPECIES_SPRITE(ARCANINE_HISUIAN, gMonFrontPic_ArcanineHisuian), - SPECIES_SPRITE(VOLTORB_HISUIAN, gMonFrontPic_VoltorbHisuian), - SPECIES_SPRITE(ELECTRODE_HISUIAN, gMonFrontPic_ElectrodeHisuian), - SPECIES_SPRITE(TYPHLOSION_HISUIAN, gMonFrontPic_TyphlosionHisuian), - SPECIES_SPRITE(QWILFISH_HISUIAN, gMonFrontPic_QwilfishHisuian), - SPECIES_SPRITE(SNEASEL_HISUIAN, gMonFrontPic_SneaselHisuian), -#if P_GEN_5_POKEMON == TRUE - SPECIES_SPRITE(SAMUROTT_HISUIAN, gMonFrontPic_SamurottHisuian), - SPECIES_SPRITE(LILLIGANT_HISUIAN, gMonFrontPic_LilligantHisuian), - SPECIES_SPRITE(ZORUA_HISUIAN, gMonFrontPic_ZoruaHisuian), - SPECIES_SPRITE(ZOROARK_HISUIAN, gMonFrontPic_ZoroarkHisuian), - SPECIES_SPRITE(BRAVIARY_HISUIAN, gMonFrontPic_BraviaryHisuian), -#endif -#if P_GEN_6_POKEMON == TRUE - SPECIES_SPRITE(SLIGGOO_HISUIAN, gMonFrontPic_SliggooHisuian), - SPECIES_SPRITE(GOODRA_HISUIAN, gMonFrontPic_GoodraHisuian), - SPECIES_SPRITE(AVALUGG_HISUIAN, gMonFrontPic_AvaluggHisuian), -#endif -#if P_GEN_7_POKEMON == TRUE - SPECIES_SPRITE(DECIDUEYE_HISUIAN, gMonFrontPic_DecidueyeHisuian), -#endif - - SPECIES_SPRITE(PIKACHU_COSPLAY, gMonFrontPic_PikachuCosplay), - SPECIES_SPRITE(PIKACHU_ROCK_STAR, gMonFrontPic_PikachuRockStar), - SPECIES_SPRITE(PIKACHU_BELLE, gMonFrontPic_PikachuBelle), - SPECIES_SPRITE(PIKACHU_POP_STAR, gMonFrontPic_PikachuPopStar), - SPECIES_SPRITE(PIKACHU_PH_D, gMonFrontPic_PikachuPhD), - SPECIES_SPRITE(PIKACHU_LIBRE, gMonFrontPic_PikachuLibre), - - SPECIES_SPRITE(PIKACHU_ORIGINAL_CAP, gMonFrontPic_PikachuOriginalCap), - SPECIES_SPRITE(PIKACHU_HOENN_CAP, gMonFrontPic_PikachuHoennCap), - SPECIES_SPRITE(PIKACHU_SINNOH_CAP, gMonFrontPic_PikachuSinnohCap), - SPECIES_SPRITE(PIKACHU_UNOVA_CAP, gMonFrontPic_PikachuUnovaCap), - SPECIES_SPRITE(PIKACHU_KALOS_CAP, gMonFrontPic_PikachuKalosCap), - SPECIES_SPRITE(PIKACHU_ALOLA_CAP, gMonFrontPic_PikachuAlolaCap), - SPECIES_SPRITE(PIKACHU_PARTNER_CAP, gMonFrontPic_PikachuPartnerCap), - SPECIES_SPRITE(PIKACHU_WORLD_CAP, gMonFrontPic_PikachuWorldCap), - - SPECIES_SPRITE(PICHU_SPIKY_EARED, gMonFrontPic_PichuSpikyEared), - - SPECIES_SPRITE(UNOWN_B, gMonFrontPic_UnownB), - SPECIES_SPRITE(UNOWN_C, gMonFrontPic_UnownC), - SPECIES_SPRITE(UNOWN_D, gMonFrontPic_UnownD), - SPECIES_SPRITE(UNOWN_E, gMonFrontPic_UnownE), - SPECIES_SPRITE(UNOWN_F, gMonFrontPic_UnownF), - SPECIES_SPRITE(UNOWN_G, gMonFrontPic_UnownG), - SPECIES_SPRITE(UNOWN_H, gMonFrontPic_UnownH), - SPECIES_SPRITE(UNOWN_I, gMonFrontPic_UnownI), - SPECIES_SPRITE(UNOWN_J, gMonFrontPic_UnownJ), - SPECIES_SPRITE(UNOWN_K, gMonFrontPic_UnownK), - SPECIES_SPRITE(UNOWN_L, gMonFrontPic_UnownL), - SPECIES_SPRITE(UNOWN_M, gMonFrontPic_UnownM), - SPECIES_SPRITE(UNOWN_N, gMonFrontPic_UnownN), - SPECIES_SPRITE(UNOWN_O, gMonFrontPic_UnownO), - SPECIES_SPRITE(UNOWN_P, gMonFrontPic_UnownP), - SPECIES_SPRITE(UNOWN_Q, gMonFrontPic_UnownQ), - SPECIES_SPRITE(UNOWN_R, gMonFrontPic_UnownR), - SPECIES_SPRITE(UNOWN_S, gMonFrontPic_UnownS), - SPECIES_SPRITE(UNOWN_T, gMonFrontPic_UnownT), - SPECIES_SPRITE(UNOWN_U, gMonFrontPic_UnownU), - SPECIES_SPRITE(UNOWN_V, gMonFrontPic_UnownV), - SPECIES_SPRITE(UNOWN_W, gMonFrontPic_UnownW), - SPECIES_SPRITE(UNOWN_X, gMonFrontPic_UnownX), - SPECIES_SPRITE(UNOWN_Y, gMonFrontPic_UnownY), - SPECIES_SPRITE(UNOWN_Z, gMonFrontPic_UnownZ), - SPECIES_SPRITE(UNOWN_EMARK, gMonFrontPic_UnownExclamationMark), - SPECIES_SPRITE(UNOWN_QMARK, gMonFrontPic_UnownQuestionMark), - - SPECIES_SPRITE(CASTFORM_SUNNY, gMonFrontPic_CastformSunny), - SPECIES_SPRITE(CASTFORM_RAINY, gMonFrontPic_CastformRainy), - SPECIES_SPRITE(CASTFORM_SNOWY, gMonFrontPic_CastformSnowy), - - SPECIES_SPRITE(DEOXYS_ATTACK, gMonFrontPic_DeoxysAttack), - SPECIES_SPRITE(DEOXYS_DEFENSE, gMonFrontPic_DeoxysDefense), - SPECIES_SPRITE(DEOXYS_SPEED, gMonFrontPic_DeoxysSpeed), -#if P_GEN_4_POKEMON == TRUE - SPECIES_SPRITE(BURMY_SANDY_CLOAK, gMonFrontPic_BurmySandyCloak), - SPECIES_SPRITE(BURMY_TRASH_CLOAK, gMonFrontPic_BurmyTrashCloak), - - SPECIES_SPRITE(WORMADAM_SANDY_CLOAK, gMonFrontPic_WormadamSandyCloak), - SPECIES_SPRITE(WORMADAM_TRASH_CLOAK, gMonFrontPic_WormadamTrashCloak), - - SPECIES_SPRITE(CHERRIM_SUNSHINE, gMonFrontPic_CherrimSunshine), - - SPECIES_SPRITE(SHELLOS_EAST_SEA, gMonFrontPic_ShellosEastSea), - - SPECIES_SPRITE(GASTRODON_EAST_SEA, gMonFrontPic_GastrodonEastSea), - - SPECIES_SPRITE(ROTOM_HEAT, gMonFrontPic_RotomHeat), - SPECIES_SPRITE(ROTOM_WASH, gMonFrontPic_RotomWash), - SPECIES_SPRITE(ROTOM_FROST, gMonFrontPic_RotomFrost), - SPECIES_SPRITE(ROTOM_FAN, gMonFrontPic_RotomFan), - SPECIES_SPRITE(ROTOM_MOW, gMonFrontPic_RotomMow), - - SPECIES_SPRITE(DIALGA_ORIGIN, gMonFrontPic_DialgaOrigin), - SPECIES_SPRITE(PALKIA_ORIGIN, gMonFrontPic_PalkiaOrigin), - SPECIES_SPRITE(GIRATINA_ORIGIN, gMonFrontPic_GiratinaOrigin), - - SPECIES_SPRITE(SHAYMIN_SKY, gMonFrontPic_ShayminSky), - - SPECIES_SPRITE(ARCEUS_FIGHTING, gMonFrontPic_Arceus), - SPECIES_SPRITE(ARCEUS_FLYING, gMonFrontPic_Arceus), - SPECIES_SPRITE(ARCEUS_POISON, gMonFrontPic_Arceus), - SPECIES_SPRITE(ARCEUS_GROUND, gMonFrontPic_Arceus), - SPECIES_SPRITE(ARCEUS_ROCK, gMonFrontPic_Arceus), - SPECIES_SPRITE(ARCEUS_BUG, gMonFrontPic_Arceus), - SPECIES_SPRITE(ARCEUS_GHOST, gMonFrontPic_Arceus), - SPECIES_SPRITE(ARCEUS_STEEL, gMonFrontPic_Arceus), - SPECIES_SPRITE(ARCEUS_FIRE, gMonFrontPic_Arceus), - SPECIES_SPRITE(ARCEUS_WATER, gMonFrontPic_Arceus), - SPECIES_SPRITE(ARCEUS_GRASS, gMonFrontPic_Arceus), - SPECIES_SPRITE(ARCEUS_ELECTRIC, gMonFrontPic_Arceus), - SPECIES_SPRITE(ARCEUS_PSYCHIC, gMonFrontPic_Arceus), - SPECIES_SPRITE(ARCEUS_ICE, gMonFrontPic_Arceus), - SPECIES_SPRITE(ARCEUS_DRAGON, gMonFrontPic_Arceus), - SPECIES_SPRITE(ARCEUS_DARK, gMonFrontPic_Arceus), - SPECIES_SPRITE(ARCEUS_FAIRY, gMonFrontPic_Arceus), -#endif - -#if P_GEN_5_POKEMON == TRUE - SPECIES_SPRITE(BASCULIN_BLUE_STRIPED, gMonFrontPic_BasculinBlueStriped), - SPECIES_SPRITE(BASCULIN_WHITE_STRIPED, gMonFrontPic_BasculinWhiteStriped), - - SPECIES_SPRITE(DARMANITAN_ZEN_MODE, gMonFrontPic_DarmanitanZenMode), - SPECIES_SPRITE(DARMANITAN_GALARIAN_ZEN_MODE, gMonFrontPic_DarmanitanGalarianZenMode), - - SPECIES_SPRITE(DEERLING_SUMMER, gMonFrontPic_Deerling), - SPECIES_SPRITE(DEERLING_AUTUMN, gMonFrontPic_Deerling), - SPECIES_SPRITE(DEERLING_WINTER, gMonFrontPic_Deerling), - - SPECIES_SPRITE(SAWSBUCK_SUMMER, gMonFrontPic_SawsbuckSummer), - SPECIES_SPRITE(SAWSBUCK_AUTUMN, gMonFrontPic_SawsbuckAutumn), - SPECIES_SPRITE(SAWSBUCK_WINTER, gMonFrontPic_SawsbuckWinter), - - SPECIES_SPRITE(TORNADUS_THERIAN, gMonFrontPic_TornadusTherian), - SPECIES_SPRITE(THUNDURUS_THERIAN, gMonFrontPic_ThundurusTherian), - SPECIES_SPRITE(LANDORUS_THERIAN, gMonFrontPic_LandorusTherian), - - SPECIES_SPRITE(KYUREM_WHITE, gMonFrontPic_KyuremWhite), - SPECIES_SPRITE(KYUREM_BLACK, gMonFrontPic_KyuremBlack), - - SPECIES_SPRITE(KELDEO_RESOLUTE, gMonFrontPic_KeldeoResolute), - - SPECIES_SPRITE(MELOETTA_PIROUETTE, gMonFrontPic_MeloettaPirouette), - - SPECIES_SPRITE(GENESECT_DOUSE_DRIVE, gMonFrontPic_Genesect), - SPECIES_SPRITE(GENESECT_SHOCK_DRIVE, gMonFrontPic_Genesect), - SPECIES_SPRITE(GENESECT_BURN_DRIVE, gMonFrontPic_Genesect), - SPECIES_SPRITE(GENESECT_CHILL_DRIVE, gMonFrontPic_Genesect), -#endif - -#if P_GEN_6_POKEMON == TRUE - SPECIES_SPRITE(GRENINJA_BATTLE_BOND, gMonFrontPic_Greninja), - SPECIES_SPRITE(GRENINJA_ASH, gMonFrontPic_GreninjaAsh), - - SPECIES_SPRITE(VIVILLON_POLAR, gMonFrontPic_VivillonPolar), - SPECIES_SPRITE(VIVILLON_TUNDRA, gMonFrontPic_VivillonTundra), - SPECIES_SPRITE(VIVILLON_CONTINENTAL, gMonFrontPic_VivillonContinental), - SPECIES_SPRITE(VIVILLON_GARDEN, gMonFrontPic_VivillonGarden), - SPECIES_SPRITE(VIVILLON_ELEGANT, gMonFrontPic_VivillonElegant), - SPECIES_SPRITE(VIVILLON_MEADOW, gMonFrontPic_VivillonMeadow), - SPECIES_SPRITE(VIVILLON_MODERN, gMonFrontPic_VivillonModern), - SPECIES_SPRITE(VIVILLON_MARINE, gMonFrontPic_VivillonMarine), - SPECIES_SPRITE(VIVILLON_ARCHIPELAGO, gMonFrontPic_VivillonArchipelago), - SPECIES_SPRITE(VIVILLON_HIGH_PLAINS, gMonFrontPic_VivillonHighPlains), - SPECIES_SPRITE(VIVILLON_SANDSTORM, gMonFrontPic_VivillonSandstorm), - SPECIES_SPRITE(VIVILLON_RIVER, gMonFrontPic_VivillonRiver), - SPECIES_SPRITE(VIVILLON_MONSOON, gMonFrontPic_VivillonMonsoon), - SPECIES_SPRITE(VIVILLON_SAVANNA, gMonFrontPic_VivillonSavanna), - SPECIES_SPRITE(VIVILLON_SUN, gMonFrontPic_VivillonSun), - SPECIES_SPRITE(VIVILLON_OCEAN, gMonFrontPic_VivillonOcean), - SPECIES_SPRITE(VIVILLON_JUNGLE, gMonFrontPic_VivillonJungle), - SPECIES_SPRITE(VIVILLON_FANCY, gMonFrontPic_VivillonFancy), - SPECIES_SPRITE(VIVILLON_POKE_BALL, gMonFrontPic_VivillonPokeBall), - - SPECIES_SPRITE(FLABEBE_YELLOW_FLOWER, gMonFrontPic_Flabebe), - SPECIES_SPRITE(FLABEBE_ORANGE_FLOWER, gMonFrontPic_Flabebe), - SPECIES_SPRITE(FLABEBE_BLUE_FLOWER, gMonFrontPic_Flabebe), - SPECIES_SPRITE(FLABEBE_WHITE_FLOWER, gMonFrontPic_Flabebe), - - SPECIES_SPRITE(FLOETTE_YELLOW_FLOWER, gMonFrontPic_Floette), - SPECIES_SPRITE(FLOETTE_ORANGE_FLOWER, gMonFrontPic_Floette), - SPECIES_SPRITE(FLOETTE_BLUE_FLOWER, gMonFrontPic_Floette), - SPECIES_SPRITE(FLOETTE_WHITE_FLOWER, gMonFrontPic_Floette), - SPECIES_SPRITE(FLOETTE_ETERNAL_FLOWER, gMonFrontPic_FloetteEternalFlower), - - SPECIES_SPRITE(FLORGES_YELLOW_FLOWER, gMonFrontPic_Florges), - SPECIES_SPRITE(FLORGES_ORANGE_FLOWER, gMonFrontPic_Florges), - SPECIES_SPRITE(FLORGES_BLUE_FLOWER, gMonFrontPic_Florges), - SPECIES_SPRITE(FLORGES_WHITE_FLOWER, gMonFrontPic_Florges), - - SPECIES_SPRITE(FURFROU_HEART_TRIM, gMonFrontPic_FurfrouHeartTrim), - SPECIES_SPRITE(FURFROU_STAR_TRIM, gMonFrontPic_FurfrouStarTrim), - SPECIES_SPRITE(FURFROU_DIAMOND_TRIM, gMonFrontPic_FurfrouDiamondTrim), - SPECIES_SPRITE(FURFROU_DEBUTANTE_TRIM, gMonFrontPic_FurfrouDebutanteTrim), - SPECIES_SPRITE(FURFROU_MATRON_TRIM, gMonFrontPic_FurfrouMatronTrim), - SPECIES_SPRITE(FURFROU_DANDY_TRIM, gMonFrontPic_FurfrouDandyTrim), - SPECIES_SPRITE(FURFROU_LA_REINE_TRIM, gMonFrontPic_FurfrouLaReineTrim), - SPECIES_SPRITE(FURFROU_KABUKI_TRIM, gMonFrontPic_FurfrouKabukiTrim), - SPECIES_SPRITE(FURFROU_PHARAOH_TRIM, gMonFrontPic_FurfrouPharaohTrim), - - SPECIES_SPRITE(MEOWSTIC_FEMALE, gMonFrontPic_MeowsticFemale), - - SPECIES_SPRITE(AEGISLASH_BLADE, gMonFrontPic_AegislashBlade), - - SPECIES_SPRITE(PUMPKABOO_SMALL, gMonFrontPic_PumpkabooSmall), - SPECIES_SPRITE(PUMPKABOO_LARGE, gMonFrontPic_PumpkabooLarge), - SPECIES_SPRITE(PUMPKABOO_SUPER, gMonFrontPic_PumpkabooSuper), - - SPECIES_SPRITE(GOURGEIST_SMALL, gMonFrontPic_GourgeistSmall), - SPECIES_SPRITE(GOURGEIST_LARGE, gMonFrontPic_GourgeistLarge), - SPECIES_SPRITE(GOURGEIST_SUPER, gMonFrontPic_GourgeistSuper), - - SPECIES_SPRITE(XERNEAS_ACTIVE, gMonFrontPic_XerneasActive), - - SPECIES_SPRITE(ZYGARDE_10, gMonFrontPic_Zygarde10), - SPECIES_SPRITE(ZYGARDE_10_POWER_CONSTRUCT, gMonFrontPic_Zygarde10), - SPECIES_SPRITE(ZYGARDE_50_POWER_CONSTRUCT, gMonFrontPic_Zygarde50), - SPECIES_SPRITE(ZYGARDE_COMPLETE, gMonFrontPic_ZygardeComplete), - - SPECIES_SPRITE(HOOPA_UNBOUND, gMonFrontPic_HoopaUnbound), -#endif - -#if P_GEN_7_POKEMON == TRUE - SPECIES_SPRITE(ORICORIO_POM_POM, gMonFrontPic_OricorioPomPom), - SPECIES_SPRITE(ORICORIO_PAU, gMonFrontPic_OricorioPau), - SPECIES_SPRITE(ORICORIO_SENSU, gMonFrontPic_OricorioSensu), - - SPECIES_SPRITE(ROCKRUFF_OWN_TEMPO, gMonFrontPic_Rockruff), - - SPECIES_SPRITE(LYCANROC_MIDNIGHT, gMonFrontPic_LycanrocMidnight), - SPECIES_SPRITE(LYCANROC_DUSK, gMonFrontPic_LycanrocDusk), - - SPECIES_SPRITE(WISHIWASHI_SCHOOL, gMonFrontPic_WishiwashiSchool), - - SPECIES_SPRITE(SILVALLY_FIGHTING, gMonFrontPic_Silvally), - SPECIES_SPRITE(SILVALLY_FLYING, gMonFrontPic_Silvally), - SPECIES_SPRITE(SILVALLY_POISON, gMonFrontPic_Silvally), - SPECIES_SPRITE(SILVALLY_GROUND, gMonFrontPic_Silvally), - SPECIES_SPRITE(SILVALLY_ROCK, gMonFrontPic_Silvally), - SPECIES_SPRITE(SILVALLY_BUG, gMonFrontPic_Silvally), - SPECIES_SPRITE(SILVALLY_GHOST, gMonFrontPic_Silvally), - SPECIES_SPRITE(SILVALLY_STEEL, gMonFrontPic_Silvally), - SPECIES_SPRITE(SILVALLY_FIRE, gMonFrontPic_Silvally), - SPECIES_SPRITE(SILVALLY_WATER, gMonFrontPic_Silvally), - SPECIES_SPRITE(SILVALLY_GRASS, gMonFrontPic_Silvally), - SPECIES_SPRITE(SILVALLY_ELECTRIC, gMonFrontPic_Silvally), - SPECIES_SPRITE(SILVALLY_PSYCHIC, gMonFrontPic_Silvally), - SPECIES_SPRITE(SILVALLY_ICE, gMonFrontPic_Silvally), - SPECIES_SPRITE(SILVALLY_DRAGON, gMonFrontPic_Silvally), - SPECIES_SPRITE(SILVALLY_DARK, gMonFrontPic_Silvally), - SPECIES_SPRITE(SILVALLY_FAIRY, gMonFrontPic_Silvally), - - SPECIES_SPRITE(MINIOR_METEOR_ORANGE, gMonFrontPic_MiniorMeteor), - SPECIES_SPRITE(MINIOR_METEOR_YELLOW, gMonFrontPic_MiniorMeteor), - SPECIES_SPRITE(MINIOR_METEOR_GREEN, gMonFrontPic_MiniorMeteor), - SPECIES_SPRITE(MINIOR_METEOR_BLUE, gMonFrontPic_MiniorMeteor), - SPECIES_SPRITE(MINIOR_METEOR_INDIGO, gMonFrontPic_MiniorMeteor), - SPECIES_SPRITE(MINIOR_METEOR_VIOLET, gMonFrontPic_MiniorMeteor), - SPECIES_SPRITE(MINIOR_CORE_RED, gMonFrontPic_MiniorCore), - SPECIES_SPRITE(MINIOR_CORE_ORANGE, gMonFrontPic_MiniorCore), - SPECIES_SPRITE(MINIOR_CORE_YELLOW, gMonFrontPic_MiniorCore), - SPECIES_SPRITE(MINIOR_CORE_GREEN, gMonFrontPic_MiniorCore), - SPECIES_SPRITE(MINIOR_CORE_BLUE, gMonFrontPic_MiniorCore), - SPECIES_SPRITE(MINIOR_CORE_INDIGO, gMonFrontPic_MiniorCore), - SPECIES_SPRITE(MINIOR_CORE_VIOLET, gMonFrontPic_MiniorCore), - - SPECIES_SPRITE(MIMIKYU_BUSTED, gMonFrontPic_MimikyuBusted), - - SPECIES_SPRITE(NECROZMA_DUSK_MANE, gMonFrontPic_NecrozmaDuskMane), - SPECIES_SPRITE(NECROZMA_DAWN_WINGS, gMonFrontPic_NecrozmaDawnWings), - SPECIES_SPRITE(NECROZMA_ULTRA, gMonFrontPic_NecrozmaUltra), - - SPECIES_SPRITE(MAGEARNA_ORIGINAL_COLOR, gMonFrontPic_MagearnaOriginalColor), -#endif - -#if P_GEN_8_POKEMON == TRUE - SPECIES_SPRITE(CRAMORANT_GULPING, gMonFrontPic_CramorantGulping), - SPECIES_SPRITE(CRAMORANT_GORGING, gMonFrontPic_CramorantGorging), - - SPECIES_SPRITE(TOXTRICITY_LOW_KEY, gMonFrontPic_ToxtricityLowKey), - - SPECIES_SPRITE(SINISTEA_ANTIQUE, gMonFrontPic_Sinistea), - - SPECIES_SPRITE(POLTEAGEIST_ANTIQUE, gMonFrontPic_Polteageist), - - SPECIES_SPRITE(ALCREMIE_RUBY_CREAM, gMonFrontPic_AlcremieRubyCream), - SPECIES_SPRITE(ALCREMIE_MATCHA_CREAM, gMonFrontPic_AlcremieMatchaCream), - SPECIES_SPRITE(ALCREMIE_MINT_CREAM, gMonFrontPic_AlcremieMintCream), - SPECIES_SPRITE(ALCREMIE_LEMON_CREAM, gMonFrontPic_AlcremieLemonCream), - SPECIES_SPRITE(ALCREMIE_SALTED_CREAM, gMonFrontPic_AlcremieSaltedCream), - SPECIES_SPRITE(ALCREMIE_RUBY_SWIRL, gMonFrontPic_AlcremieRubySwirl), - SPECIES_SPRITE(ALCREMIE_CARAMEL_SWIRL, gMonFrontPic_AlcremieCaramelSwirl), - SPECIES_SPRITE(ALCREMIE_RAINBOW_SWIRL, gMonFrontPic_AlcremieRainbowSwirl), - - SPECIES_SPRITE(EISCUE_NOICE_FACE, gMonFrontPic_EiscueNoiceFace), - - SPECIES_SPRITE(INDEEDEE_FEMALE, gMonFrontPic_IndeedeeFemale), - - SPECIES_SPRITE(MORPEKO_HANGRY, gMonFrontPic_MorpekoHangry), - - SPECIES_SPRITE(ZACIAN_CROWNED_SWORD, gMonFrontPic_ZacianCrownedSword), - - SPECIES_SPRITE(ZAMAZENTA_CROWNED_SHIELD, gMonFrontPic_ZamazentaCrownedShield), - - SPECIES_SPRITE(ETERNATUS_ETERNAMAX, gMonFrontPic_EternatusEternamax), - - SPECIES_SPRITE(URSHIFU_RAPID_STRIKE_STYLE, gMonFrontPic_UrshifuRapidStrikeStyle), - - SPECIES_SPRITE(ZARUDE_DADA, gMonFrontPic_ZarudeDada), - - SPECIES_SPRITE(CALYREX_ICE_RIDER, gMonFrontPic_CalyrexIceRider), - SPECIES_SPRITE(CALYREX_SHADOW_RIDER, gMonFrontPic_CalyrexShadowRider), - - SPECIES_SPRITE(ENAMORUS_THERIAN, gMonFrontPic_EnamorusTherian), - - SPECIES_SPRITE(BASCULEGION_FEMALE, gMonFrontPic_BasculegionFemale), - - // Gigantamax Forms - SPECIES_SPRITE(VENUSAUR_GIGANTAMAX, gMonFrontPic_VenusaurGigantamax), - SPECIES_SPRITE(CHARIZARD_GIGANTAMAX, gMonFrontPic_CharizardGigantamax), - SPECIES_SPRITE(BLASTOISE_GIGANTAMAX, gMonFrontPic_BlastoiseGigantamax), - SPECIES_SPRITE(BUTTERFREE_GIGANTAMAX, gMonFrontPic_ButterfreeGigantamax), - SPECIES_SPRITE(PIKACHU_GIGANTAMAX, gMonFrontPic_PikachuGigantamax), - SPECIES_SPRITE(MEOWTH_GIGANTAMAX, gMonFrontPic_MeowthGigantamax), - SPECIES_SPRITE(MACHAMP_GIGANTAMAX, gMonFrontPic_MachampGigantamax), - SPECIES_SPRITE(GENGAR_GIGANTAMAX, gMonFrontPic_GengarGigantamax), - SPECIES_SPRITE(KINGLER_GIGANTAMAX, gMonFrontPic_KinglerGigantamax), - SPECIES_SPRITE(LAPRAS_GIGANTAMAX, gMonFrontPic_LaprasGigantamax), - SPECIES_SPRITE(EEVEE_GIGANTAMAX, gMonFrontPic_EeveeGigantamax), - SPECIES_SPRITE(SNORLAX_GIGANTAMAX, gMonFrontPic_SnorlaxGigantamax), - SPECIES_SPRITE(GARBODOR_GIGANTAMAX, gMonFrontPic_GarbodorGigantamax), - SPECIES_SPRITE(MELMETAL_GIGANTAMAX, gMonFrontPic_MelmetalGigantamax), - SPECIES_SPRITE(RILLABOOM_GIGANTAMAX, gMonFrontPic_RillaboomGigantamax), - SPECIES_SPRITE(CINDERACE_GIGANTAMAX, gMonFrontPic_CinderaceGigantamax), - SPECIES_SPRITE(INTELEON_GIGANTAMAX, gMonFrontPic_InteleonGigantamax), - SPECIES_SPRITE(CORVIKNIGHT_GIGANTAMAX, gMonFrontPic_CorviknightGigantamax), - SPECIES_SPRITE(ORBEETLE_GIGANTAMAX, gMonFrontPic_OrbeetleGigantamax), - SPECIES_SPRITE(DREDNAW_GIGANTAMAX, gMonFrontPic_DrednawGigantamax), - SPECIES_SPRITE(COALOSSAL_GIGANTAMAX, gMonFrontPic_CoalossalGigantamax), - SPECIES_SPRITE(FLAPPLE_GIGANTAMAX, gMonFrontPic_FlappleGigantamax), - SPECIES_SPRITE(APPLETUN_GIGANTAMAX, gMonFrontPic_AppletunGigantamax), - SPECIES_SPRITE(SANDACONDA_GIGANTAMAX, gMonFrontPic_SandacondaGigantamax), - SPECIES_SPRITE(TOXTRICITY_AMPED_GIGANTAMAX, gMonFrontPic_ToxtricityGigantamax), - SPECIES_SPRITE(TOXTRICITY_LOW_KEY_GIGANTAMAX, gMonFrontPic_ToxtricityGigantamax), - SPECIES_SPRITE(CENTISKORCH_GIGANTAMAX, gMonFrontPic_CentiskorchGigantamax), - SPECIES_SPRITE(HATTERENE_GIGANTAMAX, gMonFrontPic_HattereneGigantamax), - SPECIES_SPRITE(GRIMMSNARL_GIGANTAMAX, gMonFrontPic_GrimmsnarlGigantamax), - SPECIES_SPRITE(ALCREMIE_GIGANTAMAX, gMonFrontPic_AlcremieGigantamax), - SPECIES_SPRITE(COPPERAJAH_GIGANTAMAX, gMonFrontPic_CopperajahGigantamax), - SPECIES_SPRITE(DURALUDON_GIGANTAMAX, gMonFrontPic_DuraludonGigantamax), - SPECIES_SPRITE(URSHIFU_SINGLE_STRIKE_STYLE_GIGANTAMAX, gMonFrontPic_UrshifuSingleStrikeGigantamax), - SPECIES_SPRITE(URSHIFU_RAPID_STRIKE_STYLE_GIGANTAMAX, gMonFrontPic_UrshifuRapidStrikeGigantamax), -#endif - SPECIES_SPRITE(EGG, gMonFrontPic_Egg), -}; - -const struct CompressedSpriteSheet gMonFrontPicTableFemale[NUM_SPECIES + 1] = -{ - SPECIES_SPRITE(VENUSAUR, gMonFrontPic_VenusaurF), - SPECIES_SPRITE(BUTTERFREE, gMonFrontPic_ButterfreeF), - SPECIES_SPRITE(RATTATA, gMonFrontPic_RattataF), - SPECIES_SPRITE(RATICATE, gMonFrontPic_RaticateF), - SPECIES_SPRITE(PIKACHU, gMonFrontPic_PikachuF), - SPECIES_SPRITE(RAICHU, gMonFrontPic_RaichuF), - SPECIES_SPRITE(ZUBAT, gMonFrontPic_ZubatF), - SPECIES_SPRITE(GOLBAT, gMonFrontPic_GolbatF), - SPECIES_SPRITE(GLOOM, gMonFrontPic_GloomF), - SPECIES_SPRITE(VILEPLUME, gMonFrontPic_VileplumeF), - SPECIES_SPRITE(KADABRA, gMonFrontPic_KadabraF), - SPECIES_SPRITE(ALAKAZAM, gMonFrontPic_AlakazamF), - SPECIES_SPRITE(DODUO, gMonFrontPic_DoduoF), - SPECIES_SPRITE(DODRIO, gMonFrontPic_DodrioF), - SPECIES_SPRITE(HYPNO, gMonFrontPic_HypnoF), - SPECIES_SPRITE(RHYHORN, gMonFrontPic_RhyhornF), - SPECIES_SPRITE(RHYDON, gMonFrontPic_RhydonF), - SPECIES_SPRITE(GOLDEEN, gMonFrontPic_GoldeenF), - SPECIES_SPRITE(SEAKING, gMonFrontPic_SeakingF), - SPECIES_SPRITE(SCYTHER, gMonFrontPic_ScytherF), - SPECIES_SPRITE(MAGIKARP, gMonFrontPic_MagikarpF), - SPECIES_SPRITE(GYARADOS, gMonFrontPic_GyaradosF), - SPECIES_SPRITE(EEVEE, gMonFrontPic_EeveeF), - SPECIES_SPRITE(MEGANIUM, gMonFrontPic_MeganiumF), - SPECIES_SPRITE(LEDYBA, gMonFrontPic_LedybaF), - SPECIES_SPRITE(LEDIAN, gMonFrontPic_LedianF), - SPECIES_SPRITE(XATU, gMonFrontPic_XatuF), - SPECIES_SPRITE(SUDOWOODO, gMonFrontPic_SudowoodoF), - SPECIES_SPRITE(POLITOED, gMonFrontPic_PolitoedF), - SPECIES_SPRITE(AIPOM, gMonFrontPic_AipomF), - SPECIES_SPRITE(WOOPER, gMonFrontPic_WooperF), - SPECIES_SPRITE(QUAGSIRE, gMonFrontPic_QuagsireF), - SPECIES_SPRITE(MURKROW, gMonFrontPic_MurkrowF), - SPECIES_SPRITE(WOBBUFFET, gMonFrontPic_WobbuffetF), - SPECIES_SPRITE(GIRAFARIG, gMonFrontPic_GirafarigF), - SPECIES_SPRITE(GLIGAR, gMonFrontPic_GligarF), - SPECIES_SPRITE(STEELIX, gMonFrontPic_SteelixF), - SPECIES_SPRITE(SCIZOR, gMonFrontPic_ScizorF), - SPECIES_SPRITE(HERACROSS, gMonFrontPic_HeracrossF), - SPECIES_SPRITE(SNEASEL, gMonFrontPic_SneaselF), - SPECIES_SPRITE(URSARING, gMonFrontPic_UrsaringF), - SPECIES_SPRITE(PILOSWINE, gMonFrontPic_PiloswineF), - SPECIES_SPRITE(OCTILLERY, gMonFrontPic_OctilleryF), - SPECIES_SPRITE(HOUNDOOM, gMonFrontPic_HoundoomF), - SPECIES_SPRITE(DONPHAN, gMonFrontPic_DonphanF), - SPECIES_SPRITE(COMBUSKEN, gMonFrontPic_CombuskenF), - SPECIES_SPRITE(BLAZIKEN, gMonFrontPic_BlazikenF), - SPECIES_SPRITE(BEAUTIFLY, gMonFrontPic_BeautiflyF), - SPECIES_SPRITE(DUSTOX, gMonFrontPic_DustoxF), - SPECIES_SPRITE(LUDICOLO, gMonFrontPic_LudicoloF), - SPECIES_SPRITE(NUZLEAF, gMonFrontPic_NuzleafF), - SPECIES_SPRITE(SHIFTRY, gMonFrontPic_ShiftryF), - SPECIES_SPRITE(MEDITITE, gMonFrontPic_MedititeF), - SPECIES_SPRITE(MEDICHAM, gMonFrontPic_MedichamF), - SPECIES_SPRITE(ROSELIA, gMonFrontPic_RoseliaF), - SPECIES_SPRITE(GULPIN, gMonFrontPic_GulpinF), - SPECIES_SPRITE(SWALOT, gMonFrontPic_SwalotF), - SPECIES_SPRITE(NUMEL, gMonFrontPic_NumelF), - SPECIES_SPRITE(CAMERUPT, gMonFrontPic_CameruptF), - SPECIES_SPRITE(CACTURNE, gMonFrontPic_CacturneF), - SPECIES_SPRITE(MILOTIC, gMonFrontPic_MiloticF), - SPECIES_SPRITE(RELICANTH, gMonFrontPic_RelicanthF), -#if P_GEN_4_POKEMON == TRUE - SPECIES_SPRITE(STARLY, gMonFrontPic_StarlyF), - SPECIES_SPRITE(STARAVIA, gMonFrontPic_StaraviaF), - SPECIES_SPRITE(STARAPTOR, gMonFrontPic_StaraptorF), - SPECIES_SPRITE(BIDOOF, gMonFrontPic_BidoofF), - SPECIES_SPRITE(BIBAREL, gMonFrontPic_BibarelF), - SPECIES_SPRITE(KRICKETOT, gMonFrontPic_KricketotF), - SPECIES_SPRITE(KRICKETUNE, gMonFrontPic_KricketuneF), - SPECIES_SPRITE(SHINX, gMonFrontPic_ShinxF), - SPECIES_SPRITE(LUXIO, gMonFrontPic_LuxioF), - SPECIES_SPRITE(LUXRAY, gMonFrontPic_LuxrayF), - SPECIES_SPRITE(ROSERADE, gMonFrontPic_RoseradeF), - SPECIES_SPRITE(AMBIPOM, gMonFrontPic_AmbipomF), - SPECIES_SPRITE(PACHIRISU, gMonFrontPic_PachirisuF), - SPECIES_SPRITE(GIBLE, gMonFrontPic_GibleF), - SPECIES_SPRITE(GABITE, gMonFrontPic_GabiteF), - SPECIES_SPRITE(GARCHOMP, gMonFrontPic_GarchompF), - SPECIES_SPRITE(CROAGUNK, gMonFrontPic_CroagunkF), - SPECIES_SPRITE(TOXICROAK, gMonFrontPic_ToxicroakF), - SPECIES_SPRITE(FINNEON, gMonFrontPic_FinneonF), - SPECIES_SPRITE(LUMINEON, gMonFrontPic_LumineonF), - SPECIES_SPRITE(SNOVER, gMonFrontPic_SnoverF), - SPECIES_SPRITE(ABOMASNOW, gMonFrontPic_AbomasnowF), - SPECIES_SPRITE(WEAVILE, gMonFrontPic_WeavileF), - SPECIES_SPRITE(RHYPERIOR, gMonFrontPic_RhyperiorF), - SPECIES_SPRITE(TANGROWTH, gMonFrontPic_TangrowthF), - SPECIES_SPRITE(MAMOSWINE, gMonFrontPic_MamoswineF), -#endif -#if P_GEN_5_POKEMON == TRUE - SPECIES_SPRITE(UNFEZANT, gMonFrontPic_UnfezantF), - SPECIES_SPRITE(FRILLISH, gMonFrontPic_FrillishF), - SPECIES_SPRITE(JELLICENT, gMonFrontPic_JellicentF), -#endif -#if P_GEN_6_POKEMON == TRUE - SPECIES_SPRITE(PYROAR, gMonFrontPic_PyroarF), -#endif - SPECIES_SPRITE(SNEASEL_HISUIAN, gMonFrontPic_SneaselHisuianF), -}; diff --git a/src/data/pokemon_graphics/shiny_palette_table.h b/src/data/pokemon_graphics/shiny_palette_table.h deleted file mode 100644 index 44a140a8dabb..000000000000 --- a/src/data/pokemon_graphics/shiny_palette_table.h +++ /dev/null @@ -1,1387 +0,0 @@ -const struct CompressedSpritePalette gMonShinyPaletteTable[NUM_SPECIES + 1] = -{ - SPECIES_SHINY_PAL(NONE, gMonShinyPalette_CircledQuestionMark), - SPECIES_SHINY_PAL(BULBASAUR, gMonShinyPalette_Bulbasaur), - SPECIES_SHINY_PAL(IVYSAUR, gMonShinyPalette_Ivysaur), - SPECIES_SHINY_PAL(VENUSAUR, gMonShinyPalette_Venusaur), - SPECIES_SHINY_PAL(CHARMANDER, gMonShinyPalette_Charmander), - SPECIES_SHINY_PAL(CHARMELEON, gMonShinyPalette_Charmeleon), - SPECIES_SHINY_PAL(CHARIZARD, gMonShinyPalette_Charizard), - SPECIES_SHINY_PAL(SQUIRTLE, gMonShinyPalette_Squirtle), - SPECIES_SHINY_PAL(WARTORTLE, gMonShinyPalette_Wartortle), - SPECIES_SHINY_PAL(BLASTOISE, gMonShinyPalette_Blastoise), - SPECIES_SHINY_PAL(CATERPIE, gMonShinyPalette_Caterpie), - SPECIES_SHINY_PAL(METAPOD, gMonShinyPalette_Metapod), - SPECIES_SHINY_PAL(BUTTERFREE, gMonShinyPalette_Butterfree), - SPECIES_SHINY_PAL(WEEDLE, gMonShinyPalette_Weedle), - SPECIES_SHINY_PAL(KAKUNA, gMonShinyPalette_Kakuna), - SPECIES_SHINY_PAL(BEEDRILL, gMonShinyPalette_Beedrill), - SPECIES_SHINY_PAL(PIDGEY, gMonShinyPalette_Pidgey), - SPECIES_SHINY_PAL(PIDGEOTTO, gMonShinyPalette_Pidgeotto), - SPECIES_SHINY_PAL(PIDGEOT, gMonShinyPalette_Pidgeot), - SPECIES_SHINY_PAL(RATTATA, gMonShinyPalette_Rattata), - SPECIES_SHINY_PAL(RATICATE, gMonShinyPalette_Raticate), - SPECIES_SHINY_PAL(SPEAROW, gMonShinyPalette_Spearow), - SPECIES_SHINY_PAL(FEAROW, gMonShinyPalette_Fearow), - SPECIES_SHINY_PAL(EKANS, gMonShinyPalette_Ekans), - SPECIES_SHINY_PAL(ARBOK, gMonShinyPalette_Arbok), - SPECIES_SHINY_PAL(PIKACHU, gMonShinyPalette_Pikachu), - SPECIES_SHINY_PAL(RAICHU, gMonShinyPalette_Raichu), - SPECIES_SHINY_PAL(SANDSHREW, gMonShinyPalette_Sandshrew), - SPECIES_SHINY_PAL(SANDSLASH, gMonShinyPalette_Sandslash), - SPECIES_SHINY_PAL(NIDORAN_F, gMonShinyPalette_NidoranF), - SPECIES_SHINY_PAL(NIDORINA, gMonShinyPalette_Nidorina), - SPECIES_SHINY_PAL(NIDOQUEEN, gMonShinyPalette_Nidoqueen), - SPECIES_SHINY_PAL(NIDORAN_M, gMonShinyPalette_NidoranM), - SPECIES_SHINY_PAL(NIDORINO, gMonShinyPalette_Nidorino), - SPECIES_SHINY_PAL(NIDOKING, gMonShinyPalette_Nidoking), - SPECIES_SHINY_PAL(CLEFAIRY, gMonShinyPalette_Clefairy), - SPECIES_SHINY_PAL(CLEFABLE, gMonShinyPalette_Clefable), - SPECIES_SHINY_PAL(VULPIX, gMonShinyPalette_Vulpix), - SPECIES_SHINY_PAL(NINETALES, gMonShinyPalette_Ninetales), - SPECIES_SHINY_PAL(JIGGLYPUFF, gMonShinyPalette_Jigglypuff), - SPECIES_SHINY_PAL(WIGGLYTUFF, gMonShinyPalette_Wigglytuff), - SPECIES_SHINY_PAL(ZUBAT, gMonShinyPalette_Zubat), - SPECIES_SHINY_PAL(GOLBAT, gMonShinyPalette_Golbat), - SPECIES_SHINY_PAL(ODDISH, gMonShinyPalette_Oddish), - SPECIES_SHINY_PAL(GLOOM, gMonShinyPalette_Gloom), - SPECIES_SHINY_PAL(VILEPLUME, gMonShinyPalette_Vileplume), - SPECIES_SHINY_PAL(PARAS, gMonShinyPalette_Paras), - SPECIES_SHINY_PAL(PARASECT, gMonShinyPalette_Parasect), - SPECIES_SHINY_PAL(VENONAT, gMonShinyPalette_Venonat), - SPECIES_SHINY_PAL(VENOMOTH, gMonShinyPalette_Venomoth), - SPECIES_SHINY_PAL(DIGLETT, gMonShinyPalette_Diglett), - SPECIES_SHINY_PAL(DUGTRIO, gMonShinyPalette_Dugtrio), - SPECIES_SHINY_PAL(MEOWTH, gMonShinyPalette_Meowth), - SPECIES_SHINY_PAL(PERSIAN, gMonShinyPalette_Persian), - SPECIES_SHINY_PAL(PSYDUCK, gMonShinyPalette_Psyduck), - SPECIES_SHINY_PAL(GOLDUCK, gMonShinyPalette_Golduck), - SPECIES_SHINY_PAL(MANKEY, gMonShinyPalette_Mankey), - SPECIES_SHINY_PAL(PRIMEAPE, gMonShinyPalette_Primeape), - SPECIES_SHINY_PAL(GROWLITHE, gMonShinyPalette_Growlithe), - SPECIES_SHINY_PAL(ARCANINE, gMonShinyPalette_Arcanine), - SPECIES_SHINY_PAL(POLIWAG, gMonShinyPalette_Poliwag), - SPECIES_SHINY_PAL(POLIWHIRL, gMonShinyPalette_Poliwhirl), - SPECIES_SHINY_PAL(POLIWRATH, gMonShinyPalette_Poliwrath), - SPECIES_SHINY_PAL(ABRA, gMonShinyPalette_Abra), - SPECIES_SHINY_PAL(KADABRA, gMonShinyPalette_Kadabra), - SPECIES_SHINY_PAL(ALAKAZAM, gMonShinyPalette_Alakazam), - SPECIES_SHINY_PAL(MACHOP, gMonShinyPalette_Machop), - SPECIES_SHINY_PAL(MACHOKE, gMonShinyPalette_Machoke), - SPECIES_SHINY_PAL(MACHAMP, gMonShinyPalette_Machamp), - SPECIES_SHINY_PAL(BELLSPROUT, gMonShinyPalette_Bellsprout), - SPECIES_SHINY_PAL(WEEPINBELL, gMonShinyPalette_Weepinbell), - SPECIES_SHINY_PAL(VICTREEBEL, gMonShinyPalette_Victreebel), - SPECIES_SHINY_PAL(TENTACOOL, gMonShinyPalette_Tentacool), - SPECIES_SHINY_PAL(TENTACRUEL, gMonShinyPalette_Tentacruel), - SPECIES_SHINY_PAL(GEODUDE, gMonShinyPalette_Geodude), - SPECIES_SHINY_PAL(GRAVELER, gMonShinyPalette_Graveler), - SPECIES_SHINY_PAL(GOLEM, gMonShinyPalette_Golem), - SPECIES_SHINY_PAL(PONYTA, gMonShinyPalette_Ponyta), - SPECIES_SHINY_PAL(RAPIDASH, gMonShinyPalette_Rapidash), - SPECIES_SHINY_PAL(SLOWPOKE, gMonShinyPalette_Slowpoke), - SPECIES_SHINY_PAL(SLOWBRO, gMonShinyPalette_Slowbro), - SPECIES_SHINY_PAL(MAGNEMITE, gMonShinyPalette_Magnemite), - SPECIES_SHINY_PAL(MAGNETON, gMonShinyPalette_Magneton), - SPECIES_SHINY_PAL(FARFETCHD, gMonShinyPalette_Farfetchd), - SPECIES_SHINY_PAL(DODUO, gMonShinyPalette_Doduo), - SPECIES_SHINY_PAL(DODRIO, gMonShinyPalette_Dodrio), - SPECIES_SHINY_PAL(SEEL, gMonShinyPalette_Seel), - SPECIES_SHINY_PAL(DEWGONG, gMonShinyPalette_Dewgong), - SPECIES_SHINY_PAL(GRIMER, gMonShinyPalette_Grimer), - SPECIES_SHINY_PAL(MUK, gMonShinyPalette_Muk), - SPECIES_SHINY_PAL(SHELLDER, gMonShinyPalette_Shellder), - SPECIES_SHINY_PAL(CLOYSTER, gMonShinyPalette_Cloyster), - SPECIES_SHINY_PAL(GASTLY, gMonShinyPalette_Gastly), - SPECIES_SHINY_PAL(HAUNTER, gMonShinyPalette_Haunter), - SPECIES_SHINY_PAL(GENGAR, gMonShinyPalette_Gengar), - SPECIES_SHINY_PAL(ONIX, gMonShinyPalette_Onix), - SPECIES_SHINY_PAL(DROWZEE, gMonShinyPalette_Drowzee), - SPECIES_SHINY_PAL(HYPNO, gMonShinyPalette_Hypno), - SPECIES_SHINY_PAL(KRABBY, gMonShinyPalette_Krabby), - SPECIES_SHINY_PAL(KINGLER, gMonShinyPalette_Kingler), - SPECIES_SHINY_PAL(VOLTORB, gMonShinyPalette_Voltorb), - SPECIES_SHINY_PAL(ELECTRODE, gMonShinyPalette_Electrode), - SPECIES_SHINY_PAL(EXEGGCUTE, gMonShinyPalette_Exeggcute), - SPECIES_SHINY_PAL(EXEGGUTOR, gMonShinyPalette_Exeggutor), - SPECIES_SHINY_PAL(CUBONE, gMonShinyPalette_Cubone), - SPECIES_SHINY_PAL(MAROWAK, gMonShinyPalette_Marowak), - SPECIES_SHINY_PAL(HITMONLEE, gMonShinyPalette_Hitmonlee), - SPECIES_SHINY_PAL(HITMONCHAN, gMonShinyPalette_Hitmonchan), - SPECIES_SHINY_PAL(LICKITUNG, gMonShinyPalette_Lickitung), - SPECIES_SHINY_PAL(KOFFING, gMonShinyPalette_Koffing), - SPECIES_SHINY_PAL(WEEZING, gMonShinyPalette_Weezing), - SPECIES_SHINY_PAL(RHYHORN, gMonShinyPalette_Rhyhorn), - SPECIES_SHINY_PAL(RHYDON, gMonShinyPalette_Rhydon), - SPECIES_SHINY_PAL(CHANSEY, gMonShinyPalette_Chansey), - SPECIES_SHINY_PAL(TANGELA, gMonShinyPalette_Tangela), - SPECIES_SHINY_PAL(KANGASKHAN, gMonShinyPalette_Kangaskhan), - SPECIES_SHINY_PAL(HORSEA, gMonShinyPalette_Horsea), - SPECIES_SHINY_PAL(SEADRA, gMonShinyPalette_Seadra), - SPECIES_SHINY_PAL(GOLDEEN, gMonShinyPalette_Goldeen), - SPECIES_SHINY_PAL(SEAKING, gMonShinyPalette_Seaking), - SPECIES_SHINY_PAL(STARYU, gMonShinyPalette_Staryu), - SPECIES_SHINY_PAL(STARMIE, gMonShinyPalette_Starmie), - SPECIES_SHINY_PAL(MR_MIME, gMonShinyPalette_MrMime), - SPECIES_SHINY_PAL(SCYTHER, gMonShinyPalette_Scyther), - SPECIES_SHINY_PAL(JYNX, gMonShinyPalette_Jynx), - SPECIES_SHINY_PAL(ELECTABUZZ, gMonShinyPalette_Electabuzz), - SPECIES_SHINY_PAL(MAGMAR, gMonShinyPalette_Magmar), - SPECIES_SHINY_PAL(PINSIR, gMonShinyPalette_Pinsir), - SPECIES_SHINY_PAL(TAUROS, gMonShinyPalette_Tauros), - SPECIES_SHINY_PAL(MAGIKARP, gMonShinyPalette_Magikarp), - SPECIES_SHINY_PAL(GYARADOS, gMonShinyPalette_Gyarados), - SPECIES_SHINY_PAL(LAPRAS, gMonShinyPalette_Lapras), - SPECIES_SHINY_PAL(DITTO, gMonShinyPalette_Ditto), - SPECIES_SHINY_PAL(EEVEE, gMonShinyPalette_Eevee), - SPECIES_SHINY_PAL(VAPOREON, gMonShinyPalette_Vaporeon), - SPECIES_SHINY_PAL(JOLTEON, gMonShinyPalette_Jolteon), - SPECIES_SHINY_PAL(FLAREON, gMonShinyPalette_Flareon), - SPECIES_SHINY_PAL(PORYGON, gMonShinyPalette_Porygon), - SPECIES_SHINY_PAL(OMANYTE, gMonShinyPalette_Omanyte), - SPECIES_SHINY_PAL(OMASTAR, gMonShinyPalette_Omastar), - SPECIES_SHINY_PAL(KABUTO, gMonShinyPalette_Kabuto), - SPECIES_SHINY_PAL(KABUTOPS, gMonShinyPalette_Kabutops), - SPECIES_SHINY_PAL(AERODACTYL, gMonShinyPalette_Aerodactyl), - SPECIES_SHINY_PAL(SNORLAX, gMonShinyPalette_Snorlax), - SPECIES_SHINY_PAL(ARTICUNO, gMonShinyPalette_Articuno), - SPECIES_SHINY_PAL(ZAPDOS, gMonShinyPalette_Zapdos), - SPECIES_SHINY_PAL(MOLTRES, gMonShinyPalette_Moltres), - SPECIES_SHINY_PAL(DRATINI, gMonShinyPalette_Dratini), - SPECIES_SHINY_PAL(DRAGONAIR, gMonShinyPalette_Dragonair), - SPECIES_SHINY_PAL(DRAGONITE, gMonShinyPalette_Dragonite), - SPECIES_SHINY_PAL(MEWTWO, gMonShinyPalette_Mewtwo), - SPECIES_SHINY_PAL(MEW, gMonShinyPalette_Mew), - SPECIES_SHINY_PAL(CHIKORITA, gMonShinyPalette_Chikorita), - SPECIES_SHINY_PAL(BAYLEEF, gMonShinyPalette_Bayleef), - SPECIES_SHINY_PAL(MEGANIUM, gMonShinyPalette_Meganium), - SPECIES_SHINY_PAL(CYNDAQUIL, gMonShinyPalette_Cyndaquil), - SPECIES_SHINY_PAL(QUILAVA, gMonShinyPalette_Quilava), - SPECIES_SHINY_PAL(TYPHLOSION, gMonShinyPalette_Typhlosion), - SPECIES_SHINY_PAL(TOTODILE, gMonShinyPalette_Totodile), - SPECIES_SHINY_PAL(CROCONAW, gMonShinyPalette_Croconaw), - SPECIES_SHINY_PAL(FERALIGATR, gMonShinyPalette_Feraligatr), - SPECIES_SHINY_PAL(SENTRET, gMonShinyPalette_Sentret), - SPECIES_SHINY_PAL(FURRET, gMonShinyPalette_Furret), - SPECIES_SHINY_PAL(HOOTHOOT, gMonShinyPalette_Hoothoot), - SPECIES_SHINY_PAL(NOCTOWL, gMonShinyPalette_Noctowl), - SPECIES_SHINY_PAL(LEDYBA, gMonShinyPalette_Ledyba), - SPECIES_SHINY_PAL(LEDIAN, gMonShinyPalette_Ledian), - SPECIES_SHINY_PAL(SPINARAK, gMonShinyPalette_Spinarak), - SPECIES_SHINY_PAL(ARIADOS, gMonShinyPalette_Ariados), - SPECIES_SHINY_PAL(CROBAT, gMonShinyPalette_Crobat), - SPECIES_SHINY_PAL(CHINCHOU, gMonShinyPalette_Chinchou), - SPECIES_SHINY_PAL(LANTURN, gMonShinyPalette_Lanturn), - SPECIES_SHINY_PAL(PICHU, gMonShinyPalette_Pichu), - SPECIES_SHINY_PAL(CLEFFA, gMonShinyPalette_Cleffa), - SPECIES_SHINY_PAL(IGGLYBUFF, gMonShinyPalette_Igglybuff), - SPECIES_SHINY_PAL(TOGEPI, gMonShinyPalette_Togepi), - SPECIES_SHINY_PAL(TOGETIC, gMonShinyPalette_Togetic), - SPECIES_SHINY_PAL(NATU, gMonShinyPalette_Natu), - SPECIES_SHINY_PAL(XATU, gMonShinyPalette_Xatu), - SPECIES_SHINY_PAL(MAREEP, gMonShinyPalette_Mareep), - SPECIES_SHINY_PAL(FLAAFFY, gMonShinyPalette_Flaaffy), - SPECIES_SHINY_PAL(AMPHAROS, gMonShinyPalette_Ampharos), - SPECIES_SHINY_PAL(BELLOSSOM, gMonShinyPalette_Bellossom), - SPECIES_SHINY_PAL(MARILL, gMonShinyPalette_Marill), - SPECIES_SHINY_PAL(AZUMARILL, gMonShinyPalette_Azumarill), - SPECIES_SHINY_PAL(SUDOWOODO, gMonShinyPalette_Sudowoodo), - SPECIES_SHINY_PAL(POLITOED, gMonShinyPalette_Politoed), - SPECIES_SHINY_PAL(HOPPIP, gMonShinyPalette_Hoppip), - SPECIES_SHINY_PAL(SKIPLOOM, gMonShinyPalette_Skiploom), - SPECIES_SHINY_PAL(JUMPLUFF, gMonShinyPalette_Jumpluff), - SPECIES_SHINY_PAL(AIPOM, gMonShinyPalette_Aipom), - SPECIES_SHINY_PAL(SUNKERN, gMonShinyPalette_Sunkern), - SPECIES_SHINY_PAL(SUNFLORA, gMonShinyPalette_Sunflora), - SPECIES_SHINY_PAL(YANMA, gMonShinyPalette_Yanma), - SPECIES_SHINY_PAL(WOOPER, gMonShinyPalette_Wooper), - SPECIES_SHINY_PAL(QUAGSIRE, gMonShinyPalette_Quagsire), - SPECIES_SHINY_PAL(ESPEON, gMonShinyPalette_Espeon), - SPECIES_SHINY_PAL(UMBREON, gMonShinyPalette_Umbreon), - SPECIES_SHINY_PAL(MURKROW, gMonShinyPalette_Murkrow), - SPECIES_SHINY_PAL(SLOWKING, gMonShinyPalette_Slowking), - SPECIES_SHINY_PAL(MISDREAVUS, gMonShinyPalette_Misdreavus), - SPECIES_SHINY_PAL(UNOWN, gMonShinyPalette_Unown), - SPECIES_SHINY_PAL(WOBBUFFET, gMonShinyPalette_Wobbuffet), - SPECIES_SHINY_PAL(GIRAFARIG, gMonShinyPalette_Girafarig), - SPECIES_SHINY_PAL(PINECO, gMonShinyPalette_Pineco), - SPECIES_SHINY_PAL(FORRETRESS, gMonShinyPalette_Forretress), - SPECIES_SHINY_PAL(DUNSPARCE, gMonShinyPalette_Dunsparce), - SPECIES_SHINY_PAL(GLIGAR, gMonShinyPalette_Gligar), - SPECIES_SHINY_PAL(STEELIX, gMonShinyPalette_Steelix), - SPECIES_SHINY_PAL(SNUBBULL, gMonShinyPalette_Snubbull), - SPECIES_SHINY_PAL(GRANBULL, gMonShinyPalette_Granbull), - SPECIES_SHINY_PAL(QWILFISH, gMonShinyPalette_Qwilfish), - SPECIES_SHINY_PAL(SCIZOR, gMonShinyPalette_Scizor), - SPECIES_SHINY_PAL(SHUCKLE, gMonShinyPalette_Shuckle), - SPECIES_SHINY_PAL(HERACROSS, gMonShinyPalette_Heracross), - SPECIES_SHINY_PAL(SNEASEL, gMonShinyPalette_Sneasel), - SPECIES_SHINY_PAL(TEDDIURSA, gMonShinyPalette_Teddiursa), - SPECIES_SHINY_PAL(URSARING, gMonShinyPalette_Ursaring), - SPECIES_SHINY_PAL(SLUGMA, gMonShinyPalette_Slugma), - SPECIES_SHINY_PAL(MAGCARGO, gMonShinyPalette_Magcargo), - SPECIES_SHINY_PAL(SWINUB, gMonShinyPalette_Swinub), - SPECIES_SHINY_PAL(PILOSWINE, gMonShinyPalette_Piloswine), - SPECIES_SHINY_PAL(CORSOLA, gMonShinyPalette_Corsola), - SPECIES_SHINY_PAL(REMORAID, gMonShinyPalette_Remoraid), - SPECIES_SHINY_PAL(OCTILLERY, gMonShinyPalette_Octillery), - SPECIES_SHINY_PAL(DELIBIRD, gMonShinyPalette_Delibird), - SPECIES_SHINY_PAL(MANTINE, gMonShinyPalette_Mantine), - SPECIES_SHINY_PAL(SKARMORY, gMonShinyPalette_Skarmory), - SPECIES_SHINY_PAL(HOUNDOUR, gMonShinyPalette_Houndour), - SPECIES_SHINY_PAL(HOUNDOOM, gMonShinyPalette_Houndoom), - SPECIES_SHINY_PAL(KINGDRA, gMonShinyPalette_Kingdra), - SPECIES_SHINY_PAL(PHANPY, gMonShinyPalette_Phanpy), - SPECIES_SHINY_PAL(DONPHAN, gMonShinyPalette_Donphan), - SPECIES_SHINY_PAL(PORYGON2, gMonShinyPalette_Porygon2), - SPECIES_SHINY_PAL(STANTLER, gMonShinyPalette_Stantler), - SPECIES_SHINY_PAL(SMEARGLE, gMonShinyPalette_Smeargle), - SPECIES_SHINY_PAL(TYROGUE, gMonShinyPalette_Tyrogue), - SPECIES_SHINY_PAL(HITMONTOP, gMonShinyPalette_Hitmontop), - SPECIES_SHINY_PAL(SMOOCHUM, gMonShinyPalette_Smoochum), - SPECIES_SHINY_PAL(ELEKID, gMonShinyPalette_Elekid), - SPECIES_SHINY_PAL(MAGBY, gMonShinyPalette_Magby), - SPECIES_SHINY_PAL(MILTANK, gMonShinyPalette_Miltank), - SPECIES_SHINY_PAL(BLISSEY, gMonShinyPalette_Blissey), - SPECIES_SHINY_PAL(RAIKOU, gMonShinyPalette_Raikou), - SPECIES_SHINY_PAL(ENTEI, gMonShinyPalette_Entei), - SPECIES_SHINY_PAL(SUICUNE, gMonShinyPalette_Suicune), - SPECIES_SHINY_PAL(LARVITAR, gMonShinyPalette_Larvitar), - SPECIES_SHINY_PAL(PUPITAR, gMonShinyPalette_Pupitar), - SPECIES_SHINY_PAL(TYRANITAR, gMonShinyPalette_Tyranitar), - SPECIES_SHINY_PAL(LUGIA, gMonShinyPalette_Lugia), - SPECIES_SHINY_PAL(HO_OH, gMonShinyPalette_HoOh), - SPECIES_SHINY_PAL(CELEBI, gMonShinyPalette_Celebi), - SPECIES_SHINY_PAL(TREECKO, gMonShinyPalette_Treecko), - SPECIES_SHINY_PAL(GROVYLE, gMonShinyPalette_Grovyle), - SPECIES_SHINY_PAL(SCEPTILE, gMonShinyPalette_Sceptile), - SPECIES_SHINY_PAL(TORCHIC, gMonShinyPalette_Torchic), - SPECIES_SHINY_PAL(COMBUSKEN, gMonShinyPalette_Combusken), - SPECIES_SHINY_PAL(BLAZIKEN, gMonShinyPalette_Blaziken), - SPECIES_SHINY_PAL(MUDKIP, gMonShinyPalette_Mudkip), - SPECIES_SHINY_PAL(MARSHTOMP, gMonShinyPalette_Marshtomp), - SPECIES_SHINY_PAL(SWAMPERT, gMonShinyPalette_Swampert), - SPECIES_SHINY_PAL(POOCHYENA, gMonShinyPalette_Poochyena), - SPECIES_SHINY_PAL(MIGHTYENA, gMonShinyPalette_Mightyena), - SPECIES_SHINY_PAL(ZIGZAGOON, gMonShinyPalette_Zigzagoon), - SPECIES_SHINY_PAL(LINOONE, gMonShinyPalette_Linoone), - SPECIES_SHINY_PAL(WURMPLE, gMonShinyPalette_Wurmple), - SPECIES_SHINY_PAL(SILCOON, gMonShinyPalette_Silcoon), - SPECIES_SHINY_PAL(BEAUTIFLY, gMonShinyPalette_Beautifly), - SPECIES_SHINY_PAL(CASCOON, gMonShinyPalette_Cascoon), - SPECIES_SHINY_PAL(DUSTOX, gMonShinyPalette_Dustox), - SPECIES_SHINY_PAL(LOTAD, gMonShinyPalette_Lotad), - SPECIES_SHINY_PAL(LOMBRE, gMonShinyPalette_Lombre), - SPECIES_SHINY_PAL(LUDICOLO, gMonShinyPalette_Ludicolo), - SPECIES_SHINY_PAL(SEEDOT, gMonShinyPalette_Seedot), - SPECIES_SHINY_PAL(NUZLEAF, gMonShinyPalette_Nuzleaf), - SPECIES_SHINY_PAL(SHIFTRY, gMonShinyPalette_Shiftry), - SPECIES_SHINY_PAL(NINCADA, gMonShinyPalette_Nincada), - SPECIES_SHINY_PAL(NINJASK, gMonShinyPalette_Ninjask), - SPECIES_SHINY_PAL(SHEDINJA, gMonShinyPalette_Shedinja), - SPECIES_SHINY_PAL(TAILLOW, gMonShinyPalette_Taillow), - SPECIES_SHINY_PAL(SWELLOW, gMonShinyPalette_Swellow), - SPECIES_SHINY_PAL(SHROOMISH, gMonShinyPalette_Shroomish), - SPECIES_SHINY_PAL(BRELOOM, gMonShinyPalette_Breloom), - SPECIES_SHINY_PAL(SPINDA, gMonShinyPalette_Spinda), - SPECIES_SHINY_PAL(WINGULL, gMonShinyPalette_Wingull), - SPECIES_SHINY_PAL(PELIPPER, gMonShinyPalette_Pelipper), - SPECIES_SHINY_PAL(SURSKIT, gMonShinyPalette_Surskit), - SPECIES_SHINY_PAL(MASQUERAIN, gMonShinyPalette_Masquerain), - SPECIES_SHINY_PAL(WAILMER, gMonShinyPalette_Wailmer), - SPECIES_SHINY_PAL(WAILORD, gMonShinyPalette_Wailord), - SPECIES_SHINY_PAL(SKITTY, gMonShinyPalette_Skitty), - SPECIES_SHINY_PAL(DELCATTY, gMonShinyPalette_Delcatty), - SPECIES_SHINY_PAL(KECLEON, gMonShinyPalette_Kecleon), - SPECIES_SHINY_PAL(BALTOY, gMonShinyPalette_Baltoy), - SPECIES_SHINY_PAL(CLAYDOL, gMonShinyPalette_Claydol), - SPECIES_SHINY_PAL(NOSEPASS, gMonShinyPalette_Nosepass), - SPECIES_SHINY_PAL(TORKOAL, gMonShinyPalette_Torkoal), - SPECIES_SHINY_PAL(SABLEYE, gMonShinyPalette_Sableye), - SPECIES_SHINY_PAL(BARBOACH, gMonShinyPalette_Barboach), - SPECIES_SHINY_PAL(WHISCASH, gMonShinyPalette_Whiscash), - SPECIES_SHINY_PAL(LUVDISC, gMonShinyPalette_Luvdisc), - SPECIES_SHINY_PAL(CORPHISH, gMonShinyPalette_Corphish), - SPECIES_SHINY_PAL(CRAWDAUNT, gMonShinyPalette_Crawdaunt), - SPECIES_SHINY_PAL(FEEBAS, gMonShinyPalette_Feebas), - SPECIES_SHINY_PAL(MILOTIC, gMonShinyPalette_Milotic), - SPECIES_SHINY_PAL(CARVANHA, gMonShinyPalette_Carvanha), - SPECIES_SHINY_PAL(SHARPEDO, gMonShinyPalette_Sharpedo), - SPECIES_SHINY_PAL(TRAPINCH, gMonShinyPalette_Trapinch), - SPECIES_SHINY_PAL(VIBRAVA, gMonShinyPalette_Vibrava), - SPECIES_SHINY_PAL(FLYGON, gMonShinyPalette_Flygon), - SPECIES_SHINY_PAL(MAKUHITA, gMonShinyPalette_Makuhita), - SPECIES_SHINY_PAL(HARIYAMA, gMonShinyPalette_Hariyama), - SPECIES_SHINY_PAL(ELECTRIKE, gMonShinyPalette_Electrike), - SPECIES_SHINY_PAL(MANECTRIC, gMonShinyPalette_Manectric), - SPECIES_SHINY_PAL(NUMEL, gMonShinyPalette_Numel), - SPECIES_SHINY_PAL(CAMERUPT, gMonShinyPalette_Camerupt), - SPECIES_SHINY_PAL(SPHEAL, gMonShinyPalette_Spheal), - SPECIES_SHINY_PAL(SEALEO, gMonShinyPalette_Sealeo), - SPECIES_SHINY_PAL(WALREIN, gMonShinyPalette_Walrein), - SPECIES_SHINY_PAL(CACNEA, gMonShinyPalette_Cacnea), - SPECIES_SHINY_PAL(CACTURNE, gMonShinyPalette_Cacturne), - SPECIES_SHINY_PAL(SNORUNT, gMonShinyPalette_Snorunt), - SPECIES_SHINY_PAL(GLALIE, gMonShinyPalette_Glalie), - SPECIES_SHINY_PAL(LUNATONE, gMonShinyPalette_Lunatone), - SPECIES_SHINY_PAL(SOLROCK, gMonShinyPalette_Solrock), - SPECIES_SHINY_PAL(AZURILL, gMonShinyPalette_Azurill), - SPECIES_SHINY_PAL(SPOINK, gMonShinyPalette_Spoink), - SPECIES_SHINY_PAL(GRUMPIG, gMonShinyPalette_Grumpig), - SPECIES_SHINY_PAL(PLUSLE, gMonShinyPalette_Plusle), - SPECIES_SHINY_PAL(MINUN, gMonShinyPalette_Minun), - SPECIES_SHINY_PAL(MAWILE, gMonShinyPalette_Mawile), - SPECIES_SHINY_PAL(MEDITITE, gMonShinyPalette_Meditite), - SPECIES_SHINY_PAL(MEDICHAM, gMonShinyPalette_Medicham), - SPECIES_SHINY_PAL(SWABLU, gMonShinyPalette_Swablu), - SPECIES_SHINY_PAL(ALTARIA, gMonShinyPalette_Altaria), - SPECIES_SHINY_PAL(WYNAUT, gMonShinyPalette_Wynaut), - SPECIES_SHINY_PAL(DUSKULL, gMonShinyPalette_Duskull), - SPECIES_SHINY_PAL(DUSCLOPS, gMonShinyPalette_Dusclops), - SPECIES_SHINY_PAL(ROSELIA, gMonShinyPalette_Roselia), - SPECIES_SHINY_PAL(SLAKOTH, gMonShinyPalette_Slakoth), - SPECIES_SHINY_PAL(VIGOROTH, gMonShinyPalette_Vigoroth), - SPECIES_SHINY_PAL(SLAKING, gMonShinyPalette_Slaking), - SPECIES_SHINY_PAL(GULPIN, gMonShinyPalette_Gulpin), - SPECIES_SHINY_PAL(SWALOT, gMonShinyPalette_Swalot), - SPECIES_SHINY_PAL(TROPIUS, gMonShinyPalette_Tropius), - SPECIES_SHINY_PAL(WHISMUR, gMonShinyPalette_Whismur), - SPECIES_SHINY_PAL(LOUDRED, gMonShinyPalette_Loudred), - SPECIES_SHINY_PAL(EXPLOUD, gMonShinyPalette_Exploud), - SPECIES_SHINY_PAL(CLAMPERL, gMonShinyPalette_Clamperl), - SPECIES_SHINY_PAL(HUNTAIL, gMonShinyPalette_Huntail), - SPECIES_SHINY_PAL(GOREBYSS, gMonShinyPalette_Gorebyss), - SPECIES_SHINY_PAL(ABSOL, gMonShinyPalette_Absol), - SPECIES_SHINY_PAL(SHUPPET, gMonShinyPalette_Shuppet), - SPECIES_SHINY_PAL(BANETTE, gMonShinyPalette_Banette), - SPECIES_SHINY_PAL(SEVIPER, gMonShinyPalette_Seviper), - SPECIES_SHINY_PAL(ZANGOOSE, gMonShinyPalette_Zangoose), - SPECIES_SHINY_PAL(RELICANTH, gMonShinyPalette_Relicanth), - SPECIES_SHINY_PAL(ARON, gMonShinyPalette_Aron), - SPECIES_SHINY_PAL(LAIRON, gMonShinyPalette_Lairon), - SPECIES_SHINY_PAL(AGGRON, gMonShinyPalette_Aggron), - SPECIES_SHINY_PAL(CASTFORM_NORMAL, gMonShinyPalette_CastformNormal), - SPECIES_SHINY_PAL(VOLBEAT, gMonShinyPalette_Volbeat), - SPECIES_SHINY_PAL(ILLUMISE, gMonShinyPalette_Illumise), - SPECIES_SHINY_PAL(LILEEP, gMonShinyPalette_Lileep), - SPECIES_SHINY_PAL(CRADILY, gMonShinyPalette_Cradily), - SPECIES_SHINY_PAL(ANORITH, gMonShinyPalette_Anorith), - SPECIES_SHINY_PAL(ARMALDO, gMonShinyPalette_Armaldo), - SPECIES_SHINY_PAL(RALTS, gMonShinyPalette_Ralts), - SPECIES_SHINY_PAL(KIRLIA, gMonShinyPalette_Kirlia), - SPECIES_SHINY_PAL(GARDEVOIR, gMonShinyPalette_Gardevoir), - SPECIES_SHINY_PAL(BAGON, gMonShinyPalette_Bagon), - SPECIES_SHINY_PAL(SHELGON, gMonShinyPalette_Shelgon), - SPECIES_SHINY_PAL(SALAMENCE, gMonShinyPalette_Salamence), - SPECIES_SHINY_PAL(BELDUM, gMonShinyPalette_Beldum), - SPECIES_SHINY_PAL(METANG, gMonShinyPalette_Metang), - SPECIES_SHINY_PAL(METAGROSS, gMonShinyPalette_Metagross), - SPECIES_SHINY_PAL(REGIROCK, gMonShinyPalette_Regirock), - SPECIES_SHINY_PAL(REGICE, gMonShinyPalette_Regice), - SPECIES_SHINY_PAL(REGISTEEL, gMonShinyPalette_Registeel), - SPECIES_SHINY_PAL(KYOGRE, gMonShinyPalette_Kyogre), - SPECIES_SHINY_PAL(GROUDON, gMonShinyPalette_Groudon), - SPECIES_SHINY_PAL(RAYQUAZA, gMonShinyPalette_Rayquaza), - SPECIES_SHINY_PAL(LATIAS, gMonShinyPalette_Latias), - SPECIES_SHINY_PAL(LATIOS, gMonShinyPalette_Latios), - SPECIES_SHINY_PAL(JIRACHI, gMonShinyPalette_Jirachi), - SPECIES_SHINY_PAL(DEOXYS_NORMAL, gMonShinyPalette_DeoxysNormal), - SPECIES_SHINY_PAL(CHIMECHO, gMonShinyPalette_Chimecho), -#if P_GEN_4_POKEMON == TRUE - SPECIES_SHINY_PAL(TURTWIG, gMonShinyPalette_Turtwig), - SPECIES_SHINY_PAL(GROTLE, gMonShinyPalette_Grotle), - SPECIES_SHINY_PAL(TORTERRA, gMonShinyPalette_Torterra), - SPECIES_SHINY_PAL(CHIMCHAR, gMonShinyPalette_Chimchar), - SPECIES_SHINY_PAL(MONFERNO, gMonShinyPalette_Monferno), - SPECIES_SHINY_PAL(INFERNAPE, gMonShinyPalette_Infernape), - SPECIES_SHINY_PAL(PIPLUP, gMonShinyPalette_Piplup), - SPECIES_SHINY_PAL(PRINPLUP, gMonShinyPalette_Prinplup), - SPECIES_SHINY_PAL(EMPOLEON, gMonShinyPalette_Empoleon), - SPECIES_SHINY_PAL(STARLY, gMonShinyPalette_Starly), - SPECIES_SHINY_PAL(STARAVIA, gMonShinyPalette_Staravia), - SPECIES_SHINY_PAL(STARAPTOR, gMonShinyPalette_Staraptor), - SPECIES_SHINY_PAL(BIDOOF, gMonShinyPalette_Bidoof), - SPECIES_SHINY_PAL(BIBAREL, gMonShinyPalette_Bibarel), - SPECIES_SHINY_PAL(KRICKETOT, gMonShinyPalette_Kricketot), - SPECIES_SHINY_PAL(KRICKETUNE, gMonShinyPalette_Kricketune), - SPECIES_SHINY_PAL(SHINX, gMonShinyPalette_Shinx), - SPECIES_SHINY_PAL(LUXIO, gMonShinyPalette_Luxio), - SPECIES_SHINY_PAL(LUXRAY, gMonShinyPalette_Luxray), - SPECIES_SHINY_PAL(BUDEW, gMonShinyPalette_Budew), - SPECIES_SHINY_PAL(ROSERADE, gMonShinyPalette_Roserade), - SPECIES_SHINY_PAL(CRANIDOS, gMonShinyPalette_Cranidos), - SPECIES_SHINY_PAL(RAMPARDOS, gMonShinyPalette_Rampardos), - SPECIES_SHINY_PAL(SHIELDON, gMonShinyPalette_Shieldon), - SPECIES_SHINY_PAL(BASTIODON, gMonShinyPalette_Bastiodon), - SPECIES_SHINY_PAL(BURMY_PLANT_CLOAK, gMonShinyPalette_BurmyPlantCloak), - SPECIES_SHINY_PAL(WORMADAM_PLANT_CLOAK, gMonShinyPalette_WormadamPlantCloak), - SPECIES_SHINY_PAL(MOTHIM, gMonShinyPalette_Mothim), - SPECIES_SHINY_PAL(COMBEE, gMonShinyPalette_Combee), - SPECIES_SHINY_PAL(VESPIQUEN, gMonShinyPalette_Vespiquen), - SPECIES_SHINY_PAL(PACHIRISU, gMonShinyPalette_Pachirisu), - SPECIES_SHINY_PAL(BUIZEL, gMonShinyPalette_Buizel), - SPECIES_SHINY_PAL(FLOATZEL, gMonShinyPalette_Floatzel), - SPECIES_SHINY_PAL(CHERUBI, gMonShinyPalette_Cherubi), - SPECIES_SHINY_PAL(CHERRIM_OVERCAST, gMonShinyPalette_CherrimOvercast), - SPECIES_SHINY_PAL(SHELLOS_WEST_SEA, gMonShinyPalette_ShellosWestSea), - SPECIES_SHINY_PAL(GASTRODON_WEST_SEA, gMonShinyPalette_GastrodonWestSea), - SPECIES_SHINY_PAL(AMBIPOM, gMonShinyPalette_Ambipom), - SPECIES_SHINY_PAL(DRIFLOON, gMonShinyPalette_Drifloon), - SPECIES_SHINY_PAL(DRIFBLIM, gMonShinyPalette_Drifblim), - SPECIES_SHINY_PAL(BUNEARY, gMonShinyPalette_Buneary), - SPECIES_SHINY_PAL(LOPUNNY, gMonShinyPalette_Lopunny), - SPECIES_SHINY_PAL(MISMAGIUS, gMonShinyPalette_Mismagius), - SPECIES_SHINY_PAL(HONCHKROW, gMonShinyPalette_Honchkrow), - SPECIES_SHINY_PAL(GLAMEOW, gMonShinyPalette_Glameow), - SPECIES_SHINY_PAL(PURUGLY, gMonShinyPalette_Purugly), - SPECIES_SHINY_PAL(CHINGLING, gMonShinyPalette_Chingling), - SPECIES_SHINY_PAL(STUNKY, gMonShinyPalette_Stunky), - SPECIES_SHINY_PAL(SKUNTANK, gMonShinyPalette_Skuntank), - SPECIES_SHINY_PAL(BRONZOR, gMonShinyPalette_Bronzor), - SPECIES_SHINY_PAL(BRONZONG, gMonShinyPalette_Bronzong), - SPECIES_SHINY_PAL(BONSLY, gMonShinyPalette_Bonsly), - SPECIES_SHINY_PAL(MIME_JR, gMonShinyPalette_MimeJr), - SPECIES_SHINY_PAL(HAPPINY, gMonShinyPalette_Happiny), - SPECIES_SHINY_PAL(CHATOT, gMonShinyPalette_Chatot), - SPECIES_SHINY_PAL(SPIRITOMB, gMonShinyPalette_Spiritomb), - SPECIES_SHINY_PAL(GIBLE, gMonShinyPalette_Gible), - SPECIES_SHINY_PAL(GABITE, gMonShinyPalette_Gabite), - SPECIES_SHINY_PAL(GARCHOMP, gMonShinyPalette_Garchomp), - SPECIES_SHINY_PAL(MUNCHLAX, gMonShinyPalette_Munchlax), - SPECIES_SHINY_PAL(RIOLU, gMonShinyPalette_Riolu), - SPECIES_SHINY_PAL(LUCARIO, gMonShinyPalette_Lucario), - SPECIES_SHINY_PAL(HIPPOPOTAS, gMonShinyPalette_Hippopotas), - SPECIES_SHINY_PAL(HIPPOWDON, gMonShinyPalette_Hippowdon), - SPECIES_SHINY_PAL(SKORUPI, gMonShinyPalette_Skorupi), - SPECIES_SHINY_PAL(DRAPION, gMonShinyPalette_Drapion), - SPECIES_SHINY_PAL(CROAGUNK, gMonShinyPalette_Croagunk), - SPECIES_SHINY_PAL(TOXICROAK, gMonShinyPalette_Toxicroak), - SPECIES_SHINY_PAL(CARNIVINE, gMonShinyPalette_Carnivine), - SPECIES_SHINY_PAL(FINNEON, gMonShinyPalette_Finneon), - SPECIES_SHINY_PAL(LUMINEON, gMonShinyPalette_Lumineon), - SPECIES_SHINY_PAL(MANTYKE, gMonShinyPalette_Mantyke), - SPECIES_SHINY_PAL(SNOVER, gMonShinyPalette_Snover), - SPECIES_SHINY_PAL(ABOMASNOW, gMonShinyPalette_Abomasnow), - SPECIES_SHINY_PAL(WEAVILE, gMonShinyPalette_Weavile), - SPECIES_SHINY_PAL(MAGNEZONE, gMonShinyPalette_Magnezone), - SPECIES_SHINY_PAL(LICKILICKY, gMonShinyPalette_Lickilicky), - SPECIES_SHINY_PAL(RHYPERIOR, gMonShinyPalette_Rhyperior), - SPECIES_SHINY_PAL(TANGROWTH, gMonShinyPalette_Tangrowth), - SPECIES_SHINY_PAL(ELECTIVIRE, gMonShinyPalette_Electivire), - SPECIES_SHINY_PAL(MAGMORTAR, gMonShinyPalette_Magmortar), - SPECIES_SHINY_PAL(TOGEKISS, gMonShinyPalette_Togekiss), - SPECIES_SHINY_PAL(YANMEGA, gMonShinyPalette_Yanmega), - SPECIES_SHINY_PAL(LEAFEON, gMonShinyPalette_Leafeon), - SPECIES_SHINY_PAL(GLACEON, gMonShinyPalette_Glaceon), - SPECIES_SHINY_PAL(GLISCOR, gMonShinyPalette_Gliscor), - SPECIES_SHINY_PAL(MAMOSWINE, gMonShinyPalette_Mamoswine), - SPECIES_SHINY_PAL(PORYGON_Z, gMonShinyPalette_PorygonZ), - SPECIES_SHINY_PAL(GALLADE, gMonShinyPalette_Gallade), - SPECIES_SHINY_PAL(PROBOPASS, gMonShinyPalette_Probopass), - SPECIES_SHINY_PAL(DUSKNOIR, gMonShinyPalette_Dusknoir), - SPECIES_SHINY_PAL(FROSLASS, gMonShinyPalette_Froslass), - SPECIES_SHINY_PAL(ROTOM, gMonShinyPalette_Rotom), - SPECIES_SHINY_PAL(UXIE, gMonShinyPalette_Uxie), - SPECIES_SHINY_PAL(MESPRIT, gMonShinyPalette_Mesprit), - SPECIES_SHINY_PAL(AZELF, gMonShinyPalette_Azelf), - SPECIES_SHINY_PAL(DIALGA, gMonShinyPalette_Dialga), - SPECIES_SHINY_PAL(PALKIA, gMonShinyPalette_Palkia), - SPECIES_SHINY_PAL(HEATRAN, gMonShinyPalette_Heatran), - SPECIES_SHINY_PAL(REGIGIGAS, gMonShinyPalette_Regigigas), - SPECIES_SHINY_PAL(GIRATINA_ALTERED, gMonShinyPalette_GiratinaAltered), - SPECIES_SHINY_PAL(CRESSELIA, gMonShinyPalette_Cresselia), - SPECIES_SHINY_PAL(PHIONE, gMonShinyPalette_Phione), - SPECIES_SHINY_PAL(MANAPHY, gMonShinyPalette_Manaphy), - SPECIES_SHINY_PAL(DARKRAI, gMonShinyPalette_Darkrai), - SPECIES_SHINY_PAL(SHAYMIN_LAND, gMonShinyPalette_ShayminLand), - SPECIES_SHINY_PAL(ARCEUS, gMonShinyPalette_Arceus), -#endif -#if P_GEN_5_POKEMON == TRUE - SPECIES_SHINY_PAL(VICTINI, gMonShinyPalette_Victini), - SPECIES_SHINY_PAL(SNIVY, gMonShinyPalette_Snivy), - SPECIES_SHINY_PAL(SERVINE, gMonShinyPalette_Servine), - SPECIES_SHINY_PAL(SERPERIOR, gMonShinyPalette_Serperior), - SPECIES_SHINY_PAL(TEPIG, gMonShinyPalette_Tepig), - SPECIES_SHINY_PAL(PIGNITE, gMonShinyPalette_Pignite), - SPECIES_SHINY_PAL(EMBOAR, gMonShinyPalette_Emboar), - SPECIES_SHINY_PAL(OSHAWOTT, gMonShinyPalette_Oshawott), - SPECIES_SHINY_PAL(DEWOTT, gMonShinyPalette_Dewott), - SPECIES_SHINY_PAL(SAMUROTT, gMonShinyPalette_Samurott), - SPECIES_SHINY_PAL(PATRAT, gMonShinyPalette_Patrat), - SPECIES_SHINY_PAL(WATCHOG, gMonShinyPalette_Watchog), - SPECIES_SHINY_PAL(LILLIPUP, gMonShinyPalette_Lillipup), - SPECIES_SHINY_PAL(HERDIER, gMonShinyPalette_Herdier), - SPECIES_SHINY_PAL(STOUTLAND, gMonShinyPalette_Stoutland), - SPECIES_SHINY_PAL(PURRLOIN, gMonShinyPalette_Purrloin), - SPECIES_SHINY_PAL(LIEPARD, gMonShinyPalette_Liepard), - SPECIES_SHINY_PAL(PANSAGE, gMonShinyPalette_Pansage), - SPECIES_SHINY_PAL(SIMISAGE, gMonShinyPalette_Simisage), - SPECIES_SHINY_PAL(PANSEAR, gMonShinyPalette_Pansear), - SPECIES_SHINY_PAL(SIMISEAR, gMonShinyPalette_Simisear), - SPECIES_SHINY_PAL(PANPOUR, gMonShinyPalette_Panpour), - SPECIES_SHINY_PAL(SIMIPOUR, gMonShinyPalette_Simipour), - SPECIES_SHINY_PAL(MUNNA, gMonShinyPalette_Munna), - SPECIES_SHINY_PAL(MUSHARNA, gMonShinyPalette_Musharna), - SPECIES_SHINY_PAL(PIDOVE, gMonShinyPalette_Pidove), - SPECIES_SHINY_PAL(TRANQUILL, gMonShinyPalette_Tranquill), - SPECIES_SHINY_PAL(UNFEZANT, gMonShinyPalette_Unfezant), - SPECIES_SHINY_PAL(BLITZLE, gMonShinyPalette_Blitzle), - SPECIES_SHINY_PAL(ZEBSTRIKA, gMonShinyPalette_Zebstrika), - SPECIES_SHINY_PAL(ROGGENROLA, gMonShinyPalette_Roggenrola), - SPECIES_SHINY_PAL(BOLDORE, gMonShinyPalette_Boldore), - SPECIES_SHINY_PAL(GIGALITH, gMonShinyPalette_Gigalith), - SPECIES_SHINY_PAL(WOOBAT, gMonShinyPalette_Woobat), - SPECIES_SHINY_PAL(SWOOBAT, gMonShinyPalette_Swoobat), - SPECIES_SHINY_PAL(DRILBUR, gMonShinyPalette_Drilbur), - SPECIES_SHINY_PAL(EXCADRILL, gMonShinyPalette_Excadrill), - SPECIES_SHINY_PAL(AUDINO, gMonShinyPalette_Audino), - SPECIES_SHINY_PAL(TIMBURR, gMonShinyPalette_Timburr), - SPECIES_SHINY_PAL(GURDURR, gMonShinyPalette_Gurdurr), - SPECIES_SHINY_PAL(CONKELDURR, gMonShinyPalette_Conkeldurr), - SPECIES_SHINY_PAL(TYMPOLE, gMonShinyPalette_Tympole), - SPECIES_SHINY_PAL(PALPITOAD, gMonShinyPalette_Palpitoad), - SPECIES_SHINY_PAL(SEISMITOAD, gMonShinyPalette_Seismitoad), - SPECIES_SHINY_PAL(THROH, gMonShinyPalette_Throh), - SPECIES_SHINY_PAL(SAWK, gMonShinyPalette_Sawk), - SPECIES_SHINY_PAL(SEWADDLE, gMonShinyPalette_Sewaddle), - SPECIES_SHINY_PAL(SWADLOON, gMonShinyPalette_Swadloon), - SPECIES_SHINY_PAL(LEAVANNY, gMonShinyPalette_Leavanny), - SPECIES_SHINY_PAL(VENIPEDE, gMonShinyPalette_Venipede), - SPECIES_SHINY_PAL(WHIRLIPEDE, gMonShinyPalette_Whirlipede), - SPECIES_SHINY_PAL(SCOLIPEDE, gMonShinyPalette_Scolipede), - SPECIES_SHINY_PAL(COTTONEE, gMonShinyPalette_Cottonee), - SPECIES_SHINY_PAL(WHIMSICOTT, gMonShinyPalette_Whimsicott), - SPECIES_SHINY_PAL(PETILIL, gMonShinyPalette_Petilil), - SPECIES_SHINY_PAL(LILLIGANT, gMonShinyPalette_Lilligant), - SPECIES_SHINY_PAL(BASCULIN, gMonShinyPalette_BasculinRedStriped), - SPECIES_SHINY_PAL(SANDILE, gMonShinyPalette_Sandile), - SPECIES_SHINY_PAL(KROKOROK, gMonShinyPalette_Krokorok), - SPECIES_SHINY_PAL(KROOKODILE, gMonShinyPalette_Krookodile), - SPECIES_SHINY_PAL(DARUMAKA, gMonShinyPalette_Darumaka), - SPECIES_SHINY_PAL(DARMANITAN_STANDARD_MODE, gMonShinyPalette_DarmanitanStandardMode), - SPECIES_SHINY_PAL(MARACTUS, gMonShinyPalette_Maractus), - SPECIES_SHINY_PAL(DWEBBLE, gMonShinyPalette_Dwebble), - SPECIES_SHINY_PAL(CRUSTLE, gMonShinyPalette_Crustle), - SPECIES_SHINY_PAL(SCRAGGY, gMonShinyPalette_Scraggy), - SPECIES_SHINY_PAL(SCRAFTY, gMonShinyPalette_Scrafty), - SPECIES_SHINY_PAL(SIGILYPH, gMonShinyPalette_Sigilyph), - SPECIES_SHINY_PAL(YAMASK, gMonShinyPalette_Yamask), - SPECIES_SHINY_PAL(COFAGRIGUS, gMonShinyPalette_Cofagrigus), - SPECIES_SHINY_PAL(TIRTOUGA, gMonShinyPalette_Tirtouga), - SPECIES_SHINY_PAL(CARRACOSTA, gMonShinyPalette_Carracosta), - SPECIES_SHINY_PAL(ARCHEN, gMonShinyPalette_Archen), - SPECIES_SHINY_PAL(ARCHEOPS, gMonShinyPalette_Archeops), - SPECIES_SHINY_PAL(TRUBBISH, gMonShinyPalette_Trubbish), - SPECIES_SHINY_PAL(GARBODOR, gMonShinyPalette_Garbodor), - SPECIES_SHINY_PAL(ZORUA, gMonShinyPalette_Zorua), - SPECIES_SHINY_PAL(ZOROARK, gMonShinyPalette_Zoroark), - SPECIES_SHINY_PAL(MINCCINO, gMonShinyPalette_Minccino), - SPECIES_SHINY_PAL(CINCCINO, gMonShinyPalette_Cinccino), - SPECIES_SHINY_PAL(GOTHITA, gMonShinyPalette_Gothita), - SPECIES_SHINY_PAL(GOTHORITA, gMonShinyPalette_Gothorita), - SPECIES_SHINY_PAL(GOTHITELLE, gMonShinyPalette_Gothitelle), - SPECIES_SHINY_PAL(SOLOSIS, gMonShinyPalette_Solosis), - SPECIES_SHINY_PAL(DUOSION, gMonShinyPalette_Duosion), - SPECIES_SHINY_PAL(REUNICLUS, gMonShinyPalette_Reuniclus), - SPECIES_SHINY_PAL(DUCKLETT, gMonShinyPalette_Ducklett), - SPECIES_SHINY_PAL(SWANNA, gMonShinyPalette_Swanna), - SPECIES_SHINY_PAL(VANILLITE, gMonShinyPalette_Vanillite), - SPECIES_SHINY_PAL(VANILLISH, gMonShinyPalette_Vanillish), - SPECIES_SHINY_PAL(VANILLUXE, gMonShinyPalette_Vanilluxe), - SPECIES_SHINY_PAL(DEERLING_SPRING, gMonShinyPalette_DeerlingSpring), - SPECIES_SHINY_PAL(SAWSBUCK_SPRING, gMonShinyPalette_SawsbuckSpring), - SPECIES_SHINY_PAL(EMOLGA, gMonShinyPalette_Emolga), - SPECIES_SHINY_PAL(KARRABLAST, gMonShinyPalette_Karrablast), - SPECIES_SHINY_PAL(ESCAVALIER, gMonShinyPalette_Escavalier), - SPECIES_SHINY_PAL(FOONGUS, gMonShinyPalette_Foongus), - SPECIES_SHINY_PAL(AMOONGUSS, gMonShinyPalette_Amoonguss), - SPECIES_SHINY_PAL(FRILLISH, gMonShinyPalette_Frillish), - SPECIES_SHINY_PAL(JELLICENT, gMonShinyPalette_Jellicent), - SPECIES_SHINY_PAL(ALOMOMOLA, gMonShinyPalette_Alomomola), - SPECIES_SHINY_PAL(JOLTIK, gMonShinyPalette_Joltik), - SPECIES_SHINY_PAL(GALVANTULA, gMonShinyPalette_Galvantula), - SPECIES_SHINY_PAL(FERROSEED, gMonShinyPalette_Ferroseed), - SPECIES_SHINY_PAL(FERROTHORN, gMonShinyPalette_Ferrothorn), - SPECIES_SHINY_PAL(KLINK, gMonShinyPalette_Klink), - SPECIES_SHINY_PAL(KLANG, gMonShinyPalette_Klang), - SPECIES_SHINY_PAL(KLINKLANG, gMonShinyPalette_Klinklang), - SPECIES_SHINY_PAL(TYNAMO, gMonShinyPalette_Tynamo), - SPECIES_SHINY_PAL(EELEKTRIK, gMonShinyPalette_Eelektrik), - SPECIES_SHINY_PAL(EELEKTROSS, gMonShinyPalette_Eelektross), - SPECIES_SHINY_PAL(ELGYEM, gMonShinyPalette_Elgyem), - SPECIES_SHINY_PAL(BEHEEYEM, gMonShinyPalette_Beheeyem), - SPECIES_SHINY_PAL(LITWICK, gMonShinyPalette_Litwick), - SPECIES_SHINY_PAL(LAMPENT, gMonShinyPalette_Lampent), - SPECIES_SHINY_PAL(CHANDELURE, gMonShinyPalette_Chandelure), - SPECIES_SHINY_PAL(AXEW, gMonShinyPalette_Axew), - SPECIES_SHINY_PAL(FRAXURE, gMonShinyPalette_Fraxure), - SPECIES_SHINY_PAL(HAXORUS, gMonShinyPalette_Haxorus), - SPECIES_SHINY_PAL(CUBCHOO, gMonShinyPalette_Cubchoo), - SPECIES_SHINY_PAL(BEARTIC, gMonShinyPalette_Beartic), - SPECIES_SHINY_PAL(CRYOGONAL, gMonShinyPalette_Cryogonal), - SPECIES_SHINY_PAL(SHELMET, gMonShinyPalette_Shelmet), - SPECIES_SHINY_PAL(ACCELGOR, gMonShinyPalette_Accelgor), - SPECIES_SHINY_PAL(STUNFISK, gMonShinyPalette_Stunfisk), - SPECIES_SHINY_PAL(MIENFOO, gMonShinyPalette_Mienfoo), - SPECIES_SHINY_PAL(MIENSHAO, gMonShinyPalette_Mienshao), - SPECIES_SHINY_PAL(DRUDDIGON, gMonShinyPalette_Druddigon), - SPECIES_SHINY_PAL(GOLETT, gMonShinyPalette_Golett), - SPECIES_SHINY_PAL(GOLURK, gMonShinyPalette_Golurk), - SPECIES_SHINY_PAL(PAWNIARD, gMonShinyPalette_Pawniard), - SPECIES_SHINY_PAL(BISHARP, gMonShinyPalette_Bisharp), - SPECIES_SHINY_PAL(BOUFFALANT, gMonShinyPalette_Bouffalant), - SPECIES_SHINY_PAL(RUFFLET, gMonShinyPalette_Rufflet), - SPECIES_SHINY_PAL(BRAVIARY, gMonShinyPalette_Braviary), - SPECIES_SHINY_PAL(VULLABY, gMonShinyPalette_Vullaby), - SPECIES_SHINY_PAL(MANDIBUZZ, gMonShinyPalette_Mandibuzz), - SPECIES_SHINY_PAL(HEATMOR, gMonShinyPalette_Heatmor), - SPECIES_SHINY_PAL(DURANT, gMonShinyPalette_Durant), - SPECIES_SHINY_PAL(DEINO, gMonShinyPalette_Deino), - SPECIES_SHINY_PAL(ZWEILOUS, gMonShinyPalette_Zweilous), - SPECIES_SHINY_PAL(HYDREIGON, gMonShinyPalette_Hydreigon), - SPECIES_SHINY_PAL(LARVESTA, gMonShinyPalette_Larvesta), - SPECIES_SHINY_PAL(VOLCARONA, gMonShinyPalette_Volcarona), - SPECIES_SHINY_PAL(COBALION, gMonShinyPalette_Cobalion), - SPECIES_SHINY_PAL(TERRAKION, gMonShinyPalette_Terrakion), - SPECIES_SHINY_PAL(VIRIZION, gMonShinyPalette_Virizion), - SPECIES_SHINY_PAL(TORNADUS_INCARNATE, gMonShinyPalette_TornadusIncarnate), - SPECIES_SHINY_PAL(THUNDURUS_INCARNATE, gMonShinyPalette_ThundurusIncarnate), - SPECIES_SHINY_PAL(RESHIRAM, gMonShinyPalette_Reshiram), - SPECIES_SHINY_PAL(ZEKROM, gMonShinyPalette_Zekrom), - SPECIES_SHINY_PAL(LANDORUS_INCARNATE, gMonShinyPalette_LandorusIncarnate), - SPECIES_SHINY_PAL(KYUREM, gMonShinyPalette_Kyurem), - SPECIES_SHINY_PAL(KELDEO_ORDINARY, gMonShinyPalette_KeldeoOrdinary), - SPECIES_SHINY_PAL(MELOETTA, gMonShinyPalette_MeloettaAria), - SPECIES_SHINY_PAL(GENESECT, gMonShinyPalette_Genesect), -#endif -#if P_GEN_6_POKEMON == TRUE - SPECIES_SHINY_PAL(CHESPIN, gMonShinyPalette_Chespin), - SPECIES_SHINY_PAL(QUILLADIN, gMonShinyPalette_Quilladin), - SPECIES_SHINY_PAL(CHESNAUGHT, gMonShinyPalette_Chesnaught), - SPECIES_SHINY_PAL(FENNEKIN, gMonShinyPalette_Fennekin), - SPECIES_SHINY_PAL(BRAIXEN, gMonShinyPalette_Braixen), - SPECIES_SHINY_PAL(DELPHOX, gMonShinyPalette_Delphox), - SPECIES_SHINY_PAL(FROAKIE, gMonShinyPalette_Froakie), - SPECIES_SHINY_PAL(FROGADIER, gMonShinyPalette_Frogadier), - SPECIES_SHINY_PAL(GRENINJA, gMonShinyPalette_Greninja), - SPECIES_SHINY_PAL(BUNNELBY, gMonShinyPalette_Bunnelby), - SPECIES_SHINY_PAL(DIGGERSBY, gMonShinyPalette_Diggersby), - SPECIES_SHINY_PAL(FLETCHLING, gMonShinyPalette_Fletchling), - SPECIES_SHINY_PAL(FLETCHINDER, gMonShinyPalette_Fletchinder), - SPECIES_SHINY_PAL(TALONFLAME, gMonShinyPalette_Talonflame), - SPECIES_SHINY_PAL(SCATTERBUG, gMonShinyPalette_Scatterbug), - SPECIES_SHINY_PAL(SPEWPA, gMonShinyPalette_Spewpa), - SPECIES_SHINY_PAL(VIVILLON_ICY_SNOW, gMonShinyPalette_VivillonIcySnow), - SPECIES_SHINY_PAL(LITLEO, gMonShinyPalette_Litleo), - SPECIES_SHINY_PAL(PYROAR, gMonShinyPalette_Pyroar), - SPECIES_SHINY_PAL(FLABEBE_RED_FLOWER, gMonShinyPalette_FlabebeRedFlower), - SPECIES_SHINY_PAL(FLOETTE_RED_FLOWER, gMonShinyPalette_FloetteRedFlower), - SPECIES_SHINY_PAL(FLORGES_RED_FLOWER, gMonShinyPalette_FlorgesRedFlower), - SPECIES_SHINY_PAL(SKIDDO, gMonShinyPalette_Skiddo), - SPECIES_SHINY_PAL(GOGOAT, gMonShinyPalette_Gogoat), - SPECIES_SHINY_PAL(PANCHAM, gMonShinyPalette_Pancham), - SPECIES_SHINY_PAL(PANGORO, gMonShinyPalette_Pangoro), - SPECIES_SHINY_PAL(FURFROU_NATURAL, gMonShinyPalette_FurfrouNatural), - SPECIES_SHINY_PAL(ESPURR, gMonShinyPalette_Espurr), - SPECIES_SHINY_PAL(MEOWSTIC_MALE, gMonShinyPalette_MeowsticMale), - SPECIES_SHINY_PAL(HONEDGE, gMonShinyPalette_Honedge), - SPECIES_SHINY_PAL(DOUBLADE, gMonShinyPalette_Doublade), - SPECIES_SHINY_PAL(AEGISLASH_SHIELD, gMonShinyPalette_AegislashShield), - SPECIES_SHINY_PAL(SPRITZEE, gMonShinyPalette_Spritzee), - SPECIES_SHINY_PAL(AROMATISSE, gMonShinyPalette_Aromatisse), - SPECIES_SHINY_PAL(SWIRLIX, gMonShinyPalette_Swirlix), - SPECIES_SHINY_PAL(SLURPUFF, gMonShinyPalette_Slurpuff), - SPECIES_SHINY_PAL(INKAY, gMonShinyPalette_Inkay), - SPECIES_SHINY_PAL(MALAMAR, gMonShinyPalette_Malamar), - SPECIES_SHINY_PAL(BINACLE, gMonShinyPalette_Binacle), - SPECIES_SHINY_PAL(BARBARACLE, gMonShinyPalette_Barbaracle), - SPECIES_SHINY_PAL(SKRELP, gMonShinyPalette_Skrelp), - SPECIES_SHINY_PAL(DRAGALGE, gMonShinyPalette_Dragalge), - SPECIES_SHINY_PAL(CLAUNCHER, gMonShinyPalette_Clauncher), - SPECIES_SHINY_PAL(CLAWITZER, gMonShinyPalette_Clawitzer), - SPECIES_SHINY_PAL(HELIOPTILE, gMonShinyPalette_Helioptile), - SPECIES_SHINY_PAL(HELIOLISK, gMonShinyPalette_Heliolisk), - SPECIES_SHINY_PAL(TYRUNT, gMonShinyPalette_Tyrunt), - SPECIES_SHINY_PAL(TYRANTRUM, gMonShinyPalette_Tyrantrum), - SPECIES_SHINY_PAL(AMAURA, gMonShinyPalette_Amaura), - SPECIES_SHINY_PAL(AURORUS, gMonShinyPalette_Aurorus), - SPECIES_SHINY_PAL(SYLVEON, gMonShinyPalette_Sylveon), - SPECIES_SHINY_PAL(HAWLUCHA, gMonShinyPalette_Hawlucha), - SPECIES_SHINY_PAL(DEDENNE, gMonShinyPalette_Dedenne), - SPECIES_SHINY_PAL(CARBINK, gMonShinyPalette_Carbink), - SPECIES_SHINY_PAL(GOOMY, gMonShinyPalette_Goomy), - SPECIES_SHINY_PAL(SLIGGOO, gMonShinyPalette_Sliggoo), - SPECIES_SHINY_PAL(GOODRA, gMonShinyPalette_Goodra), - SPECIES_SHINY_PAL(KLEFKI, gMonShinyPalette_Klefki), - SPECIES_SHINY_PAL(PHANTUMP, gMonShinyPalette_Phantump), - SPECIES_SHINY_PAL(TREVENANT, gMonShinyPalette_Trevenant), - SPECIES_SHINY_PAL(PUMPKABOO_AVERAGE, gMonShinyPalette_Pumpkaboo), - SPECIES_SHINY_PAL(GOURGEIST_AVERAGE, gMonShinyPalette_Gourgeist), - SPECIES_SHINY_PAL(BERGMITE, gMonShinyPalette_Bergmite), - SPECIES_SHINY_PAL(AVALUGG, gMonShinyPalette_Avalugg), - SPECIES_SHINY_PAL(NOIBAT, gMonShinyPalette_Noibat), - SPECIES_SHINY_PAL(NOIVERN, gMonShinyPalette_Noivern), - SPECIES_SHINY_PAL(XERNEAS_NEUTRAL, gMonShinyPalette_XerneasNeutral), - SPECIES_SHINY_PAL(YVELTAL, gMonShinyPalette_Yveltal), - SPECIES_SHINY_PAL(ZYGARDE_50_AURA_BREAK, gMonShinyPalette_Zygarde50), - SPECIES_SHINY_PAL(DIANCIE, gMonShinyPalette_Diancie), - SPECIES_SHINY_PAL(HOOPA_CONFINED, gMonShinyPalette_HoopaConfined), - SPECIES_SHINY_PAL(VOLCANION, gMonShinyPalette_Volcanion), -#endif -#if P_GEN_7_POKEMON == TRUE - SPECIES_SHINY_PAL(ROWLET, gMonShinyPalette_Rowlet), - SPECIES_SHINY_PAL(DARTRIX, gMonShinyPalette_Dartrix), - SPECIES_SHINY_PAL(DECIDUEYE, gMonShinyPalette_Decidueye), - SPECIES_SHINY_PAL(LITTEN, gMonShinyPalette_Litten), - SPECIES_SHINY_PAL(TORRACAT, gMonShinyPalette_Torracat), - SPECIES_SHINY_PAL(INCINEROAR, gMonShinyPalette_Incineroar), - SPECIES_SHINY_PAL(POPPLIO, gMonShinyPalette_Popplio), - SPECIES_SHINY_PAL(BRIONNE, gMonShinyPalette_Brionne), - SPECIES_SHINY_PAL(PRIMARINA, gMonShinyPalette_Primarina), - SPECIES_SHINY_PAL(PIKIPEK, gMonShinyPalette_Pikipek), - SPECIES_SHINY_PAL(TRUMBEAK, gMonShinyPalette_Trumbeak), - SPECIES_SHINY_PAL(TOUCANNON, gMonShinyPalette_Toucannon), - SPECIES_SHINY_PAL(YUNGOOS, gMonShinyPalette_Yungoos), - SPECIES_SHINY_PAL(GUMSHOOS, gMonShinyPalette_Gumshoos), - SPECIES_SHINY_PAL(GRUBBIN, gMonShinyPalette_Grubbin), - SPECIES_SHINY_PAL(CHARJABUG, gMonShinyPalette_Charjabug), - SPECIES_SHINY_PAL(VIKAVOLT, gMonShinyPalette_Vikavolt), - SPECIES_SHINY_PAL(CRABRAWLER, gMonShinyPalette_Crabrawler), - SPECIES_SHINY_PAL(CRABOMINABLE, gMonShinyPalette_Crabominable), - SPECIES_SHINY_PAL(ORICORIO_BAILE, gMonShinyPalette_OricorioBaile), - SPECIES_SHINY_PAL(CUTIEFLY, gMonShinyPalette_Cutiefly), - SPECIES_SHINY_PAL(RIBOMBEE, gMonShinyPalette_Ribombee), - SPECIES_SHINY_PAL(ROCKRUFF, gMonShinyPalette_Rockruff), - SPECIES_SHINY_PAL(LYCANROC_MIDDAY, gMonShinyPalette_LycanrocMidday), - SPECIES_SHINY_PAL(WISHIWASHI_SOLO, gMonShinyPalette_WishiwashiSolo), - SPECIES_SHINY_PAL(MAREANIE, gMonShinyPalette_Mareanie), - SPECIES_SHINY_PAL(TOXAPEX, gMonShinyPalette_Toxapex), - SPECIES_SHINY_PAL(MUDBRAY, gMonShinyPalette_Mudbray), - SPECIES_SHINY_PAL(MUDSDALE, gMonShinyPalette_Mudsdale), - SPECIES_SHINY_PAL(DEWPIDER, gMonShinyPalette_Dewpider), - SPECIES_SHINY_PAL(ARAQUANID, gMonShinyPalette_Araquanid), - SPECIES_SHINY_PAL(FOMANTIS, gMonShinyPalette_Fomantis), - SPECIES_SHINY_PAL(LURANTIS, gMonShinyPalette_Lurantis), - SPECIES_SHINY_PAL(MORELULL, gMonShinyPalette_Morelull), - SPECIES_SHINY_PAL(SHIINOTIC, gMonShinyPalette_Shiinotic), - SPECIES_SHINY_PAL(SALANDIT, gMonShinyPalette_Salandit), - SPECIES_SHINY_PAL(SALAZZLE, gMonShinyPalette_Salazzle), - SPECIES_SHINY_PAL(STUFFUL, gMonShinyPalette_Stufful), - SPECIES_SHINY_PAL(BEWEAR, gMonShinyPalette_Bewear), - SPECIES_SHINY_PAL(BOUNSWEET, gMonShinyPalette_Bounsweet), - SPECIES_SHINY_PAL(STEENEE, gMonShinyPalette_Steenee), - SPECIES_SHINY_PAL(TSAREENA, gMonShinyPalette_Tsareena), - SPECIES_SHINY_PAL(COMFEY, gMonShinyPalette_Comfey), - SPECIES_SHINY_PAL(ORANGURU, gMonShinyPalette_Oranguru), - SPECIES_SHINY_PAL(PASSIMIAN, gMonShinyPalette_Passimian), - SPECIES_SHINY_PAL(WIMPOD, gMonShinyPalette_Wimpod), - SPECIES_SHINY_PAL(GOLISOPOD, gMonShinyPalette_Golisopod), - SPECIES_SHINY_PAL(SANDYGAST, gMonShinyPalette_Sandygast), - SPECIES_SHINY_PAL(PALOSSAND, gMonShinyPalette_Palossand), - SPECIES_SHINY_PAL(PYUKUMUKU, gMonShinyPalette_Pyukumuku), - SPECIES_SHINY_PAL(TYPE_NULL, gMonShinyPalette_TypeNull), - SPECIES_SHINY_PAL(SILVALLY_NORMAL, gMonShinyPalette_SilvallyNormal), - SPECIES_SHINY_PAL(MINIOR_METEOR_RED, gMonShinyPalette_MiniorMeteor), - SPECIES_SHINY_PAL(KOMALA, gMonShinyPalette_Komala), - SPECIES_SHINY_PAL(TURTONATOR, gMonShinyPalette_Turtonator), - SPECIES_SHINY_PAL(TOGEDEMARU, gMonShinyPalette_Togedemaru), - SPECIES_SHINY_PAL(MIMIKYU_DISGUISED, gMonShinyPalette_MimikyuDisguised), - SPECIES_SHINY_PAL(BRUXISH, gMonShinyPalette_Bruxish), - SPECIES_SHINY_PAL(DRAMPA, gMonShinyPalette_Drampa), - SPECIES_SHINY_PAL(DHELMISE, gMonShinyPalette_Dhelmise), - SPECIES_SHINY_PAL(JANGMO_O, gMonShinyPalette_JangmoO), - SPECIES_SHINY_PAL(HAKAMO_O, gMonShinyPalette_HakamoO), - SPECIES_SHINY_PAL(KOMMO_O, gMonShinyPalette_KommoO), - SPECIES_SHINY_PAL(TAPU_KOKO, gMonShinyPalette_TapuKoko), - SPECIES_SHINY_PAL(TAPU_LELE, gMonShinyPalette_TapuLele), - SPECIES_SHINY_PAL(TAPU_BULU, gMonShinyPalette_TapuBulu), - SPECIES_SHINY_PAL(TAPU_FINI, gMonShinyPalette_TapuFini), - SPECIES_SHINY_PAL(COSMOG, gMonShinyPalette_Cosmog), - SPECIES_SHINY_PAL(COSMOEM, gMonShinyPalette_Cosmoem), - SPECIES_SHINY_PAL(SOLGALEO, gMonShinyPalette_Solgaleo), - SPECIES_SHINY_PAL(LUNALA, gMonShinyPalette_Lunala), - SPECIES_SHINY_PAL(NIHILEGO, gMonShinyPalette_Nihilego), - SPECIES_SHINY_PAL(BUZZWOLE, gMonShinyPalette_Buzzwole), - SPECIES_SHINY_PAL(PHEROMOSA, gMonShinyPalette_Pheromosa), - SPECIES_SHINY_PAL(XURKITREE, gMonShinyPalette_Xurkitree), - SPECIES_SHINY_PAL(CELESTEELA, gMonShinyPalette_Celesteela), - SPECIES_SHINY_PAL(KARTANA, gMonShinyPalette_Kartana), - SPECIES_SHINY_PAL(GUZZLORD, gMonShinyPalette_Guzzlord), - SPECIES_SHINY_PAL(NECROZMA, gMonShinyPalette_Necrozma), - SPECIES_SHINY_PAL(MAGEARNA, gMonShinyPalette_Magearna), - SPECIES_SHINY_PAL(MARSHADOW, gMonShinyPalette_Marshadow), - SPECIES_SHINY_PAL(POIPOLE, gMonShinyPalette_Poipole), - SPECIES_SHINY_PAL(NAGANADEL, gMonShinyPalette_Naganadel), - SPECIES_SHINY_PAL(STAKATAKA, gMonShinyPalette_Stakataka), - SPECIES_SHINY_PAL(BLACEPHALON, gMonShinyPalette_Blacephalon), - SPECIES_SHINY_PAL(ZERAORA, gMonShinyPalette_Zeraora), - SPECIES_SHINY_PAL(MELTAN, gMonShinyPalette_Meltan), - SPECIES_SHINY_PAL(MELMETAL, gMonShinyPalette_Melmetal), -#endif -#if P_GEN_8_POKEMON == TRUE - SPECIES_SHINY_PAL(GROOKEY, gMonShinyPalette_Grookey), - SPECIES_SHINY_PAL(THWACKEY, gMonShinyPalette_Thwackey), - SPECIES_SHINY_PAL(RILLABOOM, gMonShinyPalette_Rillaboom), - SPECIES_SHINY_PAL(SCORBUNNY, gMonShinyPalette_Scorbunny), - SPECIES_SHINY_PAL(RABOOT, gMonShinyPalette_Raboot), - SPECIES_SHINY_PAL(CINDERACE, gMonShinyPalette_Cinderace), - SPECIES_SHINY_PAL(SOBBLE, gMonShinyPalette_Sobble), - SPECIES_SHINY_PAL(DRIZZILE, gMonShinyPalette_Drizzile), - SPECIES_SHINY_PAL(INTELEON, gMonShinyPalette_Inteleon), - SPECIES_SHINY_PAL(SKWOVET, gMonShinyPalette_Skwovet), - SPECIES_SHINY_PAL(GREEDENT, gMonShinyPalette_Greedent), - SPECIES_SHINY_PAL(ROOKIDEE, gMonShinyPalette_Rookidee), - SPECIES_SHINY_PAL(CORVISQUIRE, gMonShinyPalette_Corvisquire), - SPECIES_SHINY_PAL(CORVIKNIGHT, gMonShinyPalette_Corviknight), - SPECIES_SHINY_PAL(BLIPBUG, gMonShinyPalette_Blipbug), - SPECIES_SHINY_PAL(DOTTLER, gMonShinyPalette_Dottler), - SPECIES_SHINY_PAL(ORBEETLE, gMonShinyPalette_Orbeetle), - SPECIES_SHINY_PAL(NICKIT, gMonShinyPalette_Nickit), - SPECIES_SHINY_PAL(THIEVUL, gMonShinyPalette_Thievul), - SPECIES_SHINY_PAL(GOSSIFLEUR, gMonShinyPalette_Gossifleur), - SPECIES_SHINY_PAL(ELDEGOSS, gMonShinyPalette_Eldegoss), - SPECIES_SHINY_PAL(WOOLOO, gMonShinyPalette_Wooloo), - SPECIES_SHINY_PAL(DUBWOOL, gMonShinyPalette_Dubwool), - SPECIES_SHINY_PAL(CHEWTLE, gMonShinyPalette_Chewtle), - SPECIES_SHINY_PAL(DREDNAW, gMonShinyPalette_Drednaw), - SPECIES_SHINY_PAL(YAMPER, gMonShinyPalette_Yamper), - SPECIES_SHINY_PAL(BOLTUND, gMonShinyPalette_Boltund), - SPECIES_SHINY_PAL(ROLYCOLY, gMonShinyPalette_Rolycoly), - SPECIES_SHINY_PAL(CARKOL, gMonShinyPalette_Carkol), - SPECIES_SHINY_PAL(COALOSSAL, gMonShinyPalette_Coalossal), - SPECIES_SHINY_PAL(APPLIN, gMonShinyPalette_Applin), - SPECIES_SHINY_PAL(FLAPPLE, gMonShinyPalette_Flapple), - SPECIES_SHINY_PAL(APPLETUN, gMonShinyPalette_Appletun), - SPECIES_SHINY_PAL(SILICOBRA, gMonShinyPalette_Silicobra), - SPECIES_SHINY_PAL(SANDACONDA, gMonShinyPalette_Sandaconda), - SPECIES_SHINY_PAL(CRAMORANT, gMonShinyPalette_Cramorant), - SPECIES_SHINY_PAL(ARROKUDA, gMonShinyPalette_Arrokuda), - SPECIES_SHINY_PAL(BARRASKEWDA, gMonShinyPalette_Barraskewda), - SPECIES_SHINY_PAL(TOXEL, gMonShinyPalette_Toxel), - SPECIES_SHINY_PAL(TOXTRICITY_AMPED, gMonShinyPalette_ToxtricityAmped), - SPECIES_SHINY_PAL(SIZZLIPEDE, gMonShinyPalette_Sizzlipede), - SPECIES_SHINY_PAL(CENTISKORCH, gMonShinyPalette_Centiskorch), - SPECIES_SHINY_PAL(CLOBBOPUS, gMonShinyPalette_Clobbopus), - SPECIES_SHINY_PAL(GRAPPLOCT, gMonShinyPalette_Grapploct), - SPECIES_SHINY_PAL(SINISTEA_PHONY, gMonShinyPalette_Sinistea), - SPECIES_SHINY_PAL(POLTEAGEIST_PHONY, gMonShinyPalette_Polteageist), - SPECIES_SHINY_PAL(HATENNA, gMonShinyPalette_Hatenna), - SPECIES_SHINY_PAL(HATTREM, gMonShinyPalette_Hattrem), - SPECIES_SHINY_PAL(HATTERENE, gMonShinyPalette_Hatterene), - SPECIES_SHINY_PAL(IMPIDIMP, gMonShinyPalette_Impidimp), - SPECIES_SHINY_PAL(MORGREM, gMonShinyPalette_Morgrem), - SPECIES_SHINY_PAL(GRIMMSNARL, gMonShinyPalette_Grimmsnarl), - SPECIES_SHINY_PAL(OBSTAGOON, gMonShinyPalette_Obstagoon), - SPECIES_SHINY_PAL(PERRSERKER, gMonShinyPalette_Perrserker), - SPECIES_SHINY_PAL(CURSOLA, gMonShinyPalette_Cursola), - SPECIES_SHINY_PAL(SIRFETCHD, gMonShinyPalette_Sirfetchd), - SPECIES_SHINY_PAL(MR_RIME, gMonShinyPalette_MrRime), - SPECIES_SHINY_PAL(RUNERIGUS, gMonShinyPalette_Runerigus), - SPECIES_SHINY_PAL(MILCERY, gMonShinyPalette_Milcery), - SPECIES_SHINY_PAL(ALCREMIE, gMonShinyPalette_Alcremie), - SPECIES_SHINY_PAL(FALINKS, gMonShinyPalette_Falinks), - SPECIES_SHINY_PAL(PINCURCHIN, gMonShinyPalette_Pincurchin), - SPECIES_SHINY_PAL(SNOM, gMonShinyPalette_Snom), - SPECIES_SHINY_PAL(FROSMOTH, gMonShinyPalette_Frosmoth), - SPECIES_SHINY_PAL(STONJOURNER, gMonShinyPalette_Stonjourner), - SPECIES_SHINY_PAL(EISCUE_ICE_FACE, gMonShinyPalette_EiscueIceFace), - SPECIES_SHINY_PAL(INDEEDEE_MALE, gMonShinyPalette_IndeedeeMale), - SPECIES_SHINY_PAL(MORPEKO_FULL_BELLY, gMonShinyPalette_MorpekoFullBelly), - SPECIES_SHINY_PAL(CUFANT, gMonShinyPalette_Cufant), - SPECIES_SHINY_PAL(COPPERAJAH, gMonShinyPalette_Copperajah), - SPECIES_SHINY_PAL(DRACOZOLT, gMonShinyPalette_Dracozolt), - SPECIES_SHINY_PAL(ARCTOZOLT, gMonShinyPalette_Arctozolt), - SPECIES_SHINY_PAL(DRACOVISH, gMonShinyPalette_Dracovish), - SPECIES_SHINY_PAL(ARCTOVISH, gMonShinyPalette_Arctovish), - SPECIES_SHINY_PAL(DURALUDON, gMonShinyPalette_Duraludon), - SPECIES_SHINY_PAL(DREEPY, gMonShinyPalette_Dreepy), - SPECIES_SHINY_PAL(DRAKLOAK, gMonShinyPalette_Drakloak), - SPECIES_SHINY_PAL(DRAGAPULT, gMonShinyPalette_Dragapult), - SPECIES_SHINY_PAL(ZACIAN_HERO_OF_MANY_BATTLES, gMonShinyPalette_ZacianHeroOfManyBattles), - SPECIES_SHINY_PAL(ZAMAZENTA_HERO_OF_MANY_BATTLES, gMonShinyPalette_ZamazentaHeroOfManyBattles), - SPECIES_SHINY_PAL(ETERNATUS, gMonShinyPalette_Eternatus), - SPECIES_SHINY_PAL(KUBFU, gMonShinyPalette_Kubfu), - SPECIES_SHINY_PAL(URSHIFU_SINGLE_STRIKE_STYLE, gMonShinyPalette_UrshifuSingleStrikeStyle), - SPECIES_SHINY_PAL(ZARUDE, gMonShinyPalette_Zarude), - SPECIES_SHINY_PAL(REGIELEKI, gMonShinyPalette_Regieleki), - SPECIES_SHINY_PAL(REGIDRAGO, gMonShinyPalette_Regidrago), - SPECIES_SHINY_PAL(GLASTRIER, gMonShinyPalette_Glastrier), - SPECIES_SHINY_PAL(SPECTRIER, gMonShinyPalette_Spectrier), - SPECIES_SHINY_PAL(CALYREX, gMonShinyPalette_Calyrex), - SPECIES_SHINY_PAL(WYRDEER, gMonShinyPalette_Wyrdeer), - SPECIES_SHINY_PAL(KLEAVOR, gMonShinyPalette_Kleavor), - SPECIES_SHINY_PAL(URSALUNA, gMonShinyPalette_Ursaluna), - SPECIES_SHINY_PAL(BASCULEGION_MALE, gMonShinyPalette_BasculegionMale), - SPECIES_SHINY_PAL(SNEASLER, gMonShinyPalette_Sneasler), - SPECIES_SHINY_PAL(OVERQWIL, gMonShinyPalette_Overqwil), - SPECIES_SHINY_PAL(ENAMORUS_INCARNATE, gMonShinyPalette_EnamorusIncarnate), -#endif - - SPECIES_SHINY_PAL(VENUSAUR_MEGA, gMonShinyPalette_VenusaurMega), - SPECIES_SHINY_PAL(CHARIZARD_MEGA_X, gMonShinyPalette_CharizardMegaX), - SPECIES_SHINY_PAL(CHARIZARD_MEGA_Y, gMonShinyPalette_CharizardMegaY), - SPECIES_SHINY_PAL(BLASTOISE_MEGA, gMonShinyPalette_BlastoiseMega), - SPECIES_SHINY_PAL(BEEDRILL_MEGA, gMonShinyPalette_BeedrillMega), - SPECIES_SHINY_PAL(PIDGEOT_MEGA, gMonShinyPalette_PidgeotMega), - SPECIES_SHINY_PAL(ALAKAZAM_MEGA, gMonShinyPalette_AlakazamMega), - SPECIES_SHINY_PAL(SLOWBRO_MEGA, gMonShinyPalette_SlowbroMega), - SPECIES_SHINY_PAL(GENGAR_MEGA, gMonShinyPalette_GengarMega), - SPECIES_SHINY_PAL(KANGASKHAN_MEGA, gMonShinyPalette_KangaskhanMega), - SPECIES_SHINY_PAL(PINSIR_MEGA, gMonShinyPalette_PinsirMega), - SPECIES_SHINY_PAL(GYARADOS_MEGA, gMonShinyPalette_GyaradosMega), - SPECIES_SHINY_PAL(AERODACTYL_MEGA, gMonShinyPalette_AerodactylMega), - SPECIES_SHINY_PAL(MEWTWO_MEGA_X, gMonShinyPalette_MewtwoMegaX), - SPECIES_SHINY_PAL(MEWTWO_MEGA_Y, gMonShinyPalette_MewtwoMegaY), - SPECIES_SHINY_PAL(AMPHAROS_MEGA, gMonShinyPalette_AmpharosMega), - SPECIES_SHINY_PAL(STEELIX_MEGA, gMonShinyPalette_SteelixMega), - SPECIES_SHINY_PAL(SCIZOR_MEGA, gMonShinyPalette_ScizorMega), - SPECIES_SHINY_PAL(HERACROSS_MEGA, gMonShinyPalette_HeracrossMega), - SPECIES_SHINY_PAL(HOUNDOOM_MEGA, gMonShinyPalette_HoundoomMega), - SPECIES_SHINY_PAL(TYRANITAR_MEGA, gMonShinyPalette_TyranitarMega), - SPECIES_SHINY_PAL(SCEPTILE_MEGA, gMonShinyPalette_SceptileMega), - SPECIES_SHINY_PAL(BLAZIKEN_MEGA, gMonShinyPalette_BlazikenMega), - SPECIES_SHINY_PAL(SWAMPERT_MEGA, gMonShinyPalette_SwampertMega), - SPECIES_SHINY_PAL(GARDEVOIR_MEGA, gMonShinyPalette_GardevoirMega), - SPECIES_SHINY_PAL(SABLEYE_MEGA, gMonShinyPalette_SableyeMega), - SPECIES_SHINY_PAL(MAWILE_MEGA, gMonShinyPalette_MawileMega), - SPECIES_SHINY_PAL(AGGRON_MEGA, gMonShinyPalette_AggronMega), - SPECIES_SHINY_PAL(MEDICHAM_MEGA, gMonShinyPalette_MedichamMega), - SPECIES_SHINY_PAL(MANECTRIC_MEGA, gMonShinyPalette_ManectricMega), - SPECIES_SHINY_PAL(SHARPEDO_MEGA, gMonShinyPalette_SharpedoMega), - SPECIES_SHINY_PAL(CAMERUPT_MEGA, gMonShinyPalette_CameruptMega), - SPECIES_SHINY_PAL(ALTARIA_MEGA, gMonShinyPalette_AltariaMega), - SPECIES_SHINY_PAL(BANETTE_MEGA, gMonShinyPalette_BanetteMega), - SPECIES_SHINY_PAL(ABSOL_MEGA, gMonShinyPalette_AbsolMega), - SPECIES_SHINY_PAL(GLALIE_MEGA, gMonShinyPalette_GlalieMega), - SPECIES_SHINY_PAL(SALAMENCE_MEGA, gMonShinyPalette_SalamenceMega), - SPECIES_SHINY_PAL(METAGROSS_MEGA, gMonShinyPalette_MetagrossMega), - SPECIES_SHINY_PAL(LATIAS_MEGA, gMonShinyPalette_LatiasMega), - SPECIES_SHINY_PAL(LATIOS_MEGA, gMonShinyPalette_LatiosMega), -#if P_GEN_4_POKEMON == TRUE - SPECIES_SHINY_PAL(LOPUNNY_MEGA, gMonShinyPalette_LopunnyMega), - SPECIES_SHINY_PAL(GARCHOMP_MEGA, gMonShinyPalette_GarchompMega), - SPECIES_SHINY_PAL(LUCARIO_MEGA, gMonShinyPalette_LucarioMega), - SPECIES_SHINY_PAL(ABOMASNOW_MEGA, gMonShinyPalette_AbomasnowMega), - SPECIES_SHINY_PAL(GALLADE_MEGA, gMonShinyPalette_GalladeMega), -#endif -#if P_GEN_5_POKEMON == TRUE - SPECIES_SHINY_PAL(AUDINO_MEGA, gMonShinyPalette_AudinoMega), -#endif -#if P_GEN_6_POKEMON == TRUE - SPECIES_SHINY_PAL(DIANCIE_MEGA, gMonShinyPalette_DiancieMega), -#endif - - SPECIES_SHINY_PAL(RAYQUAZA_MEGA, gMonShinyPalette_RayquazaMega), - SPECIES_SHINY_PAL(KYOGRE_PRIMAL, gMonShinyPalette_KyogrePrimal), - SPECIES_SHINY_PAL(GROUDON_PRIMAL, gMonShinyPalette_GroudonPrimal), - - SPECIES_SHINY_PAL(RATTATA_ALOLAN, gMonShinyPalette_RattataAlolan), - SPECIES_SHINY_PAL(RATICATE_ALOLAN, gMonShinyPalette_RaticateAlolan), - SPECIES_SHINY_PAL(RAICHU_ALOLAN, gMonShinyPalette_RaichuAlolan), - SPECIES_SHINY_PAL(SANDSHREW_ALOLAN, gMonShinyPalette_SandshrewAlolan), - SPECIES_SHINY_PAL(SANDSLASH_ALOLAN, gMonShinyPalette_SandslashAlolan), - SPECIES_SHINY_PAL(VULPIX_ALOLAN, gMonShinyPalette_VulpixAlolan), - SPECIES_SHINY_PAL(NINETALES_ALOLAN, gMonShinyPalette_NinetalesAlolan), - SPECIES_SHINY_PAL(DIGLETT_ALOLAN, gMonShinyPalette_DiglettAlolan), - SPECIES_SHINY_PAL(DUGTRIO_ALOLAN, gMonShinyPalette_DugtrioAlolan), - SPECIES_SHINY_PAL(MEOWTH_ALOLAN, gMonShinyPalette_MeowthAlolan), - SPECIES_SHINY_PAL(PERSIAN_ALOLAN, gMonShinyPalette_PersianAlolan), - SPECIES_SHINY_PAL(GEODUDE_ALOLAN, gMonShinyPalette_GeodudeAlolan), - SPECIES_SHINY_PAL(GRAVELER_ALOLAN, gMonShinyPalette_GravelerAlolan), - SPECIES_SHINY_PAL(GOLEM_ALOLAN, gMonShinyPalette_GolemAlolan), - SPECIES_SHINY_PAL(GRIMER_ALOLAN, gMonShinyPalette_GrimerAlolan), - SPECIES_SHINY_PAL(MUK_ALOLAN, gMonShinyPalette_MukAlolan), - SPECIES_SHINY_PAL(EXEGGUTOR_ALOLAN, gMonShinyPalette_ExeggutorAlolan), - SPECIES_SHINY_PAL(MAROWAK_ALOLAN, gMonShinyPalette_MarowakAlolan), - - SPECIES_SHINY_PAL(MEOWTH_GALARIAN, gMonShinyPalette_MeowthGalarian), - SPECIES_SHINY_PAL(PONYTA_GALARIAN, gMonShinyPalette_PonytaGalarian), - SPECIES_SHINY_PAL(RAPIDASH_GALARIAN, gMonShinyPalette_RapidashGalarian), - SPECIES_SHINY_PAL(SLOWPOKE_GALARIAN, gMonShinyPalette_SlowpokeGalarian), - SPECIES_SHINY_PAL(SLOWBRO_GALARIAN, gMonShinyPalette_SlowbroGalarian), - SPECIES_SHINY_PAL(FARFETCHD_GALARIAN, gMonShinyPalette_FarfetchdGalarian), - SPECIES_SHINY_PAL(WEEZING_GALARIAN, gMonShinyPalette_WeezingGalarian), - SPECIES_SHINY_PAL(MR_MIME_GALARIAN, gMonShinyPalette_MrMimeGalarian), - SPECIES_SHINY_PAL(ARTICUNO_GALARIAN, gMonShinyPalette_ArticunoGalarian), - SPECIES_SHINY_PAL(ZAPDOS_GALARIAN, gMonShinyPalette_ZapdosGalarian), - SPECIES_SHINY_PAL(MOLTRES_GALARIAN, gMonShinyPalette_MoltresGalarian), - SPECIES_SHINY_PAL(SLOWKING_GALARIAN, gMonShinyPalette_SlowkingGalarian), - SPECIES_SHINY_PAL(CORSOLA_GALARIAN, gMonShinyPalette_CorsolaGalarian), - SPECIES_SHINY_PAL(ZIGZAGOON_GALARIAN, gMonShinyPalette_ZigzagoonGalarian), - SPECIES_SHINY_PAL(LINOONE_GALARIAN, gMonShinyPalette_LinooneGalarian), -#if P_GEN_5_POKEMON == TRUE - SPECIES_SHINY_PAL(DARUMAKA_GALARIAN, gMonShinyPalette_DarumakaGalarian), - SPECIES_SHINY_PAL(DARMANITAN_GALARIAN_STANDARD_MODE, gMonShinyPalette_DarmanitanGalarianStandardMode), - SPECIES_SHINY_PAL(YAMASK_GALARIAN, gMonShinyPalette_YamaskGalarian), - SPECIES_SHINY_PAL(STUNFISK_GALARIAN, gMonShinyPalette_StunfiskGalarian), -#endif - - SPECIES_SHINY_PAL(GROWLITHE_HISUIAN, gMonShinyPalette_GrowlitheHisuian), - SPECIES_SHINY_PAL(ARCANINE_HISUIAN, gMonShinyPalette_ArcanineHisuian), - SPECIES_SHINY_PAL(VOLTORB_HISUIAN, gMonShinyPalette_VoltorbHisuian), - SPECIES_SHINY_PAL(ELECTRODE_HISUIAN, gMonShinyPalette_ElectrodeHisuian), - SPECIES_SHINY_PAL(TYPHLOSION_HISUIAN, gMonShinyPalette_TyphlosionHisuian), - SPECIES_SHINY_PAL(QWILFISH_HISUIAN, gMonShinyPalette_QwilfishHisuian), - SPECIES_SHINY_PAL(SNEASEL_HISUIAN, gMonShinyPalette_SneaselHisuian), -#if P_GEN_5_POKEMON == TRUE - SPECIES_SHINY_PAL(SAMUROTT_HISUIAN, gMonShinyPalette_SamurottHisuian), - SPECIES_SHINY_PAL(LILLIGANT_HISUIAN, gMonShinyPalette_LilligantHisuian), - SPECIES_SHINY_PAL(ZORUA_HISUIAN, gMonShinyPalette_ZoruaHisuian), - SPECIES_SHINY_PAL(ZOROARK_HISUIAN, gMonShinyPalette_ZoroarkHisuian), - SPECIES_SHINY_PAL(BRAVIARY_HISUIAN, gMonShinyPalette_BraviaryHisuian), -#endif -#if P_GEN_6_POKEMON == TRUE - SPECIES_SHINY_PAL(SLIGGOO_HISUIAN, gMonShinyPalette_SliggooHisuian), - SPECIES_SHINY_PAL(GOODRA_HISUIAN, gMonShinyPalette_GoodraHisuian), - SPECIES_SHINY_PAL(AVALUGG_HISUIAN, gMonShinyPalette_AvaluggHisuian), -#endif -#if P_GEN_7_POKEMON == TRUE - SPECIES_SHINY_PAL(DECIDUEYE_HISUIAN, gMonShinyPalette_DecidueyeHisuian), -#endif - - SPECIES_SHINY_PAL(PIKACHU_COSPLAY, gMonShinyPalette_PikachuCosplay), - SPECIES_SHINY_PAL(PIKACHU_ROCK_STAR, gMonShinyPalette_PikachuRockStar), - SPECIES_SHINY_PAL(PIKACHU_BELLE, gMonShinyPalette_PikachuBelle), - SPECIES_SHINY_PAL(PIKACHU_POP_STAR, gMonShinyPalette_PikachuPopStar), - SPECIES_SHINY_PAL(PIKACHU_PH_D, gMonShinyPalette_PikachuPhD), - SPECIES_SHINY_PAL(PIKACHU_LIBRE, gMonShinyPalette_PikachuLibre), - - SPECIES_SHINY_PAL(PIKACHU_ORIGINAL_CAP, gMonShinyPalette_PikachuOriginalCap), - SPECIES_SHINY_PAL(PIKACHU_HOENN_CAP, gMonShinyPalette_PikachuHoennCap), - SPECIES_SHINY_PAL(PIKACHU_SINNOH_CAP, gMonShinyPalette_PikachuSinnohCap), - SPECIES_SHINY_PAL(PIKACHU_UNOVA_CAP, gMonShinyPalette_PikachuUnovaCap), - SPECIES_SHINY_PAL(PIKACHU_KALOS_CAP, gMonShinyPalette_PikachuKalosCap), - SPECIES_SHINY_PAL(PIKACHU_ALOLA_CAP, gMonShinyPalette_PikachuAlolaCap), - SPECIES_SHINY_PAL(PIKACHU_PARTNER_CAP, gMonShinyPalette_PikachuPartnerCap), - SPECIES_SHINY_PAL(PIKACHU_WORLD_CAP, gMonShinyPalette_PikachuWorldCap), - - SPECIES_SHINY_PAL(PICHU_SPIKY_EARED, gMonShinyPalette_PichuSpikyEared), - - SPECIES_SHINY_PAL(UNOWN_B, gMonShinyPalette_Unown), - SPECIES_SHINY_PAL(UNOWN_C, gMonShinyPalette_Unown), - SPECIES_SHINY_PAL(UNOWN_D, gMonShinyPalette_Unown), - SPECIES_SHINY_PAL(UNOWN_E, gMonShinyPalette_Unown), - SPECIES_SHINY_PAL(UNOWN_F, gMonShinyPalette_Unown), - SPECIES_SHINY_PAL(UNOWN_G, gMonShinyPalette_Unown), - SPECIES_SHINY_PAL(UNOWN_H, gMonShinyPalette_Unown), - SPECIES_SHINY_PAL(UNOWN_I, gMonShinyPalette_Unown), - SPECIES_SHINY_PAL(UNOWN_J, gMonShinyPalette_Unown), - SPECIES_SHINY_PAL(UNOWN_K, gMonShinyPalette_Unown), - SPECIES_SHINY_PAL(UNOWN_L, gMonShinyPalette_Unown), - SPECIES_SHINY_PAL(UNOWN_M, gMonShinyPalette_Unown), - SPECIES_SHINY_PAL(UNOWN_N, gMonShinyPalette_Unown), - SPECIES_SHINY_PAL(UNOWN_O, gMonShinyPalette_Unown), - SPECIES_SHINY_PAL(UNOWN_P, gMonShinyPalette_Unown), - SPECIES_SHINY_PAL(UNOWN_Q, gMonShinyPalette_Unown), - SPECIES_SHINY_PAL(UNOWN_R, gMonShinyPalette_Unown), - SPECIES_SHINY_PAL(UNOWN_S, gMonShinyPalette_Unown), - SPECIES_SHINY_PAL(UNOWN_T, gMonShinyPalette_Unown), - SPECIES_SHINY_PAL(UNOWN_U, gMonShinyPalette_Unown), - SPECIES_SHINY_PAL(UNOWN_V, gMonShinyPalette_Unown), - SPECIES_SHINY_PAL(UNOWN_W, gMonShinyPalette_Unown), - SPECIES_SHINY_PAL(UNOWN_X, gMonShinyPalette_Unown), - SPECIES_SHINY_PAL(UNOWN_Y, gMonShinyPalette_Unown), - SPECIES_SHINY_PAL(UNOWN_Z, gMonShinyPalette_Unown), - SPECIES_SHINY_PAL(UNOWN_EMARK, gMonShinyPalette_Unown), - SPECIES_SHINY_PAL(UNOWN_QMARK, gMonShinyPalette_Unown), - - SPECIES_SHINY_PAL(CASTFORM_SUNNY, gMonShinyPalette_CastformSunny), - SPECIES_SHINY_PAL(CASTFORM_RAINY, gMonShinyPalette_CastformRainy), - SPECIES_SHINY_PAL(CASTFORM_SNOWY, gMonShinyPalette_CastformSnowy), - - SPECIES_SHINY_PAL(DEOXYS_ATTACK, gMonShinyPalette_DeoxysAttack), - SPECIES_SHINY_PAL(DEOXYS_DEFENSE, gMonShinyPalette_DeoxysDefense), - SPECIES_SHINY_PAL(DEOXYS_SPEED, gMonShinyPalette_DeoxysSpeed), -#if P_GEN_4_POKEMON == TRUE - SPECIES_SHINY_PAL(BURMY_SANDY_CLOAK, gMonShinyPalette_BurmySandyCloak), - SPECIES_SHINY_PAL(BURMY_TRASH_CLOAK, gMonShinyPalette_BurmyTrashCloak), - - SPECIES_SHINY_PAL(WORMADAM_SANDY_CLOAK, gMonShinyPalette_WormadamSandyCloak), - SPECIES_SHINY_PAL(WORMADAM_TRASH_CLOAK, gMonShinyPalette_WormadamTrashCloak), - - SPECIES_SHINY_PAL(CHERRIM_SUNSHINE, gMonShinyPalette_CherrimSunshine), - - SPECIES_SHINY_PAL(SHELLOS_EAST_SEA, gMonShinyPalette_ShellosEastSea), - - SPECIES_SHINY_PAL(GASTRODON_EAST_SEA, gMonShinyPalette_GastrodonEastSea), - - SPECIES_SHINY_PAL(ROTOM_HEAT, gMonShinyPalette_RotomHeat), - SPECIES_SHINY_PAL(ROTOM_WASH, gMonShinyPalette_RotomWash), - SPECIES_SHINY_PAL(ROTOM_FROST, gMonShinyPalette_RotomFrost), - SPECIES_SHINY_PAL(ROTOM_FAN, gMonShinyPalette_RotomFan), - SPECIES_SHINY_PAL(ROTOM_MOW, gMonShinyPalette_RotomMow), - - SPECIES_SHINY_PAL(DIALGA_ORIGIN, gMonShinyPalette_DialgaOrigin), - SPECIES_SHINY_PAL(PALKIA_ORIGIN, gMonShinyPalette_PalkiaOrigin), - SPECIES_SHINY_PAL(GIRATINA_ORIGIN, gMonShinyPalette_GiratinaOrigin), - - SPECIES_SHINY_PAL(SHAYMIN_SKY, gMonShinyPalette_ShayminSky), - - SPECIES_SHINY_PAL(ARCEUS_FIGHTING, gMonShinyPalette_ArceusFighting), - SPECIES_SHINY_PAL(ARCEUS_FLYING, gMonShinyPalette_ArceusFlying), - SPECIES_SHINY_PAL(ARCEUS_POISON, gMonShinyPalette_ArceusPoison), - SPECIES_SHINY_PAL(ARCEUS_GROUND, gMonShinyPalette_ArceusGround), - SPECIES_SHINY_PAL(ARCEUS_ROCK, gMonShinyPalette_ArceusRock), - SPECIES_SHINY_PAL(ARCEUS_BUG, gMonShinyPalette_ArceusBug), - SPECIES_SHINY_PAL(ARCEUS_GHOST, gMonShinyPalette_ArceusGhost), - SPECIES_SHINY_PAL(ARCEUS_STEEL, gMonShinyPalette_ArceusSteel), - SPECIES_SHINY_PAL(ARCEUS_FIRE, gMonShinyPalette_ArceusFire), - SPECIES_SHINY_PAL(ARCEUS_WATER, gMonShinyPalette_ArceusWater), - SPECIES_SHINY_PAL(ARCEUS_GRASS, gMonShinyPalette_ArceusGrass), - SPECIES_SHINY_PAL(ARCEUS_ELECTRIC, gMonShinyPalette_ArceusElectric), - SPECIES_SHINY_PAL(ARCEUS_PSYCHIC, gMonShinyPalette_ArceusPsychic), - SPECIES_SHINY_PAL(ARCEUS_ICE, gMonShinyPalette_ArceusIce), - SPECIES_SHINY_PAL(ARCEUS_DRAGON, gMonShinyPalette_ArceusDragon), - SPECIES_SHINY_PAL(ARCEUS_DARK, gMonShinyPalette_ArceusDark), - SPECIES_SHINY_PAL(ARCEUS_FAIRY, gMonShinyPalette_ArceusFairy), -#endif -#if P_GEN_5_POKEMON == TRUE - SPECIES_SHINY_PAL(BASCULIN_BLUE_STRIPED, gMonShinyPalette_BasculinBlueStriped), - SPECIES_SHINY_PAL(BASCULIN_WHITE_STRIPED, gMonShinyPalette_BasculinWhiteStriped), - - SPECIES_SHINY_PAL(DARMANITAN_ZEN_MODE, gMonShinyPalette_DarmanitanZenMode), - SPECIES_SHINY_PAL(DARMANITAN_GALARIAN_ZEN_MODE, gMonShinyPalette_DarmanitanGalarianZenMode), - - SPECIES_SHINY_PAL(DEERLING_SUMMER, gMonShinyPalette_DeerlingSummer), - SPECIES_SHINY_PAL(DEERLING_AUTUMN, gMonShinyPalette_DeerlingAutumn), - SPECIES_SHINY_PAL(DEERLING_WINTER, gMonShinyPalette_DeerlingWinter), - - SPECIES_SHINY_PAL(SAWSBUCK_SUMMER, gMonShinyPalette_SawsbuckSummer), - SPECIES_SHINY_PAL(SAWSBUCK_AUTUMN, gMonShinyPalette_SawsbuckAutumn), - SPECIES_SHINY_PAL(SAWSBUCK_WINTER, gMonShinyPalette_SawsbuckWinter), - - SPECIES_SHINY_PAL(TORNADUS_THERIAN, gMonShinyPalette_TornadusTherian), - SPECIES_SHINY_PAL(THUNDURUS_THERIAN, gMonShinyPalette_ThundurusTherian), - SPECIES_SHINY_PAL(LANDORUS_THERIAN, gMonShinyPalette_LandorusTherian), - - SPECIES_SHINY_PAL(KYUREM_WHITE, gMonShinyPalette_KyuremWhite), - SPECIES_SHINY_PAL(KYUREM_BLACK, gMonShinyPalette_KyuremBlack), - - SPECIES_SHINY_PAL(KELDEO_RESOLUTE, gMonShinyPalette_KeldeoResolute), - - SPECIES_SHINY_PAL(MELOETTA_PIROUETTE, gMonShinyPalette_MeloettaPirouette), - - SPECIES_SHINY_PAL(GENESECT_DOUSE_DRIVE, gMonShinyPalette_GenesectDouseDrive), - SPECIES_SHINY_PAL(GENESECT_SHOCK_DRIVE, gMonShinyPalette_GenesectShockDrive), - SPECIES_SHINY_PAL(GENESECT_BURN_DRIVE, gMonShinyPalette_GenesectBurnDrive), - SPECIES_SHINY_PAL(GENESECT_CHILL_DRIVE, gMonShinyPalette_GenesectChillDrive), -#endif -#if P_GEN_6_POKEMON == TRUE - SPECIES_SHINY_PAL(GRENINJA_BATTLE_BOND, gMonShinyPalette_Greninja), - SPECIES_SHINY_PAL(GRENINJA_ASH, gMonShinyPalette_GreninjaAsh), - - SPECIES_SHINY_PAL(VIVILLON_POLAR, gMonShinyPalette_VivillonPolar), - SPECIES_SHINY_PAL(VIVILLON_TUNDRA, gMonShinyPalette_VivillonTundra), - SPECIES_SHINY_PAL(VIVILLON_CONTINENTAL, gMonShinyPalette_VivillonContinental), - SPECIES_SHINY_PAL(VIVILLON_GARDEN, gMonShinyPalette_VivillonGarden), - SPECIES_SHINY_PAL(VIVILLON_ELEGANT, gMonShinyPalette_VivillonElegant), - SPECIES_SHINY_PAL(VIVILLON_MEADOW, gMonShinyPalette_VivillonMeadow), - SPECIES_SHINY_PAL(VIVILLON_MODERN, gMonShinyPalette_VivillonModern), - SPECIES_SHINY_PAL(VIVILLON_MARINE, gMonShinyPalette_VivillonMarine), - SPECIES_SHINY_PAL(VIVILLON_ARCHIPELAGO, gMonShinyPalette_VivillonArchipelago), - SPECIES_SHINY_PAL(VIVILLON_HIGH_PLAINS, gMonShinyPalette_VivillonHighPlains), - SPECIES_SHINY_PAL(VIVILLON_SANDSTORM, gMonShinyPalette_VivillonSandstorm), - SPECIES_SHINY_PAL(VIVILLON_RIVER, gMonShinyPalette_VivillonRiver), - SPECIES_SHINY_PAL(VIVILLON_MONSOON, gMonShinyPalette_VivillonMonsoon), - SPECIES_SHINY_PAL(VIVILLON_SAVANNA, gMonShinyPalette_VivillonSavanna), - SPECIES_SHINY_PAL(VIVILLON_SUN, gMonShinyPalette_VivillonSun), - SPECIES_SHINY_PAL(VIVILLON_OCEAN, gMonShinyPalette_VivillonOcean), - SPECIES_SHINY_PAL(VIVILLON_JUNGLE, gMonShinyPalette_VivillonJungle), - SPECIES_SHINY_PAL(VIVILLON_FANCY, gMonShinyPalette_VivillonFancy), - SPECIES_SHINY_PAL(VIVILLON_POKE_BALL, gMonShinyPalette_VivillonPokeBall), - - SPECIES_SHINY_PAL(FLABEBE_YELLOW_FLOWER, gMonShinyPalette_FlabebeYellowFlower), - SPECIES_SHINY_PAL(FLABEBE_ORANGE_FLOWER, gMonShinyPalette_FlabebeOrangeFlower), - SPECIES_SHINY_PAL(FLABEBE_BLUE_FLOWER, gMonShinyPalette_FlabebeBlueFlower), - SPECIES_SHINY_PAL(FLABEBE_WHITE_FLOWER, gMonShinyPalette_FlabebeWhiteFlower), - - SPECIES_SHINY_PAL(FLOETTE_YELLOW_FLOWER, gMonShinyPalette_FloetteYellowFlower), - SPECIES_SHINY_PAL(FLOETTE_ORANGE_FLOWER, gMonShinyPalette_FloetteOrangeFlower), - SPECIES_SHINY_PAL(FLOETTE_BLUE_FLOWER, gMonShinyPalette_FloetteBlueFlower), - SPECIES_SHINY_PAL(FLOETTE_WHITE_FLOWER, gMonShinyPalette_FloetteWhiteFlower), - SPECIES_SHINY_PAL(FLOETTE_ETERNAL_FLOWER, gMonShinyPalette_FloetteEternalFlower), - - SPECIES_SHINY_PAL(FLORGES_YELLOW_FLOWER, gMonShinyPalette_FlorgesYellowFlower), - SPECIES_SHINY_PAL(FLORGES_ORANGE_FLOWER, gMonShinyPalette_FlorgesOrangeFlower), - SPECIES_SHINY_PAL(FLORGES_BLUE_FLOWER, gMonShinyPalette_FlorgesBlueFlower), - SPECIES_SHINY_PAL(FLORGES_WHITE_FLOWER, gMonShinyPalette_FlorgesWhiteFlower), - - SPECIES_SHINY_PAL(FURFROU_HEART_TRIM, gMonShinyPalette_FurfrouHeartTrim), - SPECIES_SHINY_PAL(FURFROU_STAR_TRIM, gMonShinyPalette_FurfrouStarTrim), - SPECIES_SHINY_PAL(FURFROU_DIAMOND_TRIM, gMonShinyPalette_FurfrouDiamondTrim), - SPECIES_SHINY_PAL(FURFROU_DEBUTANTE_TRIM, gMonShinyPalette_FurfrouDebutanteTrim), - SPECIES_SHINY_PAL(FURFROU_MATRON_TRIM, gMonShinyPalette_FurfrouMatronTrim), - SPECIES_SHINY_PAL(FURFROU_DANDY_TRIM, gMonShinyPalette_FurfrouDandyTrim), - SPECIES_SHINY_PAL(FURFROU_LA_REINE_TRIM, gMonShinyPalette_FurfrouLaReineTrim), - SPECIES_SHINY_PAL(FURFROU_KABUKI_TRIM, gMonShinyPalette_FurfrouKabukiTrim), - SPECIES_SHINY_PAL(FURFROU_PHARAOH_TRIM, gMonShinyPalette_FurfrouPharaohTrim), - - SPECIES_SHINY_PAL(MEOWSTIC_FEMALE, gMonShinyPalette_MeowsticFemale), - - SPECIES_SHINY_PAL(AEGISLASH_BLADE, gMonShinyPalette_AegislashBlade), - - SPECIES_SHINY_PAL(PUMPKABOO_SMALL, gMonShinyPalette_Pumpkaboo), - SPECIES_SHINY_PAL(PUMPKABOO_LARGE, gMonShinyPalette_Pumpkaboo), - SPECIES_SHINY_PAL(PUMPKABOO_SUPER, gMonShinyPalette_Pumpkaboo), - - SPECIES_SHINY_PAL(GOURGEIST_SMALL, gMonShinyPalette_Gourgeist), - SPECIES_SHINY_PAL(GOURGEIST_LARGE, gMonShinyPalette_Gourgeist), - SPECIES_SHINY_PAL(GOURGEIST_SUPER, gMonShinyPalette_Gourgeist), - - SPECIES_SHINY_PAL(XERNEAS_ACTIVE, gMonShinyPalette_XerneasActive), - - SPECIES_SHINY_PAL(ZYGARDE_10, gMonShinyPalette_Zygarde10), - SPECIES_SHINY_PAL(ZYGARDE_10_POWER_CONSTRUCT, gMonShinyPalette_Zygarde10), - SPECIES_SHINY_PAL(ZYGARDE_50_POWER_CONSTRUCT, gMonShinyPalette_Zygarde50), - SPECIES_SHINY_PAL(ZYGARDE_COMPLETE, gMonShinyPalette_ZygardeComplete), - - SPECIES_SHINY_PAL(HOOPA_UNBOUND, gMonShinyPalette_HoopaUnbound), -#endif - -#if P_GEN_7_POKEMON == TRUE - SPECIES_SHINY_PAL(ORICORIO_POM_POM, gMonShinyPalette_OricorioPomPom), - SPECIES_SHINY_PAL(ORICORIO_PAU, gMonShinyPalette_OricorioPau), - SPECIES_SHINY_PAL(ORICORIO_SENSU, gMonShinyPalette_OricorioSensu), - - SPECIES_SHINY_PAL(ROCKRUFF_OWN_TEMPO, gMonShinyPalette_Rockruff), - - SPECIES_SHINY_PAL(LYCANROC_MIDNIGHT, gMonShinyPalette_LycanrocMidnight), - SPECIES_SHINY_PAL(LYCANROC_DUSK, gMonShinyPalette_LycanrocDusk), - - SPECIES_SHINY_PAL(WISHIWASHI_SCHOOL, gMonShinyPalette_WishiwashiSchool), - - SPECIES_SHINY_PAL(SILVALLY_FIGHTING, gMonShinyPalette_SilvallyFighting), - SPECIES_SHINY_PAL(SILVALLY_FLYING, gMonShinyPalette_SilvallyFlying), - SPECIES_SHINY_PAL(SILVALLY_POISON, gMonShinyPalette_SilvallyPoison), - SPECIES_SHINY_PAL(SILVALLY_GROUND, gMonShinyPalette_SilvallyGround), - SPECIES_SHINY_PAL(SILVALLY_ROCK, gMonShinyPalette_SilvallyRock), - SPECIES_SHINY_PAL(SILVALLY_BUG, gMonShinyPalette_SilvallyBug), - SPECIES_SHINY_PAL(SILVALLY_GHOST, gMonShinyPalette_SilvallyGhost), - SPECIES_SHINY_PAL(SILVALLY_STEEL, gMonShinyPalette_SilvallySteel), - SPECIES_SHINY_PAL(SILVALLY_FIRE, gMonShinyPalette_SilvallyFire), - SPECIES_SHINY_PAL(SILVALLY_WATER, gMonShinyPalette_SilvallyWater), - SPECIES_SHINY_PAL(SILVALLY_GRASS, gMonShinyPalette_SilvallyGrass), - SPECIES_SHINY_PAL(SILVALLY_ELECTRIC, gMonShinyPalette_SilvallyElectric), - SPECIES_SHINY_PAL(SILVALLY_PSYCHIC, gMonShinyPalette_SilvallyPsychic), - SPECIES_SHINY_PAL(SILVALLY_ICE, gMonShinyPalette_SilvallyIce), - SPECIES_SHINY_PAL(SILVALLY_DRAGON, gMonShinyPalette_SilvallyDragon), - SPECIES_SHINY_PAL(SILVALLY_DARK, gMonShinyPalette_SilvallyDark), - SPECIES_SHINY_PAL(SILVALLY_FAIRY, gMonShinyPalette_SilvallyFairy), - - SPECIES_SHINY_PAL(MINIOR_METEOR_ORANGE, gMonShinyPalette_MiniorMeteor), - SPECIES_SHINY_PAL(MINIOR_METEOR_YELLOW, gMonShinyPalette_MiniorMeteor), - SPECIES_SHINY_PAL(MINIOR_METEOR_GREEN, gMonShinyPalette_MiniorMeteor), - SPECIES_SHINY_PAL(MINIOR_METEOR_BLUE, gMonShinyPalette_MiniorMeteor), - SPECIES_SHINY_PAL(MINIOR_METEOR_INDIGO, gMonShinyPalette_MiniorMeteor), - SPECIES_SHINY_PAL(MINIOR_METEOR_VIOLET, gMonShinyPalette_MiniorMeteor), - SPECIES_SHINY_PAL(MINIOR_CORE_RED, gMonShinyPalette_MiniorCore), - SPECIES_SHINY_PAL(MINIOR_CORE_ORANGE, gMonShinyPalette_MiniorCore), - SPECIES_SHINY_PAL(MINIOR_CORE_YELLOW, gMonShinyPalette_MiniorCore), - SPECIES_SHINY_PAL(MINIOR_CORE_GREEN, gMonShinyPalette_MiniorCore), - SPECIES_SHINY_PAL(MINIOR_CORE_BLUE, gMonShinyPalette_MiniorCore), - SPECIES_SHINY_PAL(MINIOR_CORE_INDIGO, gMonShinyPalette_MiniorCore), - SPECIES_SHINY_PAL(MINIOR_CORE_VIOLET, gMonShinyPalette_MiniorCore), - - SPECIES_SHINY_PAL(MIMIKYU_BUSTED, gMonShinyPalette_MimikyuBusted), - - SPECIES_SHINY_PAL(NECROZMA_DUSK_MANE, gMonShinyPalette_NecrozmaDuskMane), - SPECIES_SHINY_PAL(NECROZMA_DAWN_WINGS, gMonShinyPalette_NecrozmaDawnWings), - SPECIES_SHINY_PAL(NECROZMA_ULTRA, gMonShinyPalette_NecrozmaUltra), - - SPECIES_SHINY_PAL(MAGEARNA_ORIGINAL_COLOR, gMonShinyPalette_MagearnaOriginalColor), -#endif - -#if P_GEN_8_POKEMON == TRUE - SPECIES_SHINY_PAL(CRAMORANT_GULPING, gMonShinyPalette_CramorantGulping), - SPECIES_SHINY_PAL(CRAMORANT_GORGING, gMonShinyPalette_CramorantGorging), - - SPECIES_SHINY_PAL(TOXTRICITY_LOW_KEY, gMonShinyPalette_ToxtricityLowKey), - - SPECIES_SHINY_PAL(SINISTEA_ANTIQUE, gMonShinyPalette_Sinistea), - - SPECIES_SHINY_PAL(POLTEAGEIST_ANTIQUE, gMonShinyPalette_Polteageist), - - SPECIES_SHINY_PAL(ALCREMIE_RUBY_CREAM, gMonShinyPalette_AlcremieRubyCream), - SPECIES_SHINY_PAL(ALCREMIE_MATCHA_CREAM, gMonShinyPalette_AlcremieMatchaCream), - SPECIES_SHINY_PAL(ALCREMIE_MINT_CREAM, gMonShinyPalette_AlcremieMintCream), - SPECIES_SHINY_PAL(ALCREMIE_LEMON_CREAM, gMonShinyPalette_AlcremieLemonCream), - SPECIES_SHINY_PAL(ALCREMIE_SALTED_CREAM, gMonShinyPalette_AlcremieSaltedCream), - SPECIES_SHINY_PAL(ALCREMIE_RUBY_SWIRL, gMonShinyPalette_AlcremieRubySwirl), - SPECIES_SHINY_PAL(ALCREMIE_CARAMEL_SWIRL, gMonShinyPalette_AlcremieCaramelSwirl), - SPECIES_SHINY_PAL(ALCREMIE_RAINBOW_SWIRL, gMonShinyPalette_AlcremieRainbowSwirl), - - SPECIES_SHINY_PAL(EISCUE_NOICE_FACE, gMonShinyPalette_EiscueNoiceFace), - - SPECIES_SHINY_PAL(INDEEDEE_FEMALE, gMonShinyPalette_IndeedeeFemale), - - SPECIES_SHINY_PAL(MORPEKO_HANGRY, gMonShinyPalette_MorpekoHangry), - - SPECIES_SHINY_PAL(ZACIAN_CROWNED_SWORD, gMonShinyPalette_ZacianCrownedSword), - - SPECIES_SHINY_PAL(ZAMAZENTA_CROWNED_SHIELD, gMonShinyPalette_ZamazentaCrownedShield), - - SPECIES_SHINY_PAL(ETERNATUS_ETERNAMAX, gMonShinyPalette_EternatusEternamax), - - SPECIES_SHINY_PAL(URSHIFU_RAPID_STRIKE_STYLE, gMonShinyPalette_UrshifuRapidStrikeStyle), - - SPECIES_SHINY_PAL(ZARUDE_DADA, gMonShinyPalette_ZarudeDada), - - SPECIES_SHINY_PAL(CALYREX_ICE_RIDER, gMonShinyPalette_CalyrexIceRider), - SPECIES_SHINY_PAL(CALYREX_SHADOW_RIDER, gMonShinyPalette_CalyrexShadowRider), - - SPECIES_SHINY_PAL(ENAMORUS_THERIAN, gMonShinyPalette_EnamorusTherian), - - SPECIES_SHINY_PAL(BASCULEGION_FEMALE, gMonShinyPalette_BasculegionFemale), - - // Gigantamax Forms - SPECIES_SHINY_PAL(VENUSAUR_GIGANTAMAX, gMonShinyPalette_VenusaurGigantamax), - SPECIES_SHINY_PAL(CHARIZARD_GIGANTAMAX, gMonShinyPalette_CharizardGigantamax), - SPECIES_SHINY_PAL(BLASTOISE_GIGANTAMAX, gMonShinyPalette_BlastoiseGigantamax), - SPECIES_SHINY_PAL(BUTTERFREE_GIGANTAMAX, gMonShinyPalette_ButterfreeGigantamax), - SPECIES_SHINY_PAL(PIKACHU_GIGANTAMAX, gMonShinyPalette_PikachuGigantamax), - SPECIES_SHINY_PAL(MEOWTH_GIGANTAMAX, gMonShinyPalette_MeowthGigantamax), - SPECIES_SHINY_PAL(MACHAMP_GIGANTAMAX, gMonShinyPalette_MachampGigantamax), - SPECIES_SHINY_PAL(GENGAR_GIGANTAMAX, gMonShinyPalette_GengarGigantamax), - SPECIES_SHINY_PAL(KINGLER_GIGANTAMAX, gMonShinyPalette_KinglerGigantamax), - SPECIES_SHINY_PAL(LAPRAS_GIGANTAMAX, gMonShinyPalette_LaprasGigantamax), - SPECIES_SHINY_PAL(EEVEE_GIGANTAMAX, gMonShinyPalette_EeveeGigantamax), - SPECIES_SHINY_PAL(SNORLAX_GIGANTAMAX, gMonShinyPalette_SnorlaxGigantamax), - SPECIES_SHINY_PAL(GARBODOR_GIGANTAMAX, gMonShinyPalette_GarbodorGigantamax), - SPECIES_SHINY_PAL(MELMETAL_GIGANTAMAX, gMonShinyPalette_MelmetalGigantamax), - SPECIES_SHINY_PAL(RILLABOOM_GIGANTAMAX, gMonShinyPalette_RillaboomGigantamax), - SPECIES_SHINY_PAL(CINDERACE_GIGANTAMAX, gMonShinyPalette_CinderaceGigantamax), - SPECIES_SHINY_PAL(INTELEON_GIGANTAMAX, gMonShinyPalette_InteleonGigantamax), - SPECIES_SHINY_PAL(CORVIKNIGHT_GIGANTAMAX, gMonShinyPalette_CorviknightGigantamax), - SPECIES_SHINY_PAL(ORBEETLE_GIGANTAMAX, gMonShinyPalette_OrbeetleGigantamax), - SPECIES_SHINY_PAL(DREDNAW_GIGANTAMAX, gMonShinyPalette_DrednawGigantamax), - SPECIES_SHINY_PAL(COALOSSAL_GIGANTAMAX, gMonShinyPalette_CoalossalGigantamax), - SPECIES_SHINY_PAL(FLAPPLE_GIGANTAMAX, gMonShinyPalette_FlappleGigantamax), - SPECIES_SHINY_PAL(APPLETUN_GIGANTAMAX, gMonShinyPalette_AppletunGigantamax), - SPECIES_SHINY_PAL(SANDACONDA_GIGANTAMAX, gMonShinyPalette_SandacondaGigantamax), - SPECIES_SHINY_PAL(TOXTRICITY_AMPED_GIGANTAMAX, gMonShinyPalette_ToxtricityGigantamax), - SPECIES_SHINY_PAL(TOXTRICITY_LOW_KEY_GIGANTAMAX, gMonShinyPalette_ToxtricityGigantamax), - SPECIES_SHINY_PAL(CENTISKORCH_GIGANTAMAX, gMonShinyPalette_CentiskorchGigantamax), - SPECIES_SHINY_PAL(HATTERENE_GIGANTAMAX, gMonShinyPalette_HattereneGigantamax), - SPECIES_SHINY_PAL(GRIMMSNARL_GIGANTAMAX, gMonShinyPalette_GrimmsnarlGigantamax), - SPECIES_SHINY_PAL(ALCREMIE_GIGANTAMAX, gMonShinyPalette_AlcremieGigantamax), - SPECIES_SHINY_PAL(COPPERAJAH_GIGANTAMAX, gMonShinyPalette_CopperajahGigantamax), - SPECIES_SHINY_PAL(DURALUDON_GIGANTAMAX, gMonShinyPalette_DuraludonGigantamax), - SPECIES_SHINY_PAL(URSHIFU_SINGLE_STRIKE_STYLE_GIGANTAMAX, gMonShinyPalette_UrshifuSingleStrikeGigantamax), - SPECIES_SHINY_PAL(URSHIFU_RAPID_STRIKE_STYLE_GIGANTAMAX, gMonShinyPalette_UrshifuRapidStrikeGigantamax), -#endif - SPECIES_SHINY_PAL(EGG, gMonPalette_Egg), -}; - -const struct CompressedSpritePalette gMonShinyPaletteTableFemale[NUM_SPECIES + 1] = -{ -#if P_GEN_4_POKEMON == TRUE - SPECIES_SHINY_PAL(COMBEE, gMonShinyPalette_CombeeF), - SPECIES_SHINY_PAL(HIPPOPOTAS, gMonShinyPalette_HippopotasF), - SPECIES_SHINY_PAL(HIPPOWDON, gMonShinyPalette_HippowdonF), -#endif -#if P_GEN_5_POKEMON == TRUE - SPECIES_SHINY_PAL(UNFEZANT, gMonShinyPalette_UnfezantF), - SPECIES_SHINY_PAL(FRILLISH, gMonShinyPalette_FrillishF), - SPECIES_SHINY_PAL(JELLICENT, gMonShinyPalette_JellicentF), -#endif -}; diff --git a/src/data/text/item_descriptions.h b/src/data/text/item_descriptions.h index 03de5641e1c0..7ec6df0ef113 100644 --- a/src/data/text/item_descriptions.h +++ b/src/data/text/item_descriptions.h @@ -3854,7 +3854,7 @@ static const u8 sContestPassDesc[] = _( "for entering\n" "Pokémon Contests."); -static const u8 sOaksParcelDesc[] = _( +static const u8 sParcelDesc[] = _( "A parcel for Prof.\n" "Oak from a Pokémon\n" "Mart's clerk."); diff --git a/src/data/text/move_descriptions.h b/src/data/text/move_descriptions.h index 0ac711dccc70..f06a86323f68 100644 --- a/src/data/text/move_descriptions.h +++ b/src/data/text/move_descriptions.h @@ -214,7 +214,11 @@ static const u8 sDisableDescription[] = _( static const u8 sAcidDescription[] = _( "Sprays a hide-melting acid.\n" +#if B_UPDATED_MOVE_DATA >= GEN_4 + "May lower Sp. Def."); +#else "May lower Defense."); +#endif static const u8 sEmberDescription[] = _( "A weak fire attack that may\n" @@ -986,7 +990,11 @@ static const u8 sSunnyDayDescription[] = _( static const u8 sCrunchDescription[] = _( "Crunches with sharp fangs.\n" +#if B_UPDATED_MOVE_DATA >= GEN_4 "May lower Defense."); +#else + "May lower Sp. Def."); +#endif static const u8 sMirrorCoatDescription[] = _( "Counters the foe's special\n" diff --git a/src/data/text/move_names.h b/src/data/text/move_names.h index 39fd8129b273..01d613751efc 100644 --- a/src/data/text/move_names.h +++ b/src/data/text/move_names.h @@ -1968,4 +1968,3 @@ const u8 *const gMaxMoveNames[] = [MOVE_G_MAX_ONE_BLOW - FIRST_MAX_MOVE] = sText_G_Max_One_Blow, [MOVE_G_MAX_RAPID_FLOW - FIRST_MAX_MOVE] = sText_G_Max_Rapid_Flow, }; - \ No newline at end of file diff --git a/src/data/text/species_names.h b/src/data/text/species_names.h deleted file mode 100644 index d9da9fd9e8aa..000000000000 --- a/src/data/text/species_names.h +++ /dev/null @@ -1,1377 +0,0 @@ -const u8 gSpeciesNames[NUM_SPECIES][POKEMON_NAME_LENGTH + 1] = { - [SPECIES_NONE] = _("??????????"), - [SPECIES_BULBASAUR] = _("Bulbasaur"), - [SPECIES_IVYSAUR] = _("Ivysaur"), - [SPECIES_VENUSAUR] = _("Venusaur"), - [SPECIES_CHARMANDER] = _("Charmander"), - [SPECIES_CHARMELEON] = _("Charmeleon"), - [SPECIES_CHARIZARD] = _("Charizard"), - [SPECIES_SQUIRTLE] = _("Squirtle"), - [SPECIES_WARTORTLE] = _("Wartortle"), - [SPECIES_BLASTOISE] = _("Blastoise"), - [SPECIES_CATERPIE] = _("Caterpie"), - [SPECIES_METAPOD] = _("Metapod"), - [SPECIES_BUTTERFREE] = _("Butterfree"), - [SPECIES_WEEDLE] = _("Weedle"), - [SPECIES_KAKUNA] = _("Kakuna"), - [SPECIES_BEEDRILL] = _("Beedrill"), - [SPECIES_PIDGEY] = _("Pidgey"), - [SPECIES_PIDGEOTTO] = _("Pidgeotto"), - [SPECIES_PIDGEOT] = _("Pidgeot"), - [SPECIES_RATTATA] = _("Rattata"), - [SPECIES_RATICATE] = _("Raticate"), - [SPECIES_SPEAROW] = _("Spearow"), - [SPECIES_FEAROW] = _("Fearow"), - [SPECIES_EKANS] = _("Ekans"), - [SPECIES_ARBOK] = _("Arbok"), - [SPECIES_PIKACHU] = _("Pikachu"), - [SPECIES_RAICHU] = _("Raichu"), - [SPECIES_SANDSHREW] = _("Sandshrew"), - [SPECIES_SANDSLASH] = _("Sandslash"), - [SPECIES_NIDORAN_F] = _("Nidoran♀"), - [SPECIES_NIDORINA] = _("Nidorina"), - [SPECIES_NIDOQUEEN] = _("Nidoqueen"), - [SPECIES_NIDORAN_M] = _("Nidoran♂"), - [SPECIES_NIDORINO] = _("Nidorino"), - [SPECIES_NIDOKING] = _("Nidoking"), - [SPECIES_CLEFAIRY] = _("Clefairy"), - [SPECIES_CLEFABLE] = _("Clefable"), - [SPECIES_VULPIX] = _("Vulpix"), - [SPECIES_NINETALES] = _("Ninetales"), - [SPECIES_JIGGLYPUFF] = _("Jigglypuff"), - [SPECIES_WIGGLYTUFF] = _("Wigglytuff"), - [SPECIES_ZUBAT] = _("Zubat"), - [SPECIES_GOLBAT] = _("Golbat"), - [SPECIES_ODDISH] = _("Oddish"), - [SPECIES_GLOOM] = _("Gloom"), - [SPECIES_VILEPLUME] = _("Vileplume"), - [SPECIES_PARAS] = _("Paras"), - [SPECIES_PARASECT] = _("Parasect"), - [SPECIES_VENONAT] = _("Venonat"), - [SPECIES_VENOMOTH] = _("Venomoth"), - [SPECIES_DIGLETT] = _("Diglett"), - [SPECIES_DUGTRIO] = _("Dugtrio"), - [SPECIES_MEOWTH] = _("Meowth"), - [SPECIES_PERSIAN] = _("Persian"), - [SPECIES_PSYDUCK] = _("Psyduck"), - [SPECIES_GOLDUCK] = _("Golduck"), - [SPECIES_MANKEY] = _("Mankey"), - [SPECIES_PRIMEAPE] = _("Primeape"), - [SPECIES_GROWLITHE] = _("Growlithe"), - [SPECIES_ARCANINE] = _("Arcanine"), - [SPECIES_POLIWAG] = _("Poliwag"), - [SPECIES_POLIWHIRL] = _("Poliwhirl"), - [SPECIES_POLIWRATH] = _("Poliwrath"), - [SPECIES_ABRA] = _("Abra"), - [SPECIES_KADABRA] = _("Kadabra"), - [SPECIES_ALAKAZAM] = _("Alakazam"), - [SPECIES_MACHOP] = _("Machop"), - [SPECIES_MACHOKE] = _("Machoke"), - [SPECIES_MACHAMP] = _("Machamp"), - [SPECIES_BELLSPROUT] = _("Bellsprout"), - [SPECIES_WEEPINBELL] = _("Weepinbell"), - [SPECIES_VICTREEBEL] = _("Victreebel"), - [SPECIES_TENTACOOL] = _("Tentacool"), - [SPECIES_TENTACRUEL] = _("Tentacruel"), - [SPECIES_GEODUDE] = _("Geodude"), - [SPECIES_GRAVELER] = _("Graveler"), - [SPECIES_GOLEM] = _("Golem"), - [SPECIES_PONYTA] = _("Ponyta"), - [SPECIES_RAPIDASH] = _("Rapidash"), - [SPECIES_SLOWPOKE] = _("Slowpoke"), - [SPECIES_SLOWBRO] = _("Slowbro"), - [SPECIES_MAGNEMITE] = _("Magnemite"), - [SPECIES_MAGNETON] = _("Magneton"), - [SPECIES_FARFETCHD] = _("Farfetch'd"), - [SPECIES_DODUO] = _("Doduo"), - [SPECIES_DODRIO] = _("Dodrio"), - [SPECIES_SEEL] = _("Seel"), - [SPECIES_DEWGONG] = _("Dewgong"), - [SPECIES_GRIMER] = _("Grimer"), - [SPECIES_MUK] = _("Muk"), - [SPECIES_SHELLDER] = _("Shellder"), - [SPECIES_CLOYSTER] = _("Cloyster"), - [SPECIES_GASTLY] = _("Gastly"), - [SPECIES_HAUNTER] = _("Haunter"), - [SPECIES_GENGAR] = _("Gengar"), - [SPECIES_ONIX] = _("Onix"), - [SPECIES_DROWZEE] = _("Drowzee"), - [SPECIES_HYPNO] = _("Hypno"), - [SPECIES_KRABBY] = _("Krabby"), - [SPECIES_KINGLER] = _("Kingler"), - [SPECIES_VOLTORB] = _("Voltorb"), - [SPECIES_ELECTRODE] = _("Electrode"), - [SPECIES_EXEGGCUTE] = _("Exeggcute"), - [SPECIES_EXEGGUTOR] = _("Exeggutor"), - [SPECIES_CUBONE] = _("Cubone"), - [SPECIES_MAROWAK] = _("Marowak"), - [SPECIES_HITMONLEE] = _("Hitmonlee"), - [SPECIES_HITMONCHAN] = _("Hitmonchan"), - [SPECIES_LICKITUNG] = _("Lickitung"), - [SPECIES_KOFFING] = _("Koffing"), - [SPECIES_WEEZING] = _("Weezing"), - [SPECIES_RHYHORN] = _("Rhyhorn"), - [SPECIES_RHYDON] = _("Rhydon"), - [SPECIES_CHANSEY] = _("Chansey"), - [SPECIES_TANGELA] = _("Tangela"), - [SPECIES_KANGASKHAN] = _("Kangaskhan"), - [SPECIES_HORSEA] = _("Horsea"), - [SPECIES_SEADRA] = _("Seadra"), - [SPECIES_GOLDEEN] = _("Goldeen"), - [SPECIES_SEAKING] = _("Seaking"), - [SPECIES_STARYU] = _("Staryu"), - [SPECIES_STARMIE] = _("Starmie"), - [SPECIES_MR_MIME] = _("Mr. Mime"), - [SPECIES_SCYTHER] = _("Scyther"), - [SPECIES_JYNX] = _("Jynx"), - [SPECIES_ELECTABUZZ] = _("Electabuzz"), - [SPECIES_MAGMAR] = _("Magmar"), - [SPECIES_PINSIR] = _("Pinsir"), - [SPECIES_TAUROS] = _("Tauros"), - [SPECIES_MAGIKARP] = _("Magikarp"), - [SPECIES_GYARADOS] = _("Gyarados"), - [SPECIES_LAPRAS] = _("Lapras"), - [SPECIES_DITTO] = _("Ditto"), - [SPECIES_EEVEE] = _("Eevee"), - [SPECIES_VAPOREON] = _("Vaporeon"), - [SPECIES_JOLTEON] = _("Jolteon"), - [SPECIES_FLAREON] = _("Flareon"), - [SPECIES_PORYGON] = _("Porygon"), - [SPECIES_OMANYTE] = _("Omanyte"), - [SPECIES_OMASTAR] = _("Omastar"), - [SPECIES_KABUTO] = _("Kabuto"), - [SPECIES_KABUTOPS] = _("Kabutops"), - [SPECIES_AERODACTYL] = _("Aerodactyl"), - [SPECIES_SNORLAX] = _("Snorlax"), - [SPECIES_ARTICUNO] = _("Articuno"), - [SPECIES_ZAPDOS] = _("Zapdos"), - [SPECIES_MOLTRES] = _("Moltres"), - [SPECIES_DRATINI] = _("Dratini"), - [SPECIES_DRAGONAIR] = _("Dragonair"), - [SPECIES_DRAGONITE] = _("Dragonite"), - [SPECIES_MEWTWO] = _("Mewtwo"), - [SPECIES_MEW] = _("Mew"), - [SPECIES_CHIKORITA] = _("Chikorita"), - [SPECIES_BAYLEEF] = _("Bayleef"), - [SPECIES_MEGANIUM] = _("Meganium"), - [SPECIES_CYNDAQUIL] = _("Cyndaquil"), - [SPECIES_QUILAVA] = _("Quilava"), - [SPECIES_TYPHLOSION] = _("Typhlosion"), - [SPECIES_TOTODILE] = _("Totodile"), - [SPECIES_CROCONAW] = _("Croconaw"), - [SPECIES_FERALIGATR] = _("Feraligatr"), - [SPECIES_SENTRET] = _("Sentret"), - [SPECIES_FURRET] = _("Furret"), - [SPECIES_HOOTHOOT] = _("Hoothoot"), - [SPECIES_NOCTOWL] = _("Noctowl"), - [SPECIES_LEDYBA] = _("Ledyba"), - [SPECIES_LEDIAN] = _("Ledian"), - [SPECIES_SPINARAK] = _("Spinarak"), - [SPECIES_ARIADOS] = _("Ariados"), - [SPECIES_CROBAT] = _("Crobat"), - [SPECIES_CHINCHOU] = _("Chinchou"), - [SPECIES_LANTURN] = _("Lanturn"), - [SPECIES_PICHU] = _("Pichu"), - [SPECIES_CLEFFA] = _("Cleffa"), - [SPECIES_IGGLYBUFF] = _("Igglybuff"), - [SPECIES_TOGEPI] = _("Togepi"), - [SPECIES_TOGETIC] = _("Togetic"), - [SPECIES_NATU] = _("Natu"), - [SPECIES_XATU] = _("Xatu"), - [SPECIES_MAREEP] = _("Mareep"), - [SPECIES_FLAAFFY] = _("Flaaffy"), - [SPECIES_AMPHAROS] = _("Ampharos"), - [SPECIES_BELLOSSOM] = _("Bellossom"), - [SPECIES_MARILL] = _("Marill"), - [SPECIES_AZUMARILL] = _("Azumarill"), - [SPECIES_SUDOWOODO] = _("Sudowoodo"), - [SPECIES_POLITOED] = _("Politoed"), - [SPECIES_HOPPIP] = _("Hoppip"), - [SPECIES_SKIPLOOM] = _("Skiploom"), - [SPECIES_JUMPLUFF] = _("Jumpluff"), - [SPECIES_AIPOM] = _("Aipom"), - [SPECIES_SUNKERN] = _("Sunkern"), - [SPECIES_SUNFLORA] = _("Sunflora"), - [SPECIES_YANMA] = _("Yanma"), - [SPECIES_WOOPER] = _("Wooper"), - [SPECIES_QUAGSIRE] = _("Quagsire"), - [SPECIES_ESPEON] = _("Espeon"), - [SPECIES_UMBREON] = _("Umbreon"), - [SPECIES_MURKROW] = _("Murkrow"), - [SPECIES_SLOWKING] = _("Slowking"), - [SPECIES_MISDREAVUS] = _("Misdreavus"), - [SPECIES_UNOWN] = _("Unown"), - [SPECIES_WOBBUFFET] = _("Wobbuffet"), - [SPECIES_GIRAFARIG] = _("Girafarig"), - [SPECIES_PINECO] = _("Pineco"), - [SPECIES_FORRETRESS] = _("Forretress"), - [SPECIES_DUNSPARCE] = _("Dunsparce"), - [SPECIES_GLIGAR] = _("Gligar"), - [SPECIES_STEELIX] = _("Steelix"), - [SPECIES_SNUBBULL] = _("Snubbull"), - [SPECIES_GRANBULL] = _("Granbull"), - [SPECIES_QWILFISH] = _("Qwilfish"), - [SPECIES_SCIZOR] = _("Scizor"), - [SPECIES_SHUCKLE] = _("Shuckle"), - [SPECIES_HERACROSS] = _("Heracross"), - [SPECIES_SNEASEL] = _("Sneasel"), - [SPECIES_TEDDIURSA] = _("Teddiursa"), - [SPECIES_URSARING] = _("Ursaring"), - [SPECIES_SLUGMA] = _("Slugma"), - [SPECIES_MAGCARGO] = _("Magcargo"), - [SPECIES_SWINUB] = _("Swinub"), - [SPECIES_PILOSWINE] = _("Piloswine"), - [SPECIES_CORSOLA] = _("Corsola"), - [SPECIES_REMORAID] = _("Remoraid"), - [SPECIES_OCTILLERY] = _("Octillery"), - [SPECIES_DELIBIRD] = _("Delibird"), - [SPECIES_MANTINE] = _("Mantine"), - [SPECIES_SKARMORY] = _("Skarmory"), - [SPECIES_HOUNDOUR] = _("Houndour"), - [SPECIES_HOUNDOOM] = _("Houndoom"), - [SPECIES_KINGDRA] = _("Kingdra"), - [SPECIES_PHANPY] = _("Phanpy"), - [SPECIES_DONPHAN] = _("Donphan"), - [SPECIES_PORYGON2] = _("Porygon2"), - [SPECIES_STANTLER] = _("Stantler"), - [SPECIES_SMEARGLE] = _("Smeargle"), - [SPECIES_TYROGUE] = _("Tyrogue"), - [SPECIES_HITMONTOP] = _("Hitmontop"), - [SPECIES_SMOOCHUM] = _("Smoochum"), - [SPECIES_ELEKID] = _("Elekid"), - [SPECIES_MAGBY] = _("Magby"), - [SPECIES_MILTANK] = _("Miltank"), - [SPECIES_BLISSEY] = _("Blissey"), - [SPECIES_RAIKOU] = _("Raikou"), - [SPECIES_ENTEI] = _("Entei"), - [SPECIES_SUICUNE] = _("Suicune"), - [SPECIES_LARVITAR] = _("Larvitar"), - [SPECIES_PUPITAR] = _("Pupitar"), - [SPECIES_TYRANITAR] = _("Tyranitar"), - [SPECIES_LUGIA] = _("Lugia"), - [SPECIES_HO_OH] = _("Ho-Oh"), - [SPECIES_CELEBI] = _("Celebi"), - [SPECIES_TREECKO] = _("Treecko"), - [SPECIES_GROVYLE] = _("Grovyle"), - [SPECIES_SCEPTILE] = _("Sceptile"), - [SPECIES_TORCHIC] = _("Torchic"), - [SPECIES_COMBUSKEN] = _("Combusken"), - [SPECIES_BLAZIKEN] = _("Blaziken"), - [SPECIES_MUDKIP] = _("Mudkip"), - [SPECIES_MARSHTOMP] = _("Marshtomp"), - [SPECIES_SWAMPERT] = _("Swampert"), - [SPECIES_POOCHYENA] = _("Poochyena"), - [SPECIES_MIGHTYENA] = _("Mightyena"), - [SPECIES_ZIGZAGOON] = _("Zigzagoon"), - [SPECIES_LINOONE] = _("Linoone"), - [SPECIES_WURMPLE] = _("Wurmple"), - [SPECIES_SILCOON] = _("Silcoon"), - [SPECIES_BEAUTIFLY] = _("Beautifly"), - [SPECIES_CASCOON] = _("Cascoon"), - [SPECIES_DUSTOX] = _("Dustox"), - [SPECIES_LOTAD] = _("Lotad"), - [SPECIES_LOMBRE] = _("Lombre"), - [SPECIES_LUDICOLO] = _("Ludicolo"), - [SPECIES_SEEDOT] = _("Seedot"), - [SPECIES_NUZLEAF] = _("Nuzleaf"), - [SPECIES_SHIFTRY] = _("Shiftry"), - [SPECIES_TAILLOW] = _("Taillow"), - [SPECIES_SWELLOW] = _("Swellow"), - [SPECIES_WINGULL] = _("Wingull"), - [SPECIES_PELIPPER] = _("Pelipper"), - [SPECIES_RALTS] = _("Ralts"), - [SPECIES_KIRLIA] = _("Kirlia"), - [SPECIES_GARDEVOIR] = _("Gardevoir"), - [SPECIES_SURSKIT] = _("Surskit"), - [SPECIES_MASQUERAIN] = _("Masquerain"), - [SPECIES_SHROOMISH] = _("Shroomish"), - [SPECIES_BRELOOM] = _("Breloom"), - [SPECIES_SLAKOTH] = _("Slakoth"), - [SPECIES_VIGOROTH] = _("Vigoroth"), - [SPECIES_SLAKING] = _("Slaking"), - [SPECIES_NINCADA] = _("Nincada"), - [SPECIES_NINJASK] = _("Ninjask"), - [SPECIES_SHEDINJA] = _("Shedinja"), - [SPECIES_WHISMUR] = _("Whismur"), - [SPECIES_LOUDRED] = _("Loudred"), - [SPECIES_EXPLOUD] = _("Exploud"), - [SPECIES_MAKUHITA] = _("Makuhita"), - [SPECIES_HARIYAMA] = _("Hariyama"), - [SPECIES_AZURILL] = _("Azurill"), - [SPECIES_NOSEPASS] = _("Nosepass"), - [SPECIES_SKITTY] = _("Skitty"), - [SPECIES_DELCATTY] = _("Delcatty"), - [SPECIES_SABLEYE] = _("Sableye"), - [SPECIES_MAWILE] = _("Mawile"), - [SPECIES_ARON] = _("Aron"), - [SPECIES_LAIRON] = _("Lairon"), - [SPECIES_AGGRON] = _("Aggron"), - [SPECIES_MEDITITE] = _("Meditite"), - [SPECIES_MEDICHAM] = _("Medicham"), - [SPECIES_ELECTRIKE] = _("Electrike"), - [SPECIES_MANECTRIC] = _("Manectric"), - [SPECIES_PLUSLE] = _("Plusle"), - [SPECIES_MINUN] = _("Minun"), - [SPECIES_VOLBEAT] = _("Volbeat"), - [SPECIES_ILLUMISE] = _("Illumise"), - [SPECIES_ROSELIA] = _("Roselia"), - [SPECIES_GULPIN] = _("Gulpin"), - [SPECIES_SWALOT] = _("Swalot"), - [SPECIES_CARVANHA] = _("Carvanha"), - [SPECIES_SHARPEDO] = _("Sharpedo"), - [SPECIES_WAILMER] = _("Wailmer"), - [SPECIES_WAILORD] = _("Wailord"), - [SPECIES_NUMEL] = _("Numel"), - [SPECIES_CAMERUPT] = _("Camerupt"), - [SPECIES_TORKOAL] = _("Torkoal"), - [SPECIES_SPOINK] = _("Spoink"), - [SPECIES_GRUMPIG] = _("Grumpig"), - [SPECIES_SPINDA] = _("Spinda"), - [SPECIES_TRAPINCH] = _("Trapinch"), - [SPECIES_VIBRAVA] = _("Vibrava"), - [SPECIES_FLYGON] = _("Flygon"), - [SPECIES_CACNEA] = _("Cacnea"), - [SPECIES_CACTURNE] = _("Cacturne"), - [SPECIES_SWABLU] = _("Swablu"), - [SPECIES_ALTARIA] = _("Altaria"), - [SPECIES_ZANGOOSE] = _("Zangoose"), - [SPECIES_SEVIPER] = _("Seviper"), - [SPECIES_LUNATONE] = _("Lunatone"), - [SPECIES_SOLROCK] = _("Solrock"), - [SPECIES_BARBOACH] = _("Barboach"), - [SPECIES_WHISCASH] = _("Whiscash"), - [SPECIES_CORPHISH] = _("Corphish"), - [SPECIES_CRAWDAUNT] = _("Crawdaunt"), - [SPECIES_BALTOY] = _("Baltoy"), - [SPECIES_CLAYDOL] = _("Claydol"), - [SPECIES_LILEEP] = _("Lileep"), - [SPECIES_CRADILY] = _("Cradily"), - [SPECIES_ANORITH] = _("Anorith"), - [SPECIES_ARMALDO] = _("Armaldo"), - [SPECIES_FEEBAS] = _("Feebas"), - [SPECIES_MILOTIC] = _("Milotic"), - [SPECIES_CASTFORM_NORMAL] = _("Castform"), - [SPECIES_KECLEON] = _("Kecleon"), - [SPECIES_SHUPPET] = _("Shuppet"), - [SPECIES_BANETTE] = _("Banette"), - [SPECIES_DUSKULL] = _("Duskull"), - [SPECIES_DUSCLOPS] = _("Dusclops"), - [SPECIES_TROPIUS] = _("Tropius"), - [SPECIES_CHIMECHO] = _("Chimecho"), - [SPECIES_ABSOL] = _("Absol"), - [SPECIES_WYNAUT] = _("Wynaut"), - [SPECIES_SNORUNT] = _("Snorunt"), - [SPECIES_GLALIE] = _("Glalie"), - [SPECIES_SPHEAL] = _("Spheal"), - [SPECIES_SEALEO] = _("Sealeo"), - [SPECIES_WALREIN] = _("Walrein"), - [SPECIES_CLAMPERL] = _("Clamperl"), - [SPECIES_HUNTAIL] = _("Huntail"), - [SPECIES_GOREBYSS] = _("Gorebyss"), - [SPECIES_RELICANTH] = _("Relicanth"), - [SPECIES_LUVDISC] = _("Luvdisc"), - [SPECIES_BAGON] = _("Bagon"), - [SPECIES_SHELGON] = _("Shelgon"), - [SPECIES_SALAMENCE] = _("Salamence"), - [SPECIES_BELDUM] = _("Beldum"), - [SPECIES_METANG] = _("Metang"), - [SPECIES_METAGROSS] = _("Metagross"), - [SPECIES_REGIROCK] = _("Regirock"), - [SPECIES_REGICE] = _("Regice"), - [SPECIES_REGISTEEL] = _("Registeel"), - [SPECIES_LATIAS] = _("Latias"), - [SPECIES_LATIOS] = _("Latios"), - [SPECIES_KYOGRE] = _("Kyogre"), - [SPECIES_GROUDON] = _("Groudon"), - [SPECIES_RAYQUAZA] = _("Rayquaza"), - [SPECIES_JIRACHI] = _("Jirachi"), - [SPECIES_DEOXYS_NORMAL] = _("Deoxys"), -#if P_GEN_4_POKEMON == TRUE - [SPECIES_TURTWIG] = _("Turtwig"), - [SPECIES_GROTLE] = _("Grotle"), - [SPECIES_TORTERRA] = _("Torterra"), - [SPECIES_CHIMCHAR] = _("Chimchar"), - [SPECIES_MONFERNO] = _("Monferno"), - [SPECIES_INFERNAPE] = _("Infernape"), - [SPECIES_PIPLUP] = _("Piplup"), - [SPECIES_PRINPLUP] = _("Prinplup"), - [SPECIES_EMPOLEON] = _("Empoleon"), - [SPECIES_STARLY] = _("Starly"), - [SPECIES_STARAVIA] = _("Staravia"), - [SPECIES_STARAPTOR] = _("Staraptor"), - [SPECIES_BIDOOF] = _("Bidoof"), - [SPECIES_BIBAREL] = _("Bibarel"), - [SPECIES_KRICKETOT] = _("Kricketot"), - [SPECIES_KRICKETUNE] = _("Kricketune"), - [SPECIES_SHINX] = _("Shinx"), - [SPECIES_LUXIO] = _("Luxio"), - [SPECIES_LUXRAY] = _("Luxray"), - [SPECIES_BUDEW] = _("Budew"), - [SPECIES_ROSERADE] = _("Roserade"), - [SPECIES_CRANIDOS] = _("Cranidos"), - [SPECIES_RAMPARDOS] = _("Rampardos"), - [SPECIES_SHIELDON] = _("Shieldon"), - [SPECIES_BASTIODON] = _("Bastiodon"), - [SPECIES_BURMY_PLANT_CLOAK] = _("Burmy"), - [SPECIES_WORMADAM_PLANT_CLOAK] = _("Wormadam"), - [SPECIES_MOTHIM] = _("Mothim"), - [SPECIES_COMBEE] = _("Combee"), - [SPECIES_VESPIQUEN] = _("Vespiquen"), - [SPECIES_PACHIRISU] = _("Pachirisu"), - [SPECIES_BUIZEL] = _("Buizel"), - [SPECIES_FLOATZEL] = _("Floatzel"), - [SPECIES_CHERUBI] = _("Cherubi"), - [SPECIES_CHERRIM_OVERCAST] = _("Cherrim"), - [SPECIES_SHELLOS_WEST_SEA] = _("Shellos"), - [SPECIES_GASTRODON_WEST_SEA] = _("Gastrodon"), - [SPECIES_AMBIPOM] = _("Ambipom"), - [SPECIES_DRIFLOON] = _("Drifloon"), - [SPECIES_DRIFBLIM] = _("Drifblim"), - [SPECIES_BUNEARY] = _("Buneary"), - [SPECIES_LOPUNNY] = _("Lopunny"), - [SPECIES_MISMAGIUS] = _("Mismagius"), - [SPECIES_HONCHKROW] = _("Honchkrow"), - [SPECIES_GLAMEOW] = _("Glameow"), - [SPECIES_PURUGLY] = _("Purugly"), - [SPECIES_CHINGLING] = _("Chingling"), - [SPECIES_STUNKY] = _("Stunky"), - [SPECIES_SKUNTANK] = _("Skuntank"), - [SPECIES_BRONZOR] = _("Bronzor"), - [SPECIES_BRONZONG] = _("Bronzong"), - [SPECIES_BONSLY] = _("Bonsly"), - [SPECIES_MIME_JR] = _("Mime Jr."), - [SPECIES_HAPPINY] = _("Happiny"), - [SPECIES_CHATOT] = _("Chatot"), - [SPECIES_SPIRITOMB] = _("Spiritomb"), - [SPECIES_GIBLE] = _("Gible"), - [SPECIES_GABITE] = _("Gabite"), - [SPECIES_GARCHOMP] = _("Garchomp"), - [SPECIES_MUNCHLAX] = _("Munchlax"), - [SPECIES_RIOLU] = _("Riolu"), - [SPECIES_LUCARIO] = _("Lucario"), - [SPECIES_HIPPOPOTAS] = _("Hippopotas"), - [SPECIES_HIPPOWDON] = _("Hippowdon"), - [SPECIES_SKORUPI] = _("Skorupi"), - [SPECIES_DRAPION] = _("Drapion"), - [SPECIES_CROAGUNK] = _("Croagunk"), - [SPECIES_TOXICROAK] = _("Toxicroak"), - [SPECIES_CARNIVINE] = _("Carnivine"), - [SPECIES_FINNEON] = _("Finneon"), - [SPECIES_LUMINEON] = _("Lumineon"), - [SPECIES_MANTYKE] = _("Mantyke"), - [SPECIES_SNOVER] = _("Snover"), - [SPECIES_ABOMASNOW] = _("Abomasnow"), - [SPECIES_WEAVILE] = _("Weavile"), - [SPECIES_MAGNEZONE] = _("Magnezone"), - [SPECIES_LICKILICKY] = _("Lickilicky"), - [SPECIES_RHYPERIOR] = _("Rhyperior"), - [SPECIES_TANGROWTH] = _("Tangrowth"), - [SPECIES_ELECTIVIRE] = _("Electivire"), - [SPECIES_MAGMORTAR] = _("Magmortar"), - [SPECIES_TOGEKISS] = _("Togekiss"), - [SPECIES_YANMEGA] = _("Yanmega"), - [SPECIES_LEAFEON] = _("Leafeon"), - [SPECIES_GLACEON] = _("Glaceon"), - [SPECIES_GLISCOR] = _("Gliscor"), - [SPECIES_MAMOSWINE] = _("Mamoswine"), - [SPECIES_PORYGON_Z] = _("Porygon-Z"), - [SPECIES_GALLADE] = _("Gallade"), - [SPECIES_PROBOPASS] = _("Probopass"), - [SPECIES_DUSKNOIR] = _("Dusknoir"), - [SPECIES_FROSLASS] = _("Froslass"), - [SPECIES_ROTOM] = _("Rotom"), - [SPECIES_UXIE] = _("Uxie"), - [SPECIES_MESPRIT] = _("Mesprit"), - [SPECIES_AZELF] = _("Azelf"), - [SPECIES_DIALGA] = _("Dialga"), - [SPECIES_PALKIA] = _("Palkia"), - [SPECIES_HEATRAN] = _("Heatran"), - [SPECIES_REGIGIGAS] = _("Regigigas"), - [SPECIES_GIRATINA_ALTERED] = _("Giratina"), - [SPECIES_CRESSELIA] = _("Cresselia"), - [SPECIES_PHIONE] = _("Phione"), - [SPECIES_MANAPHY] = _("Manaphy"), - [SPECIES_DARKRAI] = _("Darkrai"), - [SPECIES_SHAYMIN_LAND] = _("Shaymin"), - [SPECIES_ARCEUS_NORMAL] = _("Arceus"), -#endif -#if P_GEN_5_POKEMON == TRUE - [SPECIES_VICTINI] = _("Victini"), - [SPECIES_SNIVY] = _("Snivy"), - [SPECIES_SERVINE] = _("Servine"), - [SPECIES_SERPERIOR] = _("Serperior"), - [SPECIES_TEPIG] = _("Tepig"), - [SPECIES_PIGNITE] = _("Pignite"), - [SPECIES_EMBOAR] = _("Emboar"), - [SPECIES_OSHAWOTT] = _("Oshawott"), - [SPECIES_DEWOTT] = _("Dewott"), - [SPECIES_SAMUROTT] = _("Samurott"), - [SPECIES_PATRAT] = _("Patrat"), - [SPECIES_WATCHOG] = _("Watchog"), - [SPECIES_LILLIPUP] = _("Lillipup"), - [SPECIES_HERDIER] = _("Herdier"), - [SPECIES_STOUTLAND] = _("Stoutland"), - [SPECIES_PURRLOIN] = _("Purrloin"), - [SPECIES_LIEPARD] = _("Liepard"), - [SPECIES_PANSAGE] = _("Pansage"), - [SPECIES_SIMISAGE] = _("Simisage"), - [SPECIES_PANSEAR] = _("Pansear"), - [SPECIES_SIMISEAR] = _("Simisear"), - [SPECIES_PANPOUR] = _("Panpour"), - [SPECIES_SIMIPOUR] = _("Simipour"), - [SPECIES_MUNNA] = _("Munna"), - [SPECIES_MUSHARNA] = _("Musharna"), - [SPECIES_PIDOVE] = _("Pidove"), - [SPECIES_TRANQUILL] = _("Tranquill"), - [SPECIES_UNFEZANT] = _("Unfezant"), - [SPECIES_BLITZLE] = _("Blitzle"), - [SPECIES_ZEBSTRIKA] = _("Zebstrika"), - [SPECIES_ROGGENROLA] = _("Roggenrola"), - [SPECIES_BOLDORE] = _("Boldore"), - [SPECIES_GIGALITH] = _("Gigalith"), - [SPECIES_WOOBAT] = _("Woobat"), - [SPECIES_SWOOBAT] = _("Swoobat"), - [SPECIES_DRILBUR] = _("Drilbur"), - [SPECIES_EXCADRILL] = _("Excadrill"), - [SPECIES_AUDINO] = _("Audino"), - [SPECIES_TIMBURR] = _("Timburr"), - [SPECIES_GURDURR] = _("Gurdurr"), - [SPECIES_CONKELDURR] = _("Conkeldurr"), - [SPECIES_TYMPOLE] = _("Tympole"), - [SPECIES_PALPITOAD] = _("Palpitoad"), - [SPECIES_SEISMITOAD] = _("Seismitoad"), - [SPECIES_THROH] = _("Throh"), - [SPECIES_SAWK] = _("Sawk"), - [SPECIES_SEWADDLE] = _("Sewaddle"), - [SPECIES_SWADLOON] = _("Swadloon"), - [SPECIES_LEAVANNY] = _("Leavanny"), - [SPECIES_VENIPEDE] = _("Venipede"), - [SPECIES_WHIRLIPEDE] = _("Whirlipede"), - [SPECIES_SCOLIPEDE] = _("Scolipede"), - [SPECIES_COTTONEE] = _("Cottonee"), - [SPECIES_WHIMSICOTT] = _("Whimsicott"), - [SPECIES_PETILIL] = _("Petilil"), - [SPECIES_LILLIGANT] = _("Lilligant"), - [SPECIES_BASCULIN_RED_STRIPED] = _("Basculin"), - [SPECIES_SANDILE] = _("Sandile"), - [SPECIES_KROKOROK] = _("Krokorok"), - [SPECIES_KROOKODILE] = _("Krookodile"), - [SPECIES_DARUMAKA] = _("Darumaka"), - [SPECIES_DARMANITAN_STANDARD_MODE] = _("Darmanitan"), - [SPECIES_MARACTUS] = _("Maractus"), - [SPECIES_DWEBBLE] = _("Dwebble"), - [SPECIES_CRUSTLE] = _("Crustle"), - [SPECIES_SCRAGGY] = _("Scraggy"), - [SPECIES_SCRAFTY] = _("Scrafty"), - [SPECIES_SIGILYPH] = _("Sigilyph"), - [SPECIES_YAMASK] = _("Yamask"), - [SPECIES_COFAGRIGUS] = _("Cofagrigus"), - [SPECIES_TIRTOUGA] = _("Tirtouga"), - [SPECIES_CARRACOSTA] = _("Carracosta"), - [SPECIES_ARCHEN] = _("Archen"), - [SPECIES_ARCHEOPS] = _("Archeops"), - [SPECIES_TRUBBISH] = _("Trubbish"), - [SPECIES_GARBODOR] = _("Garbodor"), - [SPECIES_ZORUA] = _("Zorua"), - [SPECIES_ZOROARK] = _("Zoroark"), - [SPECIES_MINCCINO] = _("Minccino"), - [SPECIES_CINCCINO] = _("Cinccino"), - [SPECIES_GOTHITA] = _("Gothita"), - [SPECIES_GOTHORITA] = _("Gothorita"), - [SPECIES_GOTHITELLE] = _("Gothitelle"), - [SPECIES_SOLOSIS] = _("Solosis"), - [SPECIES_DUOSION] = _("Duosion"), - [SPECIES_REUNICLUS] = _("Reuniclus"), - [SPECIES_DUCKLETT] = _("Ducklett"), - [SPECIES_SWANNA] = _("Swanna"), - [SPECIES_VANILLITE] = _("Vanillite"), - [SPECIES_VANILLISH] = _("Vanillish"), - [SPECIES_VANILLUXE] = _("Vanilluxe"), - [SPECIES_DEERLING_SPRING] = _("Deerling"), - [SPECIES_SAWSBUCK_SPRING] = _("Sawsbuck"), - [SPECIES_EMOLGA] = _("Emolga"), - [SPECIES_KARRABLAST] = _("Karrablast"), - [SPECIES_ESCAVALIER] = _("Escavalier"), - [SPECIES_FOONGUS] = _("Foongus"), - [SPECIES_AMOONGUSS] = _("Amoonguss"), - [SPECIES_FRILLISH] = _("Frillish"), - [SPECIES_JELLICENT] = _("Jellicent"), - [SPECIES_ALOMOMOLA] = _("Alomomola"), - [SPECIES_JOLTIK] = _("Joltik"), - [SPECIES_GALVANTULA] = _("Galvantula"), - [SPECIES_FERROSEED] = _("Ferroseed"), - [SPECIES_FERROTHORN] = _("Ferrothorn"), - [SPECIES_KLINK] = _("Klink"), - [SPECIES_KLANG] = _("Klang"), - [SPECIES_KLINKLANG] = _("Klinklang"), - [SPECIES_TYNAMO] = _("Tynamo"), - [SPECIES_EELEKTRIK] = _("Eelektrik"), - [SPECIES_EELEKTROSS] = _("Eelektross"), - [SPECIES_ELGYEM] = _("Elgyem"), - [SPECIES_BEHEEYEM] = _("Beheeyem"), - [SPECIES_LITWICK] = _("Litwick"), - [SPECIES_LAMPENT] = _("Lampent"), - [SPECIES_CHANDELURE] = _("Chandelure"), - [SPECIES_AXEW] = _("Axew"), - [SPECIES_FRAXURE] = _("Fraxure"), - [SPECIES_HAXORUS] = _("Haxorus"), - [SPECIES_CUBCHOO] = _("Cubchoo"), - [SPECIES_BEARTIC] = _("Beartic"), - [SPECIES_CRYOGONAL] = _("Cryogonal"), - [SPECIES_SHELMET] = _("Shelmet"), - [SPECIES_ACCELGOR] = _("Accelgor"), - [SPECIES_STUNFISK] = _("Stunfisk"), - [SPECIES_MIENFOO] = _("Mienfoo"), - [SPECIES_MIENSHAO] = _("Mienshao"), - [SPECIES_DRUDDIGON] = _("Druddigon"), - [SPECIES_GOLETT] = _("Golett"), - [SPECIES_GOLURK] = _("Golurk"), - [SPECIES_PAWNIARD] = _("Pawniard"), - [SPECIES_BISHARP] = _("Bisharp"), - [SPECIES_BOUFFALANT] = _("Bouffalant"), - [SPECIES_RUFFLET] = _("Rufflet"), - [SPECIES_BRAVIARY] = _("Braviary"), - [SPECIES_VULLABY] = _("Vullaby"), - [SPECIES_MANDIBUZZ] = _("Mandibuzz"), - [SPECIES_HEATMOR] = _("Heatmor"), - [SPECIES_DURANT] = _("Durant"), - [SPECIES_DEINO] = _("Deino"), - [SPECIES_ZWEILOUS] = _("Zweilous"), - [SPECIES_HYDREIGON] = _("Hydreigon"), - [SPECIES_LARVESTA] = _("Larvesta"), - [SPECIES_VOLCARONA] = _("Volcarona"), - [SPECIES_COBALION] = _("Cobalion"), - [SPECIES_TERRAKION] = _("Terrakion"), - [SPECIES_VIRIZION] = _("Virizion"), - [SPECIES_TORNADUS_INCARNATE] = _("Tornadus"), - [SPECIES_THUNDURUS_INCARNATE] = _("Thundurus"), - [SPECIES_RESHIRAM] = _("Reshiram"), - [SPECIES_ZEKROM] = _("Zekrom"), - [SPECIES_LANDORUS_INCARNATE] = _("Landorus"), - [SPECIES_KYUREM] = _("Kyurem"), - [SPECIES_KELDEO_ORDINARY] = _("Keldeo"), - [SPECIES_MELOETTA_ARIA] = _("Meloetta"), - [SPECIES_GENESECT] = _("Genesect"), -#endif -#if P_GEN_6_POKEMON == TRUE - [SPECIES_CHESPIN] = _("Chespin"), - [SPECIES_QUILLADIN] = _("Quilladin"), - [SPECIES_CHESNAUGHT] = _("Chesnaught"), - [SPECIES_FENNEKIN] = _("Fennekin"), - [SPECIES_BRAIXEN] = _("Braixen"), - [SPECIES_DELPHOX] = _("Delphox"), - [SPECIES_FROAKIE] = _("Froakie"), - [SPECIES_FROGADIER] = _("Frogadier"), - [SPECIES_GRENINJA] = _("Greninja"), - [SPECIES_BUNNELBY] = _("Bunnelby"), - [SPECIES_DIGGERSBY] = _("Diggersby"), - [SPECIES_FLETCHLING] = _("Fletchling"), - [SPECIES_FLETCHINDER] = _("Flechinder"), - [SPECIES_TALONFLAME] = _("Talonflame"), - [SPECIES_SCATTERBUG] = _("Scatterbug"), - [SPECIES_SPEWPA] = _("Spewpa"), - [SPECIES_VIVILLON_ICY_SNOW] = _("Vivillon"), - [SPECIES_LITLEO] = _("Litleo"), - [SPECIES_PYROAR] = _("Pyroar"), - [SPECIES_FLABEBE_RED_FLOWER] = _("Flabébé"), - [SPECIES_FLOETTE_RED_FLOWER] = _("Floette"), - [SPECIES_FLORGES_RED_FLOWER] = _("Florges"), - [SPECIES_SKIDDO] = _("Skiddo"), - [SPECIES_GOGOAT] = _("Gogoat"), - [SPECIES_PANCHAM] = _("Pancham"), - [SPECIES_PANGORO] = _("Pangoro"), - [SPECIES_FURFROU_NATURAL] = _("Furfrou"), - [SPECIES_ESPURR] = _("Espurr"), - [SPECIES_MEOWSTIC_MALE] = _("Meowstic"), - [SPECIES_HONEDGE] = _("Honedge"), - [SPECIES_DOUBLADE] = _("Doublade"), - [SPECIES_AEGISLASH_SHIELD] = _("Aegislash"), - [SPECIES_SPRITZEE] = _("Spritzee"), - [SPECIES_AROMATISSE] = _("Aromatisse"), - [SPECIES_SWIRLIX] = _("Swirlix"), - [SPECIES_SLURPUFF] = _("Slurpuff"), - [SPECIES_INKAY] = _("Inkay"), - [SPECIES_MALAMAR] = _("Malamar"), - [SPECIES_BINACLE] = _("Binacle"), - [SPECIES_BARBARACLE] = _("Barbaracle"), - [SPECIES_SKRELP] = _("Skrelp"), - [SPECIES_DRAGALGE] = _("Dragalge"), - [SPECIES_CLAUNCHER] = _("Clauncher"), - [SPECIES_CLAWITZER] = _("Clawitzer"), - [SPECIES_HELIOPTILE] = _("Helioptile"), - [SPECIES_HELIOLISK] = _("Heliolisk"), - [SPECIES_TYRUNT] = _("Tyrunt"), - [SPECIES_TYRANTRUM] = _("Tyrantrum"), - [SPECIES_AMAURA] = _("Amaura"), - [SPECIES_AURORUS] = _("Aurorus"), - [SPECIES_SYLVEON] = _("Sylveon"), - [SPECIES_HAWLUCHA] = _("Hawlucha"), - [SPECIES_DEDENNE] = _("Dedenne"), - [SPECIES_CARBINK] = _("Carbink"), - [SPECIES_GOOMY] = _("Goomy"), - [SPECIES_SLIGGOO] = _("Sliggoo"), - [SPECIES_GOODRA] = _("Goodra"), - [SPECIES_KLEFKI] = _("Klefki"), - [SPECIES_PHANTUMP] = _("Phantump"), - [SPECIES_TREVENANT] = _("Trevenant"), - [SPECIES_PUMPKABOO_AVERAGE] = _("Pumpkaboo"), - [SPECIES_GOURGEIST_AVERAGE] = _("Gourgeist"), - [SPECIES_BERGMITE] = _("Bergmite"), - [SPECIES_AVALUGG] = _("Avalugg"), - [SPECIES_NOIBAT] = _("Noibat"), - [SPECIES_NOIVERN] = _("Noivern"), - [SPECIES_XERNEAS_NEUTRAL] = _("Xerneas"), - [SPECIES_YVELTAL] = _("Yveltal"), - [SPECIES_ZYGARDE_50_AURA_BREAK] = _("Zygarde"), - [SPECIES_DIANCIE] = _("Diancie"), - [SPECIES_HOOPA_CONFINED] = _("Hoopa"), - [SPECIES_VOLCANION] = _("Volcanion"), -#endif -#if P_GEN_7_POKEMON == TRUE - [SPECIES_ROWLET] = _("Rowlet"), - [SPECIES_DARTRIX] = _("Dartrix"), - [SPECIES_DECIDUEYE] = _("Decidueye"), - [SPECIES_LITTEN] = _("Litten"), - [SPECIES_TORRACAT] = _("Torracat"), - [SPECIES_INCINEROAR] = _("Incineroar"), - [SPECIES_POPPLIO] = _("Popplio"), - [SPECIES_BRIONNE] = _("Brionne"), - [SPECIES_PRIMARINA] = _("Primarina"), - [SPECIES_PIKIPEK] = _("Pikipek"), - [SPECIES_TRUMBEAK] = _("Trumbeak"), - [SPECIES_TOUCANNON] = _("Toucannon"), - [SPECIES_YUNGOOS] = _("Yungoos"), - [SPECIES_GUMSHOOS] = _("Gumshoos"), - [SPECIES_GRUBBIN] = _("Grubbin"), - [SPECIES_CHARJABUG] = _("Charjabug"), - [SPECIES_VIKAVOLT] = _("Vikavolt"), - [SPECIES_CRABRAWLER] = _("Crabrawler"), - [SPECIES_CRABOMINABLE] = _("Crabminabl"), - [SPECIES_ORICORIO_BAILE] = _("Oricorio"), - [SPECIES_CUTIEFLY] = _("Cutiefly"), - [SPECIES_RIBOMBEE] = _("Ribombee"), - [SPECIES_ROCKRUFF] = _("Rockruff"), - [SPECIES_LYCANROC_MIDDAY] = _("Lycanroc"), - [SPECIES_WISHIWASHI_SOLO] = _("Wishiwashi"), - [SPECIES_MAREANIE] = _("Mareanie"), - [SPECIES_TOXAPEX] = _("Toxapex"), - [SPECIES_MUDBRAY] = _("Mudbray"), - [SPECIES_MUDSDALE] = _("Mudsdale"), - [SPECIES_DEWPIDER] = _("Dewpider"), - [SPECIES_ARAQUANID] = _("Araquanid"), - [SPECIES_FOMANTIS] = _("Fomantis"), - [SPECIES_LURANTIS] = _("Lurantis"), - [SPECIES_MORELULL] = _("Morelull"), - [SPECIES_SHIINOTIC] = _("Shiinotic"), - [SPECIES_SALANDIT] = _("Salandit"), - [SPECIES_SALAZZLE] = _("Salazzle"), - [SPECIES_STUFFUL] = _("Stufful"), - [SPECIES_BEWEAR] = _("Bewear"), - [SPECIES_BOUNSWEET] = _("Bounsweet"), - [SPECIES_STEENEE] = _("Steenee"), - [SPECIES_TSAREENA] = _("Tsareena"), - [SPECIES_COMFEY] = _("Comfey"), - [SPECIES_ORANGURU] = _("Oranguru"), - [SPECIES_PASSIMIAN] = _("Passimian"), - [SPECIES_WIMPOD] = _("Wimpod"), - [SPECIES_GOLISOPOD] = _("Golisopod"), - [SPECIES_SANDYGAST] = _("Sandygast"), - [SPECIES_PALOSSAND] = _("Palossand"), - [SPECIES_PYUKUMUKU] = _("Pyukumuku"), - [SPECIES_TYPE_NULL] = _("Type: Null"), - [SPECIES_SILVALLY_NORMAL] = _("Silvally"), - [SPECIES_MINIOR_METEOR_RED] = _("Minior"), - [SPECIES_KOMALA] = _("Komala"), - [SPECIES_TURTONATOR] = _("Turtonator"), - [SPECIES_TOGEDEMARU] = _("Togedemaru"), - [SPECIES_MIMIKYU_DISGUISED] = _("Mimikyu"), - [SPECIES_BRUXISH] = _("Bruxish"), - [SPECIES_DRAMPA] = _("Drampa"), - [SPECIES_DHELMISE] = _("Dhelmise"), - [SPECIES_JANGMO_O] = _("Jangmo-o"), - [SPECIES_HAKAMO_O] = _("Hakamo-o"), - [SPECIES_KOMMO_O] = _("Kommo-o"), - [SPECIES_TAPU_KOKO] = _("Tapu Koko"), - [SPECIES_TAPU_LELE] = _("Tapu Lele"), - [SPECIES_TAPU_BULU] = _("Tapu Bulu"), - [SPECIES_TAPU_FINI] = _("Tapu Fini"), - [SPECIES_COSMOG] = _("Cosmog"), - [SPECIES_COSMOEM] = _("Cosmoem"), - [SPECIES_SOLGALEO] = _("Solgaleo"), - [SPECIES_LUNALA] = _("Lunala"), - [SPECIES_NIHILEGO] = _("Nihilego"), - [SPECIES_BUZZWOLE] = _("Buzzwole"), - [SPECIES_PHEROMOSA] = _("Pheromosa"), - [SPECIES_XURKITREE] = _("Xurkitree"), - [SPECIES_CELESTEELA] = _("Celesteela"), - [SPECIES_KARTANA] = _("Kartana"), - [SPECIES_GUZZLORD] = _("Guzzlord"), - [SPECIES_NECROZMA] = _("Necrozma"), - [SPECIES_MAGEARNA] = _("Magearna"), - [SPECIES_MARSHADOW] = _("Marshadow"), - [SPECIES_POIPOLE] = _("Poipole"), - [SPECIES_NAGANADEL] = _("Naganadel"), - [SPECIES_STAKATAKA] = _("Stakataka"), - [SPECIES_BLACEPHALON] = _("Blacephaln"), - [SPECIES_ZERAORA] = _("Zeraora"), - [SPECIES_MELTAN] = _("Meltan"), - [SPECIES_MELMETAL] = _("Melmetal"), -#endif -#if P_GEN_8_POKEMON == TRUE - [SPECIES_GROOKEY] = _("Grookey"), - [SPECIES_THWACKEY] = _("Thwackey"), - [SPECIES_RILLABOOM] = _("Rillaboom"), - [SPECIES_SCORBUNNY] = _("Scorbunny"), - [SPECIES_RABOOT] = _("Raboot"), - [SPECIES_CINDERACE] = _("Cinderace"), - [SPECIES_SOBBLE] = _("Sobble"), - [SPECIES_DRIZZILE] = _("Drizzile"), - [SPECIES_INTELEON] = _("Inteleon"), - [SPECIES_SKWOVET] = _("Skwovet"), - [SPECIES_GREEDENT] = _("Greedent"), - [SPECIES_ROOKIDEE] = _("Rookidee"), - [SPECIES_CORVISQUIRE] = _("Corvisquir"), - [SPECIES_CORVIKNIGHT] = _("Corviknigh"), - [SPECIES_BLIPBUG] = _("Blipbug"), - [SPECIES_DOTTLER] = _("Dottler"), - [SPECIES_ORBEETLE] = _("Orbeetle"), - [SPECIES_NICKIT] = _("Nickit"), - [SPECIES_THIEVUL] = _("Thievul"), - [SPECIES_GOSSIFLEUR] = _("Gossifleur"), - [SPECIES_ELDEGOSS] = _("Eldegoss"), - [SPECIES_WOOLOO] = _("Wooloo"), - [SPECIES_DUBWOOL] = _("Dubwool"), - [SPECIES_CHEWTLE] = _("Chewtle"), - [SPECIES_DREDNAW] = _("Drednaw"), - [SPECIES_YAMPER] = _("Yamper"), - [SPECIES_BOLTUND] = _("Boltund"), - [SPECIES_ROLYCOLY] = _("Rolycoly"), - [SPECIES_CARKOL] = _("Carkol"), - [SPECIES_COALOSSAL] = _("Coalossal"), - [SPECIES_APPLIN] = _("Applin"), - [SPECIES_FLAPPLE] = _("Flapple"), - [SPECIES_APPLETUN] = _("Appletun"), - [SPECIES_SILICOBRA] = _("Silicobra"), - [SPECIES_SANDACONDA] = _("Sandaconda"), - [SPECIES_CRAMORANT] = _("Cramorant"), - [SPECIES_ARROKUDA] = _("Arrokuda"), - [SPECIES_BARRASKEWDA] = _("Barraskewd"), - [SPECIES_TOXEL] = _("Toxel"), - [SPECIES_TOXTRICITY_AMPED] = _("Toxtricity"), - [SPECIES_SIZZLIPEDE] = _("Sizzlipede"), - [SPECIES_CENTISKORCH] = _("Centiskorc"), - [SPECIES_CLOBBOPUS] = _("Clobbopus"), - [SPECIES_GRAPPLOCT] = _("Grapploct"), - [SPECIES_SINISTEA_PHONY] = _("Sinistea"), - [SPECIES_POLTEAGEIST_PHONY] = _("Polteageis"), - [SPECIES_HATENNA] = _("Hatenna"), - [SPECIES_HATTREM] = _("Hattrem"), - [SPECIES_HATTERENE] = _("Hatterene"), - [SPECIES_IMPIDIMP] = _("Impidimp"), - [SPECIES_MORGREM] = _("Morgrem"), - [SPECIES_GRIMMSNARL] = _("Grimmsnarl"), - [SPECIES_OBSTAGOON] = _("Obstagoon"), - [SPECIES_PERRSERKER] = _("Perrserker"), - [SPECIES_CURSOLA] = _("Cursola"), - [SPECIES_SIRFETCHD] = _("Sirfetch'd"), - [SPECIES_MR_RIME] = _("Mr. Rime"), - [SPECIES_RUNERIGUS] = _("Runerigus"), - [SPECIES_MILCERY] = _("Milcery"), - [SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM] = _("Alcremie"), - [SPECIES_FALINKS] = _("Falinks"), - [SPECIES_PINCURCHIN] = _("Pincurchin"), - [SPECIES_SNOM] = _("Snom"), - [SPECIES_FROSMOTH] = _("Frosmoth"), - [SPECIES_STONJOURNER] = _("Stonjourne"), - [SPECIES_EISCUE_ICE_FACE] = _("Eiscue"), - [SPECIES_INDEEDEE_MALE] = _("Indeedee"), - [SPECIES_MORPEKO_FULL_BELLY] = _("Morpeko"), - [SPECIES_CUFANT] = _("Cufant"), - [SPECIES_COPPERAJAH] = _("Copperajah"), - [SPECIES_DRACOZOLT] = _("Dracozolt"), - [SPECIES_ARCTOZOLT] = _("Arctozolt"), - [SPECIES_DRACOVISH] = _("Dracovish"), - [SPECIES_ARCTOVISH] = _("Arctovish"), - [SPECIES_DURALUDON] = _("Duraludon"), - [SPECIES_DREEPY] = _("Dreepy"), - [SPECIES_DRAKLOAK] = _("Drakloak"), - [SPECIES_DRAGAPULT] = _("Dragapult"), - [SPECIES_ZACIAN_HERO_OF_MANY_BATTLES] = _("Zacian"), - [SPECIES_ZAMAZENTA_HERO_OF_MANY_BATTLES] = _("Zamazenta"), - [SPECIES_ETERNATUS] = _("Eternatus"), - [SPECIES_KUBFU] = _("Kubfu"), - [SPECIES_URSHIFU_SINGLE_STRIKE_STYLE] = _("Urshifu"), - [SPECIES_ZARUDE] = _("Zarude"), - [SPECIES_REGIELEKI] = _("Regieleki"), - [SPECIES_REGIDRAGO] = _("Regidrago"), - [SPECIES_GLASTRIER] = _("Glastrier"), - [SPECIES_SPECTRIER] = _("Spectrier"), - [SPECIES_CALYREX] = _("Calyrex"), - [SPECIES_WYRDEER] = _("Wyrdeer"), - [SPECIES_KLEAVOR] = _("Kleavor"), - [SPECIES_URSALUNA] = _("Ursaluna"), - [SPECIES_BASCULEGION_MALE] = _("Bsculegion"), - [SPECIES_SNEASLER] = _("Sneasler"), - [SPECIES_OVERQWIL] = _("Overqwil"), - [SPECIES_ENAMORUS_INCARNATE] = _("Enamorus"), -#endif - - // Megas - [SPECIES_VENUSAUR_MEGA] = _("Venusaur"), - [SPECIES_CHARIZARD_MEGA_X] = _("Charizard"), - [SPECIES_CHARIZARD_MEGA_Y] = _("Charizard"), - [SPECIES_BLASTOISE_MEGA] = _("Blastoise"), - [SPECIES_BEEDRILL_MEGA] = _("Beedrill"), - [SPECIES_PIDGEOT_MEGA] = _("Pidgeot"), - [SPECIES_ALAKAZAM_MEGA] = _("Alakazam"), - [SPECIES_SLOWBRO_MEGA] = _("Slowbro"), - [SPECIES_GENGAR_MEGA] = _("Gengar"), - [SPECIES_KANGASKHAN_MEGA] = _("Kangaskhan"), - [SPECIES_PINSIR_MEGA] = _("Pinsir"), - [SPECIES_GYARADOS_MEGA] = _("Gyarados"), - [SPECIES_AERODACTYL_MEGA] = _("Aerodactyl"), - [SPECIES_MEWTWO_MEGA_X] = _("Mewtwo"), - [SPECIES_MEWTWO_MEGA_Y] = _("Mewtwo"), - [SPECIES_AMPHAROS_MEGA] = _("Ampharos"), - [SPECIES_STEELIX_MEGA] = _("Steelix"), - [SPECIES_SCIZOR_MEGA] = _("Scizor"), - [SPECIES_HERACROSS_MEGA] = _("Heracross"), - [SPECIES_HOUNDOOM_MEGA] = _("Houndoom"), - [SPECIES_TYRANITAR_MEGA] = _("Tyranitar"), - [SPECIES_SCEPTILE_MEGA] = _("Sceptile"), - [SPECIES_BLAZIKEN_MEGA] = _("Blaziken"), - [SPECIES_SWAMPERT_MEGA] = _("Swampert"), - [SPECIES_GARDEVOIR_MEGA] = _("Gardevoir"), - [SPECIES_SABLEYE_MEGA] = _("Sableye"), - [SPECIES_MAWILE_MEGA] = _("Mawile"), - [SPECIES_AGGRON_MEGA] = _("Aggron"), - [SPECIES_MEDICHAM_MEGA] = _("Medicham"), - [SPECIES_MANECTRIC_MEGA] = _("Manectric"), - [SPECIES_SHARPEDO_MEGA] = _("Sharpedo"), - [SPECIES_CAMERUPT_MEGA] = _("Camerupt"), - [SPECIES_ALTARIA_MEGA] = _("Altaria"), - [SPECIES_BANETTE_MEGA] = _("Banette"), - [SPECIES_ABSOL_MEGA] = _("Absol"), - [SPECIES_GLALIE_MEGA] = _("Glalie"), - [SPECIES_SALAMENCE_MEGA] = _("Salamence"), - [SPECIES_METAGROSS_MEGA] = _("Metagross"), - [SPECIES_LATIAS_MEGA] = _("Latias"), - [SPECIES_LATIOS_MEGA] = _("Latios"), -#if P_GEN_4_POKEMON == TRUE - [SPECIES_LOPUNNY_MEGA] = _("Lopunny"), - [SPECIES_GARCHOMP_MEGA] = _("Garchomp"), - [SPECIES_LUCARIO_MEGA] = _("Lucario"), - [SPECIES_ABOMASNOW_MEGA] = _("Abomasnow"), - [SPECIES_GALLADE_MEGA] = _("Gallade"), -#endif -#if P_GEN_5_POKEMON == TRUE - [SPECIES_AUDINO_MEGA] = _("Audino"), -#endif -#if P_GEN_6_POKEMON == TRUE - [SPECIES_DIANCIE_MEGA] = _("Diancie"), -#endif - // Special Mega + Primals - [SPECIES_RAYQUAZA_MEGA] = _("Rayquaza"), - [SPECIES_KYOGRE_PRIMAL] = _("Kyogre"), - [SPECIES_GROUDON_PRIMAL] = _("Groudon"), - - // Alolan Forms - [SPECIES_RATTATA_ALOLAN] = _("Rattata"), - [SPECIES_RATICATE_ALOLAN] = _("Raticate"), - [SPECIES_RAICHU_ALOLAN] = _("Raichu"), - [SPECIES_SANDSHREW_ALOLAN] = _("Sandshrew"), - [SPECIES_SANDSLASH_ALOLAN] = _("Sandslash"), - [SPECIES_VULPIX_ALOLAN] = _("Vulpix"), - [SPECIES_NINETALES_ALOLAN] = _("Ninetales"), - [SPECIES_DIGLETT_ALOLAN] = _("Diglett"), - [SPECIES_DUGTRIO_ALOLAN] = _("Dugtrio"), - [SPECIES_MEOWTH_ALOLAN] = _("Meowth"), - [SPECIES_PERSIAN_ALOLAN] = _("Persian"), - [SPECIES_GEODUDE_ALOLAN] = _("Geodude"), - [SPECIES_GRAVELER_ALOLAN] = _("Graveler"), - [SPECIES_GOLEM_ALOLAN] = _("Golem"), - [SPECIES_GRIMER_ALOLAN] = _("Grimer"), - [SPECIES_MUK_ALOLAN] = _("Muk"), - [SPECIES_EXEGGUTOR_ALOLAN] = _("Exeggutor"), - [SPECIES_MAROWAK_ALOLAN] = _("Marowak"), - - // Galarian Forms - [SPECIES_MEOWTH_GALARIAN] = _("Meowth"), - [SPECIES_PONYTA_GALARIAN] = _("Ponyta"), - [SPECIES_RAPIDASH_GALARIAN] = _("Rapidash"), - [SPECIES_SLOWPOKE_GALARIAN] = _("Slowpoke"), - [SPECIES_SLOWBRO_GALARIAN] = _("Slowbro"), - [SPECIES_FARFETCHD_GALARIAN] = _("Farfetch'd"), - [SPECIES_WEEZING_GALARIAN] = _("Weezing"), - [SPECIES_MR_MIME_GALARIAN] = _("Mr. Mime"), - [SPECIES_ARTICUNO_GALARIAN] = _("Articuno"), - [SPECIES_ZAPDOS_GALARIAN] = _("Zapdos"), - [SPECIES_MOLTRES_GALARIAN] = _("Moltres"), - [SPECIES_SLOWKING_GALARIAN] = _("Slowking"), - [SPECIES_CORSOLA_GALARIAN] = _("Corsola"), - [SPECIES_ZIGZAGOON_GALARIAN] = _("Zigzagoon"), - [SPECIES_LINOONE_GALARIAN] = _("Linoone"), -#if P_GEN_5_POKEMON == TRUE - [SPECIES_DARUMAKA_GALARIAN] = _("Darumaka"), - [SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE] = _("Darmanitan"), - [SPECIES_YAMASK_GALARIAN] = _("Yamask"), - [SPECIES_STUNFISK_GALARIAN] = _("Stunfisk"), -#endif - -//Hisuian Forms - [SPECIES_GROWLITHE_HISUIAN] = _("Growlithe"), - [SPECIES_ARCANINE_HISUIAN] = _("Arcanine"), - [SPECIES_VOLTORB_HISUIAN] = _("Voltorb"), - [SPECIES_ELECTRODE_HISUIAN] = _("Electrode"), - [SPECIES_TYPHLOSION_HISUIAN] = _("Typhlosion"), - [SPECIES_QWILFISH_HISUIAN] = _("Qwilfish"), - [SPECIES_SNEASEL_HISUIAN] = _("Sneasel"), -#if P_GEN_5_POKEMON == TRUE - [SPECIES_SAMUROTT_HISUIAN] = _("Samurott"), - [SPECIES_LILLIGANT_HISUIAN] = _("Lilligant"), - [SPECIES_ZORUA_HISUIAN] = _("Zorua"), - [SPECIES_ZOROARK_HISUIAN] = _("Zoroark"), - [SPECIES_BRAVIARY_HISUIAN] = _("Braviary"), -#endif -#if P_GEN_6_POKEMON == TRUE - [SPECIES_SLIGGOO_HISUIAN] = _("Sliggoo"), - [SPECIES_GOODRA_HISUIAN] = _("Goodra"), - [SPECIES_AVALUGG_HISUIAN] = _("Avalugg"), -#endif -#if P_GEN_7_POKEMON == TRUE - [SPECIES_DECIDUEYE_HISUIAN] = _("Decidueye"), -#endif - - // Cosplay Pikachu - [SPECIES_PIKACHU_COSPLAY] = _("Pikachu"), - [SPECIES_PIKACHU_ROCK_STAR] = _("Pikachu"), - [SPECIES_PIKACHU_BELLE] = _("Pikachu"), - [SPECIES_PIKACHU_POP_STAR] = _("Pikachu"), - [SPECIES_PIKACHU_PH_D] = _("Pikachu"), - [SPECIES_PIKACHU_LIBRE] = _("Pikachu"), - // Cap Pikachu - [SPECIES_PIKACHU_ORIGINAL_CAP] = _("Pikachu"), - [SPECIES_PIKACHU_HOENN_CAP] = _("Pikachu"), - [SPECIES_PIKACHU_SINNOH_CAP] = _("Pikachu"), - [SPECIES_PIKACHU_UNOVA_CAP] = _("Pikachu"), - [SPECIES_PIKACHU_KALOS_CAP] = _("Pikachu"), - [SPECIES_PIKACHU_ALOLA_CAP] = _("Pikachu"), - [SPECIES_PIKACHU_PARTNER_CAP] = _("Pikachu"), - [SPECIES_PIKACHU_WORLD_CAP] = _("Pikachu"), - // Pichu - [SPECIES_PICHU_SPIKY_EARED] = _("Pichu"), - // Unown - [SPECIES_UNOWN_B] = _("Unown"), - [SPECIES_UNOWN_C] = _("Unown"), - [SPECIES_UNOWN_D] = _("Unown"), - [SPECIES_UNOWN_E] = _("Unown"), - [SPECIES_UNOWN_F] = _("Unown"), - [SPECIES_UNOWN_G] = _("Unown"), - [SPECIES_UNOWN_H] = _("Unown"), - [SPECIES_UNOWN_I] = _("Unown"), - [SPECIES_UNOWN_J] = _("Unown"), - [SPECIES_UNOWN_K] = _("Unown"), - [SPECIES_UNOWN_L] = _("Unown"), - [SPECIES_UNOWN_M] = _("Unown"), - [SPECIES_UNOWN_N] = _("Unown"), - [SPECIES_UNOWN_O] = _("Unown"), - [SPECIES_UNOWN_P] = _("Unown"), - [SPECIES_UNOWN_Q] = _("Unown"), - [SPECIES_UNOWN_R] = _("Unown"), - [SPECIES_UNOWN_S] = _("Unown"), - [SPECIES_UNOWN_T] = _("Unown"), - [SPECIES_UNOWN_U] = _("Unown"), - [SPECIES_UNOWN_V] = _("Unown"), - [SPECIES_UNOWN_W] = _("Unown"), - [SPECIES_UNOWN_X] = _("Unown"), - [SPECIES_UNOWN_Y] = _("Unown"), - [SPECIES_UNOWN_Z] = _("Unown"), - [SPECIES_UNOWN_QMARK] = _("Unown"), - [SPECIES_UNOWN_EMARK] = _("Unown"), - // Castform - [SPECIES_CASTFORM_SUNNY] = _("Castform"), - [SPECIES_CASTFORM_RAINY] = _("Castform"), - [SPECIES_CASTFORM_SNOWY] = _("Castform"), - // Deoxys - [SPECIES_DEOXYS_ATTACK] = _("Deoxys"), - [SPECIES_DEOXYS_DEFENSE] = _("Deoxys"), - [SPECIES_DEOXYS_SPEED] = _("Deoxys"), -#if P_GEN_4_POKEMON == TRUE - // Burmy - [SPECIES_BURMY_SANDY_CLOAK] = _("Burmy"), - [SPECIES_BURMY_TRASH_CLOAK] = _("Burmy"), - // Wormadam - [SPECIES_WORMADAM_SANDY_CLOAK] = _("Wormadam"), - [SPECIES_WORMADAM_TRASH_CLOAK] = _("Wormadam"), - // Cherrim - [SPECIES_CHERRIM_SUNSHINE] = _("Cherrim"), - // Shellos - [SPECIES_SHELLOS_EAST_SEA] = _("Shellos"), - // Gastrodon - [SPECIES_GASTRODON_EAST_SEA] = _("Gastrodon"), - // Rotom - [SPECIES_ROTOM_HEAT] = _("Rotom"), - [SPECIES_ROTOM_FAN] = _("Rotom"), - [SPECIES_ROTOM_FROST] = _("Rotom"), - [SPECIES_ROTOM_MOW] = _("Rotom"), - [SPECIES_ROTOM_WASH] = _("Rotom"), - // Origin Forme - [SPECIES_DIALGA_ORIGIN] = _("Dialga"), - [SPECIES_PALKIA_ORIGIN] = _("Palkia"), - [SPECIES_GIRATINA_ORIGIN] = _("Giratina"), - // Shaymin - [SPECIES_SHAYMIN_SKY] = _("Shaymin"), - // Arceus - [SPECIES_ARCEUS_FIGHTING] = _("Arceus"), - [SPECIES_ARCEUS_FLYING] = _("Arceus"), - [SPECIES_ARCEUS_POISON] = _("Arceus"), - [SPECIES_ARCEUS_GROUND] = _("Arceus"), - [SPECIES_ARCEUS_ROCK] = _("Arceus"), - [SPECIES_ARCEUS_BUG] = _("Arceus"), - [SPECIES_ARCEUS_GHOST] = _("Arceus"), - [SPECIES_ARCEUS_STEEL] = _("Arceus"), - [SPECIES_ARCEUS_FIRE] = _("Arceus"), - [SPECIES_ARCEUS_WATER] = _("Arceus"), - [SPECIES_ARCEUS_GRASS] = _("Arceus"), - [SPECIES_ARCEUS_ELECTRIC] = _("Arceus"), - [SPECIES_ARCEUS_PSYCHIC] = _("Arceus"), - [SPECIES_ARCEUS_ICE] = _("Arceus"), - [SPECIES_ARCEUS_DRAGON] = _("Arceus"), - [SPECIES_ARCEUS_DARK] = _("Arceus"), - [SPECIES_ARCEUS_FAIRY] = _("Arceus"), -#endif -#if P_GEN_5_POKEMON == TRUE - // Basculin - [SPECIES_BASCULIN_BLUE_STRIPED] = _("Basculin"), - [SPECIES_BASCULIN_WHITE_STRIPED] = _("Basculin"), - // Darmanitan - [SPECIES_DARMANITAN_ZEN_MODE] = _("Darmanitan"), - [SPECIES_DARMANITAN_GALARIAN_ZEN_MODE] = _("Darmanitan"), - // Deerling - [SPECIES_DEERLING_SUMMER] = _("Deerling"), - [SPECIES_DEERLING_AUTUMN] = _("Deerling"), - [SPECIES_DEERLING_WINTER] = _("Deerling"), - // Sawsbuck - [SPECIES_SAWSBUCK_SUMMER] = _("Sawsbuck"), - [SPECIES_SAWSBUCK_AUTUMN] = _("Sawsbuck"), - [SPECIES_SAWSBUCK_WINTER] = _("Sawsbuck"), - // Therian Forms - [SPECIES_TORNADUS_THERIAN] = _("Tornadus"), - [SPECIES_THUNDURUS_THERIAN] = _("Thundurus"), - [SPECIES_LANDORUS_THERIAN] = _("Landorus"), - [SPECIES_ENAMORUS_THERIAN] = _("Enamorus"), - // Kyurem - [SPECIES_KYUREM_BLACK] = _("Kyurem"), - [SPECIES_KYUREM_WHITE] = _("Kyurem"), - // Keldeo - [SPECIES_KELDEO_RESOLUTE] = _("Keldeo"), - // Meloetta - [SPECIES_MELOETTA_PIROUETTE] = _("Meloetta"), - // Genesect - [SPECIES_GENESECT_DOUSE_DRIVE] = _("Genesect"), - [SPECIES_GENESECT_SHOCK_DRIVE] = _("Genesect"), - [SPECIES_GENESECT_BURN_DRIVE] = _("Genesect"), - [SPECIES_GENESECT_CHILL_DRIVE] = _("Genesect"), -#endif -#if P_GEN_6_POKEMON == TRUE - // Greninja - [SPECIES_GRENINJA_BATTLE_BOND] = _("Greninja"), - [SPECIES_GRENINJA_ASH] = _("Greninja"), - // Vivillon - [SPECIES_VIVILLON_POLAR] = _("Vivillon"), - [SPECIES_VIVILLON_TUNDRA] = _("Vivillon"), - [SPECIES_VIVILLON_CONTINENTAL] = _("Vivillon"), - [SPECIES_VIVILLON_GARDEN] = _("Vivillon"), - [SPECIES_VIVILLON_ELEGANT] = _("Vivillon"), - [SPECIES_VIVILLON_MEADOW] = _("Vivillon"), - [SPECIES_VIVILLON_MODERN] = _("Vivillon"), - [SPECIES_VIVILLON_MARINE] = _("Vivillon"), - [SPECIES_VIVILLON_ARCHIPELAGO] = _("Vivillon"), - [SPECIES_VIVILLON_HIGH_PLAINS] = _("Vivillon"), - [SPECIES_VIVILLON_SANDSTORM] = _("Vivillon"), - [SPECIES_VIVILLON_RIVER] = _("Vivillon"), - [SPECIES_VIVILLON_MONSOON] = _("Vivillon"), - [SPECIES_VIVILLON_SAVANNA] = _("Vivillon"), - [SPECIES_VIVILLON_SUN] = _("Vivillon"), - [SPECIES_VIVILLON_OCEAN] = _("Vivillon"), - [SPECIES_VIVILLON_JUNGLE] = _("Vivillon"), - [SPECIES_VIVILLON_FANCY] = _("Vivillon"), - [SPECIES_VIVILLON_POKE_BALL] = _("Vivillon"), - // Flabébé - [SPECIES_FLABEBE_YELLOW_FLOWER] = _("Flabébé"), - [SPECIES_FLABEBE_ORANGE_FLOWER] = _("Flabébé"), - [SPECIES_FLABEBE_BLUE_FLOWER] = _("Flabébé"), - [SPECIES_FLABEBE_WHITE_FLOWER] = _("Flabébé"), - // Floette - [SPECIES_FLOETTE_YELLOW_FLOWER] = _("Floette"), - [SPECIES_FLOETTE_ORANGE_FLOWER] = _("Floette"), - [SPECIES_FLOETTE_BLUE_FLOWER] = _("Floette"), - [SPECIES_FLOETTE_WHITE_FLOWER] = _("Floette"), - [SPECIES_FLOETTE_ETERNAL_FLOWER] = _("Floette"), - // Florges - [SPECIES_FLORGES_YELLOW_FLOWER] = _("Florges"), - [SPECIES_FLORGES_ORANGE_FLOWER] = _("Florges"), - [SPECIES_FLORGES_BLUE_FLOWER] = _("Florges"), - [SPECIES_FLORGES_WHITE_FLOWER] = _("Florges"), - // Furfrou - [SPECIES_FURFROU_HEART_TRIM] = _("Furfrou"), - [SPECIES_FURFROU_STAR_TRIM] = _("Furfrou"), - [SPECIES_FURFROU_DIAMOND_TRIM] = _("Furfrou"), - [SPECIES_FURFROU_DEBUTANTE_TRIM] = _("Furfrou"), - [SPECIES_FURFROU_MATRON_TRIM] = _("Furfrou"), - [SPECIES_FURFROU_DANDY_TRIM] = _("Furfrou"), - [SPECIES_FURFROU_LA_REINE_TRIM] = _("Furfrou"), - [SPECIES_FURFROU_KABUKI_TRIM] = _("Furfrou"), - [SPECIES_FURFROU_PHARAOH_TRIM] = _("Furfrou"), - // Meowstic - [SPECIES_MEOWSTIC_FEMALE] = _("Meowstic"), - // Aegislash - [SPECIES_AEGISLASH_BLADE] = _("Aegislash"), - // Pumpkaboo - [SPECIES_PUMPKABOO_SMALL] = _("Pumpkaboo"), - [SPECIES_PUMPKABOO_LARGE] = _("Pumpkaboo"), - [SPECIES_PUMPKABOO_SUPER] = _("Pumpkaboo"), - // Gourgeist - [SPECIES_GOURGEIST_SMALL] = _("Gourgeist"), - [SPECIES_GOURGEIST_LARGE] = _("Gourgeist"), - [SPECIES_GOURGEIST_SUPER] = _("Gourgeist"), - // Xerneas - [SPECIES_XERNEAS_ACTIVE] = _("Xerneas"), - // Zygarde - [SPECIES_ZYGARDE_10_AURA_BREAK] = _("Zygarde"), - [SPECIES_ZYGARDE_10_POWER_CONSTRUCT] = _("Zygarde"), - [SPECIES_ZYGARDE_50_POWER_CONSTRUCT] = _("Zygarde"), - [SPECIES_ZYGARDE_COMPLETE] = _("Zygarde"), - // Hoopa - [SPECIES_HOOPA_UNBOUND] = _("Hoopa"), -#endif -#if P_GEN_7_POKEMON == TRUE - // Oricorio - [SPECIES_ORICORIO_POM_POM] = _("Oricorio"), - [SPECIES_ORICORIO_PAU] = _("Oricorio"), - [SPECIES_ORICORIO_SENSU] = _("Oricorio"), - // Rockruff - [SPECIES_ROCKRUFF_OWN_TEMPO] = _("Rockruff"), - // Lycanroc - [SPECIES_LYCANROC_MIDNIGHT] = _("Lycanroc"), - [SPECIES_LYCANROC_DUSK] = _("Lycanroc"), - // Wishiwashi - [SPECIES_WISHIWASHI_SCHOOL] = _("Wishiwashi"), - // Silvally - [SPECIES_SILVALLY_FIGHTING] = _("Silvally"), - [SPECIES_SILVALLY_FLYING] = _("Silvally"), - [SPECIES_SILVALLY_POISON] = _("Silvally"), - [SPECIES_SILVALLY_GROUND] = _("Silvally"), - [SPECIES_SILVALLY_ROCK] = _("Silvally"), - [SPECIES_SILVALLY_BUG] = _("Silvally"), - [SPECIES_SILVALLY_GHOST] = _("Silvally"), - [SPECIES_SILVALLY_STEEL] = _("Silvally"), - [SPECIES_SILVALLY_FIRE] = _("Silvally"), - [SPECIES_SILVALLY_WATER] = _("Silvally"), - [SPECIES_SILVALLY_GRASS] = _("Silvally"), - [SPECIES_SILVALLY_ELECTRIC] = _("Silvally"), - [SPECIES_SILVALLY_PSYCHIC] = _("Silvally"), - [SPECIES_SILVALLY_ICE] = _("Silvally"), - [SPECIES_SILVALLY_DRAGON] = _("Silvally"), - [SPECIES_SILVALLY_DARK] = _("Silvally"), - [SPECIES_SILVALLY_FAIRY] = _("Silvally"), - // Minior - [SPECIES_MINIOR_METEOR_ORANGE] = _("Minior"), - [SPECIES_MINIOR_METEOR_YELLOW] = _("Minior"), - [SPECIES_MINIOR_METEOR_GREEN] = _("Minior"), - [SPECIES_MINIOR_METEOR_BLUE] = _("Minior"), - [SPECIES_MINIOR_METEOR_INDIGO] = _("Minior"), - [SPECIES_MINIOR_METEOR_VIOLET] = _("Minior"), - [SPECIES_MINIOR_CORE_RED] = _("Minior"), - [SPECIES_MINIOR_CORE_ORANGE] = _("Minior"), - [SPECIES_MINIOR_CORE_YELLOW] = _("Minior"), - [SPECIES_MINIOR_CORE_GREEN] = _("Minior"), - [SPECIES_MINIOR_CORE_BLUE] = _("Minior"), - [SPECIES_MINIOR_CORE_INDIGO] = _("Minior"), - [SPECIES_MINIOR_CORE_VIOLET] = _("Minior"), - // Mimikyu - [SPECIES_MIMIKYU_BUSTED] = _("Mimikyu"), - // Necrozma - [SPECIES_NECROZMA_DUSK_MANE] = _("Necrozma"), - [SPECIES_NECROZMA_DAWN_WINGS] = _("Necrozma"), - [SPECIES_NECROZMA_ULTRA] = _("Necrozma"), - // Magearna - [SPECIES_MAGEARNA_ORIGINAL_COLOR] = _("Magearna"), -#endif -#if P_GEN_8_POKEMON == TRUE - // Cramorant - [SPECIES_CRAMORANT_GULPING] = _("Cramorant"), - [SPECIES_CRAMORANT_GORGING] = _("Cramorant"), - // Toxtricity - [SPECIES_TOXTRICITY_LOW_KEY] = _("Toxtricity"), - // Sinistea - [SPECIES_SINISTEA_ANTIQUE] = _("Sinistea"), - // Polteageist - [SPECIES_POLTEAGEIST_ANTIQUE] = _("Polteageis"), - // Alcremie - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM] = _("Alcremie"), - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL] = _("Alcremie"), - [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL] = _("Alcremie"), - [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL] = _("Alcremie"), - // Eiscue - [SPECIES_EISCUE_NOICE_FACE] = _("Eiscue"), - // Indeedee - [SPECIES_INDEEDEE_FEMALE] = _("Indeedee"), - // Morpeko - [SPECIES_MORPEKO_HANGRY] = _("Morpeko"), - // Zacian - [SPECIES_ZACIAN_CROWNED_SWORD] = _("Zacian"), - // Zamazenta - [SPECIES_ZAMAZENTA_CROWNED_SHIELD] = _("Zamazenta"), - // Eternatus - [SPECIES_ETERNATUS_ETERNAMAX] = _("Eternatus"), - // Urshifu - [SPECIES_URSHIFU_RAPID_STRIKE_STYLE] = _("Urshifu"), - // Zarude - [SPECIES_ZARUDE_DADA] = _("Zarude"), - // Calyrex - [SPECIES_CALYREX_ICE_RIDER] = _("Calyrex"), - [SPECIES_CALYREX_SHADOW_RIDER] = _("Calyrex"), - // Basculegion - [SPECIES_BASCULEGION_FEMALE] = _("Bsculegion"), - // Gigantamax Forms - [SPECIES_VENUSAUR_GIGANTAMAX] = _("Venusaur"), - [SPECIES_CHARIZARD_GIGANTAMAX] = _("Charizard"), - [SPECIES_BLASTOISE_GIGANTAMAX] = _("Blastoise"), - [SPECIES_BUTTERFREE_GIGANTAMAX] = _("Butterfree"), - [SPECIES_PIKACHU_GIGANTAMAX] = _("Pikachu"), - [SPECIES_MEOWTH_GIGANTAMAX] = _("Meowth"), - [SPECIES_MACHAMP_GIGANTAMAX] = _("Machamp"), - [SPECIES_GENGAR_GIGANTAMAX] = _("Gengar"), - [SPECIES_KINGLER_GIGANTAMAX] = _("Kingler"), - [SPECIES_LAPRAS_GIGANTAMAX] = _("Lapras"), - [SPECIES_EEVEE_GIGANTAMAX] = _("Eevee"), - [SPECIES_SNORLAX_GIGANTAMAX] = _("Snorlax"), - [SPECIES_GARBODOR_GIGANTAMAX] = _("Garbodor"), - [SPECIES_MELMETAL_GIGANTAMAX] = _("Melmetal"), - [SPECIES_RILLABOOM_GIGANTAMAX] = _("Rillaboom"), - [SPECIES_CINDERACE_GIGANTAMAX] = _("Cinderace"), - [SPECIES_INTELEON_GIGANTAMAX] = _("Inteleon"), - [SPECIES_CORVIKNIGHT_GIGANTAMAX] = _("Corviknigh"), - [SPECIES_ORBEETLE_GIGANTAMAX] = _("Orbeetle"), - [SPECIES_DREDNAW_GIGANTAMAX] = _("Drednaw"), - [SPECIES_COALOSSAL_GIGANTAMAX] = _("Coalossal"), - [SPECIES_FLAPPLE_GIGANTAMAX] = _("Flapple"), - [SPECIES_APPLETUN_GIGANTAMAX] = _("Appletun"), - [SPECIES_SANDACONDA_GIGANTAMAX] = _("Sandaconda"), - [SPECIES_TOXTRICITY_AMPED_GIGANTAMAX] = _("Toxtricity"), - [SPECIES_TOXTRICITY_LOW_KEY_GIGANTAMAX] = _("Toxtricity"), - [SPECIES_CENTISKORCH_GIGANTAMAX] = _("Centiskorc"), - [SPECIES_HATTERENE_GIGANTAMAX] = _("Hatterene"), - [SPECIES_GRIMMSNARL_GIGANTAMAX] = _("Grimmsnarl"), - [SPECIES_ALCREMIE_GIGANTAMAX] = _("Alcremie"), - [SPECIES_COPPERAJAH_GIGANTAMAX] = _("Copperajah"), - [SPECIES_DURALUDON_GIGANTAMAX] = _("Duraludon"), - [SPECIES_URSHIFU_SINGLE_STRIKE_STYLE_GIGANTAMAX] = _("Urshifu"), - [SPECIES_URSHIFU_RAPID_STRIKE_STYLE_GIGANTAMAX] = _("Urshifu"), -#endif -}; diff --git a/src/data/wallpapers.h b/src/data/wallpapers.h index 64c61fe2d5ce..d204d441307d 100644 --- a/src/data/wallpapers.h +++ b/src/data/wallpapers.h @@ -317,6 +317,7 @@ static const u32 sWallpaperIcon_Brick[] = INCBIN_U32("graphics/pokemon_st static const u32 sWallpaperIcon_FourStar[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/four_star.4bpp.lz"); static const u32 sWallpaperIcon_Asterisk[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/asterisk.4bpp.lz"); static const u32 sWallpaperIcon_Dot[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/dot.4bpp.lz"); +static const u32 sWallpaperIcon_CrossJapan[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/cross_japan.4bpp.lz"); static const u32 sWallpaperIcon_LineCircle[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/line_circle.4bpp.lz"); static const u32 sWallpaperIcon_PokeBall[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/pokeball.4bpp.lz"); static const u32 sWallpaperIcon_Maze[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/maze.4bpp.lz"); @@ -325,6 +326,7 @@ static const u32 sWallpaperIcon_BigAsterisk[] = INCBIN_U32("graphics/pokemon_st static const u32 sWallpaperIcon_Circle[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/circle.4bpp.lz"); static const u32 sWallpaperIcon_Koffing[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/koffing.4bpp.lz"); static const u32 sWallpaperIcon_Ribbon[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/ribbon.4bpp.lz"); +static const u32 sWallpaperIcon_BoltJapan[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/bolt_japan.4bpp.lz"); static const u32 sWallpaperIcon_FourCircles[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/four_circles.4bpp.lz"); static const u32 sWallpaperIcon_Lotad[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/lotad.4bpp.lz"); static const u32 sWallpaperIcon_Crystal[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/crystal.4bpp.lz"); @@ -334,6 +336,7 @@ static const u32 sWallpaperIcon_Luvdisc[] = INCBIN_U32("graphics/pokemon_st static const u32 sWallpaperIcon_StarInCircle[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/star_in_circle.4bpp.lz"); static const u32 sWallpaperIcon_Spinda[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/spinda.4bpp.lz"); static const u32 sWallpaperIcon_Latis[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/latis.4bpp.lz"); +static const u32 sWallpaperIcon_PlusleJapan[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/plusle_japan.4bpp.lz"); static const u32 sWallpaperIcon_Minun[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/minun.4bpp.lz"); static const u32 sWallpaperIcon_Togepi[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/togepi.4bpp.lz"); static const u32 sWallpaperIcon_Magma[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/icons/magma.4bpp.lz"); @@ -367,7 +370,11 @@ static const u32 *const sWaldaWallpaperIcons[] = sWallpaperIcon_FourStar, sWallpaperIcon_Asterisk, sWallpaperIcon_Dot, +#if OW_PC_JAPAN_WALDA_ICONS == TRUE + sWallpaperIcon_CrossJapan, +#else gWallpaperIcon_Cross, +#endif sWallpaperIcon_LineCircle, sWallpaperIcon_PokeBall, sWallpaperIcon_Maze, @@ -376,7 +383,11 @@ static const u32 *const sWaldaWallpaperIcons[] = sWallpaperIcon_Circle, sWallpaperIcon_Koffing, sWallpaperIcon_Ribbon, +#if OW_PC_JAPAN_WALDA_ICONS == TRUE + sWallpaperIcon_BoltJapan, +#else gWallpaperIcon_Bolt, +#endif sWallpaperIcon_FourCircles, sWallpaperIcon_Lotad, sWallpaperIcon_Crystal, @@ -386,7 +397,11 @@ static const u32 *const sWaldaWallpaperIcons[] = sWallpaperIcon_StarInCircle, sWallpaperIcon_Spinda, sWallpaperIcon_Latis, +#if OW_PC_JAPAN_WALDA_ICONS == TRUE + sWallpaperIcon_PlusleJapan, +#else gWallpaperIcon_Plusle, +#endif sWallpaperIcon_Minun, sWallpaperIcon_Togepi, sWallpaperIcon_Magma, diff --git a/src/daycare.c b/src/daycare.c index d5880be27a42..4e4a9ab7338c 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -26,9 +26,7 @@ #include "constants/moves.h" #include "constants/region_map_sections.h" -extern const struct Evolution gEvolutionTable[][EVOS_PER_MON]; - -#define IS_DITTO(species) (gBaseStats[species].eggGroup1 == EGG_GROUP_DITTO || gBaseStats[species].eggGroup2 == EGG_GROUP_DITTO) +#define IS_DITTO(species) (gSpeciesInfo[species].eggGroups[0] == EGG_GROUP_DITTO || gSpeciesInfo[species].eggGroups[1] == EGG_GROUP_DITTO) static void ClearDaycareMonMail(struct DaycareMail *mail); static void SetInitialEggData(struct Pokemon *mon, u16 species, struct DayCare *daycare); @@ -457,14 +455,17 @@ static u16 GetEggSpecies(u16 species) // Working backwards up to 5 times seems arbitrary, since the maximum number // of times would only be 3 for 3-stage evolutions. - for (i = 0; i < EVOS_PER_MON; i++) + for (i = 0; i < 5; i++) { found = FALSE; for (j = 1; j < NUM_SPECIES; j++) { - for (k = 0; k < EVOS_PER_MON; k++) + const struct Evolution *evolutions = GetSpeciesEvolutions(j); + if (evolutions == NULL) + continue; + for (k = 0; evolutions[k].method != EVOLUTIONS_END; k++) { - if (gEvolutionTable[j][k].targetSpecies == species) + if (SanitizeSpeciesId(evolutions[k].targetSpecies) == species) { species = j; found = TRUE; diff --git a/src/debug.c b/src/debug.c index 3d8d6f33bcdf..23c21f76f03b 100644 --- a/src/debug.c +++ b/src/debug.c @@ -43,6 +43,7 @@ #include "pokemon_storage_system.h" #include "random.h" #include "region_map.h" +#include "rtc.h" #include "script.h" #include "script_pokemon_util.h" #include "sound.h" @@ -54,6 +55,8 @@ #include "constants/abilities.h" #include "constants/battle_ai.h" #include "constants/battle_frontier.h" +#include "constants/coins.h" +#include "constants/expansion.h" #include "constants/flags.h" #include "constants/items.h" #include "constants/map_groups.h" @@ -65,8 +68,8 @@ #if DEBUG_OVERWORLD_MENU == TRUE // ******************************* -// Enums -enum { // Main +enum DebugMenu +{ DEBUG_MENU_ITEM_UTILITIES, DEBUG_MENU_ITEM_SCRIPTS, DEBUG_MENU_ITEM_FLAGVAR, @@ -75,9 +78,11 @@ enum { // Main DEBUG_MENU_ITEM_FILL, DEBUG_MENU_ITEM_SOUND, DEBUG_MENU_ITEM_ACCESS_PC, - DEBUG_MENU_ITEM_CANCEL + DEBUG_MENU_ITEM_CANCEL, }; -enum { // Util + +enum UtilMenu +{ DEBUG_UTIL_MENU_ITEM_HEAL_PARTY, DEBUG_UTIL_MENU_ITEM_FLY, DEBUG_UTIL_MENU_ITEM_WARP, @@ -88,14 +93,17 @@ enum { // Util DEBUG_UTIL_MENU_ITEM_CHECKWALLCLOCK, DEBUG_UTIL_MENU_ITEM_SETWALLCLOCK, DEBUG_UTIL_MENU_ITEM_WATCHCREDITS, - DEBUG_UTIL_MENU_ITEM_TRAINER_NAME, - DEBUG_UTIL_MENU_ITEM_TRAINER_GENDER, - DEBUG_UTIL_MENU_ITEM_TRAINER_ID, + DEBUG_UTIL_MENU_ITEM_PLAYER_NAME, + DEBUG_UTIL_MENU_ITEM_PLAYER_GENDER, + DEBUG_UTIL_MENU_ITEM_PLAYER_ID, DEBUG_UTIL_MENU_ITEM_CLEAR_BOXES, DEBUG_UTIL_MENU_ITEM_CHEAT, DEBUG_UTIL_MENU_ITEM_HATCH_AN_EGG, + DEBUG_UTIL_MENU_ITEM_EXPANSION_VER, }; -enum { // Scripts + +enum ScriptMenu +{ DEBUG_UTIL_MENU_ITEM_SCRIPT_1, DEBUG_UTIL_MENU_ITEM_SCRIPT_2, DEBUG_UTIL_MENU_ITEM_SCRIPT_3, @@ -105,7 +113,9 @@ enum { // Scripts DEBUG_UTIL_MENU_ITEM_SCRIPT_7, DEBUG_UTIL_MENU_ITEM_SCRIPT_8, }; -enum { // Flags and Vars + +enum FlagsVarsMenu +{ DEBUG_FLAGVAR_MENU_ITEM_FLAGS, DEBUG_FLAGVAR_MENU_ITEM_VARS, DEBUG_FLAGVAR_MENU_ITEM_DEXFLAGS_ALL, @@ -113,6 +123,7 @@ enum { // Flags and Vars DEBUG_FLAGVAR_MENU_ITEM_TOGGLE_POKEDEX, DEBUG_FLAGVAR_MENU_ITEM_TOGGLE_NATDEX, DEBUG_FLAGVAR_MENU_ITEM_TOGGLE_POKENAV, + DEBUG_FLAGVAR_MENU_ITEM_TOGGLE_MATCH_CALL, DEBUG_FLAGVAR_MENU_ITEM_TOGGLE_RUN_SHOES, DEBUG_FLAGVAR_MENU_ITEM_TOGGLE_LOCATIONS, DEBUG_FLAGVAR_MENU_ITEM_TOGGLE_BADGES_ALL, @@ -123,14 +134,18 @@ enum { // Flags and Vars DEBUG_FLAGVAR_MENU_ITEM_TOGGLE_BAG_USE, DEBUG_FLAGVAR_MENU_ITEM_TOGGLE_CATCHING, }; -enum { // Battle 0 Type + +enum BattleType +{ DEBUG_BATTLE_0_MENU_ITEM_WILD, DEBUG_BATTLE_0_MENU_ITEM_WILD_DOUBLE, DEBUG_BATTLE_0_MENU_ITEM_SINGLE, DEBUG_BATTLE_0_MENU_ITEM_DOUBLE, DEBUG_BATTLE_0_MENU_ITEM_MULTI, }; -enum { // Battle 1 AI FLags + +enum BattleAIFlags +{ DEBUG_BATTLE_1_MENU_ITEM_AI_FLAG_00, DEBUG_BATTLE_1_MENU_ITEM_AI_FLAG_01, DEBUG_BATTLE_1_MENU_ITEM_AI_FLAG_02, @@ -151,7 +166,9 @@ enum { // Battle 1 AI FLags DEBUG_BATTLE_1_MENU_ITEM_AI_FLAG_17, DEBUG_BATTLE_1_MENU_ITEM_CONTINUE, }; -enum { // Battle 2 Terrain + +enum BattleTerrain +{ DEBUG_BATTLE_2_MENU_ITEM_TERRAIN_0, DEBUG_BATTLE_2_MENU_ITEM_TERRAIN_1, DEBUG_BATTLE_2_MENU_ITEM_TERRAIN_2, @@ -163,7 +180,9 @@ enum { // Battle 2 Terrain DEBUG_BATTLE_2_MENU_ITEM_TERRAIN_8, DEBUG_BATTLE_2_MENU_ITEM_TERRAIN_9, }; -enum { // Give + +enum GiveMenu +{ DEBUG_GIVE_MENU_ITEM_ITEM_X, DEBUG_GIVE_MENU_ITEM_ALLTMS, DEBUG_GIVE_MENU_ITEM_POKEMON_SIMPLE, @@ -173,7 +192,9 @@ enum { // Give DEBUG_GIVE_MENU_ITEM_MAX_BATTLE_POINTS, DEBUG_GIVE_MENU_ITEM_DAYCARE_EGG, }; -enum { // Give Fill + +enum GiveFillMenu +{ DEBUG_FILL_MENU_ITEM_PC_BOXES_FAST, DEBUG_FILL_MENU_ITEM_PC_BOXES_SLOW, DEBUG_FILL_MENU_ITEM_PC_ITEMS, @@ -183,13 +204,17 @@ enum { // Give Fill DEBUG_FILL_MENU_ITEM_POCKET_BERRIES, DEBUG_FILL_MENU_ITEM_POCKET_KEY_ITEMS, }; -enum { //Sound + +enum SoundMenu +{ DEBUG_SOUND_MENU_ITEM_SE, DEBUG_SOUND_MENU_ITEM_MUS, }; // ******************************* // Constants +#define DEBUG_MENU_FONT FONT_NORMAL + #define DEBUG_MENU_WIDTH_MAIN 16 #define DEBUG_MENU_HEIGHT_MAIN 9 @@ -219,11 +244,11 @@ enum { //Sound // ******************************* struct DebugMonData { - u16 mon_speciesId; - u8 mon_level; - u8 isShiny; - u16 mon_natureId; - u16 mon_abilityNum; + u16 species; + u8 level; + bool8 isShiny:1; + u8 nature:5; + u8 abilityNum:2; u8 mon_iv_hp; u8 mon_iv_atk; u8 mon_iv_def; @@ -286,6 +311,7 @@ static void DebugAction_OpenGiveMenu(u8 taskId); static void DebugAction_OpenFillMenu(u8 taskId); static void DebugAction_OpenSoundMenu(u8 taskId); static void DebugAction_AccessPC(u8 taskId); + static void DebugTask_HandleMenuInput_Main(u8 taskId); static void DebugTask_HandleMenuInput_Utilities(u8 taskId); static void DebugTask_HandleMenuInput_Scripts(u8 taskId); @@ -310,12 +336,13 @@ static void DebugAction_Util_Weather_SelectId(u8 taskId); static void DebugAction_Util_CheckWallClock(u8 taskId); static void DebugAction_Util_SetWallClock(u8 taskId); static void DebugAction_Util_WatchCredits(u8 taskId); -static void DebugAction_Util_Trainer_Name(u8 taskId); -static void DebugAction_Util_Trainer_Gender(u8 taskId); -static void DebugAction_Util_Trainer_Id(u8 taskId); +static void DebugAction_Util_Player_Name(u8 taskId); +static void DebugAction_Util_Player_Gender(u8 taskId); +static void DebugAction_Util_Player_Id(u8 taskId); static void DebugAction_Util_Clear_Boxes(u8 taskId); static void DebugAction_Util_CheatStart(u8 taskId); static void DebugAction_Util_HatchAnEgg(u8 taskId); +static void DebugAction_Util_ExpansionVersion(u8 taskId); static void DebugAction_FlagsVars_Flags(u8 taskId); static void DebugAction_FlagsVars_FlagsSelect(u8 taskId); @@ -327,6 +354,7 @@ static void DebugAction_FlagsVars_PokedexFlags_Reset(u8 taskId); static void DebugAction_FlagsVars_SwitchDex(u8 taskId); static void DebugAction_FlagsVars_SwitchNatDex(u8 taskId); static void DebugAction_FlagsVars_SwitchPokeNav(u8 taskId); +static void DebugAction_FlagsVars_SwitchMatchCall(u8 taskId); static void DebugAction_FlagsVars_ToggleFlyFlags(u8 taskId); static void DebugAction_FlagsVars_ToggleBadgeFlags(u8 taskId); static void DebugAction_FlagsVars_ToggleFrontierPass(u8 taskId); @@ -374,14 +402,15 @@ static void DebugAction_Sound_MUS_SelectId(u8 taskId); extern const u8 Debug_FlagsNotSetOverworldConfigMessage[]; extern const u8 Debug_FlagsNotSetBattleConfigMessage[]; -extern const u8 Debug_Script_1[]; -extern const u8 Debug_Script_2[]; -extern const u8 Debug_Script_3[]; -extern const u8 Debug_Script_4[]; -extern const u8 Debug_Script_5[]; -extern const u8 Debug_Script_6[]; -extern const u8 Debug_Script_7[]; -extern const u8 Debug_Script_8[]; +extern const u8 Debug_FlagsAndVarNotSetBattleConfigMessage[]; +extern const u8 Debug_EventScript_Script_1[]; +extern const u8 Debug_EventScript_Script_2[]; +extern const u8 Debug_EventScript_Script_3[]; +extern const u8 Debug_EventScript_Script_4[]; +extern const u8 Debug_EventScript_Script_5[]; +extern const u8 Debug_EventScript_Script_6[]; +extern const u8 Debug_EventScript_Script_7[]; +extern const u8 Debug_EventScript_Script_8[]; extern const u8 DebugScript_DaycareMonsNotCompatible[]; extern const u8 DebugScript_OneDaycareMons[]; extern const u8 DebugScript_ZeroDaycareMons[]; @@ -394,6 +423,7 @@ extern const u8 PlayersHouse_2F_EventScript_CheckWallClock[]; extern const u8 Debug_CheckSaveBlock[]; extern const u8 Debug_CheckROMSpace[]; extern const u8 Debug_BoxFilledMessage[]; +extern const u8 Debug_ShowExpansionVersion[]; #include "data/map_group_count.h" @@ -426,27 +456,28 @@ static const u8 sDebugText_Util_Script_6[] = _("Script 6"); static const u8 sDebugText_Util_Script_7[] = _("Script 7"); static const u8 sDebugText_Util_Script_8[] = _("Script 8"); // Util Menu -static const u8 sDebugText_Util_HealParty[] = _("Heal Party"); -static const u8 sDebugText_Util_Fly[] = _("Fly to map…{CLEAR_TO 110}{RIGHT_ARROW}"); -static const u8 sDebugText_Util_WarpToMap[] = _("Warp to map warp…{CLEAR_TO 110}{RIGHT_ARROW}"); -static const u8 sDebugText_Util_WarpToMap_SelectMapGroup[] =_("Group: {STR_VAR_1}{CLEAR_TO 90}\n{CLEAR_TO 90}\n\n{STR_VAR_3}{CLEAR_TO 90}"); -static const u8 sDebugText_Util_WarpToMap_SelectMap[] = _("Map: {STR_VAR_1}{CLEAR_TO 90}\nMapSec:{CLEAR_TO 90}\n{STR_VAR_2}{CLEAR_TO 90}\n{STR_VAR_3}{CLEAR_TO 90}"); -static const u8 sDebugText_Util_WarpToMap_SelectWarp[] = _("Warp:{CLEAR_TO 90}\n{STR_VAR_1}{CLEAR_TO 90}\n{CLEAR_TO 90}\n{STR_VAR_3}{CLEAR_TO 90}"); -static const u8 sDebugText_Util_WarpToMap_SelMax[] = _("{STR_VAR_1} / {STR_VAR_2}"); -static const u8 sDebugText_Util_PoisonMons[] = _("Poison all mons"); -static const u8 sDebugText_Util_SaveBlockSpace[] = _("SaveBlock Space…{CLEAR_TO 110}{RIGHT_ARROW}"); -static const u8 sDebugText_Util_ROMSpace[] = _("ROM Space…{CLEAR_TO 110}{RIGHT_ARROW}"); -static const u8 sDebugText_Util_Weather[] = _("Set weather…{CLEAR_TO 110}{RIGHT_ARROW}"); -static const u8 sDebugText_Util_Weather_ID[] = _("Weather Id: {STR_VAR_3}\n{STR_VAR_1}\n{STR_VAR_2}"); -static const u8 sDebugText_Util_CheckWallClock[] = _("Check Wall Clock…{CLEAR_TO 110}{RIGHT_ARROW}"); -static const u8 sDebugText_Util_SetWallClock[] = _("Set Wall Clock…{CLEAR_TO 110}{RIGHT_ARROW}"); -static const u8 sDebugText_Util_WatchCredits[] = _("Watch Credits…{CLEAR_TO 110}{RIGHT_ARROW}"); -static const u8 sDebugText_Util_Trainer_Name[] = _("Trainer name"); -static const u8 sDebugText_Util_Trainer_Gender[] = _("Toggle T. Gender"); -static const u8 sDebugText_Util_Trainer_Id[] = _("New Trainer Id"); -static const u8 sDebugText_Util_Clear_Boxes[] = _("Clear Storage Boxes"); -static const u8 sDebugText_Util_CheatStart[] = _("CHEAT Start"); -static const u8 sDebugText_Util_HatchAnEgg[] = _("Hatch an Egg"); +static const u8 sDebugText_Util_HealParty[] = _("Heal Party"); +static const u8 sDebugText_Util_FlyToMap[] = _("Fly to map…{CLEAR_TO 110}{RIGHT_ARROW}"); +static const u8 sDebugText_Util_WarpToMap[] = _("Warp to map warp…{CLEAR_TO 110}{RIGHT_ARROW}"); +static const u8 sDebugText_Util_WarpToMap_SelectMapGroup[] = _("Group: {STR_VAR_1}{CLEAR_TO 90}\n{CLEAR_TO 90}\n\n{STR_VAR_3}{CLEAR_TO 90}"); +static const u8 sDebugText_Util_WarpToMap_SelectMap[] = _("Map: {STR_VAR_1}{CLEAR_TO 90}\nMapSec:{CLEAR_TO 90}\n{STR_VAR_2}{CLEAR_TO 90}\n{STR_VAR_3}{CLEAR_TO 90}"); +static const u8 sDebugText_Util_WarpToMap_SelectWarp[] = _("Warp:{CLEAR_TO 90}\n{STR_VAR_1}{CLEAR_TO 90}\n{CLEAR_TO 90}\n{STR_VAR_3}{CLEAR_TO 90}"); +static const u8 sDebugText_Util_WarpToMap_SelMax[] = _("{STR_VAR_1} / {STR_VAR_2}"); +static const u8 sDebugText_Util_PoisonParty[] = _("Poison party"); +static const u8 sDebugText_Util_SaveBlockSpace[] = _("SaveBlock Space…{CLEAR_TO 110}{RIGHT_ARROW}"); +static const u8 sDebugText_Util_ROMSpace[] = _("ROM Space…{CLEAR_TO 110}{RIGHT_ARROW}"); +static const u8 sDebugText_Util_Weather[] = _("Set weather…{CLEAR_TO 110}{RIGHT_ARROW}"); +static const u8 sDebugText_Util_Weather_ID[] = _("Weather Id: {STR_VAR_3}\n{STR_VAR_1}\n{STR_VAR_2}"); +static const u8 sDebugText_Util_CheckWallClock[] = _("Check Wall Clock…{CLEAR_TO 110}{RIGHT_ARROW}"); +static const u8 sDebugText_Util_SetWallClock[] = _("Set Wall Clock…{CLEAR_TO 110}{RIGHT_ARROW}"); +static const u8 sDebugText_Util_WatchCredits[] = _("Watch Credits…{CLEAR_TO 110}{RIGHT_ARROW}"); +static const u8 sDebugText_Util_Player_Name[] = _("Player name"); +static const u8 sDebugText_Util_Player_Gender[] = _("Toggle Gender"); +static const u8 sDebugText_Util_Player_Id[] = _("New Trainer Id"); +static const u8 sDebugText_Util_Clear_Boxes[] = _("Clear Storage Boxes"); +static const u8 sDebugText_Util_CheatStart[] = _("CHEAT Start"); +static const u8 sDebugText_Util_HatchAnEgg[] = _("Hatch an Egg"); +static const u8 sDebugText_Util_ExpansionVersion[] = _("Expansion Version"); // Flags/Vars Menu static const u8 sDebugText_FlagsVars_Flags[] = _("Set Flag XYZ…{CLEAR_TO 110}{RIGHT_ARROW}"); static const u8 sDebugText_FlagsVars_Flag[] = _("Flag: {STR_VAR_1}{CLEAR_TO 90}\n{STR_VAR_2}{CLEAR_TO 90}\n{STR_VAR_3}"); @@ -460,6 +491,7 @@ static const u8 sDebugText_FlagsVars_PokedexFlags_Reset[] = _("Pokédex Flag static const u8 sDebugText_FlagsVars_SwitchDex[] = _("Toggle {STR_VAR_1}Pokédex"); static const u8 sDebugText_FlagsVars_SwitchNationalDex[] = _("Toggle {STR_VAR_1}NatDex"); static const u8 sDebugText_FlagsVars_SwitchPokeNav[] = _("Toggle {STR_VAR_1}PokéNav"); +static const u8 sDebugText_FlagsVars_SwitchMatchCall[] = _("Toggle {STR_VAR_1}Match Call"); static const u8 sDebugText_FlagsVars_RunningShoes[] = _("Toggle {STR_VAR_1}Running Shoes"); static const u8 sDebugText_FlagsVars_ToggleFlyFlags[] = _("Toggle {STR_VAR_1}Fly Flags"); static const u8 sDebugText_FlagsVars_ToggleAllBadges[] = _("Toggle {STR_VAR_1}All badges"); @@ -516,12 +548,12 @@ static const u8 sDebugText_PokemonShiny[] = _("Shiny:{CLEAR_TO 90}\n static const u8 sDebugText_PokemonNature[] = _("NatureId: {STR_VAR_3}{CLEAR_TO 90}\n{STR_VAR_1}{CLEAR_TO 90}\n{CLEAR_TO 90}\n{STR_VAR_2}{CLEAR_TO 90}"); static const u8 sDebugText_PokemonAbility[] = _("AbilityNum: {STR_VAR_3}{CLEAR_TO 90}\n{STR_VAR_1}{CLEAR_TO 90}\n{CLEAR_TO 90}\n{STR_VAR_2}{CLEAR_TO 90}"); static const u8 sDebugText_PokemonIVs[] = _("All IVs:{CLEAR_TO 90}\n {STR_VAR_3}{CLEAR_TO 90}\n{CLEAR_TO 90}\n{STR_VAR_2}{CLEAR_TO 90}"); -static const u8 sDebugText_PokemonIV_0[] = _("IV HP:{CLEAR_TO 90}\n {STR_VAR_3}{CLEAR_TO 90}\n{CLEAR_TO 90}\n{STR_VAR_2}{CLEAR_TO 90}"); -static const u8 sDebugText_PokemonIV_1[] = _("IV Attack:{CLEAR_TO 90}\n {STR_VAR_3}{CLEAR_TO 90}\n{CLEAR_TO 90}\n{STR_VAR_2}{CLEAR_TO 90}"); -static const u8 sDebugText_PokemonIV_2[] = _("IV Defense:{CLEAR_TO 90}\n {STR_VAR_3}{CLEAR_TO 90}\n{CLEAR_TO 90}\n{STR_VAR_2}{CLEAR_TO 90}"); -static const u8 sDebugText_PokemonIV_3[] = _("IV Speed:{CLEAR_TO 90}\n {STR_VAR_3}{CLEAR_TO 90}\n{CLEAR_TO 90}\n{STR_VAR_2}{CLEAR_TO 90}"); -static const u8 sDebugText_PokemonIV_4[] = _("IV Sp. Attack:{CLEAR_TO 90}\n {STR_VAR_3}{CLEAR_TO 90}\n{CLEAR_TO 90}\n{STR_VAR_2}{CLEAR_TO 90}"); -static const u8 sDebugText_PokemonIV_5[] = _("IV Sp. Defense:{CLEAR_TO 90}\n {STR_VAR_3}{CLEAR_TO 90}\n{CLEAR_TO 90}\n{STR_VAR_2}{CLEAR_TO 90}"); +static const u8 sDebugText_IV_HP[] = _("IV HP:{CLEAR_TO 90}\n {STR_VAR_3}{CLEAR_TO 90}\n{CLEAR_TO 90}\n{STR_VAR_2}{CLEAR_TO 90}"); +static const u8 sDebugText_IV_Attack[] = _("IV Attack:{CLEAR_TO 90}\n {STR_VAR_3}{CLEAR_TO 90}\n{CLEAR_TO 90}\n{STR_VAR_2}{CLEAR_TO 90}"); +static const u8 sDebugText_IV_Defense[] = _("IV Defense:{CLEAR_TO 90}\n {STR_VAR_3}{CLEAR_TO 90}\n{CLEAR_TO 90}\n{STR_VAR_2}{CLEAR_TO 90}"); +static const u8 sDebugText_IV_Speed[] = _("IV Speed:{CLEAR_TO 90}\n {STR_VAR_3}{CLEAR_TO 90}\n{CLEAR_TO 90}\n{STR_VAR_2}{CLEAR_TO 90}"); +static const u8 sDebugText_IV_SpAttack[] = _("IV Sp. Attack:{CLEAR_TO 90}\n {STR_VAR_3}{CLEAR_TO 90}\n{CLEAR_TO 90}\n{STR_VAR_2}{CLEAR_TO 90}"); +static const u8 sDebugText_IV_SpDefense[] = _("IV Sp. Defense:{CLEAR_TO 90}\n {STR_VAR_3}{CLEAR_TO 90}\n{CLEAR_TO 90}\n{STR_VAR_2}{CLEAR_TO 90}"); static const u8 sDebugText_PokemonMove_0[] = _("Move 0: {STR_VAR_3}{CLEAR_TO 90}\n{STR_VAR_1}{CLEAR_TO 90}\n{CLEAR_TO 90}\n{STR_VAR_2}{CLEAR_TO 90}"); static const u8 sDebugText_PokemonMove_1[] = _("Move 1: {STR_VAR_3}{CLEAR_TO 90}\n{STR_VAR_1}{CLEAR_TO 90}\n{CLEAR_TO 90}\n{STR_VAR_2}{CLEAR_TO 90}"); static const u8 sDebugText_PokemonMove_2[] = _("Move 2: {STR_VAR_3}{CLEAR_TO 90}\n{STR_VAR_1}{CLEAR_TO 90}\n{CLEAR_TO 90}\n{STR_VAR_2}{CLEAR_TO 90}"); @@ -531,39 +563,40 @@ static const u8 sDebugText_Give_MaxCoins[] = _("Max Coins"); static const u8 sDebugText_Give_BattlePoints[] = _("Max Battle Points"); static const u8 sDebugText_Give_DaycareEgg[] = _("Daycare Egg"); // Fill Menu -static const u8 sDebugText_Fill_Pc_Fast[] = _("Fill PCBoxes Fast"); -static const u8 sDebugText_Fill_Pc_Slow[] = _("Fill PCBoxes Slow (LAG!)"); -static const u8 sDebugText_Fill_Pc_Items[] = _("Fill PCItems"); -static const u8 sDebugText_Fill_PocketItems[] = _("Fill Pocket Items"); -static const u8 sDebugText_Fill_PocketPokeBalls[] =_("Fill Pocket PokeBalls"); -static const u8 sDebugText_Fill_PocketTMHM[] = _("Fill Pocket TMHM"); -static const u8 sDebugText_Fill_PocketBerries[] = _("Fill Pocket Berries"); -static const u8 sDebugText_Fill_PocketKeyItems[] = _("Fill Pocket KeyItems"); -// Sound Mneu -static const u8 sDebugText_Sound_SE[] = _("Effects…{CLEAR_TO 110}{RIGHT_ARROW}"); -static const u8 sDebugText_Sound_SE_ID[] = _("Sound Id: {STR_VAR_3}\n{STR_VAR_1} \n{STR_VAR_2}"); -static const u8 sDebugText_Sound_MUS[] = _("Music…{CLEAR_TO 110}{RIGHT_ARROW}"); -static const u8 sDebugText_Sound_MUS_ID[] = _("Music Id: {STR_VAR_3}\n{STR_VAR_1} \n{STR_VAR_2}"); - -static const u8 digitInidicator_1[] = _("{LEFT_ARROW}+1{RIGHT_ARROW} "); -static const u8 digitInidicator_10[] = _("{LEFT_ARROW}+10{RIGHT_ARROW} "); -static const u8 digitInidicator_100[] = _("{LEFT_ARROW}+100{RIGHT_ARROW} "); -static const u8 digitInidicator_1000[] = _("{LEFT_ARROW}+1000{RIGHT_ARROW} "); -static const u8 digitInidicator_10000[] = _("{LEFT_ARROW}+10000{RIGHT_ARROW} "); -static const u8 digitInidicator_100000[] = _("{LEFT_ARROW}+100000{RIGHT_ARROW} "); -static const u8 digitInidicator_1000000[] = _("{LEFT_ARROW}+1000000{RIGHT_ARROW} "); -static const u8 digitInidicator_10000000[] = _("{LEFT_ARROW}+10000000{RIGHT_ARROW} "); -const u8 * const gText_DigitIndicator[] = -{ - digitInidicator_1, - digitInidicator_10, - digitInidicator_100, - digitInidicator_1000, - digitInidicator_10000, - digitInidicator_100000, - digitInidicator_1000000, - digitInidicator_10000000 +static const u8 sDebugText_Fill_Pc_Fast[] = _("Fill PCBoxes Fast"); +static const u8 sDebugText_Fill_Pc_Slow[] = _("Fill PCBoxes Slow (LAG!)"); +static const u8 sDebugText_Fill_Pc_Items[] = _("Fill PCItems"); +static const u8 sDebugText_Fill_PocketItems[] = _("Fill Pocket Items"); +static const u8 sDebugText_Fill_PocketPokeBalls[] = _("Fill Pocket PokeBalls"); +static const u8 sDebugText_Fill_PocketTMHM[] = _("Fill Pocket TMHM"); +static const u8 sDebugText_Fill_PocketBerries[] = _("Fill Pocket Berries"); +static const u8 sDebugText_Fill_PocketKeyItems[] = _("Fill Pocket KeyItems"); +// Sound Menu +static const u8 sDebugText_Sound_SFX[] = _("SFX…{CLEAR_TO 110}{RIGHT_ARROW}"); +static const u8 sDebugText_Sound_SFX_ID[] = _("SFX Id: {STR_VAR_3} {START_BUTTON} Stop\n{STR_VAR_1} \n{STR_VAR_2}"); +static const u8 sDebugText_Sound_Music[] = _("Music…{CLEAR_TO 110}{RIGHT_ARROW}"); +static const u8 sDebugText_Sound_Music_ID[] = _("Music Id: {STR_VAR_3} {START_BUTTON} Stop\n{STR_VAR_1} \n{STR_VAR_2}"); + +static const u8 sDebugText_Digit_1[] = _("{LEFT_ARROW}+1{RIGHT_ARROW} "); +static const u8 sDebugText_Digit_10[] = _("{LEFT_ARROW}+10{RIGHT_ARROW} "); +static const u8 sDebugText_Digit_100[] = _("{LEFT_ARROW}+100{RIGHT_ARROW} "); +static const u8 sDebugText_Digit_1000[] = _("{LEFT_ARROW}+1000{RIGHT_ARROW} "); +static const u8 sDebugText_Digit_10000[] = _("{LEFT_ARROW}+10000{RIGHT_ARROW} "); +static const u8 sDebugText_Digit_100000[] = _("{LEFT_ARROW}+100000{RIGHT_ARROW} "); +static const u8 sDebugText_Digit_1000000[] = _("{LEFT_ARROW}+1000000{RIGHT_ARROW} "); +static const u8 sDebugText_Digit_10000000[] = _("{LEFT_ARROW}+10000000{RIGHT_ARROW} "); +const u8 *const gText_DigitIndicator[] = +{ + sDebugText_Digit_1, + sDebugText_Digit_10, + sDebugText_Digit_100, + sDebugText_Digit_1000, + sDebugText_Digit_10000, + sDebugText_Digit_100000, + sDebugText_Digit_1000000, + sDebugText_Digit_10000000 }; + static const s32 sPowersOfTen[] = { 1, @@ -582,46 +615,50 @@ static const s32 sPowersOfTen[] = // List Menu Items static const struct ListMenuItem sDebugMenu_Items_Main[] = { - [DEBUG_MENU_ITEM_UTILITIES] = {sDebugText_Utilities, DEBUG_MENU_ITEM_UTILITIES}, - [DEBUG_MENU_ITEM_SCRIPTS] = {sDebugText_Scripts, DEBUG_MENU_ITEM_SCRIPTS}, - [DEBUG_MENU_ITEM_FLAGVAR] = {sDebugText_FlagsVars, DEBUG_MENU_ITEM_FLAGVAR}, - //[DEBUG_MENU_ITEM_BATTLE] = {sDebugText_Battle, DEBUG_MENU_ITEM_BATTLE}, - [DEBUG_MENU_ITEM_GIVE] = {sDebugText_Give, DEBUG_MENU_ITEM_GIVE}, - [DEBUG_MENU_ITEM_FILL] = {sDebugText_Fill, DEBUG_MENU_ITEM_FILL}, - [DEBUG_MENU_ITEM_SOUND] = {sDebugText_Sound, DEBUG_MENU_ITEM_SOUND}, - [DEBUG_MENU_ITEM_ACCESS_PC] = {sDebugText_AccessPC, DEBUG_MENU_ITEM_ACCESS_PC}, - [DEBUG_MENU_ITEM_CANCEL] = {sDebugText_Cancel, DEBUG_MENU_ITEM_CANCEL} + [DEBUG_MENU_ITEM_UTILITIES] = {sDebugText_Utilities, DEBUG_MENU_ITEM_UTILITIES}, + [DEBUG_MENU_ITEM_SCRIPTS] = {sDebugText_Scripts, DEBUG_MENU_ITEM_SCRIPTS}, + [DEBUG_MENU_ITEM_FLAGVAR] = {sDebugText_FlagsVars, DEBUG_MENU_ITEM_FLAGVAR}, + //[DEBUG_MENU_ITEM_BATTLE] = {sDebugText_Battle, DEBUG_MENU_ITEM_BATTLE}, + [DEBUG_MENU_ITEM_GIVE] = {sDebugText_Give, DEBUG_MENU_ITEM_GIVE}, + [DEBUG_MENU_ITEM_FILL] = {sDebugText_Fill, DEBUG_MENU_ITEM_FILL}, + [DEBUG_MENU_ITEM_SOUND] = {sDebugText_Sound, DEBUG_MENU_ITEM_SOUND}, + [DEBUG_MENU_ITEM_ACCESS_PC] = {sDebugText_AccessPC, DEBUG_MENU_ITEM_ACCESS_PC}, + [DEBUG_MENU_ITEM_CANCEL] = {sDebugText_Cancel, DEBUG_MENU_ITEM_CANCEL} }; + static const struct ListMenuItem sDebugMenu_Items_Utilities[] = { - [DEBUG_UTIL_MENU_ITEM_HEAL_PARTY] = {sDebugText_Util_HealParty, DEBUG_UTIL_MENU_ITEM_HEAL_PARTY}, - [DEBUG_UTIL_MENU_ITEM_FLY] = {sDebugText_Util_Fly, DEBUG_UTIL_MENU_ITEM_FLY}, - [DEBUG_UTIL_MENU_ITEM_WARP] = {sDebugText_Util_WarpToMap, DEBUG_UTIL_MENU_ITEM_WARP}, - [DEBUG_UTIL_MENU_ITEM_POISON_MONS] = {sDebugText_Util_PoisonMons, DEBUG_UTIL_MENU_ITEM_POISON_MONS}, - [DEBUG_UTIL_MENU_ITEM_SAVEBLOCK] = {sDebugText_Util_SaveBlockSpace, DEBUG_UTIL_MENU_ITEM_SAVEBLOCK}, - [DEBUG_UTIL_MENU_ITEM_ROM_SPACE] = {sDebugText_Util_ROMSpace, DEBUG_UTIL_MENU_ITEM_ROM_SPACE}, - [DEBUG_UTIL_MENU_ITEM_WEATHER] = {sDebugText_Util_Weather, DEBUG_UTIL_MENU_ITEM_WEATHER}, - [DEBUG_UTIL_MENU_ITEM_CHECKWALLCLOCK] = {sDebugText_Util_CheckWallClock, DEBUG_UTIL_MENU_ITEM_CHECKWALLCLOCK}, - [DEBUG_UTIL_MENU_ITEM_SETWALLCLOCK] = {sDebugText_Util_SetWallClock, DEBUG_UTIL_MENU_ITEM_SETWALLCLOCK}, - [DEBUG_UTIL_MENU_ITEM_WATCHCREDITS] = {sDebugText_Util_WatchCredits, DEBUG_UTIL_MENU_ITEM_WATCHCREDITS}, - [DEBUG_UTIL_MENU_ITEM_TRAINER_NAME] = {sDebugText_Util_Trainer_Name, DEBUG_UTIL_MENU_ITEM_TRAINER_NAME}, - [DEBUG_UTIL_MENU_ITEM_TRAINER_GENDER] = {sDebugText_Util_Trainer_Gender, DEBUG_UTIL_MENU_ITEM_TRAINER_GENDER}, - [DEBUG_UTIL_MENU_ITEM_TRAINER_ID] = {sDebugText_Util_Trainer_Id, DEBUG_UTIL_MENU_ITEM_TRAINER_ID}, - [DEBUG_UTIL_MENU_ITEM_CLEAR_BOXES] = {sDebugText_Util_Clear_Boxes, DEBUG_UTIL_MENU_ITEM_CLEAR_BOXES}, - [DEBUG_UTIL_MENU_ITEM_CHEAT] = {sDebugText_Util_CheatStart, DEBUG_UTIL_MENU_ITEM_CHEAT}, - [DEBUG_UTIL_MENU_ITEM_HATCH_AN_EGG] = {sDebugText_Util_HatchAnEgg, DEBUG_UTIL_MENU_ITEM_HATCH_AN_EGG}, + [DEBUG_UTIL_MENU_ITEM_HEAL_PARTY] = {sDebugText_Util_HealParty, DEBUG_UTIL_MENU_ITEM_HEAL_PARTY}, + [DEBUG_UTIL_MENU_ITEM_FLY] = {sDebugText_Util_FlyToMap, DEBUG_UTIL_MENU_ITEM_FLY}, + [DEBUG_UTIL_MENU_ITEM_WARP] = {sDebugText_Util_WarpToMap, DEBUG_UTIL_MENU_ITEM_WARP}, + [DEBUG_UTIL_MENU_ITEM_POISON_MONS] = {sDebugText_Util_PoisonParty, DEBUG_UTIL_MENU_ITEM_POISON_MONS}, + [DEBUG_UTIL_MENU_ITEM_SAVEBLOCK] = {sDebugText_Util_SaveBlockSpace, DEBUG_UTIL_MENU_ITEM_SAVEBLOCK}, + [DEBUG_UTIL_MENU_ITEM_ROM_SPACE] = {sDebugText_Util_ROMSpace, DEBUG_UTIL_MENU_ITEM_ROM_SPACE}, + [DEBUG_UTIL_MENU_ITEM_WEATHER] = {sDebugText_Util_Weather, DEBUG_UTIL_MENU_ITEM_WEATHER}, + [DEBUG_UTIL_MENU_ITEM_CHECKWALLCLOCK] = {sDebugText_Util_CheckWallClock, DEBUG_UTIL_MENU_ITEM_CHECKWALLCLOCK}, + [DEBUG_UTIL_MENU_ITEM_SETWALLCLOCK] = {sDebugText_Util_SetWallClock, DEBUG_UTIL_MENU_ITEM_SETWALLCLOCK}, + [DEBUG_UTIL_MENU_ITEM_WATCHCREDITS] = {sDebugText_Util_WatchCredits, DEBUG_UTIL_MENU_ITEM_WATCHCREDITS}, + [DEBUG_UTIL_MENU_ITEM_PLAYER_NAME] = {sDebugText_Util_Player_Name, DEBUG_UTIL_MENU_ITEM_PLAYER_NAME}, + [DEBUG_UTIL_MENU_ITEM_PLAYER_GENDER] = {sDebugText_Util_Player_Gender, DEBUG_UTIL_MENU_ITEM_PLAYER_GENDER}, + [DEBUG_UTIL_MENU_ITEM_PLAYER_ID] = {sDebugText_Util_Player_Id, DEBUG_UTIL_MENU_ITEM_PLAYER_ID}, + [DEBUG_UTIL_MENU_ITEM_CLEAR_BOXES] = {sDebugText_Util_Clear_Boxes, DEBUG_UTIL_MENU_ITEM_CLEAR_BOXES}, + [DEBUG_UTIL_MENU_ITEM_CHEAT] = {sDebugText_Util_CheatStart, DEBUG_UTIL_MENU_ITEM_CHEAT}, + [DEBUG_UTIL_MENU_ITEM_HATCH_AN_EGG] = {sDebugText_Util_HatchAnEgg, DEBUG_UTIL_MENU_ITEM_HATCH_AN_EGG}, + [DEBUG_UTIL_MENU_ITEM_EXPANSION_VER] = {sDebugText_Util_ExpansionVersion,DEBUG_UTIL_MENU_ITEM_EXPANSION_VER}, }; + static const struct ListMenuItem sDebugMenu_Items_Scripts[] = { - [DEBUG_UTIL_MENU_ITEM_SCRIPT_1] = {sDebugText_Util_Script_1, DEBUG_UTIL_MENU_ITEM_SCRIPT_1}, - [DEBUG_UTIL_MENU_ITEM_SCRIPT_2] = {sDebugText_Util_Script_2, DEBUG_UTIL_MENU_ITEM_SCRIPT_2}, - [DEBUG_UTIL_MENU_ITEM_SCRIPT_3] = {sDebugText_Util_Script_3, DEBUG_UTIL_MENU_ITEM_SCRIPT_3}, - [DEBUG_UTIL_MENU_ITEM_SCRIPT_4] = {sDebugText_Util_Script_4, DEBUG_UTIL_MENU_ITEM_SCRIPT_4}, - [DEBUG_UTIL_MENU_ITEM_SCRIPT_5] = {sDebugText_Util_Script_5, DEBUG_UTIL_MENU_ITEM_SCRIPT_5}, - [DEBUG_UTIL_MENU_ITEM_SCRIPT_6] = {sDebugText_Util_Script_6, DEBUG_UTIL_MENU_ITEM_SCRIPT_6}, - [DEBUG_UTIL_MENU_ITEM_SCRIPT_7] = {sDebugText_Util_Script_7, DEBUG_UTIL_MENU_ITEM_SCRIPT_7}, - [DEBUG_UTIL_MENU_ITEM_SCRIPT_8] = {sDebugText_Util_Script_8, DEBUG_UTIL_MENU_ITEM_SCRIPT_8}, + [DEBUG_UTIL_MENU_ITEM_SCRIPT_1] = {sDebugText_Util_Script_1, DEBUG_UTIL_MENU_ITEM_SCRIPT_1}, + [DEBUG_UTIL_MENU_ITEM_SCRIPT_2] = {sDebugText_Util_Script_2, DEBUG_UTIL_MENU_ITEM_SCRIPT_2}, + [DEBUG_UTIL_MENU_ITEM_SCRIPT_3] = {sDebugText_Util_Script_3, DEBUG_UTIL_MENU_ITEM_SCRIPT_3}, + [DEBUG_UTIL_MENU_ITEM_SCRIPT_4] = {sDebugText_Util_Script_4, DEBUG_UTIL_MENU_ITEM_SCRIPT_4}, + [DEBUG_UTIL_MENU_ITEM_SCRIPT_5] = {sDebugText_Util_Script_5, DEBUG_UTIL_MENU_ITEM_SCRIPT_5}, + [DEBUG_UTIL_MENU_ITEM_SCRIPT_6] = {sDebugText_Util_Script_6, DEBUG_UTIL_MENU_ITEM_SCRIPT_6}, + [DEBUG_UTIL_MENU_ITEM_SCRIPT_7] = {sDebugText_Util_Script_7, DEBUG_UTIL_MENU_ITEM_SCRIPT_7}, + [DEBUG_UTIL_MENU_ITEM_SCRIPT_8] = {sDebugText_Util_Script_8, DEBUG_UTIL_MENU_ITEM_SCRIPT_8}, }; + static const struct ListMenuItem sDebugMenu_Items_FlagsVars[] = { [DEBUG_FLAGVAR_MENU_ITEM_FLAGS] = {sDebugText_FlagsVars_Flags, DEBUG_FLAGVAR_MENU_ITEM_FLAGS}, @@ -631,6 +668,7 @@ static const struct ListMenuItem sDebugMenu_Items_FlagsVars[] = [DEBUG_FLAGVAR_MENU_ITEM_TOGGLE_POKEDEX] = {sDebugText_FlagsVars_SwitchDex, DEBUG_FLAGVAR_MENU_ITEM_TOGGLE_POKEDEX}, [DEBUG_FLAGVAR_MENU_ITEM_TOGGLE_NATDEX] = {sDebugText_FlagsVars_SwitchNationalDex, DEBUG_FLAGVAR_MENU_ITEM_TOGGLE_NATDEX}, [DEBUG_FLAGVAR_MENU_ITEM_TOGGLE_POKENAV] = {sDebugText_FlagsVars_SwitchPokeNav, DEBUG_FLAGVAR_MENU_ITEM_TOGGLE_POKENAV}, + [DEBUG_FLAGVAR_MENU_ITEM_TOGGLE_MATCH_CALL] = {sDebugText_FlagsVars_SwitchMatchCall, DEBUG_FLAGVAR_MENU_ITEM_TOGGLE_MATCH_CALL}, [DEBUG_FLAGVAR_MENU_ITEM_TOGGLE_RUN_SHOES] = {sDebugText_FlagsVars_RunningShoes, DEBUG_FLAGVAR_MENU_ITEM_TOGGLE_RUN_SHOES}, [DEBUG_FLAGVAR_MENU_ITEM_TOGGLE_LOCATIONS] = {sDebugText_FlagsVars_ToggleFlyFlags, DEBUG_FLAGVAR_MENU_ITEM_TOGGLE_LOCATIONS}, [DEBUG_FLAGVAR_MENU_ITEM_TOGGLE_BADGES_ALL] = {sDebugText_FlagsVars_ToggleAllBadges, DEBUG_FLAGVAR_MENU_ITEM_TOGGLE_BADGES_ALL}, @@ -641,6 +679,7 @@ static const struct ListMenuItem sDebugMenu_Items_FlagsVars[] = [DEBUG_FLAGVAR_MENU_ITEM_TOGGLE_BAG_USE] = {sDebugText_FlagsVars_SwitchBagUse, DEBUG_FLAGVAR_MENU_ITEM_TOGGLE_BAG_USE}, [DEBUG_FLAGVAR_MENU_ITEM_TOGGLE_CATCHING] = {sDebugText_FlagsVars_SwitchCatching, DEBUG_FLAGVAR_MENU_ITEM_TOGGLE_CATCHING}, }; + static const struct ListMenuItem sDebugMenu_Items_Battle_0[] = { [DEBUG_BATTLE_0_MENU_ITEM_WILD] = {sDebugText_Battle_0_Wild, DEBUG_BATTLE_0_MENU_ITEM_WILD}, @@ -649,6 +688,7 @@ static const struct ListMenuItem sDebugMenu_Items_Battle_0[] = [DEBUG_BATTLE_0_MENU_ITEM_DOUBLE] = {sDebugText_Battle_0_Double, DEBUG_BATTLE_0_MENU_ITEM_DOUBLE}, [DEBUG_BATTLE_0_MENU_ITEM_MULTI] = {sDebugText_Battle_0_Mulit, DEBUG_BATTLE_0_MENU_ITEM_MULTI}, }; + static const struct ListMenuItem sDebugMenu_Items_Battle_1[] = { [DEBUG_BATTLE_1_MENU_ITEM_AI_FLAG_00] = {sDebugText_Battle_1_AIFlag_00, DEBUG_BATTLE_1_MENU_ITEM_AI_FLAG_00}, @@ -671,6 +711,7 @@ static const struct ListMenuItem sDebugMenu_Items_Battle_1[] = [DEBUG_BATTLE_1_MENU_ITEM_AI_FLAG_17] = {sDebugText_Battle_1_AIFlag_17, DEBUG_BATTLE_1_MENU_ITEM_AI_FLAG_17}, [DEBUG_BATTLE_1_MENU_ITEM_CONTINUE] = {sDebugText_Continue, DEBUG_BATTLE_1_MENU_ITEM_CONTINUE}, }; + static const struct ListMenuItem sDebugMenu_Items_Battle_2[] = { [DEBUG_BATTLE_2_MENU_ITEM_TERRAIN_0] = {sDebugText_Battle_2_Terrain_0, DEBUG_BATTLE_2_MENU_ITEM_TERRAIN_0}, @@ -684,6 +725,7 @@ static const struct ListMenuItem sDebugMenu_Items_Battle_2[] = [DEBUG_BATTLE_2_MENU_ITEM_TERRAIN_8] = {sDebugText_Battle_2_Terrain_8, DEBUG_BATTLE_2_MENU_ITEM_TERRAIN_8}, [DEBUG_BATTLE_2_MENU_ITEM_TERRAIN_9] = {sDebugText_Battle_2_Terrain_9, DEBUG_BATTLE_2_MENU_ITEM_TERRAIN_9}, }; + static const struct ListMenuItem sDebugMenu_Items_Give[] = { [DEBUG_GIVE_MENU_ITEM_ITEM_X] = {sDebugText_Give_GiveItem, DEBUG_GIVE_MENU_ITEM_ITEM_X}, @@ -695,6 +737,7 @@ static const struct ListMenuItem sDebugMenu_Items_Give[] = [DEBUG_GIVE_MENU_ITEM_MAX_BATTLE_POINTS] = {sDebugText_Give_BattlePoints, DEBUG_GIVE_MENU_ITEM_MAX_BATTLE_POINTS}, [DEBUG_GIVE_MENU_ITEM_DAYCARE_EGG] = {sDebugText_Give_DaycareEgg, DEBUG_GIVE_MENU_ITEM_DAYCARE_EGG}, }; + static const struct ListMenuItem sDebugMenu_Items_Fill[] = { [DEBUG_FILL_MENU_ITEM_PC_BOXES_FAST] = {sDebugText_Fill_Pc_Fast, DEBUG_FILL_MENU_ITEM_PC_BOXES_FAST}, @@ -706,45 +749,48 @@ static const struct ListMenuItem sDebugMenu_Items_Fill[] = [DEBUG_FILL_MENU_ITEM_POCKET_BERRIES] = {sDebugText_Fill_PocketBerries, DEBUG_FILL_MENU_ITEM_POCKET_BERRIES}, [DEBUG_FILL_MENU_ITEM_POCKET_KEY_ITEMS] = {sDebugText_Fill_PocketKeyItems, DEBUG_FILL_MENU_ITEM_POCKET_KEY_ITEMS}, }; + static const struct ListMenuItem sDebugMenu_Items_Sound[] = { - [DEBUG_SOUND_MENU_ITEM_SE] = {sDebugText_Sound_SE, DEBUG_SOUND_MENU_ITEM_SE}, - [DEBUG_SOUND_MENU_ITEM_MUS] = {sDebugText_Sound_MUS, DEBUG_SOUND_MENU_ITEM_MUS}, + [DEBUG_SOUND_MENU_ITEM_SE] = {sDebugText_Sound_SFX, DEBUG_SOUND_MENU_ITEM_SE}, + [DEBUG_SOUND_MENU_ITEM_MUS] = {sDebugText_Sound_Music, DEBUG_SOUND_MENU_ITEM_MUS}, }; // ******************************* // Menu Actions static void (*const sDebugMenu_Actions_Main[])(u8) = { - [DEBUG_MENU_ITEM_UTILITIES] = DebugAction_OpenUtilitiesMenu, - [DEBUG_MENU_ITEM_SCRIPTS] = DebugAction_OpenScriptsMenu, - [DEBUG_MENU_ITEM_FLAGVAR] = DebugAction_OpenFlagsVarsMenu, - //[DEBUG_MENU_ITEM_BATTLE] = DebugAction_OpenBattleMenu, - [DEBUG_MENU_ITEM_GIVE] = DebugAction_OpenGiveMenu, - [DEBUG_MENU_ITEM_FILL] = DebugAction_OpenFillMenu, - [DEBUG_MENU_ITEM_SOUND] = DebugAction_OpenSoundMenu, - [DEBUG_MENU_ITEM_ACCESS_PC] = DebugAction_AccessPC, - [DEBUG_MENU_ITEM_CANCEL] = DebugAction_Cancel + [DEBUG_MENU_ITEM_UTILITIES] = DebugAction_OpenUtilitiesMenu, + [DEBUG_MENU_ITEM_SCRIPTS] = DebugAction_OpenScriptsMenu, + [DEBUG_MENU_ITEM_FLAGVAR] = DebugAction_OpenFlagsVarsMenu, + //[DEBUG_MENU_ITEM_BATTLE] = DebugAction_OpenBattleMenu, + [DEBUG_MENU_ITEM_GIVE] = DebugAction_OpenGiveMenu, + [DEBUG_MENU_ITEM_FILL] = DebugAction_OpenFillMenu, + [DEBUG_MENU_ITEM_SOUND] = DebugAction_OpenSoundMenu, + [DEBUG_MENU_ITEM_ACCESS_PC] = DebugAction_AccessPC, + [DEBUG_MENU_ITEM_CANCEL] = DebugAction_Cancel }; static void (*const sDebugMenu_Actions_Utilities[])(u8) = { - [DEBUG_UTIL_MENU_ITEM_HEAL_PARTY] = DebugAction_Util_HealParty, - [DEBUG_UTIL_MENU_ITEM_FLY] = DebugAction_Util_Fly, - [DEBUG_UTIL_MENU_ITEM_WARP] = DebugAction_Util_Warp_Warp, - [DEBUG_UTIL_MENU_ITEM_POISON_MONS] = DebugAction_Util_PoisonMons, - [DEBUG_UTIL_MENU_ITEM_SAVEBLOCK] = DebugAction_Util_CheckSaveBlock, - [DEBUG_UTIL_MENU_ITEM_ROM_SPACE] = DebugAction_Util_CheckROMSpace, - [DEBUG_UTIL_MENU_ITEM_WEATHER] = DebugAction_Util_Weather, - [DEBUG_UTIL_MENU_ITEM_CHECKWALLCLOCK] = DebugAction_Util_CheckWallClock, - [DEBUG_UTIL_MENU_ITEM_SETWALLCLOCK] = DebugAction_Util_SetWallClock, - [DEBUG_UTIL_MENU_ITEM_WATCHCREDITS] = DebugAction_Util_WatchCredits, - [DEBUG_UTIL_MENU_ITEM_TRAINER_NAME] = DebugAction_Util_Trainer_Name, - [DEBUG_UTIL_MENU_ITEM_TRAINER_GENDER] = DebugAction_Util_Trainer_Gender, - [DEBUG_UTIL_MENU_ITEM_TRAINER_ID] = DebugAction_Util_Trainer_Id, - [DEBUG_UTIL_MENU_ITEM_CLEAR_BOXES] = DebugAction_Util_Clear_Boxes, - [DEBUG_UTIL_MENU_ITEM_CHEAT] = DebugAction_Util_CheatStart, - [DEBUG_UTIL_MENU_ITEM_HATCH_AN_EGG] = DebugAction_Util_HatchAnEgg, + [DEBUG_UTIL_MENU_ITEM_HEAL_PARTY] = DebugAction_Util_HealParty, + [DEBUG_UTIL_MENU_ITEM_FLY] = DebugAction_Util_Fly, + [DEBUG_UTIL_MENU_ITEM_WARP] = DebugAction_Util_Warp_Warp, + [DEBUG_UTIL_MENU_ITEM_POISON_MONS] = DebugAction_Util_PoisonMons, + [DEBUG_UTIL_MENU_ITEM_SAVEBLOCK] = DebugAction_Util_CheckSaveBlock, + [DEBUG_UTIL_MENU_ITEM_ROM_SPACE] = DebugAction_Util_CheckROMSpace, + [DEBUG_UTIL_MENU_ITEM_WEATHER] = DebugAction_Util_Weather, + [DEBUG_UTIL_MENU_ITEM_CHECKWALLCLOCK] = DebugAction_Util_CheckWallClock, + [DEBUG_UTIL_MENU_ITEM_SETWALLCLOCK] = DebugAction_Util_SetWallClock, + [DEBUG_UTIL_MENU_ITEM_WATCHCREDITS] = DebugAction_Util_WatchCredits, + [DEBUG_UTIL_MENU_ITEM_PLAYER_NAME] = DebugAction_Util_Player_Name, + [DEBUG_UTIL_MENU_ITEM_PLAYER_GENDER] = DebugAction_Util_Player_Gender, + [DEBUG_UTIL_MENU_ITEM_PLAYER_ID] = DebugAction_Util_Player_Id, + [DEBUG_UTIL_MENU_ITEM_CLEAR_BOXES] = DebugAction_Util_Clear_Boxes, + [DEBUG_UTIL_MENU_ITEM_CHEAT] = DebugAction_Util_CheatStart, + [DEBUG_UTIL_MENU_ITEM_HATCH_AN_EGG] = DebugAction_Util_HatchAnEgg, + [DEBUG_UTIL_MENU_ITEM_EXPANSION_VER] = DebugAction_Util_ExpansionVersion, }; + static void (*const sDebugMenu_Actions_Scripts[])(u8) = { [DEBUG_UTIL_MENU_ITEM_SCRIPT_1] = DebugAction_Util_Script_1, @@ -756,6 +802,7 @@ static void (*const sDebugMenu_Actions_Scripts[])(u8) = [DEBUG_UTIL_MENU_ITEM_SCRIPT_7] = DebugAction_Util_Script_7, [DEBUG_UTIL_MENU_ITEM_SCRIPT_8] = DebugAction_Util_Script_8, }; + static void (*const sDebugMenu_Actions_Flags[])(u8) = { [DEBUG_FLAGVAR_MENU_ITEM_FLAGS] = DebugAction_FlagsVars_Flags, @@ -765,6 +812,7 @@ static void (*const sDebugMenu_Actions_Flags[])(u8) = [DEBUG_FLAGVAR_MENU_ITEM_TOGGLE_POKEDEX] = DebugAction_FlagsVars_SwitchDex, [DEBUG_FLAGVAR_MENU_ITEM_TOGGLE_NATDEX] = DebugAction_FlagsVars_SwitchNatDex, [DEBUG_FLAGVAR_MENU_ITEM_TOGGLE_POKENAV] = DebugAction_FlagsVars_SwitchPokeNav, + [DEBUG_FLAGVAR_MENU_ITEM_TOGGLE_MATCH_CALL] = DebugAction_FlagsVars_SwitchMatchCall, [DEBUG_FLAGVAR_MENU_ITEM_TOGGLE_RUN_SHOES] = DebugAction_FlagsVars_RunningShoes, [DEBUG_FLAGVAR_MENU_ITEM_TOGGLE_LOCATIONS] = DebugAction_FlagsVars_ToggleFlyFlags, [DEBUG_FLAGVAR_MENU_ITEM_TOGGLE_BADGES_ALL] = DebugAction_FlagsVars_ToggleBadgeFlags, @@ -786,6 +834,7 @@ static void (*const sDebugMenu_Actions_Give[])(u8) = [DEBUG_GIVE_MENU_ITEM_MAX_BATTLE_POINTS] = DebugAction_Give_MaxBattlePoints, [DEBUG_GIVE_MENU_ITEM_DAYCARE_EGG] = DebugAction_Give_DayCareEgg, }; + static void (*const sDebugMenu_Actions_Fill[])(u8) = { [DEBUG_FILL_MENU_ITEM_PC_BOXES_FAST] = DebugAction_Fill_PCBoxes_Fast, @@ -804,7 +853,6 @@ static void (*const sDebugMenu_Actions_Sound[])(u8) = [DEBUG_SOUND_MENU_ITEM_MUS] = DebugAction_Sound_MUS, }; - // ******************************* // Windows static const struct WindowTemplate sDebugMenuWindowTemplateMain = @@ -817,6 +865,7 @@ static const struct WindowTemplate sDebugMenuWindowTemplateMain = .paletteNum = 15, .baseBlock = 1, }; + static const struct WindowTemplate sDebugMenuWindowTemplateExtra = { .bg = 0, @@ -827,6 +876,7 @@ static const struct WindowTemplate sDebugMenuWindowTemplateExtra = .paletteNum = 15, .baseBlock = 1, }; + static const struct WindowTemplate sDebugMenuWindowTemplateWeather = { .bg = 0, @@ -837,6 +887,7 @@ static const struct WindowTemplate sDebugMenuWindowTemplateWeather = .paletteNum = 15, .baseBlock = 1, }; + static const struct WindowTemplate sDebugMenuWindowTemplateSound = { .bg = 0, @@ -847,6 +898,7 @@ static const struct WindowTemplate sDebugMenuWindowTemplateSound = .paletteNum = 15, .baseBlock = 1, }; + static const struct WindowTemplate sDebugMenuWindowTemplateFlagsVars = { .bg = 0, @@ -866,54 +918,63 @@ static const struct ListMenuTemplate sDebugMenu_ListTemplate_Main = .moveCursorFunc = ListMenuDefaultCursorMoveFunc, .totalItems = ARRAY_COUNT(sDebugMenu_Items_Main), }; + static const struct ListMenuTemplate sDebugMenu_ListTemplate_Utilities = { .items = sDebugMenu_Items_Utilities, .moveCursorFunc = ListMenuDefaultCursorMoveFunc, .totalItems = ARRAY_COUNT(sDebugMenu_Items_Utilities), }; + static const struct ListMenuTemplate sDebugMenu_ListTemplate_Scripts = { .items = sDebugMenu_Items_Scripts, .moveCursorFunc = ListMenuDefaultCursorMoveFunc, .totalItems = ARRAY_COUNT(sDebugMenu_Items_Scripts), }; + static const struct ListMenuTemplate sDebugMenu_ListTemplate_FlagsVars = { .items = sDebugMenu_Items_FlagsVars, .moveCursorFunc = ListMenuDefaultCursorMoveFunc, .totalItems = ARRAY_COUNT(sDebugMenu_Items_FlagsVars), }; + static const struct ListMenuTemplate sDebugMenu_ListTemplate_Battle_0 = { .items = sDebugMenu_Items_Battle_0, .moveCursorFunc = ListMenuDefaultCursorMoveFunc, .totalItems = ARRAY_COUNT(sDebugMenu_Items_Battle_0), }; + static const struct ListMenuTemplate sDebugMenu_ListTemplate_Battle_1 = { .items = sDebugMenu_Items_Battle_1, .moveCursorFunc = ListMenuDefaultCursorMoveFunc, .totalItems = ARRAY_COUNT(sDebugMenu_Items_Battle_1), }; + static const struct ListMenuTemplate sDebugMenu_ListTemplate_Battle_2 = { .items = sDebugMenu_Items_Battle_2, .moveCursorFunc = ListMenuDefaultCursorMoveFunc, .totalItems = ARRAY_COUNT(sDebugMenu_Items_Battle_2), }; + static const struct ListMenuTemplate sDebugMenu_ListTemplate_Give = { .items = sDebugMenu_Items_Give, .moveCursorFunc = ListMenuDefaultCursorMoveFunc, .totalItems = ARRAY_COUNT(sDebugMenu_Items_Give), }; + static const struct ListMenuTemplate sDebugMenu_ListTemplate_Fill = { .items = sDebugMenu_Items_Fill, .moveCursorFunc = ListMenuDefaultCursorMoveFunc, .totalItems = ARRAY_COUNT(sDebugMenu_Items_Fill), }; + static const struct ListMenuTemplate sDebugMenu_ListTemplate_Sound = { .items = sDebugMenu_Items_Sound, @@ -932,10 +993,18 @@ void Debug_ShowMainMenu(void) Debug_ShowMenu(DebugTask_HandleMenuInput_Main, sDebugMenu_ListTemplate_Main); } + static void Debug_ReShowMainMenu(void) { Debug_ShowMenu(DebugTask_HandleMenuInput_Main, sDebugMenu_ListTemplate_Main); } + +#define tMenuTaskId data[0] +#define tWindowId data[1] +#define tSubWindowId data[2] +#define tInput data[3] +#define tDigit data[4] + static void Debug_ShowMenu(void (*HandleInput)(u8), struct ListMenuTemplate LMtemplate) { struct ListMenuTemplate menuTemplate; @@ -963,42 +1032,45 @@ static void Debug_ShowMenu(void (*HandleInput)(u8), struct ListMenuTemplate LMte menuTemplate.lettersSpacing = 1; menuTemplate.itemVerticalPadding = 0; menuTemplate.scrollMultiple = LIST_NO_MULTIPLE_SCROLL; - menuTemplate.fontId = 1; + menuTemplate.fontId = DEBUG_MENU_FONT; menuTemplate.cursorKind = 0; menuTaskId = ListMenuInit(&menuTemplate, 0, 0); // create input handler task inputTaskId = CreateTask(HandleInput, 3); - gTasks[inputTaskId].data[0] = menuTaskId; - gTasks[inputTaskId].data[1] = windowId; - gTasks[inputTaskId].data[2] = 0; + gTasks[inputTaskId].tMenuTaskId = menuTaskId; + gTasks[inputTaskId].tWindowId = windowId; + gTasks[inputTaskId].tSubWindowId = 0; Debug_RefreshListMenu(inputTaskId); // draw everything - CopyWindowToVram(windowId, 3); + CopyWindowToVram(windowId, COPYWIN_FULL); } + static void Debug_DestroyMenu(u8 taskId) { - DestroyListMenuTask(gTasks[taskId].data[0], NULL, NULL); - RemoveWindow(gTasks[taskId].data[1]); + DestroyListMenuTask(gTasks[taskId].tMenuTaskId, NULL, NULL); + RemoveWindow(gTasks[taskId].tWindowId); DestroyTask(taskId); } + static void Debug_DestroyMenu_Full(u8 taskId) { - if (gTasks[taskId].data[2] != 0) + if (gTasks[taskId].tSubWindowId != 0) { - ClearStdWindowAndFrame(gTasks[taskId].data[2], FALSE); + ClearStdWindowAndFrame(gTasks[taskId].tSubWindowId, FALSE); DebugAction_DestroyExtraWindow(taskId); } - DestroyListMenuTask(gTasks[taskId].data[0], NULL, NULL); - ClearStdWindowAndFrame(gTasks[taskId].data[1], TRUE); - RemoveWindow(gTasks[taskId].data[1]); + DestroyListMenuTask(gTasks[taskId].tMenuTaskId, NULL, NULL); + ClearStdWindowAndFrame(gTasks[taskId].tWindowId, TRUE); + RemoveWindow(gTasks[taskId].tWindowId); DestroyTask(taskId); UnfreezeObjectEvents(); Free(sDebugMenuListData); Free(sDebugBattleData); } + static void Debug_DestroyMenu_Full_Script(u8 taskId, const u8 *script) { Debug_DestroyMenu_Full(taskId); @@ -1006,20 +1078,22 @@ static void Debug_DestroyMenu_Full_Script(u8 taskId, const u8 *script) FreezeObjectEvents(); ScriptContext_SetupScript(script); } + static void DebugAction_Cancel(u8 taskId) { Debug_DestroyMenu_Full(taskId); ScriptContext_Enable(); } + static void DebugAction_DestroyExtraWindow(u8 taskId) { - ClearStdWindowAndFrame(gTasks[taskId].data[1], TRUE); - RemoveWindow(gTasks[taskId].data[1]); + ClearStdWindowAndFrame(gTasks[taskId].tWindowId, TRUE); + RemoveWindow(gTasks[taskId].tWindowId); - ClearStdWindowAndFrame(gTasks[taskId].data[2], TRUE); - RemoveWindow(gTasks[taskId].data[2]); + ClearStdWindowAndFrame(gTasks[taskId].tSubWindowId, TRUE); + RemoveWindow(gTasks[taskId].tSubWindowId); - DestroyListMenuTask(gTasks[taskId].data[0], NULL, NULL); + DestroyListMenuTask(gTasks[taskId].tMenuTaskId, NULL, NULL); DestroyTask(taskId); ScriptContext_Enable(); UnfreezeObjectEvents(); @@ -1040,6 +1114,9 @@ static u8 Debug_CheckToggleFlags(u8 id) case DEBUG_FLAGVAR_MENU_ITEM_TOGGLE_POKENAV: result = FlagGet(FLAG_SYS_POKENAV_GET); break; + case DEBUG_FLAGVAR_MENU_ITEM_TOGGLE_MATCH_CALL: + result = FlagGet(FLAG_ADDED_MATCH_CALL_TO_POKENAV) && FlagGet(FLAG_HAS_MATCH_CALL); + break; case DEBUG_FLAGVAR_MENU_ITEM_TOGGLE_RUN_SHOES: result = FlagGet(FLAG_SYS_B_DASH); break; @@ -1210,7 +1287,7 @@ static void Debug_RefreshListMenu(u8 taskId) gMultiuseListMenuTemplate.items = sDebugMenuListData->listItems; gMultiuseListMenuTemplate.totalItems = totalItems; gMultiuseListMenuTemplate.maxShowed = DEBUG_MENU_HEIGHT_MAIN; - gMultiuseListMenuTemplate.windowId = gTasks[taskId].data[1]; + gMultiuseListMenuTemplate.windowId = gTasks[taskId].tWindowId; gMultiuseListMenuTemplate.header_X = 0; gMultiuseListMenuTemplate.item_X = 8; gMultiuseListMenuTemplate.cursor_X = 0; @@ -1224,15 +1301,16 @@ static void Debug_RefreshListMenu(u8 taskId) gMultiuseListMenuTemplate.fontId = 1; gMultiuseListMenuTemplate.cursorKind = 0; } + static void Debug_RedrawListMenu(u8 taskId) { - u8 listTaskId = gTasks[taskId].data[0]; + u8 listTaskId = gTasks[taskId].tMenuTaskId; u16 scrollOffset, selectedRow; ListMenuGetScrollAndRow(listTaskId, &scrollOffset, &selectedRow); - DestroyListMenuTask(gTasks[taskId].data[0], &scrollOffset, &selectedRow); + DestroyListMenuTask(gTasks[taskId].tMenuTaskId, &scrollOffset, &selectedRow); Debug_RefreshListMenu(taskId); - gTasks[taskId].data[0] = ListMenuInit(&gMultiuseListMenuTemplate, scrollOffset, selectedRow); + gTasks[taskId].tMenuTaskId = ListMenuInit(&gMultiuseListMenuTemplate, scrollOffset, selectedRow); } @@ -1241,7 +1319,7 @@ static void Debug_RedrawListMenu(u8 taskId) static void DebugTask_HandleMenuInput_Main(u8 taskId) { void (*func)(u8); - u32 input = ListMenu_ProcessInput(gTasks[taskId].data[0]); + u32 input = ListMenu_ProcessInput(gTasks[taskId].tMenuTaskId); if (JOY_NEW(A_BUTTON)) { @@ -1256,10 +1334,11 @@ static void DebugTask_HandleMenuInput_Main(u8 taskId) ScriptContext_Enable(); } } + static void DebugTask_HandleMenuInput_Utilities(u8 taskId) { void (*func)(u8); - u32 input = ListMenu_ProcessInput(gTasks[taskId].data[0]); + u32 input = ListMenu_ProcessInput(gTasks[taskId].tMenuTaskId); if (JOY_NEW(A_BUTTON)) { @@ -1274,10 +1353,11 @@ static void DebugTask_HandleMenuInput_Utilities(u8 taskId) Debug_ReShowMainMenu(); } } + static void DebugTask_HandleMenuInput_Scripts(u8 taskId) { void (*func)(u8); - u32 input = ListMenu_ProcessInput(gTasks[taskId].data[0]); + u32 input = ListMenu_ProcessInput(gTasks[taskId].tMenuTaskId); if (JOY_NEW(A_BUTTON)) { @@ -1292,10 +1372,11 @@ static void DebugTask_HandleMenuInput_Scripts(u8 taskId) Debug_ReShowMainMenu(); } } + static void DebugTask_HandleMenuInput_FlagsVars(u8 taskId) { void (*func)(u8); - u32 input = ListMenu_ProcessInput(gTasks[taskId].data[0]); + u32 input = ListMenu_ProcessInput(gTasks[taskId].tMenuTaskId); if (JOY_NEW(A_BUTTON)) { @@ -1305,10 +1386,10 @@ static void DebugTask_HandleMenuInput_FlagsVars(u8 taskId) func(taskId); // Remove TRUE/FALSE window for functions that haven't been assigned flags - if (gTasks[taskId].data[3] == 0xFF) + if (gTasks[taskId].tInput == 0xFF) { - ClearStdWindowAndFrame(gTasks[taskId].data[2], TRUE); - RemoveWindow(gTasks[taskId].data[2]); + ClearStdWindowAndFrame(gTasks[taskId].tSubWindowId, TRUE); + RemoveWindow(gTasks[taskId].tSubWindowId); Free(sDebugMenuListData); } else @@ -1346,15 +1427,16 @@ static void DebugTask_HandleBattleMenuReDraw(u8 taskId) break; } } + static void DebugTask_HandleMenuInput_Battle(u8 taskId) { u16 idx; - u8 listTaskId = gTasks[taskId].data[0]; + u8 listTaskId = gTasks[taskId].tMenuTaskId; ListMenu_ProcessInput(listTaskId); ListMenuGetCurrentItemArrayId(listTaskId, &idx); - if (gMain.newKeys & A_BUTTON) + if (JOY_NEW(A_BUTTON)) { PlaySE(SE_SELECT); @@ -1402,7 +1484,7 @@ static void DebugTask_HandleMenuInput_Battle(u8 taskId) break; } } - else if (gMain.newKeys & B_BUTTON) + else if (JOY_NEW(B_BUTTON)) { switch (sDebugBattleData->submenu) { @@ -1478,7 +1560,7 @@ static void Debug_InitializeBattle(u8 taskId) static void DebugTask_HandleMenuInput_Give(u8 taskId) { void (*func)(u8); - u32 input = ListMenu_ProcessInput(gTasks[taskId].data[0]); + u32 input = ListMenu_ProcessInput(gTasks[taskId].tMenuTaskId); if (JOY_NEW(A_BUTTON)) { @@ -1493,28 +1575,30 @@ static void DebugTask_HandleMenuInput_Give(u8 taskId) Debug_ReShowMainMenu(); } } + static void DebugTask_HandleMenuInput_Fill(u8 taskId) { void (*func)(u8); - u32 input = ListMenu_ProcessInput(gTasks[taskId].data[0]); + u32 input = ListMenu_ProcessInput(gTasks[taskId].tMenuTaskId); - if (gMain.newKeys & A_BUTTON) + if (JOY_NEW(A_BUTTON)) { PlaySE(SE_SELECT); if ((func = sDebugMenu_Actions_Fill[input]) != NULL) func(taskId); } - else if (gMain.newKeys & B_BUTTON) + else if (JOY_NEW(B_BUTTON)) { PlaySE(SE_SELECT); Debug_DestroyMenu(taskId); Debug_ReShowMainMenu(); } } + static void DebugTask_HandleMenuInput_Sound(u8 taskId) { void (*func)(u8); - u32 input = ListMenu_ProcessInput(gTasks[taskId].data[0]); + u32 input = ListMenu_ProcessInput(gTasks[taskId].tMenuTaskId); if (JOY_NEW(A_BUTTON)) { @@ -1537,11 +1621,13 @@ static void DebugAction_OpenUtilitiesMenu(u8 taskId) Debug_DestroyMenu(taskId); Debug_ShowMenu(DebugTask_HandleMenuInput_Utilities, sDebugMenu_ListTemplate_Utilities); } + static void DebugAction_OpenScriptsMenu(u8 taskId) { Debug_DestroyMenu(taskId); Debug_ShowMenu(DebugTask_HandleMenuInput_Scripts, sDebugMenu_ListTemplate_Scripts); } + static void DebugAction_OpenFlagsVarsMenu(u8 taskId) { Debug_DestroyMenu(taskId); @@ -1555,11 +1641,13 @@ static void DebugAction_OpenGiveMenu(u8 taskId) Debug_DestroyMenu(taskId); Debug_ShowMenu(DebugTask_HandleMenuInput_Give, sDebugMenu_ListTemplate_Give); } + static void DebugAction_OpenFillMenu(u8 taskId) { Debug_DestroyMenu(taskId); Debug_ShowMenu(DebugTask_HandleMenuInput_Fill, sDebugMenu_ListTemplate_Fill); } + static void DebugAction_OpenSoundMenu(u8 taskId) { Debug_DestroyMenu(taskId); @@ -1575,59 +1663,49 @@ static void DebugAction_Util_HealParty(u8 taskId) ScriptContext_Enable(); Debug_DestroyMenu_Full(taskId); } + static void DebugAction_Util_Fly(u8 taskId) { - FlagSet(FLAG_VISITED_LITTLEROOT_TOWN); - FlagSet(FLAG_VISITED_OLDALE_TOWN); - FlagSet(FLAG_VISITED_DEWFORD_TOWN); - FlagSet(FLAG_VISITED_LAVARIDGE_TOWN); - FlagSet(FLAG_VISITED_FALLARBOR_TOWN); - FlagSet(FLAG_VISITED_VERDANTURF_TOWN); - FlagSet(FLAG_VISITED_PACIFIDLOG_TOWN); - FlagSet(FLAG_VISITED_PETALBURG_CITY); - FlagSet(FLAG_VISITED_SLATEPORT_CITY); - FlagSet(FLAG_VISITED_MAUVILLE_CITY); - FlagSet(FLAG_VISITED_RUSTBORO_CITY); - FlagSet(FLAG_VISITED_FORTREE_CITY); - FlagSet(FLAG_VISITED_LILYCOVE_CITY); - FlagSet(FLAG_VISITED_MOSSDEEP_CITY); - FlagSet(FLAG_VISITED_SOOTOPOLIS_CITY); - FlagSet(FLAG_VISITED_EVER_GRANDE_CITY); - FlagSet(FLAG_LANDMARK_POKEMON_LEAGUE); - FlagSet(FLAG_LANDMARK_BATTLE_FRONTIER); Debug_DestroyMenu_Full(taskId); SetMainCallback2(CB2_OpenFlyMap); } +#define tMapGroup data[5] +#define tMapNum data[6] +#define tWarp data[7] + +#define LAST_MAP_GROUP (MAP_GROUPS_COUNT - 1) + static void DebugAction_Util_Warp_Warp(u8 taskId) { u8 windowId; - ClearStdWindowAndFrame(gTasks[taskId].data[1], TRUE); - RemoveWindow(gTasks[taskId].data[1]); + ClearStdWindowAndFrame(gTasks[taskId].tWindowId, TRUE); + RemoveWindow(gTasks[taskId].tWindowId); HideMapNamePopUpWindow(); LoadMessageBoxAndBorderGfx(); windowId = AddWindow(&sDebugMenuWindowTemplateExtra); DrawStdWindowFrame(windowId, FALSE); - CopyWindowToVram(windowId, 3); + CopyWindowToVram(windowId, COPYWIN_FULL); - ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].data[3], STR_CONV_MODE_LEADING_ZEROS, 2); - ConvertIntToDecimalStringN(gStringVar2, MAP_GROUPS_COUNT-1, STR_CONV_MODE_LEADING_ZEROS, 2); + ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, 3); + ConvertIntToDecimalStringN(gStringVar2, LAST_MAP_GROUP, STR_CONV_MODE_LEADING_ZEROS, 3); StringExpandPlaceholders(gStringVar1, sDebugText_Util_WarpToMap_SelMax); StringCopy(gStringVar3, gText_DigitIndicator[0]); StringExpandPlaceholders(gStringVar4, sDebugText_Util_WarpToMap_SelectMapGroup); - AddTextPrinterParameterized(windowId, 1, gStringVar4, 1, 1, 0, NULL); + AddTextPrinterParameterized(windowId, DEBUG_MENU_FONT, gStringVar4, 1, 1, 0, NULL); gTasks[taskId].func = DebugAction_Util_Warp_SelectMapGroup; - gTasks[taskId].data[2] = windowId; - gTasks[taskId].data[3] = 0; //Current Flag - gTasks[taskId].data[4] = 0; //Digit Selected - gTasks[taskId].data[5] = 0; //Map Group - gTasks[taskId].data[6] = 0; //Map - gTasks[taskId].data[7] = 0; //warp + gTasks[taskId].tSubWindowId = windowId; + gTasks[taskId].tInput = 0; + gTasks[taskId].tDigit = 0; + gTasks[taskId].tMapGroup = 0; + gTasks[taskId].tMapNum = 0; + gTasks[taskId].tWarp = 0; } + static void DebugAction_Util_Warp_SelectMapGroup(u8 taskId) { if (JOY_NEW(DPAD_ANY)) @@ -1635,48 +1713,48 @@ static void DebugAction_Util_Warp_SelectMapGroup(u8 taskId) PlaySE(SE_SELECT); if (JOY_NEW(DPAD_UP)) { - gTasks[taskId].data[3] += sPowersOfTen[gTasks[taskId].data[4]]; - if (gTasks[taskId].data[3] > MAP_GROUPS_COUNT - 1) - gTasks[taskId].data[3] = MAP_GROUPS_COUNT - 1; + gTasks[taskId].tInput += sPowersOfTen[gTasks[taskId].tDigit]; + if (gTasks[taskId].tInput > LAST_MAP_GROUP) + gTasks[taskId].tInput = LAST_MAP_GROUP; } if (JOY_NEW(DPAD_DOWN)) { - gTasks[taskId].data[3] -= sPowersOfTen[gTasks[taskId].data[4]]; - if (gTasks[taskId].data[3] < 0) - gTasks[taskId].data[3] = 0; + gTasks[taskId].tInput -= sPowersOfTen[gTasks[taskId].tDigit]; + if (gTasks[taskId].tInput < 0) + gTasks[taskId].tInput = 0; } if (JOY_NEW(DPAD_LEFT)) { - if (gTasks[taskId].data[4] > 0) - gTasks[taskId].data[4] -= 1; + if (gTasks[taskId].tDigit > 0) + gTasks[taskId].tDigit -= 1; } if (JOY_NEW(DPAD_RIGHT)) { - if (gTasks[taskId].data[4] < 2) - gTasks[taskId].data[4] += 1; + if (gTasks[taskId].tDigit < 2) + gTasks[taskId].tDigit += 1; } - ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].data[3], STR_CONV_MODE_LEADING_ZEROS, 2); - ConvertIntToDecimalStringN(gStringVar2, MAP_GROUPS_COUNT - 1, STR_CONV_MODE_LEADING_ZEROS, 2); + ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, 3); + ConvertIntToDecimalStringN(gStringVar2, LAST_MAP_GROUP, STR_CONV_MODE_LEADING_ZEROS, 3); StringExpandPlaceholders(gStringVar1, sDebugText_Util_WarpToMap_SelMax); - StringCopy(gStringVar3, gText_DigitIndicator[gTasks[taskId].data[4]]); + StringCopy(gStringVar3, gText_DigitIndicator[gTasks[taskId].tDigit]); StringExpandPlaceholders(gStringVar4, sDebugText_Util_WarpToMap_SelectMapGroup); - AddTextPrinterParameterized(gTasks[taskId].data[2], 1, gStringVar4, 1, 1, 0, NULL); + AddTextPrinterParameterized(gTasks[taskId].tSubWindowId, DEBUG_MENU_FONT, gStringVar4, 1, 1, 0, NULL); } if (JOY_NEW(A_BUTTON)) { - gTasks[taskId].data[5] = gTasks[taskId].data[3]; - gTasks[taskId].data[3] = 0; - gTasks[taskId].data[4] = 0; + gTasks[taskId].tMapGroup = gTasks[taskId].tInput; + gTasks[taskId].tInput = 0; + gTasks[taskId].tDigit = 0; - ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].data[3], STR_CONV_MODE_LEADING_ZEROS, (MAP_GROUP_COUNT[gTasks[taskId].data[5]] - 1 >= 100) ? 3 : 2); - ConvertIntToDecimalStringN(gStringVar2, MAP_GROUP_COUNT[gTasks[taskId].data[5]] - 1, STR_CONV_MODE_LEADING_ZEROS, (MAP_GROUP_COUNT[gTasks[taskId].data[5]] - 1 >= 100) ? 3 : 2); + ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, (MAP_GROUP_COUNT[gTasks[taskId].tMapGroup] - 1 >= 100) ? 3 : 2); + ConvertIntToDecimalStringN(gStringVar2, MAP_GROUP_COUNT[gTasks[taskId].tMapGroup] - 1, STR_CONV_MODE_LEADING_ZEROS, (MAP_GROUP_COUNT[gTasks[taskId].tMapGroup] - 1 >= 100) ? 3 : 2); StringExpandPlaceholders(gStringVar1, sDebugText_Util_WarpToMap_SelMax); - GetMapName(gStringVar2, Overworld_GetMapHeaderByGroupAndId(gTasks[taskId].data[5], gTasks[taskId].data[3])->regionMapSectionId, 0); - StringCopy(gStringVar3, gText_DigitIndicator[gTasks[taskId].data[4]]); + GetMapName(gStringVar2, Overworld_GetMapHeaderByGroupAndId(gTasks[taskId].tMapGroup, gTasks[taskId].tInput)->regionMapSectionId, 0); + StringCopy(gStringVar3, gText_DigitIndicator[gTasks[taskId].tDigit]); StringExpandPlaceholders(gStringVar4, sDebugText_Util_WarpToMap_SelectMap); - AddTextPrinterParameterized(gTasks[taskId].data[2], 1, gStringVar4, 1, 1, 0, NULL); + AddTextPrinterParameterized(gTasks[taskId].tSubWindowId, DEBUG_MENU_FONT, gStringVar4, 1, 1, 0, NULL); gTasks[taskId].func = DebugAction_Util_Warp_SelectMap; } @@ -1686,55 +1764,56 @@ static void DebugAction_Util_Warp_SelectMapGroup(u8 taskId) DebugAction_DestroyExtraWindow(taskId); } } + static void DebugAction_Util_Warp_SelectMap(u8 taskId) { - u8 max_value = MAP_GROUP_COUNT[gTasks[taskId].data[5]]; //maps in the selected map group + u8 max_value = MAP_GROUP_COUNT[gTasks[taskId].tMapGroup]; //maps in the selected map group if (JOY_NEW(DPAD_ANY)) { PlaySE(SE_SELECT); if (JOY_NEW(DPAD_UP)) { - gTasks[taskId].data[3] += sPowersOfTen[gTasks[taskId].data[4]]; - if (gTasks[taskId].data[3] > max_value - 1) - gTasks[taskId].data[3] = max_value - 1; + gTasks[taskId].tInput += sPowersOfTen[gTasks[taskId].tDigit]; + if (gTasks[taskId].tInput > max_value - 1) + gTasks[taskId].tInput = max_value - 1; } if (JOY_NEW(DPAD_DOWN)) { - gTasks[taskId].data[3] -= sPowersOfTen[gTasks[taskId].data[4]]; - if (gTasks[taskId].data[3] < 0) - gTasks[taskId].data[3] = 0; + gTasks[taskId].tInput -= sPowersOfTen[gTasks[taskId].tDigit]; + if (gTasks[taskId].tInput < 0) + gTasks[taskId].tInput = 0; } if (JOY_NEW(DPAD_LEFT)) { - if (gTasks[taskId].data[4] > 0) - gTasks[taskId].data[4] -= 1; + if (gTasks[taskId].tDigit > 0) + gTasks[taskId].tDigit -= 1; } if (JOY_NEW(DPAD_RIGHT)) { - if (gTasks[taskId].data[4] < 2) - gTasks[taskId].data[4] += 1; + if (gTasks[taskId].tDigit < 2) + gTasks[taskId].tDigit += 1; } - ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].data[3], STR_CONV_MODE_LEADING_ZEROS, (max_value >= 100) ? 3 : 2); - ConvertIntToDecimalStringN(gStringVar2, MAP_GROUP_COUNT[gTasks[taskId].data[5]] - 1, STR_CONV_MODE_LEADING_ZEROS, (max_value >= 100) ? 3 : 2); + ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, (max_value >= 100) ? 3 : 2); + ConvertIntToDecimalStringN(gStringVar2, MAP_GROUP_COUNT[gTasks[taskId].tMapGroup] - 1, STR_CONV_MODE_LEADING_ZEROS, (max_value >= 100) ? 3 : 2); StringExpandPlaceholders(gStringVar1, sDebugText_Util_WarpToMap_SelMax); - GetMapName(gStringVar2, Overworld_GetMapHeaderByGroupAndId(gTasks[taskId].data[5], gTasks[taskId].data[3])->regionMapSectionId, 0); - StringCopy(gStringVar3, gText_DigitIndicator[gTasks[taskId].data[4]]); + GetMapName(gStringVar2, Overworld_GetMapHeaderByGroupAndId(gTasks[taskId].tMapGroup, gTasks[taskId].tInput)->regionMapSectionId, 0); + StringCopy(gStringVar3, gText_DigitIndicator[gTasks[taskId].tDigit]); StringExpandPlaceholders(gStringVar4, sDebugText_Util_WarpToMap_SelectMap); - AddTextPrinterParameterized(gTasks[taskId].data[2], 1, gStringVar4, 1, 1, 0, NULL); + AddTextPrinterParameterized(gTasks[taskId].tSubWindowId, DEBUG_MENU_FONT, gStringVar4, 1, 1, 0, NULL); } if (JOY_NEW(A_BUTTON)) { - gTasks[taskId].data[6] = gTasks[taskId].data[3]; - gTasks[taskId].data[3] = 0; - gTasks[taskId].data[4] = 0; + gTasks[taskId].tMapNum = gTasks[taskId].tInput; + gTasks[taskId].tInput = 0; + gTasks[taskId].tDigit = 0; - StringCopy(gStringVar3, gText_DigitIndicator[gTasks[taskId].data[4]]); - ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].data[3], STR_CONV_MODE_LEADING_ZEROS, 2); + StringCopy(gStringVar3, gText_DigitIndicator[gTasks[taskId].tDigit]); + ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, 3); StringExpandPlaceholders(gStringVar4, sDebugText_Util_WarpToMap_SelectWarp); - AddTextPrinterParameterized(gTasks[taskId].data[2], 1, gStringVar4, 1, 1, 0, NULL); + AddTextPrinterParameterized(gTasks[taskId].tSubWindowId, DEBUG_MENU_FONT, gStringVar4, 1, 1, 0, NULL); gTasks[taskId].func = DebugAction_Util_Warp_SelectWarp; } else if (JOY_NEW(B_BUTTON)) @@ -1743,6 +1822,7 @@ static void DebugAction_Util_Warp_SelectMap(u8 taskId) DebugAction_DestroyExtraWindow(taskId); } } + static void DebugAction_Util_Warp_SelectWarp(u8 taskId) { if (JOY_NEW(DPAD_ANY)) @@ -1750,29 +1830,28 @@ static void DebugAction_Util_Warp_SelectWarp(u8 taskId) PlaySE(SE_SELECT); if (JOY_NEW(DPAD_UP)) { - gTasks[taskId].data[3] += sPowersOfTen[gTasks[taskId].data[4]]; - if (gTasks[taskId].data[3] > 10) - gTasks[taskId].data[3] = 10; + gTasks[taskId].tInput += sPowersOfTen[gTasks[taskId].tDigit]; + if (gTasks[taskId].tInput > 10) + gTasks[taskId].tInput = 10; } if (JOY_NEW(DPAD_DOWN)) { - gTasks[taskId].data[3] -= sPowersOfTen[gTasks[taskId].data[4]]; - if (gTasks[taskId].data[3] < 0) - gTasks[taskId].data[3] = 0; + gTasks[taskId].tInput -= sPowersOfTen[gTasks[taskId].tDigit]; + if (gTasks[taskId].tInput < 0) + gTasks[taskId].tInput = 0; } - StringCopy(gStringVar3, gText_DigitIndicator[gTasks[taskId].data[4]]); - ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].data[3], STR_CONV_MODE_LEADING_ZEROS, 2); + StringCopy(gStringVar3, gText_DigitIndicator[gTasks[taskId].tDigit]); + ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, 3); StringExpandPlaceholders(gStringVar4, sDebugText_Util_WarpToMap_SelectWarp); - AddTextPrinterParameterized(gTasks[taskId].data[2], 1, gStringVar4, 1, 1, 0, NULL); + AddTextPrinterParameterized(gTasks[taskId].tSubWindowId, DEBUG_MENU_FONT, gStringVar4, 1, 1, 0, NULL); } if (JOY_NEW(A_BUTTON)) { - gTasks[taskId].data[7] = gTasks[taskId].data[3]; - //WARP + gTasks[taskId].tWarp = gTasks[taskId].tInput; //If there's no warp with the number available, warp to the center of the map. - SetWarpDestinationToMapWarp(gTasks[taskId].data[5], gTasks[taskId].data[6], gTasks[taskId].data[7]); + SetWarpDestinationToMapWarp(gTasks[taskId].tMapGroup, gTasks[taskId].tMapNum, gTasks[taskId].tWarp); DoWarp(); ResetInitialPlayerAvatarState(); DebugAction_DestroyExtraWindow(taskId); @@ -1784,6 +1863,10 @@ static void DebugAction_Util_Warp_SelectWarp(u8 taskId) } } +#undef tMapGroup +#undef tMapNum +#undef tWarp + static void DebugAction_Util_PoisonMons(u8 taskId) { int i; @@ -1829,9 +1912,7 @@ void CheckPokemonStorageSize(struct ScriptContext *ctx) static void DebugAction_Util_CheckSaveBlock(u8 taskId) { - Debug_DestroyMenu_Full(taskId); - LockPlayerFieldControls(); - ScriptContext_SetupScript(Debug_CheckSaveBlock); + Debug_DestroyMenu_Full_Script(taskId, Debug_CheckSaveBlock); } enum RoundMode @@ -1909,33 +1990,34 @@ static const u8 sWeatherNames[22][24] = { [WEATHER_ROUTE119_CYCLE] = _("ROUTE119 CYCLE"), [WEATHER_ROUTE123_CYCLE] = _("ROUTE123 CYCLE"), }; -static const u8 sText_WeatherNotDefined[] = _("NOT DEFINED!!!"); +static const u8 sDebugText_WeatherNotDefined[] = _("NOT DEFINED!!!"); static void DebugAction_Util_Weather(u8 taskId) { u8 windowId; - ClearStdWindowAndFrame(gTasks[taskId].data[1], TRUE); - RemoveWindow(gTasks[taskId].data[1]); + ClearStdWindowAndFrame(gTasks[taskId].tWindowId, TRUE); + RemoveWindow(gTasks[taskId].tWindowId); HideMapNamePopUpWindow(); LoadMessageBoxAndBorderGfx(); windowId = AddWindow(&sDebugMenuWindowTemplateWeather); DrawStdWindowFrame(windowId, FALSE); - CopyWindowToVram(windowId, 3); + CopyWindowToVram(windowId, COPYWIN_FULL); //Display initial ID StringCopy(gStringVar2, gText_DigitIndicator[0]); ConvertIntToDecimalStringN(gStringVar3, 1, STR_CONV_MODE_LEADING_ZEROS, 2); StringCopyPadded(gStringVar1, sWeatherNames[0], CHAR_SPACE, 30); StringExpandPlaceholders(gStringVar4, sDebugText_Util_Weather_ID); - AddTextPrinterParameterized(windowId, 1, gStringVar4, 1, 1, 0, NULL); + AddTextPrinterParameterized(windowId, DEBUG_MENU_FONT, gStringVar4, 1, 1, 0, NULL); gTasks[taskId].func = DebugAction_Util_Weather_SelectId; - gTasks[taskId].data[2] = windowId; - gTasks[taskId].data[3] = 0; //Current ID - gTasks[taskId].data[4] = 0; //Digit Selected + gTasks[taskId].tSubWindowId = windowId; + gTasks[taskId].tInput = 0; + gTasks[taskId].tDigit = 0; } + static void DebugAction_Util_Weather_SelectId(u8 taskId) { if (JOY_NEW(DPAD_ANY)) @@ -1944,44 +2026,44 @@ static void DebugAction_Util_Weather_SelectId(u8 taskId) if (JOY_NEW(DPAD_UP)) { - gTasks[taskId].data[3] += sPowersOfTen[gTasks[taskId].data[4]]; - if (gTasks[taskId].data[3] > WEATHER_ROUTE123_CYCLE) - gTasks[taskId].data[3] = WEATHER_ROUTE123_CYCLE; + gTasks[taskId].tInput += sPowersOfTen[gTasks[taskId].tDigit]; + if (gTasks[taskId].tInput > WEATHER_ROUTE123_CYCLE) + gTasks[taskId].tInput = WEATHER_ROUTE123_CYCLE; } if (JOY_NEW(DPAD_DOWN)) { - gTasks[taskId].data[3] -= sPowersOfTen[gTasks[taskId].data[4]]; - if (gTasks[taskId].data[3] < WEATHER_NONE) - gTasks[taskId].data[3] = WEATHER_NONE; + gTasks[taskId].tInput -= sPowersOfTen[gTasks[taskId].tDigit]; + if (gTasks[taskId].tInput < WEATHER_NONE) + gTasks[taskId].tInput = WEATHER_NONE; } if (JOY_NEW(DPAD_LEFT)) { - if (gTasks[taskId].data[4] > 0) - gTasks[taskId].data[4] -= 1; + if (gTasks[taskId].tDigit > 0) + gTasks[taskId].tDigit -= 1; } if (JOY_NEW(DPAD_RIGHT)) { - if (gTasks[taskId].data[4] < 2) - gTasks[taskId].data[4] += 1; + if (gTasks[taskId].tDigit < 2) + gTasks[taskId].tDigit += 1; } - StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].data[4]]); - ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].data[3], STR_CONV_MODE_LEADING_ZEROS, 2); + StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].tDigit]); + ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, 2); - if (gTasks[taskId].data[3] <= 15 || gTasks[taskId].data[3] >= 20) - StringCopyPadded(gStringVar1, sWeatherNames[gTasks[taskId].data[3]], CHAR_SPACE, 30); + if (gTasks[taskId].tInput <= 15 || gTasks[taskId].tInput >= 20) + StringCopyPadded(gStringVar1, sWeatherNames[gTasks[taskId].tInput], CHAR_SPACE, 30); else - StringCopyPadded(gStringVar1, sText_WeatherNotDefined, CHAR_SPACE, 30); + StringCopyPadded(gStringVar1, sDebugText_WeatherNotDefined, CHAR_SPACE, 30); StringExpandPlaceholders(gStringVar4, sDebugText_Util_Weather_ID); - AddTextPrinterParameterized(gTasks[taskId].data[2], 1, gStringVar4, 1, 1, 0, NULL); + AddTextPrinterParameterized(gTasks[taskId].tSubWindowId, DEBUG_MENU_FONT, gStringVar4, 1, 1, 0, NULL); } if (JOY_NEW(A_BUTTON)) { - if (gTasks[taskId].data[3] <= 14 || gTasks[taskId].data[3] >= 20) + if (gTasks[taskId].tInput <= 14 || gTasks[taskId].tInput >= 20) { - gTasks[taskId].data[5] = gTasks[taskId].data[3]; + gTasks[taskId].data[5] = gTasks[taskId].tInput; SetWeather(gTasks[taskId].data[5]); } } @@ -1996,85 +2078,126 @@ static void DebugAction_Util_CheckWallClock(u8 taskId) { Debug_DestroyMenu_Full_Script(taskId, PlayersHouse_2F_EventScript_CheckWallClock); } + static void DebugAction_Util_SetWallClock(u8 taskId) { Debug_DestroyMenu_Full_Script(taskId, PlayersHouse_2F_EventScript_SetWallClock); } + static void DebugAction_Util_WatchCredits(u8 taskId) { Debug_DestroyMenu_Full(taskId); SetMainCallback2(CB2_StartCreditsSequence); } -static void DebugAction_Util_Trainer_Name(u8 taskId) + +static void DebugAction_Util_Player_Name(u8 taskId) { - NewGameBirchSpeech_SetDefaultPlayerName(Random() % 20); - DoNamingScreen(0, gSaveBlock2Ptr->playerName, gSaveBlock2Ptr->playerGender, 0, 0, CB2_ReturnToFieldContinueScript); + DoNamingScreen(NAMING_SCREEN_PLAYER, gSaveBlock2Ptr->playerName, gSaveBlock2Ptr->playerGender, 0, 0, CB2_ReturnToFieldContinueScript); } -static void DebugAction_Util_Trainer_Gender(u8 taskId) + +static void DebugAction_Util_Player_Gender(u8 taskId) { - if (gSaveBlock2Ptr->playerGender == 0) // 0 Male, 1 Female - gSaveBlock2Ptr->playerGender = 1; + if (gSaveBlock2Ptr->playerGender == MALE) + gSaveBlock2Ptr->playerGender = FEMALE; else - gSaveBlock2Ptr->playerGender = 0; + gSaveBlock2Ptr->playerGender = MALE; Debug_DestroyMenu_Full(taskId); ScriptContext_Enable(); } -static void DebugAction_Util_Trainer_Id(u8 taskId) + +static void DebugAction_Util_Player_Id(u8 taskId) { u32 trainerId = ((Random() << 16) | Random()); SetTrainerId(trainerId, gSaveBlock2Ptr->playerTrainerId); Debug_DestroyMenu_Full(taskId); ScriptContext_Enable(); } + static void DebugAction_Util_Clear_Boxes(u8 taskId) { ResetPokemonStorageSystem(); Debug_DestroyMenu_Full(taskId); ScriptContext_Enable(); } + static void DebugAction_Util_CheatStart(u8 taskId) { + if (!FlagGet(FLAG_SYS_CLOCK_SET)) + RtcInitLocalTimeOffset(0, 0); + InitTimeBasedEvents(); Debug_DestroyMenu_Full_Script(taskId, Debug_CheatStart); } + static void DebugAction_Util_HatchAnEgg(u8 taskId) { Debug_DestroyMenu_Full_Script(taskId, Debug_HatchAnEgg); } +static void DebugAction_Util_ExpansionVersion(u8 taskId) +{ + Debug_DestroyMenu_Full(taskId); + LockPlayerFieldControls(); + ScriptContext_SetupScript(Debug_ShowExpansionVersion); +} + +void BufferExpansionVersion(struct ScriptContext *ctx) +{ + static const u8 sText_Released[] = _("\nRelease Build"); + static const u8 sText_Unreleased[] = _("\nDevelopment Build"); + u8 *string = gStringVar1; + *string++ = CHAR_v; + string = ConvertIntToDecimalStringN(string, EXPANSION_VERSION_MAJOR, STR_CONV_MODE_LEFT_ALIGN, 3); + *string++ = CHAR_PERIOD; + string = ConvertIntToDecimalStringN(string, EXPANSION_VERSION_MINOR, STR_CONV_MODE_LEFT_ALIGN, 3); + *string++ = CHAR_PERIOD; + string = ConvertIntToDecimalStringN(string, EXPANSION_VERSION_PATCH, STR_CONV_MODE_LEFT_ALIGN, 3); + if (EXPANSION_TAGGED_RELEASE) + string = StringCopy(string, sText_Released); + else + string = StringCopy(string, sText_Unreleased); +} + // ******************************* // Actions Scripts static void DebugAction_Util_Script_1(u8 taskId) { - Debug_DestroyMenu_Full_Script(taskId, Debug_Script_1); + Debug_DestroyMenu_Full_Script(taskId, Debug_EventScript_Script_1); } + static void DebugAction_Util_Script_2(u8 taskId) { - Debug_DestroyMenu_Full_Script(taskId, Debug_Script_2); + Debug_DestroyMenu_Full_Script(taskId, Debug_EventScript_Script_2); } + static void DebugAction_Util_Script_3(u8 taskId) { - Debug_DestroyMenu_Full_Script(taskId, Debug_Script_3); + Debug_DestroyMenu_Full_Script(taskId, Debug_EventScript_Script_3); } + static void DebugAction_Util_Script_4(u8 taskId) { - Debug_DestroyMenu_Full_Script(taskId, Debug_Script_4); + Debug_DestroyMenu_Full_Script(taskId, Debug_EventScript_Script_4); } + static void DebugAction_Util_Script_5(u8 taskId) { - Debug_DestroyMenu_Full_Script(taskId, Debug_Script_5); + Debug_DestroyMenu_Full_Script(taskId, Debug_EventScript_Script_5); } + static void DebugAction_Util_Script_6(u8 taskId) { - Debug_DestroyMenu_Full_Script(taskId, Debug_Script_6); + Debug_DestroyMenu_Full_Script(taskId, Debug_EventScript_Script_6); } + static void DebugAction_Util_Script_7(u8 taskId) { - Debug_DestroyMenu_Full_Script(taskId, Debug_Script_7); + Debug_DestroyMenu_Full_Script(taskId, Debug_EventScript_Script_7); } + static void DebugAction_Util_Script_8(u8 taskId) { - Debug_DestroyMenu_Full_Script(taskId, Debug_Script_8); + Debug_DestroyMenu_Full_Script(taskId, Debug_EventScript_Script_8); } // ******************************* @@ -2083,17 +2206,17 @@ static void DebugAction_FlagsVars_Flags(u8 taskId) { u8 windowId; - ClearStdWindowAndFrame(gTasks[taskId].data[1], TRUE); - RemoveWindow(gTasks[taskId].data[1]); + ClearStdWindowAndFrame(gTasks[taskId].tWindowId, TRUE); + RemoveWindow(gTasks[taskId].tWindowId); HideMapNamePopUpWindow(); LoadMessageBoxAndBorderGfx(); windowId = AddWindow(&sDebugMenuWindowTemplateExtra); DrawStdWindowFrame(windowId, FALSE); - CopyWindowToVram(windowId, 3); + CopyWindowToVram(windowId, COPYWIN_FULL); - //Display initial Flag + // Display initial flag ConvertIntToDecimalStringN(gStringVar1, 1, STR_CONV_MODE_LEADING_ZEROS, DEBUG_NUMBER_DIGITS_FLAGS); ConvertIntToHexStringN(gStringVar2, 1, STR_CONV_MODE_LEFT_ALIGN, 3); StringExpandPlaceholders(gStringVar1, sDebugText_FlagsVars_FlagHex); @@ -2103,17 +2226,20 @@ static void DebugAction_FlagsVars_Flags(u8 taskId) StringCopyPadded(gStringVar2, sDebugText_False, CHAR_SPACE, 15); StringCopy(gStringVar3, gText_DigitIndicator[0]); StringExpandPlaceholders(gStringVar4, sDebugText_FlagsVars_Flag); - AddTextPrinterParameterized(windowId, 1, gStringVar4, 1, 1, 0, NULL); + AddTextPrinterParameterized(windowId, DEBUG_MENU_FONT, gStringVar4, 1, 1, 0, NULL); gTasks[taskId].func = DebugAction_FlagsVars_FlagsSelect; - gTasks[taskId].data[2] = windowId; - gTasks[taskId].data[3] = FLAG_TEMP_1; //Current Flag - gTasks[taskId].data[4] = 0; //Digit Selected + gTasks[taskId].tSubWindowId = windowId; + gTasks[taskId].tInput = FLAG_TEMP_1; + gTasks[taskId].tDigit = 0; } + static void DebugAction_FlagsVars_FlagsSelect(u8 taskId) { if (JOY_NEW(A_BUTTON)) - FlagToggle(gTasks[taskId].data[3]); + { + FlagToggle(gTasks[taskId].tInput); + } else if (JOY_NEW(B_BUTTON)) { PlaySE(SE_SELECT); @@ -2124,68 +2250,64 @@ static void DebugAction_FlagsVars_FlagsSelect(u8 taskId) if (JOY_NEW(DPAD_UP)) { PlaySE(SE_SELECT); - gTasks[taskId].data[3] += sPowersOfTen[gTasks[taskId].data[4]]; - if (gTasks[taskId].data[3] >= FLAGS_COUNT){ - gTasks[taskId].data[3] = FLAGS_COUNT - 1; - } + gTasks[taskId].tInput += sPowersOfTen[gTasks[taskId].tDigit]; + if (gTasks[taskId].tInput >= FLAGS_COUNT) + gTasks[taskId].tInput = FLAGS_COUNT - 1; } if (JOY_NEW(DPAD_DOWN)) { PlaySE(SE_SELECT); - gTasks[taskId].data[3] -= sPowersOfTen[gTasks[taskId].data[4]]; - if (gTasks[taskId].data[3] < 1){ - gTasks[taskId].data[3] = 1; - } + gTasks[taskId].tInput -= sPowersOfTen[gTasks[taskId].tDigit]; + if (gTasks[taskId].tInput < 1) + gTasks[taskId].tInput = 1; } if (JOY_NEW(DPAD_LEFT)) { PlaySE(SE_SELECT); - gTasks[taskId].data[4] -= 1; - if (gTasks[taskId].data[4] < 0) - { - gTasks[taskId].data[4] = 0; - } + gTasks[taskId].tDigit -= 1; + if (gTasks[taskId].tDigit < 0) + gTasks[taskId].tDigit = 0; } if (JOY_NEW(DPAD_RIGHT)) { PlaySE(SE_SELECT); - gTasks[taskId].data[4] += 1; - if (gTasks[taskId].data[4] > DEBUG_NUMBER_DIGITS_FLAGS - 1) - { - gTasks[taskId].data[4] = DEBUG_NUMBER_DIGITS_FLAGS - 1; - } + gTasks[taskId].tDigit += 1; + if (gTasks[taskId].tDigit > DEBUG_NUMBER_DIGITS_FLAGS - 1) + gTasks[taskId].tDigit = DEBUG_NUMBER_DIGITS_FLAGS - 1; } if (JOY_NEW(DPAD_ANY) || JOY_NEW(A_BUTTON)) { - ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].data[3], STR_CONV_MODE_LEADING_ZEROS, DEBUG_NUMBER_DIGITS_FLAGS); - ConvertIntToHexStringN(gStringVar2, gTasks[taskId].data[3], STR_CONV_MODE_LEFT_ALIGN, 3); + ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, DEBUG_NUMBER_DIGITS_FLAGS); + ConvertIntToHexStringN(gStringVar2, gTasks[taskId].tInput, STR_CONV_MODE_LEFT_ALIGN, 3); StringExpandPlaceholders(gStringVar1, sDebugText_FlagsVars_FlagHex); - if (FlagGet(gTasks[taskId].data[3]) == TRUE) + if (FlagGet(gTasks[taskId].tInput) == TRUE) StringCopyPadded(gStringVar2, sDebugText_True, CHAR_SPACE, 15); else StringCopyPadded(gStringVar2, sDebugText_False, CHAR_SPACE, 15); - StringCopy(gStringVar3, gText_DigitIndicator[gTasks[taskId].data[4]]); + StringCopy(gStringVar3, gText_DigitIndicator[gTasks[taskId].tDigit]); StringExpandPlaceholders(gStringVar4, sDebugText_FlagsVars_Flag); - AddTextPrinterParameterized(gTasks[taskId].data[2], 1, gStringVar4, 1, 1, 0, NULL); + AddTextPrinterParameterized(gTasks[taskId].tSubWindowId, DEBUG_MENU_FONT, gStringVar4, 1, 1, 0, NULL); } } +#define tVarValue data[5] + static void DebugAction_FlagsVars_Vars(u8 taskId) { u8 windowId; - ClearStdWindowAndFrame(gTasks[taskId].data[1], TRUE); - RemoveWindow(gTasks[taskId].data[1]); + ClearStdWindowAndFrame(gTasks[taskId].tWindowId, TRUE); + RemoveWindow(gTasks[taskId].tWindowId); HideMapNamePopUpWindow(); LoadMessageBoxAndBorderGfx(); windowId = AddWindow(&sDebugMenuWindowTemplateExtra); DrawStdWindowFrame(windowId, FALSE); - CopyWindowToVram(windowId, 3); + CopyWindowToVram(windowId, COPYWIN_FULL); - //Display initial Variable + // Display initial var ConvertIntToDecimalStringN(gStringVar1, VARS_START, STR_CONV_MODE_LEADING_ZEROS, DEBUG_NUMBER_DIGITS_VARIABLES); ConvertIntToHexStringN(gStringVar2, VARS_START, STR_CONV_MODE_LEFT_ALIGN, 4); StringExpandPlaceholders(gStringVar1, sDebugText_FlagsVars_VariableHex); @@ -2193,79 +2315,79 @@ static void DebugAction_FlagsVars_Vars(u8 taskId) StringCopyPadded(gStringVar3, gStringVar3, CHAR_SPACE, 15); StringCopy(gStringVar2, gText_DigitIndicator[0]); StringExpandPlaceholders(gStringVar4, sDebugText_FlagsVars_Variable); - AddTextPrinterParameterized(windowId, 1, gStringVar4, 1, 1, 0, NULL); + AddTextPrinterParameterized(windowId, DEBUG_MENU_FONT, gStringVar4, 1, 1, 0, NULL); gTasks[taskId].func = DebugAction_FlagsVars_Select; - gTasks[taskId].data[2] = windowId; - gTasks[taskId].data[3] = VARS_START; //Current Variable - gTasks[taskId].data[4] = 0; //Digit Selected - gTasks[taskId].data[5] = 0; //Current Variable VALUE + gTasks[taskId].tSubWindowId = windowId; + gTasks[taskId].tInput = VARS_START; + gTasks[taskId].tDigit = 0; + gTasks[taskId].tVarValue = 0; } static void DebugAction_FlagsVars_Select(u8 taskId) { if (JOY_NEW(DPAD_UP)) { - gTasks[taskId].data[3] += sPowersOfTen[gTasks[taskId].data[4]]; - if (gTasks[taskId].data[3] > VARS_END) - gTasks[taskId].data[3] = VARS_END; + gTasks[taskId].tInput += sPowersOfTen[gTasks[taskId].tDigit]; + if (gTasks[taskId].tInput > VARS_END) + gTasks[taskId].tInput = VARS_END; } if (JOY_NEW(DPAD_DOWN)) { - gTasks[taskId].data[3] -= sPowersOfTen[gTasks[taskId].data[4]]; - if (gTasks[taskId].data[3] < VARS_START) - gTasks[taskId].data[3] = VARS_START; + gTasks[taskId].tInput -= sPowersOfTen[gTasks[taskId].tDigit]; + if (gTasks[taskId].tInput < VARS_START) + gTasks[taskId].tInput = VARS_START; } if (JOY_NEW(DPAD_LEFT)) { - gTasks[taskId].data[4] -= 1; - if (gTasks[taskId].data[4] < 0) - gTasks[taskId].data[4] = 0; + gTasks[taskId].tDigit -= 1; + if (gTasks[taskId].tDigit < 0) + gTasks[taskId].tDigit = 0; } if (JOY_NEW(DPAD_RIGHT)) { - gTasks[taskId].data[4] += 1; - if (gTasks[taskId].data[4] > DEBUG_NUMBER_DIGITS_VARIABLES - 1) - gTasks[taskId].data[4] = DEBUG_NUMBER_DIGITS_VARIABLES - 1; + gTasks[taskId].tDigit += 1; + if (gTasks[taskId].tDigit > DEBUG_NUMBER_DIGITS_VARIABLES - 1) + gTasks[taskId].tDigit = DEBUG_NUMBER_DIGITS_VARIABLES - 1; } if (JOY_NEW(DPAD_ANY)) { PlaySE(SE_SELECT); - ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].data[3], STR_CONV_MODE_LEADING_ZEROS, DEBUG_NUMBER_DIGITS_VARIABLES); - ConvertIntToHexStringN(gStringVar2, gTasks[taskId].data[3], STR_CONV_MODE_LEFT_ALIGN, 4); + ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, DEBUG_NUMBER_DIGITS_VARIABLES); + ConvertIntToHexStringN(gStringVar2, gTasks[taskId].tInput, STR_CONV_MODE_LEFT_ALIGN, 4); StringExpandPlaceholders(gStringVar1, sDebugText_FlagsVars_VariableHex); - if (VarGetIfExist(gTasks[taskId].data[3]) == 65535) //Current value, if 65535 the value hasnt been set - gTasks[taskId].data[5] = 0; + if (VarGetIfExist(gTasks[taskId].tInput) == 0xFFFF) + gTasks[taskId].tVarValue = 0; else - gTasks[taskId].data[5] = VarGet(gTasks[taskId].data[3]); - ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].data[5], STR_CONV_MODE_LEADING_ZEROS, DEBUG_NUMBER_DIGITS_VARIABLES); - StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].data[4]]); //Current digit + gTasks[taskId].tVarValue = VarGet(gTasks[taskId].tInput); + ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].tVarValue, STR_CONV_MODE_LEADING_ZEROS, DEBUG_NUMBER_DIGITS_VARIABLES); + StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].tDigit]); //Combine str's to full window string StringExpandPlaceholders(gStringVar4, sDebugText_FlagsVars_Variable); - AddTextPrinterParameterized(gTasks[taskId].data[2], 1, gStringVar4, 1, 1, 0, NULL); + AddTextPrinterParameterized(gTasks[taskId].tSubWindowId, DEBUG_MENU_FONT, gStringVar4, 1, 1, 0, NULL); } if (JOY_NEW(A_BUTTON)) { - gTasks[taskId].data[4] = 0; + gTasks[taskId].tDigit = 0; PlaySE(SE_SELECT); - ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].data[3], STR_CONV_MODE_LEADING_ZEROS, DEBUG_NUMBER_DIGITS_VARIABLES); - ConvertIntToHexStringN(gStringVar2, gTasks[taskId].data[3], STR_CONV_MODE_LEFT_ALIGN, 4); + ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, DEBUG_NUMBER_DIGITS_VARIABLES); + ConvertIntToHexStringN(gStringVar2, gTasks[taskId].tInput, STR_CONV_MODE_LEFT_ALIGN, 4); StringExpandPlaceholders(gStringVar1, sDebugText_FlagsVars_VariableHex); - if (VarGetIfExist(gTasks[taskId].data[3]) == 65535) //Current value if 65535 the value hasnt been set - gTasks[taskId].data[5] = 0; + if (VarGetIfExist(gTasks[taskId].tInput) == 0xFFFF) + gTasks[taskId].tVarValue = 0; else - gTasks[taskId].data[5] = VarGet(gTasks[taskId].data[3]); - ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].data[5], STR_CONV_MODE_LEADING_ZEROS, DEBUG_NUMBER_DIGITS_VARIABLES); + gTasks[taskId].tVarValue = VarGet(gTasks[taskId].tInput); + ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].tVarValue, STR_CONV_MODE_LEADING_ZEROS, DEBUG_NUMBER_DIGITS_VARIABLES); StringCopyPadded(gStringVar3, gStringVar3, CHAR_SPACE, 15); - StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].data[4]]); //Current digit + StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].tDigit]); StringExpandPlaceholders(gStringVar4, sDebugText_FlagsVars_VariableValueSet); - AddTextPrinterParameterized(gTasks[taskId].data[2], 1, gStringVar4, 1, 1, 0, NULL); + AddTextPrinterParameterized(gTasks[taskId].tSubWindowId, DEBUG_MENU_FONT, gStringVar4, 1, 1, 0, NULL); gTasks[taskId].data[6] = gTasks[taskId].data[5]; //New value selector gTasks[taskId].func = DebugAction_FlagsVars_SetValue; @@ -2277,12 +2399,13 @@ static void DebugAction_FlagsVars_Select(u8 taskId) return; } } + static void DebugAction_FlagsVars_SetValue(u8 taskId) { if (JOY_NEW(DPAD_UP)) { - if (gTasks[taskId].data[6] + sPowersOfTen[gTasks[taskId].data[4]] <= 32000) - gTasks[taskId].data[6] += sPowersOfTen[gTasks[taskId].data[4]]; + if (gTasks[taskId].data[6] + sPowersOfTen[gTasks[taskId].tDigit] <= 32000) + gTasks[taskId].data[6] += sPowersOfTen[gTasks[taskId].tDigit]; else gTasks[taskId].data[6] = 32000 - 1; @@ -2291,32 +2414,27 @@ static void DebugAction_FlagsVars_SetValue(u8 taskId) } if (JOY_NEW(DPAD_DOWN)) { - gTasks[taskId].data[6] -= sPowersOfTen[gTasks[taskId].data[4]]; - if (gTasks[taskId].data[6] < 0){ + gTasks[taskId].data[6] -= sPowersOfTen[gTasks[taskId].tDigit]; + if (gTasks[taskId].data[6] < 0) gTasks[taskId].data[6] = 0; - } } if (JOY_NEW(DPAD_LEFT)) { - gTasks[taskId].data[4] -= 1; - if (gTasks[taskId].data[4] < 0) - { - gTasks[taskId].data[4] = 0; - } + gTasks[taskId].tDigit -= 1; + if (gTasks[taskId].tDigit < 0) + gTasks[taskId].tDigit = 0; } if (JOY_NEW(DPAD_RIGHT)) { - gTasks[taskId].data[4] += 1; - if (gTasks[taskId].data[4] > 4) - { - gTasks[taskId].data[4] = 4; - } + gTasks[taskId].tDigit += 1; + if (gTasks[taskId].tDigit > 4) + gTasks[taskId].tDigit = 4; } if (JOY_NEW(A_BUTTON)) { PlaySE(SE_SELECT); - VarSet(gTasks[taskId].data[3], gTasks[taskId].data[6]); + VarSet(gTasks[taskId].tInput, gTasks[taskId].data[6]); } else if (JOY_NEW(B_BUTTON)) { @@ -2329,18 +2447,20 @@ static void DebugAction_FlagsVars_SetValue(u8 taskId) { PlaySE(SE_SELECT); - ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].data[3], STR_CONV_MODE_LEADING_ZEROS, DEBUG_NUMBER_DIGITS_VARIABLES); - ConvertIntToHexStringN(gStringVar2, gTasks[taskId].data[3], STR_CONV_MODE_LEFT_ALIGN, 4); + ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, DEBUG_NUMBER_DIGITS_VARIABLES); + ConvertIntToHexStringN(gStringVar2, gTasks[taskId].tInput, STR_CONV_MODE_LEFT_ALIGN, 4); StringExpandPlaceholders(gStringVar1, sDebugText_FlagsVars_VariableHex); StringCopyPadded(gStringVar1, gStringVar1, CHAR_SPACE, 15); ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].data[6], STR_CONV_MODE_LEADING_ZEROS, DEBUG_NUMBER_DIGITS_VARIABLES); StringCopyPadded(gStringVar3, gStringVar3, CHAR_SPACE, 15); - StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].data[4]]); //Current digit + StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].tDigit]); StringExpandPlaceholders(gStringVar4, sDebugText_FlagsVars_VariableValueSet); - AddTextPrinterParameterized(gTasks[taskId].data[2], 1, gStringVar4, 1, 1, 0, NULL); + AddTextPrinterParameterized(gTasks[taskId].tSubWindowId, DEBUG_MENU_FONT, gStringVar4, 1, 1, 0, NULL); } } +#undef tVarValue + static void DebugAction_FlagsVars_PokedexFlags_All(u8 taskId) { u16 i; @@ -2352,6 +2472,7 @@ static void DebugAction_FlagsVars_PokedexFlags_All(u8 taskId) Debug_DestroyMenu_Full(taskId); ScriptContext_Enable(); } + static void DebugAction_FlagsVars_PokedexFlags_Reset(u8 taskId) { int boxId, boxPosition, partyId; @@ -2388,6 +2509,7 @@ static void DebugAction_FlagsVars_PokedexFlags_Reset(u8 taskId) Debug_DestroyMenu_Full(taskId); ScriptContext_Enable(); } + static void DebugAction_FlagsVars_SwitchDex(u8 taskId) { if (FlagGet(FLAG_SYS_POKEDEX_GET)) @@ -2396,17 +2518,21 @@ static void DebugAction_FlagsVars_SwitchDex(u8 taskId) PlaySE(SE_PC_LOGIN); FlagToggle(FLAG_SYS_POKEDEX_GET); } + static void DebugAction_FlagsVars_SwitchNatDex(u8 taskId) { if (IsNationalPokedexEnabled()) { DisableNationalPokedex(); PlaySE(SE_PC_OFF); - }else{ + } + else + { EnableNationalPokedex(); PlaySE(SE_PC_LOGIN); } } + static void DebugAction_FlagsVars_SwitchPokeNav(u8 taskId) { if (FlagGet(FLAG_SYS_POKENAV_GET)) @@ -2415,6 +2541,23 @@ static void DebugAction_FlagsVars_SwitchPokeNav(u8 taskId) PlaySE(SE_PC_LOGIN); FlagToggle(FLAG_SYS_POKENAV_GET); } + +static void DebugAction_FlagsVars_SwitchMatchCall(u8 taskId) +{ + if (FlagGet(FLAG_ADDED_MATCH_CALL_TO_POKENAV)) + { + PlaySE(SE_PC_OFF); + FlagClear(FLAG_ADDED_MATCH_CALL_TO_POKENAV); + FlagClear(FLAG_HAS_MATCH_CALL); + } + else + { + PlaySE(SE_PC_LOGIN); + FlagSet(FLAG_ADDED_MATCH_CALL_TO_POKENAV); + FlagSet(FLAG_HAS_MATCH_CALL); + } +} + static void DebugAction_FlagsVars_RunningShoes(u8 taskId) { if (FlagGet(FLAG_SYS_B_DASH)) @@ -2423,13 +2566,12 @@ static void DebugAction_FlagsVars_RunningShoes(u8 taskId) PlaySE(SE_PC_LOGIN); FlagToggle(FLAG_SYS_B_DASH); } + static void DebugAction_FlagsVars_ToggleFlyFlags(u8 taskId) { - // Sound effect if (FlagGet(FLAG_LANDMARK_BATTLE_FRONTIER)) { PlaySE(SE_PC_OFF); - FlagClear(FLAG_VISITED_LITTLEROOT_TOWN); FlagClear(FLAG_VISITED_OLDALE_TOWN); FlagClear(FLAG_VISITED_DEWFORD_TOWN); @@ -2452,7 +2594,6 @@ static void DebugAction_FlagsVars_ToggleFlyFlags(u8 taskId) else { PlaySE(SE_PC_LOGIN); - FlagSet(FLAG_VISITED_LITTLEROOT_TOWN); FlagSet(FLAG_VISITED_OLDALE_TOWN); FlagSet(FLAG_VISITED_DEWFORD_TOWN); @@ -2473,22 +2614,35 @@ static void DebugAction_FlagsVars_ToggleFlyFlags(u8 taskId) FlagSet(FLAG_LANDMARK_BATTLE_FRONTIER); } } + static void DebugAction_FlagsVars_ToggleBadgeFlags(u8 taskId) { - // Sound effect if (FlagGet(FLAG_BADGE08_GET)) + { PlaySE(SE_PC_OFF); + FlagClear(FLAG_BADGE01_GET); + FlagClear(FLAG_BADGE02_GET); + FlagClear(FLAG_BADGE03_GET); + FlagClear(FLAG_BADGE04_GET); + FlagClear(FLAG_BADGE05_GET); + FlagClear(FLAG_BADGE06_GET); + FlagClear(FLAG_BADGE07_GET); + FlagClear(FLAG_BADGE08_GET); + } else + { PlaySE(SE_PC_LOGIN); - FlagToggle(FLAG_BADGE01_GET); - FlagToggle(FLAG_BADGE02_GET); - FlagToggle(FLAG_BADGE03_GET); - FlagToggle(FLAG_BADGE04_GET); - FlagToggle(FLAG_BADGE05_GET); - FlagToggle(FLAG_BADGE06_GET); - FlagToggle(FLAG_BADGE07_GET); - FlagToggle(FLAG_BADGE08_GET); + FlagSet(FLAG_BADGE01_GET); + FlagSet(FLAG_BADGE02_GET); + FlagSet(FLAG_BADGE03_GET); + FlagSet(FLAG_BADGE04_GET); + FlagSet(FLAG_BADGE05_GET); + FlagSet(FLAG_BADGE06_GET); + FlagSet(FLAG_BADGE07_GET); + FlagSet(FLAG_BADGE08_GET); + } } + static void DebugAction_FlagsVars_ToggleFrontierPass(u8 taskId) { // Sound effect @@ -2498,6 +2652,7 @@ static void DebugAction_FlagsVars_ToggleFrontierPass(u8 taskId) PlaySE(SE_PC_LOGIN); FlagToggle(FLAG_SYS_FRONTIER_PASS); } + static void DebugAction_FlagsVars_CollisionOnOff(u8 taskId) { #if OW_FLAG_NO_COLLISION == 0 @@ -2510,6 +2665,7 @@ static void DebugAction_FlagsVars_CollisionOnOff(u8 taskId) FlagToggle(OW_FLAG_NO_COLLISION); #endif } + static void DebugAction_FlagsVars_EncounterOnOff(u8 taskId) { #if OW_FLAG_NO_ENCOUNTER == 0 @@ -2522,6 +2678,7 @@ static void DebugAction_FlagsVars_EncounterOnOff(u8 taskId) FlagToggle(OW_FLAG_NO_ENCOUNTER); #endif } + static void DebugAction_FlagsVars_TrainerSeeOnOff(u8 taskId) { #if OW_FLAG_NO_TRAINER_SEE == 0 @@ -2534,6 +2691,7 @@ static void DebugAction_FlagsVars_TrainerSeeOnOff(u8 taskId) FlagToggle(OW_FLAG_NO_TRAINER_SEE); #endif } + static void DebugAction_FlagsVars_BagUseOnOff(u8 taskId) { #if B_FLAG_NO_BAG_USE == 0 @@ -2546,6 +2704,7 @@ static void DebugAction_FlagsVars_BagUseOnOff(u8 taskId) FlagToggle(B_FLAG_NO_BAG_USE); #endif } + static void DebugAction_FlagsVars_CatchingOnOff(u8 taskId) { #if B_FLAG_NO_CATCHING == 0 @@ -2562,37 +2721,41 @@ static void DebugAction_FlagsVars_CatchingOnOff(u8 taskId) // ******************************* // Actions Give #define ITEM_TAG 0xFDF3 +#define tItemId data[5] +#define tSpriteId data[6] + static void DebugAction_Give_Item(u8 taskId) { u8 windowId; - ClearStdWindowAndFrame(gTasks[taskId].data[1], TRUE); - RemoveWindow(gTasks[taskId].data[1]); + ClearStdWindowAndFrame(gTasks[taskId].tWindowId, TRUE); + RemoveWindow(gTasks[taskId].tWindowId); HideMapNamePopUpWindow(); LoadMessageBoxAndBorderGfx(); windowId = AddWindow(&sDebugMenuWindowTemplateExtra); DrawStdWindowFrame(windowId, FALSE); - CopyWindowToVram(windowId, 3); + CopyWindowToVram(windowId, COPYWIN_FULL); - //Display initial ID + // Display initial item StringCopy(gStringVar2, gText_DigitIndicator[0]); ConvertIntToDecimalStringN(gStringVar3, 1, STR_CONV_MODE_LEADING_ZEROS, DEBUG_NUMBER_DIGITS_ITEMS); CopyItemName(1, gStringVar1); StringCopyPadded(gStringVar1, gStringVar1, CHAR_SPACE, 15); StringExpandPlaceholders(gStringVar4, sDebugText_ItemID); - AddTextPrinterParameterized(windowId, 1, gStringVar4, 1, 1, 0, NULL); + AddTextPrinterParameterized(windowId, DEBUG_MENU_FONT, gStringVar4, 1, 1, 0, NULL); gTasks[taskId].func = DebugAction_Give_Item_SelectId; - gTasks[taskId].data[2] = windowId; - gTasks[taskId].data[3] = 1; //Current ID - gTasks[taskId].data[4] = 0; //Digit Selected - gTasks[taskId].data[6] = AddItemIconSprite(ITEM_TAG, ITEM_TAG, gTasks[taskId].data[3]); - gSprites[gTasks[taskId].data[6]].x2 = DEBUG_NUMBER_ICON_X+10; - gSprites[gTasks[taskId].data[6]].y2 = DEBUG_NUMBER_ICON_Y+10; - gSprites[gTasks[taskId].data[6]].oam.priority = 0; + gTasks[taskId].tSubWindowId = windowId; + gTasks[taskId].tInput = 1; + gTasks[taskId].tDigit = 0; + gTasks[taskId].tSpriteId = AddItemIconSprite(ITEM_TAG, ITEM_TAG, gTasks[taskId].tInput); + gSprites[gTasks[taskId].tSpriteId].x2 = DEBUG_NUMBER_ICON_X+10; + gSprites[gTasks[taskId].tSpriteId].y2 = DEBUG_NUMBER_ICON_Y+10; + gSprites[gTasks[taskId].tSpriteId].oam.priority = 0; } + static void DebugAction_Give_Item_SelectId(u8 taskId) { if (JOY_NEW(DPAD_ANY)) @@ -2601,72 +2764,73 @@ static void DebugAction_Give_Item_SelectId(u8 taskId) if (JOY_NEW(DPAD_UP)) { - gTasks[taskId].data[3] += sPowersOfTen[gTasks[taskId].data[4]]; - if (gTasks[taskId].data[3] >= ITEMS_COUNT) - gTasks[taskId].data[3] = ITEMS_COUNT - 1; + gTasks[taskId].tInput += sPowersOfTen[gTasks[taskId].tDigit]; + if (gTasks[taskId].tInput >= ITEMS_COUNT) + gTasks[taskId].tInput = ITEMS_COUNT - 1; } if (JOY_NEW(DPAD_DOWN)) { - gTasks[taskId].data[3] -= sPowersOfTen[gTasks[taskId].data[4]]; - if (gTasks[taskId].data[3] < 1) - gTasks[taskId].data[3] = 1; + gTasks[taskId].tInput -= sPowersOfTen[gTasks[taskId].tDigit]; + if (gTasks[taskId].tInput < 1) + gTasks[taskId].tInput = 1; } if (JOY_NEW(DPAD_LEFT)) { - if (gTasks[taskId].data[4] > 0) - gTasks[taskId].data[4] -= 1; + if (gTasks[taskId].tDigit > 0) + gTasks[taskId].tDigit -= 1; } if (JOY_NEW(DPAD_RIGHT)) { - if (gTasks[taskId].data[4] < DEBUG_NUMBER_DIGITS_ITEMS - 1) - gTasks[taskId].data[4] += 1; + if (gTasks[taskId].tDigit < DEBUG_NUMBER_DIGITS_ITEMS - 1) + gTasks[taskId].tDigit += 1; } - StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].data[4]]); - CopyItemName(gTasks[taskId].data[3], gStringVar1); + StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].tDigit]); + CopyItemName(gTasks[taskId].tInput, gStringVar1); StringCopyPadded(gStringVar1, gStringVar1, CHAR_SPACE, 15); - ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].data[3], STR_CONV_MODE_LEADING_ZEROS, DEBUG_NUMBER_DIGITS_ITEMS); + ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, DEBUG_NUMBER_DIGITS_ITEMS); StringExpandPlaceholders(gStringVar4, sDebugText_ItemID); - AddTextPrinterParameterized(gTasks[taskId].data[2], 1, gStringVar4, 1, 1, 0, NULL); - - FreeSpriteTilesByTag(ITEM_TAG); //Destroy item icon - FreeSpritePaletteByTag(ITEM_TAG); //Destroy item icon - FreeSpriteOamMatrix(&gSprites[gTasks[taskId].data[6]]); //Destroy item icon - DestroySprite(&gSprites[gTasks[taskId].data[6]]); //Destroy item icon - gTasks[taskId].data[6] = AddItemIconSprite(ITEM_TAG, ITEM_TAG, gTasks[taskId].data[3]); - gSprites[gTasks[taskId].data[6]].x2 = DEBUG_NUMBER_ICON_X+10; - gSprites[gTasks[taskId].data[6]].y2 = DEBUG_NUMBER_ICON_Y+10; - gSprites[gTasks[taskId].data[6]].oam.priority = 0; + AddTextPrinterParameterized(gTasks[taskId].tSubWindowId, DEBUG_MENU_FONT, gStringVar4, 1, 1, 0, NULL); + + FreeSpriteTilesByTag(ITEM_TAG); //Destroy item icon + FreeSpritePaletteByTag(ITEM_TAG); //Destroy item icon + FreeSpriteOamMatrix(&gSprites[gTasks[taskId].tSpriteId]); //Destroy item icon + DestroySprite(&gSprites[gTasks[taskId].tSpriteId]); //Destroy item icon + gTasks[taskId].tSpriteId = AddItemIconSprite(ITEM_TAG, ITEM_TAG, gTasks[taskId].tInput); + gSprites[gTasks[taskId].tSpriteId].x2 = DEBUG_NUMBER_ICON_X+10; + gSprites[gTasks[taskId].tSpriteId].y2 = DEBUG_NUMBER_ICON_Y+10; + gSprites[gTasks[taskId].tSpriteId].oam.priority = 0; } if (JOY_NEW(A_BUTTON)) { - gTasks[taskId].data[5] = gTasks[taskId].data[3]; - gTasks[taskId].data[3] = 1; - gTasks[taskId].data[4] = 0; + gTasks[taskId].tItemId = gTasks[taskId].tInput; + gTasks[taskId].tInput = 1; + gTasks[taskId].tDigit = 0; - StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].data[4]]); - ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].data[3], STR_CONV_MODE_LEADING_ZEROS, DEBUG_NUMBER_DIGITS_ITEM_QUANTITY); + StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].tDigit]); + ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, DEBUG_NUMBER_DIGITS_ITEM_QUANTITY); StringCopyPadded(gStringVar1, gStringVar1, CHAR_SPACE, 15); StringExpandPlaceholders(gStringVar4, sDebugText_ItemQuantity); - AddTextPrinterParameterized(gTasks[taskId].data[2], 1, gStringVar4, 1, 1, 0, NULL); + AddTextPrinterParameterized(gTasks[taskId].tSubWindowId, DEBUG_MENU_FONT, gStringVar4, 1, 1, 0, NULL); gTasks[taskId].func = DebugAction_Give_Item_SelectQuantity; } else if (JOY_NEW(B_BUTTON)) { - FreeSpriteTilesByTag(ITEM_TAG); //Destroy item icon - FreeSpritePaletteByTag(ITEM_TAG); //Destroy item icon - FreeSpriteOamMatrix(&gSprites[gTasks[taskId].data[6]]); //Destroy item icon - DestroySprite(&gSprites[gTasks[taskId].data[6]]); //Destroy item icon + FreeSpriteTilesByTag(ITEM_TAG); //Destroy item icon + FreeSpritePaletteByTag(ITEM_TAG); //Destroy item icon + FreeSpriteOamMatrix(&gSprites[gTasks[taskId].tSpriteId]); //Destroy item icon + DestroySprite(&gSprites[gTasks[taskId].tSpriteId]); //Destroy item icon PlaySE(SE_SELECT); DebugAction_DestroyExtraWindow(taskId); } } + static void DebugAction_Give_Item_SelectQuantity(u8 taskId) { - u32 itemId = gTasks[taskId].data[5]; + u32 itemId = gTasks[taskId].tItemId; if (JOY_NEW(DPAD_ANY)) { @@ -2675,57 +2839,60 @@ static void DebugAction_Give_Item_SelectQuantity(u8 taskId) if (JOY_NEW(DPAD_UP)) { u32 maxCapacity = (ItemId_GetPocket(itemId) - 1 == BERRIES_POCKET) ? MAX_BERRY_CAPACITY : MAX_BAG_ITEM_CAPACITY; - gTasks[taskId].data[3] += sPowersOfTen[gTasks[taskId].data[4]]; - if (gTasks[taskId].data[3] > maxCapacity) - gTasks[taskId].data[3] = maxCapacity; + gTasks[taskId].tInput += sPowersOfTen[gTasks[taskId].tDigit]; + if (gTasks[taskId].tInput > maxCapacity) + gTasks[taskId].tInput = maxCapacity; } if (JOY_NEW(DPAD_DOWN)) { - gTasks[taskId].data[3] -= sPowersOfTen[gTasks[taskId].data[4]]; - if (gTasks[taskId].data[3] < 1) - gTasks[taskId].data[3] = 1; + gTasks[taskId].tInput -= sPowersOfTen[gTasks[taskId].tDigit]; + if (gTasks[taskId].tInput < 1) + gTasks[taskId].tInput = 1; } if (JOY_NEW(DPAD_LEFT)) { - if (gTasks[taskId].data[4] > 0) - gTasks[taskId].data[4] -= 1; + if (gTasks[taskId].tDigit > 0) + gTasks[taskId].tDigit -= 1; } if (JOY_NEW(DPAD_RIGHT)) { - if (gTasks[taskId].data[4] < 2) - gTasks[taskId].data[4] += 1; + if (gTasks[taskId].tDigit < 2) + gTasks[taskId].tDigit += 1; } - StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].data[4]]); - ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].data[3], STR_CONV_MODE_LEADING_ZEROS, DEBUG_NUMBER_DIGITS_ITEM_QUANTITY); + StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].tDigit]); + ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, DEBUG_NUMBER_DIGITS_ITEM_QUANTITY); StringCopyPadded(gStringVar1, gStringVar1, CHAR_SPACE, 15); StringExpandPlaceholders(gStringVar4, sDebugText_ItemQuantity); - AddTextPrinterParameterized(gTasks[taskId].data[2], 1, gStringVar4, 1, 1, 0, NULL); + AddTextPrinterParameterized(gTasks[taskId].tSubWindowId, DEBUG_MENU_FONT, gStringVar4, 1, 1, 0, NULL); } if (JOY_NEW(A_BUTTON)) { - FreeSpriteTilesByTag(ITEM_TAG); //Destroy item icon - FreeSpritePaletteByTag(ITEM_TAG); //Destroy item icon - FreeSpriteOamMatrix(&gSprites[gTasks[taskId].data[6]]); //Destroy item icon - DestroySprite(&gSprites[gTasks[taskId].data[6]]); //Destroy item icon + FreeSpriteTilesByTag(ITEM_TAG); //Destroy item icon + FreeSpritePaletteByTag(ITEM_TAG); //Destroy item icon + FreeSpriteOamMatrix(&gSprites[gTasks[taskId].tSpriteId]); //Destroy item icon + DestroySprite(&gSprites[gTasks[taskId].tSpriteId]); //Destroy item icon PlaySE(MUS_OBTAIN_ITEM); - AddBagItem(itemId, gTasks[taskId].data[3]); + AddBagItem(itemId, gTasks[taskId].tInput); DebugAction_DestroyExtraWindow(taskId); } else if (JOY_NEW(B_BUTTON)) { - FreeSpriteTilesByTag(ITEM_TAG); //Destroy item icon - FreeSpritePaletteByTag(ITEM_TAG); //Destroy item icon - FreeSpriteOamMatrix(&gSprites[gTasks[taskId].data[6]]); //Destroy item icon - DestroySprite(&gSprites[gTasks[taskId].data[6]]); //Destroy item icon + FreeSpriteTilesByTag(ITEM_TAG); //Destroy item icon + FreeSpritePaletteByTag(ITEM_TAG); //Destroy item icon + FreeSpriteOamMatrix(&gSprites[gTasks[taskId].tSpriteId]); //Destroy item icon + DestroySprite(&gSprites[gTasks[taskId].tSpriteId]); //Destroy item icon PlaySE(SE_SELECT); DebugAction_DestroyExtraWindow(taskId); } } +#undef tItemId +#undef tSpriteId + //TMs static void DebugAction_Give_AllTMs(u8 taskId) { @@ -2736,6 +2903,7 @@ static void DebugAction_Give_AllTMs(u8 taskId) if (ItemIdToBattleMoveId(i) != MOVE_NONE && !CheckBagHasItem(i, 1)) AddBagItem(i, 1); } + Debug_DestroyMenu_Full(taskId); ScriptContext_Enable(); } @@ -2743,11 +2911,11 @@ static void DebugAction_Give_AllTMs(u8 taskId) //Pokemon static void ResetMonDataStruct(struct DebugMonData *sDebugMonData) { - sDebugMonData->mon_speciesId = 1; - sDebugMonData->mon_level = 1; + sDebugMonData->species = 1; + sDebugMonData->level = MIN_LEVEL; sDebugMonData->isShiny = 0; - sDebugMonData->mon_natureId = 0; - sDebugMonData->mon_abilityNum = 0; + sDebugMonData->nature = 0; + sDebugMonData->abilityNum = 0; sDebugMonData->mon_iv_hp = 0; sDebugMonData->mon_iv_atk = 0; sDebugMonData->mon_iv_def = 0; @@ -2755,6 +2923,11 @@ static void ResetMonDataStruct(struct DebugMonData *sDebugMonData) sDebugMonData->mon_iv_satk = 0; sDebugMonData->mon_iv_sdef = 0; } + +#define tIsComplex data[5] +#define tSpriteId data[6] +#define tIterator data[7] + static void DebugAction_Give_PokemonSimple(u8 taskId) { u8 windowId; @@ -2764,35 +2937,37 @@ static void DebugAction_Give_PokemonSimple(u8 taskId) ResetMonDataStruct(sDebugMonData); //Window initialization - ClearStdWindowAndFrame(gTasks[taskId].data[1], TRUE); - RemoveWindow(gTasks[taskId].data[1]); + ClearStdWindowAndFrame(gTasks[taskId].tWindowId, TRUE); + RemoveWindow(gTasks[taskId].tWindowId); HideMapNamePopUpWindow(); LoadMessageBoxAndBorderGfx(); windowId = AddWindow(&sDebugMenuWindowTemplateExtra); DrawStdWindowFrame(windowId, FALSE); - CopyWindowToVram(windowId, 3); + CopyWindowToVram(windowId, COPYWIN_FULL); - //Display initial ID + // Display initial Pokémon StringCopy(gStringVar2, gText_DigitIndicator[0]); - ConvertIntToDecimalStringN(gStringVar3, 1, STR_CONV_MODE_LEADING_ZEROS, 3); - StringCopy(gStringVar1, GetSpeciesName(1)); + ConvertIntToDecimalStringN(gStringVar3, sDebugMonData->species, STR_CONV_MODE_LEADING_ZEROS, 3); + StringCopy(gStringVar1, GetSpeciesName(sDebugMonData->species)); StringCopyPadded(gStringVar1, gStringVar1, CHAR_SPACE, 15); StringExpandPlaceholders(gStringVar4, sDebugText_PokemonID); - AddTextPrinterParameterized(windowId, 1, gStringVar4, 1, 1, 0, NULL); + AddTextPrinterParameterized(windowId, DEBUG_MENU_FONT, gStringVar4, 1, 1, 0, NULL); //Set task data gTasks[taskId].func = DebugAction_Give_Pokemon_SelectId; - gTasks[taskId].data[2] = windowId; - gTasks[taskId].data[3] = 1; //Current ID - gTasks[taskId].data[4] = 0; //Digit Selected - gTasks[taskId].data[5] = 0; //Complex? - FreeMonIconPalettes(); //Free space for new pallete - LoadMonIconPalette(gTasks[taskId].data[3]); //Loads pallete for current mon - gTasks[taskId].data[6] = CreateMonIcon(gTasks[taskId].data[3], SpriteCB_MonIcon, DEBUG_NUMBER_ICON_X, DEBUG_NUMBER_ICON_Y, 4, 0); //Create pokemon sprite - gSprites[gTasks[taskId].data[6]].oam.priority = 0; //Mon Icon ID + gTasks[taskId].tSubWindowId = windowId; + gTasks[taskId].tInput = sDebugMonData->species; + gTasks[taskId].tDigit = 0; + gTasks[taskId].tIsComplex = FALSE; + + FreeMonIconPalettes(); + LoadMonIconPalette(gTasks[taskId].tInput); + gTasks[taskId].tSpriteId = CreateMonIcon(gTasks[taskId].tInput, SpriteCB_MonIcon, DEBUG_NUMBER_ICON_X, DEBUG_NUMBER_ICON_Y, 4, 0); + gSprites[gTasks[taskId].tSpriteId].oam.priority = 0; } + static void DebugAction_Give_PokemonComplex(u8 taskId) { u8 windowId; @@ -2802,34 +2977,35 @@ static void DebugAction_Give_PokemonComplex(u8 taskId) ResetMonDataStruct(sDebugMonData); //Window initialization - ClearStdWindowAndFrame(gTasks[taskId].data[1], TRUE); - RemoveWindow(gTasks[taskId].data[1]); + ClearStdWindowAndFrame(gTasks[taskId].tWindowId, TRUE); + RemoveWindow(gTasks[taskId].tWindowId); HideMapNamePopUpWindow(); LoadMessageBoxAndBorderGfx(); windowId = AddWindow(&sDebugMenuWindowTemplateExtra); DrawStdWindowFrame(windowId, FALSE); - CopyWindowToVram(windowId, 3); + CopyWindowToVram(windowId, COPYWIN_FULL); - //Display initial ID + // Display initial Pokémon StringCopy(gStringVar2, gText_DigitIndicator[0]); - ConvertIntToDecimalStringN(gStringVar3, 1, STR_CONV_MODE_LEADING_ZEROS, 4); - StringCopy(gStringVar1, GetSpeciesName(1)); + ConvertIntToDecimalStringN(gStringVar3, sDebugMonData->species, STR_CONV_MODE_LEADING_ZEROS, 4); + StringCopy(gStringVar1, GetSpeciesName(sDebugMonData->species)); StringCopyPadded(gStringVar1, gStringVar1, CHAR_SPACE, 15); StringExpandPlaceholders(gStringVar4, sDebugText_PokemonID); - AddTextPrinterParameterized(windowId, 1, gStringVar4, 1, 1, 0, NULL); + AddTextPrinterParameterized(windowId, DEBUG_MENU_FONT, gStringVar4, 1, 1, 0, NULL); gTasks[taskId].func = DebugAction_Give_Pokemon_SelectId; - gTasks[taskId].data[2] = windowId; - gTasks[taskId].data[3] = 1; //Current ID - gTasks[taskId].data[4] = 0; //Digit Selected - gTasks[taskId].data[5] = 1; //Complex? - FreeMonIconPalettes(); //Free space for new palletes - LoadMonIconPalette(gTasks[taskId].data[3]); //Loads pallete for current mon - gTasks[taskId].data[6] = CreateMonIcon(gTasks[taskId].data[3], SpriteCB_MonIcon, DEBUG_NUMBER_ICON_X, DEBUG_NUMBER_ICON_Y, 4, 0); //Create pokemon sprite - gSprites[gTasks[taskId].data[6]].oam.priority = 0; //Mon Icon ID - gTasks[taskId].data[7] = 0; //iterator + gTasks[taskId].tSubWindowId = windowId; + gTasks[taskId].tInput = 1; + gTasks[taskId].tDigit = 0; + gTasks[taskId].tIsComplex = TRUE; + + FreeMonIconPalettes(); + LoadMonIconPalette(gTasks[taskId].tInput); + gTasks[taskId].tSpriteId = CreateMonIcon(gTasks[taskId].tInput, SpriteCB_MonIcon, DEBUG_NUMBER_ICON_X, DEBUG_NUMBER_ICON_Y, 4, 0); + gSprites[gTasks[taskId].tSpriteId].oam.priority = 0; + gTasks[taskId].tIterator = 0; } static void DebugAction_Give_Pokemon_SelectId(u8 taskId) @@ -2840,64 +3016,65 @@ static void DebugAction_Give_Pokemon_SelectId(u8 taskId) if (JOY_NEW(DPAD_UP)) { - gTasks[taskId].data[3] += sPowersOfTen[gTasks[taskId].data[4]]; - if (gTasks[taskId].data[3] >= NUM_SPECIES) - gTasks[taskId].data[3] = NUM_SPECIES - 1; + gTasks[taskId].tInput += sPowersOfTen[gTasks[taskId].tDigit]; + if (gTasks[taskId].tInput >= NUM_SPECIES) + gTasks[taskId].tInput = NUM_SPECIES - 1; } if (JOY_NEW(DPAD_DOWN)) { - gTasks[taskId].data[3] -= sPowersOfTen[gTasks[taskId].data[4]]; - if (gTasks[taskId].data[3] < 1) - gTasks[taskId].data[3] = 1; + gTasks[taskId].tInput -= sPowersOfTen[gTasks[taskId].tDigit]; + if (gTasks[taskId].tInput < 1) + gTasks[taskId].tInput = 1; } if (JOY_NEW(DPAD_LEFT)) { - if (gTasks[taskId].data[4] > 0) - gTasks[taskId].data[4] -= 1; + if (gTasks[taskId].tDigit > 0) + gTasks[taskId].tDigit -= 1; } if (JOY_NEW(DPAD_RIGHT)) { - if (gTasks[taskId].data[4] < DEBUG_NUMBER_DIGITS_ITEMS - 1) - gTasks[taskId].data[4] += 1; + if (gTasks[taskId].tDigit < DEBUG_NUMBER_DIGITS_ITEMS - 1) + gTasks[taskId].tDigit += 1; } - StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].data[4]]); - StringCopy(gStringVar1, GetSpeciesName(gTasks[taskId].data[3])); //CopyItemName(gTasks[taskId].data[3], gStringVar1); + StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].tDigit]); + StringCopy(gStringVar1, GetSpeciesName(gTasks[taskId].tInput)); //CopyItemName(gTasks[taskId].tInput, gStringVar1); StringCopyPadded(gStringVar1, gStringVar1, CHAR_SPACE, 15); - ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].data[3], STR_CONV_MODE_LEADING_ZEROS, 4); + ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, 4); StringExpandPlaceholders(gStringVar4, sDebugText_PokemonID); - AddTextPrinterParameterized(gTasks[taskId].data[2], 1, gStringVar4, 1, 1, 0, NULL); + AddTextPrinterParameterized(gTasks[taskId].tSubWindowId, DEBUG_MENU_FONT, gStringVar4, 1, 1, 0, NULL); - FreeAndDestroyMonIconSprite(&gSprites[gTasks[taskId].data[6]]); - FreeMonIconPalettes(); //Free space for new pallete - LoadMonIconPalette(gTasks[taskId].data[3]); //Loads pallete for current mon - gTasks[taskId].data[6] = CreateMonIcon(gTasks[taskId].data[3], SpriteCB_MonIcon, DEBUG_NUMBER_ICON_X, DEBUG_NUMBER_ICON_Y, 4, 0); //Create pokemon sprite - gSprites[gTasks[taskId].data[6]].oam.priority = 0; + FreeAndDestroyMonIconSprite(&gSprites[gTasks[taskId].tSpriteId]); + FreeMonIconPalettes(); + LoadMonIconPalette(gTasks[taskId].tInput); + gTasks[taskId].tSpriteId = CreateMonIcon(gTasks[taskId].tInput, SpriteCB_MonIcon, DEBUG_NUMBER_ICON_X, DEBUG_NUMBER_ICON_Y, 4, 0); + gSprites[gTasks[taskId].tSpriteId].oam.priority = 0; } if (JOY_NEW(A_BUTTON)) { - sDebugMonData->mon_speciesId = gTasks[taskId].data[3]; //Species ID - gTasks[taskId].data[3] = 1; - gTasks[taskId].data[4] = 0; + sDebugMonData->species = gTasks[taskId].tInput; + gTasks[taskId].tInput = 1; + gTasks[taskId].tDigit = 0; - StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].data[4]]); - ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].data[3], STR_CONV_MODE_LEADING_ZEROS, 3); + StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].tDigit]); + ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, 3); StringCopyPadded(gStringVar1, gStringVar1, CHAR_SPACE, 15); StringExpandPlaceholders(gStringVar4, sDebugText_PokemonLevel); - AddTextPrinterParameterized(gTasks[taskId].data[2], 1, gStringVar4, 1, 1, 0, NULL); + AddTextPrinterParameterized(gTasks[taskId].tSubWindowId, DEBUG_MENU_FONT, gStringVar4, 1, 1, 0, NULL); gTasks[taskId].func = DebugAction_Give_Pokemon_SelectLevel; } else if (JOY_NEW(B_BUTTON)) { PlaySE(SE_SELECT); - Free(sDebugMonData); //Frees EWRAM of MonData Struct + Free(sDebugMonData); FreeMonIconPalettes(); - FreeAndDestroyMonIconSprite(&gSprites[gTasks[taskId].data[6]]); //Destroy pokemon sprite + FreeAndDestroyMonIconSprite(&gSprites[gTasks[taskId].tSpriteId]); DebugAction_DestroyExtraWindow(taskId); } } + static void DebugAction_Give_Pokemon_SelectLevel(u8 taskId) { if (JOY_NEW(DPAD_ANY)) @@ -2906,58 +3083,58 @@ static void DebugAction_Give_Pokemon_SelectLevel(u8 taskId) if (JOY_NEW(DPAD_UP)) { - gTasks[taskId].data[3] += sPowersOfTen[gTasks[taskId].data[4]]; - if (gTasks[taskId].data[3] > 100) - gTasks[taskId].data[3] = 100; + gTasks[taskId].tInput += sPowersOfTen[gTasks[taskId].tDigit]; + if (gTasks[taskId].tInput > 100) + gTasks[taskId].tInput = 100; } if (JOY_NEW(DPAD_DOWN)) { - gTasks[taskId].data[3] -= sPowersOfTen[gTasks[taskId].data[4]]; - if (gTasks[taskId].data[3] < 1) - gTasks[taskId].data[3] = 1; + gTasks[taskId].tInput -= sPowersOfTen[gTasks[taskId].tDigit]; + if (gTasks[taskId].tInput < 1) + gTasks[taskId].tInput = 1; } if (JOY_NEW(DPAD_LEFT)) { - if (gTasks[taskId].data[4] > 0) - gTasks[taskId].data[4] -= 1; + if (gTasks[taskId].tDigit > 0) + gTasks[taskId].tDigit -= 1; } if (JOY_NEW(DPAD_RIGHT)) { - if (gTasks[taskId].data[4] < 2) - gTasks[taskId].data[4] += 1; + if (gTasks[taskId].tDigit < 2) + gTasks[taskId].tDigit += 1; } - StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].data[4]]); - ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].data[3], STR_CONV_MODE_LEADING_ZEROS, 3); + StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].tDigit]); + ConvertIntToDecimalStringN(gStringVar1, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, 3); StringCopyPadded(gStringVar1, gStringVar1, CHAR_SPACE, 15); StringExpandPlaceholders(gStringVar4, sDebugText_PokemonLevel); - AddTextPrinterParameterized(gTasks[taskId].data[2], 1, gStringVar4, 1, 1, 0, NULL); + AddTextPrinterParameterized(gTasks[taskId].tSubWindowId, DEBUG_MENU_FONT, gStringVar4, 1, 1, 0, NULL); } if (JOY_NEW(A_BUTTON)) { FreeMonIconPalettes(); - FreeAndDestroyMonIconSprite(&gSprites[gTasks[taskId].data[6]]); //Destroy pokemon sprite - if (gTasks[taskId].data[5] == 0) + FreeAndDestroyMonIconSprite(&gSprites[gTasks[taskId].tSpriteId]); + if (gTasks[taskId].tIsComplex == FALSE) { PlaySE(MUS_LEVEL_UP); - ScriptGiveMon(sDebugMonData->mon_speciesId, gTasks[taskId].data[3], ITEM_NONE, 0,0,0); + ScriptGiveMon(sDebugMonData->species, gTasks[taskId].tInput, ITEM_NONE, 0, 0, 0); // Set flag for user convenience FlagSet(FLAG_SYS_POKEMON_GET); - Free(sDebugMonData); //Frees EWRAM of MonData Struct + Free(sDebugMonData); DebugAction_DestroyExtraWindow(taskId); } else { - sDebugMonData->mon_level = gTasks[taskId].data[3]; //Level - gTasks[taskId].data[3] = 0; - gTasks[taskId].data[4] = 0; + sDebugMonData->level = gTasks[taskId].tInput; + gTasks[taskId].tInput = 0; + gTasks[taskId].tDigit = 0; - ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].data[3], STR_CONV_MODE_LEADING_ZEROS, 0); + ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, 0); StringCopyPadded(gStringVar3, gStringVar3, CHAR_SPACE, 15); StringCopyPadded(gStringVar2, sDebugText_False, CHAR_SPACE, 15); StringExpandPlaceholders(gStringVar4, sDebugText_PokemonShiny); - AddTextPrinterParameterized(gTasks[taskId].data[2], 1, gStringVar4, 1, 1, 0, NULL); + AddTextPrinterParameterized(gTasks[taskId].tSubWindowId, DEBUG_MENU_FONT, gStringVar4, 1, 1, 0, NULL); gTasks[taskId].func = DebugAction_Give_Pokemon_SelectShiny; } @@ -2965,13 +3142,13 @@ static void DebugAction_Give_Pokemon_SelectLevel(u8 taskId) else if (JOY_NEW(B_BUTTON)) { PlaySE(SE_SELECT); - Free(sDebugMonData); //Frees EWRAM of MonData Struct + Free(sDebugMonData); FreeMonIconPalettes(); - FreeAndDestroyMonIconSprite(&gSprites[gTasks[taskId].data[6]]); //Destroy pokemon sprite + FreeAndDestroyMonIconSprite(&gSprites[gTasks[taskId].tSpriteId]); DebugAction_DestroyExtraWindow(taskId); } } -//If complex + static void DebugAction_Give_Pokemon_SelectShiny(u8 taskId) { if (JOY_NEW(DPAD_ANY)) @@ -2980,49 +3157,50 @@ static void DebugAction_Give_Pokemon_SelectShiny(u8 taskId) if (JOY_NEW(DPAD_UP)) { - gTasks[taskId].data[3] += sPowersOfTen[gTasks[taskId].data[4]]; - if (gTasks[taskId].data[3] > 1) - gTasks[taskId].data[3] = 1; + gTasks[taskId].tInput += sPowersOfTen[gTasks[taskId].tDigit]; + if (gTasks[taskId].tInput > 1) + gTasks[taskId].tInput = 1; } if (JOY_NEW(DPAD_DOWN)) { - gTasks[taskId].data[3] -= sPowersOfTen[gTasks[taskId].data[4]]; - if (gTasks[taskId].data[3] < 0) - gTasks[taskId].data[3] = 0; + gTasks[taskId].tInput -= sPowersOfTen[gTasks[taskId].tDigit]; + if (gTasks[taskId].tInput < 0) + gTasks[taskId].tInput = 0; } - if (gTasks[taskId].data[3] == 1) + if (gTasks[taskId].tInput == 1) StringCopyPadded(gStringVar2, sDebugText_True, CHAR_SPACE, 15); else StringCopyPadded(gStringVar2, sDebugText_False, CHAR_SPACE, 15); - ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].data[3], STR_CONV_MODE_LEADING_ZEROS, 0); + ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, 0); StringCopyPadded(gStringVar3, gStringVar3, CHAR_SPACE, 15); StringExpandPlaceholders(gStringVar4, sDebugText_PokemonShiny); - AddTextPrinterParameterized(gTasks[taskId].data[2], 1, gStringVar4, 1, 1, 0, NULL); + AddTextPrinterParameterized(gTasks[taskId].tSubWindowId, DEBUG_MENU_FONT, gStringVar4, 1, 1, 0, NULL); } if (JOY_NEW(A_BUTTON)) { - sDebugMonData->isShiny = gTasks[taskId].data[3]; //isShiny - gTasks[taskId].data[3] = 0; - gTasks[taskId].data[4] = 0; + sDebugMonData->isShiny = gTasks[taskId].tInput; + gTasks[taskId].tInput = 0; + gTasks[taskId].tDigit = 0; - StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].data[4]]); - ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].data[3], STR_CONV_MODE_LEADING_ZEROS, 2); + StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].tDigit]); + ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, 2); StringCopyPadded(gStringVar3, gStringVar3, CHAR_SPACE, 15); StringCopy(gStringVar1, gNatureNamePointers[0]); StringExpandPlaceholders(gStringVar4, sDebugText_PokemonNature); - AddTextPrinterParameterized(gTasks[taskId].data[2], 1, gStringVar4, 1, 1, 0, NULL); + AddTextPrinterParameterized(gTasks[taskId].tSubWindowId, DEBUG_MENU_FONT, gStringVar4, 1, 1, 0, NULL); gTasks[taskId].func = DebugAction_Give_Pokemon_SelectNature; } else if (JOY_NEW(B_BUTTON)) { PlaySE(SE_SELECT); - Free(sDebugMonData); //Frees EWRAM of MonData Struct + Free(sDebugMonData); DebugAction_DestroyExtraWindow(taskId); } } + static void DebugAction_Give_Pokemon_SelectNature(u8 taskId) { if (JOY_NEW(DPAD_ANY)) @@ -3031,49 +3209,50 @@ static void DebugAction_Give_Pokemon_SelectNature(u8 taskId) if (JOY_NEW(DPAD_UP)) { - gTasks[taskId].data[3] += sPowersOfTen[gTasks[taskId].data[4]]; - if (gTasks[taskId].data[3] > NUM_NATURES-1) - gTasks[taskId].data[3] = NUM_NATURES-1; + gTasks[taskId].tInput += sPowersOfTen[gTasks[taskId].tDigit]; + if (gTasks[taskId].tInput > NUM_NATURES-1) + gTasks[taskId].tInput = NUM_NATURES-1; } if (JOY_NEW(DPAD_DOWN)) { - gTasks[taskId].data[3] -= sPowersOfTen[gTasks[taskId].data[4]]; - if (gTasks[taskId].data[3] < 0) - gTasks[taskId].data[3] = 0; + gTasks[taskId].tInput -= sPowersOfTen[gTasks[taskId].tDigit]; + if (gTasks[taskId].tInput < 0) + gTasks[taskId].tInput = 0; } - StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].data[4]]); - ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].data[3], STR_CONV_MODE_LEADING_ZEROS, 2); + StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].tDigit]); + ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, 2); StringCopyPadded(gStringVar3, gStringVar3, CHAR_SPACE, 15); - StringCopy(gStringVar1, gNatureNamePointers[gTasks[taskId].data[3]]); + StringCopy(gStringVar1, gNatureNamePointers[gTasks[taskId].tInput]); StringExpandPlaceholders(gStringVar4, sDebugText_PokemonNature); - AddTextPrinterParameterized(gTasks[taskId].data[2], 1, gStringVar4, 1, 1, 0, NULL); + AddTextPrinterParameterized(gTasks[taskId].tSubWindowId, DEBUG_MENU_FONT, gStringVar4, 1, 1, 0, NULL); } if (JOY_NEW(A_BUTTON)) { u8 abilityId; - sDebugMonData->mon_natureId = gTasks[taskId].data[3]; //NatureId - gTasks[taskId].data[3] = 0; - gTasks[taskId].data[4] = 0; + sDebugMonData->nature = gTasks[taskId].tInput; + gTasks[taskId].tInput = 0; + gTasks[taskId].tDigit = 0; - StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].data[4]]); - ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].data[3], STR_CONV_MODE_LEADING_ZEROS, 2); + StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].tDigit]); + ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, 2); StringCopyPadded(gStringVar3, gStringVar3, CHAR_SPACE, 15); - abilityId = GetAbilityBySpecies(sDebugMonData->mon_speciesId, 0); + abilityId = GetAbilityBySpecies(sDebugMonData->species, 0); StringCopy(gStringVar1, gAbilityNames[abilityId]); StringExpandPlaceholders(gStringVar4, sDebugText_PokemonAbility); - AddTextPrinterParameterized(gTasks[taskId].data[2], 1, gStringVar4, 1, 1, 0, NULL); + AddTextPrinterParameterized(gTasks[taskId].tSubWindowId, DEBUG_MENU_FONT, gStringVar4, 1, 1, 0, NULL); gTasks[taskId].func = DebugAction_Give_Pokemon_SelectAbility; } else if (JOY_NEW(B_BUTTON)) { PlaySE(SE_SELECT); - Free(sDebugMonData); //Frees EWRAM of MonData Struct + Free(sDebugMonData); DebugAction_DestroyExtraWindow(taskId); } } + static void DebugAction_Give_Pokemon_SelectAbility(u8 taskId) { u16 abilityId; @@ -3086,51 +3265,52 @@ static void DebugAction_Give_Pokemon_SelectAbility(u8 taskId) if (JOY_NEW(DPAD_UP)) { - gTasks[taskId].data[3] += sPowersOfTen[gTasks[taskId].data[4]]; - if (gTasks[taskId].data[3] > abilityCount) - gTasks[taskId].data[3] = abilityCount; + gTasks[taskId].tInput += sPowersOfTen[gTasks[taskId].tDigit]; + if (gTasks[taskId].tInput > abilityCount) + gTasks[taskId].tInput = abilityCount; } if (JOY_NEW(DPAD_DOWN)) { - gTasks[taskId].data[3] -= sPowersOfTen[gTasks[taskId].data[4]]; - if (gTasks[taskId].data[3] < 0) - gTasks[taskId].data[3] = 0; + gTasks[taskId].tInput -= sPowersOfTen[gTasks[taskId].tDigit]; + if (gTasks[taskId].tInput < 0) + gTasks[taskId].tInput = 0; } - while (GetAbilityBySpecies(sDebugMonData->mon_speciesId, gTasks[taskId].data[3] - i) == ABILITY_NONE && gTasks[taskId].data[3] - i < NUM_ABILITY_SLOTS) + while (GetAbilityBySpecies(sDebugMonData->species, gTasks[taskId].tInput - i) == ABILITY_NONE && gTasks[taskId].tInput - i < NUM_ABILITY_SLOTS) { i++; } - abilityId = GetAbilityBySpecies(sDebugMonData->mon_speciesId, gTasks[taskId].data[3] - i); - StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].data[4]]); - ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].data[3], STR_CONV_MODE_LEADING_ZEROS, 2); + abilityId = GetAbilityBySpecies(sDebugMonData->species, gTasks[taskId].tInput - i); + StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].tDigit]); + ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, 2); StringCopyPadded(gStringVar3, gStringVar3, CHAR_SPACE, 15); StringCopy(gStringVar1, gAbilityNames[abilityId]); StringExpandPlaceholders(gStringVar4, sDebugText_PokemonAbility); - AddTextPrinterParameterized(gTasks[taskId].data[2], 1, gStringVar4, 1, 1, 0, NULL); + AddTextPrinterParameterized(gTasks[taskId].tSubWindowId, DEBUG_MENU_FONT, gStringVar4, 1, 1, 0, NULL); } if (JOY_NEW(A_BUTTON)) { - sDebugMonData->mon_abilityNum = gTasks[taskId].data[3] - i; //AbilityNum - gTasks[taskId].data[3] = 0; - gTasks[taskId].data[4] = 0; + sDebugMonData->abilityNum = gTasks[taskId].tInput - i; + gTasks[taskId].tInput = 0; + gTasks[taskId].tDigit = 0; - StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].data[4]]); - ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].data[3], STR_CONV_MODE_LEADING_ZEROS, 2); + StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].tDigit]); + ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, 2); StringCopyPadded(gStringVar3, gStringVar3, CHAR_SPACE, 15); - StringExpandPlaceholders(gStringVar4, sDebugText_PokemonIV_0); - AddTextPrinterParameterized(gTasks[taskId].data[2], 1, gStringVar4, 1, 1, 0, NULL); + StringExpandPlaceholders(gStringVar4, sDebugText_IV_HP); + AddTextPrinterParameterized(gTasks[taskId].tSubWindowId, DEBUG_MENU_FONT, gStringVar4, 1, 1, 0, NULL); gTasks[taskId].func = DebugAction_Give_Pokemon_SelectIVs; } else if (JOY_NEW(B_BUTTON)) { PlaySE(SE_SELECT); - Free(sDebugMonData); //Frees EWRAM of MonData Struct + Free(sDebugMonData); DebugAction_DestroyExtraWindow(taskId); } } + static void DebugAction_Give_Pokemon_SelectIVs(u8 taskId) { if (JOY_NEW(DPAD_ANY)) @@ -3139,126 +3319,126 @@ static void DebugAction_Give_Pokemon_SelectIVs(u8 taskId) if (JOY_NEW(DPAD_UP)) { - gTasks[taskId].data[3] += sPowersOfTen[gTasks[taskId].data[4]]; - if (gTasks[taskId].data[3] > 31) - gTasks[taskId].data[3] = 31; + gTasks[taskId].tInput += sPowersOfTen[gTasks[taskId].tDigit]; + if (gTasks[taskId].tInput > 31) + gTasks[taskId].tInput = 31; } if (JOY_NEW(DPAD_DOWN)) { - gTasks[taskId].data[3] -= sPowersOfTen[gTasks[taskId].data[4]]; - if (gTasks[taskId].data[3] < 0) - gTasks[taskId].data[3] = 0; + gTasks[taskId].tInput -= sPowersOfTen[gTasks[taskId].tDigit]; + if (gTasks[taskId].tInput < 0) + gTasks[taskId].tInput = 0; } if (JOY_NEW(DPAD_LEFT)) { - if (gTasks[taskId].data[4] > 0) - gTasks[taskId].data[4] -= 1; + if (gTasks[taskId].tDigit > 0) + gTasks[taskId].tDigit -= 1; } if (JOY_NEW(DPAD_RIGHT)) { - if (gTasks[taskId].data[4] < 2) - gTasks[taskId].data[4] += 1; + if (gTasks[taskId].tDigit < 2) + gTasks[taskId].tDigit += 1; } - StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].data[4]]); - ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].data[3], STR_CONV_MODE_LEADING_ZEROS, 2); + StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].tDigit]); + ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, 2); StringCopyPadded(gStringVar3, gStringVar3, CHAR_SPACE, 15); - switch (gTasks[taskId].data[7]) + switch (gTasks[taskId].tIterator) { - case 0: - StringExpandPlaceholders(gStringVar4, sDebugText_PokemonIV_0); + case STAT_HP: + StringExpandPlaceholders(gStringVar4, sDebugText_IV_HP); break; - case 1: - StringExpandPlaceholders(gStringVar4, sDebugText_PokemonIV_1); + case STAT_ATK: + StringExpandPlaceholders(gStringVar4, sDebugText_IV_Attack); break; - case 2: - StringExpandPlaceholders(gStringVar4, sDebugText_PokemonIV_2); + case STAT_DEF: + StringExpandPlaceholders(gStringVar4, sDebugText_IV_Defense); break; - case 3: - StringExpandPlaceholders(gStringVar4, sDebugText_PokemonIV_3); + case STAT_SPEED: + StringExpandPlaceholders(gStringVar4, sDebugText_IV_Speed); break; - case 4: - StringExpandPlaceholders(gStringVar4, sDebugText_PokemonIV_4); + case STAT_SPATK: + StringExpandPlaceholders(gStringVar4, sDebugText_IV_SpAttack); break; - case 5: - StringExpandPlaceholders(gStringVar4, sDebugText_PokemonIV_5); + case STAT_SPDEF: + StringExpandPlaceholders(gStringVar4, sDebugText_IV_SpDefense); break; } - AddTextPrinterParameterized(gTasks[taskId].data[2], 1, gStringVar4, 1, 1, 0, NULL); + AddTextPrinterParameterized(gTasks[taskId].tSubWindowId, DEBUG_MENU_FONT, gStringVar4, 1, 1, 0, NULL); } //If A or B button if (JOY_NEW(A_BUTTON)) { - switch (gTasks[taskId].data[7]) + switch (gTasks[taskId].tIterator) { - case 0: - sDebugMonData->mon_iv_hp = gTasks[taskId].data[3]; + case STAT_HP: + sDebugMonData->mon_iv_hp = gTasks[taskId].tInput; break; - case 1: - sDebugMonData->mon_iv_atk = gTasks[taskId].data[3]; + case STAT_ATK: + sDebugMonData->mon_iv_atk = gTasks[taskId].tInput; break; - case 2: - sDebugMonData->mon_iv_def = gTasks[taskId].data[3]; + case STAT_DEF: + sDebugMonData->mon_iv_def = gTasks[taskId].tInput; break; - case 3: - sDebugMonData->mon_iv_speed = gTasks[taskId].data[3]; + case STAT_SPEED: + sDebugMonData->mon_iv_speed = gTasks[taskId].tInput; break; - case 4: - sDebugMonData->mon_iv_satk = gTasks[taskId].data[3]; + case STAT_SPATK: + sDebugMonData->mon_iv_satk = gTasks[taskId].tInput; break; - case 5: - sDebugMonData->mon_iv_sdef = gTasks[taskId].data[3]; + case STAT_SPDEF: + sDebugMonData->mon_iv_sdef = gTasks[taskId].tInput; break; } //Check if all IVs set - if (gTasks[taskId].data[7] != 5) + if (gTasks[taskId].tIterator != NUM_STATS - 1) { - gTasks[taskId].data[7] += 1; - gTasks[taskId].data[3] = 0; - gTasks[taskId].data[4] = 0; + gTasks[taskId].tIterator++; + gTasks[taskId].tInput = 0; + gTasks[taskId].tDigit = 0; - StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].data[4]]); - ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].data[3], STR_CONV_MODE_LEADING_ZEROS, 2); + StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].tDigit]); + ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, 2); StringCopyPadded(gStringVar3, gStringVar3, CHAR_SPACE, 15); - switch (gTasks[taskId].data[7]) + switch (gTasks[taskId].tIterator) { - case 0: - StringExpandPlaceholders(gStringVar4, sDebugText_PokemonIV_0); + case STAT_HP: + StringExpandPlaceholders(gStringVar4, sDebugText_IV_HP); break; - case 1: - StringExpandPlaceholders(gStringVar4, sDebugText_PokemonIV_1); + case STAT_ATK: + StringExpandPlaceholders(gStringVar4, sDebugText_IV_Attack); break; - case 2: - StringExpandPlaceholders(gStringVar4, sDebugText_PokemonIV_2); + case STAT_DEF: + StringExpandPlaceholders(gStringVar4, sDebugText_IV_Defense); break; - case 3: - StringExpandPlaceholders(gStringVar4, sDebugText_PokemonIV_3); + case STAT_SPEED: + StringExpandPlaceholders(gStringVar4, sDebugText_IV_Speed); break; - case 4: - StringExpandPlaceholders(gStringVar4, sDebugText_PokemonIV_4); + case STAT_SPATK: + StringExpandPlaceholders(gStringVar4, sDebugText_IV_SpAttack); break; - case 5: - StringExpandPlaceholders(gStringVar4, sDebugText_PokemonIV_5); + case STAT_SPDEF: + StringExpandPlaceholders(gStringVar4, sDebugText_IV_SpDefense); break; } - AddTextPrinterParameterized(gTasks[taskId].data[2], 1, gStringVar4, 1, 1, 0, NULL); + AddTextPrinterParameterized(gTasks[taskId].tSubWindowId, DEBUG_MENU_FONT, gStringVar4, 1, 1, 0, NULL); gTasks[taskId].func = DebugAction_Give_Pokemon_SelectIVs; } else { - gTasks[taskId].data[3] = 0; - gTasks[taskId].data[4] = 0; - gTasks[taskId].data[7] = 0; //Reset iterator + gTasks[taskId].tInput = 0; + gTasks[taskId].tDigit = 0; + gTasks[taskId].tIterator = 0; - StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].data[4]]); - StringCopy(gStringVar1, gMoveNames[gTasks[taskId].data[3]]); + StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].tDigit]); + StringCopy(gStringVar1, gMoveNames[gTasks[taskId].tInput]); StringCopyPadded(gStringVar1, gStringVar1, CHAR_SPACE, 15); - ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].data[3], STR_CONV_MODE_LEADING_ZEROS, 3); + ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, 3); StringExpandPlaceholders(gStringVar4, sDebugText_PokemonMove_0); - AddTextPrinterParameterized(gTasks[taskId].data[2], 1, gStringVar4, 1, 1, 0, NULL); + AddTextPrinterParameterized(gTasks[taskId].tSubWindowId, DEBUG_MENU_FONT, gStringVar4, 1, 1, 0, NULL); gTasks[taskId].func = DebugAction_Give_Pokemon_Move; } @@ -3266,10 +3446,11 @@ static void DebugAction_Give_Pokemon_SelectIVs(u8 taskId) else if (JOY_NEW(B_BUTTON)) { PlaySE(SE_SELECT); - Free(sDebugMonData); //Frees EWRAM of MonData Struct + Free(sDebugMonData); DebugAction_DestroyExtraWindow(taskId); } } + static void DebugAction_Give_Pokemon_Move(u8 taskId) { if (JOY_NEW(DPAD_ANY)) @@ -3278,32 +3459,32 @@ static void DebugAction_Give_Pokemon_Move(u8 taskId) if (JOY_NEW(DPAD_UP)) { - gTasks[taskId].data[3] += sPowersOfTen[gTasks[taskId].data[4]]; - if (gTasks[taskId].data[3] >= MOVES_COUNT) - gTasks[taskId].data[3] = MOVES_COUNT - 1; + gTasks[taskId].tInput += sPowersOfTen[gTasks[taskId].tDigit]; + if (gTasks[taskId].tInput >= MOVES_COUNT) + gTasks[taskId].tInput = MOVES_COUNT - 1; } if (JOY_NEW(DPAD_DOWN)) { - gTasks[taskId].data[3] -= sPowersOfTen[gTasks[taskId].data[4]]; - if (gTasks[taskId].data[3] < 0) - gTasks[taskId].data[3] = 0; + gTasks[taskId].tInput -= sPowersOfTen[gTasks[taskId].tDigit]; + if (gTasks[taskId].tInput < 0) + gTasks[taskId].tInput = 0; } if (JOY_NEW(DPAD_LEFT)) { - if (gTasks[taskId].data[4] > 0) - gTasks[taskId].data[4] -= 1; + if (gTasks[taskId].tDigit > 0) + gTasks[taskId].tDigit -= 1; } if (JOY_NEW(DPAD_RIGHT)) { - if (gTasks[taskId].data[4] < 3) - gTasks[taskId].data[4] += 1; + if (gTasks[taskId].tDigit < 3) + gTasks[taskId].tDigit += 1; } - StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].data[4]]); - StringCopy(gStringVar1, gMoveNames[gTasks[taskId].data[3]]); + StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].tDigit]); + StringCopy(gStringVar1, gMoveNames[gTasks[taskId].tInput]); StringCopyPadded(gStringVar1, gStringVar1, CHAR_SPACE, 15); - ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].data[3], STR_CONV_MODE_LEADING_ZEROS, 3); - switch (gTasks[taskId].data[7]) + ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, 3); + switch (gTasks[taskId].tIterator) { case 0: StringExpandPlaceholders(gStringVar4, sDebugText_PokemonMove_0); @@ -3318,44 +3499,44 @@ static void DebugAction_Give_Pokemon_Move(u8 taskId) StringExpandPlaceholders(gStringVar4, sDebugText_PokemonMove_3); break; } - AddTextPrinterParameterized(gTasks[taskId].data[2], 1, gStringVar4, 1, 1, 0, NULL); + AddTextPrinterParameterized(gTasks[taskId].tSubWindowId, DEBUG_MENU_FONT, gStringVar4, 1, 1, 0, NULL); } if (JOY_NEW(A_BUTTON)) { - //If MOVE_NONE selected, stop asking for additional moves - if (gTasks[taskId].data[3] == 0) - gTasks[taskId].data[7] = 4; + // If MOVE_NONE selected, stop asking for additional moves + if (gTasks[taskId].tInput == MOVE_NONE) + gTasks[taskId].tIterator = 4; //Set current value - switch (gTasks[taskId].data[7]) + switch (gTasks[taskId].tIterator) { case 0: - sDebugMonData->mon_move_0 = gTasks[taskId].data[3]; + sDebugMonData->mon_move_0 = gTasks[taskId].tInput; break; case 1: - sDebugMonData->mon_move_1 = gTasks[taskId].data[3]; + sDebugMonData->mon_move_1 = gTasks[taskId].tInput; break; case 2: - sDebugMonData->mon_move_2 = gTasks[taskId].data[3]; + sDebugMonData->mon_move_2 = gTasks[taskId].tInput; break; case 3: - sDebugMonData->mon_move_3 = gTasks[taskId].data[3]; + sDebugMonData->mon_move_3 = gTasks[taskId].tInput; break; } //If NOT last move or selected MOVE_NONE ask for next move, else make mon - if (gTasks[taskId].data[7] < 3) + if (gTasks[taskId].tIterator < MAX_MON_MOVES - 1) { - gTasks[taskId].data[7] += 1; - gTasks[taskId].data[3] = 0; - gTasks[taskId].data[4] = 0; + gTasks[taskId].tIterator++; + gTasks[taskId].tInput = 0; + gTasks[taskId].tDigit = 0; - StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].data[4]]); - StringCopy(gStringVar1, gMoveNames[gTasks[taskId].data[3]]); + StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].tDigit]); + StringCopy(gStringVar1, gMoveNames[gTasks[taskId].tInput]); StringCopyPadded(gStringVar1, gStringVar1, CHAR_SPACE, 15); - ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].data[3], STR_CONV_MODE_LEADING_ZEROS, 3); - switch (gTasks[taskId].data[7]) + ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, 3); + switch (gTasks[taskId].tIterator) { case 0: StringExpandPlaceholders(gStringVar4, sDebugText_PokemonMove_0); @@ -3370,14 +3551,14 @@ static void DebugAction_Give_Pokemon_Move(u8 taskId) StringExpandPlaceholders(gStringVar4, sDebugText_PokemonMove_3); break; } - AddTextPrinterParameterized(gTasks[taskId].data[2], 1, gStringVar4, 1, 1, 0, NULL); + AddTextPrinterParameterized(gTasks[taskId].tSubWindowId, DEBUG_MENU_FONT, gStringVar4, 1, 1, 0, NULL); gTasks[taskId].func = DebugAction_Give_Pokemon_Move; } else { - gTasks[taskId].data[3] = 0; - gTasks[taskId].data[4] = 0; + gTasks[taskId].tInput = 0; + gTasks[taskId].tDigit = 0; PlaySE(MUS_LEVEL_UP); gTasks[taskId].func = DebugAction_Give_Pokemon_ComplexCreateMon; @@ -3386,10 +3567,11 @@ static void DebugAction_Give_Pokemon_Move(u8 taskId) else if (JOY_NEW(B_BUTTON)) { PlaySE(SE_SELECT); - Free(sDebugMonData); //Frees EWRAM of MonData Struct + Free(sDebugMonData); DebugAction_DestroyExtraWindow(taskId); } } + static void DebugAction_Give_Pokemon_ComplexCreateMon(u8 taskId) //https://github.com/ghoulslash/pokeemerald/tree/custom-givemon { u16 nationalDexNum; @@ -3399,11 +3581,11 @@ static void DebugAction_Give_Pokemon_ComplexCreateMon(u8 taskId) //https://githu u16 moves[4]; u8 IVs[6]; u8 iv_val; - u16 species = sDebugMonData->mon_speciesId; - u8 level = sDebugMonData->mon_level; + u16 species = sDebugMonData->species; + u8 level = sDebugMonData->level; u8 isShiny = sDebugMonData->isShiny; //Shiny: no 0, yes 1 - u8 nature = sDebugMonData->mon_natureId; - u8 abilityNum = sDebugMonData->mon_abilityNum; + u8 nature = sDebugMonData->nature; + u8 abilityNum = sDebugMonData->abilityNum; moves[0] = sDebugMonData->mon_move_0; moves[1] = sDebugMonData->mon_move_1; moves[2] = sDebugMonData->mon_move_2; @@ -3501,10 +3683,14 @@ static void DebugAction_Give_Pokemon_ComplexCreateMon(u8 taskId) //https://githu // Set flag for user convenience FlagSet(FLAG_SYS_POKEMON_GET); - Free(sDebugMonData); //Frees EWRAM of MonData Struct + Free(sDebugMonData); DebugAction_DestroyExtraWindow(taskId); //return sentToPc; } +#undef tIsComplex +#undef tSpriteId +#undef tIterator + static void DebugAction_Give_MaxMoney(u8 taskId) { SetMoney(&gSaveBlock1Ptr->money, MAX_MONEY); @@ -3512,7 +3698,7 @@ static void DebugAction_Give_MaxMoney(u8 taskId) static void DebugAction_Give_MaxCoins(u8 taskId) { - SetCoins(9999); + SetCoins(MAX_COINS); } static void DebugAction_Give_MaxBattlePoints(u8 taskId) @@ -3567,6 +3753,7 @@ static void DebugAction_Fill_PCBoxes_Fast(u8 taskId) //Credit: Sierraffinity Debug_DestroyMenu_Full(taskId); ScriptContext_Enable(); } + static void DebugAction_Fill_PCBoxes_Slow(u8 taskId) { int boxId, boxPosition; @@ -3597,6 +3784,7 @@ static void DebugAction_Fill_PCBoxes_Slow(u8 taskId) Debug_DestroyMenu_Full_Script(taskId, Debug_BoxFilledMessage); } + static void DebugAction_Fill_PCItemStorage(u8 taskId) { u16 itemId; @@ -3607,6 +3795,7 @@ static void DebugAction_Fill_PCItemStorage(u8 taskId) AddPCItem(itemId, MAX_PC_ITEM_CAPACITY); } } + static void DebugAction_Fill_PocketItems(u8 taskId) { u16 itemId; @@ -3617,6 +3806,7 @@ static void DebugAction_Fill_PocketItems(u8 taskId) AddBagItem(itemId, MAX_BAG_ITEM_CAPACITY); } } + static void DebugAction_Fill_PocketPokeBalls(u8 taskId) { u16 itemId; @@ -3627,6 +3817,7 @@ static void DebugAction_Fill_PocketPokeBalls(u8 taskId) AddBagItem(itemId, MAX_BAG_ITEM_CAPACITY); } } + static void DebugAction_Fill_PocketTMHM(u8 taskId) { u16 itemId; @@ -3637,6 +3828,7 @@ static void DebugAction_Fill_PocketTMHM(u8 taskId) AddBagItem(itemId, 1); } } + static void DebugAction_Fill_PocketBerries(u8 taskId) { u16 itemId; @@ -3647,6 +3839,7 @@ static void DebugAction_Fill_PocketBerries(u8 taskId) AddBagItem(itemId, MAX_BERRY_CAPACITY); } } + static void DebugAction_Fill_PocketKeyItems(u8 taskId) { u16 itemId; @@ -3662,160 +3855,181 @@ static void DebugAction_Fill_PocketKeyItems(u8 taskId) // Actions Sound static const u8 *const sBGMNames[]; static const u8 *const sSENames[]; + +#define tCurrentSong data[5] + static void DebugAction_Sound_SE(u8 taskId) { u8 windowId; - ClearStdWindowAndFrame(gTasks[taskId].data[1], TRUE); - RemoveWindow(gTasks[taskId].data[1]); + ClearStdWindowAndFrame(gTasks[taskId].tWindowId, TRUE); + RemoveWindow(gTasks[taskId].tWindowId); HideMapNamePopUpWindow(); LoadMessageBoxAndBorderGfx(); windowId = AddWindow(&sDebugMenuWindowTemplateSound); DrawStdWindowFrame(windowId, FALSE); - CopyWindowToVram(windowId, 3); + CopyWindowToVram(windowId, COPYWIN_FULL); - //Display initial ID + // Display initial sound effect StringCopy(gStringVar2, gText_DigitIndicator[0]); ConvertIntToDecimalStringN(gStringVar3, 1, STR_CONV_MODE_LEADING_ZEROS, DEBUG_NUMBER_DIGITS_ITEMS); StringCopyPadded(gStringVar1, sSENames[0], CHAR_SPACE, 35); - StringExpandPlaceholders(gStringVar4, sDebugText_Sound_SE_ID); - AddTextPrinterParameterized(windowId, 1, gStringVar4, 1, 1, 0, NULL); + StringExpandPlaceholders(gStringVar4, sDebugText_Sound_SFX_ID); + AddTextPrinterParameterized(windowId, DEBUG_MENU_FONT, gStringVar4, 1, 1, 0, NULL); StopMapMusic(); //Stop map music to better hear sounds gTasks[taskId].func = DebugAction_Sound_SE_SelectId; - gTasks[taskId].data[2] = windowId; - gTasks[taskId].data[3] = 1; //Current ID - gTasks[taskId].data[4] = 0; //Digit Selected - gTasks[taskId].data[5] = gTasks[taskId].data[3]; //Last song played (for stopping) + gTasks[taskId].tSubWindowId = windowId; + gTasks[taskId].tInput = 1; + gTasks[taskId].tDigit = 0; + gTasks[taskId].tCurrentSong = gTasks[taskId].tInput; } + static void DebugAction_Sound_SE_SelectId(u8 taskId) { if (JOY_NEW(DPAD_ANY)) { if (JOY_NEW(DPAD_UP)) { - gTasks[taskId].data[3] += sPowersOfTen[gTasks[taskId].data[4]]; - if (gTasks[taskId].data[3] > END_SE) - gTasks[taskId].data[3] = END_SE; + gTasks[taskId].tInput += sPowersOfTen[gTasks[taskId].tDigit]; + if (gTasks[taskId].tInput > END_SE) + gTasks[taskId].tInput = END_SE; } if (JOY_NEW(DPAD_DOWN)) { - gTasks[taskId].data[3] -= sPowersOfTen[gTasks[taskId].data[4]]; - if (gTasks[taskId].data[3] < 1) - gTasks[taskId].data[3] = 1; + gTasks[taskId].tInput -= sPowersOfTen[gTasks[taskId].tDigit]; + if (gTasks[taskId].tInput < 1) + gTasks[taskId].tInput = 1; } if (JOY_NEW(DPAD_LEFT)) { - if (gTasks[taskId].data[4] > 0) - gTasks[taskId].data[4] -= 1; + if (gTasks[taskId].tDigit > 0) + gTasks[taskId].tDigit -= 1; } if (JOY_NEW(DPAD_RIGHT)) { - if (gTasks[taskId].data[4] < DEBUG_NUMBER_DIGITS_ITEMS - 1) - gTasks[taskId].data[4] += 1; + if (gTasks[taskId].tDigit < DEBUG_NUMBER_DIGITS_ITEMS - 1) + gTasks[taskId].tDigit += 1; } - StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].data[4]]); - StringCopyPadded(gStringVar1, sSENames[gTasks[taskId].data[3]-1], CHAR_SPACE, 35); - ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].data[3], STR_CONV_MODE_LEADING_ZEROS, DEBUG_NUMBER_DIGITS_ITEMS); - StringExpandPlaceholders(gStringVar4, sDebugText_Sound_SE_ID); - AddTextPrinterParameterized(gTasks[taskId].data[2], 1, gStringVar4, 1, 1, 0, NULL); + StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].tDigit]); + StringCopyPadded(gStringVar1, sSENames[gTasks[taskId].tInput-1], CHAR_SPACE, 35); + ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, DEBUG_NUMBER_DIGITS_ITEMS); + StringExpandPlaceholders(gStringVar4, sDebugText_Sound_SFX_ID); + AddTextPrinterParameterized(gTasks[taskId].tSubWindowId, DEBUG_MENU_FONT, gStringVar4, 1, 1, 0, NULL); } if (JOY_NEW(A_BUTTON)) { - m4aSongNumStop(gTasks[taskId].data[5]); - gTasks[taskId].data[5] = gTasks[taskId].data[3]; - m4aSongNumStart(gTasks[taskId].data[3]); + m4aSongNumStop(gTasks[taskId].tCurrentSong); + gTasks[taskId].tCurrentSong = gTasks[taskId].tInput; + m4aSongNumStart(gTasks[taskId].tInput); } else if (JOY_NEW(B_BUTTON)) { PlaySE(SE_SELECT); - m4aSongNumStop(gTasks[taskId].data[5]); + m4aSongNumStop(gTasks[taskId].tCurrentSong); DebugAction_DestroyExtraWindow(taskId); } + else if (JOY_NEW(START_BUTTON)) + { + m4aSongNumStop(gTasks[taskId].tCurrentSong); + } } static void DebugAction_Sound_MUS(u8 taskId) { u8 windowId; - ClearStdWindowAndFrame(gTasks[taskId].data[1], TRUE); - RemoveWindow(gTasks[taskId].data[1]); + ClearStdWindowAndFrame(gTasks[taskId].tWindowId, TRUE); + RemoveWindow(gTasks[taskId].tWindowId); HideMapNamePopUpWindow(); LoadMessageBoxAndBorderGfx(); windowId = AddWindow(&sDebugMenuWindowTemplateSound); DrawStdWindowFrame(windowId, FALSE); - CopyWindowToVram(windowId, 3); + CopyWindowToVram(windowId, COPYWIN_FULL); - //Display initial ID + // Display initial song StringCopy(gStringVar2, gText_DigitIndicator[0]); ConvertIntToDecimalStringN(gStringVar3, START_MUS, STR_CONV_MODE_LEADING_ZEROS, DEBUG_NUMBER_DIGITS_ITEMS); StringCopyPadded(gStringVar1, sBGMNames[0], CHAR_SPACE, 35); - StringExpandPlaceholders(gStringVar4, sDebugText_Sound_MUS_ID); - AddTextPrinterParameterized(windowId, 1, gStringVar4, 1, 1, 0, NULL); + StringExpandPlaceholders(gStringVar4, sDebugText_Sound_Music_ID); + AddTextPrinterParameterized(windowId, DEBUG_MENU_FONT, gStringVar4, 1, 1, 0, NULL); StopMapMusic(); //Stop map music to better hear new music gTasks[taskId].func = DebugAction_Sound_MUS_SelectId; - gTasks[taskId].data[2] = windowId; - gTasks[taskId].data[3] = START_MUS; //Current ID - gTasks[taskId].data[4] = 0; //Digit Selected - gTasks[taskId].data[5] = gTasks[taskId].data[3]; //Last song played (for stopping) + gTasks[taskId].tSubWindowId = windowId; + gTasks[taskId].tInput = START_MUS; + gTasks[taskId].tDigit = 0; + gTasks[taskId].tCurrentSong = gTasks[taskId].tInput; } + static void DebugAction_Sound_MUS_SelectId(u8 taskId) { if (JOY_NEW(DPAD_ANY)) { if (JOY_NEW(DPAD_UP)) { - gTasks[taskId].data[3] += sPowersOfTen[gTasks[taskId].data[4]]; - if (gTasks[taskId].data[3] > END_MUS) - gTasks[taskId].data[3] = END_MUS; + gTasks[taskId].tInput += sPowersOfTen[gTasks[taskId].tDigit]; + if (gTasks[taskId].tInput > END_MUS) + gTasks[taskId].tInput = END_MUS; } if (JOY_NEW(DPAD_DOWN)) { - gTasks[taskId].data[3] -= sPowersOfTen[gTasks[taskId].data[4]]; - if (gTasks[taskId].data[3] < START_MUS) - gTasks[taskId].data[3] = START_MUS; + gTasks[taskId].tInput -= sPowersOfTen[gTasks[taskId].tDigit]; + if (gTasks[taskId].tInput < START_MUS) + gTasks[taskId].tInput = START_MUS; } if (JOY_NEW(DPAD_LEFT)) { - if (gTasks[taskId].data[4] > 0) - gTasks[taskId].data[4] -= 1; + if (gTasks[taskId].tDigit > 0) + gTasks[taskId].tDigit -= 1; } if (JOY_NEW(DPAD_RIGHT)) { - if (gTasks[taskId].data[4] < DEBUG_NUMBER_DIGITS_ITEMS - 1) - gTasks[taskId].data[4] += 1; + if (gTasks[taskId].tDigit < DEBUG_NUMBER_DIGITS_ITEMS - 1) + gTasks[taskId].tDigit += 1; } - StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].data[4]]); - StringCopyPadded(gStringVar1, sBGMNames[gTasks[taskId].data[3]-START_MUS], CHAR_SPACE, 35); - ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].data[3], STR_CONV_MODE_LEADING_ZEROS, DEBUG_NUMBER_DIGITS_ITEMS); - StringExpandPlaceholders(gStringVar4, sDebugText_Sound_MUS_ID); - AddTextPrinterParameterized(gTasks[taskId].data[2], 1, gStringVar4, 1, 1, 0, NULL); + StringCopy(gStringVar2, gText_DigitIndicator[gTasks[taskId].tDigit]); + StringCopyPadded(gStringVar1, sBGMNames[gTasks[taskId].tInput-START_MUS], CHAR_SPACE, 35); + ConvertIntToDecimalStringN(gStringVar3, gTasks[taskId].tInput, STR_CONV_MODE_LEADING_ZEROS, DEBUG_NUMBER_DIGITS_ITEMS); + StringExpandPlaceholders(gStringVar4, sDebugText_Sound_Music_ID); + AddTextPrinterParameterized(gTasks[taskId].tSubWindowId, DEBUG_MENU_FONT, gStringVar4, 1, 1, 0, NULL); } if (JOY_NEW(A_BUTTON)) { - m4aSongNumStop(gTasks[taskId].data[5]); - gTasks[taskId].data[5] = gTasks[taskId].data[3]; - m4aSongNumStart(gTasks[taskId].data[3]); + m4aSongNumStop(gTasks[taskId].tCurrentSong); + gTasks[taskId].tCurrentSong = gTasks[taskId].tInput; + m4aSongNumStart(gTasks[taskId].tInput); } else if (JOY_NEW(B_BUTTON)) { PlaySE(SE_SELECT); - // m4aSongNumStop(gTasks[taskId].data[5]); //Uncomment if music should stop after leaving menu + // m4aSongNumStop(gTasks[taskId].tCurrentSong); //Uncomment if music should stop after leaving menu DebugAction_DestroyExtraWindow(taskId); } + else if (JOY_NEW(START_BUTTON)) + { + m4aSongNumStop(gTasks[taskId].tCurrentSong); + } } +#undef tCurrentSong + +#undef tMenuTaskId +#undef tWindowId +#undef tSubWindowId +#undef tInput +#undef tDigit + #define SOUND_LIST_BGM \ X(MUS_LITTLEROOT_TEST) \ X(MUS_GSC_ROUTE38) \ diff --git a/src/decompress.c b/src/decompress.c index 82d5c6fdb864..4cd1b0ccd0a3 100644 --- a/src/decompress.c +++ b/src/decompress.c @@ -50,6 +50,16 @@ void LoadCompressedSpritePalette(const struct CompressedSpritePalette *src) LoadSpritePalette(&dest); } +void LoadCompressedSpritePaletteWithTag(const u32 *pal, u16 tag) +{ + struct SpritePalette dest; + + LZ77UnCompWram(pal, gDecompressionBuffer); + dest.data = (void *) gDecompressionBuffer; + dest.tag = tag; + LoadSpritePalette(&dest); +} + void LoadCompressedSpritePaletteOverrideBuffer(const struct CompressedSpritePalette *src, void *buffer) { struct SpritePalette dest; @@ -60,22 +70,9 @@ void LoadCompressedSpritePaletteOverrideBuffer(const struct CompressedSpritePale LoadSpritePalette(&dest); } -void DecompressPicFromTable(const struct CompressedSpriteSheet *src, void *buffer, s32 species) +void DecompressPicFromTable(const struct CompressedSpriteSheet *src, void *buffer) { - if (species > NUM_SPECIES) - LZ77UnCompWram(gMonFrontPicTable[SPECIES_NONE].data, buffer); - else - LZ77UnCompWram(src->data, buffer); -} - -void DecompressPicFromTableGender(void* buffer, s32 species, u32 personality) -{ - if (gMonFrontPicTableFemale[species].data != NULL && IsPersonalityFemale(species, personality)) - LZ77UnCompWram(gMonFrontPicTableFemale[species].data, buffer); - else if (gMonFrontPicTable[species].data != NULL) - LZ77UnCompWram(gMonFrontPicTable[species].data, buffer); - else - LZ77UnCompWram(gMonFrontPicTable[SPECIES_NONE].data, buffer); + LZ77UnCompWram(src->data, buffer); } void HandleLoadSpecialPokePic(bool32 isFrontPic, void *dest, s32 species, u32 personality) @@ -85,28 +82,27 @@ void HandleLoadSpecialPokePic(bool32 isFrontPic, void *dest, s32 species, u32 pe void LoadSpecialPokePic(void *dest, s32 species, u32 personality, bool8 isFrontPic) { - if (species > NUM_SPECIES) - species = SPECIES_NONE; - else if (species == SPECIES_UNOWN) + species = SanitizeSpeciesId(species); + if (species == SPECIES_UNOWN) species = GetUnownSpeciesId(personality); if (isFrontPic) { - if (gMonFrontPicTableFemale[species].data != NULL && IsPersonalityFemale(species, personality)) - LZ77UnCompWram(gMonFrontPicTableFemale[species].data, dest); - else if (gMonFrontPicTable[species].data != NULL) - LZ77UnCompWram(gMonFrontPicTable[species].data, dest); + if (gSpeciesInfo[species].frontPicFemale != NULL && IsPersonalityFemale(species, personality)) + LZ77UnCompWram(gSpeciesInfo[species].frontPicFemale, dest); + else if (gSpeciesInfo[species].frontPic != NULL) + LZ77UnCompWram(gSpeciesInfo[species].frontPic, dest); else - LZ77UnCompWram(gMonFrontPicTable[SPECIES_NONE].data, dest); + LZ77UnCompWram(gSpeciesInfo[SPECIES_NONE].frontPic, dest); } else { - if (gMonBackPicTableFemale[species].data != NULL && IsPersonalityFemale(species, personality)) - LZ77UnCompWram(gMonBackPicTableFemale[species].data, dest); - else if (gMonBackPicTable[species].data != NULL) - LZ77UnCompWram(gMonBackPicTable[species].data, dest); + if (gSpeciesInfo[species].backPicFemale != NULL && IsPersonalityFemale(species, personality)) + LZ77UnCompWram(gSpeciesInfo[species].backPicFemale, dest); + else if (gSpeciesInfo[species].backPic != NULL) + LZ77UnCompWram(gSpeciesInfo[species].backPic, dest); else - LZ77UnCompWram(gMonBackPicTable[SPECIES_NONE].data, dest); + LZ77UnCompWram(gSpeciesInfo[SPECIES_NONE].backPic, dest); } if (species == SPECIES_SPINDA && isFrontPic) diff --git a/src/egg_hatch.c b/src/egg_hatch.c index cc96fd510571..abb7ca4e15cb 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -421,6 +421,7 @@ static u8 EggHatchCreateMonSprite(u8 useAlt, u8 state, u8 partyId, u16 *speciesL u8 position = 0; u8 spriteId = 0; struct Pokemon *mon = NULL; + u16 species = SPECIES_NONE; if (useAlt == FALSE) { @@ -433,23 +434,23 @@ static u8 EggHatchCreateMonSprite(u8 useAlt, u8 state, u8 partyId, u16 *speciesL mon = &gPlayerParty[partyId]; position = B_POSITION_OPPONENT_RIGHT; } + species = GetMonData(mon, MON_DATA_SPECIES); switch (state) { case 0: // Load mon sprite gfx { - u16 species = GetMonData(mon, MON_DATA_SPECIES); u32 pid = GetMonData(mon, MON_DATA_PERSONALITY); HandleLoadSpecialPokePic(TRUE, gMonSpritesGfxPtr->sprites.ptr[(useAlt * 2) + B_POSITION_OPPONENT_LEFT], species, pid); - LoadCompressedSpritePalette(GetMonSpritePalStruct(mon)); + LoadCompressedSpritePaletteWithTag(GetMonFrontSpritePal(mon), species); *speciesLoc = species; } break; case 1: // Create mon sprite - SetMultiuseSpriteTemplateToPokemon(GetMonSpritePalStruct(mon)->tag, position); + SetMultiuseSpriteTemplateToPokemon(species, position); spriteId = CreateSprite(&gMultiuseSpriteTemplate, EGG_X, EGG_Y, 6); gSprites[spriteId].invisible = TRUE; gSprites[spriteId].callback = SpriteCallbackDummy; diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 8a8ca0a97abf..e344bc296d45 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -10740,3 +10740,19 @@ bool8 ScrFunc_getdaycaregfx(struct ScriptContext *ctx) { gSpecialVar_Result = i; return FALSE; } + +bool8 MovementAction_EmoteX_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +{ + ObjectEventGetLocalIdAndMap(objectEvent, &gFieldEffectArguments[0], &gFieldEffectArguments[1], &gFieldEffectArguments[2]); + FieldEffectStart(FLDEFF_X_ICON); + sprite->sActionFuncId = 1; + return TRUE; +} + +bool8 MovementAction_EmoteDoubleExclamationMark_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +{ + ObjectEventGetLocalIdAndMap(objectEvent, &gFieldEffectArguments[0], &gFieldEffectArguments[1], &gFieldEffectArguments[2]); + FieldEffectStart(FLDEFF_DOUBLE_EXCL_MARK_ICON); + sprite->sActionFuncId = 1; + return TRUE; +} diff --git a/src/evolution_scene.c b/src/evolution_scene.c index 05fb636fbeca..0944bf6ffb0c 100644 --- a/src/evolution_scene.c +++ b/src/evolution_scene.c @@ -35,8 +35,6 @@ #include "constants/rgb.h" #include "constants/items.h" -extern struct Evolution gEvolutionTable[][EVOS_PER_MON]; - struct EvoInfo { u8 preEvoSpriteId; @@ -212,7 +210,6 @@ void EvolutionScene(struct Pokemon *mon, u16 postEvoSpecies, bool8 canStopEvo, u u8 name[POKEMON_NAME_BUFFER_SIZE]; u16 currSpecies; u32 trainerId, personality; - const struct CompressedSpritePalette* pokePal; u8 id; SetHBlankCallback(NULL); @@ -260,11 +257,11 @@ void EvolutionScene(struct Pokemon *mon, u16 postEvoSpecies, bool8 canStopEvo, u currSpecies = GetMonData(mon, MON_DATA_SPECIES); trainerId = GetMonData(mon, MON_DATA_OT_ID); personality = GetMonData(mon, MON_DATA_PERSONALITY); - DecompressPicFromTableGender(gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_LEFT], - currSpecies, - personality); - pokePal = GetMonSpritePalStructFromOtIdPersonality(currSpecies, trainerId, personality); - LoadCompressedPalette(pokePal->data, OBJ_PLTT_ID(1), PLTT_SIZE_4BPP); + LoadSpecialPokePic(gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_LEFT], + currSpecies, + personality, + TRUE); + LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(currSpecies, trainerId, personality), OBJ_PLTT_ID(1), PLTT_SIZE_4BPP); SetMultiuseSpriteTemplateToPokemon(currSpecies, B_POSITION_OPPONENT_LEFT); gMultiuseSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable; @@ -275,11 +272,11 @@ void EvolutionScene(struct Pokemon *mon, u16 postEvoSpecies, bool8 canStopEvo, u gSprites[id].invisible = TRUE; // postEvo sprite - DecompressPicFromTableGender(gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_RIGHT], - postEvoSpecies, - personality); - pokePal = GetMonSpritePalStructFromOtIdPersonality(postEvoSpecies, trainerId, personality); - LoadCompressedPalette(pokePal->data, OBJ_PLTT_ID(2), PLTT_SIZE_4BPP); + LoadSpecialPokePic(gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_RIGHT], + postEvoSpecies, + personality, + TRUE); + LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(postEvoSpecies, trainerId, personality), OBJ_PLTT_ID(2), PLTT_SIZE_4BPP); SetMultiuseSpriteTemplateToPokemon(postEvoSpecies, B_POSITION_OPPONENT_RIGHT); gMultiuseSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable; @@ -312,7 +309,6 @@ void EvolutionScene(struct Pokemon *mon, u16 postEvoSpecies, bool8 canStopEvo, u static void CB2_EvolutionSceneLoadGraphics(void) { u8 id; - const struct CompressedSpritePalette* pokePal; u16 postEvoSpecies; u32 trainerId, personality; struct Pokemon *mon = &gPlayerParty[gTasks[sEvoStructPtr->evoTaskId].tPartyId]; @@ -352,12 +348,11 @@ static void CB2_EvolutionSceneLoadGraphics(void) FreeAllSpritePalettes(); gReservedSpritePaletteCount = 4; - DecompressPicFromTableGender(gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_RIGHT], - postEvoSpecies, - personality); - pokePal = GetMonSpritePalStructFromOtIdPersonality(postEvoSpecies, trainerId, personality); - - LoadCompressedPalette(pokePal->data, OBJ_PLTT_ID(2), PLTT_SIZE_4BPP); + LoadSpecialPokePic(gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_RIGHT], + postEvoSpecies, + personality, + TRUE); + LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(postEvoSpecies, trainerId, personality), OBJ_PLTT_ID(2), PLTT_SIZE_4BPP); SetMultiuseSpriteTemplateToPokemon(postEvoSpecies, B_POSITION_OPPONENT_RIGHT); gMultiuseSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable; @@ -421,14 +416,13 @@ static void CB2_TradeEvolutionSceneLoadGraphics(void) break; case 4: { - const struct CompressedSpritePalette* pokePal; u32 trainerId = GetMonData(mon, MON_DATA_OT_ID); u32 personality = GetMonData(mon, MON_DATA_PERSONALITY); - DecompressPicFromTableGender(gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_RIGHT], - postEvoSpecies, - personality); - pokePal = GetMonSpritePalStructFromOtIdPersonality(postEvoSpecies, trainerId, personality); - LoadCompressedPalette(pokePal->data, OBJ_PLTT_ID(2), PLTT_SIZE_4BPP); + LoadSpecialPokePic(gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_RIGHT], + postEvoSpecies, + personality, + TRUE); + LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(postEvoSpecies, trainerId, personality), OBJ_PLTT_ID(2), PLTT_SIZE_4BPP); gMain.state++; } break; @@ -471,7 +465,6 @@ void TradeEvolutionScene(struct Pokemon *mon, u16 postEvoSpecies, u8 preEvoSprit u8 name[POKEMON_NAME_BUFFER_SIZE]; u16 currSpecies; u32 trainerId, personality; - const struct CompressedSpritePalette* pokePal; u8 id; GetMonData(mon, MON_DATA_NICKNAME, name); @@ -488,12 +481,12 @@ void TradeEvolutionScene(struct Pokemon *mon, u16 postEvoSpecies, u8 preEvoSprit sEvoStructPtr = AllocZeroed(sizeof(struct EvoInfo)); sEvoStructPtr->preEvoSpriteId = preEvoSpriteId; - DecompressPicFromTableGender(gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_LEFT], - postEvoSpecies, - personality); + LoadSpecialPokePic(gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_LEFT], + postEvoSpecies, + personality, + TRUE); - pokePal = GetMonSpritePalStructFromOtIdPersonality(postEvoSpecies, trainerId, personality); - LoadCompressedPalette(pokePal->data, OBJ_PLTT_ID(2), PLTT_SIZE_4BPP); + LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(postEvoSpecies, trainerId, personality), OBJ_PLTT_ID(2), PLTT_SIZE_4BPP); SetMultiuseSpriteTemplateToPokemon(postEvoSpecies, B_POSITION_OPPONENT_LEFT); gMultiuseSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable; @@ -550,7 +543,12 @@ static void CreateShedinja(u16 preEvoSpecies, struct Pokemon *mon) { u32 data = 0; u16 ball = ITEM_POKE_BALL; - if (gEvolutionTable[preEvoSpecies][0].method == EVO_LEVEL_NINJASK && gPlayerPartyCount < PARTY_SIZE + const struct Evolution *evolutions = GetSpeciesEvolutions(preEvoSpecies); + + if (evolutions == NULL) + return; + + if (evolutions[0].method == EVO_LEVEL_NINJASK && gPlayerPartyCount < PARTY_SIZE #if P_SHEDINJA_BALL >= GEN_4 && (CheckBagHasItem(ball, 1)) #endif @@ -560,8 +558,8 @@ static void CreateShedinja(u16 preEvoSpecies, struct Pokemon *mon) struct Pokemon *shedinja = &gPlayerParty[gPlayerPartyCount]; CopyMon(&gPlayerParty[gPlayerPartyCount], mon, sizeof(struct Pokemon)); - SetMonData(&gPlayerParty[gPlayerPartyCount], MON_DATA_SPECIES, &gEvolutionTable[preEvoSpecies][1].targetSpecies); - SetMonData(&gPlayerParty[gPlayerPartyCount], MON_DATA_NICKNAME, GetSpeciesName(gEvolutionTable[preEvoSpecies][1].targetSpecies)); + SetMonData(&gPlayerParty[gPlayerPartyCount], MON_DATA_SPECIES, &evolutions[1].targetSpecies); + SetMonData(&gPlayerParty[gPlayerPartyCount], MON_DATA_NICKNAME, GetSpeciesName(evolutions[1].targetSpecies)); SetMonData(&gPlayerParty[gPlayerPartyCount], MON_DATA_HELD_ITEM, &data); SetMonData(&gPlayerParty[gPlayerPartyCount], MON_DATA_MARKINGS, &data); SetMonData(&gPlayerParty[gPlayerPartyCount], MON_DATA_ENCRYPT_SEPARATOR, &data); @@ -583,8 +581,8 @@ static void CreateShedinja(u16 preEvoSpecies, struct Pokemon *mon) CalculateMonStats(&gPlayerParty[gPlayerPartyCount]); CalculatePlayerPartyCount(); - GetSetPokedexFlag(SpeciesToNationalPokedexNum(gEvolutionTable[preEvoSpecies][1].targetSpecies), FLAG_SET_SEEN); - GetSetPokedexFlag(SpeciesToNationalPokedexNum(gEvolutionTable[preEvoSpecies][1].targetSpecies), FLAG_SET_CAUGHT); + GetSetPokedexFlag(SpeciesToNationalPokedexNum(evolutions[1].targetSpecies), FLAG_SET_SEEN); + GetSetPokedexFlag(SpeciesToNationalPokedexNum(evolutions[1].targetSpecies), FLAG_SET_CAUGHT); if (GetMonData(shedinja, MON_DATA_SPECIES) == SPECIES_SHEDINJA && GetMonData(shedinja, MON_DATA_LANGUAGE) == LANGUAGE_JAPANESE diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index 09f8cd03f468..a3c0fbf0e143 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -29,6 +29,7 @@ #include "start_menu.h" #include "trainer_see.h" #include "trainer_hill.h" +#include "vs_seeker.h" #include "wild_encounter.h" #include "constants/event_bg.h" #include "constants/event_objects.h" @@ -641,6 +642,11 @@ static bool8 TryStartStepCountScript(u16 metatileBehavior) ScriptContext_SetupScript(MossdeepCity_SpaceCenter_2F_EventScript_RivalRayquazaCall); return TRUE; } + if (UpdateVsSeekerStepCounter()) + { + ScriptContext_SetupScript(EventScript_VsSeekerChargingDone); + return TRUE; + } } if (SafariZoneTakeStep() == TRUE) diff --git a/src/field_effect.c b/src/field_effect.c index 4fd7c075b097..9b5cf8ffb344 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -32,6 +32,7 @@ #include "constants/metatile_behaviors.h" #include "constants/rgb.h" #include "constants/songs.h" +#include "constants/map_types.h" #define subsprite_table(ptr) {.subsprites = ptr, .subspriteCount = (sizeof ptr) / (sizeof(struct Subsprite))} @@ -231,12 +232,17 @@ static void SpriteCB_DeoxysRockFragment(struct Sprite *sprite); static void Task_MoveDeoxysRock(u8 taskId); +static void Task_FldEffUseVsSeeker(u8 taskId); +static void UseVsSeeker_StopPlayerMovement(struct Task *task); +static void UseVsSeeker_DoPlayerAnimation(struct Task *task); +static void UseVsSeeker_ResetPlayerGraphics(struct Task *task); +static void UseVsSeeker_CleanUpFieldEffect(struct Task *task); + // Static RAM declarations static u8 sActiveList[32]; // External declarations -extern const struct CompressedSpritePalette gMonPaletteTable[]; extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; extern const struct CompressedSpriteSheet gTrainerFrontPicTable[]; extern u8 *gFieldEffectScriptPointers[]; @@ -914,8 +920,8 @@ u8 AddNewGameBirchObject(s16 x, s16 y, u8 subpriority) u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y, u8 subpriority) { - s32 spriteId = CreateMonPicSprite(species, 0, 0x8000, TRUE, x, y, 0, gMonPaletteTable[species].tag); - PreservePaletteInWeather(IndexOfSpritePaletteTag(gMonPaletteTable[species].tag) + 0x10); + s32 spriteId = CreateMonPicSprite(species, 0, 0x8000, TRUE, x, y, 0, species); + PreservePaletteInWeather(IndexOfSpritePaletteTag(species) + 0x10); if (spriteId == 0xFFFF) return MAX_SPRITES; else @@ -3955,3 +3961,68 @@ u8 FldEff_CaveDust(void) #undef tVelocityY #undef tMoveSteps #undef tObjEventId + +static void (*const sUseVsSeekerEffectFuncs[])(struct Task *task) = { + UseVsSeeker_StopPlayerMovement, + UseVsSeeker_DoPlayerAnimation, + UseVsSeeker_ResetPlayerGraphics, + UseVsSeeker_CleanUpFieldEffect +}; + +u32 FldEff_UseVsSeeker(void) +{ + CreateTask(Task_FldEffUseVsSeeker, 0xFF); + return 0; +} + +static void Task_FldEffUseVsSeeker(u8 taskId) +{ + sUseVsSeekerEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId]); +} + +static void UseVsSeeker_StopPlayerMovement(struct Task *task) +{ + LockPlayerFieldControls(); + FreezeObjectEvents(); + gPlayerAvatar.preventStep = TRUE; + task->data[0]++; +} + +static void UseVsSeeker_DoPlayerAnimation(struct Task *task) +{ + struct ObjectEvent * playerObj = &gObjectEvents[gPlayerAvatar.objectEventId]; + if ((ObjectEventIsMovementOverridden(playerObj) && (!(ObjectEventClearHeldMovementIfFinished(playerObj))))) + return; + + if (gMapHeader.mapType != MAP_TYPE_UNDERWATER) + { + SetPlayerAvatarFieldMove(); + ObjectEventSetHeldMovement(playerObj, MOVEMENT_ACTION_START_ANIM_IN_DIRECTION); + } + task->data[0]++; +} + +static void UseVsSeeker_ResetPlayerGraphics(struct Task *task) { + struct ObjectEvent* playerObj = &gObjectEvents[gPlayerAvatar.objectEventId]; + + if (!ObjectEventClearHeldMovementIfFinished(playerObj)) + return; + + if (gMapHeader.mapType != MAP_TYPE_UNDERWATER) + { + ObjectEventSetGraphicsId(&gObjectEvents[gPlayerAvatar.objectEventId], GetPlayerAvatarGraphicsIdByCurrentState()); + ObjectEventForceSetHeldMovement(playerObj, GetFaceDirectionMovementAction(playerObj->facingDirection)); + } + task->data[0]++; +} + +static void UseVsSeeker_CleanUpFieldEffect(struct Task *task) +{ + struct ObjectEvent * playerObj = &gObjectEvents[gPlayerAvatar.objectEventId]; + if (!ObjectEventClearHeldMovementIfFinished(playerObj)) + return; + + gPlayerAvatar.preventStep = FALSE; + FieldEffectActiveListRemove(FLDEFF_USE_VS_SEEKER); + DestroyTask(FindTaskIdByFunc(Task_FldEffUseVsSeeker)); +} diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index 427b459dfb4c..2336cc3bebcd 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -245,7 +245,8 @@ static const u16 sRivalAvatarGfxIds[][2] = [PLAYER_AVATAR_STATE_UNDERWATER] = {OBJ_EVENT_GFX_BRENDAN_UNDERWATER, OBJ_EVENT_GFX_MAY_UNDERWATER}, [PLAYER_AVATAR_STATE_FIELD_MOVE] = {OBJ_EVENT_GFX_RIVAL_BRENDAN_FIELD_MOVE, OBJ_EVENT_GFX_RIVAL_MAY_FIELD_MOVE}, [PLAYER_AVATAR_STATE_FISHING] = {OBJ_EVENT_GFX_BRENDAN_FISHING, OBJ_EVENT_GFX_MAY_FISHING}, - [PLAYER_AVATAR_STATE_WATERING] = {OBJ_EVENT_GFX_BRENDAN_WATERING, OBJ_EVENT_GFX_MAY_WATERING} + [PLAYER_AVATAR_STATE_WATERING] = {OBJ_EVENT_GFX_BRENDAN_WATERING, OBJ_EVENT_GFX_MAY_WATERING}, + [PLAYER_AVATAR_STATE_VSSEEKER] = {OBJ_EVENT_GFX_RIVAL_BRENDAN_FIELD_MOVE, OBJ_EVENT_GFX_RIVAL_MAY_FIELD_MOVE}, }; static const u16 sPlayerAvatarGfxIds[][2] = @@ -258,6 +259,7 @@ static const u16 sPlayerAvatarGfxIds[][2] = [PLAYER_AVATAR_STATE_FIELD_MOVE] = {OBJ_EVENT_GFX_BRENDAN_FIELD_MOVE, OBJ_EVENT_GFX_MAY_FIELD_MOVE}, [PLAYER_AVATAR_STATE_FISHING] = {OBJ_EVENT_GFX_BRENDAN_FISHING, OBJ_EVENT_GFX_MAY_FISHING}, [PLAYER_AVATAR_STATE_WATERING] = {OBJ_EVENT_GFX_BRENDAN_WATERING, OBJ_EVENT_GFX_MAY_WATERING}, + [PLAYER_AVATAR_STATE_VSSEEKER] = {OBJ_EVENT_GFX_BRENDAN_FIELD_MOVE, OBJ_EVENT_GFX_MAY_FIELD_MOVE}, }; static const u16 sFRLGAvatarGfxIds[GENDER_COUNT] = diff --git a/src/field_specials.c b/src/field_specials.c index f2e739a6b246..1523f72f4887 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -1,4 +1,5 @@ #include "global.h" +#include "debug.h" #include "malloc.h" #include "battle.h" #include "battle_tower.h" @@ -20,6 +21,7 @@ #include "international_string_util.h" #include "item_icon.h" #include "link.h" +#include "load_save.h" #include "list_menu.h" #include "main.h" #include "mystery_gift.h" @@ -4251,3 +4253,47 @@ u8 Script_TryGainNewFanFromCounter(void) { return TryGainNewFanFromCounter(gSpecialVar_0x8004); } + +void TrySkyBattle(void) +{ + int i; + + if (B_VAR_SKY_BATTLE == 0 || B_FLAG_SKY_BATTLE == 0) + { + LockPlayerFieldControls(); + ScriptContext_SetupScript(Debug_FlagsAndVarNotSetBattleConfigMessage); + return; + } + for (i = 0; i < CalculatePlayerPartyCount(); i++) + { + struct Pokemon* pokemon = &gPlayerParty[i]; + if (CanMonParticipateInSkyBattle(pokemon) && GetMonData(pokemon, MON_DATA_HP, NULL) > 0) + { + PreparePartyForSkyBattle(); + gSpecialVar_Result = TRUE; + return; + } + } + gSpecialVar_Result = FALSE; +} + +void PreparePartyForSkyBattle(void) +{ + int i, participatingPokemonSlot = 0; + u8 partyCount = CalculatePlayerPartyCount(); + + FlagSet(B_FLAG_SKY_BATTLE); + SavePlayerParty(); + + for (i = 0; i < partyCount; i++) + { + struct Pokemon* pokemon = &gPlayerParty[i]; + + if (CanMonParticipateInSkyBattle(pokemon)) + participatingPokemonSlot += 1 << i; + else + ZeroMonData(pokemon); + } + VarSet(B_VAR_SKY_BATTLE,participatingPokemonSlot); + CompactPartySlots(); +} diff --git a/src/frontier_util.c b/src/frontier_util.c index e37c06498f1c..572288c44843 100644 --- a/src/frontier_util.c +++ b/src/frontier_util.c @@ -624,8 +624,16 @@ static const u8 sFrontierBrainObjEventGfx[NUM_FRONTIER_FACILITIES][2] = const u16 gFrontierBannedSpecies[] = { - SPECIES_MEW, SPECIES_MEWTWO, SPECIES_HO_OH, SPECIES_LUGIA, SPECIES_CELEBI, - SPECIES_KYOGRE, SPECIES_GROUDON, SPECIES_RAYQUAZA, SPECIES_JIRACHI, SPECIES_DEOXYS, 0xFFFF + SPECIES_MEW, SPECIES_MEWTWO, + SPECIES_HO_OH, SPECIES_LUGIA, SPECIES_CELEBI, + SPECIES_KYOGRE, SPECIES_GROUDON, SPECIES_RAYQUAZA, SPECIES_JIRACHI, SPECIES_DEOXYS, + SPECIES_DIALGA, SPECIES_PALKIA, SPECIES_GIRATINA, SPECIES_MANAPHY, SPECIES_PHIONE, SPECIES_DARKRAI, SPECIES_SHAYMIN, SPECIES_ARCEUS, + SPECIES_VICTINI, SPECIES_RESHIRAM, SPECIES_ZEKROM, SPECIES_KYUREM, SPECIES_KELDEO, SPECIES_MELOETTA, SPECIES_GENESECT, + SPECIES_XERNEAS, SPECIES_YVELTAL, SPECIES_ZYGARDE, SPECIES_DIANCIE, SPECIES_HOOPA, SPECIES_VOLCANION, + SPECIES_COSMOG, SPECIES_COSMOEM, SPECIES_SOLGALEO, SPECIES_LUNALA, SPECIES_NECROZMA, SPECIES_MAGEARNA, SPECIES_MARSHADOW, SPECIES_ZERAORA, SPECIES_MELTAN, SPECIES_MELMETAL, + SPECIES_ZACIAN, SPECIES_ZAMAZENTA, SPECIES_ETERNATUS, SPECIES_CALYREX, SPECIES_ZARUDE, + SPECIES_KORAIDON, SPECIES_MIRAIDON, + 0xFFFF }; static const u8 *const sRecordsWindowChallengeTexts[][2] = @@ -1888,38 +1896,23 @@ static void CheckBattleTypeFlag(void) gSpecialVar_Result = FALSE; } +#define SPECIES_PER_LINE 3 + static u8 AppendCaughtBannedMonSpeciesName(u16 species, u8 count, s32 numBannedMonsCaught) { if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FLAG_GET_CAUGHT)) { count++; - switch (count) + if (numBannedMonsCaught == count) + StringAppend(gStringVar1, gText_SpaceAndSpace); + else if (numBannedMonsCaught > count) + StringAppend(gStringVar1, gText_CommaSpace); + if ((count % SPECIES_PER_LINE) == 0) { - case 1: - case 3: - case 5: - case 7: - case 9: - case 11: - if (numBannedMonsCaught == count) - StringAppend(gStringVar1, gText_SpaceAndSpace); - else if (numBannedMonsCaught > count) - StringAppend(gStringVar1, gText_CommaSpace); - break; - case 2: - if (count == numBannedMonsCaught) - StringAppend(gStringVar1, gText_SpaceAndSpace); - else - StringAppend(gStringVar1, gText_CommaSpace); - StringAppend(gStringVar1, gText_NewLine); - break; - default: - if (count == numBannedMonsCaught) - StringAppend(gStringVar1, gText_SpaceAndSpace); + if (count == SPECIES_PER_LINE) + StringAppend(gStringVar1, gText_NewLine); else - StringAppend(gStringVar1, gText_CommaSpace); - StringAppend(gStringVar1, gText_LineBreak); - break; + StringAppend(gStringVar1, gText_LineBreak); } StringAppend(gStringVar1, GetSpeciesName(species)); } @@ -1934,7 +1927,9 @@ static void AppendIfValid(u16 species, u16 heldItem, u16 hp, u8 lvlMode, u8 monL if (species == SPECIES_EGG || species == SPECIES_NONE) return; - for (i = 0; gFrontierBannedSpecies[i] != 0xFFFF && gFrontierBannedSpecies[i] != species; i++) + for (i = 0; gFrontierBannedSpecies[i] != 0xFFFF + && gFrontierBannedSpecies[i] != GET_BASE_SPECIES_ID(species) + && IsSpeciesEnabled(gFrontierBannedSpecies[i]); i++) ; if (gFrontierBannedSpecies[i] != 0xFFFF) @@ -2044,7 +2039,7 @@ static void CheckPartyIneligibility(void) } else { - if (count & 1) + if (count % SPECIES_PER_LINE == SPECIES_PER_LINE - 1) StringAppend(gStringVar1, gText_LineBreak); else StringAppend(gStringVar1, gText_Space2); @@ -2059,6 +2054,8 @@ static void CheckPartyIneligibility(void) #undef numEligibleMons } +#undef SPECIES_PER_LINE + static void ValidateVisitingTrainer(void) { ValidateEReaderTrainer(); diff --git a/src/graphics.c b/src/graphics.c index dbd0eae2265d..a9f2dc11e832 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -451,6 +451,12 @@ const u32 gBattleAnimSpritePal_WoodHammerHammer[] = INCBIN_U32("graphics/battle_ const u32 gBattleAnimSpriteGfx_Snowflakes[] = INCBIN_U32("graphics/battle_anims/sprites/snowflakes.4bpp.lz"); const u32 gBattleAnimSpritePal_Snowflakes[] = INCBIN_U32("graphics/battle_anims/sprites/snowflakes.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_SyrupBlob[] = INCBIN_U32("graphics/battle_anims/sprites/syrup_bomb_blob.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_SyrupShell[] = INCBIN_U32("graphics/battle_anims/sprites/syrup_bomb_shell.4bpp.lz"); +const u32 gBattleAnimSpriteGfx_SyrupSplat[] = INCBIN_U32("graphics/battle_anims/sprites/syrup_bomb_splat.4bpp.lz"); +const u32 gBattleAnimSpritePal_SyrupRed[] = INCBIN_U32("graphics/battle_anims/sprites/syrup_red.gbapal.lz"); +const u32 gBattleAnimSpritePal_SyrupYellow[] = INCBIN_U32("graphics/battle_anims/sprites/syrup_yellow.gbapal.lz"); + // old battle interface data, unused const u32 gOldBattleInterfaceGfx[] = INCBIN_U32("graphics/unused/obi1.4bpp.lz"); @@ -1254,7 +1260,6 @@ const u32 gBattleAnimSpritePal_FlatRock[] = INCBIN_U32("graphics/battle_anims/sp const u32 gBattleAnimUnusedPal_Unknown2[] = INCBIN_U32("graphics/battle_anims/unused/unknown_2.gbapal.lz"); -#include "data/graphics/pokemon.h" #include "data/graphics/trainers.h" const u32 gBattleVSFrame_Gfx[] = INCBIN_U32("graphics/battle_transitions/vs_frame.4bpp.lz"); @@ -1600,6 +1605,11 @@ const u32 gBattleAnimSpritePal_Slash2[] = INCBIN_U32("graphics/battle_anims/spri const u32 gBattleAnimSpriteGfx_WhiteShadow[] = INCBIN_U32("graphics/battle_anims/sprites/white_shadow.4bpp.lz"); const u32 gBattleAnimSpritePal_WhiteShadow[] = INCBIN_U32("graphics/battle_anims/sprites/white_shadow.gbapal.lz"); +// Pledge Effect field status - Rainbow +const u32 gBattleAnimBgImage_Rainbow[] = INCBIN_U32("graphics/battle_anims/backgrounds/rainbow.4bpp.lz"); +const u32 gBattleAnimBGPalette_Rainbow[] = INCBIN_U32("graphics/battle_anims/backgrounds/rainbow.gbapal.lz"); +const u32 gBattleAnimBgTilemap_Rainbow[] = INCBIN_U32("graphics/battle_anims/backgrounds/rainbow.bin.lz"); + const u32 gPartyMenuBg_Gfx[] = INCBIN_U32("graphics/party_menu/bg.4bpp.lz"); const u32 gPartyMenuBg_Pal[] = INCBIN_U32("graphics/party_menu/bg.gbapal.lz"); const u32 gPartyMenuBg_Tilemap[] = INCBIN_U32("graphics/party_menu/bg.bin.lz"); diff --git a/src/international_string_util.c b/src/international_string_util.c index 457e3260bed2..160e201b60dc 100644 --- a/src/international_string_util.c +++ b/src/international_string_util.c @@ -8,7 +8,6 @@ #include "text.h" #include "window.h" -extern const struct PokedexEntry gPokedexEntries[]; int GetStringCenterAlignXOffset(int fontId, const u8 *str, int totalWidth) { @@ -86,9 +85,9 @@ int Intl_GetListMenuWidth(const struct ListMenuTemplate *listMenu) return finalWidth; } -void CopyMonCategoryText(int dexNum, u8 *dest) +void CopyMonCategoryText(u16 species, u8 *dest) { - u8 *str = StringCopy(dest, gPokedexEntries[dexNum].categoryName); + u8 *str = StringCopy(dest, GetSpeciesCategory(species)); *str = CHAR_SPACE; StringCopy(str + 1, gText_Pokemon); } diff --git a/src/item_use.c b/src/item_use.c index 9e0b1ad79f95..b518cfd4c535 100644 --- a/src/item_use.c +++ b/src/item_use.c @@ -38,11 +38,13 @@ #include "string_util.h" #include "task.h" #include "text.h" +#include "vs_seeker.h" #include "constants/event_bg.h" #include "constants/event_objects.h" #include "constants/item_effects.h" #include "constants/items.h" #include "constants/songs.h" +#include "constants/map_types.h" static void SetUpItemUseCallback(u8); static void FieldCB_UseItemOnField(void); @@ -75,6 +77,7 @@ static void Task_CloseCantUseKeyItemMessage(u8); static void SetDistanceOfClosestHiddenItem(u8, s16, s16); static void CB2_OpenPokeblockFromBag(void); static void ItemUseOnFieldCB_Honey(u8 taskId); +static bool32 IsValidLocationForVsSeeker(void); static bool32 CannotUseBagBattleItem(u16 itemId); // EWRAM variables @@ -1286,15 +1289,68 @@ void ItemUseOutOfBattle_EnigmaBerry(u8 taskId) void ItemUseOutOfBattle_FormChange(u8 taskId) { - gItemUseCB = ItemUseCB_FormChange; - gTasks[taskId].data[0] = FALSE; - SetUpItemUseCallback(taskId); + if (!gTasks[taskId].tUsingRegisteredKeyItem) + { + gItemUseCB = ItemUseCB_FormChange; + gTasks[taskId].data[0] = FALSE; + SetUpItemUseOnFieldCallback(taskId); + } + else + { + // TODO: handle key items with callbacks to menus allow to be used by registering them. + DisplayDadsAdviceCannotUseItemMessage(taskId, gTasks[taskId].tUsingRegisteredKeyItem); + } } void ItemUseOutOfBattle_FormChange_ConsumedOnUse(u8 taskId) { - gItemUseCB = ItemUseCB_FormChange_ConsumedOnUse; - gTasks[taskId].data[0] = TRUE; + if (!gTasks[taskId].tUsingRegisteredKeyItem) + { + gItemUseCB = ItemUseCB_FormChange_ConsumedOnUse; + gTasks[taskId].data[0] = TRUE; + SetUpItemUseOnFieldCallback(taskId); + } + else + { + // TODO: handle key items with callbacks to menus allow to be used by registering them. + DisplayDadsAdviceCannotUseItemMessage(taskId, gTasks[taskId].tUsingRegisteredKeyItem); + } +} + +void ItemUseOutOfBattle_RotomCatalog(u8 taskId) +{ + if (!gTasks[taskId].tUsingRegisteredKeyItem) + { + gItemUseCB = ItemUseCB_RotomCatalog; + gTasks[taskId].data[0] = TRUE; + SetUpItemUseOnFieldCallback(taskId); + } + else + { + // TODO: handle key items with callbacks to menus allow to be used by registering them. + DisplayDadsAdviceCannotUseItemMessage(taskId, gTasks[taskId].tUsingRegisteredKeyItem); + } +} + +void ItemUseOutOfBattle_ZygardeCube(u8 taskId) +{ + if (!gTasks[taskId].tUsingRegisteredKeyItem) + { + gItemUseCB = ItemUseCB_ZygardeCube; + gTasks[taskId].data[0] = TRUE; + SetUpItemUseOnFieldCallback(taskId); + } + else + { + // TODO: handle key items with callbacks to menus allow to be used by registering them. + DisplayDadsAdviceCannotUseItemMessage(taskId, gTasks[taskId].tUsingRegisteredKeyItem); + } +} + +void ItemUseOutOfBattle_Fusion(u8 taskId) +{ + gItemUseCB = ItemUseCB_Fusion; + gTasks[taskId].data[0] = FALSE; SetUpItemUseCallback(taskId); } @@ -1346,6 +1402,70 @@ void ItemUseOutOfBattle_IncreaseIV(u8 taskId) SetUpItemUseCallback(taskId); } +static bool32 IsValidLocationForVsSeeker(void) +{ + u16 mapGroup = gSaveBlock1Ptr->location.mapGroup; + u16 mapNum = gSaveBlock1Ptr->location.mapNum; + u16 mapType = gMapHeader.mapType; + + typedef struct { + u16 mapGroup; + u16 mapNum; + } Location; + + u32 i; + Location validIndoorLocations[] = + { + { MAP_GROUP(MT_PYRE_SUMMIT), MAP_NUM(MT_PYRE_SUMMIT) }, + { MAP_GROUP(SAFARI_ZONE_NORTH), MAP_NUM(SAFARI_ZONE_NORTH) }, + { MAP_GROUP(SAFARI_ZONE_NORTHEAST), MAP_NUM(SAFARI_ZONE_NORTHEAST) }, + { MAP_GROUP(SAFARI_ZONE_NORTHWEST), MAP_NUM(SAFARI_ZONE_NORTHWEST) }, + { MAP_GROUP(SAFARI_ZONE_SOUTH), MAP_NUM(SAFARI_ZONE_SOUTH) }, + { MAP_GROUP(SAFARI_ZONE_SOUTHEAST), MAP_NUM(SAFARI_ZONE_SOUTHEAST) }, + { MAP_GROUP(SAFARI_ZONE_SOUTHWEST), MAP_NUM(SAFARI_ZONE_SOUTHWEST) }, + { MAP_GROUP(SKY_PILLAR_TOP), MAP_NUM(SKY_PILLAR_TOP) }, + { MAP_GROUP(SOUTHERN_ISLAND_EXTERIOR), MAP_NUM(SOUTHERN_ISLAND_EXTERIOR) }, + { MAP_GROUP(SOUTHERN_ISLAND_INTERIOR), MAP_NUM(SOUTHERN_ISLAND_INTERIOR) }, + { MAP_GROUP(RUSTBORO_CITY_GYM), MAP_NUM(RUSTBORO_CITY_GYM) }, + { MAP_GROUP(DEWFORD_TOWN_GYM), MAP_NUM(DEWFORD_TOWN_GYM) }, + { MAP_GROUP(MAUVILLE_CITY_GYM), MAP_NUM(MAUVILLE_CITY_GYM) }, + { MAP_GROUP(LAVARIDGE_TOWN_GYM_1F), MAP_NUM(LAVARIDGE_TOWN_GYM_1F) }, + { MAP_GROUP(LAVARIDGE_TOWN_GYM_B1F), MAP_NUM(LAVARIDGE_TOWN_GYM_B1F) }, + { MAP_GROUP(PETALBURG_CITY_GYM), MAP_NUM(PETALBURG_CITY_GYM) }, + { MAP_GROUP(FORTREE_CITY_GYM), MAP_NUM(FORTREE_CITY_GYM) }, + { MAP_GROUP(MOSSDEEP_CITY_GYM), MAP_NUM(MOSSDEEP_CITY_GYM) }, + { MAP_GROUP(SOOTOPOLIS_CITY_GYM_1F), MAP_NUM(SOOTOPOLIS_CITY_GYM_1F) }, + { MAP_GROUP(SOOTOPOLIS_CITY_GYM_B1F), MAP_NUM(SOOTOPOLIS_CITY_GYM_B1F) }, + }; + + if (IsMapTypeOutdoors(mapType)) + return TRUE; + + for (i = 0; i < ARRAY_COUNT(validIndoorLocations); i++) + { + if (mapNum == validIndoorLocations[i].mapNum && mapGroup == validIndoorLocations[i].mapGroup) + return TRUE; + } + + return FALSE; +} + +void FieldUseFunc_VsSeeker(u8 taskId) +{ + if (IsValidLocationForVsSeeker()) + { + sItemUseOnFieldCB = Task_InitVsSeekerAndCheckForTrainersOnScreen; + SetUpItemUseOnFieldCallback(taskId); + } + else + DisplayDadsAdviceCannotUseItemMessage(taskId, gTasks[taskId].data[3]); +} + +void Task_ItemUse_CloseMessageBoxAndReturnToField_VsSeeker(u8 taskId) +{ + Task_CloseCantUseKeyItemMessage(taskId); +} + #undef tUsingRegisteredKeyItem void ItemUseOutOfBattle_PokeBall(u8 taskId) diff --git a/src/load_save.c b/src/load_save.c index f071cdb82745..a3e07d6bb7da 100644 --- a/src/load_save.c +++ b/src/load_save.c @@ -14,6 +14,7 @@ #include "decoration_inventory.h" #include "agb_flash.h" #include "constants/event_objects.h" +#include "event_data.h" static void ApplyNewEncryptionKeyToAllEncryptedData(u32 encryptionKey); diff --git a/src/main_menu.c b/src/main_menu.c index b0f68193a618..c7295bd8637c 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -2169,7 +2169,7 @@ static void MainMenu_FormatSavegamePokedex(void) dexCount = GetHoennPokedexCount(FLAG_GET_CAUGHT); StringExpandPlaceholders(gStringVar4, gText_ContinueMenuPokedex); AddTextPrinterParameterized3(2, FONT_NORMAL, 0, 33, sTextColor_MenuInfo, TEXT_SKIP_DRAW, gStringVar4); - ConvertIntToDecimalStringN(str, dexCount, STR_CONV_MODE_LEFT_ALIGN, 3); + ConvertIntToDecimalStringN(str, dexCount, STR_CONV_MODE_LEFT_ALIGN, 4); AddTextPrinterParameterized3(2, FONT_NORMAL, GetStringRightAlignXOffset(FONT_NORMAL, str, 100), 33, sTextColor_MenuInfo, TEXT_SKIP_DRAW, str); } } diff --git a/src/match_call.c b/src/match_call.c index 4a909dfebf6d..ef8cb79e3db3 100644 --- a/src/match_call.c +++ b/src/match_call.c @@ -2076,8 +2076,8 @@ void BufferPokedexRatingForMatchCall(u8 *destStr) *(str++) = CHAR_PROMPT_CLEAR; numSeen = GetNationalPokedexCount(FLAG_GET_SEEN); numCaught = GetNationalPokedexCount(FLAG_GET_CAUGHT); - ConvertIntToDecimalStringN(gStringVar1, numSeen, STR_CONV_MODE_LEFT_ALIGN, 3); - ConvertIntToDecimalStringN(gStringVar2, numCaught, STR_CONV_MODE_LEFT_ALIGN, 3); + ConvertIntToDecimalStringN(gStringVar1, numSeen, STR_CONV_MODE_LEFT_ALIGN, 4); + ConvertIntToDecimalStringN(gStringVar2, numCaught, STR_CONV_MODE_LEFT_ALIGN, 4); StringExpandPlaceholders(str, gBirchDexRatingText_OnANationwideBasis); } diff --git a/src/menu.c b/src/menu.c index 4f97047a6f83..d1ecf4a0e12e 100644 --- a/src/menu.c +++ b/src/menu.c @@ -1588,7 +1588,7 @@ void PrintMenuTable(u8 windowId, u8 itemCount, const struct MenuAction *menuActi u32 i; for (i = 0; i < itemCount; i++) - AddTextPrinterParameterized(windowId, 1, menuActions[i].text, 8, (i * 16) + 1, TEXT_SKIP_DRAW, NULL); + AddTextPrinterParameterized(windowId, FONT_NORMAL, menuActions[i].text, 8, (i * 16) + 1, TEXT_SKIP_DRAW, NULL); CopyWindowToVram(windowId, COPYWIN_GFX); } @@ -1652,7 +1652,7 @@ void PrintMenuGridTable(u8 windowId, u8 optionWidth, u8 columns, u8 rows, const for (i = 0; i < rows; i++) { for (j = 0; j < columns; j++) - AddTextPrinterParameterized(windowId, 1, menuActions[(i * columns) + j].text, (optionWidth * j) + 8, (i * 16) + 1, TEXT_SKIP_DRAW, NULL); + AddTextPrinterParameterized(windowId, FONT_NORMAL, menuActions[(i * columns) + j].text, (optionWidth * j) + 8, (i * 16) + 1, TEXT_SKIP_DRAW, NULL); } CopyWindowToVram(windowId, COPYWIN_GFX); } @@ -2017,7 +2017,7 @@ void PrintPlayerNameOnWindow(u8 windowId, const u8 *src, u16 x, u16 y) StringExpandPlaceholders(gStringVar4, src); - AddTextPrinterParameterized(windowId, 1, gStringVar4, x, y, TEXT_SKIP_DRAW, 0); + AddTextPrinterParameterized(windowId, FONT_NORMAL, gStringVar4, x, y, TEXT_SKIP_DRAW, 0); } static void UNUSED UnusedBlitBitmapRect(const struct Bitmap *src, struct Bitmap *dst, u16 srcX, u16 srcY, u16 dstX, u16 dstY, u16 width, u16 height) @@ -2152,7 +2152,7 @@ void BufferSaveMenuText(u8 textId, u8 *dest, u8 color) break; case SAVE_MENU_CAUGHT: if (IsNationalPokedexEnabled()) - string = ConvertIntToDecimalStringN(string, GetNationalPokedexCount(FLAG_GET_CAUGHT), STR_CONV_MODE_LEFT_ALIGN, 3); + string = ConvertIntToDecimalStringN(string, GetNationalPokedexCount(FLAG_GET_CAUGHT), STR_CONV_MODE_LEFT_ALIGN, 4); else string = ConvertIntToDecimalStringN(string, GetHoennPokedexCount(FLAG_GET_CAUGHT), STR_CONV_MODE_LEFT_ALIGN, 3); *string = EOS; diff --git a/src/menu_specialized.c b/src/menu_specialized.c index 456845e868dc..4112ae815729 100644 --- a/src/menu_specialized.c +++ b/src/menu_specialized.c @@ -27,8 +27,6 @@ #include "constants/battle_move_effects.h" #include "gba/io_reg.h" -extern const struct CompressedSpriteSheet gMonFrontPicTable[]; - EWRAM_DATA static u8 sMailboxWindowIds[MAILBOXWIN_COUNT] = {0}; EWRAM_DATA static struct ListMenuItem *sMailboxList = NULL; diff --git a/src/mini_printf.c b/src/mini_printf.c index 9fb4ecfac9e5..2a8c6e5cb780 100644 --- a/src/mini_printf.c +++ b/src/mini_printf.c @@ -328,7 +328,7 @@ s32 mini_vpprintf(void* buf, const char *fmt, va_list va) break; case 'S' : // preproc encoded string handler ptr = va_arg(va, char*); - len = StringLength(ptr); + len = StringLength((u8*)ptr); if (pad_to > 0) { len = mini_pad(ptr, len, pad_char, pad_to, bf); diff --git a/src/overworld.c b/src/overworld.c index 625858429f95..05a225420c23 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -60,6 +60,7 @@ #include "tv.h" #include "scanline_effect.h" #include "wild_encounter.h" +#include "vs_seeker.h" #include "frontier_util.h" #include "constants/abilities.h" #include "constants/layouts.h" @@ -834,6 +835,10 @@ void LoadMapFromCameraTransition(u8 mapGroup, u8 mapNum) ResetCyclingRoadChallengeData(); RestartWildEncounterImmunitySteps(); TryUpdateRandomTrainerRematches(mapGroup, mapNum); + +if (I_VS_SEEKER_CHARGING != 0) + MapResetTrainerRematches(mapGroup, mapNum); + DoTimeBasedEvents(); SetSavedWeatherFromCurrMapHeader(); ChooseAmbientCrySpecies(); @@ -884,6 +889,10 @@ static void LoadMapFromWarp(bool32 a1) ResetCyclingRoadChallengeData(); RestartWildEncounterImmunitySteps(); TryUpdateRandomTrainerRematches(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum); + +if (I_VS_SEEKER_CHARGING != 0) + MapResetTrainerRematches(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum); + if (a1 != TRUE) DoTimeBasedEvents(); SetSavedWeatherFromCurrMapHeader(); diff --git a/src/party_menu.c b/src/party_menu.c index e60c87644bc1..714409501b4c 100644 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -95,6 +95,14 @@ enum { MENU_TRADE1, MENU_TRADE2, MENU_TOSS, + MENU_CATALOG_BULB, + MENU_CATALOG_OVEN, + MENU_CATALOG_WASHING, + MENU_CATALOG_FRIDGE, + MENU_CATALOG_FAN, + MENU_CATALOG_MOWER, + MENU_CHANGE_FORM, + MENU_CHANGE_ABILITY, MENU_FIELD_MOVES }; @@ -114,6 +122,8 @@ enum { ACTIONS_TRADE, ACTIONS_SPIN_TRADE, ACTIONS_TAKEITEM_TOSS, + ACTIONS_ROTOM_CATALOG, + ACTIONS_ZYGARDE_CUBE, }; // In CursorCb_FieldMove, field moves <= FIELD_MOVE_WATERFALL are assumed to line up with the badge flags. @@ -238,7 +248,9 @@ void (*gItemUseCB)(u8, TaskFunc); static void ResetPartyMenu(void); static void CB2_InitPartyMenu(void); +static void CB2_ReloadPartyMenu(void); static bool8 ShowPartyMenu(void); +static bool8 ReloadPartyMenu(void); static void SetPartyMonsAllowedInMinigame(void); static void ExitPartyMenu(void); static bool8 AllocPartyMenuBg(void); @@ -476,6 +488,14 @@ static void CursorCb_Trade1(u8); static void CursorCb_Trade2(u8); static void CursorCb_Toss(u8); static void CursorCb_FieldMove(u8); +static void CursorCb_CatalogBulb(u8); +static void CursorCb_CatalogOven(u8); +static void CursorCb_CatalogWashing(u8); +static void CursorCb_CatalogFridge(u8); +static void CursorCb_CatalogFan(u8); +static void CursorCb_CatalogMower(u8); +static void CursorCb_ChangeForm(u8); +static void CursorCb_ChangeAbility(u8); static bool8 SetUpFieldMove_Surf(void); static bool8 SetUpFieldMove_Fly(void); static bool8 SetUpFieldMove_Waterfall(void); @@ -535,6 +555,25 @@ static void InitPartyMenu(u8 menuType, u8 layout, u8 partyAction, bool8 keepCurs } } +static void RefreshPartyMenu(void) //Refreshes the party menu without restarting tasks +{ + u16 i; + + sPartyMenuInternal->exitCallback = NULL; + sPartyMenuInternal->lastSelectedSlot = 0; + sPartyMenuInternal->spriteIdConfirmPokeball = 0x7F; + sPartyMenuInternal->spriteIdCancelPokeball = 0x7F; + + for (i = 0; i < ARRAY_COUNT(sPartyMenuInternal->data); i++) + sPartyMenuInternal->data[i] = 0; + for (i = 0; i < ARRAY_COUNT(sPartyMenuInternal->windowId); i++) + sPartyMenuInternal->windowId[i] = WINDOW_NONE; + + gTextFlags.autoScroll = 0; + CalculatePlayerPartyCount(); + SetMainCallback2(CB2_ReloadPartyMenu); +} + static void CB2_UpdatePartyMenu(void) { RunTasks(); @@ -560,6 +599,15 @@ static void CB2_InitPartyMenu(void) } } +static void CB2_ReloadPartyMenu(void) +{ + while (TRUE) + { + if (MenuHelpers_ShouldWaitForLinkRecv() == TRUE || ReloadPartyMenu() == TRUE || MenuHelpers_IsLinkActive() == TRUE) + break; + } +} + static bool8 ShowPartyMenu(void) { switch (gMain.state) @@ -684,6 +732,119 @@ static bool8 ShowPartyMenu(void) return FALSE; } +static bool8 ReloadPartyMenu(void) +{ + switch (gMain.state) + { + case 0: + SetVBlankHBlankCallbacksToNull(); + ClearScheduledBgCopiesToVram(); + gMain.state++; + break; + case 1: + ScanlineEffect_Stop(); + gMain.state++; + break; + case 2: + ResetPaletteFade(); + gPaletteFade.bufferTransferDisabled = TRUE; + gMain.state++; + break; + case 3: + ResetSpriteData(); + gMain.state++; + break; + case 4: + FreeAllSpritePalettes(); + gMain.state++; + break; + case 5: + SetPartyMonsAllowedInMinigame(); + gMain.state++; + break; + case 6: + if (!AllocPartyMenuBg()) + { + ExitPartyMenu(); + return TRUE; + } + else + { + sPartyMenuInternal->data[0] = 0; + gMain.state++; + } + break; + case 7: + if (AllocPartyMenuBgGfx()) + gMain.state++; + break; + case 8: + InitPartyMenuWindows(gPartyMenu.layout); + gMain.state++; + break; + case 9: + InitPartyMenuBoxes(gPartyMenu.layout); + sPartyMenuInternal->data[0] = 0; + gMain.state++; + break; + case 10: + LoadHeldItemIcons(); + gMain.state++; + break; + case 11: + LoadPartyMenuPokeballGfx(); + gMain.state++; + break; + case 12: + LoadPartyMenuAilmentGfx(); + gMain.state++; + break; + case 13: + LoadMonIconPalettes(); + gMain.state++; + break; + case 14: + if (CreatePartyMonSpritesLoop()) + { + sPartyMenuInternal->data[0] = 0; + gMain.state++; + } + break; + case 15: + if (RenderPartyMenuBoxes()) + { + sPartyMenuInternal->data[0] = 0; + gMain.state++; + } + break; + case 16: + CreateCancelConfirmPokeballSprites(); + gMain.state++; + break; + case 17: + CreateCancelConfirmWindows(sPartyMenuInternal->chooseHalf); + gMain.state++; + break; + case 18: + gMain.state++; + break; + case 19: + BlendPalettes(PALETTES_ALL, 16, RGB_WHITEALPHA); + gPaletteFade.bufferTransferDisabled = FALSE; + gMain.state++; + break; + case 20: + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_WHITEALPHA); + gMain.state++; + break; + default: + SetVBlankCallback(VBlankCB_PartyMenu); + SetMainCallback2(CB2_UpdatePartyMenu); + return TRUE; + } + return FALSE; +} + static void ExitPartyMenu(void) { BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); @@ -2499,6 +2660,9 @@ void DisplayPartyMenuStdMessage(u32 stringId) case PARTY_MSG_ALREADY_HOLDING_ONE: *windowPtr = AddWindow(&sAlreadyHoldingOneMsgWindowTemplate); break; + case PARTY_MSG_WHICH_APPLIANCE: + *windowPtr = AddWindow(&sOrderWhichApplianceMsgWindowTemplate); + break; default: *windowPtr = AddWindow(&sDefaultPartyMsgWindowTemplate); break; @@ -2555,6 +2719,12 @@ static u8 DisplaySelectionWindow(u8 windowType) case SELECTWINDOW_MAIL: window = sMailReadTakeWindowTemplate; break; + case SELECTWINDOW_CATALOG: + window = sCatalogSelectWindowTemplate; + break; + case SELECTWINDOW_ZYGARDECUBE: + window = sZygardeCubeSelectWindowTemplate; + break; default: // SELECTWINDOW_MOVES window = sMoveSelectWindowTemplate; break; @@ -5686,11 +5856,350 @@ void ItemUseCB_EvolutionStone(u8 taskId, TaskFunc task) } } +#define FUSE_MON 1 +#define UNFUSE_MON 2 +#define SECOND_FUSE_MON 3 + #define tState data[0] #define tTargetSpecies data[1] #define tAnimWait data[2] #define tNextFunc 3 +#define fusionType data[7] +#define firstFusion data[8] +#define firstFusionSlot data[9] +#define fusionResult data[10] +#define secondFusionSlot data[11] +#define unfuseSecondMon data[12] +#define moveToLearn data[13] +#define forgetMove data[14] +#define storageIndex data[15] + +static void Task_TryItemUseFusionChange(u8 taskId); +static void SpriteCB_FormChangeIconMosaic(struct Sprite *sprite); + +u8 IsFusionMon(u16 species) +{ + u16 i; + const struct Fusion *itemFusion = gFusionTablePointers[species]; + if (itemFusion == NULL) + return FALSE; + for (i = 0; itemFusion[i].fusionStorageIndex != FUSION_TERMINATOR; i++) + { + if (itemFusion[i].fusingIntoMon == species) + return UNFUSE_MON; + else if (itemFusion[i].targetSpecies1 == species) + return FUSE_MON; + else if (itemFusion[i].targetSpecies2 == species) + return SECOND_FUSE_MON; + } + return FALSE; +} + +void FormChangeTeachMove(u8 taskId, u32 move, u32 slot) +{ + struct Pokemon *mon; + + gPartyMenu.data1 = move; + gPartyMenu.learnMoveState = 0; + + PlaySE(SE_SELECT); + mon = &gPlayerParty[slot]; + GetMonNickname(mon, gStringVar1); + StringCopy(gStringVar2, gMoveNames[move]); + + if (GiveMoveToMon(mon, move) != MON_HAS_MAX_MOVES) + { + gTasks[taskId].func = Task_LearnedMove; + } + else + { + DisplayLearnMoveMessage(gText_PkmnNeedsToReplaceMove); + gTasks[taskId].func = Task_ReplaceMoveYesNo; + } +} + +void DeleteMove(struct Pokemon *mon, u32 move) +{ + struct BoxPokemon *boxMon = &mon->box; + u32 i, j; + + if (move != MOVE_NONE) + { + for (i = 0; i < MAX_MON_MOVES; i++) + { + u32 existingMove = GetBoxMonData(boxMon, MON_DATA_MOVE1 + i, NULL); + if (existingMove == move) + { + SetMonMoveSlot(mon, MOVE_NONE, i); + RemoveMonPPBonus(mon, i); + for (j = i; j < MAX_MON_MOVES - 1; j++) + ShiftMoveSlot(mon, j, j + 1); + break; + } + } + } +} + +bool32 DoesMonHaveAnyMoves(struct Pokemon *mon) +{ + struct BoxPokemon *boxMon = &mon->box; + u32 i; + + for (i = 0; i < MAX_MON_MOVES; i++) + { + u32 existingMove = GetBoxMonData(boxMon, MON_DATA_MOVE1 + i, NULL); + if (existingMove != MOVE_NONE) + return TRUE; + } + return FALSE; +} + +bool32 TryItemUseFusionChange(u8 taskId, TaskFunc task) +{ + u16 targetSpecies = gTasks[taskId].fusionResult; + s8 *slotPtr = GetCurrentPartySlotPtr(); + *slotPtr = gTasks[taskId].firstFusionSlot; + if (gTasks[taskId].fusionType == FUSE_MON) + AnimatePartySlot(gTasks[taskId].secondFusionSlot, 0); + AnimatePartySlot(*slotPtr, 1); + + if (targetSpecies != SPECIES_NONE) + { + gPartyMenuUseExitCallback = TRUE; + SetWordTaskArg(taskId, tNextFunc, (u32)task); + gTasks[taskId].func = Task_TryItemUseFusionChange; + gTasks[taskId].tState = 0; + gTasks[taskId].tTargetSpecies = targetSpecies; + gTasks[taskId].tAnimWait = 0; + return TRUE; + } + else + { + gPartyMenuUseExitCallback = FALSE; + PlaySE(SE_SELECT); + DisplayPartyMenuMessage(gText_WontHaveEffect, TRUE); + ScheduleBgCopyTilemapToVram(2); + gTasks[taskId].func = task; + return FALSE; + } +} + +static void Task_TryItemUseFusionChange(u8 taskId) +{ + struct Pokemon *mon = &gPlayerParty[gTasks[taskId].firstFusionSlot]; + struct Sprite *icon = &gSprites[sPartyMenuBoxes[gTasks[taskId].firstFusionSlot].monSpriteId]; + struct Pokemon *mon2; + struct Sprite *icon2 = &gSprites[sPartyMenuBoxes[gTasks[taskId].secondFusionSlot].monSpriteId]; + u16 targetSpecies; + + switch (gTasks[taskId].tState) + { + case 0: + if (gTasks[taskId].fusionType == FUSE_MON) + { + mon2 = &gPlayerParty[gTasks[taskId].secondFusionSlot]; + CopyMon(&gPokemonStoragePtr->fusions[gTasks[taskId].storageIndex], mon2, sizeof(*mon2)); + ZeroMonData(&gPlayerParty[gTasks[taskId].secondFusionSlot]); + } + else + { + mon2 = &gPokemonStoragePtr->fusions[gTasks[taskId].storageIndex]; + GiveMonToPlayer(mon2); + ZeroMonData(&gPokemonStoragePtr->fusions[gTasks[taskId].storageIndex]); + } + targetSpecies = gTasks[taskId].tTargetSpecies; + SetMonData(mon, MON_DATA_SPECIES, &targetSpecies); + CalculateMonStats(mon); + CompactPartySlots(); + CalculatePlayerPartyCount(); + gTasks[taskId].tState++; + PlaySE(SE_M_TELEPORT); + break; + case 1: + targetSpecies = gTasks[taskId].tTargetSpecies; + if (gTasks[taskId].tAnimWait == 0) + { + icon->oam.mosaic = TRUE; + icon->data[0] = 10; + icon->data[1] = 1; + icon->data[2] = taskId; + icon->callback = SpriteCB_FormChangeIconMosaic; + SetGpuReg(REG_OFFSET_MOSAIC, (icon->data[0] << 12) | (icon->data[1] << 8)); + if (gTasks[taskId].fusionType == FUSE_MON) + { + icon2->oam.mosaic = TRUE; + icon2->data[0] = 10; + icon2->data[1] = 1; + icon2->data[2] = taskId; + icon2->callback = SpriteCB_FormChangeIconMosaic; + SetGpuReg(REG_OFFSET_MOSAIC, (icon2->data[0] << 12) | (icon2->data[1] << 8)); + } + } + + if (++gTasks[taskId].tAnimWait == 60) + { + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_WHITEALPHA); + gTasks[taskId].tState++; + } + break; + case 2: + if (gPaletteFade.active) + break; + if (gTasks[taskId].fusionType == FUSE_MON && gTasks[taskId].firstFusionSlot > gTasks[taskId].secondFusionSlot) + { + gTasks[taskId].firstFusionSlot--; + gPartyMenu.slotId--; + } + RefreshPartyMenu(); + gTasks[taskId].tState++; + break; + case 3: + BeginNormalPaletteFade(PALETTES_ALL, 16, 0, 0, RGB_WHITEALPHA); + gTasks[taskId].tState++; + break; + case 4: + targetSpecies = gTasks[taskId].tTargetSpecies; + PlayCry_Normal(targetSpecies, 0); + gTasks[taskId].tState++; + break; + case 5: + if (IsCryFinished()) + { + GetMonNickname(mon, gStringVar1); + StringExpandPlaceholders(gStringVar4, gText_PkmnTransformed); + DisplayPartyMenuMessage(gStringVar4, FALSE); + ScheduleBgCopyTilemapToVram(2); + gTasks[taskId].tState++; + } + break; + case 6: + if (!IsPartyMenuTextPrinterActive()) + { + if (gTasks[taskId].moveToLearn != 0) + { + if (gTasks[taskId].fusionType == FUSE_MON) + FormChangeTeachMove(taskId, gTasks[taskId].moveToLearn, gTasks[taskId].firstFusionSlot); + else + { + DeleteMove(mon, gTasks[taskId].forgetMove); + if (!DoesMonHaveAnyMoves(mon)) + FormChangeTeachMove(taskId, gTasks[taskId].moveToLearn, gTasks[taskId].firstFusionSlot); + } + } + gTasks[taskId].tState++; + } + break; + case 7: + gTasks[taskId].func = (void *)GetWordTaskArg(taskId, tNextFunc); + break; + } +} + +void ItemUseCB_Fusion(u8 taskId, TaskFunc taskFunc) +{ + u16 i; + struct Task *task = &gTasks[taskId]; + u16 species = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES); + const struct Fusion *itemFusion = gFusionTablePointers[species]; + + PlaySE(SE_SELECT); + switch (IsFusionMon(species)) + { + case FALSE: // Cancel if Not a Fuse Mon + break; + case UNFUSE_MON: + if (task->fusionType == FUSE_MON) // Cancel if An already Fused Mon Is Chosen For The Second Fusion Mon + break; + if (gPlayerPartyCount == PARTY_SIZE) + { + gPartyMenuUseExitCallback = FALSE; + DisplayPartyMenuMessage(gText_YourPartysFull, TRUE); + ScheduleBgCopyTilemapToVram(2); + task->func = taskFunc; + return; + } + for (i = 0; itemFusion[i].fusionStorageIndex != FUSION_TERMINATOR; i++) // Loops through fusion table and checks if the mon can be unfused + { + if (gPokemonStoragePtr->fusions[itemFusion[i].fusionStorageIndex].level == 0) + continue; + if (itemFusion[i].itemId == gSpecialVar_ItemId && GetMonData(&gPokemonStoragePtr->fusions[itemFusion[i].fusionStorageIndex], MON_DATA_SPECIES) == itemFusion[i].targetSpecies2) + { + task->fusionType = UNFUSE_MON; + task->firstFusion = species; + task->firstFusionSlot = gPartyMenu.slotId; + task->storageIndex = itemFusion[i].fusionStorageIndex; + task->fusionResult = itemFusion[i].targetSpecies1; + task->unfuseSecondMon = itemFusion[i].targetSpecies2; + task->moveToLearn = itemFusion[i].unfuseForgetMove; + task->forgetMove = itemFusion[i].fusionMove; + TryItemUseFusionChange(taskId, taskFunc); + return; + } + } + break; + case FUSE_MON: + if (task->fusionType == FUSE_MON) // Cancel If Second Mon is Another First Fusion Mon + break; + for (i = 0; itemFusion[i].fusionStorageIndex != FUSION_TERMINATOR; i++) // Run through the Fusion table for each species and check if the item matches one of the entries + { + if (itemFusion[i].itemId == gSpecialVar_ItemId) + { + task->fusionType = FUSE_MON; + task->firstFusion = species; + task->firstFusionSlot = gPartyMenu.slotId; + task->storageIndex = itemFusion[i].fusionStorageIndex; + task->func = Task_HandleChooseMonInput; + gPartyMenuUseExitCallback = FALSE; + sPartyMenuInternal->exitCallback = NULL; + PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[0]); + DisplayPartyMenuStdMessage(PARTY_MSG_CHOOSE_SECOND_FUSION); + return; + } + } + break; + case SECOND_FUSE_MON: + if (task->fusionType != FUSE_MON) // Cancel if Secondary Fusion Mon Chosen First + break; + for (i = 0; itemFusion[i].fusionStorageIndex != FUSION_TERMINATOR; i++) // run through fusion table and check if the fusion works + { + if (gPokemonStoragePtr->fusions[itemFusion[i].fusionStorageIndex].level != 0) + continue; + if (itemFusion[i].itemId == gSpecialVar_ItemId && itemFusion[i].targetSpecies1 == task->firstFusion && itemFusion[i].targetSpecies2 == species) + { + task->storageIndex = itemFusion[i].fusionStorageIndex; + task->fusionResult = itemFusion[i].fusingIntoMon; + task->secondFusionSlot = gPartyMenu.slotId; + task->moveToLearn = itemFusion[i].fusionMove; + // Start Fusion + TryItemUseFusionChange(taskId, taskFunc); + return; + } + } + break; + } + // No Effect Exit + gPartyMenuUseExitCallback = FALSE; + DisplayPartyMenuMessage(gText_WontHaveEffect, TRUE); + ScheduleBgCopyTilemapToVram(2); + task->func = taskFunc; + return; +} + +#undef FUSE_MON +#undef UNFUSE_MON +#undef SECOND_FUSE_MON + +#undef fusionType +#undef firstFusion +#undef firstFusionSlot +#undef fusionResult +#undef secondFusionSlot +#undef unfuseSecondMon +#undef moveToLearn +#undef forgetMove +#undef storageIndex + static void SpriteCB_FormChangeIconMosaic(struct Sprite *sprite) { u8 taskId = sprite->data[2]; @@ -5772,8 +6281,24 @@ static void Task_TryItemUseFormChange(u8 taskId) break; case 6: if (!IsPartyMenuTextPrinterActive()) - gTasks[taskId].tState++; + { + if (gSpecialVar_ItemId == ITEM_ROTOM_CATALOG) //only for rotom currently + { + u32 i; + for (i = 0; i < ARRAY_COUNT(sRotomFormChangeMoves); i++) + DeleteMove(mon, sRotomFormChangeMoves[i]); + if (gSpecialVar_0x8000 == MOVE_THUNDER_SHOCK) + { + if (!DoesMonHaveAnyMoves(mon)) + FormChangeTeachMove(taskId, gSpecialVar_0x8000, gPartyMenu.slotId); + } + else + FormChangeTeachMove(taskId, gSpecialVar_0x8000, gPartyMenu.slotId); + } + + gTasks[taskId].tState++; + } break; case 7: gTasks[taskId].func = (void *)GetWordTaskArg(taskId, tNextFunc); @@ -5817,6 +6342,111 @@ void ItemUseCB_FormChange_ConsumedOnUse(u8 taskId, TaskFunc task) if (TryItemUseFormChange(taskId, task)) RemoveBagItem(gSpecialVar_ItemId, 1); } + +void ItemUseCB_RotomCatalog(u8 taskId, TaskFunc task) +{ + PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[0]); + PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[1]); + SetPartyMonSelectionActions(gPlayerParty, gPartyMenu.slotId, ACTIONS_ROTOM_CATALOG); + DisplaySelectionWindow(SELECTWINDOW_CATALOG); + DisplayPartyMenuStdMessage(PARTY_MSG_WHICH_APPLIANCE); + gTasks[taskId].data[0] = 0xFF; + gTasks[taskId].func = Task_HandleSelectionMenuInput; +} + +bool32 TryMultichoiceFormChange(u8 taskId) +{ + struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId]; + u32 targetSpecies = GetFormChangeTargetSpecies(mon, FORM_CHANGE_ITEM_USE_MULTICHOICE, gSpecialVar_ItemId); + + PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[0]); + PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[1]); + + if (targetSpecies != SPECIES_NONE) + { + gPartyMenuUseExitCallback = TRUE; + SetWordTaskArg(taskId, tNextFunc, (u32)Task_ClosePartyMenuAfterText); + gTasks[taskId].func = Task_TryItemUseFormChange; + gTasks[taskId].tState = 0; + gTasks[taskId].tTargetSpecies = targetSpecies; + gTasks[taskId].tAnimWait = 0; + return TRUE; + } + else + { + gPartyMenuUseExitCallback = FALSE; + PlaySE(SE_SELECT); + DisplayPartyMenuMessage(gText_WontHaveEffect, TRUE); + ScheduleBgCopyTilemapToVram(2); + gTasks[taskId].func = Task_ClosePartyMenuAfterText; + return FALSE; + } +} + +static void CursorCb_CatalogBulb(u8 taskId) +{ + gSpecialVar_Result = 0; + gSpecialVar_0x8000 = MOVE_THUNDER_SHOCK; + TryMultichoiceFormChange(taskId); +} + +static void CursorCb_CatalogOven(u8 taskId) +{ + gSpecialVar_Result = 1; + gSpecialVar_0x8000 = MOVE_OVERHEAT; + TryMultichoiceFormChange(taskId); +} + +static void CursorCb_CatalogWashing(u8 taskId) +{ + gSpecialVar_Result = 2; + gSpecialVar_0x8000 = MOVE_HYDRO_PUMP; + TryMultichoiceFormChange(taskId); +} + +static void CursorCb_CatalogFridge(u8 taskId) +{ + gSpecialVar_Result = 3; + gSpecialVar_0x8000 = MOVE_BLIZZARD; + TryMultichoiceFormChange(taskId); +} + +static void CursorCb_CatalogFan(u8 taskId) +{ + gSpecialVar_Result = 4; + gSpecialVar_0x8000 = MOVE_AIR_SLASH; + TryMultichoiceFormChange(taskId); +} + +static void CursorCb_CatalogMower(u8 taskId) +{ + gSpecialVar_Result = 5; + gSpecialVar_0x8000 = MOVE_LEAF_STORM; + TryMultichoiceFormChange(taskId); +} + +void ItemUseCB_ZygardeCube(u8 taskId, TaskFunc task) +{ + PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[0]); + PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[1]); + SetPartyMonSelectionActions(gPlayerParty, gPartyMenu.slotId, ACTIONS_ZYGARDE_CUBE); + DisplaySelectionWindow(SELECTWINDOW_ZYGARDECUBE); + gTasks[taskId].data[0] = 0xFF; + gTasks[taskId].func = Task_HandleSelectionMenuInput; +} + +static void CursorCb_ChangeForm(u8 taskId) +{ + gSpecialVar_Result = 0; + TryMultichoiceFormChange(taskId); +} + +static void CursorCb_ChangeAbility(u8 taskId) +{ + gSpecialVar_Result = 1; + TryMultichoiceFormChange(taskId); +} + void TryItemHoldFormChange(struct Pokemon *mon) { u16 targetSpecies = GetFormChangeTargetSpecies(mon, FORM_CHANGE_ITEM_HOLD, 0); @@ -6204,7 +6834,7 @@ static bool8 GetBattleEntryEligibility(struct Pokemon *mon) species = GetMonData(mon, MON_DATA_SPECIES); for (; gFrontierBannedSpecies[i] != 0xFFFF; i++) { - if (gFrontierBannedSpecies[i] == species) + if (gFrontierBannedSpecies[i] == GET_BASE_SPECIES_ID(species)) return FALSE; } return TRUE; diff --git a/src/pokeblock_feed.c b/src/pokeblock_feed.c index 7b61eec478e9..c7ef8c9e9049 100644 --- a/src/pokeblock_feed.c +++ b/src/pokeblock_feed.c @@ -719,7 +719,6 @@ static bool8 LoadMonAndSceneGfx(struct Pokemon *mon) { u16 species; u32 personality, trainerId; - const struct CompressedSpritePalette *palette; switch (sPokeblockFeed->loadGfxState) { @@ -735,10 +734,8 @@ static bool8 LoadMonAndSceneGfx(struct Pokemon *mon) species = GetMonData(mon, MON_DATA_SPECIES_OR_EGG); personality = GetMonData(mon, MON_DATA_PERSONALITY); trainerId = GetMonData(mon, MON_DATA_OT_ID); - palette = GetMonSpritePalStructFromOtIdPersonality(species, trainerId, personality); - - LoadCompressedSpritePalette(palette); - SetMultiuseSpriteTemplateToPokemon(palette->tag, B_POSITION_OPPONENT_LEFT); + LoadCompressedSpritePaletteWithTag(GetMonSpritePalFromSpeciesAndPersonality(species, trainerId, personality), species); + SetMultiuseSpriteTemplateToPokemon(species, B_POSITION_OPPONENT_LEFT); sPokeblockFeed->loadGfxState++; break; case 2: diff --git a/src/pokedex.c b/src/pokedex.c index 487413e4b6da..43e945a9885f 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -280,6 +280,10 @@ static void ResetOtherVideoRegisters(u16); static u8 PrintCryScreenSpeciesName(u8, u16, u8, u8); static void PrintDecimalNum(u8 windowId, u16 num, u8 left, u8 top); static void DrawFootprint(u8 windowId, u16 dexNum); +static u16 GetPokemonScaleFromNationalDexNumber(u16 nationalNum); +static u16 GetPokemonOffsetFromNationalDexNumber(u16 nationalNum); +static u16 GetTrainerScaleFromNationalDexNumber(u16 nationalNum); +static u16 GetTrainerOffsetFromNationalDexNumber(u16 nationalNum); static u16 CreateSizeScreenTrainerPic(u16, s16, s16, s8); static u16 GetNextPosition(u8, u16, u16, u16); static u8 LoadSearchMenu(void); @@ -845,15 +849,13 @@ static const struct WindowTemplate sPokemonList_WindowTemplate[] = DUMMY_WIN_TEMPLATE }; +static const u8 sText_No0000[] = _("{NO}0000"); static const u8 sText_No000[] = _("{NO}000"); static const u8 sCaughtBall_Gfx[] = INCBIN_U8("graphics/pokedex/caught_ball.4bpp"); static const u8 sText_TenDashes[] = _("----------"); ALIGNED(4) static const u8 sExpandedPlaceholder_PokedexDescription[] = _(""); -#include "data/pokemon/pokedex_text.h" -#include "data/pokemon/pokedex_entries.h" - static const u16 sSizeScreenSilhouette_Pal[] = INCBIN_U16("graphics/pokedex/size_silhouette.gbapal"); static const struct BgTemplate sInfoScreen_BgTemplate[] = @@ -990,8 +992,6 @@ static const struct WindowTemplate sNewEntryInfoScreen_WindowTemplates[] = static const u8 sText_TenDashes2[] = _("----------"); -#include "data/pokemon_graphics/footprint_table.h" - // First character in range followed by number of characters in range for upper and lowercase static const u8 sLetterSearchRanges[][4] = { @@ -2427,16 +2427,22 @@ static void CreateMonListEntry(u8 position, u16 b, u16 ignored) static void CreateMonDexNum(u16 entryNum, u8 left, u8 top, u16 unused) { - u8 text[6]; - u16 dexNum; + u8 text[7]; + u16 dexNum, offset = 2; - memcpy(text, sText_No000, ARRAY_COUNT(text)); dexNum = sPokedexView->pokedexList[entryNum].dexNum; if (sPokedexView->dexMode == DEX_MODE_HOENN) dexNum = NationalToHoennOrder(dexNum); - text[2] = CHAR_0 + dexNum / 100; - text[3] = CHAR_0 + (dexNum % 100) / 10; - text[4] = CHAR_0 + (dexNum % 100) % 10; + memcpy(text, sText_No0000, ARRAY_COUNT(sText_No0000)); + if (NATIONAL_DEX_COUNT > 999) + { + text[2] = CHAR_0 + dexNum / 1000; + offset++; + } + text[offset] = CHAR_0 + (dexNum % 1000) / 100; + text[offset + 1] = CHAR_0 + ((dexNum % 1000) % 100) / 10; + text[offset + 2] = CHAR_0 + ((dexNum % 1000) % 100) % 10; + text[offset + 3] = EOS; PrintMonDexNumAndName(0, FONT_NARROW, text, left, top); } @@ -2874,6 +2880,12 @@ static void CreateInterfaceSprites(u8 page) else { u16 seenOwnedCount; + // Changes sprite distance based on the seen count (owned count can't ever be bigger than it) + u8 counterXDist = 7; + u8 counterX1s = sPokedexView->seenCount > 999 ? 57 : 56; + u8 counterX10s = counterX1s - counterXDist; + u8 counterX100s = counterX10s - counterXDist; + u8 counterX1000s = counterX100s - counterXDist; // Seen text CreateSprite(&sSeenOwnTextSpriteTemplate, 32, 40, 1); @@ -2898,7 +2910,7 @@ static void CreateInterfaceSprites(u8 page) // Hoenn seen value - 100s seenOwnedCount = GetHoennPokedexCount(FLAG_GET_SEEN); drawNextDigit = FALSE; - spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, 40, 45, 1); + spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX100s, 45, 1); digitNum = seenOwnedCount / 100; StartSpriteAnim(&gSprites[spriteId], digitNum); if (digitNum != 0) @@ -2907,7 +2919,7 @@ static void CreateInterfaceSprites(u8 page) gSprites[spriteId].invisible = TRUE; // Hoenn seen value - 10s - spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, 48, 45, 1); + spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX10s, 45, 1); digitNum = (seenOwnedCount % 100) / 10; if (digitNum != 0 || drawNextDigit) StartSpriteAnim(&gSprites[spriteId], digitNum); @@ -2915,38 +2927,49 @@ static void CreateInterfaceSprites(u8 page) gSprites[spriteId].invisible = TRUE; // Hoenn seen value - 1s - spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, 56, 45, 1); + spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX1s, 45, 1); digitNum = (seenOwnedCount % 100) % 10; StartSpriteAnim(&gSprites[spriteId], digitNum); - // National seen value - 100s + // National seen value - 1000s drawNextDigit = FALSE; - spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, 40, 55, 1); - digitNum = sPokedexView->seenCount / 100; + spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX1000s, 55, 1); + digitNum = sPokedexView->seenCount / 1000; StartSpriteAnim(&gSprites[spriteId], digitNum); if (digitNum != 0) drawNextDigit = TRUE; else gSprites[spriteId].invisible = TRUE; + // National seen value - 100s + spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX100s, 55, 1); + digitNum = (sPokedexView->seenCount % 1000) / 100; + if (digitNum != 0 || drawNextDigit) + { + drawNextDigit = TRUE; + StartSpriteAnim(&gSprites[spriteId], digitNum); + } + else + gSprites[spriteId].invisible = TRUE; + // National seen value - 10s - spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, 48, 55, 1); - digitNum = (sPokedexView->seenCount % 100) / 10; + spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX10s, 55, 1); + digitNum = ((sPokedexView->seenCount % 1000) % 100) / 10; if (digitNum != 0 || drawNextDigit) StartSpriteAnim(&gSprites[spriteId], digitNum); else gSprites[spriteId].invisible = TRUE; // National seen value - 1s - spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, 56, 55, 1); - digitNum = (sPokedexView->seenCount % 100) % 10; + spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX1s, 55, 1); + digitNum = ((sPokedexView->seenCount % 1000) % 100) % 10; StartSpriteAnim(&gSprites[spriteId], digitNum); seenOwnedCount = GetHoennPokedexCount(FLAG_GET_CAUGHT); // Hoenn owned value - 100s drawNextDigit = FALSE; - spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, 40, 81, 1); + spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX100s, 81, 1); digitNum = seenOwnedCount / 100; StartSpriteAnim(&gSprites[spriteId], digitNum); if (digitNum != 0) @@ -2955,7 +2978,7 @@ static void CreateInterfaceSprites(u8 page) gSprites[spriteId].invisible = TRUE; // Hoenn owned value - 10s - spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, 48, 81, 1); + spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX10s, 81, 1); digitNum = (seenOwnedCount % 100) / 10; if (digitNum != 0 || drawNextDigit) StartSpriteAnim(&gSprites[spriteId], digitNum); @@ -2963,31 +2986,42 @@ static void CreateInterfaceSprites(u8 page) gSprites[spriteId].invisible = TRUE; // Hoenn owned value - 1s - spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, 56, 81, 1); + spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX1s, 81, 1); digitNum = (seenOwnedCount % 100) % 10; StartSpriteAnim(&gSprites[spriteId], digitNum); - // National owned value - 100s + // National owned value - 1000s drawNextDigit = FALSE; - spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, 40, 91, 1); - digitNum = sPokedexView->ownCount / 100; + spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX1000s, 91, 1); + digitNum = sPokedexView->ownCount / 1000; StartSpriteAnim(&gSprites[spriteId], digitNum); if (digitNum != 0) drawNextDigit = TRUE; else gSprites[spriteId].invisible = TRUE; + // National owned value - 100s + spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX100s, 91, 1); + digitNum = (sPokedexView->ownCount % 1000) / 100; + if (digitNum != 0 || drawNextDigit) + { + drawNextDigit = TRUE; + StartSpriteAnim(&gSprites[spriteId], digitNum); + } + else + gSprites[spriteId].invisible = TRUE; + // National owned value - 10s - spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, 48, 91, 1); - digitNum = (sPokedexView->ownCount % 100) / 10; + spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX10s, 91, 1); + digitNum = ((sPokedexView->ownCount % 1000) % 100) / 10; if (digitNum != 0 || drawNextDigit) StartSpriteAnim(&gSprites[spriteId], digitNum); else gSprites[spriteId].invisible = TRUE; // National owned value - 1s - spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, 56, 91, 1); - digitNum = (sPokedexView->ownCount % 100) % 10; + spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX1s, 91, 1); + digitNum = ((sPokedexView->ownCount % 1000) % 100) % 10; StartSpriteAnim(&gSprites[spriteId], digitNum); } spriteId = CreateSprite(&sDexListStartMenuCursorSpriteTemplate, 136, 96, 1); @@ -3775,8 +3809,8 @@ static void Task_LoadSizeScreen(u8 taskId) gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; gSprites[spriteId].oam.matrixNum = 1; gSprites[spriteId].oam.priority = 0; - gSprites[spriteId].y2 = gPokedexEntries[sPokedexListItem->dexNum].trainerOffset; - SetOamMatrix(1, gPokedexEntries[sPokedexListItem->dexNum].trainerScale, 0, 0, gPokedexEntries[sPokedexListItem->dexNum].trainerScale); + gSprites[spriteId].y2 = GetTrainerOffsetFromNationalDexNumber(sPokedexListItem->dexNum); + SetOamMatrix(1, GetTrainerScaleFromNationalDexNumber(sPokedexListItem->dexNum), 0, 0, GetTrainerScaleFromNationalDexNumber(sPokedexListItem->dexNum)); LoadPalette(sSizeScreenSilhouette_Pal, OBJ_PLTT_ID2(gSprites[spriteId].oam.paletteNum), PLTT_SIZE_4BPP); gTasks[taskId].tTrainerSpriteId = spriteId; gMain.state++; @@ -3786,8 +3820,8 @@ static void Task_LoadSizeScreen(u8 taskId) gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; gSprites[spriteId].oam.matrixNum = 2; gSprites[spriteId].oam.priority = 0; - gSprites[spriteId].y2 = gPokedexEntries[sPokedexListItem->dexNum].pokemonOffset; - SetOamMatrix(2, gPokedexEntries[sPokedexListItem->dexNum].pokemonScale, 0, 0, gPokedexEntries[sPokedexListItem->dexNum].pokemonScale); + gSprites[spriteId].y2 = GetPokemonOffsetFromNationalDexNumber(sPokedexListItem->dexNum); + SetOamMatrix(2, GetPokemonScaleFromNationalDexNumber(sPokedexListItem->dexNum), 0, 0, GetPokemonScaleFromNationalDexNumber(sPokedexListItem->dexNum)); LoadPalette(sSizeScreenSilhouette_Pal, OBJ_PLTT_ID2(gSprites[spriteId].oam.paletteNum), PLTT_SIZE_4BPP); gTasks[taskId].tMonSpriteId = spriteId; CopyWindowToVram(WIN_INFO, COPYWIN_FULL); @@ -4108,10 +4142,11 @@ static void PrintMonInfo(u32 num, u32 value, u32 owned, u32 newEntry) { u8 str[0x10]; u8 str2[0x30]; - u16 natNum; + u16 species; const u8 *name; const u8 *category; const u8 *description; + u8 digitCount = (NATIONAL_DEX_COUNT > 999 && IsNationalPokedexEnabled()) ? 4 : 3; if (newEntry) PrintInfoScreenText(gText_PokedexRegistration, GetStringCenterAlignXOffset(FONT_NORMAL, gText_PokedexRegistration, DISPLAY_WIDTH), 0); @@ -4119,17 +4154,19 @@ static void PrintMonInfo(u32 num, u32 value, u32 owned, u32 newEntry) value = NationalToHoennOrder(num); else value = num; - ConvertIntToDecimalStringN(StringCopy(str, gText_NumberClear01), value, STR_CONV_MODE_LEADING_ZEROS, 3); + + ConvertIntToDecimalStringN(StringCopy(str, gText_NumberClear01), value, STR_CONV_MODE_LEADING_ZEROS, digitCount); PrintInfoScreenText(str, 0x60, 0x19); - natNum = NationalPokedexNumToSpecies(num); - if (natNum) - name = GetSpeciesName(natNum); + species = NationalPokedexNumToSpecies(num); + if (species) + name = GetSpeciesName(species); else name = sText_TenDashes2; - PrintInfoScreenText(name, 0x84, 0x19); + PrintInfoScreenText(name, 114 + (6 * digitCount), 0x19); + if (owned) { - CopyMonCategoryText(num, str2); + CopyMonCategoryText(species, str2); category = str2; } else @@ -4141,8 +4178,8 @@ static void PrintMonInfo(u32 num, u32 value, u32 owned, u32 newEntry) PrintInfoScreenText(gText_WTWeight, 0x60, 0x49); if (owned) { - PrintMonHeight(gPokedexEntries[num].height, 0x81, 0x39); - PrintMonWeight(gPokedexEntries[num].weight, 0x81, 0x49); + PrintMonHeight(GetSpeciesHeight(species), 0x81, 0x39); + PrintMonWeight(GetSpeciesWeight(species), 0x81, 0x49); } else { @@ -4150,7 +4187,7 @@ static void PrintMonInfo(u32 num, u32 value, u32 owned, u32 newEntry) PrintInfoScreenText(gText_UnkWeight, 0x81, 0x49); } if (owned) - description = gPokedexEntries[num].description; + description = GetSpeciesPokedexDescription(species); else description = sExpandedPlaceholder_PokedexDescription; PrintInfoScreenText(description, GetStringCenterAlignXOffset(FONT_NORMAL, description, DISPLAY_WIDTH), 95); @@ -4247,24 +4284,6 @@ static void PrintMonWeight(u16 weight, u8 left, u8 top) PrintInfoScreenText(buffer, left, top); } -const u8 *GetPokedexCategoryName(u16 dexNum) // unused -{ - return gPokedexEntries[dexNum].categoryName; -} - -u16 GetPokedexHeightWeight(u16 dexNum, u8 data) -{ - switch (data) - { - case 0: // height - return gPokedexEntries[dexNum].height; - case 1: // weight - return gPokedexEntries[dexNum].weight; - default: - return 1; - } -} - s8 GetSetPokedexFlag(u16 nationalDexNo, u8 caseID) { u32 index, bit, mask; @@ -4392,7 +4411,7 @@ bool16 HasAllMons(void) for (i = 1; i < NATIONAL_DEX_COUNT + 1; i++) { - if (!(gSpeciesInfo[i].flags & SPECIES_FLAG_MYTHICAL) && !GetSetPokedexFlag(i, FLAG_GET_CAUGHT)) + if (!(gSpeciesInfo[i].isMythical) && !GetSetPokedexFlag(i, FLAG_GET_CAUGHT)) return FALSE; } @@ -4549,7 +4568,7 @@ static void UNUSED PrintDecimalNum(u8 windowId, u16 num, u8 left, u8 top) static void DrawFootprint(u8 windowId, u16 dexNum) { u8 ALIGNED(4) footprint4bpp[TILE_SIZE_4BPP * NUM_FOOTPRINT_TILES]; - const u8 *footprintGfx = gMonFootprintTable[NationalPokedexNumToSpecies(dexNum)]; + const u8 *footprintGfx = gSpeciesInfo[NationalPokedexNumToSpecies(dexNum)].footprint; u32 i, j, tileIdx = 0; if (footprintGfx != NULL) @@ -4640,6 +4659,30 @@ u16 CreateMonSpriteFromNationalDexNumber(u16 nationalNum, s16 x, s16 y, u16 pale return CreateMonPicSprite(nationalNum, SHINY_ODDS, GetPokedexMonPersonality(nationalNum), TRUE, x, y, paletteSlot, TAG_NONE); } +static u16 GetPokemonScaleFromNationalDexNumber(u16 nationalNum) +{ + nationalNum = NationalPokedexNumToSpecies(nationalNum); + return gSpeciesInfo[nationalNum].pokemonScale; +} + +static u16 GetPokemonOffsetFromNationalDexNumber(u16 nationalNum) +{ + nationalNum = NationalPokedexNumToSpecies(nationalNum); + return gSpeciesInfo[nationalNum].pokemonOffset; +} + +static u16 GetTrainerScaleFromNationalDexNumber(u16 nationalNum) +{ + nationalNum = NationalPokedexNumToSpecies(nationalNum); + return gSpeciesInfo[nationalNum].trainerScale; +} + +static u16 GetTrainerOffsetFromNationalDexNumber(u16 nationalNum) +{ + nationalNum = NationalPokedexNumToSpecies(nationalNum); + return gSpeciesInfo[nationalNum].trainerOffset; +} + static u16 CreateSizeScreenTrainerPic(u16 species, s16 x, s16 y, s8 paletteSlot) { return CreateTrainerPicSprite(species, TRUE, x, y, paletteSlot, TAG_NONE); diff --git a/src/pokedex_plus_hgss.c b/src/pokedex_plus_hgss.c index 65df81826380..d27d2919bee5 100644 --- a/src/pokedex_plus_hgss.c +++ b/src/pokedex_plus_hgss.c @@ -116,21 +116,17 @@ enum NAME_YZ, }; -extern const u8 *const gMonFootprintTable[]; extern const u16 gPokedexOrder_Alphabetical[]; extern const u16 gPokedexOrder_Height[]; extern const u16 gPokedexOrder_Weight[]; -extern const struct Evolution gEvolutionTable[][EVOS_PER_MON]; -extern const struct PokedexEntry gPokedexEntries[]; // static .rodata strings -static const u8 sText_No000[] = _("{NO}000"); +static const u8 sText_No0000[] = _("0000"); static const u8 sCaughtBall_Gfx[] = INCBIN_U8("graphics/pokedex/caught_ball.4bpp"); static const u8 sText_TenDashes[] = _("----------"); ALIGNED(4) static const u8 sExpandedPlaceholder_PokedexDescription[] = _(""); static const u16 sSizeScreenSilhouette_Pal[] = INCBIN_U16("graphics/pokedex/size_silhouette.gbapal"); -static const u8 sText_TenDashes2[] = _("----------"); static const u8 sText_Stats_Buttons[] = _("{A_BUTTON}TOGGLE {DPAD_UPDOWN}MOVES"); static const u8 sText_Stats_Buttons_Decapped[] = _("{A_BUTTON}Toggle {DPAD_UPDOWN}Moves"); @@ -544,6 +540,7 @@ static void ResetOtherVideoRegisters(u16); static u8 PrintCryScreenSpeciesName(u8, u16, u8, u8); static void PrintDecimalNum(u8 windowId, u16 num, u8 left, u8 top); static void DrawFootprint(u8 windowId, u16 dexNum); +static u16 CreateMonSpriteFromNationalDexNumberHGSS(u16 nationalNum, s16 x, s16 y, u16 paletteSlot); static u16 CreateSizeScreenTrainerPic(u16, s16, s16, s8); static u16 GetNextPosition(u8, u16, u16, u16); static u8 LoadSearchMenu(void); @@ -2691,7 +2688,7 @@ static void PrintMonDexNumAndName(u8 windowId, u8 fontId, const u8 *str, u8 left color[0] = TEXT_COLOR_TRANSPARENT; color[1] = TEXT_DYNAMIC_COLOR_6; color[2] = TEXT_COLOR_LIGHT_GRAY; - AddTextPrinterParameterized4(windowId, fontId, left * 8, (top * 8) + 1, 0, 0, color, TEXT_SKIP_DRAW, str); + AddTextPrinterParameterized4(windowId, fontId, left * 8 - 4, (top * 8) + 1, 0, 0, color, TEXT_SKIP_DRAW, str); } static void PrintMonDexNumAndName_2(u8 windowId, u8 fontId, const u8* str, u8 left, u8 top) //offset for closer numer + text @@ -2701,7 +2698,7 @@ static void PrintMonDexNumAndName_2(u8 windowId, u8 fontId, const u8* str, u8 le color[0] = TEXT_COLOR_TRANSPARENT; color[1] = TEXT_DYNAMIC_COLOR_6; color[2] = TEXT_COLOR_LIGHT_GRAY; - AddTextPrinterParameterized4(windowId, fontId, left * 8 - 3, (top * 8) + 1, 0, 0, color, -1, str); + AddTextPrinterParameterized4(windowId, fontId, left * 8 - 13, (top * 8) + 1, 0, 0, color, -1, str); } // u16 ignored is passed but never used @@ -2730,13 +2727,13 @@ static void CreateMonListEntry(u8 position, u16 b, u16 ignored) { CreateMonDexNum(entryNum, MON_LIST_X+1, i * 2, ignored); CreateCaughtBall(sPokedexView->pokedexList[entryNum].owned, MON_LIST_X, i * 2, ignored); - CreateMonName(sPokedexView->pokedexList[entryNum].dexNum, MON_LIST_X+5, i * 2); + CreateMonName(sPokedexView->pokedexList[entryNum].dexNum, MON_LIST_X + 5, i * 2); } else { CreateMonDexNum(entryNum, MON_LIST_X+1, i * 2, ignored); CreateCaughtBall(FALSE, MON_LIST_X, i * 2, ignored); - CreateMonName(0, MON_LIST_X+5, i * 2); + CreateMonName(0, MON_LIST_X + 5, i * 2); } } entryNum++; @@ -2755,13 +2752,13 @@ static void CreateMonListEntry(u8 position, u16 b, u16 ignored) { CreateMonDexNum(entryNum, MON_LIST_X+1, sPokedexView->listVOffset * 2, ignored); CreateCaughtBall(sPokedexView->pokedexList[entryNum].owned, MON_LIST_X, sPokedexView->listVOffset * 2, ignored); - CreateMonName(sPokedexView->pokedexList[entryNum].dexNum, MON_LIST_X+5, sPokedexView->listVOffset * 2); + CreateMonName(sPokedexView->pokedexList[entryNum].dexNum, MON_LIST_X + 5, sPokedexView->listVOffset * 2); } else { CreateMonDexNum(entryNum, MON_LIST_X+1, sPokedexView->listVOffset * 2, ignored); CreateCaughtBall(FALSE, MON_LIST_X, sPokedexView->listVOffset * 2, ignored); - CreateMonName(0, MON_LIST_X+5, sPokedexView->listVOffset * 2); + CreateMonName(0, MON_LIST_X + 5, sPokedexView->listVOffset * 2); } } break; @@ -2779,13 +2776,13 @@ static void CreateMonListEntry(u8 position, u16 b, u16 ignored) { CreateMonDexNum(entryNum, MON_LIST_X+1, vOffset * 2, ignored); CreateCaughtBall(sPokedexView->pokedexList[entryNum].owned, MON_LIST_X, vOffset * 2, ignored); - CreateMonName(sPokedexView->pokedexList[entryNum].dexNum, MON_LIST_X+5, vOffset * 2); + CreateMonName(sPokedexView->pokedexList[entryNum].dexNum, MON_LIST_X + 5, vOffset * 2); } else { CreateMonDexNum(entryNum, MON_LIST_X+1, vOffset * 2, ignored); CreateCaughtBall(FALSE, MON_LIST_X, vOffset * 2, ignored); - CreateMonName(0, MON_LIST_X+5, vOffset * 2); + CreateMonName(0, MON_LIST_X + 5, vOffset * 2); } } break; @@ -2795,25 +2792,31 @@ static void CreateMonListEntry(u8 position, u16 b, u16 ignored) static void CreateMonDexNum(u16 entryNum, u8 left, u8 top, u16 unused) { - u8 text[6]; - u16 dexNum; + u8 text[5]; + u16 dexNum, offset = 0; - memcpy(text, sText_No000, ARRAY_COUNT(text)); dexNum = sPokedexView->pokedexList[entryNum].dexNum; if (sPokedexView->dexMode == DEX_MODE_HOENN) dexNum = NationalToHoennOrder(dexNum); - text[2] = CHAR_0 + dexNum / 100; - text[3] = CHAR_0 + (dexNum % 100) / 10; - text[4] = CHAR_0 + (dexNum % 100) % 10; + memcpy(text, sText_No0000, ARRAY_COUNT(sText_No0000)); + if (NATIONAL_DEX_COUNT > 999 && sPokedexView->dexMode != DEX_MODE_HOENN) + { + text[0] = CHAR_0 + dexNum / 1000; + offset = 1; + } + text[offset] = CHAR_0 + (dexNum % 1000) / 100; + text[offset + 1] = CHAR_0 + ((dexNum % 1000) % 100) / 10; + text[offset + 2] = CHAR_0 + ((dexNum % 1000) % 100) % 10; + text[offset + 3] = EOS; PrintMonDexNumAndName(0, FONT_NARROW, text, left, top); } static void CreateCaughtBall(bool16 owned, u8 x, u8 y, u16 unused) { if (owned) - BlitBitmapToWindow(0, sCaughtBall_Gfx, x * 8, y * 8, 8, 16); + BlitBitmapToWindow(0, sCaughtBall_Gfx, x * 6, y * 8, 8, 16); else - FillWindowPixelRect(0, PIXEL_FILL(0), x * 8, y * 8, 8, 16); + FillWindowPixelRect(0, PIXEL_FILL(0), x * 6, y * 8, 8, 16); } static u8 CreateMonName(u16 num, u8 left, u8 top) @@ -2822,7 +2825,7 @@ static u8 CreateMonName(u16 num, u8 left, u8 top) num = NationalPokedexNumToSpecies(num); if (num) - str = gSpeciesNames[num]; + str = GetSpeciesName(num); else str = sText_TenDashes; PrintMonDexNumAndName_2(0, FONT_NARROW, str, left, top); @@ -2831,7 +2834,7 @@ static u8 CreateMonName(u16 num, u8 left, u8 top) static void ClearMonListEntry(u8 x, u8 y, u16 unused) { - FillWindowPixelRect(0, PIXEL_FILL(0), x * 8, y * 8, 0x60, 16); + FillWindowPixelRect(0, PIXEL_FILL(0), x * 6, y * 8, 0x60, 16); } // u16 ignored is passed but never used @@ -3134,7 +3137,7 @@ static u32 CreatePokedexMonSprite(u16 num, s16 x, s16 y) { if (sPokedexView->monSpriteIds[i] == 0xFFFF) { - u8 spriteId = CreateMonSpriteFromNationalDexNumber(num, x, y, i); + u8 spriteId = CreateMonSpriteFromNationalDexNumberHGSS(num, x, y, i); gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; gSprites[spriteId].oam.priority = 3; @@ -3150,7 +3153,7 @@ static u32 CreatePokedexMonSprite(u16 num, s16 x, s16 y) #define sIsDownArrow data[1] #define LIST_RIGHT_SIDE_TEXT_X 204 -#define LIST_RIGHT_SIDE_TEXT_X_OFFSET 12 +#define LIST_RIGHT_SIDE_TEXT_X_OFFSET 13 #define LIST_RIGHT_SIDE_TEXT_Y_OFFSET 13 static void CreateInterfaceSprites(u8 page) { @@ -3165,7 +3168,7 @@ static void CreateInterfaceSprites(u8 page) gSprites[spriteId].sIsDownArrow = TRUE; gSprites[spriteId].vFlip = TRUE; - CreateSprite(&sScrollBarSpriteTemplate, 8, 20, 0); + CreateSprite(&sScrollBarSpriteTemplate, 6, 20, 0); if (!IsNationalPokedexEnabled() && page == PAGE_MAIN) { @@ -3227,6 +3230,11 @@ static void CreateInterfaceSprites(u8 page) else if (page == PAGE_MAIN) { u16 seenOwnedCount; + u8 counterXDist = 6; + u8 counterX1s = LIST_RIGHT_SIDE_TEXT_X + LIST_RIGHT_SIDE_TEXT_X_OFFSET + 16 - (sPokedexView->seenCount > 999 ? 0 : 1); + u8 counterX10s = counterX1s - counterXDist; + u8 counterX100s = counterX10s - counterXDist; + u8 counterX1000s = counterX100s - counterXDist; // Hoenn text CreateSprite(&sHoennNationalTextSpriteTemplate, LIST_RIGHT_SIDE_TEXT_X, 40 - LIST_RIGHT_SIDE_TEXT_Y_OFFSET - 6, 1); @@ -3248,7 +3256,7 @@ static void CreateInterfaceSprites(u8 page) // Hoenn seen value - 100s seenOwnedCount = GetHoennPokedexCount(FLAG_GET_SEEN); drawNextDigit = FALSE; - spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, LIST_RIGHT_SIDE_TEXT_X + LIST_RIGHT_SIDE_TEXT_X_OFFSET, 45 - LIST_RIGHT_SIDE_TEXT_Y_OFFSET, 1); + spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX100s, 45 - LIST_RIGHT_SIDE_TEXT_Y_OFFSET, 1); digitNum = seenOwnedCount / 100; StartSpriteAnim(&gSprites[spriteId], digitNum); if (digitNum != 0) @@ -3257,7 +3265,7 @@ static void CreateInterfaceSprites(u8 page) gSprites[spriteId].invisible = TRUE; // Hoenn seen value - 10s - spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, LIST_RIGHT_SIDE_TEXT_X + LIST_RIGHT_SIDE_TEXT_X_OFFSET + 8, 45 - LIST_RIGHT_SIDE_TEXT_Y_OFFSET, 1); + spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX10s, 45 - LIST_RIGHT_SIDE_TEXT_Y_OFFSET, 1); digitNum = (seenOwnedCount % 100) / 10; if (digitNum != 0 || drawNextDigit) StartSpriteAnim(&gSprites[spriteId], digitNum); @@ -3265,14 +3273,14 @@ static void CreateInterfaceSprites(u8 page) gSprites[spriteId].invisible = TRUE; // Hoenn seen value - 1s - spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, LIST_RIGHT_SIDE_TEXT_X + LIST_RIGHT_SIDE_TEXT_X_OFFSET + 16, 45 - LIST_RIGHT_SIDE_TEXT_Y_OFFSET, 1); + spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX1s, 45 - LIST_RIGHT_SIDE_TEXT_Y_OFFSET, 1); digitNum = (seenOwnedCount % 100) % 10; StartSpriteAnim(&gSprites[spriteId], digitNum); seenOwnedCount = GetHoennPokedexCount(FLAG_GET_CAUGHT); // Hoenn owned value - 100s drawNextDigit = FALSE; - spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, LIST_RIGHT_SIDE_TEXT_X + LIST_RIGHT_SIDE_TEXT_X_OFFSET, 55 - LIST_RIGHT_SIDE_TEXT_Y_OFFSET, 1); + spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX100s, 55 - LIST_RIGHT_SIDE_TEXT_Y_OFFSET, 1); digitNum = seenOwnedCount / 100; StartSpriteAnim(&gSprites[spriteId], digitNum); if (digitNum != 0) @@ -3281,7 +3289,7 @@ static void CreateInterfaceSprites(u8 page) gSprites[spriteId].invisible = TRUE; // Hoenn owned value - 10s - spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, LIST_RIGHT_SIDE_TEXT_X + LIST_RIGHT_SIDE_TEXT_X_OFFSET + 8, 55 - LIST_RIGHT_SIDE_TEXT_Y_OFFSET, 1); + spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX10s, 55 - LIST_RIGHT_SIDE_TEXT_Y_OFFSET, 1); digitNum = (seenOwnedCount % 100) / 10; if (digitNum != 0 || drawNextDigit) StartSpriteAnim(&gSprites[spriteId], digitNum); @@ -3289,55 +3297,77 @@ static void CreateInterfaceSprites(u8 page) gSprites[spriteId].invisible = TRUE; // Hoenn owned value - 1s - spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, LIST_RIGHT_SIDE_TEXT_X + LIST_RIGHT_SIDE_TEXT_X_OFFSET + 16, 55 - LIST_RIGHT_SIDE_TEXT_Y_OFFSET, 1); + spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX1s, 55 - LIST_RIGHT_SIDE_TEXT_Y_OFFSET, 1); digitNum = (seenOwnedCount % 100) % 10; StartSpriteAnim(&gSprites[spriteId], digitNum); //**************************** - // National seen value - 100s + // National seen value - 1000s drawNextDigit = FALSE; - spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, LIST_RIGHT_SIDE_TEXT_X + LIST_RIGHT_SIDE_TEXT_X_OFFSET, 78 - LIST_RIGHT_SIDE_TEXT_Y_OFFSET, 1); - digitNum = sPokedexView->seenCount / 100; + spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX1000s, 78 - LIST_RIGHT_SIDE_TEXT_Y_OFFSET, 1); + digitNum = sPokedexView->seenCount / 1000; StartSpriteAnim(&gSprites[spriteId], digitNum); if (digitNum != 0) drawNextDigit = TRUE; else gSprites[spriteId].invisible = TRUE; + // National seen value - 100s + spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX100s, 78 - LIST_RIGHT_SIDE_TEXT_Y_OFFSET, 1); + digitNum = (sPokedexView->seenCount % 1000) / 100; + if (digitNum != 0 || drawNextDigit) + { + drawNextDigit = TRUE; + StartSpriteAnim(&gSprites[spriteId], digitNum); + } + else + gSprites[spriteId].invisible = TRUE; + // National seen value - 10s - spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, LIST_RIGHT_SIDE_TEXT_X + LIST_RIGHT_SIDE_TEXT_X_OFFSET + 8, 78 - LIST_RIGHT_SIDE_TEXT_Y_OFFSET, 1); - digitNum = (sPokedexView->seenCount % 100) / 10; + spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX10s, 78 - LIST_RIGHT_SIDE_TEXT_Y_OFFSET, 1); + digitNum = ((sPokedexView->seenCount % 1000) % 100) / 10; if (digitNum != 0 || drawNextDigit) StartSpriteAnim(&gSprites[spriteId], digitNum); else gSprites[spriteId].invisible = TRUE; // National seen value - 1s - spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, LIST_RIGHT_SIDE_TEXT_X + LIST_RIGHT_SIDE_TEXT_X_OFFSET + 16, 78 - LIST_RIGHT_SIDE_TEXT_Y_OFFSET, 1); - digitNum = (sPokedexView->seenCount % 100) % 10; + spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX1s, 78 - LIST_RIGHT_SIDE_TEXT_Y_OFFSET, 1); + digitNum = ((sPokedexView->seenCount % 1000) % 100) % 10; StartSpriteAnim(&gSprites[spriteId], digitNum); - // National owned value - 100s + // National owned value - 1000s drawNextDigit = FALSE; - spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, LIST_RIGHT_SIDE_TEXT_X + LIST_RIGHT_SIDE_TEXT_X_OFFSET, 88 - LIST_RIGHT_SIDE_TEXT_Y_OFFSET, 1); - digitNum = sPokedexView->ownCount / 100; + spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX1000s, 88 - LIST_RIGHT_SIDE_TEXT_Y_OFFSET, 1); + digitNum = sPokedexView->ownCount / 1000; StartSpriteAnim(&gSprites[spriteId], digitNum); if (digitNum != 0) drawNextDigit = TRUE; else gSprites[spriteId].invisible = TRUE; - // National owned value - 10s - spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, LIST_RIGHT_SIDE_TEXT_X + LIST_RIGHT_SIDE_TEXT_X_OFFSET + 8, 88 - LIST_RIGHT_SIDE_TEXT_Y_OFFSET, 1); - digitNum = (sPokedexView->ownCount % 100) / 10; + // National owned value - 100s + spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX100s, 88 - LIST_RIGHT_SIDE_TEXT_Y_OFFSET, 1); + digitNum = (sPokedexView->ownCount % 1000) / 100; + if (digitNum != 0 || drawNextDigit) + { + drawNextDigit = TRUE; + StartSpriteAnim(&gSprites[spriteId], digitNum); + } + else + gSprites[spriteId].invisible = TRUE; + + // National owned value - 10s + spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX10s, 88 - LIST_RIGHT_SIDE_TEXT_Y_OFFSET, 1); + digitNum = ((sPokedexView->ownCount % 1000) % 100) / 10; if (digitNum != 0 || drawNextDigit) StartSpriteAnim(&gSprites[spriteId], digitNum); else gSprites[spriteId].invisible = TRUE; // National owned value - 1s - spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, LIST_RIGHT_SIDE_TEXT_X + LIST_RIGHT_SIDE_TEXT_X_OFFSET + 16, 88 - LIST_RIGHT_SIDE_TEXT_Y_OFFSET, 1); - digitNum = (sPokedexView->ownCount % 100) % 10; + spriteId = CreateSprite(&sNationalDexSeenOwnNumberSpriteTemplate, counterX1s, 88 - LIST_RIGHT_SIDE_TEXT_Y_OFFSET, 1); + digitNum = ((sPokedexView->ownCount % 1000) % 100) % 10; StartSpriteAnim(&gSprites[spriteId], digitNum); } @@ -3643,7 +3673,6 @@ static void CreateStatBars(struct PokedexListItem *dexMon) sPokedexView->justScrolled = FALSE; - if (dexMon->owned) // Show filed bars { u8 i; @@ -3841,7 +3870,7 @@ static void Task_LoadInfoScreen(u8 taskId) case 5: if (!gTasks[taskId].tMonSpriteDone) { - gTasks[taskId].tMonSpriteId = (u16)CreateMonSpriteFromNationalDexNumber(sPokedexListItem->dexNum, MON_PAGE_X, MON_PAGE_Y, 0); + gTasks[taskId].tMonSpriteId = (u16)CreateMonSpriteFromNationalDexNumberHGSS(sPokedexListItem->dexNum, MON_PAGE_X, MON_PAGE_Y, 0); gSprites[gTasks[taskId].tMonSpriteId].oam.priority = 0; } gMain.state++; @@ -4137,7 +4166,7 @@ void Task_DisplayCaughtMonDexPageHGSS(u8 taskId) sPokedexView = AllocZeroed(sizeof(struct PokedexView)); //for type icons ResetPokedexView(sPokedexView); - if (gFormSpeciesIdTables[species] != NULL) + if (GetSpeciesFormTable(species) != NULL) sPokedexView->formSpecies = species; else sPokedexView->formSpecies = 0; @@ -4166,7 +4195,7 @@ void Task_DisplayCaughtMonDexPageHGSS(u8 taskId) gTasks[taskId].tState++; break; case 4: - spriteId = CreateMonSpriteFromNationalDexNumber(dexNum, MON_PAGE_X, MON_PAGE_Y, 0); + spriteId = CreateMonSpriteFromNationalDexNumberHGSS(dexNum, MON_PAGE_X, MON_PAGE_Y, 0); gSprites[spriteId].oam.priority = 0; BeginNormalPaletteFade(PALETTES_ALL, 0, 0x10, 0, RGB_BLACK); SetVBlankCallback(gPokedexVBlankCB); @@ -4441,22 +4470,23 @@ static void PrintMonInfo(u32 num, u32 value, u32 owned, u32 newEntry) const u8 *name; const u8 *category; const u8 *description; + u8 digitCount = (NATIONAL_DEX_COUNT > 999 && value != 0) ? 4 : 3; if (value == 0) value = NationalToHoennOrder(num); else value = num; - ConvertIntToDecimalStringN(StringCopy(str, gText_NumberClear01), value, STR_CONV_MODE_LEADING_ZEROS, 3); + ConvertIntToDecimalStringN(StringCopy(str, gText_NumberClear01), value, STR_CONV_MODE_LEADING_ZEROS, digitCount); PrintInfoScreenTextWhite(str, 123, 17); species = NationalPokedexNumToSpeciesHGSS(num); if (species) - name = gSpeciesNames[species]; + name = GetSpeciesName(species); else - name = sText_TenDashes2; - PrintInfoScreenTextWhite(name, 157, 17); + name = sText_TenDashes; + PrintInfoScreenTextWhite(name, 139 + (6 * digitCount), 17); if (owned) { - CopyMonCategoryText(num, str2); + CopyMonCategoryText(species, str2); category = str2; } else @@ -4468,8 +4498,8 @@ static void PrintMonInfo(u32 num, u32 value, u32 owned, u32 newEntry) PrintInfoScreenText(gText_WTWeight, 155, 77); if (owned) { - PrintMonHeight(gPokedexEntries[num].height, 180, 64); - PrintMonWeight(gPokedexEntries[num].weight, 180, 77); + PrintMonHeight(GetSpeciesHeight(species), 180, 64); + PrintMonWeight(GetSpeciesWeight(species), 180, 77); } else { @@ -4477,9 +4507,7 @@ static void PrintMonInfo(u32 num, u32 value, u32 owned, u32 newEntry) PrintInfoScreenText(gText_UnkWeight, 180, 77); } if (owned) - { - description = gPokedexEntries[num].description; - } + description = GetSpeciesPokedexDescription(species); else description = sExpandedPlaceholder_PokedexDescription; PrintInfoScreenText(description, GetStringCenterAlignXOffset(FONT_NORMAL, description, 0xF0), 93); @@ -4621,7 +4649,7 @@ static void UNUSED PrintDecimalNum(u8 windowId, u16 num, u8 left, u8 top) static void DrawFootprint(u8 windowId, u16 dexNum) { u8 footprint[32 * 4]; - const u8 * footprintGfx = gMonFootprintTable[NationalPokedexNumToSpecies(dexNum)]; + const u8 * footprintGfx = gSpeciesInfo[NationalPokedexNumToSpeciesHGSS(dexNum)].footprint; u16 tileIdx = 0; u16 i, j; @@ -4661,8 +4689,8 @@ static u8 PrintCryScreenSpeciesName(u8 windowId, u16 num, u8 left, u8 top) switch (num) { default: - for (i = 0; gSpeciesNames[num][i] != EOS && i < POKEMON_NAME_LENGTH; i++) - str[i] = gSpeciesNames[num][i]; + for (i = 0; GetSpeciesName(num)[i] != EOS && i < POKEMON_NAME_LENGTH; i++) + str[i] = GetSpeciesName(num)[i]; break; case 0: for (i = 0; i < 5; i++) @@ -4673,6 +4701,53 @@ static u8 PrintCryScreenSpeciesName(u8 windowId, u16 num, u8 left, u8 top) return i; } +// Unown and Spinda use the personality of the first seen individual of that species +// All others use personality 0 +static u32 GetPokedexMonPersonality(u16 species) +{ + if (species == SPECIES_UNOWN || species == SPECIES_SPINDA) + { + if (species == SPECIES_UNOWN) + return gSaveBlock2Ptr->pokedex.unownPersonality; + else + return gSaveBlock2Ptr->pokedex.spindaPersonality; + } + else + { + return 0; + } +} + +static u16 CreateMonSpriteFromNationalDexNumberHGSS(u16 nationalNum, s16 x, s16 y, u16 paletteSlot) +{ + nationalNum = NationalPokedexNumToSpeciesHGSS(nationalNum); + return CreateMonPicSprite(nationalNum, SHINY_ODDS, GetPokedexMonPersonality(nationalNum), TRUE, x, y, paletteSlot, TAG_NONE); +} + +static u16 GetPokemonScaleFromNationalDexNumber(u16 nationalNum) +{ + nationalNum = NationalPokedexNumToSpeciesHGSS(nationalNum); + return gSpeciesInfo[nationalNum].pokemonScale; +} + +static u16 GetPokemonOffsetFromNationalDexNumber(u16 nationalNum) +{ + nationalNum = NationalPokedexNumToSpeciesHGSS(nationalNum); + return gSpeciesInfo[nationalNum].pokemonOffset; +} + +static u16 GetTrainerScaleFromNationalDexNumber(u16 nationalNum) +{ + nationalNum = NationalPokedexNumToSpeciesHGSS(nationalNum); + return gSpeciesInfo[nationalNum].trainerScale; +} + +static u16 GetTrainerOffsetFromNationalDexNumber(u16 nationalNum) +{ + nationalNum = NationalPokedexNumToSpeciesHGSS(nationalNum); + return gSpeciesInfo[nationalNum].trainerOffset; +} + static u16 CreateSizeScreenTrainerPic(u16 species, s16 x, s16 y, s8 paletteSlot) { return CreateTrainerPicSprite(species, TRUE, x, y, paletteSlot, TAG_NONE); @@ -4771,23 +4846,6 @@ static u16 GetNextPosition(u8 direction, u16 position, u16 min, u16 max) return position; } -// Unown and Spinda use the personality of the first seen individual of that species -// All others use personality 0 -static UNUSED u32 GetPokedexMonPersonality(u16 species) -{ - if (species == SPECIES_UNOWN || species == SPECIES_SPINDA) - { - if (species == SPECIES_UNOWN) - return gSaveBlock2Ptr->pokedex.unownPersonality; - else - return gSaveBlock2Ptr->pokedex.spindaPersonality; - } - else - { - return 0; - } -} - //************************************ @@ -4903,7 +4961,7 @@ static void ResetStatsWindows(void) { FillWindowPixelBuffer(i, PIXEL_FILL(0)); PutWindowTilemap(i); - CopyWindowToVram(i, 3); + CopyWindowToVram(i, COPYWIN_FULL); } } @@ -5200,6 +5258,7 @@ static void PrintStatsScreen_DestroyMoveItemIcon(u8 taskId) static bool8 CalculateMoves(void) { u16 species = NationalPokedexNumToSpeciesHGSS(sPokedexListItem->dexNum); + const u16 *teachableLearnset = GetSpeciesTeachableLearnset(species); u16 statsMovesEgg[EGG_MOVES_ARRAY_COUNT] = {0}; u16 statsMovesLevelUp[MAX_LEVEL_UP_MOVES] = {0}; @@ -5234,9 +5293,9 @@ static bool8 CalculateMoves(void) movesTotal++; } - for (i = 0; gTeachableLearnsets[species][i] != MOVE_UNAVAILABLE; i++) + for (i = 0; teachableLearnset[i] != MOVE_UNAVAILABLE; i++) { - move = gTeachableLearnsets[species][i]; + move = teachableLearnset[i]; for (j = 0; j < NUM_TECHNICAL_MACHINES + NUM_HIDDEN_MACHINES; j++) { if (ItemIdToBattleMoveId(ITEM_TM01 + j) == move) @@ -5312,7 +5371,7 @@ static void PrintStatsScreen_Moves_Top(u8 taskId) } else if (selected < (numEggMoves + numLevelUpMoves)) { - level = gLevelUpLearnsets[species][(selected-numEggMoves)].level; + level = GetSpeciesLevelUpLearnset(species)[(selected-numEggMoves)].level; ConvertIntToDecimalStringN(gStringVar1, level, STR_CONV_MODE_LEFT_ALIGN, 3); //Move learn lvl PrintStatsScreenTextSmall(WIN_STATS_MOVES_TOP, sText_Stats_MoveLevel, moves_x + 113, moves_y + 3); //Level text PrintStatsScreenTextSmall(WIN_STATS_MOVES_TOP, gStringVar1, moves_x + 113, moves_y + 14); //Print level @@ -5449,7 +5508,7 @@ static void PrintStatsScreen_NameGender(u8 taskId, u32 num, u32 value) u8 gender_x, gender_y; //Name - PrintStatsScreenTextSmall(WIN_STATS_NAME_GENDER, gSpeciesNames[species], base_x, base_y); + PrintStatsScreenTextSmall(WIN_STATS_NAME_GENDER, GetSpeciesName(species), base_x, base_y); //Number if (value == 0) @@ -6060,7 +6119,7 @@ static void EvoFormsPage_PrintNavigationButtons(void) } PutWindowTilemap(WIN_NAVIGATION_BUTTONS); - CopyWindowToVram(WIN_NAVIGATION_BUTTONS, 3); + CopyWindowToVram(WIN_NAVIGATION_BUTTONS, COPYWIN_FULL); } static void ResetEvoScreenDataStruct(void) @@ -6119,10 +6178,10 @@ static void Task_LoadEvolutionScreen(u8 taskId) LoadTilesetTilemapHGSS(EVO_SCREEN); FillWindowPixelBuffer(WIN_INFO, PIXEL_FILL(0)); PutWindowTilemap(WIN_INFO); - CopyWindowToVram(WIN_INFO, 3); + CopyWindowToVram(WIN_INFO, COPYWIN_FULL); FillWindowPixelBuffer(WIN_NAVIGATION_BUTTONS, PIXEL_FILL(0)); PutWindowTilemap(WIN_NAVIGATION_BUTTONS); - CopyWindowToVram(WIN_NAVIGATION_BUTTONS, 3); + CopyWindowToVram(WIN_NAVIGATION_BUTTONS, COPYWIN_FULL); CopyBgTilemapBufferToVram(1); CopyBgTilemapBufferToVram(2); CopyBgTilemapBufferToVram(3); @@ -6253,7 +6312,7 @@ static void Task_HandleEvolutionScreenInput(u8 taskId) sPokedexListItem->seen = GetSetPokedexFlag(dexNum, FLAG_GET_SEEN); sPokedexListItem->owned = GetSetPokedexFlag(dexNum, FLAG_GET_CAUGHT); - if (gFormSpeciesIdTables[targetSpecies] != NULL) + if (GetSpeciesFormTable(targetSpecies) != NULL) sPokedexView->formSpecies = targetSpecies; else sPokedexView->formSpecies = 0; @@ -6304,7 +6363,7 @@ static void HandleTargetSpeciesPrint(u8 taskId, u16 targetSpecies, u16 previousT bool8 seen = GetSetPokedexFlag(SpeciesToNationalPokedexNum(targetSpecies), FLAG_GET_SEEN); if (seen || !HGSS_HIDE_UNSEEN_EVOLUTION_NAMES) - StringCopy(gStringVar3, gSpeciesNames[targetSpecies]); //evolution mon name + StringCopy(gStringVar3, GetSpeciesName(targetSpecies)); //evolution mon name else StringCopy(gStringVar3, gText_ThreeQuestionMarks); //show questionmarks instead of name StringExpandPlaceholders(gStringVar3, sText_EVO_Name); //evolution mon name @@ -6349,7 +6408,7 @@ static void HandlePreEvolutionSpeciesPrint(u8 taskId, u16 preSpecies, u16 specie { bool8 seen = GetSetPokedexFlag(SpeciesToNationalPokedexNum(preSpecies), FLAG_GET_SEEN); - StringCopy(gStringVar1, gSpeciesNames[species]); //evolution mon name + StringCopy(gStringVar1, GetSpeciesName(species)); //evolution mon name if (sPokedexView->sEvoScreenData.isMega) StringExpandPlaceholders(gStringVar3, sText_EVO_PreEvo_PE_Mega); @@ -6357,7 +6416,7 @@ static void HandlePreEvolutionSpeciesPrint(u8 taskId, u16 preSpecies, u16 specie { if (seen || !HGSS_HIDE_UNSEEN_EVOLUTION_NAMES) - StringCopy(gStringVar2, gSpeciesNames[preSpecies]); //evolution mon name + StringCopy(gStringVar2, GetSpeciesName(preSpecies)); //evolution mon name else StringCopy(gStringVar2, gText_ThreeQuestionMarks); //show questionmarks instead of name @@ -6394,17 +6453,23 @@ static u8 PrintPreEvolutions(u8 taskId, u16 species) //Calculate previous evolution for (i = 0; i < NUM_SPECIES; i++) { - for (j = 0; j < EVOS_PER_MON; j++) + const struct Evolution *evolutions = GetSpeciesEvolutions(species); + if (evolutions == NULL) + continue; + + for (j = 0; evolutions[j].method != EVOLUTIONS_END; j++) { - if (gEvolutionTable[i][j].targetSpecies == species) + if (evolutions[j].targetSpecies == species) { preEvolutionOne = i; numPreEvolutions += 1; - if (gFormChangeTablePointers[species]->method == FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM) - { - CopyItemName(gFormChangeTablePointers[species]->param1, gStringVar2); //item - isMega = TRUE; - } + + if (GetSpeciesFormChanges(species) != NULL + && GetSpeciesFormChanges(species)->method == FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM) + { + CopyItemName(GetSpeciesFormChanges(species)->param1, gStringVar2); //item + isMega = TRUE; + } break; } } @@ -6426,9 +6491,13 @@ static u8 PrintPreEvolutions(u8 taskId, u16 species) { for (i = 0; i < NUM_SPECIES; i++) { - for (j = 0; j < EVOS_PER_MON; j++) + const struct Evolution *evolutions = GetSpeciesEvolutions(species); + if (evolutions == NULL) + continue; + + for (j = 0; evolutions[j].method != EVOLUTIONS_END; j++) { - if (gEvolutionTable[i][j].targetSpecies == preEvolutionOne) + if (evolutions[j].targetSpecies == preEvolutionOne) { preEvolutionTwo = i; numPreEvolutions += 1; @@ -6488,19 +6557,22 @@ static u8 PrintEvolutionTargetSpeciesAndMethod(u8 taskId, u16 species, u8 depth, u8 times = 0; u8 depth_x = 16; bool8 isEevee = FALSE; + const struct Evolution *evolutions = GetSpeciesEvolutions(species); if (sPokedexView->sEvoScreenData.isMega) return 0; + if (evolutions == NULL) + return 0; - StringCopy(gStringVar1, gSpeciesNames[species]); + StringCopy(gStringVar1, GetSpeciesName(species)); if (species == SPECIES_EEVEE) isEevee = TRUE; //Calculate number of possible direct evolutions (e.g. Eevee has 5 but torchic has 1) - for (i = 0; i < EVOS_PER_MON; i++) + for (i = 0; evolutions[i].method != EVOLUTIONS_END; i++) { - if (gEvolutionTable[species][i].method != 0) + if (evolutions[i].method != 0) times += 1; } gTasks[taskId].data[3] = times; @@ -6520,12 +6592,12 @@ static u8 PrintEvolutionTargetSpeciesAndMethod(u8 taskId, u16 species, u8 depth, left = !left; previousTargetSpecies = targetSpecies; - targetSpecies = gEvolutionTable[species][i].targetSpecies; + targetSpecies = evolutions[i].targetSpecies; sPokedexView->sEvoScreenData.targetSpecies[base_i] = targetSpecies; CreateCaughtBallEvolutionScreen(targetSpecies, base_x + depth_x*depth-9, base_y + base_y_offset*base_i, 0); HandleTargetSpeciesPrint(taskId, targetSpecies, previousTargetSpecies, base_x + depth_x*depth, base_y, base_y_offset, base_i, isEevee); //evolution mon name - switch (gEvolutionTable[species][i].method) + switch (evolutions[i].method) { case EVO_FRIENDSHIP: ConvertIntToDecimalStringN(gStringVar2, 220, STR_CONV_MODE_LEADING_ZEROS, 3); //friendship value @@ -6538,103 +6610,103 @@ static u8 PrintEvolutionTargetSpeciesAndMethod(u8 taskId, u16 species, u8 depth, StringExpandPlaceholders(gStringVar4, sText_EVO_FRIENDSHIP_NIGHT ); break; case EVO_LEVEL: - ConvertIntToDecimalStringN(gStringVar2, gEvolutionTable[species][i].param, STR_CONV_MODE_LEADING_ZEROS, EVO_SCREEN_LVL_DIGITS); //level + ConvertIntToDecimalStringN(gStringVar2, evolutions[i].param, STR_CONV_MODE_LEADING_ZEROS, EVO_SCREEN_LVL_DIGITS); //level StringExpandPlaceholders(gStringVar4, sText_EVO_LEVEL ); break; case EVO_TRADE: StringExpandPlaceholders(gStringVar4, sText_EVO_TRADE ); break; case EVO_TRADE_ITEM: - item = gEvolutionTable[species][i].param; //item + item = evolutions[i].param; //item CopyItemName(item, gStringVar2); //item StringExpandPlaceholders(gStringVar4, sText_EVO_TRADE_ITEM ); break; case EVO_ITEM: - item = gEvolutionTable[species][i].param; + item = evolutions[i].param; CopyItemName(item, gStringVar2); StringExpandPlaceholders(gStringVar4, sText_EVO_ITEM ); break; case EVO_LEVEL_ATK_GT_DEF: - ConvertIntToDecimalStringN(gStringVar2, gEvolutionTable[species][i].param, STR_CONV_MODE_LEADING_ZEROS, EVO_SCREEN_LVL_DIGITS); //level + ConvertIntToDecimalStringN(gStringVar2, evolutions[i].param, STR_CONV_MODE_LEADING_ZEROS, EVO_SCREEN_LVL_DIGITS); //level StringExpandPlaceholders(gStringVar4, sText_EVO_LEVEL_ATK_GT_DEF ); break; case EVO_LEVEL_ATK_EQ_DEF: - ConvertIntToDecimalStringN(gStringVar2, gEvolutionTable[species][i].param, STR_CONV_MODE_LEADING_ZEROS, EVO_SCREEN_LVL_DIGITS); //level + ConvertIntToDecimalStringN(gStringVar2, evolutions[i].param, STR_CONV_MODE_LEADING_ZEROS, EVO_SCREEN_LVL_DIGITS); //level StringExpandPlaceholders(gStringVar4, sText_EVO_LEVEL_ATK_EQ_DEF ); break; case EVO_LEVEL_ATK_LT_DEF: - ConvertIntToDecimalStringN(gStringVar2, gEvolutionTable[species][i].param, STR_CONV_MODE_LEADING_ZEROS, EVO_SCREEN_LVL_DIGITS); //level + ConvertIntToDecimalStringN(gStringVar2, evolutions[i].param, STR_CONV_MODE_LEADING_ZEROS, EVO_SCREEN_LVL_DIGITS); //level StringExpandPlaceholders(gStringVar4, sText_EVO_LEVEL_ATK_LT_DEF ); break; case EVO_LEVEL_SILCOON: - ConvertIntToDecimalStringN(gStringVar2, gEvolutionTable[species][i].param, STR_CONV_MODE_LEADING_ZEROS, EVO_SCREEN_LVL_DIGITS); //level + ConvertIntToDecimalStringN(gStringVar2, evolutions[i].param, STR_CONV_MODE_LEADING_ZEROS, EVO_SCREEN_LVL_DIGITS); //level StringExpandPlaceholders(gStringVar4, sText_EVO_LEVEL_SILCOON ); break; case EVO_LEVEL_CASCOON: - ConvertIntToDecimalStringN(gStringVar2, gEvolutionTable[species][i].param, STR_CONV_MODE_LEADING_ZEROS, EVO_SCREEN_LVL_DIGITS); //level + ConvertIntToDecimalStringN(gStringVar2, evolutions[i].param, STR_CONV_MODE_LEADING_ZEROS, EVO_SCREEN_LVL_DIGITS); //level StringExpandPlaceholders(gStringVar4, sText_EVO_LEVEL_CASCOON ); break; case EVO_LEVEL_NINJASK: - ConvertIntToDecimalStringN(gStringVar2, gEvolutionTable[species][i].param, STR_CONV_MODE_LEADING_ZEROS, EVO_SCREEN_LVL_DIGITS); //level + ConvertIntToDecimalStringN(gStringVar2, evolutions[i].param, STR_CONV_MODE_LEADING_ZEROS, EVO_SCREEN_LVL_DIGITS); //level StringExpandPlaceholders(gStringVar4, sText_EVO_LEVEL_NINJASK ); break; case EVO_LEVEL_SHEDINJA: - ConvertIntToDecimalStringN(gStringVar2, gEvolutionTable[species][i].param, STR_CONV_MODE_LEADING_ZEROS, EVO_SCREEN_LVL_DIGITS); //level + ConvertIntToDecimalStringN(gStringVar2, evolutions[i].param, STR_CONV_MODE_LEADING_ZEROS, EVO_SCREEN_LVL_DIGITS); //level StringExpandPlaceholders(gStringVar4, sText_EVO_LEVEL_SHEDINJA ); break; case EVO_BEAUTY: - ConvertIntToDecimalStringN(gStringVar2, gEvolutionTable[species][i].param, STR_CONV_MODE_LEADING_ZEROS, 3); //beauty + ConvertIntToDecimalStringN(gStringVar2, evolutions[i].param, STR_CONV_MODE_LEADING_ZEROS, 3); //beauty StringExpandPlaceholders(gStringVar4, sText_EVO_BEAUTY ); break; case EVO_LEVEL_FEMALE: - ConvertIntToDecimalStringN(gStringVar2, gEvolutionTable[species][i].param, STR_CONV_MODE_LEADING_ZEROS, EVO_SCREEN_LVL_DIGITS); //level + ConvertIntToDecimalStringN(gStringVar2, evolutions[i].param, STR_CONV_MODE_LEADING_ZEROS, EVO_SCREEN_LVL_DIGITS); //level StringExpandPlaceholders(gStringVar4, sText_EVO_LEVEL_FEMALE ); break; case EVO_LEVEL_MALE: - ConvertIntToDecimalStringN(gStringVar2, gEvolutionTable[species][i].param, STR_CONV_MODE_LEADING_ZEROS, EVO_SCREEN_LVL_DIGITS); //level + ConvertIntToDecimalStringN(gStringVar2, evolutions[i].param, STR_CONV_MODE_LEADING_ZEROS, EVO_SCREEN_LVL_DIGITS); //level StringExpandPlaceholders(gStringVar4, sText_EVO_LEVEL_MALE ); break; case EVO_LEVEL_NIGHT: - ConvertIntToDecimalStringN(gStringVar2, gEvolutionTable[species][i].param, STR_CONV_MODE_LEADING_ZEROS, EVO_SCREEN_LVL_DIGITS); //level + ConvertIntToDecimalStringN(gStringVar2, evolutions[i].param, STR_CONV_MODE_LEADING_ZEROS, EVO_SCREEN_LVL_DIGITS); //level StringExpandPlaceholders(gStringVar4, sText_EVO_LEVEL_NIGHT ); break; case EVO_LEVEL_DAY: - ConvertIntToDecimalStringN(gStringVar2, gEvolutionTable[species][i].param, STR_CONV_MODE_LEADING_ZEROS, EVO_SCREEN_LVL_DIGITS); //level + ConvertIntToDecimalStringN(gStringVar2, evolutions[i].param, STR_CONV_MODE_LEADING_ZEROS, EVO_SCREEN_LVL_DIGITS); //level StringExpandPlaceholders(gStringVar4, sText_EVO_LEVEL_DAY ); break; case EVO_LEVEL_DUSK: - ConvertIntToDecimalStringN(gStringVar2, gEvolutionTable[species][i].param, STR_CONV_MODE_LEADING_ZEROS, EVO_SCREEN_LVL_DIGITS); //level + ConvertIntToDecimalStringN(gStringVar2, evolutions[i].param, STR_CONV_MODE_LEADING_ZEROS, EVO_SCREEN_LVL_DIGITS); //level StringExpandPlaceholders(gStringVar4, sText_EVO_LEVEL_DUSK ); break; case EVO_ITEM_HOLD_DAY: - item = gEvolutionTable[species][i].param; //item + item = evolutions[i].param; //item CopyItemName(item, gStringVar2); //item StringExpandPlaceholders(gStringVar4, sText_EVO_ITEM_HOLD_DAY ); break; case EVO_ITEM_HOLD_NIGHT: - item = gEvolutionTable[species][i].param; //item + item = evolutions[i].param; //item CopyItemName(item, gStringVar2); //item StringExpandPlaceholders(gStringVar4, sText_EVO_ITEM_HOLD_NIGHT ); break; case EVO_MOVE: - StringCopy(gStringVar2, gMoveNames[gEvolutionTable[species][i].param]); + StringCopy(gStringVar2, gMoveNames[evolutions[i].param]); StringExpandPlaceholders(gStringVar4, sText_EVO_MOVE ); break; case EVO_FRIENDSHIP_MOVE_TYPE: - StringCopy(gStringVar2, gTypeNames[gEvolutionTable[species][i].param]); + StringCopy(gStringVar2, gTypeNames[evolutions[i].param]); StringExpandPlaceholders(gStringVar4, sText_EVO_FRIENDSHIP_MOVE_TYPE ); break; case EVO_MAPSEC: - StringCopy(gStringVar2, gRegionMapEntries[gEvolutionTable[species][i].param].name); + StringCopy(gStringVar2, gRegionMapEntries[evolutions[i].param].name); StringExpandPlaceholders(gStringVar4, sText_EVO_MAPSEC ); break; case EVO_ITEM_MALE: - item = gEvolutionTable[species][i].param; //item + item = evolutions[i].param; //item CopyItemName(item, gStringVar2); //item StringExpandPlaceholders(gStringVar4, sText_EVO_ITEM_MALE ); break; case EVO_ITEM_FEMALE: - item = gEvolutionTable[species][i].param; //item + item = evolutions[i].param; //item CopyItemName(item, gStringVar2); //item StringExpandPlaceholders(gStringVar4, sText_EVO_ITEM_FEMALE ); break; @@ -6643,59 +6715,59 @@ static u8 PrintEvolutionTargetSpeciesAndMethod(u8 taskId, u16 species, u8 depth, StringExpandPlaceholders(gStringVar4, sText_EVO_LEVEL_RAIN ); break; case EVO_SPECIFIC_MON_IN_PARTY: - StringCopy(gStringVar2, gSpeciesNames[gEvolutionTable[species][i].param]); //mon name + StringCopy(gStringVar2, GetSpeciesName(evolutions[i].param)); //mon name StringExpandPlaceholders(gStringVar4, sText_EVO_SPECIFIC_MON_IN_PARTY ); break; case EVO_LEVEL_DARK_TYPE_MON_IN_PARTY: StringExpandPlaceholders(gStringVar4, sText_EVO_LEVEL_DARK_TYPE_MON_IN_PARTY ); break; case EVO_TRADE_SPECIFIC_MON: - StringCopy(gStringVar2, gSpeciesNames[gEvolutionTable[species][i].param]); //mon name + StringCopy(gStringVar2, GetSpeciesName(evolutions[i].param)); //mon name StringExpandPlaceholders(gStringVar4, sText_EVO_TRADE_SPECIFIC_MON ); break; case EVO_SPECIFIC_MAP: - mapHeader = Overworld_GetMapHeaderByGroupAndId(gEvolutionTable[species][i].param >> 8, gEvolutionTable[species][i].param & 0xFF); + mapHeader = Overworld_GetMapHeaderByGroupAndId(evolutions[i].param >> 8, evolutions[i].param & 0xFF); GetMapName(gStringVar2, mapHeader->regionMapSectionId, 0); StringExpandPlaceholders(gStringVar4, sText_EVO_SPECIFIC_MAP ); break; case EVO_LEVEL_NATURE_AMPED: - ConvertIntToDecimalStringN(gStringVar2, gEvolutionTable[species][i].param, STR_CONV_MODE_LEADING_ZEROS, EVO_SCREEN_LVL_DIGITS); //level + ConvertIntToDecimalStringN(gStringVar2, evolutions[i].param, STR_CONV_MODE_LEADING_ZEROS, EVO_SCREEN_LVL_DIGITS); //level StringExpandPlaceholders(gStringVar4, sText_EVO_LEVEL_NATURE_AMPED); break; case EVO_LEVEL_NATURE_LOW_KEY: - ConvertIntToDecimalStringN(gStringVar2, gEvolutionTable[species][i].param, STR_CONV_MODE_LEADING_ZEROS, EVO_SCREEN_LVL_DIGITS); //level + ConvertIntToDecimalStringN(gStringVar2, evolutions[i].param, STR_CONV_MODE_LEADING_ZEROS, EVO_SCREEN_LVL_DIGITS); //level StringExpandPlaceholders(gStringVar4, sText_EVO_LEVEL_NATURE_LOW_KEY); break; case EVO_CRITICAL_HITS: - ConvertIntToDecimalStringN(gStringVar2, gEvolutionTable[species][i].param, STR_CONV_MODE_LEADING_ZEROS, EVO_SCREEN_CRITS_DIGITS); //crits + ConvertIntToDecimalStringN(gStringVar2, evolutions[i].param, STR_CONV_MODE_LEADING_ZEROS, EVO_SCREEN_CRITS_DIGITS); //crits StringExpandPlaceholders(gStringVar4, sText_EVO_CRITICAL_HITS); break; case EVO_SCRIPT_TRIGGER_DMG: - ConvertIntToDecimalStringN(gStringVar2, gEvolutionTable[species][i].param, STR_CONV_MODE_LEADING_ZEROS, EVO_SCREEN_DMG_DIGITS); //damage + ConvertIntToDecimalStringN(gStringVar2, evolutions[i].param, STR_CONV_MODE_LEADING_ZEROS, EVO_SCREEN_DMG_DIGITS); //damage StringExpandPlaceholders(gStringVar4, sText_EVO_SCRIPT_TRIGGER_DMG); break; case EVO_DARK_SCROLL: - item = gEvolutionTable[species][i].param; + item = evolutions[i].param; CopyItemName(item, gStringVar2); StringExpandPlaceholders(gStringVar4, sText_EVO_DARK_SCROLL ); break; case EVO_WATER_SCROLL: - item = gEvolutionTable[species][i].param; + item = evolutions[i].param; CopyItemName(item, gStringVar2); StringExpandPlaceholders(gStringVar4, sText_EVO_WATER_SCROLL ); break; case EVO_ITEM_NIGHT: - item = gEvolutionTable[species][i].param; + item = evolutions[i].param; CopyItemName(item, gStringVar2); StringExpandPlaceholders(gStringVar4, sText_EVO_ITEM_NIGHT ); break; case EVO_ITEM_DAY: - item = gEvolutionTable[species][i].param; + item = evolutions[i].param; CopyItemName(item, gStringVar2); StringExpandPlaceholders(gStringVar4, sText_EVO_ITEM_DAY ); break; case EVO_ITEM_HOLD: - item = gEvolutionTable[species][i].param; + item = evolutions[i].param; CopyItemName(item, gStringVar2); StringExpandPlaceholders(gStringVar4, sText_EVO_ITEM_HOLD ); break; @@ -6793,10 +6865,10 @@ static void Task_LoadFormsScreen(u8 taskId) LoadTilesetTilemapHGSS(FORMS_SCREEN); FillWindowPixelBuffer(WIN_INFO, PIXEL_FILL(0)); PutWindowTilemap(WIN_INFO); - CopyWindowToVram(WIN_INFO, 3); + CopyWindowToVram(WIN_INFO, COPYWIN_FULL); FillWindowPixelBuffer(WIN_NAVIGATION_BUTTONS, PIXEL_FILL(0)); PutWindowTilemap(WIN_NAVIGATION_BUTTONS); - CopyWindowToVram(WIN_NAVIGATION_BUTTONS, 3); + CopyWindowToVram(WIN_NAVIGATION_BUTTONS, COPYWIN_FULL); CopyBgTilemapBufferToVram(1); CopyBgTilemapBufferToVram(2); CopyBgTilemapBufferToVram(3); @@ -6981,7 +7053,7 @@ static void PrintForms(u8 taskId, u16 species) if (GetFormSpeciesId(species, 0) == SPECIES_UNOWN) y_offset_icons = 8; - StringCopy(gStringVar1, gSpeciesNames[species]); + StringCopy(gStringVar1, GetSpeciesName(species)); for (i=0; i < 30; i++) { @@ -7111,7 +7183,7 @@ static void Task_LoadCryScreen(u8 taskId) gMain.state++; break; case 5: - gTasks[taskId].tMonSpriteId = CreateMonSpriteFromNationalDexNumber(sPokedexListItem->dexNum, MON_PAGE_X, MON_PAGE_Y, 0); + gTasks[taskId].tMonSpriteId = CreateMonSpriteFromNationalDexNumberHGSS(sPokedexListItem->dexNum, MON_PAGE_X, MON_PAGE_Y, 0); gSprites[gTasks[taskId].tMonSpriteId].oam.priority = 0; gDexCryScreenState = 0; gMain.state++; @@ -7305,19 +7377,19 @@ static void Task_LoadSizeScreen(u8 taskId) gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; gSprites[spriteId].oam.matrixNum = 1; gSprites[spriteId].oam.priority = 0; - gSprites[spriteId].y2 = gPokedexEntries[sPokedexListItem->dexNum].trainerOffset; - SetOamMatrix(1, gPokedexEntries[sPokedexListItem->dexNum].trainerScale, 0, 0, gPokedexEntries[sPokedexListItem->dexNum].trainerScale); + gSprites[spriteId].y2 = GetTrainerOffsetFromNationalDexNumber(sPokedexListItem->dexNum); + SetOamMatrix(1, GetTrainerScaleFromNationalDexNumber(sPokedexListItem->dexNum), 0, 0, GetTrainerScaleFromNationalDexNumber(sPokedexListItem->dexNum)); LoadPalette(sSizeScreenSilhouette_Pal, OBJ_PLTT_ID2(gSprites[spriteId].oam.paletteNum), PLTT_SIZE_4BPP); gTasks[taskId].tTrainerSpriteId = spriteId; gMain.state++; break; case 6: - spriteId = CreateMonSpriteFromNationalDexNumber(sPokedexListItem->dexNum, 88, 56, 1); + spriteId = CreateMonSpriteFromNationalDexNumberHGSS(sPokedexListItem->dexNum, 88, 56, 1); gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; gSprites[spriteId].oam.matrixNum = 2; gSprites[spriteId].oam.priority = 0; - gSprites[spriteId].y2 = gPokedexEntries[sPokedexListItem->dexNum].pokemonOffset; - SetOamMatrix(2, gPokedexEntries[sPokedexListItem->dexNum].pokemonScale, 0, 0, gPokedexEntries[sPokedexListItem->dexNum].pokemonScale); + gSprites[spriteId].y2 = GetPokemonOffsetFromNationalDexNumber(sPokedexListItem->dexNum); + SetOamMatrix(2, GetPokemonScaleFromNationalDexNumber(sPokedexListItem->dexNum), 0, 0, GetPokemonScaleFromNationalDexNumber(sPokedexListItem->dexNum)); LoadPalette(sSizeScreenSilhouette_Pal, OBJ_PLTT_ID2(gSprites[spriteId].oam.paletteNum), PLTT_SIZE_4BPP); gTasks[taskId].tMonSpriteId = spriteId; CopyWindowToVram(WIN_INFO, COPYWIN_FULL); @@ -7683,7 +7755,7 @@ static int DoPokedexSearch(u8 dexMode, u8 order, u8 abcGroup, u8 bodyColor, u8 t u8 firstLetter; species = NationalPokedexNumToSpecies(sPokedexView->pokedexList[i].dexNum); - firstLetter = gSpeciesNames[species][0]; + firstLetter = GetSpeciesName(species)[0]; if (LETTER_IN_RANGE_UPPER(firstLetter, abcGroup) || LETTER_IN_RANGE_LOWER(firstLetter, abcGroup)) { sPokedexView->pokedexList[resultsCount] = sPokedexView->pokedexList[i]; diff --git a/src/pokemon.c b/src/pokemon.c index 7736a83e0619..33551ee6c76c 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -16,6 +16,7 @@ #include "evolution_scene.h" #include "field_specials.h" #include "field_weather.h" +#include "graphics.h" #include "item.h" #include "link.h" #include "main.h" @@ -43,6 +44,7 @@ #include "constants/battle_frontier.h" #include "constants/battle_move_effects.h" #include "constants/battle_script_commands.h" +#include "constants/cries.h" #include "constants/form_change_types.h" #include "constants/hold_effects.h" #include "constants/item_effects.h" @@ -54,7 +56,6 @@ #include "constants/union_room.h" #include "constants/weather.h" - #if P_FRIENDSHIP_EVO_THRESHOLD >= GEN_9 #define FRIENDSHIP_EVO_THRESHOLD 160 #else @@ -106,7 +107,6 @@ static const struct CombinedMove sCombinedMoves[2] = // To reorder the pokedex, see the values in include/constants/pokedex.h. #define SPECIES_TO_HOENN(name) [SPECIES_##name - 1] = HOENN_DEX_##name -#define SPECIES_TO_NATIONAL(name) [SPECIES_##name - 1] = NATIONAL_DEX_##name #define HOENN_TO_NATIONAL(name) [HOENN_DEX_##name - 1] = NATIONAL_DEX_##name // Assigns all species to the Hoenn Dex Index (Summary No. for Hoenn Dex) @@ -125,6 +125,9 @@ static const u16 sSpeciesToHoennPokedexNum[NUM_SPECIES - 1] = SPECIES_TO_HOENN(MIGHTYENA), SPECIES_TO_HOENN(ZIGZAGOON), SPECIES_TO_HOENN(LINOONE), +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GALARIAN_FORMS + SPECIES_TO_HOENN(OBSTAGOON), +#endif SPECIES_TO_HOENN(WURMPLE), SPECIES_TO_HOENN(SILCOON), SPECIES_TO_HOENN(BEAUTIFLY), @@ -143,7 +146,7 @@ static const u16 sSpeciesToHoennPokedexNum[NUM_SPECIES - 1] = SPECIES_TO_HOENN(RALTS), SPECIES_TO_HOENN(KIRLIA), SPECIES_TO_HOENN(GARDEVOIR), -#if P_GEN_4_POKEMON == TRUE +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_4_CROSS_EVOS SPECIES_TO_HOENN(GALLADE), #endif SPECIES_TO_HOENN(SURSKIT), @@ -175,7 +178,7 @@ static const u16 sSpeciesToHoennPokedexNum[NUM_SPECIES - 1] = SPECIES_TO_HOENN(GRAVELER), SPECIES_TO_HOENN(GOLEM), SPECIES_TO_HOENN(NOSEPASS), -#if P_GEN_4_POKEMON == TRUE +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_4_CROSS_EVOS SPECIES_TO_HOENN(PROBOPASS), #endif SPECIES_TO_HOENN(SKITTY), @@ -201,7 +204,7 @@ static const u16 sSpeciesToHoennPokedexNum[NUM_SPECIES - 1] = SPECIES_TO_HOENN(MINUN), SPECIES_TO_HOENN(MAGNEMITE), SPECIES_TO_HOENN(MAGNETON), -#if P_GEN_4_POKEMON == TRUE +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_4_CROSS_EVOS SPECIES_TO_HOENN(MAGNEZONE), #endif SPECIES_TO_HOENN(VOLTORB), @@ -214,7 +217,7 @@ static const u16 sSpeciesToHoennPokedexNum[NUM_SPECIES - 1] = SPECIES_TO_HOENN(BELLOSSOM), SPECIES_TO_HOENN(DODUO), SPECIES_TO_HOENN(DODRIO), -#if P_GEN_4_POKEMON == TRUE +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_4_CROSS_EVOS SPECIES_TO_HOENN(BUDEW), SPECIES_TO_HOENN(ROSELIA), SPECIES_TO_HOENN(ROSERADE), @@ -276,7 +279,7 @@ static const u16 sSpeciesToHoennPokedexNum[NUM_SPECIES - 1] = SPECIES_TO_HOENN(BANETTE), SPECIES_TO_HOENN(DUSKULL), SPECIES_TO_HOENN(DUSCLOPS), -#if P_GEN_4_POKEMON == TRUE +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_4_CROSS_EVOS SPECIES_TO_HOENN(DUSKNOIR), SPECIES_TO_HOENN(TROPIUS), SPECIES_TO_HOENN(CHINGLING), @@ -297,18 +300,21 @@ static const u16 sSpeciesToHoennPokedexNum[NUM_SPECIES - 1] = SPECIES_TO_HOENN(NATU), SPECIES_TO_HOENN(XATU), SPECIES_TO_HOENN(GIRAFARIG), +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_9_CROSS_EVOS + SPECIES_TO_HOENN(FARIGIRAF), +#endif SPECIES_TO_HOENN(PHANPY), SPECIES_TO_HOENN(DONPHAN), SPECIES_TO_HOENN(PINSIR), SPECIES_TO_HOENN(HERACROSS), SPECIES_TO_HOENN(RHYHORN), SPECIES_TO_HOENN(RHYDON), -#if P_GEN_4_POKEMON == TRUE +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_4_CROSS_EVOS SPECIES_TO_HOENN(RHYPERIOR), #endif SPECIES_TO_HOENN(SNORUNT), SPECIES_TO_HOENN(GLALIE), -#if P_GEN_4_POKEMON == TRUE +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_4_CROSS_EVOS SPECIES_TO_HOENN(FROSLASS), #endif SPECIES_TO_HOENN(SPHEAL), @@ -319,6 +325,9 @@ static const u16 sSpeciesToHoennPokedexNum[NUM_SPECIES - 1] = SPECIES_TO_HOENN(GOREBYSS), SPECIES_TO_HOENN(RELICANTH), SPECIES_TO_HOENN(CORSOLA), +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GALARIAN_FORMS + SPECIES_TO_HOENN(CURSOLA), +#endif SPECIES_TO_HOENN(CHINCHOU), SPECIES_TO_HOENN(LANTURN), SPECIES_TO_HOENN(LUVDISC), @@ -343,1381 +352,6 @@ static const u16 sSpeciesToHoennPokedexNum[NUM_SPECIES - 1] = SPECIES_TO_HOENN(DEOXYS), }; -// Assigns all species to the National Dex Index (Summary No. for National Dex) -static const u16 sSpeciesToNationalPokedexNum[NUM_SPECIES - 1] = -{ - SPECIES_TO_NATIONAL(BULBASAUR), - SPECIES_TO_NATIONAL(IVYSAUR), - SPECIES_TO_NATIONAL(VENUSAUR), - SPECIES_TO_NATIONAL(CHARMANDER), - SPECIES_TO_NATIONAL(CHARMELEON), - SPECIES_TO_NATIONAL(CHARIZARD), - SPECIES_TO_NATIONAL(SQUIRTLE), - SPECIES_TO_NATIONAL(WARTORTLE), - SPECIES_TO_NATIONAL(BLASTOISE), - SPECIES_TO_NATIONAL(CATERPIE), - SPECIES_TO_NATIONAL(METAPOD), - SPECIES_TO_NATIONAL(BUTTERFREE), - SPECIES_TO_NATIONAL(WEEDLE), - SPECIES_TO_NATIONAL(KAKUNA), - SPECIES_TO_NATIONAL(BEEDRILL), - SPECIES_TO_NATIONAL(PIDGEY), - SPECIES_TO_NATIONAL(PIDGEOTTO), - SPECIES_TO_NATIONAL(PIDGEOT), - SPECIES_TO_NATIONAL(RATTATA), - SPECIES_TO_NATIONAL(RATICATE), - SPECIES_TO_NATIONAL(SPEAROW), - SPECIES_TO_NATIONAL(FEAROW), - SPECIES_TO_NATIONAL(EKANS), - SPECIES_TO_NATIONAL(ARBOK), - SPECIES_TO_NATIONAL(PIKACHU), - SPECIES_TO_NATIONAL(RAICHU), - SPECIES_TO_NATIONAL(SANDSHREW), - SPECIES_TO_NATIONAL(SANDSLASH), - SPECIES_TO_NATIONAL(NIDORAN_F), - SPECIES_TO_NATIONAL(NIDORINA), - SPECIES_TO_NATIONAL(NIDOQUEEN), - SPECIES_TO_NATIONAL(NIDORAN_M), - SPECIES_TO_NATIONAL(NIDORINO), - SPECIES_TO_NATIONAL(NIDOKING), - SPECIES_TO_NATIONAL(CLEFAIRY), - SPECIES_TO_NATIONAL(CLEFABLE), - SPECIES_TO_NATIONAL(VULPIX), - SPECIES_TO_NATIONAL(NINETALES), - SPECIES_TO_NATIONAL(JIGGLYPUFF), - SPECIES_TO_NATIONAL(WIGGLYTUFF), - SPECIES_TO_NATIONAL(ZUBAT), - SPECIES_TO_NATIONAL(GOLBAT), - SPECIES_TO_NATIONAL(ODDISH), - SPECIES_TO_NATIONAL(GLOOM), - SPECIES_TO_NATIONAL(VILEPLUME), - SPECIES_TO_NATIONAL(PARAS), - SPECIES_TO_NATIONAL(PARASECT), - SPECIES_TO_NATIONAL(VENONAT), - SPECIES_TO_NATIONAL(VENOMOTH), - SPECIES_TO_NATIONAL(DIGLETT), - SPECIES_TO_NATIONAL(DUGTRIO), - SPECIES_TO_NATIONAL(MEOWTH), - SPECIES_TO_NATIONAL(PERSIAN), - SPECIES_TO_NATIONAL(PSYDUCK), - SPECIES_TO_NATIONAL(GOLDUCK), - SPECIES_TO_NATIONAL(MANKEY), - SPECIES_TO_NATIONAL(PRIMEAPE), - SPECIES_TO_NATIONAL(GROWLITHE), - SPECIES_TO_NATIONAL(ARCANINE), - SPECIES_TO_NATIONAL(POLIWAG), - SPECIES_TO_NATIONAL(POLIWHIRL), - SPECIES_TO_NATIONAL(POLIWRATH), - SPECIES_TO_NATIONAL(ABRA), - SPECIES_TO_NATIONAL(KADABRA), - SPECIES_TO_NATIONAL(ALAKAZAM), - SPECIES_TO_NATIONAL(MACHOP), - SPECIES_TO_NATIONAL(MACHOKE), - SPECIES_TO_NATIONAL(MACHAMP), - SPECIES_TO_NATIONAL(BELLSPROUT), - SPECIES_TO_NATIONAL(WEEPINBELL), - SPECIES_TO_NATIONAL(VICTREEBEL), - SPECIES_TO_NATIONAL(TENTACOOL), - SPECIES_TO_NATIONAL(TENTACRUEL), - SPECIES_TO_NATIONAL(GEODUDE), - SPECIES_TO_NATIONAL(GRAVELER), - SPECIES_TO_NATIONAL(GOLEM), - SPECIES_TO_NATIONAL(PONYTA), - SPECIES_TO_NATIONAL(RAPIDASH), - SPECIES_TO_NATIONAL(SLOWPOKE), - SPECIES_TO_NATIONAL(SLOWBRO), - SPECIES_TO_NATIONAL(MAGNEMITE), - SPECIES_TO_NATIONAL(MAGNETON), - SPECIES_TO_NATIONAL(FARFETCHD), - SPECIES_TO_NATIONAL(DODUO), - SPECIES_TO_NATIONAL(DODRIO), - SPECIES_TO_NATIONAL(SEEL), - SPECIES_TO_NATIONAL(DEWGONG), - SPECIES_TO_NATIONAL(GRIMER), - SPECIES_TO_NATIONAL(MUK), - SPECIES_TO_NATIONAL(SHELLDER), - SPECIES_TO_NATIONAL(CLOYSTER), - SPECIES_TO_NATIONAL(GASTLY), - SPECIES_TO_NATIONAL(HAUNTER), - SPECIES_TO_NATIONAL(GENGAR), - SPECIES_TO_NATIONAL(ONIX), - SPECIES_TO_NATIONAL(DROWZEE), - SPECIES_TO_NATIONAL(HYPNO), - SPECIES_TO_NATIONAL(KRABBY), - SPECIES_TO_NATIONAL(KINGLER), - SPECIES_TO_NATIONAL(VOLTORB), - SPECIES_TO_NATIONAL(ELECTRODE), - SPECIES_TO_NATIONAL(EXEGGCUTE), - SPECIES_TO_NATIONAL(EXEGGUTOR), - SPECIES_TO_NATIONAL(CUBONE), - SPECIES_TO_NATIONAL(MAROWAK), - SPECIES_TO_NATIONAL(HITMONLEE), - SPECIES_TO_NATIONAL(HITMONCHAN), - SPECIES_TO_NATIONAL(LICKITUNG), - SPECIES_TO_NATIONAL(KOFFING), - SPECIES_TO_NATIONAL(WEEZING), - SPECIES_TO_NATIONAL(RHYHORN), - SPECIES_TO_NATIONAL(RHYDON), - SPECIES_TO_NATIONAL(CHANSEY), - SPECIES_TO_NATIONAL(TANGELA), - SPECIES_TO_NATIONAL(KANGASKHAN), - SPECIES_TO_NATIONAL(HORSEA), - SPECIES_TO_NATIONAL(SEADRA), - SPECIES_TO_NATIONAL(GOLDEEN), - SPECIES_TO_NATIONAL(SEAKING), - SPECIES_TO_NATIONAL(STARYU), - SPECIES_TO_NATIONAL(STARMIE), - SPECIES_TO_NATIONAL(MR_MIME), - SPECIES_TO_NATIONAL(SCYTHER), - SPECIES_TO_NATIONAL(JYNX), - SPECIES_TO_NATIONAL(ELECTABUZZ), - SPECIES_TO_NATIONAL(MAGMAR), - SPECIES_TO_NATIONAL(PINSIR), - SPECIES_TO_NATIONAL(TAUROS), - SPECIES_TO_NATIONAL(MAGIKARP), - SPECIES_TO_NATIONAL(GYARADOS), - SPECIES_TO_NATIONAL(LAPRAS), - SPECIES_TO_NATIONAL(DITTO), - SPECIES_TO_NATIONAL(EEVEE), - SPECIES_TO_NATIONAL(VAPOREON), - SPECIES_TO_NATIONAL(JOLTEON), - SPECIES_TO_NATIONAL(FLAREON), - SPECIES_TO_NATIONAL(PORYGON), - SPECIES_TO_NATIONAL(OMANYTE), - SPECIES_TO_NATIONAL(OMASTAR), - SPECIES_TO_NATIONAL(KABUTO), - SPECIES_TO_NATIONAL(KABUTOPS), - SPECIES_TO_NATIONAL(AERODACTYL), - SPECIES_TO_NATIONAL(SNORLAX), - SPECIES_TO_NATIONAL(ARTICUNO), - SPECIES_TO_NATIONAL(ZAPDOS), - SPECIES_TO_NATIONAL(MOLTRES), - SPECIES_TO_NATIONAL(DRATINI), - SPECIES_TO_NATIONAL(DRAGONAIR), - SPECIES_TO_NATIONAL(DRAGONITE), - SPECIES_TO_NATIONAL(MEWTWO), - SPECIES_TO_NATIONAL(MEW), - SPECIES_TO_NATIONAL(CHIKORITA), - SPECIES_TO_NATIONAL(BAYLEEF), - SPECIES_TO_NATIONAL(MEGANIUM), - SPECIES_TO_NATIONAL(CYNDAQUIL), - SPECIES_TO_NATIONAL(QUILAVA), - SPECIES_TO_NATIONAL(TYPHLOSION), - SPECIES_TO_NATIONAL(TOTODILE), - SPECIES_TO_NATIONAL(CROCONAW), - SPECIES_TO_NATIONAL(FERALIGATR), - SPECIES_TO_NATIONAL(SENTRET), - SPECIES_TO_NATIONAL(FURRET), - SPECIES_TO_NATIONAL(HOOTHOOT), - SPECIES_TO_NATIONAL(NOCTOWL), - SPECIES_TO_NATIONAL(LEDYBA), - SPECIES_TO_NATIONAL(LEDIAN), - SPECIES_TO_NATIONAL(SPINARAK), - SPECIES_TO_NATIONAL(ARIADOS), - SPECIES_TO_NATIONAL(CROBAT), - SPECIES_TO_NATIONAL(CHINCHOU), - SPECIES_TO_NATIONAL(LANTURN), - SPECIES_TO_NATIONAL(PICHU), - SPECIES_TO_NATIONAL(CLEFFA), - SPECIES_TO_NATIONAL(IGGLYBUFF), - SPECIES_TO_NATIONAL(TOGEPI), - SPECIES_TO_NATIONAL(TOGETIC), - SPECIES_TO_NATIONAL(NATU), - SPECIES_TO_NATIONAL(XATU), - SPECIES_TO_NATIONAL(MAREEP), - SPECIES_TO_NATIONAL(FLAAFFY), - SPECIES_TO_NATIONAL(AMPHAROS), - SPECIES_TO_NATIONAL(BELLOSSOM), - SPECIES_TO_NATIONAL(MARILL), - SPECIES_TO_NATIONAL(AZUMARILL), - SPECIES_TO_NATIONAL(SUDOWOODO), - SPECIES_TO_NATIONAL(POLITOED), - SPECIES_TO_NATIONAL(HOPPIP), - SPECIES_TO_NATIONAL(SKIPLOOM), - SPECIES_TO_NATIONAL(JUMPLUFF), - SPECIES_TO_NATIONAL(AIPOM), - SPECIES_TO_NATIONAL(SUNKERN), - SPECIES_TO_NATIONAL(SUNFLORA), - SPECIES_TO_NATIONAL(YANMA), - SPECIES_TO_NATIONAL(WOOPER), - SPECIES_TO_NATIONAL(QUAGSIRE), - SPECIES_TO_NATIONAL(ESPEON), - SPECIES_TO_NATIONAL(UMBREON), - SPECIES_TO_NATIONAL(MURKROW), - SPECIES_TO_NATIONAL(SLOWKING), - SPECIES_TO_NATIONAL(MISDREAVUS), - SPECIES_TO_NATIONAL(UNOWN), - SPECIES_TO_NATIONAL(WOBBUFFET), - SPECIES_TO_NATIONAL(GIRAFARIG), - SPECIES_TO_NATIONAL(PINECO), - SPECIES_TO_NATIONAL(FORRETRESS), - SPECIES_TO_NATIONAL(DUNSPARCE), - SPECIES_TO_NATIONAL(GLIGAR), - SPECIES_TO_NATIONAL(STEELIX), - SPECIES_TO_NATIONAL(SNUBBULL), - SPECIES_TO_NATIONAL(GRANBULL), - SPECIES_TO_NATIONAL(QWILFISH), - SPECIES_TO_NATIONAL(SCIZOR), - SPECIES_TO_NATIONAL(SHUCKLE), - SPECIES_TO_NATIONAL(HERACROSS), - SPECIES_TO_NATIONAL(SNEASEL), - SPECIES_TO_NATIONAL(TEDDIURSA), - SPECIES_TO_NATIONAL(URSARING), - SPECIES_TO_NATIONAL(SLUGMA), - SPECIES_TO_NATIONAL(MAGCARGO), - SPECIES_TO_NATIONAL(SWINUB), - SPECIES_TO_NATIONAL(PILOSWINE), - SPECIES_TO_NATIONAL(CORSOLA), - SPECIES_TO_NATIONAL(REMORAID), - SPECIES_TO_NATIONAL(OCTILLERY), - SPECIES_TO_NATIONAL(DELIBIRD), - SPECIES_TO_NATIONAL(MANTINE), - SPECIES_TO_NATIONAL(SKARMORY), - SPECIES_TO_NATIONAL(HOUNDOUR), - SPECIES_TO_NATIONAL(HOUNDOOM), - SPECIES_TO_NATIONAL(KINGDRA), - SPECIES_TO_NATIONAL(PHANPY), - SPECIES_TO_NATIONAL(DONPHAN), - SPECIES_TO_NATIONAL(PORYGON2), - SPECIES_TO_NATIONAL(STANTLER), - SPECIES_TO_NATIONAL(SMEARGLE), - SPECIES_TO_NATIONAL(TYROGUE), - SPECIES_TO_NATIONAL(HITMONTOP), - SPECIES_TO_NATIONAL(SMOOCHUM), - SPECIES_TO_NATIONAL(ELEKID), - SPECIES_TO_NATIONAL(MAGBY), - SPECIES_TO_NATIONAL(MILTANK), - SPECIES_TO_NATIONAL(BLISSEY), - SPECIES_TO_NATIONAL(RAIKOU), - SPECIES_TO_NATIONAL(ENTEI), - SPECIES_TO_NATIONAL(SUICUNE), - SPECIES_TO_NATIONAL(LARVITAR), - SPECIES_TO_NATIONAL(PUPITAR), - SPECIES_TO_NATIONAL(TYRANITAR), - SPECIES_TO_NATIONAL(LUGIA), - SPECIES_TO_NATIONAL(HO_OH), - SPECIES_TO_NATIONAL(CELEBI), - SPECIES_TO_NATIONAL(TREECKO), - SPECIES_TO_NATIONAL(GROVYLE), - SPECIES_TO_NATIONAL(SCEPTILE), - SPECIES_TO_NATIONAL(TORCHIC), - SPECIES_TO_NATIONAL(COMBUSKEN), - SPECIES_TO_NATIONAL(BLAZIKEN), - SPECIES_TO_NATIONAL(MUDKIP), - SPECIES_TO_NATIONAL(MARSHTOMP), - SPECIES_TO_NATIONAL(SWAMPERT), - SPECIES_TO_NATIONAL(POOCHYENA), - SPECIES_TO_NATIONAL(MIGHTYENA), - SPECIES_TO_NATIONAL(ZIGZAGOON), - SPECIES_TO_NATIONAL(LINOONE), - SPECIES_TO_NATIONAL(WURMPLE), - SPECIES_TO_NATIONAL(SILCOON), - SPECIES_TO_NATIONAL(BEAUTIFLY), - SPECIES_TO_NATIONAL(CASCOON), - SPECIES_TO_NATIONAL(DUSTOX), - SPECIES_TO_NATIONAL(LOTAD), - SPECIES_TO_NATIONAL(LOMBRE), - SPECIES_TO_NATIONAL(LUDICOLO), - SPECIES_TO_NATIONAL(SEEDOT), - SPECIES_TO_NATIONAL(NUZLEAF), - SPECIES_TO_NATIONAL(SHIFTRY), - SPECIES_TO_NATIONAL(TAILLOW), - SPECIES_TO_NATIONAL(SWELLOW), - SPECIES_TO_NATIONAL(WINGULL), - SPECIES_TO_NATIONAL(PELIPPER), - SPECIES_TO_NATIONAL(RALTS), - SPECIES_TO_NATIONAL(KIRLIA), - SPECIES_TO_NATIONAL(GARDEVOIR), - SPECIES_TO_NATIONAL(SURSKIT), - SPECIES_TO_NATIONAL(MASQUERAIN), - SPECIES_TO_NATIONAL(SHROOMISH), - SPECIES_TO_NATIONAL(BRELOOM), - SPECIES_TO_NATIONAL(SLAKOTH), - SPECIES_TO_NATIONAL(VIGOROTH), - SPECIES_TO_NATIONAL(SLAKING), - SPECIES_TO_NATIONAL(NINCADA), - SPECIES_TO_NATIONAL(NINJASK), - SPECIES_TO_NATIONAL(SHEDINJA), - SPECIES_TO_NATIONAL(WHISMUR), - SPECIES_TO_NATIONAL(LOUDRED), - SPECIES_TO_NATIONAL(EXPLOUD), - SPECIES_TO_NATIONAL(MAKUHITA), - SPECIES_TO_NATIONAL(HARIYAMA), - SPECIES_TO_NATIONAL(AZURILL), - SPECIES_TO_NATIONAL(NOSEPASS), - SPECIES_TO_NATIONAL(SKITTY), - SPECIES_TO_NATIONAL(DELCATTY), - SPECIES_TO_NATIONAL(SABLEYE), - SPECIES_TO_NATIONAL(MAWILE), - SPECIES_TO_NATIONAL(ARON), - SPECIES_TO_NATIONAL(LAIRON), - SPECIES_TO_NATIONAL(AGGRON), - SPECIES_TO_NATIONAL(MEDITITE), - SPECIES_TO_NATIONAL(MEDICHAM), - SPECIES_TO_NATIONAL(ELECTRIKE), - SPECIES_TO_NATIONAL(MANECTRIC), - SPECIES_TO_NATIONAL(PLUSLE), - SPECIES_TO_NATIONAL(MINUN), - SPECIES_TO_NATIONAL(VOLBEAT), - SPECIES_TO_NATIONAL(ILLUMISE), - SPECIES_TO_NATIONAL(ROSELIA), - SPECIES_TO_NATIONAL(GULPIN), - SPECIES_TO_NATIONAL(SWALOT), - SPECIES_TO_NATIONAL(CARVANHA), - SPECIES_TO_NATIONAL(SHARPEDO), - SPECIES_TO_NATIONAL(WAILMER), - SPECIES_TO_NATIONAL(WAILORD), - SPECIES_TO_NATIONAL(NUMEL), - SPECIES_TO_NATIONAL(CAMERUPT), - SPECIES_TO_NATIONAL(TORKOAL), - SPECIES_TO_NATIONAL(SPOINK), - SPECIES_TO_NATIONAL(GRUMPIG), - SPECIES_TO_NATIONAL(SPINDA), - SPECIES_TO_NATIONAL(TRAPINCH), - SPECIES_TO_NATIONAL(VIBRAVA), - SPECIES_TO_NATIONAL(FLYGON), - SPECIES_TO_NATIONAL(CACNEA), - SPECIES_TO_NATIONAL(CACTURNE), - SPECIES_TO_NATIONAL(SWABLU), - SPECIES_TO_NATIONAL(ALTARIA), - SPECIES_TO_NATIONAL(ZANGOOSE), - SPECIES_TO_NATIONAL(SEVIPER), - SPECIES_TO_NATIONAL(LUNATONE), - SPECIES_TO_NATIONAL(SOLROCK), - SPECIES_TO_NATIONAL(BARBOACH), - SPECIES_TO_NATIONAL(WHISCASH), - SPECIES_TO_NATIONAL(CORPHISH), - SPECIES_TO_NATIONAL(CRAWDAUNT), - SPECIES_TO_NATIONAL(BALTOY), - SPECIES_TO_NATIONAL(CLAYDOL), - SPECIES_TO_NATIONAL(LILEEP), - SPECIES_TO_NATIONAL(CRADILY), - SPECIES_TO_NATIONAL(ANORITH), - SPECIES_TO_NATIONAL(ARMALDO), - SPECIES_TO_NATIONAL(FEEBAS), - SPECIES_TO_NATIONAL(MILOTIC), - SPECIES_TO_NATIONAL(CASTFORM), - SPECIES_TO_NATIONAL(KECLEON), - SPECIES_TO_NATIONAL(SHUPPET), - SPECIES_TO_NATIONAL(BANETTE), - SPECIES_TO_NATIONAL(DUSKULL), - SPECIES_TO_NATIONAL(DUSCLOPS), - SPECIES_TO_NATIONAL(TROPIUS), - SPECIES_TO_NATIONAL(CHIMECHO), - SPECIES_TO_NATIONAL(ABSOL), - SPECIES_TO_NATIONAL(WYNAUT), - SPECIES_TO_NATIONAL(SNORUNT), - SPECIES_TO_NATIONAL(GLALIE), - SPECIES_TO_NATIONAL(SPHEAL), - SPECIES_TO_NATIONAL(SEALEO), - SPECIES_TO_NATIONAL(WALREIN), - SPECIES_TO_NATIONAL(CLAMPERL), - SPECIES_TO_NATIONAL(HUNTAIL), - SPECIES_TO_NATIONAL(GOREBYSS), - SPECIES_TO_NATIONAL(RELICANTH), - SPECIES_TO_NATIONAL(LUVDISC), - SPECIES_TO_NATIONAL(BAGON), - SPECIES_TO_NATIONAL(SHELGON), - SPECIES_TO_NATIONAL(SALAMENCE), - SPECIES_TO_NATIONAL(BELDUM), - SPECIES_TO_NATIONAL(METANG), - SPECIES_TO_NATIONAL(METAGROSS), - SPECIES_TO_NATIONAL(REGIROCK), - SPECIES_TO_NATIONAL(REGICE), - SPECIES_TO_NATIONAL(REGISTEEL), - SPECIES_TO_NATIONAL(LATIAS), - SPECIES_TO_NATIONAL(LATIOS), - SPECIES_TO_NATIONAL(KYOGRE), - SPECIES_TO_NATIONAL(GROUDON), - SPECIES_TO_NATIONAL(RAYQUAZA), - SPECIES_TO_NATIONAL(JIRACHI), - SPECIES_TO_NATIONAL(DEOXYS), -#if P_GEN_4_POKEMON == TRUE - SPECIES_TO_NATIONAL(TURTWIG), - SPECIES_TO_NATIONAL(GROTLE), - SPECIES_TO_NATIONAL(TORTERRA), - SPECIES_TO_NATIONAL(CHIMCHAR), - SPECIES_TO_NATIONAL(MONFERNO), - SPECIES_TO_NATIONAL(INFERNAPE), - SPECIES_TO_NATIONAL(PIPLUP), - SPECIES_TO_NATIONAL(PRINPLUP), - SPECIES_TO_NATIONAL(EMPOLEON), - SPECIES_TO_NATIONAL(STARLY), - SPECIES_TO_NATIONAL(STARAVIA), - SPECIES_TO_NATIONAL(STARAPTOR), - SPECIES_TO_NATIONAL(BIDOOF), - SPECIES_TO_NATIONAL(BIBAREL), - SPECIES_TO_NATIONAL(KRICKETOT), - SPECIES_TO_NATIONAL(KRICKETUNE), - SPECIES_TO_NATIONAL(SHINX), - SPECIES_TO_NATIONAL(LUXIO), - SPECIES_TO_NATIONAL(LUXRAY), - SPECIES_TO_NATIONAL(BUDEW), - SPECIES_TO_NATIONAL(ROSERADE), - SPECIES_TO_NATIONAL(CRANIDOS), - SPECIES_TO_NATIONAL(RAMPARDOS), - SPECIES_TO_NATIONAL(SHIELDON), - SPECIES_TO_NATIONAL(BASTIODON), - SPECIES_TO_NATIONAL(BURMY), - SPECIES_TO_NATIONAL(WORMADAM), - SPECIES_TO_NATIONAL(MOTHIM), - SPECIES_TO_NATIONAL(COMBEE), - SPECIES_TO_NATIONAL(VESPIQUEN), - SPECIES_TO_NATIONAL(PACHIRISU), - SPECIES_TO_NATIONAL(BUIZEL), - SPECIES_TO_NATIONAL(FLOATZEL), - SPECIES_TO_NATIONAL(CHERUBI), - SPECIES_TO_NATIONAL(CHERRIM), - SPECIES_TO_NATIONAL(SHELLOS), - SPECIES_TO_NATIONAL(GASTRODON), - SPECIES_TO_NATIONAL(AMBIPOM), - SPECIES_TO_NATIONAL(DRIFLOON), - SPECIES_TO_NATIONAL(DRIFBLIM), - SPECIES_TO_NATIONAL(BUNEARY), - SPECIES_TO_NATIONAL(LOPUNNY), - SPECIES_TO_NATIONAL(MISMAGIUS), - SPECIES_TO_NATIONAL(HONCHKROW), - SPECIES_TO_NATIONAL(GLAMEOW), - SPECIES_TO_NATIONAL(PURUGLY), - SPECIES_TO_NATIONAL(CHINGLING), - SPECIES_TO_NATIONAL(STUNKY), - SPECIES_TO_NATIONAL(SKUNTANK), - SPECIES_TO_NATIONAL(BRONZOR), - SPECIES_TO_NATIONAL(BRONZONG), - SPECIES_TO_NATIONAL(BONSLY), - SPECIES_TO_NATIONAL(MIME_JR), - SPECIES_TO_NATIONAL(HAPPINY), - SPECIES_TO_NATIONAL(CHATOT), - SPECIES_TO_NATIONAL(SPIRITOMB), - SPECIES_TO_NATIONAL(GIBLE), - SPECIES_TO_NATIONAL(GABITE), - SPECIES_TO_NATIONAL(GARCHOMP), - SPECIES_TO_NATIONAL(MUNCHLAX), - SPECIES_TO_NATIONAL(RIOLU), - SPECIES_TO_NATIONAL(LUCARIO), - SPECIES_TO_NATIONAL(HIPPOPOTAS), - SPECIES_TO_NATIONAL(HIPPOWDON), - SPECIES_TO_NATIONAL(SKORUPI), - SPECIES_TO_NATIONAL(DRAPION), - SPECIES_TO_NATIONAL(CROAGUNK), - SPECIES_TO_NATIONAL(TOXICROAK), - SPECIES_TO_NATIONAL(CARNIVINE), - SPECIES_TO_NATIONAL(FINNEON), - SPECIES_TO_NATIONAL(LUMINEON), - SPECIES_TO_NATIONAL(MANTYKE), - SPECIES_TO_NATIONAL(SNOVER), - SPECIES_TO_NATIONAL(ABOMASNOW), - SPECIES_TO_NATIONAL(WEAVILE), - SPECIES_TO_NATIONAL(MAGNEZONE), - SPECIES_TO_NATIONAL(LICKILICKY), - SPECIES_TO_NATIONAL(RHYPERIOR), - SPECIES_TO_NATIONAL(TANGROWTH), - SPECIES_TO_NATIONAL(ELECTIVIRE), - SPECIES_TO_NATIONAL(MAGMORTAR), - SPECIES_TO_NATIONAL(TOGEKISS), - SPECIES_TO_NATIONAL(YANMEGA), - SPECIES_TO_NATIONAL(LEAFEON), - SPECIES_TO_NATIONAL(GLACEON), - SPECIES_TO_NATIONAL(GLISCOR), - SPECIES_TO_NATIONAL(MAMOSWINE), - SPECIES_TO_NATIONAL(PORYGON_Z), - SPECIES_TO_NATIONAL(GALLADE), - SPECIES_TO_NATIONAL(PROBOPASS), - SPECIES_TO_NATIONAL(DUSKNOIR), - SPECIES_TO_NATIONAL(FROSLASS), - SPECIES_TO_NATIONAL(ROTOM), - SPECIES_TO_NATIONAL(UXIE), - SPECIES_TO_NATIONAL(MESPRIT), - SPECIES_TO_NATIONAL(AZELF), - SPECIES_TO_NATIONAL(DIALGA), - SPECIES_TO_NATIONAL(PALKIA), - SPECIES_TO_NATIONAL(HEATRAN), - SPECIES_TO_NATIONAL(REGIGIGAS), - SPECIES_TO_NATIONAL(GIRATINA), - SPECIES_TO_NATIONAL(CRESSELIA), - SPECIES_TO_NATIONAL(PHIONE), - SPECIES_TO_NATIONAL(MANAPHY), - SPECIES_TO_NATIONAL(DARKRAI), - SPECIES_TO_NATIONAL(SHAYMIN), - SPECIES_TO_NATIONAL(ARCEUS), -#endif -#if P_GEN_5_POKEMON == TRUE - SPECIES_TO_NATIONAL(VICTINI), - SPECIES_TO_NATIONAL(SNIVY), - SPECIES_TO_NATIONAL(SERVINE), - SPECIES_TO_NATIONAL(SERPERIOR), - SPECIES_TO_NATIONAL(TEPIG), - SPECIES_TO_NATIONAL(PIGNITE), - SPECIES_TO_NATIONAL(EMBOAR), - SPECIES_TO_NATIONAL(OSHAWOTT), - SPECIES_TO_NATIONAL(DEWOTT), - SPECIES_TO_NATIONAL(SAMUROTT), - SPECIES_TO_NATIONAL(PATRAT), - SPECIES_TO_NATIONAL(WATCHOG), - SPECIES_TO_NATIONAL(LILLIPUP), - SPECIES_TO_NATIONAL(HERDIER), - SPECIES_TO_NATIONAL(STOUTLAND), - SPECIES_TO_NATIONAL(PURRLOIN), - SPECIES_TO_NATIONAL(LIEPARD), - SPECIES_TO_NATIONAL(PANSAGE), - SPECIES_TO_NATIONAL(SIMISAGE), - SPECIES_TO_NATIONAL(PANSEAR), - SPECIES_TO_NATIONAL(SIMISEAR), - SPECIES_TO_NATIONAL(PANPOUR), - SPECIES_TO_NATIONAL(SIMIPOUR), - SPECIES_TO_NATIONAL(MUNNA), - SPECIES_TO_NATIONAL(MUSHARNA), - SPECIES_TO_NATIONAL(PIDOVE), - SPECIES_TO_NATIONAL(TRANQUILL), - SPECIES_TO_NATIONAL(UNFEZANT), - SPECIES_TO_NATIONAL(BLITZLE), - SPECIES_TO_NATIONAL(ZEBSTRIKA), - SPECIES_TO_NATIONAL(ROGGENROLA), - SPECIES_TO_NATIONAL(BOLDORE), - SPECIES_TO_NATIONAL(GIGALITH), - SPECIES_TO_NATIONAL(WOOBAT), - SPECIES_TO_NATIONAL(SWOOBAT), - SPECIES_TO_NATIONAL(DRILBUR), - SPECIES_TO_NATIONAL(EXCADRILL), - SPECIES_TO_NATIONAL(AUDINO), - SPECIES_TO_NATIONAL(TIMBURR), - SPECIES_TO_NATIONAL(GURDURR), - SPECIES_TO_NATIONAL(CONKELDURR), - SPECIES_TO_NATIONAL(TYMPOLE), - SPECIES_TO_NATIONAL(PALPITOAD), - SPECIES_TO_NATIONAL(SEISMITOAD), - SPECIES_TO_NATIONAL(THROH), - SPECIES_TO_NATIONAL(SAWK), - SPECIES_TO_NATIONAL(SEWADDLE), - SPECIES_TO_NATIONAL(SWADLOON), - SPECIES_TO_NATIONAL(LEAVANNY), - SPECIES_TO_NATIONAL(VENIPEDE), - SPECIES_TO_NATIONAL(WHIRLIPEDE), - SPECIES_TO_NATIONAL(SCOLIPEDE), - SPECIES_TO_NATIONAL(COTTONEE), - SPECIES_TO_NATIONAL(WHIMSICOTT), - SPECIES_TO_NATIONAL(PETILIL), - SPECIES_TO_NATIONAL(LILLIGANT), - SPECIES_TO_NATIONAL(BASCULIN), - SPECIES_TO_NATIONAL(SANDILE), - SPECIES_TO_NATIONAL(KROKOROK), - SPECIES_TO_NATIONAL(KROOKODILE), - SPECIES_TO_NATIONAL(DARUMAKA), - SPECIES_TO_NATIONAL(DARMANITAN), - SPECIES_TO_NATIONAL(MARACTUS), - SPECIES_TO_NATIONAL(DWEBBLE), - SPECIES_TO_NATIONAL(CRUSTLE), - SPECIES_TO_NATIONAL(SCRAGGY), - SPECIES_TO_NATIONAL(SCRAFTY), - SPECIES_TO_NATIONAL(SIGILYPH), - SPECIES_TO_NATIONAL(YAMASK), - SPECIES_TO_NATIONAL(COFAGRIGUS), - SPECIES_TO_NATIONAL(TIRTOUGA), - SPECIES_TO_NATIONAL(CARRACOSTA), - SPECIES_TO_NATIONAL(ARCHEN), - SPECIES_TO_NATIONAL(ARCHEOPS), - SPECIES_TO_NATIONAL(TRUBBISH), - SPECIES_TO_NATIONAL(GARBODOR), - SPECIES_TO_NATIONAL(ZORUA), - SPECIES_TO_NATIONAL(ZOROARK), - SPECIES_TO_NATIONAL(MINCCINO), - SPECIES_TO_NATIONAL(CINCCINO), - SPECIES_TO_NATIONAL(GOTHITA), - SPECIES_TO_NATIONAL(GOTHORITA), - SPECIES_TO_NATIONAL(GOTHITELLE), - SPECIES_TO_NATIONAL(SOLOSIS), - SPECIES_TO_NATIONAL(DUOSION), - SPECIES_TO_NATIONAL(REUNICLUS), - SPECIES_TO_NATIONAL(DUCKLETT), - SPECIES_TO_NATIONAL(SWANNA), - SPECIES_TO_NATIONAL(VANILLITE), - SPECIES_TO_NATIONAL(VANILLISH), - SPECIES_TO_NATIONAL(VANILLUXE), - SPECIES_TO_NATIONAL(DEERLING), - SPECIES_TO_NATIONAL(SAWSBUCK), - SPECIES_TO_NATIONAL(EMOLGA), - SPECIES_TO_NATIONAL(KARRABLAST), - SPECIES_TO_NATIONAL(ESCAVALIER), - SPECIES_TO_NATIONAL(FOONGUS), - SPECIES_TO_NATIONAL(AMOONGUSS), - SPECIES_TO_NATIONAL(FRILLISH), - SPECIES_TO_NATIONAL(JELLICENT), - SPECIES_TO_NATIONAL(ALOMOMOLA), - SPECIES_TO_NATIONAL(JOLTIK), - SPECIES_TO_NATIONAL(GALVANTULA), - SPECIES_TO_NATIONAL(FERROSEED), - SPECIES_TO_NATIONAL(FERROTHORN), - SPECIES_TO_NATIONAL(KLINK), - SPECIES_TO_NATIONAL(KLANG), - SPECIES_TO_NATIONAL(KLINKLANG), - SPECIES_TO_NATIONAL(TYNAMO), - SPECIES_TO_NATIONAL(EELEKTRIK), - SPECIES_TO_NATIONAL(EELEKTROSS), - SPECIES_TO_NATIONAL(ELGYEM), - SPECIES_TO_NATIONAL(BEHEEYEM), - SPECIES_TO_NATIONAL(LITWICK), - SPECIES_TO_NATIONAL(LAMPENT), - SPECIES_TO_NATIONAL(CHANDELURE), - SPECIES_TO_NATIONAL(AXEW), - SPECIES_TO_NATIONAL(FRAXURE), - SPECIES_TO_NATIONAL(HAXORUS), - SPECIES_TO_NATIONAL(CUBCHOO), - SPECIES_TO_NATIONAL(BEARTIC), - SPECIES_TO_NATIONAL(CRYOGONAL), - SPECIES_TO_NATIONAL(SHELMET), - SPECIES_TO_NATIONAL(ACCELGOR), - SPECIES_TO_NATIONAL(STUNFISK), - SPECIES_TO_NATIONAL(MIENFOO), - SPECIES_TO_NATIONAL(MIENSHAO), - SPECIES_TO_NATIONAL(DRUDDIGON), - SPECIES_TO_NATIONAL(GOLETT), - SPECIES_TO_NATIONAL(GOLURK), - SPECIES_TO_NATIONAL(PAWNIARD), - SPECIES_TO_NATIONAL(BISHARP), - SPECIES_TO_NATIONAL(BOUFFALANT), - SPECIES_TO_NATIONAL(RUFFLET), - SPECIES_TO_NATIONAL(BRAVIARY), - SPECIES_TO_NATIONAL(VULLABY), - SPECIES_TO_NATIONAL(MANDIBUZZ), - SPECIES_TO_NATIONAL(HEATMOR), - SPECIES_TO_NATIONAL(DURANT), - SPECIES_TO_NATIONAL(DEINO), - SPECIES_TO_NATIONAL(ZWEILOUS), - SPECIES_TO_NATIONAL(HYDREIGON), - SPECIES_TO_NATIONAL(LARVESTA), - SPECIES_TO_NATIONAL(VOLCARONA), - SPECIES_TO_NATIONAL(COBALION), - SPECIES_TO_NATIONAL(TERRAKION), - SPECIES_TO_NATIONAL(VIRIZION), - SPECIES_TO_NATIONAL(TORNADUS), - SPECIES_TO_NATIONAL(THUNDURUS), - SPECIES_TO_NATIONAL(RESHIRAM), - SPECIES_TO_NATIONAL(ZEKROM), - SPECIES_TO_NATIONAL(LANDORUS), - SPECIES_TO_NATIONAL(KYUREM), - SPECIES_TO_NATIONAL(KELDEO), - SPECIES_TO_NATIONAL(MELOETTA), - SPECIES_TO_NATIONAL(GENESECT), -#endif -#if P_GEN_6_POKEMON == TRUE - SPECIES_TO_NATIONAL(CHESPIN), - SPECIES_TO_NATIONAL(QUILLADIN), - SPECIES_TO_NATIONAL(CHESNAUGHT), - SPECIES_TO_NATIONAL(FENNEKIN), - SPECIES_TO_NATIONAL(BRAIXEN), - SPECIES_TO_NATIONAL(DELPHOX), - SPECIES_TO_NATIONAL(FROAKIE), - SPECIES_TO_NATIONAL(FROGADIER), - SPECIES_TO_NATIONAL(GRENINJA), - SPECIES_TO_NATIONAL(BUNNELBY), - SPECIES_TO_NATIONAL(DIGGERSBY), - SPECIES_TO_NATIONAL(FLETCHLING), - SPECIES_TO_NATIONAL(FLETCHINDER), - SPECIES_TO_NATIONAL(TALONFLAME), - SPECIES_TO_NATIONAL(SCATTERBUG), - SPECIES_TO_NATIONAL(SPEWPA), - SPECIES_TO_NATIONAL(VIVILLON), - SPECIES_TO_NATIONAL(LITLEO), - SPECIES_TO_NATIONAL(PYROAR), - SPECIES_TO_NATIONAL(FLABEBE), - SPECIES_TO_NATIONAL(FLOETTE), - SPECIES_TO_NATIONAL(FLORGES), - SPECIES_TO_NATIONAL(SKIDDO), - SPECIES_TO_NATIONAL(GOGOAT), - SPECIES_TO_NATIONAL(PANCHAM), - SPECIES_TO_NATIONAL(PANGORO), - SPECIES_TO_NATIONAL(FURFROU), - SPECIES_TO_NATIONAL(ESPURR), - SPECIES_TO_NATIONAL(MEOWSTIC), - SPECIES_TO_NATIONAL(HONEDGE), - SPECIES_TO_NATIONAL(DOUBLADE), - SPECIES_TO_NATIONAL(AEGISLASH), - SPECIES_TO_NATIONAL(SPRITZEE), - SPECIES_TO_NATIONAL(AROMATISSE), - SPECIES_TO_NATIONAL(SWIRLIX), - SPECIES_TO_NATIONAL(SLURPUFF), - SPECIES_TO_NATIONAL(INKAY), - SPECIES_TO_NATIONAL(MALAMAR), - SPECIES_TO_NATIONAL(BINACLE), - SPECIES_TO_NATIONAL(BARBARACLE), - SPECIES_TO_NATIONAL(SKRELP), - SPECIES_TO_NATIONAL(DRAGALGE), - SPECIES_TO_NATIONAL(CLAUNCHER), - SPECIES_TO_NATIONAL(CLAWITZER), - SPECIES_TO_NATIONAL(HELIOPTILE), - SPECIES_TO_NATIONAL(HELIOLISK), - SPECIES_TO_NATIONAL(TYRUNT), - SPECIES_TO_NATIONAL(TYRANTRUM), - SPECIES_TO_NATIONAL(AMAURA), - SPECIES_TO_NATIONAL(AURORUS), - SPECIES_TO_NATIONAL(SYLVEON), - SPECIES_TO_NATIONAL(HAWLUCHA), - SPECIES_TO_NATIONAL(DEDENNE), - SPECIES_TO_NATIONAL(CARBINK), - SPECIES_TO_NATIONAL(GOOMY), - SPECIES_TO_NATIONAL(SLIGGOO), - SPECIES_TO_NATIONAL(GOODRA), - SPECIES_TO_NATIONAL(KLEFKI), - SPECIES_TO_NATIONAL(PHANTUMP), - SPECIES_TO_NATIONAL(TREVENANT), - SPECIES_TO_NATIONAL(PUMPKABOO), - SPECIES_TO_NATIONAL(GOURGEIST), - SPECIES_TO_NATIONAL(BERGMITE), - SPECIES_TO_NATIONAL(AVALUGG), - SPECIES_TO_NATIONAL(NOIBAT), - SPECIES_TO_NATIONAL(NOIVERN), - SPECIES_TO_NATIONAL(XERNEAS), - SPECIES_TO_NATIONAL(YVELTAL), - SPECIES_TO_NATIONAL(ZYGARDE), - SPECIES_TO_NATIONAL(DIANCIE), - SPECIES_TO_NATIONAL(HOOPA), - SPECIES_TO_NATIONAL(VOLCANION), -#endif -#if P_GEN_7_POKEMON == TRUE - SPECIES_TO_NATIONAL(ROWLET), - SPECIES_TO_NATIONAL(DARTRIX), - SPECIES_TO_NATIONAL(DECIDUEYE), - SPECIES_TO_NATIONAL(LITTEN), - SPECIES_TO_NATIONAL(TORRACAT), - SPECIES_TO_NATIONAL(INCINEROAR), - SPECIES_TO_NATIONAL(POPPLIO), - SPECIES_TO_NATIONAL(BRIONNE), - SPECIES_TO_NATIONAL(PRIMARINA), - SPECIES_TO_NATIONAL(PIKIPEK), - SPECIES_TO_NATIONAL(TRUMBEAK), - SPECIES_TO_NATIONAL(TOUCANNON), - SPECIES_TO_NATIONAL(YUNGOOS), - SPECIES_TO_NATIONAL(GUMSHOOS), - SPECIES_TO_NATIONAL(GRUBBIN), - SPECIES_TO_NATIONAL(CHARJABUG), - SPECIES_TO_NATIONAL(VIKAVOLT), - SPECIES_TO_NATIONAL(CRABRAWLER), - SPECIES_TO_NATIONAL(CRABOMINABLE), - SPECIES_TO_NATIONAL(ORICORIO), - SPECIES_TO_NATIONAL(CUTIEFLY), - SPECIES_TO_NATIONAL(RIBOMBEE), - SPECIES_TO_NATIONAL(ROCKRUFF), - SPECIES_TO_NATIONAL(LYCANROC), - SPECIES_TO_NATIONAL(WISHIWASHI), - SPECIES_TO_NATIONAL(MAREANIE), - SPECIES_TO_NATIONAL(TOXAPEX), - SPECIES_TO_NATIONAL(MUDBRAY), - SPECIES_TO_NATIONAL(MUDSDALE), - SPECIES_TO_NATIONAL(DEWPIDER), - SPECIES_TO_NATIONAL(ARAQUANID), - SPECIES_TO_NATIONAL(FOMANTIS), - SPECIES_TO_NATIONAL(LURANTIS), - SPECIES_TO_NATIONAL(MORELULL), - SPECIES_TO_NATIONAL(SHIINOTIC), - SPECIES_TO_NATIONAL(SALANDIT), - SPECIES_TO_NATIONAL(SALAZZLE), - SPECIES_TO_NATIONAL(STUFFUL), - SPECIES_TO_NATIONAL(BEWEAR), - SPECIES_TO_NATIONAL(BOUNSWEET), - SPECIES_TO_NATIONAL(STEENEE), - SPECIES_TO_NATIONAL(TSAREENA), - SPECIES_TO_NATIONAL(COMFEY), - SPECIES_TO_NATIONAL(ORANGURU), - SPECIES_TO_NATIONAL(PASSIMIAN), - SPECIES_TO_NATIONAL(WIMPOD), - SPECIES_TO_NATIONAL(GOLISOPOD), - SPECIES_TO_NATIONAL(SANDYGAST), - SPECIES_TO_NATIONAL(PALOSSAND), - SPECIES_TO_NATIONAL(PYUKUMUKU), - SPECIES_TO_NATIONAL(TYPE_NULL), - SPECIES_TO_NATIONAL(SILVALLY), - SPECIES_TO_NATIONAL(MINIOR), - SPECIES_TO_NATIONAL(KOMALA), - SPECIES_TO_NATIONAL(TURTONATOR), - SPECIES_TO_NATIONAL(TOGEDEMARU), - SPECIES_TO_NATIONAL(MIMIKYU), - SPECIES_TO_NATIONAL(BRUXISH), - SPECIES_TO_NATIONAL(DRAMPA), - SPECIES_TO_NATIONAL(DHELMISE), - SPECIES_TO_NATIONAL(JANGMO_O), - SPECIES_TO_NATIONAL(HAKAMO_O), - SPECIES_TO_NATIONAL(KOMMO_O), - SPECIES_TO_NATIONAL(TAPU_KOKO), - SPECIES_TO_NATIONAL(TAPU_LELE), - SPECIES_TO_NATIONAL(TAPU_BULU), - SPECIES_TO_NATIONAL(TAPU_FINI), - SPECIES_TO_NATIONAL(COSMOG), - SPECIES_TO_NATIONAL(COSMOEM), - SPECIES_TO_NATIONAL(SOLGALEO), - SPECIES_TO_NATIONAL(LUNALA), - SPECIES_TO_NATIONAL(NIHILEGO), - SPECIES_TO_NATIONAL(BUZZWOLE), - SPECIES_TO_NATIONAL(PHEROMOSA), - SPECIES_TO_NATIONAL(XURKITREE), - SPECIES_TO_NATIONAL(CELESTEELA), - SPECIES_TO_NATIONAL(KARTANA), - SPECIES_TO_NATIONAL(GUZZLORD), - SPECIES_TO_NATIONAL(NECROZMA), - SPECIES_TO_NATIONAL(MAGEARNA), - SPECIES_TO_NATIONAL(MARSHADOW), - SPECIES_TO_NATIONAL(POIPOLE), - SPECIES_TO_NATIONAL(NAGANADEL), - SPECIES_TO_NATIONAL(STAKATAKA), - SPECIES_TO_NATIONAL(BLACEPHALON), - SPECIES_TO_NATIONAL(ZERAORA), - SPECIES_TO_NATIONAL(MELTAN), - SPECIES_TO_NATIONAL(MELMETAL), -#endif -#if P_GEN_8_POKEMON == TRUE - SPECIES_TO_NATIONAL(GROOKEY), - SPECIES_TO_NATIONAL(THWACKEY), - SPECIES_TO_NATIONAL(RILLABOOM), - SPECIES_TO_NATIONAL(SCORBUNNY), - SPECIES_TO_NATIONAL(RABOOT), - SPECIES_TO_NATIONAL(CINDERACE), - SPECIES_TO_NATIONAL(SOBBLE), - SPECIES_TO_NATIONAL(DRIZZILE), - SPECIES_TO_NATIONAL(INTELEON), - SPECIES_TO_NATIONAL(SKWOVET), - SPECIES_TO_NATIONAL(GREEDENT), - SPECIES_TO_NATIONAL(ROOKIDEE), - SPECIES_TO_NATIONAL(CORVISQUIRE), - SPECIES_TO_NATIONAL(CORVIKNIGHT), - SPECIES_TO_NATIONAL(BLIPBUG), - SPECIES_TO_NATIONAL(DOTTLER), - SPECIES_TO_NATIONAL(ORBEETLE), - SPECIES_TO_NATIONAL(NICKIT), - SPECIES_TO_NATIONAL(THIEVUL), - SPECIES_TO_NATIONAL(GOSSIFLEUR), - SPECIES_TO_NATIONAL(ELDEGOSS), - SPECIES_TO_NATIONAL(WOOLOO), - SPECIES_TO_NATIONAL(DUBWOOL), - SPECIES_TO_NATIONAL(CHEWTLE), - SPECIES_TO_NATIONAL(DREDNAW), - SPECIES_TO_NATIONAL(YAMPER), - SPECIES_TO_NATIONAL(BOLTUND), - SPECIES_TO_NATIONAL(ROLYCOLY), - SPECIES_TO_NATIONAL(CARKOL), - SPECIES_TO_NATIONAL(COALOSSAL), - SPECIES_TO_NATIONAL(APPLIN), - SPECIES_TO_NATIONAL(FLAPPLE), - SPECIES_TO_NATIONAL(APPLETUN), - SPECIES_TO_NATIONAL(SILICOBRA), - SPECIES_TO_NATIONAL(SANDACONDA), - SPECIES_TO_NATIONAL(CRAMORANT), - SPECIES_TO_NATIONAL(ARROKUDA), - SPECIES_TO_NATIONAL(BARRASKEWDA), - SPECIES_TO_NATIONAL(TOXEL), - SPECIES_TO_NATIONAL(TOXTRICITY), - SPECIES_TO_NATIONAL(SIZZLIPEDE), - SPECIES_TO_NATIONAL(CENTISKORCH), - SPECIES_TO_NATIONAL(CLOBBOPUS), - SPECIES_TO_NATIONAL(GRAPPLOCT), - SPECIES_TO_NATIONAL(SINISTEA), - SPECIES_TO_NATIONAL(POLTEAGEIST), - SPECIES_TO_NATIONAL(HATENNA), - SPECIES_TO_NATIONAL(HATTREM), - SPECIES_TO_NATIONAL(HATTERENE), - SPECIES_TO_NATIONAL(IMPIDIMP), - SPECIES_TO_NATIONAL(MORGREM), - SPECIES_TO_NATIONAL(GRIMMSNARL), - SPECIES_TO_NATIONAL(OBSTAGOON), - SPECIES_TO_NATIONAL(PERRSERKER), - SPECIES_TO_NATIONAL(CURSOLA), - SPECIES_TO_NATIONAL(SIRFETCHD), - SPECIES_TO_NATIONAL(MR_RIME), - SPECIES_TO_NATIONAL(RUNERIGUS), - SPECIES_TO_NATIONAL(MILCERY), - SPECIES_TO_NATIONAL(ALCREMIE), - SPECIES_TO_NATIONAL(FALINKS), - SPECIES_TO_NATIONAL(PINCURCHIN), - SPECIES_TO_NATIONAL(SNOM), - SPECIES_TO_NATIONAL(FROSMOTH), - SPECIES_TO_NATIONAL(STONJOURNER), - SPECIES_TO_NATIONAL(EISCUE), - SPECIES_TO_NATIONAL(INDEEDEE), - SPECIES_TO_NATIONAL(MORPEKO), - SPECIES_TO_NATIONAL(CUFANT), - SPECIES_TO_NATIONAL(COPPERAJAH), - SPECIES_TO_NATIONAL(DRACOZOLT), - SPECIES_TO_NATIONAL(ARCTOZOLT), - SPECIES_TO_NATIONAL(DRACOVISH), - SPECIES_TO_NATIONAL(ARCTOVISH), - SPECIES_TO_NATIONAL(DURALUDON), - SPECIES_TO_NATIONAL(DREEPY), - SPECIES_TO_NATIONAL(DRAKLOAK), - SPECIES_TO_NATIONAL(DRAGAPULT), - SPECIES_TO_NATIONAL(ZACIAN), - SPECIES_TO_NATIONAL(ZAMAZENTA), - SPECIES_TO_NATIONAL(ETERNATUS), - SPECIES_TO_NATIONAL(KUBFU), - SPECIES_TO_NATIONAL(URSHIFU), - SPECIES_TO_NATIONAL(ZARUDE), - SPECIES_TO_NATIONAL(REGIELEKI), - SPECIES_TO_NATIONAL(REGIDRAGO), - SPECIES_TO_NATIONAL(GLASTRIER), - SPECIES_TO_NATIONAL(SPECTRIER), - SPECIES_TO_NATIONAL(CALYREX), - SPECIES_TO_NATIONAL(WYRDEER), - SPECIES_TO_NATIONAL(KLEAVOR), - SPECIES_TO_NATIONAL(URSALUNA), - SPECIES_TO_NATIONAL(BASCULEGION), - SPECIES_TO_NATIONAL(SNEASLER), - SPECIES_TO_NATIONAL(OVERQWIL), - SPECIES_TO_NATIONAL(ENAMORUS), -#endif - - // Megas - [SPECIES_VENUSAUR_MEGA - 1] = NATIONAL_DEX_VENUSAUR, - [SPECIES_CHARIZARD_MEGA_X - 1] = NATIONAL_DEX_CHARIZARD, - [SPECIES_CHARIZARD_MEGA_Y - 1] = NATIONAL_DEX_CHARIZARD, - [SPECIES_BLASTOISE_MEGA - 1] = NATIONAL_DEX_BLASTOISE, - [SPECIES_BEEDRILL_MEGA - 1] = NATIONAL_DEX_BEEDRILL, - [SPECIES_PIDGEOT_MEGA - 1] = NATIONAL_DEX_PIDGEOT, - [SPECIES_ALAKAZAM_MEGA - 1] = NATIONAL_DEX_ALAKAZAM, - [SPECIES_SLOWBRO_MEGA - 1] = NATIONAL_DEX_SLOWBRO, - [SPECIES_GENGAR_MEGA - 1] = NATIONAL_DEX_GENGAR, - [SPECIES_KANGASKHAN_MEGA - 1] = NATIONAL_DEX_KANGASKHAN, - [SPECIES_PINSIR_MEGA - 1] = NATIONAL_DEX_PINSIR, - [SPECIES_GYARADOS_MEGA - 1] = NATIONAL_DEX_GYARADOS, - [SPECIES_AERODACTYL_MEGA - 1] = NATIONAL_DEX_AERODACTYL, - [SPECIES_MEWTWO_MEGA_X - 1] = NATIONAL_DEX_MEWTWO, - [SPECIES_MEWTWO_MEGA_Y - 1] = NATIONAL_DEX_MEWTWO, - [SPECIES_AMPHAROS_MEGA - 1] = NATIONAL_DEX_AMPHAROS, - [SPECIES_STEELIX_MEGA - 1] = NATIONAL_DEX_STEELIX, - [SPECIES_SCIZOR_MEGA - 1] = NATIONAL_DEX_SCIZOR, - [SPECIES_HERACROSS_MEGA - 1] = NATIONAL_DEX_HERACROSS, - [SPECIES_HOUNDOOM_MEGA - 1] = NATIONAL_DEX_HOUNDOOM, - [SPECIES_TYRANITAR_MEGA - 1] = NATIONAL_DEX_TYRANITAR, - [SPECIES_SCEPTILE_MEGA - 1] = NATIONAL_DEX_SCEPTILE, - [SPECIES_BLAZIKEN_MEGA - 1] = NATIONAL_DEX_BLAZIKEN, - [SPECIES_SWAMPERT_MEGA - 1] = NATIONAL_DEX_SWAMPERT, - [SPECIES_GARDEVOIR_MEGA - 1] = NATIONAL_DEX_GARDEVOIR, - [SPECIES_SABLEYE_MEGA - 1] = NATIONAL_DEX_SABLEYE, - [SPECIES_MAWILE_MEGA - 1] = NATIONAL_DEX_MAWILE, - [SPECIES_AGGRON_MEGA - 1] = NATIONAL_DEX_AGGRON, - [SPECIES_MEDICHAM_MEGA - 1] = NATIONAL_DEX_MEDICHAM, - [SPECIES_MANECTRIC_MEGA - 1] = NATIONAL_DEX_MANECTRIC, - [SPECIES_SHARPEDO_MEGA - 1] = NATIONAL_DEX_SHARPEDO, - [SPECIES_CAMERUPT_MEGA - 1] = NATIONAL_DEX_CAMERUPT, - [SPECIES_ALTARIA_MEGA - 1] = NATIONAL_DEX_ALTARIA, - [SPECIES_BANETTE_MEGA - 1] = NATIONAL_DEX_BANETTE, - [SPECIES_ABSOL_MEGA - 1] = NATIONAL_DEX_ABSOL, - [SPECIES_GLALIE_MEGA - 1] = NATIONAL_DEX_GLALIE, - [SPECIES_SALAMENCE_MEGA - 1] = NATIONAL_DEX_SALAMENCE, - [SPECIES_METAGROSS_MEGA - 1] = NATIONAL_DEX_METAGROSS, - [SPECIES_LATIAS_MEGA - 1] = NATIONAL_DEX_LATIAS, - [SPECIES_LATIOS_MEGA - 1] = NATIONAL_DEX_LATIOS, -#if P_GEN_4_POKEMON == TRUE - [SPECIES_LOPUNNY_MEGA - 1] = NATIONAL_DEX_LOPUNNY, - [SPECIES_GARCHOMP_MEGA - 1] = NATIONAL_DEX_GARCHOMP, - [SPECIES_LUCARIO_MEGA - 1] = NATIONAL_DEX_LUCARIO, - [SPECIES_ABOMASNOW_MEGA - 1] = NATIONAL_DEX_ABOMASNOW, - [SPECIES_GALLADE_MEGA - 1] = NATIONAL_DEX_GALLADE, -#endif -#if P_GEN_5_POKEMON == TRUE - [SPECIES_AUDINO_MEGA - 1] = NATIONAL_DEX_AUDINO, -#endif -#if P_GEN_6_POKEMON == TRUE - [SPECIES_DIANCIE_MEGA - 1] = NATIONAL_DEX_DIANCIE, -#endif - // Special Mega + Primals - [SPECIES_RAYQUAZA_MEGA - 1] = NATIONAL_DEX_RAYQUAZA, - [SPECIES_KYOGRE_PRIMAL - 1] = NATIONAL_DEX_KYOGRE, - [SPECIES_GROUDON_PRIMAL - 1] = NATIONAL_DEX_GROUDON, - // Alolan Forms - [SPECIES_RATTATA_ALOLAN - 1] = NATIONAL_DEX_RATTATA, - [SPECIES_RATICATE_ALOLAN - 1] = NATIONAL_DEX_RATICATE, - [SPECIES_RAICHU_ALOLAN - 1] = NATIONAL_DEX_RAICHU, - [SPECIES_SANDSHREW_ALOLAN - 1] = NATIONAL_DEX_SANDSHREW, - [SPECIES_SANDSLASH_ALOLAN - 1] = NATIONAL_DEX_SANDSLASH, - [SPECIES_VULPIX_ALOLAN - 1] = NATIONAL_DEX_VULPIX, - [SPECIES_NINETALES_ALOLAN - 1] = NATIONAL_DEX_NINETALES, - [SPECIES_DIGLETT_ALOLAN - 1] = NATIONAL_DEX_DIGLETT, - [SPECIES_DUGTRIO_ALOLAN - 1] = NATIONAL_DEX_DUGTRIO, - [SPECIES_MEOWTH_ALOLAN - 1] = NATIONAL_DEX_MEOWTH, - [SPECIES_PERSIAN_ALOLAN - 1] = NATIONAL_DEX_PERSIAN, - [SPECIES_GEODUDE_ALOLAN - 1] = NATIONAL_DEX_GEODUDE, - [SPECIES_GRAVELER_ALOLAN - 1] = NATIONAL_DEX_GRAVELER, - [SPECIES_GOLEM_ALOLAN - 1] = NATIONAL_DEX_GOLEM, - [SPECIES_GRIMER_ALOLAN - 1] = NATIONAL_DEX_GRIMER, - [SPECIES_MUK_ALOLAN - 1] = NATIONAL_DEX_MUK, - [SPECIES_EXEGGUTOR_ALOLAN - 1] = NATIONAL_DEX_EXEGGUTOR, - [SPECIES_MAROWAK_ALOLAN - 1] = NATIONAL_DEX_MAROWAK, - // Galarian Forms - [SPECIES_MEOWTH_GALARIAN - 1] = NATIONAL_DEX_MEOWTH, - [SPECIES_PONYTA_GALARIAN - 1] = NATIONAL_DEX_PONYTA, - [SPECIES_RAPIDASH_GALARIAN - 1] = NATIONAL_DEX_RAPIDASH, - [SPECIES_SLOWPOKE_GALARIAN - 1] = NATIONAL_DEX_SLOWPOKE, - [SPECIES_SLOWBRO_GALARIAN - 1] = NATIONAL_DEX_SLOWBRO, - [SPECIES_FARFETCHD_GALARIAN - 1] = NATIONAL_DEX_FARFETCHD, - [SPECIES_WEEZING_GALARIAN - 1] = NATIONAL_DEX_WEEZING, - [SPECIES_MR_MIME_GALARIAN - 1] = NATIONAL_DEX_MR_MIME, - [SPECIES_ARTICUNO_GALARIAN - 1] = NATIONAL_DEX_ARTICUNO, - [SPECIES_ZAPDOS_GALARIAN - 1] = NATIONAL_DEX_ZAPDOS, - [SPECIES_MOLTRES_GALARIAN - 1] = NATIONAL_DEX_MOLTRES, - [SPECIES_SLOWKING_GALARIAN - 1] = NATIONAL_DEX_SLOWKING, - [SPECIES_CORSOLA_GALARIAN - 1] = NATIONAL_DEX_CORSOLA, - [SPECIES_ZIGZAGOON_GALARIAN - 1] = NATIONAL_DEX_ZIGZAGOON, - [SPECIES_LINOONE_GALARIAN - 1] = NATIONAL_DEX_LINOONE, -#if P_GEN_5_POKEMON == TRUE - [SPECIES_DARUMAKA_GALARIAN - 1] = NATIONAL_DEX_DARUMAKA, - [SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE - 1] = NATIONAL_DEX_DARMANITAN, - [SPECIES_YAMASK_GALARIAN - 1] = NATIONAL_DEX_YAMASK, - [SPECIES_STUNFISK_GALARIAN - 1] = NATIONAL_DEX_STUNFISK, -#endif -//Hisuian Forms - [SPECIES_GROWLITHE_HISUIAN - 1] = NATIONAL_DEX_GROWLITHE, - [SPECIES_ARCANINE_HISUIAN - 1] = NATIONAL_DEX_ARCANINE, - [SPECIES_VOLTORB_HISUIAN - 1] = NATIONAL_DEX_VOLTORB, - [SPECIES_ELECTRODE_HISUIAN - 1] = NATIONAL_DEX_ELECTRODE, - [SPECIES_TYPHLOSION_HISUIAN - 1] = NATIONAL_DEX_TYPHLOSION, - [SPECIES_QWILFISH_HISUIAN - 1] = NATIONAL_DEX_QWILFISH, - [SPECIES_SNEASEL_HISUIAN - 1] = NATIONAL_DEX_SNEASEL, -#if P_GEN_5_POKEMON == TRUE - [SPECIES_SAMUROTT_HISUIAN - 1] = NATIONAL_DEX_SAMUROTT, - [SPECIES_LILLIGANT_HISUIAN - 1] = NATIONAL_DEX_LILLIGANT, - [SPECIES_ZORUA_HISUIAN - 1] = NATIONAL_DEX_ZORUA, - [SPECIES_ZOROARK_HISUIAN - 1] = NATIONAL_DEX_ZOROARK, - [SPECIES_BRAVIARY_HISUIAN - 1] = NATIONAL_DEX_BRAVIARY, -#endif -#if P_GEN_6_POKEMON == TRUE - [SPECIES_SLIGGOO_HISUIAN - 1] = NATIONAL_DEX_SLIGGOO, - [SPECIES_GOODRA_HISUIAN - 1] = NATIONAL_DEX_GOODRA, - [SPECIES_AVALUGG_HISUIAN - 1] = NATIONAL_DEX_AVALUGG, -#endif -#if P_GEN_7_POKEMON == TRUE - [SPECIES_DECIDUEYE_HISUIAN - 1] = NATIONAL_DEX_DECIDUEYE, -#endif - // Cosplay Pikachu - [SPECIES_PIKACHU_COSPLAY - 1] = NATIONAL_DEX_PIKACHU, - [SPECIES_PIKACHU_ROCK_STAR - 1] = NATIONAL_DEX_PIKACHU, - [SPECIES_PIKACHU_BELLE - 1] = NATIONAL_DEX_PIKACHU, - [SPECIES_PIKACHU_POP_STAR - 1] = NATIONAL_DEX_PIKACHU, - [SPECIES_PIKACHU_PH_D - 1] = NATIONAL_DEX_PIKACHU, - [SPECIES_PIKACHU_LIBRE - 1] = NATIONAL_DEX_PIKACHU, - // Cap Pikachu - [SPECIES_PIKACHU_ORIGINAL_CAP - 1] = NATIONAL_DEX_PIKACHU, - [SPECIES_PIKACHU_HOENN_CAP - 1] = NATIONAL_DEX_PIKACHU, - [SPECIES_PIKACHU_SINNOH_CAP - 1] = NATIONAL_DEX_PIKACHU, - [SPECIES_PIKACHU_UNOVA_CAP - 1] = NATIONAL_DEX_PIKACHU, - [SPECIES_PIKACHU_KALOS_CAP - 1] = NATIONAL_DEX_PIKACHU, - [SPECIES_PIKACHU_ALOLA_CAP - 1] = NATIONAL_DEX_PIKACHU, - [SPECIES_PIKACHU_PARTNER_CAP - 1] = NATIONAL_DEX_PIKACHU, - [SPECIES_PIKACHU_WORLD_CAP - 1] = NATIONAL_DEX_PIKACHU, - // Pichu - [SPECIES_PICHU_SPIKY_EARED - 1] = NATIONAL_DEX_PICHU, - // Unown - [SPECIES_UNOWN_B - 1] = NATIONAL_DEX_UNOWN, - [SPECIES_UNOWN_C - 1] = NATIONAL_DEX_UNOWN, - [SPECIES_UNOWN_D - 1] = NATIONAL_DEX_UNOWN, - [SPECIES_UNOWN_E - 1] = NATIONAL_DEX_UNOWN, - [SPECIES_UNOWN_F - 1] = NATIONAL_DEX_UNOWN, - [SPECIES_UNOWN_G - 1] = NATIONAL_DEX_UNOWN, - [SPECIES_UNOWN_H - 1] = NATIONAL_DEX_UNOWN, - [SPECIES_UNOWN_I - 1] = NATIONAL_DEX_UNOWN, - [SPECIES_UNOWN_J - 1] = NATIONAL_DEX_UNOWN, - [SPECIES_UNOWN_K - 1] = NATIONAL_DEX_UNOWN, - [SPECIES_UNOWN_L - 1] = NATIONAL_DEX_UNOWN, - [SPECIES_UNOWN_M - 1] = NATIONAL_DEX_UNOWN, - [SPECIES_UNOWN_N - 1] = NATIONAL_DEX_UNOWN, - [SPECIES_UNOWN_O - 1] = NATIONAL_DEX_UNOWN, - [SPECIES_UNOWN_P - 1] = NATIONAL_DEX_UNOWN, - [SPECIES_UNOWN_Q - 1] = NATIONAL_DEX_UNOWN, - [SPECIES_UNOWN_R - 1] = NATIONAL_DEX_UNOWN, - [SPECIES_UNOWN_S - 1] = NATIONAL_DEX_UNOWN, - [SPECIES_UNOWN_T - 1] = NATIONAL_DEX_UNOWN, - [SPECIES_UNOWN_U - 1] = NATIONAL_DEX_UNOWN, - [SPECIES_UNOWN_V - 1] = NATIONAL_DEX_UNOWN, - [SPECIES_UNOWN_W - 1] = NATIONAL_DEX_UNOWN, - [SPECIES_UNOWN_X - 1] = NATIONAL_DEX_UNOWN, - [SPECIES_UNOWN_Y - 1] = NATIONAL_DEX_UNOWN, - [SPECIES_UNOWN_Z - 1] = NATIONAL_DEX_UNOWN, - [SPECIES_UNOWN_QMARK - 1] = NATIONAL_DEX_UNOWN, - [SPECIES_UNOWN_EMARK - 1] = NATIONAL_DEX_UNOWN, - // Castform - [SPECIES_CASTFORM_SUNNY - 1] = NATIONAL_DEX_CASTFORM, - [SPECIES_CASTFORM_RAINY - 1] = NATIONAL_DEX_CASTFORM, - [SPECIES_CASTFORM_SNOWY - 1] = NATIONAL_DEX_CASTFORM, - // Deoxys - [SPECIES_DEOXYS_ATTACK - 1] = NATIONAL_DEX_DEOXYS, - [SPECIES_DEOXYS_DEFENSE - 1] = NATIONAL_DEX_DEOXYS, - [SPECIES_DEOXYS_SPEED - 1] = NATIONAL_DEX_DEOXYS, -#if P_GEN_4_POKEMON == TRUE - // Burmy - [SPECIES_BURMY_SANDY_CLOAK - 1] = NATIONAL_DEX_BURMY, - [SPECIES_BURMY_TRASH_CLOAK - 1] = NATIONAL_DEX_BURMY, - // Wormadam - [SPECIES_WORMADAM_SANDY_CLOAK - 1] = NATIONAL_DEX_WORMADAM, - [SPECIES_WORMADAM_TRASH_CLOAK - 1] = NATIONAL_DEX_WORMADAM, - // Cherrim - [SPECIES_CHERRIM_SUNSHINE - 1] = NATIONAL_DEX_CHERRIM, - // Shellos - [SPECIES_SHELLOS_EAST_SEA - 1] = NATIONAL_DEX_SHELLOS, - // Gastrodon - [SPECIES_GASTRODON_EAST_SEA - 1] = NATIONAL_DEX_GASTRODON, - // Rotom - [SPECIES_ROTOM_HEAT - 1] = NATIONAL_DEX_ROTOM, - [SPECIES_ROTOM_WASH - 1] = NATIONAL_DEX_ROTOM, - [SPECIES_ROTOM_FROST - 1] = NATIONAL_DEX_ROTOM, - [SPECIES_ROTOM_FAN - 1] = NATIONAL_DEX_ROTOM, - [SPECIES_ROTOM_MOW - 1] = NATIONAL_DEX_ROTOM, - // Origin Forme - [SPECIES_DIALGA_ORIGIN - 1] = NATIONAL_DEX_DIALGA, - [SPECIES_PALKIA_ORIGIN - 1] = NATIONAL_DEX_PALKIA, - [SPECIES_GIRATINA_ORIGIN - 1] = NATIONAL_DEX_GIRATINA, - // Shaymin - [SPECIES_SHAYMIN_SKY - 1] = NATIONAL_DEX_SHAYMIN, - // Arceus - [SPECIES_ARCEUS_FIGHTING - 1] = NATIONAL_DEX_ARCEUS, - [SPECIES_ARCEUS_FLYING - 1] = NATIONAL_DEX_ARCEUS, - [SPECIES_ARCEUS_POISON - 1] = NATIONAL_DEX_ARCEUS, - [SPECIES_ARCEUS_GROUND - 1] = NATIONAL_DEX_ARCEUS, - [SPECIES_ARCEUS_ROCK - 1] = NATIONAL_DEX_ARCEUS, - [SPECIES_ARCEUS_BUG - 1] = NATIONAL_DEX_ARCEUS, - [SPECIES_ARCEUS_GHOST - 1] = NATIONAL_DEX_ARCEUS, - [SPECIES_ARCEUS_STEEL - 1] = NATIONAL_DEX_ARCEUS, - [SPECIES_ARCEUS_FIRE - 1] = NATIONAL_DEX_ARCEUS, - [SPECIES_ARCEUS_WATER - 1] = NATIONAL_DEX_ARCEUS, - [SPECIES_ARCEUS_GRASS - 1] = NATIONAL_DEX_ARCEUS, - [SPECIES_ARCEUS_ELECTRIC - 1] = NATIONAL_DEX_ARCEUS, - [SPECIES_ARCEUS_PSYCHIC - 1] = NATIONAL_DEX_ARCEUS, - [SPECIES_ARCEUS_ICE - 1] = NATIONAL_DEX_ARCEUS, - [SPECIES_ARCEUS_DRAGON - 1] = NATIONAL_DEX_ARCEUS, - [SPECIES_ARCEUS_DARK - 1] = NATIONAL_DEX_ARCEUS, - [SPECIES_ARCEUS_FAIRY - 1] = NATIONAL_DEX_ARCEUS, -#endif -#if P_GEN_5_POKEMON == TRUE - // Basculin - [SPECIES_BASCULIN_BLUE_STRIPED - 1] = NATIONAL_DEX_BASCULIN, - [SPECIES_BASCULIN_WHITE_STRIPED - 1] = NATIONAL_DEX_BASCULIN, - // Darmanitan - [SPECIES_DARMANITAN_ZEN_MODE - 1] = NATIONAL_DEX_DARMANITAN, - [SPECIES_DARMANITAN_GALARIAN_ZEN_MODE - 1] = NATIONAL_DEX_DARMANITAN, - // Deerling - [SPECIES_DEERLING_SUMMER - 1] = NATIONAL_DEX_DEERLING, - [SPECIES_DEERLING_AUTUMN - 1] = NATIONAL_DEX_DEERLING, - [SPECIES_DEERLING_WINTER - 1] = NATIONAL_DEX_DEERLING, - // Sawsbuck - [SPECIES_SAWSBUCK_SUMMER - 1] = NATIONAL_DEX_SAWSBUCK, - [SPECIES_SAWSBUCK_AUTUMN - 1] = NATIONAL_DEX_SAWSBUCK, - [SPECIES_SAWSBUCK_WINTER - 1] = NATIONAL_DEX_SAWSBUCK, - // Therian Forms - [SPECIES_TORNADUS_THERIAN - 1] = NATIONAL_DEX_TORNADUS, - [SPECIES_THUNDURUS_THERIAN - 1] = NATIONAL_DEX_THUNDURUS, - [SPECIES_LANDORUS_THERIAN - 1] = NATIONAL_DEX_LANDORUS, - // Kyurem - [SPECIES_KYUREM_BLACK - 1] = NATIONAL_DEX_KYUREM, - [SPECIES_KYUREM_WHITE - 1] = NATIONAL_DEX_KYUREM, - // Keldeo - [SPECIES_KELDEO_RESOLUTE - 1] = NATIONAL_DEX_KELDEO, - // Meloetta - [SPECIES_MELOETTA_PIROUETTE - 1] = NATIONAL_DEX_MELOETTA, - // Genesect - [SPECIES_GENESECT_DOUSE_DRIVE - 1] = NATIONAL_DEX_GENESECT, - [SPECIES_GENESECT_SHOCK_DRIVE - 1] = NATIONAL_DEX_GENESECT, - [SPECIES_GENESECT_BURN_DRIVE - 1] = NATIONAL_DEX_GENESECT, - [SPECIES_GENESECT_CHILL_DRIVE - 1] = NATIONAL_DEX_GENESECT, -#endif -#if P_GEN_6_POKEMON == TRUE - // Greninja - [SPECIES_GRENINJA_BATTLE_BOND - 1] = NATIONAL_DEX_GRENINJA, - [SPECIES_GRENINJA_ASH - 1] = NATIONAL_DEX_GRENINJA, - // Vivillon - [SPECIES_VIVILLON_POLAR - 1] = NATIONAL_DEX_VIVILLON, - [SPECIES_VIVILLON_TUNDRA - 1] = NATIONAL_DEX_VIVILLON, - [SPECIES_VIVILLON_CONTINENTAL - 1] = NATIONAL_DEX_VIVILLON, - [SPECIES_VIVILLON_GARDEN - 1] = NATIONAL_DEX_VIVILLON, - [SPECIES_VIVILLON_ELEGANT - 1] = NATIONAL_DEX_VIVILLON, - [SPECIES_VIVILLON_MEADOW - 1] = NATIONAL_DEX_VIVILLON, - [SPECIES_VIVILLON_MODERN - 1] = NATIONAL_DEX_VIVILLON, - [SPECIES_VIVILLON_MARINE - 1] = NATIONAL_DEX_VIVILLON, - [SPECIES_VIVILLON_ARCHIPELAGO - 1] = NATIONAL_DEX_VIVILLON, - [SPECIES_VIVILLON_HIGH_PLAINS - 1] = NATIONAL_DEX_VIVILLON, - [SPECIES_VIVILLON_SANDSTORM - 1] = NATIONAL_DEX_VIVILLON, - [SPECIES_VIVILLON_RIVER - 1] = NATIONAL_DEX_VIVILLON, - [SPECIES_VIVILLON_MONSOON - 1] = NATIONAL_DEX_VIVILLON, - [SPECIES_VIVILLON_SAVANNA - 1] = NATIONAL_DEX_VIVILLON, - [SPECIES_VIVILLON_SUN - 1] = NATIONAL_DEX_VIVILLON, - [SPECIES_VIVILLON_OCEAN - 1] = NATIONAL_DEX_VIVILLON, - [SPECIES_VIVILLON_JUNGLE - 1] = NATIONAL_DEX_VIVILLON, - [SPECIES_VIVILLON_FANCY - 1] = NATIONAL_DEX_VIVILLON, - [SPECIES_VIVILLON_POKE_BALL - 1] = NATIONAL_DEX_VIVILLON, - // Flabébé - [SPECIES_FLABEBE_YELLOW_FLOWER - 1] = NATIONAL_DEX_FLABEBE, - [SPECIES_FLABEBE_ORANGE_FLOWER - 1] = NATIONAL_DEX_FLABEBE, - [SPECIES_FLABEBE_BLUE_FLOWER - 1] = NATIONAL_DEX_FLABEBE, - [SPECIES_FLABEBE_WHITE_FLOWER - 1] = NATIONAL_DEX_FLABEBE, - // Floette - [SPECIES_FLOETTE_YELLOW_FLOWER - 1] = NATIONAL_DEX_FLOETTE, - [SPECIES_FLOETTE_ORANGE_FLOWER - 1] = NATIONAL_DEX_FLOETTE, - [SPECIES_FLOETTE_BLUE_FLOWER - 1] = NATIONAL_DEX_FLOETTE, - [SPECIES_FLOETTE_WHITE_FLOWER - 1] = NATIONAL_DEX_FLOETTE, - [SPECIES_FLOETTE_ETERNAL_FLOWER - 1] = NATIONAL_DEX_FLOETTE, - // Florges - [SPECIES_FLORGES_YELLOW_FLOWER - 1] = NATIONAL_DEX_FLORGES, - [SPECIES_FLORGES_ORANGE_FLOWER - 1] = NATIONAL_DEX_FLORGES, - [SPECIES_FLORGES_BLUE_FLOWER - 1] = NATIONAL_DEX_FLORGES, - [SPECIES_FLORGES_WHITE_FLOWER - 1] = NATIONAL_DEX_FLORGES, - // Furfrou - [SPECIES_FURFROU_HEART_TRIM - 1] = NATIONAL_DEX_FURFROU, - [SPECIES_FURFROU_STAR_TRIM - 1] = NATIONAL_DEX_FURFROU, - [SPECIES_FURFROU_DIAMOND_TRIM - 1] = NATIONAL_DEX_FURFROU, - [SPECIES_FURFROU_DEBUTANTE_TRIM - 1] = NATIONAL_DEX_FURFROU, - [SPECIES_FURFROU_MATRON_TRIM - 1] = NATIONAL_DEX_FURFROU, - [SPECIES_FURFROU_DANDY_TRIM - 1] = NATIONAL_DEX_FURFROU, - [SPECIES_FURFROU_LA_REINE_TRIM - 1] = NATIONAL_DEX_FURFROU, - [SPECIES_FURFROU_KABUKI_TRIM - 1] = NATIONAL_DEX_FURFROU, - [SPECIES_FURFROU_PHARAOH_TRIM - 1] = NATIONAL_DEX_FURFROU, - // Meowstic - [SPECIES_MEOWSTIC_FEMALE - 1] = NATIONAL_DEX_MEOWSTIC, - // Aegislash - [SPECIES_AEGISLASH_BLADE - 1] = NATIONAL_DEX_AEGISLASH, - // Pumpkaboo - [SPECIES_PUMPKABOO_SMALL - 1] = NATIONAL_DEX_PUMPKABOO, - [SPECIES_PUMPKABOO_LARGE - 1] = NATIONAL_DEX_PUMPKABOO, - [SPECIES_PUMPKABOO_SUPER - 1] = NATIONAL_DEX_PUMPKABOO, - // Gourgeist - [SPECIES_GOURGEIST_SMALL - 1] = NATIONAL_DEX_GOURGEIST, - [SPECIES_GOURGEIST_LARGE - 1] = NATIONAL_DEX_GOURGEIST, - [SPECIES_GOURGEIST_SUPER - 1] = NATIONAL_DEX_GOURGEIST, - // Xerneas - [SPECIES_XERNEAS_ACTIVE - 1] = NATIONAL_DEX_XERNEAS, - // Zygarde - [SPECIES_ZYGARDE_10_AURA_BREAK - 1] = NATIONAL_DEX_ZYGARDE, - [SPECIES_ZYGARDE_10_POWER_CONSTRUCT - 1] = NATIONAL_DEX_ZYGARDE, - [SPECIES_ZYGARDE_50_POWER_CONSTRUCT - 1] = NATIONAL_DEX_ZYGARDE, - [SPECIES_ZYGARDE_COMPLETE - 1] = NATIONAL_DEX_ZYGARDE, - // Hoopa - [SPECIES_HOOPA_UNBOUND - 1] = NATIONAL_DEX_HOOPA, -#endif -#if P_GEN_7_POKEMON == TRUE - // Oricorio - [SPECIES_ORICORIO_POM_POM - 1] = NATIONAL_DEX_ORICORIO, - [SPECIES_ORICORIO_PAU - 1] = NATIONAL_DEX_ORICORIO, - [SPECIES_ORICORIO_SENSU - 1] = NATIONAL_DEX_ORICORIO, - // Rockruff - [SPECIES_ROCKRUFF_OWN_TEMPO - 1] = NATIONAL_DEX_ROCKRUFF, - // Lycanroc - [SPECIES_LYCANROC_MIDNIGHT - 1] = NATIONAL_DEX_LYCANROC, - [SPECIES_LYCANROC_DUSK - 1] = NATIONAL_DEX_LYCANROC, - // Wishiwashi - [SPECIES_WISHIWASHI_SCHOOL - 1] = NATIONAL_DEX_WISHIWASHI, - // Silvally - [SPECIES_SILVALLY_FIGHTING - 1] = NATIONAL_DEX_SILVALLY, - [SPECIES_SILVALLY_FLYING - 1] = NATIONAL_DEX_SILVALLY, - [SPECIES_SILVALLY_POISON - 1] = NATIONAL_DEX_SILVALLY, - [SPECIES_SILVALLY_GROUND - 1] = NATIONAL_DEX_SILVALLY, - [SPECIES_SILVALLY_ROCK - 1] = NATIONAL_DEX_SILVALLY, - [SPECIES_SILVALLY_BUG - 1] = NATIONAL_DEX_SILVALLY, - [SPECIES_SILVALLY_GHOST - 1] = NATIONAL_DEX_SILVALLY, - [SPECIES_SILVALLY_STEEL - 1] = NATIONAL_DEX_SILVALLY, - [SPECIES_SILVALLY_FIRE - 1] = NATIONAL_DEX_SILVALLY, - [SPECIES_SILVALLY_WATER - 1] = NATIONAL_DEX_SILVALLY, - [SPECIES_SILVALLY_GRASS - 1] = NATIONAL_DEX_SILVALLY, - [SPECIES_SILVALLY_ELECTRIC - 1] = NATIONAL_DEX_SILVALLY, - [SPECIES_SILVALLY_PSYCHIC - 1] = NATIONAL_DEX_SILVALLY, - [SPECIES_SILVALLY_ICE - 1] = NATIONAL_DEX_SILVALLY, - [SPECIES_SILVALLY_DRAGON - 1] = NATIONAL_DEX_SILVALLY, - [SPECIES_SILVALLY_DARK - 1] = NATIONAL_DEX_SILVALLY, - [SPECIES_SILVALLY_FAIRY - 1] = NATIONAL_DEX_SILVALLY, - // Minior - [SPECIES_MINIOR_METEOR_ORANGE - 1] = NATIONAL_DEX_MINIOR, - [SPECIES_MINIOR_METEOR_YELLOW - 1] = NATIONAL_DEX_MINIOR, - [SPECIES_MINIOR_METEOR_GREEN - 1] = NATIONAL_DEX_MINIOR, - [SPECIES_MINIOR_METEOR_BLUE - 1] = NATIONAL_DEX_MINIOR, - [SPECIES_MINIOR_METEOR_INDIGO - 1] = NATIONAL_DEX_MINIOR, - [SPECIES_MINIOR_METEOR_VIOLET - 1] = NATIONAL_DEX_MINIOR, - [SPECIES_MINIOR_CORE_RED - 1] = NATIONAL_DEX_MINIOR, - [SPECIES_MINIOR_CORE_ORANGE - 1] = NATIONAL_DEX_MINIOR, - [SPECIES_MINIOR_CORE_YELLOW - 1] = NATIONAL_DEX_MINIOR, - [SPECIES_MINIOR_CORE_GREEN - 1] = NATIONAL_DEX_MINIOR, - [SPECIES_MINIOR_CORE_BLUE - 1] = NATIONAL_DEX_MINIOR, - [SPECIES_MINIOR_CORE_INDIGO - 1] = NATIONAL_DEX_MINIOR, - [SPECIES_MINIOR_CORE_VIOLET - 1] = NATIONAL_DEX_MINIOR, - // Mimikyu - [SPECIES_MIMIKYU_BUSTED - 1] = NATIONAL_DEX_MIMIKYU, - // Necrozma - [SPECIES_NECROZMA_DUSK_MANE - 1] = NATIONAL_DEX_NECROZMA, - [SPECIES_NECROZMA_DAWN_WINGS - 1] = NATIONAL_DEX_NECROZMA, - [SPECIES_NECROZMA_ULTRA - 1] = NATIONAL_DEX_NECROZMA, - // Magearna - [SPECIES_MAGEARNA_ORIGINAL_COLOR - 1] = NATIONAL_DEX_MAGEARNA, -#endif -#if P_GEN_8_POKEMON == TRUE - // Cramorant - [SPECIES_CRAMORANT_GULPING - 1] = NATIONAL_DEX_CRAMORANT, - [SPECIES_CRAMORANT_GORGING - 1] = NATIONAL_DEX_CRAMORANT, - // Toxtricity - [SPECIES_TOXTRICITY_LOW_KEY - 1] = NATIONAL_DEX_TOXTRICITY, - // Sinistea - [SPECIES_SINISTEA_ANTIQUE - 1] = NATIONAL_DEX_SINISTEA, - // Polteageist - [SPECIES_POLTEAGEIST_ANTIQUE - 1] = NATIONAL_DEX_POLTEAGEIST, - // Alcremie - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL - 1] = NATIONAL_DEX_ALCREMIE, - // Eiscue - [SPECIES_EISCUE_NOICE_FACE - 1] = NATIONAL_DEX_EISCUE, - // Indeedee - [SPECIES_INDEEDEE_FEMALE - 1] = NATIONAL_DEX_INDEEDEE, - // Morpeko - [SPECIES_MORPEKO_HANGRY - 1] = NATIONAL_DEX_MORPEKO, - // Zacian - [SPECIES_ZACIAN_CROWNED_SWORD - 1] = NATIONAL_DEX_ZACIAN, - // Zamazenta - [SPECIES_ZAMAZENTA_CROWNED_SHIELD - 1] = NATIONAL_DEX_ZAMAZENTA, - // Eternatus - [SPECIES_ETERNATUS_ETERNAMAX - 1] = NATIONAL_DEX_ETERNATUS, - // Urshifu - [SPECIES_URSHIFU_RAPID_STRIKE_STYLE - 1] = NATIONAL_DEX_URSHIFU, - // Zarude - [SPECIES_ZARUDE_DADA - 1] = NATIONAL_DEX_ZARUDE, - // Calyrex - [SPECIES_CALYREX_ICE_RIDER - 1] = NATIONAL_DEX_CALYREX, - [SPECIES_CALYREX_SHADOW_RIDER - 1] = NATIONAL_DEX_CALYREX, - [SPECIES_ENAMORUS_THERIAN - 1] = NATIONAL_DEX_ENAMORUS, - // Basculegion - [SPECIES_BASCULEGION_FEMALE - 1] = NATIONAL_DEX_BASCULEGION, - // Gigantamax Forms - [SPECIES_VENUSAUR_GIGANTAMAX - 1] = NATIONAL_DEX_VENUSAUR, - [SPECIES_CHARIZARD_GIGANTAMAX - 1] = NATIONAL_DEX_CHARIZARD, - [SPECIES_BLASTOISE_GIGANTAMAX - 1] = NATIONAL_DEX_BLASTOISE, - [SPECIES_BUTTERFREE_GIGANTAMAX - 1] = NATIONAL_DEX_BUTTERFREE, - [SPECIES_PIKACHU_GIGANTAMAX - 1] = NATIONAL_DEX_PIKACHU, - [SPECIES_MEOWTH_GIGANTAMAX - 1] = NATIONAL_DEX_MEOWTH, - [SPECIES_MACHAMP_GIGANTAMAX - 1] = NATIONAL_DEX_MACHAMP, - [SPECIES_GENGAR_GIGANTAMAX - 1] = NATIONAL_DEX_GENGAR, - [SPECIES_KINGLER_GIGANTAMAX - 1] = NATIONAL_DEX_KINGLER, - [SPECIES_LAPRAS_GIGANTAMAX - 1] = NATIONAL_DEX_LAPRAS, - [SPECIES_EEVEE_GIGANTAMAX - 1] = NATIONAL_DEX_EEVEE, - [SPECIES_SNORLAX_GIGANTAMAX - 1] = NATIONAL_DEX_SNORLAX, - [SPECIES_GARBODOR_GIGANTAMAX - 1] = NATIONAL_DEX_GARBODOR, - [SPECIES_MELMETAL_GIGANTAMAX - 1] = NATIONAL_DEX_MELMETAL, - [SPECIES_RILLABOOM_GIGANTAMAX - 1] = NATIONAL_DEX_RILLABOOM, - [SPECIES_CINDERACE_GIGANTAMAX - 1] = NATIONAL_DEX_CINDERACE, - [SPECIES_INTELEON_GIGANTAMAX - 1] = NATIONAL_DEX_INTELEON, - [SPECIES_CORVIKNIGHT_GIGANTAMAX - 1] = NATIONAL_DEX_CORVIKNIGHT, - [SPECIES_ORBEETLE_GIGANTAMAX - 1] = NATIONAL_DEX_ORBEETLE, - [SPECIES_DREDNAW_GIGANTAMAX - 1] = NATIONAL_DEX_DREDNAW, - [SPECIES_COALOSSAL_GIGANTAMAX - 1] = NATIONAL_DEX_COALOSSAL, - [SPECIES_FLAPPLE_GIGANTAMAX - 1] = NATIONAL_DEX_FLAPPLE, - [SPECIES_APPLETUN_GIGANTAMAX - 1] = NATIONAL_DEX_APPLETUN, - [SPECIES_SANDACONDA_GIGANTAMAX - 1] = NATIONAL_DEX_SANDACONDA, - [SPECIES_TOXTRICITY_AMPED_GIGANTAMAX - 1] = NATIONAL_DEX_TOXTRICITY, - [SPECIES_TOXTRICITY_LOW_KEY_GIGANTAMAX - 1] = NATIONAL_DEX_TOXTRICITY, - [SPECIES_CENTISKORCH_GIGANTAMAX - 1] = NATIONAL_DEX_CENTISKORCH, - [SPECIES_HATTERENE_GIGANTAMAX - 1] = NATIONAL_DEX_HATTERENE, - [SPECIES_GRIMMSNARL_GIGANTAMAX - 1] = NATIONAL_DEX_GRIMMSNARL, - [SPECIES_ALCREMIE_GIGANTAMAX - 1] = NATIONAL_DEX_ALCREMIE, - [SPECIES_COPPERAJAH_GIGANTAMAX - 1] = NATIONAL_DEX_COPPERAJAH, - [SPECIES_DURALUDON_GIGANTAMAX - 1] = NATIONAL_DEX_DURALUDON, - [SPECIES_URSHIFU_SINGLE_STRIKE_STYLE_GIGANTAMAX - 1] = NATIONAL_DEX_URSHIFU, - [SPECIES_URSHIFU_RAPID_STRIKE_STYLE_GIGANTAMAX - 1] = NATIONAL_DEX_URSHIFU, -#endif -}; - // Assigns all Hoenn Dex Indexes to a National Dex Index static const u16 sHoennToNationalOrder[HOENN_DEX_COUNT - 1] = { @@ -1734,6 +368,9 @@ static const u16 sHoennToNationalOrder[HOENN_DEX_COUNT - 1] = HOENN_TO_NATIONAL(MIGHTYENA), HOENN_TO_NATIONAL(ZIGZAGOON), HOENN_TO_NATIONAL(LINOONE), +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GALARIAN_FORMS + HOENN_TO_NATIONAL(OBSTAGOON), +#endif HOENN_TO_NATIONAL(WURMPLE), HOENN_TO_NATIONAL(SILCOON), HOENN_TO_NATIONAL(BEAUTIFLY), @@ -1752,7 +389,7 @@ static const u16 sHoennToNationalOrder[HOENN_DEX_COUNT - 1] = HOENN_TO_NATIONAL(RALTS), HOENN_TO_NATIONAL(KIRLIA), HOENN_TO_NATIONAL(GARDEVOIR), -#if P_GEN_4_POKEMON == TRUE +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_4_CROSS_EVOS HOENN_TO_NATIONAL(GALLADE), #endif HOENN_TO_NATIONAL(SURSKIT), @@ -1784,7 +421,7 @@ static const u16 sHoennToNationalOrder[HOENN_DEX_COUNT - 1] = HOENN_TO_NATIONAL(GRAVELER), HOENN_TO_NATIONAL(GOLEM), HOENN_TO_NATIONAL(NOSEPASS), -#if P_GEN_4_POKEMON == TRUE +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_4_CROSS_EVOS HOENN_TO_NATIONAL(PROBOPASS), #endif HOENN_TO_NATIONAL(SKITTY), @@ -1810,7 +447,7 @@ static const u16 sHoennToNationalOrder[HOENN_DEX_COUNT - 1] = HOENN_TO_NATIONAL(MINUN), HOENN_TO_NATIONAL(MAGNEMITE), HOENN_TO_NATIONAL(MAGNETON), -#if P_GEN_4_POKEMON == TRUE +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_4_CROSS_EVOS HOENN_TO_NATIONAL(MAGNEZONE), #endif HOENN_TO_NATIONAL(VOLTORB), @@ -1823,7 +460,7 @@ static const u16 sHoennToNationalOrder[HOENN_DEX_COUNT - 1] = HOENN_TO_NATIONAL(BELLOSSOM), HOENN_TO_NATIONAL(DODUO), HOENN_TO_NATIONAL(DODRIO), -#if P_GEN_4_POKEMON == TRUE +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_4_CROSS_EVOS HOENN_TO_NATIONAL(BUDEW), HOENN_TO_NATIONAL(ROSELIA), HOENN_TO_NATIONAL(ROSERADE), @@ -1885,7 +522,7 @@ static const u16 sHoennToNationalOrder[HOENN_DEX_COUNT - 1] = HOENN_TO_NATIONAL(BANETTE), HOENN_TO_NATIONAL(DUSKULL), HOENN_TO_NATIONAL(DUSCLOPS), -#if P_GEN_4_POKEMON == TRUE +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_4_CROSS_EVOS HOENN_TO_NATIONAL(DUSKNOIR), HOENN_TO_NATIONAL(TROPIUS), HOENN_TO_NATIONAL(CHINGLING), @@ -1906,18 +543,21 @@ static const u16 sHoennToNationalOrder[HOENN_DEX_COUNT - 1] = HOENN_TO_NATIONAL(NATU), HOENN_TO_NATIONAL(XATU), HOENN_TO_NATIONAL(GIRAFARIG), +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_9_CROSS_EVOS + HOENN_TO_NATIONAL(FARIGIRAF), +#endif HOENN_TO_NATIONAL(PHANPY), HOENN_TO_NATIONAL(DONPHAN), HOENN_TO_NATIONAL(PINSIR), HOENN_TO_NATIONAL(HERACROSS), HOENN_TO_NATIONAL(RHYHORN), HOENN_TO_NATIONAL(RHYDON), -#if P_GEN_4_POKEMON == TRUE +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_4_CROSS_EVOS HOENN_TO_NATIONAL(RHYPERIOR), #endif HOENN_TO_NATIONAL(SNORUNT), HOENN_TO_NATIONAL(GLALIE), -#if P_GEN_4_POKEMON == TRUE +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GEN_4_CROSS_EVOS HOENN_TO_NATIONAL(FROSLASS), #endif HOENN_TO_NATIONAL(SPHEAL), @@ -1928,6 +568,9 @@ static const u16 sHoennToNationalOrder[HOENN_DEX_COUNT - 1] = HOENN_TO_NATIONAL(GOREBYSS), HOENN_TO_NATIONAL(RELICANTH), HOENN_TO_NATIONAL(CORSOLA), +#if P_NEW_EVOS_IN_REGIONAL_DEX && P_GALARIAN_FORMS + HOENN_TO_NATIONAL(CURSOLA), +#endif HOENN_TO_NATIONAL(CHINCHOU), HOENN_TO_NATIONAL(LANTURN), HOENN_TO_NATIONAL(LUVDISC), @@ -1991,1326 +634,19 @@ const s8 gNatureStatTable[NUM_NATURES][NUM_NATURE_STATS] = [NATURE_QUIRKY] = { 0, 0, 0, 0, 0 }, }; +#include "data/graphics/pokemon.h" +#include "data/pokemon_graphics/front_pic_anims.h" + #include "data/pokemon/trainer_class_lookups.h" +#include "data/pokemon/pokedex_text.h" #include "data/pokemon/experience_tables.h" -#include "data/pokemon/species_info.h" #include "data/pokemon/level_up_learnsets.h" #include "data/pokemon/teachable_learnsets.h" -#include "data/pokemon/evolution.h" -#include "data/pokemon/level_up_learnset_pointers.h" -#include "data/pokemon/teachable_learnset_pointers.h" #include "data/pokemon/form_species_tables.h" -#include "data/pokemon/form_species_table_pointers.h" #include "data/pokemon/form_change_tables.h" #include "data/pokemon/form_change_table_pointers.h" -// SPECIES_NONE are ignored in the following two tables, so decrement before accessing these arrays to get the right result -const u8 sMonFrontAnimIdsTable[NUM_SPECIES - 1] = -{ // Gen 1 - [SPECIES_BULBASAUR - 1] = ANIM_V_JUMPS_H_JUMPS, - [SPECIES_IVYSAUR - 1] = ANIM_V_STRETCH, - [SPECIES_VENUSAUR - 1] = ANIM_ROTATE_UP_SLAM_DOWN, - [SPECIES_CHARMANDER - 1] = ANIM_V_JUMPS_SMALL, - [SPECIES_CHARMELEON - 1] = ANIM_BACK_AND_LUNGE, - [SPECIES_CHARIZARD - 1] = ANIM_V_SHAKE, - [SPECIES_SQUIRTLE - 1] = ANIM_V_JUMPS_BIG, - [SPECIES_WARTORTLE - 1] = ANIM_SHRINK_GROW, - [SPECIES_BLASTOISE - 1] = ANIM_V_SHAKE_TWICE, - [SPECIES_CATERPIE - 1] = ANIM_SWING_CONCAVE, - [SPECIES_METAPOD - 1] = ANIM_SWING_CONCAVE, - [SPECIES_BUTTERFREE - 1] = ANIM_H_SLIDE_WOBBLE, - [SPECIES_WEEDLE - 1] = ANIM_H_SLIDE_SLOW, - [SPECIES_KAKUNA - 1] = ANIM_GLOW_ORANGE, - [SPECIES_BEEDRILL - 1] = ANIM_ZIGZAG_SLOW, - [SPECIES_PIDGEY - 1] = ANIM_V_STRETCH, - [SPECIES_PIDGEOTTO - 1] = ANIM_V_STRETCH, - [SPECIES_PIDGEOT - 1] = ANIM_FRONT_FLIP, - [SPECIES_RATTATA - 1] = ANIM_H_JUMPS, - [SPECIES_RATICATE - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL, - [SPECIES_SPEAROW - 1] = ANIM_V_JUMPS_SMALL, - [SPECIES_FEAROW - 1] = ANIM_FIGURE_8, - [SPECIES_EKANS - 1] = ANIM_V_STRETCH, - [SPECIES_ARBOK - 1] = ANIM_V_STRETCH, - [SPECIES_PIKACHU - 1] = ANIM_FLASH_YELLOW, - [SPECIES_RAICHU - 1] = ANIM_GROW_VIBRATE, - [SPECIES_SANDSHREW - 1] = ANIM_SWING_CONCAVE_FAST_SHORT, - [SPECIES_SANDSLASH - 1] = ANIM_H_SHAKE, - [SPECIES_NIDORAN_F - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_NIDORINA - 1] = ANIM_V_STRETCH, - [SPECIES_NIDOQUEEN - 1] = ANIM_H_SHAKE, - [SPECIES_NIDORAN_M - 1] = ANIM_GROW_VIBRATE, - [SPECIES_NIDORINO - 1] = ANIM_V_STRETCH, - [SPECIES_NIDOKING - 1] = ANIM_H_SHAKE, - [SPECIES_CLEFAIRY - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_CLEFABLE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_VULPIX - 1] = ANIM_V_STRETCH, - [SPECIES_NINETALES - 1] = ANIM_GROW_VIBRATE, - [SPECIES_JIGGLYPUFF - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL, - [SPECIES_WIGGLYTUFF - 1] = ANIM_H_JUMPS, - [SPECIES_ZUBAT - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_GOLBAT - 1] = ANIM_H_SLIDE_WOBBLE, - [SPECIES_ODDISH - 1] = ANIM_V_JUMPS_H_JUMPS, - [SPECIES_GLOOM - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - [SPECIES_VILEPLUME - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - [SPECIES_PARAS - 1] = ANIM_H_SLIDE_SLOW, - [SPECIES_PARASECT - 1] = ANIM_H_SHAKE, - [SPECIES_VENONAT - 1] = ANIM_V_JUMPS_H_JUMPS, - [SPECIES_VENOMOTH - 1] = ANIM_ZIGZAG_SLOW, - [SPECIES_DIGLETT - 1] = ANIM_V_SHAKE, - [SPECIES_DUGTRIO - 1] = ANIM_H_SHAKE_SLOW, - [SPECIES_MEOWTH - 1] = ANIM_V_JUMPS_SMALL, - [SPECIES_PERSIAN - 1] = ANIM_V_STRETCH, - [SPECIES_PSYDUCK - 1] = ANIM_V_JUMPS_H_JUMPS, - [SPECIES_GOLDUCK - 1] = ANIM_H_SHAKE_SLOW, - [SPECIES_MANKEY - 1] = ANIM_H_JUMPS_V_STRETCH, - [SPECIES_PRIMEAPE - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES, - [SPECIES_GROWLITHE - 1] = ANIM_V_STRETCH, - [SPECIES_ARCANINE - 1] = ANIM_V_SHAKE, - [SPECIES_POLIWAG - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_POLIWHIRL - 1] = ANIM_H_JUMPS_V_STRETCH, - [SPECIES_POLIWRATH - 1] = ANIM_V_SHAKE_TWICE, - [SPECIES_ABRA - 1] = ANIM_H_VIBRATE, - [SPECIES_KADABRA - 1] = ANIM_GROW_VIBRATE, - [SPECIES_ALAKAZAM - 1] = ANIM_GROW_VIBRATE, - [SPECIES_MACHOP - 1] = ANIM_V_STRETCH, - [SPECIES_MACHOKE - 1] = ANIM_V_SHAKE, - [SPECIES_MACHAMP - 1] = ANIM_H_JUMPS, - [SPECIES_BELLSPROUT - 1] = ANIM_H_JUMPS, - [SPECIES_WEEPINBELL - 1] = ANIM_SWING_CONVEX, - [SPECIES_VICTREEBEL - 1] = ANIM_H_JUMPS_V_STRETCH, - [SPECIES_TENTACOOL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_TENTACRUEL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_GEODUDE - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL, - [SPECIES_GRAVELER - 1] = ANIM_V_SHAKE, - [SPECIES_GOLEM - 1] = ANIM_ROTATE_UP_SLAM_DOWN, - [SPECIES_PONYTA - 1] = ANIM_V_SHAKE, - [SPECIES_RAPIDASH - 1] = ANIM_H_SHAKE, - [SPECIES_SLOWPOKE - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - [SPECIES_SLOWBRO - 1] = ANIM_H_STRETCH, - [SPECIES_MAGNEMITE - 1] = ANIM_TUMBLING_FRONT_FLIP_TWICE, - [SPECIES_MAGNETON - 1] = ANIM_FLASH_YELLOW, - [SPECIES_FARFETCHD - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL, - [SPECIES_DODUO - 1] = ANIM_H_SHAKE_SLOW, - [SPECIES_DODRIO - 1] = ANIM_V_STRETCH, - [SPECIES_SEEL - 1] = ANIM_H_STRETCH, - [SPECIES_DEWGONG - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - [SPECIES_GRIMER - 1] = ANIM_H_SLIDE_SLOW, - [SPECIES_MUK - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SHELLDER - 1] = ANIM_TWIST, - [SPECIES_CLOYSTER - 1] = ANIM_H_SLIDE_WOBBLE, - [SPECIES_GASTLY - 1] = ANIM_CIRCLE_C_CLOCKWISE_SLOW, - [SPECIES_HAUNTER - 1] = ANIM_FLICKER_INCREASING, - [SPECIES_GENGAR - 1] = ANIM_GROW_IN_STAGES, - [SPECIES_ONIX - 1] = ANIM_H_SHAKE, - [SPECIES_DROWZEE - 1] = ANIM_V_STRETCH, - [SPECIES_HYPNO - 1] = ANIM_H_SLIDE_SLOW, - [SPECIES_KRABBY - 1] = ANIM_H_SLIDE, - [SPECIES_KINGLER - 1] = ANIM_H_SLIDE_SLOW, - [SPECIES_VOLTORB - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ELECTRODE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_EXEGGCUTE - 1] = ANIM_H_SLIDE_SLOW, - [SPECIES_EXEGGUTOR - 1] = ANIM_H_JUMPS_V_STRETCH, - [SPECIES_CUBONE - 1] = ANIM_V_JUMPS_SMALL, - [SPECIES_MAROWAK - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES, - [SPECIES_HITMONLEE - 1] = ANIM_H_STRETCH, - [SPECIES_HITMONCHAN - 1] = ANIM_GROW_VIBRATE, - [SPECIES_LICKITUNG - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - [SPECIES_KOFFING - 1] = ANIM_V_SLIDE_WOBBLE_SMALL, - [SPECIES_WEEZING - 1] = ANIM_V_SLIDE, - [SPECIES_RHYHORN - 1] = ANIM_V_SHAKE, - [SPECIES_RHYDON - 1] = ANIM_H_SHAKE, - [SPECIES_CHANSEY - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_TANGELA - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL, - [SPECIES_KANGASKHAN - 1] = ANIM_V_STRETCH, - [SPECIES_HORSEA - 1] = ANIM_V_JUMPS_SMALL, - [SPECIES_SEADRA - 1] = ANIM_V_SLIDE, - [SPECIES_GOLDEEN - 1] = ANIM_H_SLIDE_WOBBLE, - [SPECIES_SEAKING - 1] = ANIM_V_SLIDE_WOBBLE, - [SPECIES_STARYU - 1] = ANIM_TWIST_TWICE, - [SPECIES_STARMIE - 1] = ANIM_TWIST, - [SPECIES_MR_MIME - 1] = ANIM_H_SLIDE_SLOW, - [SPECIES_SCYTHER - 1] = ANIM_H_VIBRATE, - [SPECIES_JYNX - 1] = ANIM_V_STRETCH, - [SPECIES_ELECTABUZZ - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL_SLOW, - [SPECIES_MAGMAR - 1] = ANIM_H_SHAKE, - [SPECIES_PINSIR - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_TAUROS - 1] = ANIM_V_SHAKE_TWICE, - [SPECIES_MAGIKARP - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES, - [SPECIES_GYARADOS - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL, - [SPECIES_LAPRAS - 1] = ANIM_V_STRETCH, - [SPECIES_DITTO - 1] = ANIM_CIRCULAR_STRETCH_TWICE, - [SPECIES_EEVEE - 1] = ANIM_V_STRETCH, - [SPECIES_VAPOREON - 1] = ANIM_GLOW_BLUE, - [SPECIES_JOLTEON - 1] = ANIM_GROW_VIBRATE, - [SPECIES_FLAREON - 1] = ANIM_V_SHAKE, - [SPECIES_PORYGON - 1] = ANIM_V_JUMPS_SMALL, - [SPECIES_OMANYTE - 1] = ANIM_V_SLIDE_WOBBLE_SMALL, - [SPECIES_OMASTAR - 1] = ANIM_GROW_VIBRATE, - [SPECIES_KABUTO - 1] = ANIM_H_SLIDE_WOBBLE, - [SPECIES_KABUTOPS - 1] = ANIM_H_SHAKE, - [SPECIES_AERODACTYL - 1] = ANIM_V_SLIDE_SLOW, - [SPECIES_SNORLAX - 1] = ANIM_V_STRETCH, - [SPECIES_ARTICUNO - 1] = ANIM_GROW_VIBRATE, - [SPECIES_ZAPDOS - 1] = ANIM_FLASH_YELLOW, - [SPECIES_MOLTRES - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - [SPECIES_DRATINI - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_DRAGONAIR - 1] = ANIM_GROW_VIBRATE, - [SPECIES_DRAGONITE - 1] = ANIM_V_SHAKE, - [SPECIES_MEWTWO - 1] = ANIM_GROW_VIBRATE, - [SPECIES_MEW - 1] = ANIM_ZIGZAG_SLOW, - - // Gen 2 - [SPECIES_CHIKORITA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_BAYLEEF - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_MEGANIUM - 1] = ANIM_GROW_VIBRATE, - [SPECIES_CYNDAQUIL - 1] = ANIM_V_STRETCH, - [SPECIES_QUILAVA - 1] = ANIM_H_STRETCH, - [SPECIES_TYPHLOSION - 1] = ANIM_V_SHAKE, - [SPECIES_TOTODILE - 1] = ANIM_H_JUMPS, - [SPECIES_CROCONAW - 1] = ANIM_H_SHAKE, - [SPECIES_FERALIGATR - 1] = ANIM_H_SHAKE, - [SPECIES_SENTRET - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_FURRET - 1] = ANIM_H_JUMPS_V_STRETCH, - [SPECIES_HOOTHOOT - 1] = ANIM_V_SLIDE_SLOW, - [SPECIES_NOCTOWL - 1] = ANIM_V_STRETCH, - [SPECIES_LEDYBA - 1] = ANIM_V_JUMPS_SMALL, - [SPECIES_LEDIAN - 1] = ANIM_V_SLIDE_WOBBLE, - [SPECIES_SPINARAK - 1] = ANIM_CIRCLE_C_CLOCKWISE_SLOW, - [SPECIES_ARIADOS - 1] = ANIM_H_SHAKE, - [SPECIES_CROBAT - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_CHINCHOU - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - [SPECIES_LANTURN - 1] = ANIM_V_SLIDE_WOBBLE_SMALL, - [SPECIES_PICHU - 1] = ANIM_V_JUMPS_BIG, - [SPECIES_CLEFFA - 1] = ANIM_V_JUMPS_SMALL, - [SPECIES_IGGLYBUFF - 1] = ANIM_SWING_CONCAVE_FAST, - [SPECIES_TOGEPI - 1] = ANIM_V_JUMPS_BIG, - [SPECIES_TOGETIC - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_NATU - 1] = ANIM_H_JUMPS, - [SPECIES_XATU - 1] = ANIM_GROW_VIBRATE, - [SPECIES_MAREEP - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_FLAAFFY - 1] = ANIM_V_STRETCH, - [SPECIES_AMPHAROS - 1] = ANIM_FLASH_YELLOW, - [SPECIES_BELLOSSOM - 1] = ANIM_H_SLIDE_SLOW, - [SPECIES_MARILL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_AZUMARILL - 1] = ANIM_SHRINK_GROW, - [SPECIES_SUDOWOODO - 1] = ANIM_H_SLIDE_SLOW, - [SPECIES_POLITOED - 1] = ANIM_H_JUMPS_V_STRETCH, - [SPECIES_HOPPIP - 1] = ANIM_V_SLIDE_WOBBLE, - [SPECIES_SKIPLOOM - 1] = ANIM_RISING_WOBBLE, - [SPECIES_JUMPLUFF - 1] = ANIM_V_SLIDE_WOBBLE_SMALL, - [SPECIES_AIPOM - 1] = ANIM_H_JUMPS_V_STRETCH, - [SPECIES_SUNKERN - 1] = ANIM_H_JUMPS, - [SPECIES_SUNFLORA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_YANMA - 1] = ANIM_FIGURE_8, - [SPECIES_WOOPER - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_QUAGSIRE - 1] = ANIM_H_STRETCH, - [SPECIES_ESPEON - 1] = ANIM_GROW_VIBRATE, - [SPECIES_UMBREON - 1] = ANIM_V_SHAKE, - [SPECIES_MURKROW - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SLOWKING - 1] = ANIM_SHRINK_GROW, - [SPECIES_MISDREAVUS - 1] = ANIM_V_SLIDE_WOBBLE, - [SPECIES_UNOWN - 1] = ANIM_ZIGZAG_FAST, - [SPECIES_WOBBUFFET - 1] = ANIM_GROW_VIBRATE, - [SPECIES_GIRAFARIG - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_PINECO - 1] = ANIM_SWING_CONCAVE, - [SPECIES_FORRETRESS - 1] = ANIM_V_SHAKE, - [SPECIES_DUNSPARCE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_GLIGAR - 1] = ANIM_SHRINK_GROW, - [SPECIES_STEELIX - 1] = ANIM_V_SHAKE, - [SPECIES_SNUBBULL - 1] = ANIM_V_STRETCH, - [SPECIES_GRANBULL - 1] = ANIM_V_SHAKE, - [SPECIES_QWILFISH - 1] = ANIM_GROW_IN_STAGES, - [SPECIES_SCIZOR - 1] = ANIM_H_VIBRATE, - [SPECIES_SHUCKLE - 1] = ANIM_SWING_CONCAVE, - [SPECIES_HERACROSS - 1] = ANIM_V_STRETCH, - [SPECIES_SNEASEL - 1] = ANIM_H_JUMPS, - [SPECIES_TEDDIURSA - 1] = ANIM_V_STRETCH, - [SPECIES_URSARING - 1] = ANIM_H_SHAKE, - [SPECIES_SLUGMA - 1] = ANIM_V_STRETCH, - [SPECIES_MAGCARGO - 1] = ANIM_V_STRETCH, - [SPECIES_SWINUB - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_PILOSWINE - 1] = ANIM_H_SHAKE, - [SPECIES_CORSOLA - 1] = ANIM_H_SLIDE, - [SPECIES_REMORAID - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - [SPECIES_OCTILLERY - 1] = ANIM_V_STRETCH, - [SPECIES_DELIBIRD - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_MANTINE - 1] = ANIM_SWING_CONVEX, - [SPECIES_SKARMORY - 1] = ANIM_V_SHAKE, - [SPECIES_HOUNDOUR - 1] = ANIM_V_STRETCH, - [SPECIES_HOUNDOOM - 1] = ANIM_V_SHAKE, - [SPECIES_KINGDRA - 1] = ANIM_CIRCLE_INTO_BG, - [SPECIES_PHANPY - 1] = ANIM_H_JUMPS_V_STRETCH, - [SPECIES_DONPHAN - 1] = ANIM_ROTATE_UP_SLAM_DOWN, - [SPECIES_PORYGON2 - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_STANTLER - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SMEARGLE - 1] = ANIM_H_JUMPS_V_STRETCH, - [SPECIES_TYROGUE - 1] = ANIM_BACK_AND_LUNGE, - [SPECIES_HITMONTOP - 1] = ANIM_H_VIBRATE, - [SPECIES_SMOOCHUM - 1] = ANIM_GROW_VIBRATE, - [SPECIES_ELEKID - 1] = ANIM_FLASH_YELLOW, - [SPECIES_MAGBY - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_MILTANK - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - [SPECIES_BLISSEY - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_RAIKOU - 1] = ANIM_V_STRETCH, - [SPECIES_ENTEI - 1] = ANIM_GROW_VIBRATE, - [SPECIES_SUICUNE - 1] = ANIM_V_SHAKE, - [SPECIES_LARVITAR - 1] = ANIM_V_JUMPS_SMALL, - [SPECIES_PUPITAR - 1] = ANIM_H_SHAKE, - [SPECIES_TYRANITAR - 1] = ANIM_V_SHAKE, - [SPECIES_LUGIA - 1] = ANIM_GROW_IN_STAGES, - [SPECIES_HO_OH - 1] = ANIM_GROW_VIBRATE, - [SPECIES_CELEBI - 1] = ANIM_H_SLIDE_WOBBLE, - - // Gen 3 - [SPECIES_TREECKO - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_GROVYLE - 1] = ANIM_V_STRETCH, - [SPECIES_SCEPTILE - 1] = ANIM_V_SHAKE, - [SPECIES_TORCHIC - 1] = ANIM_V_JUMPS_SMALL, - [SPECIES_COMBUSKEN - 1] = ANIM_V_JUMPS_H_JUMPS, - [SPECIES_BLAZIKEN - 1] = ANIM_H_SHAKE, - [SPECIES_MUDKIP - 1] = ANIM_CIRCULAR_STRETCH_TWICE, - [SPECIES_MARSHTOMP - 1] = ANIM_V_STRETCH, - [SPECIES_SWAMPERT - 1] = ANIM_H_SHAKE, - [SPECIES_POOCHYENA - 1] = ANIM_V_SHAKE, - [SPECIES_MIGHTYENA - 1] = ANIM_V_SHAKE, - [SPECIES_ZIGZAGOON - 1] = ANIM_H_SLIDE, - [SPECIES_LINOONE - 1] = ANIM_GROW_VIBRATE, - [SPECIES_WURMPLE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SILCOON - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_BEAUTIFLY - 1] = ANIM_V_SLIDE, - [SPECIES_CASCOON - 1] = ANIM_V_SLIDE, - [SPECIES_DUSTOX - 1] = ANIM_V_JUMPS_H_JUMPS, - [SPECIES_LOTAD - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_LOMBRE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_LUDICOLO - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW, - [SPECIES_SEEDOT - 1] = ANIM_V_JUMPS_H_JUMPS, - [SPECIES_NUZLEAF - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SHIFTRY - 1] = ANIM_H_VIBRATE, - [SPECIES_TAILLOW - 1] = ANIM_V_JUMPS_BIG, - [SPECIES_SWELLOW - 1] = ANIM_CIRCULAR_STRETCH_TWICE, - [SPECIES_WINGULL - 1] = ANIM_H_PIVOT, - [SPECIES_PELIPPER - 1] = ANIM_V_SLIDE_WOBBLE, - [SPECIES_RALTS - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - [SPECIES_KIRLIA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_GARDEVOIR - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - [SPECIES_SURSKIT - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_MASQUERAIN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SHROOMISH - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_BRELOOM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SLAKOTH - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - [SPECIES_VIGOROTH - 1] = ANIM_H_JUMPS, - [SPECIES_SLAKING - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - [SPECIES_NINCADA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_NINJASK - 1] = ANIM_H_SLIDE_SLOW, - [SPECIES_SHEDINJA - 1] = ANIM_V_SLIDE_WOBBLE, - [SPECIES_WHISMUR - 1] = ANIM_H_SLIDE, - [SPECIES_LOUDRED - 1] = ANIM_SHRINK_GROW, - [SPECIES_EXPLOUD - 1] = ANIM_V_SHAKE_TWICE, - [SPECIES_MAKUHITA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_HARIYAMA - 1] = ANIM_ROTATE_UP_TO_SIDES, - [SPECIES_AZURILL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_NOSEPASS - 1] = ANIM_H_SLIDE_SLOW, - [SPECIES_SKITTY - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_DELCATTY - 1] = ANIM_V_STRETCH, - [SPECIES_SABLEYE - 1] = ANIM_GLOW_BLACK, - [SPECIES_MAWILE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ARON - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - [SPECIES_LAIRON - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_AGGRON - 1] = ANIM_V_SHAKE_TWICE, - [SPECIES_MEDITITE - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES, - [SPECIES_MEDICHAM - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - [SPECIES_ELECTRIKE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_MANECTRIC - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_PLUSLE - 1] = ANIM_V_JUMPS_H_JUMPS, - [SPECIES_MINUN - 1] = ANIM_V_JUMPS_H_JUMPS, - [SPECIES_VOLBEAT - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ILLUMISE - 1] = ANIM_RISING_WOBBLE, - [SPECIES_ROSELIA - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - [SPECIES_GULPIN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SWALOT - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - [SPECIES_CARVANHA - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW, - [SPECIES_SHARPEDO - 1] = ANIM_H_JUMPS_V_STRETCH_TWICE, - [SPECIES_WAILMER - 1] = ANIM_CIRCULAR_STRETCH_TWICE, - [SPECIES_WAILORD - 1] = ANIM_V_SLIDE_WOBBLE, - [SPECIES_NUMEL - 1] = ANIM_V_SLIDE, - [SPECIES_CAMERUPT - 1] = ANIM_V_SHAKE, - [SPECIES_TORKOAL - 1] = ANIM_V_STRETCH, - [SPECIES_SPOINK - 1] = ANIM_H_JUMPS_V_STRETCH_TWICE, - [SPECIES_GRUMPIG - 1] = ANIM_H_JUMPS_V_STRETCH, - [SPECIES_SPINDA - 1] = ANIM_CIRCLE_INTO_BG, - [SPECIES_TRAPINCH - 1] = ANIM_V_SHAKE, - [SPECIES_VIBRAVA - 1] = ANIM_H_SHAKE, - [SPECIES_FLYGON - 1] = ANIM_ZIGZAG_SLOW, - [SPECIES_CACNEA - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW, - [SPECIES_CACTURNE - 1] = ANIM_V_SLIDE, - [SPECIES_SWABLU - 1] = ANIM_GROW_VIBRATE, - [SPECIES_ALTARIA - 1] = ANIM_V_STRETCH, - [SPECIES_ZANGOOSE - 1] = ANIM_GROW_VIBRATE, - [SPECIES_SEVIPER - 1] = ANIM_V_STRETCH, - [SPECIES_LUNATONE - 1] = ANIM_SWING_CONVEX_FAST, - [SPECIES_SOLROCK - 1] = ANIM_ROTATE_TO_SIDES_TWICE, - [SPECIES_BARBOACH - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW, - [SPECIES_WHISCASH - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW, - [SPECIES_CORPHISH - 1] = ANIM_V_SHAKE, - [SPECIES_CRAWDAUNT - 1] = ANIM_GROW_VIBRATE, - [SPECIES_BALTOY - 1] = ANIM_H_SLIDE_WOBBLE, - [SPECIES_CLAYDOL - 1] = ANIM_V_SLIDE_WOBBLE_SMALL, - [SPECIES_LILEEP - 1] = ANIM_V_STRETCH, - [SPECIES_CRADILY - 1] = ANIM_V_SHAKE_TWICE, - [SPECIES_ANORITH - 1] = ANIM_TWIST, - [SPECIES_ARMALDO - 1] = ANIM_V_SHAKE, - [SPECIES_FEEBAS - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW, - [SPECIES_MILOTIC - 1] = ANIM_CIRCULAR_STRETCH_TWICE, - [SPECIES_CASTFORM_NORMAL - 1] = ANIM_H_SLIDE_WOBBLE, - [SPECIES_KECLEON - 1] = ANIM_FLICKER_INCREASING, - [SPECIES_SHUPPET - 1] = ANIM_V_SLIDE_WOBBLE, - [SPECIES_BANETTE - 1] = ANIM_CIRCULAR_STRETCH_TWICE, - [SPECIES_DUSKULL - 1] = ANIM_ZIGZAG_FAST, - [SPECIES_DUSCLOPS - 1] = ANIM_H_VIBRATE, - [SPECIES_TROPIUS - 1] = ANIM_V_SHAKE, - [SPECIES_CHIMECHO - 1] = ANIM_H_SLIDE_WOBBLE, - [SPECIES_ABSOL - 1] = ANIM_CIRCULAR_VIBRATE, - [SPECIES_WYNAUT - 1] = ANIM_H_JUMPS_V_STRETCH, - [SPECIES_SNORUNT - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - [SPECIES_GLALIE - 1] = ANIM_ZIGZAG_FAST, - [SPECIES_SPHEAL - 1] = ANIM_SPIN_LONG, - [SPECIES_SEALEO - 1] = ANIM_V_STRETCH, - [SPECIES_WALREIN - 1] = ANIM_H_SHAKE, - [SPECIES_CLAMPERL - 1] = ANIM_TWIST, - [SPECIES_HUNTAIL - 1] = ANIM_GROW_VIBRATE, - [SPECIES_GOREBYSS - 1] = ANIM_V_SLIDE_WOBBLE, - [SPECIES_RELICANTH - 1] = ANIM_TIP_MOVE_FORWARD, - [SPECIES_LUVDISC - 1] = ANIM_H_SLIDE_WOBBLE, - [SPECIES_BAGON - 1] = ANIM_H_SHAKE, - [SPECIES_SHELGON - 1] = ANIM_V_SLIDE, - [SPECIES_SALAMENCE - 1] = ANIM_H_SHAKE, - [SPECIES_BELDUM - 1] = ANIM_H_SHAKE, - [SPECIES_METANG - 1] = ANIM_V_SLIDE, - [SPECIES_METAGROSS - 1] = ANIM_V_SHAKE, - [SPECIES_REGIROCK - 1] = ANIM_CIRCULAR_STRETCH_TWICE, - [SPECIES_REGICE - 1] = ANIM_H_SLIDE_SLOW, - [SPECIES_REGISTEEL - 1] = ANIM_GROW_VIBRATE, - [SPECIES_LATIAS - 1] = ANIM_ZIGZAG_SLOW, - [SPECIES_LATIOS - 1] = ANIM_CIRCLE_C_CLOCKWISE_SLOW, - [SPECIES_KYOGRE - 1] = ANIM_SWING_CONCAVE_FAST_SHORT, - [SPECIES_GROUDON - 1] = ANIM_V_SHAKE, - [SPECIES_RAYQUAZA - 1] = ANIM_H_SHAKE, - [SPECIES_JIRACHI - 1] = ANIM_RISING_WOBBLE, - [SPECIES_DEOXYS_NORMAL - 1] = ANIM_GROW_VIBRATE, - - // Gen 4 - [SPECIES_TURTWIG - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_GROTLE - 1] = ANIM_V_STRETCH, - [SPECIES_TORTERRA - 1] = ANIM_H_SHAKE, - [SPECIES_CHIMCHAR - 1] = ANIM_V_JUMPS_BIG, - [SPECIES_MONFERNO - 1] = ANIM_H_JUMPS_V_STRETCH, - [SPECIES_INFERNAPE - 1] = ANIM_V_STRETCH, - [SPECIES_PIPLUP - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_PRINPLUP - 1] = ANIM_V_STRETCH, - [SPECIES_EMPOLEON - 1] = ANIM_V_STRETCH, - [SPECIES_STARLY - 1] = ANIM_V_STRETCH, - [SPECIES_STARAVIA - 1] = ANIM_V_STRETCH, - [SPECIES_STARAPTOR - 1] = ANIM_V_SHAKE, - [SPECIES_BIDOOF - 1] = ANIM_H_SLIDE_SLOW, - [SPECIES_BIBAREL - 1] = ANIM_GROW_VIBRATE, - [SPECIES_KRICKETOT - 1] = ANIM_H_JUMPS, - [SPECIES_KRICKETUNE - 1] = ANIM_H_SLIDE_SLOW, - [SPECIES_SHINX - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_LUXIO - 1] = ANIM_H_STRETCH, - [SPECIES_LUXRAY - 1] = ANIM_GLOW_YELLOW, - [SPECIES_BUDEW - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - [SPECIES_ROSERADE - 1] = ANIM_H_VIBRATE, - [SPECIES_CRANIDOS - 1] = ANIM_V_STRETCH, - [SPECIES_RAMPARDOS - 1] = ANIM_V_SHAKE_TWICE, - [SPECIES_SHIELDON - 1] = ANIM_V_SHAKE, - [SPECIES_BASTIODON - 1] = ANIM_BACK_AND_LUNGE, - [SPECIES_BURMY_PLANT_CLOAK - 1] = ANIM_V_STRETCH, - [SPECIES_WORMADAM_PLANT_CLOAK - 1] = ANIM_SWING_CONVEX_FAST_SHORT, - [SPECIES_MOTHIM - 1] = ANIM_H_SLIDE_WOBBLE, - [SPECIES_COMBEE - 1] = ANIM_V_SLIDE_WOBBLE, - [SPECIES_VESPIQUEN - 1] = ANIM_LUNGE_GROW, - [SPECIES_PACHIRISU - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_BUIZEL - 1] = ANIM_GROW_VIBRATE, - [SPECIES_FLOATZEL - 1] = ANIM_H_JUMPS_V_STRETCH, - [SPECIES_CHERUBI - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_CHERRIM_OVERCAST - 1] = ANIM_DEEP_V_SQUISH_AND_BOUNCE, - [SPECIES_SHELLOS_WEST_SEA - 1] = ANIM_V_STRETCH, - [SPECIES_GASTRODON_WEST_SEA - 1] = ANIM_CIRCULAR_STRETCH_TWICE, - [SPECIES_AMBIPOM - 1] = ANIM_BACK_AND_LUNGE, - [SPECIES_DRIFLOON - 1] = ANIM_V_SLIDE_WOBBLE, - [SPECIES_DRIFBLIM - 1] = ANIM_V_SLIDE_WOBBLE, - [SPECIES_BUNEARY - 1] = ANIM_H_JUMPS_V_STRETCH, - [SPECIES_LOPUNNY - 1] = ANIM_SHRINK_GROW, - [SPECIES_MISMAGIUS - 1] = ANIM_H_SLIDE_WOBBLE, - [SPECIES_HONCHKROW - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - [SPECIES_GLAMEOW - 1] = ANIM_GROW_VIBRATE, - [SPECIES_PURUGLY - 1] = ANIM_V_STRETCH, - [SPECIES_CHINGLING - 1] = ANIM_H_SLIDE_WOBBLE, - [SPECIES_STUNKY - 1] = ANIM_TIP_MOVE_FORWARD, - [SPECIES_SKUNTANK - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - [SPECIES_BRONZOR - 1] = ANIM_H_SLIDE_WOBBLE, - [SPECIES_BRONZONG - 1] = ANIM_V_SLIDE_WOBBLE_SMALL, - [SPECIES_BONSLY - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES, - [SPECIES_MIME_JR - 1] = ANIM_H_SLIDE_SLOW, - [SPECIES_HAPPINY - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - [SPECIES_CHATOT - 1] = ANIM_V_SHAKE_TWICE, - [SPECIES_SPIRITOMB - 1] = ANIM_GROW_IN_STAGES, - [SPECIES_GIBLE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_GABITE - 1] = ANIM_V_STRETCH, - [SPECIES_GARCHOMP - 1] = ANIM_V_SHAKE_TWICE, - [SPECIES_MUNCHLAX - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - [SPECIES_RIOLU - 1] = ANIM_RAPID_H_HOPS, - [SPECIES_LUCARIO - 1] = ANIM_V_STRETCH, - [SPECIES_HIPPOPOTAS - 1] = ANIM_V_STRETCH, - [SPECIES_HIPPOWDON - 1] = ANIM_V_SHAKE_TWICE, - [SPECIES_SKORUPI - 1] = ANIM_H_SLIDE_SLOW, - [SPECIES_DRAPION - 1] = ANIM_V_JUMPS_BIG, - [SPECIES_CROAGUNK - 1] = ANIM_RAPID_H_HOPS, - [SPECIES_TOXICROAK - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_CARNIVINE - 1] = ANIM_FIGURE_8, - [SPECIES_FINNEON - 1] = ANIM_V_SLIDE_WOBBLE_SMALL, - [SPECIES_LUMINEON - 1] = ANIM_H_STRETCH, - [SPECIES_MANTYKE - 1] = ANIM_TWIST_TWICE, - [SPECIES_SNOVER - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ABOMASNOW - 1] = ANIM_H_SHAKE, - [SPECIES_WEAVILE - 1] = ANIM_H_VIBRATE, - [SPECIES_MAGNEZONE - 1] = ANIM_H_SLIDE_WOBBLE, - [SPECIES_LICKILICKY - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_RHYPERIOR - 1] = ANIM_V_SHAKE_TWICE, - [SPECIES_TANGROWTH - 1] = ANIM_H_STRETCH, - [SPECIES_ELECTIVIRE - 1] = ANIM_GLOW_YELLOW, - [SPECIES_MAGMORTAR - 1] = ANIM_V_STRETCH, - [SPECIES_TOGEKISS - 1] = ANIM_SWING_CONVEX, - [SPECIES_YANMEGA - 1] = ANIM_H_VIBRATE, - [SPECIES_LEAFEON - 1] = ANIM_SHRINK_GROW, - [SPECIES_GLACEON - 1] = ANIM_V_STRETCH, - [SPECIES_GLISCOR - 1] = ANIM_SWING_CONVEX, - [SPECIES_MAMOSWINE - 1] = ANIM_BACK_AND_LUNGE, - [SPECIES_PORYGON_Z - 1] = ANIM_CIRCLE_C_CLOCKWISE_SLOW, - [SPECIES_GALLADE - 1] = ANIM_H_VIBRATE, - [SPECIES_PROBOPASS - 1] = ANIM_V_SLIDE, - [SPECIES_DUSKNOIR - 1] = ANIM_H_SLIDE, - [SPECIES_FROSLASS - 1] = ANIM_V_SLIDE_WOBBLE, - [SPECIES_ROTOM - 1] = ANIM_GLOW_YELLOW, - [SPECIES_UXIE - 1] = ANIM_SWING_CONCAVE, - [SPECIES_MESPRIT - 1] = ANIM_H_SLIDE_WOBBLE, - [SPECIES_AZELF - 1] = ANIM_V_SLIDE_WOBBLE, - [SPECIES_DIALGA - 1] = ANIM_H_SHAKE, - [SPECIES_PALKIA - 1] = ANIM_V_SHAKE, - [SPECIES_HEATRAN - 1] = ANIM_GLOW_ORANGE, - [SPECIES_REGIGIGAS - 1] = ANIM_V_SHAKE, - [SPECIES_GIRATINA_ALTERED - 1] = ANIM_GROW_VIBRATE, - [SPECIES_CRESSELIA - 1] = ANIM_H_SLIDE_WOBBLE, - [SPECIES_PHIONE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_MANAPHY - 1] = ANIM_SWING_CONVEX, - [SPECIES_DARKRAI - 1] = ANIM_GLOW_BLACK, - [SPECIES_SHAYMIN_LAND - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ARCEUS_NORMAL - 1] = ANIM_GROW_VIBRATE, - - // Gen 5 - [SPECIES_VICTINI - 1] = ANIM_H_JUMPS, - [SPECIES_SNIVY - 1] = ANIM_V_STRETCH, - [SPECIES_SERVINE - 1] = ANIM_V_STRETCH, - [SPECIES_SERPERIOR - 1] = ANIM_CIRCULAR_STRETCH_TWICE, - [SPECIES_TEPIG - 1] = ANIM_H_SLIDE, - [SPECIES_PIGNITE - 1] = ANIM_V_STRETCH, - [SPECIES_EMBOAR - 1] = ANIM_DEEP_V_SQUISH_AND_BOUNCE, - [SPECIES_OSHAWOTT - 1] = ANIM_H_JUMPS, - [SPECIES_DEWOTT - 1] = ANIM_H_VIBRATE, - [SPECIES_SAMUROTT - 1] = ANIM_V_SHAKE, - [SPECIES_PATRAT - 1] = ANIM_V_STRETCH, - [SPECIES_WATCHOG - 1] = ANIM_V_STRETCH, - [SPECIES_LILLIPUP - 1] = ANIM_H_JUMPS, - [SPECIES_HERDIER - 1] = ANIM_H_STRETCH, - [SPECIES_STOUTLAND - 1] = ANIM_H_SLIDE, - [SPECIES_PURRLOIN - 1] = ANIM_GROW_VIBRATE, - [SPECIES_LIEPARD - 1] = ANIM_GROW_VIBRATE, - [SPECIES_PANSAGE - 1] = ANIM_CIRCULAR_STRETCH_TWICE, - [SPECIES_SIMISAGE - 1] = ANIM_GROW_VIBRATE, - [SPECIES_PANSEAR - 1] = ANIM_V_STRETCH, - [SPECIES_SIMISEAR - 1] = ANIM_SWING_CONCAVE_FAST, - [SPECIES_PANPOUR - 1] = ANIM_GROW_VIBRATE, - [SPECIES_SIMIPOUR - 1] = ANIM_H_STRETCH, - [SPECIES_MUNNA - 1] = ANIM_RISING_WOBBLE, - [SPECIES_MUSHARNA - 1] = ANIM_ROTATE_TO_SIDES_TWICE, - [SPECIES_PIDOVE - 1] = ANIM_V_JUMPS_SMALL, - [SPECIES_TRANQUILL - 1] = ANIM_V_STRETCH, - [SPECIES_UNFEZANT - 1] = ANIM_SHRINK_GROW, - [SPECIES_BLITZLE - 1] = ANIM_V_STRETCH, - [SPECIES_ZEBSTRIKA - 1] = ANIM_BACK_AND_LUNGE, - [SPECIES_ROGGENROLA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_BOLDORE - 1] = ANIM_H_SLIDE_SLOW, - [SPECIES_GIGALITH - 1] = ANIM_ROTATE_UP_SLAM_DOWN, - [SPECIES_WOOBAT - 1] = ANIM_FOUR_PETAL, - [SPECIES_SWOOBAT - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL, - [SPECIES_DRILBUR - 1] = ANIM_SWING_CONCAVE_FAST_SHORT, - [SPECIES_EXCADRILL - 1] = ANIM_H_SHAKE, - [SPECIES_AUDINO - 1] = ANIM_V_STRETCH, - [SPECIES_TIMBURR - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_GURDURR - 1] = ANIM_GROW_VIBRATE, - [SPECIES_CONKELDURR - 1] = ANIM_V_SHAKE_TWICE, - [SPECIES_TYMPOLE - 1] = ANIM_H_JUMPS_V_STRETCH, - [SPECIES_PALPITOAD - 1] = ANIM_CIRCULAR_STRETCH_TWICE, - [SPECIES_SEISMITOAD - 1] = ANIM_H_JUMPS, - [SPECIES_THROH - 1] = ANIM_CIRCULAR_STRETCH_TWICE, - [SPECIES_SAWK - 1] = ANIM_GROW_VIBRATE, - [SPECIES_SEWADDLE - 1] = ANIM_CIRCLE_INTO_BG, - [SPECIES_SWADLOON - 1] = ANIM_CIRCULAR_STRETCH_TWICE, - [SPECIES_LEAVANNY - 1] = ANIM_GROW_VIBRATE, - [SPECIES_VENIPEDE - 1] = ANIM_H_SLIDE, - [SPECIES_WHIRLIPEDE - 1] = ANIM_TIP_MOVE_FORWARD, - [SPECIES_SCOLIPEDE - 1] = ANIM_H_SHAKE, - [SPECIES_COTTONEE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_WHIMSICOTT - 1] = ANIM_SHRINK_GROW, - [SPECIES_PETILIL - 1] = ANIM_H_JUMPS_V_STRETCH, - [SPECIES_LILLIGANT - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_BASCULIN_RED_STRIPED - 1] = ANIM_TIP_MOVE_FORWARD, - [SPECIES_SANDILE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_KROKOROK - 1] = ANIM_V_STRETCH, - [SPECIES_KROOKODILE - 1] = ANIM_SWING_CONCAVE_FAST_SHORT, - [SPECIES_DARUMAKA - 1] = ANIM_SWING_CONCAVE, - [SPECIES_DARMANITAN_STANDARD_MODE - 1] = ANIM_CIRCULAR_STRETCH_TWICE, - [SPECIES_MARACTUS - 1] = ANIM_H_JUMPS_V_STRETCH, - [SPECIES_DWEBBLE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_CRUSTLE - 1] = ANIM_H_SLIDE_SLOW, - [SPECIES_SCRAGGY - 1] = ANIM_V_STRETCH, - [SPECIES_SCRAFTY - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SIGILYPH - 1] = ANIM_FIGURE_8, - [SPECIES_YAMASK - 1] = ANIM_V_SLIDE_WOBBLE, - [SPECIES_COFAGRIGUS - 1] = ANIM_GLOW_BLACK, - [SPECIES_TIRTOUGA - 1] = ANIM_RISING_WOBBLE, - [SPECIES_CARRACOSTA - 1] = ANIM_H_SHAKE_SLOW, - [SPECIES_ARCHEN - 1] = ANIM_V_JUMPS_SMALL, - [SPECIES_ARCHEOPS - 1] = ANIM_RISING_WOBBLE, - [SPECIES_TRUBBISH - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_GARBODOR - 1] = ANIM_V_STRETCH, - [SPECIES_ZORUA - 1] = ANIM_CIRCULAR_VIBRATE, - [SPECIES_ZOROARK - 1] = ANIM_FLICKER_INCREASING, - [SPECIES_MINCCINO - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_CINCCINO - 1] = ANIM_V_SLIDE, - [SPECIES_GOTHITA - 1] = ANIM_V_JUMPS_SMALL, - [SPECIES_GOTHORITA - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - [SPECIES_GOTHITELLE - 1] = ANIM_GROW_VIBRATE, - [SPECIES_SOLOSIS - 1] = ANIM_TWIST, - [SPECIES_DUOSION - 1] = ANIM_CIRCULAR_STRETCH_TWICE, - [SPECIES_REUNICLUS - 1] = ANIM_V_SLIDE_WOBBLE, - [SPECIES_DUCKLETT - 1] = ANIM_V_STRETCH, - [SPECIES_SWANNA - 1] = ANIM_V_STRETCH, - [SPECIES_VANILLITE - 1] = ANIM_H_SLIDE, - [SPECIES_VANILLISH - 1] = ANIM_GROW_VIBRATE, - [SPECIES_VANILLUXE - 1] = ANIM_GROW_VIBRATE, - [SPECIES_DEERLING_SPRING - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SAWSBUCK_SPRING - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_EMOLGA - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - [SPECIES_KARRABLAST - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ESCAVALIER - 1] = ANIM_BACK_AND_LUNGE, - [SPECIES_FOONGUS - 1] = ANIM_SWING_CONCAVE_FAST, - [SPECIES_AMOONGUSS - 1] = ANIM_H_SLIDE, - [SPECIES_FRILLISH - 1] = ANIM_RISING_WOBBLE, - [SPECIES_JELLICENT - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALOMOMOLA - 1] = ANIM_SWING_CONCAVE, - [SPECIES_JOLTIK - 1] = ANIM_H_SLIDE, - [SPECIES_GALVANTULA - 1] = ANIM_CIRCLE_C_CLOCKWISE_SLOW, - [SPECIES_FERROSEED - 1] = ANIM_H_VIBRATE, - [SPECIES_FERROTHORN - 1] = ANIM_V_SHAKE, - [SPECIES_KLINK - 1] = ANIM_CIRCULAR_STRETCH_TWICE, - [SPECIES_KLANG - 1] = ANIM_CIRCULAR_STRETCH_TWICE, - [SPECIES_KLINKLANG - 1] = ANIM_CIRCULAR_STRETCH_TWICE, - [SPECIES_TYNAMO - 1] = ANIM_V_SLIDE_WOBBLE_SMALL, - [SPECIES_EELEKTRIK - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_EELEKTROSS - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL_SLOW, - [SPECIES_ELGYEM - 1] = ANIM_RISING_WOBBLE, - [SPECIES_BEHEEYEM - 1] = ANIM_GROW_VIBRATE, - [SPECIES_LITWICK - 1] = ANIM_V_STRETCH, - [SPECIES_LAMPENT - 1] = ANIM_V_SLIDE_WOBBLE, - [SPECIES_CHANDELURE - 1] = ANIM_H_SLIDE_WOBBLE, - [SPECIES_AXEW - 1] = ANIM_H_SHAKE, - [SPECIES_FRAXURE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_HAXORUS - 1] = ANIM_H_SHAKE, - [SPECIES_CUBCHOO - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_BEARTIC - 1] = ANIM_H_SHAKE, - [SPECIES_CRYOGONAL - 1] = ANIM_SHRINK_GROW, - [SPECIES_SHELMET - 1] = ANIM_TWIST, - [SPECIES_ACCELGOR - 1] = ANIM_H_JUMPS_V_STRETCH, - [SPECIES_STUNFISK - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_MIENFOO - 1] = ANIM_H_VIBRATE, - [SPECIES_MIENSHAO - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_DRUDDIGON - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL_SLOW, - [SPECIES_GOLETT - 1] = ANIM_V_SHAKE, - [SPECIES_GOLURK - 1] = ANIM_V_SHAKE_TWICE, - [SPECIES_PAWNIARD - 1] = ANIM_H_VIBRATE, - [SPECIES_BISHARP - 1] = ANIM_H_STRETCH, - [SPECIES_BOUFFALANT - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - [SPECIES_RUFFLET - 1] = ANIM_V_STRETCH, - [SPECIES_BRAVIARY - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_VULLABY - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_MANDIBUZZ - 1] = ANIM_V_STRETCH, - [SPECIES_HEATMOR - 1] = ANIM_H_SHAKE, - [SPECIES_DURANT - 1] = ANIM_RAPID_H_HOPS, - [SPECIES_DEINO - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ZWEILOUS - 1] = ANIM_H_STRETCH, - [SPECIES_HYDREIGON - 1] = ANIM_RISING_WOBBLE, - [SPECIES_LARVESTA - 1] = ANIM_GLOW_ORANGE, - [SPECIES_VOLCARONA - 1] = ANIM_V_SLIDE_WOBBLE, - [SPECIES_COBALION - 1] = ANIM_V_STRETCH, - [SPECIES_TERRAKION - 1] = ANIM_V_SHAKE_TWICE, - [SPECIES_VIRIZION - 1] = ANIM_GROW_VIBRATE, - [SPECIES_TORNADUS_INCARNATE - 1] = ANIM_FIGURE_8, - [SPECIES_THUNDURUS_INCARNATE - 1] = ANIM_FIGURE_8, - [SPECIES_RESHIRAM - 1] = ANIM_V_SHAKE, - [SPECIES_ZEKROM - 1] = ANIM_V_SHAKE, - [SPECIES_LANDORUS_INCARNATE - 1] = ANIM_FIGURE_8, - [SPECIES_KYUREM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_KELDEO_ORDINARY - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_MELOETTA_ARIA - 1] = ANIM_GROW_VIBRATE, - [SPECIES_GENESECT - 1] = ANIM_H_VIBRATE, - - // Gen 6 - [SPECIES_CHESPIN - 1] = ANIM_V_JUMPS_SMALL, - [SPECIES_QUILLADIN - 1] = ANIM_LUNGE_GROW, - [SPECIES_CHESNAUGHT - 1] = ANIM_GROW_IN_STAGES, - [SPECIES_FENNEKIN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_BRAIXEN - 1] = ANIM_GROW_VIBRATE, - [SPECIES_DELPHOX - 1] = ANIM_GROW_VIBRATE, - [SPECIES_FROAKIE - 1] = ANIM_H_JUMPS, - [SPECIES_FROGADIER - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - [SPECIES_GRENINJA - 1] = ANIM_V_STRETCH, - [SPECIES_BUNNELBY - 1] = ANIM_V_JUMPS_SMALL, - [SPECIES_DIGGERSBY - 1] = ANIM_H_JUMPS_V_STRETCH, - [SPECIES_FLETCHLING - 1] = ANIM_RAPID_H_HOPS, - [SPECIES_FLETCHINDER - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_TALONFLAME - 1] = ANIM_SWING_CONCAVE_FAST, - [SPECIES_SCATTERBUG - 1] = ANIM_V_STRETCH, - [SPECIES_SPEWPA - 1] = ANIM_V_SHAKE, - [SPECIES_VIVILLON_ICY_SNOW - 1] = ANIM_ZIGZAG_SLOW, - [SPECIES_LITLEO - 1] = ANIM_BACK_AND_LUNGE, - [SPECIES_PYROAR - 1] = ANIM_V_SHAKE, - [SPECIES_FLABEBE_RED_FLOWER - 1] = ANIM_SWING_CONCAVE_FAST_SHORT, - [SPECIES_FLOETTE_RED_FLOWER - 1] = ANIM_V_SLIDE_WOBBLE, - [SPECIES_FLORGES_RED_FLOWER - 1] = ANIM_GROW_VIBRATE, - [SPECIES_SKIDDO - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_GOGOAT - 1] = ANIM_V_STRETCH, - [SPECIES_PANCHAM - 1] = ANIM_H_STRETCH, - [SPECIES_PANGORO - 1] = ANIM_BACK_AND_LUNGE, - [SPECIES_FURFROU_NATURAL - 1] = ANIM_H_SLIDE, - [SPECIES_ESPURR - 1] = ANIM_V_STRETCH, - [SPECIES_MEOWSTIC_MALE - 1] = ANIM_GROW_VIBRATE, - [SPECIES_HONEDGE - 1] = ANIM_SWING_CONVEX, - [SPECIES_DOUBLADE - 1] = ANIM_GROW_VIBRATE, - [SPECIES_AEGISLASH_SHIELD - 1] = ANIM_H_VIBRATE, - [SPECIES_SPRITZEE - 1] = ANIM_V_SLIDE_WOBBLE, - [SPECIES_AROMATISSE - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - [SPECIES_SWIRLIX - 1] = ANIM_H_JUMPS_V_STRETCH, - [SPECIES_SLURPUFF - 1] = ANIM_V_STRETCH, - [SPECIES_INKAY - 1] = ANIM_V_SLIDE_WOBBLE, - [SPECIES_MALAMAR - 1] = ANIM_CIRCULAR_STRETCH_TWICE, - [SPECIES_BINACLE - 1] = ANIM_H_SLIDE, - [SPECIES_BARBARACLE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SKRELP - 1] = ANIM_V_SLIDE_WOBBLE_SMALL, - [SPECIES_DRAGALGE - 1] = ANIM_FRONT_FLIP, - [SPECIES_CLAUNCHER - 1] = ANIM_TIP_MOVE_FORWARD, - [SPECIES_CLAWITZER - 1] = ANIM_CIRCLE_C_CLOCKWISE_SLOW, - [SPECIES_HELIOPTILE - 1] = ANIM_GLOW_YELLOW, - [SPECIES_HELIOLISK - 1] = ANIM_RAPID_H_HOPS, - [SPECIES_TYRUNT - 1] = ANIM_V_SHAKE, - [SPECIES_TYRANTRUM - 1] = ANIM_V_SHAKE, - [SPECIES_AMAURA - 1] = ANIM_H_STRETCH, - [SPECIES_AURORUS - 1] = ANIM_GROW_VIBRATE, - [SPECIES_SYLVEON - 1] = ANIM_SHRINK_GROW, - [SPECIES_HAWLUCHA - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - [SPECIES_DEDENNE - 1] = ANIM_GLOW_YELLOW, - [SPECIES_CARBINK - 1] = ANIM_ZIGZAG_SLOW, - [SPECIES_GOOMY - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - [SPECIES_SLIGGOO - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_GOODRA - 1] = ANIM_V_SHAKE, - [SPECIES_KLEFKI - 1] = ANIM_FOUR_PETAL, - [SPECIES_PHANTUMP - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_TREVENANT - 1] = ANIM_H_SLIDE_SLOW, - [SPECIES_PUMPKABOO_AVERAGE - 1] = ANIM_V_SLIDE_WOBBLE, - [SPECIES_GOURGEIST_AVERAGE - 1] = ANIM_SHRINK_GROW, - [SPECIES_BERGMITE - 1] = ANIM_LUNGE_GROW, - [SPECIES_AVALUGG - 1] = ANIM_V_SHAKE, - [SPECIES_NOIBAT - 1] = ANIM_RISING_WOBBLE, - [SPECIES_NOIVERN - 1] = ANIM_V_STRETCH, - [SPECIES_XERNEAS_NEUTRAL - 1] = ANIM_GROW_VIBRATE, - [SPECIES_YVELTAL - 1] = ANIM_FRONT_FLIP, - [SPECIES_ZYGARDE_50_AURA_BREAK - 1] = ANIM_TIP_MOVE_FORWARD, - [SPECIES_DIANCIE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_HOOPA_CONFINED - 1] = ANIM_ZIGZAG_SLOW, - [SPECIES_VOLCANION - 1] = ANIM_V_SHAKE_TWICE, - - // Gen 7 - [SPECIES_ROWLET - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_DARTRIX - 1] = ANIM_H_STRETCH, - [SPECIES_DECIDUEYE - 1] = ANIM_H_VIBRATE, - [SPECIES_LITTEN - 1] = ANIM_H_STRETCH, - [SPECIES_TORRACAT - 1] = ANIM_V_STRETCH, - [SPECIES_INCINEROAR - 1] = ANIM_V_SHAKE, - [SPECIES_POPPLIO - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - [SPECIES_BRIONNE - 1] = ANIM_SHRINK_GROW, - [SPECIES_PRIMARINA - 1] = ANIM_SHAKE_GLOW_BLUE_SLOW, - [SPECIES_PIKIPEK - 1] = ANIM_V_JUMPS_SMALL, - [SPECIES_TRUMBEAK - 1] = ANIM_H_STRETCH, - [SPECIES_TOUCANNON - 1] = ANIM_SHRINK_GROW_VIBRATE_FAST, - [SPECIES_YUNGOOS - 1] = ANIM_V_STRETCH, - [SPECIES_GUMSHOOS - 1] = ANIM_H_SHAKE, - [SPECIES_GRUBBIN - 1] = ANIM_H_SLIDE, - [SPECIES_CHARJABUG - 1] = ANIM_SHAKE_FLASH_YELLOW_SLOW, - [SPECIES_VIKAVOLT - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES, - [SPECIES_CRABRAWLER - 1] = ANIM_V_SHAKE, - [SPECIES_CRABOMINABLE - 1] = ANIM_SHRINK_GROW_VIBRATE_FAST, - [SPECIES_ORICORIO_BAILE - 1] = ANIM_CONCAVE_ARC_SMALL, - [SPECIES_CUTIEFLY - 1] = ANIM_V_SLIDE_WOBBLE, - [SPECIES_RIBOMBEE - 1] = ANIM_CONVEX_DOUBLE_ARC_TWICE, - [SPECIES_ROCKRUFF - 1] = ANIM_V_STRETCH, - [SPECIES_LYCANROC_MIDDAY - 1] = ANIM_V_SHAKE, - [SPECIES_WISHIWASHI_SOLO - 1] = ANIM_V_SLIDE_WOBBLE_SMALL, - [SPECIES_MAREANIE - 1] = ANIM_GLOW_PURPLE, - [SPECIES_TOXAPEX - 1] = ANIM_SHAKE_GLOW_PURPLE_SLOW, - [SPECIES_MUDBRAY - 1] = ANIM_V_SHAKE, - [SPECIES_MUDSDALE - 1] = ANIM_V_SHAKE_TWICE, - [SPECIES_DEWPIDER - 1] = ANIM_SHRINK_GROW, - [SPECIES_ARAQUANID - 1] = ANIM_H_SHAKE, - [SPECIES_FOMANTIS - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW, - [SPECIES_LURANTIS - 1] = ANIM_GROW_VIBRATE, - [SPECIES_MORELULL - 1] = ANIM_SHAKE_FLASH_YELLOW, - [SPECIES_SHIINOTIC - 1] = ANIM_SHAKE_GLOW_WHITE_SLOW, - [SPECIES_SALANDIT - 1] = ANIM_GLOW_RED, - [SPECIES_SALAZZLE - 1] = ANIM_GROW_VIBRATE, - [SPECIES_STUFFUL - 1] = ANIM_V_SHAKE, - [SPECIES_BEWEAR - 1] = ANIM_H_STRETCH, - [SPECIES_BOUNSWEET - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_STEENEE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_TSAREENA - 1] = ANIM_SHRINK_GROW, - [SPECIES_COMFEY - 1] = ANIM_H_SLIDE_WOBBLE, - [SPECIES_ORANGURU - 1] = ANIM_SHRINK_GROW, - [SPECIES_PASSIMIAN - 1] = ANIM_V_SHAKE, - [SPECIES_WIMPOD - 1] = ANIM_V_SHAKE_H_SLIDE_FAST, - [SPECIES_GOLISOPOD - 1] = ANIM_SHRINK_GROW_VIBRATE_FAST, - [SPECIES_SANDYGAST - 1] = ANIM_CIRCULAR_STRETCH_TWICE, - [SPECIES_PALOSSAND - 1] = ANIM_H_VIBRATE, - [SPECIES_PYUKUMUKU - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_TYPE_NULL - 1] = ANIM_H_SHAKE, - [SPECIES_SILVALLY_NORMAL - 1] = ANIM_V_SHAKE, - [SPECIES_MINIOR_METEOR_RED - 1] = ANIM_TUMBLING_FRONT_FLIP_TWICE, - [SPECIES_KOMALA - 1] = ANIM_H_DIP, - [SPECIES_TURTONATOR - 1] = ANIM_SHAKE_GLOW_RED, - [SPECIES_TOGEDEMARU - 1] = ANIM_SHAKE_FLASH_YELLOW, - [SPECIES_MIMIKYU_DISGUISED - 1] = ANIM_DEEP_V_SQUISH_AND_BOUNCE, - [SPECIES_BRUXISH - 1] = ANIM_RISING_WOBBLE, - [SPECIES_DRAMPA - 1] = ANIM_V_SHAKE, - [SPECIES_DHELMISE - 1] = ANIM_SWING_CONVEX, - [SPECIES_JANGMO_O - 1] = ANIM_H_STRETCH, - [SPECIES_HAKAMO_O - 1] = ANIM_H_STRETCH, - [SPECIES_KOMMO_O - 1] = ANIM_GROW_STUTTER_TWICE, - [SPECIES_TAPU_KOKO - 1] = ANIM_TRIANGLE_DOWN_TWICE, - [SPECIES_TAPU_LELE - 1] = ANIM_V_SLIDE_WOBBLE_SMALL, - [SPECIES_TAPU_BULU - 1] = ANIM_V_SHAKE_TWICE, - [SPECIES_TAPU_FINI - 1] = ANIM_SHAKE_GLOW_BLUE_SLOW, - [SPECIES_COSMOG - 1] = ANIM_H_JUMPS_V_STRETCH, - [SPECIES_COSMOEM - 1] = ANIM_RISING_WOBBLE, - [SPECIES_SOLGALEO - 1] = ANIM_GROW_VIBRATE, - [SPECIES_LUNALA - 1] = ANIM_CIRCULAR_VIBRATE, - [SPECIES_NIHILEGO - 1] = ANIM_CIRCULAR_STRETCH_TWICE, - [SPECIES_BUZZWOLE - 1] = ANIM_SHRINK_GROW_VIBRATE_FAST, - [SPECIES_PHEROMOSA - 1] = ANIM_SHRINK_GROW, - [SPECIES_XURKITREE - 1] = ANIM_SHAKE_FLASH_YELLOW_FAST, - [SPECIES_CELESTEELA - 1] = ANIM_GROW_STUTTER_SLOW, - [SPECIES_KARTANA - 1] = ANIM_H_VIBRATE, - [SPECIES_GUZZLORD - 1] = ANIM_SHRINK_GROW_VIBRATE_FAST, - [SPECIES_NECROZMA - 1] = ANIM_GROW_VIBRATE, - [SPECIES_MAGEARNA - 1] = ANIM_H_SLIDE_SLOW, - [SPECIES_MARSHADOW - 1] = ANIM_V_SHAKE, - [SPECIES_POIPOLE - 1] = ANIM_SHAKE_GLOW_PURPLE_SLOW, - [SPECIES_NAGANADEL - 1] = ANIM_TRIANGLE_DOWN_TWICE, - [SPECIES_STAKATAKA - 1] = ANIM_GROW_VIBRATE, - [SPECIES_BLACEPHALON - 1] = ANIM_SHAKE_GLOW_RED, - [SPECIES_ZERAORA - 1] = ANIM_V_STRETCH, - [SPECIES_MELTAN - 1] = ANIM_GROW_STUTTER_SLOW, - [SPECIES_MELMETAL - 1] = ANIM_GROW_VIBRATE, - - // Gen 8 Todo: Assign proper ones. - [SPECIES_GROOKEY - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_THWACKEY - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_RILLABOOM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SCORBUNNY - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_RABOOT - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_CINDERACE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SOBBLE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_DRIZZILE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_INTELEON - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SKWOVET - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_GREEDENT - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ROOKIDEE - 1] = ANIM_H_VIBRATE, - [SPECIES_CORVISQUIRE - 1] = ANIM_CIRCLE_INTO_BG, - [SPECIES_CORVIKNIGHT - 1] = ANIM_H_VIBRATE, - [SPECIES_BLIPBUG - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_DOTTLER - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ORBEETLE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_NICKIT - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_THIEVUL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_GOSSIFLEUR - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ELDEGOSS - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_WOOLOO - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_DUBWOOL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_CHEWTLE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_DREDNAW - 1] = ANIM_GROW_VIBRATE, - [SPECIES_YAMPER - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_BOLTUND - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ROLYCOLY - 1] = ANIM_H_SLIDE_SLOW, - [SPECIES_CARKOL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_COALOSSAL - 1] = ANIM_GLOW_RED, - [SPECIES_APPLIN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_FLAPPLE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_APPLETUN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SILICOBRA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SANDACONDA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_CRAMORANT - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ARROKUDA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_BARRASKEWDA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_TOXEL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_TOXTRICITY_AMPED - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SIZZLIPEDE - 1] = ANIM_H_VIBRATE, - [SPECIES_CENTISKORCH - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_CLOBBOPUS - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_GRAPPLOCT - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SINISTEA_PHONY - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_POLTEAGEIST_PHONY - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_HATENNA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_HATTREM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_HATTERENE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_IMPIDIMP - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_MORGREM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_GRIMMSNARL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_OBSTAGOON - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_PERRSERKER - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_CURSOLA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SIRFETCHD - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_MR_RIME - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_RUNERIGUS - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_MILCERY - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_FALINKS - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_PINCURCHIN - 1] = ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_SNOM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_FROSMOTH - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_STONJOURNER - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_EISCUE_ICE_FACE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_INDEEDEE_MALE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_MORPEKO_FULL_BELLY - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_CUFANT - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_COPPERAJAH - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_DRACOZOLT - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ARCTOZOLT - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_DRACOVISH - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ARCTOVISH - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_DURALUDON - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_DREEPY - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_DRAKLOAK - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_DRAGAPULT - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ZACIAN_HERO_OF_MANY_BATTLES - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ZAMAZENTA_HERO_OF_MANY_BATTLES - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ETERNATUS - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_KUBFU - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_URSHIFU_SINGLE_STRIKE_STYLE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ZARUDE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_REGIELEKI - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_REGIDRAGO - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_GLASTRIER - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SPECTRIER - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_CALYREX - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_WYRDEER - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_KLEAVOR - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_URSALUNA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_BASCULEGION_MALE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SNEASLER - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_OVERQWIL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ENAMORUS_INCARNATE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - - // Gen 3 Forms - [SPECIES_CASTFORM_SUNNY - 1] = ANIM_GROW_VIBRATE, - [SPECIES_CASTFORM_RAINY - 1] = ANIM_SWING_CONVEX_FAST, - [SPECIES_CASTFORM_SNOWY - 1] = ANIM_V_STRETCH, - [SPECIES_DEOXYS_ATTACK - 1] = ANIM_GROW_VIBRATE, - [SPECIES_DEOXYS_DEFENSE - 1] = ANIM_GROW_VIBRATE, - [SPECIES_DEOXYS_SPEED - 1] = ANIM_GROW_VIBRATE, - - // Gen 4 Forms - [SPECIES_BURMY_SANDY_CLOAK - 1] = ANIM_V_STRETCH, - [SPECIES_BURMY_TRASH_CLOAK - 1] = ANIM_V_STRETCH, - [SPECIES_WORMADAM_SANDY_CLOAK - 1] = ANIM_SWING_CONVEX_FAST_SHORT, - [SPECIES_WORMADAM_TRASH_CLOAK - 1] = ANIM_SWING_CONVEX_FAST_SHORT, - [SPECIES_CHERRIM_SUNSHINE - 1] = ANIM_H_JUMPS_V_STRETCH, - [SPECIES_SHELLOS_EAST_SEA - 1] = ANIM_V_STRETCH, - [SPECIES_GASTRODON_EAST_SEA - 1] = ANIM_CIRCULAR_STRETCH_TWICE, - [SPECIES_ROTOM_HEAT - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ROTOM_WASH - 1] = ANIM_V_JUMPS_SMALL, - [SPECIES_ROTOM_FROST - 1] = ANIM_H_STRETCH, - [SPECIES_ROTOM_FAN - 1] = ANIM_H_SLIDE_WOBBLE, - [SPECIES_ROTOM_MOW - 1] = ANIM_TIP_MOVE_FORWARD, - [SPECIES_GIRATINA_ORIGIN - 1] = ANIM_LUNGE_GROW, - [SPECIES_SHAYMIN_SKY - 1] = ANIM_V_STRETCH, - [SPECIES_ARCEUS_FIGHTING - 1] = ANIM_GROW_VIBRATE, - [SPECIES_ARCEUS_FLYING - 1] = ANIM_GROW_VIBRATE, - [SPECIES_ARCEUS_POISON - 1] = ANIM_GROW_VIBRATE, - [SPECIES_ARCEUS_GROUND - 1] = ANIM_GROW_VIBRATE, - [SPECIES_ARCEUS_ROCK - 1] = ANIM_GROW_VIBRATE, - [SPECIES_ARCEUS_BUG - 1] = ANIM_GROW_VIBRATE, - [SPECIES_ARCEUS_GHOST - 1] = ANIM_GROW_VIBRATE, - [SPECIES_ARCEUS_STEEL - 1] = ANIM_GROW_VIBRATE, - [SPECIES_ARCEUS_FIRE - 1] = ANIM_GROW_VIBRATE, - [SPECIES_ARCEUS_WATER - 1] = ANIM_GROW_VIBRATE, - [SPECIES_ARCEUS_GRASS - 1] = ANIM_GROW_VIBRATE, - [SPECIES_ARCEUS_ELECTRIC - 1] = ANIM_GROW_VIBRATE, - [SPECIES_ARCEUS_PSYCHIC - 1] = ANIM_GROW_VIBRATE, - [SPECIES_ARCEUS_ICE - 1] = ANIM_GROW_VIBRATE, - [SPECIES_ARCEUS_DRAGON - 1] = ANIM_GROW_VIBRATE, - [SPECIES_ARCEUS_DARK - 1] = ANIM_GROW_VIBRATE, - [SPECIES_ARCEUS_FAIRY - 1] = ANIM_GROW_VIBRATE, - - // Gen 5 Forms - [SPECIES_BASCULIN_BLUE_STRIPED - 1] = ANIM_TIP_MOVE_FORWARD, - [SPECIES_BASCULIN_WHITE_STRIPED - 1] = ANIM_TIP_MOVE_FORWARD, - [SPECIES_DARMANITAN_ZEN_MODE - 1] = ANIM_GROW_VIBRATE, - [SPECIES_DEERLING_SUMMER - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_DEERLING_AUTUMN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_DEERLING_WINTER - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SAWSBUCK_SUMMER - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SAWSBUCK_AUTUMN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SAWSBUCK_WINTER - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_TORNADUS_THERIAN - 1] = ANIM_V_STRETCH, - [SPECIES_THUNDURUS_THERIAN - 1] = ANIM_RISING_WOBBLE, - [SPECIES_LANDORUS_THERIAN - 1] = ANIM_CIRCULAR_VIBRATE, - [SPECIES_KYUREM_WHITE - 1] = ANIM_H_SHAKE, - [SPECIES_KYUREM_BLACK - 1] = ANIM_V_SHAKE, - [SPECIES_KELDEO_RESOLUTE - 1] = ANIM_V_STRETCH, - [SPECIES_MELOETTA_PIROUETTE - 1] = ANIM_H_SLIDE_SLOW, - [SPECIES_GENESECT_DOUSE_DRIVE - 1] = ANIM_H_VIBRATE, - [SPECIES_GENESECT_SHOCK_DRIVE - 1] = ANIM_H_VIBRATE, - [SPECIES_GENESECT_BURN_DRIVE - 1] = ANIM_H_VIBRATE, - [SPECIES_GENESECT_CHILL_DRIVE - 1] = ANIM_H_VIBRATE, - - // Gen 6 Forms - [SPECIES_GRENINJA_ASH - 1] = ANIM_FLICKER_INCREASING, - [SPECIES_GRENINJA_BATTLE_BOND - 1] = ANIM_FLICKER_INCREASING, - [SPECIES_VIVILLON_POLAR - 1] = ANIM_ZIGZAG_SLOW, - [SPECIES_VIVILLON_TUNDRA - 1] = ANIM_ZIGZAG_SLOW, - [SPECIES_VIVILLON_CONTINENTAL - 1] = ANIM_ZIGZAG_SLOW, - [SPECIES_VIVILLON_GARDEN - 1] = ANIM_ZIGZAG_SLOW, - [SPECIES_VIVILLON_ELEGANT - 1] = ANIM_ZIGZAG_SLOW, - [SPECIES_VIVILLON_MEADOW - 1] = ANIM_ZIGZAG_SLOW, - [SPECIES_VIVILLON_MODERN - 1] = ANIM_ZIGZAG_SLOW, - [SPECIES_VIVILLON_MARINE - 1] = ANIM_ZIGZAG_SLOW, - [SPECIES_VIVILLON_ARCHIPELAGO - 1] = ANIM_ZIGZAG_SLOW, - [SPECIES_VIVILLON_HIGH_PLAINS - 1] = ANIM_ZIGZAG_SLOW, - [SPECIES_VIVILLON_SANDSTORM - 1] = ANIM_ZIGZAG_SLOW, - [SPECIES_VIVILLON_RIVER - 1] = ANIM_ZIGZAG_SLOW, - [SPECIES_VIVILLON_MONSOON - 1] = ANIM_ZIGZAG_SLOW, - [SPECIES_VIVILLON_SAVANNA - 1] = ANIM_ZIGZAG_SLOW, - [SPECIES_VIVILLON_SUN - 1] = ANIM_ZIGZAG_SLOW, - [SPECIES_VIVILLON_OCEAN - 1] = ANIM_ZIGZAG_SLOW, - [SPECIES_VIVILLON_JUNGLE - 1] = ANIM_ZIGZAG_SLOW, - [SPECIES_VIVILLON_FANCY - 1] = ANIM_ZIGZAG_SLOW, - [SPECIES_VIVILLON_POKE_BALL - 1] = ANIM_ZIGZAG_SLOW, - [SPECIES_FLABEBE_YELLOW_FLOWER - 1] = ANIM_SWING_CONCAVE_FAST_SHORT, - [SPECIES_FLABEBE_ORANGE_FLOWER - 1] = ANIM_SWING_CONCAVE_FAST_SHORT, - [SPECIES_FLABEBE_BLUE_FLOWER - 1] = ANIM_SWING_CONCAVE_FAST_SHORT, - [SPECIES_FLABEBE_WHITE_FLOWER - 1] = ANIM_SWING_CONCAVE_FAST_SHORT, - [SPECIES_FLOETTE_YELLOW_FLOWER - 1] = ANIM_V_SLIDE_WOBBLE, - [SPECIES_FLOETTE_ORANGE_FLOWER - 1] = ANIM_V_SLIDE_WOBBLE, - [SPECIES_FLOETTE_BLUE_FLOWER - 1] = ANIM_V_SLIDE_WOBBLE, - [SPECIES_FLOETTE_WHITE_FLOWER - 1] = ANIM_V_SLIDE_WOBBLE, - [SPECIES_FLOETTE_ETERNAL_FLOWER - 1] = ANIM_V_SLIDE_WOBBLE, - [SPECIES_FLORGES_YELLOW_FLOWER - 1] = ANIM_GROW_VIBRATE, - [SPECIES_FLORGES_ORANGE_FLOWER - 1] = ANIM_GROW_VIBRATE, - [SPECIES_FLORGES_BLUE_FLOWER - 1] = ANIM_GROW_VIBRATE, - [SPECIES_FLORGES_WHITE_FLOWER - 1] = ANIM_GROW_VIBRATE, - [SPECIES_FURFROU_HEART_TRIM - 1] = ANIM_H_SLIDE, - [SPECIES_FURFROU_STAR_TRIM - 1] = ANIM_H_SLIDE, - [SPECIES_FURFROU_DIAMOND_TRIM - 1] = ANIM_H_SLIDE, - [SPECIES_FURFROU_DEBUTANTE_TRIM - 1] = ANIM_H_SLIDE, - [SPECIES_FURFROU_MATRON_TRIM - 1] = ANIM_H_SLIDE, - [SPECIES_FURFROU_DANDY_TRIM - 1] = ANIM_H_SLIDE, - [SPECIES_FURFROU_LA_REINE_TRIM - 1] = ANIM_H_SLIDE, - [SPECIES_FURFROU_KABUKI_TRIM - 1] = ANIM_H_SLIDE, - [SPECIES_FURFROU_PHARAOH_TRIM - 1] = ANIM_H_SLIDE, - [SPECIES_MEOWSTIC_FEMALE - 1] = ANIM_GROW_VIBRATE, - [SPECIES_AEGISLASH_BLADE - 1] = ANIM_CIRCLE_C_CLOCKWISE_SLOW, - [SPECIES_PUMPKABOO_SMALL - 1] = ANIM_V_SLIDE_WOBBLE, - [SPECIES_PUMPKABOO_LARGE - 1] = ANIM_V_SLIDE_WOBBLE, - [SPECIES_PUMPKABOO_SUPER - 1] = ANIM_V_SLIDE_WOBBLE, - [SPECIES_GOURGEIST_SMALL - 1] = ANIM_SHRINK_GROW, - [SPECIES_GOURGEIST_LARGE - 1] = ANIM_SHRINK_GROW, - [SPECIES_GOURGEIST_SUPER - 1] = ANIM_SHRINK_GROW, - [SPECIES_XERNEAS_ACTIVE - 1] = ANIM_GROW_VIBRATE, - [SPECIES_ZYGARDE_10_AURA_BREAK - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ZYGARDE_10_POWER_CONSTRUCT - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ZYGARDE_50_POWER_CONSTRUCT - 1] = ANIM_TIP_MOVE_FORWARD, - [SPECIES_ZYGARDE_COMPLETE - 1] = ANIM_GROW_VIBRATE, - [SPECIES_HOOPA_UNBOUND - 1] = ANIM_GROW_IN_STAGES, - - // Gen 7 Forms - [SPECIES_ORICORIO_POM_POM - 1] = ANIM_V_SQUISH_AND_BOUNCE, //Todo - [SPECIES_ORICORIO_PAU - 1] = ANIM_V_SQUISH_AND_BOUNCE, //Todo - [SPECIES_ORICORIO_SENSU - 1] = ANIM_V_SQUISH_AND_BOUNCE, //Todo - [SPECIES_ROCKRUFF_OWN_TEMPO - 1] = ANIM_V_STRETCH, - [SPECIES_LYCANROC_MIDNIGHT - 1] = ANIM_V_SQUISH_AND_BOUNCE, //Todo - [SPECIES_LYCANROC_DUSK - 1] = ANIM_V_SQUISH_AND_BOUNCE, //Todo - [SPECIES_WISHIWASHI_SCHOOL - 1] = ANIM_V_SQUISH_AND_BOUNCE, //Todo - [SPECIES_SILVALLY_FIGHTING - 1] = ANIM_V_SHAKE, - [SPECIES_SILVALLY_FLYING - 1] = ANIM_V_SHAKE, - [SPECIES_SILVALLY_POISON - 1] = ANIM_V_SHAKE, - [SPECIES_SILVALLY_GROUND - 1] = ANIM_V_SHAKE, - [SPECIES_SILVALLY_ROCK - 1] = ANIM_V_SHAKE, - [SPECIES_SILVALLY_BUG - 1] = ANIM_V_SHAKE, - [SPECIES_SILVALLY_GHOST - 1] = ANIM_V_SHAKE, - [SPECIES_SILVALLY_STEEL - 1] = ANIM_V_SHAKE, - [SPECIES_SILVALLY_FIRE - 1] = ANIM_V_SHAKE, - [SPECIES_SILVALLY_WATER - 1] = ANIM_V_SHAKE, - [SPECIES_SILVALLY_GRASS - 1] = ANIM_V_SHAKE, - [SPECIES_SILVALLY_ELECTRIC - 1] = ANIM_V_SHAKE, - [SPECIES_SILVALLY_PSYCHIC - 1] = ANIM_V_SHAKE, - [SPECIES_SILVALLY_ICE - 1] = ANIM_V_SHAKE, - [SPECIES_SILVALLY_DRAGON - 1] = ANIM_V_SHAKE, - [SPECIES_SILVALLY_DARK - 1] = ANIM_V_SHAKE, - [SPECIES_SILVALLY_FAIRY - 1] = ANIM_V_SHAKE, - [SPECIES_MINIOR_METEOR_ORANGE - 1] = ANIM_TUMBLING_FRONT_FLIP_TWICE, - [SPECIES_MINIOR_METEOR_YELLOW - 1] = ANIM_TUMBLING_FRONT_FLIP_TWICE, - [SPECIES_MINIOR_METEOR_GREEN - 1] = ANIM_TUMBLING_FRONT_FLIP_TWICE, - [SPECIES_MINIOR_METEOR_BLUE - 1] = ANIM_TUMBLING_FRONT_FLIP_TWICE, - [SPECIES_MINIOR_METEOR_INDIGO - 1] = ANIM_TUMBLING_FRONT_FLIP_TWICE, - [SPECIES_MINIOR_METEOR_VIOLET - 1] = ANIM_TUMBLING_FRONT_FLIP_TWICE, - [SPECIES_MINIOR_CORE_RED - 1] = ANIM_TUMBLING_FRONT_FLIP_TWICE, - [SPECIES_MINIOR_CORE_ORANGE - 1] = ANIM_TUMBLING_FRONT_FLIP_TWICE, - [SPECIES_MINIOR_CORE_YELLOW - 1] = ANIM_TUMBLING_FRONT_FLIP_TWICE, - [SPECIES_MINIOR_CORE_GREEN - 1] = ANIM_TUMBLING_FRONT_FLIP_TWICE, - [SPECIES_MINIOR_CORE_BLUE - 1] = ANIM_TUMBLING_FRONT_FLIP_TWICE, - [SPECIES_MINIOR_CORE_INDIGO - 1] = ANIM_TUMBLING_FRONT_FLIP_TWICE, - [SPECIES_MINIOR_CORE_VIOLET - 1] = ANIM_TUMBLING_FRONT_FLIP_TWICE, - [SPECIES_MIMIKYU_BUSTED - 1] = ANIM_DEEP_V_SQUISH_AND_BOUNCE, - [SPECIES_NECROZMA_DUSK_MANE - 1] = ANIM_V_SQUISH_AND_BOUNCE, //Todo - [SPECIES_NECROZMA_DAWN_WINGS - 1] = ANIM_V_SQUISH_AND_BOUNCE, //Todo - [SPECIES_NECROZMA_ULTRA - 1] = ANIM_V_SQUISH_AND_BOUNCE, //Todo - [SPECIES_MAGEARNA_ORIGINAL_COLOR - 1] = ANIM_H_SLIDE_SLOW, - - // Gen 8 Forms - [SPECIES_CRAMORANT_GULPING - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_CRAMORANT_GORGING - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_TOXTRICITY_LOW_KEY - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SINISTEA_ANTIQUE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_POLTEAGEIST_ANTIQUE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_RUBY_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_MATCHA_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_MINT_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_LEMON_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_SALTED_CREAM - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_RUBY_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_CARAMEL_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALCREMIE_RAINBOW_SWIRL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_EISCUE_NOICE_FACE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_INDEEDEE_FEMALE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_MORPEKO_HANGRY - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ZACIAN_CROWNED_SWORD - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ZAMAZENTA_CROWNED_SHIELD - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ETERNATUS_ETERNAMAX - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_URSHIFU_RAPID_STRIKE_STYLE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ZARUDE_DADA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_CALYREX_ICE_RIDER - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_CALYREX_SHADOW_RIDER - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_BASCULEGION_FEMALE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - - // Alolan Forms - [SPECIES_RATTATA_ALOLAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_RATICATE_ALOLAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_RAICHU_ALOLAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SANDSHREW_ALOLAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SANDSLASH_ALOLAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_VULPIX_ALOLAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_NINETALES_ALOLAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_DIGLETT_ALOLAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_DUGTRIO_ALOLAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_MEOWTH_ALOLAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_PERSIAN_ALOLAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_GEODUDE_ALOLAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_GRAVELER_ALOLAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_GOLEM_ALOLAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_GRIMER_ALOLAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_MUK_ALOLAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_EXEGGUTOR_ALOLAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_MAROWAK_ALOLAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - - // Galarian Forms - [SPECIES_MEOWTH_GALARIAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_PONYTA_GALARIAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_RAPIDASH_GALARIAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SLOWPOKE_GALARIAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SLOWBRO_GALARIAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_FARFETCHD_GALARIAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_WEEZING_GALARIAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_MR_MIME_GALARIAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ARTICUNO_GALARIAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ZAPDOS_GALARIAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_MOLTRES_GALARIAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SLOWKING_GALARIAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_CORSOLA_GALARIAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ZIGZAGOON_GALARIAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_LINOONE_GALARIAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_DARUMAKA_GALARIAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_DARMANITAN_GALARIAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_YAMASK_GALARIAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_STUNFISK_GALARIAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - - // Hisuian Forms - [SPECIES_GROWLITHE_HISUIAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ARCANINE_HISUIAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_VOLTORB_HISUIAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ELECTRODE_HISUIAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_TYPHLOSION_HISUIAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_QWILFISH_HISUIAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SNEASEL_HISUIAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SAMUROTT_HISUIAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_LILLIGANT_HISUIAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ZORUA_HISUIAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ZOROARK_HISUIAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_BRAVIARY_HISUIAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SLIGGOO_HISUIAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_GOODRA_HISUIAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_AVALUGG_HISUIAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_DECIDUEYE_HISUIAN - 1] = ANIM_V_SQUISH_AND_BOUNCE, - - // Mega/Primal Forms - [SPECIES_VENUSAUR_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_CHARIZARD_MEGA_X - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_CHARIZARD_MEGA_Y - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_BLASTOISE_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_BEEDRILL_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_PIDGEOT_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALAKAZAM_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SLOWBRO_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_GENGAR_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_KANGASKHAN_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_PINSIR_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_GYARADOS_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_AERODACTYL_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_MEWTWO_MEGA_X - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_MEWTWO_MEGA_Y - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_AMPHAROS_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_STEELIX_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SCIZOR_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_HERACROSS_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_HOUNDOOM_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_TYRANITAR_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SCEPTILE_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_BLAZIKEN_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SWAMPERT_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_GARDEVOIR_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SABLEYE_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_MAWILE_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_AGGRON_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_MEDICHAM_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_MANECTRIC_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SHARPEDO_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_CAMERUPT_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ALTARIA_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_BANETTE_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ABSOL_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_GLALIE_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_SALAMENCE_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_METAGROSS_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_LATIAS_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_LATIOS_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_LOPUNNY_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_GARCHOMP_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_LUCARIO_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_ABOMASNOW_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_GALLADE_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_RAYQUAZA_MEGA - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_KYOGRE_PRIMAL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_GROUDON_PRIMAL - 1] = ANIM_V_SQUISH_AND_BOUNCE, - - // Other Forms - [SPECIES_PIKACHU_COSPLAY - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_PIKACHU_ROCK_STAR - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_PIKACHU_BELLE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_PIKACHU_POP_STAR - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_PIKACHU_PH_D - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_PIKACHU_LIBRE - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_PIKACHU_ORIGINAL_CAP - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_PIKACHU_HOENN_CAP - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_PIKACHU_SINNOH_CAP - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_PIKACHU_UNOVA_CAP - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_PIKACHU_KALOS_CAP - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_PIKACHU_ALOLA_CAP - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_PIKACHU_PARTNER_CAP - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_PIKACHU_WORLD_CAP - 1] = ANIM_V_SQUISH_AND_BOUNCE, - [SPECIES_PICHU_SPIKY_EARED - 1] = ANIM_V_SQUISH_AND_BOUNCE, -}; - -static const u8 sMonAnimationDelayTable[NUM_SPECIES - 1] = -{ - [SPECIES_BLASTOISE - 1] = 20, - [SPECIES_WEEDLE - 1] = 10, - [SPECIES_KAKUNA - 1] = 20, - [SPECIES_PIDGEOTTO - 1] = 25, - [SPECIES_FEAROW - 1] = 2, - [SPECIES_EKANS - 1] = 30, - [SPECIES_PIKACHU - 1] = 25, - [SPECIES_NIDORAN_F - 1] = 28, - [SPECIES_NIDOKING - 1] = 25, - [SPECIES_PARAS - 1] = 10, - [SPECIES_PARASECT - 1] = 45, - [SPECIES_VENONAT - 1] = 20, - [SPECIES_DIGLETT - 1] = 25, - [SPECIES_DUGTRIO - 1] = 35, - [SPECIES_MEOWTH - 1] = 40, - [SPECIES_PERSIAN - 1] = 20, - [SPECIES_MANKEY - 1] = 20, - [SPECIES_GROWLITHE - 1] = 30, - [SPECIES_ARCANINE - 1] = 8, - [SPECIES_POLIWHIRL - 1] = 5, - [SPECIES_WEEPINBELL - 1] = 3, - [SPECIES_PONYTA - 1] = 10, - [SPECIES_MUK - 1] = 45, - [SPECIES_SHELLDER - 1] = 20, - [SPECIES_HAUNTER - 1] = 23, - [SPECIES_DROWZEE - 1] = 48, - [SPECIES_HYPNO - 1] = 40, - [SPECIES_HITMONCHAN - 1] = 25, - [SPECIES_SCYTHER - 1] = 10, - [SPECIES_TAUROS - 1] = 10, - [SPECIES_TYPHLOSION - 1] = 20, - [SPECIES_FERALIGATR - 1] = 5, - [SPECIES_NATU - 1] = 30, - [SPECIES_MAREEP - 1] = 50, - [SPECIES_AMPHAROS - 1] = 10, - [SPECIES_POLITOED - 1] = 40, - [SPECIES_DUNSPARCE - 1] = 10, - [SPECIES_STEELIX - 1] = 45, - [SPECIES_QWILFISH - 1] = 39, - [SPECIES_SCIZOR - 1] = 19, - [SPECIES_OCTILLERY - 1] = 20, - [SPECIES_SMOOCHUM - 1] = 40, - [SPECIES_TYRANITAR - 1] = 10, - [SPECIES_LUGIA - 1] = 20, - [SPECIES_WAILORD - 1] = 10, - [SPECIES_KECLEON - 1] = 30, - [SPECIES_MILOTIC - 1] = 45, - [SPECIES_SPHEAL - 1] = 15, - [SPECIES_SNORUNT - 1] = 20, - [SPECIES_GRUMPIG - 1] = 15, - [SPECIES_WYNAUT - 1] = 15, - [SPECIES_DUSCLOPS - 1] = 30, - [SPECIES_ABSOL - 1] = 45, - [SPECIES_SALAMENCE - 1] = 70, - [SPECIES_KYOGRE - 1] = 60, - [SPECIES_RAYQUAZA - 1] = 60, -#if P_GEN_7_POKEMON == TRUE - [SPECIES_TAPU_FINI - 1] = 5, -#endif -#if P_GEN_4_POKEMON == TRUE - [SPECIES_ROTOM_FAN - 1] = 7, -#endif -}; +#include "data/pokemon/species_info.h" #define PP_UP_SHIFTS(val) val, (val) << 2, (val) << 4, (val) << 6 #define PP_UP_SHIFTS_INV(val) (u8)~(val), (u8)~((val) << 2), (u8)~((val) << 4), (u8)~((val) << 6) @@ -3760,7 +1096,7 @@ void CreateBoxMon(struct BoxPokemon *boxMon, u16 species, u8 level, u8 fixedIV, iv = (value & (MAX_IV_MASK << 10)) >> 10; SetBoxMonData(boxMon, MON_DATA_SPDEF_IV, &iv); - if (gSpeciesInfo[species].flags & SPECIES_FLAG_ALL_PERFECT_IVS) + if (gSpeciesInfo[species].allPerfectIVs) { iv = MAX_PER_STAT_IVS; SetBoxMonData(boxMon, MON_DATA_HP_IV, &iv); @@ -3769,9 +1105,11 @@ void CreateBoxMon(struct BoxPokemon *boxMon, u16 species, u8 level, u8 fixedIV, SetBoxMonData(boxMon, MON_DATA_SPEED_IV, &iv); SetBoxMonData(boxMon, MON_DATA_SPATK_IV, &iv); SetBoxMonData(boxMon, MON_DATA_SPDEF_IV, &iv); - } - #if P_LEGENDARY_PERFECT_IVS >= GEN_6 - else if (gSpeciesInfo[species].flags & (SPECIES_FLAG_LEGENDARY | SPECIES_FLAG_MYTHICAL | SPECIES_FLAG_ULTRA_BEAST)) + } + else if (P_LEGENDARY_PERFECT_IVS >= GEN_6 + && (gSpeciesInfo[species].isLegendary + || gSpeciesInfo[species].isMythical + || gSpeciesInfo[species].isUltraBeast)) { iv = MAX_PER_STAT_IVS; // Initialize a list of IV indices. @@ -3812,7 +1150,6 @@ void CreateBoxMon(struct BoxPokemon *boxMon, u16 species, u8 level, u8 fixedIV, } } } - #endif } if (gSpeciesInfo[species].abilities[1]) @@ -4480,15 +1817,16 @@ void GiveBoxMonInitialMoveset(struct BoxPokemon *boxMon) u16 species = GetBoxMonData(boxMon, MON_DATA_SPECIES, NULL); s32 level = GetLevelFromBoxMonExp(boxMon); s32 i; + const struct LevelUpMove *learnset = GetSpeciesLevelUpLearnset(species); - for (i = 0; gLevelUpLearnsets[species][i].move != LEVEL_UP_MOVE_END; i++) + for (i = 0; learnset[i].move != LEVEL_UP_MOVE_END; i++) { - if (gLevelUpLearnsets[species][i].level > level) + if (learnset[i].level > level) break; - if (gLevelUpLearnsets[species][i].level == 0) + if (learnset[i].level == 0) continue; - if (GiveMoveToBoxMon(boxMon, gLevelUpLearnsets[species][i].move) == MON_HAS_MAX_MOVES) - DeleteFirstMoveAndGiveMoveToBoxMon(boxMon, gLevelUpLearnsets[species][i].move); + if (GiveMoveToBoxMon(boxMon, learnset[i].move) == MON_HAS_MAX_MOVES) + DeleteFirstMoveAndGiveMoveToBoxMon(boxMon, learnset[i].move); } } @@ -4505,19 +1843,20 @@ void GiveBoxMonInitialMoveset_Fast(struct BoxPokemon *boxMon) //Credit: Asparagu u16 levelMoveCount = 0; u16 moves[MAX_MON_MOVES] = {0}; u8 addedMoves = 0; + const struct LevelUpMove *learnset = GetSpeciesLevelUpLearnset(species); - for (i = 0; gLevelUpLearnsets[species][i].move != LEVEL_UP_MOVE_END; i++) + for (i = 0; learnset[i].move != LEVEL_UP_MOVE_END; i++) levelMoveCount++; for (i = levelMoveCount; (i >= 0 && addedMoves < MAX_MON_MOVES); i--) { - if (gLevelUpLearnsets[species][i].level > level) + if (learnset[i].level > level) continue; - if (gLevelUpLearnsets[species][i].level == 0) + if (learnset[i].level == 0) continue; - if (moves[addedMoves] != gLevelUpLearnsets[species][i].move) - moves[addedMoves++] = gLevelUpLearnsets[species][i].move; + if (moves[addedMoves] != learnset[i].move) + moves[addedMoves++] = learnset[i].move; } for (i = MAX_MON_MOVES - 1; i >= 0; i--) { @@ -4531,6 +1870,7 @@ u16 MonTryLearningNewMove(struct Pokemon *mon, bool8 firstMove) u32 retVal = MOVE_NONE; u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL); u8 level = GetMonData(mon, MON_DATA_LEVEL, NULL); + const struct LevelUpMove *learnset = GetSpeciesLevelUpLearnset(species); // since you can learn more than one move per level // the game needs to know whether you decided to @@ -4540,17 +1880,17 @@ u16 MonTryLearningNewMove(struct Pokemon *mon, bool8 firstMove) { sLearningMoveTableID = 0; - while (gLevelUpLearnsets[species][sLearningMoveTableID].level != level) + while (learnset[sLearningMoveTableID].level != level) { sLearningMoveTableID++; - if (gLevelUpLearnsets[species][sLearningMoveTableID].move == LEVEL_UP_MOVE_END) + if (learnset[sLearningMoveTableID].move == LEVEL_UP_MOVE_END) return MOVE_NONE; } } - if (gLevelUpLearnsets[species][sLearningMoveTableID].level == level) + if (learnset[sLearningMoveTableID].level == level) { - gMoveToLearn = gLevelUpLearnsets[species][sLearningMoveTableID].move; + gMoveToLearn = learnset[sLearningMoveTableID].move; sLearningMoveTableID++; retVal = GiveMoveToMon(mon, gMoveToLearn); } @@ -4732,19 +2072,16 @@ void SetMultiuseSpriteTemplateToPokemon(u16 speciesTag, u8 battlerPosition) gMultiuseSpriteTemplate.paletteTag = speciesTag; if (battlerPosition == B_POSITION_PLAYER_LEFT || battlerPosition == B_POSITION_PLAYER_RIGHT) gMultiuseSpriteTemplate.anims = gAnims_MonPic; - else if (speciesTag > SPECIES_SHINY_TAG) - { - if (gMonFrontAnimsPtrTable[speciesTag - SPECIES_SHINY_TAG] != NULL) - gMultiuseSpriteTemplate.anims = gMonFrontAnimsPtrTable[speciesTag - SPECIES_SHINY_TAG]; - else - gMultiuseSpriteTemplate.anims = gMonFrontAnimsPtrTable[SPECIES_NONE]; - } - else - { - if (gMonFrontAnimsPtrTable[speciesTag] != NULL) - gMultiuseSpriteTemplate.anims = gMonFrontAnimsPtrTable[speciesTag]; + else + { + if (speciesTag > SPECIES_SHINY_TAG) + speciesTag = speciesTag - SPECIES_SHINY_TAG; + + speciesTag = SanitizeSpeciesId(speciesTag); + if (gSpeciesInfo[speciesTag].frontAnimFrames != NULL) + gMultiuseSpriteTemplate.anims = gSpeciesInfo[speciesTag].frontAnimFrames; else - gMultiuseSpriteTemplate.anims = gMonFrontAnimsPtrTable[SPECIES_NONE]; + gMultiuseSpriteTemplate.anims = gSpeciesInfo[SPECIES_NONE].frontAnimFrames; } } @@ -5940,8 +3277,77 @@ bool8 IsPokemonStorageFull(void) const u8 *GetSpeciesName(u16 species) { - return gSpeciesNames[SanitizeSpeciesId(species)]; - } + species = SanitizeSpeciesId(species); + if (gSpeciesInfo[species].speciesName[0] == 0) + return gSpeciesInfo[SPECIES_NONE].speciesName; + return gSpeciesInfo[species].speciesName; +} + +const u8 *GetSpeciesCategory(u16 species) +{ + species = SanitizeSpeciesId(species); + if (gSpeciesInfo[species].categoryName[0] == 0) + return gSpeciesInfo[SPECIES_NONE].categoryName; + return gSpeciesInfo[species].categoryName; +} + +const u8 *GetSpeciesPokedexDescription(u16 species) +{ + species = SanitizeSpeciesId(species); + if (gSpeciesInfo[species].description == NULL) + return gSpeciesInfo[SPECIES_NONE].description; + return gSpeciesInfo[species].description; +} + +u16 GetSpeciesHeight(u16 species) +{ + return gSpeciesInfo[SanitizeSpeciesId(species)].height; +} + +u16 GetSpeciesWeight(u16 species) +{ + return gSpeciesInfo[SanitizeSpeciesId(species)].weight; +} + +const struct LevelUpMove *GetSpeciesLevelUpLearnset(u16 species) +{ + const struct LevelUpMove *learnset = gSpeciesInfo[SanitizeSpeciesId(species)].levelUpLearnset; + if (learnset == NULL) + return gSpeciesInfo[SPECIES_NONE].levelUpLearnset; + return learnset; +} + +const u16 *GetSpeciesTeachableLearnset(u16 species) +{ + const u16 *learnset = gSpeciesInfo[SanitizeSpeciesId(species)].teachableLearnset; + if (learnset == NULL) + return gSpeciesInfo[SPECIES_NONE].teachableLearnset; + return learnset; +} + +const struct Evolution *GetSpeciesEvolutions(u16 species) +{ + const struct Evolution *evolutions = gSpeciesInfo[SanitizeSpeciesId(species)].evolutions; + if (evolutions == NULL) + return gSpeciesInfo[SPECIES_NONE].evolutions; + return evolutions; +} + +const u16 *GetSpeciesFormTable(u16 species) +{ + const u16 *formTable = gSpeciesInfo[SanitizeSpeciesId(species)].formSpeciesIdTable; + if (formTable == NULL) + return gSpeciesInfo[SPECIES_NONE].formSpeciesIdTable; + return formTable; +} + +const struct FormChange *GetSpeciesFormChanges(u16 species) +{ + const struct FormChange *evolutions = gSpeciesInfo[SanitizeSpeciesId(species)].formChangeTable; + if (evolutions == NULL) + return gSpeciesInfo[SPECIES_NONE].formChangeTable; + return evolutions; +} u8 CalculatePPWithBonus(u16 move, u8 ppBonuses, u8 moveIndex) { @@ -6716,11 +4122,11 @@ u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 mode, u16 evolutionItem, s u16 friendship; u8 beauty = GetMonData(mon, MON_DATA_BEAUTY, 0); u16 upperPersonality = personality >> 16; - u8 holdEffect; - u16 currentMap; - u16 partnerSpecies; - u16 partnerHeldItem; - u8 partnerHoldEffect; + u32 holdEffect, currentMap, partnerSpecies, partnerHeldItem, partnerHoldEffect; + const struct Evolution *evolutions = GetSpeciesEvolutions(species); + + if (evolutions == NULL) + return SPECIES_NONE; if (tradePartner != NULL) { @@ -6767,112 +4173,124 @@ u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 mode, u16 evolutionItem, s level = GetMonData(mon, MON_DATA_LEVEL, 0); friendship = GetMonData(mon, MON_DATA_FRIENDSHIP, 0); - for (i = 0; i < EVOS_PER_MON; i++) + for (i = 0; evolutions[i].method != EVOLUTIONS_END; i++) { - switch (gEvolutionTable[species][i].method) + if (SanitizeSpeciesId(evolutions[i].targetSpecies) == SPECIES_NONE) + continue; + + switch (evolutions[i].method) { case EVO_FRIENDSHIP: if (friendship >= FRIENDSHIP_EVO_THRESHOLD) - targetSpecies = gEvolutionTable[species][i].targetSpecies; + targetSpecies = evolutions[i].targetSpecies; break; case EVO_FRIENDSHIP_DAY: - UpdateTimeOfDay(); - if (gTimeOfDay != TIME_OF_DAY_NIGHT && friendship >= FRIENDSHIP_EVO_THRESHOLD) - targetSpecies = gEvolutionTable[species][i].targetSpecies; + if (GetTimeOfDay() != TIME_NIGHT && friendship >= FRIENDSHIP_EVO_THRESHOLD) + targetSpecies = evolutions[i].targetSpecies; break; case EVO_LEVEL_DAY: - UpdateTimeOfDay(); - if (gTimeOfDay != TIME_OF_DAY_NIGHT && gEvolutionTable[species][i].param <= level) - targetSpecies = gEvolutionTable[species][i].targetSpecies; + if (GetTimeOfDay() != TIME_NIGHT && evolutions[i].param <= level) + targetSpecies = evolutions[i].targetSpecies; break; case EVO_FRIENDSHIP_NIGHT: - UpdateTimeOfDay(); - if (gTimeOfDay == TIME_OF_DAY_NIGHT && friendship >= FRIENDSHIP_EVO_THRESHOLD) - targetSpecies = gEvolutionTable[species][i].targetSpecies; + if (GetTimeOfDay() == TIME_NIGHT && friendship >= FRIENDSHIP_EVO_THRESHOLD) + targetSpecies = evolutions[i].targetSpecies; break; case EVO_LEVEL_NIGHT: - UpdateTimeOfDay(); - if (gTimeOfDay == TIME_OF_DAY_NIGHT && gEvolutionTable[species][i].param <= level) - targetSpecies = gEvolutionTable[species][i].targetSpecies; + if (GetTimeOfDay() == TIME_NIGHT && evolutions[i].param <= level) + targetSpecies = evolutions[i].targetSpecies; break; case EVO_ITEM_HOLD_NIGHT: - UpdateTimeOfDay(); - if (gTimeOfDay == TIME_OF_DAY_NIGHT && heldItem == gEvolutionTable[species][i].param) + if (GetTimeOfDay() == TIME_NIGHT && heldItem == evolutions[i].param) { heldItem = ITEM_NONE; SetMonData(mon, MON_DATA_HELD_ITEM, &heldItem); - targetSpecies = gEvolutionTable[species][i].targetSpecies; + targetSpecies = evolutions[i].targetSpecies; } break; case EVO_ITEM_HOLD_DAY: - UpdateTimeOfDay(); - if (gTimeOfDay != TIME_OF_DAY_NIGHT && heldItem == gEvolutionTable[species][i].param) + if (GetTimeOfDay() != TIME_NIGHT && heldItem == evolutions[i].param) { heldItem = ITEM_NONE; SetMonData(mon, MON_DATA_HELD_ITEM, &heldItem); - targetSpecies = gEvolutionTable[species][i].targetSpecies; + targetSpecies = evolutions[i].targetSpecies; } break; case EVO_LEVEL_DUSK: - UpdateTimeOfDay(); - if (gTimeOfDay == TIME_OF_DAY_TWILIGHT && gEvolutionTable[species][i].param <= level) - targetSpecies = gEvolutionTable[species][i].targetSpecies; + if (GetTimeOfDay() == TIME_EVENING && evolutions[i].param <= level) + targetSpecies = evolutions[i].targetSpecies; break; case EVO_LEVEL: - if (gEvolutionTable[species][i].param <= level) - targetSpecies = gEvolutionTable[species][i].targetSpecies; + if (evolutions[i].param <= level) + targetSpecies = evolutions[i].targetSpecies; break; case EVO_LEVEL_FEMALE: - if (gEvolutionTable[species][i].param <= level && GetMonGender(mon) == MON_FEMALE) - targetSpecies = gEvolutionTable[species][i].targetSpecies; + if (evolutions[i].param <= level && GetMonGender(mon) == MON_FEMALE) + targetSpecies = evolutions[i].targetSpecies; break; case EVO_LEVEL_MALE: - if (gEvolutionTable[species][i].param <= level && GetMonGender(mon) == MON_MALE) - targetSpecies = gEvolutionTable[species][i].targetSpecies; + if (evolutions[i].param <= level && GetMonGender(mon) == MON_MALE) + targetSpecies = evolutions[i].targetSpecies; break; case EVO_LEVEL_ATK_GT_DEF: - if (gEvolutionTable[species][i].param <= level) + if (evolutions[i].param <= level) if (GetMonData(mon, MON_DATA_ATK, 0) > GetMonData(mon, MON_DATA_DEF, 0)) - targetSpecies = gEvolutionTable[species][i].targetSpecies; + targetSpecies = evolutions[i].targetSpecies; break; case EVO_LEVEL_ATK_EQ_DEF: - if (gEvolutionTable[species][i].param <= level) + if (evolutions[i].param <= level) if (GetMonData(mon, MON_DATA_ATK, 0) == GetMonData(mon, MON_DATA_DEF, 0)) - targetSpecies = gEvolutionTable[species][i].targetSpecies; + targetSpecies = evolutions[i].targetSpecies; break; case EVO_LEVEL_ATK_LT_DEF: - if (gEvolutionTable[species][i].param <= level) + if (evolutions[i].param <= level) if (GetMonData(mon, MON_DATA_ATK, 0) < GetMonData(mon, MON_DATA_DEF, 0)) - targetSpecies = gEvolutionTable[species][i].targetSpecies; + targetSpecies = evolutions[i].targetSpecies; break; case EVO_LEVEL_SILCOON: - if (gEvolutionTable[species][i].param <= level && (upperPersonality % 10) <= 4) - targetSpecies = gEvolutionTable[species][i].targetSpecies; + if (evolutions[i].param <= level && (upperPersonality % 10) <= 4) + targetSpecies = evolutions[i].targetSpecies; break; case EVO_LEVEL_CASCOON: - if (gEvolutionTable[species][i].param <= level && (upperPersonality % 10) > 4) - targetSpecies = gEvolutionTable[species][i].targetSpecies; + if (evolutions[i].param <= level && (upperPersonality % 10) > 4) + targetSpecies = evolutions[i].targetSpecies; break; case EVO_LEVEL_NINJASK: - if (gEvolutionTable[species][i].param <= level) - targetSpecies = gEvolutionTable[species][i].targetSpecies; + if (evolutions[i].param <= level) + targetSpecies = evolutions[i].targetSpecies; + break; + case EVO_LEVEL_FAMILY_OF_FOUR: + if (evolutions[i].param <= level && (personality % 100) != 0) + targetSpecies = evolutions[i].targetSpecies; + break; + case EVO_LEVEL_FAMILY_OF_THREE: + if (evolutions[i].param <= level && (personality % 100) == 0) + targetSpecies = evolutions[i].targetSpecies; break; case EVO_BEAUTY: - if (gEvolutionTable[species][i].param <= beauty) - targetSpecies = gEvolutionTable[species][i].targetSpecies; + if (evolutions[i].param <= beauty) + targetSpecies = evolutions[i].targetSpecies; break; case EVO_MOVE: - if (MonKnowsMove(mon, gEvolutionTable[species][i].param)) - targetSpecies = gEvolutionTable[species][i].targetSpecies; + if (MonKnowsMove(mon, evolutions[i].param)) + targetSpecies = evolutions[i].targetSpecies; + break; + case EVO_MOVE_TWO_SEGMENT: + if (MonKnowsMove(mon, evolutions[i].param) && (personality % 100) != 0) + targetSpecies = evolutions[i].targetSpecies; + break; + case EVO_MOVE_THREE_SEGMENT: + if (MonKnowsMove(mon, evolutions[i].param) && (personality % 100) == 0) + targetSpecies = evolutions[i].targetSpecies; break; case EVO_FRIENDSHIP_MOVE_TYPE: if (friendship >= FRIENDSHIP_EVO_THRESHOLD) { for (j = 0; j < MAX_MON_MOVES; j++) { - if (gBattleMoves[GetMonData(mon, MON_DATA_MOVE1 + j, NULL)].type == gEvolutionTable[species][i].param) + if (gBattleMoves[GetMonData(mon, MON_DATA_MOVE1 + j, NULL)].type == evolutions[i].param) { - targetSpecies = gEvolutionTable[species][i].targetSpecies; + targetSpecies = evolutions[i].targetSpecies; break; } } @@ -6881,15 +4299,15 @@ u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 mode, u16 evolutionItem, s case EVO_SPECIFIC_MON_IN_PARTY: for (j = 0; j < PARTY_SIZE; j++) { - if (GetMonData(&gPlayerParty[j], MON_DATA_SPECIES, NULL) == gEvolutionTable[species][i].param) + if (GetMonData(&gPlayerParty[j], MON_DATA_SPECIES, NULL) == evolutions[i].param) { - targetSpecies = gEvolutionTable[species][i].targetSpecies; + targetSpecies = evolutions[i].targetSpecies; break; } } break; case EVO_LEVEL_DARK_TYPE_MON_IN_PARTY: - if (gEvolutionTable[species][i].param <= level) + if (evolutions[i].param <= level) { for (j = 0; j < PARTY_SIZE; j++) { @@ -6897,7 +4315,7 @@ u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 mode, u16 evolutionItem, s if (gSpeciesInfo[currSpecies].types[0] == TYPE_DARK || gSpeciesInfo[currSpecies].types[1] == TYPE_DARK) { - targetSpecies = gEvolutionTable[species][i].targetSpecies; + targetSpecies = evolutions[i].targetSpecies; break; } } @@ -6905,27 +4323,27 @@ u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 mode, u16 evolutionItem, s break; case EVO_LEVEL_RAIN: j = GetCurrentWeather(); - if (gEvolutionTable[species][i].param <= level + if (evolutions[i].param <= level && (j == WEATHER_RAIN || j == WEATHER_RAIN_THUNDERSTORM || j == WEATHER_DOWNPOUR)) - targetSpecies = gEvolutionTable[species][i].targetSpecies; + targetSpecies = evolutions[i].targetSpecies; break; case EVO_LEVEL_FOG: j = GetCurrentWeather(); - if (gEvolutionTable[species][i].param <= level + if (evolutions[i].param <= level && (j == WEATHER_FOG_HORIZONTAL || j == WEATHER_FOG_DIAGONAL)) - targetSpecies = gEvolutionTable[species][i].targetSpecies; + targetSpecies = evolutions[i].targetSpecies; break; case EVO_MAPSEC: - if (gMapHeader.regionMapSectionId == gEvolutionTable[species][i].param) - targetSpecies = gEvolutionTable[species][i].targetSpecies; + if (gMapHeader.regionMapSectionId == evolutions[i].param) + targetSpecies = evolutions[i].targetSpecies; break; case EVO_SPECIFIC_MAP: currentMap = ((gSaveBlock1Ptr->location.mapGroup) << 8 | gSaveBlock1Ptr->location.mapNum); - if (currentMap == gEvolutionTable[species][i].param) - targetSpecies = gEvolutionTable[species][i].targetSpecies; + if (currentMap == evolutions[i].param) + targetSpecies = evolutions[i].targetSpecies; break; case EVO_LEVEL_NATURE_AMPED: - if (gEvolutionTable[species][i].param <= level) + if (evolutions[i].param <= level) { u8 nature = GetNature(mon); switch (nature) @@ -6943,13 +4361,13 @@ u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 mode, u16 evolutionItem, s case NATURE_RASH: case NATURE_SASSY: case NATURE_QUIRKY: - targetSpecies = gEvolutionTable[species][i].targetSpecies; + targetSpecies = evolutions[i].targetSpecies; break; } } break; case EVO_LEVEL_NATURE_LOW_KEY: - if (gEvolutionTable[species][i].param <= level) + if (evolutions[i].param <= level) { u8 nature = GetNature(mon); switch (nature) @@ -6966,111 +4384,121 @@ u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 mode, u16 evolutionItem, s case NATURE_CALM: case NATURE_GENTLE: case NATURE_CAREFUL: - targetSpecies = gEvolutionTable[species][i].targetSpecies; + targetSpecies = evolutions[i].targetSpecies; break; } } break; case EVO_ITEM_HOLD: - if (heldItem == gEvolutionTable[species][i].param) + if (heldItem == evolutions[i].param) { heldItem = 0; SetMonData(mon, MON_DATA_HELD_ITEM, &heldItem); - targetSpecies = gEvolutionTable[species][i].targetSpecies; + targetSpecies = evolutions[i].targetSpecies; } break; } } break; case EVO_MODE_TRADE: - for (i = 0; i < EVOS_PER_MON; i++) + for (i = 0; evolutions[i].method != EVOLUTIONS_END; i++) { - switch (gEvolutionTable[species][i].method) + if (SanitizeSpeciesId(evolutions[i].targetSpecies) == SPECIES_NONE) + continue; + + switch (evolutions[i].method) { case EVO_TRADE: - targetSpecies = gEvolutionTable[species][i].targetSpecies; + targetSpecies = evolutions[i].targetSpecies; break; case EVO_TRADE_ITEM: - if (gEvolutionTable[species][i].param == heldItem) + if (evolutions[i].param == heldItem) { heldItem = ITEM_NONE; SetMonData(mon, MON_DATA_HELD_ITEM, &heldItem); - targetSpecies = gEvolutionTable[species][i].targetSpecies; + targetSpecies = evolutions[i].targetSpecies; } break; case EVO_TRADE_SPECIFIC_MON: - if (gEvolutionTable[species][i].param == partnerSpecies && partnerHoldEffect != HOLD_EFFECT_PREVENT_EVOLVE) - targetSpecies = gEvolutionTable[species][i].targetSpecies; + if (evolutions[i].param == partnerSpecies && partnerHoldEffect != HOLD_EFFECT_PREVENT_EVOLVE) + targetSpecies = evolutions[i].targetSpecies; break; } } break; case EVO_MODE_ITEM_USE: case EVO_MODE_ITEM_CHECK: - for (i = 0; i < EVOS_PER_MON; i++) + for (i = 0; evolutions[i].method != EVOLUTIONS_END; i++) { - switch (gEvolutionTable[species][i].method) + if (SanitizeSpeciesId(evolutions[i].targetSpecies) == SPECIES_NONE) + continue; + + switch (evolutions[i].method) { case EVO_ITEM: - if (gEvolutionTable[species][i].param == evolutionItem) - targetSpecies = gEvolutionTable[species][i].targetSpecies; + if (evolutions[i].param == evolutionItem) + targetSpecies = evolutions[i].targetSpecies; break; case EVO_ITEM_FEMALE: - if (GetMonGender(mon) == MON_FEMALE && gEvolutionTable[species][i].param == evolutionItem) - targetSpecies = gEvolutionTable[species][i].targetSpecies; + if (GetMonGender(mon) == MON_FEMALE && evolutions[i].param == evolutionItem) + targetSpecies = evolutions[i].targetSpecies; break; case EVO_ITEM_MALE: - if (GetMonGender(mon) == MON_MALE && gEvolutionTable[species][i].param == evolutionItem) - targetSpecies = gEvolutionTable[species][i].targetSpecies; + if (GetMonGender(mon) == MON_MALE && evolutions[i].param == evolutionItem) + targetSpecies = evolutions[i].targetSpecies; break; case EVO_ITEM_NIGHT: - UpdateTimeOfDay(); - if (gTimeOfDay == TIME_OF_DAY_NIGHT && gEvolutionTable[species][i].param == evolutionItem) - targetSpecies = gEvolutionTable[species][i].targetSpecies; + if (GetTimeOfDay() == TIME_NIGHT && evolutions[i].param == evolutionItem) + targetSpecies = evolutions[i].targetSpecies; break; case EVO_ITEM_DAY: - UpdateTimeOfDay(); - if (gTimeOfDay != TIME_OF_DAY_NIGHT && gEvolutionTable[species][i].param == evolutionItem) - targetSpecies = gEvolutionTable[species][i].targetSpecies; + if (GetTimeOfDay() != TIME_NIGHT && evolutions[i].param == evolutionItem) + targetSpecies = evolutions[i].targetSpecies; break; } } break; // Battle evolution without leveling; party slot is being passed into the evolutionItem arg. case EVO_MODE_BATTLE_SPECIAL: - for (i = 0; i < EVOS_PER_MON; i++) + for (i = 0; evolutions[i].method != EVOLUTIONS_END; i++) { - switch (gEvolutionTable[species][i].method) + if (SanitizeSpeciesId(evolutions[i].targetSpecies) == SPECIES_NONE) + continue; + + switch (evolutions[i].method) { case EVO_CRITICAL_HITS: - if (gPartyCriticalHits[evolutionItem] >= gEvolutionTable[species][i].param) - targetSpecies = gEvolutionTable[species][i].targetSpecies; + if (gPartyCriticalHits[evolutionItem] >= evolutions[i].param) + targetSpecies = evolutions[i].targetSpecies; break; } } break; // Overworld evolution without leveling; evolution method is being passed into the evolutionItem arg. case EVO_MODE_OVERWORLD_SPECIAL: - for (i = 0; i < EVOS_PER_MON; i++) + for (i = 0; evolutions[i].method != EVOLUTIONS_END; i++) { - switch (gEvolutionTable[species][i].method) + if (SanitizeSpeciesId(evolutions[i].targetSpecies) == SPECIES_NONE) + continue; + + switch (evolutions[i].method) { case EVO_SCRIPT_TRIGGER_DMG: { u16 currentHp = GetMonData(mon, MON_DATA_HP, NULL); if (evolutionItem == EVO_SCRIPT_TRIGGER_DMG && currentHp != 0 - && (GetMonData(mon, MON_DATA_MAX_HP, NULL) - currentHp >= gEvolutionTable[species][i].param)) - targetSpecies = gEvolutionTable[species][i].targetSpecies; + && (GetMonData(mon, MON_DATA_MAX_HP, NULL) - currentHp >= evolutions[i].param)) + targetSpecies = evolutions[i].targetSpecies; break; } case EVO_DARK_SCROLL: if (evolutionItem == EVO_DARK_SCROLL) - targetSpecies = gEvolutionTable[species][i].targetSpecies; + targetSpecies = evolutions[i].targetSpecies; break; case EVO_WATER_SCROLL: if (evolutionItem == EVO_WATER_SCROLL) - targetSpecies = gEvolutionTable[species][i].targetSpecies; + targetSpecies = evolutions[i].targetSpecies; break; } } @@ -7085,13 +4513,20 @@ bool8 IsMonPastEvolutionLevel(struct Pokemon *mon) int i; u16 species = GetMonData(mon, MON_DATA_SPECIES, 0); u8 level = GetMonData(mon, MON_DATA_LEVEL, 0); + const struct Evolution *evolutions = GetSpeciesEvolutions(species); - for (i = 0; i < EVOS_PER_MON; i++) + if (evolutions == NULL) + return FALSE; + + for (i = 0; evolutions[i].method != EVOLUTIONS_END; i++) { - switch (gEvolutionTable[species][i].method) + if (SanitizeSpeciesId(evolutions[i].targetSpecies) == SPECIES_NONE) + continue; + + switch (evolutions[i].method) { case EVO_LEVEL: - if (gEvolutionTable[species][i].param <= level) + if (evolutions[i].param <= level) return TRUE; break; } @@ -7125,15 +4560,15 @@ u16 NationalPokedexNumToSpecies(u16 nationalNum) if (!nationalNum) return 0; - species = 0; + species = 1; - while (species < (NUM_SPECIES - 1) && sSpeciesToNationalPokedexNum[species] != nationalNum) + while (species < (NUM_SPECIES) && gSpeciesInfo[species].natDexNum != nationalNum) species++; - if (species == NUM_SPECIES - 1) - return 0; + if (species == NUM_SPECIES) + return NATIONAL_DEX_NONE; - return species + 1; + return species; } u16 NationalToHoennOrder(u16 nationalNum) @@ -7157,9 +4592,9 @@ u16 NationalToHoennOrder(u16 nationalNum) u16 SpeciesToNationalPokedexNum(u16 species) { if (!species) - return 0; + return NATIONAL_DEX_NONE; - return sSpeciesToNationalPokedexNum[species - 1]; + return gSpeciesInfo[species].natDexNum; } u16 SpeciesToHoennPokedexNum(u16 species) @@ -7768,14 +5203,15 @@ u8 CanLearnTeachableMove(u16 species, u16 move) else { u8 i; - for (i = 0; gTeachableLearnsets[species][i] != MOVE_UNAVAILABLE; i++) -{ - if (gTeachableLearnsets[species][i] == move) + const u16 *teachableLearnset = GetSpeciesTeachableLearnset(species); + for (i = 0; teachableLearnset[i] != MOVE_UNAVAILABLE; i++) + { + if (teachableLearnset[i] == move) return TRUE; - } - return FALSE; - } } + return FALSE; + } +} u8 GetMoveRelearnerMoves(struct Pokemon *mon, u16 *moves) { @@ -7783,6 +5219,7 @@ u8 GetMoveRelearnerMoves(struct Pokemon *mon, u16 *moves) u8 numMoves = 0; u16 species = GetMonData(mon, MON_DATA_SPECIES, 0); u8 level = GetMonData(mon, MON_DATA_LEVEL, 0); + const struct LevelUpMove *learnset = GetSpeciesLevelUpLearnset(species); int i, j, k; for (i = 0; i < MAX_MON_MOVES; i++) @@ -7792,23 +5229,23 @@ u8 GetMoveRelearnerMoves(struct Pokemon *mon, u16 *moves) { u16 moveLevel; - if (gLevelUpLearnsets[species][i].move == LEVEL_UP_MOVE_END) + if (learnset[i].move == LEVEL_UP_MOVE_END) break; - moveLevel = gLevelUpLearnsets[species][i].level; + moveLevel = learnset[i].level; if (moveLevel <= level) { - for (j = 0; j < MAX_MON_MOVES && learnedMoves[j] != gLevelUpLearnsets[species][i].move; j++) + for (j = 0; j < MAX_MON_MOVES && learnedMoves[j] != learnset[i].move; j++) ; if (j == MAX_MON_MOVES) { - for (k = 0; k < numMoves && moves[k] != gLevelUpLearnsets[species][i].move; k++) + for (k = 0; k < numMoves && moves[k] != learnset[i].move; k++) ; if (k == numMoves) - moves[numMoves++] = gLevelUpLearnsets[species][i].move; + moves[numMoves++] = learnset[i].move; } } } @@ -7820,9 +5257,10 @@ u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves) { u8 numMoves = 0; int i; + const struct LevelUpMove *learnset = GetSpeciesLevelUpLearnset(species); - for (i = 0; i < MAX_LEVEL_UP_MOVES && gLevelUpLearnsets[species][i].move != LEVEL_UP_MOVE_END; i++) - moves[numMoves++] = gLevelUpLearnsets[species][i].move; + for (i = 0; i < MAX_LEVEL_UP_MOVES && learnset[i].move != LEVEL_UP_MOVE_END; i++) + moves[numMoves++] = learnset[i].move; return numMoves; } @@ -7834,6 +5272,7 @@ u8 GetNumberOfRelearnableMoves(struct Pokemon *mon) u8 numMoves = 0; u16 species = GetMonData(mon, MON_DATA_SPECIES_OR_EGG, 0); u8 level = GetMonData(mon, MON_DATA_LEVEL, 0); + const struct LevelUpMove *learnset = GetSpeciesLevelUpLearnset(species); int i, j, k; if (species == SPECIES_EGG) @@ -7846,23 +5285,23 @@ u8 GetNumberOfRelearnableMoves(struct Pokemon *mon) { u16 moveLevel; - if (gLevelUpLearnsets[species][i].move == LEVEL_UP_MOVE_END) + if (learnset[i].move == LEVEL_UP_MOVE_END) break; - moveLevel = gLevelUpLearnsets[species][i].level; + moveLevel = learnset[i].level; if (moveLevel <= level) { - for (j = 0; j < MAX_MON_MOVES && learnedMoves[j] != gLevelUpLearnsets[species][i].move; j++) + for (j = 0; j < MAX_MON_MOVES && learnedMoves[j] != learnset[i].move; j++) ; if (j == MAX_MON_MOVES) { - for (k = 0; k < numMoves && moves[k] != gLevelUpLearnsets[species][i].move; k++) + for (k = 0; k < numMoves && moves[k] != learnset[i].move; k++) ; if (k == numMoves) - moves[numMoves++] = gLevelUpLearnsets[species][i].move; + moves[numMoves++] = learnset[i].move; } } } @@ -8020,61 +5459,27 @@ const u32 *GetMonSpritePalFromSpeciesAndPersonality(u16 species, u32 otId, u32 p { u32 shinyValue; - if (species > NUM_SPECIES) - return gMonPaletteTable[SPECIES_NONE].data; + species = SanitizeSpeciesId(species); shinyValue = GET_SHINY_VALUE(otId, personality); if (shinyValue < SHINY_ODDS) { - if (gMonShinyPaletteTableFemale[species].data != NULL && IsPersonalityFemale(species, personality)) - return gMonShinyPaletteTableFemale[species].data; - else if (gMonShinyPaletteTable[species].data != NULL) - return gMonShinyPaletteTable[species].data; - else - return gMonShinyPaletteTable[SPECIES_NONE].data; - } - else - { - if (gMonPaletteTableFemale[species].data != NULL && IsPersonalityFemale(species, personality)) - return gMonPaletteTableFemale[species].data; - else if (gMonPaletteTable[species].data != NULL) - return gMonPaletteTable[species].data; + if (gSpeciesInfo[species].shinyPaletteFemale != NULL && IsPersonalityFemale(species, personality)) + return gSpeciesInfo[species].shinyPaletteFemale; + else if (gSpeciesInfo[species].shinyPalette != NULL) + return gSpeciesInfo[species].shinyPalette; else - return gMonPaletteTable[SPECIES_NONE].data; -} -} - -const struct CompressedSpritePalette *GetMonSpritePalStruct(struct Pokemon *mon) -{ - u16 species = GetMonData(mon, MON_DATA_SPECIES_OR_EGG, 0); - u32 otId = GetMonData(mon, MON_DATA_OT_ID, 0); - u32 personality = GetMonData(mon, MON_DATA_PERSONALITY, 0); - return GetMonSpritePalStructFromOtIdPersonality(species, otId, personality); -} - -const struct CompressedSpritePalette *GetMonSpritePalStructFromOtIdPersonality(u16 species, u32 otId , u32 personality) -{ - u32 shinyValue; - - shinyValue = GET_SHINY_VALUE(otId, personality); - if (shinyValue < SHINY_ODDS) - { - if (gMonShinyPaletteTableFemale[species].data != NULL && IsPersonalityFemale(species, personality)) - return &gMonShinyPaletteTableFemale[species]; - else if (gMonShinyPaletteTable[species].data != NULL) - return &gMonShinyPaletteTable[species]; - else - return &gMonShinyPaletteTable[SPECIES_NONE]; + return gSpeciesInfo[SPECIES_NONE].shinyPalette; } else { - if (gMonPaletteTableFemale[species].data != NULL && IsPersonalityFemale(species, personality)) - return &gMonPaletteTableFemale[species]; - else if (gMonPaletteTable[species].data != NULL) - return &gMonPaletteTable[species]; + if (gSpeciesInfo[species].paletteFemale != NULL && IsPersonalityFemale(species, personality)) + return gSpeciesInfo[species].paletteFemale; + else if (gSpeciesInfo[species].palette != NULL) + return gSpeciesInfo[species].palette; else - return &gMonPaletteTable[SPECIES_NONE]; -} + return gSpeciesInfo[SPECIES_NONE].palette; + } } bool8 IsMoveHM(u16 move) @@ -8181,6 +5586,17 @@ static s32 GetWildMonTableIdInAlteringCave(u16 species) return 0; } +static inline bool32 CanFirstMonBoostHeldItemRarity(void) +{ + if (GetMonData(&gPlayerParty[0], MON_DATA_SANITY_IS_EGG)) + return FALSE; + else if ((OW_COMPOUND_EYES < GEN_9) && GetMonAbility(&gPlayerParty[0]) == ABILITY_COMPOUND_EYES) + return TRUE; + else if ((OW_SUPER_LUCK == GEN_8) && GetMonAbility(&gPlayerParty[0]) == ABILITY_SUPER_LUCK) + return TRUE; + return FALSE; +} + void SetWildMonHeldItem(void) { if (!(gBattleTypeFlags & (BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_TRAINER | BATTLE_TYPE_PYRAMID | BATTLE_TYPE_PIKE)) @@ -8188,23 +5604,16 @@ void SetWildMonHeldItem(void) { u16 rnd; u16 species; - u16 chanceNoItem = 45; - u16 chanceNotRare = 95; u16 count = (WILD_DOUBLE_BATTLE) ? 2 : 1; u16 i; - - if (!GetMonData(&gPlayerParty[0], MON_DATA_SANITY_IS_EGG, 0) - && (GetMonAbility(&gPlayerParty[0]) == ABILITY_COMPOUND_EYES - || GetMonAbility(&gPlayerParty[0]) == ABILITY_SUPER_LUCK)) - { - chanceNoItem = 20; - chanceNotRare = 80; - } + bool32 itemHeldBoost = CanFirstMonBoostHeldItemRarity(); + u16 chanceNoItem = itemHeldBoost ? 20 : 45; + u16 chanceNotRare = itemHeldBoost ? 80 : 95; for (i = 0; i < count; i++) { if (GetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, NULL) != ITEM_NONE) - continue; // prevent ovewriting previously set item + continue; // prevent overwriting previously set item rnd = Random() % 100; species = GetMonData(&gEnemyParty[i], MON_DATA_SPECIES, 0); @@ -8358,18 +5767,18 @@ void DoMonFrontSpriteAnimation(struct Sprite *sprite, u16 species, bool8 noCry, if (HasTwoFramesAnimation(species)) StartSpriteAnim(sprite, 1); } - if (sMonAnimationDelayTable[species - 1] != 0) + if (gSpeciesInfo[species].frontAnimDelay != 0) { // Animation has delay, start delay task u8 taskId = CreateTask(Task_AnimateAfterDelay, 0); STORE_PTR_IN_TASK(sprite, taskId, 0); - gTasks[taskId].sAnimId = sMonFrontAnimIdsTable[species - 1]; - gTasks[taskId].sAnimDelay = sMonAnimationDelayTable[species - 1]; + gTasks[taskId].sAnimId = gSpeciesInfo[species].frontAnimId; + gTasks[taskId].sAnimDelay = gSpeciesInfo[species].frontAnimDelay; } else { // No delay, start animation - LaunchAnimationTaskForFrontSprite(sprite, sMonFrontAnimIdsTable[species - 1]); + LaunchAnimationTaskForFrontSprite(sprite, gSpeciesInfo[species].frontAnimId); } sprite->callback = SpriteCallbackDummy_2; } @@ -8379,20 +5788,20 @@ void PokemonSummaryDoMonAnimation(struct Sprite *sprite, u16 species, bool8 oneF { if (!oneFrame && HasTwoFramesAnimation(species)) StartSpriteAnim(sprite, 1); - if (sMonAnimationDelayTable[species - 1] != 0) + if (gSpeciesInfo[species].frontAnimDelay != 0) { // Animation has delay, start delay task u8 taskId = CreateTask(Task_PokemonSummaryAnimateAfterDelay, 0); STORE_PTR_IN_TASK(sprite, taskId, 0); - gTasks[taskId].sAnimId = sMonFrontAnimIdsTable[species - 1]; - gTasks[taskId].sAnimDelay = sMonAnimationDelayTable[species - 1]; + gTasks[taskId].sAnimId = gSpeciesInfo[species].frontAnimId; + gTasks[taskId].sAnimDelay = gSpeciesInfo[species].frontAnimDelay; SummaryScreen_SetAnimDelayTaskId(taskId); SetSpriteCB_MonAnimDummy(sprite); } else { // No delay, start animation - StartMonSummaryAnimation(sprite, sMonFrontAnimIdsTable[species - 1]); + StartMonSummaryAnimation(sprite, gSpeciesInfo[species].frontAnimId); } } @@ -8706,8 +6115,8 @@ u8 *MonSpritesGfxManager_GetSpritePtr(u8 managerId, u8 spriteNum) u16 GetFormSpeciesId(u16 speciesId, u8 formId) { - if (gFormSpeciesIdTables[speciesId] != NULL) - return gFormSpeciesIdTables[speciesId][formId]; + if (GetSpeciesFormTable(speciesId) != NULL) + return GetSpeciesFormTable(speciesId)[formId]; else return speciesId; } @@ -8716,11 +6125,11 @@ u8 GetFormIdFromFormSpeciesId(u16 formSpeciesId) { u8 targetFormId = 0; - if (gFormSpeciesIdTables[formSpeciesId] != NULL) + if (GetSpeciesFormTable(formSpeciesId) != NULL) { - for (targetFormId = 0; gFormSpeciesIdTables[formSpeciesId][targetFormId] != FORM_SPECIES_END; targetFormId++) + for (targetFormId = 0; GetSpeciesFormTable(formSpeciesId)[targetFormId] != FORM_SPECIES_END; targetFormId++) { - if (formSpeciesId == gFormSpeciesIdTables[formSpeciesId][targetFormId]) + if (formSpeciesId == GetSpeciesFormTable(formSpeciesId)[targetFormId]) break; } } @@ -8738,7 +6147,7 @@ u16 GetFormChangeTargetSpeciesBoxMon(struct BoxPokemon *boxMon, u16 method, u32 u32 i; u16 targetSpecies = SPECIES_NONE; u16 species = GetBoxMonData(boxMon, MON_DATA_SPECIES, NULL); - const struct FormChange *formChanges = gFormChangeTablePointers[species]; + const struct FormChange *formChanges = GetSpeciesFormChanges(species); u16 heldItem; u32 ability; @@ -8764,13 +6173,11 @@ u16 GetFormChangeTargetSpeciesBoxMon(struct BoxPokemon *boxMon, u16 method, u32 switch (formChanges[i].param2) { case DAY: - UpdateTimeOfDay(); - if (gTimeOfDay != TIME_OF_DAY_NIGHT) + if (GetTimeOfDay() != TIME_NIGHT) targetSpecies = formChanges[i].targetSpecies; break; case NIGHT: - UpdateTimeOfDay(); - if (gTimeOfDay == TIME_OF_DAY_NIGHT) + if (GetTimeOfDay() == TIME_NIGHT) targetSpecies = formChanges[i].targetSpecies; break; default: @@ -8779,6 +6186,13 @@ u16 GetFormChangeTargetSpeciesBoxMon(struct BoxPokemon *boxMon, u16 method, u32 } } break; + case FORM_CHANGE_ITEM_USE_MULTICHOICE: + if (arg == formChanges[i].param1) + { + if (formChanges[i].param2 == gSpecialVar_Result) + targetSpecies = formChanges[i].targetSpecies; + } + break; case FORM_CHANGE_MOVE: if (BoxMonKnowsMove(boxMon, formChanges[i].param1) != formChanges[i].param2) targetSpecies = formChanges[i].targetSpecies; @@ -8796,6 +6210,19 @@ u16 GetFormChangeTargetSpeciesBoxMon(struct BoxPokemon *boxMon, u16 method, u32 case FORM_CHANGE_FAINT: targetSpecies = formChanges[i].targetSpecies; break; + case FORM_CHANGE_TIME_OF_DAY: + switch (formChanges[i].param1) + { + case DAY: + if (GetTimeOfDay() != TIME_NIGHT) + targetSpecies = formChanges[i].targetSpecies; + break; + case NIGHT: + if (GetTimeOfDay() == TIME_NIGHT) + targetSpecies = formChanges[i].targetSpecies; + break; + } + break; } } } @@ -8807,7 +6234,7 @@ u16 GetFormChangeTargetSpeciesBoxMon(struct BoxPokemon *boxMon, u16 method, u32 bool32 DoesSpeciesHaveFormChangeMethod(u16 species, u16 method) { u32 i; - const struct FormChange *formChanges = gFormChangeTablePointers[species]; + const struct FormChange *formChanges = GetSpeciesFormChanges(species); if (formChanges != NULL) { @@ -8825,6 +6252,7 @@ u16 MonTryLearningNewMoveEvolution(struct Pokemon *mon, bool8 firstMove) { u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL); u8 level = GetMonData(mon, MON_DATA_LEVEL, NULL); + const struct LevelUpMove *learnset = GetSpeciesLevelUpLearnset(species); // Since you can learn more than one move per level, // the game needs to know whether you decided to @@ -8834,11 +6262,11 @@ u16 MonTryLearningNewMoveEvolution(struct Pokemon *mon, bool8 firstMove) { sLearningMoveTableID = 0; } - while(gLevelUpLearnsets[species][sLearningMoveTableID].move != LEVEL_UP_MOVE_END) + while(learnset[sLearningMoveTableID].move != LEVEL_UP_MOVE_END) { - while (gLevelUpLearnsets[species][sLearningMoveTableID].level == 0 || gLevelUpLearnsets[species][sLearningMoveTableID].level == level) + while (learnset[sLearningMoveTableID].level == 0 || learnset[sLearningMoveTableID].level == level) { - gMoveToLearn = gLevelUpLearnsets[species][sLearningMoveTableID].move; + gMoveToLearn = learnset[sLearningMoveTableID].move; sLearningMoveTableID++; return GiveMoveToMon(mon, gMoveToLearn); } @@ -8898,11 +6326,11 @@ void TrySpecialOverworldEvo(void) bool32 SpeciesHasGenderDifferences(u16 species) { - if (gMonFrontPicTableFemale[species].data != NULL - || gMonPaletteTableFemale[species].data != NULL - || gMonBackPicTableFemale[species].data != NULL - || gMonShinyPaletteTableFemale[species].data != NULL - || gMonIconTableFemale[species] != NULL) + if (gSpeciesInfo[species].frontPicFemale != NULL + || gSpeciesInfo[species].paletteFemale != NULL + || gSpeciesInfo[species].backPicFemale != NULL + || gSpeciesInfo[species].shinyPaletteFemale != NULL + || gSpeciesInfo[species].iconSpriteFemale != NULL) return TRUE; return FALSE; @@ -8950,7 +6378,7 @@ void TryToSetBattleFormChangeMoves(struct Pokemon *mon, u16 method) { int i, j; u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL); - const struct FormChange *formChanges = gFormChangeTablePointers[species]; + const struct FormChange *formChanges = GetSpeciesFormChanges(species); if (formChanges == NULL || (method != FORM_CHANGE_BEGIN_BATTLE && method != FORM_CHANGE_END_BATTLE)) @@ -8997,6 +6425,24 @@ u32 GetMonFriendshipScore(struct Pokemon *pokemon) return FRIENDSHIP_NONE; } +u32 GetMonAffectionHearts(struct Pokemon *pokemon) +{ + u32 friendship = GetMonData(pokemon, MON_DATA_FRIENDSHIP, NULL); + + if (friendship == MAX_FRIENDSHIP) + return AFFECTION_FIVE_HEARTS; + if (friendship >= 220) + return AFFECTION_FOUR_HEARTS; + if (friendship >= 180) + return AFFECTION_THREE_HEARTS; + if (friendship >= 130) + return AFFECTION_TWO_HEARTS; + if (friendship >= 80) + return AFFECTION_ONE_HEART; + + return AFFECTION_NO_HEARTS; +} + void UpdateMonPersonality(struct BoxPokemon *boxMon, u32 personality) { struct PokemonSubstruct0 *old0, *new0; @@ -9025,3 +6471,11 @@ void UpdateMonPersonality(struct BoxPokemon *boxMon, u32 personality) boxMon->checksum = CalculateBoxMonChecksum(boxMon); EncryptBoxMon(boxMon); } + +u16 GetCryIdBySpecies(u16 species) +{ + species = SanitizeSpeciesId(species); + if (gSpeciesInfo[species].cryId >= CRY_COUNT) + return 0; + return gSpeciesInfo[species].cryId; +} diff --git a/src/pokemon_animation.c b/src/pokemon_animation.c index 1070c22aa8bd..95557e431f62 100644 --- a/src/pokemon_animation.c +++ b/src/pokemon_animation.c @@ -25,9 +25,7 @@ uses a BACK_ANIM_* that refers to a set of 3 ANIM functions. Which of the 3 that gets used depends on the Pokémon's nature (see sBackAnimationIds). - The table linking species to a BACK_ANIM is in this file (sSpeciesToBackAnimSet) - while the table linking species to an ANIM for their front animation is in - pokemon.c (sMonFrontAnimIdsTable). + The gSpeciesInfo table links to both BACK_ANIM and ANIM in its frontAnimId and backAnimId fields. These are the functions that will start an animation: - LaunchAnimationTaskForFrontSprite @@ -213,1247 +211,6 @@ static struct PokemonAnimData sAnims[MAX_BATTLERS_COUNT]; static u8 sAnimIdx; static bool32 sIsSummaryAnim; -static const u8 sSpeciesToBackAnimSet[NUM_SPECIES] = -{ - [SPECIES_BULBASAUR] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_IVYSAUR] = BACK_ANIM_H_SLIDE, - [SPECIES_VENUSAUR] = BACK_ANIM_H_SHAKE, - [SPECIES_CHARMANDER] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_CHARMELEON] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_CHARIZARD] = BACK_ANIM_SHAKE_GLOW_RED, - [SPECIES_SQUIRTLE] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_WARTORTLE] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_BLASTOISE] = BACK_ANIM_SHAKE_GLOW_BLUE, - [SPECIES_CATERPIE] = BACK_ANIM_H_SLIDE, - [SPECIES_METAPOD] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_BUTTERFREE] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_WEEDLE] = BACK_ANIM_H_SLIDE, - [SPECIES_KAKUNA] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_BEEDRILL] = BACK_ANIM_H_VIBRATE, - [SPECIES_PIDGEY] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_PIDGEOTTO] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_PIDGEOT] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_RATTATA] = BACK_ANIM_V_SHAKE_H_SLIDE, - [SPECIES_RATICATE] = BACK_ANIM_V_SHAKE_H_SLIDE, - [SPECIES_SPEAROW] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_FEAROW] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_EKANS] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_ARBOK] = BACK_ANIM_V_SHAKE, - [SPECIES_PIKACHU] = BACK_ANIM_SHAKE_FLASH_YELLOW, - [SPECIES_RAICHU] = BACK_ANIM_SHAKE_FLASH_YELLOW, - [SPECIES_SANDSHREW] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_SANDSLASH] = BACK_ANIM_CONCAVE_ARC_LARGE, - [SPECIES_NIDORAN_F] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_NIDORINA] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_NIDOQUEEN] = BACK_ANIM_V_SHAKE, - [SPECIES_NIDORAN_M] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_NIDORINO] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_NIDOKING] = BACK_ANIM_V_SHAKE, - [SPECIES_CLEFAIRY] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_CLEFABLE] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_VULPIX] = BACK_ANIM_CONCAVE_ARC_LARGE, - [SPECIES_NINETALES] = BACK_ANIM_H_VIBRATE, - [SPECIES_JIGGLYPUFF] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_WIGGLYTUFF] = BACK_ANIM_GROW, - [SPECIES_ZUBAT] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_GOLBAT] = BACK_ANIM_V_SHAKE, - [SPECIES_ODDISH] = BACK_ANIM_H_SLIDE, - [SPECIES_GLOOM] = BACK_ANIM_H_SLIDE, - [SPECIES_VILEPLUME] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_PARAS] = BACK_ANIM_H_SLIDE, - [SPECIES_PARASECT] = BACK_ANIM_H_SHAKE, - [SPECIES_VENONAT] = BACK_ANIM_V_SHAKE_H_SLIDE, - [SPECIES_VENOMOTH] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_DIGLETT] = BACK_ANIM_V_SHAKE, - [SPECIES_DUGTRIO] = BACK_ANIM_V_SHAKE, - [SPECIES_MEOWTH] = BACK_ANIM_CONCAVE_ARC_LARGE, - [SPECIES_PERSIAN] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_PSYDUCK] = BACK_ANIM_H_SLIDE, - [SPECIES_GOLDUCK] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_MANKEY] = BACK_ANIM_CONCAVE_ARC_LARGE, - [SPECIES_PRIMEAPE] = BACK_ANIM_CONCAVE_ARC_LARGE, - [SPECIES_GROWLITHE] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_ARCANINE] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_POLIWAG] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_POLIWHIRL] = BACK_ANIM_V_SHAKE, - [SPECIES_POLIWRATH] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_ABRA] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_KADABRA] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_ALAKAZAM] = BACK_ANIM_GROW_STUTTER, - [SPECIES_MACHOP] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_MACHOKE] = BACK_ANIM_V_SHAKE, - [SPECIES_MACHAMP] = BACK_ANIM_V_SHAKE, - [SPECIES_BELLSPROUT] = BACK_ANIM_V_STRETCH, - [SPECIES_WEEPINBELL] = BACK_ANIM_V_STRETCH, - [SPECIES_VICTREEBEL] = BACK_ANIM_V_STRETCH, - [SPECIES_TENTACOOL] = BACK_ANIM_H_SLIDE, - [SPECIES_TENTACRUEL] = BACK_ANIM_H_SLIDE, - [SPECIES_GEODUDE] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_GRAVELER] = BACK_ANIM_H_SHAKE, - [SPECIES_GOLEM] = BACK_ANIM_H_SHAKE, - [SPECIES_PONYTA] = BACK_ANIM_SHAKE_GLOW_RED, - [SPECIES_RAPIDASH] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_SLOWPOKE] = BACK_ANIM_H_SLIDE, - [SPECIES_SLOWBRO] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_MAGNEMITE] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_MAGNETON] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_FARFETCHD] = BACK_ANIM_H_SLIDE, - [SPECIES_DODUO] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_DODRIO] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_SEEL] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_DEWGONG] = BACK_ANIM_H_SLIDE, - [SPECIES_GRIMER] = BACK_ANIM_V_STRETCH, - [SPECIES_MUK] = BACK_ANIM_H_STRETCH, - [SPECIES_SHELLDER] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_CLOYSTER] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_GASTLY] = BACK_ANIM_H_VIBRATE, - [SPECIES_HAUNTER] = BACK_ANIM_H_VIBRATE, - [SPECIES_GENGAR] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_ONIX] = BACK_ANIM_V_SHAKE, - [SPECIES_DROWZEE] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_HYPNO] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_KRABBY] = BACK_ANIM_V_SHAKE_H_SLIDE, - [SPECIES_KINGLER] = BACK_ANIM_V_SHAKE, - [SPECIES_VOLTORB] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_ELECTRODE] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_EXEGGCUTE] = BACK_ANIM_H_SLIDE, - [SPECIES_EXEGGUTOR] = BACK_ANIM_CONCAVE_ARC_LARGE, - [SPECIES_CUBONE] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_MAROWAK] = BACK_ANIM_CONCAVE_ARC_LARGE, - [SPECIES_HITMONLEE] = BACK_ANIM_H_SLIDE, - [SPECIES_HITMONCHAN] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_LICKITUNG] = BACK_ANIM_H_SLIDE, - [SPECIES_KOFFING] = BACK_ANIM_GROW, - [SPECIES_WEEZING] = BACK_ANIM_GROW, - [SPECIES_RHYHORN] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_RHYDON] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_CHANSEY] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_TANGELA] = BACK_ANIM_V_STRETCH, - [SPECIES_KANGASKHAN] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_HORSEA] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_SEADRA] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_GOLDEEN] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_SEAKING] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_STARYU] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_STARMIE] = BACK_ANIM_SHAKE_GLOW_BLUE, - [SPECIES_MR_MIME] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_SCYTHER] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_JYNX] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_ELECTABUZZ] = BACK_ANIM_SHAKE_FLASH_YELLOW, - [SPECIES_MAGMAR] = BACK_ANIM_SHAKE_GLOW_RED, - [SPECIES_PINSIR] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_TAUROS] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_MAGIKARP] = BACK_ANIM_CONCAVE_ARC_LARGE, - [SPECIES_GYARADOS] = BACK_ANIM_V_SHAKE, - [SPECIES_LAPRAS] = BACK_ANIM_SHAKE_GLOW_BLUE, - [SPECIES_DITTO] = BACK_ANIM_SHRINK_GROW, - [SPECIES_EEVEE] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_VAPOREON] = BACK_ANIM_SHAKE_GLOW_BLUE, - [SPECIES_JOLTEON] = BACK_ANIM_SHAKE_FLASH_YELLOW, - [SPECIES_FLAREON] = BACK_ANIM_SHAKE_GLOW_RED, - [SPECIES_PORYGON] = BACK_ANIM_H_VIBRATE, - [SPECIES_OMANYTE] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_OMASTAR] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_KABUTO] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_KABUTOPS] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_AERODACTYL] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_SNORLAX] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_ARTICUNO] = BACK_ANIM_SHAKE_GLOW_BLUE, - [SPECIES_ZAPDOS] = BACK_ANIM_SHAKE_FLASH_YELLOW, - [SPECIES_MOLTRES] = BACK_ANIM_SHAKE_GLOW_RED, - [SPECIES_DRATINI] = BACK_ANIM_H_SLIDE, - [SPECIES_DRAGONAIR] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_DRAGONITE] = BACK_ANIM_V_SHAKE, - [SPECIES_MEWTWO] = BACK_ANIM_GROW_STUTTER, - [SPECIES_MEW] = BACK_ANIM_CONCAVE_ARC_SMALL, - - // Gen 2 - [SPECIES_CHIKORITA] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_BAYLEEF] = BACK_ANIM_H_SLIDE, - [SPECIES_MEGANIUM] = BACK_ANIM_V_SHAKE, - [SPECIES_CYNDAQUIL] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_QUILAVA] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_TYPHLOSION] = BACK_ANIM_SHAKE_GLOW_RED, - [SPECIES_TOTODILE] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_CROCONAW] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_FERALIGATR] = BACK_ANIM_V_SHAKE, - [SPECIES_SENTRET] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_FURRET] = BACK_ANIM_CONCAVE_ARC_LARGE, - [SPECIES_HOOTHOOT] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_NOCTOWL] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_LEDYBA] = BACK_ANIM_V_SHAKE_H_SLIDE, - [SPECIES_LEDIAN] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_SPINARAK] = BACK_ANIM_V_SHAKE_H_SLIDE, - [SPECIES_ARIADOS] = BACK_ANIM_H_SLIDE, - [SPECIES_CROBAT] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_CHINCHOU] = BACK_ANIM_V_STRETCH, - [SPECIES_LANTURN] = BACK_ANIM_SHAKE_FLASH_YELLOW, - [SPECIES_PICHU] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_CLEFFA] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_IGGLYBUFF] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_TOGEPI] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_TOGETIC] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_NATU] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_XATU] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_MAREEP] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_FLAAFFY] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_AMPHAROS] = BACK_ANIM_SHAKE_FLASH_YELLOW, - [SPECIES_BELLOSSOM] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_MARILL] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_AZUMARILL] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_SUDOWOODO] = BACK_ANIM_H_SLIDE, - [SPECIES_POLITOED] = BACK_ANIM_CONCAVE_ARC_LARGE, - [SPECIES_HOPPIP] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_SKIPLOOM] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_JUMPLUFF] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_AIPOM] = BACK_ANIM_CONCAVE_ARC_LARGE, - [SPECIES_SUNKERN] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_SUNFLORA] = BACK_ANIM_H_SLIDE, - [SPECIES_YANMA] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_WOOPER] = BACK_ANIM_V_STRETCH, - [SPECIES_QUAGSIRE] = BACK_ANIM_H_SLIDE, - [SPECIES_ESPEON] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_UMBREON] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_MURKROW] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_SLOWKING] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_MISDREAVUS] = BACK_ANIM_H_VIBRATE, - [SPECIES_UNOWN] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_WOBBUFFET] = BACK_ANIM_V_STRETCH, - [SPECIES_GIRAFARIG] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_PINECO] = BACK_ANIM_H_SHAKE, - [SPECIES_FORRETRESS] = BACK_ANIM_V_SHAKE, - [SPECIES_DUNSPARCE] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_GLIGAR] = BACK_ANIM_SHRINK_GROW, - [SPECIES_STEELIX] = BACK_ANIM_V_SHAKE, - [SPECIES_SNUBBULL] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_GRANBULL] = BACK_ANIM_V_SHAKE, - [SPECIES_QWILFISH] = BACK_ANIM_GROW_STUTTER, - [SPECIES_SCIZOR] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_SHUCKLE] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_HERACROSS] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_SNEASEL] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_TEDDIURSA] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_URSARING] = BACK_ANIM_V_SHAKE, - [SPECIES_SLUGMA] = BACK_ANIM_SHAKE_GLOW_RED, - [SPECIES_MAGCARGO] = BACK_ANIM_SHAKE_GLOW_RED, - [SPECIES_SWINUB] = BACK_ANIM_V_SHAKE_H_SLIDE, - [SPECIES_PILOSWINE] = BACK_ANIM_H_SHAKE, - [SPECIES_CORSOLA] = BACK_ANIM_H_SLIDE, - [SPECIES_REMORAID] = BACK_ANIM_H_SLIDE, - [SPECIES_OCTILLERY] = BACK_ANIM_SHRINK_GROW, - [SPECIES_DELIBIRD] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_MANTINE] = BACK_ANIM_H_SLIDE, - [SPECIES_SKARMORY] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_HOUNDOUR] = BACK_ANIM_V_SHAKE, - [SPECIES_HOUNDOOM] = BACK_ANIM_V_SHAKE, - [SPECIES_KINGDRA] = BACK_ANIM_SHAKE_GLOW_BLUE, - [SPECIES_PHANPY] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_DONPHAN] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_PORYGON2] = BACK_ANIM_H_VIBRATE, - [SPECIES_STANTLER] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_SMEARGLE] = BACK_ANIM_H_SLIDE, - [SPECIES_TYROGUE] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_HITMONTOP] = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - [SPECIES_SMOOCHUM] = BACK_ANIM_H_SLIDE, - [SPECIES_ELEKID] = BACK_ANIM_H_SHAKE, - [SPECIES_MAGBY] = BACK_ANIM_SHAKE_GLOW_RED, - [SPECIES_MILTANK] = BACK_ANIM_H_SLIDE, - [SPECIES_BLISSEY] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_RAIKOU] = BACK_ANIM_SHAKE_FLASH_YELLOW, - [SPECIES_ENTEI] = BACK_ANIM_SHAKE_GLOW_RED, - [SPECIES_SUICUNE] = BACK_ANIM_SHAKE_GLOW_BLUE, - [SPECIES_LARVITAR] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_PUPITAR] = BACK_ANIM_V_SHAKE, - [SPECIES_TYRANITAR] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_LUGIA] = BACK_ANIM_SHAKE_GLOW_BLUE, - [SPECIES_HO_OH] = BACK_ANIM_SHAKE_GLOW_RED, - [SPECIES_CELEBI] = BACK_ANIM_SHAKE_GLOW_GREEN, - - // Gen 3 - [SPECIES_TREECKO] = BACK_ANIM_CONCAVE_ARC_LARGE, - [SPECIES_GROVYLE] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_SCEPTILE] = BACK_ANIM_V_SHAKE, - [SPECIES_TORCHIC] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_COMBUSKEN] = BACK_ANIM_CONCAVE_ARC_LARGE, - [SPECIES_BLAZIKEN] = BACK_ANIM_SHAKE_GLOW_RED, - [SPECIES_MUDKIP] = BACK_ANIM_H_SLIDE, - [SPECIES_MARSHTOMP] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_SWAMPERT] = BACK_ANIM_SHAKE_GLOW_BLUE, - [SPECIES_POOCHYENA] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_MIGHTYENA] = BACK_ANIM_H_SHAKE, - [SPECIES_ZIGZAGOON] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_LINOONE] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_WURMPLE] = BACK_ANIM_V_STRETCH, - [SPECIES_SILCOON] = BACK_ANIM_H_SHAKE, - [SPECIES_BEAUTIFLY] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_CASCOON] = BACK_ANIM_H_SHAKE, - [SPECIES_DUSTOX] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_LOTAD] = BACK_ANIM_H_SLIDE, - [SPECIES_LOMBRE] = BACK_ANIM_CONCAVE_ARC_LARGE, - [SPECIES_LUDICOLO] = BACK_ANIM_CONCAVE_ARC_LARGE, - [SPECIES_SEEDOT] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_NUZLEAF] = BACK_ANIM_V_SHAKE, - [SPECIES_SHIFTRY] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_TAILLOW] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_SWELLOW] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_WINGULL] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_PELIPPER] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_RALTS] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_KIRLIA] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_GARDEVOIR] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_SURSKIT] = BACK_ANIM_H_SPRING, - [SPECIES_MASQUERAIN] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_SHROOMISH] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_BRELOOM] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_SLAKOTH] = BACK_ANIM_H_SLIDE, - [SPECIES_VIGOROTH] = BACK_ANIM_CONCAVE_ARC_LARGE, - [SPECIES_SLAKING] = BACK_ANIM_H_SHAKE, - [SPECIES_NINCADA] = BACK_ANIM_V_SHAKE_H_SLIDE, - [SPECIES_NINJASK] = BACK_ANIM_H_VIBRATE, - [SPECIES_SHEDINJA] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_WHISMUR] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_LOUDRED] = BACK_ANIM_V_SHAKE, - [SPECIES_EXPLOUD] = BACK_ANIM_GROW_STUTTER, - [SPECIES_MAKUHITA] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_HARIYAMA] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_AZURILL] = BACK_ANIM_CONCAVE_ARC_LARGE, - [SPECIES_NOSEPASS] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_SKITTY] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_DELCATTY] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_SABLEYE] = BACK_ANIM_H_VIBRATE, - [SPECIES_MAWILE] = BACK_ANIM_V_SHAKE, - [SPECIES_ARON] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_LAIRON] = BACK_ANIM_V_SHAKE, - [SPECIES_AGGRON] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_MEDITITE] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_MEDICHAM] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_ELECTRIKE] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_MANECTRIC] = BACK_ANIM_V_SHAKE, - [SPECIES_PLUSLE] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_MINUN] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_VOLBEAT] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_ILLUMISE] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_ROSELIA] = BACK_ANIM_SHAKE_GLOW_GREEN, - [SPECIES_GULPIN] = BACK_ANIM_V_STRETCH, - [SPECIES_SWALOT] = BACK_ANIM_V_STRETCH, - [SPECIES_CARVANHA] = BACK_ANIM_H_SPRING_REPEATED, - [SPECIES_SHARPEDO] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_WAILMER] = BACK_ANIM_SHAKE_GLOW_BLUE, - [SPECIES_WAILORD] = BACK_ANIM_SHAKE_GLOW_BLUE, - [SPECIES_NUMEL] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_CAMERUPT] = BACK_ANIM_SHAKE_GLOW_RED, - [SPECIES_TORKOAL] = BACK_ANIM_SHAKE_GLOW_RED, - [SPECIES_SPOINK] = BACK_ANIM_CONCAVE_ARC_LARGE, - [SPECIES_GRUMPIG] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_SPINDA] = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - [SPECIES_TRAPINCH] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_VIBRAVA] = BACK_ANIM_H_VIBRATE, - [SPECIES_FLYGON] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_CACNEA] = BACK_ANIM_V_SHAKE_H_SLIDE, - [SPECIES_CACTURNE] = BACK_ANIM_H_SHAKE, - [SPECIES_SWABLU] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_ALTARIA] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_ZANGOOSE] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_SEVIPER] = BACK_ANIM_V_STRETCH, - [SPECIES_LUNATONE] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_SOLROCK] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_BARBOACH] = BACK_ANIM_V_STRETCH, - [SPECIES_WHISCASH] = BACK_ANIM_V_SHAKE, - [SPECIES_CORPHISH] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_CRAWDAUNT] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_BALTOY] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_CLAYDOL] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_LILEEP] = BACK_ANIM_H_STRETCH, - [SPECIES_CRADILY] = BACK_ANIM_V_STRETCH, - [SPECIES_ANORITH] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_ARMALDO] = BACK_ANIM_V_SHAKE, - [SPECIES_FEEBAS] = BACK_ANIM_H_SPRING, - [SPECIES_MILOTIC] = BACK_ANIM_SHAKE_GLOW_BLUE, - [SPECIES_CASTFORM_NORMAL] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_KECLEON] = BACK_ANIM_H_VIBRATE, - [SPECIES_SHUPPET] = BACK_ANIM_H_VIBRATE, - [SPECIES_BANETTE] = BACK_ANIM_H_VIBRATE, - [SPECIES_DUSKULL] = BACK_ANIM_H_VIBRATE, - [SPECIES_DUSCLOPS] = BACK_ANIM_H_VIBRATE, - [SPECIES_TROPIUS] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_CHIMECHO] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_ABSOL] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_WYNAUT] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_SNORUNT] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_GLALIE] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_SPHEAL] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_SEALEO] = BACK_ANIM_V_SHAKE, - [SPECIES_WALREIN] = BACK_ANIM_V_SHAKE, - [SPECIES_CLAMPERL] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_HUNTAIL] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_GOREBYSS] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_RELICANTH] = BACK_ANIM_H_SLIDE, - [SPECIES_LUVDISC] = BACK_ANIM_H_SPRING_REPEATED, - [SPECIES_BAGON] = BACK_ANIM_V_SHAKE, - [SPECIES_SHELGON] = BACK_ANIM_V_SHAKE, - [SPECIES_SALAMENCE] = BACK_ANIM_H_SHAKE, - [SPECIES_BELDUM] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_METANG] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_METAGROSS] = BACK_ANIM_V_SHAKE, - [SPECIES_REGIROCK] = BACK_ANIM_V_SHAKE, - [SPECIES_REGICE] = BACK_ANIM_V_SHAKE, - [SPECIES_REGISTEEL] = BACK_ANIM_V_SHAKE, - [SPECIES_LATIAS] = BACK_ANIM_H_VIBRATE, - [SPECIES_LATIOS] = BACK_ANIM_H_VIBRATE, - [SPECIES_KYOGRE] = BACK_ANIM_SHAKE_GLOW_BLUE, - [SPECIES_GROUDON] = BACK_ANIM_SHAKE_GLOW_RED, - [SPECIES_RAYQUAZA] = BACK_ANIM_GROW_STUTTER, - [SPECIES_JIRACHI] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_DEOXYS_NORMAL] = BACK_ANIM_SHRINK_GROW_VIBRATE, - - // Gen 4 - [SPECIES_TURTWIG] = BACK_ANIM_H_SLIDE, - [SPECIES_GROTLE] = BACK_ANIM_H_SLIDE, - [SPECIES_TORTERRA] = BACK_ANIM_SHAKE_GLOW_GREEN, - [SPECIES_CHIMCHAR] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_MONFERNO] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_INFERNAPE] = BACK_ANIM_SHAKE_GLOW_RED, - [SPECIES_PIPLUP] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_PRINPLUP] = BACK_ANIM_V_STRETCH, - [SPECIES_EMPOLEON] = BACK_ANIM_SHAKE_GLOW_BLUE, - [SPECIES_STARLY] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_STARAVIA] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_STARAPTOR] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_BIDOOF] = BACK_ANIM_V_SHAKE_H_SLIDE, - [SPECIES_BIBAREL] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_KRICKETOT] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_KRICKETUNE] = BACK_ANIM_H_VIBRATE, - [SPECIES_SHINX] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_LUXIO] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_LUXRAY] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_BUDEW] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_ROSERADE] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_CRANIDOS] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_RAMPARDOS] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_SHIELDON] = BACK_ANIM_V_SHAKE, - [SPECIES_BASTIODON] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_BURMY_PLANT_CLOAK] = BACK_ANIM_H_SHAKE, - [SPECIES_WORMADAM_PLANT_CLOAK] = BACK_ANIM_V_SHAKE, - [SPECIES_MOTHIM] = BACK_ANIM_H_SHAKE, - [SPECIES_COMBEE] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_VESPIQUEN] = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - [SPECIES_PACHIRISU] = BACK_ANIM_SHAKE_FLASH_YELLOW, - [SPECIES_BUIZEL] = BACK_ANIM_H_SLIDE, - [SPECIES_FLOATZEL] = BACK_ANIM_V_STRETCH, - [SPECIES_CHERUBI] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_CHERRIM_OVERCAST] = BACK_ANIM_V_STRETCH, - [SPECIES_SHELLOS_WEST_SEA] = BACK_ANIM_H_SPRING, - [SPECIES_GASTRODON] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_AMBIPOM] = BACK_ANIM_CONCAVE_ARC_LARGE, - [SPECIES_DRIFLOON] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_DRIFBLIM] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_BUNEARY] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_LOPUNNY] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_MISMAGIUS] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_HONCHKROW] = BACK_ANIM_H_STRETCH, - [SPECIES_GLAMEOW] = BACK_ANIM_SHRINK_GROW, - [SPECIES_PURUGLY] = BACK_ANIM_GROW_STUTTER, - [SPECIES_CHINGLING] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_STUNKY] = BACK_ANIM_H_SLIDE, - [SPECIES_SKUNTANK] = BACK_ANIM_H_STRETCH, - [SPECIES_BRONZOR] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_BRONZONG] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_BONSLY] = BACK_ANIM_H_VIBRATE, - [SPECIES_MIME_JR] = BACK_ANIM_CONCAVE_ARC_LARGE, - [SPECIES_HAPPINY] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_CHATOT] = BACK_ANIM_V_STRETCH, - [SPECIES_SPIRITOMB] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_GIBLE] = BACK_ANIM_H_SHAKE, - [SPECIES_GABITE] = BACK_ANIM_V_SHAKE, - [SPECIES_GARCHOMP] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_MUNCHLAX] = BACK_ANIM_GROW, - [SPECIES_RIOLU] = BACK_ANIM_CONCAVE_ARC_LARGE, - [SPECIES_LUCARIO] = BACK_ANIM_V_SHAKE_H_SLIDE, - [SPECIES_HIPPOPOTAS] = BACK_ANIM_H_SLIDE, - [SPECIES_HIPPOWDON] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_SKORUPI] = BACK_ANIM_H_SLIDE, - [SPECIES_DRAPION] = BACK_ANIM_V_SHAKE_H_SLIDE, - [SPECIES_CROAGUNK] = BACK_ANIM_GROW, - [SPECIES_TOXICROAK] = BACK_ANIM_V_SHAKE_H_SLIDE, - [SPECIES_CARNIVINE] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_FINNEON] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_LUMINEON] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_MANTYKE] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_SNOVER] = BACK_ANIM_V_STRETCH, - [SPECIES_ABOMASNOW] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_WEAVILE] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_MAGNEZONE] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_LICKILICKY] = BACK_ANIM_V_SHAKE, - [SPECIES_RHYPERIOR] = BACK_ANIM_V_SHAKE, - [SPECIES_TANGROWTH] = BACK_ANIM_GROW, - [SPECIES_ELECTIVIRE] = BACK_ANIM_SHAKE_FLASH_YELLOW, - [SPECIES_MAGMORTAR] = BACK_ANIM_SHAKE_GLOW_RED, - [SPECIES_TOGEKISS] = BACK_ANIM_CONCAVE_ARC_LARGE, - [SPECIES_YANMEGA] = BACK_ANIM_H_VIBRATE, - [SPECIES_LEAFEON] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_GLACEON] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_GLISCOR] = BACK_ANIM_V_STRETCH, - [SPECIES_MAMOSWINE] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_PORYGON_Z] = BACK_ANIM_H_VIBRATE, - [SPECIES_GALLADE] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_PROBOPASS] = BACK_ANIM_V_SHAKE_H_SLIDE, - [SPECIES_DUSKNOIR] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_FROSLASS] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_ROTOM] = BACK_ANIM_SHAKE_FLASH_YELLOW, - [SPECIES_UXIE] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_MESPRIT] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_AZELF] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_DIALGA] = BACK_ANIM_V_SHAKE, - [SPECIES_PALKIA] = BACK_ANIM_H_SHAKE, - [SPECIES_HEATRAN] = BACK_ANIM_SHAKE_GLOW_RED, - [SPECIES_REGIGIGAS] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_GIRATINA_ALTERED] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_CRESSELIA] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_PHIONE] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_MANAPHY] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_DARKRAI] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_SHAYMIN_LAND] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_ARCEUS_NORMAL] = BACK_ANIM_GROW, - - // Gen 5 - [SPECIES_VICTINI] = BACK_ANIM_H_SHAKE, - [SPECIES_SNIVY] = BACK_ANIM_H_SLIDE, - [SPECIES_SERVINE] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_SERPERIOR] = BACK_ANIM_V_STRETCH, - [SPECIES_TEPIG] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_PIGNITE] = BACK_ANIM_GROW_STUTTER, - [SPECIES_EMBOAR] = BACK_ANIM_SHAKE_GLOW_RED, - [SPECIES_OSHAWOTT] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_DEWOTT] = BACK_ANIM_CONCAVE_ARC_LARGE, - [SPECIES_SAMUROTT] = BACK_ANIM_SHAKE_GLOW_BLUE, - [SPECIES_PATRAT] = BACK_ANIM_H_SLIDE, - [SPECIES_WATCHOG] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_LILLIPUP] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_HERDIER] = BACK_ANIM_H_SHAKE, - [SPECIES_STOUTLAND] = BACK_ANIM_V_STRETCH, - [SPECIES_PURRLOIN] = BACK_ANIM_V_STRETCH, - [SPECIES_LIEPARD] = BACK_ANIM_H_STRETCH, - [SPECIES_PANSAGE] = BACK_ANIM_CONCAVE_ARC_LARGE, - [SPECIES_SIMISAGE] = BACK_ANIM_V_SHAKE_H_SLIDE, - [SPECIES_PANSEAR] = BACK_ANIM_CONCAVE_ARC_LARGE, - [SPECIES_SIMISEAR] = BACK_ANIM_V_SHAKE_H_SLIDE, - [SPECIES_PANPOUR] = BACK_ANIM_CONCAVE_ARC_LARGE, - [SPECIES_SIMIPOUR] = BACK_ANIM_V_SHAKE_H_SLIDE, - [SPECIES_MUNNA] = BACK_ANIM_SHRINK_GROW, - [SPECIES_MUSHARNA] = BACK_ANIM_GROW, - [SPECIES_PIDOVE] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_TRANQUILL] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_UNFEZANT] = BACK_ANIM_V_STRETCH, - [SPECIES_BLITZLE] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_ZEBSTRIKA] = BACK_ANIM_SHAKE_FLASH_YELLOW, - [SPECIES_ROGGENROLA] = BACK_ANIM_V_SHAKE, - [SPECIES_BOLDORE] = BACK_ANIM_H_SHAKE, - [SPECIES_GIGALITH] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_WOOBAT] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_SWOOBAT] = BACK_ANIM_V_STRETCH, - [SPECIES_DRILBUR] = BACK_ANIM_V_SHAKE, - [SPECIES_EXCADRILL] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_AUDINO] = BACK_ANIM_SHRINK_GROW, - [SPECIES_TIMBURR] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_GURDURR] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_CONKELDURR] = BACK_ANIM_V_SHAKE_H_SLIDE, - [SPECIES_TYMPOLE] = BACK_ANIM_H_SPRING, - [SPECIES_PALPITOAD] = BACK_ANIM_H_VIBRATE, - [SPECIES_SEISMITOAD] = BACK_ANIM_V_SHAKE_H_SLIDE, - [SPECIES_THROH] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_SAWK] = BACK_ANIM_H_STRETCH, - [SPECIES_SEWADDLE] = BACK_ANIM_H_SLIDE, - [SPECIES_SWADLOON] = BACK_ANIM_H_VIBRATE, - [SPECIES_LEAVANNY] = BACK_ANIM_GROW_STUTTER, - [SPECIES_VENIPEDE] = BACK_ANIM_H_VIBRATE, - [SPECIES_WHIRLIPEDE] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_SCOLIPEDE] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_COTTONEE] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_WHIMSICOTT] = BACK_ANIM_CONCAVE_ARC_LARGE, - [SPECIES_PETILIL] = BACK_ANIM_V_STRETCH, - [SPECIES_LILLIGANT] = BACK_ANIM_SHRINK_GROW, - [SPECIES_BASCULIN_RED_STRIPED] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_SANDILE] = BACK_ANIM_H_SLIDE, - [SPECIES_KROKOROK] = BACK_ANIM_V_STRETCH, - [SPECIES_KROOKODILE] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_DARUMAKA] = BACK_ANIM_CONCAVE_ARC_LARGE, - [SPECIES_DARMANITAN_STANDARD_MODE] = BACK_ANIM_V_SHAKE_H_SLIDE, - [SPECIES_MARACTUS] = BACK_ANIM_CONCAVE_ARC_LARGE, - [SPECIES_DWEBBLE] = BACK_ANIM_H_SLIDE, - [SPECIES_CRUSTLE] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_SCRAGGY] = BACK_ANIM_CONCAVE_ARC_LARGE, - [SPECIES_SCRAFTY] = BACK_ANIM_GROW, - [SPECIES_SIGILYPH] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_YAMASK] = BACK_ANIM_V_SHAKE, - [SPECIES_COFAGRIGUS] = BACK_ANIM_V_SHAKE_H_SLIDE, - [SPECIES_TIRTOUGA] = BACK_ANIM_H_SLIDE, - [SPECIES_CARRACOSTA] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_ARCHEN] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_ARCHEOPS] = BACK_ANIM_V_STRETCH, - [SPECIES_TRUBBISH] = BACK_ANIM_SHRINK_GROW, - [SPECIES_GARBODOR] = BACK_ANIM_H_STRETCH, - [SPECIES_ZORUA] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_ZOROARK] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_MINCCINO] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_CINCCINO] = BACK_ANIM_CONCAVE_ARC_LARGE, - [SPECIES_GOTHITA] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_GOTHORITA] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_GOTHITELLE] = BACK_ANIM_H_STRETCH, - [SPECIES_SOLOSIS] = BACK_ANIM_SHRINK_GROW, - [SPECIES_DUOSION] = BACK_ANIM_GROW, - [SPECIES_REUNICLUS] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_DUCKLETT] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_SWANNA] = BACK_ANIM_H_STRETCH, - [SPECIES_VANILLITE] = BACK_ANIM_H_SLIDE, - [SPECIES_VANILLISH] = BACK_ANIM_H_SLIDE, - [SPECIES_VANILLUXE] = BACK_ANIM_H_SHAKE, - [SPECIES_DEERLING_SPRING] = BACK_ANIM_H_SLIDE, - [SPECIES_SAWSBUCK_SPRING] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_EMOLGA] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_KARRABLAST] = BACK_ANIM_CONCAVE_ARC_LARGE, - [SPECIES_ESCAVALIER] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_FOONGUS] = BACK_ANIM_SHRINK_GROW, - [SPECIES_AMOONGUSS] = BACK_ANIM_GROW_STUTTER, - [SPECIES_FRILLISH] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_JELLICENT] = BACK_ANIM_GROW_STUTTER, - [SPECIES_ALOMOMOLA] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_JOLTIK] = BACK_ANIM_H_SLIDE, - [SPECIES_GALVANTULA] = BACK_ANIM_SHAKE_FLASH_YELLOW, - [SPECIES_FERROSEED] = BACK_ANIM_H_SHAKE, - [SPECIES_FERROTHORN] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_KLINK] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_KLANG] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_KLINKLANG] = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - [SPECIES_TYNAMO] = BACK_ANIM_H_SLIDE, - [SPECIES_EELEKTRIK] = BACK_ANIM_SHRINK_GROW, - [SPECIES_EELEKTROSS] = BACK_ANIM_SHAKE_FLASH_YELLOW, - [SPECIES_ELGYEM] = BACK_ANIM_SHRINK_GROW, - [SPECIES_BEHEEYEM] = BACK_ANIM_H_SHAKE, - [SPECIES_LITWICK] = BACK_ANIM_SHRINK_GROW, - [SPECIES_LAMPENT] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_CHANDELURE] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_AXEW] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_FRAXURE] = BACK_ANIM_V_SHAKE_H_SLIDE, - [SPECIES_HAXORUS] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_CUBCHOO] = BACK_ANIM_H_SLIDE, - [SPECIES_BEARTIC] = BACK_ANIM_V_SHAKE_H_SLIDE, - [SPECIES_CRYOGONAL] = BACK_ANIM_H_VIBRATE, - [SPECIES_SHELMET] = BACK_ANIM_V_SHAKE, - [SPECIES_ACCELGOR] = BACK_ANIM_H_SPRING_REPEATED, - [SPECIES_STUNFISK] = BACK_ANIM_H_STRETCH, - [SPECIES_MIENFOO] = BACK_ANIM_CONCAVE_ARC_LARGE, - [SPECIES_MIENSHAO] = BACK_ANIM_V_STRETCH, - [SPECIES_DRUDDIGON] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_GOLETT] = BACK_ANIM_H_SLIDE, - [SPECIES_GOLURK] = BACK_ANIM_V_SHAKE, - [SPECIES_PAWNIARD] = BACK_ANIM_H_SLIDE, - [SPECIES_BISHARP] = BACK_ANIM_GROW_STUTTER, - [SPECIES_BOUFFALANT] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_RUFFLET] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_BRAVIARY] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_VULLABY] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_MANDIBUZZ] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_HEATMOR] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_DURANT] = BACK_ANIM_H_VIBRATE, - [SPECIES_DEINO] = BACK_ANIM_H_SLIDE, - [SPECIES_ZWEILOUS] = BACK_ANIM_H_SHAKE, - [SPECIES_HYDREIGON] = BACK_ANIM_GROW_STUTTER, - [SPECIES_LARVESTA] = BACK_ANIM_H_SLIDE, - [SPECIES_VOLCARONA] = BACK_ANIM_SHAKE_GLOW_RED, - [SPECIES_COBALION] = BACK_ANIM_V_STRETCH, - [SPECIES_TERRAKION] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_VIRIZION] = BACK_ANIM_H_SHAKE, - [SPECIES_TORNADUS_INCARNATE] = BACK_ANIM_V_SHAKE, - [SPECIES_THUNDURUS_INCARNATE] = BACK_ANIM_V_SHAKE, - [SPECIES_RESHIRAM] = BACK_ANIM_SHAKE_GLOW_RED, - [SPECIES_ZEKROM] = BACK_ANIM_SHAKE_GLOW_BLUE, - [SPECIES_LANDORUS_INCARNATE] = BACK_ANIM_V_SHAKE, - [SPECIES_KYUREM] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_KELDEO_ORDINARY] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_MELOETTA_ARIA] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_GENESECT] = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - - // Gen 6 - [SPECIES_CHESPIN] = BACK_ANIM_H_SLIDE, - [SPECIES_QUILLADIN] = BACK_ANIM_GROW, - [SPECIES_CHESNAUGHT] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_FENNEKIN] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_BRAIXEN] = BACK_ANIM_CONCAVE_ARC_LARGE, - [SPECIES_DELPHOX] = BACK_ANIM_GROW_STUTTER, - [SPECIES_FROAKIE] = BACK_ANIM_SHRINK_GROW, - [SPECIES_FROGADIER] = BACK_ANIM_GROW_STUTTER, - [SPECIES_GRENINJA] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_BUNNELBY] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_DIGGERSBY] = BACK_ANIM_V_SHAKE_H_SLIDE, - [SPECIES_FLETCHLING] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_FLETCHINDER] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_TALONFLAME] = BACK_ANIM_SHAKE_GLOW_RED, - [SPECIES_SCATTERBUG] = BACK_ANIM_H_SLIDE, - [SPECIES_SPEWPA] = BACK_ANIM_H_VIBRATE, - [SPECIES_VIVILLON_ICY_SNOW] = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - [SPECIES_LITLEO] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_PYROAR] = BACK_ANIM_H_STRETCH, - [SPECIES_FLABEBE_RED_FLOWER] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_FLOETTE_RED_FLOWER] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_FLORGES_RED_FLOWER] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_SKIDDO] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_GOGOAT] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_PANCHAM] = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - [SPECIES_PANGORO] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_FURFROU_NATURAL] = BACK_ANIM_V_STRETCH, - [SPECIES_ESPURR] = BACK_ANIM_H_SLIDE, - [SPECIES_MEOWSTIC_MALE] = BACK_ANIM_CONCAVE_ARC_LARGE, - [SPECIES_HONEDGE] = BACK_ANIM_V_SHAKE, - [SPECIES_DOUBLADE] = BACK_ANIM_H_SHAKE, - [SPECIES_AEGISLASH_SHIELD] = BACK_ANIM_H_VIBRATE, - [SPECIES_SPRITZEE] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_AROMATISSE] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_SWIRLIX] = BACK_ANIM_H_SPRING, - [SPECIES_SLURPUFF] = BACK_ANIM_V_SHAKE_H_SLIDE, - [SPECIES_INKAY] = BACK_ANIM_SHRINK_GROW, - [SPECIES_MALAMAR] = BACK_ANIM_V_STRETCH, - [SPECIES_BINACLE] = BACK_ANIM_H_SLIDE, - [SPECIES_BARBARACLE] = BACK_ANIM_V_SHAKE_H_SLIDE, - [SPECIES_SKRELP] = BACK_ANIM_V_STRETCH, - [SPECIES_DRAGALGE] = BACK_ANIM_H_STRETCH, - [SPECIES_CLAUNCHER] = BACK_ANIM_H_SLIDE, - [SPECIES_CLAWITZER] = BACK_ANIM_V_SHAKE, - [SPECIES_HELIOPTILE] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_HELIOLISK] = BACK_ANIM_SHAKE_FLASH_YELLOW, - [SPECIES_TYRUNT] = BACK_ANIM_H_SHAKE, - [SPECIES_TYRANTRUM] = BACK_ANIM_V_SHAKE_H_SLIDE, - [SPECIES_AMAURA] = BACK_ANIM_H_SLIDE, - [SPECIES_AURORUS] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_SYLVEON] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_HAWLUCHA] = BACK_ANIM_GROW_STUTTER, - [SPECIES_DEDENNE] = BACK_ANIM_SHAKE_FLASH_YELLOW, - [SPECIES_CARBINK] = BACK_ANIM_H_VIBRATE, - [SPECIES_GOOMY] = BACK_ANIM_H_SPRING, - [SPECIES_SLIGGOO] = BACK_ANIM_SHRINK_GROW, - [SPECIES_GOODRA] = BACK_ANIM_SHRINK_GROW, - [SPECIES_KLEFKI] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_PHANTUMP] = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - [SPECIES_TREVENANT] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_PUMPKABOO_AVERAGE] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_GOURGEIST_AVERAGE] = BACK_ANIM_V_STRETCH, - [SPECIES_BERGMITE] = BACK_ANIM_H_SHAKE, - [SPECIES_AVALUGG] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_NOIBAT] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_NOIVERN] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_XERNEAS_NEUTRAL] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_YVELTAL] = BACK_ANIM_SHAKE_GLOW_RED, - [SPECIES_ZYGARDE_50_AURA_BREAK] = BACK_ANIM_V_STRETCH, - [SPECIES_DIANCIE] = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - [SPECIES_HOOPA_CONFINED] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_VOLCANION] = BACK_ANIM_SHAKE_GLOW_RED, - - // Gen 7 todo: assign - [SPECIES_ROWLET] = BACK_ANIM_H_VIBRATE, - [SPECIES_DARTRIX] = BACK_ANIM_H_VIBRATE, - [SPECIES_DECIDUEYE] = BACK_ANIM_H_VIBRATE, - [SPECIES_LITTEN] = BACK_ANIM_H_VIBRATE, - [SPECIES_TORRACAT] = BACK_ANIM_H_VIBRATE, - [SPECIES_INCINEROAR] = BACK_ANIM_H_VIBRATE, - [SPECIES_POPPLIO] = BACK_ANIM_H_VIBRATE, - [SPECIES_BRIONNE] = BACK_ANIM_H_VIBRATE, - [SPECIES_PRIMARINA] = BACK_ANIM_H_VIBRATE, - [SPECIES_PIKIPEK] = BACK_ANIM_H_VIBRATE, - [SPECIES_TRUMBEAK] = BACK_ANIM_H_VIBRATE, - [SPECIES_TOUCANNON] = BACK_ANIM_H_VIBRATE, - [SPECIES_YUNGOOS] = BACK_ANIM_H_VIBRATE, - [SPECIES_GUMSHOOS] = BACK_ANIM_H_VIBRATE, - [SPECIES_GRUBBIN] = BACK_ANIM_H_VIBRATE, - [SPECIES_CHARJABUG] = BACK_ANIM_H_VIBRATE, - [SPECIES_VIKAVOLT] = BACK_ANIM_H_VIBRATE, - [SPECIES_CRABRAWLER] = BACK_ANIM_H_VIBRATE, - [SPECIES_CRABOMINABLE] = BACK_ANIM_H_VIBRATE, - [SPECIES_ORICORIO] = BACK_ANIM_H_VIBRATE, - [SPECIES_CUTIEFLY] = BACK_ANIM_H_VIBRATE, - [SPECIES_RIBOMBEE] = BACK_ANIM_H_VIBRATE, - [SPECIES_ROCKRUFF] = BACK_ANIM_H_VIBRATE, - [SPECIES_LYCANROC] = BACK_ANIM_H_VIBRATE, - [SPECIES_WISHIWASHI] = BACK_ANIM_H_VIBRATE, - [SPECIES_MAREANIE] = BACK_ANIM_H_VIBRATE, - [SPECIES_TOXAPEX] = BACK_ANIM_H_VIBRATE, - [SPECIES_MUDBRAY] = BACK_ANIM_H_VIBRATE, - [SPECIES_MUDSDALE] = BACK_ANIM_H_VIBRATE, - [SPECIES_DEWPIDER] = BACK_ANIM_H_VIBRATE, - [SPECIES_ARAQUANID] = BACK_ANIM_H_VIBRATE, - [SPECIES_FOMANTIS] = BACK_ANIM_H_VIBRATE, - [SPECIES_LURANTIS] = BACK_ANIM_H_VIBRATE, - [SPECIES_MORELULL] = BACK_ANIM_H_VIBRATE, - [SPECIES_SHIINOTIC] = BACK_ANIM_H_VIBRATE, - [SPECIES_SALANDIT] = BACK_ANIM_H_VIBRATE, - [SPECIES_SALAZZLE] = BACK_ANIM_H_VIBRATE, - [SPECIES_STUFFUL] = BACK_ANIM_H_VIBRATE, - [SPECIES_BEWEAR] = BACK_ANIM_H_VIBRATE, - [SPECIES_BOUNSWEET] = BACK_ANIM_H_VIBRATE, - [SPECIES_STEENEE] = BACK_ANIM_H_VIBRATE, - [SPECIES_TSAREENA] = BACK_ANIM_H_VIBRATE, - [SPECIES_COMFEY] = BACK_ANIM_H_VIBRATE, - [SPECIES_ORANGURU] = BACK_ANIM_H_VIBRATE, - [SPECIES_PASSIMIAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_WIMPOD] = BACK_ANIM_H_VIBRATE, - [SPECIES_GOLISOPOD] = BACK_ANIM_H_VIBRATE, - [SPECIES_SANDYGAST] = BACK_ANIM_H_VIBRATE, - [SPECIES_PALOSSAND] = BACK_ANIM_H_VIBRATE, - [SPECIES_PYUKUMUKU] = BACK_ANIM_H_VIBRATE, - [SPECIES_TYPE_NULL] = BACK_ANIM_H_VIBRATE, - [SPECIES_SILVALLY] = BACK_ANIM_H_VIBRATE, - [SPECIES_MINIOR] = BACK_ANIM_H_VIBRATE, - [SPECIES_KOMALA] = BACK_ANIM_H_VIBRATE, - [SPECIES_TURTONATOR] = BACK_ANIM_H_VIBRATE, - [SPECIES_TOGEDEMARU] = BACK_ANIM_H_VIBRATE, - [SPECIES_MIMIKYU] = BACK_ANIM_H_VIBRATE, - [SPECIES_BRUXISH] = BACK_ANIM_H_VIBRATE, - [SPECIES_DRAMPA] = BACK_ANIM_H_VIBRATE, - [SPECIES_DHELMISE] = BACK_ANIM_H_VIBRATE, - [SPECIES_JANGMO_O] = BACK_ANIM_H_VIBRATE, - [SPECIES_HAKAMO_O] = BACK_ANIM_H_VIBRATE, - [SPECIES_KOMMO_O] = BACK_ANIM_H_VIBRATE, - [SPECIES_TAPU_KOKO] = BACK_ANIM_H_VIBRATE, - [SPECIES_TAPU_LELE] = BACK_ANIM_H_VIBRATE, - [SPECIES_TAPU_BULU] = BACK_ANIM_H_VIBRATE, - [SPECIES_TAPU_FINI] = BACK_ANIM_H_VIBRATE, - [SPECIES_COSMOG] = BACK_ANIM_H_VIBRATE, - [SPECIES_COSMOEM] = BACK_ANIM_H_VIBRATE, - [SPECIES_SOLGALEO] = BACK_ANIM_H_VIBRATE, - [SPECIES_LUNALA] = BACK_ANIM_H_VIBRATE, - [SPECIES_NIHILEGO] = BACK_ANIM_H_VIBRATE, - [SPECIES_BUZZWOLE] = BACK_ANIM_H_VIBRATE, - [SPECIES_PHEROMOSA] = BACK_ANIM_H_VIBRATE, - [SPECIES_XURKITREE] = BACK_ANIM_H_VIBRATE, - [SPECIES_CELESTEELA] = BACK_ANIM_H_VIBRATE, - [SPECIES_KARTANA] = BACK_ANIM_H_VIBRATE, - [SPECIES_GUZZLORD] = BACK_ANIM_H_VIBRATE, - [SPECIES_NECROZMA] = BACK_ANIM_H_VIBRATE, - [SPECIES_MAGEARNA] = BACK_ANIM_H_VIBRATE, - [SPECIES_MARSHADOW] = BACK_ANIM_H_VIBRATE, - [SPECIES_POIPOLE] = BACK_ANIM_H_VIBRATE, - [SPECIES_NAGANADEL] = BACK_ANIM_H_VIBRATE, - [SPECIES_STAKATAKA] = BACK_ANIM_H_VIBRATE, - [SPECIES_BLACEPHALON] = BACK_ANIM_H_VIBRATE, - [SPECIES_ZERAORA] = BACK_ANIM_H_VIBRATE, - [SPECIES_MELTAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_MELMETAL] = BACK_ANIM_H_VIBRATE, - - // Gen 8 todo: assign - [SPECIES_GROOKEY] = BACK_ANIM_H_VIBRATE, - [SPECIES_THWACKEY] = BACK_ANIM_H_VIBRATE, - [SPECIES_RILLABOOM] = BACK_ANIM_H_VIBRATE, - [SPECIES_SCORBUNNY] = BACK_ANIM_H_VIBRATE, - [SPECIES_RABOOT] = BACK_ANIM_H_VIBRATE, - [SPECIES_CINDERACE] = BACK_ANIM_H_VIBRATE, - [SPECIES_SOBBLE] = BACK_ANIM_H_VIBRATE, - [SPECIES_DRIZZILE] = BACK_ANIM_H_VIBRATE, - [SPECIES_INTELEON] = BACK_ANIM_H_VIBRATE, - [SPECIES_SKWOVET] = BACK_ANIM_H_VIBRATE, - [SPECIES_GREEDENT] = BACK_ANIM_H_VIBRATE, - [SPECIES_ROOKIDEE] = BACK_ANIM_H_VIBRATE, - [SPECIES_CORVISQUIRE] = BACK_ANIM_H_VIBRATE, - [SPECIES_CORVIKNIGHT] = BACK_ANIM_H_VIBRATE, - [SPECIES_BLIPBUG] = BACK_ANIM_H_VIBRATE, - [SPECIES_DOTTLER] = BACK_ANIM_H_VIBRATE, - [SPECIES_ORBEETLE] = BACK_ANIM_H_VIBRATE, - [SPECIES_NICKIT] = BACK_ANIM_H_VIBRATE, - [SPECIES_THIEVUL] = BACK_ANIM_H_VIBRATE, - [SPECIES_GOSSIFLEUR] = BACK_ANIM_H_VIBRATE, - [SPECIES_ELDEGOSS] = BACK_ANIM_H_VIBRATE, - [SPECIES_WOOLOO] = BACK_ANIM_H_VIBRATE, - [SPECIES_DUBWOOL] = BACK_ANIM_H_VIBRATE, - [SPECIES_CHEWTLE] = BACK_ANIM_H_VIBRATE, - [SPECIES_DREDNAW] = BACK_ANIM_H_VIBRATE, - [SPECIES_YAMPER] = BACK_ANIM_H_VIBRATE, - [SPECIES_BOLTUND] = BACK_ANIM_H_VIBRATE, - [SPECIES_ROLYCOLY] = BACK_ANIM_H_VIBRATE, - [SPECIES_CARKOL] = BACK_ANIM_H_VIBRATE, - [SPECIES_COALOSSAL] = BACK_ANIM_H_VIBRATE, - [SPECIES_APPLIN] = BACK_ANIM_H_VIBRATE, - [SPECIES_FLAPPLE] = BACK_ANIM_H_VIBRATE, - [SPECIES_APPLETUN] = BACK_ANIM_H_VIBRATE, - [SPECIES_SILICOBRA] = BACK_ANIM_H_VIBRATE, - [SPECIES_SANDACONDA] = BACK_ANIM_H_VIBRATE, - [SPECIES_CRAMORANT] = BACK_ANIM_H_VIBRATE, - [SPECIES_ARROKUDA] = BACK_ANIM_H_VIBRATE, - [SPECIES_BARRASKEWDA] = BACK_ANIM_H_VIBRATE, - [SPECIES_TOXEL] = BACK_ANIM_H_VIBRATE, - [SPECIES_TOXTRICITY] = BACK_ANIM_H_VIBRATE, - [SPECIES_SIZZLIPEDE] = BACK_ANIM_H_VIBRATE, - [SPECIES_CENTISKORCH] = BACK_ANIM_H_VIBRATE, - [SPECIES_CLOBBOPUS] = BACK_ANIM_H_VIBRATE, - [SPECIES_GRAPPLOCT] = BACK_ANIM_H_VIBRATE, - [SPECIES_SINISTEA] = BACK_ANIM_H_VIBRATE, - [SPECIES_POLTEAGEIST] = BACK_ANIM_H_VIBRATE, - [SPECIES_HATENNA] = BACK_ANIM_H_VIBRATE, - [SPECIES_HATTREM] = BACK_ANIM_H_VIBRATE, - [SPECIES_HATTERENE] = BACK_ANIM_H_VIBRATE, - [SPECIES_IMPIDIMP] = BACK_ANIM_H_VIBRATE, - [SPECIES_MORGREM] = BACK_ANIM_H_VIBRATE, - [SPECIES_GRIMMSNARL] = BACK_ANIM_H_VIBRATE, - [SPECIES_OBSTAGOON] = BACK_ANIM_H_VIBRATE, - [SPECIES_PERRSERKER] = BACK_ANIM_H_VIBRATE, - [SPECIES_CURSOLA] = BACK_ANIM_H_VIBRATE, - [SPECIES_SIRFETCHD] = BACK_ANIM_H_VIBRATE, - [SPECIES_MR_RIME] = BACK_ANIM_H_VIBRATE, - [SPECIES_RUNERIGUS] = BACK_ANIM_H_VIBRATE, - [SPECIES_MILCERY] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE] = BACK_ANIM_H_VIBRATE, - [SPECIES_FALINKS] = BACK_ANIM_H_VIBRATE, - [SPECIES_PINCURCHIN] = BACK_ANIM_H_VIBRATE, - [SPECIES_SNOM] = BACK_ANIM_H_VIBRATE, - [SPECIES_FROSMOTH] = BACK_ANIM_H_VIBRATE, - [SPECIES_STONJOURNER] = BACK_ANIM_H_VIBRATE, - [SPECIES_EISCUE] = BACK_ANIM_H_VIBRATE, - [SPECIES_INDEEDEE] = BACK_ANIM_H_VIBRATE, - [SPECIES_MORPEKO] = BACK_ANIM_H_VIBRATE, - [SPECIES_CUFANT] = BACK_ANIM_H_VIBRATE, - [SPECIES_COPPERAJAH] = BACK_ANIM_H_VIBRATE, - [SPECIES_DRACOZOLT] = BACK_ANIM_H_VIBRATE, - [SPECIES_ARCTOZOLT] = BACK_ANIM_H_VIBRATE, - [SPECIES_DRACOVISH] = BACK_ANIM_H_VIBRATE, - [SPECIES_ARCTOVISH] = BACK_ANIM_H_VIBRATE, - [SPECIES_DURALUDON] = BACK_ANIM_H_VIBRATE, - [SPECIES_DREEPY] = BACK_ANIM_H_VIBRATE, - [SPECIES_DRAKLOAK] = BACK_ANIM_H_VIBRATE, - [SPECIES_DRAGAPULT] = BACK_ANIM_H_VIBRATE, - [SPECIES_ZACIAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_ZAMAZENTA] = BACK_ANIM_H_VIBRATE, - [SPECIES_ETERNATUS] = BACK_ANIM_H_VIBRATE, - [SPECIES_KUBFU] = BACK_ANIM_H_VIBRATE, - [SPECIES_URSHIFU] = BACK_ANIM_H_VIBRATE, - [SPECIES_ZARUDE] = BACK_ANIM_H_VIBRATE, - [SPECIES_REGIELEKI] = BACK_ANIM_H_VIBRATE, - [SPECIES_REGIDRAGO] = BACK_ANIM_H_VIBRATE, - [SPECIES_GLASTRIER] = BACK_ANIM_H_VIBRATE, - [SPECIES_SPECTRIER] = BACK_ANIM_H_VIBRATE, - [SPECIES_CALYREX] = BACK_ANIM_H_VIBRATE, - [SPECIES_WYRDEER] = BACK_ANIM_H_VIBRATE, - [SPECIES_KLEAVOR] = BACK_ANIM_H_VIBRATE, - [SPECIES_URSALUNA] = BACK_ANIM_H_VIBRATE, - [SPECIES_BASCULEGION] = BACK_ANIM_H_VIBRATE, - [SPECIES_SNEASLER] = BACK_ANIM_H_VIBRATE, - [SPECIES_OVERQWIL] = BACK_ANIM_H_VIBRATE, - [SPECIES_ENAMORUS] = BACK_ANIM_H_VIBRATE, - - // Gen 3 Forms - [SPECIES_CASTFORM_SUNNY] = BACK_ANIM_SHAKE_GLOW_RED, - [SPECIES_CASTFORM_RAINY] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_CASTFORM_SNOWY] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_DEOXYS_ATTACK] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_DEOXYS_DEFENSE] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_DEOXYS_SPEED] = BACK_ANIM_TRIANGLE_DOWN, - - // Gen 4 Forms - [SPECIES_BURMY_SANDY_CLOAK] = BACK_ANIM_H_SHAKE, - [SPECIES_BURMY_TRASH_CLOAK] = BACK_ANIM_H_SHAKE, - [SPECIES_WORMADAM_SANDY_CLOAK] = BACK_ANIM_V_SHAKE, - [SPECIES_WORMADAM_TRASH_CLOAK] = BACK_ANIM_V_SHAKE, - [SPECIES_CHERRIM_SUNSHINE] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_SHELLOS_EAST_SEA] = BACK_ANIM_H_SPRING, - [SPECIES_GASTRODON_EAST_SEA] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_ROTOM_HEAT] = BACK_ANIM_SHAKE_GLOW_RED, - [SPECIES_ROTOM_WASH] = BACK_ANIM_V_SHAKE_H_SLIDE, - [SPECIES_ROTOM_FROST] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_ROTOM_FAN] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_ROTOM_MOW] = BACK_ANIM_H_SLIDE, - [SPECIES_GIRATINA_ORIGIN] = BACK_ANIM_GROW_STUTTER, - [SPECIES_SHAYMIN_SKY] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_ARCEUS_FIGHTING] = BACK_ANIM_GROW_STUTTER, - [SPECIES_ARCEUS_FLYING] = BACK_ANIM_GROW_STUTTER, - [SPECIES_ARCEUS_POISON] = BACK_ANIM_GROW_STUTTER, - [SPECIES_ARCEUS_GROUND] = BACK_ANIM_GROW_STUTTER, - [SPECIES_ARCEUS_ROCK] = BACK_ANIM_GROW_STUTTER, - [SPECIES_ARCEUS_BUG] = BACK_ANIM_GROW_STUTTER, - [SPECIES_ARCEUS_GHOST] = BACK_ANIM_GROW_STUTTER, - [SPECIES_ARCEUS_STEEL] = BACK_ANIM_GROW_STUTTER, - [SPECIES_ARCEUS_FIRE] = BACK_ANIM_GROW_STUTTER, - [SPECIES_ARCEUS_WATER] = BACK_ANIM_GROW_STUTTER, - [SPECIES_ARCEUS_GRASS] = BACK_ANIM_GROW_STUTTER, - [SPECIES_ARCEUS_ELECTRIC] = BACK_ANIM_GROW_STUTTER, - [SPECIES_ARCEUS_PSYCHIC] = BACK_ANIM_GROW_STUTTER, - [SPECIES_ARCEUS_ICE] = BACK_ANIM_GROW_STUTTER, - [SPECIES_ARCEUS_DRAGON] = BACK_ANIM_GROW_STUTTER, - [SPECIES_ARCEUS_DARK] = BACK_ANIM_GROW_STUTTER, - [SPECIES_ARCEUS_FAIRY] = BACK_ANIM_GROW_STUTTER, - - //Gen 5 Forms - [SPECIES_BASCULIN_BLUE_STRIPED] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_BASCULIN_WHITE_STRIPED] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_DARMANITAN_ZEN_MODE] = BACK_ANIM_H_SHAKE, - [SPECIES_DEERLING_SUMMER] = BACK_ANIM_H_SLIDE, - [SPECIES_DEERLING_AUTUMN] = BACK_ANIM_H_SLIDE, - [SPECIES_DEERLING_WINTER] = BACK_ANIM_H_SLIDE, - [SPECIES_SAWSBUCK_SUMMER] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_SAWSBUCK_AUTUMN] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_SAWSBUCK_WINTER] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_TORNADUS_THERIAN] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_THUNDURUS_THERIAN] = BACK_ANIM_SHAKE_FLASH_YELLOW, - [SPECIES_LANDORUS_THERIAN] = BACK_ANIM_GROW_STUTTER, - [SPECIES_KYUREM_WHITE] = BACK_ANIM_SHAKE_GLOW_RED, - [SPECIES_KYUREM_BLACK] = BACK_ANIM_SHAKE_GLOW_BLUE, - [SPECIES_KELDEO_RESOLUTE] = BACK_ANIM_GROW_STUTTER, - [SPECIES_MELOETTA_PIROUETTE] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_GENESECT_DOUSE_DRIVE] = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - [SPECIES_GENESECT_SHOCK_DRIVE] = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - [SPECIES_GENESECT_BURN_DRIVE] = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - [SPECIES_GENESECT_CHILL_DRIVE] = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - - //Gen 6 Forms - [SPECIES_GRENINJA_ASH] = BACK_ANIM_SHAKE_GLOW_BLUE, - [SPECIES_GRENINJA_BATTLE_BOND] = BACK_ANIM_V_STRETCH, - [SPECIES_VIVILLON_POLAR] = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - [SPECIES_VIVILLON_TUNDRA] = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - [SPECIES_VIVILLON_CONTINENTAL] = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - [SPECIES_VIVILLON_GARDEN] = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - [SPECIES_VIVILLON_ELEGANT] = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - [SPECIES_VIVILLON_MEADOW] = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - [SPECIES_VIVILLON_MODERN] = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - [SPECIES_VIVILLON_MARINE] = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - [SPECIES_VIVILLON_ARCHIPELAGO] = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - [SPECIES_VIVILLON_HIGH_PLAINS] = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - [SPECIES_VIVILLON_SANDSTORM] = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - [SPECIES_VIVILLON_RIVER] = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - [SPECIES_VIVILLON_MONSOON] = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - [SPECIES_VIVILLON_SAVANNA] = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - [SPECIES_VIVILLON_SUN] = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - [SPECIES_VIVILLON_OCEAN] = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - [SPECIES_VIVILLON_JUNGLE] = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - [SPECIES_VIVILLON_FANCY] = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - [SPECIES_VIVILLON_POKE_BALL] = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, - [SPECIES_FLABEBE_YELLOW_FLOWER] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_FLABEBE_ORANGE_FLOWER] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_FLABEBE_BLUE_FLOWER] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_FLABEBE_WHITE_FLOWER] = BACK_ANIM_CONCAVE_ARC_SMALL, - [SPECIES_FLOETTE_YELLOW_FLOWER] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_FLOETTE_ORANGE_FLOWER] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_FLOETTE_BLUE_FLOWER] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_FLOETTE_WHITE_FLOWER] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_FLOETTE_ETERNAL_FLOWER] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_FLORGES_YELLOW_FLOWER] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_FLORGES_ORANGE_FLOWER] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_FLORGES_BLUE_FLOWER] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_FLORGES_WHITE_FLOWER] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_FURFROU_HEART_TRIM] = BACK_ANIM_V_STRETCH, - [SPECIES_FURFROU_STAR_TRIM] = BACK_ANIM_V_STRETCH, - [SPECIES_FURFROU_DIAMOND_TRIM] = BACK_ANIM_V_STRETCH, - [SPECIES_FURFROU_DEBUTANTE_TRIM] = BACK_ANIM_V_STRETCH, - [SPECIES_FURFROU_MATRON_TRIM] = BACK_ANIM_V_STRETCH, - [SPECIES_FURFROU_DANDY_TRIM] = BACK_ANIM_V_STRETCH, - [SPECIES_FURFROU_LA_REINE_TRIM] = BACK_ANIM_V_STRETCH, - [SPECIES_FURFROU_KABUKI_TRIM] = BACK_ANIM_V_STRETCH, - [SPECIES_FURFROU_PHARAOH_TRIM] = BACK_ANIM_V_STRETCH, - [SPECIES_MEOWSTIC_FEMALE] = BACK_ANIM_CONCAVE_ARC_LARGE, - [SPECIES_AEGISLASH_BLADE] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_PUMPKABOO_SMALL] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_PUMPKABOO_LARGE] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_PUMPKABOO_SUPER] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_GOURGEIST_SMALL] = BACK_ANIM_V_STRETCH, - [SPECIES_GOURGEIST_LARGE] = BACK_ANIM_V_STRETCH, - [SPECIES_GOURGEIST_SUPER] = BACK_ANIM_V_STRETCH, - [SPECIES_XERNEAS_ACTIVE] = BACK_ANIM_SHAKE_GLOW_BLUE, - [SPECIES_ZYGARDE_10_AURA_BREAK] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_ZYGARDE_10_POWER_CONSTRUCT] = BACK_ANIM_SHAKE_GLOW_GREEN, - [SPECIES_ZYGARDE_50_POWER_CONSTRUCT] = BACK_ANIM_SHAKE_GLOW_GREEN, - [SPECIES_ZYGARDE_COMPLETE] = BACK_ANIM_SHAKE_GLOW_GREEN, - [SPECIES_HOOPA_UNBOUND] = BACK_ANIM_V_SHAKE_LOW, - - // Gen 7 Forms todo: assign - [SPECIES_ORICORIO_POM_POM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ORICORIO_PAU] = BACK_ANIM_H_VIBRATE, - [SPECIES_ORICORIO_SENSU] = BACK_ANIM_H_VIBRATE, - [SPECIES_ROCKRUFF_OWN_TEMPO] = BACK_ANIM_H_VIBRATE, - [SPECIES_LYCANROC_MIDNIGHT] = BACK_ANIM_H_VIBRATE, - [SPECIES_LYCANROC_DUSK] = BACK_ANIM_H_VIBRATE, - [SPECIES_WISHIWASHI_SCHOOL] = BACK_ANIM_H_VIBRATE, - [SPECIES_SILVALLY_FIGHTING] = BACK_ANIM_H_VIBRATE, - [SPECIES_SILVALLY_FLYING] = BACK_ANIM_H_VIBRATE, - [SPECIES_SILVALLY_POISON] = BACK_ANIM_H_VIBRATE, - [SPECIES_SILVALLY_GROUND] = BACK_ANIM_H_VIBRATE, - [SPECIES_SILVALLY_ROCK] = BACK_ANIM_H_VIBRATE, - [SPECIES_SILVALLY_BUG] = BACK_ANIM_H_VIBRATE, - [SPECIES_SILVALLY_GHOST] = BACK_ANIM_H_VIBRATE, - [SPECIES_SILVALLY_STEEL] = BACK_ANIM_H_VIBRATE, - [SPECIES_SILVALLY_FIRE] = BACK_ANIM_H_VIBRATE, - [SPECIES_SILVALLY_WATER] = BACK_ANIM_H_VIBRATE, - [SPECIES_SILVALLY_GRASS] = BACK_ANIM_H_VIBRATE, - [SPECIES_SILVALLY_ELECTRIC] = BACK_ANIM_H_VIBRATE, - [SPECIES_SILVALLY_PSYCHIC] = BACK_ANIM_H_VIBRATE, - [SPECIES_SILVALLY_ICE] = BACK_ANIM_H_VIBRATE, - [SPECIES_SILVALLY_DRAGON] = BACK_ANIM_H_VIBRATE, - [SPECIES_SILVALLY_DARK] = BACK_ANIM_H_VIBRATE, - [SPECIES_SILVALLY_FAIRY] = BACK_ANIM_H_VIBRATE, - [SPECIES_MINIOR_METEOR_ORANGE] = BACK_ANIM_H_VIBRATE, - [SPECIES_MINIOR_METEOR_YELLOW] = BACK_ANIM_H_VIBRATE, - [SPECIES_MINIOR_METEOR_GREEN] = BACK_ANIM_H_VIBRATE, - [SPECIES_MINIOR_METEOR_BLUE] = BACK_ANIM_H_VIBRATE, - [SPECIES_MINIOR_METEOR_INDIGO] = BACK_ANIM_H_VIBRATE, - [SPECIES_MINIOR_METEOR_VIOLET] = BACK_ANIM_H_VIBRATE, - [SPECIES_MINIOR_CORE_RED] = BACK_ANIM_H_VIBRATE, - [SPECIES_MINIOR_CORE_ORANGE] = BACK_ANIM_H_VIBRATE, - [SPECIES_MINIOR_CORE_YELLOW] = BACK_ANIM_H_VIBRATE, - [SPECIES_MINIOR_CORE_GREEN] = BACK_ANIM_H_VIBRATE, - [SPECIES_MINIOR_CORE_BLUE] = BACK_ANIM_H_VIBRATE, - [SPECIES_MINIOR_CORE_INDIGO] = BACK_ANIM_H_VIBRATE, - [SPECIES_MINIOR_CORE_VIOLET] = BACK_ANIM_H_VIBRATE, - [SPECIES_MIMIKYU_BUSTED] = BACK_ANIM_H_VIBRATE, - [SPECIES_NECROZMA_DUSK_MANE] = BACK_ANIM_H_VIBRATE, - [SPECIES_NECROZMA_DAWN_WINGS] = BACK_ANIM_H_VIBRATE, - [SPECIES_NECROZMA_ULTRA] = BACK_ANIM_H_VIBRATE, - [SPECIES_MAGEARNA_ORIGINAL_COLOR] = BACK_ANIM_H_VIBRATE, - - // Gen 8 Forms todo: assign - [SPECIES_CRAMORANT_GULPING] = BACK_ANIM_H_VIBRATE, - [SPECIES_CRAMORANT_GORGING] = BACK_ANIM_H_VIBRATE, - [SPECIES_TOXTRICITY_LOW_KEY] = BACK_ANIM_H_VIBRATE, - [SPECIES_SINISTEA_ANTIQUE] = BACK_ANIM_H_VIBRATE, - [SPECIES_POLTEAGEIST_ANTIQUE] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_RUBY_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_MATCHA_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_MINT_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_LEMON_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_SALTED_CREAM] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_RUBY_SWIRL] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_CARAMEL_SWIRL] = BACK_ANIM_H_VIBRATE, - [SPECIES_ALCREMIE_RAINBOW_SWIRL] = BACK_ANIM_H_VIBRATE, - [SPECIES_EISCUE_NOICE_FACE] = BACK_ANIM_H_VIBRATE, - [SPECIES_INDEEDEE_FEMALE] = BACK_ANIM_H_VIBRATE, - [SPECIES_MORPEKO_HANGRY] = BACK_ANIM_H_VIBRATE, - [SPECIES_ZACIAN_CROWNED_SWORD] = BACK_ANIM_H_VIBRATE, - [SPECIES_ZAMAZENTA_CROWNED_SHIELD] = BACK_ANIM_H_VIBRATE, - [SPECIES_ETERNATUS_ETERNAMAX] = BACK_ANIM_H_VIBRATE, - [SPECIES_URSHIFU_RAPID_STRIKE_STYLE] = BACK_ANIM_H_VIBRATE, - [SPECIES_ZARUDE_DADA] = BACK_ANIM_H_VIBRATE, - [SPECIES_CALYREX_ICE_RIDER] = BACK_ANIM_H_VIBRATE, - [SPECIES_CALYREX_SHADOW_RIDER] = BACK_ANIM_H_VIBRATE, - [SPECIES_BASCULEGION_FEMALE] = BACK_ANIM_H_VIBRATE, - - // Alolan Forms - [SPECIES_RATTATA_ALOLAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_RATICATE_ALOLAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_RAICHU_ALOLAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_SANDSHREW_ALOLAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_SANDSLASH_ALOLAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_VULPIX_ALOLAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_NINETALES_ALOLAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_DIGLETT_ALOLAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_DUGTRIO_ALOLAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_MEOWTH_ALOLAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_PERSIAN_ALOLAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_GEODUDE_ALOLAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_GRAVELER_ALOLAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_GOLEM_ALOLAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_GRIMER_ALOLAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_MUK_ALOLAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_EXEGGUTOR_ALOLAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_MAROWAK_ALOLAN] = BACK_ANIM_H_VIBRATE, - - // Galarian Forms - [SPECIES_MEOWTH_GALARIAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_PONYTA_GALARIAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_RAPIDASH_GALARIAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_SLOWPOKE_GALARIAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_SLOWBRO_GALARIAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_FARFETCHD_GALARIAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_WEEZING_GALARIAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_MR_MIME_GALARIAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_ARTICUNO_GALARIAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_ZAPDOS_GALARIAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_MOLTRES_GALARIAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_SLOWKING_GALARIAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_CORSOLA_GALARIAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_ZIGZAGOON_GALARIAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_LINOONE_GALARIAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_DARUMAKA_GALARIAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_DARMANITAN_GALARIAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_YAMASK_GALARIAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_STUNFISK_GALARIAN] = BACK_ANIM_H_VIBRATE, - - // Hisuian Forms - [SPECIES_GROWLITHE_HISUIAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_ARCANINE_HISUIAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_VOLTORB_HISUIAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_ELECTRODE_HISUIAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_TYPHLOSION_HISUIAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_QWILFISH_HISUIAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_SNEASEL_HISUIAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_SAMUROTT_HISUIAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_LILLIGANT_HISUIAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_ZORUA_HISUIAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_ZOROARK_HISUIAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_BRAVIARY_HISUIAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_SLIGGOO_HISUIAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_GOODRA_HISUIAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_AVALUGG_HISUIAN] = BACK_ANIM_H_VIBRATE, - [SPECIES_DECIDUEYE_HISUIAN] = BACK_ANIM_H_VIBRATE, - - // Mega/Primal Forms (Thanks Furret/CyanSMP64!) - [SPECIES_VENUSAUR_MEGA] = BACK_ANIM_SHAKE_GLOW_GREEN, - [SPECIES_CHARIZARD_MEGA_X] = BACK_ANIM_SHAKE_GLOW_BLUE, - [SPECIES_CHARIZARD_MEGA_Y] = BACK_ANIM_SHAKE_GLOW_RED, - [SPECIES_BLASTOISE_MEGA] = BACK_ANIM_SHAKE_GLOW_BLUE, - [SPECIES_BEEDRILL_MEGA] = BACK_ANIM_H_VIBRATE, - [SPECIES_PIDGEOT_MEGA] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_ALAKAZAM_MEGA] = BACK_ANIM_GROW_STUTTER, - [SPECIES_SLOWBRO_MEGA] = BACK_ANIM_DIP_RIGHT_SIDE, - [SPECIES_GENGAR_MEGA] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_KANGASKHAN_MEGA] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_PINSIR_MEGA] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_GYARADOS_MEGA] = BACK_ANIM_V_SHAKE, - [SPECIES_AERODACTYL_MEGA] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_MEWTWO_MEGA_X] = BACK_ANIM_GROW_STUTTER, - [SPECIES_MEWTWO_MEGA_Y] = BACK_ANIM_GROW_STUTTER, - [SPECIES_AMPHAROS_MEGA] = BACK_ANIM_SHAKE_FLASH_YELLOW, - [SPECIES_STEELIX_MEGA] = BACK_ANIM_V_SHAKE, - [SPECIES_SCIZOR_MEGA] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_HERACROSS_MEGA] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_HOUNDOOM_MEGA] = BACK_ANIM_V_SHAKE, - [SPECIES_TYRANITAR_MEGA] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_SCEPTILE_MEGA] = BACK_ANIM_V_SHAKE, - [SPECIES_BLAZIKEN_MEGA] = BACK_ANIM_SHAKE_GLOW_RED, - [SPECIES_SWAMPERT_MEGA] = BACK_ANIM_SHAKE_GLOW_BLUE, - [SPECIES_GARDEVOIR_MEGA] = BACK_ANIM_SHAKE_GLOW_GREEN, - [SPECIES_SABLEYE_MEGA] = BACK_ANIM_H_VIBRATE, - [SPECIES_MAWILE_MEGA] = BACK_ANIM_V_SHAKE, - [SPECIES_AGGRON_MEGA] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_MEDICHAM_MEGA] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_MANECTRIC_MEGA] = BACK_ANIM_SHAKE_FLASH_YELLOW, - [SPECIES_SHARPEDO_MEGA] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_CAMERUPT_MEGA] = BACK_ANIM_SHAKE_GLOW_RED, - [SPECIES_ALTARIA_MEGA] = BACK_ANIM_CONVEX_DOUBLE_ARC, - [SPECIES_BANETTE_MEGA] = BACK_ANIM_H_VIBRATE, - [SPECIES_ABSOL_MEGA] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_GLALIE_MEGA] = BACK_ANIM_TRIANGLE_DOWN, - [SPECIES_SALAMENCE_MEGA] = BACK_ANIM_H_SHAKE, - [SPECIES_METAGROSS_MEGA] = BACK_ANIM_V_SHAKE, - [SPECIES_LATIAS_MEGA] = BACK_ANIM_H_VIBRATE, - [SPECIES_LATIOS_MEGA] = BACK_ANIM_H_VIBRATE, - [SPECIES_LOPUNNY_MEGA] = BACK_ANIM_CONCAVE_ARC_LARGE, - [SPECIES_GARCHOMP_MEGA] = BACK_ANIM_JOLT_RIGHT, - [SPECIES_LUCARIO_MEGA] = BACK_ANIM_CONCAVE_ARC_LARGE, - [SPECIES_ABOMASNOW_MEGA] = BACK_ANIM_V_SHAKE_LOW, - [SPECIES_GALLADE_MEGA] = BACK_ANIM_SHRINK_GROW_VIBRATE, - [SPECIES_RAYQUAZA_MEGA] = BACK_ANIM_SHAKE_GLOW_GREEN, - [SPECIES_KYOGRE_PRIMAL] = BACK_ANIM_SHAKE_GLOW_BLUE, - [SPECIES_GROUDON_PRIMAL] = BACK_ANIM_SHAKE_GLOW_RED, - - // Other Forms - [SPECIES_PIKACHU_COSPLAY] = BACK_ANIM_H_VIBRATE, - [SPECIES_PIKACHU_ROCK_STAR] = BACK_ANIM_H_VIBRATE, - [SPECIES_PIKACHU_BELLE] = BACK_ANIM_H_VIBRATE, - [SPECIES_PIKACHU_POP_STAR] = BACK_ANIM_H_VIBRATE, - [SPECIES_PIKACHU_PH_D] = BACK_ANIM_H_VIBRATE, - [SPECIES_PIKACHU_LIBRE] = BACK_ANIM_H_VIBRATE, - [SPECIES_PIKACHU_ORIGINAL_CAP] = BACK_ANIM_H_VIBRATE, - [SPECIES_PIKACHU_HOENN_CAP] = BACK_ANIM_H_VIBRATE, - [SPECIES_PIKACHU_SINNOH_CAP] = BACK_ANIM_H_VIBRATE, - [SPECIES_PIKACHU_UNOVA_CAP] = BACK_ANIM_H_VIBRATE, - [SPECIES_PIKACHU_KALOS_CAP] = BACK_ANIM_H_VIBRATE, - [SPECIES_PIKACHU_ALOLA_CAP] = BACK_ANIM_H_VIBRATE, - [SPECIES_PIKACHU_PARTNER_CAP] = BACK_ANIM_H_VIBRATE, - [SPECIES_PIKACHU_WORLD_CAP] = BACK_ANIM_H_VIBRATE, - [SPECIES_PICHU_SPIKY_EARED] = BACK_ANIM_H_VIBRATE, -}; - // Equivalent to struct YellowFlashData, but doesn't match as a struct static const u8 sYellowFlashData[][2] = { @@ -1741,10 +498,10 @@ static void SetPosForRotation(struct Sprite *sprite, u16 index, s16 amplitudeX, u8 GetSpeciesBackAnimSet(u16 species) { - if (sSpeciesToBackAnimSet[species] != BACK_ANIM_NONE) - return sSpeciesToBackAnimSet[species] - 1; + if (gSpeciesInfo[species].backAnimId != BACK_ANIM_NONE) + return gSpeciesInfo[species].backAnimId - 1; else - return 0; + return BACK_ANIM_NONE; } #define tState data[0] diff --git a/src/pokemon_debug.c b/src/pokemon_debug.c index 8090a96f7c70..6f0cd3956cd6 100644 --- a/src/pokemon_debug.c +++ b/src/pokemon_debug.c @@ -45,7 +45,6 @@ extern const struct CompressedSpriteSheet gSpriteSheet_EnemyShadow; extern const struct SpriteTemplate gSpriteTemplate_EnemyShadow; extern const struct SpritePalette sSpritePalettes_HealthBoxHealthBar[2]; extern const struct UCoords8 sBattlerCoords[][MAX_BATTLERS_COUNT] ; -extern const u8 sMonFrontAnimIdsTable[NUM_SPECIES - 1]; static const u16 sBgColor[] = {RGB_WHITE}; static struct PokemonDebugMenu *GetStructPtr(u8 taskId) @@ -397,7 +396,7 @@ static void PrintInstructionsOnWindow(struct PokemonDebugMenu *data) u8 x = 2; u8 textInstructions[] = _("{START_BUTTON} Shiny\n{B_BUTTON} Exit {A_BUTTON} Submenu 1$"); u8 textInstructionsGender[] = _("{START_BUTTON} Shiny {SELECT_BUTTON} Gender\n{B_BUTTON} Exit {A_BUTTON} Submenu 1$"); - u8 textInstructionsSubmenuOne[] = _("{START_BUTTON} Shiny\n{B_BUTTON} Back {A_BUTTON} Submenu 2$"); + u8 textInstructionsSubmenuOne[] = _("{START_BUTTON} Shiny\n{B_BUTTON} Back {A_BUTTON} Submenu 2$"); u8 textInstructionsSubmenuOneGender[] = _("{START_BUTTON} Shiny {SELECT_BUTTON} Gender\n{B_BUTTON} Back {A_BUTTON} Submenu 2$"); u8 textInstructionsSubmenuTwo[] = _("{START_BUTTON} Shiny\n{B_BUTTON} Back$"); u8 textInstructionsSubmenuTwoGender[] = _("{START_BUTTON} Shiny {SELECT_BUTTON} Gender\n{B_BUTTON} Back$"); @@ -434,7 +433,7 @@ static void PrintInstructionsOnWindow(struct PokemonDebugMenu *data) else AddTextPrinterParameterized(WIN_INSTRUCTIONS, fontId, textInstructionsSubmenuTwo, x, 0, 0, NULL); } - CopyWindowToVram(WIN_INSTRUCTIONS, 3); + CopyWindowToVram(WIN_INSTRUCTIONS, COPYWIN_FULL); //Bottom left text FillWindowPixelBuffer(WIN_BOTTOM_LEFT, PIXEL_FILL(0)); @@ -442,7 +441,7 @@ static void PrintInstructionsOnWindow(struct PokemonDebugMenu *data) { AddTextPrinterParameterized(WIN_BOTTOM_LEFT, fontId, textL, 30, 0, 0, NULL); AddTextPrinterParameterized(WIN_BOTTOM_LEFT, fontId, textR, 30, 12, 0, NULL); - if (gFormSpeciesIdTables[data->currentmonId] != NULL) + if (GetSpeciesFormTable(data->currentmonId) != NULL) AddTextPrinterParameterized(WIN_BOTTOM_LEFT, fontId, textBottomForms, 0, 0, 0, NULL); else AddTextPrinterParameterized(WIN_BOTTOM_LEFT, fontId, textBottom, 0, 0, 0, NULL); @@ -496,7 +495,7 @@ static void PrintDigitChars(struct PokemonDebugMenu *data) StringCopy(&text[i], GetSpeciesName(species)); FillWindowPixelBuffer(WIN_NAME_NUMBERS, 0x11); - AddTextPrinterParameterized(WIN_NAME_NUMBERS, 1, text, 6, 0, 0, NULL); + AddTextPrinterParameterized(WIN_NAME_NUMBERS, FONT_NORMAL, text, 6, 0, 0, NULL); } static u32 CharDigitsToValue(u8 *charDigits, u8 maxDigits) @@ -680,25 +679,25 @@ static void UpdateBattlerValue(struct PokemonDebugMenu *data) } //Sprite functions -static const struct CompressedSpritePalette *GetMonSpritePalStructCustom(u16 species, bool8 isFemale, bool8 isShiny) +static const u32 *GetMonSpritePalStructCustom(u16 species, bool8 isFemale, bool8 isShiny) { if (isShiny) { - if (gMonShinyPaletteTableFemale[species].data != NULL && isFemale) - return &gMonShinyPaletteTableFemale[species]; - else if (gMonShinyPaletteTable[species].data != NULL) - return &gMonShinyPaletteTable[species]; + if (gSpeciesInfo[species].shinyPaletteFemale != NULL && isFemale) + return gSpeciesInfo[species].shinyPaletteFemale; + else if (gSpeciesInfo[species].shinyPalette != NULL) + return gSpeciesInfo[species].shinyPalette; else - return &gMonShinyPaletteTable[SPECIES_NONE]; + return gSpeciesInfo[SPECIES_NONE].shinyPalette; } else { - if (gMonPaletteTableFemale[species].data != NULL && isFemale) - return &gMonPaletteTableFemale[species]; - else if (gMonPaletteTable[species].data != NULL) - return &gMonPaletteTable[species]; + if (gSpeciesInfo[species].paletteFemale != NULL && isFemale) + return gSpeciesInfo[species].paletteFemale; + else if (gSpeciesInfo[species].palette != NULL) + return gSpeciesInfo[species].palette; else - return &gMonPaletteTable[SPECIES_NONE]; + return gSpeciesInfo[SPECIES_NONE].palette; } } @@ -709,21 +708,21 @@ static void BattleLoadOpponentMonSpriteGfxCustom(u16 species, bool8 isFemale, bo if (isShiny) { - if (gMonShinyPaletteTableFemale[species].data != NULL && isFemale) - lzPaletteData = gMonShinyPaletteTableFemale[species].data; - else if (gMonShinyPaletteTable[species].data != NULL) - lzPaletteData = gMonShinyPaletteTable[species].data; + if (gSpeciesInfo[species].shinyPaletteFemale != NULL && isFemale) + lzPaletteData = gSpeciesInfo[species].shinyPaletteFemale; + else if (gSpeciesInfo[species].shinyPalette != NULL) + lzPaletteData = gSpeciesInfo[species].shinyPalette; else - lzPaletteData = gMonShinyPaletteTable[SPECIES_NONE].data; + lzPaletteData = gSpeciesInfo[SPECIES_NONE].shinyPalette; } else { - if (gMonPaletteTableFemale[species].data != NULL && isFemale) - lzPaletteData = gMonPaletteTableFemale[species].data; - else if (gMonPaletteTable[species].data != NULL) - lzPaletteData = gMonPaletteTable[species].data; + if (gSpeciesInfo[species].paletteFemale != NULL && isFemale) + lzPaletteData = gSpeciesInfo[species].paletteFemale; + else if (gSpeciesInfo[species].palette != NULL) + lzPaletteData = gSpeciesInfo[species].palette; else - lzPaletteData = gMonPaletteTable[SPECIES_NONE].data; + lzPaletteData = gSpeciesInfo[SPECIES_NONE].palette; } LZDecompressWram(lzPaletteData, gDecompressionBuffer); @@ -734,9 +733,9 @@ static void BattleLoadOpponentMonSpriteGfxCustom(u16 species, bool8 isFemale, bo static void SetConstSpriteValues(struct PokemonDebugMenu *data) { u16 species = data->currentmonId; - data->constSpriteValues.frontPicCoords = gMonFrontPicCoords[species].y_offset; - data->constSpriteValues.frontElevation = gEnemyMonElevation[species]; - data->constSpriteValues.backPicCoords = gMonBackPicCoords[species].y_offset; + data->constSpriteValues.frontPicCoords = gSpeciesInfo[species].frontPicYOffset; + data->constSpriteValues.frontElevation = gSpeciesInfo[species].enemyMonElevation; + data->constSpriteValues.backPicCoords = gSpeciesInfo[species].backPicYOffset; } static void ResetOffsetSpriteValues(struct PokemonDebugMenu *data) @@ -750,12 +749,13 @@ static u8 GetBattlerSpriteFinal_YCustom(u16 species, s8 offset_picCoords, s8 off { u16 offset; u8 y; + species = SanitizeSpeciesId(species); //FrontPicCoords - offset = gMonFrontPicCoords[species].y_offset + offset_picCoords; + offset = gSpeciesInfo[species].frontPicYOffset + offset_picCoords; //Elevation - offset -= gEnemyMonElevation[species] + offset_elevation; + offset -= gSpeciesInfo[species].enemyMonElevation + offset_elevation; //Main position y = offset + sBattlerCoords[0][1].y; @@ -787,7 +787,8 @@ static void LoadAndCreateEnemyShadowSpriteCustom(struct PokemonDebugMenu *data, { u8 x, y; bool8 invisible = FALSE; - if (gEnemyMonElevation[species] == 0) + species = SanitizeSpeciesId(species); + if (gSpeciesInfo[species].enemyMonElevation == 0) invisible = TRUE; LoadCompressedSpriteSheet(&gSpriteSheet_EnemyShadow); LoadSpritePalette(&sSpritePalettes_HealthBoxHealthBar[0]); @@ -806,7 +807,7 @@ static void LoadAndCreateEnemyShadowSpriteCustom(struct PokemonDebugMenu *data, static void DrawFootprintCustom(u8 windowId, u16 species) { u8 footprint[32 * 4] = {0}; - const u8 *footprintGfx = gMonFootprintTable[species]; + const u8 *footprintGfx = gSpeciesInfo[species].footprint; u32 i, j, tileIdx = 0; if (footprintGfx != NULL) @@ -1060,7 +1061,7 @@ static void ResetPokemonDebugWindows(void) { FillWindowPixelBuffer(i, PIXEL_FILL(0)); PutWindowTilemap(i); - CopyWindowToVram(i, 3); + CopyWindowToVram(i, COPYWIN_FULL); } } @@ -1070,7 +1071,7 @@ static void ResetPokemonDebugWindows(void) void CB2_Debug_Pokemon(void) { u8 taskId; - const struct CompressedSpritePalette *palette; + const u32 *palette; struct PokemonDebugMenu *data; u16 species; s16 offset_y; @@ -1136,14 +1137,14 @@ void CB2_Debug_Pokemon(void) //Palettes palette = GetMonSpritePalStructCustom(species, data->isFemale, data->isShiny); - LoadCompressedSpritePalette(palette); + LoadCompressedSpritePaletteWithTag(palette, species); //Front HandleLoadSpecialPokePic(TRUE, gMonSpritesGfxPtr->sprites.ptr[1], species, (data->isFemale ? FEMALE_PERSONALITY : MALE_PERSONALITY)); data->isShiny = FALSE; data->isFemale = FALSE; BattleLoadOpponentMonSpriteGfxCustom(species, data->isFemale, data->isShiny, 1); SetMultiuseSpriteTemplateToPokemon(species, 1); - gMultiuseSpriteTemplate.paletteTag = palette->tag; + gMultiuseSpriteTemplate.paletteTag = species; front_y = GetBattlerSpriteFinal_YCustom(species, 0, 0); data->frontspriteId = CreateSprite(&gMultiuseSpriteTemplate, front_x, front_y, 0); gSprites[data->frontspriteId].oam.paletteNum = 1; @@ -1156,7 +1157,7 @@ void CB2_Debug_Pokemon(void) HandleLoadSpecialPokePic(FALSE, gMonSpritesGfxPtr->sprites.ptr[2], species, (data->isFemale ? FEMALE_PERSONALITY : MALE_PERSONALITY)); BattleLoadOpponentMonSpriteGfxCustom(species, data->isFemale, data->isShiny, 4); SetMultiuseSpriteTemplateToPokemon(species, 2); - offset_y = gMonBackPicCoords[species].y_offset; + offset_y = gSpeciesInfo[species].backPicYOffset; data->backspriteId = CreateSprite(&gMultiuseSpriteTemplate, DEBUG_MON_BACK_X, DEBUG_MON_BACK_Y + offset_y, 0); gSprites[data->backspriteId].oam.paletteNum = 4; gSprites[data->backspriteId].callback = SpriteCallbackDummy; @@ -1178,7 +1179,7 @@ void CB2_Debug_Pokemon(void) //Anim names data->animIdBack = GetSpeciesBackAnimSet(species) + 1; - data->animIdFront = sMonFrontAnimIdsTable[data->currentmonId - 1]; + data->animIdFront = gSpeciesInfo[data->currentmonId].frontAnimId; UpdateMonAnimNames(taskId); //BattleNg Name @@ -1250,7 +1251,7 @@ static void ApplyOffsetSpriteValues(struct PokemonDebugMenu *data) { u16 species = data->currentmonId; //Back - gSprites[data->backspriteId].y = DEBUG_MON_BACK_Y + gMonBackPicCoords[species].y_offset + data->offsetsSpriteValues.offset_back_picCoords; + gSprites[data->backspriteId].y = DEBUG_MON_BACK_Y + gSpeciesInfo[species].backPicYOffset + data->offsetsSpriteValues.offset_back_picCoords; //Front gSprites[data->frontspriteId].y = GetBattlerSpriteFinal_YCustom(species, data->offsetsSpriteValues.offset_front_picCoords, data->offsetsSpriteValues.offset_front_elevation); @@ -1303,34 +1304,35 @@ static void UpdateSubmenuOneOptionValue(u8 taskId, bool8 increment) UpdateBattleBg(taskId, increment); break; case 3: - if (gFormSpeciesIdTables[data->currentmonId] != NULL) + if (GetSpeciesFormTable(data->currentmonId) != NULL) { struct PokemonDebugModifyArrows *modArrows = &data->modifyArrows; u8 formId = GetFormIdFromFormSpeciesId(data->currentmonId); + const u16 *formTable = GetSpeciesFormTable(data->currentmonId); if (increment) { - if (gFormSpeciesIdTables[data->currentmonId][formId + 1] != FORM_SPECIES_END) + if (formTable[formId + 1] != FORM_SPECIES_END) modArrows->currValue = GetFormSpeciesId(data->currentmonId, formId + 1); else - modArrows->currValue = gFormSpeciesIdTables[data->currentmonId][0]; + modArrows->currValue = formTable[0]; } else { - if (gFormSpeciesIdTables[data->currentmonId][formId] == gFormSpeciesIdTables[data->currentmonId][0]) + if (formTable[formId] == formTable[0]) { u8 lastForm; - for (lastForm = 0; gFormSpeciesIdTables[data->currentmonId][lastForm] != FORM_SPECIES_END; lastForm++) + for (lastForm = 0; formTable[lastForm] != FORM_SPECIES_END; lastForm++) { - if (gFormSpeciesIdTables[data->currentmonId][lastForm + 1] == FORM_SPECIES_END) + if (formTable[lastForm + 1] == FORM_SPECIES_END) break; } - modArrows->currValue = gFormSpeciesIdTables[data->currentmonId][lastForm]; + modArrows->currValue = formTable[lastForm]; } else modArrows->currValue = GetFormSpeciesId(data->currentmonId, formId - 1); } data->animIdBack = GetSpeciesBackAnimSet(modArrows->currValue) + 1; - data->animIdFront = sMonFrontAnimIdsTable[modArrows->currValue - 1]; + data->animIdFront = gSpeciesInfo[modArrows->currValue].frontAnimId; UpdateMonAnimNames(taskId); ResetOffsetSpriteValues(data); @@ -1372,7 +1374,7 @@ static void UpdateSubmenuTwoOptionValue(u8 taskId, bool8 increment) offset -= 1; } data->offsetsSpriteValues.offset_back_picCoords = offset; - gSprites[data->backspriteId].y = DEBUG_MON_BACK_Y + gMonBackPicCoords[species].y_offset + offset; + gSprites[data->backspriteId].y = DEBUG_MON_BACK_Y + gSpeciesInfo[species].backPicYOffset + offset; break; case 1: //Front picCoords offset = data->offsetsSpriteValues.offset_front_picCoords; @@ -1420,6 +1422,29 @@ static void UpdateSubmenuTwoOptionValue(u8 taskId, bool8 increment) UpdateYPosOffsetText(data); } +#define READ_PTR_FROM_TASK(taskId, dataId) \ + (void *)( \ + ((u16)(gTasks[taskId].data[dataId]) | \ + ((u16)(gTasks[taskId].data[dataId + 1]) << 16))) + +#define STORE_PTR_IN_TASK(ptr, taskId, dataId) \ +{ \ + gTasks[taskId].data[dataId] = (u32)(ptr); \ + gTasks[taskId].data[dataId + 1] = (u32)(ptr) >> 16; \ +} + +#define sAnimId data[2] +#define sAnimDelay data[3] + +static void Task_AnimateAfterDelay(u8 taskId) +{ + if (--gTasks[taskId].sAnimDelay == 0) + { + LaunchAnimationTaskForFrontSprite(READ_PTR_FROM_TASK(taskId, 0), gTasks[taskId].sAnimId); + DestroyTask(taskId); + } +} + static void Handle_Input_Debug_Pokemon(u8 taskId) { struct PokemonDebugMenu *data = GetStructPtr(taskId); @@ -1436,7 +1461,20 @@ static void Handle_Input_Debug_Pokemon(u8 taskId) PlayCryInternal(data->currentmonId, 0, 120, 10, 0); if (HasTwoFramesAnimation(data->currentmonId)) StartSpriteAnim(Frontsprite, 1); - LaunchAnimationTaskForFrontSprite(Frontsprite, data->animIdFront); + + if (gSpeciesInfo[data->currentmonId].frontAnimDelay != 0) + { + // Animation has delay, start delay task + u8 taskId = CreateTask(Task_AnimateAfterDelay, 0); + STORE_PTR_IN_TASK(Frontsprite, taskId, 0); + gTasks[taskId].sAnimId = data->animIdFront; + gTasks[taskId].sAnimDelay = gSpeciesInfo[data->currentmonId].frontAnimDelay; + } + else + { + // No delay, start animation + LaunchAnimationTaskForFrontSprite(Frontsprite, data->animIdFront); + } } if (JOY_NEW(START_BUTTON)) @@ -1482,7 +1520,7 @@ static void Handle_Input_Debug_Pokemon(u8 taskId) UpdateBattlerValue(data); ReloadPokemonSprites(data); data->animIdBack = GetSpeciesBackAnimSet(data->currentmonId) + 1; - data->animIdFront = sMonFrontAnimIdsTable[data->currentmonId - 1]; + data->animIdFront = gSpeciesInfo[data->currentmonId].frontAnimId; UpdateMonAnimNames(taskId); ResetOffsetSpriteValues(data); } @@ -1498,7 +1536,7 @@ static void Handle_Input_Debug_Pokemon(u8 taskId) UpdateBattlerValue(data); ReloadPokemonSprites(data); data->animIdBack = GetSpeciesBackAnimSet(data->currentmonId) + 1; - data->animIdFront = sMonFrontAnimIdsTable[data->currentmonId - 1]; + data->animIdFront = gSpeciesInfo[data->currentmonId].frontAnimId; UpdateMonAnimNames(taskId); ResetOffsetSpriteValues(data); } @@ -1552,7 +1590,7 @@ static void Handle_Input_Debug_Pokemon(u8 taskId) data->submenuYpos[1] += 1; if (data->submenuYpos[1] >= 3) { - if ((gFormSpeciesIdTables[data->currentmonId] == NULL) || (data->submenuYpos[1] >= 4)) + if ((GetSpeciesFormTable(data->currentmonId) == NULL) || (data->submenuYpos[1] >= 4)) data->submenuYpos[1] = 0; } data->optionArrows.currentDigit = data->submenuYpos[1]; @@ -1562,7 +1600,7 @@ static void Handle_Input_Debug_Pokemon(u8 taskId) { if (data->submenuYpos[1] == 0) { - if (gFormSpeciesIdTables[data->currentmonId] != NULL) + if (GetSpeciesFormTable(data->currentmonId) != NULL) data->submenuYpos[1] = 3; else data->submenuYpos[1] = 2; @@ -1621,10 +1659,12 @@ static void Handle_Input_Debug_Pokemon(u8 taskId) } } } +#undef sDelay +#undef sAnimId static void ReloadPokemonSprites(struct PokemonDebugMenu *data) { - const struct CompressedSpritePalette *palette; + const u32 *palette; u16 species = data->currentmonId; s16 offset_y; u8 front_x = sBattlerCoords[0][1].x; @@ -1649,12 +1689,12 @@ static void ReloadPokemonSprites(struct PokemonDebugMenu *data) //Palettes palette = GetMonSpritePalStructCustom(species, data->isFemale, data->isShiny); - LoadCompressedSpritePalette(palette); + LoadCompressedSpritePaletteWithTag(palette, species); //Front HandleLoadSpecialPokePic(TRUE, gMonSpritesGfxPtr->sprites.ptr[1], species, (data->isFemale ? FEMALE_PERSONALITY : MALE_PERSONALITY)); BattleLoadOpponentMonSpriteGfxCustom(species, data->isFemale, data->isShiny, 1); SetMultiuseSpriteTemplateToPokemon(species, 1); - gMultiuseSpriteTemplate.paletteTag = palette->tag; + gMultiuseSpriteTemplate.paletteTag = species; front_y = GetBattlerSpriteFinal_YCustom(species, 0, 0); data->frontspriteId = CreateSprite(&gMultiuseSpriteTemplate, front_x, front_y, 0); gSprites[data->frontspriteId].oam.paletteNum = 1; @@ -1667,7 +1707,7 @@ static void ReloadPokemonSprites(struct PokemonDebugMenu *data) HandleLoadSpecialPokePic(FALSE, gMonSpritesGfxPtr->sprites.ptr[2], species, (data->isFemale ? FEMALE_PERSONALITY : MALE_PERSONALITY)); BattleLoadOpponentMonSpriteGfxCustom(species, data->isFemale, data->isShiny, 5); SetMultiuseSpriteTemplateToPokemon(species, 2); - offset_y = gMonBackPicCoords[species].y_offset; + offset_y = gSpeciesInfo[species].backPicYOffset; data->backspriteId = CreateSprite(&gMultiuseSpriteTemplate, DEBUG_MON_BACK_X, DEBUG_MON_BACK_Y + offset_y, 0); gSprites[data->backspriteId].oam.paletteNum = 5; gSprites[data->backspriteId].callback = SpriteCallbackDummy; diff --git a/src/pokemon_icon.c b/src/pokemon_icon.c index 2207ebfa1ef0..89d7d545b804 100644 --- a/src/pokemon_icon.c +++ b/src/pokemon_icon.c @@ -9,8 +9,6 @@ #define POKE_ICON_BASE_PAL_TAG 56000 -#define INVALID_ICON_SPECIES SPECIES_NONE // Oddly specific, used when an icon should be a ?. Any of the 'old unown' would work - struct MonIconSpriteTemplate { const struct OamData *oam; @@ -24,6 +22,8 @@ struct MonIconSpriteTemplate static u8 CreateMonIconSprite(struct MonIconSpriteTemplate *, s16, s16, u8); static void FreeAndDestroyMonIconSprite_(struct Sprite *sprite); +// Kept this commented out table to keep PoryMap compatibility. +/* const u8 *const gMonIconTable[NUM_SPECIES + 1] = { [SPECIES_NONE] = gMonIcon_QuestionMark, @@ -155,6 +155,9 @@ const u8 *const gMonIconTable[NUM_SPECIES + 1] = [SPECIES_MAGMAR] = gMonIcon_Magmar, [SPECIES_PINSIR] = gMonIcon_Pinsir, [SPECIES_TAUROS] = gMonIcon_Tauros, + [SPECIES_TAUROS_PALDEAN_COMBAT_BREED] = gMonIcon_TaurosPaldeanCombatBreed, + [SPECIES_TAUROS_PALDEAN_BLAZE_BREED] = gMonIcon_TaurosPaldeanBlazeBreed, + [SPECIES_TAUROS_PALDEAN_AQUA_BREED] = gMonIcon_TaurosPaldeanAquaBreed, [SPECIES_MAGIKARP] = gMonIcon_Magikarp, [SPECIES_GYARADOS] = gMonIcon_Gyarados, [SPECIES_LAPRAS] = gMonIcon_Lapras, @@ -221,13 +224,14 @@ const u8 *const gMonIconTable[NUM_SPECIES + 1] = [SPECIES_SUNFLORA] = gMonIcon_Sunflora, [SPECIES_YANMA] = gMonIcon_Yanma, [SPECIES_WOOPER] = gMonIcon_Wooper, + //[SPECIES_WOOPER_PALDEAN] = gMonIcon_WooperPaldean, [SPECIES_QUAGSIRE] = gMonIcon_Quagsire, [SPECIES_ESPEON] = gMonIcon_Espeon, [SPECIES_UMBREON] = gMonIcon_Umbreon, [SPECIES_MURKROW] = gMonIcon_Murkrow, [SPECIES_SLOWKING] = gMonIcon_Slowking, [SPECIES_MISDREAVUS] = gMonIcon_Misdreavus, - [SPECIES_UNOWN] = gMonIcon_Unown, + [SPECIES_UNOWN] = gMonIcon_UnownA, [SPECIES_WOBBUFFET] = gMonIcon_Wobbuffet, [SPECIES_GIRAFARIG] = gMonIcon_Girafarig, [SPECIES_PINECO] = gMonIcon_Pineco, @@ -413,7 +417,6 @@ const u8 *const gMonIconTable[NUM_SPECIES + 1] = [SPECIES_JIRACHI] = gMonIcon_Jirachi, [SPECIES_DEOXYS_NORMAL] = gMonIcon_DeoxysNormal, [SPECIES_CHIMECHO] = gMonIcon_Chimecho, -#if P_GEN_4_POKEMON == TRUE [SPECIES_TURTWIG] = gMonIcon_Turtwig, [SPECIES_GROTLE] = gMonIcon_Grotle, [SPECIES_TORTERRA] = gMonIcon_Torterra, @@ -521,8 +524,6 @@ const u8 *const gMonIconTable[NUM_SPECIES + 1] = [SPECIES_DARKRAI] = gMonIcon_Darkrai, [SPECIES_SHAYMIN_LAND] = gMonIcon_ShayminLand, [SPECIES_ARCEUS_NORMAL] = gMonIcon_Arceus, -#endif -#if P_GEN_5_POKEMON == TRUE [SPECIES_VICTINI] = gMonIcon_Victini, [SPECIES_SNIVY] = gMonIcon_Snivy, [SPECIES_SERVINE] = gMonIcon_Servine, @@ -679,8 +680,6 @@ const u8 *const gMonIconTable[NUM_SPECIES + 1] = [SPECIES_KELDEO_ORDINARY] = gMonIcon_KeldeoOrdinary, [SPECIES_MELOETTA_ARIA] = gMonIcon_MeloettaAria, [SPECIES_GENESECT] = gMonIcon_Genesect, -#endif -#if P_GEN_6_POKEMON == TRUE [SPECIES_CHESPIN] = gMonIcon_Chespin, [SPECIES_QUILLADIN] = gMonIcon_Quilladin, [SPECIES_CHESNAUGHT] = gMonIcon_Chesnaught, @@ -753,8 +752,6 @@ const u8 *const gMonIconTable[NUM_SPECIES + 1] = [SPECIES_DIANCIE] = gMonIcon_Diancie, [SPECIES_HOOPA_CONFINED] = gMonIcon_HoopaConfined, [SPECIES_VOLCANION] = gMonIcon_Volcanion, -#endif -#if P_GEN_7_POKEMON == TRUE [SPECIES_ROWLET] = gMonIcon_Rowlet, [SPECIES_DARTRIX] = gMonIcon_Dartrix, [SPECIES_DECIDUEYE] = gMonIcon_Decidueye, @@ -843,8 +840,6 @@ const u8 *const gMonIconTable[NUM_SPECIES + 1] = [SPECIES_ZERAORA] = gMonIcon_Zeraora, [SPECIES_MELTAN] = gMonIcon_Meltan, [SPECIES_MELMETAL] = gMonIcon_Melmetal, -#endif -#if P_GEN_8_POKEMON == TRUE [SPECIES_GROOKEY] = gMonIcon_Grookey, [SPECIES_THWACKEY] = gMonIcon_Thwackey, [SPECIES_RILLABOOM] = gMonIcon_Rillaboom, @@ -904,7 +899,69 @@ const u8 *const gMonIconTable[NUM_SPECIES + 1] = [SPECIES_MR_RIME] = gMonIcon_MrRime, [SPECIES_RUNERIGUS] = gMonIcon_Runerigus, [SPECIES_MILCERY] = gMonIcon_Milcery, - [SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM] = gMonIcon_Alcremie, + [SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream, + [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubyCream, + [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMatchaCream, + [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMintCream, + [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryLemonCream, + [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberrySaltedCream, + [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubySwirl, + [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryCaramelSwirl, + [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRainbowSwirl, + [SPECIES_ALCREMIE_BERRY_VANILLA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream, + [SPECIES_ALCREMIE_BERRY_RUBY_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubyCream, + [SPECIES_ALCREMIE_BERRY_MATCHA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMatchaCream, + [SPECIES_ALCREMIE_BERRY_MINT_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMintCream, + [SPECIES_ALCREMIE_BERRY_LEMON_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryLemonCream, + [SPECIES_ALCREMIE_BERRY_SALTED_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberrySaltedCream, + [SPECIES_ALCREMIE_BERRY_RUBY_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubySwirl, + [SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryCaramelSwirl, + [SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRainbowSwirl, + [SPECIES_ALCREMIE_LOVE_VANILLA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream, + [SPECIES_ALCREMIE_LOVE_RUBY_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubyCream, + [SPECIES_ALCREMIE_LOVE_MATCHA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMatchaCream, + [SPECIES_ALCREMIE_LOVE_MINT_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMintCream, + [SPECIES_ALCREMIE_LOVE_LEMON_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryLemonCream, + [SPECIES_ALCREMIE_LOVE_SALTED_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberrySaltedCream, + [SPECIES_ALCREMIE_LOVE_RUBY_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubySwirl, + [SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryCaramelSwirl, + [SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRainbowSwirl, + [SPECIES_ALCREMIE_STAR_VANILLA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream, + [SPECIES_ALCREMIE_STAR_RUBY_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubyCream, + [SPECIES_ALCREMIE_STAR_MATCHA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMatchaCream, + [SPECIES_ALCREMIE_STAR_MINT_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMintCream, + [SPECIES_ALCREMIE_STAR_LEMON_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryLemonCream, + [SPECIES_ALCREMIE_STAR_SALTED_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberrySaltedCream, + [SPECIES_ALCREMIE_STAR_RUBY_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubySwirl, + [SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryCaramelSwirl, + [SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRainbowSwirl, + [SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream, + [SPECIES_ALCREMIE_CLOVER_RUBY_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubyCream, + [SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMatchaCream, + [SPECIES_ALCREMIE_CLOVER_MINT_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMintCream, + [SPECIES_ALCREMIE_CLOVER_LEMON_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryLemonCream, + [SPECIES_ALCREMIE_CLOVER_SALTED_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberrySaltedCream, + [SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubySwirl, + [SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryCaramelSwirl, + [SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRainbowSwirl, + [SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream, + [SPECIES_ALCREMIE_FLOWER_RUBY_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubyCream, + [SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMatchaCream, + [SPECIES_ALCREMIE_FLOWER_MINT_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMintCream, + [SPECIES_ALCREMIE_FLOWER_LEMON_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryLemonCream, + [SPECIES_ALCREMIE_FLOWER_SALTED_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberrySaltedCream, + [SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubySwirl, + [SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryCaramelSwirl, + [SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRainbowSwirl, + [SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream, + [SPECIES_ALCREMIE_RIBBON_RUBY_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubyCream, + [SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMatchaCream, + [SPECIES_ALCREMIE_RIBBON_MINT_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryMintCream, + [SPECIES_ALCREMIE_RIBBON_LEMON_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryLemonCream, + [SPECIES_ALCREMIE_RIBBON_SALTED_CREAM] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberrySaltedCream, + [SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRubySwirl, + [SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryCaramelSwirl, + [SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL] = gMonIcon_AlcremieStrawberryVanillaCream,//gMonIcon_AlcremieStrawberryRainbowSwirl, [SPECIES_FALINKS] = gMonIcon_Falinks, [SPECIES_PINCURCHIN] = gMonIcon_Pincurchin, [SPECIES_SNOM] = gMonIcon_Snom, @@ -937,11 +994,11 @@ const u8 *const gMonIconTable[NUM_SPECIES + 1] = [SPECIES_WYRDEER] = gMonIcon_Wyrdeer, [SPECIES_KLEAVOR] = gMonIcon_Kleavor, [SPECIES_URSALUNA] = gMonIcon_Ursaluna, + //[SPECIES_URSALUNA_BLOODMOON] = gMonIcon_UrsalunaBloodmoon, TODO [SPECIES_BASCULEGION_MALE] = gMonIcon_BasculegionMale, [SPECIES_SNEASLER] = gMonIcon_Sneasler, [SPECIES_OVERQWIL] = gMonIcon_Overqwil, [SPECIES_ENAMORUS_INCARNATE] = gMonIcon_EnamorusIncarnate, -#endif [SPECIES_VENUSAUR_MEGA] = gMonIcon_VenusaurMega, [SPECIES_CHARIZARD_MEGA_X] = gMonIcon_CharizardMegaX, [SPECIES_CHARIZARD_MEGA_Y] = gMonIcon_CharizardMegaY, @@ -982,19 +1039,13 @@ const u8 *const gMonIconTable[NUM_SPECIES + 1] = [SPECIES_METAGROSS_MEGA] = gMonIcon_MetagrossMega, [SPECIES_LATIAS_MEGA] = gMonIcon_LatiasMega, [SPECIES_LATIOS_MEGA] = gMonIcon_LatiosMega, -#if P_GEN_4_POKEMON == TRUE [SPECIES_LOPUNNY_MEGA] = gMonIcon_LopunnyMega, [SPECIES_GARCHOMP_MEGA] = gMonIcon_GarchompMega, [SPECIES_LUCARIO_MEGA] = gMonIcon_LucarioMega, [SPECIES_ABOMASNOW_MEGA] = gMonIcon_AbomasnowMega, [SPECIES_GALLADE_MEGA] = gMonIcon_GalladeMega, -#endif -#if P_GEN_5_POKEMON == TRUE [SPECIES_AUDINO_MEGA] = gMonIcon_AudinoMega, -#endif -#if P_GEN_6_POKEMON == TRUE [SPECIES_DIANCIE_MEGA] = gMonIcon_DiancieMega, -#endif [SPECIES_RAYQUAZA_MEGA] = gMonIcon_RayquazaMega, [SPECIES_KYOGRE_PRIMAL] = gMonIcon_KyogrePrimal, [SPECIES_GROUDON_PRIMAL] = gMonIcon_GroudonPrimal, @@ -1031,12 +1082,10 @@ const u8 *const gMonIconTable[NUM_SPECIES + 1] = [SPECIES_CORSOLA_GALARIAN] = gMonIcon_CorsolaGalarian, [SPECIES_ZIGZAGOON_GALARIAN] = gMonIcon_ZigzagoonGalarian, [SPECIES_LINOONE_GALARIAN] = gMonIcon_LinooneGalarian, -#if P_GEN_5_POKEMON == TRUE [SPECIES_DARUMAKA_GALARIAN] = gMonIcon_DarumakaGalarian, [SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE] = gMonIcon_DarmanitanGalarianStandardMode, [SPECIES_YAMASK_GALARIAN] = gMonIcon_YamaskGalarian, [SPECIES_STUNFISK_GALARIAN] = gMonIcon_StunfiskGalarian, -#endif [SPECIES_GROWLITHE_HISUIAN] = gMonIcon_GrowlitheHisuian, [SPECIES_ARCANINE_HISUIAN] = gMonIcon_ArcanineHisuian, [SPECIES_VOLTORB_HISUIAN] = gMonIcon_VoltorbHisuian, @@ -1044,21 +1093,15 @@ const u8 *const gMonIconTable[NUM_SPECIES + 1] = [SPECIES_TYPHLOSION_HISUIAN] = gMonIcon_TyphlosionHisuian, [SPECIES_QWILFISH_HISUIAN] = gMonIcon_QwilfishHisuian, [SPECIES_SNEASEL_HISUIAN] = gMonIcon_SneaselHisuian, -#if P_GEN_5_POKEMON == TRUE [SPECIES_SAMUROTT_HISUIAN] = gMonIcon_SamurottHisuian, [SPECIES_LILLIGANT_HISUIAN] = gMonIcon_LilligantHisuian, [SPECIES_ZORUA_HISUIAN] = gMonIcon_ZoruaHisuian, [SPECIES_ZOROARK_HISUIAN] = gMonIcon_ZoroarkHisuian, [SPECIES_BRAVIARY_HISUIAN] = gMonIcon_BraviaryHisuian, -#endif -#if P_GEN_6_POKEMON == TRUE [SPECIES_SLIGGOO_HISUIAN] = gMonIcon_SliggooHisuian, [SPECIES_GOODRA_HISUIAN] = gMonIcon_GoodraHisuian, [SPECIES_AVALUGG_HISUIAN] = gMonIcon_AvaluggHisuian, -#endif -#if P_GEN_7_POKEMON == TRUE [SPECIES_DECIDUEYE_HISUIAN] = gMonIcon_DecidueyeHisuian, -#endif [SPECIES_PIKACHU_COSPLAY] = gMonIcon_PikachuCosplay, [SPECIES_PIKACHU_ROCK_STAR] = gMonIcon_PikachuRockStar, [SPECIES_PIKACHU_BELLE] = gMonIcon_PikachuBelle, @@ -1107,7 +1150,6 @@ const u8 *const gMonIconTable[NUM_SPECIES + 1] = [SPECIES_DEOXYS_ATTACK] = gMonIcon_DeoxysAttack, [SPECIES_DEOXYS_DEFENSE] = gMonIcon_DeoxysDefense, [SPECIES_DEOXYS_SPEED] = gMonIcon_DeoxysSpeed, -#if P_GEN_4_POKEMON == TRUE [SPECIES_BURMY_SANDY_CLOAK] = gMonIcon_BurmySandyCloak, [SPECIES_BURMY_TRASH_CLOAK] = gMonIcon_BurmyTrashCloak, [SPECIES_WORMADAM_SANDY_CLOAK] = gMonIcon_WormadamSandyCloak, @@ -1141,8 +1183,6 @@ const u8 *const gMonIconTable[NUM_SPECIES + 1] = [SPECIES_ARCEUS_DRAGON] = gMonIcon_Arceus, [SPECIES_ARCEUS_DARK] = gMonIcon_Arceus, [SPECIES_ARCEUS_FAIRY] = gMonIcon_Arceus, -#endif -#if P_GEN_5_POKEMON == TRUE [SPECIES_BASCULIN_BLUE_STRIPED] = gMonIcon_BasculinBlueStriped, [SPECIES_BASCULIN_WHITE_STRIPED] = gMonIcon_BasculinWhiteStriped, [SPECIES_DARMANITAN_ZEN_MODE] = gMonIcon_DarmanitanZenMode, @@ -1164,8 +1204,6 @@ const u8 *const gMonIconTable[NUM_SPECIES + 1] = [SPECIES_GENESECT_SHOCK_DRIVE] = gMonIcon_Genesect, [SPECIES_GENESECT_BURN_DRIVE] = gMonIcon_Genesect, [SPECIES_GENESECT_CHILL_DRIVE] = gMonIcon_Genesect, -#endif -#if P_GEN_6_POKEMON == TRUE [SPECIES_GRENINJA_BATTLE_BOND] = gMonIcon_Greninja, [SPECIES_GRENINJA_ASH] = gMonIcon_GreninjaAsh, [SPECIES_VIVILLON_POLAR] = gMonIcon_VivillonPolar, @@ -1223,8 +1261,6 @@ const u8 *const gMonIconTable[NUM_SPECIES + 1] = [SPECIES_ZYGARDE_50_POWER_CONSTRUCT] = gMonIcon_Zygarde50, [SPECIES_ZYGARDE_COMPLETE] = gMonIcon_ZygardeComplete, [SPECIES_HOOPA_UNBOUND] = gMonIcon_HoopaUnbound, -#endif -#if P_GEN_7_POKEMON == TRUE [SPECIES_ORICORIO_POM_POM] = gMonIcon_OricorioPomPom, [SPECIES_ORICORIO_PAU] = gMonIcon_OricorioPau, [SPECIES_ORICORIO_SENSU] = gMonIcon_OricorioSensu, @@ -1267,21 +1303,11 @@ const u8 *const gMonIconTable[NUM_SPECIES + 1] = [SPECIES_NECROZMA_DAWN_WINGS] = gMonIcon_NecrozmaDawnWings, [SPECIES_NECROZMA_ULTRA] = gMonIcon_NecrozmaUltra, [SPECIES_MAGEARNA_ORIGINAL_COLOR] = gMonIcon_MagearnaOriginalColor, -#endif -#if P_GEN_8_POKEMON == TRUE [SPECIES_CRAMORANT_GULPING] = gMonIcon_CramorantGulping, [SPECIES_CRAMORANT_GORGING] = gMonIcon_CramorantGorging, [SPECIES_TOXTRICITY_LOW_KEY] = gMonIcon_ToxtricityLowKey, [SPECIES_SINISTEA_ANTIQUE] = gMonIcon_Sinistea, [SPECIES_POLTEAGEIST_ANTIQUE] = gMonIcon_Polteageist, - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM] = gMonIcon_QuestionMark,//gMonIcon_AlcremieStrawberryRubyCream, - [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM] = gMonIcon_QuestionMark,//gMonIcon_AlcremieStrawberryMatchaCream, - [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM] = gMonIcon_QuestionMark,//gMonIcon_AlcremieStrawberryMintCream, - [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM] = gMonIcon_QuestionMark,//gMonIcon_AlcremieStrawberryLemonCream, - [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM] = gMonIcon_QuestionMark,//gMonIcon_AlcremieStrawberrySaltedCream, - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL] = gMonIcon_QuestionMark,//gMonIcon_AlcremieStrawberryRubySwirl, - [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL] = gMonIcon_QuestionMark,//gMonIcon_AlcremieStrawberryCaramelSwirl, - [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL] = gMonIcon_QuestionMark,//gMonIcon_AlcremieStrawberryRainbowSwirl, [SPECIES_EISCUE_NOICE_FACE] = gMonIcon_EiscueNoiceFace, [SPECIES_INDEEDEE_FEMALE] = gMonIcon_IndeedeeFemale, [SPECIES_MORPEKO_HANGRY] = gMonIcon_MorpekoHangry, @@ -1329,1293 +1355,140 @@ const u8 *const gMonIconTable[NUM_SPECIES + 1] = [SPECIES_DURALUDON_GIGANTAMAX] = gMonIcon_DuraludonGigantamax, [SPECIES_URSHIFU_SINGLE_STRIKE_STYLE_GIGANTAMAX] = gMonIcon_UrshifuSingleStrikeGigantamax, [SPECIES_URSHIFU_RAPID_STRIKE_STYLE_GIGANTAMAX] = gMonIcon_UrshifuRapidStrikeGigantamax, -#endif + [SPECIES_SPRIGATITO] = gMonIcon_Sprigatito, + [SPECIES_FLORAGATO] = gMonIcon_Floragato, + [SPECIES_MEOWSCARADA] = gMonIcon_Meowscarada, + [SPECIES_FUECOCO] = gMonIcon_Fuecoco, + [SPECIES_CROCALOR] = gMonIcon_Crocalor, + [SPECIES_SKELEDIRGE] = gMonIcon_Skeledirge, + [SPECIES_QUAXLY] = gMonIcon_Quaxly, + [SPECIES_QUAXWELL] = gMonIcon_Quaxwell, + [SPECIES_QUAQUAVAL] = gMonIcon_Quaquaval, + [SPECIES_LECHONK] = gMonIcon_Lechonk, + [SPECIES_OINKOLOGNE_MALE] = gMonIcon_OinkologneMale, + [SPECIES_OINKOLOGNE_FEMALE] = gMonIcon_OinkologneFemale, + [SPECIES_TAROUNTULA] = gMonIcon_Tarountula, + [SPECIES_SPIDOPS] = gMonIcon_Spidops, + [SPECIES_NYMBLE] = gMonIcon_Nymble, + [SPECIES_LOKIX] = gMonIcon_Lokix, + [SPECIES_PAWMI] = gMonIcon_Pawmi, + [SPECIES_PAWMO] = gMonIcon_Pawmo, + [SPECIES_PAWMOT] = gMonIcon_Pawmot, + [SPECIES_TANDEMAUS] = gMonIcon_Tandemaus, + [SPECIES_MAUSHOLD_FAMILY_OF_THREE] = gMonIcon_MausholdFamilyOfThree, + [SPECIES_MAUSHOLD_FAMILY_OF_FOUR] = gMonIcon_MausholdFamilyOfFour, + [SPECIES_FIDOUGH] = gMonIcon_Fidough, + [SPECIES_DACHSBUN] = gMonIcon_Dachsbun, + [SPECIES_SMOLIV] = gMonIcon_Smoliv, + [SPECIES_DOLLIV] = gMonIcon_Dolliv, + [SPECIES_ARBOLIVA] = gMonIcon_Arboliva, + [SPECIES_SQUAWKABILLY_GREEN_PLUMAGE] = gMonIcon_SquawkabillyGreenPlumage, + [SPECIES_SQUAWKABILLY_BLUE_PLUMAGE] = gMonIcon_SquawkabillyBluePlumage, + [SPECIES_SQUAWKABILLY_YELLOW_PLUMAGE] = gMonIcon_SquawkabillyYellowPlumage, + [SPECIES_SQUAWKABILLY_WHITE_PLUMAGE] = gMonIcon_SquawkabillyWhitePlumage, + [SPECIES_NACLI] = gMonIcon_Nacli, + [SPECIES_NACLSTACK] = gMonIcon_Naclstack, + [SPECIES_GARGANACL] = gMonIcon_Garganacl, + [SPECIES_CHARCADET] = gMonIcon_Charcadet, + [SPECIES_ARMAROUGE] = gMonIcon_Armarouge, + [SPECIES_CERULEDGE] = gMonIcon_Ceruledge, + [SPECIES_TADBULB] = gMonIcon_Tadbulb, + [SPECIES_BELLIBOLT] = gMonIcon_Bellibolt, + [SPECIES_WATTREL] = gMonIcon_Wattrel, + [SPECIES_KILOWATTREL] = gMonIcon_Kilowattrel, + [SPECIES_MASCHIFF] = gMonIcon_Maschiff, + [SPECIES_MABOSSTIFF] = gMonIcon_Mabosstiff, + [SPECIES_SHROODLE] = gMonIcon_Shroodle, + [SPECIES_GRAFAIAI] = gMonIcon_Grafaiai, + [SPECIES_BRAMBLIN] = gMonIcon_Bramblin, + [SPECIES_BRAMBLEGHAST] = gMonIcon_Brambleghast, + [SPECIES_TOEDSCOOL] = gMonIcon_Toedscool, + [SPECIES_TOEDSCRUEL] = gMonIcon_Toedscruel, + [SPECIES_KLAWF] = gMonIcon_Klawf, + [SPECIES_CAPSAKID] = gMonIcon_Capsakid, + [SPECIES_SCOVILLAIN] = gMonIcon_Scovillain, + [SPECIES_RELLOR] = gMonIcon_Rellor, + [SPECIES_RABSCA] = gMonIcon_Rabsca, + [SPECIES_FLITTLE] = gMonIcon_Flittle, + [SPECIES_ESPATHRA] = gMonIcon_Espathra, + [SPECIES_TINKATINK] = gMonIcon_Tinkatink, + [SPECIES_TINKATUFF] = gMonIcon_Tinkatuff, + [SPECIES_TINKATON] = gMonIcon_Tinkaton, + [SPECIES_WIGLETT] = gMonIcon_Wiglett, + [SPECIES_WUGTRIO] = gMonIcon_Wugtrio, + [SPECIES_BOMBIRDIER] = gMonIcon_Bombirdier, + [SPECIES_FINIZEN] = gMonIcon_Finizen, + [SPECIES_PALAFIN_ZERO] = gMonIcon_PalafinZero, + [SPECIES_PALAFIN_HERO] = gMonIcon_PalafinHero, + [SPECIES_VAROOM] = gMonIcon_Varoom, + [SPECIES_REVAVROOM] = gMonIcon_Revavroom, + [SPECIES_CYCLIZAR] = gMonIcon_Cyclizar, + [SPECIES_ORTHWORM] = gMonIcon_Orthworm, + [SPECIES_GLIMMET] = gMonIcon_Glimmet, + [SPECIES_GLIMMORA] = gMonIcon_Glimmora, + [SPECIES_GREAVARD] = gMonIcon_Greavard, + [SPECIES_HOUNDSTONE] = gMonIcon_Houndstone, + [SPECIES_FLAMIGO] = gMonIcon_Flamigo, + [SPECIES_CETODDLE] = gMonIcon_Cetoddle, + [SPECIES_CETITAN] = gMonIcon_Cetitan, + [SPECIES_VELUZA] = gMonIcon_Veluza, + [SPECIES_DONDOZO] = gMonIcon_Dondozo, + [SPECIES_TATSUGIRI_CURLY] = gMonIcon_TatsugiriCurly, + [SPECIES_TATSUGIRI_DROOPY] = gMonIcon_TatsugiriDroopy, + [SPECIES_TATSUGIRI_STRETCHY] = gMonIcon_TatsugiriStretchy, + [SPECIES_ANNIHILAPE] = gMonIcon_Annihilape, + [SPECIES_CLODSIRE] = gMonIcon_Clodsire, + [SPECIES_FARIGIRAF] = gMonIcon_Farigiraf, + [SPECIES_DUDUNSPARCE_TWO_SEGMENT] = gMonIcon_Dudunsparce, + [SPECIES_DUDUNSPARCE_THREE_SEGMENT] = gMonIcon_Dudunsparce, + [SPECIES_KINGAMBIT] = gMonIcon_Kingambit, + [SPECIES_GREAT_TUSK] = gMonIcon_GreatTusk, + [SPECIES_SCREAM_TAIL] = gMonIcon_ScreamTail, + [SPECIES_BRUTE_BONNET] = gMonIcon_BruteBonnet, + [SPECIES_FLUTTER_MANE] = gMonIcon_FlutterMane, + [SPECIES_SLITHER_WING] = gMonIcon_SlitherWing, + [SPECIES_SANDY_SHOCKS] = gMonIcon_SandyShocks, + [SPECIES_IRON_TREADS] = gMonIcon_IronTreads, + [SPECIES_IRON_BUNDLE] = gMonIcon_IronBundle, + [SPECIES_IRON_HANDS] = gMonIcon_IronHands, + [SPECIES_IRON_JUGULIS] = gMonIcon_IronJugulis, + [SPECIES_IRON_MOTH] = gMonIcon_IronMoth, + [SPECIES_IRON_THORNS] = gMonIcon_IronThorns, + [SPECIES_FRIGIBAX] = gMonIcon_Frigibax, + [SPECIES_ARCTIBAX] = gMonIcon_Arctibax, + [SPECIES_BAXCALIBUR] = gMonIcon_Baxcalibur, + [SPECIES_GIMMIGHOUL_CHEST] = gMonIcon_GimmighoulChest, + [SPECIES_GIMMIGHOUL_ROAMING] = gMonIcon_GimmighoulRoaming, + [SPECIES_GHOLDENGO] = gMonIcon_Gholdengo, + [SPECIES_WO_CHIEN] = gMonIcon_WoChien, + [SPECIES_CHIEN_PAO] = gMonIcon_ChienPao, + [SPECIES_TING_LU] = gMonIcon_TingLu, + [SPECIES_CHI_YU] = gMonIcon_ChiYu, + [SPECIES_ROARING_MOON] = gMonIcon_RoaringMoon, + [SPECIES_IRON_VALIANT] = gMonIcon_IronValiant, + [SPECIES_KORAIDON] = gMonIcon_Koraidon, + [SPECIES_MIRAIDON] = gMonIcon_Miraidon, + [SPECIES_WALKING_WAKE] = gMonIcon_WalkingWake, + [SPECIES_IRON_LEAVES] = gMonIcon_IronLeaves, + [SPECIES_DIPPLIN] = gMonIcon_Dipplin, + [SPECIES_POLTCHAGEIST_COUNTERFEIT] = gMonIcon_Poltchageist, + [SPECIES_POLTCHAGEIST_ARTISAN] = gMonIcon_Poltchageist, + [SPECIES_SINISTCHA_UNREMARKABLE] = gMonIcon_Sinistcha, + [SPECIES_SINISTCHA_MASTERPIECE] = gMonIcon_Sinistcha, + [SPECIES_OKIDOGI] = gMonIcon_Okidogi, + [SPECIES_MUNKIDORI] = gMonIcon_Munkidori, + [SPECIES_FEZANDIPITI] = gMonIcon_Fezandipiti, + [SPECIES_OGERPON_TEAL_MASK] = gMonIcon_OgerponTealMask, + //[SPECIES_OGERPON_WELLSPRING_MASK] = gMonIcon_OgerponWellspringMask, TODO + //[SPECIES_OGERPON_HEARTHFLAME_MASK] = gMonIcon_OgerponHearthflameMask, TODO + //[SPECIES_OGERPON_CORNERSTONE_MASK] = gMonIcon_OgerponCornerstoneMask, TODO + [SPECIES_OGERPON_TEAL_MASK_TERA] = gMonIcon_OgerponTealMask, + //[SPECIES_OGERPON_WELLSPRING_MASK_TERA] = gMonIcon_OgerponWellspringMask, TODO + //[SPECIES_OGERPON_HEARTHFLAME_MASK_TERA] = gMonIcon_OgerponHearthflameMask, TODO + //[SPECIES_OGERPON_CORNERSTONE_MASK_TERA] = gMonIcon_OgerponCornerstoneMask, TODO [SPECIES_EGG] = gMonIcon_Egg, }; - -// Female icon palette indexes still need to be defined in gMonIconPaletteIndicesFemale, even if they are the same as males. -const u8 *const gMonIconTableFemale[NUM_SPECIES + 1] = -{ -#if P_GEN_4_POKEMON == TRUE && P_HIPPO_GENDER_DIFF_ICONS == TRUE - [SPECIES_HIPPOPOTAS] = gMonIcon_HippopotasF, - [SPECIES_HIPPOWDON] = gMonIcon_HippowdonF, -#endif -#if P_GEN_5_POKEMON == TRUE - [SPECIES_UNFEZANT] = gMonIcon_UnfezantF, - [SPECIES_FRILLISH] = gMonIcon_FrillishF, - [SPECIES_JELLICENT] = gMonIcon_JellicentF, -#endif -#if P_GEN_6_POKEMON == TRUE - [SPECIES_PYROAR] = gMonIcon_PyroarF, -#endif -}; - -const u8 gMonIconPaletteIndices[] = -{ - [SPECIES_BULBASAUR] = 4, - [SPECIES_IVYSAUR] = 4, - [SPECIES_VENUSAUR] = 4, - [SPECIES_CHARMANDER] = 0, - [SPECIES_CHARMELEON] = 0, - [SPECIES_CHARIZARD] = 0, - [SPECIES_SQUIRTLE] = 0, - [SPECIES_WARTORTLE] = 2, - [SPECIES_BLASTOISE] = 2, - [SPECIES_CATERPIE] = 1, - [SPECIES_METAPOD] = 1, - [SPECIES_BUTTERFREE] = 0, - [SPECIES_WEEDLE] = 2, - [SPECIES_KAKUNA] = 2, - [SPECIES_BEEDRILL] = 2, - [SPECIES_PIDGEY] = 0, - [SPECIES_PIDGEOTTO] = 0, - [SPECIES_PIDGEOT] = 0, - [SPECIES_RATTATA] = 2, - [SPECIES_RATICATE] = 2, - [SPECIES_SPEAROW] = 0, - [SPECIES_FEAROW] = 0, - [SPECIES_EKANS] = 2, - [SPECIES_ARBOK] = 2, - [SPECIES_PIKACHU] = 2, - [SPECIES_RAICHU] = 0, - [SPECIES_SANDSHREW] = 2, - [SPECIES_SANDSLASH] = 2, - [SPECIES_NIDORAN_F] = 0, - [SPECIES_NIDORINA] = 0, - [SPECIES_NIDOQUEEN] = 2, - [SPECIES_NIDORAN_M] = 2, - [SPECIES_NIDORINO] = 2, - [SPECIES_NIDOKING] = 2, - [SPECIES_CLEFAIRY] = 0, - [SPECIES_CLEFABLE] = 0, - [SPECIES_VULPIX] = 5, - [SPECIES_NINETALES] = 3, - [SPECIES_JIGGLYPUFF] = 0, - [SPECIES_WIGGLYTUFF] = 0, - [SPECIES_ZUBAT] = 2, - [SPECIES_GOLBAT] = 2, - [SPECIES_ODDISH] = 4, - [SPECIES_GLOOM] = 0, - [SPECIES_VILEPLUME] = 0, - [SPECIES_PARAS] = 0, - [SPECIES_PARASECT] = 0, - [SPECIES_VENONAT] = 2, - [SPECIES_VENOMOTH] = 2, - [SPECIES_DIGLETT] = 2, - [SPECIES_DUGTRIO] = 2, - [SPECIES_MEOWTH] = 1, - [SPECIES_PERSIAN] = 1, - [SPECIES_PSYDUCK] = 1, - [SPECIES_GOLDUCK] = 0, - [SPECIES_MANKEY] = 1, - [SPECIES_PRIMEAPE] = 2, - [SPECIES_GROWLITHE] = 3, - [SPECIES_ARCANINE] = 3, - [SPECIES_POLIWAG] = 0, - [SPECIES_POLIWHIRL] = 0, - [SPECIES_POLIWRATH] = 0, - [SPECIES_ABRA] = 2, - [SPECIES_KADABRA] = 2, - [SPECIES_ALAKAZAM] = 2, - [SPECIES_MACHOP] = 0, - [SPECIES_MACHOKE] = 2, - [SPECIES_MACHAMP] = 0, - [SPECIES_BELLSPROUT] = 1, - [SPECIES_WEEPINBELL] = 1, - [SPECIES_VICTREEBEL] = 1, - [SPECIES_TENTACOOL] = 0, - [SPECIES_TENTACRUEL] = 0, - [SPECIES_GEODUDE] = 1, - [SPECIES_GRAVELER] = 1, - [SPECIES_GOLEM] = 2, - [SPECIES_PONYTA] = 3, - [SPECIES_RAPIDASH] = 3, - [SPECIES_SLOWPOKE] = 0, - [SPECIES_SLOWBRO] = 0, - [SPECIES_MAGNEMITE] = 0, - [SPECIES_MAGNETON] = 0, - [SPECIES_FARFETCHD] = 1, - [SPECIES_DODUO] = 2, - [SPECIES_DODRIO] = 2, - [SPECIES_SEEL] = 0, - [SPECIES_DEWGONG] = 2, - [SPECIES_GRIMER] = 2, - [SPECIES_MUK] = 2, - [SPECIES_SHELLDER] = 2, - [SPECIES_CLOYSTER] = 2, - [SPECIES_GASTLY] = 2, - [SPECIES_HAUNTER] = 2, - [SPECIES_GENGAR] = 2, - [SPECIES_ONIX] = 2, - [SPECIES_DROWZEE] = 2, - [SPECIES_HYPNO] = 2, - [SPECIES_KRABBY] = 0, - [SPECIES_KINGLER] = 0, - [SPECIES_VOLTORB] = 0, - [SPECIES_ELECTRODE] = 0, - [SPECIES_EXEGGCUTE] = 0, - [SPECIES_EXEGGUTOR] = 1, - [SPECIES_CUBONE] = 2, - [SPECIES_MAROWAK] = 2, - [SPECIES_HITMONLEE] = 2, - [SPECIES_HITMONCHAN] = 2, - [SPECIES_LICKITUNG] = 0, - [SPECIES_KOFFING] = 2, - [SPECIES_WEEZING] = 2, - [SPECIES_RHYHORN] = 1, - [SPECIES_RHYDON] = 1, - [SPECIES_CHANSEY] = 0, - [SPECIES_TANGELA] = 0, - [SPECIES_KANGASKHAN] = 2, - [SPECIES_HORSEA] = 0, - [SPECIES_SEADRA] = 0, - [SPECIES_GOLDEEN] = 0, - [SPECIES_SEAKING] = 0, - [SPECIES_STARYU] = 2, - [SPECIES_STARMIE] = 2, - [SPECIES_MR_MIME] = 0, - [SPECIES_SCYTHER] = 1, - [SPECIES_JYNX] = 2, - [SPECIES_ELECTABUZZ] = 1, - [SPECIES_MAGMAR] = 0, - [SPECIES_PINSIR] = 2, - [SPECIES_TAUROS] = 2, - [SPECIES_MAGIKARP] = 0, - [SPECIES_GYARADOS] = 0, - [SPECIES_LAPRAS] = 2, - [SPECIES_DITTO] = 2, - [SPECIES_EEVEE] = 2, - [SPECIES_VAPOREON] = 0, - [SPECIES_JOLTEON] = 2, - [SPECIES_FLAREON] = 3, - [SPECIES_PORYGON] = 0, - [SPECIES_OMANYTE] = 0, - [SPECIES_OMASTAR] = 0, - [SPECIES_KABUTO] = 2, - [SPECIES_KABUTOPS] = 2, - [SPECIES_AERODACTYL] = 2, - [SPECIES_SNORLAX] = 3, - [SPECIES_ARTICUNO] = 2, - [SPECIES_ZAPDOS] = 0, - [SPECIES_MOLTRES] = 0, - [SPECIES_DRATINI] = 0, - [SPECIES_DRAGONAIR] = 0, - [SPECIES_DRAGONITE] = 2, - [SPECIES_MEWTWO] = 2, - [SPECIES_MEW] = 0, - [SPECIES_CHIKORITA] = 1, - [SPECIES_BAYLEEF] = 1, - [SPECIES_MEGANIUM] = 1, - [SPECIES_CYNDAQUIL] = 3, - [SPECIES_QUILAVA] = 3, - [SPECIES_TYPHLOSION] = 3, - [SPECIES_TOTODILE] = 0, - [SPECIES_CROCONAW] = 0, - [SPECIES_FERALIGATR] = 0, - [SPECIES_SENTRET] = 2, - [SPECIES_FURRET] = 2, - [SPECIES_HOOTHOOT] = 2, - [SPECIES_NOCTOWL] = 2, - [SPECIES_LEDYBA] = 0, - [SPECIES_LEDIAN] = 0, - [SPECIES_SPINARAK] = 1, - [SPECIES_ARIADOS] = 0, - [SPECIES_CROBAT] = 2, - [SPECIES_CHINCHOU] = 2, - [SPECIES_LANTURN] = 0, - [SPECIES_PICHU] = 1, - [SPECIES_CLEFFA] = 0, - [SPECIES_IGGLYBUFF] = 1, - [SPECIES_TOGEPI] = 0, - [SPECIES_TOGETIC] = 0, - [SPECIES_NATU] = 1, - [SPECIES_XATU] = 1, - [SPECIES_MAREEP] = 0, - [SPECIES_FLAAFFY] = 0, - [SPECIES_AMPHAROS] = 0, - [SPECIES_BELLOSSOM] = 1, - [SPECIES_MARILL] = 0, - [SPECIES_AZUMARILL] = 0, - [SPECIES_SUDOWOODO] = 1, - [SPECIES_POLITOED] = 1, - [SPECIES_HOPPIP] = 1, - [SPECIES_SKIPLOOM] = 1, - [SPECIES_JUMPLUFF] = 2, - [SPECIES_AIPOM] = 2, - [SPECIES_SUNKERN] = 1, - [SPECIES_SUNFLORA] = 1, - [SPECIES_YANMA] = 1, - [SPECIES_WOOPER] = 0, - [SPECIES_QUAGSIRE] = 0, - [SPECIES_ESPEON] = 2, - [SPECIES_UMBREON] = 0, - [SPECIES_MURKROW] = 2, - [SPECIES_SLOWKING] = 0, - [SPECIES_MISDREAVUS] = 0, - [SPECIES_UNOWN] = 0, - [SPECIES_WOBBUFFET] = 0, - [SPECIES_GIRAFARIG] = 1, - [SPECIES_PINECO] = 0, - [SPECIES_FORRETRESS] = 2, - [SPECIES_DUNSPARCE] = 0, - [SPECIES_GLIGAR] = 0, - [SPECIES_STEELIX] = 0, - [SPECIES_SNUBBULL] = 0, - [SPECIES_GRANBULL] = 2, - [SPECIES_QWILFISH] = 0, - [SPECIES_SCIZOR] = 0, - [SPECIES_SHUCKLE] = 1, - [SPECIES_HERACROSS] = 0, - [SPECIES_SNEASEL] = 0, - [SPECIES_TEDDIURSA] = 0, - [SPECIES_URSARING] = 2, - [SPECIES_SLUGMA] = 0, - [SPECIES_MAGCARGO] = 0, - [SPECIES_SWINUB] = 2, - [SPECIES_PILOSWINE] = 2, - [SPECIES_CORSOLA] = 0, - [SPECIES_REMORAID] = 0, - [SPECIES_OCTILLERY] = 0, - [SPECIES_DELIBIRD] = 1, - [SPECIES_MANTINE] = 2, - [SPECIES_SKARMORY] = 0, - [SPECIES_HOUNDOUR] = 0, - [SPECIES_HOUNDOOM] = 0, - [SPECIES_KINGDRA] = 0, - [SPECIES_PHANPY] = 0, - [SPECIES_DONPHAN] = 0, - [SPECIES_PORYGON2] = 0, - [SPECIES_STANTLER] = 2, - [SPECIES_SMEARGLE] = 1, - [SPECIES_TYROGUE] = 2, - [SPECIES_HITMONTOP] = 2, - [SPECIES_SMOOCHUM] = 1, - [SPECIES_ELEKID] = 1, - [SPECIES_MAGBY] = 0, - [SPECIES_MILTANK] = 0, - [SPECIES_BLISSEY] = 0, - [SPECIES_RAIKOU] = 2, - [SPECIES_ENTEI] = 2, - [SPECIES_SUICUNE] = 2, - [SPECIES_LARVITAR] = 1, - [SPECIES_PUPITAR] = 2, - [SPECIES_TYRANITAR] = 4, - [SPECIES_LUGIA] = 0, - [SPECIES_HO_OH] = 1, - [SPECIES_CELEBI] = 1, - [SPECIES_TREECKO] = 1, - [SPECIES_GROVYLE] = 1, - [SPECIES_SCEPTILE] = 1, - [SPECIES_TORCHIC] = 0, - [SPECIES_COMBUSKEN] = 0, - [SPECIES_BLAZIKEN] = 0, - [SPECIES_MUDKIP] = 0, - [SPECIES_MARSHTOMP] = 0, - [SPECIES_SWAMPERT] = 0, - [SPECIES_POOCHYENA] = 2, - [SPECIES_MIGHTYENA] = 2, - [SPECIES_ZIGZAGOON] = 2, - [SPECIES_LINOONE] = 2, - [SPECIES_WURMPLE] = 0, - [SPECIES_SILCOON] = 2, - [SPECIES_BEAUTIFLY] = 0, - [SPECIES_CASCOON] = 2, - [SPECIES_DUSTOX] = 5, - [SPECIES_LOTAD] = 4, - [SPECIES_LOMBRE] = 1, - [SPECIES_LUDICOLO] = 1, - [SPECIES_SEEDOT] = 2, - [SPECIES_NUZLEAF] = 1, - [SPECIES_SHIFTRY] = 5, - [SPECIES_NINCADA] = 1, - [SPECIES_NINJASK] = 1, - [SPECIES_SHEDINJA] = 1, - [SPECIES_TAILLOW] = 2, - [SPECIES_SWELLOW] = 2, - [SPECIES_SHROOMISH] = 1, - [SPECIES_BRELOOM] = 1, - [SPECIES_SPINDA] = 1, - [SPECIES_WINGULL] = 0, - [SPECIES_PELIPPER] = 2, - [SPECIES_SURSKIT] = 0, - [SPECIES_MASQUERAIN] = 0, - [SPECIES_WAILMER] = 2, - [SPECIES_WAILORD] = 0, - [SPECIES_SKITTY] = 0, - [SPECIES_DELCATTY] = 2, - [SPECIES_KECLEON] = 1, - [SPECIES_BALTOY] = 2, - [SPECIES_CLAYDOL] = 0, - [SPECIES_NOSEPASS] = 0, - [SPECIES_TORKOAL] = 2, - [SPECIES_SABLEYE] = 2, - [SPECIES_BARBOACH] = 0, - [SPECIES_WHISCASH] = 0, - [SPECIES_LUVDISC] = 0, - [SPECIES_CORPHISH] = 0, - [SPECIES_CRAWDAUNT] = 0, - [SPECIES_FEEBAS] = 2, - [SPECIES_MILOTIC] = 2, - [SPECIES_CARVANHA] = 0, - [SPECIES_SHARPEDO] = 0, - [SPECIES_TRAPINCH] = 0, - [SPECIES_VIBRAVA] = 1, - [SPECIES_FLYGON] = 1, - [SPECIES_MAKUHITA] = 1, - [SPECIES_HARIYAMA] = 2, - [SPECIES_ELECTRIKE] = 1, - [SPECIES_MANECTRIC] = 0, - [SPECIES_NUMEL] = 1, - [SPECIES_CAMERUPT] = 0, - [SPECIES_SPHEAL] = 2, - [SPECIES_SEALEO] = 2, - [SPECIES_WALREIN] = 0, - [SPECIES_CACNEA] = 1, - [SPECIES_CACTURNE] = 1, - [SPECIES_SNORUNT] = 2, - [SPECIES_GLALIE] = 0, - [SPECIES_LUNATONE] = 1, - [SPECIES_SOLROCK] = 0, - [SPECIES_AZURILL] = 0, - [SPECIES_SPOINK] = 0, - [SPECIES_GRUMPIG] = 2, - [SPECIES_PLUSLE] = 0, - [SPECIES_MINUN] = 0, - [SPECIES_MAWILE] = 2, - [SPECIES_MEDITITE] = 0, - [SPECIES_MEDICHAM] = 0, - [SPECIES_SWABLU] = 0, - [SPECIES_ALTARIA] = 0, - [SPECIES_WYNAUT] = 0, - [SPECIES_DUSKULL] = 0, - [SPECIES_DUSCLOPS] = 0, - [SPECIES_ROSELIA] = 4, - [SPECIES_SLAKOTH] = 2, - [SPECIES_VIGOROTH] = 2, - [SPECIES_SLAKING] = 2, - [SPECIES_GULPIN] = 1, - [SPECIES_SWALOT] = 2, - [SPECIES_TROPIUS] = 1, - [SPECIES_WHISMUR] = 1, - [SPECIES_LOUDRED] = 2, - [SPECIES_EXPLOUD] = 2, - [SPECIES_CLAMPERL] = 0, - [SPECIES_HUNTAIL] = 0, - [SPECIES_GOREBYSS] = 0, - [SPECIES_ABSOL] = 0, - [SPECIES_SHUPPET] = 0, - [SPECIES_BANETTE] = 0, - [SPECIES_SEVIPER] = 2, - [SPECIES_ZANGOOSE] = 0, - [SPECIES_RELICANTH] = 2, - [SPECIES_ARON] = 2, - [SPECIES_LAIRON] = 2, - [SPECIES_AGGRON] = 2, - [SPECIES_CASTFORM_NORMAL] = 0, - [SPECIES_VOLBEAT] = 0, - [SPECIES_ILLUMISE] = 2, - [SPECIES_LILEEP] = 2, - [SPECIES_CRADILY] = 1, - [SPECIES_ANORITH] = 0, - [SPECIES_ARMALDO] = 2, - [SPECIES_RALTS] = 1, - [SPECIES_KIRLIA] = 1, - [SPECIES_GARDEVOIR] = 1, - [SPECIES_BAGON] = 0, - [SPECIES_SHELGON] = 2, - [SPECIES_SALAMENCE] = 0, - [SPECIES_BELDUM] = 0, - [SPECIES_METANG] = 0, - [SPECIES_METAGROSS] = 0, - [SPECIES_REGIROCK] = 2, - [SPECIES_REGICE] = 0, - [SPECIES_REGISTEEL] = 2, - [SPECIES_KYOGRE] = 2, - [SPECIES_GROUDON] = 0, - [SPECIES_RAYQUAZA] = 1, - [SPECIES_LATIAS] = 0, - [SPECIES_LATIOS] = 0, - [SPECIES_JIRACHI] = 0, - [SPECIES_DEOXYS_NORMAL] = 0, - [SPECIES_CHIMECHO] = 0, - [SPECIES_TURTWIG] = 1, - [SPECIES_GROTLE] = 1, - [SPECIES_TORTERRA] = 1, - [SPECIES_CHIMCHAR] = 1, - [SPECIES_MONFERNO] = 0, - [SPECIES_INFERNAPE] = 0, - [SPECIES_PIPLUP] = 0, - [SPECIES_PRINPLUP] = 0, - [SPECIES_EMPOLEON] = 0, - [SPECIES_STARLY] = 0, - [SPECIES_STARAVIA] = 0, - [SPECIES_STARAPTOR] = 0, - [SPECIES_BIDOOF] = 2, - [SPECIES_BIBAREL] = 2, - [SPECIES_KRICKETOT] = 2, - [SPECIES_KRICKETUNE] = 2, - [SPECIES_SHINX] = 0, - [SPECIES_LUXIO] = 0, - [SPECIES_LUXRAY] = 0, - [SPECIES_BUDEW] = 1, - [SPECIES_ROSERADE] = 0, - [SPECIES_CRANIDOS] = 0, - [SPECIES_RAMPARDOS] = 0, - [SPECIES_SHIELDON] = 1, - [SPECIES_BASTIODON] = 1, - [SPECIES_BURMY_PLANT_CLOAK] = 1, - [SPECIES_WORMADAM_PLANT_CLOAK] = 1, - [SPECIES_MOTHIM] = 0, - [SPECIES_COMBEE] = 0, - [SPECIES_VESPIQUEN] = 0, - [SPECIES_PACHIRISU] = 0, - [SPECIES_BUIZEL] = 0, - [SPECIES_FLOATZEL] = 0, - [SPECIES_CHERUBI] = 1, - [SPECIES_CHERRIM_OVERCAST] = 0, - [SPECIES_SHELLOS_WEST_SEA] = 0, - [SPECIES_GASTRODON_WEST_SEA] = 0, - [SPECIES_AMBIPOM] = 2, - [SPECIES_DRIFLOON] = 2, - [SPECIES_DRIFBLIM] = 2, - [SPECIES_BUNEARY] = 2, - [SPECIES_LOPUNNY] = 2, - [SPECIES_MISMAGIUS] = 2, - [SPECIES_HONCHKROW] = 2, - [SPECIES_GLAMEOW] = 0, - [SPECIES_PURUGLY] = 0, - [SPECIES_CHINGLING] = 1, - [SPECIES_STUNKY] = 2, - [SPECIES_SKUNTANK] = 2, - [SPECIES_BRONZOR] = 0, - [SPECIES_BRONZONG] = 0, - [SPECIES_BONSLY] = 1, - [SPECIES_MIME_JR] = 0, - [SPECIES_HAPPINY] = 0, - [SPECIES_CHATOT] = 0, - [SPECIES_SPIRITOMB] = 5, - [SPECIES_GIBLE] = 0, - [SPECIES_GABITE] = 0, - [SPECIES_GARCHOMP] = 0, - [SPECIES_MUNCHLAX] = 3, - [SPECIES_RIOLU] = 2, - [SPECIES_LUCARIO] = 2, - [SPECIES_HIPPOPOTAS] = 1, - [SPECIES_HIPPOWDON] = 1, - [SPECIES_SKORUPI] = 0, - [SPECIES_DRAPION] = 2, - [SPECIES_CROAGUNK] = 0, - [SPECIES_TOXICROAK] = 0, - [SPECIES_CARNIVINE] = 1, - [SPECIES_FINNEON] = 0, - [SPECIES_LUMINEON] = 0, - [SPECIES_MANTYKE] = 0, - [SPECIES_SNOVER] = 1, - [SPECIES_ABOMASNOW] = 1, - [SPECIES_WEAVILE] = 0, - [SPECIES_MAGNEZONE] = 0, - [SPECIES_LICKILICKY] = 1, - [SPECIES_RHYPERIOR] = 0, - [SPECIES_TANGROWTH] = 0, - [SPECIES_ELECTIVIRE] = 1, - [SPECIES_MAGMORTAR] = 0, - [SPECIES_TOGEKISS] = 2, - [SPECIES_YANMEGA] = 1, - [SPECIES_LEAFEON] = 1, - [SPECIES_GLACEON] = 0, - [SPECIES_GLISCOR] = 2, - [SPECIES_MAMOSWINE] = 2, - [SPECIES_PORYGON_Z] = 0, - [SPECIES_GALLADE] = 1, - [SPECIES_PROBOPASS] = 0, - [SPECIES_DUSKNOIR] = 2, - [SPECIES_FROSLASS] = 0, - [SPECIES_ROTOM] = 0, - [SPECIES_UXIE] = 0, - [SPECIES_MESPRIT] = 0, - [SPECIES_AZELF] = 0, - [SPECIES_DIALGA] = 2, - [SPECIES_PALKIA] = 2, - [SPECIES_HEATRAN] = 0, - [SPECIES_REGIGIGAS] = 0, - [SPECIES_GIRATINA_ALTERED] = 0, - [SPECIES_CRESSELIA] = 0, - [SPECIES_PHIONE] = 0, - [SPECIES_MANAPHY] = 0, - [SPECIES_DARKRAI] = 0, - [SPECIES_SHAYMIN_LAND] = 1, - [SPECIES_ARCEUS_NORMAL] = 1, - [SPECIES_VICTINI] = 0, - [SPECIES_SNIVY] = 1, - [SPECIES_SERVINE] = 1, - [SPECIES_SERPERIOR] = 1, - [SPECIES_TEPIG] = 0, - [SPECIES_PIGNITE] = 0, - [SPECIES_EMBOAR] = 0, - [SPECIES_OSHAWOTT] = 0, - [SPECIES_DEWOTT] = 0, - [SPECIES_SAMUROTT] = 2, - [SPECIES_PATRAT] = 2, - [SPECIES_WATCHOG] = 2, - [SPECIES_LILLIPUP] = 2, - [SPECIES_HERDIER] = 2, - [SPECIES_STOUTLAND] = 2, - [SPECIES_PURRLOIN] = 0, - [SPECIES_LIEPARD] = 0, - [SPECIES_PANSAGE] = 1, - [SPECIES_SIMISAGE] = 1, - [SPECIES_PANSEAR] = 2, - [SPECIES_SIMISEAR] = 2, - [SPECIES_PANPOUR] = 2, - [SPECIES_SIMIPOUR] = 2, - [SPECIES_MUNNA] = 0, - [SPECIES_MUSHARNA] = 0, - [SPECIES_PIDOVE] = 0, - [SPECIES_TRANQUILL] = 0, - [SPECIES_UNFEZANT] = 1, - [SPECIES_BLITZLE] = 2, - [SPECIES_ZEBSTRIKA] = 2, - [SPECIES_ROGGENROLA] = 2, - [SPECIES_BOLDORE] = 0, - [SPECIES_GIGALITH] = 0, - [SPECIES_WOOBAT] = 0, - [SPECIES_SWOOBAT] = 0, - [SPECIES_DRILBUR] = 0, - [SPECIES_EXCADRILL] = 0, - [SPECIES_AUDINO] = 1, - [SPECIES_TIMBURR] = 1, - [SPECIES_GURDURR] = 1, - [SPECIES_CONKELDURR] = 1, - [SPECIES_TYMPOLE] = 2, - [SPECIES_PALPITOAD] = 2, - [SPECIES_SEISMITOAD] = 0, - [SPECIES_THROH] = 0, - [SPECIES_SAWK] = 0, - [SPECIES_SEWADDLE] = 1, - [SPECIES_SWADLOON] = 1, - [SPECIES_LEAVANNY] = 1, - [SPECIES_VENIPEDE] = 1, - [SPECIES_WHIRLIPEDE] = 2, - [SPECIES_SCOLIPEDE] = 2, - [SPECIES_COTTONEE] = 1, - [SPECIES_WHIMSICOTT] = 1, - [SPECIES_PETILIL] = 1, - [SPECIES_LILLIGANT] = 1, - [SPECIES_BASCULIN_RED_STRIPED] = 1, - [SPECIES_SANDILE] = 1, - [SPECIES_KROKOROK] = 1, - [SPECIES_KROOKODILE] = 0, - [SPECIES_DARUMAKA] = 0, - [SPECIES_DARMANITAN_STANDARD_MODE] = 0, - [SPECIES_MARACTUS] = 1, - [SPECIES_DWEBBLE] = 0, - [SPECIES_CRUSTLE] = 2, - [SPECIES_SCRAGGY] = 2, - [SPECIES_SCRAFTY] = 0, - [SPECIES_SIGILYPH] = 0, - [SPECIES_YAMASK] = 0, - [SPECIES_COFAGRIGUS] = 0, - [SPECIES_TIRTOUGA] = 2, - [SPECIES_CARRACOSTA] = 2, - [SPECIES_ARCHEN] = 0, - [SPECIES_ARCHEOPS] = 0, - [SPECIES_TRUBBISH] = 1, - [SPECIES_GARBODOR] = 1, - [SPECIES_ZORUA] = 0, - [SPECIES_ZOROARK] = 0, - [SPECIES_MINCCINO] = 0, - [SPECIES_CINCCINO] = 0, - [SPECIES_GOTHITA] = 2, - [SPECIES_GOTHORITA] = 2, - [SPECIES_GOTHITELLE] = 2, - [SPECIES_SOLOSIS] = 1, - [SPECIES_DUOSION] = 1, - [SPECIES_REUNICLUS] = 1, - [SPECIES_DUCKLETT] = 0, - [SPECIES_SWANNA] = 2, - [SPECIES_VANILLITE] = 0, - [SPECIES_VANILLISH] = 2, - [SPECIES_VANILLUXE] = 2, - [SPECIES_DEERLING_SPRING] = 1, - [SPECIES_SAWSBUCK_SPRING] = 1, - [SPECIES_EMOLGA] = 2, - [SPECIES_KARRABLAST] = 0, - [SPECIES_ESCAVALIER] = 0, - [SPECIES_FOONGUS] = 0, - [SPECIES_AMOONGUSS] = 1, - [SPECIES_FRILLISH] = 0, - [SPECIES_JELLICENT] = 0, - [SPECIES_ALOMOMOLA] = 0, - [SPECIES_JOLTIK] = 0, - [SPECIES_GALVANTULA] = 2, - [SPECIES_FERROSEED] = 1, - [SPECIES_FERROTHORN] = 1, - [SPECIES_KLINK] = 0, - [SPECIES_KLANG] = 0, - [SPECIES_KLINKLANG] = 0, - [SPECIES_TYNAMO] = 0, - [SPECIES_EELEKTRIK] = 0, - [SPECIES_EELEKTROSS] = 0, - [SPECIES_ELGYEM] = 0, - [SPECIES_BEHEEYEM] = 2, - [SPECIES_LITWICK] = 2, - [SPECIES_LAMPENT] = 2, - [SPECIES_CHANDELURE] = 2, - [SPECIES_AXEW] = 1, - [SPECIES_FRAXURE] = 1, - [SPECIES_HAXORUS] = 2, - [SPECIES_CUBCHOO] = 0, - [SPECIES_BEARTIC] = 0, - [SPECIES_CRYOGONAL] = 0, - [SPECIES_SHELMET] = 1, - [SPECIES_ACCELGOR] = 1, - [SPECIES_STUNFISK] = 2, - [SPECIES_MIENFOO] = 1, - [SPECIES_MIENSHAO] = 2, - [SPECIES_DRUDDIGON] = 0, - [SPECIES_GOLETT] = 0, - [SPECIES_GOLURK] = 0, - [SPECIES_PAWNIARD] = 0, - [SPECIES_BISHARP] = 0, - [SPECIES_BOUFFALANT] = 2, - [SPECIES_RUFFLET] = 2, - [SPECIES_BRAVIARY] = 0, - [SPECIES_VULLABY] = 0, - [SPECIES_MANDIBUZZ] = 1, - [SPECIES_HEATMOR] = 2, - [SPECIES_DURANT] = 0, - [SPECIES_DEINO] = 2, - [SPECIES_ZWEILOUS] = 2, - [SPECIES_HYDREIGON] = 2, - [SPECIES_LARVESTA] = 0, - [SPECIES_VOLCARONA] = 0, - [SPECIES_COBALION] = 0, - [SPECIES_TERRAKION] = 2, - [SPECIES_VIRIZION] = 1, - [SPECIES_TORNADUS_INCARNATE] = 1, - [SPECIES_THUNDURUS_INCARNATE] = 0, - [SPECIES_RESHIRAM] = 0, - [SPECIES_ZEKROM] = 2, - [SPECIES_LANDORUS_INCARNATE] = 0, - [SPECIES_KYUREM] = 0, - [SPECIES_KELDEO_ORDINARY] = 0, - [SPECIES_MELOETTA_ARIA] = 4, - [SPECIES_GENESECT] = 2, - [SPECIES_CHESPIN] = 1, - [SPECIES_QUILLADIN] = 1, - [SPECIES_CHESNAUGHT] = 1, - [SPECIES_FENNEKIN] = 0, - [SPECIES_BRAIXEN] = 0, - [SPECIES_DELPHOX] = 0, - [SPECIES_FROAKIE] = 0, - [SPECIES_FROGADIER] = 0, - [SPECIES_GRENINJA] = 0, - [SPECIES_BUNNELBY] = 2, - [SPECIES_DIGGERSBY] = 2, - [SPECIES_FLETCHLING] = 2, - [SPECIES_FLETCHINDER] = 2, - [SPECIES_TALONFLAME] = 2, - [SPECIES_SCATTERBUG] = 1, - [SPECIES_SPEWPA] = 1, - [SPECIES_VIVILLON_ICY_SNOW] = 0, - [SPECIES_LITLEO] = 2, - [SPECIES_PYROAR] = 2, - [SPECIES_FLABEBE_RED_FLOWER] = 1, - [SPECIES_FLOETTE_RED_FLOWER] = 1, - [SPECIES_FLORGES_RED_FLOWER] = 0, - [SPECIES_SKIDDO] = 1, - [SPECIES_GOGOAT] = 1, - [SPECIES_PANCHAM] = 1, - [SPECIES_PANGORO] = 1, - [SPECIES_FURFROU_NATURAL] = 0, - [SPECIES_ESPURR] = 2, - [SPECIES_MEOWSTIC_MALE] = 0, - [SPECIES_HONEDGE] = 2, - [SPECIES_DOUBLADE] = 2, - [SPECIES_AEGISLASH_SHIELD] = 2, - [SPECIES_SPRITZEE] = 0, - [SPECIES_AROMATISSE] = 0, - [SPECIES_SWIRLIX] = 1, - [SPECIES_SLURPUFF] = 1, - [SPECIES_INKAY] = 0, - [SPECIES_MALAMAR] = 2, - [SPECIES_BINACLE] = 2, - [SPECIES_BARBARACLE] = 2, - [SPECIES_SKRELP] = 2, - [SPECIES_DRAGALGE] = 5, - [SPECIES_CLAUNCHER] = 0, - [SPECIES_CLAWITZER] = 0, - [SPECIES_HELIOPTILE] = 2, - [SPECIES_HELIOLISK] = 2, - [SPECIES_TYRUNT] = 2, - [SPECIES_TYRANTRUM] = 0, - [SPECIES_AMAURA] = 0, - [SPECIES_AURORUS] = 0, - [SPECIES_SYLVEON] = 0, - [SPECIES_HAWLUCHA] = 0, - [SPECIES_DEDENNE] = 0, - [SPECIES_CARBINK] = 2, - [SPECIES_GOOMY] = 5, - [SPECIES_SLIGGOO] = 5, - [SPECIES_GOODRA] = 5, - [SPECIES_KLEFKI] = 0, - [SPECIES_PHANTUMP] = 1, - [SPECIES_TREVENANT] = 1, - [SPECIES_PUMPKABOO_AVERAGE] = 2, - [SPECIES_GOURGEIST_AVERAGE] = 2, - [SPECIES_BERGMITE] = 0, - [SPECIES_AVALUGG] = 0, - [SPECIES_NOIBAT] = 2, - [SPECIES_NOIVERN] = 2, - [SPECIES_XERNEAS_NEUTRAL] = 0, - [SPECIES_YVELTAL] = 0, - [SPECIES_ZYGARDE_50_AURA_BREAK] = 1, - [SPECIES_DIANCIE] = 1, - [SPECIES_HOOPA_CONFINED] = 0, - [SPECIES_VOLCANION] = 0, - [SPECIES_ROWLET] = 0, - [SPECIES_DARTRIX] = 1, - [SPECIES_DECIDUEYE] = 1, - [SPECIES_LITTEN] = 0, - [SPECIES_TORRACAT] = 0, - [SPECIES_INCINEROAR] = 0, - [SPECIES_POPPLIO] = 0, - [SPECIES_BRIONNE] = 0, - [SPECIES_PRIMARINA] = 0, - [SPECIES_PIKIPEK] = 2, - [SPECIES_TRUMBEAK] = 0, - [SPECIES_TOUCANNON] = 0, - [SPECIES_YUNGOOS] = 2, - [SPECIES_GUMSHOOS] = 2, - [SPECIES_GRUBBIN] = 0, - [SPECIES_CHARJABUG] = 1, - [SPECIES_VIKAVOLT] = 0, - [SPECIES_CRABRAWLER] = 2, - [SPECIES_CRABOMINABLE] = 2, - [SPECIES_ORICORIO_BAILE] = 0, - [SPECIES_CUTIEFLY] = 2, - [SPECIES_RIBOMBEE] = 2, - [SPECIES_ROCKRUFF] = 2, - [SPECIES_LYCANROC_MIDDAY] = 2, - [SPECIES_WISHIWASHI_SOLO] = 2, - [SPECIES_MAREANIE] = 2, - [SPECIES_TOXAPEX] = 0, - [SPECIES_MUDBRAY] = 2, - [SPECIES_MUDSDALE] = 0, - [SPECIES_DEWPIDER] = 0, - [SPECIES_ARAQUANID] = 2, - [SPECIES_FOMANTIS] = 1, - [SPECIES_LURANTIS] = 1, - [SPECIES_MORELULL] = 0, - [SPECIES_SHIINOTIC] = 1, - [SPECIES_SALANDIT] = 2, - [SPECIES_SALAZZLE] = 0, - [SPECIES_STUFFUL] = 0, - [SPECIES_BEWEAR] = 0, - [SPECIES_BOUNSWEET] = 1, - [SPECIES_STEENEE] = 1, - [SPECIES_TSAREENA] = 1, - [SPECIES_COMFEY] = 1, - [SPECIES_ORANGURU] = 0, - [SPECIES_PASSIMIAN] = 1, - [SPECIES_WIMPOD] = 2, - [SPECIES_GOLISOPOD] = 2, - [SPECIES_SANDYGAST] = 1, - [SPECIES_PALOSSAND] = 2, - [SPECIES_PYUKUMUKU] = 0, - [SPECIES_TYPE_NULL] = 0, - [SPECIES_SILVALLY_NORMAL] = 0, - [SPECIES_MINIOR_METEOR_RED] = 2, - [SPECIES_KOMALA] = 2, - [SPECIES_TURTONATOR] = 0, - [SPECIES_TOGEDEMARU] = 2, - [SPECIES_MIMIKYU_DISGUISED] = 1, - [SPECIES_BRUXISH] = 0, - [SPECIES_DRAMPA] = 0, - [SPECIES_DHELMISE] = 1, - [SPECIES_JANGMO_O] = 2, - [SPECIES_HAKAMO_O] = 2, - [SPECIES_KOMMO_O] = 2, - [SPECIES_TAPU_KOKO] = 0, - [SPECIES_TAPU_LELE] = 0, - [SPECIES_TAPU_BULU] = 2, - [SPECIES_TAPU_FINI] = 0, - [SPECIES_COSMOG] = 2, - [SPECIES_COSMOEM] = 0, - [SPECIES_SOLGALEO] = 0, - [SPECIES_LUNALA] = 2, - [SPECIES_NIHILEGO] = 0, - [SPECIES_BUZZWOLE] = 0, - [SPECIES_PHEROMOSA] = 2, - [SPECIES_XURKITREE] = 0, - [SPECIES_CELESTEELA] = 0, - [SPECIES_KARTANA] = 0, - [SPECIES_GUZZLORD] = 0, - [SPECIES_NECROZMA] = 0, - [SPECIES_MAGEARNA] = 0, - [SPECIES_MARSHADOW] = 0, - [SPECIES_POIPOLE] = 0, - [SPECIES_NAGANADEL] = 0, - [SPECIES_STAKATAKA] = 0, - [SPECIES_BLACEPHALON] = 0, - [SPECIES_ZERAORA] = 0, - [SPECIES_MELTAN] = 2, - [SPECIES_MELMETAL] = 2, - [SPECIES_GROOKEY] = 1, - [SPECIES_THWACKEY] = 1, - [SPECIES_RILLABOOM] = 1, - [SPECIES_SCORBUNNY] = 0, - [SPECIES_RABOOT] = 0, - [SPECIES_CINDERACE] = 0, - [SPECIES_SOBBLE] = 2, - [SPECIES_DRIZZILE] = 2, - [SPECIES_INTELEON] = 0, - [SPECIES_SKWOVET] = 2, - [SPECIES_GREEDENT] = 0, - [SPECIES_ROOKIDEE] = 0, - [SPECIES_CORVISQUIRE] = 0, - [SPECIES_CORVIKNIGHT] = 0, - [SPECIES_BLIPBUG] = 0, - [SPECIES_DOTTLER] = 2, - [SPECIES_ORBEETLE] = 0, - [SPECIES_NICKIT] = 2, - [SPECIES_THIEVUL] = 2, - [SPECIES_GOSSIFLEUR] = 1, - [SPECIES_ELDEGOSS] = 1, - [SPECIES_WOOLOO] = 0, - [SPECIES_DUBWOOL] = 2, - [SPECIES_CHEWTLE] = 0, - [SPECIES_DREDNAW] = 0, - [SPECIES_YAMPER] = 1, - [SPECIES_BOLTUND] = 1, - [SPECIES_ROLYCOLY] = 0, - [SPECIES_CARKOL] = 0, - [SPECIES_COALOSSAL] = 0, - [SPECIES_APPLIN] = 1, - [SPECIES_FLAPPLE] = 1, - [SPECIES_APPLETUN] = 1, - [SPECIES_SILICOBRA] = 1, - [SPECIES_SANDACONDA] = 1, - [SPECIES_CRAMORANT] = 0, - [SPECIES_ARROKUDA] = 2, - [SPECIES_BARRASKEWDA] = 2, - [SPECIES_TOXEL] = 2, - [SPECIES_TOXTRICITY_AMPED] = 2, - [SPECIES_SIZZLIPEDE] = 0, - [SPECIES_CENTISKORCH] = 0, - [SPECIES_CLOBBOPUS] = 0, - [SPECIES_GRAPPLOCT] = 2, - [SPECIES_SINISTEA_PHONY] = 2, - [SPECIES_POLTEAGEIST_PHONY] = 2, - [SPECIES_HATENNA] = 0, - [SPECIES_HATTREM] = 0, - [SPECIES_HATTERENE] = 0, - [SPECIES_IMPIDIMP] = 0, - [SPECIES_MORGREM] = 0, - [SPECIES_GRIMMSNARL] = 0, - [SPECIES_OBSTAGOON] = 0, - [SPECIES_PERRSERKER] = 2, - [SPECIES_CURSOLA] = 0, - [SPECIES_SIRFETCHD] = 1, - [SPECIES_MR_RIME] = 0, - [SPECIES_RUNERIGUS] = 2, - [SPECIES_MILCERY] = 1, - [SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM] = 1, - [SPECIES_FALINKS] = 0, - [SPECIES_PINCURCHIN] = 0, - [SPECIES_SNOM] = 0, - [SPECIES_FROSMOTH] = 0, - [SPECIES_STONJOURNER] = 2, - [SPECIES_EISCUE_ICE_FACE] = 0, - [SPECIES_INDEEDEE_MALE] = 2, - [SPECIES_MORPEKO_FULL_BELLY] = 2, - [SPECIES_CUFANT] = 0, - [SPECIES_COPPERAJAH] = 0, - [SPECIES_DRACOZOLT] = 1, - [SPECIES_ARCTOZOLT] = 2, - [SPECIES_DRACOVISH] = 0, - [SPECIES_ARCTOVISH] = 0, - [SPECIES_DURALUDON] = 0, - [SPECIES_DREEPY] = 0, - [SPECIES_DRAKLOAK] = 0, - [SPECIES_DRAGAPULT] = 0, - [SPECIES_ZACIAN_HERO_OF_MANY_BATTLES] = 2, - [SPECIES_ZAMAZENTA_HERO_OF_MANY_BATTLES] = 2, - [SPECIES_ETERNATUS] = 0, - [SPECIES_KUBFU] = 1, - [SPECIES_URSHIFU_SINGLE_STRIKE_STYLE] = 2, - [SPECIES_ZARUDE] = 1, - [SPECIES_REGIELEKI] = 0, - [SPECIES_REGIDRAGO] = 0, - [SPECIES_GLASTRIER] = 0, - [SPECIES_SPECTRIER] = 0, - [SPECIES_CALYREX] = 0, - [SPECIES_WYRDEER] = 2, - [SPECIES_KLEAVOR] = 2, - [SPECIES_URSALUNA] = 2, - [SPECIES_BASCULEGION_MALE] = 1, - [SPECIES_SNEASLER] = 2, - [SPECIES_OVERQWIL] = 2, - [SPECIES_ENAMORUS_INCARNATE] = 1, - [SPECIES_VENUSAUR_MEGA] = 4, - [SPECIES_CHARIZARD_MEGA_X] = 0, - [SPECIES_CHARIZARD_MEGA_Y] = 0, - [SPECIES_BLASTOISE_MEGA] = 2, - [SPECIES_BEEDRILL_MEGA] = 2, - [SPECIES_PIDGEOT_MEGA] = 0, - [SPECIES_ALAKAZAM_MEGA] = 2, - [SPECIES_SLOWBRO_MEGA] = 0, - [SPECIES_GENGAR_MEGA] = 2, - [SPECIES_KANGASKHAN_MEGA] = 2, - [SPECIES_PINSIR_MEGA] = 2, - [SPECIES_GYARADOS_MEGA] = 0, - [SPECIES_AERODACTYL_MEGA] = 2, - [SPECIES_MEWTWO_MEGA_X] = 2, - [SPECIES_MEWTWO_MEGA_Y] = 2, - [SPECIES_AMPHAROS_MEGA] = 0, - [SPECIES_STEELIX_MEGA] = 0, - [SPECIES_SCIZOR_MEGA] = 0, - [SPECIES_HERACROSS_MEGA] = 0, - [SPECIES_HOUNDOOM_MEGA] = 0, - [SPECIES_TYRANITAR_MEGA] = 1, - [SPECIES_SCEPTILE_MEGA] = 1, - [SPECIES_BLAZIKEN_MEGA] = 0, - [SPECIES_SWAMPERT_MEGA] = 0, - [SPECIES_GARDEVOIR_MEGA] = 1, - [SPECIES_SABLEYE_MEGA] = 2, - [SPECIES_MAWILE_MEGA] = 0, - [SPECIES_AGGRON_MEGA] = 2, - [SPECIES_MEDICHAM_MEGA] = 0, - [SPECIES_MANECTRIC_MEGA] = 0, - [SPECIES_SHARPEDO_MEGA] = 0, - [SPECIES_CAMERUPT_MEGA] = 0, - [SPECIES_ALTARIA_MEGA] = 0, - [SPECIES_BANETTE_MEGA] = 0, - [SPECIES_ABSOL_MEGA] = 0, - [SPECIES_GLALIE_MEGA] = 0, - [SPECIES_SALAMENCE_MEGA] = 0, - [SPECIES_METAGROSS_MEGA] = 0, - [SPECIES_LATIAS_MEGA] = 2, - [SPECIES_LATIOS_MEGA] = 2, - [SPECIES_KYOGRE_PRIMAL] = 0, - [SPECIES_GROUDON_PRIMAL] = 0, - [SPECIES_RAYQUAZA_MEGA] = 1, - [SPECIES_LOPUNNY_MEGA] = 2, - [SPECIES_GARCHOMP_MEGA] = 0, - [SPECIES_LUCARIO_MEGA] = 2, - [SPECIES_ABOMASNOW_MEGA] = 1, - [SPECIES_GALLADE_MEGA] = 1, - [SPECIES_AUDINO_MEGA] = 1, - [SPECIES_DIANCIE_MEGA] = 0, - [SPECIES_RATTATA_ALOLAN] = 2, - [SPECIES_RATICATE_ALOLAN] = 2, - [SPECIES_RAICHU_ALOLAN] = 2, - [SPECIES_SANDSHREW_ALOLAN] = 0, - [SPECIES_SANDSLASH_ALOLAN] = 0, - [SPECIES_VULPIX_ALOLAN] = 2, - [SPECIES_NINETALES_ALOLAN] = 2, - [SPECIES_DIGLETT_ALOLAN] = 2, - [SPECIES_DUGTRIO_ALOLAN] = 2, - [SPECIES_MEOWTH_ALOLAN] = 2, - [SPECIES_PERSIAN_ALOLAN] = 2, - [SPECIES_GEODUDE_ALOLAN] = 2, - [SPECIES_GRAVELER_ALOLAN] = 2, - [SPECIES_GOLEM_ALOLAN] = 2, - [SPECIES_GRIMER_ALOLAN] = 1, - [SPECIES_MUK_ALOLAN] = 0, - [SPECIES_EXEGGUTOR_ALOLAN] = 1, - [SPECIES_MAROWAK_ALOLAN] = 1, - [SPECIES_MEOWTH_GALARIAN] = 0, - [SPECIES_PONYTA_GALARIAN] = 2, - [SPECIES_RAPIDASH_GALARIAN] = 2, - [SPECIES_SLOWPOKE_GALARIAN] = 1, - [SPECIES_SLOWBRO_GALARIAN] = 0, - [SPECIES_FARFETCHD_GALARIAN] = 1, - [SPECIES_WEEZING_GALARIAN] = 1, - [SPECIES_MR_MIME_GALARIAN] = 0, - [SPECIES_ARTICUNO_GALARIAN] = 2, - [SPECIES_ZAPDOS_GALARIAN] = 0, - [SPECIES_MOLTRES_GALARIAN] = 0, - [SPECIES_SLOWKING_GALARIAN] = 2, - [SPECIES_CORSOLA_GALARIAN] = 0, - [SPECIES_ZIGZAGOON_GALARIAN] = 0, - [SPECIES_LINOONE_GALARIAN] = 0, - [SPECIES_DARUMAKA_GALARIAN] = 0, - [SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE] = 0, - [SPECIES_YAMASK_GALARIAN] = 2, - [SPECIES_STUNFISK_GALARIAN] = 1, - [SPECIES_GROWLITHE_HISUIAN] = 0, - [SPECIES_ARCANINE_HISUIAN] = 0, - [SPECIES_VOLTORB_HISUIAN] = 0, - [SPECIES_ELECTRODE_HISUIAN] = 1, - [SPECIES_TYPHLOSION_HISUIAN] = 1, - [SPECIES_QWILFISH_HISUIAN] = 0, - [SPECIES_SNEASEL_HISUIAN] = 2, - [SPECIES_SAMUROTT_HISUIAN] = 0, - [SPECIES_LILLIGANT_HISUIAN] = 1, - [SPECIES_ZORUA_HISUIAN] = 0, - [SPECIES_ZOROARK_HISUIAN] = 0, - [SPECIES_BRAVIARY_HISUIAN] = 2, - [SPECIES_SLIGGOO_HISUIAN] = 2, - [SPECIES_GOODRA_HISUIAN] = 2, - [SPECIES_AVALUGG_HISUIAN] = 5, - [SPECIES_DECIDUEYE_HISUIAN] = 0, - [SPECIES_PIKACHU_COSPLAY] = 2, - [SPECIES_PIKACHU_ROCK_STAR] = 1, - [SPECIES_PIKACHU_BELLE] = 0, - [SPECIES_PIKACHU_POP_STAR] = 0, - [SPECIES_PIKACHU_PH_D] = 1, - [SPECIES_PIKACHU_LIBRE] = 0, - [SPECIES_PIKACHU_ORIGINAL_CAP] = 0, - [SPECIES_PIKACHU_HOENN_CAP] = 0, - [SPECIES_PIKACHU_SINNOH_CAP] = 0, - [SPECIES_PIKACHU_UNOVA_CAP] = 0, - [SPECIES_PIKACHU_KALOS_CAP] = 0, - [SPECIES_PIKACHU_ALOLA_CAP] = 0, - [SPECIES_PIKACHU_PARTNER_CAP] = 0, - [SPECIES_PIKACHU_WORLD_CAP] = 0, - [SPECIES_PICHU_SPIKY_EARED] = 1, - [SPECIES_UNOWN_B ... SPECIES_UNOWN_QMARK] = 0, - [SPECIES_CASTFORM_SUNNY] = 0, - [SPECIES_CASTFORM_RAINY] = 0, - [SPECIES_CASTFORM_SNOWY] = 0, - [SPECIES_DEOXYS_ATTACK] = 0, - [SPECIES_DEOXYS_DEFENSE] = 0, - [SPECIES_DEOXYS_SPEED] = 0, -#if P_GEN_4_POKEMON == TRUE - [SPECIES_BURMY_SANDY_CLOAK] = 1, - [SPECIES_BURMY_TRASH_CLOAK] = 0, - [SPECIES_WORMADAM_SANDY_CLOAK] = 1, - [SPECIES_WORMADAM_TRASH_CLOAK] = 0, - [SPECIES_CHERRIM_SUNSHINE] = 1, - [SPECIES_SHELLOS_EAST_SEA] = 0, - [SPECIES_GASTRODON_EAST_SEA] = 0, - [SPECIES_ROTOM_HEAT] = 0, - [SPECIES_ROTOM_WASH] = 0, - [SPECIES_ROTOM_FROST] = 5, - [SPECIES_ROTOM_FAN] = 0, - [SPECIES_ROTOM_MOW] = 0, - [SPECIES_DIALGA_ORIGIN] = 0, - [SPECIES_PALKIA_ORIGIN] = 2, - [SPECIES_GIRATINA_ORIGIN] = 0, - [SPECIES_SHAYMIN_SKY] = 1, - [SPECIES_ARCEUS_FIGHTING] = 1, - [SPECIES_ARCEUS_FLYING] = 1, - [SPECIES_ARCEUS_POISON] = 1, - [SPECIES_ARCEUS_GROUND] = 1, - [SPECIES_ARCEUS_ROCK] = 1, - [SPECIES_ARCEUS_BUG] = 1, - [SPECIES_ARCEUS_GHOST] = 1, - [SPECIES_ARCEUS_STEEL] = 1, - [SPECIES_ARCEUS_FIRE] = 1, - [SPECIES_ARCEUS_WATER] = 1, - [SPECIES_ARCEUS_GRASS] = 1, - [SPECIES_ARCEUS_ELECTRIC] = 1, - [SPECIES_ARCEUS_PSYCHIC] = 1, - [SPECIES_ARCEUS_ICE] = 1, - [SPECIES_ARCEUS_DRAGON] = 1, - [SPECIES_ARCEUS_DARK] = 1, - [SPECIES_ARCEUS_FAIRY] = 1, -#endif -#if P_GEN_5_POKEMON == TRUE - [SPECIES_BASCULIN_BLUE_STRIPED] = 0, - [SPECIES_BASCULIN_WHITE_STRIPED] = 0, - [SPECIES_DARMANITAN_ZEN_MODE] = 0, - [SPECIES_DARMANITAN_GALARIAN_ZEN_MODE] = 0, - [SPECIES_DEERLING_SUMMER] = 1, - [SPECIES_DEERLING_AUTUMN] = 0, - [SPECIES_DEERLING_WINTER] = 2, - [SPECIES_SAWSBUCK_SUMMER] = 1, - [SPECIES_SAWSBUCK_AUTUMN] = 1, - [SPECIES_SAWSBUCK_WINTER] = 1, - [SPECIES_TORNADUS_THERIAN] = 1, - [SPECIES_THUNDURUS_THERIAN] = 0, - [SPECIES_LANDORUS_THERIAN] = 0, - [SPECIES_KYUREM_WHITE] = 0, - [SPECIES_KYUREM_BLACK] = 0, - [SPECIES_KELDEO_RESOLUTE] = 0, - [SPECIES_MELOETTA_PIROUETTE] = 0, - [SPECIES_GENESECT_DOUSE_DRIVE] = 2, - [SPECIES_GENESECT_SHOCK_DRIVE] = 2, - [SPECIES_GENESECT_BURN_DRIVE] = 2, - [SPECIES_GENESECT_CHILL_DRIVE] = 2, -#endif -#if P_GEN_6_POKEMON == TRUE - [SPECIES_GRENINJA_BATTLE_BOND] = 0, - [SPECIES_GRENINJA_ASH] = 0, - [SPECIES_VIVILLON_POLAR] = 0, - [SPECIES_VIVILLON_TUNDRA] = 0, - [SPECIES_VIVILLON_CONTINENTAL] = 2, - [SPECIES_VIVILLON_GARDEN] = 1, - [SPECIES_VIVILLON_ELEGANT] = 0, - [SPECIES_VIVILLON_MEADOW] = 0, - [SPECIES_VIVILLON_MODERN] = 2, - [SPECIES_VIVILLON_MARINE] = 0, - [SPECIES_VIVILLON_ARCHIPELAGO] = 0, - [SPECIES_VIVILLON_HIGH_PLAINS] = 0, - [SPECIES_VIVILLON_SANDSTORM] = 1, - [SPECIES_VIVILLON_RIVER] = 2, - [SPECIES_VIVILLON_MONSOON] = 0, - [SPECIES_VIVILLON_SAVANNA] = 0, - [SPECIES_VIVILLON_SUN] = 0, - [SPECIES_VIVILLON_OCEAN] = 0, - [SPECIES_VIVILLON_JUNGLE] = 0, - [SPECIES_VIVILLON_FANCY] = 1, - [SPECIES_VIVILLON_POKE_BALL] = 2, - [SPECIES_FLABEBE_YELLOW_FLOWER] = 1, - [SPECIES_FLABEBE_ORANGE_FLOWER] = 0, - [SPECIES_FLABEBE_BLUE_FLOWER] = 0, - [SPECIES_FLABEBE_WHITE_FLOWER] = 1, - [SPECIES_FLOETTE_YELLOW_FLOWER] = 1, - [SPECIES_FLOETTE_ORANGE_FLOWER] = 0, - [SPECIES_FLOETTE_BLUE_FLOWER] = 0, - [SPECIES_FLOETTE_WHITE_FLOWER] = 1, - [SPECIES_FLOETTE_ETERNAL_FLOWER] = 0, - [SPECIES_FLORGES_YELLOW_FLOWER] = 1, - [SPECIES_FLORGES_ORANGE_FLOWER] = 0, - [SPECIES_FLORGES_BLUE_FLOWER] = 0, - [SPECIES_FLORGES_WHITE_FLOWER] = 0, - [SPECIES_FURFROU_HEART_TRIM] = 0, - [SPECIES_FURFROU_STAR_TRIM] = 0, - [SPECIES_FURFROU_DIAMOND_TRIM] = 0, - [SPECIES_FURFROU_DEBUTANTE_TRIM] = 2, - [SPECIES_FURFROU_MATRON_TRIM] = 2, - [SPECIES_FURFROU_DANDY_TRIM] = 1, - [SPECIES_FURFROU_LA_REINE_TRIM] = 0, - [SPECIES_FURFROU_KABUKI_TRIM] = 0, - [SPECIES_FURFROU_PHARAOH_TRIM] = 0, - [SPECIES_MEOWSTIC_FEMALE] = 0, - [SPECIES_AEGISLASH_BLADE] = 2, - [SPECIES_PUMPKABOO_SMALL] = 2, - [SPECIES_PUMPKABOO_LARGE] = 2, - [SPECIES_PUMPKABOO_SUPER] = 2, - [SPECIES_GOURGEIST_SMALL] = 2, - [SPECIES_GOURGEIST_LARGE] = 2, - [SPECIES_GOURGEIST_SUPER] = 2, - [SPECIES_XERNEAS_ACTIVE] = 0, - [SPECIES_ZYGARDE_10_AURA_BREAK] = 1, - [SPECIES_ZYGARDE_10_POWER_CONSTRUCT] = 1, - [SPECIES_ZYGARDE_50_POWER_CONSTRUCT] = 1, - [SPECIES_ZYGARDE_COMPLETE] = 1, - [SPECIES_HOOPA_UNBOUND] = 0, -#endif -#if P_GEN_7_POKEMON == TRUE - [SPECIES_ORICORIO_POM_POM] = 1, - [SPECIES_ORICORIO_PAU] = 1, - [SPECIES_ORICORIO_SENSU] = 0, - [SPECIES_ROCKRUFF_OWN_TEMPO] = 2, - [SPECIES_LYCANROC_MIDNIGHT] = 0, - [SPECIES_LYCANROC_DUSK] = 0, - [SPECIES_WISHIWASHI_SCHOOL] = 0, - [SPECIES_SILVALLY_FIGHTING] = 0, - [SPECIES_SILVALLY_FLYING] = 0, - [SPECIES_SILVALLY_POISON] = 0, - [SPECIES_SILVALLY_GROUND] = 0, - [SPECIES_SILVALLY_ROCK] = 0, - [SPECIES_SILVALLY_BUG] = 0, - [SPECIES_SILVALLY_GHOST] = 0, - [SPECIES_SILVALLY_STEEL] = 0, - [SPECIES_SILVALLY_FIRE] = 0, - [SPECIES_SILVALLY_WATER] = 0, - [SPECIES_SILVALLY_GRASS] = 0, - [SPECIES_SILVALLY_ELECTRIC] = 0, - [SPECIES_SILVALLY_PSYCHIC] = 0, - [SPECIES_SILVALLY_ICE] = 0, - [SPECIES_SILVALLY_DRAGON] = 0, - [SPECIES_SILVALLY_DARK] = 0, - [SPECIES_SILVALLY_FAIRY] = 0, - [SPECIES_MINIOR_CORE_RED] = 0, - [SPECIES_MINIOR_CORE_ORANGE] = 0, - [SPECIES_MINIOR_CORE_YELLOW] = 0, - [SPECIES_MINIOR_CORE_GREEN] = 1, - [SPECIES_MINIOR_CORE_BLUE] = 0, - [SPECIES_MINIOR_CORE_INDIGO] = 0, - [SPECIES_MINIOR_CORE_VIOLET] = 2, - [SPECIES_MIMIKYU_BUSTED] = 1, - [SPECIES_NECROZMA_DUSK_MANE] = 0, - [SPECIES_NECROZMA_DAWN_WINGS] = 0, - [SPECIES_NECROZMA_ULTRA] = 2, - [SPECIES_MAGEARNA_ORIGINAL_COLOR] = 0, -#endif -#if P_GEN_8_POKEMON == TRUE - [SPECIES_CRAMORANT_GULPING] = 0, - [SPECIES_CRAMORANT_GORGING] = 0, - [SPECIES_TOXTRICITY_LOW_KEY] = 2, - [SPECIES_SINISTEA_ANTIQUE] = 2, - [SPECIES_POLTEAGEIST_ANTIQUE] = 2, - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM] = 0, - [SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM] = 0, - [SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM] = 0, - [SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM] = 0, - [SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM] = 0, - [SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL] = 0, - [SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL] = 0, - [SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL] = 0, - [SPECIES_EISCUE_NOICE_FACE] = 0, - [SPECIES_INDEEDEE_FEMALE] = 2, - [SPECIES_MORPEKO_HANGRY] = 2, - [SPECIES_ZACIAN_CROWNED_SWORD] = 2, - [SPECIES_ZAMAZENTA_CROWNED_SHIELD] = 2, - [SPECIES_ETERNATUS_ETERNAMAX] = 0, - [SPECIES_URSHIFU_RAPID_STRIKE_STYLE] = 2, - [SPECIES_ZARUDE_DADA] = 1, - [SPECIES_CALYREX_ICE_RIDER] = 0, - [SPECIES_CALYREX_SHADOW_RIDER] = 0, - [SPECIES_ENAMORUS_THERIAN] = 1, - [SPECIES_BASCULEGION_FEMALE] = 0, - [SPECIES_VENUSAUR_GIGANTAMAX] = 0, - [SPECIES_CHARIZARD_GIGANTAMAX] = 0, - [SPECIES_BLASTOISE_GIGANTAMAX] = 0, - [SPECIES_BUTTERFREE_GIGANTAMAX] = 0, - [SPECIES_PIKACHU_GIGANTAMAX] = 2, - [SPECIES_MEOWTH_GIGANTAMAX] = 1, - [SPECIES_MACHAMP_GIGANTAMAX] = 0, - [SPECIES_GENGAR_GIGANTAMAX] = 2, - [SPECIES_KINGLER_GIGANTAMAX] = 0, - [SPECIES_LAPRAS_GIGANTAMAX] = 2, - [SPECIES_EEVEE_GIGANTAMAX] = 2, - [SPECIES_SNORLAX_GIGANTAMAX] = 3, - [SPECIES_GARBODOR_GIGANTAMAX] = 0, - [SPECIES_MELMETAL_GIGANTAMAX] = 0, - [SPECIES_RILLABOOM_GIGANTAMAX] = 1, - [SPECIES_CINDERACE_GIGANTAMAX] = 0, - [SPECIES_INTELEON_GIGANTAMAX] = 0, - [SPECIES_CORVIKNIGHT_GIGANTAMAX] = 0, - [SPECIES_ORBEETLE_GIGANTAMAX] = 0, - [SPECIES_DREDNAW_GIGANTAMAX] = 0, - [SPECIES_COALOSSAL_GIGANTAMAX] = 0, - [SPECIES_FLAPPLE_GIGANTAMAX] = 1, - [SPECIES_APPLETUN_GIGANTAMAX] = 1, - [SPECIES_SANDACONDA_GIGANTAMAX] = 1, - [SPECIES_TOXTRICITY_AMPED_GIGANTAMAX] = 0, - [SPECIES_TOXTRICITY_LOW_KEY_GIGANTAMAX] = 0, - [SPECIES_CENTISKORCH_GIGANTAMAX] = 0, - [SPECIES_HATTERENE_GIGANTAMAX] = 0, - [SPECIES_GRIMMSNARL_GIGANTAMAX] = 0, - [SPECIES_ALCREMIE_GIGANTAMAX] = 1, - [SPECIES_COPPERAJAH_GIGANTAMAX] = 0, - [SPECIES_DURALUDON_GIGANTAMAX] = 0, - [SPECIES_URSHIFU_SINGLE_STRIKE_STYLE_GIGANTAMAX] = 0, - [SPECIES_URSHIFU_RAPID_STRIKE_STYLE_GIGANTAMAX] = 0, -#endif - [SPECIES_EGG] = 1, -}; - -const u8 gMonIconPaletteIndicesFemale[] = -{ -#if P_GEN_4_POKEMON == TRUE - [SPECIES_HIPPOPOTAS] = 1, - [SPECIES_HIPPOWDON] = 1, -#endif -#if P_GEN_5_POKEMON == TRUE - [SPECIES_UNFEZANT] = 1, - [SPECIES_FRILLISH] = 1, - [SPECIES_JELLICENT] = 1, -#endif -#if P_GEN_6_POKEMON == TRUE - [SPECIES_PYROAR] = 2, -#endif -}; +*/ const struct SpritePalette gMonIconPaletteTable[] = { @@ -2740,13 +1613,14 @@ u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u .anims = sMonIconAnims, .affineAnims = sMonIconAffineAnims, .callback = callback, - .paletteTag = POKE_ICON_BASE_PAL_TAG + gMonIconPaletteIndices[species], + .paletteTag = POKE_ICON_BASE_PAL_TAG + gSpeciesInfo[species].iconPalIndex, }; + species = SanitizeSpeciesId(species); if (species > NUM_SPECIES) iconTemplate.paletteTag = POKE_ICON_BASE_PAL_TAG; - else if (gMonIconTableFemale[species] && IsPersonalityFemale(species, personality)) - iconTemplate.paletteTag = POKE_ICON_BASE_PAL_TAG + gMonIconPaletteIndicesFemale[species]; + else if (gSpeciesInfo[species].iconSpriteFemale != NULL && IsPersonalityFemale(species, personality)) + iconTemplate.paletteTag = POKE_ICON_BASE_PAL_TAG + gSpeciesInfo[species].iconPalIndexFemale; spriteId = CreateMonIconSprite(&iconTemplate, x, y, subpriority); @@ -2766,7 +1640,7 @@ u8 CreateMonIconNoPersonality(u16 species, void (*callback)(struct Sprite *), s1 .anims = sMonIconAnims, .affineAnims = sMonIconAffineAnims, .callback = callback, - .paletteTag = POKE_ICON_BASE_PAL_TAG + gMonIconPaletteIndices[species], + .paletteTag = POKE_ICON_BASE_PAL_TAG + gSpeciesInfo[species].iconPalIndex, }; iconTemplate.image = GetMonIconTiles(species, 0); @@ -2779,21 +1653,10 @@ u8 CreateMonIconNoPersonality(u16 species, void (*callback)(struct Sprite *), s1 u16 GetIconSpecies(u16 species, u32 personality) { - u16 result; - + species = SanitizeSpeciesId(species); if (species == SPECIES_UNOWN) - { - result = GetUnownSpeciesId(personality); - } - else - { - if (species > NUM_SPECIES) - result = INVALID_ICON_SPECIES; - else - result = species; - } - - return result; + species = GetUnownSpeciesId(personality); + return species; } u16 GetUnownLetterByPersonality(u32 personality) @@ -2806,20 +1669,11 @@ u16 GetUnownLetterByPersonality(u32 personality) u16 GetIconSpeciesNoPersonality(u16 species) { - u16 value; - - if (MailSpeciesToSpecies(species, &value) == SPECIES_UNOWN) - { - value += SPECIES_UNOWN_B; // TODO - return value; - } - else - { - if (species > NUM_SPECIES) - species = INVALID_ICON_SPECIES; + species = SanitizeSpeciesId(species); - return GetIconSpecies(species, 0); - } + if (MailSpeciesToSpecies(species, &species) == SPECIES_UNOWN) + return species += SPECIES_UNOWN_B; // TODO + return GetIconSpecies(species, 0); } const u8 *GetMonIconPtr(u16 species, u32 personality) @@ -2843,16 +1697,14 @@ void LoadMonIconPalettes(void) void SafeLoadMonIconPalette(u16 species) { u8 palIndex; - if (species > NUM_SPECIES) - species = INVALID_ICON_SPECIES; - palIndex = gMonIconPaletteIndices[species]; + palIndex = gSpeciesInfo[SanitizeSpeciesId(species)].iconPalIndex; if (IndexOfSpritePaletteTag(gMonIconPaletteTable[palIndex].tag) == 0xFF) LoadSpritePalette(&gMonIconPaletteTable[palIndex]); } void LoadMonIconPalette(u16 species) { - u8 palIndex = gMonIconPaletteIndices[species]; + u8 palIndex = gSpeciesInfo[SanitizeSpeciesId(species)].iconPalIndex; if (IndexOfSpritePaletteTag(gMonIconPaletteTable[palIndex].tag) == 0xFF) LoadSpritePalette(&gMonIconPaletteTable[palIndex]); } @@ -2860,10 +1712,11 @@ void LoadMonIconPalette(u16 species) void LoadMonIconPalettePersonality(u16 species, u32 personality) { u8 palIndex; - if (gMonIconTableFemale[species] != NULL && IsPersonalityFemale(species, personality)) - palIndex = gMonIconPaletteIndicesFemale[species]; + species = SanitizeSpeciesId(species); + if (gSpeciesInfo[species].iconSpriteFemale != NULL && IsPersonalityFemale(species, personality)) + palIndex = gSpeciesInfo[species].iconPalIndexFemale; else - palIndex = gMonIconPaletteIndices[species]; + palIndex = gSpeciesInfo[species].iconPalIndex; if (IndexOfSpritePaletteTag(gMonIconPaletteTable[palIndex].tag) == 0xFF) LoadSpritePalette(&gMonIconPaletteTable[palIndex]); } @@ -2879,16 +1732,14 @@ void FreeMonIconPalettes(void) void SafeFreeMonIconPalette(u16 species) { u8 palIndex; - if (species > NUM_SPECIES) - species = INVALID_ICON_SPECIES; - palIndex = gMonIconPaletteIndices[species]; + palIndex = gSpeciesInfo[SanitizeSpeciesId(species)].iconPalIndex; FreeSpritePaletteByTag(gMonIconPaletteTable[palIndex].tag); } void FreeMonIconPalette(u16 species) { u8 palIndex; - palIndex = gMonIconPaletteIndices[species]; + palIndex = gSpeciesInfo[SanitizeSpeciesId(species)].iconPalIndex; FreeSpritePaletteByTag(gMonIconPaletteTable[palIndex].tag); } @@ -2904,12 +1755,12 @@ const u8 *GetMonIconTiles(u16 species, u32 personality) if (species > NUM_SPECIES) species = SPECIES_NONE; - if (gMonIconTableFemale[species] != NULL && IsPersonalityFemale(species, personality)) - iconSprite = gMonIconTableFemale[species]; - else if (gMonIconTable[species] != NULL) - iconSprite = gMonIconTable[species]; + if (gSpeciesInfo[species].iconSpriteFemale != NULL && IsPersonalityFemale(species, personality)) + iconSprite = gSpeciesInfo[species].iconSpriteFemale; + else if (gSpeciesInfo[species].iconSprite != NULL) + iconSprite = gSpeciesInfo[species].iconSprite; else - iconSprite = gMonIconTable[SPECIES_NONE]; + iconSprite = gSpeciesInfo[SPECIES_NONE].iconSprite; return iconSprite; } @@ -2929,21 +1780,17 @@ void TryLoadAllMonIconPalettesAtOffset(u16 offset) u8 GetValidMonIconPalIndex(u16 species) { - if (species > NUM_SPECIES) - species = INVALID_ICON_SPECIES; - return gMonIconPaletteIndices[species]; + return gSpeciesInfo[SanitizeSpeciesId(species)].iconPalIndex; } u8 GetMonIconPaletteIndexFromSpecies(u16 species) { - return gMonIconPaletteIndices[species]; + return gSpeciesInfo[SanitizeSpeciesId(species)].iconPalIndex; } const u16 *GetValidMonIconPalettePtr(u16 species) { - if (species > NUM_SPECIES) - species = INVALID_ICON_SPECIES; - return gMonIconPaletteTable[gMonIconPaletteIndices[species]].data; + return gMonIconPaletteTable[gSpeciesInfo[SanitizeSpeciesId(species)].iconPalIndex].data; } u8 UpdateMonIconFrame(struct Sprite *sprite) diff --git a/src/pokemon_jump.c b/src/pokemon_jump.c index 1cfc1e7ce576..f9f1ae61279c 100755 --- a/src/pokemon_jump.c +++ b/src/pokemon_jump.c @@ -492,6 +492,7 @@ static const struct PokemonJumpMons sPokeJumpMons[] = { .species = SPECIES_MARILL, .jumpType = JUMP_TYPE_SLOW, }, { .species = SPECIES_SUNKERN, .jumpType = JUMP_TYPE_SLOW, }, { .species = SPECIES_WOOPER, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_WOOPER_PALDEAN, .jumpType = JUMP_TYPE_SLOW, }, { .species = SPECIES_PINECO, .jumpType = JUMP_TYPE_SLOW, }, { .species = SPECIES_SNUBBULL, .jumpType = JUMP_TYPE_NORMAL, }, { .species = SPECIES_SHUCKLE, .jumpType = JUMP_TYPE_SLOW, }, @@ -703,6 +704,60 @@ static const struct PokemonJumpMons sPokeJumpMons[] = { .species = SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, { .species = SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, { .species = SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_BERRY_VANILLA_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_BERRY_RUBY_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_BERRY_MATCHA_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_BERRY_MINT_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_BERRY_LEMON_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_BERRY_SALTED_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_BERRY_RUBY_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_LOVE_VANILLA_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_LOVE_RUBY_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_LOVE_MATCHA_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_LOVE_MINT_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_LOVE_LEMON_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_LOVE_SALTED_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_LOVE_RUBY_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_STAR_VANILLA_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_STAR_RUBY_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_STAR_MATCHA_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_STAR_MINT_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_STAR_LEMON_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_STAR_SALTED_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_STAR_RUBY_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_CLOVER_RUBY_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_CLOVER_MINT_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_CLOVER_LEMON_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_CLOVER_SALTED_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_FLOWER_RUBY_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_FLOWER_MINT_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_FLOWER_LEMON_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_FLOWER_SALTED_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_RIBBON_RUBY_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_RIBBON_MINT_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_RIBBON_LEMON_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_RIBBON_SALTED_CREAM, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL, .jumpType = JUMP_TYPE_SLOW, }, { .species = SPECIES_PINCURCHIN, .jumpType = JUMP_TYPE_SLOW, }, { .species = SPECIES_SNOM, .jumpType = JUMP_TYPE_SLOW, }, { .species = SPECIES_MORPEKO_FULL_BELLY, .jumpType = JUMP_TYPE_NORMAL, }, @@ -3897,7 +3952,7 @@ static void CreateJumpMonSprites(void) { struct PokemonJump_MonInfo *monInfo = GetMonInfoByMultiplayerId(i); - y = gMonFrontPicCoords[monInfo->species].y_offset; + y = gSpeciesInfo[monInfo->species].frontPicYOffset; CreateJumpMonSprite(sPokemonJumpGfx, monInfo, *xCoords, y + 112, i); CreateStarSprite(sPokemonJumpGfx, *xCoords, 112, i); xCoords++; diff --git a/src/pokemon_size_record.c b/src/pokemon_size_record.c index bc2ffe1aea68..3f98e65ba675 100644 --- a/src/pokemon_size_record.c +++ b/src/pokemon_size_record.c @@ -84,7 +84,7 @@ static u32 GetMonSize(u16 species, u16 b) u32 height; u32 var; - height = GetPokedexHeightWeight(SpeciesToNationalPokedexNum(species), 0); + height = GetSpeciesWeight(species); var = TranslateBigMonSizeTableIndex(b); unk0 = sBigMonSizeTable[var].unk0; unk2 = sBigMonSizeTable[var].unk2; diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index aa6c79b407b6..47e800f925f9 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -5119,7 +5119,7 @@ static u16 TryLoadMonIconTiles(u16 species, u32 personality) u16 i, offset; // Treat female mons as a seperate species as they may have a different icon than males - if (gMonIconTableFemale[species] != NULL && IsPersonalityFemale(species, personality)) + if (gSpeciesInfo[species].iconSpriteFemale != NULL && IsPersonalityFemale(species, personality)) species |= 0x8000; // 1 << 15 // Search icon list for this species @@ -5186,13 +5186,13 @@ static struct Sprite *CreateMonIconSprite(u16 species, u32 personality, s16 x, s struct SpriteTemplate template = sSpriteTemplate_MonIcon; species = GetIconSpecies(species, personality); - if (gMonIconTableFemale[species] != NULL && IsPersonalityFemale(species, personality)) + if (gSpeciesInfo[species].iconSpriteFemale != NULL && IsPersonalityFemale(species, personality)) { - template.paletteTag = PALTAG_MON_ICON_0 + gMonIconPaletteIndicesFemale[species]; + template.paletteTag = PALTAG_MON_ICON_0 + gSpeciesInfo[species].iconPalIndexFemale; } else { - template.paletteTag = PALTAG_MON_ICON_0 + gMonIconPaletteIndices[species]; + template.paletteTag = PALTAG_MON_ICON_0 + gSpeciesInfo[species].iconPalIndex; } tileNum = TryLoadMonIconTiles(species, personality); diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 376db2e159a0..cc611003e835 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -42,6 +42,7 @@ #include "tv.h" #include "window.h" #include "constants/battle_move_effects.h" +#include "constants/hold_effects.h" #include "constants/items.h" #include "constants/moves.h" #include "constants/party_menu.h" @@ -437,12 +438,12 @@ static const struct WindowTemplate sSummaryTemplate[] = .height = 3, .paletteNum = 2, .baseBlock = 100, - }, - [PSS_LABEL_PANE_RIGHT_SMALL] = { - .bg = 0, - .tilemapLeft = 11, - .tilemapTop = 5, - .width = 19, + .tilemapLeft = 1, + .tilemapTop = 12, + .width = 9, + .height = 2, + .paletteNum = 6, + .baseBlock = 397, .height = 15, .paletteNum = 2, .baseBlock = 200, @@ -3897,7 +3898,6 @@ static void SwapMovesTypeSprites(u8 moveIndex1, u8 moveIndex2) static u8 LoadMonGfxAndSprite(struct Pokemon *mon, s16 *state) { - const struct CompressedSpritePalette *pal; struct PokeSummary *summary = &sMonSummaryScreen->summary; switch (*state) diff --git a/src/pokenav_match_call_gfx.c b/src/pokenav_match_call_gfx.c index 4271e2ff23b9..d28d4a276eba 100755 --- a/src/pokenav_match_call_gfx.c +++ b/src/pokenav_match_call_gfx.c @@ -1247,7 +1247,7 @@ static void LoadCheckPageTrainerPic(struct Pokenav_MatchCallGfx *gfx) int trainerPic = GetMatchCallTrainerPic(PokenavList_GetSelectedIndex()); if (trainerPic >= 0) { - DecompressPicFromTable(&gTrainerFrontPicTable[trainerPic], gfx->trainerPicGfx, SPECIES_NONE); + DecompressPicFromTable(&gTrainerFrontPicTable[trainerPic], gfx->trainerPicGfx); LZ77UnCompWram(gTrainerFrontPicPaletteTable[trainerPic].data, gfx->trainerPicPal); cursor = RequestDma3Copy(gfx->trainerPicGfx, gfx->trainerPicGfxPtr, sizeof(gfx->trainerPicGfx), 1); LoadPalette(gfx->trainerPicPal, gfx->trainerPicPalOffset, sizeof(gfx->trainerPicPal)); diff --git a/src/rom_header_gf.c b/src/rom_header_gf.c index d4d04da1a6a2..6ca84d7a1a60 100644 --- a/src/rom_header_gf.c +++ b/src/rom_header_gf.c @@ -104,14 +104,14 @@ static const struct GFRomHeader sGFRomHeader = { .version = GAME_VERSION, .language = GAME_LANGUAGE, .gameName = "pokemon emerald version", - .monFrontPics = gMonFrontPicTable, - .monBackPics = gMonBackPicTable, - .monNormalPalettes = gMonPaletteTable, - .monShinyPalettes = gMonShinyPaletteTable, - .monIcons = gMonIconTable, - .monIconPaletteIds = gMonIconPaletteIndices, + //.monFrontPics = gMonFrontPicTable, // Handled in gSpeciesInfo + //.monBackPics = gMonBackPicTable, // Handled in gSpeciesInfo + //.monNormalPalettes = gMonPaletteTable, // Handled in gSpeciesInfo + //.monShinyPalettes = gMonShinyPaletteTable, // Handled in gSpeciesInfo + //.monIcons = gMonIconTable, + //.monIconPaletteIds = gMonIconPaletteIndices, .monIconPalettes = gMonIconPaletteTable, - .monSpeciesNames = gSpeciesNames, + //.monSpeciesNames = gSpeciesNames, // Handled in gSpeciesInfo .moveNames = gMoveNames, .decorations = gDecorations, .flagsOffset = offsetof(struct SaveBlock1, flags), diff --git a/src/rom_header_rhh.c b/src/rom_header_rhh.c new file mode 100644 index 000000000000..2e141670a744 --- /dev/null +++ b/src/rom_header_rhh.c @@ -0,0 +1,26 @@ +#include "global.h" +#include "constants/expansion.h" + +// Similar to the GF ROM header, this struct allows external programs to +// detect details about Expansion. +// For this structure to be useful we have to maintain backwards binary +// compatibility. This means that we should only ever append data to the +// end. If there are any structs as members then those structs should +// not be modified after being introduced. +struct RHHRomHeader +{ + /*0x00*/ char rhh_magic[6]; // 'RHHEXP'. Useful to locate the header if it shifts. + /*0x06*/ u8 expansionVersionMajor; + /*0x07*/ u8 expansionVersionMinor; + /*0x08*/ u8 expansionVersionPatch; + /*0x09*/ u8 expansionVersionFlags; +}; + +static const struct RHHRomHeader sRHHRomHeader = +{ + .rhh_magic = { 'R', 'H', 'H', 'E', 'X', 'P' }, + .expansionVersionMajor = EXPANSION_VERSION_MAJOR, + .expansionVersionMinor = EXPANSION_VERSION_MINOR, + .expansionVersionPatch = EXPANSION_VERSION_PATCH, + .expansionVersionFlags = (EXPANSION_TAGGED_RELEASE << 0), +}; diff --git a/src/rtc.c b/src/rtc.c index b79f62a3c468..64e6734552ce 100644 --- a/src/rtc.c +++ b/src/rtc.c @@ -293,6 +293,26 @@ void RtcCalcLocalTime(void) RtcCalcTimeDifference(&sRtc, &gLocalTime, &gSaveBlock2Ptr->localTimeOffset); } +bool8 IsBetweenHours(s32 hours, s32 begin, s32 end) +{ + if (end < begin) + return hours > begin || hours < end; + else + return hours >= begin && hours < end; +} + +u8 GetTimeOfDay(void) +{ + RtcCalcLocalTime(); + if (IsBetweenHours(gLocalTime.hours, MORNING_HOUR_BEGIN, MORNING_HOUR_END)) + return TIME_MORNING; + else if (IsBetweenHours(gLocalTime.hours, EVENING_HOUR_BEGIN, EVENING_HOUR_END)) + return TIME_EVENING; + else if (IsBetweenHours(gLocalTime.hours, NIGHT_HOUR_BEGIN, NIGHT_HOUR_END)) + return TIME_NIGHT; + return TIME_DAY; +} + void RtcInitLocalTimeOffset(s32 hour, s32 minute) { RtcCalcLocalTimeOffset(0, hour, minute, 0); diff --git a/src/script_menu.c b/src/script_menu.c index 01b7f6a58899..6444e382e92c 100644 --- a/src/script_menu.c +++ b/src/script_menu.c @@ -89,7 +89,7 @@ static u16 UNUSED GetLengthWithExpandedPlayerName(const u8 *str) return length; } -static void DrawMultichoiceMenuInternal(u8 left, u8 top, u8 multichoiceId, bool8 ignoreBPress, u8 cursorPos, const struct MenuAction *actions, int count) +void DrawMultichoiceMenuInternal(u8 left, u8 top, u8 multichoiceId, bool8 ignoreBPress, u8 cursorPos, const struct MenuAction *actions, int count) { int i; u8 windowId; @@ -116,79 +116,6 @@ static void DrawMultichoiceMenu(u8 left, u8 top, u8 multichoiceId, bool8 ignoreB DrawMultichoiceMenuInternal(left, top, multichoiceId, ignoreBPress, cursorPos, sMultichoiceLists[multichoiceId].list, sMultichoiceLists[multichoiceId].count); } -#if I_REPEL_LURE_MENU == TRUE -void TryDrawRepelMenu(struct ScriptContext *ctx) -{ - static const u16 repelItems[] = {ITEM_REPEL, ITEM_SUPER_REPEL, ITEM_MAX_REPEL}; - struct MenuAction menuItems[ARRAY_COUNT(repelItems) + 1] = {NULL}; - int i, count = 0, menuPos = 0; - - for (i = 0; i < ARRAY_COUNT(repelItems); i++) - { - if (CheckBagHasItem(repelItems[i], 1)) - { - VarSet(VAR_0x8004 + count, repelItems[i]); - #if VAR_LAST_REPEL_LURE_USED != 0 - if (VarGet(VAR_LAST_REPEL_LURE_USED) == repelItems[i]) - menuPos = count; - #endif - menuItems[count].text = ItemId_GetName(repelItems[i]); - count++; - } - } - - if (count > 1) - DrawMultichoiceMenuInternal(0, 0, 0, FALSE, menuPos, menuItems, count); - - gSpecialVar_Result = (count > 1); -} - -void HandleRepelMenuChoice(struct ScriptContext *ctx) -{ - gSpecialVar_0x8004 = VarGet(VAR_0x8004 + gSpecialVar_Result); // Get item Id; - VarSet(VAR_REPEL_STEP_COUNT, ItemId_GetHoldEffectParam(gSpecialVar_0x8004)); -#if VAR_LAST_REPEL_LURE_USED != 0 - VarSet(VAR_LAST_REPEL_LURE_USED, gSpecialVar_0x8004); -#endif -} - -void TryDrawLureMenu(struct ScriptContext *ctx) -{ - static const u16 lureItems[] = {ITEM_LURE, ITEM_SUPER_LURE, ITEM_MAX_LURE}; - struct MenuAction menuItems[ARRAY_COUNT(lureItems) + 1] = {NULL}; - int i, count = 0, menuPos = 0; - - - for (i = 0; i < ARRAY_COUNT(lureItems); i++) - { - if (CheckBagHasItem(lureItems[i], 1)) - { - VarSet(VAR_0x8004 + count, lureItems[i]); - #if VAR_LAST_REPEL_LURE_USED != 0 - if (VarGet(VAR_LAST_REPEL_LURE_USED) == lureItems[i]) - menuPos = count; - #endif - menuItems[count].text = ItemId_GetName(lureItems[i]); - count++; - } - } - - if (count > 1) - DrawMultichoiceMenuInternal(0, 0, 0, FALSE, menuPos, menuItems, count); - - gSpecialVar_Result = (count > 1); -} - -void HandleLureMenuChoice(struct ScriptContext *ctx) -{ - gSpecialVar_0x8004 = VarGet(VAR_0x8004 + gSpecialVar_Result); // Get item Id; - VarSet(VAR_REPEL_STEP_COUNT, ItemId_GetHoldEffectParam(gSpecialVar_0x8004) | REPEL_LURE_MASK); -#if VAR_LAST_REPEL_LURE_USED != 0 - VarSet(VAR_LAST_REPEL_LURE_USED, gSpecialVar_0x8004); -#endif -} -#endif //I_REPEL_LURE_MENU == TRUE - #define tLeft data[0] #define tTop data[1] #define tRight data[2] diff --git a/src/script_pokemon_util.c b/src/script_pokemon_util.c index ee3cc559f8d5..19b187bddf1e 100644 --- a/src/script_pokemon_util.c +++ b/src/script_pokemon_util.c @@ -21,6 +21,7 @@ #include "sprite.h" #include "string_util.h" #include "tv.h" +#include "wild_encounter.h" #include "constants/items.h" #include "constants/battle_frontier.h" @@ -66,7 +67,11 @@ u8 ScriptGiveMon(u16 species, u8 level, u16 item, u32 unused1, u32 unused2, u8 u struct Pokemon mon; u16 targetSpecies; - CreateMon(&mon, species, level, USE_RANDOM_IVS, FALSE, 0, OT_ID_PLAYER_ID, 0); + if (OW_SYNCHRONIZE_NATURE >= GEN_6 && (gSpeciesInfo[species].eggGroups[0] == EGG_GROUP_UNDISCOVERED || OW_SYNCHRONIZE_NATURE == GEN_7)) + CreateMonWithNature(&mon, species, level, USE_RANDOM_IVS, PickWildMonNature()); + else + CreateMon(&mon, species, level, USE_RANDOM_IVS, FALSE, 0, OT_ID_PLAYER_ID, 0); + heldItem[0] = item; heldItem[1] = item >> 8; SetMonData(&mon, MON_DATA_HELD_ITEM, heldItem); @@ -149,7 +154,10 @@ void CreateScriptedWildMon(u16 species, u8 level, u16 item) u8 heldItem[2]; ZeroEnemyPartyMons(); - CreateMon(&gEnemyParty[0], species, level, USE_RANDOM_IVS, 0, 0, OT_ID_PLAYER_ID, 0); + if (OW_SYNCHRONIZE_NATURE > GEN_3) + CreateMonWithNature(&gEnemyParty[0], species, level, USE_RANDOM_IVS, PickWildMonNature()); + else + CreateMon(&gEnemyParty[0], species, level, USE_RANDOM_IVS, 0, 0, OT_ID_PLAYER_ID, 0); if (item) { heldItem[0] = item; @@ -164,7 +172,10 @@ void CreateScriptedDoubleWildMon(u16 species1, u8 level1, u16 item1, u16 species ZeroEnemyPartyMons(); - CreateMon(&gEnemyParty[0], species1, level1, 32, 0, 0, OT_ID_PLAYER_ID, 0); + if (OW_SYNCHRONIZE_NATURE > GEN_3) + CreateMonWithNature(&gEnemyParty[0], species1, level1, 32, PickWildMonNature()); + else + CreateMon(&gEnemyParty[0], species1, level1, 32, 0, 0, OT_ID_PLAYER_ID, 0); if (item1) { heldItem1[0] = item1; @@ -172,7 +183,10 @@ void CreateScriptedDoubleWildMon(u16 species1, u8 level1, u16 item1, u16 species SetMonData(&gEnemyParty[0], MON_DATA_HELD_ITEM, heldItem1); } - CreateMon(&gEnemyParty[1], species2, level2, 32, 0, 0, OT_ID_PLAYER_ID, 0); + if (OW_SYNCHRONIZE_NATURE > GEN_3) + CreateMonWithNature(&gEnemyParty[1], species2, level2, 32, PickWildMonNature()); + else + CreateMon(&gEnemyParty[1], species2, level2, 32, 0, 0, OT_ID_PLAYER_ID, 0); if (item2) { heldItem2[0] = item2; diff --git a/src/sound.c b/src/sound.c index e84bedfec13b..c6f01c8ad26b 100644 --- a/src/sound.c +++ b/src/sound.c @@ -375,7 +375,7 @@ void PlayCryInternal(u16 species, s8 pan, s8 volume, u8 priority, u8 mode) // Set default values // May be overridden depending on mode. - length = 140; + length = 210; reverse = FALSE; release = 0; pitch = 15360; @@ -459,8 +459,12 @@ void PlayCryInternal(u16 species, s8 pan, s8 volume, u8 priority, u8 mode) SetPokemonCryChorus(chorus); SetPokemonCryPriority(priority); - species--; - gMPlay_PokemonCry = SetPokemonCryTone(reverse ? &gCryTable_Reverse[species] : &gCryTable[species]); + species = GetCryIdBySpecies(species); + if (species != 0) + { + species--; + gMPlay_PokemonCry = SetPokemonCryTone(reverse ? &gCryTable_Reverse[species] : &gCryTable[species]); + } } bool8 IsCryFinished(void) diff --git a/src/sprays.c b/src/sprays.c new file mode 100644 index 000000000000..b553d125ac24 --- /dev/null +++ b/src/sprays.c @@ -0,0 +1,116 @@ +#include "global.h" +#include "event_data.h" +#include "script_menu.h" +#include "strings.h" +#include "constants/items.h" +#include "item.h" +#include "script_menu.h" +#include "menu.h" + +#define SPRAY_COUNT 0 +#define SPRAY_GET 1 + +#define NUM_SPRAY_STRENGTH 3 +#define SPRAY_MENU_Y_COORD 8 + +#define LOCAL_VAR_SPRAY gSpecialVar_0x8004 +#define LOCAL_VAR_SPRAY_CONST VAR_0x8004 + +u32 CountOrGetSprays(u32); +u32 GetNumberSprayStrength(void); +u32 GetSprayId(void); +u32 GetLastUsedSprayType(void); +u32 SetSprayMenuCursorPosition(int, int); +#if I_REPEL_LURE_MENU == TRUE +void DrawSprayMenu(void); +#endif +void HandleSprayMenuChoice(void); + +u32 CountOrGetSprays(u32 func) +{ + u32 i, currentSpray, sprayCount = 0; + u32 spray = GetLastUsedSprayType(); + + for (i = 0; i < NUM_SPRAY_STRENGTH; i++) + { + currentSpray = spray + i; + + if (!CheckBagHasItem(currentSpray,1)) + continue; + + if (func == SPRAY_COUNT) + sprayCount++; + else + return (currentSpray); + } + return sprayCount; +} + +u32 GetNumberSprayStrength(void) +{ + return CountOrGetSprays(SPRAY_COUNT); +} + +u32 GetSprayId(void) +{ + return CountOrGetSprays(SPRAY_GET); +} + +u32 GetLastUsedSprayType(void) +{ + if (IS_LAST_USED_LURE(VarGet(VAR_REPEL_STEP_COUNT))) + return ITEM_LURE; + else + return ITEM_REPEL; +} + +u32 SetSprayMenuCursorPosition(int currentSpray, int count) +{ + if (VarGet(VAR_LAST_REPEL_LURE_USED) == currentSpray) + return count; + + return 0; +} + +#if I_REPEL_LURE_MENU == TRUE +void DrawSprayMenu(void) +{ + struct MenuAction menuItems[NUM_SPRAY_STRENGTH+1] = {NULL}; + int sprayIndex, count = 0, menuPos = 0, currentSpray, yCoord = 0; + u32 spray = GetLastUsedSprayType(); + + for (sprayIndex = 0; sprayIndex < (NUM_SPRAY_STRENGTH); sprayIndex++) + { + currentSpray = spray + sprayIndex; + + if (!CheckBagHasItem(currentSpray, 1)) + continue; + + menuItems[count].text = ItemId_GetName(currentSpray); + VarSet(LOCAL_VAR_SPRAY_CONST + count, currentSpray); + + if (VAR_LAST_REPEL_LURE_USED != 0) + menuPos = SetSprayMenuCursorPosition(currentSpray, count); + + yCoord = SPRAY_MENU_Y_COORD - (2 * count); + count++; + } + + gSpecialVar_0x8003 = count; + menuItems[count].text = gText_Cancel2; + + DrawMultichoiceMenuInternal(18, yCoord, 0, FALSE, menuPos, menuItems, count+1); +} +#endif + +void HandleSprayMenuChoice(void) +{ + u32 lureMask = (GetLastUsedSprayType() == ITEM_LURE) ? REPEL_LURE_MASK : 0; + + LOCAL_VAR_SPRAY = VarGet(LOCAL_VAR_SPRAY_CONST + gSpecialVar_Result); + + VarSet(VAR_REPEL_STEP_COUNT, ItemId_GetHoldEffectParam(LOCAL_VAR_SPRAY) | lureMask); + + if (VAR_LAST_REPEL_LURE_USED != 0) + VarSet(VAR_LAST_REPEL_LURE_USED, LOCAL_VAR_SPRAY); +} diff --git a/src/starter_choose.c b/src/starter_choose.c index 39de696e97ba..3097f87f7331 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -576,7 +576,7 @@ static void CreateStarterPokemonLabel(u8 selection) u8 labelLeft, labelRight, labelTop, labelBottom; u16 species = GetStarterPokemon(selection); - CopyMonCategoryText(SpeciesToNationalPokedexNum(species), categoryText); + CopyMonCategoryText(species, categoryText); speciesName = GetSpeciesName(species); winTemplate = sWindowTemplate_StarterLabel; diff --git a/src/strings.c b/src/strings.c index 0d28f9a72587..8edbd4c80a5c 100644 --- a/src/strings.c +++ b/src/strings.c @@ -385,6 +385,7 @@ const u8 gText_HP3[] = _("HP"); const u8 gText_SpAtk3[] = _("SP. ATK"); const u8 gText_SpDef3[] = _("SP. DEF"); const u8 gText_WontHaveEffect[] = _("It won't have any effect.{PAUSE_UNTIL_PRESS}"); +const u8 gText_NextFusionMon[] = _("Choose {PKMN} to fuse with."); const u8 gText_CantBeUsedOnPkmn[] = _("This can't be used on\nthat POKéMON.{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnCantSwitchOut[] = _("{STR_VAR_1} can't be switched\nout!{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnAlreadyInBattle[] = _("{STR_VAR_1} is already\nin battle!{PAUSE_UNTIL_PRESS}"); @@ -470,6 +471,7 @@ const u8 gText_ChoosePokemonConfirm[] = _("Choose POKéMON and confirm."); const u8 gText_EnjoyCycling[] = _("Let's enjoy cycling!"); const u8 gText_InUseAlready_PM[] = _("This is in use already."); const u8 gText_AlreadyHoldingOne[] = _("{STR_VAR_1} is already holding\none {STR_VAR_2}."); +const u8 gText_WhichAppliance[] = _("Order which\nappliance?"); const u8 gText_NoUse[] = _("No use."); const u8 gText_Able[] = _("ABLE"); const u8 gText_First_PM[] = _("FIRST"); @@ -895,7 +897,7 @@ const u8 gText_PkmnWasReleased[] = _("{DYNAMIC 0} was released."); const u8 gText_ByeByePkmn[] = _("Bye-bye, {DYNAMIC 0}!"); const u8 gText_MarkYourPkmn[] = _("Mark your POKéMON."); const u8 gText_ThatsYourLastPkmn[] = _("That's your last POKéMON!"); -const u8 gText_YourPartysFull[] = _("Your party's full!"); +const u8 gText_YourPartysFull[] = _("Your party's full!{PAUSE_UNTIL_PRESS}"); const u8 gText_YoureHoldingAPkmn[] = _("You're holding a POKéMON!"); const u8 gText_WhichOneWillYouTake[] = _("Which one will you take?"); const u8 gText_YouCantReleaseAnEgg[] = _("You can't release an EGG."); @@ -1770,6 +1772,14 @@ const u8 gText_TrainerHill1F[] = _("1F"); const u8 gText_TrainerHill2F[] = _("2F"); const u8 gText_TrainerHill3F[] = _("3F"); const u8 gText_TrainerHill4F[] = _("4F"); +const u8 gText_LightBulb[] = _("Light bulb"); +const u8 gText_MicrowaveOven[] = _("Microwave oven"); +const u8 gText_WashingMachine[] = _("Washing machine"); +const u8 gText_Refrigerator[] = _("Refrigerator"); +const u8 gText_ElectricFan[] = _("Electric fan"); +const u8 gText_LawnMower[] = _("Lawn mower"); +const u8 gText_ChangeForm[] = _("Change form"); +const u8 gText_ChangeAbility[] = _("Change Ability"); const u8 gText_TeachWhichMoveToPkmn[] = _("Teach which move to {STR_VAR_1}?"); const u8 gText_MoveRelearnerTeachMoveConfirm[] = _("Teach {STR_VAR_2}?"); const u8 gText_MoveRelearnerPkmnLearnedMove[] = _("{STR_VAR_1} learned\n{STR_VAR_2}!"); diff --git a/src/trade.c b/src/trade.c index 4976e009120a..aaa337f4357a 100644 --- a/src/trade.c +++ b/src/trade.c @@ -1571,7 +1571,7 @@ static u8 CheckValidityOfTradeMons(u8 *aliveMons, u8 playerPartyCount, u8 player partnerSpecies = GetMonData(&gEnemyParty[partnerMonIdx], MON_DATA_SPECIES); // Can't trade specific species - if (gSpeciesInfo[partnerSpecies].flags & SPECIES_FLAG_CANNOT_BE_TRADED) + if (gSpeciesInfo[partnerSpecies].cannotBeTraded) return PARTNER_MON_INVALID; // Partner cant trade Egg or non-Hoenn mon if player doesn't have National Dex @@ -2418,7 +2418,7 @@ static u32 CanTradeSelectedMon(struct Pokemon *playerParty, int partyCount, int } // Can't trade specific species - if (gSpeciesInfo[species[monIdx]].flags & SPECIES_FLAG_CANNOT_BE_TRADED) + if (gSpeciesInfo[species[monIdx]].cannotBeTraded) return CANT_TRADE_INVALID_MON; // Make Eggs not count for numMonsLeft @@ -2501,7 +2501,7 @@ int GetUnionRoomTradeMessageId(struct RfuGameCompatibilityData player, struct Rf } // Can't trade specific species - if (gSpeciesInfo[playerSpecies].flags & SPECIES_FLAG_CANNOT_BE_TRADED) + if (gSpeciesInfo[playerSpecies].cannotBeTraded) return UR_TRADE_MSG_MON_CANT_BE_TRADED; if (partnerSpecies == SPECIES_EGG) @@ -2549,7 +2549,7 @@ int CanRegisterMonForTradingBoard(struct RfuGameCompatibilityData player, u16 sp bool8 hasNationalDex = player.hasNationalDex; // Can't trade specific species - if (gSpeciesInfo[species].flags & SPECIES_FLAG_CANNOT_BE_TRADED) + if (gSpeciesInfo[species].cannotBeTraded) return CANT_REGISTER_MON; if (hasNationalDex) @@ -2767,7 +2767,7 @@ static void LoadTradeMonPic(u8 whichParty, u8 state) { int pos = 0; struct Pokemon *mon = NULL; - u16 species; + u16 species = SPECIES_NONE; u32 personality; if (whichParty == TRADE_PLAYER) @@ -2781,21 +2781,21 @@ static void LoadTradeMonPic(u8 whichParty, u8 state) mon = &gEnemyParty[gSelectedTradeMonPositions[TRADE_PARTNER] % PARTY_SIZE]; pos = B_POSITION_OPPONENT_RIGHT; } + species = GetMonData(mon, MON_DATA_SPECIES_OR_EGG); switch (state) { case 0: - species = GetMonData(mon, MON_DATA_SPECIES_OR_EGG); personality = GetMonData(mon, MON_DATA_PERSONALITY); HandleLoadSpecialPokePic(TRUE, gMonSpritesGfxPtr->sprites.ptr[whichParty * 2 + B_POSITION_OPPONENT_LEFT], species, personality); - LoadCompressedSpritePalette(GetMonSpritePalStruct(mon)); + LoadCompressedSpritePaletteWithTag(GetMonFrontSpritePal(mon), species); sTradeAnim->monSpecies[whichParty] = species; sTradeAnim->monPersonalities[whichParty] = personality; break; case 1: - SetMultiuseSpriteTemplateToPokemon(GetMonSpritePalStruct(mon)->tag, pos); + SetMultiuseSpriteTemplateToPokemon(species, pos); sTradeAnim->monSpriteIds[whichParty] = CreateSprite(&gMultiuseSpriteTemplate, 120, 60, 6); gSprites[sTradeAnim->monSpriteIds[whichParty]].invisible = TRUE; gSprites[sTradeAnim->monSpriteIds[whichParty]].callback = SpriteCallbackDummy; @@ -3423,7 +3423,7 @@ static bool8 DoTradeAnim_Cable(void) case STATE_START: gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]].invisible = FALSE; gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]].x2 = -180; - gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]].y2 = gMonFrontPicCoords[sTradeAnim->monSpecies[TRADE_PLAYER]].y_offset; + gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]].y2 = gSpeciesInfo[sTradeAnim->monSpecies[TRADE_PLAYER]].frontPicYOffset; sTradeAnim->state++; sTradeAnim->cachedMapMusic = GetCurrentMapMusic(); PlayNewMapMusic(MUS_EVOLUTION); @@ -3792,7 +3792,7 @@ static bool8 DoTradeAnim_Cable(void) break; case STATE_SHOW_NEW_MON: gSprites[sTradeAnim->monSpriteIds[TRADE_PARTNER]].x = 120; - gSprites[sTradeAnim->monSpriteIds[TRADE_PARTNER]].y = gMonFrontPicCoords[sTradeAnim->monSpecies[TRADE_PARTNER]].y_offset + 60; + gSprites[sTradeAnim->monSpriteIds[TRADE_PARTNER]].y = gSpeciesInfo[sTradeAnim->monSpecies[TRADE_PARTNER]].frontPicYOffset + 60; gSprites[sTradeAnim->monSpriteIds[TRADE_PARTNER]].x2 = 0; gSprites[sTradeAnim->monSpriteIds[TRADE_PARTNER]].y2 = 0; StartSpriteAnim(&gSprites[sTradeAnim->monSpriteIds[TRADE_PARTNER]], 0); @@ -3896,7 +3896,7 @@ static bool8 DoTradeAnim_Wireless(void) case STATE_START: gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]].invisible = FALSE; gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]].x2 = -180; - gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]].y2 = gMonFrontPicCoords[sTradeAnim->monSpecies[TRADE_PLAYER]].y_offset; + gSprites[sTradeAnim->monSpriteIds[TRADE_PLAYER]].y2 = gSpeciesInfo[sTradeAnim->monSpecies[TRADE_PLAYER]].frontPicYOffset; sTradeAnim->state++; sTradeAnim->cachedMapMusic = GetCurrentMapMusic(); PlayNewMapMusic(MUS_EVOLUTION); @@ -4289,7 +4289,7 @@ static bool8 DoTradeAnim_Wireless(void) break; case STATE_SHOW_NEW_MON: gSprites[sTradeAnim->monSpriteIds[TRADE_PARTNER]].x = 120; - gSprites[sTradeAnim->monSpriteIds[TRADE_PARTNER]].y = gMonFrontPicCoords[sTradeAnim->monSpecies[TRADE_PARTNER]].y_offset + 60; + gSprites[sTradeAnim->monSpriteIds[TRADE_PARTNER]].y = gSpeciesInfo[sTradeAnim->monSpecies[TRADE_PARTNER]].frontPicYOffset + 60; gSprites[sTradeAnim->monSpriteIds[TRADE_PARTNER]].x2 = 0; gSprites[sTradeAnim->monSpriteIds[TRADE_PARTNER]].y2 = 0; StartSpriteAnim(&gSprites[sTradeAnim->monSpriteIds[TRADE_PARTNER]], 0); diff --git a/src/trainer_card.c b/src/trainer_card.c index 1535c3d997b8..225e8241ac0e 100755 --- a/src/trainer_card.c +++ b/src/trainer_card.c @@ -1078,7 +1078,7 @@ static void PrintPokedexOnCard(void) AddTextPrinterParameterized3(WIN_CARD_TEXT, FONT_NORMAL, 20, 72, sTrainerCardTextColors, TEXT_SKIP_DRAW, gText_TrainerCardPokedex); else AddTextPrinterParameterized3(WIN_CARD_TEXT, FONT_NORMAL, 16, 73, sTrainerCardTextColors, TEXT_SKIP_DRAW, gText_TrainerCardPokedex); - StringCopy(ConvertIntToDecimalStringN(gStringVar4, sData->trainerCard.caughtMonsCount, STR_CONV_MODE_LEFT_ALIGN, 3), gText_EmptyString6); + StringCopy(ConvertIntToDecimalStringN(gStringVar4, sData->trainerCard.caughtMonsCount, STR_CONV_MODE_LEFT_ALIGN, 4), gText_EmptyString6); if (!sData->isHoenn) { xOffset = GetStringRightAlignXOffset(FONT_NORMAL, gStringVar4, 144); diff --git a/src/trainer_pokemon_sprites.c b/src/trainer_pokemon_sprites.c index 5b58d7acdf8c..45cf4dcc8b6a 100644 --- a/src/trainer_pokemon_sprites.c +++ b/src/trainer_pokemon_sprites.c @@ -61,21 +61,14 @@ static bool16 DecompressPic(u16 species, u32 personality, bool8 isFrontPic, u8 * { if (!isTrainer) { - if (isFrontPic) - { - LoadSpecialPokePic(dest, species, personality, isFrontPic); - } - else - { - LoadSpecialPokePic(dest, species, personality, isFrontPic); - } + LoadSpecialPokePic(dest, species, personality, isFrontPic); } else { if (isFrontPic) - DecompressPicFromTable(&gTrainerFrontPicTable[species], dest, species); + DecompressPicFromTable(&gTrainerFrontPicTable[species], dest); else - DecompressPicFromTable(&gTrainerBackPicTable[species], dest, species); + DecompressPicFromTable(&gTrainerBackPicTable[species], dest); } return FALSE; } @@ -92,7 +85,7 @@ static void LoadPicPaletteByTagOrSlot(u16 species, u32 otId, u32 personality, u8 else { sCreatingSpriteTemplate.paletteTag = paletteTag; - LoadCompressedSpritePalette(GetMonSpritePalStructFromOtIdPersonality(species, otId, personality)); + LoadCompressedSpritePaletteWithTag(GetMonSpritePalFromSpeciesAndPersonality(species, otId, personality), species); } } else @@ -227,7 +220,7 @@ u16 CreateMonPicSprite_Affine(u16 species, u32 otId, u32 personality, u8 flags, images[j].size = MON_PIC_SIZE; } sCreatingSpriteTemplate.tileTag = TAG_NONE; - sCreatingSpriteTemplate.anims = gMonFrontAnimsPtrTable[species]; + sCreatingSpriteTemplate.anims = gSpeciesInfo[species].frontAnimFrames; sCreatingSpriteTemplate.images = images; if (type == MON_PIC_AFFINE_FRONT) { diff --git a/src/trainer_see.c b/src/trainer_see.c index 2e153bc50e85..2ecef4a8b0e4 100644 --- a/src/trainer_see.c +++ b/src/trainer_see.c @@ -65,6 +65,8 @@ static const u8 sEmotion_HeartGfx[] = INCBIN_U8("graphics/field_effects/pics/emo // TODO: Credit https://www.spriters-resource.com/ds_dsi/pokemonheartgoldsoulsilver/sheet/30497/ static const u8 sEmotion_Gfx[] = INCBIN_U8("graphics/misc/emotes.4bpp"); +static const u8 sEmotion_DoubleExclamationMarkGfx[] = INCBIN_U8("graphics/field_effects/pics/emotion_double_exclamation.4bpp"); +static const u8 sEmotion_XGfx[] = INCBIN_U8("graphics/field_effects/pics/emote_x.4bpp"); static u8 (*const sDirectionalApproachDistanceFuncs[])(struct ObjectEvent *trainerObj, s16 range, s16 x, s16 y) = { @@ -139,6 +141,14 @@ static const struct SpriteFrameImage sSpriteImageTable_ExclamationQuestionMark[] { .data = sEmotion_QuestionMarkGfx, .size = sizeof(sEmotion_QuestionMarkGfx) + }, + { + .data = sEmotion_DoubleExclamationMarkGfx, + .size = sizeof(sEmotion_DoubleExclamationMarkGfx) + }, + { + .data = sEmotion_XGfx, + .size = sizeof(sEmotion_XGfx) } }; @@ -265,10 +275,25 @@ static const union AnimCmd sSpriteAnim_Icons2[] = ANIMCMD_END }; + +static const union AnimCmd sSpriteAnim_Icons3[] = +{ + ANIMCMD_FRAME(2, 60), + ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_Icons4[] = +{ + ANIMCMD_FRAME(3, 60), + ANIMCMD_END +}; + static const union AnimCmd *const sSpriteAnimTable_Icons[] = { - sSpriteAnim_Icons1, - sSpriteAnim_Icons2 + sSpriteAnim_Icons1, + sSpriteAnim_Icons2, + sSpriteAnim_Icons3, + sSpriteAnim_Icons4 }; static const union AnimCmd *const sSpriteAnimTable_Emotes[] = { @@ -878,6 +903,27 @@ u8 FldEff_HeartIcon(void) return 0; } + +u8 FldEff_DoubleExclMarkIcon(void) +{ + u8 spriteId = CreateSpriteAtEnd(&sSpriteTemplate_ExclamationQuestionMark, 0, 0, 0x53); + + if (spriteId != MAX_SPRITES) + SetIconSpriteData(&gSprites[spriteId], FLDEFF_EXCLAMATION_MARK_ICON, 2); + + return 0; +} + +u8 FldEff_XIcon(void) +{ + u8 spriteId = CreateSpriteAtEnd(&sSpriteTemplate_ExclamationQuestionMark, 0, 0, 0x53); + + if (spriteId != MAX_SPRITES) + SetIconSpriteData(&gSprites[spriteId], FLDEFF_EXCLAMATION_MARK_ICON, 3); + + return 0; +} + static void SetIconSpriteData(struct Sprite *sprite, u16 fldEffId, u8 spriteAnimNum) { sprite->oam.priority = 1; diff --git a/src/vs_seeker.c b/src/vs_seeker.c new file mode 100644 index 000000000000..0b58b9bac321 --- /dev/null +++ b/src/vs_seeker.c @@ -0,0 +1,793 @@ +#include "global.h" +#include "task.h" +#include "event_object_movement.h" +#include "item_use.h" +#include "event_scripts.h" +#include "event_data.h" +#include "script.h" +#include "event_object_lock.h" +#include "field_specials.h" +#include "item.h" +#include "item_menu.h" +#include "field_effect.h" +#include "script_movement.h" +#include "battle.h" +#include "battle_setup.h" +#include "random.h" +#include "field_player_avatar.h" +#include "vs_seeker.h" +#include "menu.h" +#include "string_util.h" +#include "tv.h" +#include "malloc.h" +#include "field_screen_effect.h" +#include "gym_leader_rematch.h" +#include "sound.h" +#include "constants/event_object_movement.h" +#include "constants/event_objects.h" +#include "constants/items.h" +#include "constants/maps.h" +#include "constants/songs.h" +#include "constants/trainer_types.h" +#include "constants/field_effects.h" + +enum +{ + VSSEEKER_NOT_CHARGED, + VSSEEKER_NO_ONE_IN_RANGE, + VSSEEKER_CAN_USE, +}; + +typedef enum +{ + VSSEEKER_SINGLE_RESP_RAND, + VSSEEKER_SINGLE_RESP_NO, + VSSEEKER_SINGLE_RESP_YES +} VsSeekerSingleRespCode; + +typedef enum +{ + VSSEEKER_RESPONSE_NO_RESPONSE, + VSSEEKER_RESPONSE_UNFOUGHT_TRAINERS, + VSSEEKER_RESPONSE_FOUND_REMATCHES +} VsSeekerResponseCode; + +struct VsSeekerTrainerInfo +{ + const u8 *script; + u16 trainerIdx; + u8 localId; + u8 objectEventId; + s16 xCoord; + s16 yCoord; + u8 graphicsId; +}; + +struct VsSeekerStruct +{ + struct VsSeekerTrainerInfo trainerInfo[OBJECT_EVENTS_COUNT]; + u16 trainerIdxArray[OBJECT_EVENTS_COUNT]; + u8 runningBehaviourEtcArray[OBJECT_EVENTS_COUNT]; + u8 numRematchableTrainers; + u8 trainerHasNotYetBeenFought:1; + u8 trainerDoesNotWantRematch:1; + u8 trainerWantsRematch:1; + u8 responseCode:5; +}; + +// static declarations +static EWRAM_DATA struct VsSeekerStruct *sVsSeeker = NULL; + +static void VsSeekerResetInBagStepCounter(void); +static void VsSeekerResetChargingStepCounter(void); +static void Task_ResetObjectsRematchWantedState(u8 taskId); +static void ResetMovementOfRematchableTrainers(void); +static void Task_VsSeekerFrameCountdown(u8 taskId); +static void Task_VsSeeker_PlaySoundAndGetResponseCode(u8 taskId); +static void GatherNearbyTrainerInfo(void); +static void Task_VsSeeker_ShowResponseToPlayer(u8 taskId); +static bool8 CanUseVsSeeker(void); +static u8 GetVsSeekerResponseInArea(void); +static u8 GetResponseMovementTypeFromTrainerGraphicsId(u8 graphicsId); +static u16 GetTrainerFlagFromScript(const u8 * script); +static void ClearAllTrainerRematchStates(void); +static bool8 IsTrainerVisibleOnScreen(struct VsSeekerTrainerInfo * trainerInfo); +static u32 GetRematchableTrainerLocalId(void); +static void StartTrainerObjectMovementScript(struct VsSeekerTrainerInfo * trainerInfo, const u8 * script); +static u8 GetCurVsSeekerResponse(s32 vsSeekerIdx, u16 trainerIdx); +static void StartAllRespondantIdleMovements(void); +static bool8 ObjectEventIdIsSane(u8 objectEventId); +static u8 GetRandomFaceDirectionMovementType(); + +static const u8 sMovementScript_Wait48[] = { + MOVEMENT_ACTION_DELAY_16, + MOVEMENT_ACTION_DELAY_16, + MOVEMENT_ACTION_DELAY_16, + MOVEMENT_ACTION_STEP_END +}; + +static const u8 sMovementScript_TrainerUnfought[] = { + MOVEMENT_ACTION_EMOTE_EXCLAMATION_MARK, + MOVEMENT_ACTION_STEP_END +}; + +static const u8 sMovementScript_TrainerNoRematch[] = { + MOVEMENT_ACTION_EMOTE_X, + MOVEMENT_ACTION_STEP_END +}; + +static const u8 sMovementScript_TrainerRematch[] = { + MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_DOWN, + MOVEMENT_ACTION_EMOTE_DOUBLE_EXCL_MARK, + MOVEMENT_ACTION_STEP_END +}; + +static const u8 sFaceDirectionMovementTypeByFacingDirection[] = { + MOVEMENT_TYPE_FACE_DOWN, + MOVEMENT_TYPE_FACE_DOWN, + MOVEMENT_TYPE_FACE_UP, + MOVEMENT_TYPE_FACE_LEFT, + MOVEMENT_TYPE_FACE_RIGHT +}; + +void VsSeekerFreezeObjectsAfterChargeComplete(void) +{ + CreateTask(Task_ResetObjectsRematchWantedState, 80); +} + +#define tIsPlayerFrozen data[0] +#define tAreObjectsFrozen data[1] + +static void Task_ResetObjectsRematchWantedState(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + u32 i; + + if ((!task->tIsPlayerFrozen) && IsPlayerStandingStill()) + { + PlayerFreeze(); + task->tIsPlayerFrozen = TRUE; + } + + if (!task->tAreObjectsFrozen) + { + for (i = 0; i < OBJECT_EVENTS_COUNT; i++) + { + if (!ObjectEventIdIsSane(i)) + continue; + + if (gObjectEvents[i].singleMovementActive) + return; + + FreezeObjectEvent(&gObjectEvents[i]); + } + } + + task->tAreObjectsFrozen = TRUE; + if (task->tIsPlayerFrozen) + { + DestroyTask(taskId); + StopPlayerAvatar(); + ScriptContext_Enable(); + } +} +#undef tIsPlayerFrozen +#undef tAreObjectsFrozen + +u16 VsSeekerConvertLocalIdToTableId(u16 localId) +{ + u32 localIdIndex = 0; + u32 trainerId = 0; + + for (localIdIndex = 0; localIdIndex < OBJECT_EVENTS_COUNT ; localIdIndex++) + { + if (sVsSeeker->trainerInfo[localIdIndex].localId == localId) + { + trainerId = sVsSeeker->trainerInfo[localIdIndex].trainerIdx; + return TrainerIdToRematchTableId(gRematchTable,trainerId); + } + } + return -1; +} + +void VsSeekerResetObjectMovementAfterChargeComplete(void) +{ + struct ObjectEventTemplate * templates = gSaveBlock1Ptr->objectEventTemplates; + u32 i; + u32 movementType; + u8 objEventId; + struct ObjectEvent * objectEvent; + + for (i = 0; i < gMapHeader.events->objectEventCount; i++) + { + if (templates[i].trainerType != TRAINER_TYPE_NORMAL + && templates[i].trainerType != TRAINER_TYPE_BURIED) + continue; + + if (templates[i].movementType != MOVEMENT_TYPE_ROTATE_CLOCKWISE) + continue; + + movementType = GetRandomFaceDirectionMovementType(); + TryGetObjectEventIdByLocalIdAndMap(templates[i].localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &objEventId); + objectEvent = &gObjectEvents[objEventId]; + + if (!ObjectEventIdIsSane(objEventId)) + continue; + + SetTrainerMovementType(objectEvent, movementType); + templates[i].movementType = movementType; + } +} + +bool8 UpdateVsSeekerStepCounter(void) +{ + u8 x = 0; + + if (!I_VS_SEEKER_CHARGING) return FALSE; + + if (CheckBagHasItem(ITEM_VS_SEEKER, 1)) + { + if ((gSaveBlock1Ptr->trainerRematchStepCounter & 0xFF) < VSSEEKER_RECHARGE_STEPS) + gSaveBlock1Ptr->trainerRematchStepCounter++; + } + + if (FlagGet(I_VS_SEEKER_CHARGING)) + { + if (((gSaveBlock1Ptr->trainerRematchStepCounter >> 8) & 0xFF) < VSSEEKER_RECHARGE_STEPS) + { + x = (((gSaveBlock1Ptr->trainerRematchStepCounter >> 8) & 0xFF) + 1); + gSaveBlock1Ptr->trainerRematchStepCounter = (gSaveBlock1Ptr->trainerRematchStepCounter & 0xFF) | (x << 8); + } + if (((gSaveBlock1Ptr->trainerRematchStepCounter >> 8) & 0xFF) == VSSEEKER_RECHARGE_STEPS) + { + FlagClear(I_VS_SEEKER_CHARGING); + VsSeekerResetChargingStepCounter(); + ClearAllTrainerRematchStates(); + return TRUE; + } + } + + return FALSE; +} + +void MapResetTrainerRematches(u16 mapGroup, u16 mapNum) +{ + if (!I_VS_SEEKER_CHARGING) return; + + FlagClear(I_VS_SEEKER_CHARGING); + VsSeekerResetChargingStepCounter(); + ClearAllTrainerRematchStates(); + ResetMovementOfRematchableTrainers(); +} + +static void ResetMovementOfRematchableTrainers(void) +{ + u32 i; + u8 movementType = 0; + + for (i = 0; i < OBJECT_EVENTS_COUNT; i++) + { + struct ObjectEvent * objectEvent = &gObjectEvents[i]; + if (objectEvent->movementType != MOVEMENT_TYPE_ROTATE_CLOCKWISE) + continue; + + movementType = GetRandomFaceDirectionMovementType(); + + if (!objectEvent->active || gSprites[objectEvent->spriteId].data[0] != i) + continue; + + gSprites[objectEvent->spriteId].x2 = 0; + gSprites[objectEvent->spriteId].y2 = 0; + SetTrainerMovementType(objectEvent, movementType); + } +} + +static void VsSeekerResetInBagStepCounter(void) +{ + gSaveBlock1Ptr->trainerRematchStepCounter &= 0xFF00; +} + +static void VsSeekerResetChargingStepCounter(void) +{ + gSaveBlock1Ptr->trainerRematchStepCounter &= 0x00FF; +} + +void Task_InitVsSeekerAndCheckForTrainersOnScreen(u8 taskId) +{ + u32 i; + u32 respval; + + if (!I_VS_SEEKER_CHARGING) return; + + for (i = 0; i < 16; i++) + gTasks[taskId].data[i] = 0; + + sVsSeeker = AllocZeroed(sizeof(struct VsSeekerStruct)); + GatherNearbyTrainerInfo(); + respval = CanUseVsSeeker(); + if (respval == VSSEEKER_NOT_CHARGED) + { + Free(sVsSeeker); + DisplayItemMessageOnField(taskId, VSSeeker_Text_BatteryNotChargedNeedXSteps, Task_ItemUse_CloseMessageBoxAndReturnToField_VsSeeker); + } + else if (respval == VSSEEKER_NO_ONE_IN_RANGE) + { + Free(sVsSeeker); + DisplayItemMessageOnField(taskId, VSSeeker_Text_NoTrainersWithinRange, Task_ItemUse_CloseMessageBoxAndReturnToField_VsSeeker); + } + else if (respval == VSSEEKER_CAN_USE) + { + FieldEffectStart(FLDEFF_USE_VS_SEEKER); + gTasks[taskId].func = Task_VsSeekerFrameCountdown; + gTasks[taskId].data[0] = 15; + } +} + +static void Task_VsSeekerFrameCountdown(u8 taskId) +{ + if (--gTasks[taskId].data[0] == 0) + { + gTasks[taskId].func = Task_VsSeeker_PlaySoundAndGetResponseCode; + gTasks[taskId].data[1] = 16; + } +} + +static void Task_VsSeeker_PlaySoundAndGetResponseCode(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + if (data[2] != 2 && --data[1] == 0) + { + PlaySE(SE_CONTEST_MONS_TURN); + data[1] = 11; + data[2]++; + } + + if (!FieldEffectActiveListContains(FLDEFF_USE_VS_SEEKER)) + { + data[1] = 0; + data[2] = 0; + VsSeekerResetInBagStepCounter(); + sVsSeeker->responseCode = GetVsSeekerResponseInArea(); + ScriptMovement_StartObjectMovementScript(0xFF, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, sMovementScript_Wait48); + gTasks[taskId].func = Task_VsSeeker_ShowResponseToPlayer; + } +} + +static void GatherNearbyTrainerInfo(void) +{ + struct ObjectEventTemplate *templates = gSaveBlock1Ptr->objectEventTemplates; + u8 objectEventId = 0; + u8 vsSeekerObjectIdx = 0; + s32 objectEventIdx; + + for (objectEventIdx = 0; objectEventIdx < gMapHeader.events->objectEventCount; objectEventIdx++) + { + if (templates[objectEventIdx].trainerType != TRAINER_TYPE_NORMAL && templates[objectEventIdx].trainerType != TRAINER_TYPE_BURIED) + continue; + + sVsSeeker->trainerInfo[vsSeekerObjectIdx].script = templates[objectEventIdx].script; + sVsSeeker->trainerInfo[vsSeekerObjectIdx].trainerIdx = GetTrainerFlagFromScript(templates[objectEventIdx].script); + sVsSeeker->trainerInfo[vsSeekerObjectIdx].localId = templates[objectEventIdx].localId; + TryGetObjectEventIdByLocalIdAndMap(templates[objectEventIdx].localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &objectEventId); + sVsSeeker->trainerInfo[vsSeekerObjectIdx].objectEventId = objectEventId; + sVsSeeker->trainerInfo[vsSeekerObjectIdx].xCoord = gObjectEvents[objectEventId].currentCoords.x - 7; + sVsSeeker->trainerInfo[vsSeekerObjectIdx].yCoord = gObjectEvents[objectEventId].currentCoords.y - 7; + sVsSeeker->trainerInfo[vsSeekerObjectIdx].graphicsId = templates[objectEventIdx].graphicsId; + vsSeekerObjectIdx++; + } + sVsSeeker->trainerInfo[vsSeekerObjectIdx].localId = 0xFF; +} + +static void Task_VsSeeker_ShowResponseToPlayer(u8 taskId) +{ + if (!ScriptMovement_IsObjectMovementFinished(0xFF, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup)) + return; + + if (sVsSeeker->responseCode == VSSEEKER_RESPONSE_NO_RESPONSE) + { + DisplayItemMessageOnField(taskId, VSSeeker_Text_TrainersNotReady, Task_ItemUse_CloseMessageBoxAndReturnToField_VsSeeker); + } + else + { + if (sVsSeeker->responseCode == VSSEEKER_RESPONSE_FOUND_REMATCHES) + StartAllRespondantIdleMovements(); + + ClearDialogWindowAndFrame(0, TRUE); + ScriptUnfreezeObjectEvents(); + UnlockPlayerFieldControls(); + DestroyTask(taskId); + } + Free(sVsSeeker); +} + +static u8 CanUseVsSeeker(void) +{ + u8 vsSeekerChargeSteps = gSaveBlock1Ptr->trainerRematchStepCounter; + + if ((vsSeekerChargeSteps == VSSEEKER_RECHARGE_STEPS) && (GetRematchableTrainerLocalId() == 0xFF)) + return VSSEEKER_NO_ONE_IN_RANGE; + + if (vsSeekerChargeSteps == VSSEEKER_RECHARGE_STEPS) + return VSSEEKER_CAN_USE; + + ConvertIntToDecimalStringN(gStringVar1, (VSSEEKER_RECHARGE_STEPS - vsSeekerChargeSteps), STR_CONV_MODE_LEFT_ALIGN, 3); + return VSSEEKER_NOT_CHARGED; +} + +static u8 GetVsSeekerResponseInArea(void) +{ + u16 trainerIdx = 0; + u8 response = 0, rematchTrainerIdx; + s32 vsSeekerIdx = 0, randomValue = 0; + + while (sVsSeeker->trainerInfo[vsSeekerIdx].localId != 0xFF) + { + if (!IsTrainerVisibleOnScreen(&sVsSeeker->trainerInfo[vsSeekerIdx])) + { + vsSeekerIdx++; + continue; + } + + trainerIdx = sVsSeeker->trainerInfo[vsSeekerIdx].trainerIdx; + if (!HasTrainerBeenFought(trainerIdx)) + { + StartTrainerObjectMovementScript(&sVsSeeker->trainerInfo[vsSeekerIdx], sMovementScript_TrainerUnfought); + sVsSeeker->trainerHasNotYetBeenFought = 1; + vsSeekerIdx++; + continue; + } + + rematchTrainerIdx = GetRematchTrainerIdFromTable(gRematchTable, trainerIdx); + if (rematchTrainerIdx == 0) + { + StartTrainerObjectMovementScript(&sVsSeeker->trainerInfo[vsSeekerIdx], sMovementScript_TrainerNoRematch); + sVsSeeker->trainerDoesNotWantRematch = 1; + } + else + { + randomValue = Random() % 100; // Even if it's overwritten below, it progresses the RNG. + response = GetCurVsSeekerResponse(vsSeekerIdx, trainerIdx); + + if (response == VSSEEKER_SINGLE_RESP_YES) + { + randomValue = 100; // Definitely yes + } + else if (response == VSSEEKER_SINGLE_RESP_NO) + { + randomValue = 0; // Definitely no + } + else if (randomValue < 30) + { + StartTrainerObjectMovementScript(&sVsSeeker->trainerInfo[vsSeekerIdx], sMovementScript_TrainerNoRematch); + sVsSeeker->trainerDoesNotWantRematch = 1; + } + else + { + gSaveBlock1Ptr->trainerRematches[VsSeekerConvertLocalIdToTableId(sVsSeeker->trainerInfo[vsSeekerIdx].localId)] = rematchTrainerIdx; + ShiftStillObjectEventCoords(&gObjectEvents[sVsSeeker->trainerInfo[vsSeekerIdx].objectEventId]); + StartTrainerObjectMovementScript(&sVsSeeker->trainerInfo[vsSeekerIdx], sMovementScript_TrainerRematch); + sVsSeeker->trainerIdxArray[sVsSeeker->numRematchableTrainers] = trainerIdx; + sVsSeeker->runningBehaviourEtcArray[sVsSeeker->numRematchableTrainers] = GetResponseMovementTypeFromTrainerGraphicsId(sVsSeeker->trainerInfo[vsSeekerIdx].graphicsId); + sVsSeeker->numRematchableTrainers++; + sVsSeeker->trainerWantsRematch = 1; + } + } + vsSeekerIdx++; + } + + if (sVsSeeker->trainerWantsRematch) + { + PlaySE(SE_PIN); + FlagSet(I_VS_SEEKER_CHARGING); + VsSeekerResetChargingStepCounter(); + return VSSEEKER_RESPONSE_FOUND_REMATCHES; + } + + if (sVsSeeker->trainerHasNotYetBeenFought) + return VSSEEKER_RESPONSE_UNFOUGHT_TRAINERS; + + return VSSEEKER_RESPONSE_NO_RESPONSE; +} + +void ClearRematchMovementByTrainerId(void) +{ + s32 i; + u8 objEventId = 0; + struct ObjectEventTemplate *objectEventTemplates = gSaveBlock1Ptr->objectEventTemplates; + struct ObjectEvent *objectEvent; + + int vsSeekerDataIdx = TrainerIdToRematchTableId(gRematchTable, gTrainerBattleOpponent_A); + + if (!I_VS_SEEKER_CHARGING) return; + + if (vsSeekerDataIdx == -1) + return; + + for (i = 0; i < gMapHeader.events->objectEventCount; i++) + { + if ((objectEventTemplates[i].trainerType != TRAINER_TYPE_NORMAL + && objectEventTemplates[i].trainerType != TRAINER_TYPE_BURIED) + || vsSeekerDataIdx != TrainerIdToRematchTableId(gRematchTable, GetTrainerFlagFromScript(objectEventTemplates[i].script))) + continue; + + TryGetObjectEventIdByLocalIdAndMap(objectEventTemplates[i].localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &objEventId); + objectEvent = &gObjectEvents[objEventId]; + GetRandomFaceDirectionMovementType(&objectEventTemplates[i]); + TryOverrideTemplateCoordsForObjectEvent(objectEvent, sFaceDirectionMovementTypeByFacingDirection[objectEvent->facingDirection]); + + if (gSelectedObjectEvent == objEventId) + objectEvent->movementType = sFaceDirectionMovementTypeByFacingDirection[objectEvent->facingDirection]; + else + objectEvent->movementType = MOVEMENT_TYPE_FACE_DOWN; + } +} + +static u32 GetGameProgressFlags() +{ + const u32 gameProgressFlags[] = { + FLAG_VISITED_LAVARIDGE_TOWN, + FLAG_VISITED_FORTREE_CITY, + FLAG_SYS_GAME_CLEAR, + FLAG_DEFEATED_METEOR_FALLS_STEVEN + }; + u32 i = 0, numGameProgressFlags = 0; + u32 maxGameProgressFlags = ARRAY_COUNT(gameProgressFlags); + + for (i = 0; i < maxGameProgressFlags; i++) + { + if (FlagGet(gameProgressFlags[i])) + numGameProgressFlags++; + } + + return numGameProgressFlags; +} + +u16 GetRematchTrainerIdVSSeeker(u16 trainerId) +{ + u32 tableId = FirstBattleTrainerIdToRematchTableId(gRematchTable, trainerId); + u32 rematchTrainerIdx = GetGameProgressFlags(); + + if (!I_VS_SEEKER_CHARGING) return 0; + + while (!HasTrainerBeenFought(gRematchTable[tableId].trainerIds[rematchTrainerIdx-1])) + { + if (rematchTrainerIdx== 0) + break; + + rematchTrainerIdx--; + } + + return gRematchTable[tableId].trainerIds[rematchTrainerIdx]; +} + +static bool8 ObjectEventIdIsSane(u8 objectEventId) +{ + struct ObjectEvent *objectEvent = &gObjectEvents[objectEventId]; + + if (objectEvent->active && gMapHeader.events->objectEventCount >= objectEvent->localId && gSprites[objectEvent->spriteId].data[0] == objectEventId) + return TRUE; + return FALSE; +} + +static u8 GetRandomFaceDirectionMovementType() +{ + u16 randomFacingDirection = Random() % 4; + + switch (randomFacingDirection) + { + case 0: + return MOVEMENT_TYPE_FACE_UP; + case 1: + return MOVEMENT_TYPE_FACE_DOWN; + case 2: + return MOVEMENT_TYPE_FACE_LEFT; + case 3: + return MOVEMENT_TYPE_FACE_RIGHT; + default: + return MOVEMENT_TYPE_FACE_DOWN; + } +} + +static bool32 IsRegularLandTrainer(u8 graphicsId) +{ + u32 i; + u16 regularTrainersOnLand[] = + { + OBJ_EVENT_GFX_AQUA_MEMBER_F, + OBJ_EVENT_GFX_AQUA_MEMBER_M, + OBJ_EVENT_GFX_BEAUTY, + OBJ_EVENT_GFX_BLACK_BELT, + OBJ_EVENT_GFX_BOY_1, + OBJ_EVENT_GFX_BOY_2, + OBJ_EVENT_GFX_BOY_3, + OBJ_EVENT_GFX_BUG_CATCHER, + OBJ_EVENT_GFX_CAMPER, + OBJ_EVENT_GFX_CYCLING_TRIATHLETE_F, + OBJ_EVENT_GFX_CYCLING_TRIATHLETE_M, + OBJ_EVENT_GFX_EXPERT_F, + OBJ_EVENT_GFX_EXPERT_M, + OBJ_EVENT_GFX_FAT_MAN, + OBJ_EVENT_GFX_FISHERMAN, + OBJ_EVENT_GFX_GENTLEMAN, + OBJ_EVENT_GFX_GIRL_1, + OBJ_EVENT_GFX_GIRL_2, + OBJ_EVENT_GFX_GIRL_3, + OBJ_EVENT_GFX_HEX_MANIAC, + OBJ_EVENT_GFX_HIKER, + OBJ_EVENT_GFX_LASS, + OBJ_EVENT_GFX_LITTLE_BOY, + OBJ_EVENT_GFX_LITTLE_GIRL, + OBJ_EVENT_GFX_MAGMA_MEMBER_F, + OBJ_EVENT_GFX_MAGMA_MEMBER_M, + OBJ_EVENT_GFX_MAN_3, + OBJ_EVENT_GFX_MAN_4, + OBJ_EVENT_GFX_MAN_5, + OBJ_EVENT_GFX_MANIAC, + OBJ_EVENT_GFX_NINJA_BOY, + OBJ_EVENT_GFX_PICNICKER, + OBJ_EVENT_GFX_POKEFAN_F, + OBJ_EVENT_GFX_POKEFAN_M, + OBJ_EVENT_GFX_PSYCHIC_M, + OBJ_EVENT_GFX_RICH_BOY, + OBJ_EVENT_GFX_RUNNING_TRIATHLETE_F, + OBJ_EVENT_GFX_RUNNING_TRIATHLETE_M, + OBJ_EVENT_GFX_SAILOR, + OBJ_EVENT_GFX_SCHOOL_KID_M, + OBJ_EVENT_GFX_TUBER_F, + OBJ_EVENT_GFX_TUBER_M, + OBJ_EVENT_GFX_TWIN, + OBJ_EVENT_GFX_WOMAN_1, + OBJ_EVENT_GFX_WOMAN_2, + OBJ_EVENT_GFX_WOMAN_4, + OBJ_EVENT_GFX_WOMAN_5, + OBJ_EVENT_GFX_YOUNGSTER + }; + + for (i = 0; i < ARRAY_COUNT(regularTrainersOnLand); i++) + { + if (graphicsId == regularTrainersOnLand[i]) + return TRUE; + } + return FALSE; +} + +static bool32 IsRegularWaterTrainer(u8 graphicsId) +{ + u32 i; + u16 regularTrainersInWater[] = + { + OBJ_EVENT_GFX_SWIMMER_F, + OBJ_EVENT_GFX_SWIMMER_M, + OBJ_EVENT_GFX_TUBER_M_SWIMMING + }; + + for (i = 0; i < ARRAY_COUNT(regularTrainersInWater); i++) + { + if (graphicsId == regularTrainersInWater[i]) + return TRUE; + } + return FALSE; +} + +static u8 GetResponseMovementTypeFromTrainerGraphicsId(u8 graphicsId) +{ + if (IsRegularLandTrainer(graphicsId) || IsRegularWaterTrainer(graphicsId)) + return MOVEMENT_TYPE_ROTATE_CLOCKWISE; + + return MOVEMENT_TYPE_FACE_DOWN; +} + +static u16 GetTrainerFlagFromScript(const u8 *script) + /* + * The trainer flag is a little-endian short located +2 from + * the script pointer, assuming the trainerbattle command is + * first in the script. Because scripts are unaligned, and + * because the ARM processor requires shorts to be 16-bit + * aligned, this function needs to perform explicit bitwise + * operations to get the correct flag. + * + * 5c XX YY ZZ ... + * -- -- + */ +{ + u16 trainerFlag; + + script += 2; + trainerFlag = script[0]; + trainerFlag |= script[1] << 8; + return trainerFlag; +} + +static void ClearAllTrainerRematchStates(void) +{ + u32 i; + + if (!CheckBagHasItem(ITEM_VS_SEEKER, 1)) + return; + + for (i = 0; i < ARRAY_COUNT(gSaveBlock1Ptr->trainerRematches); i++) + gSaveBlock1Ptr->trainerRematches[i] = 0; +} + +static bool8 IsTrainerVisibleOnScreen(struct VsSeekerTrainerInfo * trainerInfo) +{ + s16 x; + s16 y; + + PlayerGetDestCoords(&x, &y); + x -= 7; + y -= 7; + + if ( x - 7 <= trainerInfo->xCoord + && x + 7 >= trainerInfo->xCoord + && y - 5 <= trainerInfo->yCoord + && y + 5 >= trainerInfo->yCoord + && ObjectEventIdIsSane(trainerInfo->objectEventId) == 1) + return TRUE; + return FALSE; +} + +static u32 GetRematchableTrainerLocalId(void) +{ + u32 i; + + for (i = 0; sVsSeeker->trainerInfo[i].localId != 0xFF; i++) + { + if (IsTrainerVisibleOnScreen(&sVsSeeker->trainerInfo[i]) == 1) + { + if (HasTrainerBeenFought(sVsSeeker->trainerInfo[i].trainerIdx) != 1 || GetRematchTrainerIdFromTable(gRematchTable, sVsSeeker->trainerInfo[i].trainerIdx)) + return sVsSeeker->trainerInfo[i].localId; + } + } + + return 0xFF; +} + +static void StartTrainerObjectMovementScript(struct VsSeekerTrainerInfo * trainerInfo, const u8 * script) +{ + UnfreezeObjectEvent(&gObjectEvents[trainerInfo->objectEventId]); + ScriptMovement_StartObjectMovementScript(trainerInfo->localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, script); +} + +static u8 GetCurVsSeekerResponse(s32 vsSeekerIdx, u16 trainerIdx) +{ + s32 i; + s32 j; + + for (i = 0; i < vsSeekerIdx; i++) + { + if (IsTrainerVisibleOnScreen(&sVsSeeker->trainerInfo[i]) != 1 || sVsSeeker->trainerInfo[i].trainerIdx != trainerIdx) + continue; + + for (j = 0; j < sVsSeeker->numRematchableTrainers; j++) + { + if (sVsSeeker->trainerIdxArray[j] == sVsSeeker->trainerInfo[i].trainerIdx) + return VSSEEKER_SINGLE_RESP_YES; + } + return VSSEEKER_SINGLE_RESP_NO; + } + return VSSEEKER_SINGLE_RESP_RAND; +} + +static void StartAllRespondantIdleMovements(void) +{ + s32 i; + s32 j; + + for (i = 0; i < sVsSeeker->numRematchableTrainers; i++) + { + for (j = 0; sVsSeeker->trainerInfo[j].localId != 0xFF; j++) + { + if (sVsSeeker->trainerInfo[j].trainerIdx == sVsSeeker->trainerIdxArray[i]) + { + struct ObjectEvent *objectEvent = &gObjectEvents[sVsSeeker->trainerInfo[j].objectEventId]; + + if (ObjectEventIdIsSane(sVsSeeker->trainerInfo[j].objectEventId) == 1) + SetTrainerMovementType(objectEvent, sVsSeeker->runningBehaviourEtcArray[i]); + TryOverrideTemplateCoordsForObjectEvent(objectEvent, sVsSeeker->runningBehaviourEtcArray[i]); + gSaveBlock1Ptr->trainerRematches[VsSeekerConvertLocalIdToTableId(sVsSeeker->trainerInfo[j].localId)] = GetRematchTrainerIdFromTable(gRematchTable, sVsSeeker->trainerInfo[j].trainerIdx); + } + } + } +} diff --git a/src/wild_encounter.c b/src/wild_encounter.c index 5572a6f7367e..d634a045878f 100644 --- a/src/wild_encounter.c +++ b/src/wild_encounter.c @@ -24,8 +24,7 @@ #include "constants/layouts.h" #include "constants/weather.h" -extern const u8 EventScript_RepelWoreOff[]; -extern const u8 EventScript_LureWoreOff[]; +extern const u8 EventScript_SprayWoreOff[]; #define MAX_ENCOUNTER_RATE 2880 @@ -383,7 +382,7 @@ u16 GetCurrentMapWildMonHeaderId(void) return HEADER_NONE; } -static u8 PickWildMonNature(void) +u8 PickWildMonNature(void) { u8 i; u8 j; @@ -415,15 +414,14 @@ static u8 PickWildMonNature(void) } } } -#if B_SYNCHRONIZE_NATURE < GEN_9 // check synchronize for a pokemon with the same ability - if (!GetMonData(&gPlayerParty[0], MON_DATA_SANITY_IS_EGG) + if (OW_SYNCHRONIZE_NATURE < GEN_9 + && !GetMonData(&gPlayerParty[0], MON_DATA_SANITY_IS_EGG) && GetMonAbility(&gPlayerParty[0]) == ABILITY_SYNCHRONIZE - && (B_SYNCHRONIZE_NATURE >= GEN_8 || Random() % 2 == 0)) + && (OW_SYNCHRONIZE_NATURE == GEN_8 || Random() % 2 == 0)) { return GetMonData(&gPlayerParty[0], MON_DATA_PERSONALITY) % NUM_NATURES; } -#endif // random nature return Random() % NUM_NATURES; @@ -434,7 +432,7 @@ void CreateWildMon(u16 species, u8 level) bool32 checkCuteCharm; ZeroEnemyPartyMons(); - checkCuteCharm = TRUE; + checkCuteCharm = OW_CUTE_CHARM < GEN_9; switch (gSpeciesInfo[species].genderRatio) { @@ -480,33 +478,33 @@ static bool8 TryGenerateWildMon(const struct WildPokemonInfo *wildMonInfo, u8 ar switch (area) { case WILD_AREA_LAND: - if (TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_STEEL, ABILITY_MAGNET_PULL, &wildMonIndex, LAND_WILD_COUNT)) + if (OW_MAGNET_PULL < GEN_9 && TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_STEEL, ABILITY_MAGNET_PULL, &wildMonIndex, LAND_WILD_COUNT)) break; - if (TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_ELECTRIC, ABILITY_STATIC, &wildMonIndex, LAND_WILD_COUNT)) + if (OW_STATIC < GEN_9 && TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_ELECTRIC, ABILITY_STATIC, &wildMonIndex, LAND_WILD_COUNT)) break; - if (TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_ELECTRIC, ABILITY_LIGHTNING_ROD, &wildMonIndex, LAND_WILD_COUNT)) + if (OW_LIGHTNING_ROD == GEN_8 && TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_ELECTRIC, ABILITY_LIGHTNING_ROD, &wildMonIndex, LAND_WILD_COUNT)) break; - if (TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_FIRE, ABILITY_FLASH_FIRE, &wildMonIndex, LAND_WILD_COUNT)) + if (OW_FLASH_FIRE == GEN_8 && TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_FIRE, ABILITY_FLASH_FIRE, &wildMonIndex, LAND_WILD_COUNT)) break; - if (TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_GRASS, ABILITY_HARVEST, &wildMonIndex, LAND_WILD_COUNT)) + if (OW_HARVEST == GEN_8 && TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_GRASS, ABILITY_HARVEST, &wildMonIndex, LAND_WILD_COUNT)) break; - if (TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_WATER, ABILITY_STORM_DRAIN, &wildMonIndex, LAND_WILD_COUNT)) + if (OW_STORM_DRAIN == GEN_8 && TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_WATER, ABILITY_STORM_DRAIN, &wildMonIndex, LAND_WILD_COUNT)) break; wildMonIndex = ChooseWildMonIndex_Land(); break; case WILD_AREA_WATER: - if (TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_STEEL, ABILITY_MAGNET_PULL, &wildMonIndex, WATER_WILD_COUNT)) + if (OW_MAGNET_PULL < GEN_9 && TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_STEEL, ABILITY_MAGNET_PULL, &wildMonIndex, WATER_WILD_COUNT)) break; - if (TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_ELECTRIC, ABILITY_STATIC, &wildMonIndex, WATER_WILD_COUNT)) + if (OW_STATIC < GEN_9 && TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_ELECTRIC, ABILITY_STATIC, &wildMonIndex, WATER_WILD_COUNT)) break; - if (TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_ELECTRIC, ABILITY_LIGHTNING_ROD, &wildMonIndex, WATER_WILD_COUNT)) + if (OW_LIGHTNING_ROD == GEN_8 && TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_ELECTRIC, ABILITY_LIGHTNING_ROD, &wildMonIndex, WATER_WILD_COUNT)) break; - if (TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_FIRE, ABILITY_FLASH_FIRE, &wildMonIndex, WATER_WILD_COUNT)) + if (OW_FLASH_FIRE == GEN_8 && TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_FIRE, ABILITY_FLASH_FIRE, &wildMonIndex, WATER_WILD_COUNT)) break; - if (TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_GRASS, ABILITY_HARVEST, &wildMonIndex, WATER_WILD_COUNT)) + if (OW_HARVEST == GEN_8 && TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_GRASS, ABILITY_HARVEST, &wildMonIndex, WATER_WILD_COUNT)) break; - if (TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_WATER, ABILITY_STORM_DRAIN, &wildMonIndex, WATER_WILD_COUNT)) + if (OW_STORM_DRAIN == GEN_8 && TRY_GET_ABILITY_INFLUENCED_WILD_MON_INDEX(wildMonInfo->wildPokemon, TYPE_WATER, ABILITY_STORM_DRAIN, &wildMonIndex, WATER_WILD_COUNT)) break; wildMonIndex = ChooseWildMonIndex_WaterRock(); @@ -587,7 +585,7 @@ static bool8 WildEncounterCheck(u32 encounterRate, bool8 ignoreAbility) encounterRate = encounterRate * 3 / 4; else if (ability == ABILITY_STENCH) encounterRate /= 2; - else if (ability == ABILITY_ILLUMINATE) + else if (ability == ABILITY_ILLUMINATE && OW_ILLUMINATE < GEN_9) encounterRate *= 2; else if (ability == ABILITY_WHITE_SMOKE) encounterRate /= 2; @@ -599,10 +597,10 @@ static bool8 WildEncounterCheck(u32 encounterRate, bool8 ignoreAbility) encounterRate /= 2; else if (ability == ABILITY_QUICK_FEET) encounterRate /= 2; - else if (ability == ABILITY_INFILTRATOR) + else if (ability == ABILITY_INFILTRATOR && OW_INFILTRATOR == GEN_8) encounterRate /= 2; else if (ability == ABILITY_NO_GUARD) - encounterRate = encounterRate * 3 / 2; + encounterRate *= 2; } if (encounterRate > MAX_ENCOUNTER_RATE) encounterRate = MAX_ENCOUNTER_RATE; @@ -969,7 +967,7 @@ bool8 UpdateRepelCounter(void) VarSet(VAR_REPEL_STEP_COUNT, steps); if (steps == 0) { - ScriptContext_SetupScript(EventScript_RepelWoreOff); + ScriptContext_SetupScript(EventScript_SprayWoreOff); return TRUE; } } @@ -978,7 +976,7 @@ bool8 UpdateRepelCounter(void) VarSet(VAR_REPEL_STEP_COUNT, steps | REPEL_LURE_MASK); if (steps == 0) { - ScriptContext_SetupScript(EventScript_LureWoreOff); + ScriptContext_SetupScript(EventScript_SprayWoreOff); return TRUE; } } diff --git a/test/battle/ability/anger_shell.c b/test/battle/ability/anger_shell.c new file mode 100644 index 000000000000..6b916e088f15 --- /dev/null +++ b/test/battle/ability/anger_shell.c @@ -0,0 +1,95 @@ +#include "global.h" +#include "test/battle.h" + +SINGLE_BATTLE_TEST("Anger Shell activates only if the target had more than 50% of its hp") +{ + bool32 activates = FALSE; + u16 maxHp = 500, hp = 0; + + PARAMETRIZE { hp = 249; activates = FALSE; } + PARAMETRIZE { hp = 100; activates = FALSE; } + PARAMETRIZE { hp = 50; activates = FALSE; } + PARAMETRIZE { hp = 251; activates = TRUE; } + PARAMETRIZE { hp = 255; activates = TRUE; } + + GIVEN { + ASSUME(gBattleMoves[MOVE_TACKLE].power != 0); + PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_ANGER_SHELL); MaxHP(maxHp); HP(hp); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_TACKLE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + if (activates) { + ABILITY_POPUP(player, ABILITY_ANGER_SHELL); + } else { + NOT ABILITY_POPUP(player, ABILITY_ANGER_SHELL); + } + } THEN { + if (activates) { + EXPECT_EQ(player->statStages[STAT_DEF], DEFAULT_STAT_STAGE - 1); + EXPECT_EQ(player->statStages[STAT_SPDEF], DEFAULT_STAT_STAGE - 1); + EXPECT_EQ(player->statStages[STAT_ATK], DEFAULT_STAT_STAGE + 1); + EXPECT_EQ(player->statStages[STAT_SPATK], DEFAULT_STAT_STAGE + 1); + EXPECT_EQ(player->statStages[STAT_SPEED], DEFAULT_STAT_STAGE + 1); + } + } +} + +SINGLE_BATTLE_TEST("Anger Shell lowers Def/Sp.Def by 1 and raises Atk/Sp.Atk/Spd by 1") +{ + u16 maxHp = 500; + GIVEN { + ASSUME(gBattleMoves[MOVE_TACKLE].power != 0); + PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_ANGER_SHELL); MaxHP(maxHp); HP(maxHp / 2 + 1); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_TACKLE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + ABILITY_POPUP(player, ABILITY_ANGER_SHELL); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + MESSAGE("Wobbuffet's Defense fell!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + MESSAGE("Wobbuffet's Sp. Def fell!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + MESSAGE("Wobbuffet's Attack rose!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + MESSAGE("Wobbuffet's Sp. Atk rose!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + MESSAGE("Wobbuffet's Speed rose!"); + } THEN { + EXPECT_EQ(player->statStages[STAT_DEF], DEFAULT_STAT_STAGE - 1); + EXPECT_EQ(player->statStages[STAT_SPDEF], DEFAULT_STAT_STAGE - 1); + EXPECT_EQ(player->statStages[STAT_ATK], DEFAULT_STAT_STAGE + 1); + EXPECT_EQ(player->statStages[STAT_SPATK], DEFAULT_STAT_STAGE + 1); + EXPECT_EQ(player->statStages[STAT_SPEED], DEFAULT_STAT_STAGE + 1); + } +} + +SINGLE_BATTLE_TEST("Anger Shell activates after all hits from a multi-hit move") +{ + u32 j; + u16 maxHp = 500; + GIVEN { + ASSUME(gBattleMoves[MOVE_DOUBLE_SLAP].effect == EFFECT_MULTI_HIT); + PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_ANGER_SHELL); MaxHP(maxHp); HP(maxHp / 2 + 1); } + OPPONENT(SPECIES_SHELLDER) { Ability(ABILITY_SKILL_LINK); } // Always hits 5 times. + } WHEN { + TURN { MOVE(opponent, MOVE_DOUBLE_SLAP); } + } SCENE { + for (j = 0; j < 4; j++) + { + ANIMATION(ANIM_TYPE_MOVE, MOVE_DOUBLE_SLAP, opponent); + NOT ABILITY_POPUP(player, ABILITY_ANGER_SHELL); + } + ANIMATION(ANIM_TYPE_MOVE, MOVE_DOUBLE_SLAP, opponent); + ABILITY_POPUP(player, ABILITY_ANGER_SHELL); + } THEN { + EXPECT_EQ(player->statStages[STAT_DEF], DEFAULT_STAT_STAGE - 1); + EXPECT_EQ(player->statStages[STAT_SPDEF], DEFAULT_STAT_STAGE - 1); + EXPECT_EQ(player->statStages[STAT_ATK], DEFAULT_STAT_STAGE + 1); + EXPECT_EQ(player->statStages[STAT_SPATK], DEFAULT_STAT_STAGE + 1); + EXPECT_EQ(player->statStages[STAT_SPEED], DEFAULT_STAT_STAGE + 1); + } +} diff --git a/test/battle/ability/bad_dreams.c b/test/battle/ability/bad_dreams.c index 42ac3f04a63f..312b9dc695e8 100644 --- a/test/battle/ability/bad_dreams.c +++ b/test/battle/ability/bad_dreams.c @@ -1,11 +1,6 @@ #include "global.h" #include "test/battle.h" -ASSUMPTIONS -{ - ASSUME(P_GEN_4_POKEMON == TRUE); // Because only Darkrai can have this ability. -} - // Also checks that non-sleeping enemy is not affected. SINGLE_BATTLE_TEST("Bad Dreams causes the sleeping enemy Pokemon to lose 1/8 of hp") { diff --git a/test/battle/ability/battle_bond.c b/test/battle/ability/battle_bond.c index 36ce8990b1e2..77034f0e463c 100644 --- a/test/battle/ability/battle_bond.c +++ b/test/battle/ability/battle_bond.c @@ -3,7 +3,6 @@ ASSUMPTIONS { - ASSUME(P_GEN_6_POKEMON == TRUE); ASSUME(gBattleMoves[MOVE_WATER_GUN].power != 0); } diff --git a/test/battle/ability/beast_boost.c b/test/battle/ability/beast_boost.c index da63bf9c4db1..fde16831041b 100644 --- a/test/battle/ability/beast_boost.c +++ b/test/battle/ability/beast_boost.c @@ -1,11 +1,6 @@ #include "global.h" #include "test/battle.h" -ASSUMPTIONS -{ - ASSUME(P_GEN_7_POKEMON == TRUE); // Because only Ultra Beasts have this ability -} - SINGLE_BATTLE_TEST("Beast Boost boosts the most proficient stat when knocking out a target") { u8 stats[] = {1, 1, 1, 1, 1}; diff --git a/test/battle/ability/defiant.c b/test/battle/ability/defiant.c new file mode 100644 index 000000000000..e8443ecc5fdf --- /dev/null +++ b/test/battle/ability/defiant.c @@ -0,0 +1,140 @@ +#include "global.h" +#include "test/battle.h" + +DOUBLE_BATTLE_TEST("Defiant sharply raises player's Attack after Intimidate") +{ + u32 abilityLeft, abilityRight; + + PARAMETRIZE { abilityLeft = ABILITY_VITAL_SPIRIT; abilityRight = ABILITY_VITAL_SPIRIT; } + PARAMETRIZE { abilityLeft = ABILITY_VITAL_SPIRIT; abilityRight = ABILITY_DEFIANT; } + PARAMETRIZE { abilityLeft = ABILITY_DEFIANT; abilityRight = ABILITY_VITAL_SPIRIT; } + PARAMETRIZE { abilityLeft = ABILITY_DEFIANT; abilityRight = ABILITY_DEFIANT; } + + GIVEN { + PLAYER(SPECIES_MANKEY) { Ability(abilityLeft); } + PLAYER(SPECIES_PRIMEAPE) { Ability(abilityRight); } + OPPONENT(SPECIES_GYARADOS) { Ability(ABILITY_INTIMIDATE); } + OPPONENT(SPECIES_ARBOK) { Ability(ABILITY_INTIMIDATE); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_TACKLE, target:opponentLeft); MOVE(playerRight, MOVE_TACKLE, target:opponentRight); } + } SCENE { + //1st mon Intimidate + ABILITY_POPUP(opponentLeft, ABILITY_INTIMIDATE); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft); + MESSAGE("Foe Gyarados's Intimidate cuts Mankey's attack!"); + if (abilityLeft == ABILITY_DEFIANT) { + ABILITY_POPUP(playerLeft, ABILITY_DEFIANT); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft); + MESSAGE("Mankey's Attack sharply rose!"); + } + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerRight); + MESSAGE("Foe Gyarados's Intimidate cuts Primeape's attack!"); + if (abilityRight == ABILITY_DEFIANT) { + ABILITY_POPUP(playerRight, ABILITY_DEFIANT); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerRight); + MESSAGE("Primeape's Attack sharply rose!"); + } + + //2nd mon Intimidate + ABILITY_POPUP(opponentRight, ABILITY_INTIMIDATE); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft); + MESSAGE("Foe Arbok's Intimidate cuts Mankey's attack!"); + if (abilityLeft == ABILITY_DEFIANT) { + ABILITY_POPUP(playerLeft, ABILITY_DEFIANT); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft); + MESSAGE("Mankey's Attack sharply rose!"); + } + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerRight); + MESSAGE("Foe Arbok's Intimidate cuts Primeape's attack!"); + if (abilityRight == ABILITY_DEFIANT) { + ABILITY_POPUP(playerRight, ABILITY_DEFIANT); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerRight); + MESSAGE("Primeape's Attack sharply rose!"); + } + } FINALLY { + // -2 from Intimidates and +4 from Defiants gets +2 total + EXPECT_EQ(playerLeft->statStages[STAT_ATK], (abilityLeft == ABILITY_DEFIANT) ? DEFAULT_STAT_STAGE + 2 : DEFAULT_STAT_STAGE - 2); + EXPECT_EQ(playerRight->statStages[STAT_ATK], (abilityRight == ABILITY_DEFIANT) ? DEFAULT_STAT_STAGE + 2 : DEFAULT_STAT_STAGE - 2); + } +} + +// Same as above, but for opponent. +DOUBLE_BATTLE_TEST("Defiant sharply raises opponent's Attack after Intimidate") +{ + u32 abilityLeft, abilityRight; + + PARAMETRIZE { abilityLeft = ABILITY_VITAL_SPIRIT; abilityRight = ABILITY_VITAL_SPIRIT; } + PARAMETRIZE { abilityLeft = ABILITY_VITAL_SPIRIT; abilityRight = ABILITY_DEFIANT; } + PARAMETRIZE { abilityLeft = ABILITY_DEFIANT; abilityRight = ABILITY_VITAL_SPIRIT; } + PARAMETRIZE { abilityLeft = ABILITY_DEFIANT; abilityRight = ABILITY_DEFIANT; } + + GIVEN { + OPPONENT(SPECIES_MANKEY) { Ability(abilityLeft); } + OPPONENT(SPECIES_PRIMEAPE) { Ability(abilityRight); } + PLAYER(SPECIES_GYARADOS) { Ability(ABILITY_INTIMIDATE); } + PLAYER(SPECIES_ARBOK) { Ability(ABILITY_INTIMIDATE); } + } WHEN { + TURN { MOVE(opponentLeft, MOVE_TACKLE, target:playerLeft); MOVE(opponentRight, MOVE_TACKLE, target:playerRight); } + } SCENE { + //1st mon Intimidate + ABILITY_POPUP(playerLeft, ABILITY_INTIMIDATE); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft); + MESSAGE("Gyarados's Intimidate cuts Foe Mankey's attack!"); + if (abilityLeft == ABILITY_DEFIANT) { + ABILITY_POPUP(opponentLeft, ABILITY_DEFIANT); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft); + MESSAGE("Foe Mankey's Attack sharply rose!"); + } + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentRight); + MESSAGE("Gyarados's Intimidate cuts Foe Primeape's attack!"); + if (abilityRight == ABILITY_DEFIANT) { + ABILITY_POPUP(opponentRight, ABILITY_DEFIANT); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentRight); + MESSAGE("Foe Primeape's Attack sharply rose!"); + } + + //2nd mon Intimidate + ABILITY_POPUP(playerRight, ABILITY_INTIMIDATE); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft); + MESSAGE("Arbok's Intimidate cuts Foe Mankey's attack!"); + if (abilityLeft == ABILITY_DEFIANT) { + ABILITY_POPUP(opponentLeft, ABILITY_DEFIANT); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft); + MESSAGE("Foe Mankey's Attack sharply rose!"); + } + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentRight); + MESSAGE("Arbok's Intimidate cuts Foe Primeape's attack!"); + if (abilityRight == ABILITY_DEFIANT) { + ABILITY_POPUP(opponentRight, ABILITY_DEFIANT); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentRight); + MESSAGE("Foe Primeape's Attack sharply rose!"); + } + } FINALLY { + // -2 from Intimidates and +4 from Defiants gets +2 total + EXPECT_EQ(opponentLeft->statStages[STAT_ATK], (abilityLeft == ABILITY_DEFIANT) ? DEFAULT_STAT_STAGE + 2 : DEFAULT_STAT_STAGE - 2); + EXPECT_EQ(opponentRight->statStages[STAT_ATK], (abilityRight == ABILITY_DEFIANT) ? DEFAULT_STAT_STAGE + 2 : DEFAULT_STAT_STAGE - 2); + } +} + +SINGLE_BATTLE_TEST("Defiant activates after Sticky Web lowers Speed") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_MANKEY) { Ability(ABILITY_DEFIANT); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_STICKY_WEB); } + TURN { SWITCH(player, 1); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_STICKY_WEB, opponent); + // Switch-in - Sticky Web activates + MESSAGE("Go! Mankey!"); + MESSAGE("Mankey was caught in a Sticky Web!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + MESSAGE("Mankey's Speed fell!"); + // Defiant activates + ABILITY_POPUP(player, ABILITY_DEFIANT); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + MESSAGE("Mankey's Attack sharply rose!"); + } +} diff --git a/test/battle/ability/flower_gift.c b/test/battle/ability/flower_gift.c index a956741e5e99..2541d8e36cd7 100644 --- a/test/battle/ability/flower_gift.c +++ b/test/battle/ability/flower_gift.c @@ -74,7 +74,7 @@ DOUBLE_BATTLE_TEST("Flower Gift increases the attack of Cherrim and its allies b } WHEN { if (sunny) TURN { MOVE(playerLeft, MOVE_SUNNY_DAY); } - TURN { MOVE(playerLeft, MOVE_TACKLE, target: opponentLeft); + TURN { MOVE(playerLeft, MOVE_TACKLE, target: opponentLeft); MOVE(playerRight, MOVE_TACKLE, target: opponentLeft); } } SCENE { // sun activates @@ -126,4 +126,46 @@ DOUBLE_BATTLE_TEST("Flower Gift increases the Sp. Def of Cherrim and its allies } } +SINGLE_BATTLE_TEST("Flower Gift transforms Cherrim back when it switches out") +{ + GIVEN { + ASSUME(B_WEATHER_FORMS >= GEN_5); + PLAYER(SPECIES_CHERRIM) { Ability(ABILITY_FLOWER_GIFT); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_SUNNY_DAY); } + TURN { SWITCH(player, 1); } + } SCENE { + // transforms in sun + ABILITY_POPUP(player, ABILITY_FLOWER_GIFT); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_FORM_CHANGE, player); + MESSAGE("Cherrim transformed!"); + MESSAGE("Cherrim, that's enough! Come back!"); + } THEN { + EXPECT_EQ(GetMonData(&gPlayerParty[0], MON_DATA_SPECIES), SPECIES_CHERRIM); + } +} + +SINGLE_BATTLE_TEST("Flower Gift transforms Cherrim back when it uses a move that forces it to switch out") +{ + GIVEN { + ASSUME(B_WEATHER_FORMS >= GEN_5); + PLAYER(SPECIES_CHERRIM) { Ability(ABILITY_FLOWER_GIFT); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_SUNNY_DAY); } + TURN { MOVE(player, MOVE_U_TURN); SEND_OUT(player, 1); } + } SCENE { + // transforms in sun + ABILITY_POPUP(player, ABILITY_FLOWER_GIFT); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_FORM_CHANGE, player); + MESSAGE("Cherrim transformed!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_U_TURN, player); + } THEN { + EXPECT_EQ(GetMonData(&gPlayerParty[0], MON_DATA_SPECIES), SPECIES_CHERRIM); + } +} + TO_DO_BATTLE_TEST("Flower Gift does not transform Cherrim back to normal when suppressed if Cherrim is Dynamaxed"); diff --git a/test/battle/ability/fluffy.c b/test/battle/ability/fluffy.c index 6c76aeed5586..67e992d8afa9 100644 --- a/test/battle/ability/fluffy.c +++ b/test/battle/ability/fluffy.c @@ -8,7 +8,6 @@ ASSUMPTIONS ASSUME(gBattleMoves[MOVE_TACKLE].makesContact); ASSUME(gBattleMoves[MOVE_FIRE_PUNCH].makesContact); ASSUME(gBattleMoves[MOVE_FIRE_PUNCH].type == TYPE_FIRE); - ASSUME(P_GEN_7_POKEMON == TRUE); } SINGLE_BATTLE_TEST("Fluffy halves damage taken from moves that make direct contact", s16 damage) diff --git a/test/battle/ability/forecast.c b/test/battle/ability/forecast.c index 6bb4c5045fc3..df7ecd00a46c 100644 --- a/test/battle/ability/forecast.c +++ b/test/battle/ability/forecast.c @@ -353,3 +353,45 @@ SINGLE_BATTLE_TEST("Forecast transforms Castform back to normal when its ability EXPECT_EQ(player->species, SPECIES_CASTFORM_NORMAL); } } + +SINGLE_BATTLE_TEST("Forecast transforms Castform back when it switches out") +{ + GIVEN { + ASSUME(B_WEATHER_FORMS >= GEN_5); + PLAYER(SPECIES_CASTFORM) { Ability(ABILITY_FORECAST); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_SUNNY_DAY); } + TURN { SWITCH(player, 1); } + } SCENE { + // transforms in sun + ABILITY_POPUP(player, ABILITY_FORECAST); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_FORM_CHANGE, player); + MESSAGE("Castform transformed!"); + MESSAGE("Castform, that's enough! Come back!"); + } THEN { + EXPECT_EQ(GetMonData(&gPlayerParty[0], MON_DATA_SPECIES), SPECIES_CASTFORM); + } +} + +SINGLE_BATTLE_TEST("Forecast transforms Castform back when it uses a move that forces it to switch out") +{ + GIVEN { + ASSUME(B_WEATHER_FORMS >= GEN_5); + PLAYER(SPECIES_CASTFORM) { Ability(ABILITY_FORECAST); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_SUNNY_DAY); } + TURN { MOVE(player, MOVE_U_TURN); SEND_OUT(player, 1); } + } SCENE { + // transforms in sun + ABILITY_POPUP(player, ABILITY_FORECAST); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_FORM_CHANGE, player); + MESSAGE("Castform transformed!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_U_TURN, player); + } THEN { + EXPECT_EQ(GetMonData(&gPlayerParty[0], MON_DATA_SPECIES), SPECIES_CASTFORM); + } +} diff --git a/test/battle/ability/hunger_switch.c b/test/battle/ability/hunger_switch.c index 2b39bde58984..e4fbda82d140 100644 --- a/test/battle/ability/hunger_switch.c +++ b/test/battle/ability/hunger_switch.c @@ -7,7 +7,6 @@ SINGLE_BATTLE_TEST("Hunger Switch switches Morpeko's forms at the end of the tur PARAMETRIZE { species = SPECIES_MORPEKO_FULL_BELLY; } PARAMETRIZE { species = SPECIES_MORPEKO_HANGRY; } GIVEN { - ASSUME(P_GEN_8_POKEMON == TRUE); PLAYER(species) { Speed(2); } OPPONENT(SPECIES_WOBBUFFET) { Speed(1); } } WHEN { diff --git a/test/battle/ability/hyper_cutter.c b/test/battle/ability/hyper_cutter.c index ac942039bb48..8e5c0a40bae8 100644 --- a/test/battle/ability/hyper_cutter.c +++ b/test/battle/ability/hyper_cutter.c @@ -7,9 +7,9 @@ SINGLE_BATTLE_TEST("Hyper Cutter prevents intimidate") s16 turnTwoHit; GIVEN { - PLAYER(SPECIES_EKANS) { Ability(ABILITY_SHED_SKIN); }; - PLAYER(SPECIES_EKANS) { Ability(ABILITY_INTIMIDATE); }; - OPPONENT(SPECIES_KRABBY) { Ability(ABILITY_HYPER_CUTTER); }; + PLAYER(SPECIES_EKANS) { Ability(ABILITY_SHED_SKIN); } + PLAYER(SPECIES_EKANS) { Ability(ABILITY_INTIMIDATE); } + OPPONENT(SPECIES_KRABBY) { Ability(ABILITY_HYPER_CUTTER); } } WHEN { TURN { MOVE(opponent, MOVE_TACKLE); } TURN { SWITCH(player, 1); MOVE(opponent, MOVE_TACKLE); } @@ -19,17 +19,137 @@ SINGLE_BATTLE_TEST("Hyper Cutter prevents intimidate") ABILITY_POPUP(player, ABILITY_INTIMIDATE); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); } ABILITY_POPUP(opponent, ABILITY_HYPER_CUTTER); - MESSAGE("Foe Krabby's Attack was not lowered!"); + MESSAGE("Foe Krabby's Hyper Cutter prevents Attack loss!"); HP_BAR(player, captureDamage: &turnTwoHit); } THEN { EXPECT_EQ(turnOneHit, turnTwoHit); } } -TO_DO_BATTLE_TEST("Hyper Cutter prevents Attack stage reduction from moves"); // Growl -TO_DO_BATTLE_TEST("Hyper Cutter doesn't prevent Attack stage reduction from moves used by the user"); // e.g. Superpower -TO_DO_BATTLE_TEST("Hyper Cutter doesn't prevent Attack reduction from burn"); -TO_DO_BATTLE_TEST("Hyper Cutter doesn't prevent receiving negative Attack stage changes from Baton Pass"); -TO_DO_BATTLE_TEST("Hyper Cutter doesn't prevent Topsy-Turvy"); -TO_DO_BATTLE_TEST("Hyper Cutter doesn't prevent Spectral Thief from resetting positive Attack stage changes"); -TO_DO_BATTLE_TEST("Hyper Cutter is ignored by Mold Breaker"); +SINGLE_BATTLE_TEST("Hyper Cutter prevents Attack stage reduction from moves") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_GROWL].effect == EFFECT_ATTACK_DOWN); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_KRABBY) { Ability(ABILITY_HYPER_CUTTER); } + } WHEN { + TURN { MOVE(player, MOVE_GROWL); } + } SCENE { + ABILITY_POPUP(opponent, ABILITY_HYPER_CUTTER); + MESSAGE("Foe Krabby's Hyper Cutter prevents Attack loss!"); + } +} + +SINGLE_BATTLE_TEST("Hyper Cutter doesn't prevent Attack reduction from burn") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_WILL_O_WISP].effect == EFFECT_WILL_O_WISP); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_KRABBY) { Ability(ABILITY_HYPER_CUTTER); } + } WHEN { + TURN { MOVE(player, MOVE_WILL_O_WISP); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_WILL_O_WISP, player); + MESSAGE("Foe Krabby was burned!"); + } THEN { + EXPECT_EQ(opponent->statStages[STAT_ATK], DEFAULT_STAT_STAGE); + } +} + +SINGLE_BATTLE_TEST("Hyper Cutter is ignored by Mold Breaker") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_GROWL].effect == EFFECT_ATTACK_DOWN); + PLAYER(SPECIES_PINSIR) { Ability(ABILITY_MOLD_BREAKER); } + OPPONENT(SPECIES_KRABBY) { Ability(ABILITY_HYPER_CUTTER); } + } WHEN { + TURN { MOVE(player, MOVE_GROWL); } + } SCENE { + ABILITY_POPUP(player, ABILITY_MOLD_BREAKER); + MESSAGE("Pinsir breaks the mold!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_GROWL, player); + MESSAGE("Foe Krabby's Attack fell!"); + NONE_OF { + ABILITY_POPUP(opponent, ABILITY_HYPER_CUTTER); + MESSAGE("Foe Krabby's Hyper Cutter prevents Attack loss!"); + } + } +} + +SINGLE_BATTLE_TEST("Hyper Cutter doesn't prevent Attack stage reduction from moves used by the user") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_SUPERPOWER].effect == EFFECT_SUPERPOWER); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_KRABBY) { Ability(ABILITY_HYPER_CUTTER); } + } WHEN { + TURN { MOVE(opponent, MOVE_SUPERPOWER); } + TURN {} + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SUPERPOWER, opponent); + MESSAGE("Foe Krabby's Attack fell!"); + MESSAGE("Foe Krabby's Defense fell!"); + } THEN { + EXPECT_EQ(opponent->statStages[STAT_ATK], DEFAULT_STAT_STAGE - 1); + } +} + +SINGLE_BATTLE_TEST("Hyper Cutter doesn't prevent Topsy-Turvy") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_SWORDS_DANCE].effect == EFFECT_ATTACK_UP_2); + ASSUME(gBattleMoves[MOVE_TOPSY_TURVY].effect == EFFECT_TOPSY_TURVY); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_KRABBY) { Ability(ABILITY_HYPER_CUTTER); } + } WHEN { + TURN { MOVE(opponent, MOVE_SWORDS_DANCE); MOVE(player, MOVE_TOPSY_TURVY); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SWORDS_DANCE, opponent); + MESSAGE("Foe Krabby's Attack sharply rose!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TOPSY_TURVY, player); + MESSAGE("Foe Krabby's stat changes were all reversed!"); + } THEN { + EXPECT_EQ(opponent->statStages[STAT_ATK], DEFAULT_STAT_STAGE - 2); + } +} + +SINGLE_BATTLE_TEST("Hyper Cutter doesn't prevent Spectral Thief from resetting positive Attack stage changes") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_SWORDS_DANCE].effect == EFFECT_ATTACK_UP_2); + ASSUME(gBattleMoves[MOVE_SPECTRAL_THIEF].effect == EFFECT_SPECTRAL_THIEF); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_KRABBY) { Ability(ABILITY_HYPER_CUTTER); } + } WHEN { + TURN { MOVE(opponent, MOVE_SWORDS_DANCE); MOVE(player, MOVE_SPECTRAL_THIEF); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SWORDS_DANCE, opponent); + MESSAGE("Foe Krabby's Attack sharply rose!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPECTRAL_THIEF, player); + MESSAGE("Wobbuffet stole the target's boosted stats!"); + } THEN { + EXPECT_EQ(opponent->statStages[STAT_ATK], DEFAULT_STAT_STAGE); + } +} + +SINGLE_BATTLE_TEST("Hyper Cutter doesn't prevent receiving negative Attack stage changes from Baton Pass") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_GROWL].effect == EFFECT_ATTACK_DOWN); + ASSUME(gBattleMoves[MOVE_BATON_PASS].effect == EFFECT_BATON_PASS); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_KRABBY) { Ability(ABILITY_HYPER_CUTTER); } + } WHEN { + TURN { MOVE(player, MOVE_GROWL); + MOVE(opponent, MOVE_BATON_PASS); + SEND_OUT(opponent, 1); + } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_GROWL, player); + ANIMATION(ANIM_TYPE_MOVE, MOVE_BATON_PASS, opponent); + MESSAGE("2 sent out Krabby!"); + } THEN { + EXPECT_EQ(opponent->statStages[STAT_ATK], DEFAULT_STAT_STAGE - 1); + } +} diff --git a/test/battle/ability/ice_scales.c b/test/battle/ability/ice_scales.c index 2bbe7dab0594..c4984c35b090 100644 --- a/test/battle/ability/ice_scales.c +++ b/test/battle/ability/ice_scales.c @@ -1,11 +1,6 @@ #include "global.h" #include "test/battle.h" -ASSUMPTIONS -{ - ASSUME(P_GEN_8_POKEMON == TRUE); // Because only Frosmoth can have this ability. -} - SINGLE_BATTLE_TEST("Ice Scales halves the damage from special moves", s16 damage) { u32 move; diff --git a/test/battle/ability/inner_focus.c b/test/battle/ability/inner_focus.c index 574c860a74f6..ecd71272cb9a 100644 --- a/test/battle/ability/inner_focus.c +++ b/test/battle/ability/inner_focus.c @@ -20,7 +20,7 @@ SINGLE_BATTLE_TEST("Inner Focus prevents intimidate") ABILITY_POPUP(player, ABILITY_INTIMIDATE); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); } ABILITY_POPUP(opponent, ABILITY_INNER_FOCUS); - MESSAGE("Foe Zubat's Attack was not lowered!"); + MESSAGE("Foe Zubat's Inner Focus prevents stat loss!"); HP_BAR(player, captureDamage: &turnTwoHit); } THEN { EXPECT_EQ(turnOneHit, turnTwoHit); diff --git a/test/battle/ability/mirror_armor.c b/test/battle/ability/mirror_armor.c index 2b0a59044c89..2c4d8d9a2752 100644 --- a/test/battle/ability/mirror_armor.c +++ b/test/battle/ability/mirror_armor.c @@ -1,11 +1,6 @@ #include "global.h" #include "test/battle.h" -ASSUMPTIONS -{ - ASSUME(P_GEN_8_POKEMON == TRUE); -} - SINGLE_BATTLE_TEST("Mirror Armor lowers a stat of the attacking pokemon") { u16 move, statId; diff --git a/test/battle/ability/neuroforce.c b/test/battle/ability/neuroforce.c index df15bd4511bd..4aac565066c4 100644 --- a/test/battle/ability/neuroforce.c +++ b/test/battle/ability/neuroforce.c @@ -1,11 +1,6 @@ #include "global.h" #include "test/battle.h" -ASSUMPTIONS -{ - ASSUME(P_GEN_7_POKEMON == TRUE); // Because only Necrozma can have this ability. -} - SINGLE_BATTLE_TEST("Neuroforce increases the strength of super-effective moves by 25%", s16 damage) { u32 move; diff --git a/test/battle/ability/oblivious.c b/test/battle/ability/oblivious.c index 51d27bb16976..b851256acc06 100644 --- a/test/battle/ability/oblivious.c +++ b/test/battle/ability/oblivious.c @@ -63,6 +63,6 @@ SINGLE_BATTLE_TEST("Oblivious prevents Intimidate") ABILITY_POPUP(opponent, ABILITY_INTIMIDATE); ABILITY_POPUP(player, ABILITY_OBLIVIOUS); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); } - MESSAGE("Slowpoke's Attack was not lowered!"); + MESSAGE("Slowpoke's Oblivious prevents stat loss!"); } } diff --git a/test/battle/ability/opportunist.c b/test/battle/ability/opportunist.c index f344bd026ff2..2f0c5c8c8401 100644 --- a/test/battle/ability/opportunist.c +++ b/test/battle/ability/opportunist.c @@ -69,7 +69,7 @@ DOUBLE_BATTLE_TEST("Opportunist raises Attack only once when partner has Intimid ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentRight); MESSAGE("Mightyena's Intimidate cuts Foe Spinda's attack!"); } - + if ((abilityLeft == ABILITY_CONTRARY && abilityRight != ABILITY_CONTRARY) || (abilityLeft != ABILITY_CONTRARY && abilityRight == ABILITY_CONTRARY)) { ABILITY_POPUP(playerRight, ABILITY_OPPORTUNIST); @@ -82,7 +82,7 @@ DOUBLE_BATTLE_TEST("Opportunist raises Attack only once when partner has Intimid ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerRight); MESSAGE("Wobbuffet's Attack sharply rose!"); } - + HP_BAR(playerLeft, captureDamage: &results[i].damageLeft); HP_BAR(playerRight, captureDamage: &results[i].damageRight); } THEN { diff --git a/test/battle/ability/own_tempo.c b/test/battle/ability/own_tempo.c index 4c6a3167f664..9babd52589c8 100644 --- a/test/battle/ability/own_tempo.c +++ b/test/battle/ability/own_tempo.c @@ -20,7 +20,7 @@ SINGLE_BATTLE_TEST("Own Tempo prevents intimidate") ABILITY_POPUP(player, ABILITY_INTIMIDATE); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); } ABILITY_POPUP(opponent, ABILITY_OWN_TEMPO); - MESSAGE("Foe Slowpoke's Attack was not lowered!"); + MESSAGE("Foe Slowpoke's Own Tempo prevents stat loss!"); HP_BAR(player, captureDamage: &turnTwoHit); } THEN { EXPECT_EQ(turnOneHit, turnTwoHit); diff --git a/test/battle/ability/protosynthesis.c b/test/battle/ability/protosynthesis.c index 0d53141c34e7..93ed9630e9b3 100644 --- a/test/battle/ability/protosynthesis.c +++ b/test/battle/ability/protosynthesis.c @@ -85,3 +85,50 @@ SINGLE_BATTLE_TEST("Protosynthesis either boosts Defense or Special Defense, not EXPECT_EQ(damage[0], damage[1]); } } + +SINGLE_BATTLE_TEST("Protosynthesis ability pop up activates only once during the duration of sunny day") +{ + u16 turns; + + GIVEN { + PLAYER(SPECIES_BELLSPROUT) { Ability(ABILITY_PROTOSYNTHESIS); } + OPPONENT(SPECIES_NINETALES) { Ability(ABILITY_DROUGHT); }; + } WHEN { + for (turns = 0; turns < 5; turns++) + TURN {} + TURN { MOVE(opponent, MOVE_SUNNY_DAY); } + } SCENE { + ABILITY_POPUP(opponent, ABILITY_DROUGHT); + ABILITY_POPUP(player, ABILITY_PROTOSYNTHESIS); + MESSAGE("The harsh sunlight activated Bellsprout's Protosynthesis!"); + MESSAGE("Bellsprout's Attack was heightened!"); + NONE_OF { + for (turns = 0; turns < 4; turns++) { + ABILITY_POPUP(player, ABILITY_PROTOSYNTHESIS); + MESSAGE("The harsh sunlight activated Bellsprout's Protosynthesis!"); + MESSAGE("Bellsprout's Attack was heightened!"); + } + } + ANIMATION(ANIM_TYPE_MOVE, MOVE_SUNNY_DAY, opponent); + ABILITY_POPUP(player, ABILITY_PROTOSYNTHESIS); + MESSAGE("The harsh sunlight activated Bellsprout's Protosynthesis!"); + MESSAGE("Bellsprout's Attack was heightened!"); + } +} + +SINGLE_BATTLE_TEST("Protosynthesis activates on switch-in") +{ + KNOWN_FAILING; // Fails because of wrong species + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_BELLSPROUT) { Ability(ABILITY_PROTOSYNTHESIS); } + OPPONENT(SPECIES_NINETALES) { Ability(ABILITY_DROUGHT); }; + } WHEN { + TURN { SWITCH(player, 1); } + } SCENE { + ABILITY_POPUP(opponent, ABILITY_DROUGHT); + ABILITY_POPUP(player, ABILITY_PROTOSYNTHESIS); + MESSAGE("The harsh sunlight activated Bellsprout's Protosynthesis!"); + MESSAGE("Bellsprout's Attack was heightened!"); + } +} diff --git a/test/battle/ability/quark_drive.c b/test/battle/ability/quark_drive.c index d9c7cf730704..f4448e143968 100644 --- a/test/battle/ability/quark_drive.c +++ b/test/battle/ability/quark_drive.c @@ -85,3 +85,51 @@ SINGLE_BATTLE_TEST("Quark Drive either boosts Defense or Special Defense, not bo EXPECT_EQ(damage[0], damage[1]); } } + +SINGLE_BATTLE_TEST("Quark Drive ability pop up activates only once during the duration of electric terrain") +{ + u16 turns; + + GIVEN { + PLAYER(SPECIES_BELLSPROUT) { Ability(ABILITY_QUARK_DRIVE); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_ELECTRIC_TERRAIN); } + for (turns = 0; turns < 4; turns++) + TURN {} + TURN { MOVE(opponent, MOVE_ELECTRIC_TERRAIN); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_ELECTRIC_TERRAIN, opponent); + ABILITY_POPUP(player, ABILITY_QUARK_DRIVE); + MESSAGE("The Electric Terrain activated Bellsprout's Quark Drive!"); + MESSAGE("Bellsprout's Attack was heightened!"); + NONE_OF { + for (turns = 0; turns < 4; turns++) { + ABILITY_POPUP(player, ABILITY_QUARK_DRIVE); + MESSAGE("The Electric Terrain activated Bellsprout's Quark Drive!"); + MESSAGE("Bellsprout's Attack was heightened!"); + } + } + ANIMATION(ANIM_TYPE_MOVE, MOVE_ELECTRIC_TERRAIN, opponent); + ABILITY_POPUP(player, ABILITY_QUARK_DRIVE); + MESSAGE("The Electric Terrain activated Bellsprout's Quark Drive!"); + MESSAGE("Bellsprout's Attack was heightened!"); + } +} + +SINGLE_BATTLE_TEST("Quark Drive activates on switch-in") +{ + KNOWN_FAILING; // Fails because of wrong species + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_BELLSPROUT) { Ability(ABILITY_QUARK_DRIVE); } + OPPONENT(SPECIES_TAPU_KOKO) { Ability(ABILITY_ELECTRIC_SURGE); }; + } WHEN { + TURN { SWITCH(player, 1); } + } SCENE { + ABILITY_POPUP(opponent, ABILITY_ELECTRIC_SURGE); + ABILITY_POPUP(player, ABILITY_QUARK_DRIVE); + MESSAGE("The Electric Terrain activated Bellsprout's Quark Drive!"); + MESSAGE("Bellsprout's Attack was heightened!"); + } +} diff --git a/test/battle/ability/sap_sipper.c b/test/battle/ability/sap_sipper.c index 918e553a3a3c..903427fcc5e5 100644 --- a/test/battle/ability/sap_sipper.c +++ b/test/battle/ability/sap_sipper.c @@ -57,3 +57,24 @@ SINGLE_BATTLE_TEST("Sap Sipper does not increase Attack if already maxed") } } } + +SINGLE_BATTLE_TEST("Sap Sipper blocks multi-hit grass type moves") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_BULLET_SEED].effect == EFFECT_MULTI_HIT); + PLAYER(SPECIES_MARILL) { Ability(ABILITY_SAP_SIPPER); } + OPPONENT(SPECIES_SHELLDER) { Ability(ABILITY_SKILL_LINK); } + } WHEN { + TURN { MOVE(opponent, MOVE_BULLET_SEED); } + } SCENE { + MESSAGE("Foe Shellder used Bullet Seed!"); + ABILITY_POPUP(player, ABILITY_SAP_SIPPER); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + MESSAGE("Marill's Attack rose!"); + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_BULLET_SEED, opponent); + HP_BAR(player); + MESSAGE("Hit 5 time(s)!"); + } + } +} diff --git a/test/battle/ability/schooling.c b/test/battle/ability/schooling.c index 49a70266de9e..efa38cbb68f7 100644 --- a/test/battle/ability/schooling.c +++ b/test/battle/ability/schooling.c @@ -8,7 +8,6 @@ SINGLE_BATTLE_TEST("Schooling switches Level 20+ Wishiwashi's form when HP is 25 PARAMETRIZE { level = 20; } GIVEN { - ASSUME(P_GEN_7_POKEMON == TRUE); ASSUME(gSpeciesInfo[SPECIES_WISHIWASHI_SOLO].baseHP == gSpeciesInfo[SPECIES_WISHIWASHI_SCHOOL].baseHP); PLAYER(SPECIES_WISHIWASHI_SOLO) { @@ -48,7 +47,6 @@ SINGLE_BATTLE_TEST("Schooling switches Level 20+ Wishiwashi's form when HP is ov PARAMETRIZE { level = 20; overQuarterHP = TRUE; } GIVEN { - ASSUME(P_GEN_7_POKEMON == TRUE); ASSUME(gSpeciesInfo[SPECIES_WISHIWASHI_SOLO].baseHP == gSpeciesInfo[SPECIES_WISHIWASHI_SCHOOL].baseHP); PLAYER(SPECIES_WISHIWASHI_SOLO) { @@ -82,7 +80,6 @@ SINGLE_BATTLE_TEST("Schooling switches Level 20+ Wishiwashi's form when HP is he PARAMETRIZE { level = 20; } GIVEN { - ASSUME(P_GEN_7_POKEMON == TRUE); ASSUME(gSpeciesInfo[SPECIES_WISHIWASHI_SOLO].baseHP == gSpeciesInfo[SPECIES_WISHIWASHI_SCHOOL].baseHP); PLAYER(SPECIES_WISHIWASHI_SOLO) { diff --git a/test/battle/ability/scrappy.c b/test/battle/ability/scrappy.c index df4ededa4edc..22b6660b691b 100644 --- a/test/battle/ability/scrappy.c +++ b/test/battle/ability/scrappy.c @@ -20,7 +20,7 @@ SINGLE_BATTLE_TEST("Scrappy prevents intimidate") ABILITY_POPUP(player, ABILITY_INTIMIDATE); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); } ABILITY_POPUP(opponent, ABILITY_SCRAPPY); - MESSAGE("Foe Kangaskhan's Attack was not lowered!"); + MESSAGE("Foe Kangaskhan's Scrappy prevents stat loss!"); HP_BAR(player, captureDamage: &turnTwoHit); } THEN { EXPECT_EQ(turnOneHit, turnTwoHit); diff --git a/test/battle/ability/sharpness.c b/test/battle/ability/sharpness.c index 6360c4f8b326..91c543b6f085 100644 --- a/test/battle/ability/sharpness.c +++ b/test/battle/ability/sharpness.c @@ -1,11 +1,6 @@ #include "global.h" #include "test/battle.h" -ASSUMPTIONS -{ - ASSUME(P_GEN_4_POKEMON == TRUE); // Because no parametersCount; j+=2) + { + EXPECT_GT(results[j+1].damage, results[j].damage); + } + } +} diff --git a/test/battle/ability/trace.c b/test/battle/ability/trace.c new file mode 100644 index 000000000000..0e4448424b98 --- /dev/null +++ b/test/battle/ability/trace.c @@ -0,0 +1,82 @@ +#include "global.h" +#include "test/battle.h" + +SINGLE_BATTLE_TEST("Trace copies opponents ability") +{ + GIVEN { + PLAYER(SPECIES_RALTS) { Ability(ABILITY_TRACE); } + OPPONENT(SPECIES_TORCHIC) { Ability(ABILITY_BLAZE); } + } WHEN { + TURN { } + } SCENE { + ABILITY_POPUP(player, ABILITY_TRACE); + MESSAGE("Ralts TRACED Foe Torchic's Blaze!"); + } +} + +SINGLE_BATTLE_TEST("Trace copies opponents ability on switch-in") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) + PLAYER(SPECIES_RALTS) { Ability(ABILITY_TRACE); } + OPPONENT(SPECIES_TORCHIC) { Ability(ABILITY_BLAZE); } + } WHEN { + TURN { SWITCH(player, 1); } + } SCENE { + ABILITY_POPUP(player, ABILITY_TRACE); + MESSAGE("Ralts TRACED Foe Torchic's Blaze!"); + } +} + +SINGLE_BATTLE_TEST("Trace copies opponents ability on switch-in even if opponent switched in at the same time") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) + PLAYER(SPECIES_RALTS) { Ability(ABILITY_TRACE); } + OPPONENT(SPECIES_TREECKO) { HP(1); } + OPPONENT(SPECIES_TORCHIC) { Ability(ABILITY_BLAZE); } + } WHEN { + TURN { MOVE(player, MOVE_MISTY_EXPLOSION); SEND_OUT(opponent, 1); SEND_OUT(player, 1); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_MISTY_EXPLOSION); + ABILITY_POPUP(player, ABILITY_TRACE); + MESSAGE("Ralts TRACED Foe Torchic's Blaze!"); + } +} + +DOUBLE_BATTLE_TEST("Trace copies opponents ability randomly") +{ + u16 ability1, ability2; + + PARAMETRIZE { ability1 = ABILITY_SPEED_BOOST; ability2 = ABILITY_BLAZE;} + PARAMETRIZE { ability1 = ABILITY_BLAZE; ability2 = ABILITY_SPEED_BOOST; } + + PASSES_RANDOMLY(1, 2, RNG_TRACE); + GIVEN { + PLAYER(SPECIES_RALTS) { Ability(ABILITY_TRACE); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_TORCHIC) { Ability(ability1); } + OPPONENT(SPECIES_TORCHIC) { Ability(ability2); } + } WHEN { + TURN { } + } SCENE { + ABILITY_POPUP(playerLeft, ABILITY_TRACE); + MESSAGE("Ralts TRACED Foe Torchic's Blaze!"); + } +} + +SINGLE_BATTLE_TEST("Trace will copy an opponent's ability whenever it has the chance but only once") +{ + GIVEN { + ASSUME(P_GEN_4_POKEMON == TRUE); + PLAYER(SPECIES_RALTS) { Ability(ABILITY_TRACE); } + OPPONENT(SPECIES_CHERRIM) { Ability(ABILITY_FLOWER_GIFT); } + OPPONENT(SPECIES_TORCHIC) { Ability(ABILITY_BLAZE); } + } WHEN { + TURN { SWITCH(opponent, 1); } + } SCENE { + // TURN 2 + ABILITY_POPUP(player, ABILITY_TRACE); + MESSAGE("Ralts TRACED Foe Torchic's Blaze!"); + } +} diff --git a/test/battle/ability/weak_armor.c b/test/battle/ability/weak_armor.c new file mode 100644 index 000000000000..84cad5c222d3 --- /dev/null +++ b/test/battle/ability/weak_armor.c @@ -0,0 +1,198 @@ +#include "global.h" +#include "test/battle.h" + +ASSUMPTIONS +{ + ASSUME(gBattleMoves[MOVE_TACKLE].power != 0); + ASSUME(gBattleMoves[MOVE_GUST].power != 0); + ASSUME(gBattleMoves[MOVE_GUST].split == SPLIT_SPECIAL); + ASSUME(gBattleMoves[MOVE_TACKLE].split == SPLIT_PHYSICAL); + ASSUME(B_WEAK_ARMOR_SPEED >= GEN_7); +} + +SINGLE_BATTLE_TEST("Weak Armor lowers Defense by 1 and boosts Speed by 2 when hit by a physical attack") +{ + u16 move; + + PARAMETRIZE { move = MOVE_TACKLE; } + PARAMETRIZE { move = MOVE_GUST; } + + GIVEN { + PLAYER(SPECIES_SLUGMA) { Ability(ABILITY_WEAK_ARMOR); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, move); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, move, opponent); + HP_BAR(player); + if (move == MOVE_TACKLE) { + ABILITY_POPUP(player, ABILITY_WEAK_ARMOR); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + MESSAGE("Slugma's Weak Armor lowered its Defense!"); + MESSAGE("Slugma's Weak Armor raised its Speed!"); + } else { + NONE_OF { + ABILITY_POPUP(player, ABILITY_WEAK_ARMOR); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + MESSAGE("Slugma's Weak Armor lowered its Defense!"); + MESSAGE("Slugma's Weak Armor raised its Speed!"); + } + } + } THEN { + if (move == MOVE_TACKLE) { + EXPECT_EQ(player->statStages[STAT_DEF], DEFAULT_STAT_STAGE - 1); + EXPECT_EQ(player->statStages[STAT_SPEED], DEFAULT_STAT_STAGE + 2); + } + } +} + +// Oddly specific, but it was a bug at one point. +SINGLE_BATTLE_TEST("Weak Armor does not trigger when brought in by Dragon Tail and taking Stealth Rock damage") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_STEALTH_ROCK].effect == EFFECT_STEALTH_ROCK); + ASSUME(gBattleMoves[MOVE_DRAGON_TAIL].effect == EFFECT_HIT_SWITCH_TARGET); + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_SLUGMA) { Ability(ABILITY_WEAK_ARMOR); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_STEALTH_ROCK); } + TURN { MOVE(opponent, MOVE_DRAGON_TAIL); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_STEALTH_ROCK, opponent); + ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAGON_TAIL, opponent); + HP_BAR(player); + MESSAGE("Slugma was dragged out!"); + HP_BAR(player); + MESSAGE("Pointed stones dug into Slugma!"); + NONE_OF { + ABILITY_POPUP(player, ABILITY_WEAK_ARMOR); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + MESSAGE("Slugma's Weak Armor lowered its Defense!"); + MESSAGE("Slugma's Weak Armor raised its Speed!"); + } + } THEN { + EXPECT_EQ(player->statStages[STAT_DEF], DEFAULT_STAT_STAGE); + EXPECT_EQ(player->statStages[STAT_SPEED], DEFAULT_STAT_STAGE); + } +} + +SINGLE_BATTLE_TEST("Weak Armor still lowers boosts Speed if Defense can't go any lower") +{ + GIVEN { + PLAYER(SPECIES_SLUGMA) { Ability(ABILITY_WEAK_ARMOR); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_SCREECH); } + TURN { MOVE(opponent, MOVE_SCREECH); } + TURN { MOVE(opponent, MOVE_SCREECH); } + TURN { MOVE(opponent, MOVE_TACKLE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + HP_BAR(player); + ABILITY_POPUP(player, ABILITY_WEAK_ARMOR); + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + MESSAGE("Slugma's Weak Armor lowered its Defense!"); + } + MESSAGE("Slugma's Defense won't go lower!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + MESSAGE("Slugma's Weak Armor raised its Speed!"); + } THEN { + EXPECT_EQ(player->statStages[STAT_DEF], MIN_STAT_STAGE); + EXPECT_EQ(player->statStages[STAT_SPEED], DEFAULT_STAT_STAGE + 2); + } +} + +SINGLE_BATTLE_TEST("Weak Armor still lowers Defense if Speed can't go any higher") +{ + GIVEN { + PLAYER(SPECIES_SLUGMA) { Ability(ABILITY_WEAK_ARMOR); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_AGILITY); } + TURN { MOVE(player, MOVE_AGILITY); } + TURN { MOVE(player, MOVE_AGILITY); } + TURN { MOVE(opponent, MOVE_TACKLE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + HP_BAR(player); + ABILITY_POPUP(player, ABILITY_WEAK_ARMOR); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + MESSAGE("Slugma's Weak Armor lowered its Defense!"); + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + MESSAGE("Slugma's Weak Armor raised its Speed!"); + } + MESSAGE("Slugma's Speed won't go higher!"); + } THEN { + EXPECT_EQ(player->statStages[STAT_DEF], DEFAULT_STAT_STAGE - 1); + EXPECT_EQ(player->statStages[STAT_SPEED], MAX_STAT_STAGE); + } +} + +SINGLE_BATTLE_TEST("Weak Armor doesn't interrupt multi hit moves if Defense can't go any lower") +{ + u32 j; + GIVEN { + PLAYER(SPECIES_MAGCARGO) { Ability(ABILITY_WEAK_ARMOR); Defense(999); } + OPPONENT(SPECIES_CLOYSTER) { Ability(ABILITY_SKILL_LINK); } + } WHEN { + TURN { MOVE(opponent, MOVE_SCREECH); } + TURN { MOVE(opponent, MOVE_SCREECH); } + TURN { MOVE(opponent, MOVE_FURY_SWIPES); } + } SCENE { + for (j = 0; j < 2; j++) + { + ANIMATION(ANIM_TYPE_MOVE, MOVE_FURY_SWIPES, opponent); + ABILITY_POPUP(player, ABILITY_WEAK_ARMOR); + MESSAGE("Magcargo's Weak Armor lowered its Defense!"); + MESSAGE("Magcargo's Weak Armor raised its Speed!"); + } + ANIMATION(ANIM_TYPE_MOVE, MOVE_FURY_SWIPES, opponent); + ABILITY_POPUP(player, ABILITY_WEAK_ARMOR); + MESSAGE("Magcargo's Defense won't go lower!"); + MESSAGE("Magcargo's Weak Armor raised its Speed!"); + for (j = 0; j < 2; j++) + { + ANIMATION(ANIM_TYPE_MOVE, MOVE_FURY_SWIPES, opponent); + // Ability doesn't activate if neither stat can be changed. + NONE_OF { + ABILITY_POPUP(player, ABILITY_WEAK_ARMOR); + MESSAGE("Magcargo's Defense won't go lower!"); + MESSAGE("Magcargo's Speed won't go higher!"); + } + } + } THEN { + EXPECT_EQ(player->statStages[STAT_DEF], MIN_STAT_STAGE); + EXPECT_EQ(player->statStages[STAT_SPEED], MAX_STAT_STAGE); + } +} + +SINGLE_BATTLE_TEST("Weak Armor doesn't interrupt multi hit moves if Speed can't go any higher") +{ + u32 j; + GIVEN { + PLAYER(SPECIES_MAGCARGO) { Ability(ABILITY_WEAK_ARMOR); Defense(999); } + OPPONENT(SPECIES_CLOYSTER) { Ability(ABILITY_SKILL_LINK); } + } WHEN { + TURN { MOVE(player, MOVE_AGILITY); } + TURN { MOVE(player, MOVE_AGILITY); } + TURN { MOVE(opponent, MOVE_FURY_SWIPES); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_FURY_SWIPES, opponent); + ABILITY_POPUP(player, ABILITY_WEAK_ARMOR); + MESSAGE("Magcargo's Weak Armor lowered its Defense!"); + MESSAGE("Magcargo's Weak Armor raised its Speed!"); + for (j = 0; j < 4; j++) + { + ANIMATION(ANIM_TYPE_MOVE, MOVE_FURY_SWIPES, opponent); + ABILITY_POPUP(player, ABILITY_WEAK_ARMOR); + MESSAGE("Magcargo's Weak Armor lowered its Defense!"); + MESSAGE("Magcargo's Speed won't go higher!"); + } + } THEN { + EXPECT_EQ(player->statStages[STAT_DEF], DEFAULT_STAT_STAGE - 5); + EXPECT_EQ(player->statStages[STAT_SPEED], MAX_STAT_STAGE); + } +} diff --git a/test/battle/ability/zen_mode.c b/test/battle/ability/zen_mode.c index 3d1e25ffa7a6..2734f7a9ec6a 100644 --- a/test/battle/ability/zen_mode.c +++ b/test/battle/ability/zen_mode.c @@ -8,7 +8,6 @@ SINGLE_BATTLE_TEST("Zen Mode switches Darmanitan's form when HP is half or less PARAMETRIZE { standardSpecies = SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE; zenSpecies = SPECIES_DARMANITAN_GALARIAN_ZEN_MODE; } GIVEN { - ASSUME(P_GEN_5_POKEMON == TRUE); ASSUME(gSpeciesInfo[standardSpecies].baseHP == 105); ASSUME(gSpeciesInfo[zenSpecies].baseHP == 105); PLAYER(standardSpecies) @@ -38,7 +37,6 @@ SINGLE_BATTLE_TEST("Zen Mode switches Darmanitan's form when HP is half or less PARAMETRIZE { standardSpecies = SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE; zenSpecies = SPECIES_DARMANITAN_GALARIAN_ZEN_MODE; } GIVEN { - ASSUME(P_GEN_5_POKEMON == TRUE); ASSUME(gSpeciesInfo[standardSpecies].baseHP == 105); ASSUME(gSpeciesInfo[zenSpecies].baseHP == 105); PLAYER(standardSpecies) @@ -67,7 +65,6 @@ SINGLE_BATTLE_TEST("Zen Mode switches Darmanitan's form when HP is healed above PARAMETRIZE { standardSpecies = SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE; zenSpecies = SPECIES_DARMANITAN_GALARIAN_ZEN_MODE; } GIVEN { - ASSUME(P_GEN_5_POKEMON == TRUE); ASSUME(gSpeciesInfo[standardSpecies].baseHP == 105); ASSUME(gSpeciesInfo[zenSpecies].baseHP == 105); PLAYER(standardSpecies) diff --git a/test/battle/ability/zero_to_hero.c b/test/battle/ability/zero_to_hero.c new file mode 100644 index 000000000000..72309f6fb955 --- /dev/null +++ b/test/battle/ability/zero_to_hero.c @@ -0,0 +1,175 @@ +#include "global.h" +#include "test/battle.h" + +SINGLE_BATTLE_TEST("Zero to Hero transforms Palafin when it switches out") +{ + GIVEN { + PLAYER(SPECIES_PALAFIN_ZERO) { Ability(ABILITY_ZERO_TO_HERO); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { SWITCH(player, 1); } + TURN { SWITCH(player, 0); } + } SCENE { + MESSAGE("Palafin, that's enough! Come back!"); + MESSAGE("Go! Wobbuffet!"); + MESSAGE("Wobbuffet, that's enough! Come back!"); + MESSAGE("Go! Palafin!"); + ABILITY_POPUP(player, ABILITY_ZERO_TO_HERO); + MESSAGE("Palafin underwent a heroic transformation!"); + } THEN { EXPECT_EQ(player->species, SPECIES_PALAFIN_HERO); } +} + +SINGLE_BATTLE_TEST("Zero to Hero can't be surpressed by Neutralizing Gas") +{ + GIVEN { + PLAYER(SPECIES_PALAFIN_ZERO) { Ability(ABILITY_ZERO_TO_HERO); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_KOFFING) { Ability(ABILITY_NEUTRALIZING_GAS); } + } WHEN { + TURN { SWITCH(player, 1); } + TURN { SWITCH(player, 0); } + } SCENE { + ABILITY_POPUP(opponent, ABILITY_NEUTRALIZING_GAS); + ABILITY_POPUP(player, ABILITY_ZERO_TO_HERO); + MESSAGE("Palafin underwent a heroic transformation!"); + } THEN { EXPECT_EQ(player->species, SPECIES_PALAFIN_HERO); } +} + +SINGLE_BATTLE_TEST("Zero to Hero transforms both player and opponent") +{ + GIVEN { + PLAYER(SPECIES_PALAFIN_ZERO) { Ability(ABILITY_ZERO_TO_HERO); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_PALAFIN_ZERO) { Ability(ABILITY_ZERO_TO_HERO); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { SWITCH(player, 1); SWITCH(opponent, 1); } + TURN { SWITCH(player, 0); SWITCH(opponent, 0); } + } SCENE { + ABILITY_POPUP(player, ABILITY_ZERO_TO_HERO); + MESSAGE("Palafin underwent a heroic transformation!"); + ABILITY_POPUP(opponent, ABILITY_ZERO_TO_HERO); + MESSAGE("Foe Palafin underwent a heroic transformation!"); + } THEN { + EXPECT_EQ(player->species, SPECIES_PALAFIN_HERO); + EXPECT_EQ(opponent->species, SPECIES_PALAFIN_HERO); + } +} + +SINGLE_BATTLE_TEST("Zero to Hero will activate if a switch move is used") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_FLIP_TURN].effect == EFFECT_HIT_ESCAPE); + PLAYER(SPECIES_PALAFIN_ZERO) { Ability(ABILITY_ZERO_TO_HERO); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_FLIP_TURN); SEND_OUT(player, 1); } + TURN { SWITCH(player, 0); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_FLIP_TURN, player); + ABILITY_POPUP(player, ABILITY_ZERO_TO_HERO); + MESSAGE("Palafin underwent a heroic transformation!"); + } THEN { EXPECT_EQ(player->species, SPECIES_PALAFIN_HERO); } +} + +SINGLE_BATTLE_TEST("Gastro Acid, Worry Seed, and Simple Beam fail if the target has the Ability Zero to Hero") +{ + u16 move; + + PARAMETRIZE { move = MOVE_GASTRO_ACID; } + PARAMETRIZE { move = MOVE_WORRY_SEED; } + PARAMETRIZE { move = MOVE_SIMPLE_BEAM; } + + GIVEN { + ASSUME(gBattleMoves[MOVE_GASTRO_ACID].effect == EFFECT_GASTRO_ACID); + ASSUME(gBattleMoves[MOVE_WORRY_SEED].effect == EFFECT_WORRY_SEED); + ASSUME(gBattleMoves[MOVE_SIMPLE_BEAM].effect == EFFECT_SIMPLE_BEAM); + PLAYER(SPECIES_PALAFIN_ZERO) { Ability(ABILITY_ZERO_TO_HERO); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, move); } + } SCENE { + NOT ANIMATION(ANIM_TYPE_MOVE, move, player); + MESSAGE("But it failed!"); + } +} + +SINGLE_BATTLE_TEST("Role Play, Skill Swap, and Entrainment fail if either Pokémon has Zero to Hero") +{ + u16 move; + + PARAMETRIZE { move = MOVE_ROLE_PLAY; } + PARAMETRIZE { move = MOVE_SKILL_SWAP; } + PARAMETRIZE { move = MOVE_ENTRAINMENT; } + + GIVEN { + ASSUME(gBattleMoves[MOVE_ROLE_PLAY].effect == EFFECT_ROLE_PLAY); + ASSUME(gBattleMoves[MOVE_SKILL_SWAP].effect == EFFECT_SKILL_SWAP); + ASSUME(gBattleMoves[MOVE_ENTRAINMENT].effect == EFFECT_ENTRAINMENT); + PLAYER(SPECIES_PALAFIN_ZERO) { Ability(ABILITY_ZERO_TO_HERO); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, move); } + } SCENE { + NOT ANIMATION(ANIM_TYPE_MOVE, move, player); + MESSAGE("But it failed!"); + } +} + +SINGLE_BATTLE_TEST("Transform doesn't apply the heroic transformation message when copying Palafin") +{ + GIVEN { + PLAYER(SPECIES_PALAFIN_ZERO) { Ability(ABILITY_ZERO_TO_HERO); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { SWITCH(player, 1); } + TURN { SWITCH(player, 0); MOVE(opponent, MOVE_TRANSFORM); } + } SCENE { + ABILITY_POPUP(player, ABILITY_ZERO_TO_HERO); + MESSAGE("Palafin underwent a heroic transformation!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TRANSFORM, opponent); + MESSAGE("Foe Wobbuffet transformed into Palafin!"); + NOT ABILITY_POPUP(opponent, ABILITY_ZERO_TO_HERO); + } THEN { EXPECT_EQ(player->species, SPECIES_PALAFIN_HERO); } +} + +SINGLE_BATTLE_TEST("Imposter doesn't apply the heroic transformation message when copying Palafin") +{ + GIVEN { + PLAYER(SPECIES_PALAFIN_ZERO) { Ability(ABILITY_ZERO_TO_HERO); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_DITTO) { Ability(ABILITY_IMPOSTER); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { SWITCH(player, 1); SWITCH(opponent, 1); } + TURN { SWITCH(player, 0); SWITCH(opponent, 0); } + } SCENE { + ABILITY_POPUP(player, ABILITY_ZERO_TO_HERO); + MESSAGE("Palafin underwent a heroic transformation!"); + ABILITY_POPUP(opponent, ABILITY_IMPOSTER); + MESSAGE("Foe Ditto transformed into Palafin using Imposter!"); + NONE_OF { + ABILITY_POPUP(opponent, ABILITY_ZERO_TO_HERO); + MESSAGE("Foe Ditto underwent a heroic transformation!"); + } + } THEN { EXPECT_EQ(player->species, SPECIES_PALAFIN_HERO); } +} + +// Write Trace test and move this one to that file (including every other ability that can't be copied) +SINGLE_BATTLE_TEST("Zero to Hero cannot be copied by Trace") +{ + GIVEN { + PLAYER(SPECIES_PALAFIN_ZERO) { Ability(ABILITY_ZERO_TO_HERO); } + OPPONENT(SPECIES_RALTS) { Ability(ABILITY_TRACE); } + } WHEN { + TURN {} + } SCENE { + NONE_OF { + ABILITY_POPUP(opponent, ABILITY_TRACE); + MESSAGE("Foe Ralts Traced Palafin's Zero to Hero!"); + } + } +} diff --git a/test/battle/ai.c b/test/battle/ai.c index fd91634db931..d8f382961ac2 100644 --- a/test/battle/ai.c +++ b/test/battle/ai.c @@ -53,7 +53,6 @@ AI_SINGLE_BATTLE_TEST("AI prefers Water Gun over Bubble if it knows that foe has PARAMETRIZE { abilityAI = ABILITY_MOXIE; } PARAMETRIZE { abilityAI = ABILITY_MOLD_BREAKER; } // Mold Breaker ignores Contrary. - GIVEN { AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT); PLAYER(SPECIES_SHUCKLE) { Ability(ABILITY_CONTRARY); } @@ -93,6 +92,9 @@ AI_SINGLE_BATTLE_TEST("AI prefers moves with better accuracy, but only if they b PARAMETRIZE { move1 = MOVE_MEGA_KICK; move2 = MOVE_SLAM; move3 = MOVE_TACKLE; move4 = MOVE_GUST; hp = 5; expectedMove = MOVE_GUST; expectedMove2 = MOVE_TACKLE; turns = 1; } // All moves hit with No guard ability PARAMETRIZE { move1 = MOVE_MEGA_KICK; move2 = MOVE_GUST; hp = 5; expectedMove = MOVE_MEGA_KICK; expectedMove2 = MOVE_GUST; turns = 1; } + // Tests to compare move that always hits and a beneficial effect. A move with higher acc should be chosen in this case. + PARAMETRIZE { move1 = MOVE_SHOCK_WAVE; move2 = MOVE_ICY_WIND; hp = 5; expectedMove = MOVE_SHOCK_WAVE; turns = 1; } + PARAMETRIZE { move1 = MOVE_SHOCK_WAVE; move2 = MOVE_ICY_WIND; move3 = MOVE_THUNDERBOLT; hp = 5; expectedMove = MOVE_SHOCK_WAVE; expectedMove2 = MOVE_THUNDERBOLT; turns = 1; } GIVEN { AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT); @@ -105,6 +107,9 @@ AI_SINGLE_BATTLE_TEST("AI prefers moves with better accuracy, but only if they b ASSUME(gBattleMoves[MOVE_MEGA_KICK].accuracy < gBattleMoves[MOVE_STRENGTH].accuracy); ASSUME(gBattleMoves[MOVE_TACKLE].accuracy == 100); ASSUME(gBattleMoves[MOVE_GUST].accuracy == 100); + ASSUME(gBattleMoves[MOVE_SHOCK_WAVE].accuracy == 0); + ASSUME(gBattleMoves[MOVE_THUNDERBOLT].accuracy == 100); + ASSUME(gBattleMoves[MOVE_ICY_WIND].accuracy != 100); OPPONENT(SPECIES_EXPLOUD) { Moves(move1, move2, move3, move4); Ability(abilityAtk); SpAttack(50); } // Low Sp.Atk, so Swift deals less damage than Strength. } WHEN { switch (turns) @@ -191,11 +196,70 @@ AI_SINGLE_BATTLE_TEST("AI prefers Earthquake over Drill Run if both require the } } +AI_SINGLE_BATTLE_TEST("AI prefers a weaker move over a one with a downside effect if both require the same number of hits to ko") +{ + u16 move1 = MOVE_NONE, move2 = MOVE_NONE, move3 = MOVE_NONE, move4 = MOVE_NONE; + u16 hp, expectedMove, turns; + + // Both moves require the same number of turns but Flamethrower will be chosen over Overheat (powerful effect) + PARAMETRIZE { move1 = MOVE_OVERHEAT; move2 = MOVE_FLAMETHROWER; hp = 300; expectedMove = MOVE_FLAMETHROWER; turns = 2; } + // Overheat kill in least amount of turns + PARAMETRIZE { move1 = MOVE_OVERHEAT; move2 = MOVE_FLAMETHROWER; hp = 250; expectedMove = MOVE_OVERHEAT; turns = 1; } + + GIVEN { + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT); + PLAYER(SPECIES_WOBBUFFET) { HP(hp); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_TYPHLOSION) { Moves(move1, move2, move3, move4); } + } WHEN { + switch (turns) + { + case 1: + TURN { EXPECT_MOVE(opponent, expectedMove); SEND_OUT(player, 1); } + break; + case 2: + TURN { EXPECT_MOVE(opponent, expectedMove); } + TURN { EXPECT_MOVE(opponent, expectedMove); SEND_OUT(player, 1); } + break; + } + } SCENE { + MESSAGE("Wobbuffet fainted!"); + } +} + +AI_SINGLE_BATTLE_TEST("AI prefers moves with the best possible score, chosen randomly if tied") +{ + GIVEN { + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT); + PLAYER(SPECIES_WOBBUFFET) { HP(5); }; + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET) { Moves(MOVE_THUNDERBOLT, MOVE_SLUDGE_BOMB, MOVE_TAKE_DOWN); } + } WHEN { + TURN { EXPECT_MOVES(opponent, MOVE_THUNDERBOLT, MOVE_SLUDGE_BOMB); SEND_OUT(player, 1); } + } + SCENE { + MESSAGE("Wobbuffet fainted!"); + } +} + +AI_SINGLE_BATTLE_TEST("AI can choose a status move that boosts the attack by two") +{ + GIVEN { + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT); + PLAYER(SPECIES_WOBBUFFET) { HP(278); }; + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_KANGASKHAN) { Moves(MOVE_STRENGTH, MOVE_HORN_ATTACK, MOVE_SWORDS_DANCE); } + } WHEN { + TURN { EXPECT_MOVES(opponent, MOVE_STRENGTH, MOVE_SWORDS_DANCE); } + TURN { EXPECT_MOVE(opponent, MOVE_STRENGTH); SEND_OUT(player, 1); } + } +} + AI_SINGLE_BATTLE_TEST("AI chooses the safest option to faint the target, taking into account accuracy and move effect") { u16 move1 = MOVE_NONE, move2 = MOVE_NONE, move3 = MOVE_NONE, move4 = MOVE_NONE; - u16 expectedMove, abilityAtk = ABILITY_NONE; - u16 expectedMove2 = MOVE_NONE; + u16 expectedMove, expectedMove2 = MOVE_NONE; + u16 abilityAtk = ABILITY_NONE, holdItemAtk = ITEM_NONE; // Psychic is not very effective, but always hits. Solarbeam requires a charging turn, Double Edge has recoil and Focus Blast can miss; PARAMETRIZE { abilityAtk = ABILITY_STURDY; move1 = MOVE_FOCUS_BLAST; move2 = MOVE_SOLAR_BEAM; move3 = MOVE_PSYCHIC; move4 = MOVE_DOUBLE_EDGE; expectedMove = MOVE_PSYCHIC; } @@ -206,12 +270,24 @@ AI_SINGLE_BATTLE_TEST("AI chooses the safest option to faint the target, taking // This time it's Solarbeam + Psychic, because the weather is sunny. PARAMETRIZE { abilityAtk = ABILITY_DROUGHT; move1 = MOVE_FOCUS_BLAST; move2 = MOVE_SOLAR_BEAM; move3 = MOVE_PSYCHIC; move4 = MOVE_DOUBLE_EDGE; expectedMove = MOVE_PSYCHIC; expectedMove2 = MOVE_SOLAR_BEAM; } + // Psychic and Solar Beam are chosen because user is holding Power Herb + PARAMETRIZE { abilityAtk = ABILITY_STURDY; holdItemAtk = ITEM_POWER_HERB; move1 = MOVE_FOCUS_BLAST; move2 = MOVE_SOLAR_BEAM; move3 = MOVE_PSYCHIC; move4 = MOVE_DOUBLE_EDGE; + expectedMove = MOVE_PSYCHIC; expectedMove2 = MOVE_SOLAR_BEAM; } + // Psychic and Skull Bash are chosen because user is holding Power Herb + PARAMETRIZE { abilityAtk = ABILITY_STURDY; holdItemAtk = ITEM_POWER_HERB; move1 = MOVE_FOCUS_BLAST; move2 = MOVE_SKULL_BASH; move3 = MOVE_PSYCHIC; move4 = MOVE_DOUBLE_EDGE; + expectedMove = MOVE_PSYCHIC; expectedMove2 = MOVE_SKULL_BASH; } + // Skull Bash is chosen because it's the most accurate and is holding Power Herb + PARAMETRIZE { abilityAtk = ABILITY_STURDY; holdItemAtk = ITEM_POWER_HERB; move1 = MOVE_FOCUS_BLAST; move2 = MOVE_SKULL_BASH; move3 = MOVE_SLAM; move4 = MOVE_DOUBLE_EDGE; + expectedMove = MOVE_SKULL_BASH; } + // Crabhammer is chosen even if Skull Bash is more accurate, the user has no Power Herb + PARAMETRIZE { abilityAtk = ABILITY_STURDY; move1 = MOVE_FOCUS_BLAST; move2 = MOVE_SKULL_BASH; move3 = MOVE_SLAM; move4 = MOVE_CRABHAMMER; + expectedMove = MOVE_CRABHAMMER; } GIVEN { AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT); PLAYER(SPECIES_WOBBUFFET) { HP(5); } PLAYER(SPECIES_WOBBUFFET); - OPPONENT(SPECIES_GEODUDE) { Moves(move1, move2, move3, move4); Ability(abilityAtk); } + OPPONENT(SPECIES_GEODUDE) { Moves(move1, move2, move3, move4); Ability(abilityAtk); Item(holdItemAtk); } } WHEN { TURN { if (expectedMove2 == MOVE_NONE) { EXPECT_MOVE(opponent, expectedMove); SEND_OUT(player, 1); } else {EXPECT_MOVES(opponent, expectedMove, expectedMove2); SCORE_EQ(opponent, expectedMove, expectedMove2); SEND_OUT(player, 1);} @@ -222,6 +298,36 @@ AI_SINGLE_BATTLE_TEST("AI chooses the safest option to faint the target, taking } } +AI_SINGLE_BATTLE_TEST("AI won't use Solar Beam if there is no Sun up or the user is not holding Power Herb") +{ + u16 abilityAtk = ABILITY_NONE; + u16 holdItemAtk = ITEM_NONE; + + PARAMETRIZE { abilityAtk = ABILITY_DROUGHT; } + PARAMETRIZE { holdItemAtk = ITEM_POWER_HERB; } + PARAMETRIZE { } + + GIVEN { + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT); + PLAYER(SPECIES_WOBBUFFET) { HP(211); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_TYPHLOSION) { Moves(MOVE_SOLAR_BEAM, MOVE_GRASS_PLEDGE); Ability(abilityAtk); Item(holdItemAtk); } + } WHEN { + if (abilityAtk == ABILITY_DROUGHT) { + TURN { EXPECT_MOVES(opponent, MOVE_SOLAR_BEAM, MOVE_GRASS_PLEDGE); } + TURN { EXPECT_MOVES(opponent, MOVE_SOLAR_BEAM, MOVE_GRASS_PLEDGE); SEND_OUT(player, 1); } + } else if (holdItemAtk == ITEM_POWER_HERB) { + TURN { EXPECT_MOVES(opponent, MOVE_SOLAR_BEAM, MOVE_GRASS_PLEDGE); MOVE(player, MOVE_KNOCK_OFF); } + TURN { EXPECT_MOVE(opponent, MOVE_GRASS_PLEDGE); SEND_OUT(player, 1); } + } else { + TURN { EXPECT_MOVE(opponent, MOVE_GRASS_PLEDGE); } + TURN { EXPECT_MOVE(opponent, MOVE_GRASS_PLEDGE); SEND_OUT(player, 1); } + } + } SCENE { + MESSAGE("Wobbuffet fainted!"); + } +} + AI_SINGLE_BATTLE_TEST("AI won't use ground type attacks against flying type Pokemon unless Gravity is in effect") { GIVEN { @@ -266,23 +372,6 @@ AI_SINGLE_BATTLE_TEST("AI will not switch in a Pokemon which is slower and gets } } -AI_SINGLE_BATTLE_TEST("AI switches if Perish Song is about to kill") -{ - GIVEN { - AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT); - PLAYER(SPECIES_WOBBUFFET); - OPPONENT(SPECIES_WOBBUFFET) {Moves(MOVE_TACKLE); } - OPPONENT(SPECIES_CROBAT) {Moves(MOVE_TACKLE); } - } WHEN { - TURN { MOVE(player, MOVE_PERISH_SONG); } - TURN { ; } - TURN { ; } - TURN { EXPECT_SWITCH(opponent, 1); } - } SCENE { - MESSAGE("{PKMN} TRAINER LEAF sent out Crobat!"); - } -} - AI_DOUBLE_BATTLE_TEST("AI won't use a Weather changing move if partner already chose such move") { u32 j, k; @@ -404,3 +493,157 @@ AI_DOUBLE_BATTLE_TEST("AI without any flags chooses moves at random - doubles") } } } + +AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_MON_CHOICES: AI will not switch in a Pokemon which is slower and gets 1HKOed after fainting") +{ + bool32 alakazamFirst; + u32 speedAlakazm; + u32 aiSmartSwitchFlags = 0; + + PARAMETRIZE{ speedAlakazm = 200; alakazamFirst = TRUE; } // AI will always send out Alakazan as it sees a KO with Focus Blast, even if Alakazam dies before it can get it off + PARAMETRIZE{ speedAlakazm = 200; alakazamFirst = FALSE; aiSmartSwitchFlags = AI_FLAG_SMART_SWITCHING | AI_FLAG_SMART_MON_CHOICES; } // AI_FLAG_SMART_MON_CHOICES lets AI see that Alakazam would be KO'd before it can KO, and won't switch it in + PARAMETRIZE{ speedAlakazm = 400; alakazamFirst = TRUE; aiSmartSwitchFlags = AI_FLAG_SMART_SWITCHING | AI_FLAG_SMART_MON_CHOICES; } // AI_FLAG_SMART_MON_CHOICES recognizes that Alakazam is faster and can KO, and will switch it in + + GIVEN { + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | aiSmartSwitchFlags); + PLAYER(SPECIES_WEAVILE) { Speed(300); Ability(ABILITY_SHADOW_TAG); } // Weavile has Shadow Tag, so AI can't switch on the first turn, but has to do it after fainting. + OPPONENT(SPECIES_KADABRA) { Speed(200); Moves(MOVE_PSYCHIC, MOVE_DISABLE, MOVE_TAUNT, MOVE_CALM_MIND); } + OPPONENT(SPECIES_ALAKAZAM) { Speed(speedAlakazm); Moves(MOVE_FOCUS_BLAST, MOVE_PSYCHIC); } // Alakazam has a move which OHKOes Weavile, but it doesn't matter if he's getting KO-ed first. + OPPONENT(SPECIES_BLASTOISE) { Speed(200); Moves(MOVE_BUBBLE_BEAM, MOVE_WATER_GUN, MOVE_LEER, MOVE_STRENGTH); } // Can't OHKO, but survives a hit from Weavile's Night Slash. + } WHEN { + TURN { MOVE(player, MOVE_NIGHT_SLASH) ; EXPECT_SEND_OUT(opponent, alakazamFirst ? 1 : 2); } // AI doesn't send out Alakazam if it gets outsped + } SCENE { + MESSAGE("Foe Kadabra fainted!"); + if (alakazamFirst) { + MESSAGE("{PKMN} TRAINER LEAF sent out Alakazam!"); + } else { + MESSAGE("{PKMN} TRAINER LEAF sent out Blastoise!"); + } + } +} + +AI_SINGLE_BATTLE_TEST("AI switches if Perish Song is about to kill") +{ + GIVEN { + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET) {Moves(MOVE_TACKLE); } + OPPONENT(SPECIES_CROBAT) {Moves(MOVE_TACKLE); } + } WHEN { + TURN { MOVE(player, MOVE_PERISH_SONG); } + TURN { ; } + TURN { ; } + TURN { EXPECT_SWITCH(opponent, 1); } + } SCENE { + MESSAGE("{PKMN} TRAINER LEAF sent out Crobat!"); + } +} + +AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_MON_CHOICES: AI considers hazard damage when choosing which Pokemon to switch in") +{ + u32 aiIsSmart = 0; + u32 aiSmartSwitchFlags = 0; + + PARAMETRIZE{ aiIsSmart = 0; aiSmartSwitchFlags = 0; } // AI doesn't care about hazard damage resulting in Pokemon being KO'd + PARAMETRIZE{ aiIsSmart = 1; aiSmartSwitchFlags = AI_FLAG_SMART_MON_CHOICES; } // AI_FLAG_SMART_MON_CHOICES avoids being KO'd as a result of hazards damage + + GIVEN { + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | aiSmartSwitchFlags); + PLAYER(SPECIES_MEGANIUM) { Speed(100); SpDefense(328); SpAttack(265); Moves(MOVE_STEALTH_ROCK, MOVE_SURF); } // Meganium does ~56% minimum ~66% maximum, enough to KO Charizard after rocks and never KO Typhlosion after rocks + OPPONENT(SPECIES_PONYTA) { Level(5); Speed(5); Moves(MOVE_TACKLE); } + OPPONENT(SPECIES_CHARIZARD) { Speed(200); Moves(MOVE_FLAMETHROWER); SpAttack(317); SpDefense(207); MaxHP(297); } // Outspeends and 2HKOs Meganium + OPPONENT(SPECIES_TYPHLOSION) { Speed(200); Moves(MOVE_FLAMETHROWER); SpAttack(317); SpDefense(207); MaxHP(297); } // Outspeends and 2HKOs Meganium + } WHEN { + TURN { MOVE(player, MOVE_STEALTH_ROCK) ;} + TURN { MOVE(player, MOVE_SURF) ; EXPECT_SEND_OUT(opponent, aiIsSmart ? 2 : 1); } // AI sends out Typhlosion to get the KO with the flag rather than Charizard + } +} + +AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_MON_CHOICES: Mid-battle switches prioritize type matchup + SE move, then type matchup") +{ + u32 aiSmartSwitchFlags = 0; + u32 move1; + u32 move2; + u32 expectedIndex; + + PARAMETRIZE{ expectedIndex = 3; move1 = MOVE_TACKLE; move2 = MOVE_TACKLE; aiSmartSwitchFlags = 0; } // When not smart, AI will only switch in a defensive mon if it has a SE move, otherwise will just default to damage + PARAMETRIZE{ expectedIndex = 1; move1 = MOVE_GIGA_DRAIN; move2 = MOVE_TACKLE; aiSmartSwitchFlags = 0; } + PARAMETRIZE{ expectedIndex = 2; move1 = MOVE_TACKLE; move2 = MOVE_TACKLE; aiSmartSwitchFlags = AI_FLAG_SMART_MON_CHOICES; } // When smart, AI will prioritize SE move, but still switch in good type matchup without SE move + PARAMETRIZE{ expectedIndex = 1; move1 = MOVE_GIGA_DRAIN; move2 = MOVE_TACKLE; aiSmartSwitchFlags = AI_FLAG_SMART_MON_CHOICES; } + + GIVEN { + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | aiSmartSwitchFlags); + PLAYER(SPECIES_MARSHTOMP) { Level(30); Moves(MOVE_MUD_BOMB, MOVE_WATER_GUN, MOVE_GROWL, MOVE_MUD_SHOT); Speed(5); } + OPPONENT(SPECIES_PONYTA) { Level(1); Moves(MOVE_NONE); Speed(6); } // Forces switchout + OPPONENT(SPECIES_TANGELA) { Level(30); Moves(move1); Speed(4); } + OPPONENT(SPECIES_LOMBRE) { Level(30); Moves(move2); Speed(4); } + OPPONENT(SPECIES_HARIYAMA) { Level(30); Moves(MOVE_VITAL_THROW); Speed(4); } + } WHEN { + TURN { MOVE(player, MOVE_GROWL) ; EXPECT_SWITCH(opponent, expectedIndex); } + } +} + +AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_MON_CHOICES: Mid-battle switches prioritize defensive options") +{ + GIVEN { + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SMART_MON_CHOICES); + PLAYER(SPECIES_SWELLOW) { Level(30); Moves(MOVE_WING_ATTACK, MOVE_BOOMBURST); Speed(5); } + OPPONENT(SPECIES_PONYTA) { Level(1); Moves(MOVE_NONE); Speed(4); } // Forces switchout + OPPONENT(SPECIES_ARON) { Level(30); Moves(MOVE_HEADBUTT); Speed(4); } // Mid battle, AI sends out Aron + OPPONENT(SPECIES_ELECTRODE) { Level(30); Moves(MOVE_CHARGE_BEAM); Speed(6); } + } WHEN { + TURN { MOVE(player, MOVE_WING_ATTACK) ; EXPECT_SWITCH(opponent, 1); } + } +} + +AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_MON_CHOICES: Post-KO switches prioritize offensive options") +{ + GIVEN { + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SMART_MON_CHOICES); + PLAYER(SPECIES_SWELLOW) { Level(30); Moves(MOVE_WING_ATTACK, MOVE_BOOMBURST); Speed(5); } + OPPONENT(SPECIES_PONYTA) { Level(1); Moves(MOVE_TACKLE); Speed(4); } + OPPONENT(SPECIES_ARON) { Level(30); Moves(MOVE_HEADBUTT); Speed(4); } // Mid battle, AI sends out Aron + OPPONENT(SPECIES_ELECTRODE) { Level(30); Moves(MOVE_CHARGE_BEAM); Speed(6); } + } WHEN { + TURN { MOVE(player, MOVE_WING_ATTACK) ; EXPECT_SEND_OUT(opponent, 2); } + } +} + +AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_SWITCHING: AI switches out after sufficient stat drops") +{ + GIVEN { + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SMART_SWITCHING); + PLAYER(SPECIES_HITMONTOP) { Level(30); Moves(MOVE_CHARM, MOVE_TACKLE); Ability(ABILITY_INTIMIDATE); Speed(5); } + OPPONENT(SPECIES_GRIMER) { Level(30); Moves(MOVE_TACKLE); Speed(4); } + OPPONENT(SPECIES_PONYTA) { Level(30); Moves(MOVE_HEADBUTT); Speed(4); } + } WHEN { + TURN { MOVE(player, MOVE_CHARM) ;} + TURN { MOVE(player, MOVE_TACKLE) ; EXPECT_SWITCH(opponent, 1); } + } +} + +AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_SWITCHING: AI will not switch out if Pokemon would faint to hazards unless party member can clear them") +{ + u32 move1; + + PARAMETRIZE{move1 = MOVE_TACKLE; } + PARAMETRIZE{move1 = MOVE_RAPID_SPIN; } + + GIVEN { + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SMART_SWITCHING); + PLAYER(SPECIES_HITMONTOP) { Level(30); Moves(MOVE_CHARM, MOVE_TACKLE, MOVE_STEALTH_ROCK, MOVE_EARTHQUAKE); Ability(ABILITY_INTIMIDATE); Speed(5); } + OPPONENT(SPECIES_GRIMER) { Level(30); Moves(MOVE_TACKLE); Item(ITEM_FOCUS_SASH); Speed(4); } + OPPONENT(SPECIES_PONYTA) { Level(30); Moves(MOVE_HEADBUTT, move1); Speed(4); } + } WHEN { + TURN { MOVE(player, MOVE_STEALTH_ROCK) ;} + TURN { MOVE(player, MOVE_EARTHQUAKE) ;} + TURN { MOVE(player, MOVE_CHARM) ;} + TURN { // If the AI has a mon that can remove hazards, don't prevent them switching out + MOVE(player, MOVE_CHARM); + if (move1 == MOVE_RAPID_SPIN) + EXPECT_SWITCH(opponent, 1); + else if (move1 == MOVE_TACKLE) + EXPECT_MOVE(opponent, MOVE_TACKLE); + } + } +} diff --git a/test/battle/ai_check_viability.c b/test/battle/ai_check_viability.c new file mode 100644 index 000000000000..4666eca7cb05 --- /dev/null +++ b/test/battle/ai_check_viability.c @@ -0,0 +1,191 @@ +#include "global.h" +#include "test/battle.h" +#include "battle_ai_util.h" + +ASSUMPTIONS +{ + ASSUME(gBattleMoves[MOVE_BODY_SLAM].effect == EFFECT_PARALYZE_HIT); +} + +AI_SINGLE_BATTLE_TEST("AI sees increased base power of Facade") +{ + u16 status1, expectedMove; + + PARAMETRIZE { status1 = STATUS1_NONE; expectedMove = MOVE_BODY_SLAM; } + PARAMETRIZE { status1 = STATUS1_BURN; expectedMove = MOVE_FACADE; } + + GIVEN { + ASSUME(gBattleMoves[MOVE_FACADE].effect == EFFECT_FACADE); + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT); + PLAYER(SPECIES_WOBBUFFET) { HP(60); } + OPPONENT(SPECIES_WOBBUFFET) { Moves(MOVE_BODY_SLAM, MOVE_FACADE); Status1(status1); } + } WHEN { + TURN { EXPECT_MOVE(opponent, expectedMove); } + } SCENE { + if (expectedMove == MOVE_FACADE) + MESSAGE("Wobbuffet fainted!"); + } +} + +AI_SINGLE_BATTLE_TEST("AI sees increased base power of Smelling Salt") +{ + u16 status1, expectedMove; + + PARAMETRIZE { status1 = STATUS1_NONE; expectedMove = MOVE_BODY_SLAM; } + PARAMETRIZE { status1 = STATUS1_PARALYSIS; expectedMove = MOVE_SMELLING_SALTS; } + + GIVEN { + ASSUME(B_UPDATED_MOVE_DATA >= GEN_6); + ASSUME(gBattleMoves[MOVE_SMELLING_SALTS].effect == EFFECT_SMELLING_SALTS); + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT); + PLAYER(SPECIES_WOBBUFFET) { HP(60); Status1(status1); } + OPPONENT(SPECIES_WOBBUFFET) { Moves(MOVE_BODY_SLAM, MOVE_SMELLING_SALTS); } + } WHEN { + TURN { EXPECT_MOVE(opponent, expectedMove); } + } SCENE { + if (expectedMove == MOVE_SMELLING_SALTS) + MESSAGE("Wobbuffet fainted!"); + } +} + +AI_SINGLE_BATTLE_TEST("AI sees increased base power of Wake Up Slap") +{ + u16 status1, expectedMove; + + PARAMETRIZE { status1 = STATUS1_NONE; expectedMove = MOVE_BODY_SLAM; } + PARAMETRIZE { status1 = STATUS1_SLEEP; expectedMove = MOVE_WAKE_UP_SLAP; } + + GIVEN { + ASSUME(B_UPDATED_MOVE_DATA >= GEN_6); + ASSUME(gBattleMoves[MOVE_WAKE_UP_SLAP].effect == EFFECT_WAKE_UP_SLAP); + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT); + PLAYER(SPECIES_MEGANIUM) { HP(35); Status1(status1); } + OPPONENT(SPECIES_WOBBUFFET) { Moves(MOVE_BODY_SLAM, MOVE_WAKE_UP_SLAP); } + } WHEN { + TURN { EXPECT_MOVE(opponent, expectedMove); } + } SCENE { + if (expectedMove == MOVE_WAKE_UP_SLAP) + MESSAGE("Meganium fainted!"); + } +} + +AI_SINGLE_BATTLE_TEST("AI sees increased base power of Grav Apple") +{ + u32 movePlayer; + u16 expectedMove; + + PARAMETRIZE { movePlayer = MOVE_CELEBRATE; expectedMove = MOVE_TROP_KICK; } + PARAMETRIZE { movePlayer = MOVE_GRAVITY; expectedMove = MOVE_GRAV_APPLE; } + + GIVEN { + ASSUME(gBattleMoves[MOVE_GRAV_APPLE].effect == EFFECT_GRAV_APPLE); + ASSUME(gBattleMoves[MOVE_TROP_KICK].effect == EFFECT_ATTACK_DOWN_HIT); + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT); + PLAYER(SPECIES_WOBBUFFET) { HP(81); Speed(20); } + OPPONENT(SPECIES_WOBBUFFET) { Speed(10); Moves(MOVE_TROP_KICK, MOVE_GRAV_APPLE); } + } WHEN { + TURN { MOVE(player, movePlayer); EXPECT_MOVE(opponent, MOVE_TROP_KICK); } + TURN { MOVE(player, MOVE_CELEBRATE); EXPECT_MOVE(opponent, expectedMove); } + } SCENE { + if (expectedMove == MOVE_GRAV_APPLE) + MESSAGE("Wobbuffet fainted!"); + } +} + +AI_SINGLE_BATTLE_TEST("AI sees increased base power of Flail") +{ + u16 hp, expectedMove; + + PARAMETRIZE { hp = 490; expectedMove = MOVE_BODY_SLAM; } + PARAMETRIZE { hp = 5; expectedMove = MOVE_FLAIL; } + + GIVEN { + ASSUME(gBattleMoves[MOVE_FLAIL].effect == EFFECT_FLAIL); + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT); + PLAYER(SPECIES_WOBBUFFET) { Speed(10); } + OPPONENT(SPECIES_WOBBUFFET) { HP(hp); MaxHP(490); Speed(20); Moves(MOVE_BODY_SLAM, MOVE_FLAIL); } + } WHEN { + TURN { EXPECT_MOVE(opponent, expectedMove); } + } +} + +AI_SINGLE_BATTLE_TEST("AI will only use Dream Eater if target is asleep") +{ + u16 status1, expectedMove; + + PARAMETRIZE { status1 = STATUS1_NONE; expectedMove = MOVE_BODY_SLAM; } + PARAMETRIZE { status1 = STATUS1_SLEEP; expectedMove = MOVE_DREAM_EATER; } + + GIVEN { + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT); + PLAYER(SPECIES_MEGANIUM) { HP(38); Status1(status1); } + OPPONENT(SPECIES_WOBBUFFET) { Moves(MOVE_BODY_SLAM, MOVE_DREAM_EATER); } + } WHEN { + TURN { EXPECT_MOVE(opponent, expectedMove); } + } SCENE { + if (expectedMove == MOVE_DREAM_EATER) + MESSAGE("Meganium fainted!"); + } +} + +AI_SINGLE_BATTLE_TEST("AI sees increased base power of Spit Up") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_STOCKPILE].effect == EFFECT_STOCKPILE); + ASSUME(gBattleMoves[MOVE_SPIT_UP].effect == EFFECT_SPIT_UP); + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT); + PLAYER(SPECIES_WOBBUFFET) { HP(43); } + OPPONENT(SPECIES_WOBBUFFET) { Moves(MOVE_STOCKPILE, MOVE_SPIT_UP, MOVE_TACKLE); } + } WHEN { + TURN { EXPECT_MOVE(opponent, MOVE_STOCKPILE); } + TURN { EXPECT_MOVE(opponent, MOVE_SPIT_UP); } + } SCENE { + MESSAGE("Wobbuffet fainted!"); + } +} + +AI_SINGLE_BATTLE_TEST("AI can choose Counter or Mirror Coat if the predicted move split is correct and user doesn't faint") +{ + u16 playerMove = MOVE_NONE, opponentMove = MOVE_NONE; + + PARAMETRIZE { playerMove = MOVE_STRENGTH; opponentMove = MOVE_COUNTER; } + PARAMETRIZE { playerMove = MOVE_POWER_GEM; opponentMove = MOVE_MIRROR_COAT; } + + GIVEN { + ASSUME(gBattleMoves[MOVE_COUNTER].effect == EFFECT_COUNTER); + ASSUME(gBattleMoves[MOVE_MIRROR_COAT].effect == EFFECT_MIRROR_COAT); + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT); + PLAYER(SPECIES_WOBBUFFET) { Speed(1); } + OPPONENT(SPECIES_WOBBUFFET) { HP(102); Speed(100); Moves(opponentMove, MOVE_STRENGTH); } + } WHEN { + TURN { MOVE(player, playerMove); EXPECT_MOVE(opponent, MOVE_STRENGTH); } + TURN { MOVE(player, playerMove); EXPECT_MOVE(opponent, opponentMove); } + TURN { MOVE(player, playerMove); EXPECT_MOVE(opponent, MOVE_STRENGTH); } + } SCENE { + MESSAGE("Foe Wobbuffet fainted!"); + } +} + +AI_SINGLE_BATTLE_TEST("AI chooses moves with secondary effect that have a 100% chance to trigger") +{ + u16 ability; + + PARAMETRIZE { ability = ABILITY_NONE; } + PARAMETRIZE { ability = ABILITY_SERENE_GRACE; } + + GIVEN { + AI_LOG; + ASSUME(gBattleMoves[MOVE_SHADOW_BALL].effect == EFFECT_SPECIAL_DEFENSE_DOWN_HIT); + ASSUME(gBattleMoves[MOVE_SHADOW_BALL].secondaryEffectChance == 20); + ASSUME(gBattleMoves[MOVE_LUSTER_PURGE].effect == EFFECT_SPECIAL_DEFENSE_DOWN_HIT); + ASSUME(gBattleMoves[MOVE_LUSTER_PURGE].secondaryEffectChance == 50); + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT); + PLAYER(SPECIES_REGICE); + OPPONENT(SPECIES_REGIROCK) { Ability(ability); Moves(MOVE_SHADOW_BALL, MOVE_LUSTER_PURGE); } + } WHEN { + if (ability == ABILITY_NONE) + TURN { EXPECT_MOVE(opponent, MOVE_SHADOW_BALL); } + else + TURN { EXPECT_MOVES(opponent, MOVE_LUSTER_PURGE); } + } +} diff --git a/test/battle/ai_trytofaint.c b/test/battle/ai_trytofaint.c new file mode 100644 index 000000000000..bbfbee19d114 --- /dev/null +++ b/test/battle/ai_trytofaint.c @@ -0,0 +1,48 @@ +#include "global.h" +#include "test/battle.h" +#include "battle_ai_util.h" + +AI_SINGLE_BATTLE_TEST("AI prefers priority moves if it's slower and can kill target") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_QUICK_ATTACK].priority == 1); + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT); + PLAYER(SPECIES_WOBBUFFET) { HP(1); Speed(100); } + PLAYER(SPECIES_WOBBUFFET) { Speed(100); } + OPPONENT(SPECIES_WOBBUFFET) { Speed(1); Moves(MOVE_QUICK_ATTACK, MOVE_STRENGTH); } + } WHEN { + TURN { EXPECT_MOVE(opponent, MOVE_QUICK_ATTACK); SEND_OUT(player, 1); } + } SCENE { + MESSAGE("Wobbuffet fainted!"); + } +} + +AI_SINGLE_BATTLE_TEST("AI will choose a random move if it's faster and can kill target") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_QUICK_ATTACK].priority == 1); + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT); + PLAYER(SPECIES_WOBBUFFET) { HP(1); Speed(1); } + PLAYER(SPECIES_WOBBUFFET) { Speed(1); } + OPPONENT(SPECIES_WOBBUFFET) { Speed(100); Moves(MOVE_QUICK_ATTACK, MOVE_STRENGTH); } + } WHEN { + TURN { EXPECT_MOVES(opponent, MOVE_QUICK_ATTACK, MOVE_STRENGTH); SEND_OUT(player, 1); } + } SCENE { + MESSAGE("Wobbuffet fainted!"); + } +} + +AI_SINGLE_BATTLE_TEST("AI will choose a priority move if it is slower then the target and will be killed") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_QUICK_ATTACK].priority == 1); + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT); + PLAYER(SPECIES_WOBBUFFET) { Speed(100); } + OPPONENT(SPECIES_WOBBUFFET) { HP(60); Speed(1); Moves(MOVE_QUICK_ATTACK, MOVE_STRENGTH); } + } WHEN { + TURN { MOVE(player, MOVE_STRENGTH); EXPECT_MOVE(opponent, MOVE_STRENGTH); } + TURN { MOVE(player, MOVE_STRENGTH); EXPECT_MOVE(opponent, MOVE_QUICK_ATTACK); } + } SCENE { + MESSAGE("Foe Wobbuffet fainted!"); + } +} diff --git a/test/battle/damage_formula.c b/test/battle/damage_formula.c index 98aa197ca1de..3aeeeb9f831d 100644 --- a/test/battle/damage_formula.c +++ b/test/battle/damage_formula.c @@ -31,11 +31,11 @@ SINGLE_BATTLE_TEST("Damage calculation matches Gen5+") MOVE(player, MOVE_ICE_FANG, WITH_RNG(RNG_DAMAGE_MODIFIER, i)); } } - SCENE{ + SCENE { MESSAGE("Glaceon used Ice Fang!"); HP_BAR(opponent, captureDamage: &dmg); } - THEN{ + THEN { EXPECT_EQ(expectedDamage, dmg); } } @@ -68,10 +68,47 @@ SINGLE_BATTLE_TEST("Damage calculation matches Gen5+ (Muscle Band, crit)") MOVE(player, MOVE_ICE_FANG, WITH_RNG(RNG_DAMAGE_MODIFIER, i), criticalHit: TRUE); } } - SCENE{ + SCENE { MESSAGE("Glaceon used Ice Fang!"); HP_BAR(opponent, captureDamage: &dmg); } + THEN { + EXPECT_EQ(expectedDamage, dmg); + } +} + +SINGLE_BATTLE_TEST("Damage calculation matches Gen5+ (Marshadow vs Mawile)") +{ + s16 dmg; + s16 expectedDamage; + PARAMETRIZE { expectedDamage = 145; } + PARAMETRIZE { expectedDamage = 144; } + PARAMETRIZE { expectedDamage = 142; } + PARAMETRIZE { expectedDamage = 141; } + PARAMETRIZE { expectedDamage = 139; } + PARAMETRIZE { expectedDamage = 138; } + PARAMETRIZE { expectedDamage = 136; } + PARAMETRIZE { expectedDamage = 135; } + PARAMETRIZE { expectedDamage = 133; } + PARAMETRIZE { expectedDamage = 132; } + PARAMETRIZE { expectedDamage = 130; } + PARAMETRIZE { expectedDamage = 129; } + PARAMETRIZE { expectedDamage = 127; } + PARAMETRIZE { expectedDamage = 126; } + PARAMETRIZE { expectedDamage = 124; } + PARAMETRIZE { expectedDamage = 123; } + GIVEN { + PLAYER(SPECIES_MARSHADOW) { Level(100); Attack(286); } + OPPONENT(SPECIES_MAWILE) { Level(100); Defense(226); HP(241); } + } WHEN { + TURN { + MOVE(player, MOVE_SPECTRAL_THIEF, WITH_RNG(RNG_DAMAGE_MODIFIER, i), criticalHit: FALSE); + } + } + SCENE{ + MESSAGE("Marshadow used SpectrlThief!"); + HP_BAR(opponent, captureDamage: &dmg); + } THEN{ EXPECT_EQ(expectedDamage, dmg); } diff --git a/test/battle/form_change/battle_switch.c b/test/battle/form_change/battle_switch.c index dd6c68466e9d..ba564a02a170 100644 --- a/test/battle/form_change/battle_switch.c +++ b/test/battle/form_change/battle_switch.c @@ -4,7 +4,6 @@ SINGLE_BATTLE_TEST("Aegislash reverts to Shield Form upon switching out") { GIVEN { - ASSUME(P_GEN_6_POKEMON == TRUE); PLAYER(SPECIES_AEGISLASH_SHIELD); PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET); diff --git a/test/battle/form_change/begin_battle.c b/test/battle/form_change/begin_battle.c index b61ff069d442..f240b5ca0762 100644 --- a/test/battle/form_change/begin_battle.c +++ b/test/battle/form_change/begin_battle.c @@ -4,7 +4,6 @@ SINGLE_BATTLE_TEST("Xerneas changes into Active Form upon battle start") { GIVEN { - ASSUME(P_GEN_6_POKEMON == TRUE); PLAYER(SPECIES_XERNEAS_NEUTRAL); OPPONENT(SPECIES_WOBBUFFET); } WHEN { @@ -20,7 +19,6 @@ SINGLE_BATTLE_TEST("Zacian changes into its Crowned Form when holding the Rusted PARAMETRIZE { item = ITEM_NONE; } PARAMETRIZE { item = ITEM_RUSTED_SWORD; } GIVEN { - ASSUME(P_GEN_8_POKEMON == TRUE); PLAYER(SPECIES_ZACIAN_HERO_OF_MANY_BATTLES) { Item(item); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { @@ -36,7 +34,6 @@ SINGLE_BATTLE_TEST("Zacian changes into its Crowned Form when holding the Rusted SINGLE_BATTLE_TEST("Zacian's Iron Head becomes Behemoth Blade upon form change") { GIVEN { - ASSUME(P_GEN_8_POKEMON == TRUE); PLAYER(SPECIES_ZACIAN_HERO_OF_MANY_BATTLES) { Item(ITEM_RUSTED_SWORD); Moves(MOVE_IRON_HEAD, MOVE_CELEBRATE); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { @@ -53,7 +50,6 @@ SINGLE_BATTLE_TEST("Zamazenta changes into its Crowned Form when holding the Rus PARAMETRIZE { item = ITEM_NONE; } PARAMETRIZE { item = ITEM_RUSTED_SHIELD; } GIVEN { - ASSUME(P_GEN_8_POKEMON == TRUE); PLAYER(SPECIES_ZAMAZENTA_HERO_OF_MANY_BATTLES) { Item(item); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { @@ -69,7 +65,6 @@ SINGLE_BATTLE_TEST("Zamazenta changes into its Crowned Form when holding the Rus SINGLE_BATTLE_TEST("Zamazenta's Iron Head becomes Behemoth Bash upon form change") { GIVEN { - ASSUME(P_GEN_8_POKEMON == TRUE); PLAYER(SPECIES_ZAMAZENTA_HERO_OF_MANY_BATTLES) { Item(ITEM_RUSTED_SHIELD); Moves(MOVE_IRON_HEAD, MOVE_CELEBRATE); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { diff --git a/test/battle/form_change/faint.c b/test/battle/form_change/faint.c index 82f361917ec9..849d8e5883c5 100644 --- a/test/battle/form_change/faint.c +++ b/test/battle/form_change/faint.c @@ -4,7 +4,6 @@ SINGLE_BATTLE_TEST("Aegislash reverts to Shield Form upon fainting") { GIVEN { - ASSUME(P_GEN_6_POKEMON == TRUE); PLAYER(SPECIES_AEGISLASH_SHIELD) { HP(1); } PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET); diff --git a/test/battle/form_change/ultra_burst.c b/test/battle/form_change/ultra_burst.c index 0b4b07d891f6..e0566c941460 100644 --- a/test/battle/form_change/ultra_burst.c +++ b/test/battle/form_change/ultra_burst.c @@ -4,7 +4,6 @@ SINGLE_BATTLE_TEST("Dusk Mane Necrozma can Ultra Burst holding Ultranecrozium Z") { GIVEN { - ASSUME(P_GEN_7_POKEMON == TRUE); PLAYER(SPECIES_NECROZMA_DUSK_MANE) { Item(ITEM_ULTRANECROZIUM_Z); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { @@ -21,7 +20,6 @@ SINGLE_BATTLE_TEST("Dusk Mane Necrozma can Ultra Burst holding Ultranecrozium Z" DOUBLE_BATTLE_TEST("Ultra Burst's order is determined by Speed - opponent faster") { GIVEN { - ASSUME(P_GEN_7_POKEMON == TRUE); PLAYER(SPECIES_NECROZMA_DUSK_MANE) { Item(ITEM_ULTRANECROZIUM_Z); Speed(1); } PLAYER(SPECIES_WOBBUFFET) { Speed(3); } OPPONENT(SPECIES_NECROZMA_DAWN_WINGS) { Item(ITEM_ULTRANECROZIUM_Z); Speed(3); } @@ -41,7 +39,6 @@ DOUBLE_BATTLE_TEST("Ultra Burst's order is determined by Speed - opponent faster DOUBLE_BATTLE_TEST("Ultra Burst's order is determined by Speed - player faster") { GIVEN { - ASSUME(P_GEN_7_POKEMON == TRUE); PLAYER(SPECIES_NECROZMA_DUSK_MANE) { Item(ITEM_ULTRANECROZIUM_Z); Speed(5); } PLAYER(SPECIES_WOBBUFFET) { Speed(3); } OPPONENT(SPECIES_NECROZMA_DAWN_WINGS) { Item(ITEM_ULTRANECROZIUM_Z); Speed(2); } @@ -61,7 +58,6 @@ DOUBLE_BATTLE_TEST("Ultra Burst's order is determined by Speed - player faster") SINGLE_BATTLE_TEST("Ultra Burst affects turn order") { GIVEN { - ASSUME(P_GEN_7_POKEMON == TRUE); ASSUME(B_MEGA_EVO_TURN_ORDER >= GEN_7); PLAYER(SPECIES_NECROZMA_DUSK_MANE) { Item(ITEM_ULTRANECROZIUM_Z); Speed(105); } OPPONENT(SPECIES_WOBBUFFET) { Speed(106); } @@ -78,7 +74,6 @@ SINGLE_BATTLE_TEST("Ultra Burst affects turn order") DOUBLE_BATTLE_TEST("Ultra Burst happens after switching, but before Focus Punch-like Moves") { GIVEN { - ASSUME(P_GEN_7_POKEMON == TRUE); ASSUME(gBattleMoves[MOVE_FOCUS_PUNCH].effect == EFFECT_FOCUS_PUNCH); PLAYER(SPECIES_WOBBUFFET); PLAYER(SPECIES_NECROZMA_DUSK_MANE) { Item(ITEM_ULTRANECROZIUM_Z); } @@ -107,7 +102,6 @@ DOUBLE_BATTLE_TEST("Ultra Burst happens after switching, but before Focus Punch- SINGLE_BATTLE_TEST("Ultra Burst and Mega Evolution can happen on the same turn") { GIVEN { - ASSUME(P_GEN_7_POKEMON == TRUE); PLAYER(SPECIES_NECROZMA_DUSK_MANE) { Item(ITEM_ULTRANECROZIUM_Z); Speed(3); } OPPONENT(SPECIES_GARDEVOIR) { Item(ITEM_GARDEVOIRITE); Speed(2); } } WHEN { diff --git a/test/battle/hold_effect/air_balloon.c b/test/battle/hold_effect/air_balloon.c index 1ed8a89e4a8b..46fec5c02937 100644 --- a/test/battle/hold_effect/air_balloon.c +++ b/test/battle/hold_effect/air_balloon.c @@ -91,7 +91,6 @@ SINGLE_BATTLE_TEST("Air Balloon prevents the user from being healed by Grassy Te SINGLE_BATTLE_TEST("Air Balloon pops before it can be stolen with Magician") { GIVEN { - ASSUME(P_GEN_6_POKEMON == TRUE); PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_AIR_BALLOON); }; OPPONENT(SPECIES_DELPHOX) { Ability(ABILITY_MAGICIAN); }; } WHEN { diff --git a/test/battle/hold_effect/attack_up.c b/test/battle/hold_effect/attack_up.c index 0602d651d76e..c07c7c7c176d 100644 --- a/test/battle/hold_effect/attack_up.c +++ b/test/battle/hold_effect/attack_up.c @@ -55,7 +55,6 @@ SINGLE_BATTLE_TEST("Liechi Berry raises Attack by one stage when HP drops to 1/2 SINGLE_BATTLE_TEST("Liechi Berry raises Attack by one stage when HP drops to 1/4 or below if holder has Ripen") { GIVEN { - ASSUME(P_GEN_8_POKEMON == TRUE); PLAYER(SPECIES_APPLIN) { MaxHP(160); HP(80); Ability(ABILITY_RIPEN); Item(ITEM_LIECHI_BERRY); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { diff --git a/test/battle/hold_effect/berserk_gene.c b/test/battle/hold_effect/berserk_gene.c index 8419eff3c353..b8b396b695af 100644 --- a/test/battle/hold_effect/berserk_gene.c +++ b/test/battle/hold_effect/berserk_gene.c @@ -151,7 +151,6 @@ DOUBLE_BATTLE_TEST("Berserk Gene does not confuse a Pokemon with Own Tempo but s SINGLE_BATTLE_TEST("Berserk Gene does not confuse on Misty Terrain but still raises attack sharply") { GIVEN { - ASSUME(P_GEN_7_POKEMON == TRUE); PLAYER(SPECIES_TAPU_FINI) { Ability(ABILITY_MISTY_SURGE); Item(ITEM_BERSERK_GENE); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { diff --git a/test/battle/hold_effect/clear_amulet.c b/test/battle/hold_effect/clear_amulet.c index 552dbd91e8d2..0073f706095e 100644 --- a/test/battle/hold_effect/clear_amulet.c +++ b/test/battle/hold_effect/clear_amulet.c @@ -21,8 +21,8 @@ SINGLE_BATTLE_TEST("Clear Amulet prevents Intimidate") } SCENE { HP_BAR(player, captureDamage: &turnOneHit); ABILITY_POPUP(player, ABILITY_INTIMIDATE); - NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); } - MESSAGE("Foe Wobbuffet's Attack was not lowered!"); + NOT ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + MESSAGE("Foe Wobbuffet's Clear Amulet prevents its stats from being lowered!"); HP_BAR(player, captureDamage: &turnTwoHit); } THEN { EXPECT_EQ(turnOneHit, turnTwoHit); @@ -55,31 +55,8 @@ SINGLE_BATTLE_TEST("Clear Amulet prevents stat reducing effects") } WHEN { TURN { MOVE(player, move); } } SCENE { - NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); } - switch (move) - { - case MOVE_GROWL: - MESSAGE("Foe Wobbuffet's Attack was not lowered!"); - break; - case MOVE_LEER: - MESSAGE("Foe Wobbuffet's Defense was not lowered!"); - break; - case MOVE_CONFIDE: - MESSAGE("Foe Wobbuffet's Sp. Atk was not lowered!"); - break; - case MOVE_FAKE_TEARS: - MESSAGE("Foe Wobbuffet's Sp. Def was not lowered!"); - break; - case MOVE_SCARY_FACE: - MESSAGE("Foe Wobbuffet's Speed was not lowered!"); - break; - case MOVE_SWEET_SCENT: - MESSAGE("Foe Wobbuffet's evasiveness was not lowered!"); - break; - case MOVE_SAND_ATTACK: - MESSAGE("Foe Wobbuffet's accuracy was not lowered!"); - break; - } + NOT ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); + MESSAGE("Foe Wobbuffet's Clear Amulet prevents its stats from being lowered!"); } } @@ -106,6 +83,9 @@ SINGLE_BATTLE_TEST("Clear Amulet prevents secondary effects that reduce stats") } WHEN { TURN { MOVE(player, move); } } SCENE { - NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); } + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); + MESSAGE("Foe Wobbuffet's Clear Amulet prevents its stats from being lowered!"); + } } } diff --git a/test/battle/hold_effect/defense_up.c b/test/battle/hold_effect/defense_up.c index 774cd3b98162..485472512a1b 100644 --- a/test/battle/hold_effect/defense_up.c +++ b/test/battle/hold_effect/defense_up.c @@ -55,7 +55,6 @@ SINGLE_BATTLE_TEST("Ganlon Berry raises Defense by one stage when HP drops to 1/ SINGLE_BATTLE_TEST("Ganlon Berry raises Defense by one stage when HP drops to 1/4 or below if holder has Ripen") { GIVEN { - ASSUME(P_GEN_8_POKEMON == TRUE); PLAYER(SPECIES_APPLIN) { MaxHP(160); HP(80); Ability(ABILITY_RIPEN); Item(ITEM_GANLON_BERRY); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { diff --git a/test/battle/hold_effect/eject_button.c b/test/battle/hold_effect/eject_button.c index 4409f5d5b678..45dfc539b841 100644 --- a/test/battle/hold_effect/eject_button.c +++ b/test/battle/hold_effect/eject_button.c @@ -55,7 +55,7 @@ SINGLE_BATTLE_TEST("Eject Button will not activate under Substitute") OPPONENT(SPECIES_RAICHU) { Item(ITEM_EJECT_BUTTON); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { - TURN { + TURN { MOVE(opponent, MOVE_SUBSTITUTE); MOVE(player, MOVE_TACKLE); } diff --git a/test/battle/hold_effect/kee_berry.c b/test/battle/hold_effect/kee_berry.c index 6e5319416f3c..c172a2c94096 100644 --- a/test/battle/hold_effect/kee_berry.c +++ b/test/battle/hold_effect/kee_berry.c @@ -41,7 +41,6 @@ SINGLE_BATTLE_TEST("Kee Berry raises the holder's Defense by one stage when hit SINGLE_BATTLE_TEST("Kee Berry raises the holder's Defense by two stages with Ripen when hit by a physical move") { GIVEN { - ASSUME(P_GEN_8_POKEMON == TRUE); PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_APPLIN) { Item(ITEM_KEE_BERRY); Ability(ABILITY_RIPEN); } } WHEN { diff --git a/test/battle/hold_effect/maranga_berry.c b/test/battle/hold_effect/maranga_berry.c index 0a3edffbf528..d29dc60d1e69 100644 --- a/test/battle/hold_effect/maranga_berry.c +++ b/test/battle/hold_effect/maranga_berry.c @@ -40,7 +40,6 @@ SINGLE_BATTLE_TEST("Maranga Berry raises the holder's Sp. Def by one stage when SINGLE_BATTLE_TEST("Maranga Berry raises the holder's Sp. Def by two stages with Ripen when hit by a special move") { GIVEN { - ASSUME(P_GEN_8_POKEMON == TRUE); ASSUME(gBattleMoves[MOVE_SWIFT].split == SPLIT_SPECIAL); PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_APPLIN) { Item(ITEM_MARANGA_BERRY); Ability(ABILITY_RIPEN); } diff --git a/test/battle/hold_effect/red_card.c b/test/battle/hold_effect/red_card.c index 50354a5c1d66..0f80dd176c1a 100644 --- a/test/battle/hold_effect/red_card.c +++ b/test/battle/hold_effect/red_card.c @@ -202,7 +202,6 @@ SINGLE_BATTLE_TEST("Red Card does not activate if stolen by Magician") PARAMETRIZE { item = ITEM_POTION; activate = TRUE; } GIVEN { - ASSUME(P_GEN_6_POKEMON == TRUE); PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_RED_CARD); } OPPONENT(SPECIES_FENNEKIN) { Ability(ABILITY_MAGICIAN); Item(item); } OPPONENT(SPECIES_WYNAUT); @@ -384,7 +383,6 @@ SINGLE_BATTLE_TEST("Red Card does not activate if attacker's Sheer Force applied SINGLE_BATTLE_TEST("Red Card activates before Emergency Exit") { GIVEN { - ASSUME(P_GEN_7_POKEMON == TRUE); PLAYER(SPECIES_GOLISOPOD) { MaxHP(100); HP(51); Item(ITEM_RED_CARD); } PLAYER(SPECIES_WIMPOD); OPPONENT(SPECIES_WOBBUFFET); diff --git a/test/battle/hold_effect/special_attack_up.c b/test/battle/hold_effect/special_attack_up.c index 9815ab12128c..6ff5b4f07dce 100644 --- a/test/battle/hold_effect/special_attack_up.c +++ b/test/battle/hold_effect/special_attack_up.c @@ -55,7 +55,6 @@ SINGLE_BATTLE_TEST("Petaya Berry raises Sp. Atk by one stage when HP drops to 1/ SINGLE_BATTLE_TEST("Petaya Berry raises Sp. Atk by one stage when HP drops to 1/4 or below if holder has Ripen") { GIVEN { - ASSUME(P_GEN_8_POKEMON == TRUE); PLAYER(SPECIES_APPLIN) { MaxHP(160); HP(80); Ability(ABILITY_RIPEN); Item(ITEM_PETAYA_BERRY); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { diff --git a/test/battle/hold_effect/special_defense_up.c b/test/battle/hold_effect/special_defense_up.c index 2ba3c02a57e5..db08c1404e1a 100644 --- a/test/battle/hold_effect/special_defense_up.c +++ b/test/battle/hold_effect/special_defense_up.c @@ -55,7 +55,6 @@ SINGLE_BATTLE_TEST("Apicot Berry raises Sp. Def by one stage when HP drops to 1/ SINGLE_BATTLE_TEST("Apicot Berry raises Sp. Def by one stage when HP drops to 1/4 or below if holder has Ripen") { GIVEN { - ASSUME(P_GEN_8_POKEMON == TRUE); PLAYER(SPECIES_APPLIN) { MaxHP(160); HP(80); Ability(ABILITY_RIPEN); Item(ITEM_APICOT_BERRY); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { diff --git a/test/battle/hold_effect/speed_up.c b/test/battle/hold_effect/speed_up.c index 558d4262e874..1e5d4d7e4004 100644 --- a/test/battle/hold_effect/speed_up.c +++ b/test/battle/hold_effect/speed_up.c @@ -55,7 +55,6 @@ SINGLE_BATTLE_TEST("Salac Berry raises Speed by one stage when HP drops to 1/2 o SINGLE_BATTLE_TEST("Salac Berry raises Speed by one stage when HP drops to 1/4 or below if holder has Ripen") { GIVEN { - ASSUME(P_GEN_8_POKEMON == TRUE); PLAYER(SPECIES_APPLIN) { MaxHP(160); HP(80); Ability(ABILITY_RIPEN); Item(ITEM_SALAC_BERRY); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { diff --git a/test/battle/hold_effect/white_herb.c b/test/battle/hold_effect/white_herb.c new file mode 100644 index 000000000000..734091552b16 --- /dev/null +++ b/test/battle/hold_effect/white_herb.c @@ -0,0 +1,246 @@ +#include "global.h" +#include "test/battle.h" + +ASSUMPTIONS +{ + ASSUME(gItems[ITEM_WHITE_HERB].holdEffect == HOLD_EFFECT_RESTORE_STATS); +} + +SINGLE_BATTLE_TEST("White Herb restores stats when they're lowered") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_LEER].effect == EFFECT_DEFENSE_DOWN); + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_WHITE_HERB); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_LEER); } + } SCENE { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet's White Herb restored its status!"); + } THEN { + EXPECT(player->item == ITEM_NONE); + EXPECT(player->statStages[STAT_DEF] = DEFAULT_STAT_STAGE); + } +} + +SINGLE_BATTLE_TEST("White Herb restores stats after Attack was lowered by Intimidate in singles") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_WHITE_HERB); } + OPPONENT(SPECIES_ARBOK) { Ability(ABILITY_INTIMIDATE); } + } WHEN { + TURN { ; } + } SCENE { + ABILITY_POPUP(opponent, ABILITY_INTIMIDATE); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet's White Herb restored its status!"); + } THEN { + EXPECT(player->item == ITEM_NONE); + EXPECT(player->statStages[STAT_DEF] = DEFAULT_STAT_STAGE); + } +} + +DOUBLE_BATTLE_TEST("White Herb restores stats after Attack was lowered by Intimidate in doubles") +{ + GIVEN { + OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_WHITE_HERB); } + OPPONENT(SPECIES_WYNAUT) { Item(ITEM_WHITE_HERB); } + PLAYER(SPECIES_ARBOK) { Ability(ABILITY_INTIMIDATE); } + PLAYER(SPECIES_WOBBUFFET); + } WHEN { + TURN { ; } + } SCENE { + ABILITY_POPUP(playerLeft, ABILITY_INTIMIDATE); + + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentRight); + + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponentLeft); + MESSAGE("Foe Wobbuffet's White Herb restored its status!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponentRight); + MESSAGE("Foe Wynaut's White Herb restored its status!"); + } THEN { + EXPECT(opponentLeft->item == ITEM_NONE); + EXPECT(opponentLeft->statStages[STAT_DEF] = DEFAULT_STAT_STAGE); + EXPECT(opponentRight->item == ITEM_NONE); + EXPECT(opponentRight->statStages[STAT_DEF] = DEFAULT_STAT_STAGE); + } +} + +SINGLE_BATTLE_TEST("White Herb restores stats after Attack was lowered by Intimidate while switching in") +{ + KNOWN_FAILING; + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_WHITE_HERB); } + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_ARBOK) { Ability(ABILITY_INTIMIDATE); } + } WHEN { + TURN { SWITCH(opponent, 1); MOVE(player, MOVE_CLOSE_COMBAT); } + } SCENE { + ABILITY_POPUP(opponent, ABILITY_INTIMIDATE); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet's White Herb restored its status!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_CLOSE_COMBAT, player); + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet's White Herb restored its status!"); + } + } THEN { + EXPECT(player->item == ITEM_NONE); + EXPECT(player->statStages[STAT_DEF] = DEFAULT_STAT_STAGE - 1); + EXPECT(player->statStages[STAT_SPDEF] = DEFAULT_STAT_STAGE - 1); + } +} + + +SINGLE_BATTLE_TEST("White Herb restores stats after all hits of a multi hit move happened") +{ + u16 species; + u16 ability; + + PARAMETRIZE { species = SPECIES_SLIGGOO_HISUIAN; ability = ABILITY_GOOEY; } + PARAMETRIZE { species = SPECIES_DUGTRIO_ALOLAN; ability = ABILITY_TANGLING_HAIR; } + + KNOWN_FAILING; + GIVEN { + ASSUME(gBattleMoves[MOVE_DUAL_WINGBEAT].strikeCount == 2); + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_WHITE_HERB); } + OPPONENT(species) { Ability(ability); } + } WHEN { + TURN { MOVE(player, MOVE_DUAL_WINGBEAT); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_DUAL_WINGBEAT, player); + ABILITY_POPUP(opponent, ability); + MESSAGE("Wobbuffet's Speed fell!"); + ABILITY_POPUP(opponent, ability); + MESSAGE("Wobbuffet's Speed fell!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet's White Herb restored its status!"); + } THEN { + EXPECT(player->item == ITEM_NONE); + EXPECT(player->statStages[STAT_SPEED] = DEFAULT_STAT_STAGE); + } +} + +SINGLE_BATTLE_TEST("White Herb wont have time to activate if it is knocked off or stolen by Thief") +{ + u16 move; + + PARAMETRIZE { move = MOVE_THIEF; } + PARAMETRIZE { move = MOVE_KNOCK_OFF; } + + KNOWN_FAILING; // Knock off fails, Thief is fine + GIVEN { + ASSUME(gBattleMoves[MOVE_THIEF].effect == EFFECT_THIEF); + ASSUME(gBattleMoves[MOVE_KNOCK_OFF].effect == EFFECT_KNOCK_OFF); + PLAYER(SPECIES_SLUGMA) { Ability(ABILITY_WEAK_ARMOR); Item(ITEM_WHITE_HERB); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, move); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, move, opponent); + if (move == MOVE_THIEF) + MESSAGE("Foe Wobbuffet stole Slugma's White Herb!"); + else + MESSAGE("Foe Wobbuffet knocked off Slugma's White Herb!"); + ABILITY_POPUP(player, ABILITY_WEAK_ARMOR); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + MESSAGE("Slugma's Weak Armor lowered its Defense!"); + MESSAGE("Slugma's Weak Armor raised its Speed!"); + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet's White Herb restored its status!"); + } + } THEN { + EXPECT(player->statStages[STAT_DEF] = DEFAULT_STAT_STAGE - 1); + EXPECT(player->statStages[STAT_SPEED] = DEFAULT_STAT_STAGE + 1); + } +} + +SINGLE_BATTLE_TEST("White Herb wont have time to activate if Magician steals it") +{ + KNOWN_FAILING; // White Herb is activated + GIVEN { + ASSUME(P_GEN_6_POKEMON == TRUE); + PLAYER(SPECIES_SLUGMA) { Ability(ABILITY_WEAK_ARMOR); Item(ITEM_WHITE_HERB); } + OPPONENT(SPECIES_FENNEKIN) { Ability(ABILITY_MAGICIAN); } + } WHEN { + TURN { MOVE(opponent, MOVE_TACKLE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + ABILITY_POPUP(opponent, ABILITY_MAGICIAN); + ABILITY_POPUP(player, ABILITY_WEAK_ARMOR); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + MESSAGE("Slugma's Weak Armor lowered its Defense!"); + MESSAGE("Slugma's Weak Armor raised its Speed!"); + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet's White Herb restored its status!"); + } + } THEN { + EXPECT(player->statStages[STAT_DEF] = DEFAULT_STAT_STAGE - 1); + EXPECT(player->statStages[STAT_SPEED] = DEFAULT_STAT_STAGE + 1); + } +} + +SINGLE_BATTLE_TEST("White Herb wont have time to activate if Pickpocket steals it") +{ + KNOWN_FAILING; // White Herb is activated + GIVEN { + ASSUME(gBattleMoves[MOVE_LEAF_STORM].effect == EFFECT_OVERHEAT); + PLAYER(SPECIES_SLUGMA) { Ability(ABILITY_WEAK_ARMOR); Item(ITEM_WHITE_HERB); } + OPPONENT(SPECIES_SNEASEL) { Ability(ABILITY_PICKPOCKET); } + } WHEN { + TURN { MOVE(player, MOVE_LEAF_STORM); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_LEAF_STORM, player); + ABILITY_POPUP(player, ABILITY_PICKPOCKET); + ABILITY_POPUP(player, ABILITY_WEAK_ARMOR); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + MESSAGE("Slugma's Weak Armor lowered its Defense!"); + MESSAGE("Slugma's Weak Armor raised its Speed!"); + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet's White Herb restored its status!"); + } + } THEN { + EXPECT(player->statStages[STAT_DEF] = DEFAULT_STAT_STAGE - 1); + EXPECT(player->statStages[STAT_SPEED] = DEFAULT_STAT_STAGE + 1); + } +} + +SINGLE_BATTLE_TEST("White Herb restores stats after Defiant or Competitive were triggered") +{ + u16 species; + u16 ability; + + PARAMETRIZE { species = SPECIES_IGGLYBUFF; ability = ABILITY_COMPETITIVE; } + PARAMETRIZE { species = SPECIES_MANKEY; ability = ABILITY_DEFIANT; } + + KNOWN_FAILING; + GIVEN { + PLAYER(species) { Ability(ability); Item(ITEM_WHITE_HERB); } + OPPONENT(SPECIES_ARBOK) { Ability(ABILITY_INTIMIDATE); } + } WHEN { + TURN { ; } + } SCENE { + ABILITY_POPUP(opponent, ABILITY_INTIMIDATE); + ABILITY_POPUP(player, ability); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet's White Herb restored its status!"); + } THEN { + EXPECT(player->item == ITEM_NONE); + if (species == SPECIES_IGGLYBUFF) + { + EXPECT(player->statStages[STAT_ATK] = DEFAULT_STAT_STAGE); + EXPECT(player->statStages[STAT_SPATK] = DEFAULT_STAT_STAGE + 2); + } + else + EXPECT(player->statStages[STAT_ATK] = DEFAULT_STAT_STAGE + 3); + } +} diff --git a/test/battle/move_effect/attack_up_user_ally.c b/test/battle/move_effect/attack_up_user_ally.c index 6691b49ed8f7..4b7fdae084de 100644 --- a/test/battle/move_effect/attack_up_user_ally.c +++ b/test/battle/move_effect/attack_up_user_ally.c @@ -63,3 +63,36 @@ DOUBLE_BATTLE_TEST("Howl raises user's and partner's Attack", s16 damageLeft, s1 EXPECT_MUL_EQ(results[0].damageRight, Q_4_12(1.5), results[1].damageRight); } } + +DOUBLE_BATTLE_TEST("Howl does not work on partner if it has Soundproof") +{ + s16 damage[2]; + + GIVEN { + ASSUME(gBattleMoves[MOVE_TACKLE].split == SPLIT_PHYSICAL); + PLAYER(SPECIES_WOBBUFFET) { Speed(15); } + PLAYER(SPECIES_VOLTORB) { Speed(10); Ability(ABILITY_SOUNDPROOF); } + OPPONENT(SPECIES_WOBBUFFET) { Speed(5); } + OPPONENT(SPECIES_WYNAUT) { Speed(1); } + } WHEN { + TURN { MOVE(playerRight, MOVE_TACKLE, target: opponentLeft); } + TURN { MOVE(playerLeft, MOVE_HOWL); MOVE(playerRight, MOVE_TACKLE, target: opponentLeft); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, playerRight); + HP_BAR(opponentLeft, captureDamage: &damage[0]); + + ANIMATION(ANIM_TYPE_MOVE, MOVE_HOWL, playerLeft); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft); + MESSAGE("Wobbuffet's Attack rose!"); + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerRight); + MESSAGE("Wynaut's Attack rose!"); + } + ABILITY_POPUP(playerRight, ABILITY_SOUNDPROOF); + MESSAGE("Voltorb's Soundproof blocks Howl!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, playerRight); + HP_BAR(opponentLeft, captureDamage: &damage[1]); + } THEN { + EXPECT_EQ(damage[0], damage[1]); + } +} diff --git a/test/battle/move_effect/brick_break.c b/test/battle/move_effect/brick_break.c new file mode 100644 index 000000000000..8bc05c0eea7a --- /dev/null +++ b/test/battle/move_effect/brick_break.c @@ -0,0 +1,160 @@ +#include "global.h" +#include "test/battle.h" + +ASSUMPTIONS +{ + ASSUME(gBattleMoves[MOVE_BRICK_BREAK].effect == EFFECT_BRICK_BREAK); + ASSUME(gBattleMoves[MOVE_SNOWSCAPE].effect == EFFECT_SNOWSCAPE); + ASSUME(gBattleMoves[MOVE_LIGHT_SCREEN].effect == EFFECT_LIGHT_SCREEN); + ASSUME(gBattleMoves[MOVE_REFLECT].effect == EFFECT_REFLECT); + ASSUME(gBattleMoves[MOVE_AURORA_VEIL].effect == EFFECT_AURORA_VEIL); +} + +SINGLE_BATTLE_TEST("Brick Break removes Light Screen, Reflect and Aurora Veil from the target's side of the field") +{ + u16 move; + + PARAMETRIZE { move = MOVE_LIGHT_SCREEN; } + PARAMETRIZE { move = MOVE_REFLECT; } + PARAMETRIZE { move = MOVE_AURORA_VEIL; } + + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_SNOWSCAPE); } + TURN { MOVE(opponent, move); MOVE(player, MOVE_BRICK_BREAK); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SNOWSCAPE, player); + ANIMATION(ANIM_TYPE_MOVE, move, opponent); + ANIMATION(ANIM_TYPE_MOVE, MOVE_BRICK_BREAK, player); + MESSAGE("The wall shattered!"); + HP_BAR(opponent); + } +} + +SINGLE_BATTLE_TEST("Brick Break doesn't remove Light Screen, Reflect and Aurora Veil if the target is immune") +{ + u16 move; + + PARAMETRIZE { move = MOVE_LIGHT_SCREEN; } + PARAMETRIZE { move = MOVE_REFLECT; } + PARAMETRIZE { move = MOVE_AURORA_VEIL; } + + KNOWN_FAILING; + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_GASTLY); + } WHEN { + TURN { MOVE(player, MOVE_SNOWSCAPE); } + TURN { MOVE(opponent, move); MOVE(player, MOVE_BRICK_BREAK); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SNOWSCAPE, player); + ANIMATION(ANIM_TYPE_MOVE, move, opponent); + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_BRICK_BREAK, player); + MESSAGE("The wall shattered!"); + HP_BAR(opponent); + } + } +} + +SINGLE_BATTLE_TEST("Brick Break doesn't remove Light Screen, Reflect and Aurora Veil if the target Protected") +{ + u16 move; + + PARAMETRIZE { move = MOVE_LIGHT_SCREEN; } + PARAMETRIZE { move = MOVE_REFLECT; } + PARAMETRIZE { move = MOVE_AURORA_VEIL; } + + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_SNOWSCAPE); MOVE(opponent, move); } + TURN { MOVE(player, MOVE_BRICK_BREAK); MOVE(opponent, MOVE_PROTECT); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SNOWSCAPE, player); + ANIMATION(ANIM_TYPE_MOVE, move, opponent); + ANIMATION(ANIM_TYPE_MOVE, MOVE_PROTECT, opponent); + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_BRICK_BREAK, player); + MESSAGE("The wall shattered!"); + HP_BAR(opponent); + } + } +} + +SINGLE_BATTLE_TEST("Brick Break doesn't remove Light Screen, Reflect and Aurora Veil if it misses") +{ + u16 move; + + PARAMETRIZE { move = MOVE_LIGHT_SCREEN; } + PARAMETRIZE { move = MOVE_REFLECT; } + PARAMETRIZE { move = MOVE_AURORA_VEIL; } + + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_BRIGHT_POWDER); } + } WHEN { + TURN { MOVE(player, MOVE_SNOWSCAPE); MOVE(opponent, move); } + TURN { MOVE(player, MOVE_BRICK_BREAK, hit: FALSE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SNOWSCAPE, player); + ANIMATION(ANIM_TYPE_MOVE, move, opponent); + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_BRICK_BREAK, player); + MESSAGE("The wall shattered!"); + HP_BAR(opponent); + } + } +} + +DOUBLE_BATTLE_TEST("Brick Break can remove Light Screen, Reflect and Aurora Veil on users side") +{ + u16 move; + + PARAMETRIZE { move = MOVE_LIGHT_SCREEN; } + PARAMETRIZE { move = MOVE_REFLECT; } + PARAMETRIZE { move = MOVE_AURORA_VEIL; } + + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { + MOVE(opponentLeft, MOVE_SNOWSCAPE); + MOVE(playerLeft, move); + MOVE(playerRight, MOVE_BRICK_BREAK, target: playerLeft); + } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SNOWSCAPE, opponentLeft); + ANIMATION(ANIM_TYPE_MOVE, move, playerLeft); + ANIMATION(ANIM_TYPE_MOVE, MOVE_BRICK_BREAK, playerRight); + MESSAGE("The wall shattered!"); + HP_BAR(playerLeft); + } +} + +SINGLE_BATTLE_TEST("Move Raging Bull changes it's type depending on the Tauros Form") +{ + u16 speciesPlayer; + u16 speciesOpponent; + + PARAMETRIZE { speciesPlayer = SPECIES_TAUROS_PALDEAN_COMBAT_BREED; speciesOpponent = SPECIES_CHARIZARD; } + PARAMETRIZE { speciesPlayer = SPECIES_TAUROS_PALDEAN_BLAZE_BREED; speciesOpponent = SPECIES_BLASTOISE; } + PARAMETRIZE { speciesPlayer = SPECIES_TAUROS_PALDEAN_AQUA_BREED; speciesOpponent = SPECIES_VENUSAUR; } + + GIVEN { + PLAYER(speciesPlayer); + OPPONENT(speciesOpponent); + } WHEN { + TURN { MOVE(player, MOVE_RAGING_BULL); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_RAGING_BULL, player); + HP_BAR(opponent); + MESSAGE("It's not very effective…"); + } +} diff --git a/test/battle/move_effect/dire_claw.c b/test/battle/move_effect/dire_claw.c index 9149f4a3cce6..4de141a2ab5e 100644 --- a/test/battle/move_effect/dire_claw.c +++ b/test/battle/move_effect/dire_claw.c @@ -69,9 +69,7 @@ SINGLE_BATTLE_TEST("Dire Claw cannot poison/paralyze/cause to fall asleep pokemo u32 rng; PARAMETRIZE { statusAnim = B_ANIM_STATUS_PRZ; rng = MOVE_EFFECT_PARALYSIS; species = SPECIES_RAICHU; ability = ABILITY_LIGHTNING_ROD; } PARAMETRIZE { statusAnim = B_ANIM_STATUS_PRZ; rng = MOVE_EFFECT_PARALYSIS; species = SPECIES_JOLTEON; ability = ABILITY_VOLT_ABSORB; } - #if P_GEN_4_POKEMON == TRUE PARAMETRIZE { statusAnim = B_ANIM_STATUS_PRZ; rng = MOVE_EFFECT_PARALYSIS; species = SPECIES_ELECTIVIRE; ability = ABILITY_MOTOR_DRIVE; } - #endif // P_GEN_4_POKEMON PARAMETRIZE { statusAnim = B_ANIM_STATUS_PSN; rng = MOVE_EFFECT_POISON; species = SPECIES_ZANGOOSE; ability = ABILITY_IMMUNITY; } PARAMETRIZE { statusAnim = B_ANIM_STATUS_SLP; rng = MOVE_EFFECT_SLEEP; species = SPECIES_VIGOROTH; ability = ABILITY_VITAL_SPIRIT; } PARAMETRIZE { statusAnim = B_ANIM_STATUS_SLP; rng = MOVE_EFFECT_SLEEP; species = SPECIES_HYPNO; ability = ABILITY_INSOMNIA; } diff --git a/test/battle/move_effect/embargo.c b/test/battle/move_effect/embargo.c new file mode 100644 index 000000000000..131ef0381344 --- /dev/null +++ b/test/battle/move_effect/embargo.c @@ -0,0 +1,395 @@ +#include "global.h" +#include "test/battle.h" + +ASSUMPTIONS +{ + ASSUME(gBattleMoves[MOVE_EMBARGO].effect == EFFECT_EMBARGO); +} + +SINGLE_BATTLE_TEST("Embargo blocks the effect of an affected Pokémon's held item") +{ + GIVEN { + ASSUME(gItems[ITEM_FOCUS_SASH].holdEffect == HOLD_EFFECT_FOCUS_SASH); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_FOCUS_SASH); }; + } WHEN { + TURN { MOVE(player, MOVE_EMBARGO); } + TURN { MOVE(player, MOVE_FISSURE); } + } SCENE { + // Turn 1 + MESSAGE("Wobbuffet used Embargo!"); + MESSAGE("Foe Wobbuffet can't use items anymore!"); + // Turn 2 + MESSAGE("Wobbuffet used Fissure!"); + HP_BAR(opponent, hp: 0); + } +} + +SINGLE_BATTLE_TEST("Embargo blocks an affected Pokémon's trainer from using items") +{ + // As of writing, the battle tests system doesn't perform all the operations involved + // in the action of an NPC using an item in battle. + KNOWN_FAILING; + GIVEN { + ASSUME(gItems[ITEM_POTION].battleUsage == EFFECT_ITEM_RESTORE_HP); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET) { HP(1); } + } WHEN { + TURN { MOVE(player, MOVE_EMBARGO); } + TURN { USE_ITEM(opponent, ITEM_POTION, partyIndex: 0); } + } SCENE { + MESSAGE("Wobbuffet used Embargo!"); + MESSAGE("Foe Wobbuffet can't use items anymore!"); + } THEN { + EXPECT_EQ(opponent->hp, 1); + } +} + +WILD_BATTLE_TEST("Embargo doesn't block held item effects that affect experience gain", s32 exp) +{ + u32 item; + + PARAMETRIZE { item = ITEM_LUCKY_EGG; } + PARAMETRIZE { item = ITEM_NONE; } + + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Level(20); Item(item); } + OPPONENT(SPECIES_CATERPIE) { Level(10); HP(1); } + ASSUME(gItems[ITEM_LUCKY_EGG].holdEffect == HOLD_EFFECT_LUCKY_EGG); + } WHEN { + TURN { MOVE(opponent, MOVE_EMBARGO); MOVE(player, MOVE_SCRATCH); } + } SCENE { + MESSAGE("Wild Caterpie used Embargo!"); + MESSAGE("Wobbuffet can't use items anymore!"); + MESSAGE("Wobbuffet used Scratch!"); + MESSAGE("Wild Caterpie fainted!"); + EXPERIENCE_BAR(player, captureGainedExp: &results[i].exp); + } FINALLY { + EXPECT_MUL_EQ(results[1].exp, Q_4_12(1.5), results[0].exp); + } +} + +WILD_BATTLE_TEST("Embargo doesn't block held item effects that affect effort values") +{ + u32 finalHPEVAmount; + + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_POWER_WEIGHT); } + OPPONENT(SPECIES_CATERPIE) { HP(1); } + ASSUME(gItems[ITEM_POWER_WEIGHT].holdEffect == HOLD_EFFECT_POWER_ITEM); + ASSUME(gItems[ITEM_POWER_WEIGHT].holdEffectParam == 8); + ASSUME(gItems[ITEM_POWER_WEIGHT].secondaryId == STAT_HP); + ASSUME(gSpeciesInfo[SPECIES_CATERPIE].evYield_HP == 1); + } WHEN { + TURN { MOVE(opponent, MOVE_EMBARGO); MOVE(player, MOVE_SCRATCH); } + } SCENE { + // Turn 1 + MESSAGE("Wild Caterpie used Embargo!"); + MESSAGE("Wobbuffet can't use items anymore!"); + // Turn 2 + MESSAGE("Wobbuffet used Scratch!"); + MESSAGE("Wild Caterpie fainted!"); + } THEN { + finalHPEVAmount = (GetMonData(&PLAYER_PARTY[0], MON_DATA_HP_EV) + gItems[ITEM_POWER_WEIGHT].holdEffectParam + gSpeciesInfo[SPECIES_CATERPIE].evYield_HP); + EXPECT_EQ(GetMonData(&gPlayerParty[0], MON_DATA_HP_EV), finalHPEVAmount); + } +} + +SINGLE_BATTLE_TEST("Embargo negates a held item's Speed reduction") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Speed(19); } + OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_MACHO_BRACE); Speed(20); } + ASSUME(gItems[ITEM_MACHO_BRACE].holdEffect == HOLD_EFFECT_MACHO_BRACE); + } WHEN { + TURN { MOVE(player, MOVE_EMBARGO); } + TURN { MOVE(player, MOVE_SCRATCH); MOVE(opponent, MOVE_SCRATCH); } + } SCENE { + // Turn 1 + MESSAGE("Wobbuffet used Embargo!"); + MESSAGE("Foe Wobbuffet can't use items anymore!"); + // Turn 2 + MESSAGE("Foe Wobbuffet used Scratch!"); + MESSAGE("Wobbuffet used Scratch!"); + } +} + +WILD_BATTLE_TEST("Embargo doesn't block held item effects that affect friendship") +{ + u32 initialFriendship; + u32 finalFriendship; + + KNOWN_FAILING; // Pokémon are currently not obtaining Friendship for using items in battle. + GIVEN { + ASSUME(gItems[ITEM_X_ACCURACY].battleUsage == EFFECT_ITEM_INCREASE_STAT); + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_SOOTHE_BELL); }; + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { USE_ITEM(player, ITEM_X_ACCURACY); } + TURN { MOVE(player, MOVE_SING); } + } SCENE { + MESSAGE("Wobbuffet used Sing!"); + MESSAGE("Wild Wobbuffet fell asleep!"); + } THEN { + initialFriendship = GetMonData(&PLAYER_PARTY[0], MON_DATA_FRIENDSHIP); + finalFriendship = GetMonData(&gPlayerParty[0], MON_DATA_FRIENDSHIP); + EXPECT_EQ(finalFriendship, initialFriendship + 2); + } +} + +SINGLE_BATTLE_TEST("Embargo doesn't block a held item's form-changing effect, but it does block its other effects", s16 damage) +{ + u32 heldItem; + + PARAMETRIZE { heldItem = ITEM_NONE; } + PARAMETRIZE { heldItem = ITEM_MEADOW_PLATE; } + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_ARCEUS_GRASS) { Item(heldItem); }; + ASSUME(gItems[ITEM_MEADOW_PLATE].holdEffect == HOLD_EFFECT_PLATE); + ASSUME(gItems[ITEM_MEADOW_PLATE].holdEffectParam == 20); + ASSUME(gItems[ITEM_MEADOW_PLATE].secondaryId == TYPE_GRASS); + } WHEN { + TURN { MOVE(player, MOVE_EMBARGO); MOVE(opponent, MOVE_RAZOR_LEAF); } + } SCENE { + HP_BAR(player, captureDamage: &results[i].damage); + } FINALLY { + EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.0), results[1].damage); + } +} + +SINGLE_BATTLE_TEST("Embargo makes Fling and Natural Gift fail") +{ + u32 heldItem, moveId; + + PARAMETRIZE { heldItem = ITEM_LIGHT_BALL; moveId = MOVE_FLING; } + PARAMETRIZE { heldItem = ITEM_CHERI_BERRY; moveId = MOVE_NATURAL_GIFT; } + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Item(heldItem); }; + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_EMBARGO); } + TURN { MOVE(player, moveId); } + } SCENE { + // Turn 1 + MESSAGE("Foe Wobbuffet used Embargo!"); + MESSAGE("Wobbuffet can't use items anymore!"); + // Turn 2 + if (moveId == MOVE_FLING) + MESSAGE("Wobbuffet used Fling!"); + else + MESSAGE("Wobbuffet used Natural Gift!"); + MESSAGE("But it failed!"); + } +} + +SINGLE_BATTLE_TEST("Embargo doesn't stop an item flung at an affected target from activating") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_LIGHT_BALL); }; + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_EMBARGO); } + TURN { MOVE(player, MOVE_FLING); } + } SCENE { + // Turn 1 + MESSAGE("Wobbuffet used Embargo!"); + MESSAGE("Foe Wobbuffet can't use items anymore!"); + // Turn 2 + MESSAGE("Wobbuffet used Fling!"); + MESSAGE("Wobbuffet flung its Light Ball!"); + HP_BAR(opponent); + MESSAGE("Foe Wobbuffet is paralyzed! It may be unable to move!"); + } +} + +SINGLE_BATTLE_TEST("Embargo is passed via Baton Pass") +{ + KNOWN_FAILING; // Embargo is currently being lifted right after a Baton Pass when it shouldn't. + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WYNAUT) { Item(ITEM_LIGHT_BALL); }; + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_EMBARGO); } + TURN { MOVE(player, MOVE_BATON_PASS); SEND_OUT(player, 1); } + TURN { MOVE(player, MOVE_FLING); } + } SCENE { + // Turn 1 + MESSAGE("Foe Wobbuffet used Embargo!"); + MESSAGE("Wobbuffet can't use items anymore!"); + // Turn 2 + MESSAGE("Wobbuffet used Baton Pass!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_BATON_PASS, player); + MESSAGE("Go! Wynaut!"); + // Turn 3 + MESSAGE("Wynaut used Fling!"); + MESSAGE("But it failed!"); + } +} + +SINGLE_BATTLE_TEST("Embargo doesn't block the effects of berries obtained through Bug Bite or Pluck") +{ + u32 hp = 10; + + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { HP(1); }; + OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_ORAN_BERRY); }; + } WHEN { + TURN { MOVE(opponent, MOVE_EMBARGO); } + TURN { MOVE(player, MOVE_PLUCK); } + } SCENE { + // Turn 1 + MESSAGE("Foe Wobbuffet used Embargo!"); + MESSAGE("Wobbuffet can't use items anymore!"); + // Turn 2 + MESSAGE("Wobbuffet used Pluck!"); + HP_BAR(opponent); + MESSAGE("Wobbuffet stole and ate Foe Wobbuffet's Oran Berry!"); + HP_BAR(player, damage: -hp); + } +} + +SINGLE_BATTLE_TEST("Embargo disables the effect of the Plate items on the move Judgment", s16 damage) +{ + u32 heldItem; + + PARAMETRIZE{ heldItem = ITEM_NONE; } + PARAMETRIZE{ heldItem = ITEM_PIXIE_PLATE; } + GIVEN { + PLAYER(SPECIES_ARCEUS) { Item(heldItem); }; + OPPONENT(SPECIES_DRAGONITE); + } WHEN { + TURN { MOVE(opponent, MOVE_EMBARGO); MOVE(player, MOVE_JUDGMENT); } + } SCENE { + MESSAGE("Foe Dragonite used Embargo!"); + MESSAGE("Arceus can't use items anymore!"); + MESSAGE("Arceus used Judgment!"); + HP_BAR(opponent, captureDamage: &results[i].damage); + } FINALLY { + EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.0), results[1].damage); + } +} + +SINGLE_BATTLE_TEST("Embargo disables the effect of the Drive items on the move Techno Blast", s16 damage) +{ + u32 heldItem; + + PARAMETRIZE{ heldItem = ITEM_NONE; } + PARAMETRIZE{ heldItem = ITEM_SHOCK_DRIVE; } + GIVEN { + PLAYER(SPECIES_GENESECT) { Item(heldItem); }; + OPPONENT(SPECIES_GYARADOS); + } WHEN { + TURN { MOVE(opponent, MOVE_EMBARGO); MOVE(player, MOVE_TECHNO_BLAST); } + } SCENE { + MESSAGE("Foe Gyarados used Embargo!"); + MESSAGE("Genesect can't use items anymore!"); + MESSAGE("Genesect used Techno Blast!"); + HP_BAR(opponent, captureDamage: &results[i].damage); + } FINALLY { + EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.0), results[1].damage); + } +} + +SINGLE_BATTLE_TEST("Embargo disables the effect of the Memory items on the move Multi Attack", s16 damage) +{ + u32 heldItem; + + PARAMETRIZE{ heldItem = ITEM_NONE; } + PARAMETRIZE{ heldItem = ITEM_FIRE_MEMORY; } + GIVEN { + PLAYER(SPECIES_SILVALLY) { Item(heldItem); }; + OPPONENT(SPECIES_VENUSAUR); + } WHEN { + TURN { MOVE(opponent, MOVE_EMBARGO); MOVE(player, MOVE_MULTI_ATTACK); } + } SCENE { + MESSAGE("Foe Venusaur used Embargo!"); + MESSAGE("Silvally can't use items anymore!"); + MESSAGE("Silvally used Multi-Attack!"); + HP_BAR(opponent, captureDamage: &results[i].damage); + } FINALLY { + EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.0), results[1].damage); + } +} + +SINGLE_BATTLE_TEST("Embargo can be reflected by Magic Coat") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_LIGHT_BALL); }; + } WHEN { + TURN { MOVE(player, MOVE_MAGIC_COAT); MOVE(opponent, MOVE_EMBARGO); } + TURN { MOVE(opponent, MOVE_FLING); } + } SCENE { + // Turn 1 + MESSAGE("Wobbuffet used Magic Coat!"); + MESSAGE("Wobbuffet shrouded itself in Magic Coat!"); + MESSAGE("Foe Wobbuffet used Embargo!"); + MESSAGE("Foe Wobbuffet's Embargo was bounced back by MAGIC COAT!"); + MESSAGE("Foe Wobbuffet can't use items anymore!"); + // Turn 2 + MESSAGE("Foe Wobbuffet used Fling!"); + MESSAGE("But it failed!"); + } +} + +SINGLE_BATTLE_TEST("Embargo doesn't prevent Mega Evolution") +{ + // Embargo is currently being lifted right after a Baton Pass when it shouldn't. + // As a result, we can't check if Embargo is letting the opponent Mega Evolve normally or not. + KNOWN_FAILING; + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_CHARIZARD) { Item(ITEM_CHARIZARDITE_Y); }; + } WHEN { + TURN { MOVE(player, MOVE_EMBARGO); } + TURN { MOVE(opponent, MOVE_BATON_PASS); SEND_OUT(opponent, 1); } + } SCENE { + // Turn 1 + MESSAGE("Wobbuffet used Embargo!"); + MESSAGE("Foe Wobbuffet can't use items anymore!"); + // Turn 2 + MESSAGE("Foe Wobbuffet used Baton Pass!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_BATON_PASS, opponent); + MESSAGE("2 sent out Charizard!"); + MESSAGE("Foe Charizard's CharizarditeY is reacting to 2's Mega Ring!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_MEGA_EVOLUTION, opponent); + MESSAGE("Foe Charizard has Mega Evolved into Mega Charizard!"); + } +} + +SINGLE_BATTLE_TEST("Embargo doesn't prevent Primal Reversion") +{ + // Embargo is currently being lifted right after a Baton Pass when it shouldn't. + // As a result, we can't check if Embargo is letting the opponent undergo Primal Reversion normally or not. + KNOWN_FAILING; + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_GROUDON) { Item(ITEM_RED_ORB); }; + } WHEN { + TURN { MOVE(player, MOVE_EMBARGO); } + TURN { MOVE(opponent, MOVE_BATON_PASS); SEND_OUT(opponent, 1); } + TURN { MOVE(opponent, MOVE_FLING); } + } SCENE { + // Turn 1 + MESSAGE("Wobbuffet used Embargo!"); + MESSAGE("Foe Wobbuffet can't use items anymore!"); + // Turn 2 + MESSAGE("Foe Wobbuffet used Baton Pass!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_BATON_PASS, opponent); + MESSAGE("2 sent out Groudon!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_PRIMAL_REVERSION, opponent); + MESSAGE("Foe Groudon's Primal Reversion! It reverted to its primal form!"); + ABILITY_POPUP(opponent); + MESSAGE("The extremely harsh sunlight was not lessened at all!!"); + // Turn 3 + MESSAGE("Foe Groudon used Fling!"); + MESSAGE("But it failed!"); + } +} + +TO_DO_BATTLE_TEST("Embargo doesn't prevent the usage of Z-Moves") +TO_DO_BATTLE_TEST("Embargo doesn't block held item effects that affect prize money") diff --git a/test/battle/move_effect/encore.c b/test/battle/move_effect/encore.c index eff6c33b2001..08d3f2544832 100644 --- a/test/battle/move_effect/encore.c +++ b/test/battle/move_effect/encore.c @@ -6,7 +6,7 @@ ASSUMPTIONS ASSUME(gBattleMoves[MOVE_ENCORE].effect == EFFECT_ENCORE); } -SINGLE_BATTLE_TEST("Encore forces consecutive move uses for 2 turns") +SINGLE_BATTLE_TEST("Encore forces consecutive move uses for 2 turns for player") { GIVEN { PLAYER(SPECIES_WOBBUFFET); @@ -25,6 +25,25 @@ SINGLE_BATTLE_TEST("Encore forces consecutive move uses for 2 turns") } } +SINGLE_BATTLE_TEST("Encore forces consecutive move uses for 2 turns for opponent") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_CELEBRATE); MOVE(player, MOVE_ENCORE); } + TURN { FORCED_MOVE(opponent); } + TURN { FORCED_MOVE(opponent); } + TURN { MOVE(opponent, MOVE_SPLASH); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponent); + ANIMATION(ANIM_TYPE_MOVE, MOVE_ENCORE, player); + ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponent); + ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponent); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPLASH, opponent); + } +} + SINGLE_BATTLE_TEST("Encore has no effect if no previous move") { GIVEN { diff --git a/test/battle/move_effect/flinch_status.c b/test/battle/move_effect/flinch_status.c new file mode 100644 index 000000000000..6d0012d42cda --- /dev/null +++ b/test/battle/move_effect/flinch_status.c @@ -0,0 +1,64 @@ +#include "global.h" +#include "test/battle.h" + +ASSUMPTIONS +{ + ASSUME(gBattleMoves[MOVE_THUNDER_FANG].effect == EFFECT_FLINCH_STATUS); + ASSUME(gBattleMoves[MOVE_THUNDER_FANG].argument == STATUS1_PARALYSIS); + ASSUME(gBattleMoves[MOVE_ICE_FANG].effect == EFFECT_FLINCH_STATUS); + ASSUME(gBattleMoves[MOVE_ICE_FANG].argument == STATUS1_FREEZE); + ASSUME(gBattleMoves[MOVE_FIRE_FANG].effect == EFFECT_FLINCH_STATUS); + ASSUME(gBattleMoves[MOVE_FIRE_FANG].argument == STATUS1_BURN); +} + +SINGLE_BATTLE_TEST("Thunder, Ice and Fire Fang inflict status 10% of the time") +{ + u16 move; + + PARAMETRIZE { move = MOVE_THUNDER_FANG; } + PARAMETRIZE { move = MOVE_ICE_FANG; } + PARAMETRIZE { move = MOVE_FIRE_FANG; } + + PASSES_RANDOMLY(10, 100, RNG_SECONDARY_EFFECT); + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, move); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, move, player); + HP_BAR(opponent); + if (move == MOVE_THUNDER_FANG) { + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PRZ, opponent); + STATUS_ICON(opponent, paralysis: TRUE); + } if (move == MOVE_ICE_FANG) { + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_FRZ, opponent); + STATUS_ICON(opponent, freeze: TRUE); + } if (move == MOVE_FIRE_FANG) { + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_BRN, opponent); + STATUS_ICON(opponent, burn: TRUE); + } + } +} + +SINGLE_BATTLE_TEST("Thunder, Ice and Fire Fang cause the opponent to flinch 10% of the time") +{ + u16 move; + + PARAMETRIZE { move = MOVE_THUNDER_FANG; } + PARAMETRIZE { move = MOVE_ICE_FANG; } + PARAMETRIZE { move = MOVE_FIRE_FANG; } + + PASSES_RANDOMLY(10, 100, RNG_SECONDARY_EFFECT); + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Speed(100); } + OPPONENT(SPECIES_WOBBUFFET) { Speed(1); } + } WHEN { + TURN { MOVE(player, move); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, move, player); + HP_BAR(opponent); + MESSAGE("Foe Wobbuffet flinched!"); + NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponent); + } +} diff --git a/test/battle/move_effect/fling.c b/test/battle/move_effect/fling.c index 8d44d9b9f1b2..71775e51e712 100644 --- a/test/battle/move_effect/fling.c +++ b/test/battle/move_effect/fling.c @@ -64,7 +64,6 @@ SINGLE_BATTLE_TEST("Fling fails for pokemon with Klutz ability") PARAMETRIZE {ability = ABILITY_RUN_AWAY; } GIVEN { - ASSUME(P_GEN_4_POKEMON == TRUE); ASSUME(B_KLUTZ_FLING_INTERACTION >= GEN_5); PLAYER(SPECIES_BUNEARY) { Item(ITEM_RAZOR_CLAW); Ability(ability); } OPPONENT(SPECIES_WOBBUFFET); diff --git a/test/battle/move_effect/glaive_rush.c b/test/battle/move_effect/glaive_rush.c new file mode 100644 index 000000000000..6cbc92fa9546 --- /dev/null +++ b/test/battle/move_effect/glaive_rush.c @@ -0,0 +1,143 @@ +#include "global.h" +#include "test/battle.h" + +ASSUMPTIONS +{ + ASSUME(gBattleMoves[MOVE_GLAIVE_RUSH].effect == EFFECT_GLAIVE_RUSH); +} + +SINGLE_BATTLE_TEST("If Glaive Rush is successful moves targeted at the user do not check accuracy") +{ + PASSES_RANDOMLY(100, 100, RNG_ACCURACY); + GIVEN { + ASSUME(gBattleMoves[MOVE_MEGA_PUNCH].accuracy == 85); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_GLAIVE_RUSH); MOVE(opponent, MOVE_MEGA_PUNCH); } + } SCENE { + MESSAGE("Wobbuffet used Glaive Rush!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_GLAIVE_RUSH, player); + ANIMATION(ANIM_TYPE_MOVE, MOVE_MEGA_PUNCH, opponent); + } +} + +SINGLE_BATTLE_TEST("If Glaive Rush is successful, moves targeted at the user deal double damage") +{ + s16 glaiveRushEffectedDmg; + s16 normalDmg; + + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_GLAIVE_RUSH); MOVE(opponent, MOVE_TACKLE); } + TURN { MOVE(player, MOVE_CELEBRATE); MOVE(opponent, MOVE_TACKLE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_GLAIVE_RUSH, player); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + HP_BAR(player, captureDamage: &glaiveRushEffectedDmg); + ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, player); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + HP_BAR(player, captureDamage: &normalDmg); + } THEN { + EXPECT_MUL_EQ(normalDmg, Q_4_12(2.0), glaiveRushEffectedDmg); + } +} + +SINGLE_BATTLE_TEST("If Glaive Rush is successful, moves targeted at the user deal double damage until the user moves again") +{ + s16 glaiveRushEffectedDmg; + s16 normalDmg; + + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_TACKLE); MOVE(player, MOVE_GLAIVE_RUSH); } + TURN { MOVE(opponent, MOVE_TACKLE); MOVE(player, MOVE_CELEBRATE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + HP_BAR(player, captureDamage: &normalDmg); + ANIMATION(ANIM_TYPE_MOVE, MOVE_GLAIVE_RUSH, player); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + HP_BAR(player, captureDamage: &glaiveRushEffectedDmg); + ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, player); + } THEN { + EXPECT_MUL_EQ(normalDmg, Q_4_12(2.0), glaiveRushEffectedDmg); + } +} + +SINGLE_BATTLE_TEST("If Glaive Rush isn't successful moves targeted at the user don't deal double damage", s16 damage) +{ + bool32 missesGlaiveRush; + + PARAMETRIZE { missesGlaiveRush = FALSE; } + PARAMETRIZE { missesGlaiveRush = TRUE; } + + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_BRIGHT_POWDER); } + } WHEN { + TURN { MOVE(player, MOVE_GLAIVE_RUSH, hit: missesGlaiveRush); MOVE(opponent, MOVE_TACKLE); } + } SCENE { + if (!missesGlaiveRush) + NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_GLAIVE_RUSH, player); + else + ANIMATION(ANIM_TYPE_MOVE, MOVE_GLAIVE_RUSH, player); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + HP_BAR(player, captureDamage: &results[i].damage); + } FINALLY { + EXPECT_MUL_EQ(results[0].damage, Q_4_12(2.0), results[1].damage); + } +} + +SINGLE_BATTLE_TEST("Glaive Rush doesn't affect the user if the effect is blocked", s16 damage) +{ + u32 species; + + PARAMETRIZE { species = SPECIES_CLEFAIRY; } + PARAMETRIZE { species = SPECIES_WOBBUFFET; } + + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(species) { Attack(50); } + } WHEN { + TURN { MOVE(player, MOVE_GLAIVE_RUSH); MOVE(opponent, MOVE_TACKLE); } + } SCENE { + if (species == SPECIES_CLEFAIRY) + NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_GLAIVE_RUSH, player); + else + ANIMATION(ANIM_TYPE_MOVE, MOVE_GLAIVE_RUSH, player); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + HP_BAR(player, captureDamage: &results[i].damage); + } FINALLY { + EXPECT_MUL_EQ(results[0].damage, Q_4_12(2.0), results[1].damage); + } +} + +SINGLE_BATTLE_TEST("Glaive Rush status last until the the user's next turn") +{ + s16 normalDmgFristHit; + s16 normalDmgSecondHit; + + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_GLAIVE_RUSH); MOVE(opponent, MOVE_TACKLE); } + TURN { MOVE(player, MOVE_CELEBRATE); MOVE(opponent, MOVE_TACKLE); } + TURN { MOVE(player, MOVE_CELEBRATE); MOVE(opponent, MOVE_TACKLE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_GLAIVE_RUSH, player); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, player); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + HP_BAR(player, captureDamage: &normalDmgFristHit); + ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, player); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + HP_BAR(player, captureDamage: &normalDmgSecondHit); + } THEN { + EXPECT_EQ(normalDmgFristHit, normalDmgSecondHit); + } +} diff --git a/test/battle/move_effect/heal_pulse.c b/test/battle/move_effect/heal_pulse.c new file mode 100644 index 000000000000..ecd1cfe294ab --- /dev/null +++ b/test/battle/move_effect/heal_pulse.c @@ -0,0 +1,102 @@ +#include "global.h" +#include "test/battle.h" + +ASSUMPTIONS +{ + ASSUME(gBattleMoves[MOVE_HEAL_PULSE].effect == EFFECT_HEAL_PULSE); +} + +SINGLE_BATTLE_TEST("Heal Pulse heals the target by 1/2 of it's maxHP") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { MaxHP(100); HP(1); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_HEAL_PULSE); } + } SCENE { + s32 maxHP = GetMonData(&PLAYER_PARTY[0], MON_DATA_MAX_HP); + ANIMATION(ANIM_TYPE_MOVE, MOVE_HEAL_PULSE, opponent); + HP_BAR(player, damage: -maxHP / 2); + } +} + +DOUBLE_BATTLE_TEST("Heal Pulse can heal partner") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { MaxHP(100); HP(1); } + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(playerRight, MOVE_HEAL_PULSE, target: playerLeft); } + } SCENE { + s32 maxHP = GetMonData(&PLAYER_PARTY[0], MON_DATA_MAX_HP); + ANIMATION(ANIM_TYPE_MOVE, MOVE_HEAL_PULSE, playerRight); + HP_BAR(playerLeft, damage: -maxHP / 2); + } +} + +SINGLE_BATTLE_TEST("Heal Pulse is boosted by Mega Launcher") +{ + GIVEN { + ASSUME(P_GEN_6_POKEMON == TRUE); + PLAYER(SPECIES_WOBBUFFET) { MaxHP(100); HP(1); } + OPPONENT(SPECIES_CLAWITZER); + } WHEN { + TURN { MOVE(opponent, MOVE_HEAL_PULSE); } + } SCENE { + s32 maxHP = GetMonData(&PLAYER_PARTY[0], MON_DATA_MAX_HP); + ANIMATION(ANIM_TYPE_MOVE, MOVE_HEAL_PULSE, opponent); + HP_BAR(player, damage: -maxHP * 75 / 100); + } +} + +SINGLE_BATTLE_TEST("Heal Pulse ignores accurace checks") +{ + GIVEN { + PASSES_RANDOMLY(100, 100, RNG_ACCURACY); + PLAYER(SPECIES_WOBBUFFET) { MaxHP(100); HP(1); Item(ITEM_BRIGHT_POWDER); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_HEAL_PULSE); } + } SCENE { + s32 maxHP = GetMonData(&PLAYER_PARTY[0], MON_DATA_MAX_HP); + ANIMATION(ANIM_TYPE_MOVE, MOVE_HEAL_PULSE, opponent); + HP_BAR(player, damage: -maxHP / 2); + } +} + +SINGLE_BATTLE_TEST("Heal Pulse is blocked by Substitute") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_SUBSTITUTE].effect == EFFECT_SUBSTITUTE); + PLAYER(SPECIES_WOBBUFFET) { MaxHP(100); HP(50); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_SUBSTITUTE); MOVE(opponent, MOVE_HEAL_PULSE); } + } SCENE { + s32 maxHP = GetMonData(&PLAYER_PARTY[0], MON_DATA_MAX_HP); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SUBSTITUTE, player); + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_HEAL_PULSE, opponent); + HP_BAR(player, damage: -maxHP / 2); + } + } +} + +SINGLE_BATTLE_TEST("Floral Healing heals the target by 2/3rd of it's maxHP if Grassy Terrain is on the field") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_FLORAL_HEALING].argument == MOVE_EFFECT_FLORAL_HEALING); + ASSUME(gBattleMoves[MOVE_GRASSY_TERRAIN].effect == EFFECT_GRASSY_TERRAIN); + PLAYER(SPECIES_WOBBUFFET) { MaxHP(100); HP(1); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_GRASSY_TERRAIN); MOVE(opponent, MOVE_FLORAL_HEALING); } + } SCENE { + s32 maxHP = GetMonData(&PLAYER_PARTY[0], MON_DATA_MAX_HP); + ANIMATION(ANIM_TYPE_MOVE, MOVE_GRASSY_TERRAIN, player); + ANIMATION(ANIM_TYPE_MOVE, MOVE_FLORAL_HEALING, opponent); + HP_BAR(player, damage: -maxHP * 2 / 3); + } +} diff --git a/test/battle/move_effect/hit_escape.c b/test/battle/move_effect/hit_escape.c index f2d5130957fd..3675dc78a86c 100644 --- a/test/battle/move_effect/hit_escape.c +++ b/test/battle/move_effect/hit_escape.c @@ -65,7 +65,6 @@ SINGLE_BATTLE_TEST("U-turn does not switch the user out if replacements fainted" SINGLE_BATTLE_TEST("U-turn does not switch the user out if Wimp Out activates") { GIVEN { - ASSUME(P_GEN_7_POKEMON == TRUE); PLAYER(SPECIES_WOBBUFFET); PLAYER(SPECIES_WYNAUT); OPPONENT(SPECIES_WIMPOD) { MaxHP(100); HP(51); Ability(ABILITY_WIMP_OUT); } @@ -83,7 +82,6 @@ SINGLE_BATTLE_TEST("U-turn does not switch the user out if Wimp Out activates") SINGLE_BATTLE_TEST("U-turn switches the user out if Wimp Out fails to activate") { GIVEN { - ASSUME(P_GEN_7_POKEMON == TRUE); PLAYER(SPECIES_WOBBUFFET); PLAYER(SPECIES_WYNAUT); OPPONENT(SPECIES_WIMPOD) { MaxHP(100); HP(51); Ability(ABILITY_WIMP_OUT); } diff --git a/test/battle/move_effect/hydro_steam.c b/test/battle/move_effect/hydro_steam.c index f86da07ac51a..80a3a90d376f 100644 --- a/test/battle/move_effect/hydro_steam.c +++ b/test/battle/move_effect/hydro_steam.c @@ -1,11 +1,11 @@ #include "global.h" #include "test/battle.h" - + ASSUMPTIONS { ASSUME(gBattleMoves[MOVE_HYDRO_STEAM].effect == EFFECT_HYDRO_STEAM); } - + SINGLE_BATTLE_TEST("Hydro Steam deals 1.5x damage under both Sunlight and Rain", s16 damage) { u16 setupMove; @@ -26,7 +26,7 @@ SINGLE_BATTLE_TEST("Hydro Steam deals 1.5x damage under both Sunlight and Rain", EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.5), results[1].damage); } } - + SINGLE_BATTLE_TEST("Hydro Steam is affected by Utility Umbrella", s16 damage) { u32 itemPlayer; diff --git a/test/battle/move_effect/knock_off.c b/test/battle/move_effect/knock_off.c new file mode 100644 index 000000000000..3022a19633dd --- /dev/null +++ b/test/battle/move_effect/knock_off.c @@ -0,0 +1,53 @@ +#include "global.h" +#include "test/battle.h" + +ASSUMPTIONS +{ + ASSUME(gBattleMoves[MOVE_KNOCK_OFF].effect == EFFECT_KNOCK_OFF); +} + +SINGLE_BATTLE_TEST("Knock Off knocks a healing berry before it has the chance to activate") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_SITRUS_BERRY); MaxHP(500); HP(255); } + } WHEN { + TURN { MOVE(player, MOVE_KNOCK_OFF); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_KNOCK_OFF, player); + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponent); + MESSAGE("Foe Wobbuffet's Sitrus Berry restored health!"); + } + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_ITEM_KNOCKOFF); + MESSAGE("Wobbuffet knocked off Foe Wobbuffet's Sitrus Berry!"); + } +} + +SINGLE_BATTLE_TEST("Knock Off activates after Rocky Helmet and Weakness Policy") +{ + u16 item = 0; + + PARAMETRIZE { item = ITEM_WEAKNESS_POLICY; } + PARAMETRIZE { item = ITEM_ROCKY_HELMET; } + + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET) { Item(item); } + } WHEN { + TURN { MOVE(player, MOVE_KNOCK_OFF); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_KNOCK_OFF, player); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponent); + if (item == ITEM_WEAKNESS_POLICY) { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE); + MESSAGE("Using WeaknssPolicy, the Attack of Foe Wobbuffet sharply rose!"); + MESSAGE("Using WeaknssPolicy, the Sp. Atk of Foe Wobbuffet sharply rose!"); + } else if (item == ITEM_ROCKY_HELMET) { + HP_BAR(player); + MESSAGE("Wobbuffet was hurt by Foe Wobbuffet's Rocky Helmet!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_ITEM_KNOCKOFF); + MESSAGE("Wobbuffet knocked off Foe Wobbuffet's Rocky Helmet!"); + } + } +} diff --git a/test/battle/move_effect/last_resort.c b/test/battle/move_effect/last_resort.c new file mode 100644 index 000000000000..01a685ffc19d --- /dev/null +++ b/test/battle/move_effect/last_resort.c @@ -0,0 +1,116 @@ +#include "global.h" +#include "test/battle.h" + +ASSUMPTIONS +{ + ASSUME(gBattleMoves[MOVE_LAST_RESORT].effect == EFFECT_LAST_RESORT); +} + +SINGLE_BATTLE_TEST("Last Resort always fails if it's the only known move") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Moves(MOVE_LAST_RESORT); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_LAST_RESORT); } + TURN { MOVE(player, MOVE_LAST_RESORT); } + } SCENE { + MESSAGE("Wobbuffet used Last Resort!"); + MESSAGE("But it failed!"); + MESSAGE("Wobbuffet used Last Resort!"); + MESSAGE("But it failed!"); + NOT HP_BAR(opponent); + } +} + +SINGLE_BATTLE_TEST("Last Resort works only when all of the known moves have been used - 2 moves") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Moves(MOVE_LAST_RESORT, MOVE_TACKLE); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_LAST_RESORT); } + TURN { MOVE(player, MOVE_TACKLE); } + TURN { MOVE(player, MOVE_LAST_RESORT); } + } SCENE { + MESSAGE("Wobbuffet used Last Resort!"); + MESSAGE("But it failed!"); + MESSAGE("Wobbuffet used Tackle!"); + MESSAGE("Wobbuffet used Last Resort!"); + HP_BAR(opponent); + } +} + +SINGLE_BATTLE_TEST("Last Resort works only when all of the known moves have been used - 3 moves") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Moves(MOVE_LAST_RESORT, MOVE_TACKLE, MOVE_SCRATCH); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_LAST_RESORT); } + TURN { MOVE(player, MOVE_TACKLE); } + TURN { MOVE(player, MOVE_LAST_RESORT); } + TURN { MOVE(player, MOVE_SCRATCH); } + TURN { MOVE(player, MOVE_LAST_RESORT); } + } SCENE { + MESSAGE("Wobbuffet used Last Resort!"); + MESSAGE("But it failed!"); + MESSAGE("Wobbuffet used Tackle!"); + MESSAGE("Wobbuffet used Last Resort!"); + MESSAGE("But it failed!"); + MESSAGE("Wobbuffet used Scratch!"); + MESSAGE("Wobbuffet used Last Resort!"); + HP_BAR(opponent); + } +} + +SINGLE_BATTLE_TEST("Last Resort works only when all of the known moves have been used - 4 moves") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Moves(MOVE_LAST_RESORT, MOVE_TACKLE, MOVE_SCRATCH, MOVE_GUST); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_LAST_RESORT); } + TURN { MOVE(player, MOVE_TACKLE); } + TURN { MOVE(player, MOVE_LAST_RESORT); } + TURN { MOVE(player, MOVE_SCRATCH); } + TURN { MOVE(player, MOVE_LAST_RESORT); } + TURN { MOVE(player, MOVE_GUST); } + TURN { MOVE(player, MOVE_LAST_RESORT); } + } SCENE { + MESSAGE("Wobbuffet used Last Resort!"); + MESSAGE("But it failed!"); + MESSAGE("Wobbuffet used Tackle!"); + MESSAGE("Wobbuffet used Last Resort!"); + MESSAGE("But it failed!"); + MESSAGE("Wobbuffet used Scratch!"); + MESSAGE("Wobbuffet used Last Resort!"); + MESSAGE("But it failed!"); + MESSAGE("Wobbuffet used Gust!"); + MESSAGE("Wobbuffet used Last Resort!"); + HP_BAR(opponent); + } +} + +SINGLE_BATTLE_TEST("Last Resort works with Sleep Talk") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_SLEEP_TALK].effect == EFFECT_SLEEP_TALK); + PLAYER(SPECIES_WOBBUFFET) { Moves(MOVE_LAST_RESORT, MOVE_SLEEP_TALK); Status1(STATUS1_SLEEP_TURN(3)); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_SLEEP_TALK); } + TURN { MOVE(player, MOVE_SLEEP_TALK); } + } SCENE { + // Turn 1 + MESSAGE("Wobbuffet used Sleep Talk!"); + MESSAGE("Wobbuffet used Last Resort!"); + NOT MESSAGE("But it failed!"); + HP_BAR(opponent); + // Turn 2 + MESSAGE("Wobbuffet used Sleep Talk!"); + MESSAGE("Wobbuffet used Last Resort!"); + NOT MESSAGE("But it failed!"); + HP_BAR(opponent); + } +} diff --git a/test/battle/move_effect/octolock.c b/test/battle/move_effect/octolock.c new file mode 100644 index 000000000000..3cdc5f5602c3 --- /dev/null +++ b/test/battle/move_effect/octolock.c @@ -0,0 +1,133 @@ +#include "global.h" +#include "test/battle.h" + +SINGLE_BATTLE_TEST("Octolock decreases Defense and Sp. Def by at the end of the turn") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_OCTOLOCK); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_OCTOLOCK, player); + MESSAGE("Foe Wobbuffet can no longer escape because of Octolock!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); + MESSAGE("Foe Wobbuffet's Defense fell!"); + NOT ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); + MESSAGE("Foe Wobbuffet's Sp. Def fell!"); + } +} + +SINGLE_BATTLE_TEST("Octolock reduction is prevented by Clear Body, White Smoke and Full Metal Body") +{ + u32 species; + u32 ability; + + PARAMETRIZE { species = SPECIES_BELDUM; ability = ABILITY_CLEAR_BODY; } + PARAMETRIZE { species = SPECIES_TORKOAL; ability = ABILITY_WHITE_SMOKE; } + PARAMETRIZE { species = SPECIES_SOLGALEO; ability = ABILITY_FULL_METAL_BODY; } + + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(species) { Ability(ability); } + } WHEN { + TURN { MOVE(player, MOVE_OCTOLOCK); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_OCTOLOCK, player); + NOT ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); + if (species == SPECIES_BELDUM) + { + MESSAGE("Foe Beldum can no longer escape because of Octolock!"); + ABILITY_POPUP(opponent, ABILITY_CLEAR_BODY); + MESSAGE("Foe Beldum's Clear Body prevents stat loss!"); + NONE_OF { + MESSAGE("Foe Beldum's Defense fell!"); + MESSAGE("Foe Beldum's Sp. Def fell!"); + } + } + else if (species == SPECIES_TORKOAL) + { + MESSAGE("Foe Torkoal can no longer escape because of Octolock!"); + ABILITY_POPUP(opponent, ABILITY_WHITE_SMOKE); + MESSAGE("Foe Torkoal's White Smoke prevents stat loss!"); + NONE_OF { + MESSAGE("Foe Torkoal's Defense fell!"); + MESSAGE("Foe Torkoal's Sp. Def fell!"); + } + } + else if (species == SPECIES_SOLGALEO) + { + MESSAGE("Foe Solgaleo can no longer escape because of Octolock!"); + ABILITY_POPUP(opponent, ABILITY_FULL_METAL_BODY); + MESSAGE("Foe Solgaleo's Full Metal Body prevents stat loss!"); + NONE_OF { + MESSAGE("Foe Solgaleo's Defense fell!"); + MESSAGE("Foe Solgaleo's Sp. Def fell!"); + } + } + } +} + +SINGLE_BATTLE_TEST("Octolock Defense reduction is prevented by Big Pecks") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_PIDGEY) { Ability(ABILITY_BIG_PECKS); } + } WHEN { + TURN { MOVE(player, MOVE_OCTOLOCK); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_OCTOLOCK, player); + MESSAGE("Foe Pidgey can no longer escape because of Octolock!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); + NOT MESSAGE("Foe Pidgey's Defense fell!"); + ABILITY_POPUP(opponent, ABILITY_BIG_PECKS); + MESSAGE("Foe Pidgey's Big Pecks prevents Defense loss!"); + MESSAGE("Foe Pidgey's Sp. Def fell!"); + } +} + +SINGLE_BATTLE_TEST("Octolock reduction is prevented by Clear Amulet") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_CLEAR_AMULET); } + } WHEN { + TURN { MOVE(player, MOVE_OCTOLOCK); } + TURN {} + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_OCTOLOCK, player); + MESSAGE("Foe Wobbuffet can no longer escape because of Octolock!"); + MESSAGE("Foe Wobbuffet's Clear Amulet prevents its stats from being lowered!"); + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); + MESSAGE("Foe Wobbuffet's Defense fell!"); + MESSAGE("Foe Wobbuffet's Sp. Def fell!"); + } + } +} + +SINGLE_BATTLE_TEST("Octolock will not decrease Defense and Sp. Def further then minus six") +{ + u8 j; + + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_OCTOLOCK); } + for (j = 0; j < 6; j++) + TURN {} + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_OCTOLOCK, player); + for (j = 0; j < 5; j++) { + MESSAGE("Foe Wobbuffet's Defense fell!"); + MESSAGE("Foe Wobbuffet's Sp. Def fell!"); + } + MESSAGE("Foe Wobbuffet's Defense won't go lower!"); + MESSAGE("Foe Wobbuffet's Sp. Def won't go lower!"); + NONE_OF { + MESSAGE("Foe Wobbuffet's Defense fell!"); + MESSAGE("Foe Wobbuffet's Sp. Def fell!"); + } + } +} diff --git a/test/battle/move_effect/plasma_fists.c b/test/battle/move_effect/plasma_fists.c new file mode 100644 index 000000000000..daef90ec5053 --- /dev/null +++ b/test/battle/move_effect/plasma_fists.c @@ -0,0 +1,99 @@ +#include "global.h" +#include "test/battle.h" + +ASSUMPTIONS +{ + ASSUME(gBattleMoves[MOVE_PLASMA_FISTS].effect == EFFECT_PLASMA_FISTS); +} + +SINGLE_BATTLE_TEST("Ion Duldge turns normal moves into electric for the remainder of the current turn") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_ION_DELUGE].effect == EFFECT_ION_DELUGE); + PLAYER(SPECIES_KRABBY); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_ION_DELUGE); MOVE(opponent, MOVE_TACKLE); } + TURN { MOVE(opponent, MOVE_TACKLE); } + } SCENE { + MESSAGE("Krabby used Ion Deluge!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_ION_DELUGE, player); + MESSAGE("A deluge of ions showers the battlefield!"); + MESSAGE("Foe Wobbuffet used Tackle!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + MESSAGE("It's super effective!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + NOT MESSAGE("It's super effective!"); + } +} + +SINGLE_BATTLE_TEST("Plasma Fists turns normal moves into electric for the remainder of the current turn") +{ + GIVEN { + PLAYER(SPECIES_KRABBY); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_PLASMA_FISTS); MOVE(opponent, MOVE_TACKLE); } + TURN { MOVE(opponent, MOVE_TACKLE); } + } SCENE { + MESSAGE("Krabby used Plasma Fists!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_PLASMA_FISTS, player); + MESSAGE("A deluge of ions showers the battlefield!"); + MESSAGE("Foe Wobbuffet used Tackle!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + MESSAGE("It's super effective!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + NOT MESSAGE("It's super effective!"); + } +} + +SINGLE_BATTLE_TEST("Plasma Fists type-changing effect is applied after Pixilate") +{ + GIVEN { + PLAYER(SPECIES_KRABBY) { Speed(300); }; + OPPONENT(SPECIES_ALTARIA) { Speed(1); Item(ITEM_ALTARIANITE); } + } WHEN { + TURN { MOVE(player, MOVE_PLASMA_FISTS); MOVE(opponent, MOVE_EMBER, megaEvolve: TRUE); } + } SCENE { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_MEGA_EVOLUTION, opponent); + MESSAGE("Krabby used Plasma Fists!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_PLASMA_FISTS, player); + MESSAGE("A deluge of ions showers the battlefield!"); + MESSAGE("Foe Altaria used Ember!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_EMBER, opponent); + NOT MESSAGE("It's super effective!"); + } +} + +SINGLE_BATTLE_TEST("Plasma Fists type-changing effect is applied after Normalize") +{ + GIVEN { + PLAYER(SPECIES_KRABBY); + OPPONENT(SPECIES_SKITTY) { Ability(ABILITY_NORMALIZE); } + } WHEN { + TURN { MOVE(player, MOVE_PLASMA_FISTS); MOVE(opponent, MOVE_EMBER); } + } SCENE { + MESSAGE("Krabby used Plasma Fists!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_PLASMA_FISTS, player); + MESSAGE("A deluge of ions showers the battlefield!"); + MESSAGE("Foe Skitty used Ember!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_EMBER, opponent); + MESSAGE("It's super effective!"); + } +} + +SINGLE_BATTLE_TEST("Plasma Fists turns normal type dynamax-moves into electric type moves") +{ + GIVEN { + PLAYER(SPECIES_KRABBY) { Speed(100); } + OPPONENT(SPECIES_WOBBUFFET) { Speed(1); } + } WHEN { + TURN { MOVE(player, MOVE_PLASMA_FISTS); MOVE(opponent, MOVE_TACKLE, dynamax: TRUE); } + } SCENE { + MESSAGE("Krabby used Plasma Fists!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_PLASMA_FISTS, player); + MESSAGE("A deluge of ions showers the battlefield!"); + MESSAGE("Foe Wobbuffet used Max Lightning!"); + MESSAGE("It's super effective!"); + } +} diff --git a/test/battle/move_effect/pledge.c b/test/battle/move_effect/pledge.c new file mode 100644 index 000000000000..a7843be61912 --- /dev/null +++ b/test/battle/move_effect/pledge.c @@ -0,0 +1,352 @@ +#include "global.h" +#include "test/battle.h" + +ASSUMPTIONS +{ + ASSUME(gBattleMoves[MOVE_WATER_PLEDGE].effect == EFFECT_PLEDGE); + ASSUME(gBattleMoves[MOVE_FIRE_PLEDGE].effect == EFFECT_PLEDGE); + ASSUME(gBattleMoves[MOVE_GRASS_PLEDGE].effect == EFFECT_PLEDGE); +} + +DOUBLE_BATTLE_TEST("Water and Fire Pledge create a rainbow on the user's side of the field for four turns") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Speed(4); } + PLAYER(SPECIES_WYNAUT) { Speed(3); } + OPPONENT(SPECIES_WOBBUFFET) { Speed(8); } + OPPONENT(SPECIES_WYNAUT) { Speed(5); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_WATER_PLEDGE, target: opponentLeft); + MOVE(playerRight, MOVE_FIRE_PLEDGE, target: opponentRight); + } + TURN {} + TURN {} + TURN {} + } SCENE { + MESSAGE("Wobbuffet used Water Pledge!"); + MESSAGE("Wobbuffet is waiting for Wynaut's move…{PAUSE 16}"); + MESSAGE("Wynaut used Fire Pledge!"); + MESSAGE("The two moves become one! It's a combined move!{PAUSE 16}"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_WATER_PLEDGE, playerRight); + HP_BAR(opponentRight); + MESSAGE("A rainbow appeared in the sky on your team's side!"); + MESSAGE("The rainbow on your side disappeared!"); + } +} + +DOUBLE_BATTLE_TEST("Rainbow doubles the chance of secondary move effects") +{ + PASSES_RANDOMLY(20, 100, RNG_SECONDARY_EFFECT); + GIVEN { + ASSUME(gBattleMoves[MOVE_EMBER].effect == EFFECT_BURN_HIT); + PLAYER(SPECIES_WOBBUFFET) { Speed(4); } + PLAYER(SPECIES_WYNAUT) { Speed(3); } + OPPONENT(SPECIES_WOBBUFFET) { Speed(8); } + OPPONENT(SPECIES_WYNAUT) { Speed(5); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_WATER_PLEDGE, target: opponentLeft); + MOVE(playerRight, MOVE_FIRE_PLEDGE, target: opponentRight); + } + TURN { MOVE(playerLeft, MOVE_EMBER, target: opponentRight); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_WATER_PLEDGE, playerRight); + ANIMATION(ANIM_TYPE_MOVE, MOVE_EMBER, playerLeft); + MESSAGE("Foe Wynaut was burned!"); + } +} + +DOUBLE_BATTLE_TEST("Rainbow flinch chance does not stack with Serene Grace") +{ + PASSES_RANDOMLY(60, 100, RNG_SECONDARY_EFFECT); + GIVEN { + ASSUME(gBattleMoves[MOVE_BITE].effect == EFFECT_FLINCH_HIT); + PLAYER(SPECIES_TOGEPI) { Speed(8); Ability(ABILITY_SERENE_GRACE); } + PLAYER(SPECIES_WOBBUFFET) { Speed(5); } + OPPONENT(SPECIES_WOBBUFFET) { Speed(4); } + OPPONENT(SPECIES_WYNAUT) { Speed(3); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_WATER_PLEDGE, target: opponentLeft); + MOVE(playerRight, MOVE_FIRE_PLEDGE, target: opponentRight); + } + TURN { MOVE(playerLeft, MOVE_BITE, target: opponentRight); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_WATER_PLEDGE, playerRight); + ANIMATION(ANIM_TYPE_MOVE, MOVE_BITE, playerLeft); + MESSAGE("Foe Wynaut flinched!"); + } +} + +DOUBLE_BATTLE_TEST("Rainbow flinch chance does not stack with Serene Grace if mvoe Triple Arrows is used") +{ + PASSES_RANDOMLY(60, 100, RNG_TRIPLE_ARROWS_FLINCH); + GIVEN { + ASSUME(gBattleMoves[MOVE_TRIPLE_ARROWS].effect == EFFECT_TRIPLE_ARROWS); + PLAYER(SPECIES_TOGEPI) { Speed(8); Ability(ABILITY_SERENE_GRACE); } + PLAYER(SPECIES_WOBBUFFET) { Speed(5); } + OPPONENT(SPECIES_WOBBUFFET) { Speed(4); } + OPPONENT(SPECIES_WYNAUT) { Speed(3); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_WATER_PLEDGE, target: opponentLeft); + MOVE(playerRight, MOVE_FIRE_PLEDGE, target: opponentRight); + } + TURN { MOVE(playerLeft, MOVE_TRIPLE_ARROWS, target: opponentRight); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_WATER_PLEDGE, playerRight); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TRIPLE_ARROWS, playerLeft); + MESSAGE("Foe Wynaut flinched!"); + } +} + +DOUBLE_BATTLE_TEST("Fire and Grass Pledge summons Sea Of Fire for four turns that damages the opponent") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Speed(4); } + PLAYER(SPECIES_WYNAUT) { Speed(3); } + OPPONENT(SPECIES_WOBBUFFET) { Speed(8); } + OPPONENT(SPECIES_WYNAUT) { Speed(5); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_FIRE_PLEDGE, target: opponentLeft); + MOVE(playerRight, MOVE_GRASS_PLEDGE, target: opponentRight); + } + TURN {} + TURN {} + TURN {} + } SCENE { + MESSAGE("Wobbuffet used Fire Pledge!"); + MESSAGE("Wobbuffet is waiting for Wynaut's move…{PAUSE 16}"); + MESSAGE("Wynaut used Grass Pledge!"); + MESSAGE("The two moves become one! It's a combined move!{PAUSE 16}"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_FIRE_PLEDGE, playerRight); + HP_BAR(opponentRight); + MESSAGE("A sea of fire enveloped the opposing team!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SEA_OF_FIRE, opponentRight); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_BRN, opponentLeft); + MESSAGE("The opposing Foe Wobbuffet was hurt by the sea of fire!"); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_BRN, opponentRight); + MESSAGE("The opposing Foe Wynaut was hurt by the sea of fire!"); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_BRN, opponentLeft); + MESSAGE("The opposing Foe Wobbuffet was hurt by the sea of fire!"); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_BRN, opponentRight); + MESSAGE("The opposing Foe Wynaut was hurt by the sea of fire!"); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_BRN, opponentLeft); + MESSAGE("The opposing Foe Wobbuffet was hurt by the sea of fire!"); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_BRN, opponentRight); + MESSAGE("The opposing Foe Wynaut was hurt by the sea of fire!"); + MESSAGE("The sea of fire around the opposing team disappeared!"); + } +} + +DOUBLE_BATTLE_TEST("Sea Of Fire deals 1/8th damage per turn") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Speed(4); } + PLAYER(SPECIES_WYNAUT) { Speed(3); } + OPPONENT(SPECIES_WOBBUFFET) { Speed(8); } + OPPONENT(SPECIES_WYNAUT) { Speed(5); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_FIRE_PLEDGE, target: opponentLeft); + MOVE(playerRight, MOVE_GRASS_PLEDGE, target: opponentRight); + } + } SCENE { + s32 maxHPopponentLeft = GetMonData(&OPPONENT_PARTY[0], MON_DATA_MAX_HP); + s32 maxHPopponentRight = GetMonData(&OPPONENT_PARTY[1], MON_DATA_MAX_HP); + HP_BAR(opponentLeft, damage: maxHPopponentLeft / 8); + HP_BAR(opponentRight, damage: maxHPopponentRight / 8); + } +} + +DOUBLE_BATTLE_TEST("Grass and Water Pledge create a swamp on the user's side of the field for four turns") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Speed(4); } + PLAYER(SPECIES_WYNAUT) { Speed(3); } + OPPONENT(SPECIES_WOBBUFFET) { Speed(8); } + OPPONENT(SPECIES_WYNAUT) { Speed(5); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_GRASS_PLEDGE, target: opponentLeft); + MOVE(playerRight, MOVE_WATER_PLEDGE, target: opponentRight); + } + TURN {} + TURN {} + TURN {} + } SCENE { + MESSAGE("Wobbuffet used Grass Pledge!"); + MESSAGE("Wobbuffet is waiting for Wynaut's move…{PAUSE 16}"); + MESSAGE("Wynaut used Water Pledge!"); + MESSAGE("The two moves become one! It's a combined move!{PAUSE 16}"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_GRASS_PLEDGE, playerRight); + HP_BAR(opponentRight); + MESSAGE("A swamp enveloped the opposing team!"); + MESSAGE("The swamp around the opposing team disappeared!"); + } +} + +DOUBLE_BATTLE_TEST("Swamp reduces the speed of the effected side by 1/4th") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Speed(5); } + PLAYER(SPECIES_WYNAUT) { Speed(4); } + OPPONENT(SPECIES_WOBBUFFET) { Speed(12); } + OPPONENT(SPECIES_WYNAUT) { Speed(8); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_GRASS_PLEDGE, target: opponentLeft); + MOVE(playerRight, MOVE_WATER_PLEDGE, target: opponentRight); + } + TURN {} + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponentLeft); + ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponentRight); + ANIMATION(ANIM_TYPE_MOVE, MOVE_GRASS_PLEDGE, playerRight); + ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, playerLeft); + ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, playerRight); + ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponentLeft); + ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponentRight); + } +} + +DOUBLE_BATTLE_TEST("The base power of a combined pledge move effect is 150") +{ + s16 hyperBeamDamage; + s16 combinedPledgeDamage; + + GIVEN { + ASSUME(gBattleMoves[MOVE_HYPER_BEAM].power == 150); + PLAYER(SPECIES_WOBBUFFET) { Speed(4); } + PLAYER(SPECIES_WYNAUT) { Speed(3); } + OPPONENT(SPECIES_WOBBUFFET) { Speed(8); } + OPPONENT(SPECIES_WYNAUT) { Speed(5); } + } WHEN { + TURN { MOVE(opponentRight, MOVE_HYPER_BEAM, target: playerRight); + MOVE(playerLeft, MOVE_WATER_PLEDGE, target: opponentLeft); + MOVE(playerRight, MOVE_FIRE_PLEDGE, target: opponentRight); + } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_HYPER_BEAM, opponentRight); + HP_BAR(playerRight, captureDamage: &hyperBeamDamage); + ANIMATION(ANIM_TYPE_MOVE, MOVE_WATER_PLEDGE, playerRight); + HP_BAR(opponentRight, captureDamage: &combinedPledgeDamage); + } THEN { + EXPECT_EQ(hyperBeamDamage, combinedPledgeDamage); + } +} + +DOUBLE_BATTLE_TEST("Pledge moves can not be redirected by absorbing abilities") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_LILEEP) { Ability(ABILITY_STORM_DRAIN); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(playerLeft, MOVE_WATER_PLEDGE, target: opponentRight);} + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_WATER_PLEDGE, playerLeft); + HP_BAR(opponentRight); + } +} + +DOUBLE_BATTLE_TEST("Pledge status timer does not reset if combined move is used again") +{ + u16 pledgeMove1, pledgeMove2; + + PARAMETRIZE { pledgeMove1 = MOVE_WATER_PLEDGE; pledgeMove2 = MOVE_FIRE_PLEDGE; } + PARAMETRIZE { pledgeMove1 = MOVE_FIRE_PLEDGE; pledgeMove2 = MOVE_GRASS_PLEDGE; } + PARAMETRIZE { pledgeMove1 = MOVE_GRASS_PLEDGE; pledgeMove2 = MOVE_WATER_PLEDGE; } + + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Speed(4); } + PLAYER(SPECIES_WYNAUT) { Speed(3); } + OPPONENT(SPECIES_WOBBUFFET) { Speed(8); } + OPPONENT(SPECIES_WYNAUT) { Speed(5); } + } WHEN { + TURN { MOVE(playerLeft, pledgeMove1, target: opponentLeft); + MOVE(playerRight, pledgeMove2, target: opponentRight); + } + TURN { MOVE(playerLeft, pledgeMove1, target: opponentLeft); + MOVE(playerRight, pledgeMove2, target: opponentRight); + } + TURN {} + TURN {} + TURN {} + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, pledgeMove1, playerRight); + ANIMATION(ANIM_TYPE_MOVE, pledgeMove1, playerRight); + if (pledgeMove1 == MOVE_WATER_PLEDGE && pledgeMove2 == MOVE_FIRE_PLEDGE) + { + NOT MESSAGE("A rainbow appeared in the sky on your team's side!"); + MESSAGE("The rainbow on your side disappeared!"); + } + if (pledgeMove1 == MOVE_FIRE_PLEDGE && pledgeMove2 == MOVE_GRASS_PLEDGE) + { + NOT MESSAGE("A sea of fire enveloped the opposing team!"); + MESSAGE("The sea of fire around the opposing team disappeared!"); + } + if (pledgeMove1 == MOVE_GRASS_PLEDGE && pledgeMove2 == MOVE_WATER_PLEDGE) + { + NOT MESSAGE("A swamp enveloped the opposing team!"); + MESSAGE("The swamp around the opposing team disappeared!"); + } + } +} + +DOUBLE_BATTLE_TEST("Pledge moves get same attack type bonus from partner", s16 damage) +{ + u32 species; + + PARAMETRIZE { species = SPECIES_WOBBUFFET; } + PARAMETRIZE { species = SPECIES_CHARMANDER; } + + GIVEN { + PLAYER(species) { Speed(4); } + PLAYER(SPECIES_WYNAUT) { Speed(3); } + OPPONENT(SPECIES_WOBBUFFET) { Speed(8); } + OPPONENT(SPECIES_WYNAUT) { Speed(5); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_FIRE_PLEDGE, target: opponentLeft); + MOVE(playerRight, MOVE_GRASS_PLEDGE, target: opponentRight); + } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_FIRE_PLEDGE, playerRight); + HP_BAR(opponentRight, captureDamage: &results[i].damage); + } FINALLY { + EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.5), results[1].damage); + } +} + +DOUBLE_BATTLE_TEST("Damage calculation: Combined pledge move") +{ + s16 dmg; + s16 expectedDamage; + PARAMETRIZE { expectedDamage = 159; } + PARAMETRIZE { expectedDamage = 156; } + PARAMETRIZE { expectedDamage = 154; } + PARAMETRIZE { expectedDamage = 153; } + PARAMETRIZE { expectedDamage = 151; } + PARAMETRIZE { expectedDamage = 150; } + PARAMETRIZE { expectedDamage = 148; } + PARAMETRIZE { expectedDamage = 147; } + PARAMETRIZE { expectedDamage = 145; } + PARAMETRIZE { expectedDamage = 144; } + PARAMETRIZE { expectedDamage = 142; } + PARAMETRIZE { expectedDamage = 141; } + PARAMETRIZE { expectedDamage = 139; } + PARAMETRIZE { expectedDamage = 138; } + PARAMETRIZE { expectedDamage = 136; } + PARAMETRIZE { expectedDamage = 135; } + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Speed(4); } + PLAYER(SPECIES_WOBBUFFET) { HP(521); SpDefense(152); Speed(3); } + OPPONENT(SPECIES_CHARIZARD) { Speed(8); } + OPPONENT(SPECIES_EEVEE) { SpAttack(126); Speed(5); } + } WHEN { + TURN { MOVE(opponentLeft, MOVE_FIRE_PLEDGE, target: playerLeft, WITH_RNG(RNG_DAMAGE_MODIFIER, i)); + MOVE(opponentRight, MOVE_GRASS_PLEDGE, target: playerRight, WITH_RNG(RNG_DAMAGE_MODIFIER, i)); + } + } + SCENE { + HP_BAR(playerRight, captureDamage: &dmg); + } + THEN { + EXPECT_EQ(expectedDamage, dmg); + } +} diff --git a/test/battle/move_effect/relic_song.c b/test/battle/move_effect/relic_song.c new file mode 100644 index 000000000000..c10e18c101a8 --- /dev/null +++ b/test/battle/move_effect/relic_song.c @@ -0,0 +1,179 @@ +#include "global.h" +#include "test/battle.h" + +ASSUMPTIONS +{ + ASSUME(gBattleMoves[MOVE_RELIC_SONG].effect == EFFECT_RELIC_SONG); +} + +SINGLE_BATTLE_TEST("Relic Song has a 10% chance to put the target to sleep") +{ + PASSES_RANDOMLY(10, 100, RNG_SECONDARY_EFFECT); + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_RELIC_SONG); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_RELIC_SONG, player); + HP_BAR(opponent); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + STATUS_ICON(opponent, sleep: TRUE); + } +} + +SINGLE_BATTLE_TEST("Relic Song is prevented by Soundproof") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_VOLTORB) { Ability(ABILITY_SOUNDPROOF); } + } WHEN { + TURN { MOVE(player, MOVE_RELIC_SONG); } + } SCENE { + ABILITY_POPUP(opponent, ABILITY_SOUNDPROOF); + MESSAGE("Foe Voltorb's Soundproof blocks Relic Song!"); + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_RELIC_SONG, player); + HP_BAR(opponent); + } + } +} + +SINGLE_BATTLE_TEST("Relic Song will become a Water-type move when used by a Pokémon with the Ability Liquid Voice") +{ + GIVEN { + PLAYER(SPECIES_VULPIX); + OPPONENT(SPECIES_POPPLIO) { Ability(ABILITY_LIQUID_VOICE); } + } WHEN { + TURN { MOVE(opponent, MOVE_RELIC_SONG); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_RELIC_SONG, opponent); + HP_BAR(player); + MESSAGE("It's super effective!"); + } +} + +SINGLE_BATTLE_TEST("Relic Song is blocked by Throat Chop") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_THROAT_CHOP); MOVE(player, MOVE_RELIC_SONG); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_THROAT_CHOP, opponent); + HP_BAR(player); + MESSAGE("Wobbuffet can't use Relic Song due to Throat Chop!"); + NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_RELIC_SONG, player); + } +} + +SINGLE_BATTLE_TEST("Relic Song transforms Meloetta if used successfully") +{ + GIVEN { + PLAYER(SPECIES_MELOETTA_ARIA); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_RELIC_SONG); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_RELIC_SONG, player); + HP_BAR(opponent); + MESSAGE("Meloetta transformed!"); + } THEN { + EXPECT_EQ(player->species, SPECIES_MELOETTA_PIROUETTE); + } +} + +SINGLE_BATTLE_TEST("Relic Song transforms Meloetta twice if used successfully") +{ + GIVEN { + PLAYER(SPECIES_MELOETTA_ARIA); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_RELIC_SONG); } + TURN { MOVE(player, MOVE_RELIC_SONG); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_RELIC_SONG, player); + HP_BAR(opponent); + MESSAGE("Meloetta transformed!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_RELIC_SONG, player); + HP_BAR(opponent); + MESSAGE("Meloetta transformed!"); + } THEN { + EXPECT_EQ(player->species, SPECIES_MELOETTA_ARIA); + } +} + +SINGLE_BATTLE_TEST("Relic Song transformation is the last thing that happens after it hits") +{ + GIVEN { + PLAYER(SPECIES_MELOETTA_ARIA); + OPPONENT(SPECIES_GOSSIFLEUR) { HP(1); Ability(ABILITY_COTTON_DOWN); } + } WHEN { + TURN { MOVE(player, MOVE_RELIC_SONG); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_RELIC_SONG, player); + HP_BAR(opponent); + MESSAGE("Foe Gossifleur fainted!"); + ABILITY_POPUP(opponent, ABILITY_COTTON_DOWN); + MESSAGE("Meloetta's Speed fell!"); + MESSAGE("Meloetta transformed!"); + } THEN { + EXPECT_EQ(player->species, SPECIES_MELOETTA_PIROUETTE); + } +} + +DOUBLE_BATTLE_TEST("Relic Song transforms once Meloetta in a double battle") +{ + GIVEN { + PLAYER(SPECIES_MELOETTA_ARIA); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(playerLeft, MOVE_RELIC_SONG); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_RELIC_SONG, playerLeft); + HP_BAR(opponentLeft); + HP_BAR(opponentRight); + MESSAGE("Meloetta transformed!"); + } THEN { + EXPECT_EQ(playerLeft->species, SPECIES_MELOETTA_PIROUETTE); + } +} + +SINGLE_BATTLE_TEST("Relic Song loses the form-changing effect with Sheer Force") +{ + GIVEN { + PLAYER(SPECIES_MELOETTA_ARIA); + OPPONENT(SPECIES_NIDOKING) { Ability(ABILITY_SHEER_FORCE); } + } WHEN { + TURN { MOVE(opponent, MOVE_SKILL_SWAP); MOVE(player, MOVE_RELIC_SONG); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SKILL_SWAP, opponent); + ANIMATION(ANIM_TYPE_MOVE, MOVE_RELIC_SONG, player); + HP_BAR(opponent); + NOT MESSAGE("Meloetta transformed!"); + } THEN { + EXPECT_EQ(player->species, SPECIES_MELOETTA_ARIA); + } +} + +SINGLE_BATTLE_TEST("Relic Song transforms Meloetta after Magician was activated") +{ + GIVEN { + PLAYER(SPECIES_MELOETTA_ARIA); + OPPONENT(SPECIES_DELPHOX) { Ability(ABILITY_MAGICIAN); Item(ITEM_POTION); } + } WHEN { + TURN { MOVE(opponent, MOVE_SKILL_SWAP); MOVE(player, MOVE_RELIC_SONG); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SKILL_SWAP, opponent); + ANIMATION(ANIM_TYPE_MOVE, MOVE_RELIC_SONG, player); + HP_BAR(opponent); + ABILITY_POPUP(player, ABILITY_MAGICIAN); + MESSAGE("Meloetta stole Foe Delphox's Potion!"); + MESSAGE("Meloetta transformed!"); + } THEN { + EXPECT_EQ(player->species, SPECIES_MELOETTA_PIROUETTE); + } +} diff --git a/test/battle/move_effect/revival_blessing.c b/test/battle/move_effect/revival_blessing.c index a5dd32c1970a..63f454a779a9 100644 --- a/test/battle/move_effect/revival_blessing.c +++ b/test/battle/move_effect/revival_blessing.c @@ -103,7 +103,7 @@ TO_DO_BATTLE_TEST("Revived battlers still lose their turn"); // OPPONENT(SPECIES_WYNAUT) { HP(1); } // } WHEN { // TURN { MOVE(playerLeft, MOVE_TACKLE, target: opponentRight); -// MOVE(opponentLeft, MOVE_REVIVAL_BLESSING); +// MOVE(opponentLeft, MOVE_REVIVAL_BLESSING); // SEND_OUT(opponentLeft, 1); } // } SCENE { // MESSAGE("Wobbuffet used Tackle!"); diff --git a/test/battle/move_effect/roost.c b/test/battle/move_effect/roost.c index f138cc2cfa58..15628597d8af 100644 --- a/test/battle/move_effect/roost.c +++ b/test/battle/move_effect/roost.c @@ -131,7 +131,6 @@ SINGLE_BATTLE_TEST("Roost, if used by a Flying/Flying type, treats the user as a PARAMETRIZE{ damagingMove = MOVE_DISARMING_VOICE; } GIVEN { - ASSUME(P_GEN_5_POKEMON == TRUE); ASSUME(gSpeciesInfo[SPECIES_TORNADUS].types[0] == TYPE_FLYING); ASSUME(gSpeciesInfo[SPECIES_TORNADUS].types[1] == TYPE_FLYING); PLAYER(SPECIES_TORNADUS) { HP(50); MaxHP(100); } diff --git a/test/battle/move_effect/stealth_rock.c b/test/battle/move_effect/stealth_rock.c new file mode 100644 index 000000000000..4662379f5ecb --- /dev/null +++ b/test/battle/move_effect/stealth_rock.c @@ -0,0 +1,32 @@ +#include "global.h" +#include "test/battle.h" + +ASSUMPTIONS +{ + ASSUME(gBattleMoves[MOVE_STEALTH_ROCK].effect == EFFECT_STEALTH_ROCK); +} + +SINGLE_BATTLE_TEST("Stealth Rock damage on switch in based on typing") +{ + u32 species, divisor; + + PARAMETRIZE { species = SPECIES_CHARIZARD; divisor = 2; } // Fire / Flying + PARAMETRIZE { species = SPECIES_PIDGEOT; divisor = 4; } // Flying + PARAMETRIZE { species = SPECIES_RATICATE; divisor = 8; } // Normal dmg + PARAMETRIZE { species = SPECIES_GOLEM; divisor = 16; } // Ground not very effective + PARAMETRIZE { species = SPECIES_STEELIX; divisor = 32; } // Ground/Steel not very effective + + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(species); + } WHEN { + TURN { MOVE(player, MOVE_STEALTH_ROCK); } + TURN { SWITCH(opponent, 1); } + } SCENE { + s32 maxHP = GetMonData(&OPPONENT_PARTY[1], MON_DATA_MAX_HP); + ANIMATION(ANIM_TYPE_MOVE, MOVE_STEALTH_ROCK, player); + // MESSAGE("2 sent out species!"); + HP_BAR(opponent, damage: maxHP / divisor); + } +} diff --git a/test/battle/move_effect/sticky_web.c b/test/battle/move_effect/sticky_web.c index e12cc8090500..cdf577b5add7 100644 --- a/test/battle/move_effect/sticky_web.c +++ b/test/battle/move_effect/sticky_web.c @@ -108,7 +108,6 @@ DOUBLE_BATTLE_TEST("Sticky Web has correct interactions with Mirror Armor - the PARAMETRIZE {playerSetUpper = 1; opponentSetUpper = 1; } GIVEN { - ASSUME(P_GEN_8_POKEMON == TRUE); PLAYER(SPECIES_SQUIRTLE); PLAYER(SPECIES_CHARMANDER); PLAYER(SPECIES_CORVIKNIGHT) { Ability(ABILITY_MIRROR_ARMOR); Item(ITEM_IRON_BALL); } // Iron Ball, so that flying type Corviknight is affected by Sticky Web. @@ -148,7 +147,6 @@ DOUBLE_BATTLE_TEST("Sticky Web has correct interactions with Mirror Armor - no o PARAMETRIZE { speedPlayer = 10; speedOpponent = 5; } GIVEN { - ASSUME(P_GEN_8_POKEMON == TRUE); PLAYER(SPECIES_SQUIRTLE) { Speed(speedPlayer); } PLAYER(SPECIES_CHARMANDER) { Speed(speedPlayer); } PLAYER(SPECIES_CORVIKNIGHT) { Ability(ABILITY_MIRROR_ARMOR); Item(ITEM_IRON_BALL); Speed(speedOpponent); } // Iron Ball, so that flying type Corviknight is affected by Sticky Web. @@ -193,7 +191,6 @@ DOUBLE_BATTLE_TEST("Sticky Web has correct interactions with Mirror Armor - no o PARAMETRIZE {hasReplacement = FALSE;} GIVEN { - ASSUME(P_GEN_8_POKEMON == TRUE); ASSUME(gBattleMoves[MOVE_MEMENTO].effect == EFFECT_MEMENTO); PLAYER(SPECIES_SQUIRTLE) {Speed(5); } PLAYER(SPECIES_CHARMANDER) {Speed(5); } diff --git a/test/battle/move_effect/strength_sap.c b/test/battle/move_effect/strength_sap.c new file mode 100644 index 000000000000..c549e4c332cc --- /dev/null +++ b/test/battle/move_effect/strength_sap.c @@ -0,0 +1,59 @@ +#include "global.h" +#include "test/battle.h" + +ASSUMPTIONS +{ + ASSUME(gBattleMoves[MOVE_STRENGTH_SAP].effect == EFFECT_STRENGTH_SAP); +} + +SINGLE_BATTLE_TEST("Strength Sap lowers Attack by 1 and restores HP based on target's Attack Stat", s16 hp) +{ + u32 atkStat = 0; + + PARAMETRIZE{ atkStat = 100; } + PARAMETRIZE{ atkStat = 50; } + + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { HP(200); } + OPPONENT(SPECIES_WOBBUFFET) { Attack(atkStat); } + } WHEN { + TURN { MOVE(player, MOVE_STRENGTH_SAP); } + } SCENE { + MESSAGE("Wobbuffet used Strength Sap!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_STRENGTH_SAP, player); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); + MESSAGE("Foe Wobbuffet's Attack fell!"); + HP_BAR(player, captureDamage: &results[i].hp); + MESSAGE("Foe Wobbuffet had its energy drained!"); + } THEN { + EXPECT_EQ(results[i].hp * -1, atkStat); + } +} + +// Same as above, but Substitute is used before Strength Sap. +SINGLE_BATTLE_TEST("Strength Sap works exactly the same when attacker is behind substitute", s16 hp) +{ + u32 atkStat = 0; + + PARAMETRIZE{ atkStat = 100; } + PARAMETRIZE{ atkStat = 50; } + + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { HP(200); } + OPPONENT(SPECIES_WOBBUFFET) { Attack(atkStat); } + } WHEN { + TURN { MOVE(player, MOVE_SUBSTITUTE); } + TURN { MOVE(player, MOVE_STRENGTH_SAP); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SUBSTITUTE, player); + MESSAGE("Wobbuffet used Strength Sap!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_STRENGTH_SAP, player); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); + MESSAGE("Foe Wobbuffet's Attack fell!"); + HP_BAR(player, captureDamage: &results[i].hp); + NOT MESSAGE("The SUBSTITUTE took damage for Foe Wobbuffet!"); + MESSAGE("Foe Wobbuffet had its energy drained!"); + } THEN { + EXPECT_EQ(results[i].hp * -1, atkStat); + } +} diff --git a/test/battle/move_effect/syrup_bomb.c b/test/battle/move_effect/syrup_bomb.c index 18b032f5cb82..f286049e1aa0 100644 --- a/test/battle/move_effect/syrup_bomb.c +++ b/test/battle/move_effect/syrup_bomb.c @@ -3,23 +3,49 @@ SINGLE_BATTLE_TEST("Syrup Bomb covers the foe in sticky syrup for 3 turns") { + u8 j; + GIVEN { PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET); } WHEN { TURN { MOVE(player, MOVE_SYRUP_BOMB); } - TURN {} - TURN {} - TURN {} + for (j = 0; j < 4; j++) + TURN {} } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_SYRUP_BOMB, player); HP_BAR(opponent); MESSAGE("Foe Wobbuffet got covered in sticky syrup!"); - ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent); + MESSAGE("Foe Wobbuffet's Speed fell!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent); MESSAGE("Foe Wobbuffet's Speed fell!"); - ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent); MESSAGE("Foe Wobbuffet's Speed fell!"); - MESSAGE("Foe Wobbuffet was freed from Syrup Bomb!"); + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent); + MESSAGE("Foe Wobbuffet's Speed fell!"); + } + } +} + +SINGLE_BATTLE_TEST("Sticky Syrup isn't applied again if the target is already covered") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_SYRUP_BOMB); } + TURN { MOVE(player, MOVE_SYRUP_BOMB); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SYRUP_BOMB, player); + HP_BAR(opponent); + MESSAGE("Foe Wobbuffet got covered in sticky syrup!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent); + MESSAGE("Foe Wobbuffet's Speed fell!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SYRUP_BOMB, player); + HP_BAR(opponent); + NOT MESSAGE("Foe Wobbuffet got covered in sticky syrup!"); } } @@ -40,7 +66,7 @@ SINGLE_BATTLE_TEST("Syrup Bomb is prevented by Bulletproof") } } -SINGLE_BATTLE_TEST("Clear Body, White Smoke and Full Metal Body prevent Sticky Syrup speed reduction") +SINGLE_BATTLE_TEST("Sticky Syrup speed reduction is prevented by Clear Body, White Smoke or Full Metal Body") { u32 species; u32 ability; @@ -63,28 +89,36 @@ SINGLE_BATTLE_TEST("Clear Body, White Smoke and Full Metal Body prevent Sticky S { MESSAGE("Foe Beldum got covered in sticky syrup!"); ABILITY_POPUP(opponent, ABILITY_CLEAR_BODY); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent); MESSAGE("Foe Beldum's Clear Body prevents stat loss!"); + NONE_OF { + MESSAGE("Foe Beldum's Speed fell!"); + } } else if (species == SPECIES_TORKOAL) { MESSAGE("Foe Torkoal got covered in sticky syrup!"); ABILITY_POPUP(opponent, ABILITY_WHITE_SMOKE); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent); MESSAGE("Foe Torkoal's White Smoke prevents stat loss!"); + NONE_OF { + MESSAGE("Foe Torkoal's Speed fell!"); + } } else if (species == SPECIES_SOLGALEO) { MESSAGE("Foe Solgaleo got covered in sticky syrup!"); ABILITY_POPUP(opponent, ABILITY_FULL_METAL_BODY); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent); MESSAGE("Foe Solgaleo's Full Metal Body prevents stat loss!"); - } - NONE_OF { - ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Beldum's Speed fell!"); + NONE_OF { + MESSAGE("Foe Solgaleo's Speed fell!"); + } } } } -SINGLE_BATTLE_TEST("Clear Amulet prevents Sticky Syrup speed reduction") +SINGLE_BATTLE_TEST("Sticky Syrup speed reduction is prevented by Clear Amulet") { GIVEN { PLAYER(SPECIES_WOBBUFFET); @@ -95,9 +129,37 @@ SINGLE_BATTLE_TEST("Clear Amulet prevents Sticky Syrup speed reduction") ANIMATION(ANIM_TYPE_MOVE, MOVE_SYRUP_BOMB, player); HP_BAR(opponent); MESSAGE("Foe Wobbuffet got covered in sticky syrup!"); - MESSAGE("Foe Wobbuffet's Speed was not lowered!"); + MESSAGE("Foe Wobbuffet's Clear Amulet prevents its stats from being lowered!"); NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent); + MESSAGE("Foe Wobbuffet's Speed fell!"); + } + } +} + +SINGLE_BATTLE_TEST("Sticky syrup will not decrease speed further then minus six") +{ + u8 j; + + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + for (j = 0; j < 3; j++) + TURN { MOVE(player, MOVE_SCARY_FACE); } + TURN { MOVE(player, MOVE_SYRUP_BOMB); } + TURN {} + } SCENE { + for (j = 0; j < 3; j++) { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SCARY_FACE, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); + } + ANIMATION(ANIM_TYPE_MOVE, MOVE_SYRUP_BOMB, player); + HP_BAR(opponent); + MESSAGE("Foe Wobbuffet got covered in sticky syrup!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent); + MESSAGE("Foe Wobbuffet's Speed won't go lower!"); + NONE_OF { MESSAGE("Foe Wobbuffet's Speed fell!"); } } diff --git a/test/battle/move_effect/teatime.c b/test/battle/move_effect/teatime.c index 399cafb919e4..2d7c7426e8a4 100644 --- a/test/battle/move_effect/teatime.c +++ b/test/battle/move_effect/teatime.c @@ -244,7 +244,6 @@ SINGLE_BATTLE_TEST("Teatime triggers Motor Drive if it has been affected by Elec PARAMETRIZE { move = MOVE_PLASMA_FISTS; item = ITEM_NONE; } GIVEN { - ASSUME(P_GEN_4_POKEMON == TRUE); PLAYER(SPECIES_ELECTIVIRE) { Ability(ABILITY_MOTOR_DRIVE); Item(item); } OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_LIECHI_BERRY); } } WHEN { diff --git a/test/battle/move_effect/tri_attack.c b/test/battle/move_effect/tri_attack.c index d7d21022714d..644ad9f6b2ee 100644 --- a/test/battle/move_effect/tri_attack.c +++ b/test/battle/move_effect/tri_attack.c @@ -72,12 +72,8 @@ SINGLE_BATTLE_TEST("Tri Attack cannot paralyze/burn/freeze pokemon with abilitie u32 rng; PARAMETRIZE { statusAnim = B_ANIM_STATUS_PRZ; rng = MOVE_EFFECT_PARALYSIS; species = SPECIES_RAICHU; ability = ABILITY_LIGHTNING_ROD; } PARAMETRIZE { statusAnim = B_ANIM_STATUS_PRZ; rng = MOVE_EFFECT_PARALYSIS; species = SPECIES_JOLTEON; ability = ABILITY_VOLT_ABSORB; } - #if P_GEN_4_POKEMON == TRUE PARAMETRIZE { statusAnim = B_ANIM_STATUS_PRZ; rng = MOVE_EFFECT_PARALYSIS; species = SPECIES_ELECTIVIRE; ability = ABILITY_MOTOR_DRIVE; } - #endif // P_GEN_4_POKEMON - #if P_GEN_7_POKEMON == TRUE PARAMETRIZE { statusAnim = B_ANIM_STATUS_BRN; rng = MOVE_EFFECT_BURN; species = SPECIES_DEWPIDER; ability = ABILITY_WATER_BUBBLE; } - #endif // P_GEN_7_POKEMON PARAMETRIZE { statusAnim = B_ANIM_STATUS_BRN; rng = MOVE_EFFECT_BURN; species = SPECIES_SEAKING; ability = ABILITY_WATER_VEIL; } PARAMETRIZE { statusAnim = B_ANIM_STATUS_FRZ; rng = MOVE_EFFECT_FREEZE; species = SPECIES_CAMERUPT; ability = ABILITY_MAGMA_ARMOR; } diff --git a/test/battle/terrain/electric.c b/test/battle/terrain/electric.c index cebb0cb750ec..b71707603ff2 100644 --- a/test/battle/terrain/electric.c +++ b/test/battle/terrain/electric.c @@ -22,7 +22,6 @@ SINGLE_BATTLE_TEST("Electric Terrain protects grounded battlers from falling asl SINGLE_BATTLE_TEST("Electric Terrain activates Electric Seed and Mimicry") { GIVEN { - ASSUME(P_GEN_8_POKEMON == TRUE); ASSUME(gItems[ITEM_ELECTRIC_SEED].holdEffect == HOLD_EFFECT_SEEDS); ASSUME(gItems[ITEM_ELECTRIC_SEED].holdEffectParam == HOLD_EFFECT_PARAM_ELECTRIC_TERRAIN); PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_ELECTRIC_SEED); } diff --git a/test/battle/terrain/grassy.c b/test/battle/terrain/grassy.c index 893a305287bb..e135426427ad 100644 --- a/test/battle/terrain/grassy.c +++ b/test/battle/terrain/grassy.c @@ -18,7 +18,6 @@ SINGLE_BATTLE_TEST("Grassy Terrain recovers 1/16th HP at end of turn") SINGLE_BATTLE_TEST("Grassy Terrain activates Grassy Seed and Mimicry") { GIVEN { - ASSUME(P_GEN_8_POKEMON == TRUE); ASSUME(gItems[ITEM_GRASSY_SEED].holdEffect == HOLD_EFFECT_SEEDS); ASSUME(gItems[ITEM_GRASSY_SEED].holdEffectParam == HOLD_EFFECT_PARAM_GRASSY_TERRAIN); PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_GRASSY_SEED); } diff --git a/test/battle/terrain/misty.c b/test/battle/terrain/misty.c index dd6489af6b00..dab66efe0bc9 100644 --- a/test/battle/terrain/misty.c +++ b/test/battle/terrain/misty.c @@ -22,7 +22,6 @@ SINGLE_BATTLE_TEST("Misty Terrain protects grounded battlers from non-volatile s SINGLE_BATTLE_TEST("Misty Terrain activates Misty Seed and Mimicry") { GIVEN { - ASSUME(P_GEN_8_POKEMON == TRUE); ASSUME(gItems[ITEM_MISTY_SEED].holdEffect == HOLD_EFFECT_SEEDS); ASSUME(gItems[ITEM_MISTY_SEED].holdEffectParam == HOLD_EFFECT_PARAM_MISTY_TERRAIN); PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_MISTY_SEED); } diff --git a/test/battle/terrain/psychic.c b/test/battle/terrain/psychic.c index c810af340155..cf7a5640c21e 100644 --- a/test/battle/terrain/psychic.c +++ b/test/battle/terrain/psychic.c @@ -21,7 +21,6 @@ SINGLE_BATTLE_TEST("Psychic Terrain protects grounded battlers from priority mov SINGLE_BATTLE_TEST("Psychic Terrain activates Psychic Seed and Mimicry") { GIVEN { - ASSUME(P_GEN_8_POKEMON == TRUE); ASSUME(gItems[ITEM_PSYCHIC_SEED].holdEffect == HOLD_EFFECT_SEEDS); ASSUME(gItems[ITEM_PSYCHIC_SEED].holdEffectParam == HOLD_EFFECT_PARAM_PSYCHIC_TERRAIN); PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_PSYCHIC_SEED); } @@ -78,7 +77,6 @@ SINGLE_BATTLE_TEST("Psychic Terrain doesn't block priority moves that target the SINGLE_BATTLE_TEST("Psychic Terrain doesn't block priority moves that target all battlers") { - KNOWN_FAILING; GIVEN { PLAYER(SPECIES_SABLEYE) { Ability(ABILITY_PRANKSTER); } OPPONENT(SPECIES_WOBBUFFET); @@ -93,7 +91,6 @@ SINGLE_BATTLE_TEST("Psychic Terrain doesn't block priority moves that target all SINGLE_BATTLE_TEST("Psychic Terrain doesn't block priority moves that target all opponents") { - KNOWN_FAILING; GIVEN { PLAYER(SPECIES_SABLEYE) { Ability(ABILITY_PRANKSTER); } OPPONENT(SPECIES_WOBBUFFET); @@ -124,7 +121,6 @@ DOUBLE_BATTLE_TEST("Psychic Terrain doesn't block priority moves that target all SINGLE_BATTLE_TEST("Psychic Terrain doesn't block priority field moves") { - KNOWN_FAILING; GIVEN { PLAYER(SPECIES_SABLEYE) { Ability(ABILITY_PRANKSTER); } OPPONENT(SPECIES_WOBBUFFET); diff --git a/test/battle/weather/rain.c b/test/battle/weather/rain.c index 00ac263044af..3f7a6f599b9e 100644 --- a/test/battle/weather/rain.c +++ b/test/battle/weather/rain.c @@ -7,7 +7,7 @@ ASSUMPTIONS ASSUME(gBattleMoves[MOVE_EMBER].type == TYPE_FIRE); ASSUME(gBattleMoves[MOVE_WATER_GUN].type == TYPE_WATER); } - + SINGLE_BATTLE_TEST("Rain multiplies the power of Fire-type moves by 0.5x", s16 damage) { u32 setupMove; @@ -26,7 +26,7 @@ SINGLE_BATTLE_TEST("Rain multiplies the power of Fire-type moves by 0.5x", s16 d EXPECT_MUL_EQ(results[0].damage, Q_4_12(0.5), results[1].damage); } } - + SINGLE_BATTLE_TEST("Rain multiplies the power of Water-type moves by 1.5x", s16 damage) { u32 setupMove; diff --git a/test/battle/weather/sunlight.c b/test/battle/weather/sunlight.c index 9d471332ad69..51b18dd076f3 100644 --- a/test/battle/weather/sunlight.c +++ b/test/battle/weather/sunlight.c @@ -7,7 +7,7 @@ ASSUMPTIONS ASSUME(gBattleMoves[MOVE_EMBER].type == TYPE_FIRE); ASSUME(gBattleMoves[MOVE_WATER_GUN].type == TYPE_WATER); } - + SINGLE_BATTLE_TEST("Sunlight multiplies the power of Fire-type moves by 1.5x", s16 damage) { u32 setupMove; @@ -26,7 +26,7 @@ SINGLE_BATTLE_TEST("Sunlight multiplies the power of Fire-type moves by 1.5x", s EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.5), results[1].damage); } } - + SINGLE_BATTLE_TEST("Sunlight multiplies the power of Water-type moves by 0.5x", s16 damage) { u32 setupMove; diff --git a/test/dynamax.c b/test/dynamax.c index 27a689153e71..69887d6d2f74 100644 --- a/test/dynamax.c +++ b/test/dynamax.c @@ -19,7 +19,7 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Dynamax increases HP and max HP by 1.5x", u16 hp) } MESSAGE("Foe Wobbuffet used Celebrate!"); } THEN { - results[i].hp = player->hp; + results[i].hp = player->hp; } FINALLY { EXPECT_MUL_EQ(results[0].hp, Q_4_12(1.5), results[1].hp); } @@ -49,7 +49,7 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Dynamax expires after three turns", u16 hp) if (dynamax) // Expect to have visual reversion at the end. ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_FORM_CHANGE, player); } THEN { - results[i].hp = player->hp; + results[i].hp = player->hp; } FINALLY { EXPECT_EQ(results[0].hp, results[1].hp); } @@ -155,6 +155,24 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Dynamaxed Pokemon are not affected by phazing move } } +SINGLE_BATTLE_TEST("(DYNAMAX) Dynamaxed Pokemon are not affected by phazing moves but no block message is printed if they faint") +{ + GIVEN { + ASSUME(gBattleMoves[MOVE_DRAGON_TAIL].effect == EFFECT_HIT_SWITCH_TARGET); + PLAYER(SPECIES_WOBBUFFET) { HP(1); }; + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_DRAGON_TAIL); MOVE(player, MOVE_TACKLE, dynamax: TRUE); SEND_OUT(player, 1); } + } SCENE { + MESSAGE("Wobbuffet used Max Strike!"); + MESSAGE("Foe Wobbuffet used Dragon Tail!"); + HP_BAR(player); + MESSAGE("Wobbuffet fainted!"); + NOT MESSAGE("The move was blocked by the power of Dynamax!"); + } +} + SINGLE_BATTLE_TEST("(DYNAMAX) Dynamaxed Pokemon are not affected by Red Card") { GIVEN { @@ -195,7 +213,6 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Dynamaxed Pokemon can be switched out by Eject But SINGLE_BATTLE_TEST("(DYNAMAX) Dynamaxed Pokemon cannot have their ability swapped to another Pokemon's") { GIVEN { - ASSUME(P_GEN_8_POKEMON == TRUE); PLAYER(SPECIES_MILTANK) { Ability(ABILITY_SCRAPPY); } OPPONENT(SPECIES_RUNERIGUS) { Ability(ABILITY_WANDERING_SPIRIT); } } WHEN { @@ -250,7 +267,7 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Dynamaxed Pokemon can be encored immediately after TURN { MOVE(player, MOVE_ARM_THRUST, dynamax: TRUE); } TURN { MOVE(player, MOVE_ARM_THRUST); } TURN { MOVE(player, MOVE_ARM_THRUST); } - TURN { MOVE(opponent, MOVE_ENCORE); MOVE(player, MOVE_TACKLE); } + TURN { MOVE(opponent, MOVE_ENCORE); MOVE(player, MOVE_TACKLE); } } SCENE { MESSAGE("Wobbuffet used Max Knuckle!"); MESSAGE("Wobbuffet used Max Knuckle!"); @@ -322,7 +339,7 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Dynamaxed Pokemon are not immune to Knock Off") MESSAGE("Wobbuffet used Max Strike!"); MESSAGE("Foe Wobbuffet used Knock Off!"); MESSAGE("Foe Wobbuffet knocked off Wobbuffet's Potion!"); - } THEN { + } THEN { EXPECT_EQ(player->item, ITEM_NONE); } } @@ -852,7 +869,6 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Max Starfall sets up Misty Terrain") SINGLE_BATTLE_TEST("(DYNAMAX) G-Max Stonesurge sets up Stealth Rocks") { GIVEN { - ASSUME(P_GEN_8_POKEMON == TRUE); ASSUME(gBattleMoves[MOVE_G_MAX_STONESURGE].argument == MAX_EFFECT_STEALTH_ROCK); PLAYER(SPECIES_DREDNAW); OPPONENT(SPECIES_WOBBUFFET); @@ -873,7 +889,6 @@ SINGLE_BATTLE_TEST("(DYNAMAX) G-Max Stonesurge sets up Stealth Rocks") SINGLE_BATTLE_TEST("(DYNAMAX) G-Max Steelsurge sets up sharp steel") { GIVEN { - ASSUME(P_GEN_8_POKEMON == TRUE); ASSUME(gBattleMoves[MOVE_G_MAX_STEELSURGE].argument == MAX_EFFECT_STEELSURGE); PLAYER(SPECIES_COPPERAJAH); OPPONENT(SPECIES_WOBBUFFET); @@ -905,7 +920,6 @@ SINGLE_BATTLE_TEST("(DYNAMAX) G-Max Hydrosnipe has fixed power and ignores abili PARAMETRIZE { move = MOVE_WATER_GUN; } PARAMETRIZE { move = MOVE_HYDRO_CANNON; } GIVEN { - ASSUME(P_GEN_8_POKEMON == TRUE); ASSUME(gBattleMoves[MOVE_G_MAX_HYDROSNIPE].argument == MAX_EFFECT_FIXED_POWER); PLAYER(SPECIES_INTELEON); OPPONENT(SPECIES_ARCTOVISH) { Ability(ABILITY_WATER_ABSORB); } @@ -949,7 +963,6 @@ DOUBLE_BATTLE_TEST("(DYNAMAX) G-Max Stun Shock paralyzes or poisons both opponen PARAMETRIZE { statusAnim = B_ANIM_STATUS_PRZ; rng = STATUS1_PARALYSIS; } PARAMETRIZE { statusAnim = B_ANIM_STATUS_PSN; rng = STATUS1_POISON; } GIVEN { - ASSUME(P_GEN_8_POKEMON == TRUE); ASSUME(gBattleMoves[MOVE_G_MAX_STUN_SHOCK].argument == MAX_EFFECT_POISON_PARALYZE_FOES); PLAYER(SPECIES_TOXTRICITY); PLAYER(SPECIES_TOXEL); @@ -987,7 +1000,6 @@ DOUBLE_BATTLE_TEST("(DYNAMAX) G-Max Stun Shock paralyzes or poisons both opponen DOUBLE_BATTLE_TEST("(DYNAMAX) G-Max Stun Shock chooses statuses before considering immunities") { GIVEN { - ASSUME(P_GEN_8_POKEMON == TRUE); ASSUME(gBattleMoves[MOVE_G_MAX_STUN_SHOCK].argument == MAX_EFFECT_POISON_PARALYZE_FOES); PLAYER(SPECIES_TOXTRICITY); PLAYER(SPECIES_TOXEL); @@ -1085,7 +1097,6 @@ DOUBLE_BATTLE_TEST("(DYNAMAX) G-Max Gold Rush confuses both opponents and genera DOUBLE_BATTLE_TEST("(DYNAMAX) G-Max Smite confuses both opponents") { GIVEN { - ASSUME(P_GEN_8_POKEMON == TRUE); ASSUME(gBattleMoves[MOVE_G_MAX_SMITE].argument == MAX_EFFECT_CONFUSE_FOES); PLAYER(SPECIES_HATTERENE); PLAYER(SPECIES_HATENNA); @@ -1145,7 +1156,6 @@ DOUBLE_BATTLE_TEST("(DYNAMAX) G-Max Terror traps both opponents") DOUBLE_BATTLE_TEST("(DYNAMAX) G-Max Meltdown torments both opponents for 3 turns") { GIVEN { - ASSUME(P_GEN_7_POKEMON == TRUE); ASSUME(gBattleMoves[MOVE_G_MAX_MELTDOWN].argument == MAX_EFFECT_TORMENT_FOES); PLAYER(SPECIES_MELMETAL); PLAYER(SPECIES_MELTAN); @@ -1216,7 +1226,7 @@ DOUBLE_BATTLE_TEST("(DYNAMAX) G-Max Wildfire sets a field effect that damages no MESSAGE("Foe Wynaut is burning up within G-Max Wildfire's flames!"); HP_BAR(opponentRight); // turn 5 - NONE_OF { + NONE_OF { HP_BAR(opponentRight); MESSAGE("Foe Wynaut is burning up within G-Max Wildfire's flames!"); } @@ -1257,7 +1267,6 @@ DOUBLE_BATTLE_TEST("(DYNAMAX) G-Max Snooze makes only the target drowsy") { PASSES_RANDOMLY(1, 2, RNG_G_MAX_SNOOZE); GIVEN { - ASSUME(P_GEN_8_POKEMON == TRUE); ASSUME(gBattleMoves[MOVE_G_MAX_SNOOZE].argument == MAX_EFFECT_YAWN_FOE); PLAYER(SPECIES_GRIMMSNARL); PLAYER(SPECIES_IMPIDIMP); @@ -1281,7 +1290,6 @@ DOUBLE_BATTLE_TEST("(DYNAMAX) G-Max Finale heals allies by 1/6 of their health") { s16 damage1, damage2; GIVEN { - ASSUME(P_GEN_8_POKEMON == TRUE); ASSUME(gBattleMoves[MOVE_G_MAX_FINALE].argument == MAX_EFFECT_HEAL_TEAM); PLAYER(SPECIES_ALCREMIE) { HP(1); } PLAYER(SPECIES_MILCERY) { HP(1); } @@ -1294,15 +1302,14 @@ DOUBLE_BATTLE_TEST("(DYNAMAX) G-Max Finale heals allies by 1/6 of their health") HP_BAR(playerLeft, captureDamage: &damage1); HP_BAR(playerRight, captureDamage: &damage2); } THEN { - EXPECT_MUL_EQ(playerLeft->hp - 1, Q_4_12(6), playerLeft->maxHP); // heals based on Dynamax HP - EXPECT_MUL_EQ(playerRight->hp - 1, Q_4_12(6), playerRight->maxHP); + EXPECT_MUL_EQ(-damage1, Q_4_12(6), playerLeft->maxHP); // heals based on Dynamax HP + EXPECT_MUL_EQ(-damage2, Q_4_12(6), playerRight->maxHP); } } DOUBLE_BATTLE_TEST("(DYNAMAX) G-Max Sweetness cures allies' status conditions") { GIVEN { - ASSUME(P_GEN_8_POKEMON == TRUE); ASSUME(gBattleMoves[MOVE_G_MAX_SWEETNESS].argument == MAX_EFFECT_AROMATHERAPY); PLAYER(SPECIES_APPLETUN) { Status1(STATUS1_POISON); } PLAYER(SPECIES_APPLIN) { Status1(STATUS1_POISON); } @@ -1323,7 +1330,6 @@ DOUBLE_BATTLE_TEST("(DYNAMAX) G-Max Sweetness cures allies' status conditions") DOUBLE_BATTLE_TEST("(DYNAMAX) G-Max Centiferno traps both opponents in Fire Spin") { GIVEN { - ASSUME(P_GEN_8_POKEMON == TRUE); ASSUME(gBattleMoves[MOVE_G_MAX_CENTIFERNO].argument == MAX_EFFECT_FIRE_SPIN_FOES); PLAYER(SPECIES_CENTISKORCH); PLAYER(SPECIES_SIZZLIPEDE); @@ -1382,12 +1388,11 @@ DOUBLE_BATTLE_TEST("(DYNAMAX) G-Max Chi Strike boosts allies' crit chance") DOUBLE_BATTLE_TEST("(DYNAMAX) G-Max Depletion takes away 2 PP from the target's last move") { GIVEN { - ASSUME(P_GEN_8_POKEMON == TRUE); ASSUME(gBattleMoves[MOVE_G_MAX_DEPLETION].argument == MAX_EFFECT_SPITE); PLAYER(SPECIES_DURALUDON); PLAYER(SPECIES_WYNAUT); // Dynamax behaves weird with test turn order because stats are recalculated. - OPPONENT(SPECIES_SABLEYE) { Ability(ABILITY_PRANKSTER); } + OPPONENT(SPECIES_SABLEYE) { Ability(ABILITY_PRANKSTER); } OPPONENT(SPECIES_WYNAUT); } WHEN { TURN { MOVE(playerLeft, MOVE_DRAGON_CLAW, target: opponentLeft, dynamax: TRUE); } @@ -1405,7 +1410,6 @@ DOUBLE_BATTLE_TEST("(DYNAMAX) G-Max One Blow bypasses Max Guard for full damage" PARAMETRIZE { protect = TRUE; } PARAMETRIZE { protect = FALSE; } GIVEN { - ASSUME(P_GEN_8_POKEMON == TRUE); ASSUME(gBattleMoves[MOVE_G_MAX_ONE_BLOW].argument == MAX_EFFECT_BYPASS_PROTECT); PLAYER(SPECIES_URSHIFU); PLAYER(SPECIES_KUBFU); diff --git a/test/test_runner.c b/test/test_runner.c index 83bab5d0bae4..93d859654acf 100644 --- a/test/test_runner.c +++ b/test/test_runner.c @@ -162,17 +162,18 @@ void CB2_TestRunner(void) break; case STATE_ASSIGN_TEST: - if (gTestRunnerState.test == __stop_tests) + while (1) { - gTestRunnerState.state = STATE_EXIT; - return; - } - - if (gTestRunnerState.test->runner != &gAssumptionsRunner - && !PrefixMatch(gTestRunnerArgv, gTestRunnerState.test->name)) - { - gTestRunnerState.state = STATE_NEXT_TEST; - return; + if (gTestRunnerState.test == __stop_tests) + { + gTestRunnerState.state = STATE_EXIT; + return; + } + if (gTestRunnerState.test->runner != &gAssumptionsRunner + && !PrefixMatch(gTestRunnerArgv, gTestRunnerState.test->name)) + ++gTestRunnerState.test; + else + break; } MgbaPrintf_(":N%s", gTestRunnerState.test->name); diff --git a/test/test_runner_battle.c b/test/test_runner_battle.c index 53a1c8d7c549..ac689676b0fc 100644 --- a/test/test_runner_battle.c +++ b/test/test_runner_battle.c @@ -27,6 +27,8 @@ #define INVALID(fmt, ...) Test_ExitWithResult(TEST_RESULT_INVALID, "%s:%d: " fmt, gTestRunnerState.test->filename, sourceLine, ##__VA_ARGS__) #define INVALID_IF(c, fmt, ...) do { if (c) Test_ExitWithResult(TEST_RESULT_INVALID, "%s:%d: " fmt, gTestRunnerState.test->filename, sourceLine, ##__VA_ARGS__); } while (0) +#define ASSUMPTION_FAIL_IF(c, fmt, ...) do { if (c) Test_ExitWithResult(TEST_RESULT_ASSUMPTION_FAIL, "%s:%d: " fmt, gTestRunnerState.test->filename, sourceLine, ##__VA_ARGS__); } while (0) + #define STATE gBattleTestRunnerState #define DATA gBattleTestRunnerState->data @@ -1482,6 +1484,7 @@ void OpenPokemon(u32 sourceLine, u32 side, u32 species) u8 *partySize; struct Pokemon *party; INVALID_IF(species >= SPECIES_EGG, "Invalid species: %d", species); + ASSUMPTION_FAIL_IF(!IsSpeciesEnabled(species), "Species disabled: %d", species); if (side == B_SIDE_PLAYER) { partySize = &DATA.playerPartySize; @@ -1492,7 +1495,7 @@ void OpenPokemon(u32 sourceLine, u32 side, u32 species) partySize = &DATA.opponentPartySize; party = DATA.recordedBattle.opponentParty; } - INVALID_IF(*partySize == PARTY_SIZE, "Too many Pokemon in party"); + INVALID_IF(*partySize >= PARTY_SIZE, "Too many Pokemon in party"); DATA.currentSide = side; DATA.currentPartyIndex = *partySize; DATA.currentMon = &party[DATA.currentPartyIndex]; @@ -1980,7 +1983,7 @@ void MoveGetIdAndSlot(s32 battlerId, struct MoveContext *ctx, u32 *moveId, u32 * if (ctx->explicitUltraBurst && ctx->ultraBurst) *moveSlot |= RET_ULTRA_BURST; - + if (ctx->explicitDynamax && ctx->dynamax) *moveSlot |= RET_DYNAMAX; }